From 3b06de6b40ac0bff56dded23b8518a22aef9d652 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Wed, 21 Jun 2023 21:34:10 -0700 Subject: [PATCH 1/7] EBS volume metrics collector daemon --- .../csi-driver/Dockerfile.csi_driver | 5 + ecs-agent/daemon_images/csi-driver/Makefile | 37 + .../csi-driver/build-image-as-tar | 20 + .../daemon_images/csi-driver/driver/driver.go | 100 + .../csi-driver/driver/driver_test.go | 32 + .../csi-driver/driver/mock_mount.go | 51 + .../daemon_images/csi-driver/driver/mount.go | 39 + .../csi-driver/driver/mount_linux.go | 25 + .../csi-driver/driver/mount_linux_test.go | 50 + .../csi-driver/driver/mount_windows.go | 31 + .../daemon_images/csi-driver/driver/node.go | 105 + .../csi-driver/driver/node_linux.go | 50 + .../csi-driver/driver/node_test.go | 161 + .../csi-driver/driver/node_windows.go | 43 + ecs-agent/daemon_images/csi-driver/main.go | 47 + .../csi-driver/mounter/mock_mount_windows.go | 352 + .../csi-driver/mounter/safe_mounter_unix.go | 29 + .../mounter/safe_mounter_unix_test.go | 29 + .../mounter/safe_mounter_windows.go | 506 ++ ecs-agent/daemon_images/csi-driver/options.go | 43 + .../daemon_images/csi-driver/options_test.go | 66 + .../tarfiles/csi-driver-linux-amd64.tar | Bin 0 -> 15215616 bytes .../daemon_images/csi-driver/update-gomock | 11 + .../daemon_images/csi-driver/util/fs/fs.go | 51 + .../csi-driver/util/fs/fs_unsupported.go | 31 + .../csi-driver/util/fs/fs_windows.go | 63 + .../daemon_images/csi-driver/util/utils.go | 45 + .../csi-driver/version/version.go | 43 + .../csi-driver/volume/metrics.go | 117 + .../csi-driver/volume/metrics_errors.go | 49 + ecs-agent/go.mod | 33 +- ecs-agent/go.sum | 137 +- .../Microsoft/go-winio/.gitattributes | 1 + .../github.com/Microsoft/go-winio/.gitignore | 10 + .../Microsoft/go-winio/.golangci.yml | 149 + .../github.com/Microsoft/go-winio/CODEOWNERS | 1 + .../github.com/Microsoft/go-winio/LICENSE | 22 + .../github.com/Microsoft/go-winio/README.md | 89 + .../github.com/Microsoft/go-winio/SECURITY.md | 41 + .../github.com/Microsoft/go-winio/backup.go | 290 + .../github.com/Microsoft/go-winio/doc.go | 22 + .../github.com/Microsoft/go-winio/ea.go | 137 + .../github.com/Microsoft/go-winio/file.go | 331 + .../github.com/Microsoft/go-winio/fileinfo.go | 92 + .../github.com/Microsoft/go-winio/hvsock.go | 575 ++ .../Microsoft/go-winio/internal/fs/doc.go | 2 + .../Microsoft/go-winio/internal/fs/fs.go | 202 + .../go-winio/internal/fs/security.go | 12 + .../go-winio/internal/fs/zsyscall_windows.go | 64 + .../go-winio/internal/socket/rawaddr.go | 20 + .../go-winio/internal/socket/socket.go | 179 + .../internal/socket/zsyscall_windows.go | 72 + .../go-winio/internal/stringbuffer/wstring.go | 132 + .../github.com/Microsoft/go-winio/pipe.go | 525 ++ .../Microsoft/go-winio/pkg/guid/guid.go | 232 + .../go-winio/pkg/guid/guid_nonwindows.go | 16 + .../go-winio/pkg/guid/guid_windows.go | 13 + .../go-winio/pkg/guid/variant_string.go | 27 + .../Microsoft/go-winio/privilege.go | 197 + .../github.com/Microsoft/go-winio/reparse.go | 131 + .../github.com/Microsoft/go-winio/sd.go | 144 + .../github.com/Microsoft/go-winio/syscall.go | 5 + .../github.com/Microsoft/go-winio/tools.go | 5 + .../Microsoft/go-winio/zsyscall_windows.go | 419 + .../container-storage-interface/spec/LICENSE | 201 + .../spec/lib/go/csi/csi.pb.go | 7204 +++++++++++++++++ .../vendor/github.com/docker/go-units/size.go | 70 +- .../github.com/go-logr/logr/.golangci.yaml | 26 + .../github.com/go-logr/logr/CHANGELOG.md | 6 + .../github.com/go-logr/logr/CONTRIBUTING.md | 17 + .../vendor/github.com/go-logr/logr/LICENSE | 201 + .../vendor/github.com/go-logr/logr/README.md | 282 + .../vendor/github.com/go-logr/logr/discard.go | 24 + .../vendor/github.com/go-logr/logr/logr.go | 550 ++ .../vendor/github.com/gogo/protobuf/AUTHORS | 15 + .../github.com/gogo/protobuf/CONTRIBUTORS | 23 + .../vendor/github.com/gogo/protobuf/LICENSE | 35 + .../github.com/gogo/protobuf/proto/Makefile | 43 + .../github.com/gogo/protobuf/proto/clone.go | 258 + .../gogo/protobuf/proto/custom_gogo.go | 39 + .../github.com/gogo/protobuf/proto/decode.go | 427 + .../gogo/protobuf/proto/deprecated.go | 63 + .../github.com/gogo/protobuf/proto/discard.go | 350 + .../gogo/protobuf/proto/duration.go | 100 + .../gogo/protobuf/proto/duration_gogo.go | 49 + .../github.com/gogo/protobuf/proto/encode.go | 205 + .../gogo/protobuf/proto/encode_gogo.go | 33 + .../github.com/gogo/protobuf/proto/equal.go | 300 + .../gogo/protobuf/proto/extensions.go | 605 ++ .../gogo/protobuf/proto/extensions_gogo.go | 389 + .../github.com/gogo/protobuf/proto/lib.go | 973 +++ .../gogo/protobuf/proto/lib_gogo.go | 50 + .../gogo/protobuf/proto/message_set.go | 181 + .../gogo/protobuf/proto/pointer_reflect.go | 357 + .../protobuf/proto/pointer_reflect_gogo.go | 59 + .../gogo/protobuf/proto/pointer_unsafe.go | 308 + .../protobuf/proto/pointer_unsafe_gogo.go | 56 + .../gogo/protobuf/proto/properties.go | 610 ++ .../gogo/protobuf/proto/properties_gogo.go | 36 + .../gogo/protobuf/proto/skip_gogo.go | 119 + .../gogo/protobuf/proto/table_marshal.go | 3009 +++++++ .../gogo/protobuf/proto/table_marshal_gogo.go | 388 + .../gogo/protobuf/proto/table_merge.go | 676 ++ .../gogo/protobuf/proto/table_unmarshal.go | 2249 +++++ .../protobuf/proto/table_unmarshal_gogo.go | 385 + .../github.com/gogo/protobuf/proto/text.go | 930 +++ .../gogo/protobuf/proto/text_gogo.go | 57 + .../gogo/protobuf/proto/text_parser.go | 1018 +++ .../gogo/protobuf/proto/timestamp.go | 113 + .../gogo/protobuf/proto/timestamp_gogo.go | 49 + .../gogo/protobuf/proto/wrappers.go | 1888 +++++ .../gogo/protobuf/proto/wrappers_gogo.go | 113 + .../golang/protobuf/jsonpb/decode.go | 530 ++ .../golang/protobuf/jsonpb/encode.go | 559 ++ .../github.com/golang/protobuf/jsonpb/json.go | 69 + .../golang/protobuf/proto/registry.go | 10 +- .../golang/protobuf/proto/text_decode.go | 2 +- .../protoc-gen-go/descriptor/descriptor.pb.go | 200 + .../github.com/golang/protobuf/ptypes/any.go | 14 + .../github.com/golang/protobuf/ptypes/doc.go | 4 + .../golang/protobuf/ptypes/duration.go | 4 + .../golang/protobuf/ptypes/timestamp.go | 9 + .../protobuf/ptypes/wrappers/wrappers.pb.go | 71 + .../vendor/github.com/google/uuid/README.md | 2 +- .../vendor/github.com/google/uuid/hash.go | 4 +- .../vendor/github.com/google/uuid/marshal.go | 7 +- .../vendor/github.com/google/uuid/node.go | 1 + .../vendor/github.com/google/uuid/null.go | 118 + .../vendor/github.com/google/uuid/sql.go | 2 +- .../vendor/github.com/google/uuid/uuid.go | 124 +- .../vendor/github.com/google/uuid/version1.go | 12 +- .../vendor/github.com/google/uuid/version4.go | 40 +- .../kubernetes-csi/csi-proxy/client/LICENSE | 202 + .../kubernetes-csi/csi-proxy/client/README.md | 5 + .../csi-proxy/client/api/disk/v1/api.pb.go | 1476 ++++ .../csi-proxy/client/api/disk/v1/api.proto | 111 + .../client/api/filesystem/v1/api.pb.go | 1041 +++ .../client/api/filesystem/v1/api.proto | 136 + .../csi-proxy/client/api/volume/v1/api.pb.go | 1876 +++++ .../csi-proxy/client/api/volume/v1/api.proto | 143 + .../csi-proxy/client/apiversion/version.go | 143 + .../client/groups/disk/v1/client_generated.go | 94 + .../groups/filesystem/v1/client_generated.go | 86 + .../groups/volume/v1/client_generated.go | 106 + .../kubernetes-csi/csi-proxy/client/utils.go | 35 + .../github.com/moby/sys/mountinfo/LICENSE | 202 + .../github.com/moby/sys/mountinfo/doc.go | 44 + .../moby/sys/mountinfo/mounted_linux.go | 101 + .../moby/sys/mountinfo/mounted_unix.go | 53 + .../moby/sys/mountinfo/mountinfo.go | 67 + .../moby/sys/mountinfo/mountinfo_bsd.go | 56 + .../moby/sys/mountinfo/mountinfo_filters.go | 63 + .../sys/mountinfo/mountinfo_freebsdlike.go | 14 + .../moby/sys/mountinfo/mountinfo_linux.go | 214 + .../moby/sys/mountinfo/mountinfo_openbsd.go | 11 + .../sys/mountinfo/mountinfo_unsupported.go | 19 + .../moby/sys/mountinfo/mountinfo_windows.go | 10 + .../golang.org/x/net/http/httpguts/guts.go | 50 + .../golang.org/x/net/http/httpguts/httplex.go | 352 + .../vendor/golang.org/x/net/http2/.gitignore | 2 + .../vendor/golang.org/x/net/http2/Dockerfile | 51 + .../vendor/golang.org/x/net/http2/Makefile | 3 + .../vendor/golang.org/x/net/http2/ascii.go | 53 + .../vendor/golang.org/x/net/http2/ciphers.go | 641 ++ .../x/net/http2/client_conn_pool.go | 311 + .../golang.org/x/net/http2/databuffer.go | 146 + .../vendor/golang.org/x/net/http2/errors.go | 145 + .../vendor/golang.org/x/net/http2/flow.go | 120 + .../vendor/golang.org/x/net/http2/frame.go | 1658 ++++ .../vendor/golang.org/x/net/http2/go111.go | 30 + .../vendor/golang.org/x/net/http2/go115.go | 27 + .../vendor/golang.org/x/net/http2/go118.go | 17 + .../vendor/golang.org/x/net/http2/gotrack.go | 170 + .../golang.org/x/net/http2/headermap.go | 105 + .../golang.org/x/net/http2/hpack/encode.go | 245 + .../golang.org/x/net/http2/hpack/hpack.go | 523 ++ .../golang.org/x/net/http2/hpack/huffman.go | 226 + .../x/net/http2/hpack/static_table.go | 188 + .../golang.org/x/net/http2/hpack/tables.go | 403 + .../vendor/golang.org/x/net/http2/http2.go | 385 + .../golang.org/x/net/http2/not_go111.go | 21 + .../golang.org/x/net/http2/not_go115.go | 31 + .../golang.org/x/net/http2/not_go118.go | 17 + .../vendor/golang.org/x/net/http2/pipe.go | 179 + .../vendor/golang.org/x/net/http2/server.go | 3238 ++++++++ .../golang.org/x/net/http2/transport.go | 3152 ++++++++ .../vendor/golang.org/x/net/http2/write.go | 370 + .../golang.org/x/net/http2/writesched.go | 250 + .../x/net/http2/writesched_priority.go | 451 ++ .../x/net/http2/writesched_random.go | 77 + .../x/net/internal/timeseries/timeseries.go | 525 ++ .../vendor/golang.org/x/net/trace/events.go | 532 ++ .../golang.org/x/net/trace/histogram.go | 365 + .../vendor/golang.org/x/net/trace/trace.go | 1130 +++ .../vendor/golang.org/x/sys/unix/.gitignore | 2 + .../vendor/golang.org/x/sys/unix/README.md | 184 + .../golang.org/x/sys/unix/affinity_linux.go | 86 + .../vendor/golang.org/x/sys/unix/aliases.go | 15 + .../golang.org/x/sys/unix/asm_aix_ppc64.s | 18 + .../golang.org/x/sys/unix/asm_bsd_386.s | 29 + .../golang.org/x/sys/unix/asm_bsd_amd64.s | 29 + .../golang.org/x/sys/unix/asm_bsd_arm.s | 29 + .../golang.org/x/sys/unix/asm_bsd_arm64.s | 29 + .../golang.org/x/sys/unix/asm_bsd_ppc64.s | 31 + .../golang.org/x/sys/unix/asm_bsd_riscv64.s | 29 + .../golang.org/x/sys/unix/asm_linux_386.s | 66 + .../golang.org/x/sys/unix/asm_linux_amd64.s | 58 + .../golang.org/x/sys/unix/asm_linux_arm.s | 57 + .../golang.org/x/sys/unix/asm_linux_arm64.s | 53 + .../golang.org/x/sys/unix/asm_linux_loong64.s | 54 + .../golang.org/x/sys/unix/asm_linux_mips64x.s | 57 + .../golang.org/x/sys/unix/asm_linux_mipsx.s | 55 + .../golang.org/x/sys/unix/asm_linux_ppc64x.s | 45 + .../golang.org/x/sys/unix/asm_linux_riscv64.s | 49 + .../golang.org/x/sys/unix/asm_linux_s390x.s | 57 + .../x/sys/unix/asm_openbsd_mips64.s | 30 + .../golang.org/x/sys/unix/asm_solaris_amd64.s | 18 + .../golang.org/x/sys/unix/asm_zos_s390x.s | 426 + .../golang.org/x/sys/unix/bluetooth_linux.go | 36 + .../golang.org/x/sys/unix/cap_freebsd.go | 196 + .../vendor/golang.org/x/sys/unix/constants.go | 14 + .../golang.org/x/sys/unix/dev_aix_ppc.go | 27 + .../golang.org/x/sys/unix/dev_aix_ppc64.go | 29 + .../golang.org/x/sys/unix/dev_darwin.go | 24 + .../golang.org/x/sys/unix/dev_dragonfly.go | 30 + .../golang.org/x/sys/unix/dev_freebsd.go | 30 + .../vendor/golang.org/x/sys/unix/dev_linux.go | 42 + .../golang.org/x/sys/unix/dev_netbsd.go | 29 + .../golang.org/x/sys/unix/dev_openbsd.go | 29 + .../vendor/golang.org/x/sys/unix/dev_zos.go | 29 + .../vendor/golang.org/x/sys/unix/dirent.go | 103 + .../golang.org/x/sys/unix/endian_big.go | 10 + .../golang.org/x/sys/unix/endian_little.go | 10 + .../vendor/golang.org/x/sys/unix/env_unix.go | 32 + .../vendor/golang.org/x/sys/unix/epoll_zos.go | 221 + .../vendor/golang.org/x/sys/unix/fcntl.go | 37 + .../golang.org/x/sys/unix/fcntl_darwin.go | 24 + .../x/sys/unix/fcntl_linux_32bit.go | 14 + .../vendor/golang.org/x/sys/unix/fdset.go | 30 + .../golang.org/x/sys/unix/fstatfs_zos.go | 164 + .../vendor/golang.org/x/sys/unix/gccgo.go | 60 + .../vendor/golang.org/x/sys/unix/gccgo_c.c | 45 + .../x/sys/unix/gccgo_linux_amd64.go | 21 + .../golang.org/x/sys/unix/ifreq_linux.go | 142 + .../vendor/golang.org/x/sys/unix/ioctl.go | 70 + .../golang.org/x/sys/unix/ioctl_linux.go | 233 + .../vendor/golang.org/x/sys/unix/ioctl_zos.go | 72 + .../vendor/golang.org/x/sys/unix/mkall.sh | 249 + .../vendor/golang.org/x/sys/unix/mkerrors.sh | 778 ++ .../golang.org/x/sys/unix/pagesize_unix.go | 16 + .../golang.org/x/sys/unix/pledge_openbsd.go | 163 + .../golang.org/x/sys/unix/ptrace_darwin.go | 18 + .../golang.org/x/sys/unix/ptrace_ios.go | 18 + .../vendor/golang.org/x/sys/unix/race.go | 31 + .../vendor/golang.org/x/sys/unix/race0.go | 26 + .../x/sys/unix/readdirent_getdents.go | 13 + .../x/sys/unix/readdirent_getdirentries.go | 20 + .../x/sys/unix/sockcmsg_dragonfly.go | 16 + .../golang.org/x/sys/unix/sockcmsg_linux.go | 85 + .../golang.org/x/sys/unix/sockcmsg_unix.go | 107 + .../x/sys/unix/sockcmsg_unix_other.go | 47 + .../vendor/golang.org/x/sys/unix/syscall.go | 87 + .../golang.org/x/sys/unix/syscall_aix.go | 599 ++ .../golang.org/x/sys/unix/syscall_aix_ppc.go | 54 + .../x/sys/unix/syscall_aix_ppc64.go | 85 + .../golang.org/x/sys/unix/syscall_bsd.go | 624 ++ .../golang.org/x/sys/unix/syscall_darwin.go | 827 ++ .../x/sys/unix/syscall_darwin_amd64.go | 52 + .../x/sys/unix/syscall_darwin_arm64.go | 52 + .../x/sys/unix/syscall_darwin_libSystem.go | 27 + .../x/sys/unix/syscall_dragonfly.go | 546 ++ .../x/sys/unix/syscall_dragonfly_amd64.go | 57 + .../golang.org/x/sys/unix/syscall_freebsd.go | 646 ++ .../x/sys/unix/syscall_freebsd_386.go | 65 + .../x/sys/unix/syscall_freebsd_amd64.go | 65 + .../x/sys/unix/syscall_freebsd_arm.go | 61 + .../x/sys/unix/syscall_freebsd_arm64.go | 61 + .../x/sys/unix/syscall_freebsd_riscv64.go | 61 + .../golang.org/x/sys/unix/syscall_hurd.go | 30 + .../golang.org/x/sys/unix/syscall_hurd_386.go | 29 + .../golang.org/x/sys/unix/syscall_illumos.go | 79 + .../golang.org/x/sys/unix/syscall_linux.go | 2510 ++++++ .../x/sys/unix/syscall_linux_386.go | 342 + .../x/sys/unix/syscall_linux_alarm.go | 14 + .../x/sys/unix/syscall_linux_amd64.go | 147 + .../x/sys/unix/syscall_linux_amd64_gc.go | 13 + .../x/sys/unix/syscall_linux_arm.go | 244 + .../x/sys/unix/syscall_linux_arm64.go | 195 + .../golang.org/x/sys/unix/syscall_linux_gc.go | 15 + .../x/sys/unix/syscall_linux_gc_386.go | 17 + .../x/sys/unix/syscall_linux_gc_arm.go | 14 + .../x/sys/unix/syscall_linux_gccgo_386.go | 31 + .../x/sys/unix/syscall_linux_gccgo_arm.go | 21 + .../x/sys/unix/syscall_linux_loong64.go | 222 + .../x/sys/unix/syscall_linux_mips64x.go | 191 + .../x/sys/unix/syscall_linux_mipsx.go | 203 + .../x/sys/unix/syscall_linux_ppc.go | 232 + .../x/sys/unix/syscall_linux_ppc64x.go | 118 + .../x/sys/unix/syscall_linux_riscv64.go | 180 + .../x/sys/unix/syscall_linux_s390x.go | 298 + .../x/sys/unix/syscall_linux_sparc64.go | 114 + .../golang.org/x/sys/unix/syscall_netbsd.go | 623 ++ .../x/sys/unix/syscall_netbsd_386.go | 38 + .../x/sys/unix/syscall_netbsd_amd64.go | 38 + .../x/sys/unix/syscall_netbsd_arm.go | 38 + .../x/sys/unix/syscall_netbsd_arm64.go | 38 + .../golang.org/x/sys/unix/syscall_openbsd.go | 391 + .../x/sys/unix/syscall_openbsd_386.go | 42 + .../x/sys/unix/syscall_openbsd_amd64.go | 42 + .../x/sys/unix/syscall_openbsd_arm.go | 42 + .../x/sys/unix/syscall_openbsd_arm64.go | 42 + .../x/sys/unix/syscall_openbsd_libc.go | 27 + .../x/sys/unix/syscall_openbsd_mips64.go | 39 + .../x/sys/unix/syscall_openbsd_ppc64.go | 42 + .../x/sys/unix/syscall_openbsd_riscv64.go | 42 + .../golang.org/x/sys/unix/syscall_solaris.go | 1136 +++ .../x/sys/unix/syscall_solaris_amd64.go | 28 + .../golang.org/x/sys/unix/syscall_unix.go | 589 ++ .../golang.org/x/sys/unix/syscall_unix_gc.go | 16 + .../x/sys/unix/syscall_unix_gc_ppc64x.go | 25 + .../x/sys/unix/syscall_zos_s390x.go | 1994 +++++ .../golang.org/x/sys/unix/sysvshm_linux.go | 21 + .../golang.org/x/sys/unix/sysvshm_unix.go | 52 + .../x/sys/unix/sysvshm_unix_other.go | 14 + .../golang.org/x/sys/unix/timestruct.go | 77 + .../golang.org/x/sys/unix/unveil_openbsd.go | 42 + .../vendor/golang.org/x/sys/unix/xattr_bsd.go | 281 + .../golang.org/x/sys/unix/zerrors_aix_ppc.go | 1385 ++++ .../x/sys/unix/zerrors_aix_ppc64.go | 1386 ++++ .../x/sys/unix/zerrors_darwin_amd64.go | 1892 +++++ .../x/sys/unix/zerrors_darwin_arm64.go | 1892 +++++ .../x/sys/unix/zerrors_dragonfly_amd64.go | 1738 ++++ .../x/sys/unix/zerrors_freebsd_386.go | 2043 +++++ .../x/sys/unix/zerrors_freebsd_amd64.go | 2040 +++++ .../x/sys/unix/zerrors_freebsd_arm.go | 2034 +++++ .../x/sys/unix/zerrors_freebsd_arm64.go | 2034 +++++ .../x/sys/unix/zerrors_freebsd_riscv64.go | 2148 +++++ .../golang.org/x/sys/unix/zerrors_linux.go | 3479 ++++++++ .../x/sys/unix/zerrors_linux_386.go | 829 ++ .../x/sys/unix/zerrors_linux_amd64.go | 829 ++ .../x/sys/unix/zerrors_linux_arm.go | 835 ++ .../x/sys/unix/zerrors_linux_arm64.go | 827 ++ .../x/sys/unix/zerrors_linux_loong64.go | 819 ++ .../x/sys/unix/zerrors_linux_mips.go | 836 ++ .../x/sys/unix/zerrors_linux_mips64.go | 836 ++ .../x/sys/unix/zerrors_linux_mips64le.go | 836 ++ .../x/sys/unix/zerrors_linux_mipsle.go | 836 ++ .../x/sys/unix/zerrors_linux_ppc.go | 888 ++ .../x/sys/unix/zerrors_linux_ppc64.go | 892 ++ .../x/sys/unix/zerrors_linux_ppc64le.go | 892 ++ .../x/sys/unix/zerrors_linux_riscv64.go | 816 ++ .../x/sys/unix/zerrors_linux_s390x.go | 891 ++ .../x/sys/unix/zerrors_linux_sparc64.go | 886 ++ .../x/sys/unix/zerrors_netbsd_386.go | 1780 ++++ .../x/sys/unix/zerrors_netbsd_amd64.go | 1770 ++++ .../x/sys/unix/zerrors_netbsd_arm.go | 1759 ++++ .../x/sys/unix/zerrors_netbsd_arm64.go | 1770 ++++ .../x/sys/unix/zerrors_openbsd_386.go | 1906 +++++ .../x/sys/unix/zerrors_openbsd_amd64.go | 1906 +++++ .../x/sys/unix/zerrors_openbsd_arm.go | 1906 +++++ .../x/sys/unix/zerrors_openbsd_arm64.go | 1906 +++++ .../x/sys/unix/zerrors_openbsd_mips64.go | 1906 +++++ .../x/sys/unix/zerrors_openbsd_ppc64.go | 1905 +++++ .../x/sys/unix/zerrors_openbsd_riscv64.go | 1904 +++++ .../x/sys/unix/zerrors_solaris_amd64.go | 1557 ++++ .../x/sys/unix/zerrors_zos_s390x.go | 860 ++ .../x/sys/unix/zptrace_armnn_linux.go | 42 + .../x/sys/unix/zptrace_linux_arm64.go | 17 + .../x/sys/unix/zptrace_mipsnn_linux.go | 51 + .../x/sys/unix/zptrace_mipsnnle_linux.go | 51 + .../x/sys/unix/zptrace_x86_linux.go | 81 + .../golang.org/x/sys/unix/zsyscall_aix_ppc.go | 1495 ++++ .../x/sys/unix/zsyscall_aix_ppc64.go | 1453 ++++ .../x/sys/unix/zsyscall_aix_ppc64_gc.go | 1199 +++ .../x/sys/unix/zsyscall_aix_ppc64_gccgo.go | 1078 +++ .../x/sys/unix/zsyscall_darwin_amd64.go | 2561 ++++++ .../x/sys/unix/zsyscall_darwin_amd64.s | 904 +++ .../x/sys/unix/zsyscall_darwin_arm64.go | 2561 ++++++ .../x/sys/unix/zsyscall_darwin_arm64.s | 904 +++ .../x/sys/unix/zsyscall_dragonfly_amd64.go | 1699 ++++ .../x/sys/unix/zsyscall_freebsd_386.go | 1919 +++++ .../x/sys/unix/zsyscall_freebsd_amd64.go | 1919 +++++ .../x/sys/unix/zsyscall_freebsd_arm.go | 1919 +++++ .../x/sys/unix/zsyscall_freebsd_arm64.go | 1919 +++++ .../x/sys/unix/zsyscall_freebsd_riscv64.go | 1919 +++++ .../x/sys/unix/zsyscall_illumos_amd64.go | 102 + .../golang.org/x/sys/unix/zsyscall_linux.go | 2184 +++++ .../x/sys/unix/zsyscall_linux_386.go | 497 ++ .../x/sys/unix/zsyscall_linux_amd64.go | 664 ++ .../x/sys/unix/zsyscall_linux_arm.go | 612 ++ .../x/sys/unix/zsyscall_linux_arm64.go | 563 ++ .../x/sys/unix/zsyscall_linux_loong64.go | 487 ++ .../x/sys/unix/zsyscall_linux_mips.go | 664 ++ .../x/sys/unix/zsyscall_linux_mips64.go | 658 ++ .../x/sys/unix/zsyscall_linux_mips64le.go | 647 ++ .../x/sys/unix/zsyscall_linux_mipsle.go | 664 ++ .../x/sys/unix/zsyscall_linux_ppc.go | 669 ++ .../x/sys/unix/zsyscall_linux_ppc64.go | 715 ++ .../x/sys/unix/zsyscall_linux_ppc64le.go | 715 ++ .../x/sys/unix/zsyscall_linux_riscv64.go | 543 ++ .../x/sys/unix/zsyscall_linux_s390x.go | 506 ++ .../x/sys/unix/zsyscall_linux_sparc64.go | 659 ++ .../x/sys/unix/zsyscall_netbsd_386.go | 1870 +++++ .../x/sys/unix/zsyscall_netbsd_amd64.go | 1870 +++++ .../x/sys/unix/zsyscall_netbsd_arm.go | 1870 +++++ .../x/sys/unix/zsyscall_netbsd_arm64.go | 1870 +++++ .../x/sys/unix/zsyscall_openbsd_386.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_386.s | 669 ++ .../x/sys/unix/zsyscall_openbsd_amd64.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_amd64.s | 669 ++ .../x/sys/unix/zsyscall_openbsd_arm.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_arm.s | 669 ++ .../x/sys/unix/zsyscall_openbsd_arm64.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_arm64.s | 669 ++ .../x/sys/unix/zsyscall_openbsd_mips64.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_mips64.s | 669 ++ .../x/sys/unix/zsyscall_openbsd_ppc64.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_ppc64.s | 802 ++ .../x/sys/unix/zsyscall_openbsd_riscv64.go | 2243 +++++ .../x/sys/unix/zsyscall_openbsd_riscv64.s | 669 ++ .../x/sys/unix/zsyscall_solaris_amd64.go | 2117 +++++ .../x/sys/unix/zsyscall_zos_s390x.go | 1265 +++ .../x/sys/unix/zsysctl_openbsd_386.go | 281 + .../x/sys/unix/zsysctl_openbsd_amd64.go | 281 + .../x/sys/unix/zsysctl_openbsd_arm.go | 281 + .../x/sys/unix/zsysctl_openbsd_arm64.go | 281 + .../x/sys/unix/zsysctl_openbsd_mips64.go | 281 + .../x/sys/unix/zsysctl_openbsd_ppc64.go | 281 + .../x/sys/unix/zsysctl_openbsd_riscv64.go | 282 + .../x/sys/unix/zsysnum_darwin_amd64.go | 440 + .../x/sys/unix/zsysnum_darwin_arm64.go | 438 + .../x/sys/unix/zsysnum_dragonfly_amd64.go | 317 + .../x/sys/unix/zsysnum_freebsd_386.go | 394 + .../x/sys/unix/zsysnum_freebsd_amd64.go | 394 + .../x/sys/unix/zsysnum_freebsd_arm.go | 394 + .../x/sys/unix/zsysnum_freebsd_arm64.go | 394 + .../x/sys/unix/zsysnum_freebsd_riscv64.go | 394 + .../x/sys/unix/zsysnum_linux_386.go | 450 + .../x/sys/unix/zsysnum_linux_amd64.go | 372 + .../x/sys/unix/zsysnum_linux_arm.go | 414 + .../x/sys/unix/zsysnum_linux_arm64.go | 317 + .../x/sys/unix/zsysnum_linux_loong64.go | 311 + .../x/sys/unix/zsysnum_linux_mips.go | 434 + .../x/sys/unix/zsysnum_linux_mips64.go | 364 + .../x/sys/unix/zsysnum_linux_mips64le.go | 364 + .../x/sys/unix/zsysnum_linux_mipsle.go | 434 + .../x/sys/unix/zsysnum_linux_ppc.go | 441 + .../x/sys/unix/zsysnum_linux_ppc64.go | 413 + .../x/sys/unix/zsysnum_linux_ppc64le.go | 413 + .../x/sys/unix/zsysnum_linux_riscv64.go | 316 + .../x/sys/unix/zsysnum_linux_s390x.go | 378 + .../x/sys/unix/zsysnum_linux_sparc64.go | 392 + .../x/sys/unix/zsysnum_netbsd_386.go | 275 + .../x/sys/unix/zsysnum_netbsd_amd64.go | 275 + .../x/sys/unix/zsysnum_netbsd_arm.go | 275 + .../x/sys/unix/zsysnum_netbsd_arm64.go | 275 + .../x/sys/unix/zsysnum_openbsd_386.go | 220 + .../x/sys/unix/zsysnum_openbsd_amd64.go | 220 + .../x/sys/unix/zsysnum_openbsd_arm.go | 220 + .../x/sys/unix/zsysnum_openbsd_arm64.go | 219 + .../x/sys/unix/zsysnum_openbsd_mips64.go | 222 + .../x/sys/unix/zsysnum_openbsd_ppc64.go | 218 + .../x/sys/unix/zsysnum_openbsd_riscv64.go | 219 + .../x/sys/unix/zsysnum_zos_s390x.go | 2670 ++++++ .../golang.org/x/sys/unix/ztypes_aix_ppc.go | 354 + .../golang.org/x/sys/unix/ztypes_aix_ppc64.go | 358 + .../x/sys/unix/ztypes_darwin_amd64.go | 795 ++ .../x/sys/unix/ztypes_darwin_arm64.go | 795 ++ .../x/sys/unix/ztypes_dragonfly_amd64.go | 474 ++ .../x/sys/unix/ztypes_freebsd_386.go | 651 ++ .../x/sys/unix/ztypes_freebsd_amd64.go | 656 ++ .../x/sys/unix/ztypes_freebsd_arm.go | 642 ++ .../x/sys/unix/ztypes_freebsd_arm64.go | 636 ++ .../x/sys/unix/ztypes_freebsd_riscv64.go | 638 ++ .../golang.org/x/sys/unix/ztypes_linux.go | 5812 +++++++++++++ .../golang.org/x/sys/unix/ztypes_linux_386.go | 696 ++ .../x/sys/unix/ztypes_linux_amd64.go | 711 ++ .../golang.org/x/sys/unix/ztypes_linux_arm.go | 691 ++ .../x/sys/unix/ztypes_linux_arm64.go | 690 ++ .../x/sys/unix/ztypes_linux_loong64.go | 691 ++ .../x/sys/unix/ztypes_linux_mips.go | 696 ++ .../x/sys/unix/ztypes_linux_mips64.go | 693 ++ .../x/sys/unix/ztypes_linux_mips64le.go | 693 ++ .../x/sys/unix/ztypes_linux_mipsle.go | 696 ++ .../golang.org/x/sys/unix/ztypes_linux_ppc.go | 704 ++ .../x/sys/unix/ztypes_linux_ppc64.go | 699 ++ .../x/sys/unix/ztypes_linux_ppc64le.go | 699 ++ .../x/sys/unix/ztypes_linux_riscv64.go | 718 ++ .../x/sys/unix/ztypes_linux_s390x.go | 713 ++ .../x/sys/unix/ztypes_linux_sparc64.go | 694 ++ .../x/sys/unix/ztypes_netbsd_386.go | 586 ++ .../x/sys/unix/ztypes_netbsd_amd64.go | 594 ++ .../x/sys/unix/ztypes_netbsd_arm.go | 591 ++ .../x/sys/unix/ztypes_netbsd_arm64.go | 594 ++ .../x/sys/unix/ztypes_openbsd_386.go | 569 ++ .../x/sys/unix/ztypes_openbsd_amd64.go | 569 ++ .../x/sys/unix/ztypes_openbsd_arm.go | 576 ++ .../x/sys/unix/ztypes_openbsd_arm64.go | 569 ++ .../x/sys/unix/ztypes_openbsd_mips64.go | 569 ++ .../x/sys/unix/ztypes_openbsd_ppc64.go | 571 ++ .../x/sys/unix/ztypes_openbsd_riscv64.go | 571 ++ .../x/sys/unix/ztypes_solaris_amd64.go | 517 ++ .../golang.org/x/sys/unix/ztypes_zos_s390x.go | 415 + ecs-agent/vendor/golang.org/x/time/AUTHORS | 3 - .../vendor/golang.org/x/time/CONTRIBUTORS | 3 - .../vendor/golang.org/x/time/rate/rate.go | 160 +- .../golang.org/x/time/rate/sometimes.go | 67 + .../x/tools/cmd/stringer/stringer.go | 657 ++ .../x/tools/go/gcexportdata/gcexportdata.go | 187 + .../x/tools/go/gcexportdata/importer.go | 75 + .../tools/go/internal/packagesdriver/sizes.go | 49 + .../golang.org/x/tools/go/packages/doc.go | 220 + .../x/tools/go/packages/external.go | 101 + .../golang.org/x/tools/go/packages/golist.go | 1173 +++ .../x/tools/go/packages/golist_overlay.go | 575 ++ .../x/tools/go/packages/loadmode_string.go | 57 + .../x/tools/go/packages/packages.go | 1326 +++ .../golang.org/x/tools/go/packages/visit.go | 59 + .../x/tools/internal/gcimporter/bexport.go | 852 ++ .../x/tools/internal/gcimporter/bimport.go | 1053 +++ .../x/tools/internal/gcimporter/exportdata.go | 99 + .../x/tools/internal/gcimporter/gcimporter.go | 265 + .../x/tools/internal/gcimporter/iexport.go | 1180 +++ .../x/tools/internal/gcimporter/iimport.go | 976 +++ .../internal/gcimporter/newInterface10.go | 22 + .../internal/gcimporter/newInterface11.go | 14 + .../internal/gcimporter/support_go117.go | 16 + .../internal/gcimporter/support_go118.go | 37 + .../x/tools/internal/gcimporter/unified_no.go | 10 + .../tools/internal/gcimporter/unified_yes.go | 10 + .../x/tools/internal/gcimporter/ureader_no.go | 19 + .../tools/internal/gcimporter/ureader_yes.go | 738 ++ .../internal/packagesinternal/packages.go | 30 + .../x/tools/internal/pkgbits/codes.go | 77 + .../x/tools/internal/pkgbits/decoder.go | 517 ++ .../x/tools/internal/pkgbits/doc.go | 32 + .../x/tools/internal/pkgbits/encoder.go | 383 + .../x/tools/internal/pkgbits/flags.go | 9 + .../x/tools/internal/pkgbits/frames_go1.go | 21 + .../x/tools/internal/pkgbits/frames_go17.go | 28 + .../x/tools/internal/pkgbits/reloc.go | 42 + .../x/tools/internal/pkgbits/support.go | 17 + .../x/tools/internal/pkgbits/sync.go | 113 + .../internal/pkgbits/syncmarker_string.go | 89 + .../internal/tokeninternal/tokeninternal.go | 59 + .../tools/internal/typesinternal/errorcode.go | 1560 ++++ .../typesinternal/errorcode_string.go | 179 + .../x/tools/internal/typesinternal/types.go | 52 + .../tools/internal/typesinternal/types_118.go | 19 + .../vendor/google.golang.org/genproto/LICENSE | 202 + .../googleapis/rpc/status/status.pb.go | 201 + .../vendor/google.golang.org/grpc/AUTHORS | 1 + .../google.golang.org/grpc/CODE-OF-CONDUCT.md | 3 + .../google.golang.org/grpc/CONTRIBUTING.md | 60 + .../google.golang.org/grpc/GOVERNANCE.md | 1 + .../vendor/google.golang.org/grpc/LICENSE | 202 + .../google.golang.org/grpc/MAINTAINERS.md | 28 + .../vendor/google.golang.org/grpc/Makefile | 46 + .../vendor/google.golang.org/grpc/NOTICE.txt | 13 + .../vendor/google.golang.org/grpc/README.md | 141 + .../vendor/google.golang.org/grpc/SECURITY.md | 3 + .../grpc/attributes/attributes.go | 101 + .../vendor/google.golang.org/grpc/backoff.go | 61 + .../google.golang.org/grpc/backoff/backoff.go | 52 + .../grpc/balancer/balancer.go | 396 + .../grpc/balancer/base/balancer.go | 254 + .../grpc/balancer/base/base.go | 71 + .../grpc/balancer/conn_state_evaluator.go | 74 + .../grpc/balancer/grpclb/grpclbstate/state.go | 51 + .../grpc/balancer/roundrobin/roundrobin.go | 81 + .../grpc/balancer_conn_wrappers.go | 481 ++ .../grpc_binarylog_v1/binarylog.pb.go | 1183 +++ .../vendor/google.golang.org/grpc/call.go | 74 + .../grpc/channelz/channelz.go | 36 + .../google.golang.org/grpc/clientconn.go | 1664 ++++ .../vendor/google.golang.org/grpc/codec.go | 50 + .../vendor/google.golang.org/grpc/codegen.sh | 17 + .../grpc/codes/code_string.go | 62 + .../google.golang.org/grpc/codes/codes.go | 244 + .../grpc/connectivity/connectivity.go | 94 + .../grpc/credentials/credentials.go | 291 + .../grpc/credentials/insecure/insecure.go | 98 + .../google.golang.org/grpc/credentials/tls.go | 236 + .../google.golang.org/grpc/dialoptions.go | 622 ++ .../vendor/google.golang.org/grpc/doc.go | 26 + .../grpc/encoding/encoding.go | 133 + .../grpc/encoding/proto/proto.go | 58 + .../grpc/grpclog/component.go | 117 + .../google.golang.org/grpc/grpclog/grpclog.go | 132 + .../google.golang.org/grpc/grpclog/logger.go | 87 + .../grpc/grpclog/loggerv2.go | 259 + .../google.golang.org/grpc/interceptor.go | 104 + .../grpc/internal/backoff/backoff.go | 73 + .../balancer/gracefulswitch/gracefulswitch.go | 384 + .../grpc/internal/balancerload/load.go | 46 + .../grpc/internal/binarylog/binarylog.go | 189 + .../internal/binarylog/binarylog_testutil.go | 42 + .../grpc/internal/binarylog/env_config.go | 208 + .../grpc/internal/binarylog/method_logger.go | 435 + .../grpc/internal/binarylog/sink.go | 170 + .../grpc/internal/buffer/unbounded.go | 85 + .../grpc/internal/channelz/funcs.go | 789 ++ .../grpc/internal/channelz/id.go | 75 + .../grpc/internal/channelz/logging.go | 79 + .../grpc/internal/channelz/types.go | 722 ++ .../grpc/internal/channelz/types_linux.go | 51 + .../grpc/internal/channelz/types_nonlinux.go | 43 + .../grpc/internal/channelz/util_linux.go | 37 + .../grpc/internal/channelz/util_nonlinux.go | 27 + .../grpc/internal/credentials/credentials.go | 49 + .../grpc/internal/credentials/spiffe.go | 75 + .../grpc/internal/credentials/syscallconn.go | 58 + .../grpc/internal/credentials/util.go | 52 + .../grpc/internal/envconfig/envconfig.go | 39 + .../grpc/internal/envconfig/observability.go | 36 + .../grpc/internal/envconfig/xds.go | 101 + .../grpc/internal/grpclog/grpclog.go | 126 + .../grpc/internal/grpclog/prefixLogger.go | 81 + .../grpc/internal/grpcrand/grpcrand.go | 74 + .../grpc/internal/grpcsync/event.go | 61 + .../grpc/internal/grpcsync/oncefunc.go | 32 + .../grpc/internal/grpcutil/compressor.go | 47 + .../grpc/internal/grpcutil/encode_duration.go | 63 + .../grpc/internal/grpcutil/grpcutil.go | 20 + .../grpc/internal/grpcutil/metadata.go | 40 + .../grpc/internal/grpcutil/method.go | 88 + .../grpc/internal/grpcutil/regex.go | 31 + .../grpc/internal/internal.go | 157 + .../grpc/internal/metadata/metadata.go | 120 + .../grpc/internal/pretty/pretty.go | 82 + .../grpc/internal/resolver/config_selector.go | 167 + .../internal/resolver/dns/dns_resolver.go | 458 ++ .../resolver/passthrough/passthrough.go | 64 + .../grpc/internal/resolver/unix/unix.go | 74 + .../internal/serviceconfig/serviceconfig.go | 180 + .../grpc/internal/status/status.go | 176 + .../grpc/internal/syscall/syscall_linux.go | 112 + .../grpc/internal/syscall/syscall_nonlinux.go | 77 + .../grpc/internal/transport/bdp_estimator.go | 141 + .../grpc/internal/transport/controlbuf.go | 994 +++ .../grpc/internal/transport/defaults.go | 49 + .../grpc/internal/transport/flowcontrol.go | 215 + .../grpc/internal/transport/handler_server.go | 477 ++ .../grpc/internal/transport/http2_client.go | 1782 ++++ .../grpc/internal/transport/http2_server.go | 1439 ++++ .../grpc/internal/transport/http_util.go | 412 + .../transport/networktype/networktype.go | 46 + .../grpc/internal/transport/proxy.go | 142 + .../grpc/internal/transport/transport.go | 823 ++ .../grpc/internal/xds_handshake_cluster.go | 40 + .../grpc/keepalive/keepalive.go | 85 + .../grpc/metadata/metadata.go | 288 + .../google.golang.org/grpc/peer/peer.go | 51 + .../google.golang.org/grpc/picker_wrapper.go | 188 + .../google.golang.org/grpc/pickfirst.go | 183 + .../google.golang.org/grpc/preloader.go | 67 + .../google.golang.org/grpc/regenerate.sh | 123 + .../google.golang.org/grpc/resolver/map.go | 138 + .../grpc/resolver/resolver.go | 292 + .../grpc/resolver_conn_wrapper.go | 176 + .../vendor/google.golang.org/grpc/rpc_util.go | 915 +++ .../vendor/google.golang.org/grpc/server.go | 1971 +++++ .../google.golang.org/grpc/service_config.go | 406 + .../grpc/serviceconfig/serviceconfig.go | 44 + .../google.golang.org/grpc/stats/handlers.go | 63 + .../google.golang.org/grpc/stats/stats.go | 319 + .../google.golang.org/grpc/status/status.go | 135 + .../vendor/google.golang.org/grpc/stream.go | 1718 ++++ .../vendor/google.golang.org/grpc/tap/tap.go | 56 + .../vendor/google.golang.org/grpc/trace.go | 123 + .../vendor/google.golang.org/grpc/version.go | 22 + .../vendor/google.golang.org/grpc/vet.sh | 213 + .../vendor/google.golang.org/protobuf/AUTHORS | 3 - .../google.golang.org/protobuf/CONTRIBUTORS | 3 - .../protobuf/encoding/protojson/decode.go | 665 ++ .../protobuf/encoding/protojson/doc.go | 11 + .../protobuf/encoding/protojson/encode.go | 343 + .../encoding/protojson/well_known_types.go | 895 ++ .../protobuf/encoding/prototext/decode.go | 211 +- .../protobuf/encoding/prototext/encode.go | 140 +- .../protobuf/encoding/protowire/wire.go | 31 +- .../protobuf/internal/descfmt/stringer.go | 68 +- .../protobuf/internal/detrand/rand.go | 8 + .../internal/encoding/defval/default.go | 78 +- .../protobuf/internal/encoding/json/decode.go | 340 + .../internal/encoding/json/decode_number.go | 254 + .../internal/encoding/json/decode_string.go | 91 + .../internal/encoding/json/decode_token.go | 192 + .../protobuf/internal/encoding/json/encode.go | 276 + .../encoding/messageset/messageset.go | 40 +- .../protobuf/internal/encoding/tag/tag.go | 98 +- .../protobuf/internal/encoding/text/decode.go | 37 +- .../internal/encoding/text/decode_number.go | 49 +- .../protobuf/internal/encoding/text/doc.go | 4 +- .../protobuf/internal/encoding/text/encode.go | 13 +- .../protobuf/internal/errors/is_go112.go | 1 + .../protobuf/internal/errors/is_go113.go | 1 + .../protobuf/internal/fieldnum/any_gen.go | 13 - .../protobuf/internal/fieldnum/api_gen.go | 35 - .../internal/fieldnum/descriptor_gen.go | 240 - .../protobuf/internal/fieldnum/doc.go | 7 - .../internal/fieldnum/duration_gen.go | 13 - .../protobuf/internal/fieldnum/empty_gen.go | 10 - .../internal/fieldnum/field_mask_gen.go | 12 - .../internal/fieldnum/source_context_gen.go | 12 - .../protobuf/internal/fieldnum/struct_gen.go | 33 - .../internal/fieldnum/timestamp_gen.go | 13 - .../protobuf/internal/fieldnum/type_gen.go | 53 - .../internal/fieldnum/wrappers_gen.go | 52 - .../protobuf/internal/fieldsort/fieldsort.go | 40 - .../protobuf/internal/filedesc/build.go | 38 +- .../protobuf/internal/filedesc/desc.go | 442 +- .../protobuf/internal/filedesc/desc_init.go | 98 +- .../protobuf/internal/filedesc/desc_lazy.go | 208 +- .../protobuf/internal/filedesc/desc_list.go | 261 +- .../internal/filedesc/desc_list_gen.go | 11 + .../protobuf/internal/filedesc/placeholder.go | 136 +- .../protobuf/internal/filetype/build.go | 87 +- .../internal/flags/proto_legacy_disable.go | 1 + .../internal/flags/proto_legacy_enable.go | 1 + .../protobuf/internal/genid/any_gen.go | 34 + .../protobuf/internal/genid/api_gen.go | 106 + .../protobuf/internal/genid/descriptor_gen.go | 871 ++ .../protobuf/internal/genid/doc.go | 11 + .../protobuf/internal/genid/duration_gen.go | 34 + .../protobuf/internal/genid/empty_gen.go | 19 + .../protobuf/internal/genid/field_mask_gen.go | 31 + .../protobuf/internal/genid/goname.go | 25 + .../protobuf/internal/genid/map_entry.go | 16 + .../internal/genid/source_context_gen.go | 31 + .../protobuf/internal/genid/struct_gen.go | 116 + .../protobuf/internal/genid/timestamp_gen.go | 34 + .../protobuf/internal/genid/type_gen.go | 184 + .../protobuf/internal/genid/wrappers.go | 13 + .../protobuf/internal/genid/wrappers_gen.go | 175 + .../protobuf/internal/genname/name.go | 25 - .../protobuf/internal/impl/api_export.go | 51 +- .../protobuf/internal/impl/checkinit.go | 12 +- .../protobuf/internal/impl/codec_extension.go | 36 +- .../protobuf/internal/impl/codec_field.go | 104 +- .../protobuf/internal/impl/codec_gen.go | 974 +-- .../protobuf/internal/impl/codec_map.go | 44 +- .../protobuf/internal/impl/codec_map_go111.go | 1 + .../protobuf/internal/impl/codec_map_go112.go | 1 + .../protobuf/internal/impl/codec_message.go | 98 +- .../internal/impl/codec_messageset.go | 21 +- .../protobuf/internal/impl/codec_reflect.go | 9 +- .../protobuf/internal/impl/codec_tables.go | 290 +- .../protobuf/internal/impl/codec_unsafe.go | 1 + .../protobuf/internal/impl/convert.go | 258 +- .../protobuf/internal/impl/convert_list.go | 42 +- .../protobuf/internal/impl/convert_map.go | 32 +- .../protobuf/internal/impl/decode.go | 45 +- .../protobuf/internal/impl/encode.go | 10 +- .../protobuf/internal/impl/enum.go | 10 +- .../protobuf/internal/impl/extension.go | 26 +- .../protobuf/internal/impl/legacy_enum.go | 57 +- .../protobuf/internal/impl/legacy_export.go | 20 +- .../internal/impl/legacy_extension.go | 99 +- .../protobuf/internal/impl/legacy_message.go | 233 +- .../protobuf/internal/impl/merge.go | 38 +- .../protobuf/internal/impl/message.go | 116 +- .../protobuf/internal/impl/message_reflect.go | 191 +- .../internal/impl/message_reflect_field.go | 191 +- .../protobuf/internal/impl/pointer_reflect.go | 2 + .../protobuf/internal/impl/pointer_unsafe.go | 2 + .../protobuf/internal/impl/validate.go | 55 +- .../protobuf/internal/impl/weak.go | 16 +- .../protobuf/internal/mapsort/mapsort.go | 43 - .../protobuf/internal/order/order.go | 89 + .../protobuf/internal/order/range.go | 115 + .../protobuf/internal/strs/strings_pure.go | 1 + .../protobuf/internal/strs/strings_unsafe.go | 9 +- .../protobuf/internal/version/version.go | 54 +- .../protobuf/proto/decode.go | 50 +- .../protobuf/proto/decode_gen.go | 128 +- .../google.golang.org/protobuf/proto/doc.go | 24 +- .../protobuf/proto/encode.go | 65 +- .../google.golang.org/protobuf/proto/equal.go | 165 +- .../protobuf/proto/messageset.go | 23 +- .../google.golang.org/protobuf/proto/proto.go | 9 + .../protobuf/proto/proto_methods.go | 1 + .../protobuf/proto/proto_reflect.go | 1 + .../google.golang.org/protobuf/proto/size.go | 33 +- .../protobuf/proto/size_gen.go | 6 +- .../protobuf/reflect/protodesc/desc.go | 276 + .../protobuf/reflect/protodesc/desc_init.go | 248 + .../reflect/protodesc/desc_resolve.go | 286 + .../reflect/protodesc/desc_validate.go | 374 + .../protobuf/reflect/protodesc/proto.go | 252 + .../protobuf/reflect/protoreflect/methods.go | 1 + .../protobuf/reflect/protoreflect/proto.go | 82 +- .../protobuf/reflect/protoreflect/source.go | 85 +- .../reflect/protoreflect/source_gen.go | 475 ++ .../protobuf/reflect/protoreflect/type.go | 35 + .../protobuf/reflect/protoreflect/value.go | 2 +- .../reflect/protoreflect/value_equal.go | 168 + .../reflect/protoreflect/value_pure.go | 1 + .../reflect/protoreflect/value_union.go | 29 + .../reflect/protoreflect/value_unsafe.go | 1 + .../reflect/protoregistry/registry.go | 170 +- .../protobuf/runtime/protoiface/methods.go | 1 + .../protobuf/runtime/protoimpl/version.go | 8 +- .../types/descriptorpb/descriptor.pb.go | 4350 ++++++++++ .../protobuf/types/known/anypb/any.pb.go | 340 +- .../types/known/durationpb/duration.pb.go | 203 +- .../types/known/timestamppb/timestamp.pb.go | 178 +- .../types/known/wrapperspb/wrappers.pb.go | 760 ++ ecs-agent/vendor/gopkg.in/inf.v0/LICENSE | 28 + ecs-agent/vendor/gopkg.in/inf.v0/dec.go | 615 ++ ecs-agent/vendor/gopkg.in/inf.v0/rounder.go | 145 + ecs-agent/vendor/k8s.io/apimachinery/LICENSE | 202 + .../apimachinery/pkg/api/resource/OWNERS | 11 + .../apimachinery/pkg/api/resource/amount.go | 299 + .../pkg/api/resource/generated.pb.go | 114 + .../pkg/api/resource/generated.proto | 111 + .../apimachinery/pkg/api/resource/math.go | 310 + .../apimachinery/pkg/api/resource/quantity.go | 808 ++ .../pkg/api/resource/quantity_proto.go | 288 + .../pkg/api/resource/scale_int.go | 95 + .../apimachinery/pkg/api/resource/suffix.go | 198 + .../pkg/api/resource/zz_generated.deepcopy.go | 45 + ecs-agent/vendor/k8s.io/klog/v2/.gitignore | 17 + .../vendor/k8s.io/klog/v2/CONTRIBUTING.md | 22 + ecs-agent/vendor/k8s.io/klog/v2/LICENSE | 191 + ecs-agent/vendor/k8s.io/klog/v2/OWNERS | 14 + ecs-agent/vendor/k8s.io/klog/v2/README.md | 118 + ecs-agent/vendor/k8s.io/klog/v2/RELEASE.md | 9 + ecs-agent/vendor/k8s.io/klog/v2/SECURITY.md | 22 + .../vendor/k8s.io/klog/v2/SECURITY_CONTACTS | 20 + .../vendor/k8s.io/klog/v2/code-of-conduct.md | 3 + ecs-agent/vendor/k8s.io/klog/v2/contextual.go | 212 + ecs-agent/vendor/k8s.io/klog/v2/exit.go | 69 + ecs-agent/vendor/k8s.io/klog/v2/format.go | 65 + ecs-agent/vendor/k8s.io/klog/v2/imports.go | 38 + .../k8s.io/klog/v2/internal/buffer/buffer.go | 176 + .../k8s.io/klog/v2/internal/clock/README.md | 7 + .../k8s.io/klog/v2/internal/clock/clock.go | 178 + .../vendor/k8s.io/klog/v2/internal/dbg/dbg.go | 42 + .../klog/v2/internal/serialize/keyvalues.go | 355 + .../klog/v2/internal/severity/severity.go | 58 + .../vendor/k8s.io/klog/v2/k8s_references.go | 212 + ecs-agent/vendor/k8s.io/klog/v2/klog.go | 1715 ++++ ecs-agent/vendor/k8s.io/klog/v2/klog_file.go | 130 + .../vendor/k8s.io/klog/v2/klog_file_others.go | 19 + .../k8s.io/klog/v2/klog_file_windows.go | 34 + ecs-agent/vendor/k8s.io/klog/v2/klogr.go | 89 + ecs-agent/vendor/k8s.io/mount-utils/LICENSE | 201 + ecs-agent/vendor/k8s.io/mount-utils/OWNERS | 15 + ecs-agent/vendor/k8s.io/mount-utils/README.md | 31 + .../k8s.io/mount-utils/SECURITY_CONTACTS | 18 + .../k8s.io/mount-utils/code-of-conduct.md | 3 + ecs-agent/vendor/k8s.io/mount-utils/doc.go | 18 + .../vendor/k8s.io/mount-utils/fake_mounter.go | 242 + ecs-agent/vendor/k8s.io/mount-utils/mount.go | 362 + .../k8s.io/mount-utils/mount_helper_common.go | 157 + .../k8s.io/mount-utils/mount_helper_unix.go | 201 + .../mount-utils/mount_helper_windows.go | 111 + .../vendor/k8s.io/mount-utils/mount_linux.go | 802 ++ .../k8s.io/mount-utils/mount_unsupported.go | 105 + .../k8s.io/mount-utils/mount_windows.go | 351 + .../k8s.io/mount-utils/resizefs_linux.go | 266 + .../mount-utils/resizefs_unsupported.go | 46 + ecs-agent/vendor/k8s.io/utils/LICENSE | 202 + ecs-agent/vendor/k8s.io/utils/exec/README.md | 5 + ecs-agent/vendor/k8s.io/utils/exec/doc.go | 18 + ecs-agent/vendor/k8s.io/utils/exec/exec.go | 256 + .../vendor/k8s.io/utils/exec/fixup_go118.go | 32 + .../vendor/k8s.io/utils/exec/fixup_go119.go | 40 + ecs-agent/vendor/k8s.io/utils/io/README.md | 4 + ecs-agent/vendor/k8s.io/utils/io/read.go | 98 + .../vendor/k8s.io/utils/keymutex/hashed.go | 58 + .../vendor/k8s.io/utils/keymutex/keymutex.go | 27 + ecs-agent/vendor/modules.txt | 159 +- 874 files changed, 314601 insertions(+), 3573 deletions(-) create mode 100644 ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver create mode 100644 ecs-agent/daemon_images/csi-driver/Makefile create mode 100755 ecs-agent/daemon_images/csi-driver/build-image-as-tar create mode 100644 ecs-agent/daemon_images/csi-driver/driver/driver.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/driver_test.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/mock_mount.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/mount.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/mount_linux.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/mount_linux_test.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/mount_windows.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/node.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/node_linux.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/node_test.go create mode 100644 ecs-agent/daemon_images/csi-driver/driver/node_windows.go create mode 100644 ecs-agent/daemon_images/csi-driver/main.go create mode 100644 ecs-agent/daemon_images/csi-driver/mounter/mock_mount_windows.go create mode 100644 ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix.go create mode 100644 ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix_test.go create mode 100644 ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_windows.go create mode 100644 ecs-agent/daemon_images/csi-driver/options.go create mode 100644 ecs-agent/daemon_images/csi-driver/options_test.go create mode 100644 ecs-agent/daemon_images/csi-driver/tarfiles/csi-driver-linux-amd64.tar create mode 100755 ecs-agent/daemon_images/csi-driver/update-gomock create mode 100644 ecs-agent/daemon_images/csi-driver/util/fs/fs.go create mode 100644 ecs-agent/daemon_images/csi-driver/util/fs/fs_unsupported.go create mode 100644 ecs-agent/daemon_images/csi-driver/util/fs/fs_windows.go create mode 100644 ecs-agent/daemon_images/csi-driver/util/utils.go create mode 100644 ecs-agent/daemon_images/csi-driver/version/version.go create mode 100644 ecs-agent/daemon_images/csi-driver/volume/metrics.go create mode 100644 ecs-agent/daemon_images/csi-driver/volume/metrics_errors.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/README.md create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/file.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go create mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go create mode 100644 ecs-agent/vendor/github.com/container-storage-interface/spec/LICENSE create mode 100644 ecs-agent/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/.golangci.yaml create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/CHANGELOG.md create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/CONTRIBUTING.md create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/LICENSE create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/README.md create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/discard.go create mode 100644 ecs-agent/vendor/github.com/go-logr/logr/logr.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/AUTHORS create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/CONTRIBUTORS create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/LICENSE create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/Makefile create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/clone.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/custom_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/decode.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/deprecated.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/discard.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/duration.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/duration_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/encode.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/encode_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/equal.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/lib.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/lib_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/message_set.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/properties.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/properties_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/skip_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/table_merge.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/text.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/text_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/text_parser.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers.go create mode 100644 ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go create mode 100644 ecs-agent/vendor/github.com/golang/protobuf/jsonpb/decode.go create mode 100644 ecs-agent/vendor/github.com/golang/protobuf/jsonpb/encode.go create mode 100644 ecs-agent/vendor/github.com/golang/protobuf/jsonpb/json.go create mode 100644 ecs-agent/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go create mode 100644 ecs-agent/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go create mode 100644 ecs-agent/vendor/github.com/google/uuid/null.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go create mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go create mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http/httpguts/guts.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http/httpguts/httplex.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/.gitignore create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/Dockerfile create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/Makefile create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/ascii.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/ciphers.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/client_conn_pool.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/databuffer.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/errors.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/flow.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/frame.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/go111.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/go115.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/go118.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/gotrack.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/headermap.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/hpack/encode.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/hpack/hpack.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/hpack/huffman.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/hpack/static_table.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/hpack/tables.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/http2.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/not_go111.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/not_go115.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/not_go118.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/pipe.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/server.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/transport.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/write.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/writesched.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/writesched_priority.go create mode 100644 ecs-agent/vendor/golang.org/x/net/http2/writesched_random.go create mode 100644 ecs-agent/vendor/golang.org/x/net/internal/timeseries/timeseries.go create mode 100644 ecs-agent/vendor/golang.org/x/net/trace/events.go create mode 100644 ecs-agent/vendor/golang.org/x/net/trace/histogram.go create mode 100644 ecs-agent/vendor/golang.org/x/net/trace/trace.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/.gitignore create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/README.md create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/affinity_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/aliases.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_386.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_386.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_amd64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_loong64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_s390x.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/asm_zos_s390x.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/bluetooth_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/cap_freebsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/constants.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_darwin.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_dragonfly.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_freebsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_netbsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_openbsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dev_zos.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/dirent.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/endian_big.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/endian_little.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/env_unix.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/epoll_zos.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/fcntl.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/fcntl_darwin.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/fdset.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/fstatfs_zos.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/gccgo.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/gccgo_c.c create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ifreq_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ioctl.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ioctl_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ioctl_zos.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/mkall.sh create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/mkerrors.sh create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/pagesize_unix.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/pledge_openbsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ptrace_darwin.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ptrace_ios.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/race.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/race0.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdents.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_bsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_illumos.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/timestruct.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/unveil_openbsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/xattr_bsd.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go create mode 100644 ecs-agent/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go delete mode 100644 ecs-agent/vendor/golang.org/x/time/AUTHORS delete mode 100644 ecs-agent/vendor/golang.org/x/time/CONTRIBUTORS create mode 100644 ecs-agent/vendor/golang.org/x/time/rate/sometimes.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/external.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go create mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go create mode 100644 ecs-agent/vendor/google.golang.org/genproto/LICENSE create mode 100644 ecs-agent/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/AUTHORS create mode 100644 ecs-agent/vendor/google.golang.org/grpc/CODE-OF-CONDUCT.md create mode 100644 ecs-agent/vendor/google.golang.org/grpc/CONTRIBUTING.md create mode 100644 ecs-agent/vendor/google.golang.org/grpc/GOVERNANCE.md create mode 100644 ecs-agent/vendor/google.golang.org/grpc/LICENSE create mode 100644 ecs-agent/vendor/google.golang.org/grpc/MAINTAINERS.md create mode 100644 ecs-agent/vendor/google.golang.org/grpc/Makefile create mode 100644 ecs-agent/vendor/google.golang.org/grpc/NOTICE.txt create mode 100644 ecs-agent/vendor/google.golang.org/grpc/README.md create mode 100644 ecs-agent/vendor/google.golang.org/grpc/SECURITY.md create mode 100644 ecs-agent/vendor/google.golang.org/grpc/attributes/attributes.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/backoff.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/backoff/backoff.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer/balancer.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer/base/balancer.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer/base/base.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer/conn_state_evaluator.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer/grpclb/grpclbstate/state.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/balancer_conn_wrappers.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/call.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/channelz/channelz.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/clientconn.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/codec.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/codegen.sh create mode 100644 ecs-agent/vendor/google.golang.org/grpc/codes/code_string.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/codes/codes.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/connectivity/connectivity.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/credentials/credentials.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/credentials/insecure/insecure.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/credentials/tls.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/dialoptions.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/doc.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/encoding/encoding.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/encoding/proto/proto.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/grpclog/component.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/grpclog/grpclog.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/grpclog/logger.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/grpclog/loggerv2.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/interceptor.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/backoff/backoff.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/balancerload/load.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/env_config.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/sink.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/buffer/unbounded.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/funcs.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/id.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/logging.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_linux.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_linux.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/credentials/credentials.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/credentials/spiffe.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/credentials/util.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/observability.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/xds.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/event.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/grpcutil.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/metadata.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/method.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/regex.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/internal.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/metadata/metadata.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/pretty/pretty.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/resolver/config_selector.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/resolver/passthrough/passthrough.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/resolver/unix/unix.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/serviceconfig/serviceconfig.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/status/status.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/controlbuf.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/defaults.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/handler_server.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_client.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_server.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/http_util.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/networktype/networktype.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/proxy.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/transport/transport.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/keepalive/keepalive.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/metadata/metadata.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/peer/peer.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/picker_wrapper.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/pickfirst.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/preloader.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/regenerate.sh create mode 100644 ecs-agent/vendor/google.golang.org/grpc/resolver/map.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/resolver/resolver.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/resolver_conn_wrapper.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/rpc_util.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/server.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/service_config.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/stats/handlers.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/stats/stats.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/status/status.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/stream.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/tap/tap.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/trace.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/version.go create mode 100644 ecs-agent/vendor/google.golang.org/grpc/vet.sh delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/AUTHORS delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/CONTRIBUTORS create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/decode.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/encode.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/any_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/api_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/descriptor_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/doc.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/duration_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/empty_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/field_mask_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/source_context_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/struct_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/timestamp_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/type_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/wrappers_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/fieldsort/fieldsort.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/any_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/api_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/doc.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/goname.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/map_entry.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/type_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/genname/name.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/mapsort/mapsort.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/order/order.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/internal/order/range.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go create mode 100644 ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go create mode 100644 ecs-agent/vendor/gopkg.in/inf.v0/LICENSE create mode 100644 ecs-agent/vendor/gopkg.in/inf.v0/dec.go create mode 100644 ecs-agent/vendor/gopkg.in/inf.v0/rounder.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/LICENSE create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/amount.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/math.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/scale_int.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/suffix.go create mode 100644 ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/.gitignore create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/CONTRIBUTING.md create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/LICENSE create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/OWNERS create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/README.md create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/RELEASE.md create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/SECURITY.md create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/SECURITY_CONTACTS create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/code-of-conduct.md create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/contextual.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/exit.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/format.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/imports.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/internal/buffer/buffer.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/internal/clock/README.md create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/internal/clock/clock.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/internal/dbg/dbg.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/internal/severity/severity.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/k8s_references.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/klog.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/klog_file.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/klog_file_others.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/klog_file_windows.go create mode 100644 ecs-agent/vendor/k8s.io/klog/v2/klogr.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/LICENSE create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/OWNERS create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/README.md create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/doc.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go create mode 100644 ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go create mode 100644 ecs-agent/vendor/k8s.io/utils/LICENSE create mode 100644 ecs-agent/vendor/k8s.io/utils/exec/README.md create mode 100644 ecs-agent/vendor/k8s.io/utils/exec/doc.go create mode 100644 ecs-agent/vendor/k8s.io/utils/exec/exec.go create mode 100644 ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go create mode 100644 ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go create mode 100644 ecs-agent/vendor/k8s.io/utils/io/README.md create mode 100644 ecs-agent/vendor/k8s.io/utils/io/read.go create mode 100644 ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go create mode 100644 ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go diff --git a/ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver b/ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver new file mode 100644 index 0000000000..ba01c8d58e --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver @@ -0,0 +1,5 @@ +FROM scratch + +COPY csi-driver /bin/ + +ENTRYPOINT ["/bin/csi-driver"] \ No newline at end of file diff --git a/ecs-agent/daemon_images/csi-driver/Makefile b/ecs-agent/daemon_images/csi-driver/Makefile new file mode 100644 index 0000000000..5b29d3cab0 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/Makefile @@ -0,0 +1,37 @@ +CSI_DRIVER_VERSION?=v1.0.0 +GO111MODULE=on +GOPATH=$(shell go env GOPATH) +BUILD_DATE=$(shell date -u -Iseconds) + +SOURCEDIR=./ +CSI_DRIVER_SOURCES=$(shell find $(SOURCEDIR) -name '*.go') + +OS?=linux +ARCH?=amd64 +.PHONY: build-image +build-image: bin/csi-driver + OS=$(OS) ARCH=$(ARCH) ./build-image-as-tar + +# Build binary for linux only +.PHONY: bin/csi-driver +bin/csi-driver: $(CSI_DRIVER_SOURCES) + CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -ldflags "\ + -X \"github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/version.version=$(CSI_DRIVER_VERSION)\" \ + -X \"github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/version.buildDate=$(BUILD_DATE)\"" \ + -o ./bin/csi-driver ./ + +.PHONY: test +test: + go test -v -race -tags unit -timeout=120s ./... + +# please include this `mockgen` into PATH +bin/mockgen: | bin + go install github.com/golang/mock/mockgen@v1.6.0 + +.PHONY: mockgen +mockgen: bin/mockgen + ./update-gomock + +.PHONY: clean +clean: + rm -rf bin/* diff --git a/ecs-agent/daemon_images/csi-driver/build-image-as-tar b/ecs-agent/daemon_images/csi-driver/build-image-as-tar new file mode 100755 index 0000000000..873cfccac8 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/build-image-as-tar @@ -0,0 +1,20 @@ +#!/bin/bash + +# This script is used to build the "csi-driver" container image into a tarball. + +set -eux + +CUR_DIR=$(cd $(dirname "${BASH_SOURCE[0]}"); pwd) + +IMAGE_REF=amazon/amazon-ebs-csi-driver:latest +IMAGE_FILE_NAME=csi-driver +IMAGE_TAR=${IMAGE_FILE_NAME}-${OS}-${ARCH}.tar + +cp bin/csi-driver ./csi-driver +mkdir -p ${CUR_DIR}/tarfiles + +docker build -t "${IMAGE_REF}" -f Dockerfile.csi_driver . +docker save "${IMAGE_REF}" -o ${CUR_DIR}/tarfiles/"${IMAGE_TAR}" + +rm ./csi-driver +rm bin/csi-driver diff --git a/ecs-agent/daemon_images/csi-driver/driver/driver.go b/ecs-agent/daemon_images/csi-driver/driver/driver.go new file mode 100644 index 0000000000..0f340c8fb5 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/driver.go @@ -0,0 +1,100 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "context" + "net" + + "github.com/container-storage-interface/spec/lib/go/csi" + "google.golang.org/grpc" + "k8s.io/klog/v2" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/util" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/version" +) + +type Driver struct { + nodeService + + srv *grpc.Server + options *DriverOptions +} + +type DriverOptions struct { + endpoint string +} + +func NewDriver(options ...func(*DriverOptions)) (*Driver, error) { + driverInfo := version.GetVersionInfo() + klog.InfoS("Driver Information", + "Driver", "csi-driver", + "Version", driverInfo.Version, + ) + klog.V(4).InfoS("Additional driver information", + "BuildDate", driverInfo.BuildDate, + "RuntimeGoVersion", driverInfo.GoVersion, + "RuntimePlatform", driverInfo.Platform, + ) + + driverOptions := DriverOptions{} + for _, option := range options { + option(&driverOptions) + } + + driver := Driver{ + nodeService: newNodeService(), + options: &driverOptions, + } + return &driver, nil +} + +func (d *Driver) Run() error { + scheme, addr, err := util.ParseEndpoint(d.options.endpoint) + if err != nil { + return err + } + + listener, err := net.Listen(scheme, addr) + if err != nil { + return err + } + + logErr := func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { + resp, err := handler(ctx, req) + if err != nil { + klog.ErrorS(err, "GRPC error") + } + return resp, err + } + opts := []grpc.ServerOption{ + grpc.UnaryInterceptor(logErr), + } + d.srv = grpc.NewServer(opts...) + csi.RegisterNodeServer(d.srv, d) + + klog.V(4).InfoS("Listening for connections", "address", listener.Addr()) + return d.srv.Serve(listener) +} + +func (d *Driver) Stop() { + klog.InfoS("Stopping the driver") + d.srv.Stop() +} + +func WithEndpoint(endpoint string) func(*DriverOptions) { + return func(o *DriverOptions) { + o.endpoint = endpoint + } +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/driver_test.go b/ecs-agent/daemon_images/csi-driver/driver/driver_test.go new file mode 100644 index 0000000000..5e28ac2917 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/driver_test.go @@ -0,0 +1,32 @@ +//go:build unit +// +build unit + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestWithEndpoint(t *testing.T) { + value := "endpoint" + options := &DriverOptions{} + + WithEndpoint(value)(options) + + assert.Equal(t, value, options.endpoint) +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/mock_mount.go b/ecs-agent/daemon_images/csi-driver/driver/mock_mount.go new file mode 100644 index 0000000000..81820dd43b --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/mock_mount.go @@ -0,0 +1,51 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./driver/mount.go + +// Package driver is a generated GoMock package. +package driver + +import ( + reflect "reflect" + + gomock "github.com/golang/mock/gomock" + mount_utils "k8s.io/mount-utils" +) + +// MockMounter is a mock of Mounter interface. +type MockMounter struct { + mount_utils.Interface + ctrl *gomock.Controller + recorder *MockMounterMockRecorder +} + +// MockMounterMockRecorder is the mock recorder for MockMounter. +type MockMounterMockRecorder struct { + mock *MockMounter +} + +// NewMockMounter creates a new mock instance. +func NewMockMounter(ctrl *gomock.Controller) *MockMounter { + mock := &MockMounter{ctrl: ctrl} + mock.recorder = &MockMounterMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockMounter) EXPECT() *MockMounterMockRecorder { + return m.recorder +} + +// PathExists mocks base method. +func (m *MockMounter) PathExists(path string) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "PathExists", path) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// PathExists indicates an expected call of PathExists. +func (mr *MockMounterMockRecorder) PathExists(path interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PathExists", reflect.TypeOf((*MockMounter)(nil).PathExists), path) +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount.go b/ecs-agent/daemon_images/csi-driver/driver/mount.go new file mode 100644 index 0000000000..a44b973f51 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/mount.go @@ -0,0 +1,39 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + mountutils "k8s.io/mount-utils" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/mounter" +) + +// Mounter is the interface implemented by NodeMounter. +type Mounter interface { + PathExists(path string) (bool, error) +} + +// NodeMounter implements Mounter. +type NodeMounter struct { + *mountutils.SafeFormatAndMount +} + +func newNodeMounter() (Mounter, error) { + // mounter.NewSafeMounter returns a SafeFormatAndMount + safeMounter, err := mounter.NewSafeMounter() + if err != nil { + return nil, err + } + return &NodeMounter{safeMounter}, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount_linux.go b/ecs-agent/daemon_images/csi-driver/driver/mount_linux.go new file mode 100644 index 0000000000..f0fb340878 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/mount_linux.go @@ -0,0 +1,25 @@ +//go:build linux +// +build linux + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + mountutils "k8s.io/mount-utils" +) + +func (m *NodeMounter) PathExists(path string) (bool, error) { + return mountutils.PathExists(path) +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount_linux_test.go b/ecs-agent/daemon_images/csi-driver/driver/mount_linux_test.go new file mode 100644 index 0000000000..b230368782 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/mount_linux_test.go @@ -0,0 +1,50 @@ +//go:build linux && unit +// +build linux,unit + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "os" + "path/filepath" + "testing" +) + +func TestPathExists(t *testing.T) { + // set up the full driver and its environment + dir, err := os.MkdirTemp("", "mount-ebs-csi") + if err != nil { + t.Fatalf("error creating directory %v", err) + } + defer os.RemoveAll(dir) + + targetPath := filepath.Join(dir, "notafile") + + mountObj, err := newNodeMounter() + if err != nil { + t.Fatalf("error creating mounter %v", err) + } + + exists, err := mountObj.PathExists(targetPath) + + if err != nil { + t.Fatalf("Expect no error but got: %v", err) + } + + if exists { + t.Fatalf("Expected file %s to not exist", targetPath) + } + +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount_windows.go b/ecs-agent/daemon_images/csi-driver/driver/mount_windows.go new file mode 100644 index 0000000000..12cd416984 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/mount_windows.go @@ -0,0 +1,31 @@ +//go:build windows +// +build windows + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "fmt" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/mounter" +) + +func (m *NodeMounter) PathExists(path string) (bool, error) { + proxyMounter, ok := m.SafeFormatAndMount.Interface.(*mounter.CSIProxyMounter) + if !ok { + return false, fmt.Errorf("failed to cast mounter to csi proxy mounter") + } + return proxyMounter.ExistsPath(path) +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/node.go b/ecs-agent/daemon_images/csi-driver/driver/node.go new file mode 100644 index 0000000000..26cae11e32 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/node.go @@ -0,0 +1,105 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "context" + + "github.com/container-storage-interface/spec/lib/go/csi" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + "k8s.io/klog/v2" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/volume" +) + +// nodeService represents the node service of CSI driver +type nodeService struct { + mounter Mounter + csi.UnimplementedNodeServer +} + +func newNodeService() nodeService { + klog.V(4).InfoS("New node service") + nodeMounter, err := newNodeMounter() + if err != nil { + panic(err) + } + + return nodeService{ + mounter: nodeMounter, + } +} + +func (d *nodeService) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) (*csi.NodeGetVolumeStatsResponse, error) { + klog.V(4).InfoS("NodeGetVolumeStats: called", "args", *req) + if len(req.VolumeId) == 0 { + return nil, status.Error(codes.InvalidArgument, "NodeGetVolumeStats volume ID was empty") + } + + if len(req.VolumePath) == 0 { + return nil, status.Error(codes.InvalidArgument, "NodeGetVolumeStats volume path was empty") + } + + exists, err := d.mounter.PathExists(req.VolumePath) + if err != nil { + return nil, status.Errorf(codes.Internal, "unknown error when stat on %s: %v", req.VolumePath, err) + } + if !exists { + return nil, status.Errorf(codes.NotFound, "path %s does not exist", req.VolumePath) + } + + isBlock, err := d.IsBlockDevice(req.VolumePath) + if err != nil { + return nil, status.Errorf(codes.Internal, "failed to determine whether %s is block device: %v", req.VolumePath, err) + } + + if isBlock { + bcap, blockErr := d.getBlockSizeBytes(req.VolumePath) + if blockErr != nil { + return nil, status.Errorf(codes.Internal, "failed to get block capacity on path %s: %v", req.VolumePath, err) + } + return &csi.NodeGetVolumeStatsResponse{ + Usage: []*csi.VolumeUsage{ + { + Unit: csi.VolumeUsage_BYTES, + Total: bcap, + }, + }, + }, nil + } + + metricsProvider := volume.NewMetricsStatFS(req.VolumePath) + metrics, err := metricsProvider.GetMetrics() + if err != nil { + return nil, status.Errorf(codes.Internal, "failed to get fs info on path %s: %v", req.VolumePath, err) + } + + return &csi.NodeGetVolumeStatsResponse{ + Usage: []*csi.VolumeUsage{ + { + Unit: csi.VolumeUsage_BYTES, + Available: metrics.Available.AsDec().UnscaledBig().Int64(), + Total: metrics.Capacity.AsDec().UnscaledBig().Int64(), + Used: metrics.Used.AsDec().UnscaledBig().Int64(), + }, + { + Unit: csi.VolumeUsage_INODES, + Available: metrics.InodesFree.AsDec().UnscaledBig().Int64(), + Total: metrics.Inodes.AsDec().UnscaledBig().Int64(), + Used: metrics.InodesUsed.AsDec().UnscaledBig().Int64(), + }, + }, + }, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/node_linux.go b/ecs-agent/daemon_images/csi-driver/driver/node_linux.go new file mode 100644 index 0000000000..94e4035cc8 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/node_linux.go @@ -0,0 +1,50 @@ +//go:build linux +// +build linux + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "fmt" + "strconv" + "strings" + + "golang.org/x/sys/unix" +) + +// IsBlock checks if the given path is a block device +func (d *nodeService) IsBlockDevice(fullPath string) (bool, error) { + var st unix.Stat_t + err := unix.Stat(fullPath, &st) + if err != nil { + return false, err + } + + return (st.Mode & unix.S_IFMT) == unix.S_IFBLK, nil +} + +func (d *nodeService) getBlockSizeBytes(devicePath string) (int64, error) { + cmd := d.mounter.(*NodeMounter).Exec.Command("blockdev", "--getsize64", devicePath) + output, err := cmd.Output() + if err != nil { + return -1, fmt.Errorf("error when getting size of block volume at path %s: output: %s, err: %w", devicePath, string(output), err) + } + strOut := strings.TrimSpace(string(output)) + gotSizeBytes, err := strconv.ParseInt(strOut, 10, 64) + if err != nil { + return -1, fmt.Errorf("failed to parse size %s as int", strOut) + } + return gotSizeBytes, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/node_test.go b/ecs-agent/daemon_images/csi-driver/driver/node_test.go new file mode 100644 index 0000000000..ffe6992f7e --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/node_test.go @@ -0,0 +1,161 @@ +//go:build linux && unit +// +build linux,unit + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "context" + "errors" + "os" + "testing" + + "github.com/container-storage-interface/spec/lib/go/csi" + "github.com/golang/mock/gomock" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +var ( + volumeID = "voltest" + nvmeName = "/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_voltest" +) + +func TestNodeGetVolumeStats(t *testing.T) { + testCases := []struct { + name string + testFunc func(t *testing.T) + }{ + { + name: "success normal", + testFunc: func(t *testing.T) { + mockCtl := gomock.NewController(t) + defer mockCtl.Finish() + + mockMounter := NewMockMounter(mockCtl) + VolumePath := "./test" + err := os.MkdirAll(VolumePath, 0644) + if err != nil { + t.Fatalf("fail to create dir: %v", err) + } + defer os.RemoveAll(VolumePath) + + mockMounter.EXPECT().PathExists(VolumePath).Return(true, nil) + + awsDriver := nodeService{ + mounter: mockMounter, + } + + req := &csi.NodeGetVolumeStatsRequest{ + VolumeId: volumeID, + VolumePath: VolumePath, + } + _, err = awsDriver.NodeGetVolumeStats(context.TODO(), req) + if err != nil { + t.Fatalf("Expect no error but got: %v", err) + } + }, + }, + { + name: "fail path not exist", + testFunc: func(t *testing.T) { + mockCtl := gomock.NewController(t) + defer mockCtl.Finish() + + mockMounter := NewMockMounter(mockCtl) + VolumePath := "/test" + + mockMounter.EXPECT().PathExists(VolumePath).Return(false, nil) + + awsDriver := nodeService{ + mounter: mockMounter, + } + + req := &csi.NodeGetVolumeStatsRequest{ + VolumeId: volumeID, + VolumePath: VolumePath, + } + _, err := awsDriver.NodeGetVolumeStats(context.TODO(), req) + expectErr(t, err, codes.NotFound) + }, + }, + { + name: "fail can't determine block device", + testFunc: func(t *testing.T) { + mockCtl := gomock.NewController(t) + defer mockCtl.Finish() + + mockMounter := NewMockMounter(mockCtl) + VolumePath := "/test" + + mockMounter.EXPECT().PathExists(VolumePath).Return(true, nil) + + awsDriver := nodeService{ + mounter: mockMounter, + } + + req := &csi.NodeGetVolumeStatsRequest{ + VolumeId: volumeID, + VolumePath: VolumePath, + } + _, err := awsDriver.NodeGetVolumeStats(context.TODO(), req) + expectErr(t, err, codes.Internal) + }, + }, + { + name: "fail error calling existsPath", + testFunc: func(t *testing.T) { + mockCtl := gomock.NewController(t) + defer mockCtl.Finish() + + mockMounter := NewMockMounter(mockCtl) + VolumePath := "/test" + + mockMounter.EXPECT().PathExists(VolumePath).Return(false, errors.New("get existsPath call fail")) + + awsDriver := nodeService{ + mounter: mockMounter, + } + + req := &csi.NodeGetVolumeStatsRequest{ + VolumeId: volumeID, + VolumePath: VolumePath, + } + _, err := awsDriver.NodeGetVolumeStats(context.TODO(), req) + expectErr(t, err, codes.Internal) + }, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, tc.testFunc) + } + +} + +func expectErr(t *testing.T, actualErr error, expectedCode codes.Code) { + if actualErr == nil { + t.Fatalf("Expect error but got no error") + } + + status, ok := status.FromError(actualErr) + if !ok { + t.Fatalf("Failed to get error status code from error: %v", actualErr) + } + + if status.Code() != expectedCode { + t.Fatalf("Expected error code %d, got %d message %s", codes.InvalidArgument, status.Code(), status.Message()) + } +} diff --git a/ecs-agent/daemon_images/csi-driver/driver/node_windows.go b/ecs-agent/daemon_images/csi-driver/driver/node_windows.go new file mode 100644 index 0000000000..8676b500d9 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/driver/node_windows.go @@ -0,0 +1,43 @@ +//go:build windows +// +build windows + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package driver + +import ( + "fmt" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/mounter" +) + +// IsBlockDevice checks if the given path is a block device +func (d *nodeService) IsBlockDevice(fullPath string) (bool, error) { + return false, nil +} + +// getBlockSizeBytes gets the size of the disk in bytes +func (d *nodeService) getBlockSizeBytes(devicePath string) (int64, error) { + proxyMounter, ok := (d.mounter.(*NodeMounter)).SafeFormatAndMount.Interface.(*mounter.CSIProxyMounter) + if !ok { + return -1, fmt.Errorf("failed to cast mounter to csi proxy mounter") + } + + sizeInBytes, err := proxyMounter.GetDeviceSize(devicePath) + if err != nil { + return -1, err + } + + return sizeInBytes, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/main.go b/ecs-agent/daemon_images/csi-driver/main.go new file mode 100644 index 0000000000..912cfd0226 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/main.go @@ -0,0 +1,47 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package main + +import ( + "flag" + + "k8s.io/klog/v2" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/driver" +) + +func main() { + fs := flag.NewFlagSet("csi-driver", flag.ExitOnError) + klog.InitFlags(fs) + srvOptions, err := GetServerOptions(fs) + if err != nil { + klog.ErrorS(err, "Failed to get the server options") + klog.FlushAndExit(klog.ExitFlushTimeout, 1) + } + + klog.V(4).InfoS("Server Options are provided", "ServerOptions", srvOptions) + + drv, err := driver.NewDriver( + driver.WithEndpoint(srvOptions.Endpoint), + ) + if err != nil { + klog.ErrorS(err, "Failed to create driver") + klog.FlushAndExit(klog.ExitFlushTimeout, 1) + } + + if err := drv.Run(); err != nil { + klog.ErrorS(err, "Failed to run driver") + klog.FlushAndExit(klog.ExitFlushTimeout, 1) + } +} diff --git a/ecs-agent/daemon_images/csi-driver/mounter/mock_mount_windows.go b/ecs-agent/daemon_images/csi-driver/mounter/mock_mount_windows.go new file mode 100644 index 0000000000..6193823f7e --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/mounter/mock_mount_windows.go @@ -0,0 +1,352 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: ./mounter/safe_mounter_windows.go + +// Package mounter is a generated GoMock package. +package mounter + +import ( + reflect "reflect" + + gomock "github.com/golang/mock/gomock" + mount "k8s.io/mount-utils" +) + +// MockProxyMounter is a mock of ProxyMounter interface. +type MockProxyMounter struct { + mount.Interface + ctrl *gomock.Controller + recorder *MockProxyMounterMockRecorder +} + +// MockProxyMounterMockRecorder is the mock recorder for MockProxyMounter. +type MockProxyMounterMockRecorder struct { + mock *MockProxyMounter +} + +// NewMockProxyMounter creates a new mock instance. +func NewMockProxyMounter(ctrl *gomock.Controller) *MockProxyMounter { + mock := &MockProxyMounter{ctrl: ctrl} + mock.recorder = &MockProxyMounterMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use. +func (m *MockProxyMounter) EXPECT() *MockProxyMounterMockRecorder { + return m.recorder +} + +// CanSafelySkipMountPointCheck mocks base method. +func (m *MockProxyMounter) CanSafelySkipMountPointCheck() bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "CanSafelySkipMountPointCheck") + ret0, _ := ret[0].(bool) + return ret0 +} + +// CanSafelySkipMountPointCheck indicates an expected call of CanSafelySkipMountPointCheck. +func (mr *MockProxyMounterMockRecorder) CanSafelySkipMountPointCheck() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CanSafelySkipMountPointCheck", reflect.TypeOf((*MockProxyMounter)(nil).CanSafelySkipMountPointCheck)) +} + +// ExistsPath mocks base method. +func (m *MockProxyMounter) ExistsPath(path string) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ExistsPath", path) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ExistsPath indicates an expected call of ExistsPath. +func (mr *MockProxyMounterMockRecorder) ExistsPath(path interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsPath", reflect.TypeOf((*MockProxyMounter)(nil).ExistsPath), path) +} + +// FindDiskByLun mocks base method. +func (m *MockProxyMounter) FindDiskByLun(lun string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FindDiskByLun", lun) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FindDiskByLun indicates an expected call of FindDiskByLun. +func (mr *MockProxyMounterMockRecorder) FindDiskByLun(lun interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindDiskByLun", reflect.TypeOf((*MockProxyMounter)(nil).FindDiskByLun), lun) +} + +// FormatAndMountSensitiveWithFormatOptions mocks base method. +func (m *MockProxyMounter) FormatAndMountSensitiveWithFormatOptions(source, target, fstype string, options, sensitiveOptions, formatOptions []string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "FormatAndMountSensitiveWithFormatOptions", source, target, fstype, options, sensitiveOptions, formatOptions) + ret0, _ := ret[0].(error) + return ret0 +} + +// FormatAndMountSensitiveWithFormatOptions indicates an expected call of FormatAndMountSensitiveWithFormatOptions. +func (mr *MockProxyMounterMockRecorder) FormatAndMountSensitiveWithFormatOptions(source, target, fstype, options, sensitiveOptions, formatOptions interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FormatAndMountSensitiveWithFormatOptions", reflect.TypeOf((*MockProxyMounter)(nil).FormatAndMountSensitiveWithFormatOptions), source, target, fstype, options, sensitiveOptions, formatOptions) +} + +// GetDeviceNameFromMount mocks base method. +func (m *MockProxyMounter) GetDeviceNameFromMount(mountPath, pluginMountDir string) (string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeviceNameFromMount", mountPath, pluginMountDir) + ret0, _ := ret[0].(string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeviceNameFromMount indicates an expected call of GetDeviceNameFromMount. +func (mr *MockProxyMounterMockRecorder) GetDeviceNameFromMount(mountPath, pluginMountDir interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeviceNameFromMount", reflect.TypeOf((*MockProxyMounter)(nil).GetDeviceNameFromMount), mountPath, pluginMountDir) +} + +// GetDeviceSize mocks base method. +func (m *MockProxyMounter) GetDeviceSize(devicePath string) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetDeviceSize", devicePath) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetDeviceSize indicates an expected call of GetDeviceSize. +func (mr *MockProxyMounterMockRecorder) GetDeviceSize(devicePath interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeviceSize", reflect.TypeOf((*MockProxyMounter)(nil).GetDeviceSize), devicePath) +} + +// GetMountRefs mocks base method. +func (m *MockProxyMounter) GetMountRefs(pathname string) ([]string, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetMountRefs", pathname) + ret0, _ := ret[0].([]string) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetMountRefs indicates an expected call of GetMountRefs. +func (mr *MockProxyMounterMockRecorder) GetMountRefs(pathname interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMountRefs", reflect.TypeOf((*MockProxyMounter)(nil).GetMountRefs), pathname) +} + +// GetVolumeSizeInBytes mocks base method. +func (m *MockProxyMounter) GetVolumeSizeInBytes(deviceMountPath string) (int64, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetVolumeSizeInBytes", deviceMountPath) + ret0, _ := ret[0].(int64) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetVolumeSizeInBytes indicates an expected call of GetVolumeSizeInBytes. +func (mr *MockProxyMounterMockRecorder) GetVolumeSizeInBytes(deviceMountPath interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeSizeInBytes", reflect.TypeOf((*MockProxyMounter)(nil).GetVolumeSizeInBytes), deviceMountPath) +} + +// IsLikelyNotMountPoint mocks base method. +func (m *MockProxyMounter) IsLikelyNotMountPoint(file string) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsLikelyNotMountPoint", file) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsLikelyNotMountPoint indicates an expected call of IsLikelyNotMountPoint. +func (mr *MockProxyMounterMockRecorder) IsLikelyNotMountPoint(file interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsLikelyNotMountPoint", reflect.TypeOf((*MockProxyMounter)(nil).IsLikelyNotMountPoint), file) +} + +// IsMountPoint mocks base method. +func (m *MockProxyMounter) IsMountPoint(file string) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsMountPoint", file) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// IsMountPoint indicates an expected call of IsMountPoint. +func (mr *MockProxyMounterMockRecorder) IsMountPoint(file interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsMountPoint", reflect.TypeOf((*MockProxyMounter)(nil).IsMountPoint), file) +} + +// IsMountPointMatch mocks base method. +func (m *MockProxyMounter) IsMountPointMatch(mp mount.MountPoint, dir string) bool { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "IsMountPointMatch", mp, dir) + ret0, _ := ret[0].(bool) + return ret0 +} + +// IsMountPointMatch indicates an expected call of IsMountPointMatch. +func (mr *MockProxyMounterMockRecorder) IsMountPointMatch(mp, dir interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsMountPointMatch", reflect.TypeOf((*MockProxyMounter)(nil).IsMountPointMatch), mp, dir) +} + +// List mocks base method. +func (m *MockProxyMounter) List() ([]mount.MountPoint, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List") + ret0, _ := ret[0].([]mount.MountPoint) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// List indicates an expected call of List. +func (mr *MockProxyMounterMockRecorder) List() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockProxyMounter)(nil).List)) +} + +// MakeFile mocks base method. +func (m *MockProxyMounter) MakeFile(pathname string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MakeFile", pathname) + ret0, _ := ret[0].(error) + return ret0 +} + +// MakeFile indicates an expected call of MakeFile. +func (mr *MockProxyMounterMockRecorder) MakeFile(pathname interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MakeFile", reflect.TypeOf((*MockProxyMounter)(nil).MakeFile), pathname) +} + +// Mount mocks base method. +func (m *MockProxyMounter) Mount(source, target, fstype string, options []string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Mount", source, target, fstype, options) + ret0, _ := ret[0].(error) + return ret0 +} + +// Mount indicates an expected call of Mount. +func (mr *MockProxyMounterMockRecorder) Mount(source, target, fstype, options interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Mount", reflect.TypeOf((*MockProxyMounter)(nil).Mount), source, target, fstype, options) +} + +// MountSensitive mocks base method. +func (m *MockProxyMounter) MountSensitive(source, target, fstype string, options, sensitiveOptions []string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MountSensitive", source, target, fstype, options, sensitiveOptions) + ret0, _ := ret[0].(error) + return ret0 +} + +// MountSensitive indicates an expected call of MountSensitive. +func (mr *MockProxyMounterMockRecorder) MountSensitive(source, target, fstype, options, sensitiveOptions interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MountSensitive", reflect.TypeOf((*MockProxyMounter)(nil).MountSensitive), source, target, fstype, options, sensitiveOptions) +} + +// MountSensitiveWithoutSystemd mocks base method. +func (m *MockProxyMounter) MountSensitiveWithoutSystemd(source, target, fstype string, options, sensitiveOptions []string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MountSensitiveWithoutSystemd", source, target, fstype, options, sensitiveOptions) + ret0, _ := ret[0].(error) + return ret0 +} + +// MountSensitiveWithoutSystemd indicates an expected call of MountSensitiveWithoutSystemd. +func (mr *MockProxyMounterMockRecorder) MountSensitiveWithoutSystemd(source, target, fstype, options, sensitiveOptions interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MountSensitiveWithoutSystemd", reflect.TypeOf((*MockProxyMounter)(nil).MountSensitiveWithoutSystemd), source, target, fstype, options, sensitiveOptions) +} + +// MountSensitiveWithoutSystemdWithMountFlags mocks base method. +func (m *MockProxyMounter) MountSensitiveWithoutSystemdWithMountFlags(source, target, fstype string, options, sensitiveOptions, mountFlags []string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "MountSensitiveWithoutSystemdWithMountFlags", source, target, fstype, options, sensitiveOptions, mountFlags) + ret0, _ := ret[0].(error) + return ret0 +} + +// MountSensitiveWithoutSystemdWithMountFlags indicates an expected call of MountSensitiveWithoutSystemdWithMountFlags. +func (mr *MockProxyMounterMockRecorder) MountSensitiveWithoutSystemdWithMountFlags(source, target, fstype, options, sensitiveOptions, mountFlags interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MountSensitiveWithoutSystemdWithMountFlags", reflect.TypeOf((*MockProxyMounter)(nil).MountSensitiveWithoutSystemdWithMountFlags), source, target, fstype, options, sensitiveOptions, mountFlags) +} + +// Rescan mocks base method. +func (m *MockProxyMounter) Rescan() error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Rescan") + ret0, _ := ret[0].(error) + return ret0 +} + +// Rescan indicates an expected call of Rescan. +func (mr *MockProxyMounterMockRecorder) Rescan() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Rescan", reflect.TypeOf((*MockProxyMounter)(nil).Rescan)) +} + +// ResizeVolume mocks base method. +func (m *MockProxyMounter) ResizeVolume(deviceMountPath string) (bool, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ResizeVolume", deviceMountPath) + ret0, _ := ret[0].(bool) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ResizeVolume indicates an expected call of ResizeVolume. +func (mr *MockProxyMounterMockRecorder) ResizeVolume(deviceMountPath interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolume", reflect.TypeOf((*MockProxyMounter)(nil).ResizeVolume), deviceMountPath) +} + +// Rmdir mocks base method. +func (m *MockProxyMounter) Rmdir(path string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Rmdir", path) + ret0, _ := ret[0].(error) + return ret0 +} + +// Rmdir indicates an expected call of Rmdir. +func (mr *MockProxyMounterMockRecorder) Rmdir(path interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Rmdir", reflect.TypeOf((*MockProxyMounter)(nil).Rmdir), path) +} + +// Unmount mocks base method. +func (m *MockProxyMounter) Unmount(target string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Unmount", target) + ret0, _ := ret[0].(error) + return ret0 +} + +// Unmount indicates an expected call of Unmount. +func (mr *MockProxyMounterMockRecorder) Unmount(target interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unmount", reflect.TypeOf((*MockProxyMounter)(nil).Unmount), target) +} + +// WriteVolumeCache mocks base method. +func (m *MockProxyMounter) WriteVolumeCache(target string) { + m.ctrl.T.Helper() + m.ctrl.Call(m, "WriteVolumeCache", target) +} + +// WriteVolumeCache indicates an expected call of WriteVolumeCache. +func (mr *MockProxyMounterMockRecorder) WriteVolumeCache(target interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteVolumeCache", reflect.TypeOf((*MockProxyMounter)(nil).WriteVolumeCache), target) +} diff --git a/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix.go b/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix.go new file mode 100644 index 0000000000..a5f198635e --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix.go @@ -0,0 +1,29 @@ +//go:build linux || darwin +// +build linux darwin + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package mounter + +import ( + "k8s.io/mount-utils" + utilexec "k8s.io/utils/exec" +) + +func NewSafeMounter() (*mount.SafeFormatAndMount, error) { + return &mount.SafeFormatAndMount{ + Interface: mount.New(""), + Exec: utilexec.New(), + }, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix_test.go b/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix_test.go new file mode 100644 index 0000000000..7b78bc1ec7 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix_test.go @@ -0,0 +1,29 @@ +//go:build linux && unit +// +build linux,unit + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package mounter + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNewSafeMounter(t *testing.T) { + resp, err := NewSafeMounter() + assert.NotNil(t, resp) + assert.Nil(t, err) +} diff --git a/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_windows.go b/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_windows.go new file mode 100644 index 0000000000..95f3359a5b --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_windows.go @@ -0,0 +1,506 @@ +//go:build windows +// +build windows + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package mounter + +import ( + "context" + "errors" + "fmt" + "os" + "strconv" + "strings" + + disk "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1" + fs "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1" + volume "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1" + diskclient "github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1" + fsclient "github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1" + volumeclient "github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1" + "k8s.io/klog/v2" + mount_utils "k8s.io/mount-utils" + utilexec "k8s.io/utils/exec" +) + +var _ ProxyMounter = &CSIProxyMounter{} + +type ProxyMounter interface { + mount_utils.Interface + + Rmdir(path string) error + WriteVolumeCache(target string) + IsMountPointMatch(mp mount_utils.MountPoint, dir string) bool + GetDeviceNameFromMount(mountPath, pluginMountDir string) (string, error) + MakeFile(pathname string) error + ExistsPath(path string) (bool, error) + Rescan() error + FindDiskByLun(lun string) (diskNum string, err error) + FormatAndMountSensitiveWithFormatOptions(source string, target string, fstype string, options []string, sensitiveOptions []string, formatOptions []string) error + ResizeVolume(deviceMountPath string) (bool, error) + GetVolumeSizeInBytes(deviceMountPath string) (int64, error) + GetDeviceSize(devicePath string) (int64, error) + IsMountPoint(pathname string) (bool, error) +} + +type CSIProxyMounter struct { + mount_utils.Interface + FsClient *fsclient.Client + DiskClient *diskclient.Client + VolumeClient *volumeclient.Client +} + +func normalizeWindowsPath(path string) string { + normalizedPath := strings.Replace(path, "/", "\\", -1) + if strings.HasPrefix(normalizedPath, "\\") { + normalizedPath = "c:" + normalizedPath + } + return normalizedPath +} + +// Mount just creates a soft link at target pointing to source. +func (mounter *CSIProxyMounter) Mount(source string, target string, fstype string, options []string) error { + // Mount is called after the format is done. + // TODO: Confirm that fstype is empty. + linkRequest := &fs.CreateSymlinkRequest{ + SourcePath: normalizeWindowsPath(source), + TargetPath: normalizeWindowsPath(target), + } + _, err := mounter.FsClient.CreateSymlink(context.Background(), linkRequest) + if err != nil { + return err + } + return nil +} + +func (mounter *CSIProxyMounter) Unmount(target string) error { + // Find the volume id + getVolumeIdRequest := &volume.GetVolumeIDFromTargetPathRequest{ + TargetPath: normalizeWindowsPath(target), + } + volumeIdResponse, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), getVolumeIdRequest) + if err != nil { + return err + } + + // Call UnmountVolume CSI proxy function which flushes data cache to disk and removes the global staging path + unmountVolumeRequest := &volume.UnmountVolumeRequest{ + VolumeId: volumeIdResponse.VolumeId, + TargetPath: normalizeWindowsPath(target), + } + _, err = mounter.VolumeClient.UnmountVolume(context.Background(), unmountVolumeRequest) + if err != nil { + return err + } + + // Cleanup stage path + err = mounter.Rmdir(target) + if err != nil { + return err + } + + // Get disk number + getDiskNumberRequest := &volume.GetDiskNumberFromVolumeIDRequest{ + VolumeId: volumeIdResponse.VolumeId, + } + getDiskNumberResponse, err := mounter.VolumeClient.GetDiskNumberFromVolumeID(context.Background(), getDiskNumberRequest) + if err != nil { + return err + } + + // Offline the disk + setDiskStateRequest := &disk.SetDiskStateRequest{ + DiskNumber: getDiskNumberResponse.DiskNumber, + IsOnline: false, + } + _, err = mounter.DiskClient.SetDiskState(context.Background(), setDiskStateRequest) + if err != nil { + return err + } + klog.V(4).InfoS("Successfully unmounted volume", "diskNumber", getDiskNumberResponse.DiskNumber, "volumeId", volumeIdResponse.VolumeId, "target", target) + return nil +} + +// Rmdir - delete the given directory +func (mounter *CSIProxyMounter) Rmdir(path string) error { + rmdirRequest := &fs.RmdirRequest{ + Path: normalizeWindowsPath(path), + Force: true, + } + _, err := mounter.FsClient.Rmdir(context.Background(), rmdirRequest) + if err != nil { + return err + } + return nil +} + +func (mounter *CSIProxyMounter) WriteVolumeCache(target string) { + request := &volume.GetVolumeIDFromTargetPathRequest{TargetPath: normalizeWindowsPath(target)} + response, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), request) + if err != nil || response == nil { + klog.InfoS("GetVolumeIDFromTargetPath failed", "target", target, "err", err, "response", response) + } else { + request := &volume.WriteVolumeCacheRequest{ + VolumeId: response.VolumeId, + } + if res, err := mounter.VolumeClient.WriteVolumeCache(context.Background(), request); err != nil { + klog.InfoS("WriteVolumeCache failed", "volumeID", response.VolumeId, "err", err, "res", res) + } + } +} + +func (mounter *CSIProxyMounter) List() ([]mount_utils.MountPoint, error) { + return []mount_utils.MountPoint{}, fmt.Errorf("List not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) IsMountPointMatch(mp mount_utils.MountPoint, dir string) bool { + return mp.Path == dir +} + +// IsMountPoint: determines if a directory is a mountpoint. +func (mounter *CSIProxyMounter) IsMountPoint(file string) (bool, error) { + isNotMnt, err := mounter.IsLikelyNotMountPoint(file) + if err != nil { + return false, err + } + return !isNotMnt, nil +} + +// IsLikelyMountPoint - If the directory does not exists, the function will return os.ErrNotExist error. +// +// If the path exists, call to CSI proxy will check if its a link, if its a link then existence of target +// path is checked. +func (mounter *CSIProxyMounter) IsLikelyNotMountPoint(path string) (bool, error) { + isExists, err := mounter.ExistsPath(path) + if err != nil { + return false, err + } + + if !isExists { + return true, os.ErrNotExist + } + + response, err := mounter.FsClient.IsSymlink(context.Background(), + &fs.IsSymlinkRequest{ + Path: normalizeWindowsPath(path), + }) + if err != nil { + return false, err + } + return !response.IsSymlink, nil +} + +func (mounter *CSIProxyMounter) PathIsDevice(pathname string) (bool, error) { + return false, fmt.Errorf("PathIsDevice not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) DeviceOpened(pathname string) (bool, error) { + return false, fmt.Errorf("DeviceOpened not implemented for CSIProxyMounter") +} + +// GetDeviceNameFromMount returns the disk number for a mount path. +func (mounter *CSIProxyMounter) GetDeviceNameFromMount(mountPath, _ string) (string, error) { + req := &volume.GetVolumeIDFromTargetPathRequest{TargetPath: normalizeWindowsPath(mountPath)} + resp, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), req) + if err != nil { + return "", err + } + // Get disk number + getDiskNumberRequest := &volume.GetDiskNumberFromVolumeIDRequest{ + VolumeId: resp.VolumeId, + } + getDiskNumberResponse, err := mounter.VolumeClient.GetDiskNumberFromVolumeID(context.Background(), getDiskNumberRequest) + if err != nil { + return "", err + } + klog.V(4).InfoS("GetDeviceNameFromMount called", "diskNumber", getDiskNumberResponse.DiskNumber, "volumeID", resp.VolumeId, "mountPath", mountPath) + return fmt.Sprint(getDiskNumberResponse.DiskNumber), nil +} + +func (mounter *CSIProxyMounter) MakeRShared(path string) error { + return fmt.Errorf("MakeRShared not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) MakeFile(pathname string) error { + return fmt.Errorf("MakeFile not implemented for CSIProxyMounter") +} + +// MakeDir - Creates a directory. The CSI proxy takes in context information. +// Currently the make dir is only used from the staging code path, hence we call it +// with Plugin context.. +func (mounter *CSIProxyMounter) MakeDir(pathname string) error { + mkdirReq := &fs.MkdirRequest{ + Path: normalizeWindowsPath(pathname), + } + _, err := mounter.FsClient.Mkdir(context.Background(), mkdirReq) + if err != nil { + klog.V(4).InfoS("Error", err) + return err + } + + return nil +} + +// ExistsPath - Checks if a path exists. Unlike util ExistsPath, this call does not perform follow link. +func (mounter *CSIProxyMounter) ExistsPath(path string) (bool, error) { + isExistsResponse, err := mounter.FsClient.PathExists(context.Background(), + &fs.PathExistsRequest{ + Path: normalizeWindowsPath(path), + }) + if err != nil { + return false, err + } + return isExistsResponse.Exists, err +} + +func (mounter *CSIProxyMounter) EvalHostSymlinks(pathname string) (string, error) { + return "", fmt.Errorf("EvalHostSymlinks is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) GetMountRefs(pathname string) ([]string, error) { + return []string{}, fmt.Errorf("GetMountRefs is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) GetFSGroup(pathname string) (int64, error) { + return -1, fmt.Errorf("GetFSGroup is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) GetSELinuxSupport(pathname string) (bool, error) { + return false, fmt.Errorf("GetSELinuxSupport is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) GetMode(pathname string) (os.FileMode, error) { + return 0, fmt.Errorf("GetMode is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return fmt.Errorf("MountSensitive is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return fmt.Errorf("MountSensitiveWithoutSystemd is not implemented for CSIProxyMounter") +} + +func (mounter *CSIProxyMounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { + return fmt.Errorf("MountSensitiveWithoutSystemdWithMountFlags is not implemented for CSIProxyMounter") +} + +// Rescan would trigger an update storage cache via the CSI proxy. +func (mounter *CSIProxyMounter) Rescan() error { + // Call Rescan from disk APIs of CSI Proxy. + if _, err := mounter.DiskClient.Rescan(context.Background(), &disk.RescanRequest{}); err != nil { + return err + } + return nil +} + +// FindDiskByLun - given a lun number, find out the corresponding disk +func (mounter *CSIProxyMounter) FindDiskByLun(lun string) (diskNum string, err error) { + findDiskByLunResponse, err := mounter.DiskClient.ListDiskLocations(context.Background(), &disk.ListDiskLocationsRequest{}) + if err != nil { + return "", err + } + + // List all disk locations and match the lun id being requested for. + // If match is found then return back the disk number. + for diskID, location := range findDiskByLunResponse.DiskLocations { + if strings.EqualFold(location.LUNID, lun) { + return strconv.Itoa(int(diskID)), nil + } + } + return "", fmt.Errorf("could not find disk id for lun: %s", lun) +} + +// FormatAndMount - accepts the source disk number, target path to mount, the fstype to format with and options to be used. +func (mounter *CSIProxyMounter) FormatAndMountSensitiveWithFormatOptions(source string, target string, fstype string, options []string, sensitiveOptions []string, formatOptions []string) error { + // sensitiveOptions is not supported on Windows because we have no reasonable way to control what the csi-proxy does + if len(sensitiveOptions) > 0 { + return errors.New("sensitiveOptions not supported on Windows!") + } + // formatOptions is not supported on Windows because the csi-proxy does not allow supplying format arguments + // This limitation will be addressed in the future with privileged Windows containers + if len(formatOptions) > 0 { + return errors.New("formatOptions not supported on Windows!") + } + + diskNumber, err := strconv.Atoi(source) + if err != nil { + return err + } + + // Call PartitionDisk CSI proxy call to partition the disk and return the volume id + partionDiskRequest := &disk.PartitionDiskRequest{ + DiskNumber: uint32(diskNumber), + } + _, err = mounter.DiskClient.PartitionDisk(context.Background(), partionDiskRequest) + if err != nil { + return err + } + + // Ensure the disk is online before mounting. + setDiskStateRequest := &disk.SetDiskStateRequest{ + DiskNumber: uint32(diskNumber), + IsOnline: true, + } + _, err = mounter.DiskClient.SetDiskState(context.Background(), setDiskStateRequest) + if err != nil { + return err + } + + // List the volumes on the given disk. + volumeIDsRequest := &volume.ListVolumesOnDiskRequest{ + DiskNumber: uint32(diskNumber), + } + volumeIdResponse, err := mounter.VolumeClient.ListVolumesOnDisk(context.Background(), volumeIDsRequest) + if err != nil { + return err + } + + // TODO: consider partitions and choose the right partition. + // For now just choose the first volume. + volumeID := volumeIdResponse.VolumeIds[0] + + // Check if the volume is formatted. + isVolumeFormattedRequest := &volume.IsVolumeFormattedRequest{ + VolumeId: volumeID, + } + isVolumeFormattedResponse, err := mounter.VolumeClient.IsVolumeFormatted(context.Background(), isVolumeFormattedRequest) + if err != nil { + return err + } + + // If the volume is not formatted, then format it, else proceed to mount. + if !isVolumeFormattedResponse.Formatted { + formatVolumeRequest := &volume.FormatVolumeRequest{ + VolumeId: volumeID, + // TODO: Accept the filesystem and other options + } + _, err = mounter.VolumeClient.FormatVolume(context.Background(), formatVolumeRequest) + if err != nil { + return err + } + } + + // Mount the volume by calling the CSI proxy call. + mountVolumeRequest := &volume.MountVolumeRequest{ + VolumeId: volumeID, + TargetPath: normalizeWindowsPath(target), + } + _, err = mounter.VolumeClient.MountVolume(context.Background(), mountVolumeRequest) + if err != nil { + return err + } + return nil +} + +// ResizeVolume resizes the volume at given mount path +func (mounter *CSIProxyMounter) ResizeVolume(deviceMountPath string) (bool, error) { + // Find the volume id + getVolumeIdRequest := &volume.GetVolumeIDFromTargetPathRequest{ + TargetPath: normalizeWindowsPath(deviceMountPath), + } + volumeIdResponse, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), getVolumeIdRequest) + if err != nil { + return false, err + } + volumeId := volumeIdResponse.GetVolumeId() + + // Resize volume + resizeVolumeRequest := &volume.ResizeVolumeRequest{ + VolumeId: volumeId, + } + _, err = mounter.VolumeClient.ResizeVolume(context.Background(), resizeVolumeRequest) + if err != nil { + return false, err + } + + return true, nil +} + +// GetVolumeSizeInBytes returns the size of the volume in bytes +func (mounter *CSIProxyMounter) GetVolumeSizeInBytes(deviceMountPath string) (int64, error) { + // Find the volume id + getVolumeIdRequest := &volume.GetVolumeIDFromTargetPathRequest{ + TargetPath: normalizeWindowsPath(deviceMountPath), + } + volumeIdResponse, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), getVolumeIdRequest) + if err != nil { + return -1, err + } + volumeId := volumeIdResponse.GetVolumeId() + + // Get size of the volume + getVolumeStatsRequest := &volume.GetVolumeStatsRequest{ + VolumeId: volumeId, + } + resp, err := mounter.VolumeClient.GetVolumeStats(context.Background(), getVolumeStatsRequest) + if err != nil { + return -1, err + } + + return resp.TotalBytes, nil +} + +// GetDeviceSize returns the size of the disk in bytes +func (mounter *CSIProxyMounter) GetDeviceSize(devicePath string) (int64, error) { + diskNumber, err := strconv.Atoi(devicePath) + if err != nil { + return -1, err + } + + //Get size of the disk + getDiskStatsRequest := &disk.GetDiskStatsRequest{ + DiskNumber: uint32(diskNumber), + } + resp, err := mounter.DiskClient.GetDiskStats(context.Background(), getDiskStatsRequest) + if err != nil { + return -1, err + } + + return resp.TotalBytes, nil +} + +// NewCSIProxyMounter - creates a new CSI Proxy mounter struct which encompassed all the +// clients to the CSI proxy - filesystem, disk and volume clients. +func NewCSIProxyMounter() (*CSIProxyMounter, error) { + fsClient, err := fsclient.NewClient() + if err != nil { + return nil, err + } + diskClient, err := diskclient.NewClient() + if err != nil { + return nil, err + } + volumeClient, err := volumeclient.NewClient() + if err != nil { + return nil, err + } + return &CSIProxyMounter{ + FsClient: fsClient, + DiskClient: diskClient, + VolumeClient: volumeClient, + }, nil +} + +func NewSafeMounter() (*mount_utils.SafeFormatAndMount, error) { + csiProxyMounter, err := NewCSIProxyMounter() + if err != nil { + return nil, err + } + return &mount_utils.SafeFormatAndMount{ + Interface: csiProxyMounter, + Exec: utilexec.New(), + }, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/options.go b/ecs-agent/daemon_images/csi-driver/options.go new file mode 100644 index 0000000000..93eda43aaf --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/options.go @@ -0,0 +1,43 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package main + +import ( + "errors" + "flag" + "os" +) + +const EmptyCSIEndpoint = "" + +type ServerOptions struct { + // Endpoint is the endpoint that the driver server should listen on. + Endpoint string +} + +func GetServerOptions(fs *flag.FlagSet) (*ServerOptions, error) { + serverOptions := &ServerOptions{} + fs.StringVar(&serverOptions.Endpoint, "endpoint", EmptyCSIEndpoint, "Endpoint for the CSI driver server") + + args := os.Args[1:] + if err := fs.Parse(args); err != nil { + return nil, err + } + + if serverOptions.Endpoint == EmptyCSIEndpoint { + return nil, errors.New("no endpoint is provided") + } + + return serverOptions, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/options_test.go b/ecs-agent/daemon_images/csi-driver/options_test.go new file mode 100644 index 0000000000..a415285e9a --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/options_test.go @@ -0,0 +1,66 @@ +//go:build unit +// +build unit + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package main + +import ( + "flag" + "os" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestGetServerOptions(t *testing.T) { + testFunc := func(t *testing.T, additionalArgs []string) (*ServerOptions, error) { + flagSet := flag.NewFlagSet("test-flagset", flag.ContinueOnError) + + args := append([]string{ + "/bin/csi-driver", + }, additionalArgs...) + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = args + + options, err := GetServerOptions(flagSet) + return options, err + } + + testCases := []struct { + name string + testFunc func(t *testing.T) + }{ + { + name: "Only endpoint is given", + testFunc: func(t *testing.T) { + opts, err := testFunc(t, []string{"--endpoint=foo"}) + assert.NoError(t, err) + assert.Equal(t, "foo", opts.Endpoint) + }, + }, + { + name: "No argument is given", + testFunc: func(t *testing.T) { + _, err := testFunc(t, nil) + assert.NotNil(t, err) + }, + }, + } + + for _, tc := range testCases { + t.Run(tc.name, tc.testFunc) + } +} diff --git a/ecs-agent/daemon_images/csi-driver/tarfiles/csi-driver-linux-amd64.tar b/ecs-agent/daemon_images/csi-driver/tarfiles/csi-driver-linux-amd64.tar new file mode 100644 index 0000000000000000000000000000000000000000..35a204079e11899e3097a958cf4f6056f6172c35 GIT binary patch literal 15215616 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

?-+FE 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 z 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�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


bliBw1cc@l69jYUykeMiAW(f#Eopfk2 zGab&zTrXwn*kNQ=-CB^&a3iucL!Ovf98kckdWQ*2tq1bNAVE6E&kwJ z;CCLxZ z>z0sj$oob9L`3moELI-C4EiqgA5aX1gpbTn~tlH<$Vrv_an zV!EzM_h3`9Z|`=sdcKi43Vn%^qX<$*aq(#GnI?5cfoq56!{Kr7wfLJEy$%zT}wGL+==C4jY9hTVg8;Nxu%bVLY^J0zh2HaDFh;NN&-;f58V)vffV8XriT(Q< z^dgnLfK0_7$SRCBgyiF}Rl4vOb4-KV2cfYQ_`*mK8~~AuAk;b@|HpEH^{I4KUQdTk zXz*|3VW*SK=7TS3l14%f5~0cl!PsIE&z<1!s(%9i=tIN5U0@dY7Zd(!tQxFCS6%<8 zg@%ZNFJMMqw7`6dU{-^Qi(7=4uBL}NbD4Y>32(S+7aioghXBBLaIo^F>U+k+oy&Kp zfBOW19r~As22X#ybN`Nv?Vr@23;bn~{+Olm4|D?ryv%T+b+#k^PtN)+X+R{(nXgh9 z+7T?VBbcrx^Vt=h#xAF0kwp%&+piti)lRowy82G|-Sc#OOB(wyh<(7Aq&E}J`UY8| zXm!8%z*E4odlAn3t>POqq)w`<-dgT9XHMn4I`~b=htQl?$R!EohyiahXWgQhUwxCx z=0CvkQMZOexYgbG7^`dFj5P$8dDb1QiR}lhW8KZiUeNdmUxor!$Mn<7b0Kh)VkgGe z--SMtV)+|R+SJgCgke%$%^reD+5^_zBKCz5;KmL07x}Wa4C(~;zBw2@ozGhXAOIMo{aa((udK*QC?6qE2qs_cX=+YaYwKcWEubuMoInyF|Y{$pZ~=|!V}KcI=>%Q z`F8q_PaTLGuB}I-nOc%@f%+LUmU-Jp9?`Bu=r5e?f4%m%(B!6 z)+fN1NDHh_ruz8$E@8{v^01PHAXiyHMg9^)gpeoakRn3b?mCe>eB<#`0g)x-{rXwEx$Gw141FUH0ESPsjhpSo)=@q1UK`Yud|Cqy~oZ zK{r1(zm{k)(�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

?Q}dg5e$C-}QieY-{lqT# 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%0ABp(4fpbkDuGIKBf(z@n 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�Y}(E6vQK@v6E9|X*&m@B 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 z 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

uV3y=mJRn%$?{2PMI#4ZI$Y zj(Ev-+b-uT#aX)2bE=BZV`|PeXaAAI-!wTm4>`C1f4+lDqU&?9-T=N-)p>gpK{2My z#p+w8l=<(Mi2ud|UJ9bl!B*kf&ysb_oJVz(aY5CV!|0{GTv#%lYHbLXKy0j|rc(y?8(RO>k%^Bgy;Hhreo{H)xyc2}A@IC^l>vAg z4Pu)@$jh$reLUYc?{K7Z8?bJx`Ih0%ZNQorIs`k7LN@-L!1%|2r=1s!e~g3{CnVE^ z)m#qJCE77RW5mf{KT=DjjKigj!(H-;I8$!t9pKdJb-=*cZ#Lj1KdcrGG2wu*f$2s2 zHD=A0RMwXr8Q(AHzKlC?!{5n2JH&SI%Sh9>?f?GJH^Hq+WBKV&Zphl`_0q;Nz{`~T zxtDC>BNJ0mfttUckg&z}r4anT@g%oxYwz}_ zLZ%25Np+m{EBq$w8CB3=xt|LvDA#+F}FOD(-!|UtGM2s~IGlqbsWO+g3KNyOzEQ6Y~e(d)2$!dI&_kZm1g~TJ$}` zLMX9$dmEfi#Cg2G^y3_rPOd~? zM5(srA%AVz>Dp1QGf?DKNHa=CWwgg~eUmy5)fD+fDZ>6>xt5~hi)2`DvUhkVxRUVV z1-lI%lj(|0#hG^+zGGen9b#p=qLTs1f!^0%(+MFOa57Tvh>smus6>?Y1{IOQi+<%h z0VDg*?;%oXQwd1FeIybJ9xCephm*)b{<;vcutsL?`!RDrGJ4BOtrUh>HxFG3mmm+W z*3HACD=PAbwyhb_xcu7wbH)}QIlPJU#r@s`m0R7lTS=yvl{*NIzDhZD3$?TENbCd*WSgEeAVP~mVSL1IXgdmXOfSnswEd?jU$FZ+FbY>Bc@a(uZ8PVx9 zb#V&)nRBuQUg`$xSF@Y;9kurmL5_%N{!o#bKP+=1R-q9Z5i`@<3$BP*wLK4g-FwB7 z({p=98 z?}!sryO`HN(xrrtRxp33BG$7T=LGFl9co2oYMilRta3=KB7uN9`2HV`x7~w{`&xO$ zb#wt8T3RoPajJbq-%C-NI%AGJE_A9BO4_1PW3xt$&Hm3UKu(5lpgqu6n+#`*nRExy zgoIWw4rtbJCEk2?FhvcL4R~&r<=S_VV~3hh5-)pA`(OUvE{U*1WJHD?D3^~QY8plG zE%AYMS^Pl%Lt1MH;y^fQ?n4KEp;8a_@2+VgLpBf3xsF4`nocf_3l$K4`-5pXs#QpLuo7(%jN(bb}h_|T*dtl0Q^&& zKWQ63;N=Piz!=x+LV`j13N`o9$fBy$sU{|sO`S5;XW`ICfvTd#{j$4hnem+E)em26>^DUf-ew4 zF@(&h<#r8c`JF<`ldFrcgvdA&_1wD7X@#-W`4Bl;l{$+JRGR;+VH&uu^)k_|8CW88 zg~ksAEZ9Qi9EE|^MXSXs{yoPyIjoUNU1&%^6k)VTPy*s;!+wQM=n`nR)=Ij{=7yOyECstODJMJO@%F1Vdwtq)NdI* z)X6&W2aL&9OPvgp^p(teJE}OqKq`;*qcx^y7BKC)Q08yZyX{6Pwx~+ z>K}GGnKPcPqMXGyj~;S(apJYgrsCq(wVgoQt(!kytT8?LAsToRPG`QY3H=Qjji=QW znpG=ZRWBMa62fQZBUo(g0l%M^Gn@S9{a%wNMlp_F-noJ-*;iZnm{B9<*?36idVSGN zEN1|<@S+K-2Cj!mB;4Fefp{zriO^ zpnP+Atus%}Mj|eB}m2=0Y=H`PElZ71{2rl>ZamHNAvSV{A93 z)LV}vEdedBrBjOtY;l)8Y{>$#s0QcxTJzBvd{6oh}e!|+sLXc%UOAdRT z2JT>+tBEycM+cKVeP-5@LkBkgZuvO2qkQak>VG94vJW=6`S)-)IWS#`0kD8Bjd{Tp zRci_&Yw&ObZ(Po9R&q2iVPlKfpVr4Tc1Tr8)7eN6j4~!SwKjy*^V)uhcaWr`R6PJ- z;J~-fO`YUaB{gi#;VM0<4>WAuZqGNwJh|^b`H$!;LDVVA_v;nf%<6WBI4-wG0a|Rd z?B$%G-rz@`$87s_1@R-^8Evr@??yC>s);oXqL)Yq!(f_^=p4V3&iy8Ii|Z6N=uAGg z*5WVNj$$;3=hL%sDUo=7zGnOc+R8t-?Wf||FN`()f9WO_(6nKdNNuZB6&-NpTuQ?= z7?{EJa6C&Py1NS95kfZ{xihq8JEJ+IT)XjCwXq>Ia`Ni#D5;#BlUEPlsnC7|jbV=x zjTu8@?i)g55oBR6D#{J=VbMK zWbW|iXkE_}W#+V#!Fth}29V_S0s^VAa0r~PYU+NJesCV^@T1gEN2#BxyzWPFAUjQa zu1rm%mu48J9z`!{X3#X_sC>m4(@Xw1Vi~l8F74r;Vu1|-n}i&MUR-XqcI-O!?_KC5 z|3@fU@&o&)a&6wB4zRhqWTecGoboN&K+P$YWrF`LJ$^@)y;Bp6YG`}qm10zbVWn5u zeuBG(?bq^;4q0>cen#$8)lM8Q|9W)(a;d9)lw+a%CmXK-z zv!-#Qa2nktcMaCro{E)A(aa)c{FY1N`!~DWXycfOI4831B^;vSW_|QyQg$rc&2Gw{ zBF$%Iigsv9xlDxUjVt*&R$j{QSz`kKVfhidqwWD*4aNX}OllXPJK^R(`X7ga1uj4gXQuv^%n$AmzUZOGNhu zREYnQ_M7rs16a3&C07%LpTYM^4&`08hoi-9VTniI=3&_Di$`-~ecH|+zoTUI#&P_O zmH*m)E4O$1`@48Ht1MQ22iG|5xRa~3qjDXjr(2CyRaGHm2FxTgq-=ey|{6mSpGRBqBm}!c&z+?1^>SVBwd9 z{!Ll+<-f&^W1aHPC}mXGcrp*2T3`*E+{>Yc+Nv7RKU;Lo(m!8>Uv7<4IHdUXl^HPQ zUxp=`ALXI86RF?({gNB)Gl0Th2_`(WEiBo6CNDz{`S%cRoZ2e?h7$4pW94nSMif*i zSSSC75+PYGFXhHMn~@-UFw+uO=MzTF)~&DWmXqku1~Lw0wC#ycJyX%G8v%TCI0mQB z9R>0k=H1CbLSaE6*#>Z*x2k87EeVfR#kLtQLc{kw~@hYbMb2GH&cau!gWce+bFDB}Mlv-^3FZ_WHAhaH<)lFiz+28&VCeZB*MeiB% z$c)0`8fPEdvPlUOxrh&2nOZ<%j=ZrTX4&(oG*vhy(&hqZy)!hcuxtlq*WI0(Byu7K0)#mtz4iUD& ze)KZ(^NJ_gw;?YR2Gkf5j&QJOZ1qZfC_v_9K~@s?k0obS=NKTiXKnE##w|3N{5H$^ zcnq}Y^$}CY2VMX=VJ@;jsBz<`L`F5y)uPVoQPrx8>o{GL4>rk@9J!`1^&|FkvQ zXhFAL!K0rYQUjZ3WhuS+MB#f)LgYyZ!G*B(vG+^2vze)UxQ3$+Z=8 zrs{s2)*hImhTntbYH_5Yl8sWqzg*$1_q0QL#da zOrbjRzgr>v6H_PRpPXH_T5ug+i*qoi#@rbdUw=l;k}Si}z%i`gL;ML~Rip{p~I zullSxuCA!7Cs&mVax4|JBwmz(vHckTe#!E;4h?BDF@u#lN3{9eU!))eR7KO4a0|V2 z5w(wT{!h!r?4g&2@gqHb2Z1rcFy;JU{b_IZZ-^2kY4Y(dsd$RgbJZl?a$# zEP*ik75d{L1&D3iUIVDzx{T z_-#Kn>miFScJ6mn~N z0VtfX!XdiEt?i*S6*ix&D?(8AHG|FCt{^Iwvuc!79JRTe^U+E~V!R{9-x!?)EEOET zn~Y3(zlKCg_-(^E(ZtI6!p8K$1H}b=;}%IOS{X$tJa8SFjZ6}bJ=%5bEr-;0*0H1L zQkLRS%6^HWFBqT$4V6Ay&13gfw6Uj*O0~F`sO&}lX9?b{JDz^Y;t!9RlM7+x=>`#c zRjy8TpMKRD$rnIU`?1Jqn|J;Ot-{SM)^mAOWt;)EB&PKGI6cMR$K6HCIKSmxSJb|w z=u%ho$A3Sd!(KT-^4I)c&coqmx*mTQy#B>1U|_U>J-iX_k!wEK5dj>>!L8(VkeS7e z-}7wAN#252v_u`yuIV(G^vCuIXX}kBOrIoLBv%*uub)K*pTTBsNAms*LFQ1M!fzcx z9xJY=T5EQ*>i6;{zUJDZ=W4c0oOV`Lcm+!(!E&G+%(vTTN%L0-T1eD*WTFE z?xeB1Znv@b6z{09`;W86{^{k;jjgp$Tw{Nv{#Ii@WL-WT6JH-7^c^>p=`94$>TkO7 zf{{Tt`cv<)K5Qn*ZAW_MWmWNsps9)`Rq+q*jAqNjA1!+C61Q&7wymFFdSrV^!}Uef!!VdhI|t-4-L*r8{-*}9jkuNz8*ln9^t zH=L{olca7}jdNqMfad!z{xG1REmBFpe%JYvu~aOEJ;Qdkb@78@sr}sM()}8avrU-2 zCNxafCd^&xr(@*p%v7J41}0P+qc>`QzU-s9cZ+r@`k)r8;hXM>yoTc}S?U0rpYmwu zMBW6RotfxSKOLK=fJc!;0Z&Mn+ML+EemWUbd)O@QDeRPPiPM8UuDOX(u}3bw=;ABl zm&UJ&4cRq;5d|=et>f6}u!n$6XvP;prLEZK{Ozv4iQO8GlM!X;IP496B}!>PwdJnd_AN9L7~s0M+Vg-hHH zfP!y6U(B|Zhjf51!5@|$jFr#H@a&#scKuw@^DS)R;iJ3Pu+LQPUVrB)q)gk4_ypCY zTs6`!LPO)ALqy>Yx2g}^E<7*qne&5vuIhh({Hw3KjX{ZE5VuBfwXA_(? zdQAd-W;l=YQ#26qwfttC;pM&iIIaHy@B9m1d0qAk3-B|n=sedDC4YTP-{_1m>R+Va zUSzMgpuvNWI~oMD|F;O={w^Avj$>FfkRLLnfvd^zPoFOEu4~YQ#z_sUa(Rd-xpHZ( z0BolvpOQAqPVVw=dpYPs`Kr|;j)+6cjPm}5--gLBzF0zlEF(2F!tvJs+uoJ_w|L%8 z#4`N+<3iZ|4R#ih+{^?bMQ6`70(Pp`eLvnRAFh?&bIl@oZX<-e_%Wxl#>pxs{;!XX zE?O9?tKwuZ#sAq&v%js{oeL(e2@hM7j~|>vW}|mbWvM7QYR$2iGd>BJnrIthrHx{# zsI)3k9g&fXevmV8qig@&Zv12H4w>&9<^;jE9g=NkMMzGwpgaswFRdJrf5sl#QKy!KI1IIgYpcq>B?5B0-ZAKeq9~ zc0?t&?U6V*_UK7hUJ*y#4$z?(CvuK&)x}p_k~mst_{JwDj!56H`jXpvDPKjOvvF`g zBBuAh?Bya>otdYK71iWibZw|9Thm`V8H=51Kx==si`J}nz3UCW^FjD!u=Ub2+Dp#s z0D`6snuk?bw^n(>v>e|3Be5LgQIq3b7H$z`9?*OW9j~5CJ)v$iY-@RSYPygtOHuJfLfWT(`>hWNCPApT; zyG%;2lg@YhvO4syoY^~rUbAf@K`2}N@q%xmE4@ff;s5m&H-gi_ns*xUyz(Big5wkX z2Y&r_o7;INN66a*QttexaLbv6%ACHHEi=FU+m3|ZKc&TVNn*Hy03=JJHQ!NunWPUh zAUgX3ZmP&$N!;LDG|!YFh=7v9jI?q;w5=t59Hn+723><_{Pl-rn1kWK z1eIlt(TZm~O~bqxep_nWv^Mco+aak%wl zZ^!)_da)Oz_BG)VPx#m6>LyT}aJ<{uXP(;RHFEr2LMe5F+-}jvv$+cg#>OgcGGpS2 zdgI2#LHv}SGo~Z|INSY#GgB8^<*kt?z%D0oYCXqK#0k$29*?vsIvws!N8K%4qVTlS z_pQahf@jaVK5PD13(<_feI`NwOR#$KO){hc_iFFCJyZqvCuS@;s9qQ<5FX*4@s9y*Rn-zF$Qjuq+0 zXruZ&+&*zLzuoqUM4h%yV1JU?zTF|B4o=Gn+pc!#SL+QhYc|;P0yfCx%(>>yl?)Qjx;^8BZRcDSAk?1$~3Vn$nU6B>DhQhkno{Bn9F?-;wduiH7nFWepo@TiD&YY{Dt z{?N$KAWXWRhSITfignBuV_rb;DlcGuFj zR{SAvQKOb`Lw*#kszn9x21-3!@S}|zfLujZ)k=2TMrT{ZO%Q)mHDo1GrMxzdSswmq z;fK<&vOh`;;pKh$D>weAgxGnF6@WVa)}L8{^+5sqk^-tyf>g!QCK-RsrdiH4GeF%v zP79kI1;Z4im}ir|NbNeIS##>33>|8+g&FJXb;GL7T%Mv`81r?~SSz_7oyx6bhJ(gh z%-zt2A!f>3Kpz_G8nfc>)Ej)$7h(UqgaxSz?6~Fe{hD>6y?+Ve+uU+cj3cJ?#s>A3 zm$&x=VJ4o2XBo-Rru9Gz1;2IJcQnajOTWEAorv%~zWD#6&i@`uzqXeP6*q$Ipf{ze zbIq9`NhpN>io1;4=}X#&Z1c}(e`;ZN6dTzoQ|F)p-1&|qFF2zpmO7~f>q6s67`>(% zP#t#0Bb|SUL>eDL=8VUe@}+EWFlEko{P}Pp6Mk>@{l)_^`Iswr4ovUh-%*TMXaA0L zD+ttTL^H@gW>M5^G%PsuhN_y>pdxrVziKiojk zuS{@bB4R}dWUYVo{y}m$bMf%Xd9vB9;2K^-Gg+J57*(4|E_kERA^!%4TmHM=Kl3El z@Xj6|>m;?HNW*T4|5K=;aSyU?CrbI>T~}z_`qy>T1$_WA39}5J8NF%wn{~d4HnFVn z_v&XG=W)*1-e^3y+Wh9_-L*nC#+t+t&zzKxiexS14ESfP0vaQ~et}V(&34Dk(HLR~ z33PH*5u^Ebeu?+|-}eogVBK2Z8k?6AJ7M>=`e<>O&!N(%iOAr?lqHUdP%sYfr1P^!8T=FjJ0Y} zbjkF(iaC!JKg93!J$m5yFANqqSv7cry;l@0K#j**ji(qZQsWuohkBEGlGuvv>7&b1JdbnO?Iah@ZN9TqrS4IK6R--X?6Q%e7>%_bO zgD+Z0(-~`3Qw|eGem2|BLQzvs88dAmOONe0hW14NLs@egQ!nL*00!|sT9;(S#91Qv z!0PoiQ;~^m`FA$Ce>%ZvW;qm^MW}G0_U~uU3O=Y4D*C#6;!3xCpSVPz;fBa*zc~aV z=Do8&ju-hLv_7+Kn|Qa~YiEJEc{ z>u(Vs;+Z-sz@zpn?g4CO{#G z=xhb#@nlfLH;S){PtxlwT5$xHtxWgR^V%wJGgZ{gqdedA|BqgR{GIx??%~XFTTe7gHMnWvBfzpzBa0Gf^c!FjWyMwy8;uZsk*4O zIOgezW*>X#Gq0{l6B=PceD!g9)bv_($vmUq9PB@@V9Kj%T42G`cMB++o}>MSQ#V%?{sQm-TJyB#805ze0@ezcZ`v@%vR4 za@@0vT4*cVn*e0=Aa1LUfxro;zbBy)(IsiG_PRzT5$;E zN((V+{UpW8-_I4@<>ieEYaOtiTKCMZ760$?qMw=ZnsTug4zTy1rwKzHu&qmjCTz-8 z6KpZPqGNwn_-6v8Bl4eUJ#V|n3u^)e9e;-5g8#Hu6ufYcG&13W&#AK@%>q4#8ypSJ zs$l=Wp@G$L8gWK3FN})u*Bz&Zu!1@_a0Q$;E|i}5SlYDi8T?p3RfOT{O!(OR7Xt^f z_-^&6iBzhnoLXIz<^M(^%)S{#uu{xBttMDNn|N%%azSUEhMIL7IFjYd>>K>2H%im6 zzo45M(y&^0{*j=V-mK?g_-%7IKD@zG826_ynHr(}y5D~LL##Tt->}MVe|5+9KdtsF z4lJwvFLY>sP0)U$1MP>iUHivb`w>lBK%A&8#S*!&{iyv+`@?TetFv>z>-=NED|DtV zSF1AGc7tXN%vQd~)6S)EtKDgflw)tl192OMbF-M3!B19O9stY z3JDy?cWZQ7c-Mc<{+b~r*lB;GxlAy|^8WophNE6;8TobZL~tg436U9+g3LY2mVW@0 zwe2Zp2D+&$8V$nj&sS6V3P8UN0r?ZUX(`IyPcC9G={BoZwDAR1k(^e-dDAQPlR>eh z+4AQcAf;c?zDV;VuY>a^(x*_fnN!swMuqf8sek>o(h~(Ie%c!uwd3$yw8HIV4YN4q zn1>z@td4K|v!-b(YW{64jiMjs6y^AR?^QF+qok1972U-x=8i($w}&&t{IW9fi&mCT z{R>I~%d!R=Q(Fg>m}C2QA_79{mCM_BGOH<9q)#o$x(c z_+E97@O4TKe0vGsz<<^W;Tw(#5&q?pY=pI!I=Q9iwI_^>F4;Y2gm?Or^l9r+pW|0-ZL;}{Hxj= zJ!_vC7VFlLHpbh2={^BRrzhasb-bFjzi_7Pl7*eoO|;> zpr4o9^Y-nBbL_Lo-){puTk^cRSBPNq$3hUkMqb#eZ}x%sZzldGOLUj+i=0H4EVjy& zjtO%!fJ~aZ1QSRX_|R~oEdbkb(ps_!kPSENE#2+4duq#feeE8VH?s>D&=>!Xb=%6> zi#?Q^bw%5WvHn}lzr%`j{F2b1iiPIXiLwXO#M$c-OlZh41&+P&4CSWt5D2LIZ0o3) zOFA1K;IKd~4{#9qyJEKer*e!OC;ny@Hh>KS7>V(H1K6G0wmqnp>@P1LPL@sU|7`fz zNQ*59dXZml(lGBFJAO5((xr6OmE>CM{a@oBYvVAZmof)kli5~b4?39Upy-lgE9%>d z;&1YIm-wsv-8J5Vea(*`v+c7gcVKkMj9zV4@+0eiEB>w(*QaE*g$%gt((f~uB^~Y# zGU=8mldk%2sPf~!#@}7yYx%ot{CWQ7#h-5N!N-cfAnk5nr40*G>87pddsg%<-dpLH zHE*ksYMtn&QD&A(QLreLU*(;`=0R*tqSV>;H@vv6GD*TnLFTI(Uz;UmqTp)vr&#oz<^(Oku2WZl-W!cH!Hz3m^7{gb)Fg3l~9T^X-r~t{$No zNi~@0Bcn_ZxkK^=CvL)QgY~=rz%weiUDOk;T72Uj&SbramDrR2t*|l~Ee$cgRnm zTzpM$R(`Rua>ce2hbG_aHoDszqnq9%KVQ5U-FYDC`N&Ak-(BJ_TmOD#Jn@xyVrQ4g zFFJcF%*Dp{i}q*ZJH^SbOmXrnQrY(#4DlT*OUD>(im4S{Z! zEgG7g=|%Q_1h*{HABN@NC?GnNg5UVNouskFZPn>4-E%rvAnk6S;k+pIugaH=tRjru zbRI^Ec&tbyl{`=;Js@-NW?+gq`$K!Ous@h@P11Zze~3$(G0J#QHjjmG)@p35pfmd2 zEafe4?44wCv>+FM{fDj}8173g76@r6;$%gH;!umc(MSwfCC0NsJxHZiqCpP~izGRv zs*v+cHeZXv)5ss3q37i_-4_PN{Qj12kb(H4f-+74Lz1+Tb`Y3_;T!x8{H&4NaW4Vg z^$}4y{V;z(>uMe~lT(`)Fb1AL@e*;YowZkzuzf>Oe0kp$Df0+B%35##5_nQ^7i{MB;<4RtbI>*1pUhuI=m}G zK|aoHw?!3OTjXE0M=*T1_dnW{6;_U?+ktm9JRfnY_5Z4R^?#lEziv*D$BK$zh`bk` z1U+0zbo)ve;E-l9zk$LM4)1JTYR)MW|2Cw)F?U!Ahw$9_c$So zqWit!C>rx$`uwFf|FZiaE7ewnCK?7M8!BdogQGA^epqkTorcixUiFlSL*W`m;lPWLHU1vIaY9`dORhkI1W*wSX4k4ILq48y zyQo{O&cT6Ep}{zDq(*464&>YB5ST5$3$DSDe<9`>teai*-W&whe`xoh|DsE{P5;Dt z&B^D}PCh|&k{ng~1KxG`&hvv7YxfUpPR-;G6KR7mL$lwtPr>3pqK!ub$Hjm|8xQ5T z;y~h8r!{-Ph}nZf!7?!*8UJ>EkU`FcgG3uYhKMdCBtC@s=X;_lK_St`*Nw=1DoD9( zfgv`2`y2nQAuBrD+z2M(npcRn6|v;8tc~5xXV%p*`#TQyx=CA0@kGl1a#yYNXkL7- zGtFaa8{}651<0T7-j5C5Gl!H%(u@3LekL-bsyLQe^?INj^{SCK*2HFlpKb{Ts>}+* z;fJdeMBwDAS~OKyPsU<8%!Bo*xyxuhFS_MuzZM8&k}#dX4)M_dr&?!Mh7n z#2)FgDU?gV;c)9#KW%VM91mvX`nM-R#Jn4H3Gvkjpi5`Dc9`aNxnNAc^Fnm5$m*S@ z7UIXKU7wbSs$IW7N@o(-_x7m)342%a>yQ6@t+fx9>{>#AU3UqwLK|`YU3SUtxb|^2 zUA>(yRR2x+_WVfCiolboC#n2MyXF2@`ClA=v^xGkI3_^@^aF%Aw|HEA-5>;Pv2}?_ z4LXe|-P9Obve_LtK(h;$zfLy{>GKd5*0PPBL4(vCQvD{%9t6(xxmK zqM;|O9yJJ$HCrX6uBnu7v=+R2R6aoPp#AYv$#45!y8U9_RNAJLYb@ef|K6qDCQM4a z@|*6J$557)KpDIe?H>x+!y%;E6{aVA+d9JL2g_&jLTsFxNm`P~DL|L^TfUx|%y)G^1^cuAOj8(C%fvsW;vYI5p?QSB z3Of%}yx+FMVd@0od4J`5o8a4m_ZBHMWAMwm3|T*;LMO}jUtc+7!{oCn`;&U@^;rMs zW0>NVeP6HYwuW#A+k{IVeJm3k0EEo?OVcj`iF>9tJvAZwd22LdGL}M%G6s9m#r=jS z_0`=d)@Bn>e`+LXdU`fQR_6k3D-!lFU&Uu;pEz2J&vZqXrxcr1ej;gdD~ zJMXH2dHY+-`t;_)P9=H|DYL*tvmV}%9n1!$Pkj@Q#$StpVN!IJ3ehS?l5IOh=T0=v zCc>!FN(4bMsi8&wHK+}ZkXt0DVVFv4a*^p&ZPmY7Ftr~) zjA37~&L?z$GOZA4&$p<)BUP_V9yXDoA zzu*04$(hcri;O$+w9$u0rog>Svc$4B8q9H3Y?{O3oB z2iXoV!A^U2&ds$q%2(LwJ58!T>GCucDRy-oyuG?`raNXI>X_Ys?VU{-7kW0%GGn{I z_S_`aUrB#wR!-1t>%x#^{KT5vpfGnOvnK1@Rnlroi2b8{n+!-aAk}%yG$L;%>7Kv5 zFHmEp5UMGr8Dvv6%XTmR%c*xrTP>Gw($-(N@kh{E)<5Y4+?xg8oxL>mZd0 z0;U7(#${nwl8v1yd$9YJSQiA36N38$2$qBhqA7*o07H<$irD}Nrmt2-;V!%15XjJ+ zuCYg$5&qhoP)l9Xo<~voX|vN$wi4R#q0A}ySIrnhKk1sW@*XIzx7V%@FqBSordJL2 z>A>agKo=6YK6LuwL!8~YU^-f&-!aha^gt6y-SOc>aXDt zquDF?MYan@&%C@}YV_PC-ec%e9%}t||H=l!WOKUb%*=mg=+WK6uOHXR79X%!>>v1B0&-FXJFhk4<&{yRGt`*dPwiQQrg$*b5Tn~?+B&nE zrgL$ld=Vpl$y5G;pGjy{T({N?eTWJPEpgMo)4|7Drq<`HD;e^zC0ZNJ+Hv;rNpLPW zASILNZg7A#h{5>(>ioKw=sD74?))w1*F|UlUY$<^AOy3iM|S1*$rJhGKhg&RV|C87 zzAv-C_*^2pDcjnfDskHdHV3Y~*3E%YKIV}K=cfKt_r5xKAJhA4Ae`rA&4J4@bKr$X zFbB@K7)6XE=iRxbgYd3{??3YpxVhE|e)q4k$)3h1w|y6rqrU<^JKLAoNM>I@8z;lA z3??RmX4V@43K0R;j#Krf4n0kn*A{4$u>Pf_jTg}+xHfGIWv)6sRx#%oWidjC^WOWb z*s9>~x|oU9Za}tsXF`KAY*ssO`3G&wZeTlKr4L1+w;R%~eajtxO%#9Ch`-=8^DCW; zlZNRGTXP6=-&xKxv@BzpX&rvCKW!aZP`$jzst4zUQAL{PP@)dAdc=BZx4fgdNV^3d zt|GJ~?l94_J^h{nwB@NYaJ22-$n(AH_MQEg}k_YOXKe^{q+Rhr~HXcHvjD{Ll|HMniE0$~6^y_2#6U)b@S9kyygTo-=ZW?yPfL^hiCH_Ibaxr)e*^w`{aDe2^*TGV1nW>i9 z-IC=;z9-R#zP(~i`O*BLxzSz~xm*jm7IH1&T0(v!%@rem(qWlLd?2pT(*XZ|Z9_33Jj>oxnbH&DVcItq{sm2R#`9{1FOO@XFuku|K3hcC`>s zt}1=Xzw9$kk3TrKdb3lq;W3GceoANGyPFin}p-AqC$c5Z1rn3ATe)xaf`xUqMu#ORdfs9Fe_~Z8Q z$3hJjUcsRw1aF?5V{Q?~Jmx>`KRW=oR~0S^eXCc^nOAu;F3~H@_u$on@D;@kFvS-I z&jv2H^pz+%9p*E5V1mWkzfRQ7z%Uxxgo)mH%&>Su?jAZNmx7Effqqbzv0%A|^fx!w z8*NIg9DI#bRhK5q`@N(7BDyj>tSMFmVTL`-9J*O~+Z0dfUilvMfmVm`&TrUDzav`@ zg6e}ErOy>Wa`-&IM$rELx3FbTaj#8P<&W}1 z--8iUdig-w77bvPxVGJr>%0SA-V*kQ!kbqbtlKlNE)gv8=6U?^dpSry6QrkSIx6k& zAU#c5SV!+k4$@$w_o*33141q@7MHK?WjNLR{(oFd3CV&6X%`ZFwMGEheEuvrSMc5+ z|FEkmmlw(MuijQWL8;((Y+FTb*jfpK*K(hQV86fxk zs{@dE-1;XwAW!`+3kY(a=n)W@LleSzvw^fRSaM zEI%xR%TdO&`9w0}0PqS9;+FBtU*>2vC>xIC#~&8Jk#0aPe2}E%;p#!9C zTB70#Goq-tD=rAe(FBlHSzSO}5VvaMDB{BAkl*)vs_yOXEa-bP^Ly`)=Lgewsr#){ zr%s(Zb?Q{rk55IE3DH=Tk3)2MKwrfR%mN2y38t?jU>?J*>ZxI#iiAO|e2iLZKr}6v zIv`vA83nQex9U5D8K82ni3H)yu)5iRX#O5Y5X0ZAqWL?N{9UABI!3}!M${PwhJ^Vt zH+*9AWkFEWV)z@xE%`f2AY1Y>&OR<+k4b0a}G zK;!(EfzkZ!@4&=;8O53dyHTc1ZefiT3B&D^)g@81?AvLVDI=PeGf2yw8l-t7NE?D2 zYe2Yy9r5o3G5p=oF{(&!;#OU#VcvW)f-fwCTK_^MUnU4G9nin^5n9l{&M}QR{-x)j zK28;Jjz58gKV9_G(08co_J7Rc zQ;QG6z38X&aG`FF7w&!62}q|Iq%$LW-mI7nyNNXbO%s*x5FY3D7P zrY;&Od$~>142{%Jkj6Sly@^Eqdj>90|2sJ=kNBfW9b>BMhyiE&;sSJ{Yh2}B~GxkgyiSH5$(w+}KvhwM%6 zgG}#0T6ODOT>vT##DDLwW#^JO_k++QZFHp=DtNhu+b3HQs9baynos!B_jgL8=B<*>9NsX9;fE|Lhd{U2Q=GZ5C3C(zhFhnRm_~sVc1BE{6;? z6Cg|#*oULU)nZ79I4D&&a5XqOHC@aXKCp{< zXLVFDr{h*-fim!_H(N_PQ%nN0n7!4h28sQXFLSJe^!Ig9NH5@4?E`H@BEvQ;)CCPA z?V#xgnl!^sa**cEjzTKMt$N-dB>}0d0n%K9q_xWC_wCYs@N^W?YTT-8fCP{Q2E^w3 zIq<|=fFaB03V^U&sKpGDKEGWvSl7=XOq;9UXbyw#3pL-*w)uWGa`^ZW@cmc6E+Z{K zUuIv2GT)6+lojDtt!pWiHH)UKsxK&e0WhTO*KI7CP{u6LP8?z2y&6ZNMjN6Y#1nA8 zmrYbJ5H$cqY5GS+QMN#UY14*oh@$Lc+^U|MvO;_uA*+{>vbKh@QDMrMZzN^BSMOq~ zU9I8r4zR0IQ{`tQzYqy6TrC}<3f4psH4L}vVa6>4UEAxYMXo>`sHuE!#%&SX&+`s_|MRv_of$i`S0v|qWj1$9+Q z%BeKtZ@B~}RM52o$?(2|$$yOGPhM>KTX&>%1|TbNtA1@ECAiC!K){0Wi+e+IKAxou z(8U2*7!7bY0bbPrxzPZ35#S*Muxqp3-fxNqC?LQT4bUbU;7S7I8-Pa~fb*gOdJ^Dl z4X|N>u1QmbWCEOE0Im`M7=P_t8UX$a#`598FMkEZkIjV(710nsoehZhXKF5VaAw|d$aer*Mg#0$0D#(N!h`Z?fIbA+3{#e(e1ZVb2)G?zh!HR+S@`XbFIosm zHe-qc;!PL4%q#GmeIt{p>vSHwj!lYD9d6X^j3=Z3G4X8MeqV8;j0A=(q(+wKSc$o_7*i_NHUkHdWm<(#1m6F%D8LsY2t*%*KV9%}9WtD~3q@3=$9f03|DvY^2>cNcpA< z(yI6D@=YNU$0y@)f%5g!Sg$4k>&J<@e6Tx+b&lU2HQleVItx~bgLMM2NYyd8P(Rhd z3mtTg?2c(ia$EN=^XGn2Ckve7O4EC}=T-B-gbLTUt8cRHn`zW9h#DA&`8&iHo35ZQ zkV+qh#;u}r*BOTY{;n1hi01JmZq;0rMPQmyL1p1{J$VI%+gD9CK)O$P#Q}0Hw@cmrda2d7Fd0E5&~BYi#Irs{jl z@1Su$AxIn7*qr*SjWmx)gEUfgYaksOr_0w#BfX7dzqF)1rje!#Qn`aPg-FtW;DYkc zxo*fmv0gM-{WR8Z*V*N}L}PUptaJzK1Y(JN;X*CZNM{h~T7zWf7Y5;EFC+gN=~qGe z0lkQB-~X_Yz9Q0f8fjN6AayWEMy9sEXd|r{C!E?TNRK;6+la*St;Yq**Fj^=Bi5#C zHLntN`KIGIKuy(DjrE9NYvEZ<;Uu>EVSSL1;7<5*oj zW0lOl!p6E^W4-tyu}U1Q#kiO9{S6oDC(d~XUE_)Lgh4XpyK>be=9>#~W>=W*X^`(Dc;BCYJ9zT%dfTfF%>D>6q1&3(LO9 zw=W8DfgXE%S8{A#GE;Ke)PrCAsS1iuky?*OtzkZSDb7m8ebKdS40wEJmZEP z_=f3y4uxC`4A|Yl})eq}XK|$A=XE2$1!8KA@^(Rw5UP(@1 zSIMZ!)cE_rmFTI|3xvs;KhFch`(lb8)0XkyjFD-}l`!Y{pY=wpGi}-K4KesS=>J)1i)sGtWe`HpHQ^{!+LL3nAQ?w~=fk$4oO_K3W&39-NIeCM-SaWH7bF)h z)Ki#&SBq%Z!Y-Vo2c2z3V*w#~hb&Uy8Br_W*i^R~#{&diCyJwln>%63;3az*u zQD05b8M$@?dvvr=G*~F|IY<|fBAm3EnSl%F|DTcDZxeK773#{`g;QFE%gAFo-6rjq z+m$s@+%$|c4aQ&cqs{E!mf7#U5$_+IX*2sn{T}nb)ef_fSNse27-m0#3o^S~|;HgblYgTzQ z*4{}rtEOtK&leLb-@*C__fjt#aiO;C6{NvLnrV_=>tJJ#zA_|Mp{Lr z*%~Q^Nc{|wu{jHR*fj0FTFN&;kXF5I3&J%-V)-t|1@*tidbJs_eq_{_@x-Ejp1Iv_ zw)bnSw*{-j!FruoQ~)pFLjClUly5wdo-jzp{@UVL)n1KspK!g0gA^p!iBygYwOAu1 z5ouI3(x*LaPBqg=qn;$szk16q-w536{tXw@|AK{mI-pLmSKlsY1&E37N5s+|Ml9`7 zPe{NT)_(-s{cs_92lp92g8r_?FaGh>BV))EoTp-5ZN@LB(($SwS%0D$ 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

ewS|6fo*A6D@jRf2mJNPMNVTNTh`?G=C<4 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 z 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

TQF?xx9PqzoR@2J*>Vg8UDG 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

N6`A1* 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�yBYTY>ckY-`BPLH;loc+J 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 z zEH5l49s9r?-=|?YVR^V6o&N*me@vmpx}$39lW$>%$#M|o zx5a_x*1i{~jsJ1}&(hK8|30{m8n<2E|NVIV>vd83@WTJ-Gm-C;dLz^OKYsdL@~6Dd zQU5dgn&&+GEvT2fHkf?u%KH!Xx$Wq5_X0_`&nDw;&o%E0tQW;QVc2p;^ItWqh5f$_ zK>nGXG5&o>3jeCVmVe(~hR0u%{yul=N4w__em3I?nfQw%{98I*5`Nz>%D)oze{f;# zr2bd`wfuu*9(C}iDd*IGaEh_>J(~Kz!7}ZN;Qx{L9bi@z>Do2KA&-JMf}s(R0YL^t z7(k>!kzrLB1r>GGMnK_87zqjr+GbGD!GNf%G=d0;HaT z-+ShqwhyxR-@DKKpTFjLr*d_FZ&g>-skp`R^+)oPhZWwZ7iQOgWm^BwZd(KEDzozc zssF6}`SQQ~9h?8r7gkQn&+_jW``w{BNL7^ERbT&s;I(Y|S^f`u1?y4$to(oaKP!K} z{GT`M|1SSoE?AzHJ-B6Fw)`df`+w>KsMF4GP`&>387n{AZR)cAwI=>5mCu*1vGpA1 zIhYAoZOC;mRFCBS&qeAU-KF7M+WdCZy>p27`U?H06Pp@ucvExdAk?|du2IPOkr?yQAqW((s%wELHc{bzLa=WjVi%zdLmNvqHlsHM(cy zUowAAPX6onU*lqo|6SGC+{yKCYtrSv(>8w@`IG%TK0ley%>Ol)F2C%H z6cxn(F%GHY*33_JHXIkFdy#rLiE$xE-G}M#S^l1Ye>J-PJJk8#PW@4j?1lTA zbv<+NTzdXb({uvW-_!Y==%rlw=jpmt=0D3}&DEA)XQ8dvS#H00N!@iEiSPSBac=$} zsn7l3pSj_WQun0B{HOaw|-{ z%l}r*{}qrw*jCq6+@kWokS>44-Zmko$N4ZHVhXE&pu)i?ROS?OC&W{r}(7 z<(KvUqJsFpF>mX8a~?vS%^6qQ_hx=l{^WPT{O_#!$?wI{gbrr<`a4P=ZzgV3Uep~w zA5#^>)AQ*1&2LI8|AR&T1GD6RamVE6I0WV7b1D-1A}D`Ny(f&}DSxrHyL4yy-#y{( z=mWU!p5d9ld_Hx$Q@?3T;AfYAwtr*CBSuiqyshnX@KU<`Z|g>gKpzmUu=(JgR>eog z`d8X7^b-3*hJ2J>F22|ApW(^N69roTX*%R(1>4=5bHAgUmw=^09jKrDL)GEg@_)b3 zw*OaQ{M!tvX9|{fgPT&VlJ@F*8vU z&3_F~9xqO~*H6evE5lQN?c!tRr0suy>RuZo*vtN&T-4a)j01N$7UNbJ_YHgDo?_s{ zⓈ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

>&gF(k*KJ9&Ti58?x3 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

p?%;lP?g`NU9=d0Fm3?=6^-zq2)R0OXy{A zqJMC0Rb^5RlFVRhRzLgTr)1vj0|B6k9PN2SU424^-Z>=iMGcEEqsgY58`8Aw`Ucg6 z&AQ(yJEQl>&#YU@^#~xfKlC$!yvZtD0CYYLY)K;JkpSiP?(Je`FyrUt@^kJM{at`j z>}0U3zR$Htf+Fb9`%=EnbQ>X@v4!Jc&eDtYL1y($Ta~A_Spdr-xQm~=Z!o?htO?h^ z_VVk9$j$~&{I7PT_XIFqxZYa#7Vpa*)exS5l)dV#?dJ;g7q}_p-r!B$AwgonpU(;2V@N$GA0)&k&+fk3Y9FM!16WjQvhK(bMwV`T z$_JTXDTRZHT4mk!AF^xqbC^VE~xGK)bObvK$h1fI zvz`QV{W$=fr!3JDrS^v`s;b?FJUMr+8|G}Q1CFL%vk=#n$582%6e>F4ir<2IL(LO6 z^xYeRpyQ6fA&EoU{m@Ehdpa!zR3*z}y6l2=?UC;X z{x&e%%HRpz#(@Hd+j%?*j1Y)le-Pk5BnH)i9#*wEz~;K@lO5e)tTDc0~QBV zHUM0X8{+_JY*|M3B^iY49*-KwJ?QUymG4;_-EO{qSsws4zunq@-Rp0Wbgno-|_|-hTa#uSU*<@}ql$#PFcQeStv|@+C$z^->))pkR{7zF!I{-?**^(t?w_9Di}A8@R2@*l6o&u}2>9^0!Z;1L zw;VV(iw5jN8pL=;D|9p0b!GSuQbtd*gW$*0M!^nRvjw2)&8IlP|B$)DU&4tTA)=A< z4?$>@&qeGCswq;LI6L%m8&p+lpGBx94J(haL8Lkb!T^%eL_iDio*N-yieM_0OVhA;2<1us zN!9&f@Wu0+c|cT}C981ucxK&~C@_eH#I*$&rq6rvW>=QKAuhMqm)ZxY4)D}({)%xq zINw5j@~1F>o$Z&RH;r~Q5fv`dwK$zmvuH>7%Id)G&3|b~|D`W#*UN~EJ@bf02PBX$ z5WEFJ!QC|ebuv?wm%ifD(F4Ecfx;N)0j(K21|8p*9I{wX76@}(&ZGx3xMNpqhRUV^Gzz#4@q z;sA?})xJ{VV z{cu2~4ROH09z4A{AZ(M#HLednU1sDe;45oWLNgAyUC-FBNIndlW5J+X1*;4Euhn&0 z{A`ebyHPhor-(RUWTyy&nhdcdNriabTFN4s3?BS*bWcM^OP(Z4Zy$tHgsC<4VlOWWp#li-ccn1`EPS@y}Ji?fT?dCV-h)loiUH{Q2Yd~)V{Zy9*G z*OxGRdxOTcH!KN2Nq?R0_L@=QK(nr{@*}We;+L$hN={UWtjRj&kp@h>v<5dFrMTsE zSPvB*4bTG32vuPxJB~%^b@Y>{E#0Q0X+JJlCi%KPXA98kiMTgW!^IJBY>jMrk&0v3 z22bR(s7qD*to|Oo#QHxl4?$&!cI4-mJ@tRxM{3QHi)s0mX{Uf@pw|Ok*12fDw?B~@ zo9g>FPeac}N1CT$Pb)yAL(4Z-L+y$>FL~aHBvK>n5`?AAg2UGy4{Eqm64Z%%IU-q0m-8}_SmEUk1|sIZC)w4RRnt$*wl#Mjr*BI4Bg8Kp#^y(G{_3tiG1Dr+aobe1K*c{o% z8b0g9vSxGH{Ehz9ageodXq3F)xAt8>s?b2oxZfjLE2UWOEE*RBMmX>t?XA2PBXb6i z8Hozsv$?)h5DK3OdMaK3=}qI&&{^ro8I#rEl7+ok6gomUL>>PYIZ<&|IwGHa2Bi_A zJk=xuXGo`qnz<#+ljUW)=KIqN#RXEun!X(yi8_M^aD|K1hhDNhgMjA`SQRQqq8WW@Zho{pk<>dxMjnuCGazmSPPZ|&pN$CUZ*cAnG0=iok+gf7H5G>M6%AW|g ziI=oL;_Zu`CCF@A`{j`)G$}`{D6&SP>Oii1)HBq2!8-=ZA%E_|L;<}3CEjDCyCnpEk2NRP)%4VqG#(wAskJPuLA9L6EU6u{hU%k+v8L8+*KO(U%FquJt@=|4G}(Z5;G`&O;WTV7^zim>B?O2tsyY%Wm4ujjmSjw^QF%lrkxBAo zBJzl8Kwa94#8O0h$PQ!^U^XfHs0sEC;=kxhX2R?N^&7v)kkZ*fN+ZnK;F_KpeC9cb z6AD;9LtnxDUktO?j{T!WlwP5U5#y_o11Q0)!Cek5Q#5)q{k^wL6r#Qv(ojt0l&wQE zH^ZwL+B?j!N13uTv;S{1bBk-Ub92jcb883$e3kyW9U*Ob0u0}}>OIy~BzhsMpZQ)Tq_v*fnpwQsJ_6}p~ z|CP=i@T;2}?=&E6dxz97r6f^=C))MTbdLhY8wl?AEJVvH5BuuI6@Qnd9@Q2AL_5O4 zLWc0LLZaF9DxfIQH5{hISqKL}8t=|69B(MrR_j#g%4Dc$q4DcO%)*1fJ!p`nFDU<2mx+$;NJ6OLYgP0<9?MTWemurNKkoN$nUmYcL&?TnFlOn# zPj(DOk_~v9S(1a}zrsGZfT8OH;7ABY1>EGIDjDY4@t>p$5Qa2>M(;^myqZp}jv62| zoX_>a7lAPyQb;cofptemZYoVoVKnPBSEQ@LIsVUoGub%Ma(V%wE^4546=^Hw>5>@L zA-Bmgm= zU@{;vuljHh`>}U1hrF8H4d7Oc?33h z8cm)vAG@mXpq3hXs*sA#55p=kic)LQC}S&`tW~o1&~S)K!HF^T->X-vzGvDykIVwH?V z`6swIy0bftr$bkiuXtc(kXqFXCQ6WSl*%ZuXY#Y({Q8Y{gEIeli0DNamtw_p>lotN zLb_|<-UrVMk2}L6|1_<~TMiLDMHV|jJP-rXs2rVy2PRa_gf&i@SH%~F-?cC16t9tK z-y8knog2g_662s_(HC{qZR?Qz@W>CPw$ow(J9LLNweS8!-?M$_sUO0g0svW+9|N-G z`sl~c7%2`#Tu^)m67A8AoQQs1Eq9J>q*EU9(BOrJK(!BToer23(h3f?)RDP;2&!Z7 zW#rIs=X50Uh`)FX_1_Yo7p#BDluEX))ER|4b^$x|dMSKjd+@?uv-;FR1z<0boP}w^ z`^alUL~9S)LID2a6Xx9TNC`Hd8sY~_S)C4YcCu?ge#)_Xd~`7ixfZl7C~wsN$dFmZ z6VaL!&uj(EVkoQmh9jo9%>1^ck?#p;QDV)DE#O zH&O67Nj|sZO=T3L=gyH^YY*iwRx1BIgyj4~_<}rS3!A_QZ>525C<6}8w1s$XZ?|9i zAzZ&v+?ELOL;34$$%`v1kn&)bsKlZ*gOl3toxffjN-%y-b2{I>e6sz5Ej=1pNVN7?QGkX7@Sr)t$3iI}UIVI9LOO z4I%glTTIQY(QuRp%r5X>=p2QFfmv-ROa=XWXhbRWsPcxPJF!)6cV#ydFjoLD8oMR! zS2ufuBC_!ws&x(lgBMlEm*`W^|0-(Y^TG2Bj}VjD38$6D~v^6m;gk$eH%JNxVn zJ;~-)^%VV{0g)&(-%vx`^lKHcL<<10Y@!YNv%FGAH2>e|c1M<{SqX^xFnEmnsE*yC z-#HqzIbSED_ak%PC-kL9fuU+(z4I~_T5iJhQK-JYw*v#K-Ib$69w~>ubMfw+EG9); zo;Q6w&HyKP#5>dbJRs!3@O%!RWY{jrJ^`@zpd^Qa+FS=lS&otohTS}zK1A9-xb7Za zjvu4bep9}~mh##%alh<644e2Ft7Cj>utC9j9)T_n*e15gwytbjbxatSVv3tA=22vH z#ACAHv5nzCdng4*K%6OqTE_xRHfU_Nfn%~AwpZjrO(%ATWfaG&`zuks;If2mXP5SM zS$2bCj$H#D92t45QPsEdp7|)F_5AzswAG27TqL$H8mBq}V=?LCVIN41nN&LS}0_k6v zebg>Wa{Zj};Jm<&W!U{|J4VzjkmgyPzMrx3RKI7DGfL0%hSe8Y_C<@8zHA1-@~Z?5 zT8`m^@grz$W%W&dTU;aSrD$6mcp5i6wQLJlZ_w=-K0wJeHrUKa|JR14qh% zv18nrHfUa_<@_>+Eax$LE6|q!Tqpbxg;{!?vQY|#@|ZQH)m^L6r7GJ+om2D1ZP@lS z$jkaix@7r!omM1A8blL8@iu3+!6qDg>c?zbl~t|pqe8DkCT8mnlO;PzCby`kCci^l|#=!Se)Nvp}4eX-s!y#O#fUQN1UcHk= z@|PX22XkES)Q{TO5J*KI5S!xgoJzMWhA(?nI@(eA$&OZ##%hxSK}e&_LJP8bdnjhP zjUzpk*gn=%clHqoYT$AquT$}Z^tZihrtvy@wYmsB2Y0zHGPaF9@cm(2%d=!pJ-^N| zZ_y)wtgX-9vIXmJH+C=XlttY2SduY^Lz3*DW-4G=@+Q@>kk<-FYDcPXBE~g}>k{Mb z_Wq1qN?-K)z9l<|gxn2U94w2p%@`U_XGfF343NRSCl{3lS9flKyYEMQ6fifwNM{s> z4iO3H81GMQGDL?9S)vSj&wYDJj6LiW0y(=MpnwKfUGeL{`YZbCNxN`+dVvDakfu=p z2y~r@X(h(QRHL;*VQ(Y{_3Mz;s2QZck{an3``52zD&|&~=a(0kAdKf1X4jT{MA+KG z9QuW&6~O1x;>xN|3tK17wCS=nh{Ut1+v-S9p3;Sa+fA0Y(noP z5(LGjJh`XmBZFTh@*QetK3L#!r-00g59FX=W1EBIV4}OG*>0&x_fM`X(}CfaA7JD9 z_9%`qh-F0@4XiT!piSGIXh^7Uz-U2M-FV}eV}gOqe0wpS)jCZbKb}CJKQ_{kdXzS8 zsK)9%$V>XasNabh2iMX-T2R4RtR|j|JxMFG6>^fBzgY& zC=-s);KHcClg|&|>#s=hhIpI?3D^vJ`rs(m6!lfEP9Z%C}g<5OqkXRDwhwX*YK1KbgIEkR~VPpjTgPAGd0{<*BkKYa!T?*cVoscO#gU zuX(mZAj1Gsaih}#JNaL6MS9kQ&JJoJdrGeD<=~Y@>I#WhRpA`8A6Yz2haTb_du=jh zkil9@5d{cWLSF{AsoP7$M*}0r?Uu7}{c0$(vEzm@X3WZ%%eB-F?5)c~FjJ&~lzg4~ zTpc?BaJr= ziA9jS#F8IP{diz$A2VOUdNl(^>z&-4xRp)!sJQyWV5Vu{(-i(3Ods+x&IYRfvFx_~K~e_~l^p{aE3MesEna;4;dr3*utBXVahe*s= zZ_&N}dwAVz#MVL-R1BXnWkIHC6xo=n@dY{Ky}vkS*?v6mHEr+ByVv{MF3D59Ho{VsY$si&d#lxqrMjjKW(>iNqnRkH zsjt01C1^oFynDl%xEc8514y#o{-3vAQ50(M^i6 z`+S$Zzo;Z-ohekj=KiaVH~pSXy2zspy~v{|9jGA6CY~M9fd`#^Jj&13;Tc?Dvoodx zP>LSY>rykhf;fl2cxrIE309^qf9?Fj{^U829DPiSsQ{2kLfwAGY*l*|xI)#{(De<@|13!R%u*|>;u91lFY&G$Yza@8eFS^ZIQRCD7 zAXfWKg#t-6;bq*0Ybg7fS!R5UT9A4C!V;5{wKzkj+e5gZ#9SlDlJ_8~XaJ98`(&iB z&G%Uv%|@w+4v#N|%B)LBSQbAjpDkdJMW-db03Y}r)T1(UQ^Ru9YguLN_@ycxNj%@@ zq4lZPP~vV|xt(+=hJ7H!loda;afjS2`A}Mb8r4PI$S5JT|5tc6{b|@HyZq7Ls42+t zKF{AjTmB5v4i?v1EJv30Gr`r==c(Zbffl2@^xg7p1`%er-2mv*<8!orY1SDN0NfT) z#X6z+HU5k@k+CDlbVQE`mg1p0(dBI!vuxeg>3hi^fEnDayoLTwtlo-QJG#%m?i3i4 zkSxWMM{{+*r~Lk`Tr2Q$3b{GOyrG8Ra(`(spPX%eLc{`A@H=&E$kSh8-=1#&=KB4r zQ&8y$^MN)g9a&~gFVpvc1H3#Ea8c>YQ9iuHl#zjr+s-6#=b65Jl2O4PXpK}o`Jy%; zOSJ{T7}`x@E?;-9DV8^B8-jTIrX_$FV9}%z;ufK2U_2~2Pfy}lEm{pt{+6}Ru2GW> zxeX?Ndj=nr6X>`%v0=N0*6f0lL> zL9Fll)WEck7DHO#L%u*;vk80O99(X*iWHdtdB8l0T7{`|>{Z*?BHLWeH9O3e1Elx{5aJoA9JR%@#-;(ml6a-pgz%5sfF7xyCVkCtNz@ND!4m8 zig!!(kJ#nwcDegO1!DUZwzc+6j$->13#~59E-x-DFDDZBAJc3RP9<4oSUwy~*-=%j1&hEwfOkncaXd8%`r_e0_1EI-#&t!+^g@hnME(CLG>_(UJL;y#T9XXtfC*fl9aE;uvOB7H1olAxu` zv5KaP@5ivn=tg8eUQuFoo+n2y5tyKY;?GH%CZO$pjVt8%uHZe5aSrI^UKtiU+rP2Zk?x9t=KfqZ(u`V(Ymi-e|WZ|hjGyLVWhq& zJhcy6OrsPNFbTY9%TDHpgfK7Jrab&<`g`Yzw%Hn*(QQCHNyw})b=ViH9Fbty5e>Vr z1!aX%@q(vrl{)7Hb6PFh&%L9xq~&?r+8t%ov{8H?o8(Dq*AYy~lCwN;#3e>v%C%`2 z7sO>vU(yJl^~?ud-zV6#q9(0zukb2|Lm1506{(+x4K8vuAVgYO4ihKJp@YNTv-i8^ zJ&XKL_0V6gcOj)PR(A!-ijIRn14s}Yeb)a@cvOtPMTKjpBs|pak#-5-JL49Vbg-yTAv z2VC<6!Y?$K!9zC)TH6ozpnmv3=mM;DxFA(0g2Pb-*GsaNJHqt|ST~^+AvTAPZ)hjt zDz12CynY_OtHfG_8;7qix>TeWs^H1gA8w!8VUMKf?p5RkEr;D@%@ZIB8?@jt1b#a? z>>%q$2Qvjta+`XT<2cv4bc_RC<&+o+%zrbF=i-hC$W`j%Eo()R zuwEoe!pMENAve$}dV;rC%-pu$RRiU#!MCIvm`x!QX_clIdv3wyK9nv$oY-BO#x zrs+qOF-uo5%Y?%UTF4w0`b|h!Ma4V|G4Ysv{-YLnWs_8qSglBIQ`<^H-N;*w1`Y4_ zH}-imqlbeOmnrfMDx>#NYoTDQj{DTLI3E2;<)vqiE^nGXrEt!> zS!-Xl1OT6V0>;5S4RYlThL0*F9=J52c&cC{f-?s(_1Tl$rmrJhjqxXZ(9Xs6#Qb;m z{d~8R|8i~P-oc$F>uT|$_BW(Tg755XFEmS=rnYctC5sO%-IR&fA%o~#=CV;UwNG== zjYVU7VS0hh0vO778*YA&ItrZps4sC@KLyTx_Z!umtTX~EkzQ)a^~gK^N}iBiC*vL)`6 z>BZtzyM_?-;!wTHWH~(JFvS!}80H`2$P*)qes~-`FUS4|=q=yeZxUMk0rB-pl zaN79r60`<-hq{w0#om`iI`->=DUK^t3}b=l2!6jhrN&9`w?GPg<*M6VVDg{RC^3>-fLL0j(|DbYkDKX~l4XYU717J?fp{3`8VXXlb z;Iic1)wL?z(irY~qMj!LUck~u$#FH9HcGz;x_tAf38hDQIB|+H#Wa;moOTO*l#sV1 zN{Jb6lqLl}14NTtc(vhwRGC+rFq7*LS$ala{zOg{-T0$$QXVHZA>;Y>J$-YeD&WRy zB9e$^VhW#h5ebiVj8}e(=x z&5$6_ADf9dSwDn@5Pe@hXQY4P7%KAWqku(D_*M06kNk!7l)e$y92*~*WMLL;v>Y@g zts&S~1auZ%02W%P*)Wi7>m(2)`G^zD^1RrqPvpy$-OxrY_`pzIjRb5BKsL)!ITM=i zo9_{QgjK%5N7DnT-FRTky-T}7#KjB3J`ykKRjXf#HmyB0Y3X_9at+vKC0shvFYved ze8QkH6#LYzx74NqG=~J7AD(rhRs+vWs~WtdHQ$y0RN3_O?A-M1{C-wa)3EZ{Eae(= zvkNeJi%ZKZ3kyi;mXXmZBTbh1=;Ix8Fg8Zg#7aNgT~adNirsV}dv1DPkErgh=iFXa zd{p|n3StEGc;iFbs}q4e9y~#zEH%}8rE9wUlh%^=WTt((`t+c;QF*%#} zZ932AIk~49r9NEgjOOgvvp26 zsp7i>V#6Yp@(M?NaYAp{GsVMzgB2*}w}i*zgzBm&`ygp@e)3%mF;x2Wc5rk&tTLkB zUQVik5;tMt?3b$aFuG+RhT<=4Y^i4={Vp-p(gJX8oQP-L6>}$r)#+KBNbup0Krm4!8nR@AhU2FL3;eP( zV?YcK$N3F%)NJ7_&X7;+zCX4Gb@}0Mf^^)_mZ|y0-T-2s$M{;1Mt?kiy76OQDk zpLHw-!MZB5B0l4a>It~~YAZxulYBIR8E@U=6P~g^Q*deotM2m1Jj#7y5DLIFGYT4j zSG^EVS`eTiNh@Oo&AhirLiQJcrbj_PQtt>*YK#BpzXd8-nEEhNMZ31~P|vfCa)w+& zY-moy?k8CqbBbs+FU?YNDi~W8=uF5%!Io=&k$o&70vUMlC_k=m{h3L|?#YY3%^uJyBqB zrrDV|BVW@o|6r7z5*4JS^PZcoMN`M5rY$oqi+wzUeR^Ldr{@-zmZ%g=-5WuDLsC}u3K%&#m_2C_WIT%m=<`K7hlg@qiqNL!KVi}%y_X2Gk;1M9=ZO!l&N z>pCyXh&`bbfX5_NWS&q`r5imUsygTNU-OUG1xs%JOs5m(y6o)JO=pjm)F%7+(Pcl@ zoUxY+`3FKY_)P;bdbBQ%lQ#+SuWHk%LMn+fO`7<2SJJEtrX$^)n{q<$qPO>B$dMhC zbNAs%{^Q9n(|_vr52pWfefr-t0pPc}Zx`nO_FvtnBgj$OgUOgu2s1&YRoSMKs%s8q z?`kecY=nbn(@mj;ZKGQ;;tvcQo^lY7}xZu6W^~D|R$G|`R4fsawxj0kgj*7@= z4o_OUb>N~A7ig@i4ayc87OtF$wbPuz;YTCIUEFvuhjayae?EeB$560O zob|Xqk+1|y&W4)yoHDr5Ek}oP+oTLnQ1qIP9!(y6gtJ?iE3DnfndOCY zMu;H<53zr8SDPOr|KvF=70KioVFe|y8(5lW%oQ+_F7**p!;d#eL1C={nMewzMO#hZ zSV;^W$V+9Y$HO23NilC5m}zzsUoVNUnB?XRLT&m3P%Fp^6pC%mm~24+1R7DFX6%G) z1tpf;w;o%-yHcs+z38bSkM_P)^k#lJzbp0z0@bp^8@+7-OlUiK#2SXi6I7hbvoY>p zs{!zsguf}B?T+AlH0>JtJlwS6KD2?9_zHGO#Hno%efSIkSta@{Uu6)@@TbvNYAjuZ z$ibUBfyrbT@$xu~i=(H~Cwcw3{fy@jqph~y0aKe-DMsTxfv8&B2*76GB;UQymx1#& zP-IrwErUW+w+C&cx?!sSNf~5MAHTTYQN-6`JQMbMF_Nz{yqLw=+>sK6yluS|d%TK% z^lr;rD5%uP3TY9CT`izNQ*o39s%o`@Xsi)adS}Y;L1q9lQOqW$zo@_fzEO&LMh6hR z8-HkzS;(KfoU9!`SG7fsMMdTjGV!=9tLt7AN9jVFvwJn3tU@$>VJUL>rX^cz)0%Ag z1okRt96cK?t5omQaRWm`Kt*oFs{>fIk>nlq#$$Qj0tWdFm6~w3-qV#OOS2n!%?iAB z!%SfGKM@b6w~lHg-ZCemBuSS@?iKSJ+xYp+UM4q`%$h7#?m%KoGzzHRT>D&r;l+xGHj=lp+h@uqN-4Wu;W z#cSv;%p;;_t4-D*xHgnGok=Ls!7%o?(y3c7^k>o@h%g_B+17>Sg_X6H)z#S*GP^5t z^J`0UBza?kX7xV2(+|3Diw{O&t}93E17EK1ugC0hU-6b*WQ0U#mU5v96+4}8rjEWD z%_7V4L?ZbW#t15r8@D15zF>h}HF5?wzj)g#(Al8(7~A@M{y*lHch?dNmP4@cU zIsywtu1fd#`gLQYR9P8aj5+l)dPO|U<;_Uyu4g4Nov5a<(x>F=Q%4RUfmE(X;$qcW zVM1C?6tCJGdX<1fI`d`c>PMKF-B7&AxmZofM9ADixoyncIt6InHR)$Xzs3g&H7ATM zlx3N~$e+?<1BJbQagM)~YMj6dcYAMBM#P&iDBQ=tsJtS6)JDv79` zb*Aa&E!)yp@eKuw~rF0RaK2@f}VPy=!G+R&+3 zHdNBLmQ8hPbVU&gXTE``O{2T{0=hTjbxZa=!L94UhOHiu4cHRYYS6QMdWv9eO`5^# z{LJ{VpUqEJoqsNzR1?ArXInB-I#nlTLqw*h&C591zc4-i;OY$%*2&`sbIPe=Bk8u4 zrOu$fOZVJiFj>glwEY_4!elsF7yd-ikLTdyFUN0H)j!+XAeDBqI<-^ulM}>iS14qm zBnytUeigf3|KAg$Z-8u-`BJ+F=G&Ivs!ma7Mz*i|EuRbq>`}JEfPZQNcyT(WT;QlI zz>|@}1^Ia6Z~f1I`jCaVrrNk}TN#f?v?bz=aGMr+&lYda~Teo6# z)n#DgdqIg4*rllEEf+t(ddlezOJvfBT!Z@esnj z^V@H>Y&n8SBS^HzrOm5di^|jX?ce|5AEy5Alc#_D({y*{*?0f={QH0U=U;yPkN$7} z^|$|r{agSp@hMA&HIRH79#SBMphJ%Vya5p*YKAXhD7J|Ya4(fEYfP`m8qGnE?E`X&#lg_uC1;u&Mqu1F0C#t zFRm=1TktWPYqM*MYl|zhb1N(JjNhCGD$gy=`ozsjOOX1;_19bdjn{8`o11*y-u)+K z>M%5AY1q$Or(Ymk?NNguv@UH`icOw3Jlo=WHTP!^Mc``<8{h9o8^wM|59#^7!26iRG3=lhksoQ=T9eO_9z0j^f+?*^y^(g7UV|@D zqn@dkX0Mhi1mNAy&QJD)=#K3?aZ{5~GsVWQ=mUvyN4S&BuZVLd9pxo9uvBN?L)NWRlQR5IeO2?;$*nQrW z+sceYl2vgypE#=VoHAy1PP+sf1VWC->%AGX^EVzAftWV6HTST=IRUKs9a}NQ8|yP0 z(0zDwY8p5nCDcBL)!?rasecxdyTSZUthaJ(K+zSLt75eX-3_G3(a2fiy)3{Nt>9$` z7XDtk8lzZuCSK!uqlNa#(Tfx9QQQ!$gbKZ|%36yo;ReiSGr)$WIJr2vXcU_UOS+j^ zuL$KYGcuEwDevy9ovoNmo-}y8s%jA#!;+12csOep>Ryh%5ts`a8(Oc*=oK$(E4%M3 z&cr}q^NTvJ^Rd3E61Y<|vSp&g5#+w<{q_s@n!mRTK7a5W0R5qJmLKN@)lp4;W(Z21 z8ZhFt>3_+S{KA~eh@)L6oWB?71XkkHA?4y0f#kW0Fk^`wRbi@CEipp3`jT@{|;zCN+4FS^Mu&pX+zc-EZJr5072kAHF@Nx z26w!=Bl`66FHmbZ)>l#(w9Z+-C#`k|J0d3XorKs-=ca}fjj#c}G5Hf(?u zWllO5>WR|uKq&*ftQP=>63}+Bq7v2s@Y+Q5K15>b*3PL(fw!i%1pqy0+JOu&-Vmzw z#K(Aq|2>veB(s`cKI?3oDpV-|!82Pj<=meM%%t?t7%Q-!mQx5xQ)VI4czI2Mqi{iq z2xR@*bKI(E;b6$TCS_TOp3aW30!_F;^1|2vtZ52th6l*2jz4(tEqZ>Y)33jgjSVF*)WSw07%r`d*4Z6F|2G3@;HdG;HpKb2iCUAJ9Gr0_rp} zJU^F!en8NJ>h`E(rP`HO3#Y^T#pmdL7(Cg|I zlSl9nx)q;~;b?3!E6X#u6Lh;FdYGL>v%9#mxU#S`ySlo}koh_A@zM(FiKPYfyX)|U z=5Xajg2_Mxadt1?3b{att-g}EQq{se=4!rp_i8lb-FXtvE816X?DpTjkTMsV|Fx)G zSI#EQyZ#cAcYnLL$#EZM|8}qU=HmR@4wIbz1rAMLtBiE&yn3_$@X0s5JUPv8PPc!P zlRIn&O^^hYvW}U{#vUqP1>=LCs0K_*b}dY%6cV6%cYAkJJrZF?^_mZ_EUT(!v^x3I z9`DUsRtTpk<;S{Jj;95k7r^!XO=d_YcE-+iOUq)Py(Fg3cG0_Ld{1YK#s3=2aK;^} zHSh30e*5s`pPoH?^6$rgdiwOAzWY@D@V9>$fzP60m1!rDQEj)R1-1x9xl07)r5%h7`!Uf$l80x;+TR>>*_JLkNyK@XDH&_Dh3AWQ5b^c}&G82)jbM^9< zRtu#>;Z%X`=~WQfD|+xY%K5SW3R@Cv#3pgKW+n`$)gMcKNo#Lrv=@#HW7Bt)c&d*n zJvbZo@mErge=xY*5Jsco4(nTzppW$_*F@wan#?B>vs^@5%XRSMdCC+jRKttP-Z8LZOe62zOezk zYZ}i!>nQXS7|d6zS5_eH1h~s{2`oGT?=~mjdSa}Nl#|T{okb%YM{a7LRN$~Bv3lyz z+jJB!ClzYB$t|&enow*%@Ra<#C3ayL&KY6!sQl(-_vEOd2;M*tRPvJHB}stbZAVyi zWCD~=oHSqQTf>64S$t|DPlzxi_8>mZpe1Ky8iLeL||QYdsBgKP#LszUq*yIb5W0Th( znct+9>mfwKaApmcwHC9z6;XIQfQlRMXb`WUUO@bS63*1AO2oK;(15f~;>M*p;sOr< zn(!UZ3VRZ{?u-t~DmUXV3rS#Z8t2$vZ(sb&=Egp05wyPBTics^47*}!V+}|IBU^Bh zBrly=SA(Gs7Q+-!dj;;ZDrRd*HMms2OE+r|G5bnEG)A={G@bVtiyw9s2IU0Jv9lzv z8gMi}zp}8hu)MOgxVS(^FJ`FHIv+8$k6$e{b>&5%sEBg*&SRf*)O$ce@+O+>X%jm# z$>x=62_tm9_jb#)^gs*kxb~EycfCDG0#$~fAM|`hr2gjkUCv_bCY_z3{w5$6ud5>Hg{IKaE2BzfzJx^9WXrVSDDI3UwMU zgw^rhmORXBD&cVerpJzzj-}wvS<09Y^Xx8XGAKfL<1UW9r}NmdDplCZ$$4c4cEHqt zdO2!yESH5an*}bWD46gEO5JLnoJZu!LmH-NpSRqn)E#gRxRoL;Mwi->xKERon2n^v#`irzM082x)HI^ z8Qa@%Dh`~g_C1z#`E2H?~y_cXo95%O$Cv`*WyVzHJ-(7=30MPl5EjZiQL$KBs5+$i*@ zSR!&)@hsyb9obeI`_v=a-_3ZE4>|>l4z^Bd>GoQ=G=&4g3iJ}Nk-ioy;0cJ(EMXCB zn#9QyHCO-)QQ60nDGYLv!rCX{5WH% z00bSI)~H8SGDtQXDp@;8t5otsO!i4Sj44`61G;R@vmnZE?NyVw)L}!AAA6Q1uBI;0 zddBkD*$EmHyTLxvFQW;v>qlKxYEP{N!_1k$H5ra?5P^gl2-;x@paS# zB?}O|!o-$Yx;on05`#?bN7ZmMf|GA#Ov$Z!D%iJSJ%bfhV9>3Ibpm!RKif7|sgl~` ztAo3?{@5{JZ+)k8ywfv~NM54gLqD7L0R%9Cg)SGf5Q|UE;<6TNz8{~=m-cW?WxD(fBqmVpvFl+Qt_bu3LeY`QhYY5dZj zk|17khc{;)wD_Gpm#|#}|gKQPORr2R%zp6%XQl;7g159g$O@ zo|t&L-T%KO#%K=$&|az|9W8C64;=XDwDU2cO3j*RFP;^m_0U81pEoLQrQ!bqAUYnz z%$h2JhZLZo6)DMytIz@Cr!qNgf1K6{^+YpYB|j9757M_Jk#w7~I&8KR_m1iydGt|% zwIfGD8U4WLyA=(rNZSM?NBQARy5>Q!I7a%m;+}CZ*$RBxr(Ip#$R}WjO;AD1X#N&O z0~{|w+QmoGv4&xF90XG;-Fy&K%ie}aK~Kbzq!GYGgn&*V_*NN#mio#Fn)jbTv>AA* zW&<;9TJ8_v0s6ceTJ;?Hu&=%j{kwrC8+wC?Ns!aqusAZDpiAhPKY8%>CR09zK23I!&>`p!M5>ub;m9`f2-c$LYSj5Cq@|voHn?LvD;L z{$}?HjOHTB)8pXQaxAWKC>QzU$$S!seT$UAH1ldP$WD}>HnXR!tode{6`o}ALD*jo znb=_u#MYyElNiX%a{lrw$f@*>EoyAtx01lLSS0HOm1=q7kv9h9i=M1%gCk|aG3_dR zAl}6l@s~G_1WIuW(|S-Qpx|~u0@mqULTcr*1fA40&NB@_Ht8>1Ko_kzwVHefT1hJ1 z6Qm2hxH1&%ASV$tLBqm)4WY+QFE6%FE7r!9htk1V<70Uu!zC^~mMqrCc}dZyx{F4P zT&V>L&T9k%-AShjNee=sh`}3}jUIWsfb>dnfSu1mE2S>U@$-1S@T&6(Hy|0P`Y5Y2 zFNR!Vj_@Q5vriT_eU9o7!JMoU`eWah(~~$+UX`U0Cp3gmm*{7|e&zHtx=0T%v_AJQ zfEdMgR-GhD4#+EQ9hwS?P0!6wFU*zGX7v5+9C`Lx>zp-mI`nj$rK^_y&w4|!nkye} z%37w3kUBmtG^k@>9$(7r`v-SkO!09<`7EoR36+RA>q zF(I#1yhrzj&+g6liDU&qWbw4k`S@3iNxm|CgaSatD!4NAyc-$>1D6;pZ z3+Lc>qW2|udVl{dwRlQWNX&*XsHiQjukRa9)#9qLUaBsm?yqlb&=+pI(V8%5V|{yP zzxUXTQ^VDpYk{Qpuh)5ec=i!ByW6Qo-A<@undPY=ap$QjodeQ_zkP@OJUA9Z_qFr# zcyXRh>rWXj8x$^N;Sp^C&cTd%GJ$Oxt$;_h#=ejBEiA$Nc``OeNFaNP&MCmL^uZpU zQ3L0=nB~nvslanPf@|Ynajhfhc??|#Brdz-z6;A%ef|i%ZvDRBTi5?*!|7VPzritW z_2$;xi8h!&00gZnB_xX?h)Hp-Z49k#v9g5vcNH*{5%=?Adv(4IF`DzKv(S0=hNN2H z20PC}MpMCrRr&=qSC_Z^G0M#0m7=IzK;Q^s?J3<-t|o z0{LfAhD|ehGTLFHK|tA9?Si?NO~*BZgZ)p2wN(QJYj!kXJ@yC+k3M8~ltkNuV+Y&* zlx2q9?0c)DFSwExH>YUI zXrs!)3UZy)O+nv5i}}D?&r0v(Ts(tk<2#GTKSnLG|AkUtvujBHZ!OCVuU_OEjgLGaixL(vO{)4C~+D>%jNG+&@f11^R@HHh1HZo9|PtE4GQ2+4_si%{|L*SdU*CccL~eUviZ@^(>-X&)JL%|2SmWv6oeSTI%y!0} z3-^AawtDczdHk}Xr3qw_!%^99i<}~`{gU|6?G&5=6K+o~p3N^T>W1)oh0FI9khX%| zpz{*VdB8Lt^W=Fp+aJK%R%ZV|$i(^a-^cK_@&PjVR$T7*sY(MC0~`qf>xyDyXne%d zzw}u3N}HQtAKSn!m2MmeJXSA|kqed-t$K@!jAT@k(a`Owup>1* zUx}Q|RNV~@RPt@Ji}csSkCEjR|9N`u(U0d8fF4brT%L%i(a#5p^rZFG`=izQdCO9y zlqJ2GMT6=dV>NQ>06H37Met==C^@4=|2P2`S# zk>Glc5Nmc7DLhRB=_5S5urjx@$RxJarG+JHkFrACyNJ+*4uP|*&AHX3)s?xq`Nes3 zFE)I6BUqP>Ihse|enKd<@x$wvD#TQ!oa`Oh0eMTm(_@RZ zws%^wmi(h<1qimd;ODL0zp39mE7}}Md$K`$g2dh3-87NNr)e_Up>eg=L0`k;s^=QU z5V-D$yR}E?7wlQ?29|w5(SEL8Rcq6w&Z{;nW%x|BXjoyqbV@Zec@$4|$)4vM!VlUH z7FzOmcs_Cxx_g|JKkpJ$-Fi?Z=bl**p5lj658e4gL^Ui2wQhl`E3wmf*u<$45@ALs zUQlJuGCXSqPAy6yJ|U|F&9DMm5cRbiq>h#{p5QhperReBJ@%-D*PuB_<-uv0Ag76; zQDJ2d47e{DKKskq)Y0ff`|Zbrvo3aWgLBU*Pg9v<9X^QH1=J|q68>t){D`fzUJs>P zQe8g|JY*)h2E6}Z)Y4h*B`%1#i!Z1zRGS1{@T_ARu5D!7xrZUf0_*q%`4_bG1jNGR zzhJ(!Ur?r#xvo7M18CV;J_~AClNBv^kOr#eu(euMRt5rLt4Mt7N&(ZW!=(_%IPBxV z`Lq#OPa7qp9#mcch5jy7k6}>XxcA5lJmV9*f3>oUyv2_Z1nCy7a}8~3^e6s0+_?U- zXD-tI`SSGk?WO%I{vwTo-*3py4SxXxs zqkq}GsED@G~j6!GK0| zS~SSYAf*XG+(u^EWw{{wFUHzu7tq#+X`q)jANg` z7iU%2a{E9UxWjA^3HY;#^&UtC?J8M11ewO z@^3UtQ_@3J^C6w8BN}d)*Y`c2t%_fE`tA4C5WIEkHLu-i92~RomY0BxPfMc4f+5xs zQ(CN)96hIi`_NM?`?6U+jWKPr@|d!;jaJ(sJDZa*_xk=Dh#Ym*Vsf1e+f{t>tv<&p zq`3_$HWj}&gYay|mG!aV%dlpAD2)C@1Ifn{O0qCSHY7d`CX08!#07ZbL?^TizY@AQ zqObds)ql>=qn?2W2a-)yF$ob)A8pxKD!autDc$VCOGMxYKCVs%1ekG&{RCzs8~E`8g))_+0F-CVD;rG(T+SKvMZ_Wop!HHp<8yJUtj>1oM}( zZXPJk?QbzB=PjRn)qm-F(Ej!bZB`WDRXYM(gb-5w>vH+WD` zIM2#;W?G$|Y;DpyExi*hz)O+rxR`#V1da4yJB?gU8M@t7s&Y6~-P183%V;kQ&~D-5 z%o*{_WWY1HaaJka=%0)@>PRy=oP5P}b%jSAe5!HQk?<=kP-fUmVU4~qo8=*)Qjom6 zf7o5$|H0rf=GO-{Xo=|>!}0^Vjj6xmMK&2XU)NQVeplSBmER)opY<>+?qf(%fHd!Y zA<#aaq^W?NoCLzu!6S@L)FH^a8FV4<5812+=%s}%j!ANGmYM2|WGKAbi-%gtHR)Od zz&v7EG{W+y5lR^`sf`oyuQ!Xd(AguQH`x?Ku@c@kie;|v5LEdUZ24^TSpvEbr++1G z%(35iX!(9t>v@-NcuZ0Y;oKLzn>VTP0@ErGBWN_%-tI=@>|2WIh}N3Fn>sHs62NY2 zP=SB+Dp}j-yyJhrA(H&UcQ{h1Zq>-c(?#i+)Cm-`uR2Y4zwx)Bz#?p8L)X@D7g0W# zK-6kpk-boWU1l0yZ0~nSQZqW#N@C-i16GVEmT9o{%Q784LRNTr|C4$Ukf8EMX0#``P}Gc9aFhaceGgR1H=>Lpm{Cp(|T@vE~Ys z4^8?j9>YMnU2mzm9Oen@9Aum3y;f0<94`Th*KlGJFN3x&K?+g4nnk`~W79X^nrC?I zRIUK5nq-f+3T4t{txLo}#wYb;7K9NXutUYZ|6UmK^`s109g9?CRdb8Ejcp1iR6HR! zq*qyk+~}GW>Ho6oc(|-ws7WAnJTT?Kj>tX+Q%jL^;B@=8-ik{esJg=4m1kO`S(mPG zwnk}zQ|4DTnym&qd=;l#V&N-S2sm=54uUsbY@zM^K%yb7S%q)GPkdJpf`3L8hx6X8 zj@>Y|N{I3bk8LV7$3dnO07nupg5dYG`!s6nJ&)v=rFfZtE$ATlRB9It3acVe& z2cUb-{`Ss0lUzMe_E7ar<|*jO7_e0Xdz8B39`CL5gdctIlBSRHgO@b@lpnfe0=yq> zf@A2t3h#xj68Q#%kBKP4>l*Q@ZfU`dx|EkUZE0o^9)i?A|NL{mtTo_|OfD?l=?M_J zp}rJLom_x1?}0Hq8iZaUqWW}<+%8u*u!R`Ha>jyc0cvrsBc%Xil>Qj*eIahck3IyA z--uN8OO7eQVVE@Nh%lLUUgzZdVK5&5_P56xNB8(2zki(27xVB3x_nF;B5-_91W&B& z-L;MFj48DR_gTgU*E|CPvbGS(O!KoiMoxJ;7~})CA@j#SBE4D7*pWdaJQm7BeW@T2 z3}$7)*)_S)0ZntPWN>r*Cd>1ou8ZjfVyJc$Ao+Xa!SLP-+vSvcQ;;}J z`Ad6S8+6xNTuFu0G~cSALte2}ug(~dpgRO=kz1j`!DW1Z7zfMC=rt$AH^jkiH0u56 z1BR8RfudVW!n`DXwS`^UZ(*07rc9kY9rT<1uP(`6%(mdJ@PW3$NrCQbCf8L250DGS zHqvrK?@rdgEbmJ_Z4+_s+Tv_%2N=YwKZ9epdsCycK-01*(uU~X;*t!SJje>s?H~B0@KFI^dck$j~+4{BA$>nkUpA z`6a{do&|st^R(=74MwmIH!)7s6mI6(Jqd=BV)ydacrwmCigm;B%X@hqtAMP3RhL{b zpL+OKYhLJBNf@oiNe=nCIae&rtxM5;Jz$28fEZhYpzWCZ9Z?qJ4KjcZ_$$kjbN!SV}_U zKurV(j!)R>Nm1MF*f7L8pO$ji(psU@3`~5*GW7{M7`azU$mD@XK%@l?8ed&II6Q)8 zIe|3zc=qZ1;_@?9?>D!1U+({NadB~Wb!~ojZ51MQd7kppxn=O!{POb3JTq{7HaQ`i z%4CKtY*G-mXjFsp`h~+)4KP3!8Kz%p4yh;Eu!@^aG3g=f_WBY}P)2%e9~5It174-8 z^yfAn(uXvFsFJad)Q3KJP2F~ToE07G?7fe<@0JRz1edwseCPQ(<0~64VnmV6x3iWh zaFaIv+wri1cfS4A)y<_ykPw$zC=FyQMp@xo%y|4^kKy(41r8i#XK}< z5oXs_3VdP1G~BM{XTm|b8dHxgP$Lh7Ml|_nMq#7#x?HoQ=3A|+vYXo&v%6Wf_iW2W z9)O=MW|nIlNt(_tdEWNtj9}RNeo)2zef&(qOXpq%?1+Qa)ZX2g2~7sah#HTFq0P^) zy*3g)%V=9$6;sNn!%a-@@A6QCEuGQi> zW@tXg*#O_%DcLx-l1K7XQL8bQ68gn zlzs4Pu#&G;*(Skl$TC<+No4vpm4I>c?G`7!qa*H!+rsjM+A**R-sA$MFj)%sOrMBm z%AJtU7~n~rF$jG}NIUYHR^t=MJChXMol|&yTB~=T_YZ0uv zy7yAjTm==LjlUyEDnD;N%Ak@1MtrqEk4_n!JA2Q|LTGf(eiVObHG(NtbAWK!_{h4& zb^t6TV*$S5*EDZVDQ$l|`pHG-_P3NG!Z|CiMe>-Z%(7((7Ava6EpJmNKGCYWQ;1c6 zxkZkBIpFu>Ran$~6_TaX6uX1ZaYK79LcU%cDu?`^(fa*fx0T0igC+Z+4i1){s#8-L!~ z-ebni>le}X+xRV8?VmKmm}Z9-aF!6mjy3rAAx%JZPys^MJ@yhtxBI9}xTxJtrGIpC z(RXv#k1gJpnfs#+WY%467q)f(4z}Rbp9v%+~T8} zhHQKEW>_rYC`}vy)#TNf0f_*wK{YND^2S__gI_>8DMP~=Qa4Vm?8rPBOpE0f{dEJs zct%*hj?ZJ6$3-$ftjadBk41WR9~XIY%fNfBw|1Yd7*3wtZ!_(`Jemo_p`Z;gpI#F1 z%OQKYgJNH8wzz%&wyb{ZMo1JcA+Yg#X^{&z`g>Kc=DXq|8^sf$amtF!g<81!dl%V8 zsxPY3yax6QjE}jSJ@Go2ru6IWi-xD&+qo`rVhG3ESic42n~Qeqit;v+e+ccjK1pfe zK=?({ao?vp*YUo(?Ro;sNGC0im|(`&h!?Ci@~qRlM)0yrkLTbQfhjhV&)k+;i!1Gg zXJtNv53DANMxnr3I+jMps@6vrwXbLH9*_PVu35pAYcv6-4q zbp2C$RF@qAOI`Kgv4r&%Vwr1~PYaDg<72TAJwrQye<$BBsK0sVg zX=>73^cAq&T%_N7eUOTWkxxn}Y!Jt-vqb{6i7vP@vgP;)qCa|INojI$?5)PjMOB>G zWA4QE{$^8;0y)C#QylAKcCu@(!Y2PHuCP72Uj`+%fc&S+>F-r-c`2NPbm&>9?i2`i z0h{q`dHl%O?@U44)cj3m2y~J4=Ag?6vhFC+=b1Z;K!>~egsB{Bq&%6jUhBVS^R^@Xl9P$s<_eAp~E}mTAL$ zC8Mr1lS{H3KuXoBm^SUe&b!yIHL@Z6hoWb69c5 z)-d9Bns&+FB#AHl{LeR-XVxE2)O+C~heT{Vn46oMou6NronKs@SB=~f%}GSAGEsbW zc5QZb-kOsv(VAgy4rWW8N>*0qS7zrKF*C>1MJ``job%!1W2)5jj2gdPnnjP}NDWNf zc-Py1`=$Ysc9l-FMk{XatiO0o*JZ?1{U6qQKTN)=x4A+8Z${Dd-tF$bW%|tS?P4T3 zYzZG-C%avzD?(D`lvZjnAwAl0_(wfPZIcR#NH0W zh$pJ>VD^BPgp{S7{oYmZ&Ku4D7bAm-UY2Y zC&1oI%WTm%O`9O>6lu)8dg1M+3vt4gN2ix!gJY=@)p1|oMfY^ZF#|p|h5@kL#-LmU zYB-T3BSQsk{IsFUyYIG4Jn-3`#l<6=*w>Otb1fJb-&Ob!Hx3s!413E>D&=LpDrC4Py0u3Z*xW)Uf|!9Dep@w#^p%=cdx`f;j3Kkdtey`M z6TMe|Zf=K0FP1vOR7P->)ktdpbPrd~4&vJ%^VL%iqpuz-n9gh0XvMDvedVnW&{jO8 zif~B;sd$HhnrrU6&kDM7RTO#|928jJ9zAgj4|GzFKd#b#!CD*Su)c&|ib;K>#SfSz zuLgPbcKxUIzm)W_D@Ou*6?ubJH}eOz@P1JvQgOCc@%=EgKzJe6;fsS~Ry7yGROp6DRgXhh3A z!){7M*E-Ym`J3%9rEq>_1vtI3w5*O4t7~(#rl1+)EMv++)gbF7pJTqUx4FK**?+nD zdXxWowV8v&`>*!izT55hcGh=$KfK-F;5C{5m*^p!TjBEURa%e#3IaDp#wXZ6_e(8o0feCm#5>G*)=HFX5=}CGp4AYajvuBPPJdHBqULo zrbHy$iFwL)7|$RmNNHfGX+_4C_cn3nb}L=vI11%;LH9-pl)+^4#_I3EtMKs3(eqTn zp+>JL2XLhvhkQE$9Zo)+74GN543cfgFiUV?tAIz!X31*3$8g&RR4C0>O$@^whiUH5 zxGgjvxa3H>G6?oCa?C;x-HlMq=@EBo@)pdSPZAi%zHsYmL)ZZpgBk9v6C~ zZB4yOvXJ!L-Rbc)<>%a0{0kfy1!JH?)43!CC5Xry`sl^Ua>5J?9NKUOfbMwV6*M$& z)&yNdxq;~fJ+eSfI)vHIlNujB&G24o)Hes0KjGFgtsxw$a9Qgvmoe)(`aBCLDjdva z&sJYP2H0FT@E~Ht%8Fg@n>0|*4QX>M>XXaoN~0Uko4R+2I=uVMvABUqGw^$8M^0$y zht$Y0Y||hr#y$zT&_SJE`Nyv!H71ZPQ8mqP1#t>{5aif2U!`*G-{x(l-{)Dff2^0G z;VAN&2u=_<|LOLr{tK+o`RA!)Jh3ZQTNrqZ))f}AOoha)5n?EIwU7qr%;T4}Z2Wqy zTutT|e4~(d5NYwoIC!p36Y;nta2F`Fjkk8-3^4n@2g@D;TtQswm1(nE()Z2FrPQ28 z*fTihv3LSpFN$?V0ffRTEU#c$bANLSt1Fb?tgH$QElMa#T|LvR*OpdcA{UnC`6rUl zrRBAS)zvlr&Ht^;&ub3J^5V+!+6w7zehJa2kHFrts&yAbvacM6O(f;9uVtrrZq_YCM7edlyM+$aqG8#7QXfe@?eY%vw9P!A z>x#-7z8OZ>I&o%3ke|0CPB{^gd3D&Rc6P4@rc^Qx+AApvX_pk81!yXwz_t%N*0e%D zb*&$=N~I%Yz^J+lF?v$d*G5`~*9lp#=*`$#*;Z~l%y=TJ0>H*_+5;rq7*K0p_b^gx zT~~vv5k%LzPOvG3ngAyQg_AJdj}c0Z0HX$Q;v^`JASp||E3-730dv7k5DnNRZTTk2 z9g!qbm}OzYac4LBk6v8iD^MjtD3*3A-ez51JC?;<3U-h zV)c-0tWORZm4HHvOz)dujBWwskMEo7^k>c8ISZouv>!wEiBng?iY`gJ8uESsfYs^*0F-_4Cmk9s4c9wMglx_~Q+L8;gBzWeNG z0&9CfGkKlso=hxyxo$pN?!FO5<#lqts)C%zna$8F?4r9RQ{j{(GZhNr-Gkv!pC!Me zCZklzCmY_u6rR|ZYWznL2TO}m(sz+M0Bl`-{D~bsxa!gAN2b6_J$2k_cOeKQuTGQ| zV=o5a3(g#LZs#O=x}AprGIFVcc`fqXELTm(IbS66`wnOI722-g!Mp{3l%^p2oRh>p zd#g9zPs>3|PO7kShjsNtV{N&PFjfLvF1k_buye0R)*b>xDZ1``-u%>yW}+W zn=%Kfg_(4n@6v*u4Uf04gJu|)6iiSHU@7+C4ok8hP}UXwWK3PoMNKw2qyycsaDTwP-vhYCRyT6ulU1Sp+t{1kACut(*=JRy7 zBl1}PB>NhjT6Q{8%vHh*Tq((I86NG)3cj@M{XUm)d%2Pw9cBiQpKMfK_NkIZYW0qC z(q2(TM1v>fG!smQSND&EV@njmqKTx3gU-ep6~j&B9Yy3$R$J-Y@wXV3yisH_=bagb zf6i!L)3@3e=NC-CPFh;7=mY**HGLKdkkm3AF5BhkOAR< z)wSjMmDPpSxdm_|jNHXx0NTW7O7ce65ci30 zai)f2d2x2N1-EQMlBP-x*dKeG=u>v5dVk~aQ}1xR@~37rAafNmI2+d90J3cMiuMmq z*3XY$Tbs%j5ahjC1>dxI>@pe71s$&9k~T-irbtDQOm>zRr)hekNMD_i4=;ENi6#}g zIkTpx>g~O3We4q6I>j2a+^+_4*a4s^8&r0zR3d)uLeGkry~-Qly*Zf417_J`!Fo>A zVu3tedkyTcmq4T!cuz&9^&kdGTTZ;-cmx;sm)93F4^@~qM0O%pLzsyPzXAyzV*W2K z4CE_xl^?fTL@1jTariZm*+Q*>LR-9B-blr~xuep`((YN;&J+t**@0T_2U3tg&&~8Z zwA;jmIM!^OcXDL4$oO1+m??FoCBFprTOp|;npYdti;Xj8}`fnmBoeK`hFo@UK5UNNi_`Wp`65G?2=k9_2NgF9wJYD{fId{Q?!KdH3(8v>gPEuof+`0H2 z#u{Wwqzxni;?M`W@c@cGX^z|!rE?n{-l&(~V;GJl_y|YHiU0uWv0$NMo^cx-tP{G* zm1Frmh&2ab_A)LkUVq#B@I?J|?e-_SbLWvtuqtw*`03FUV=9ryvW!|vlN`0apU$cC zWh1_`z?&l!+jXAklnUb*?%;-afyc*|J11|1!aV>T+f%yrK|` znBopfECk<5a%4g|d{3duxEvzuN0vMn^d1YyB1sR;C zb}i1$t<5hk0u$EeV4hYMe7@}}|61m94ZK~PU7+>+JjuLedd|-RH9#5*%WFRB_NDTj zdUEwM?ef^J$zpxa%Xu+6hoqxemD1gaP+g3(#*NC_#m+wB{ zlim7$-GySLJ;k+6St%RO*aapro}a#Ft=GKlT0YFd6GME4gH400Y{I|rvi1WiF#uF zDQoEt$&gJ1i}noIL`$CQQ@-Z4cnX!jT0302ODT85*RxH}-}EZ%!{%dcB~-~Ou(U-C z)@?#6wT%y~06lJ{x-8SxQI|xsHsVM9PFW;r(WaOae^C&>bw#m_ij{R2W~yGddrjoh z;z!CR;cf_}klGI0uDs+nC21b@zUtp)zP+VQq1!|7C)~Q||kTANw5-(#K#$VQ%Ku1)$=X{LifxM)A+mRC& zH=4_nXa`N`DM`E%hHzHPRg~wU@Yi1`WMN=DedQBdRWI?o$w&1zy1f$1!K%{Xe zVDY{)AE~dV51<_gKA?O_MR0LtTDE|ab`;{eyG}|XpwNT-ip3=H6rPJIDi~!$bcuzc za+GTN?gVzy2`QB-qyP`mBsd-?*>6VFTt2hJ`f;KuU|v^2#@qK}c;=3<8fIj?*ws># zsw#_lg+|1y{^p>fA&n(!;}12^`2Pn$SQf;|JXlp0h~$Dzv6&XOFDRQgO%rtkow>o< z)7o85gdni2!Y5Oot1FX^)FKu%O+f1_dB5^f;rAn59FH&6TG_}ByBYWb3edS^qGFKk zd8hOZab`m`0PvnSXYg}Cq+FVG%rt3|nFeqUr}$mFjjHFl9xG<1kXKW5qz3W*@6w>( z%zUFL+2_GP;;8ua_Ea2z&^DW!JR(o2yD5+o*Y zF5@*yf`fqM(}oei=q-*FM*<&hfYW9wyh2W88Gp^%ENky-U~PO@&BB*KLAfk|H%O%z zdA%erQ%@bEicoX8ga^M?L0+hD_BB#{Fe*lwUt=laym`I zL)jFcL!X%z*?_u_hO!2%YZXNBvT=-X>5dZg$oY%T?eJnpCDzsMIXMFVMIt~#9e88r z`VpFXc{;uY=MI;M3949T1AvY<3VT<5Xo6Fo1i5vf=}6@6D2Dwb9@n2y;mi#kWCNRf zGMAqW8)Yhn?TZ`K3Pagj%G_J7Jfor%9RMqFKWDlb-Vfgmw9+I_tkzFfMy^ut#@+sp zqRr(1EUEnV@UO)h*xoV=F%T|VUc|fYUfj*iQp%McY;INtB3z?cLx)hjF`*^Vd*Ty=3!EOrRGQgrc1gLifmVk zg;$_U>*4Al&KJ=dBMr?@OE`E*<2EDCbH-?0-n_$XE2>$LD#&CMzt;AZRs;5sv(%+M zmS>^+O_ilGzr?!bQx#a)erepKzIJz8i$;nrM$~{EMrR$SU{o3;p2g5hQNuNiWe9+x zkfh|angYCsE|pw7y}x;f)3f5QCrM#sQGIkt2RTf+R75ySvDz`F7N{tva_JRj6T-{_ zucXBpkil~~xg>4On#fDVO*mqsDTV*zr1QjC2RE_LYoD!ll)vY+wPh58vpsV7hh?IS z%Poey^4dMQiP_Tdb4oa-Rlki+a(E=rJamXs+qYo}8HKj1HEI%DhDWXS(!-2*iE21M!dp@*G zl^zKnh_#XpcF7>23wZkCP|>ztud%435MgRaV+j2pl@Ru?*~Me>diI~`{D=OxJB8Nf z(f`4VlOw(vq5+XoM33gt{|TsGj&YEn$@-c#H+-muB5HfmYNe)KyU81cUqci|c}mso zILVtZl01^BTQ)mf_#lWvM`{=`SLWRT*^WM^`Hdo2TyzW}cE2y#t4zxzI&iU{tC zsWzT>jRUA0%=|UH!b2rwO?2H{`%od-*tNcb{Qlmf%eJN}=HGBc>I}vG-X-Rlm_^u~ zNc)d~o=6uQB0y8UZQz>tT!qoCeEcNX6W5Mvefu868fX#>wH5?rjU1fu9tmSD&Sb@d zl?Qj`atgoHtVQI0u||wSAaC%|ib#@?nEHHjq_x3EM8tlCmtc8DlWi0(5Lp>fI)9Ph zgjFQxJ;GziL^cEAS_;~tg|O^@+!x>Pfs!xocnZ}|4}VJ`e_f%fnJv&f*e6V}89X=XRD^w2hL!i1Q$CY2 zh-lr7uvDya=8PVka>By%#yw*#`vn7RsTY>(1GcE+x5#x=BapMp47JI@O9EIa00WdO zD_cHS3rrs-;jDddB%RNv?I*qCa;<<#G!U?>Y!h3VQ@~%vXE8rb*IK!&H*_&+WceHJ z6Uwzt6vUdT;iB9jUxPJ$g@fct4fzq{NJ{Xvjd7T|{VsQu0z?G?pfT~X)P$??hhlUZ zEtn6;y(F-giK>JR85c`9atX?0ijw|#+ILfxlxw5UTi50`<_=Kk!NQZsiH@a~xZ;ka zJ1|{T_x%A&TDm#A%lxf&fmMMCwwADCd;;$#7Y<9RLK%%&@kQ*@SUT=UV_>=lNI~$|QVbZOEg;RCu^+*hY8(~nyGUF+9Ao{1P0amaAR1#biZp`ad_pkj zg@{vVBfJ~dQ+E`$s48Bxl@JM9JaroR6!$1m2n5w6OG=%DRSwH0L?@ECJ8y@i;J|`b zdv{Z}TSaRJm&lux_p}|JP4bvwi!l@TAgW+E=<2_k5JBHX$iR!+Hh3g*`*L#d0I1x0 z`aW8d76COZ0JGB3MoX1tpoFVb>ZQ%;-g>5NDC~;uKFkFhf<={LRRxhu&;egePt~c9cDT!tA6PaXlS73*=hao}?&D z*k-9(%Ic2HAfJT2G1>l4*Rk~wOr0oiOLn2b3AaoNb8mWbu!{KS4*w|{TW5-K;!at8 zrMpJRW@|!*7f~!?D&$9@i_e7IFu#T7-pmG+X|jZ4&>kZ+@z`-j^x-@kYza4_Xqtn^ z7=N3|3hY64b~}|>G@FyhSmAEsr^P@Iv*{rpb0l@`VHiuPj7LKbjkp+ZWVCeC|3E5M z#oO@Dc8VMgh4&|1XM6<*WY+b5qW0Cfk7B-H_6p3&`E7ObX3|4$kyeFwGr2w_%4hjHbi0|p)F=q z+O}U9FG<_48g`xo9|1vQjJK@nn88}$2GE-c!qLN`)P5WZz-_Zwl)aSnw zn#lSDWkkL_GOiWUQ{4a|YM0#|npXbesq;jGCP_o=+~xo?d3-Fo*f7ODoUu?Q(J6|! z@Hy%LeJKrfDC^_^WYm2w!5|lG7uA*SVqG| z@|+B{F`}83Mj?zw$vtdUcrbfcJXPEy{?AIaQ?D2nntT3sR2E0EE>Uk2lHkLQMWdId(o=U7OW{3s1o; z@ZL!$*KE3KDwoGNgvRRFy0a%lOLW6*mqb%RT0-N22)r{FLIW;%%dQ$eI&9exhw17d8McI1dozH140vD7)!^1P zdlh@ihJXHYXEm@&IG<*+8=Q|6@(h zv-DhuDTK#2>oECRT|COLwb#ZsG`8jb0vON6vj_L-?-1Cz)ZCQMn| zIpo7QlB+D&WOTIZHTU}+!y`A z&$f}hP)l4lyK$Z5cT3*TKRp4|!$x@8${d2)_U_s@q6<4vG_bgyU^7#=foG?F)g+xs zfD&IjcoVoT9w5FR23$@_nyVOfGkkiAIYs7)#LNn}kSG&Xf|X$5T2fYS zOsGYwAXFvXO|T+COmdZE2==l*qJ^)DGCqQ7-8J4X#Mq!G(wCVHnGR$F`2^5!#HDd6 z7Z0NI*j`4~eJsR~tgdrn0_RPt=%io~A1AgrW-{oy58Ms2E^1*pzKIFEiXxthsRBc2 z@@R7BklVn@0wG5wNo&olqyp><;%VmoK-u9=BiR>|>V)TqbI&jF@X{5AU1b@wC|+~8 z(joHbxcy%61eo2$WeiDpOPJVQL5iG=0>it4d!y7VR0$Bw2P`GD;=gG3Fv2 zA+^~j(~pE+&(e%&ObW8_C#Hs3OkLcHx?`a?(tPq{&a- zekiizTCEsj`2-`Pg}#1*C>Tj((!H436h)6#B?1;tO&P3k_qquKb3PlSs--T<%?c*i9h}LNXg5w>V zOCzbRYmN$g_X^2-dMj^nB@| z70b*OdVK6~ITue^-vSxr1@vUt%pRt`o}UbxXTb^5N{RT$jNrO@6jkde3FHrqZ5tC! z*RG`SJ&|Ty8Ei;Ib_q{2r0<;XdXy=KGrZnW?kQep-wWpt%{x!Lyd(01&P2aOi`gP# zrdbrKOd?TJHU$;ogZxD4iFROKmfL_YbdRus7C*L02l`upIi{Dec#Th*JA~&n4K{cFaf-cyO7b9SkAQ{{ zvzH}V9AxJpmjxx{&0c#cOX(r?jUFl98-@`o_|b2gLzZqx>46EB&RR@d#r3$5JF%ol z<3e-rVuWX=W=56{;E412%!0eFBuDj)RtJk(z+vh+^aQ&}9UApcYC-F}|g6(WR;D*Q&#Qm#F=TQUx* zwMokvXp%#?J0=Mu;itzAE5xTX+6Bq#I(*Ciu90FVMuUl?U2@~gg*MtnxMmmQ*~zJ4 zw6g=H6i1xzM6NloyV6XJ_>GKg8G0nIdC`cNq2k0oC&MWS43Q7XOyd96u%hK=bZN93 zruVdky3TYHSxCl0W)(*HK=z1cC$f3V^o;|FTL4dvP8d-P-E*OkY}7YgvKvOe%y7eb zsICtIswBIxisDJIK(=Eq)Y-Bf%n!=TWx1RrB7}}CJVlmuZ|XoZB-+)6Cz)nRH-$dO zD1gtbmh`EY0-g9S2ZOWdMia)_fSsQSA3keZ!;EYQw=NjkQ88L2!`D$4f_!ax>7w(^ ztZLuW;amZ7_A)(u&KQ?ZFDsSEnNVz1l1o$&`p7l^wW?6QM!Lm01~K!)Ov=gAoiAVn z>nAO=PDM%IZp-jl;v4$2U1L1?_Q}?)D+qUFM)>_xLR1N(Z4g*x1p@slyofMr$h2%@ zIOF^>KCY+`5zX{tqBF-yO~)%jNAtxosEVMYi?9|}#+%z77GgPNgJI-ylj18oIy#HK z23vDYa( ztyt-#P0q0YOr+3nN(U#BD^`F@rIK5!yrF!;W3NXap@hS4qpPOn@$s5jqI{s##KSSd zvPv+S6LNo)FyUc64Q9%v0n=~TJ+rf6rW<@@i|84Ahoz!+V8|{7W$98|bj0*9k%*6k zY`TwRk5%xV)y+yz$pU_#vmZZlDcKL_RQesXbW;#f3q#kM?3_+EV;Dt>CM?&OC*H}M zBt%&Rn;f(K*RWcJTs=s%PTLY2@ajhe?{G^sn3)$~aPAWyK7__l`JRA@iz=E$K49c zDa)#ihb5EelF(c*qnhK~dFN4dHY@j+)&bh9j5;Z`8z~Qxth^IVvR$v~I4lmzm6FY`5tjDT^AY??&m9)`uTSYsz@u~X>hyWF{0dKk;-Ej7#XfS8VXCMENBX? zpSJm2xIbg@HlHXog(IwEhOi-<31PNg7hJ<6W8S*i@9t14Q_}Ieuzsm1A&>A1mIceta5jk3CA9f4l5>iY2eF#3#; zW~>L}Bl|G(^CKj+`$k-L7ntPUt%EXlSJ=9hb;NzWCu@Gqpvhp-BIK|IsApIU@gYo@ zrP^#2j?_dhCFk_)6njuu&crRH6EjE&k->0gF#-F7v1l?Ei>im6`7mSd)E9-)c{>+e z4K9Xi!}POQ3nb=A%SGKC;W%D^-`Fs^JHmx*n})7QX?qUy1>uxd=*BJ?-Uj7w9Mh(Z zB?UOZOGGTOcS11uTrK<6=9gNGFMF+JaW*18#(J2ILyW_a;@Q}fNVcMIiJiUygR&dg zRPtKhrqdE56jb421VYV7LK`znqJdti^`yQ_4M97{WG$T%DO#SB6`sh7MP(j8V4pC0 zOIM#<1us#YIQc4lWB@D{j)5RxI>ZbSn2u6~()V<^JLCx@3ZFrLo7gTP+|gdsXW-1J zXO(^XIl}GH#^aR7Cr2lpN*T&y zG6=d`%9yCBbC6&(^S^72sSkRrU=QKAx-35xigt%CGa!Pi`7~w6#!j zk&Air$tbrF&~`K>|8rRwpOmN41XGkM=5vVSE6dwkObYX`;Fx|3lz~x`QIu%OFk7+r zu=+es;BKd=ixGFDujS-;6)Ia9FI=jObw>9j5tqD9Z1^Gq?lzohAGJ*`UBP|R+|TQ=?R!|B9Q=WZj~-(@b9`smYZaGR5H z++T?+Q4EUM8sA7D`rt9-UFepq0k*_KiCB0Fl9aq@d{4#R0gfbB#^Xs|hxT(PB+)G! zfO2Ahb(vX6;#gifCs|p-z;PCEI9hB;NYyZ7upz@m__Uo^E{^tjC!D{>X%aJ#OcxY6 zqZ8ml_e^#KOi%WXn$CWd&;r@hJpZHL^chmokg*-fw3zf=Lqj_W4Zs$d8Y1e{*-I*v zoX}!DP4=Fa;@PY>Gug`q!JdcPm}91UHk;4Hk=YBH*=(TD^H%#f=rEz6S;cHckWe99 zp6ui$ki?NiTTFv$LBxm z{hb_58#0ENa&|0KcTK1A)65HHL*r5|OkKWalhLG@^75^+cOMx9t5sxKmiFhQF!2I3V`+FjXh8C~Mv4r*BL@*Fm#2{oJHj2?bB9{!` zRr_z-B#C&h{q@1p<)hmOWNuJ^wow+Rq#4IJcIdFnE$3q-6(9>q*ZW{b1X_mv3>n!h zR5~JZTEi!^WV*WbNa! z?IV}iz7;FIOt;c}2Qn@C<1X@KWhkx9DBx9aiv1O`UYPx}EaG|dglIhY;IJKQL?{eY z3V9DFu}!B~tR#>0D(qu^!xFhXyb`FNofBlh;;l>(i&hOM9863L_!*RO#iYrq<`(l? z6kpjer6HWyN7Tu&;S>T+7nfVO`4N0qL|E-Bbw-4%OOe!FqP;fnCJ_^(DHT*Cl(CG| z>?xzD^gGP!mNNrBitJLRJWe@DDyF1UR7ehKTe~xZ5*?9}sVj61jkQB&=(h6HPqXgC zHW#HTWyJ@S>gNu;b5{cuE#M{dtvk1GV*lA)yLax{dF8cN?cKd)>o(+zP0Gl(7c0Y6 z+qVtwaiJaZ`GwouO!a(tti;Vhpu*;^Lmj9nof&IlB>5BwmZd3rwroQZdqucV(<9m*`kulSfXvd+4nl9p^J=^T7qON$RCEluX;J&d zeTwBV6Al8j{Hzm+NC#7jRF@8q7MiKhWppFD-9nZKjS82AHL(DJ|8TDG!FIh zA#b;b;Lo7rJMlvz@Sx1ZCJTDO7hJcsU?%UUuC%?Q9zm4iR2_Wt_%Si-vWaabHN1?l zks0tJ1geWwMa$F945$YYSWJ-DSbO`J^WE&mhT_JOo@7{eTxSl9_$wD3$z_2mb2;Cd*Ml5+dC2GWLY|$7?Zx0AxZS_L?xI z%ZcR?ewbhX$b^NTm-PuI*Esuk;JU}&1kz&;4yjUh5=a_hLx zJkCY}bP}y2VSpZvuzdp2Lw#dXt{DWKS4VWmn^60cNHc64fgC+0mjWL*Jv(h^0(A3C zZEm>MSq0TCkynco6Ae3~{WdQkbe4k$33LfnsxVSL< zx9;4zm3`<3v%BE_Lp!%$r-h5VH(hnrw!yudx9ui7@6O$Op}fW9)mt`g-m-hh@#&EE zx`=c2wCrRD$(o@+v@zKuP2(y{xwhnehy-v)uOd!@8LqHV48>s(c5(E$Ry{lKs+TA( zPWzvTHkF?t^;AEWqYLWho*hl)LmEEq@av5?uvw7U1^DVzsGfsg536eLiXw`(D9lfr z(K;bE6ly_RM`3Lyo8%fPCh`lL9vShQaQ#y|$`P`IPu5jl1T0z6Bwl#vn zd;i0%E0b8X;b&0!8sGuq2ygq7W=s6AZ zFTfQEDzIH=n7POT7eO1%V?K#EULYg9<>><#W#m#A_8}S3r7}kjm~ieG(Qqrvm5rO! zA%`u|Zsqxj@@=w{Y2guAO3ndMshgC8u+kM!{`_%_B;j+skZvqv6U;#Yo0=~!4Vsbf zoqIR!+O_4H&7lWJlSRwD%sK}B(BztwC$21~Ni>Y8)>IjNN)r?XfO`-Q!Q!m~9$9dryREF-D5ZnX z1SPd!`$&?Y#d&&#NM4kSvUmu;9C=By+yzn7qt&)Udy0pz22bcyHOe&h_T%LQ3anO< zH_<%oT2QSEwYQVo*G+-}ge*E*90`+pMA^2=Aq$ln9oarM5v?=`%4-q~ceC?xu`iz< zNp}zDio;|1?o5uvTKRN$_i%c+ceHnSY_xB<$PUTFxk7g?o6G0N#)i9xd()-#$na>- zFu%uo$8uRxw5Nv)-NkfnBr}@J_l#sSnJn4dbJ@Q1Xip}S=WsSNJeuq6Ve`P@{1~a; zdC*8UJ33bC85!-)_2!Fd{_kZ+nC|ZG(R^Q~P@rY$-cqicI2Pqa4--=>yDqj)-lJ93dcNB!NNdOfC_Y>blM_un}*PCw`CEk?M^F zAyqLyaHZchR1__%jtz{P8qs}DKn`O}Y?@Zy4`-EsRD!1Y7x{DsE0i*U zMg2o1OfSdxlV4aLA1=z7BJml03|~K^%;zvnWZoM%JeiLeswD`42eB)q-i#J~Tr#C3 zYFHBs)TH$x{2nu(Kt#}4@=V?j6ZfHUSO^d_q&7S9IhDXWY)5l|gjwjAL^BtXHn_<) zvS-^4=6SesP%%d0SR1k$M1*HshiICxBf_Jl;bS%}I^c6C5nhvJ!5_9XTMgytgQ%(5 zAfuFz|DH8 za(sp6m}xocX`@NFkWrm*c7f;an?s5r^w_F&fbbt(PH3nZnh*G%R`jYv_MuJ4>O*_v zBh|ybGKQHx%mb(ald&8%D0H!ydM{?@(+C2}c~{FEJ2LUxT(cPsRvuYrUf3ghom*^G z^hRVLZ6kv|4KCi29MkeIEv^wcoER5T)g#KykbSK`c|B-m4kcN4nH>E|*kw4Spe}wC zL2~OdU0!}f(h?Ip5z}>6B#@gwj~N7cgYRmQ)I^65ud+aA@iepYs+ros32o1!{QU7q zE;Cv;!^BWEbjbu>`%ea@o_x z-8tFs=}k`NNYFw`zm`IIcksWke&K4mlqfyr-8})uD+b3o1}g8IO1T&fV^CrzNOsO^ z6GkJ4&I`Yq8fP-yTRftqRTnUIT}Vvvu_H4Cp193PJPp#+jB+f53=Gm^7;5V>B#T-K zhxX%>?8%`GS+?C!wgSgxqh*I}%aKc0ggYLUjmpN?ozO~VEE(+0H+AfgqrgxY%k-t^ zAZ@1D!3u%tsL;s&+;yb%m}BJE@>To2^9as}eg4R`E>d8+dAZ{Iuz(U>$GomEI_rov zd78W~* z%bQmQY$xIlS!DkqOULH1JYtAw$T;^*l|6=8M;1{A#4ll4WehsG@|X+l={&HqBh}z^ z7sN1qxLF@Xn$2-Jb(OeVTtLIUFhjEmVyM(St$D%*qbLrsZo9CXh1(TiX?KFVJt2x}6pkn};!gx3qoX8rKnZ%B6*ik(mF+?%?Qh>>Gj zlBd`RQ+b?=JrpJo1+C%kvI8eO`GHT&#dqPhG=JKZz&A5%3w;zL3ppo26snFnH};cs z6>CpFnFufHUP~)A?cQhxsg*JpOrA-DVj!%WBg%(XsM~EtlC!8^;9i2F9_C)>j;Ndo zAr-SFu&9mGL|K~|=oXV^g2Z;Aq7d`K?Aq_-=VJZzxn{Msn3!@p+sJZTk=K?PNIG&) z4X0YtP3G#X`Gl=g=NPUU5%tA{CdULX75GMoVgrU4(|Pv#?_c?h)5X zuoz@K;P(eh+OR`1D?xsc2oPQiNu@pe72I-WdeJu2Hef3nO-4+D_|!EG(GI{q_ZgD^ zh{^me{AcSpWZslnM7oBu$uu-S4r+fg(v`T)?b>gxFt+;4z7lcw)2y;7(+Px*rZA}# zVQtJITmV!di$_VU%LE#Ko4U(5o>QSU6>f8CohPiw3adgQeXOGahk_^w-yt6b_uA{^ zvJxk9auVOv#_NYg1-*L^(U5_Cu^xEsL zf9&HPZ?2ukZXVjZ<*~cA>?Zrmk$xVSP5vV zjObK+jgo{RXqW9|-gWFyWtDjV(U`KJQ=I#v*t?rzm9aFTb@vzslOwiz4e}*xiVyUt zxHjBnwY+2m@v5vzgvlll$g&VYP7yO_nvs+$58p|x3}Nre4rE_A zP`L3=*|LJ)UMu}(T)Dmr=futP0zsE{GG*haO|LJTNVMT@t z|9cPaN*HS~tnNP=YBZrFrX-w5u4Q$hOfp4$CBE^M><^RNf}8@jd;P*v?oYyQKd*UQJys}Xda}c0 zgv#Z6dxmqFJc7o^@Nf_N_V(p)HRUs7`FwGtCzl`XD;9IbLax+1oGT3vkLJ07-F|z9 zM|$#^(R9yndSoP@8%~e)P&p3cs_4hB;j7!`A#T{jCo<$tVAEsRdT+5Myq5dtiH=;^X)q<;z=7#)JVM8NYtZ z&Z`DIOPs2h*sOLqC+QqI$d@RHY}3%-HUyR^3`ujZoGrr3s@7ufdvd5sS76MJNT}2p zrHdRr=`3m?G4TR4p&$ejABYypG2P3o&%E&*xyCk{3|Z8WS=!_erxUd5$x^INq6Rbb zx*4P4U4q=uSz+cxHQ6QcpexYF(Zv)vP~mYlqU~2p50^%Y5=p$3ms62XL3emM#;{C@ z5D&vMc!O4e3mHl%c(RsiL{s5;3^+dXuUn_BNP@{0nZxYQjdsA0RVs>DWje>lI(?!} z8|CvpAlLUNJ|LgXTvQ7@c@<%WP|ma>0md~cYjk-qY@q->Jt>aE4ZfdAm@AJRCF3SN zf#{*$pPV&Th!Q%^VB@Co(M|j^r;9ni%5hfCYlC`6GR@I(%P6Y|Q~v-`UUHwD24!5g z2vlUnVWEao7>Hy)X7r&fYHY@ECM*B=k(6HnR5@-krYUWT+s{kiP_Yx9Us+CG0Zmnt z(b4=sK71~SmY|WvlB`l_D%pc+gc*c7Idc?I9xL(@vf&>qb(Av`jG{#9Ep}t%LKEB7 zQBN~`Z|VgeEhqMH7I77!BSd^*Yu9;Gdz>!9Tz$9Ur=E5_s< zD;}62{MEuXECR}_diqXFG92koq2jfdP~WpnQ4>=U7O%-w^Y(@;rnc1^pw@n8d0$oNE?n1 zZO7z32Gn!w9DPhRBVl3G7h&P|E}ubJycKbj+BG>eFN$+ETnO1!xWd&Lxh{}ouR_p^ z97r-Qxm805AR)#_Cg$*z6MA75Ud7OaajGQxgx{>K}g-mZY)6?dJCBzq{MW#CztNabm#J!bh@V}i)7iC*>vE5QvfH1P753-X4*9|+XzAEN;{N0f+pgbo)r|)aLN0E)ssG@?{)vgyG5ZG@5%t3CuesK* zyKYP#oY>buhQe|vUzS0QBnRfwHdZM=syM=)W6C(lTSbV(t+gA6bUTv>Conk97*j_Z z#n?AoBbupCaM-REbn=IDJQ5nLFr^XVy~kM^%*;a>vA>E_jV5UnB5VZFNfiDb6CboX zGjfHnFrz!N3wY{#m|%JF6>$c6f3l8Rq3Al!>dgp~gyI?AZf_1Hw=Ln;*?VYknGH@g zFKVw&A31@>#aSJISQUxdc6-K|g>h066(^jAGLxTmUMNQ@(C$Xi9wxnFr#dk#??VH3 z+zoWIak({|>yCzj0pmxJCcq?~WBJK!P2O(F*pRQ|9nj8*rG+8Phv^sHVx9{Z#RI~N z=~+G}Fw)Z6GbN%WS{4av3x*LgwIacHmt^hAJYOz{??swsrl!*oVlj%wSF}{_=#ciA zzf!BrE2R$wIVb}QERL^;8WLejggZ`QsPKO~ePGo@hcWpG{Ys-zi04hL*7C-3=8Co> zmfa%UxxnF|9Z87p za59vW79zb#7fLA80v3n5y3c!j-8eB3z~~#=M{kr2;Fh>a*u1_@Z@WqIY}PS%;e7B4h#)7+vl z2==;Xupa&~VJ0c3otx6@ojyCT-6zLKF!U+Yn&!r26)F_tZ5D;1CB8Mx1jZ@tSxh*$ z6#FLT5xq6^Psyg-<$77>RFjCvIS?JLZG*X z8n07WWw$b=m8Nlx98oU49u7d#j*pjY>lC;AB&ig)5relL^~*j)G|IjCh`P8T^sUdh z65XewbMakQk}b&`?oJmJtp~NkU`j`{oZ69^x^B zG-=tOd8F;R3Cp;hU?IMwTHy>d^nyzM4A_iXN7#osfg_y?V&N@Vetl}hN5ehlX5yQ> zFXX71#5Z?CO?Ag6=ezJTxtzD}d@1jpxHo*@79?@&L}o6NR{Y~?9*J0O9zG*r>N8Cd zX9uN+ge}ac{RfX7bY>zkEBlrXuEY{SkQhwi5ZC=5JW42r0mK=Z9X%p#ZEvZatH|kIjg)1W&nqgSRq{x|NlBFX}TrmO3)V}fB_3W?PoWznyf=>$oh=j!sO)*nxf%I!(ztuN zvstus6mc9m`AnA8L%E*9MLjK-PWSboiFapsa5|Ui&hY45t|!NKHu!sb(}mu?e6Ens zI1a`-DQ6EdPFjJj;H`{`F^llnq-$?0n+D>Tq?-stoU z)(T94B$Bk-yqVuq!w6@HO^`DPT2(gaL$_?Hh%SO!fyK&vAVId`BE}OPkCZJyj^Wtu&dZroQ>5sFfoa`fL40vr3OF zkwb$n6u0q{Xx*PouJUQ`l>o)bR&w~70nWm#I!XHeHvT{e8*iL#ert&{YPdawU zB~6I>oOYu#+0tKcA+P|(P)c?a2Z763u0o;FTM(pwuztxjHGic`Zmjq$Ggy(LEHvv} zSe6#?w@tE`H|0$Q&|4rGq-*x`@M5$V8slPZL+1da!piAT(P6yY@N70w?AB~@GS><6=ir*jt* zQsjr-$IfqqW0^f8$|2|UH;;Ye!+trIy{E#0=o~MMnL|uGJM#G`MF3)DIV1`+nUn!T zh6*QpGZ#lmwoZO8lDbd1#jkN2^+U;YbRtf;fr~eyTS_69&9L8oheK=?G%+c0oWc0( zZ6fwN!h6<+N1Yw*9pb&78uT!%K2ELwjMc+?6+#pqopeQHG76WA+VVI}MH8j8Vi2*+S%)1$yP4=PmsdU_ zyd{m5)@8~rXkHKJ*%Yhb^=M|=_(assc2-;Y7prbq(|O}Yh3ltoT+^}YhSC(4^XcqZHa|*e80taKNUoUg&X;n1y;<~*;xNHsxlDGf*jvix6lT_qBd?Us_Y9YE zV}04tOd->k87++Tux1)>9|;MhV4zlv<1+=RqMCjhs^~B1|q_(Xh`cZ~}qaBP* z=xk=X_eZQ%0P%Vz#B^l|pe37UxV~x%>onRX zWl+hCoVgnwFOK7q3+coC{$`PgFy#@@xsYhNb%146f9v=r?JsFG+gXRqwzTD%t2bRU zxMlC-c3!)CFM-`V;0~j_h9%rS*DwfgLH#bYs|`CPTfrPUxmSr!CfZVN2Uaaf=he32 zNt6{`iny7`m7=B-UyBoxXPJT9UL#)^T-2Kn2ti|YHoVCT-O*#{12o55D~x56QwrHP z6_fo?7lnVy<=~A9PViLD5@*>7Qzb+(op5b8K5C%^&2Wso3@-z2=-SwiWrp?5lGP_z z;7%eJNPyc!+`E?vL)CJSG5~@_6P8={#5VFah(0TmdCNhci9j!|%QV zlL@yvmI15<*ao->O&;yNJKMvrKl+`0*+Py8fGjZp*^FWU3Oz&y@KT1Iz)C^s7So9 zEt%KzDyT$9Iz56h1bWm%wiKFQDvUr~AuPj09AMEHCX@l%)ZM4lDS48i5S<3q>MM@% z1;gE=xzXVwM0Yq}>g|Pq_2vuNK7wjTM>5&oVs>n-*f&ZbZFk==8CUx9Jw=`d;qHYD z<}xGMQl9KAL^|ZLrw~C~=*jezG9yrN(e`3CQ%n!jy6$wTRLqVRd$alBLO~I^W4YnJ z;qE>Lwy!jnNfWV~2TNptDUI}&3PkBPf=?{2-i&$%rVke%#RIsXGe(D9Udjo3z=uSy9=0~ z=$4+oOmA^)c$6rQ-du^^8sW1_y%?VIJRDp~kH8p)3lQkj*ACGZ?ju)LLWz%nssfi6c^?h6xC{k#I-RR~<)oJuoqDny?qM zEh&}+W85K=u2!7T1p?YIW$-|AeH4e;Cfm(zMRBl*3V{KsN^HSG;G7XeZ4KpnGpLJL z`U@_oe9IHmsrK{UD6(#h1Er2#cv4_ec${&tBaevs^6HAbv-`$LuVQ9FmO*Q`*OTMN z_+sB?Pfy60;2RiuU@S&J!en{RF3EWn=at76X%D5E_iE>0mnzgG>r_u)5A>)P+{FUe zgZYo?j%Yz1ph5xSk}HsFh*?iEqCB=kXcgODcc;Nn@P-9R;4O3~2g(sh1b2s8LE7^9 zf`ZI3G$KFby9>P_6DCHUmg(+GGfRmH&tx-&K3>8bdmvXti06Buk`SK^mdtdX=p9^kJDoZyv%1Ri^Z2u!C}xcIv&nJd-7c9YO~=%=MC4sSi_aZ@QOh z&g9u_vbkeBlN<_)mhdr`=T12RE8yv3SmRw*#x5Y4q z>(levrIL?hu1MA}!R+V>mawDXD9Mc(<&<2oznqm}~@NA-xrQnnfr+F>xMUz@noeLgV_+$@a2K7s$} z7^Wr(vJHr3P)5kF+aa25O^&da+&+vhsfLDYN%M#I%kHaq6237XO~`8@o?21Rc?`+9 zA$I!DKAe2z6VA?g?yk?I-*)&v>hHYz6RX~M(+@8DyT^W|@4dJEruwOy|84neN53=w zg?qlx{jQ_GZ2If%_pg2PfgfM-ia-Cx`VT(of8tNR^4_*r51+f_`MW=teaDfXH$3Z6 zXIB5y%?~Yl+2g;~|NbZbuJ-9yeQd?+$G*4l#n*kQ=bw-Nde(EU`E=^7hkn}f4}bCR z1NZ#pAFA%y^pT~nDt>$J^B(ir%-e7M&%`sg-PiG^{Xe|?rH}h+;e986Tl2InA8mhK z>AMSFbnO@O?>_dc=D*qTsm`|?{K=BPzww(JK6L8$!BYnRb=hl19-Q}rq0i^uIq{3e zXFvLrYwo(`M~h#6!`Ih+;P(Hnd&bs}uYAM4?_c_o>%ZLlo)iBy`)_wX&~^9t&szU+ z@3%Jo%U}KP|JVQ7w9wKn_oHZ=#mcdJM4>cxaFbR2lx4iAJzu`))I1JzR zsG;rHSi;)ikb5ey{8%dG=h~UDId-O^Qt@-rOSrD`EnAey)*7=J=TyUbi{2Rk9vNt0 z1}E1amDItaxeaYTcCbI4%H~T4+XmPh{t#N}?YFbLAiqwXTHkea^n!QoC>2=&bo=eL zkY_B})}Bg_wI$gWqj=~dpD=WEbaRP>`qQ2<Quw+w<9twALf^O?_s(znbv>4GjEu& z^W1&kAR|(Ftg-Zb@9k3or`Xr5;T)>GDv7%j@m=_JtDJK@{v%Lryh^Bw zSj-Fo|CukE2FR{t6Q0=6=1{Y3;P%^fLr7v85+XAC7d`T39yx48SWjJEL69r1U4BR> zC6eF9CC0WUlFRoem*1?nSH9N}NXo2#Xlh6CHhATxeWg>U9MXIIDPIWNFr@Y;^uex; z<-ZOs#b1g^bpNppZ5#Qj4dKVF7}ihPG7WuKATn&oL{Bc`ZusmQxRK}5A7O)$M6e&6 zI(4Ivru^crB7Nxy5g#0J?C?2);dzZY0}@utbSrG0$kcW$8+0DLG1(;+nH#VHh4#>t zl>4n=<3xk!jTO^!T0ca0xW4eicj`h68*j487B|&h-8e;gg5XpzEZ$Pl#hM+_ zv|zR1Q6u~nb45hRW=iQmN^c5h%Ou411SY)BH)0P)^+}g&!tt0r;y^Yt!v;#Ysp!#} z=B#T6-{pB)G?}A!SDYJI54G}dLx3B(RUkwm-h-N&^v+g+$PMzAK%O_|fhYc}PAUy9XMuM=LJ!-I@ zZqt6y8Yc-vXV!N)+RA(}(Ev1#656%xVrPu;eMmma~070~IldovU zB-$U&6=|r(!e9|oMV3lg;e0|$Cz8k%K5$+EB@s#{?&TMjMrbl0hey0pP}AZDtjYF$ zNNjYTeOtr}Bv6_nzI?1w^3#*tL=`t3PHj;V@TgbZN7(sOr@XvrwKhNQl11$z>nwla zG?B#`qBGnpQpk{iqj7o{`MhQ%Grl6ob3!IKg7$W zWzIU4k4~De6%%vXr1i`ZjPMBU5RCdGkY_Phmn9;8+B2l^WB-}jQ|A|NZ@5NlF%EQv z(yetpqir$1FV;}6}an%k)@3wI6Oo+My4E4)SsOKJ>89V z)VgpYwZ4ldAZteqZ>kROlo)NmfK@f3ipx{s;5rz72TLd&x%O>N?)FYIP2BQB9!@D* zacFqr@H&=jGqur{rbzziL8cwqu!rJ*D9@WbcV5*9GtotUyb z?Af__r$QJ<4jhxuN(j1bGn=&*4{h7*h)-E5n8H9c(%z!1cbf&!Cd4$8$p5)wQ=XW@ zq9Im56MBGE&!zymkbIr_nMze?IpJ^%{cgao4}&j_LaC|xf%knA4d2D;L5_Y~2e~1R z2)7-(nlyoIH*7M%`kT53wmV5axoXA1{Ub-l*RjYSbcdNm)HaEO@`xRY?!6u>(D(_> z4xRwzTAqqd(d{AT+Ne%`sc#DdIayVkbPHdqHaPy`?ua)f;&1zL{4HOJzvZj(+Pe7c zOX9Oz41+@w?8& z?|Lx)rnB)keLMc9@5Nv9$@ptN5r55n@v3Ff%vSI@!3Hzd>7rg&32Ud8dMcvUi9)fTVnh*veltD55R+BpA$IYH2y3>w!2 z@eKD>$E)J;szN-tA|78JoIbof9`wh9hTtPdQk1n6?&*)m2jcOy@%Ws0JQjRpVm)Pb zaPRizly&h$N4(+k;3;=KNcnk?>^>XZao0nXU-0{9!Hd8Bso<&K{nvQ&+~CEO)opAwuo_vGNrgHH?2oPBC==G)H*&V29b z!I|&BG&u8}zYETM_vOKvhh7$(`4MgS!7GBVyx^I^w_f<{cvU(Gs#}8U1(yVkHEV;~ z>KLVi(oI<()YdEsYHK-G+dx@K$p&?OJwaWei;@iL`e#uVQ`&>NbsSppfcg1VJlpNs`{t&Kt5Wy>h5D7@#gAgH^X z`{wfdl9fT-yg5N#(+WyGWnKVAP_78-8uOF}3h!&=eKkC*hG*9BygH86aeZt(Wld05 z)j^@nRU8X82G!kpN_|kB?+&Uvx+v7w)KKPAl9cs9_39OrwxD`NUr@cYio)-?Yl7-I zDGK+^+YnS=QcYL|&eX8k}=lV49+N?Ar(5!7@qp~NY5K}~NasL3s&EDUN= zT$kclM?Zz%9Zi%4LCu;@Nh6uFnOH>sAMig*HkDrI+bECum%?Drj7h z4;q(WK>=UetAoa6>nUkUGv)H2acMuLl@bdYTe$X$B|+noP73#4mZCr!E?XEh&Yu@F zE?7?C9hWSo@cemM$_9R47BqrmjkOsH&#PHR;XT!j6y90Q_0?Qk&G{gp@Q$F1vL?|R^D@d($_h#w zg|;`-_GZ4Vc_oGKZ07su+c1H5pnG0=7&k1U0LxZx+l-X;cQ44}v zXh_Y%cu?KQyzcMgcYDy#+#1v_oD$GlMZT|c*aWFlBI95^+D~1DroRx=rq%{e|LsG;-~R89;)!fLk&h?3;|X}yKs?bGPppn7y5fno@kDz( zu_B&W7EdJO^-JUR?eY5M@%lCK`c%Arb-aE>yuL49KM=3)j@S3Z>(lZ2Iq~{SzBmqTjTZf;`IyS_4DKPO~JE&|C!*9AAc-(#@S~Do!JM2(?9zT@S)(&@BJuv&i8&0 zJoS4&3|{iRpK|QClwSwWdGIa4=?9-5-1*>h`Tbmezl7f}3hw;FCxhqw;Y{$81f*1VnFN3H4^z%@G>UfSx+)*FT ztczDcCYCXElaPR=z@@O31@%E_1fWs8G` zEM$*ql~}eesNb+Ms9yvNSq~cbgQ|6_gW45W1c|1FL1NCVpnm1-pneT3r5lu8nuCBc z-CH1a9UVcU{_>!HZ4LKkL1)O@+)R*w6xZb##;RD5=mLe7!RD$Vovm#_qHiEb%#8*0 zU6(SXkf247!#1AP#eKcqL1K0r&!cRFJuc^4Ac=JwV5jqFcOU4KSQymK4FiG|C9M0zgofz7OD8bC(t3p}qI);_x?NQi|m zt_l*D_Vaw&nwlFV)-2$8kn2|ZCpnk)q=N*gU%wF2vKA3wRu|+1HkN`-^-8wO1`SJ6 zK_XMjH$eg*d9~>^Ok<|r6-?J9bwR^gp1Yx$_pRf7u%TAom!uz3bAm)SII}1d)Gu2U z)WfRlt6FJq8-39i)GcBR^YrryNctMul4|5x^kw(5puYW5#0{=%;@A?#6R{<+hG*6{ z($>r97g*L3@NENZF3}t`%%Ke{(n0+yp5MzjUB)=C>|shnayC>4wd)wmT1d!c13^6` zwl*2i_ux`H?CFa2K|?!iIzc}}k`n2aL1Na1pgswn4nShN2WaEQp!V`aP`iiUG9*!LA1 zziS$bj9Kzkws*k&o?CKQ;DCm5KWjz4V@Bs7>5My%^=2f zF;2^QPmVEfVy+;<)x%cmXUz|4^Wgs?#&{v3X`1H+iY@SwoFVGJ*CrCbsum|uxb@FoQvNM(b> zdd6)a86!GTILyIXnkQ7eFLsGGnZ&XeG`4(1Wq+I1@*Imv-uvx zs`@}E?&Nb0DP4r2Cs91~GIhTH!3vON734K}>BxqlvD?xvN`)lj?4ISw$fQzCx9Pg)Z z)`6EBneVywAkhOI>46783leqUQ8lHNKAjs-xOQP*P`?`7@1noD!KF5E3jR^Qf-zn< zhxxe^8+ zdYhmH^lKA5AXW<>K%he1s;dQOq1knaV0E<|XTH?6!YiP8wW~8hZ6|ou27lq*wdv*b zb4yU$&AdQOscl3RL&T}AV+>H)nrfh{YYilr@xIN!=uHb=*l|eIYYhJUO{wz?|Q8ot69nC@Ws`hx*W$~(2lEr5)UmDD2 zaAtSU3TEd)hLu4uyB-;~d2ui+%LCWd^FSI_OT(IZ_`+7o;-Gms`rq0mL31ieSr#;{ zf*7|W!57j&^Q`WmxtWexMrW;MV6t=~@_tjIKbXa2MV$_s=F$leg{D?I|8mYlxM!ya zg2qnDdW4-mm~eFt-3grsBHi4EjA|^IM53+2cg9+WU6oL%nL?><%1MPzV_HE#MK!jCH z? z{iWCwYLUg6IOyQDc?5(3CRR0i$QtzQwU-7pN%ZtKbm#Pv*rp)HzYhbefFA+If%gJ+ z;$MOFz<&ca06!WV3|0a^9@}E~eFCWa?gQ$+GeBMc$=EhKe?L&?KLynJPXl%Sf!HblPZb=?<$I`KuIuK!Z(TD$J6KwbAWpsxEmQ0Ko9dz>BrW~^w}odxQ; zZv%DRIiOBF2-Nl80qT3c8ym6j`F^Zq_x%8<`+f-2eGdV3{f}b%?fj2{I{y=(&i@ps z^FNCnvgiM2Y}~HWjNXt0WUE%i8c!GQWIU^R8Y8per>t7`c^!8+67CG>~jJnDMyeCmP=sOvcksS938UG2Dxy5Qy1_1s0&1sBJ* zT05?Y?K8N9x}MWQU9gq9o|B|5xRm-zU>kM8WwER6zU8r-47P(;bZFHo#zU}!y4ty# zy5Jh>dhS~4f}PaWt`v2_F6w$uI`$}gUU%$fgZbE_?R`D5TMYKbwp)J|Vh0TNQ&)S| zQ5RfKUEjBXy5InKuKphcKLj^Z*L7Q{3tmNC*KMUPcs2O0_HGAH1b0wZd#|A`xRZJ# za2IvK$HaEqbN9rK7`&Fco_ig2!Rx8(xsRnT__)}RUHACdguxrA3m^WRy5Nn}b>Cl5 z7u-u-_dS8SU@^AGjt|F<8XTdnVjXPuIs)^UGQtvnf6s*r!M%7*uU9* z{~r5}!EeQ}+H(ACe5Ju}$3AB8TLI)D$5lTv_>-#l*mXaRKi}Zbm=C(|KX|U%`%9iH_$%;N?fVV*EBM>kNA39UV&66R z-?U5D{SWOD{C(^z2LBNIjX}}1*|8WyS2QTPHkZ2SnqUCk(D`cUhF}eK9j~P>SjRZ% zcs=7Fn4qrX4b%l2`A!{g;yVSKsq6SG>VmVGA38pV`5`!$x{hB$U2q=bsN?e)N5KWu zb$lUp!AqGRD}a|VKLjslJ_s&iJ_s&`PSJ1i7U+~e#Ohu8Doo;M&-)40h6f-It>Mf?aW}^uTl+>pn08{tITA4}!Va8`aOj(}L$2 ze0uOAgLeimG5E~jr3RlB{G-9Y4qj*QIl-F@;)*f&T&`nY1^>i(!MlRD+wnIC?>6|B z;5`Q48obZo-N7dfzKy!BKNEb^;3tEBvE%nsSGztH+-LC90nQ}qp9kvtFH|oOK2^tn z)T^ti=jl9d2vk5|UG*ZXH&tI|*ELsT0^|5B>VlVJjuI?X=k5G1pzeDNQl6eORDGS* zudnX6`k!;X-gjg5pxyTu)kihn)yJ!C+^bJiqY_g82v&W;d#h0wfuE^HB?f+$x}N_z z>VluA-8%jy-YfX!>aW=GuT_85;MaMcuKNbh6Z~d1W((lIS7Y`9ev9v5{Ho8 z>-cx53w{^Rmf-iQF);wYU;P7v4^{ur;E$?N-#Gr`>Kz7uLjUMFKjr%be@0#B|AV^V ze^Q6uR{xy3;4iAB2F9v?S-sWZuc}ccssE<>(FT88yRvpD7OQOo?g1{Vz1rY%>eo_l zuYHu&SJZyd;D>8JV({MD&l&uDVpU>&EQU~=Hke7|40b0zp16nOp9Fpxcz@&8#_M9S z#;bt?z()hG2X1eCek11_U)cDuMy_u>)A(_NpQNti_cvYD#C=UyH~mY~7l9vc`k29w z1HVN56To|cXZTO&KiPa$GtX~+RP$DYkEYIhnzuK9wfPM2YrqG9-{3#hze)XDz<;09 zJ|`86%~`RyW^q0iTU@)i&S3rGgu#ZzjRu<*HyfO_c&@=q7WW%mw|Kq54T}d1{@LP< z1~)Cf(%>NUqCFOC5q%V_ie0IB-x7}v8w{u~qh3v2u!edDSW8{7F7|QZcT0Wj`vw!p zb-KR+xlXW=y6$VDE-1NA_et&(oK1Zta1M3Bxzsy>mrxg+S9M9iylI(_$}hNpy56^t zx}fAhT_-tEP;y`zC^=AYaeS5LN6QuQ4ueZ#S6RDSVq*p+2ZFCHN%)Q6Qs}AL-3C1s zlpLsbOAZulrw*RBte`HqlDgWxin?G2b;he@HFZJBg=&Z7Lcz}11J>?T>}LkM;G6o6 zG<;JqLtXF5QWwloS3h-A7tAC7>39$FpI~oGkF~q61#b!U0_SyIKj#J4QCGjLr!Kf5 zw!_{t5IbmaBXxb}pHUawL|xCllDgm^{8z^}!+!<0P}lLRs0(hTuJ>F`U2q$9z2{NX z1s@H6(RXc!zXL?SaO1SJe)KkD;#Xc2gG|itRGECwAE2wba#)>!=G# z{uGq_Dfl?*YS-hb3*ON3c%$({oz(!=Lq>o8ixbw@}w}4p0|7NL}weL|t&4y87ub zbwSCa%Yl+d1t+KrZ;nzIJVssD9j7jMqUt8=m)ojLZ)`bPb+h&B6RU19czf(R$;mBG ziXAt2in`kIm(&IS3VB!ke;RpL@DA$g_a{>qd*>@5pFv&Exs$r! zGh>gnCl87yKLK2i^A^p9P-F8BiK>Zcb{ z7km-(O7O+>m!9_$-iut{@^?H>@TFCMWzT&%bWQia61pb%D(VT~tEmgVCU&oV-)m#% z48D%KzW?>q1>Znj*S(Rt;G3v(qUE2c3*Oc8N^9?%TV7@GEtn|PUvI@cDR?(^J?CxI z1>a6x&v^%R!FN*EbKXT=@ZCI5bn2gZp5S|+W6OZ=g^mfnkGk%AKXt(mP}hAQq%QcO zn8{Hs_rxBu_x}rZz4yb^1wTSv_uWff@L#FxzJH@G_|ca4+IM`c<$VS}4&BmqpMY)& z-bZ~I@CVluAuIs))UGR(4 zInnYZ>VjWxx!>CHm6lH#{A$%J?KxkodX>SiQ`d98L0#~h)b*Tyr!M#{>Uz#u>Vn^< zz6^Mdy5NJ%Bf;-5j|9I*pz3V~e@I>Ld5F5;kErXqA5$0n33X1i z{FJ)j&!{g0{s(oz{{-)K-_OBQ!Cz3<@n2FG{1tUQ=hxH)|BE^ow)}>=;BS$K=fz^J zG2nb41`H0zTH|>B1q15fU28RU!5ZpU0&A%Y)*+wk{(7M9Pw-3kHDEp$Y^1LHny3pl zQ`dd7s0+?U4%hv2fVzJ!zjWUvt#b{|qpthrQx{x-9-!+l1M2$A`K9X@;ffSoOkLMq zL0xbO^1ZH40(JdTe(Acl)};oQQP*|LsSCDKSG!hF7hH+Hq5D?>b$%O(r1v{zhz7%!AF7yc9p9bpw48L@Lwl!lgM_u=IQy0ur*L^+I1$)t7bblXE_ZRr3 z`}#7ee03;L9bzQfIy5P0c)voKP3to?2 zru!b(YIxjw15nr92-Nw#=vjLH6M(v|$S*yAxV30-gu1RDr7l>auKUKQ3+_W7)crRB zb^m^T>HeEr%`Vz{3w7OhfV$v8>bma`b-{7wg|0sgehMA|j|7i0o`T2eSHau(e!(Zw zPQfQJPqqM0GfxEXXpI|uGErHoKc%(W;8R;`3_h*3*5K2bQ9Az&=852)%oD+9wl)}i z7SVXBKfATb;9s{k8~ht0zI6OK%qYRX1&;-v3mywTj}QmJ=eI61_=48u24C3PZtz8| zD-6CEjMsH90gna$4m=ioY3pi(FKb<6@a3&*4Zfna)8OB?rVRcA7_aO9k#P`wCF3CY zs@7qHuWlVN_?p&HgRgBZ8GK#qn8DXGV!HkfjDz4C83(~Pwcc#-pIUD*cvtHIgKus< zXz(qqhYY@z5!3Z|Gj8y^*0%wXUt8bK2B>S$67yT^^ZfRbpI!yAA)Cqy8ixF zhc}-B3hzD*)O`C2Wr-{8xazR=)Xmwv|JrZZ~*G+mj7Gwe2YepVsztgLk$)!{9U9UTyHrZErOAmbNz; zd~4fX2JdcrlEJfWrwo3(?Rf^zwON0)J=pdRt3TBCPJ=&cdzZl-3H&5e!IbUq~B@qUFmll{O9z048Ax0K7;R1f56}e z(;qT;Px@aBemMORgZHNY&EQAVA2ayz^d}77mwv$DXMk$gXVagv`sabFekQsCH#2u-tZHs*Zq{Jeysh&FaC znR9nMwcGw?YjXM>?7#mR!GU{;l>gwNs)=CqqxS^o-u^nu>#J_6y1D8|)rqQ;-2HUQ zGbqoZypi%0%CoBuRNYp6|DAgLr{7n#u7=m%e@FEfU-zXaSAXRVUwv2gSMTJ{*Po$Z z&-&`SYR|s*MQ308LBNY0c!>kAaNt!AyxM`g9Jt%S>tA*D_1yRRS37XGfj7S6>>D}w z#`ik#Vh3L0z$+ZM%fOpob@t6%`Q}#}c;DZgeeXMJ&wk)<&b}Y;{=3e;|D_JRs`l)M zo_zM6_W=Idf#*5!Vh3LC!0EI1yqinje)dD$F2IM~^NzFkoK6UE;GWYQc&9t?&hS8Z z{Q35fdtTwds~mW}19v&_TwW0W%sb+rc~|^1_ryPYNBpx-j(_%9@z1^{{;#jE8m=0x zD#btk_f`9<_E+6fb+GDC{1dOKI$U+M>R9}~=f>}QUi`k7#_xN1{JvMjKl<$WeJ_mP zcX!qC_^00y|MWZKpMF>Tfv3kGct-qzJK~@DQ2f5<|36H<1zc52_dg7K0|J79ASNYJ z(hX8#P)Z1*ARsN>B^KS?-QC?KN=iwGAaFF)3BJ1#SAQFVlfMg*$^AC@r~H{ zMr?c|Hog%X--wNG#Kt%Ni!bS`#p^4DPyq9rs`_dXAb{=M>juhIKu=S{JubM~piToQ(eDc(2wMjXLon}B23|z}7(igC z1TSEK47?CpT0~qN5vN6H#Yz4z3<$WKxV*T0xcs;RxPrJsxVLacahbs1@z~fRpRy4P zOI&Nj)*P`jNBVt{kD16=2r?FmjD;a%;Yhy=_5u*Vq7VVR61X_A3J*RvPwsaWcl|1P&g8 zd7pgnBKpSw0z(ma0Rv>Z2qTwDkjH^Rk(aPcBsdoL|2HHM5K&S5`TWG58l)>9>1sqen~^RTTy{Jf zj9V;(I0B5D55~<8uyTyM4?feJhYK@AH!Qki(G!baSoFrCFBbi=7=XnfECypS1dE|q z38*3hN~~5Nj&{Zn(n=8v$^vjYwE$ zJ-vaMkZC<8V?D*=pRf@Ra~Eo0cT&RJ4F2=`WEpU`Y&qAyn&TG*#AIi0fP!4nj zxRe0)bF(DaRqB9|;WoVg;~%W4=oD~aNL!0xT=eRu*2m{Y=;eS#1(Hi%8GY6Gs4Y0!p(2)7`@ErjrJB0O9O4>!WYgYfVoJbVP}B{kp6QwYEkttZAHJp2fc z0Ky}P@CYHioCq%$!pn{D@*upt2rnPP%a8C1AiRPIuMon=iN^)j0FN624+LHad=U5{ z2tW{oAOrxPixZ152cHWjAx19|0|$bI`i#Y}01}K_8pb^obnk;|>yFUIA7q|0jVVlfY>x0%l++!Zy?Z z(m{CUzYL%NGpOJK(m^Qj6oS?u1C3)xNg?~6?w$%8boT-A|An}N?qL_8`u~D~=YJA5 z63!FEfX>0xz#9_AjN=1280Fm(CYRzyKB=Ht|m?2f0cAJ%U1D#wyr= zBWf$zA{K^-`Afv~C1T`^n42N`W{9a7VrY(7m?P%qh@LrO3IuM%oCn{0-Y3$Q0E^tG zz*jj#mGFO@8?mxQENl^TTg1u%v2Z}l9S~E{t0Q9Jh?qMfrjCfNHKM17=;;&afkZH# zK4{|=Vx)r@Ss}(2h^Z-JYKNGaBW4zenG<4Vgjm@iw&3M}IO^g%fE;st9f;r#kIn>l zH~=09yb$;x@Iw%QAP7MS0KCH?!W?*qLxfr2fnX8lfd_&`m}Ca$|G3vANvXTyAVG4>p$v<|1DLkghDGs{rXvLb|Ra3dJY9c>tM{m0z!#zID`A=E%< zz#9vN5C$O}LIi|J2vHDXAjCq5gAflP0YVal6bPvh(jjC($byg!AqN5&8*eNRLgZ*I z9IY8v0gwS91av%6icHia6HUmZ3o=oMOf(}Cwa8=!GMR-;dLWbT$fOrC>5WVVB9j5g zWDqjxgG|OClcC6DE;3n+OqL^)rO0F*GFgvIxgb-n$Yc{T6^2ZOBa?;5ls7Wvg-rP% zQ~t=5Co<)WOobp5zIfwVJ)zeVdOe}n6M8+N*AsfZpw|m}y`a|%dcC063wphw*Bjcrq0JlG{GiPbX86Gj zKj`&?UO(U+FPSL88!rVg;X467&rJkOgaQo2Vh|RCu^58IP#B#xUJ9WMzy#P8IZ(}k zY7SKMpqdBOJgDYFH6N<^Km}6*OXLM?0LlPBn;%sDpy~%RvOt%hGT3xE5b_{Y!p=Q_ z1Tp}4!+!msBOgLJgbFY(0Nw->E)$?}$Ux_if!5)(2K%WR&bSszwNR>qQXQ1ap;Qi~ z3Mf@TsSrwqP%3~@0hEfMR0O3;C{;qK3QAQ_ssJku0PL&^IEM;2^>PT65UL<#Pxupn z)dAZXGO(es?4Jg-(e)!`_Kp21T_AOgbe!N z?je9j0fvCX05#CyKL%z5G!O|!01O(zDS=hMIe{8DA21KF|7kD*92Ka6!}1>k3E;p$ z4Kfe{nJ)o6HoyoE38(@Y)WEj?kNN%6KqNR2pj~(xu)co@APX7+gGR_e0+<#o2G~C% zxCo$z&4a!o0k<&**;)%n#gE z|1_`xuulc6fdrs|ickZ6{igvVxQCzyRv!A`k^=@;7dvTK8XkMdz{&i_utwMfFoI4X zgKGvDoC8RQOAa(}nfx>UZzW)7a0TJSpbyLe_5u>X`avIDEWp48294lmh72|cjBr7K zRypA@6$Zxxj1X*64|v$1;0}*BAt(V>alDui2EslF$4kNH@|o};1eymtii8tBzyjuk zEjHmx3qvP-Y5prl^Iss%e}QMg&>l1purXk`(y0I_;`a8nKgs*pY)*CBoNNM8fe*NF5rA$`qAzdO?J zf%JPK{XXctk2fGUq(2dvC_*Mvk%?l2lNI4&MYvfJ9#({x72#t=_*oGFRz#2$0e{5J zq{ECd=>pONqz}jdkRhO#fQ$ec12O?*3djtQIUox_mVm4PSp%{GWDCd+kUby=K#qW% z0KEd_%zO&t5@CyRi9{To5hDl0Rv)zj|N8ByhnRzxK4NZz=$jB=T44_~Jp)~eNkNxAQqiTTSai`h5M68n zF>p& zxe$z3jxGgwqbrpqpoegDIm;DY&aDHvKIl@N3krVV1jq-}EeB(kp^H&f=&C39k$_9Y zQbGZkCzL?Z|D?Kr|4EBQ|JlGtrT^K$0RNMgtJ^H2QG8wqV-R&W)HL3fRSYS4vR zS9GB<1zl(=0#uJKy11c>uAoCVunO+kfPzs>SQ5JE30A~20#F8^YGA7c9QeIJJ+BOO zp&qVQ0ia5B(HoGDJBkTU1{~D%^#TNPBEb0m-hg}ofja(RoB&Tiz#jnW1Oj_tD4;k% zU_}BO0X3t`u3)u;!Kwy>dcpaCO2G<(9N1S#4Z0ZW11JaRY3O2j6}lJ^f-Xje0|HMs z$^#IXOBBe90yU$-{1T$j#TbyE0LF|3#{~Bj~d+AIM-mn!wsNgK?U{+?&A; zc5_8B8FhdXfDCpsI2}u#V0U^3015(Bhc0;m?o|c|oD#2Mbjdpj5YWA=Q1F2qP(0Y( ziQpuZqD%guMj)^SGy=H+$T{dzkUP2*401!#0QUqs=sl+hT?)+w)PydDf!t8AKXMDu zrO04FfJdjJOYt@6QmikEDTqav;z9xUK{5GY-*|-q0;etkoS?V_bj7U@T?hs-;CU`3 zfL;>7DNY1ECWfP!LU6*8!5osnxT#_2QX1fCU_L3y=u$=miYWqPXS$(FSzx^EJaj1! z^qU`#VoGArr2B9K!AY8BO^OVC!kRTS9set;SQ zRin#be#@So=(1M=y6lq!s1jZF4MCUvTmVI)%Yk+1a*#iYsVe|H6Yv^zIn)~vhz~7A zm%~7AxF3pXhzB=K2B0Q%IkE&@jtN0A%?;>+3%G&eE70WxFn&TZx}4|-Y@i>o{})`n z&;>WpPihdloECsCrw5=5?&;`qCa`4%qs!U(=z>QvxYa-}xuECVV06I;+?2&&PQ|`J z&PJEZ!_WmkaJ!a+-pfI51&FOoM;8LXZCDNZtO4=0oaU^)wW$22BJGv0!4>&kqd6i(Vd!Q>#N$5goKDy!;3JCc8646D!a==Rg zLEeb2_-6siL{|b5(Urh-bS0<|$dChHa5lOU8V&5>K=uO^04M=nhyXRiL5*-wBO(f2 zi3E3DWFnwcK)@Fp0toEESdbr^i>|~$@7f4@Fqd?27Q^b%g}5ekAs)PQD_ru2eMuUV^UFN1!VWHRvih$E)t8=&DC3pm=oE2iW|h0mY!Jz76PVa4otT z5{a%xf#;hAc{RF_orSK(gS)4y3|&nC&n6eVALN2}qh#>jkOyoj{(y4P)$}xUp`aXH z1@D@xS=s1nwi_VOYjF^|S`db=mb##;<>0-gJP1%Bx>}hHI2gYU%&9U8U9AUWgZpW< z!4pt0AYf~#2fv{6fB%S(=Uy7-Tz-XHwejL_WS#xFo4Ss-Y!6?xKM}}ucoA}mST(Zm zsq*%;#=_;gg&JA^n>)1AK3*$>o|-;4FP&I>J{p}qH~av{^Q{|C#s`c^-b4s_AoyEu z+uOqZq6^&hdzo`hIz!U@9Q&3x);^E1QZ%vQg`GLfxqRF2IkA#sn-k-QHTe+nf|Enn zw}i6$j3qG*pS`CY3k~1dom7dNgfpyVyLVA*JS@3#tV38RCH5?6mHi4Ap_|jG9`8kF zldX}Sz|aSzl_hqzA8xd7WGOz_CO)@PP%ueiN?CGeSJ(DwR{rOOhucwXQolwItUYuo z*$1Z=XZX!b^=i}~3Oy|K*wxYaROENH>8)~YM4bM52uZ8MKwjmwh|U}MzW7n6y3Q%o zEz8DpuHEukTii5ivo)f2e&?Ml!FO@>3tPQIimj}nqnLn{kc8L|GhPL|q9=vvl+Uk3 z5s%pN)2gV+ow^{m;5bC1I}~0?ep0A>D}niZvfk#yVftS$exH&x5ADiOxJ{WN&-dWe zZyb@q3&`Lt!ulH|m3d;nP%*NPmzC-+JW6~n&N(2(H2peDb9-CzW#pYM$FH};H(wIc zTTo1Fd=Ji!jrj8LC*u>|c+0j*mItPPS+`iWLV`(e7?e@@>Qy_+uqo%JC+k>1( z{XYBcy+!1yg~ZA$1%VV9JJhxz3Hm=nti*ieBW~$d!8SE})N)OoviXJ+!X1Oh-hUPPV2LW_U-F`QeBj4=4CmLgy)4Tbphjhr&)A%Ldne#D8PsE2C8q}&Il?xm_ zY~RnFX$iSy&xaXgw+nH%Gy3qHx{*$Q;7xS(a+k4p%b~1cf64Q7$u!KV==Z;+Ey%PP z+}l-}DJj`I$d0&eiw;bmX~tHwRWh~;(77k6GB-^v8?cC7URbHWn#cZ?fRW-kzIH?P zc!Q1HyLr_gH+oR3aMuNTJDwjzlS9OJ&*aT(esb4Scw8fK^J<2q3ZLOvw3MIYOxC9U zufkVW#FUaWE{E->4Nm*Jn6e*>+t0c^li77=eZ#Rias&Lvql?I>O1ya5x4jKc z%U%9x#h-NMS?O)vPfuv(H*w2;Z|Em#h>U!`P89u`lDMFX-r?s7+cB%X(9aV2r_N@? z8tEUrW0%7paJ{8FQG!v7C%CV{O!>`M${A_KGxreg!1kXMYMq=W% z3_V|~k(uB8LGzo-nP-qWG}`a$Ew8h|UKiEs+y^x$VqNg$51$`b{rEDkiR0mP=h~)Q z(dUyB%JtziL#IlMV7!ZN-O>krvg-~Mu!GANs~=GcrS+7JEy;w>iRk2)#AWu$-#HN{cIddDCWjN za+he`{-7tpX_Jg+JgX~?9Y=UC?(o%nXGdfl-*{xgMxtNICrmL(xteG<$5AiD&6)FWd$sn;9wJd}l4r^^{6F%+N+enM!|f+Id2+FrTvYh8mfCLO=oZ)XA&=ZDss8!3_qJxXll7U3nLYdYWg`}ONlaC$wo+v zYD=sAF`SR}q0z84oQg@mbeJYZFBOuk^TtugILhzp{B0H%@)&`;YZ4`R$WdZx`q46J96&o$rc&GC4Z|qV(>)TV-dK9`QlPIJ-9QK<3O&5I&LmYjYb?cyz>=)l#a%_$;rVse?9K*4wD-qZuN5^lL4UyLx_xksN$cgjkRO0sbkEj|ge+lB9%t1gubZQJk3 zt}!@`-g|SVOdv|2pnr&rOjCIFt@ld>9frJHE`QSm?J4MQCZ-CAT=1@}uuu#se>?F- z=Hb&Z3C+4sxH++=WIv1%Ie0A4pi4ACDd1E^zCP?TKVHUVS^+`uvcyrfF#Z z?6?{(!2MoJ`(QsCi+Smr2S`rsMSehIhaOktHp{70k#6%{#j zUEg&!Xug}3Wtmk7ZYY&7-u>S2Ro5$zMbk!ux!8R2>*F8}`@y=NNy^i-%jf90-Ka*$ zUcFCW>y{WHxroE!!+0e_i`>xi;C!bN&$Z4!sEVcj*`UQAn1f4yH);L^ntit>(vrOK zD!VA|ZudS*_yh&C|j?_vT!!6#Ctoyhl?{Mr`z_&zPO|_0@CwB6h_htuRkS zT91O!lJUq9HZ|5Y6aR)Qk@#C$jG?A(P1;Xc@p9aJ_-Pko z+!%X{`?)40vZHrriQ@>~oKsudDW4*)3Ch!=iWG}+3aU6?nWMMVwvGCc_HbRCx1K*w z^}*48FF3{SPO~QA=?4y(5`A?pGIbvq`#<9i${4#WaC3ao$E8E zy9H2R;NfJeQ+K6I<1*OIn37~nq^Uof_XM-bI#oE=qgP3DLRL%~VH zseZTK?zh<$xAHr`kZ*m%uhYJ<$k)`$AGFQ%R&R}cJ{`JFrOqxbu~hxd!}p>b&t`yN zls6A$-}RL(8Ucoch^4*t&*8hp$Eq400gFetswe*BGCs%vajubc<&p%6841A>V zkv5iEqV_~@T*ugjon4yz`Oo4p{~c3`@&~1^*FP_4U8Trn8og7H`Z~$j_b4G)IC$CL zE~TrM*_K+DJvZ{2&~<^FbB}0EsTTPvq-2D5pA6pep`ljC6Zk-a?;QW@qFh*UgyHvH zhB`kn6E|ZOCIV*0ivcB{zwEK|k_5DQ2y*FE{M;LlZSBbPP8K_9DN^sn1Udc0OENr_ zCTN^f%&7381y^{LH(kn~(1?FR&`$TnK#iq)+>^+;ymoa|@=2WNip`&gr)$Jok8Hjv z)bm`^P#-RTINjKNJN4z;JEo5Wb5#yUe|Dnt~bkd_L+z+D)jFV>kRvmLx>;;g4WHynUC4<}37F9T;sY6Z{$9P9}*I z@-lYA`KMCooIp&_rxicD0vBB-JMV1*(@S&`tv|<<Ia;?dnM_5&MCD=f9Yp_ zI{Mn0tJ@Dhf_Xc$=m{-_y~in)D{gVpY(G6TiUkDzdaD zr(NIwTCc@P+*tqg#BHojVcp@ipU#F_xwfq327`x6*Q$@din@8NclwRBv76(^uWR>dq7}b&&0Dz7T-b1?%~r(Q6-ur;HCuEi z_x4cS`mMhq)(WBC^b;lWHwUe17+$T_(%%v#deYQe9ICf{?{)Phw=iCbs z(L;TKU%GsjY*k8Jmv+=&?<^*ab)0S-IqPeH-7dcMlZ z&(9IJuyZY2{aDI7HY&CRzdNo<(eulR1wXNS(UfwIy1VLSw}WeUl$d{9 z=5lG~WYH<1KR{cNevrf@EEu7C^9?+17aVf6P%3uleRu(;fZczpZ;*@~S0y?&!vC6^2bWkH{2#iwifO5ye{z z?A>4|Ppyg?=_fy3pw82tm!&mwop7gdCB=*7gDB3c#F`iB+~;Q;y>xA*d~!JS-;vpC zFUdUTbmq96YjXGeu?WExUtDXsr{p*`fdWriW*+1o7;;{_tfwKPF;(%_)Zm@mtqXX1 z1I~k(j5XDR%WfE}r-lR%?VbA#?(MW0>kR6I9!q1+e5GUD(^SFpWj0Z3PhjEJOujUF zcWV_xb;&uhuVO=2<5-6HGNI_DP<~OBr>r-m@pApSe%Lct(!Tb>xzdK1E7UiRO@A1U_u*3X=m_K7HoH^9HhOu@8!5 zx;zYwBx|Dsh9V0u=-O+@Ur{A`;QQWoyC@?fsmke^KzoG!?o95+<%s|X^+6?;pkD;s z7Mtl#UM(xCLtUZbD&|A`;dfsWX8hvXKJIFl4m}?y@Tia5?d$btl{j*=$k?Whb5__& z1?67ueVw1lbT1eY{o`~~ystT8CFVVoO6aIB4A~~14{v{orgdw%B?sw{B zQBhxV!p#h?pYCy~NbVQ)dGzE_+#zY3b+^NJ3CY=8V*_UXYlmX=?Ir^24ZZFKC%s| z&ZyoiKE6cv3ej0HiY)*7EQ3kIs3wgvCsNm}Ip@yTFEQPA63nlgF3gszxqXUIeXPJr zKf+$Ip8RG~(Km?mx{4W>yA|@FCqHS(v;qJ9SCUrk)B}MUg2bVMD?9!QN;FD1kzcvo z3({DMb${6@r?TbaS(0 z5$g}x=oLZx1;O{L&v|*=Jn1s7c2B;YJKfPHvVS%p^mGKdKL!5p%qbtgOV$442dP)O>kebM+rQ~c2m3tr?= zqiKmeADI^J5B8azJGk?{dw06P#frOhL%`US{qdrs@Z=@4-ujP(UB;?M^b^uaSE+xO z%jNOQw+p-tl=|^)N4$mB0?gDUsOPvqm;FdjAY$9t%Ij+q}GVJZ*z-j&*W5V#%ctW?6yvk-cJV#jaUj) zisGrA=*d3I<@h<)Q{T(qdBzgO`{-V+X(LMiK1#R#?K1Dj{`r*3KPlw~QwdegR*{b$ zi>p$s+jDZb%nC$rEY2!-;NAMQY+^P{u!JK?#E|jTWlxBsM0ir*wr#GmPrQksre_iF zd3K%n4WGHDoN=|`4fhuR6b_@gvusMVk0Lme***T`zws+}&(~@m=1MnVd5>GyZ!?HV z$#-ucR%Ns|6+Yw5QxmbPm~5I>)P8ed@2K*+v8W3`o>reDqEsDHvWOWQN{-2`S9spl8P?N;JDDAalRX1pn&` zJSU$ZdB#t(H$See#Te46nh6p0*KeNHatXzwxP19*nv05txBSCw;=WFs@-I0v9}XPf zU$;trX;o=rUWrpD)~9%5n?@doQ2v^B;N|=GO-CH(M%2F&eV?e~wa>dO7WSaUg)0l6 zIU`TMb7&xmkwi&78 zI-NmmxC-?-o@C#}^Tpy&KA+K6yb#WPdd(kNt0xy6207O!l8nEfD#A5u7-IjrZr4Oe zrv8zS`epKiE1xAso?ALLtBWkM;=kt8wwAE5bQW*6rW8;sOO_?McTI87TSB?Sd+ss* zJ?@9Pw4HC7tEYMo==!pr+}RX}@%hXosZOKy@R^BSPBx#_*VcT;IOlX|2S2wD0G2sKskZ9IN+Px3*SCe$z5=A#Lt~+ou~EeWEH~ zmMFGXubVSHo=WIUMveU1vF3G)uVy7l8L=x2Q-`VKUD}bzZpBbJhli8@ z=k+GKgah-omNB1H+1xt`%u?J|sqU@(=MBWG6z5aeQs}i_4<#=UpGJHcqwOZ1@Or<`IdFAVfwM}2wK78yF zF)clPo=<44jrZE#5{^UrZYVGHa_P;=pFD&NHaCfa`S;p)uU(kZCc9AZyW-$B-`9k`t-z)eP!zz_RnjN z&leKaRf&7dQIy=t+gf@!ou9_@N4#e5!d>_Gj`qUmr!wAtW4ik#(?;a#Tk~(`W>GOw zPL?Vux3YQS?rzi>41T8|rc4jYj6Ftc-}N()jPtaYnD<{ zw54;DWd=qR0u~wrF{SGDu5A||ze}BMBQVAD z2H5#pzOj|7+>sAaJ#kFjtL*m|As=98eRA)uc+6w>bd^7X+j9NaAh-LiBX?nDf zdG|)=RAy7maa^_A%pymWDpRoPPH3C<6tNn~vm7Q_a@h{*hvGElG4zJF6$1Kv<~cR& zMMd;zJA?I9+1{w9oZx8tw1e-+=2{F3PS>ZbL0|nK3YF3miRN#OyucA8Pq(`+vaj&* zhS?~UW^*~`WxB(nB-?~kIzrQyn=u(fax71C29)&1NH{zjXeMv^mYWOWx_fS~>zgbc zdcN1`YVmkyr))#nbe-Y)Xo=qmX<%fl$0EKS{igq~TTjHM?ki-{CbR_C{}5Ss=j@(u zHE#!rJ{h1G#TELC z8L{NI23=qNp5CK(Rr}cd^U0#5AW!c>>*X8Izlix*N-0KdT)yaj@nh5}fjk{k8e`t- zz!kz=YD&#B#0L^86&P!qm6)kpr^IGW-uu;lWP0-3n?T(`$c(ff6MDK^q@Y)LDoycr z#E$nGOzx>ywk^Ia7@0y!#)Bq*=>J#`9kiaU zWBcRltK9sqcy{W3m}~ZC((=-sFUjxL*iOqZMVsF2K-xb#`q&n8(_PO?99)qpxk4Kv z*A>ycu%!HLVT$0~>qpD{uN!RfIvz;$gb8wsO*|!HXlYSg{@={?R zuR4>PIArs``qM(HayFvsX0rYEc98A8_FtE?eVQ}WI(})Xg*|xuv*1HO8 zL);g%ax6uGvfVrmRZ}8Iug;QDFwZRMmsqCkf1t4&`4GTA^2>f9a4tt_(xhZqrsK`< zR!XMHV>=wygM1N6wZFF2+u{kKDQTHxUV9X;AKqXp%1QXT+_X{rZ13nr)TR8wi6^Z0 zW^gpfs6%R%PV@ixnP=rctDucPk}D^6%W-haZK0+qmSBm^Apc_9pWnmnyi^KQKNi+C zntft!2o9nR$6jsDmco2*DLRG%432)5&*ViRFO;c-hc{|4diV*}ImIRd$sI2mz7G2J z4w2Y@PM#9y3@W*Fj|2aNoW_7ntlvZNH_?bZ`TkbpyO`(OL)%-oe+i7Mr1x7FdTIXl z^ZL{|F!8;k^Ztnj_gKlgYfsc=sr(K4OFBDGG*5n{I9|SUpR1`|kjAF%lc!>2h1{QJ zK4mtyl=;rAaamu1`tz)1yogG=-NTJ(LzGQ(yY0uMQSKi}uBw+t=d}5UtHz92&3jKt zGJB8^Dg4g)QEKFfM{YmAP^5e8`|gDt&1S^qGPT(+moR>M# zoxN}ApsF^e^!V?<%B_}h51B2(bAwrtJ?~_$T@g-EX=L6}G#hMVipf_R98h{g*utHu zSbUftLb<1SO5VtH`N=o@5{IAJ=1S`w(`?T5%1@r!9tb~4f72UESxYFSf-%)X-RTAy9lW@7RtcO#C8f~@1?xL3GYL8O--Gn?1k zStm(*!*cSz>_nGSAo1s`MeeJ1Qg18eU0q4{O}C0J4xeFj_NiRIR`SA@=s7h(dtUdQ zi_fVplprmyxhKePejZs8qP$Cy^W=E)bLU-~3v*`arOz3axhdPyHEG`At1Ize(fAnu zB22PN|Lm4?@<_Fa9(kj1fQ5ne7nUOYQ@vO8GUi(}@T*e%Oe}FM(hP2mUASM|FmiE} zJV`~I`u0uhCqh5;h3WfhKAbLHag-Mh1;4V_(D-)e&Rv`jQhV!0I+*VDsC1KzYl(}E z1_!~$HO@%3puoM4=ADT(Y2p+acLUE8tB-TcU-Kg7Nop9XFW+MkWXc|W^;?y0$Vi@P z`SPRNk~GStJAzm9F3+I9?|HOV4cMkH=_g3*=or%L-V_jc^DI`6f=B1r@v$YlqH30G zp`EogLN(sP$bR|_m-G23d*`fJQJX9#-!01YbIQ`Ls@c}LW>v+yDi1;u>6#9EqO~ry z1{Y47XkRhukM1bHxWh#s7|Mei_Lq7+db6uct9gPVuHNjgWTmH*WegMH9nnX;^3F%E&p~`^JGzxC9?+K8* zVO2~6o5d(Sp3)Y(F< z8b7PQJvr}R%By(kLIcTMrd6Y%n2-5|WzB&P9^>(ErN@Ww4^K$rFML1a-z(uEw$C8S ze6}}zp)H+`^ZtZ*HtT`7p;L-pbjmOe^Yr&-XK`*H%=Y5>UJv`QRy*feHc_2OUO7i9 zA3G=3w#V@agw&EvVj|NbFGR)Yl3ahks3n^GP$uMEcU8t;{-U0ZX&tx6s9I*xg((W5 zp~Jg45rmT~^AT^%r0NYg?|tIDXlie^b=h2He6&%$oV_)M>Rr%Vimh|u*X-@J5B3=E z?$2!Ajz|&tQe4?nn*Ws9QE9ZHQYZfFWA(&dE(@2egFesi*NJVMZ+hhOk&g9UWzaU! znH;Ts^yfy)nW7Yx^>^;fW5Ai07YmlEtT4|WWqHrLmDcPCZuRrt&&M_cJIMig8%a zi^j^y;8Q*x?M-Ewa}*1CR5tRay1*t~ z(8-;gzpC?9_wQYikY9cjWz9Q7uZN>llBaIf>G_@Eq*xyP)D-S4L%jO(haOdcztjaU zoyF}6bJvOXT zVt<{{q$8eDJXA+XEAW=X!eBEYh1Os>ICI6YtERkTO-lW|FwITdMLCVYXRgO0DKgYM z^V~Y0*0ZY#KP=WiWFKq}%Ffgs^uP3tM7Psaqrkdn ztbE#OI{qxI;!DqD!wmVir_7#3pT>;x=?B#0ZHFtz-?{Wee(IF)eo*U|$dj)s6y4YF`Ku)`-gd0L5j*rZshMBoIuB1QCXhME;~|^s`?OTY zps9YV{FhZFN}T#CXrlL?|CGYR&m#_Js>LIc{r#(Q>dx_%P&*GK5j#C- zZB14&ry$1{>2`J0<`R!=y`VBNZp^9${vLhs_16QO@(SEnt$OF>Qg{60eP{W@j)*7Q zKd*LId>b9Ws3H!swE^k#D)z5lI3PJlX2N$L*b z#YD4ZQ_fI86*JJe=9%4{J)FDx?AsJ+oAN~PS+%1c9lb=#uBCgXx~n$*`fGIObSB>K z_>?8Rs~7V^@4X`;CZ3}(c;I>2i&*qCgY?_c^Yi0ALQILLE%xHdb2OwHeeVCsJYD11 zV))8*)~uCr(vy7Zcy{FMvG7pHpy)G#3p6@oek%%+ z3ou>Ai(%oYYn)b%-%3M@cCK;w6;ujcAU#QR?=Y_17R^{a)?cYDkte8kywkm}pqEU4 zM8>2}9%p2^U(i%7to33DmvOx~zPjUS(X@D4J>AXltJ{*wyy>#$PmWy@j&$m88q}Q< zO5yRPJ()XKBKZ3J<2;or!va_qR zr-D;c|7O>_+&aRkeAyex_+F6a_o?Wi1}ve9nbZpSF9z7uDqrOQUb% zTm{PuTzdK_Es{Dr;@z${q5h_}5Aw8b4@>@Lp!JN;{APGc7XSW{DH*>OX=1RSg5cQU zernHOy^&oP2QH>um+dEt-O~L|m5gPsr)SACBbYBuK4`NxAQWabBzuatr^H`A>}Ic zOn8xhr1psNd#x?96qCAmS1(lCQ~ZgbtbKZaHe^PE>XPbP2LAv`kwWfQU2o6nh74Wh za(#TACM~J@dBd94DBr*@jq0qkI-8u`v#~lXRv%V~Rbx#}hMP$~Uej3`F|9UG)okUt!35>n+Pd$I8_DFG^V~C+DN5P$GW%%&xRiT@YdkvY?7s{Q_x^hb;9)xe>cU6pj z7>};h;gxbJIEQa?x0OF^^Smgh++vlOUi43rq@xHK%E7?3k(hfQ&PSTD2P}U$a$IyY zP-w!n+X>88bsfrdBfG8Kbn(<$)ce`co78p!g1yZ17DD=opQhx384?)~YqceOy|})1 zAyeP`NclNydaV{4oC~=*mmhnyCbOI=4WRI85B({0XRrOUs$12N(}VPPT!a%5yRt{P zVUZk`915Xt2%nVi-WVmSyYeRTgWYsJVO~QTl4!xT5#X~8Ses$FzeC_(ZGae^-(oQzPoZo|QCMQoE#OuW} z{Z!l|)}YZV5+V|OWiBl?)7x-A_`B=(mWtxZ$CYIoEI-BOzdH#!r7u}N304V=QLYg$ z<`H?-mYyfYoUeYKmQ7w}rl3i&uCH)#u{iQ4Kbhu(3-@~2$V8@4&C=hUe7F05zW<<5 zInNo`P-L?tQJXHjY#+RX1bT3%;1ieLrkzT;#u5@}#F4$))-b)WtU2{^SMRpYGE=;J z6DeNS+jhquSB7(sZXEjDGIrxr8#v%gw1~NiuX-$Ur{nPr(_dN}eIlNZGlXd`T2{|9 zwp)_hm)0u@KMie*S4|nY>&BO4j+-53c)dWCq=57VsoG>Ek6>)5o$CzhM36IJ-~5Pd zyTag*WWR?SiR#f3>1q1CJMCS&&u5-pd`#Q#c->wpff4-o#V*S=h7PG;Du)j{t1rp@ z=)aVeAGlxAIUA{g6Zb&;o6w~%J4|H#F>mo3RX%f5dq4d&hg`vb^_kn@Elq@H0r;NF zO5Mqcg24CmFCjaixw8w>rZdT{b&Zjc!hCpgyQ zM^8s4Oju@!(dXW5v7l!9aioq{t)^Oe`tFj1u-pF!H9*S0dU*IMx@;bl8d0vG(7#^~{* zQGsJb_IEIc(n&fmdla&Q58c?X1IEh(@%c0iMj4*h7z11`^Y|A*sJe)Vi+3h+z}z=H zk0%ct9O)a<5XPYQ;An(=)ZoDEtrH^fn{Iplw_rh4m$E+!K$;j9eICjvi?~==>YNf|F4S*#WS|U^}G&c-56O!-J)n+ZMlEz~U1Ich&17R4t zafP=DQ9b#{&|EFDNRzuWhNp!3=m@>*TDqqDQ`o2O<@0^=e^_zKXqJZ@QUw}s&N~y; zx#YeM{Zq|QEf@bx_cNjE6!H_e>;tL_B<@>gZ$M?c&vUIMq~sq<2&VRd&=y^t0FW&B z?&wc2H6p5>s?|mV^5c;ltOuXk3eWKkv?D&7eYA1ulyh@4St0qHW)!_wzhn>^4BxI@ zh9!|FgVPJQKC9a7G@n~Nysun!Uw-Z5kpgcX)Ks5oNi;}44_J3WFw3v07s4UC{j+D9 zFMpwLb*RBbq9G(}Dv=`aN|YzQWc~zLD#m5xt=Et6ra8U;jXOXTs!XWw#3zJtM@E3O z+KUf^ZkzuX-$xUg$i@DX6UXP|Z7v?L$&PUR(G{a)UUus>7@q$Nm5-jyQE zWtfc_AEMt5ZgDq?LdRe8t)iEfPshW`_jx>|0SrX0d|Qnr!7+6!KtYSZAt57^-c^Yj z_OA#OE%^FqHCvX?o|#^;ac?IV=}6K}@#6Umf}zUv#(q557_uN6XczK6Q)O+Rh=(r9 z!{oflXksxl77OUl{L zXmDQ9e*sI1W}U!&@=9s&+0Bb^y4A|V_9|StTWPw|T#u!|Gt-*c$e#(0Wvt4k$B=Wf1fDiV&+2DnP)X3|;>_&LH=<)3NIDdN?bxd+ zK!^*lyvO6eC<{vBGcWj8|9MbW@;~CfoF!Oa>nAid7Gl;&>BR1DCo2OG+Quuk(Nikt z@ZC{^ak}RqBz7Q0lZ_DoI{%M0mTOFWoE1}-*!P-1*TADXVEZz001Q3VxHyu8ruQn* zXnB%dzvl-AzRq;os#O4`n#+uSy32VG=wAQyrO|N=VPU4W ztigvJ7oXt6>z=BC6fl)}k@^(jlHrmY1%Feu?CFw^--C1vDa^95L>92#Dq2Mmrz{Mi zfmUcsmU>o*KnPj%b74v$9}XyM>pj8n$~4@XjDY)L^*AZfIkewyyk0uovJN3l{;{!z zbaJkS;Q$0K28cWBZd@(nk^0^=v4yVb$92@Q8_=?j& z(iBR5EdA>+Z@?Km-bCiN)Hoj;+e$XhU3D5M{^MJZ1w1OUw~V9yHv+@bEEm2PE_#+Q zDMSiep@-rL-0sEiTCTkU$EG?B}f@gRiCj{sULJJ|NBBj{cie6}*LH6ireR328=CkI2J z3*xbL(d1s8hqZlxnR7P8$IV;SoK-}nciI0lAw{ye`yd(*gYmMcIV$y`)qTlJNci0j zq*lMK*2db*cFTGtGAI9r73?-muhD(p_+yBwjuw1mh|kqU0G*cwz;xB~rcmQRYC>{7y6#rCYzqs7moo5mn``muu|B{Y^?Y)EHE#ERVuWb$B1d(pt2rjCKl zIR`E)o;gD4;wt4}0-MukX(cmdkj#Z8)Kq!OAqCc(4YOD6fp-X^PreIE}$OYkIU$8j9C7ly#mww(y2!UGB0F+W{S7;+&AoH)h|z+3Hn-NKJ2Ve1tj8rJwX zYKT&fF0C_}=Wlpd#2O({EY3{+vzP?JB(e~jt>v|i(ocHWki##^It9^;X>C&*=?5(l zPu2;#p7MgZ&Tlz<87zAhJS6L8dqFKc;x`R5KiO9dNb8Ldd7;Rpv*nx_%if41aMY+o zxe<~93pTS0gp#K6BzyX4rrbLNQZ#TJH;C!m64jR5{&%JU_b_?>YLzUt75lY3`cf zLlE`i{AE^Wr=M)q&SBef*sNvZ5NXbzt}cOsX_yIs&c+eGDcN8Hxl$Lqa*)+ZT9+{y zEWq2rpGfthE8y#p4DFeaoBAf-l$4_&rE35KlE#_lA#JV zfY0tGD}riN05A`hz5dvm^+P;+K)QmQB>v^fhD>y0B*(4~o^oQ5l;~0QhZP3vY($ek z1B5Q2xcc96C%%3`xMxP8+C^v?YK;?ThQ4v^V6w(rf!?~9sd(Q+&C zD!t5fSG+dGGY*F|`w1DcFv?o;efOe|!}arlzbo*?bb&>Fudbyf1+G*)L%OQch{aZF zfZKJK?R~TDz>0Gq(@`JHX70BAC3X#95EmV0tak0uz4O5ylkr3D8Dbs5WtW|TU_N}+ zTXZ{=<3&)pymXviDuSl9^)i zup~J(0OiPe^?L0=6O%pqxJjM0rz|HULZrmFgGU+5J>&ut?EySNPR>Mr;U|%qZTqdW zGj+d)?#h;`CFU=X_I>24<>Wv$w~Q4^8+#pqGHIjYC!Wc1<(Ki<5WsfJK(4@NF^R$m z!}3^p>(ia@rm=YlF#K&Ir#1%PeqyuGZ0&x-du-18P9czKjRh+Cb>n6wcX>>0SUS=g zcJZZ*H>{{-6#Rw_Wl^Flgjdu~dNWBQLgwRTYgg8)F}Fh%uW7^n%b5Por2D={pOD&z zwG%BdLHp@qW&Y0b?^)`RruIzy1$sv?%su@N3t=Q$gK(6&g2pP7pAeF0VsfXWEA;9diAdg}}ip@3Qtn zlY2{vmhf?oeDbXxApAZbN}rua^8}YFa6+f};0&bev$jP2>d@f9!6~0}`Cd?+VH!t~ z06r#sotB(m!85+EgN1VBTaw`M1h3Y%qY<4Nb-5;G=hEa#nr*VhE{*&40@?It>trF3 zmSM$XKmaiBfWc63>+rLs>N6aTDA;d+2i9nO=nwU~OV#=JvL|MZtU523B|E|B5OjA` z_+Uyahivaq%o|b@Mx-<NT|Ve@q&pCR@aM|XQX}%5Iaiq+E0n%bg zkzSe8briCHj{@usIBS@W+8=c4{`7=Ct221x~L|R9X zrAdt}tf0FGxCgXA`#O*RX)QJ$oup*%%Yl|Yqq4LwGy3K1XX6l`bDOCEX(d@w|EU}_ z!$HvEsV1fv?%fSoDTOwurOo4goq-HT^PJCOAciII?Xc|-!1^LJ^scd_6E#6GFiW{2 z+bZCa$6KW8q3Mb}nPVIt&C_hHii&8?#iyK7iBqC-<*MV(Ec+g!0ytzV;8+7g$!;47 zrv$Zqo%*rS1~W%=#4>G!STvrWH*tJXK+5(G6JKRzFF#Q8@rXojQg*52eiyxGgwbOY zk`u|D9YNq}uro~3*inDqEDGASUQd~O8L>PM9O>#qD8;6gJf(gKrpf-ZPw5)e~;{aO%a7L{pujj};l!Xe=7OWMDxdgC7C%QP?I_?!jGxzkzv0Bh# z9*^Hc>b9eHodtff~dqw@N9SzAji1@A)8zVMNC262DrpT|z}BFb}|$Qz$Z z=AQaDeGd$E3W#KS%!7_pPUFwIIRy_940en`J%|KL2U_U$y5mCnqrllDtRp zMwH(o*EA$shZR5ptnuY?a+-N0>%B(d+V(Gsn#) z<;|R_$AK#;BHVvdj+l|trfJXEb}fZQBt!qj|GnR?z4R6fZS8DyhF~)NBNskP|1TZ; zi^vq50WIwE#|=vmMe;HTK7K3et^3*lUl05HnP$)BDcXF3VI!AMCgx`aseVtfm$zK5 zwzpR@Q9Y0lpFB!Mg(Nq;X|2i9*hI@IYb2A}IIPRacO9ZYwL*@O0X5{mn@(ZFR(f#y z|9`>@DIeWD<_OEHob<|IP;%-UR(92kUq<`Qe z(?5A8ib?Y@`f{5Z#x&8Ew#nJal+mVuSg7nPd6k(1uSG`8y%}P+99!VRR(^g~ago2k z4iL%2VTNx9=h+0jx?2c))@rGfUReaWpPD4x`|80ab+-%M>}S(N4VBiwofnxol{{>D zjOF-#&U)o$-Gr{%nlpbQMLyw5cvt6zD!9c)upeVL?5u zFO?Z%Us-7Hq;GaH<@us4<+1g}i2}#nC%E8-bKfaS{j!bs+^}27ate_DT(%{Bp71&A&+JAWZ zC@_GGkQ_-Q)dydBOb)tN5`2P!VW`VJUs7^@z1>Kp(G|Fp^!%2OEnle$J0?sDx_Ia#iD1 zCE`T!#0G6{sbLO?hux@XN7dvAH zm6WQLwlUS-d1sVNEqT7eiMoO$y&1m?qKakWju&|(GKx|Fz(wfl|4P0j*^4Zh?dvNs zQNlG&!7qS6xjZvLLws9vabok-76ehE1CBgHzncb4KYUt`_W`bh4F~N`e7^svP=gQQ zb_R)0$Km+eon{FLec3B@+*r8*Iz?R}48q&1E5Sh)6PnkF=G0!`fZFirNW^fvck5qJ zOZR>Swktlp@1;Co&Mo4Db;odAEb_7A`^*H6Y2o-CvB(9G76amYhk0Q)G6noo zcnY1oEjQUzl#@?=7#j|Nw4Kg^=ICf%7TB5+satq|zBQNP4_f2pDe&yUjq3Kv12Iw-UR zyIMyo{g3kD4G5()8B`ztup0Bb1a>*$8MLMsHv{IVvbikr4qfB{){f~Fwe<==R+~?l zGq#-)n`KIVq%XQkvHkA@0>5mXvF&5Vo zogw9bW8QvrsWfuqbQ2I8HnIE3Pw!XrJaaR(=aWGknJnF+YI>1yr_$tyc*`UW!n6q( z-99axj>FeX0KN*BsjFLj#}L<;)lmbiAf!z?%Vt3=Cm-H%${PNH+Yd|i*z$R9beld` zOE$-UZa`2={YF2~b$i&D3vI(3T%j#TAMv9*QGX+^!>WFgQfG%b*JWU!`U}p+m$Y&& z1Yske3d9WU+Df~@FC5{*-T0mw40oj+W503&Xhi-@io;y{Vsf8r$K7|at0u3|d1Td* zcxbgM_;Vp6a;a!%D;Z`VjIcYq?^uJ;rrQymvN~;%u$L#EQIO(@k?C9lW*HX47)@6b%Rxsj1~pUoZY zd|>t4`_o)md{;8-CL%jjTm3c3#6|`PX_gjK9XL`nxoO_bhyWZQSI4i0no%O@-Kfqr zy_Glw;|-Tph2g;nc3zV;C8^(Mf{UXrGFJ-5)V26dfOmPn;I-S7z-a0-Vi445*)9fs zw=Dp(SiGBYK3JW^Jw4s$Xjoo40YF!RjT=0kJVzHXA*;5Te5azY4DyKh!n31DT*}lZ zDd9_8Opb()Q5HY)u*-XO3?hm5gqG`FGP@kTH45Pkefx&7y@i%6vg1&5&_TvU?>;$| zKSXVN(D4t4xbq|znUOw`$A;F+Ih=XgULO3^W5<=X-Bj&QtP8kfYZkR%erf!mZe+>v z(7FhBbEPb)5npsDmU@{J8C&@Q>`o zu7hC3mEpB*-k}!U2Uf5LGna7Gz=pws6lOY1QLGt*ptI(A31R&pQzHk|ljYM39n89b zs{97P3Kb;)(hkPiv62gTuh4!DVKL6BfNn&;^-HxNJRJcXM8lR98KG_WceIp1O)Fb2 zmtWqNUQd-tOIZzvPYUFyZ10VxMQ@1Wo)elw#Oz=Kt{=D0v_8$QMId%EPPW;_Q1dJp zhTGZ-M{-bRsw|uHn(rjj@1!p>crm>v!;~`>J+Rs-F>&(Mf%PYV^g;|S#~0@|g}lu` zst=tuEqY~I^yYMb>cqc0u<&Vo^N9zyN-coJ0eILZGMDrXHcUe2Pf!hsU**)Up2jIR z-CUWDAoJ=C&|JMk_kDz6@emVQ{v|&el%jR#H0nZXn?ltDdbvTbJ%xT*`iTo`awqIq zOx{Bc18T93?N`s8?BV6%Wr6>EX~A%(w<0TUpO2Ak9=C!{#+rI3e9tu>d&p_X-^i@7iY@zgUb5e)OjGGhDx*qsttbp^j!v_~5#YIbKk z`Z~SAcRH6Tc!0AB2VtW%$$TP-d439-;pxtOW$aCt;(nFx<|`4+QHy;2=EXB9?Q4&{m6$mI!%5Iejjuk zD<<_r@GaMLZ2%kJcBxymICI|=1$udF3O;<#t~spg-G#C+Ufbhotei7x|Gn1fSv<(> zbb^Emf;W33XCwM82Q@G{l(@Y}kJ1oAZuH0OE*5oBh<_L=WAw!Z3rrn-*KlVoBjA~4d@Z0-0qXZ}W- zMZ1N{o&XKMP_*l!J-Tbb20naMGP@yL^ATqUFcKrNmGBXE8+M>Nhhc3x>L!r(F-*Ru zLTk9mdIBhHOUKu>)8HK_tE`kr&80X}V119r6|0tnL_&Dj>A|cJ($IC!&*Bt}Tq*KM zDa-KM=xx^@=m6+DpyUxP&K zg8ku;S(e*?9r-1q@7m0kI+Ywl7m}er{K2XlMzn;%y9e~*JDk%64ISQg*X$vBhf-LA z3zT|O52q9aFrucZAwaquKL9+GcJ5AsP+ht_`0V`KpuqFAlSqM6`PWVINMb>BVciM) z8(ayrb~;RwFDTH&4;>TJR9a9nRrXJ{j3@o3WV|_>GLI%J%n>aSA@%P z^U(6Xsl_%Pri&QTcXHnX#@DCTy9>Nwj{>PWx}mnvZtaDT^q7KfuGS^Siygq}q8$q> zgP_XMaDrU4!dJCQa?nA}ME!As6Rb;^SI7u9%QVU0X9M?DR7LuT$gl!?a7+1m zeDLr-+zclPOQXKz*>1d+VHxu4Tm60s?`v~r4mv4^>bUbL5#IdWY6aw&DPhSLUAQsK zRaWpAB;hoqhZ*Rf+{~(!F2;~#rNM@zl(Q?1%hZESiv6+D|EOwt>h^ic1W~JXWzU9d z#5UFN^jK>SXW7LbMhMZa4){}0aQ7D76wX`p+GWqO#7Ql0K+(?d@khirqbuE#l#|B{ zfclQ0z8w{lOCEFz-uUwjf)jlY9NdB#|H|gwgkTwx@8fRyMRM8K8pojCDZY)IG5GZ^ z=z!cDZL@zIFYx(Y35eLwqq#JH$l(YAG?j4I)yq+ck>u7km{u%Aza;1js7=2+D~m;{*CWy-*CmM#CKZr&m* zb30<#U#SaZ*Mb){rel#|pHJQIz2LNG@d4y!^JRpUX~4car>khAS|JQ1dkKdW5(bc# z7&9`AH_=o6;m&hS%V9$d6Aq|QUn?Q?eo4YEJ1 zRt-yQ6Wd@$wd9TcrV$=G67QLJqw4?LM0~+&&Ud*$MenR&uc&iTNwDg3MMF14>oH)g z(fbWo5&fFoL|e4k_c3w?BHd~RxU}%2_}D7>6{6y-;F(Aco`8$9`mGAhy;1-I7wKwH zMx8mzkN0VsLSwrJ0@5d*{(|+0ht^(Y>~3GTtw`40LaE& zX*VoBp@(_}O7K>b5iUhV0Jo_wlbZ7OW#<<(@M|z_czxzEJ)0!_gd@4-~ z!nFl05@#xA4E3C4|LMv9=qSNg?Spoho`n^=4=b86NAeBVt#IT^H@do*O9!*3R&#Vc z@G!srK5l6)G&jXchWAKI_&p7jrU^801g^()VJ)&v0W>fnj6)nc$Ly2c|D{f>7(RFc zVOPgbazE(9k<35gpY;om@W{fblHT@bkNqMpe|Iry*fWR$tCh+=hPEATCM)l?F)MSo zYtDdQk;W&fPuTB}U((j0Z>>mcMd)4EdnsgFgnCfR((Kn&;wtzorv&0)q$6AcQbY<{ zeJxb35ZbN*_gn2F_Cm*E06bumq5p=`kOF z*ua8iqBe4>lvc*Vu;sWBLQX+fqMN6x1+bd%;6eCu24x(`KEL_Jqx$dz;F>q~Ot8px z9*5u;d7nHuq5N6E9cKwhWTsAGsL@?wc>xVg!-(eqLgArDeVwILryia8u6RMQNdPT@ z9H+B)2(}xcq^Tj*ET$1nBrL}Dzqc7nMto&qM&n(i_(B%S?t1v(kFtFyQ(Db1SPkY5;;w~V%3#C|kNvzDz<{r|Y z5bP%zissCgwOZ%`JLvbhNHh^y2t4?HzhcGhVzH54;Dyn=VsifBwHaFwxCm)d9U{AH ziGD;84e%2pEJ><*WJ|#>F2?xD_Qq&IyqYD-kYO~A-C`%XJDM0ETa>_m6|2bg3oXWS zZnsc(HQ|Z$_r)=N__7*N7{xVT04I1Rq;2hhlvJRMqOyG?cYNOOAYh#oq&Wl@UU077 z^GLA}Tr)x{tS779`Rpks#>;&DD9*tMw8!9nYpkohrr&n>5roKSdHup zO#a3B>g`Po!}oj(=C7>5ZE4u4gis2GCB%xl=Lv88R-V#GVbEKQf?uvx++IU#tPyk( zz-;v=r7Scg{aysslns2ga5V}{EX{dUwm3ERX`wUutz2Mm&}^T+g9V3v0in1@vZ^mc z>1aI-RG$CtR2jbG%B$W!9~&_>aIh%Fm8ZbGmbW@xv$dGhUiv)Bo7de_6J@kuYSB>~ z8oL)5<0>mFA5>6snr-0*Aq9Pj zw2XhCP@CVoh1dT{Y&|MtLbxCYV0>PPx2%-5-rRqrZ+X$+iuDvmII~I;y(zlaU)2L6+T^UxEp!x;Cv2bQiZqq?(|Ai|~{H=d9|u)PW#17MyS zL%way5pIw3TXvL@eltocMt1N=zA(5!FyG0uGljildrnQ)r=~sPLsiB$>M53|<$ry9 z%^kqX6G!*4AJg6_kVWASs+S;F89T}&v3G`pbZvB~A;!$BW6OH{9B@4a8 zq05VM?sHKrwh;uTUQoQ)v@1r{ns8ScsTKx}f@z`Q{Nu4d>1aL+}& zwi~1*it23|@xmlb&>9s7RA_r!+I`Z=V)lzWQZBJj3L6ZOk6Y^rfQWS#N`kL7^}Q-8 z`5DlsXW^*=bB7AoJD$FKsdX0TsB>&nog+HXvq0z&0{D+MMZxZ%BWbeYc7 z=Gyeq3BGROQ!XpHQ!exm7{;MAECS4%#ll7`LiyGMIHIT&Tu=9}7$}RN5P-j~RlGy9 z^$;MhSpGus@(MsM58q2)sNTPWG^y&p1C!9P@B8A5Iw5^i9 zM>b}^D><66fq5neAd*Wc^vh4L@U;5(px3?oC%xmnXdZ+GV zx_=7Jb>XH^^08l}XP?|W<(!eclSMPm-Kxwl>`+500k;uoD%^`%tnm+amMB5L(JEz4 z1qBeIlGITV3f~VAGjTb8tq%}j8H|#ZjAAqJdnL$`Z0sFB>|GM(8QORekwEaV2RLU+ zklNlp+0E_i3tD;@RY9FH>momogO7R&m7E#j{04V$J|9$1H_y;9s5mxFngq%i6@&D&N*Kd9{$1|lRGWdw z17zbmI825YE}`1dsavYB!f=BnF-KhQ-C?to5B+V{3+XV@o-C(oEoB3`M2Dg zXZ+;iR0$VIYtZq!F!l9{F<>D1%RGweCRpNH&3v84!^sD&4o9Fnr)ge+F_*(*Isz!& z+}6waZLjvU6-w<#OnCXgYJ!~rV#kk(i_(BiW*^BHEZXkzatUUxdc4zwo|R}fD3!s- zSO-rj*)Vqh+|ZA@jn-wiiOsCMjowv0Rro7#?VbQin+?jiC*3sV_EPRljZteW$qsR4A4ePyM^wqt~ z=x~}d6W;+`_<`#z6o44_4|+pzy>y38OlsN-x{)ZeUvAQi@zU$t93s`J1Mw!6FQ%|j zzS@RSc8HM9bM)zUQ(D+tTMK~g;{@ixO;VL8Bwo`e??=pS=Y6ICkk;;&L&1{XgrGaK zbN&H#H?C7;BEsqS!F6E#>@@6Jz94oXYN$J-o>b6*H`Ik|*sC?~goExMMm(cRk!*cm zvdQHU^ISSDt#<^65frI6KiVp1brz&$2HjgxMozRFr?%U6qb>s)3x5iN$Vd&>w zAF8TR5Lq3e)`r9IRq!$8J!TH_33FWe33*FFo*JqlWPTkds0GPVrwf7QSf$@JN9$UW zUG7AR;Zvx{6Mtz4mkXNAzd+S@g9FrbzLcYWx*3k(VQBc z_tbs$fFUS3W^V!n5lMu3;rG5hB^XvdKQ}Z>JVD@OEY?O6_;*483?RBuZ(770GrJ_LOaPq?jk%G`y$G`=RiS z5E)a4UY&_PDXszR;*oGQlJBG_$z{+k_J@h0)xe|b3XCo~F$!DgtDbH2i8_6$Exn$I z(z=X45NZO1lwUj8hl-ySQk4SlvDP3W+s_)n18#Jnz2l!j6sNM6PoE%FCHFQ2tn70q z7NTY}ApTj7v^j@A#b8#1h%4GmvYI(w`uVkVjb0^^Zwu``{|cU51pYB>$6`h+ZA75D zg;8Db?Y@hzxVVjvai+&phTZ=F&x^GF6hPsrT-*1&{I~ts+34)Fb0L{HFKE+g+!?}) z$mA~55SA?*k|!)p!2NR&J-GdWX$~NGYz_A+C4N`$sb}cWU}xYHr0759W;zuVxpT4H zyQrYF%p>NSwV=2)JRmRyH2?D2FmHjl8Or5=$ijNR%uvJ;jqcl-g1@GB4;#@ZyOZbK zUJGLZ#_IUzdHcC@+lX>D^ryQ>DH)IW&OZ1Wo=p(MWxHQLXs`dk;A^H?B>ebD1_F;l2I_uK+W$Gb|u#Yiy*F?Z#LT8xom}4@FY## z4gh&Vg}>(VWa{4u+?5jOJ#6xuH-|(U)TuS`ZEY;JP%483&|dqp4NoovkvsifU&{D! z?Z*92jLfMmwF_Njh7QdsHweGLf!oWj^qhdK473oRzNI^DediaP|I=_w~US2~out~(}C z?=>lgAd}AOpL>C9umk*_W88rqG=07~=y`(_GKpy0&8=<%_n{GD+Fs1j^j}x9^X59I zr}oItK!dc^VP2YtgS-xJje{DS&$jH!%B_G-u}o8o+3B69Jwd7(vbuU z{%od$>8yq$4-*n8vmQ+hljJIKZr ze{hV%;bm*vrN!)GKa~`sICHUh3Y4wLyq$sJYXCHy*!Be6a0-O9rnFZjM!+GxVBTs> zRB~Yd0?!BLHr$Naim5DpqzPvA^&TBZzo4yT@*`&WytZ7Ps)q&)w`?3h7xE;5$u$(F z)L&zXfu@exsjs+?(k(K_WwtPtL;JJAvjNN!&xQ7K0fqq!#~nFX8zSx%xg^^cqdV~Z zn#BLO7g@&MhfvVdS49{^9Q%xgP0o- zfZ29(wPp`5xc!3&cJuGUOLgAYi9oBuT|)-81FY^_;NMej&CMkz|n?CjCRaDVz%kvA&1b~p}l}YbgS;3l05U5#{{_s8$s1{?^NjOyb=d>-ub5wYq z4GGdNE(Zmlohg%w`3j`=}9Pe{RoaT~X1+}iY$7{j(@I%U>I`*=8*6h_zBFP1!Rj=+=4T}Pf zOS%=|zwGp^m$RoLK0vmpUI4@<1cj28PNtPIUT{{VrdhnIBD_LbUrcc+x$S~6`n_mj znz~X!5M`zoB4}fhwgZijMo_5BewS- zj$m2XXk4HjS{!aEGNtsT$H*=X$wM9wJ=rOji6T0bDHl@?HYSRChqc#!aejN%0;1u( zO(a_`()HX-Dsk6K7rO<5KmoY@rs;Pd)@|-+ENszil$mKpai=5PlYiFwNtq zQ>e5}wEJ0RF1g|3o*;5)UvgtIOG5#nu_b82ZVPXHhAVcqv>OcI7JByqY^42enakh7g$3W|@vJY->x4n;WA-27;YX(PExwQ5OIBkQ@LY0ZQXGE(XD& zP#Wzd;EeU?bSBpT6Z#zwKNu}adnVt2X1B97f}NMO5|b2Rip#Gr9p&suh?d&xbD854 zq;YIwNypc>M$wh+x|h%n=D_(lZma}|s=N8dMFtF+l2MqEz&WJm%JSj$8x{XO zaodcuE-)-6UEeX^kWo-Qx8*Ne<-#(^h5X(bk!2xK^5hS&nY`ou{1=Om(c|@JfI_ZA z6tngr={s5KWRmUAqBVNpSz@_~72RT|4GKBC#*8M}G8}szlGOTkLY6DrG%)8x%rtGq z4!1>R2}U};S!z1ZW|zGE=~J6d(CvdSd*|c2kIb`~Z9qEOdTeC1j{8v(T6Ea;smCQJ z$EZhlmY(SUG37H{8D5iQ=?@{DU?(EsFQ{z&%AH0g1eRNyuRIu&R!rcYF7Iy?$TOpa z5ckp1t}~frmXI)3Q1h>DR?j&ut?*Y+G$bK|A6xd16b;Xm&(w)71hZHSQiSZAF%7C= zQzmvMDy@gSj{>7_$Zu)Et>M>ZYtVAd3X|pQm^E}8%uq%0W$dN7w38Df&iQ=?+teaT zBLJKK%9Wtqn8C>aVW4%q8%vxzcm9Yz7Rn)#WmW|tsu<;xVLC^b;@VM@f;5YLEYH%Z|{s0*r=1}5fFRNWuXR%n1zH5#dvYHf!?z!DNG;%&#G8HkCRc>>m`125nvJYUu<|nTq!P_s$3T520850w2MV> zv4**u!Nxu=P3;5&u0}}n#UhuVY@n5PkqR8EOc!&1Z2hP3`~pbvF&?mpREY=uLYTBt znQe{NaRE}S2ibD9j)+PbO-!Vs;AVaSy4gRr()_N7_{hfZco7Wa9vH{@> zzw#8EuV>R%HFY3nr7?I*5DMnmdAnK4SUaa_rIJ&`OUd?_R_IcCQB~KiuBAO>g@hYe zD%A|_8fWSG8N4Rsd4T(=(iNvOXzz5#@%~ym05E((XgAXe^WWqP+k;aE?X-RrO)8FOQep z<*gOSC`yo_$)r{cM~zdj)9s8s8DG4b74wb|AYUXmDtK`}A|41A`Z}lb?2T?9DwG*j zj+bL<2BK4qxrzvCI;tcQEquo33_KBXiw`z}<9wfWC0AI#h{*-p zwrtc`Y#r7YDSFEw{gLGO6hH&Q5qffpwzkWBuW$H<10b5<{>;XUTs7)`yGs9deTY(u zs;bJXP067nuZj%JkqizZKWZ$;G)fdQ65k8Lyc^yQqS`_)ZWRTfbPVu8#7m4zbGD^M zzof}ldjpj~R~uLJKczNkw81BNgLsSiBo@arMQSBfVwT~4&NCu*LQl& z@KMJVX*BhihZ2zW*P? zE$EEMh1=`kwing`9z4#YBdjxXR*qpoFl*a>6_5SUov_gd&U4ypICw#=Si%q~*z^}B z&Ch~Q5^xu3?~PtB%*+hKxKJf=?``wPK)b1_Mz?)a=$U&|<$rVfh%(A2GI$f^&MzNY656?9cXTgQS zo;0cZt#@R6wQG}XqsF{V>12x^hkK@xrDFTgDD@`U!GYjFomxxS^7iTxF+{dyrTLSI zB8wPv5{@vnSW{EUX?%hOH3 zGTcjS7?%$p`=;V*9IRONKIz9RLXf zS>;l1(i)V6RYUgU9#~nQRxmd^ZKd0ZM=z%GpSQ`iauvAzkq(-VY<{^XQ6E;5`>`JTbSqLre9h?et?jyDH1I-lVHzb?9hBgesnJH6ao7YN<@QMEWfL(TY5+4Y<^$y& zP{GGR72f)+^!mxFO>qm&M3-1t4tLE_3TfC+RBZt<0PP_BU_?aQWUmtEKY-NDzBJb9 z8H$%MsYk$z;4=p(q3k5TEwTpJER5p{Jh>N;HCrkHTdwusa*V@6IiqhESL$bBc(F<9 ztGAz*`o+fL5Pj0Iw0hpJBgDdCy;#$Rm-rNB>sfSfe`|qVN_!4A2~VUkJ zjM(Gt%8J&d&JNfeL#Yu!xY=wlbIN>t>oB*o(J9^fAk(uq{#%QMgIpaYwv*9Jzf##! z6Vo5c98tjgkfc{(#x{nzi8!W^dEvm`hbn2R1b~G{d*HB40jj&}7J*LK=M^mZp2^vD@ne>sEu7YORr(6)ZSgSNU+dATB zDOkL~>dZ$(u8H+(^?Q6~oRQbu^&YiRlCC*PqcR$)DV{5OQ_^!ouC|Q3i8-s@IvRDfAal1 zDrKK@Jv&^sy|$mOf9$s0UF%wIw(k@tUzt)}L}`v)>E0lA;t57AY#SEWDSkEEaK-J9R@NXfM~CA75Iu$|;uHMY5|S7FU^>*FOo{ z2gNdM1Fur{E>2vI0R?!>@P<(1i>uUg3c)91f_|5?8D;l91)T3*%jj?F0JAq+;*I;y zNyw7=1KYc4LFlJLE+meXZ{74!`s9sTMD%~BC22{C4e3xS=jM=OA1mWXX2uLgJ{MOR ztFn+qa4>bwyBlJ09NWDOslZ*<%@v+GUQoAsc~{F#LulxzENZ$ntzf}6Gv45_{Yw>) zv)JpI@4M{l5f}58J8Z=Ln9d&$q%9vov{%z~m$|lEwiWcf$cHWQ?!x1VI@tNJZinlYYiUCJ3hRTg+Re8 zu%S7k`!QMW-r&)Zy_nM^bo3oO8VB@-hz~m>8K~$%eLtAFZqLFahH!rIsGiC@ z8{tP4w<>=u`q#kR9V+_PJt_xxds;BGtO-|6on$Ub-AZm!7a6dkQ_aLmv>-4eCdD1Y zqPl8yC_qddDP)j?F;NNGTJBNtNWXzr7<*ZN<;+6VR7kMFI(%`#lfc7$SY>4^^duz9 zdalcsS(V$0Gg=$@QDAje=E$+oxG1_Gab}PT!L~O+*A;*&BRcEX&2S{`kzs%E;>o~> zmG`zC4XDg$SG8&UQu>NRRDZ7VO$$$IwE3setqgD70~oWW4zx9{>Q$vrjz|_xE;vs9?(q_yVoWtZ8Y1S!G?&ilR=3<1>&L>y;N_utEmOoIzgyh2% z3f?1`y*TS6N;V>N7v-Rh@g19r)7XNKP8X3A-sb?umoD9P!J$x?aK$xHt}>uOkd|u* zqINq|{mcI7!q*$8yVhs>oeAcS)w0=zN(L=7i#p?*FH%W%z&of(AKzOC3~55_R5<9a z;ef}TXct7keJXfBuRjj_1i&nY5#OFJ@UpYFp`Z_53h{vKHi;vqtT37l^a2IHJortD zF)V1rfkt#DoDLXPSC}pdM;J!XdA{HQy?6>p9%lz5lk4kHK`QRnz8k~{p^9%nPLDNLZi*yO~SZaX;=>xa6&lZQ-~^RJuV7%T;p zbOSkY0FjfT!^M>gdgD(ccWP_NVYVTf!UAE>9u(H`s>4$+vOAtom62By)glCRSt(%c zds8Af2pjN;a^N*?ea-)F*lmo&lpp$>59@*-yU2aHE*s{z;GQu~*EBBvQd+i}_d5{7 zQlpRS{;OJS|Ca@G$@TA#zP|`Ykf-Jx2-ZoW{KPshfgb?k<++-?B%A0i0XSzY0+FE; zr!ZZdJ?N7U?}YH_8& zq`oVBt}Zn$eb$siU(DC%O&CJqHbq<;RkaGHO4Aaui7wSq0QKr`sT2#l5)E|kAx?g0 zxnLmhBE=nZ_bq4S5{ofyGJApp_&JnH0yzw0xZhHgF_);8%c^{aqwQfiiq^{i#CNdb zSPc3ZsZC>DR6U6zUh$f?dG8Rbi-0{nyi_+V_(caWtH_FFN_@6BC&7Xt=Ri4j#IsN2 zn1@EbcROGBrx)^l1l%pzSzg7|IV6ou=IC{#+|Cx8%7+cjB&YrjRHa${q!Nf!^}M<)v!|>e{o%$Osgs$UmRn&<2nA-+BtpbvyMO!MoLmy!*_0yPx9y zt$QYpMWI&0IpAnEv>aXi7krERCSNNCs(G&_6vf()V9 z0knZZer=K^rK(b~+jBDrL+OLb=WZUYUoZ726SRDt59{~UcpXHGrkihayfvOXYoPHT zK3P=)RiYKazTZ96EmcPFsJpADNGvn)3$3G8{M4E;B)&1)E&1oDmEeog_XC9?c$h%w zFQvRq!YTgRZ71twdL5Qj&45C_9e;@kHssaPID~hofiE_Y7KNx%O@7g}1iJ4W@?uhR zOdc>d(@vE>fr{#nFnl6v3Utyj76?^Seg_c0;p^t({q}K&4DX5^Bs*5N)ZEF3>gl z-9$%dGZbmH@ecye(9=Y#n_Q*-pg)JxJRYkQ*-IC}q3>#b0Y=t!#n#(z3H0@X{!Z zB~!7mUDu=P)|0diedrAQ`TXKoUZ3?m z{ip717{@uSYbY=Kc3$Gq%AMoy*}4Sj$L)|&=U}C^><>N$Z)(G=*sg``P*H5JAZ@(Q zY_Bs>QZG?+->iL2Mi)eWe|OXQ^$@F~2y_`_AsuRwC|MZQRj%q@7V}DI zb>CUv23271`bzWi(vlkozi01kb#pC)Tzj?U#R z=6wV>_o`Dt-A{E9p{tv;a5uVHS5aX)LaO-d35$~ZLCv8>B3U+xOq;=ux*QI1Hm~E6 zeyA42pM-^p_GLV$y3I7H13X7&%fA~jFA>d?PToKh!D)L_+h(~~B)#VcTZkC2bonyV z$Z(}av0ZzEn^e)z{V?OAG(F@@*dJkCJG9POH}1!VkztI-TZvk7xyuPSobew^bl$2V zzQAh*_+YRi(x(yrKC)L~zI0Q9)(lT8t8cVeBT;i5Tt3N}yD+jsSIZg$Ej*|%E=ss~ znENZq8#ioab%LB9ryijI10151_Y~z+>L!@y>IlYE8W-hMSkEQb@k?LoGp!GmY)|5j z9h?TQccY5uPE_F&p_IFc^i=4#FPSvf5sybhq@t>)X#oHZ0+p}SNgWFkj^H9!l$C}! zy0^3Y3Mi;Fi8ekufC#H`_AzDOfccR}avJJNiI7mE9gV4GTU4b}6G6ZG^qq&& zQWY0hEx6uH!O?;u)1-JfZn?}_U9oi_1r5YofxVx{*~ap0 zqu+@A%8hW4syO1yjF8T+HM+zihhq!BYW=XNJzBvv!^tcq&MljHs%75r=Y(Rs?cnTU zhwuAyCxs}OL^FjruEXeu&ITY*avHEH=>#96khE@oK)e}uyKq74OxW)z6C)tI1i>F_%8PN33n(Sz^wxrE ziISp~8?@6YT;wF{Z`*89HU|Hk7u=q~|HyE6={T^M^wBifJ8L zq0t(hT~Fbx{bJT$B1G^M8oFEZ_?`#=M=3@aWD(;HD4s zf1KD{`Nc#MYq0c{tMu@SjM{C3<+;LHt{eRS&pLh{)d$+V%))A3;Q`>oD1|?g!8_FI zpQLw1GD8ukrz(WFp0QIke7~TYD zXswsoAAs_Fem46!Bg`k#|3*_`;*hCt|A}@08Z&tZSH7?F;ReM)(nF(So8Eo7&Hd^y zuAqeJ25NoZy-$D^zsba7Vbh{<1Q%Xq6EUu+TmOJDxK}G~Ec(9c;CC4(NF0~ye=}9Z z^ZCnxC8Q#74>aQt_ZY$p-r=ZPF81CEWbQzTLP?Q0vKGS(l~v>!7B;wRwpLtb9mj-i ztgkdn1M1_)hpDHgd3tgubf6<_ZQ>Wu-AGELW6IY+q^VU6s*VJhz8OOli-XC(|h!t&ddg`_wbB5I3-cI0!m!8MxZ zL+1m9M%bAov?`|y>FHDes$vl-NWAeAjWs5J`nPczU1;R4;VT`bXFjPE(U=K^LEvE} z1x{d}V_6soT@^`O2QnN>wr4vuqAF@W^=BzwL>u4)sdE=6`@M6Gh$su>;d~o?sp|GM zelC}wuc<0`VbEE8A9}>cN<*4^o99XrA#TU)BD?d?S_RWs$b`vy{fnGqaxGbG}esEWIkN{KYc2ljTG$-SXp*w3{y%>dmEYfkrQrO)(84=vkHX&l&n|NhL!M<=o*jI6Ef z+Ro*rLI*$IDcfx+kTAQCUE@l%AF=nVjCdc|O@DsRQkq`CXik zEin=KLcxofVS*oH)992OTw$&+^zdE!!>){!PA?u1bfc)}DkKYG-pE}#i4V>r;%EC6 z#puOttxl%Dba#((T#}U!(uvN4g$ZT}9(vcO@{^R??xIRfFie*qC>t#(cfi`?LI_g6 zh|tP-s2^75;i(79!in2rogu@;TR2iD+FxsDE7<(%1mm9ENhG39FJqB;o*ud2)y-kx zHZZ&;2!sFjrgfWM_JIT@TP`>F0ZG7C0Z22qSGcQ&e^n7gTXPQW(>Fca!_Q5x`HC}_fx`@#eR%AZO;l(=6%7_{f9~A_! z`IP#_+Xq_%rN`Gvo?xerl~cg<6Oh-mCI!7OK3Th7-exxpE=;ued~SF?n2d}3a&Oo9 zNF!sLt8ZDXaO;6C&{+4_7et$OBK7}tatGC8FrTdG4>V72to6DS3ANGLa?V^Oytjl| zgR_qVrF^G9T@(|mkFCa|&3b5rJ!(>;NXIgO<0qL%t3T%qL;5K;t&v1bVR0-Auf-7- zAq=HI-p+%7GXlDaXl^q8@ON1m3hr9GOAlR;>H#Az={N{huwA~^2f$=U7uG-m&pd>Joot^4xhoCJI#Bm9n;k!HPV;T&NZvl3Ii8~XwrmkJg z%%y$l_6FmQ4pEG%4zR_KN@z2`Ke>4|F%=^hYxbsJf98yIhR*hZSb-3W)#@12&cTy2 z^YUAFVutc>gM9?azfmt#KiFkh_N#)tJ{8Rb9L&VmAH0!3=gqVi0 zNHC$cHHr$U>17s2Wr0%KIw>sQhsGdAHOjd?y-{n_n(w(IqUUnt2{ z>xvWBtP1djXxOA3d3hsWutaBqUKZ_0MJVX?<({}mKK$`O(>YuM3yGdYeWCMuD_$a%G?#ZBfy8FYs|L>3G{5%~C`$!iWy z>z*}foPkRr49;_MzTtrtwuFKEnnM2u&2*g(0imq!qpaV@7o01qV}R3a$aMb{Msu^o zm4(b=51GmU-lOF^49XMIzS;HZjNgg}hIm9o)Li3yvfYA%?j{{re4LJBoi)YW7tcMe zD7UL~g6>D~A^0XK5gl|INlUq<$iRB`iOF&XJVci)&UZ`%|R@ zI*)7u%`tGc z=DwzEGN;!;@|jjOm0+DT8UWYZO74;5iK=S9H48>{Zxi%(0DnE&WRkiVn$e4*r((_0 zvTkw7VTT`-y3JimzN3p#P!-Z*eb0i)(;!fRx+9(9HXoipc9QT5u1E)PIvs0%QhMWs z8d#T*sI=va72FR}8XsV;DoTRJV~CJN0Ox zwr}MxOt@7W7>A6!Atw;Yh88Lg1C?L~Nyge$-!$ zIn9D$#I`8o2z6!M*IxRl9cUZM0%R>GpU#H9I$)f97AagqW0OKETExNk6iCg=BAOy% zWfTlYJ2Ek3QnVQ4Hq{zV%|O6AlL0;54?`o6WCz}DK0UD`l`ijO1xru7d5{G$4UAYl zeS>FdY)M}`5{Y2;c{;F~@HUd0VA`Y=B-gBesYj*Xc<^(uv^qoIV43G1cn$ z$a9?<##=pF5An#t`A7$qYY5*IBuA2)RIcBQfqB0bq+)ufBt3R1veTdSExAO`ALot_ zMSzBx3fukNV<+;wXqI}6D2(>vk^?oH(ARq124#X&Jqk~q&dtHvLz}o`i$!5i6^%QW zoD$Hay?2>*c6Re8bYKyCqj+sitG|*RAqnep}!1b1s56&Yf`|xw2}Z<>5RQpj#uD zNaU>*<@Pe1b@I>d6^8in;-${3rt29EYzyS>o@7PDs%#G7Wwe9xv{@}7DfjXOXV;SM z(Qt!vPK~u5Z0d``%KHV5@=l8(ge(niY<|%9QY;ph;1BRj6WGIyjO3c-F-n4axL;=F z3S6fqy|P;IF5G1ocw6tkM6Ia55yY)|BP{Hp=tiqKXnz8{+I=a{026b{{&ND6 z+$(28#z)BF%*wz{uSK70Nop(vG+^^K2rBAgYzvU{p%g&%@jhdd`sb5vr*aCjBhyjj z>JPQZ?*E7H1if;>uTBR*NNgJ(+dBdRzUHCT5aF&`W)-gCBpfH5oP3G)4*CbSBAqH` zpaDnmB4^HI!x&8WA$4sOMg+L4sGm-HcR45I>WvJur#3!VF1A`Cj4%lP2ru5Qw1&7<`v-ih{S%ULheF}EQw`fgRcEE^%@)9tB}hI4|R4W zJ$%T?Y{y!~3i<`Aby6-cw8NgkE$nI*yr<+mL z-mB-EQFIVQx5&6y(*vp55Dp8m08O`2+9Az=VeB$d=RsVYhXrZ5I8jMZtez9kZ3lwzT>0MXEYGs^B;LX#5(1UEWuq z!nbn0{$c1PN4}9O|BxO4fnN5%3UTuU@5OdB>lL@64LlpQ+RQ6uz$~ReIEYrL z{LzT~4+m2@yz9a3?~#3!4>Zpay=}X`-5vwt8OBAbmx89!E0%A9RAa~O68dL9Ke~;*I#h3%sWQIUujotENY8*u4Ai0)-N+9Fb{Mmh3_TRV{u2;3<-JpALnX zmt~I!KV$Dv_e@FDhx-ujQPra2W?-fXesb9HsE3Ud0W7PF&;b53PeSqJsBLjhn$PeT zZAKZ(^*azCQ2)T}V$j%^&)mcc*nzLvz<{f*dL92o1R8v%_SIm5(`9e6&yfiGVs6%v zeO#pv9`DU^+cUby=SQ-1eEJEzd;vUA3iXf`lRQGIYhhqd#mXF5^c(AZg_vfsr>utI zHRh}$mt`W|jVA|ywjE47ke~t-@<@qAZZ@L5YPl4gv@wt|K;Q{WoHG7HpVFgz8JDr* z2TNVub8#V}o{h`IM9~zh1rel9u;}sFfc`?I-IC_q1J9^0nCbk_A{u3>UW>$ttv`S2 z^!Hq;TWUUc+hWI81A??ay%?=n6mPCMAeo^`v?ay!9h!ksJ?&QmcrDb_ddE$E&sfAy z-}#t%n$%t(aUHd&Wkjk}l4Pb1?w~cYlAP$~s!O4hIcpBRJEt+wJ!$M;MQ2oc2LCKZofBQ( zzhiFzP!yqd6C&)IDl=aG8puJR{<@i(pbbA(S4kz>pt@Wwg&JpF^L=GWt6z*iFD8^Lw$uqUuzC z68{*MUh^$qHmKeB4ow0nErm*qB3Z%WTshPJS|R8}pSI&zbh4QE!4|wFKl9*+4;Prg zIm2hR+$63(2dkt47r#XNj3bmT7z*KDWmCw;f6Z|5O<9S_hR;Lgw@`7f7g9$DMk$ zGE@&lz=IzsAlLD;aK=&KHPH@{1tRAw1=|iw(cU@gXvHTzdudB?_8ReQIxcUy6FjDl z4|kRSj7}SvCj_X=8@a`nUaWm&k^J4|&?J<=(3z!);Kb!tK=zJVX zUU@FP@w17_&7po6(}g`~K{Y&1o4*SeSUyh=~EAbGzW{jw_qJ@H$S=w%|- z`x(1RCY`jRNH2M>VlV8v8HQi5sUkBnMcf6D^4`x&tS@@R2*RvYJ*@ttS6~McERbDt zBNyxs>oX_DF`T<&JiFV>6G=E&Fb6ACJ`tBK3^6L_NS#<~F}PGG)xlt^AAv%nHIy~U z0%3N;CgCnAB|eoEPkLFcECa*m!yC37D*l0bElbO$i{Rq)3#e!U`HZs3{I`~ZC{d@; z;-awIZT5Ro%DU7%F@TRjn?Q?dJcsBSODkU~lPbqv>9}8cS}u@K_73`LhcAf8S{4K1 z!6n&;%8)jB&XcE&61@4HzB$&K#yot}w(K97Woe`TwYa|l;A9N}G?TvyVOxCWyV=A}LR1`*ve)CU&NRh0Z7D7SXkM@upEWBAj-qp& zKfKv3*!}&sFE>l6XQ^50NYc(5eN$HQ&r?+9+`BB`I7#s^J8v zDuQEoK>H@c&WfFE#J0e= zY$-ih^{fbT2hYaJQYF?spbdlXVN$e409`Qdr}l+D3d@#Uh9rr4--|?%S#g6SX`S9hKCquG9CRCD(dMwkLSg=c}{?R*1w(J8c>fPL`9Rww&w z3q^n{@RPdvpT%L7tsqxaX+Fo|F*CmKd<+9foXVSgazb9(+$lx_6nq!;S>< zy6~2oKp|ZEeMB|Jo<_XclUjMTv>WriIzwE`fk!`+bJn@UheYg zxda0O>4-QT@{tv$-+FnDKhHPk>tP%c`H8&)x&{VmS%tsCw6Kl_@SSuR{r_7|(*!YE0kO-KFYz8q3SHczB^5(ic2`vGSEtCz%4 z+F$6D<30;~S!ecz0~t%>exkws{D;$Zy@jz~@W?R&V* zS;E)59&)LWW4u+U4GVBgG2Yt*O)Ey|GHkpbzs;WfVzH|}gEO}}-LQ+aIhncN!F$wt4>zU+dtvjX^hV5X_@=9=0{q~ z1*e4&F95j?8*v{jiI!Bk3V6u!1-aXj2cijM;;bg&ga)(8itI-u3beM^YDgse@EtlI%c0WL|T z3O1V0b*u=9e9(e*!?Ku4ZzCeR`&_#KXa?z73=4F3np%&V z#!5)ZzSaczGb?7q<}#I%aOz%?t+r&9|~Y1<=Q~vA&-QB$QtOIp%HcO=lnX@oQ6_lP~Avnxqhz5x(AvSLgcJ*KplHRwJ+7=7x0PDLEB zuNPs?KV&#IOdRIrWlmqsU!#psWkBo7TuF@IWr<>`;Sx}&Ef2&T&%u-%NA7j|2nxuX z@y?Mo-huU4NpOfy?>e&hXDDBqpX!8@bd8Hp3Ebl_=(kmNF?7$;_WD%=Y2WK?U~<;p z!_c#myGWAwd|ZT7w`Cvj)z!&*&Gu;>K$ckw!@_tNlI>82CXv->CXM-Di{oV(*m@c$ z6$cT{#shr($Qw2UWsBnGzRL)h+YIOrum%;=KK^Fl))yF13r)s2oi6XnO@vnci>pP2 z-D($i+vR4P#ByfKaT|9XLTEV$R@myV=*T z;lUiHeo0jw6EoG`ey^U>X)hb`YTh*T!gKm{qok80rA)%bGq`+s24Bx{ZayCgPJw1- zbcY>)B`1JL(BVa;KwNkF+QeNC}zl7jb zx*Uz920yxb2_mV#3+X>&6IF%V!#jNNfaNcD zO^9`G+uTo`yFj=*T-OmW2-{9BY}}10oXw(%hv9fpWeo2Q*qbX1BOT>iQ3n!AECht&>A#?S zQ9^oxX(MOC@E<)a zb3S@*(Qc;i(DFvNTec=E*<*Z$MBTcA&HuQ8!1$g@8>fYbY;&h}7HrTmiJcY(EWYwN z3AIUxW6_RL$ySw`rE8Teu&qD6N#L&{p%m+yw%rp`(DF*A%bT!y;Z7PyEPd_P1-LFC+NsK97;S z&`C(*a9Fufk?5-lL_Kg0t8nOp2Y?Xi*dk(gtfI1eEStpp&nqZxH&c4s>ISD5h;V7H zHO&PM^>5yPymWQ@wPVBx{^wKa$#EFUgZ0$E*tA?6=tY8fjovsxN8mi^^`$ZygYZjV z*VM_3{&&O*cV41$E`~_wwNm~y9Z-T)r0IvTno2_FlZqFhjOcApa$4^#>jARdfaaYb zXu9U4THG<8JSh(rY(l5kWau+vwT>{lyFLPB5xxSW)i2|^!eo2@S|;HE27nYx{bqou z*ixKY2S(>0x?09G5`OqAquR(XR>Y;3bVc~T;`54*{X|)P$w@UyBN^noHb7Pf=oq)gjV3UO=<7F`GCgV{JDpR%I)FYxC1mC zm{Fk%;c)TXbV3?!?`^n4C--I;+v{)^Thdr>3mbb zIA(({bpCLp-Ws35e_K?zRN$Bf9l9DgHTgD4j**>DP_=?NQL^@417*3KO>e@WQw0fC zsJ>PWv1}3ALZY`<*+^(|D`(x)q!w$b0)>2Iemy%z4Rb34$0u(>Mp%7oHdP%&eI$vV z(C0|MZ*xsR3sHT&gy+x$pnsN?{TEMR_a)ny%Qd0k;7MwygD!iOWi0sM+s%#IKwX`a zm8GcF7TRknETK|wikV>}h|FDaHU`V8_qg5(rpfFr!y^J?mfAe!Sf1{=R59|D} zimX(nWhtz7Mkj3b`xhYB_pI4#FD_kQ+Nc}87)!*EN#t2R5U-W()yH9ytc|Cu=CraLYVMVx*^ z)fKTq;%EMYSW3cE87#uRLs9wlQ)_(AsiK)}7aNsjBxD;1T)8%lDY53BnjN@XP*bpQ zy7FP3Z$DGi`ijXGe$Z-4>*u?a7N3s1usqq$>)#7G^Re>RcE)lNwxx_4dY`E$;ljzk zzD~cF*Kva006c^dJv zHk2-syeWF3+1B`efd6cC_A~gX^T*1Nss3ee-KoM)|Y8s+r09`AU32Cj<9hXtmb%6B{)&a+qWwNy<#RVqEJAm+cj;e^DhzI%ja0 zs+cng?{YWncl5Crj0qkq^=1(VQpw)Tu+hJSi#+Y*sZ|v7{-HU&CX_2bxo(bQUr!q} z`76^ND!QrFLQNqPJl4g>Z83>TmeNreQOX9Eb6~w#}X{gQlWGqCr*Gf%<(o3(p2 zL72Mrj^bwv9l-b!gFH)+BbCLT??; zAAo7+jHO?wXuvDVUR_jN!|l;v_M>knG3sY={J6eO7@)4OjU5{DAP*8=!&YAjZP{O{ zGqQ+X9^7F5a z!upi-o|QVZ`iEZ-#neF-i3w%Be{GHr=o+xS=DuGdXPsc!#D7^kLpwND=##c>=0q=s z>Elw8wfF2YTxM5Mc-v4fHm=w2FL1-K?+;x^R5xA2*G6l#kJO}?H#Rf2aG>Ux+mF)o ziLOl1V`IpP3zvP;t7jo~fr%lY)kJjE_nYo2$I7oe2(v_*l)m0UmpG+QYE+1mj$_<= z1fZNj=0D0;>Z(ZgM{pOb`$3S3DYgZ@>j@sP)D#yI;2k5_dCG>4G(+4F9;=e?~ zsA6a6+>gVW!I5KdINjBymRj~C(;?J{)nV#$aigMhcIah`cT)&}gd;w*x&UJJvg>dYeTJt9!G&RjrZ2b1<-2h0gDG* z0hjKt$J4H&J5H(b%|_Cp(}Mx!LVEPyLA7X7OVzyTBTg{SBtIlJZW0#wheKg)3p)d9 zq$YfKEsI6S8?T(_eNwss#3i=7VM5eK6As5qdnil9mP;>IR8q&2gk>N~qPYG^`6EB2 zEcMa;>laf<`@FszX`5Z3cw%e+7goKV$>YT|8zgEKgcmL(Wc=S}U1={!20{_QC+-f; zXSrPq$RSZT+hw549-}-~dM?Pq z$P7lmc$}kJl^7Y7Ls}H$x4@Vow$6|hrF+JXp%+xn4bQup@FbbBp>o&+=sxx&nWHKYu& zV3W9>V{;p)`x=kK9tcn+i%Z^|KS5Lg~pBD!zB@jz}{xxkKRwaj|CgAM`T%PGxeDo<^fT!a)QNNVG1Rn8C0vakQtL zqLUB0%RG!i8P*hBAZ~^hWV2U!+mKF+tVJDZG6YZqPWG%>rw11$mzI$|*ybQ*E&h{+NCKV(CGiqo9P?KQD=e7|V*4O1?4*gb;A2;+82T=+N7isrIa znM{SRGOIn`M5UATT%z^Ej!Ww=Vj5&8k4;Iu-0-URw0m2$yKwnY<$dL%ET81_(9iF7 zTptOC-7n?i(3$S`xVvyKuFFvdxl!w=s*?r0#P6B(9o>nB&5osK^CGC3 z?i$5(g08uR)RmmGFnvYT6l{U-!MqEp{<`g=S)_U~UwkJ*^iFjUApw^3Alz>4d!fx! zn1LkZ-wfw09`~3sc@ujuzT0>(A3Qdh?sg8s(QP2AJVIAX?jsI_`;I$#!%CoxAMNWn zM3bT=yG~eUR6cKsX}}Jz6~sNHTAHxkKEd|5p43ku1bT25PuKjt)zDZ4{8onImp0zI z&H-_AAP_64M+T7QhhI+xK#$Z8j*tU5g?ZF7_Nh{`C`y_<(T-#fMjv+eE|0;&ha56(=LqEhF=;e5L>Cya@>kL1FUaB2pfihC0*h$iBof*WIo zNun(k7&SK6PK3uNZrE=}FDTsauLR24PM}TW8DYF`C5wyKhX?5sq*hSAbXpw-?t=Ai zq29!S7XUv%z`x|8$iJB$$gtooepCx-O;2Lvn#{djRD(K>9-Bb6+jAv3HOZ#LU@1tL zhv8bSSrG7+omEXI9u+tNY}>fgz!*=jA(?N3s-sCMU<8bNvg+GAzd&%Ro+~7guoM>M zdBizguS*Uq-i|XxIi>KolCfJ~c@i;~pImX_ZcdmtL?r0VYqsoINXu33`>(4tXA^vm z!@gaW6=qaZ(TX@Mc)(FFmEguY#iX04-ys_+c;+W%e_iZR!ijx{Ksk^WR*wv`8fozS z9G+ky3$p3I00S!Y`V_IPFH^tK^&3*Tz>hNCHvBt0`BA-KUru@s1&P_h+tN-wkS}P1 zEjxV3S-K82lYX2{$eoVYCbAB&A)8;WdnT`x(>vp?6)wId%!aA}#g1xy_6tu~24nd| zszz9N!rEtEVT|pj;G9z4z{h4 zsZ_RNaNQu~Z<@v^)PX`3zrx}`m$3c>m+7emB6?zF#rwk0bB*lijSRw%?LHz&J2t3; zCF35Zu)@i?YzrD($lH+8!}m$7!So)NyWgncE*`+6d?j3AX~QQJIAwcR$xQ@1P(G|d#|fE=2u!pCJyO|!3r>c!&c z5JnxfN<5bvZ9j>`rCXHg*Uh8u7eoewNl{=c-)pTrvRM?vCih%H!?GhvHP$jUmV!FX z=WoE4R`%%?I{lhgFa}ZWU{e^Ttj#?yJ%zzNa6u=a@iQ7q*owV;uw288X>4D)=3!+S z(JLX>PkUj0%}MbXEE%gGkWVR37BF!B%U|rKYb4^g{Nmya8X6+AhSU3bPTH+a1`XYBs z_`DOR_n!C;%8DXY)IR+$PSyhi$>!blki+qc;dpkYQWSGov!$@>NrP4-5ey-Q*_d*HJ{rDqfK{F{3x zc{Ym3j-LZhHg1G&BW%H-45i+DQZs*TxF!j82Z6*4=a>ZvHY#i+=_K${UUjC*ue6<{ z2m0WU7lUSf&chYfu*;@U^G;jzf@wqG1cfwt?Bm$(1xd-C7YQ}X{Vcf@+2;AsW>O?o zX)&$PP^ybye+KUP9WJD45S z&T0Wwmz0^U+Lt| z7Hqy29o!eb46Q{~pl2zzes6J?FAm+2JHsvWe~UBTcIhwmuJ+t+KN&+D_Z;=(cfjbx zMC27ls|j@b0FN)SiQ<6fczy-Z<%p;(0_6kZ9s4^^Q z0WVM_P-wAnCp8`!D|u$}_6?W)hmD-O&e$&-s8fPHLw^j+!L4q3)dO4IAcQ2Ku#6Oh^m$V zuq=Be`BAO>0m;=6?$Ca0A-!5;;eGg5)x&dbQ90q<(K=~*RJ}erdv>&fsq`RB!n3$3 z9o(iZYk)#T;c@s000Yx@lJu%Gv;Lt=zzfHoJ6N?KUul(izOWs&63~ee7=-*o7WM^l z@(E-pF^JW4LDN8cd{zj}p!;N0`^%yYS?bAi4Q&$^cW-75qw+XNmY^)D3{DRuMWugB zxW2)t0WZ$4Ztnm_cXtmXX&8dpm|w;#pt}a8?`_7}|uyK8>BUq_Qs4c6T`(m0`t*H2c9%N8!Sz@lCiQ{LarWx(gZ{h*H3)rf zQ;0DO#m$t>KHVfiEDJ#lQUwCcnafvgLT6lr;X0oe7U}=2u zH?O7MI3-FfqRZ3(CZwK~xf~&hmOo$L3r?EYfTU$aaL2oD_MVct%&wU61?^XunMV~-1t$v@TcEEqwv7pm#tRzrNtuY-4zc7Od$n= zD_;$$c6y{@E9hb{O(nbTRmnc!U!V~-n^K)_^sj#QJ)VyN6RTC2b}^Z8<733FN7~Fd z6eaymiTm60A~E3@ODE3ud7Hl9s#wb9ouq|Pb4U?bcarArnJxd^m_E<#(OeVhVjt+^pi{6kBhqtw99vJ%UKML=dn$|FZ zFQA@Xx$0()&*`!u0CFVjD-Tj(L--vER2*VmZTfK`cLNgt_Vo`@dpvIQzOt*E26}-7 z&4HH@FDrg4p|5`8!l-v%IDw-)(EWI=g{u|2R6DEGiX6|XRlZ1pyoyp-45nAJlW0o* zwXgWg%x0R;dC|SG32bF|eNXWK->E5;tUyaMI1m(qNZjeiMHfOdGGk0>1HyI1%rDY5 z3^$3TLh?t??AlJQ7K|Rmc+XF;tB$SDn8lvD1?D}jDKJg0(=!Q&6KjXFIR&!p98sdzv*lt zyIcwI65t@(@MF*$%&ws22`TV89Ku)JoX$wkp4G?rHsgv!xH2d7g-<^tH*N(|sCe%o zUAOW8sWII&%{aP>;s02Mrn7QISJ}S|8Dw;UZtZs=Q*J=3UQ^y%m+%^bOvPZwBD!Ya zFAA{EvEzspdo%EN`L|U%my`~pa>zTN?hSW?*-B#D@1+xDGpou+LJfKX&>cC|t`hTI z4Ouy?WfL{Y0w_}|;-Yv(f-c>M=DsearpA~t$H7+mTlUQm^4@YM6X-~#wS#~`8KF)k zwd?;+>fAqazfk)b>Z(-?w1p}P+`eC*@*>4TX0O*M^wGfK^2vQUm4E|6zx)it5 zz(bzQniw<=Abmo>;uhvl;@$ zr6pD(teows;MxuvoDlI@5>i;03iw4tAGcZuOQbg&79mQuo@pWOXZ}{-{Ufz5_qiY; zI$WP~ZqiUQNEh>|=!C>&e*~fWKB0A0^D5(pK zIIwSlcz9`wb1{v#0L=pe>xL~Gk!dSYL~c&=Rt--&Wg@}_xG2g;KpvJ$Lvu>7_ya5% zDsiiaXO>Jt?oWn7Y#Gd4&JJ7JlfJ=O!7;%ipM9uRR^;51)wU}_K#5GLT9xeWk}vX_ z7c!j)Whnaa4+37=9GfFLhDk<`Mez}m8*!y=HJje-lhl2bfvtdo2KnT3moWapdWL~K zk$A2Cmfh*Kx9)}%wO%rgu#=%-baaJ5HQZXN4TSaDpElb>3?0D*l69@wO0hbkua5&g znm*6b&c%$MNtcaOGaTw*I8 zVxt-lgk?J zTBSD@st+c)lV1T8r5Wp(HJqN(>(^0^7cv=b#XnNW@z0tF-Nv5{wk4Y{tmq(2T-nsC zFexH?P_h+Huy-Eo+MF#Jh--Q}d6zL5OpZMBQ zZzy1+?B7q)It6*@#Wx*5`dAq-4yWFH<{u^RmI}~xzLe`L8o=0fOZ^NuL@Ev}^1X$! z#~X+AB8EIDl>eVVghq^yGH$nU53Vtn;l*IQoO0}U(QWvmm-O>6HGv`L{vcVwk}-ef z9>w7?3=a+v-Si@J%{KFd=8w4y2OUsY6iO1Bz7N(vYrK-kVOONfCvW~(NI3O7cAmBO zaRN(Tj#^u(21Y%Sf}{nTUD_T-#Qx^cF?ZS^{}}6cQF|w1ZSW|VE&xc4ZBP!w*68eG z`Jc^L3f^1}syj}%&6hj*I1*zE3|3G*d3nz@8^hsvAzn2UFVU4Zh(a&JxgkBj0yGaE zYsqt-^G`y_zxQmG*3kA@q%F!$6}UT{*6}>F?J!gpn?k~M)6f-)N5<1@H{^YP1~Xn_ zSs=?@FpM{vSp+?upFrWV!B>DMy6l9pfW4yUtdh)N$HYwA5mU?lj%`L`&hQxSNpc7q z>!1zu-uqVj<41jQSk#b{Hshm>Z59SVKz8W^1gVLFHp8_y*70(KdC^Nc#nRQDXBMW1 zJJ0>tyu@BkX==6;c5SZZC;a1f{9trqNj%2kA5(xO+aH*T9#l|kD@^^NkrLd>Pv52& zI%&WI@)rS4V8pV}xS0xL8DAtsEFs3KAl$B~QV&vAPVKSH8VYc>4_38-mYMx?{UhkQ z;k0ZYU6I>#k51Nl#ol*$PU2q5WnF8!DrUQu?N_L zGjYD(EJ3NED-?k~23|wlYYMOI6-=19+M|+SBrI7f!jm9cEkw%gI&jr7z0m8nhcadT zDvvO_$Quo;i@2Mz1B-UxeAZxQ~nl83T!(%PAyui&FK1ZXN8(@z=i}7&eM&r%LqSuOKsye;H zZlA6oRcwC8G);wA>bczS`F+A|W`@>jBVRy;suu*m{?RG^3P+Qkfkv2~f1=`PmTEo( zWgg?A2+$-7Xt$it&Zpbq$8<7KBLV{^Y)ed&jP7C1iIW-QmqR?xSBFRdCJ5mB+O!7W zqQk0cTmRhv2d_n-pB;=ObXf|E#veI-2tXD+rGL;tKBOkaTjO+!r&KYFFWTTFiFSLM zKVc&)N|w6B79F}ZjZ|7!&{X@;{u?d@0%W{4A({Uv-&TPXxt#O8NL5bHKZo@2SIz@J z+9iirGL_1eTrb#ubntu#M>HOW>Q!dn*Do9v2^{>$-EU%hp&txW+_mJ)@J~{E3T&r}jTO#J_ z`q27p-D53`WL3k=9wuX6Lx7*j);B{grUGN2SV_uBYLSuC)k!g#SV>hp-jSaR0*yCt zQPNGLIk-ny^0zoag(WELeSSmt6kF<@&ygJ`9pmH*vUjun)HTZ|6J7;H9^Q0yK5!@- zsb-S<|?h`g5GCe*dVqSKyhPuWPEC-^SAqf}$^XBZ1xMs?LuQ6iQ9u$k}J z07dzTo#FEc!9Ej*kZPj9y%Hy%X~kWsBtp?mKaiGyd*mr3nWa5iy4(3LaTmAAkz;jB z08*ZuA)U+}p=suQz}C@(Yi>JN&t1r@HT2sRRFBA5R&-$pSj88bel{j=#gNLSchDks zPT-ThRi!0uln^J$&Mn?(GTh}wK! zdyO5Z6f+vZP1Rn&iRf*v(h(ZjEA32jd8xAYUTQFjY0qv+qR5PU)e#o=g8Sf60lK)t zie}X&2Nn&m5!V!0qAOzZ;y-^^_1$VUl$>iE9)l~rCOEeW20G4(4 z1$w19I!EM3)UTseZQ+Q-*`z|QcKG%6MB#(+j{xS~q$ZGT*^C^mmFY>FSUym5E^>e- zyuyUxyu1Z0ENIlbnqMVW)P(TD&nv`d2OMOu>FS^@noNc*V?`Sv)-B^`GN_WGNqAzP z$v%;Sh&L?y{n+jPjBoBf^Omors6X80H)p^dI3P zi`Tdag*yue6u{)BngUssuGmoRvQ1hnDNfftH;;r>Gn@-Jt3|A~jREYaQ_N`sX+$4n zn1>pTVoQu(M-xjZJ#-xQ8Qya^lS;o+H9x%N1}SEQmPIi&)i~Y_DEBnRs78;D86-W2 z8~Lh!5u0BT?$zwtjjm9>{{YUesStNgJvt^&r)%;d_wx^F`p)o2Pl`%rXjG)SOpe^a z1NI}ErkgdzdV3fF*0kE$$m_v3L&~O02eeXDSf-ydw=a-^PfHrA-X*1aUAxkHSF`5A zdMM0002216j8fOQ02D0ow*88Y-J(X*E;vVsle35>{4;JCh$p$bqw(zF$v3;e}nYZGGk&oQcsyg zyJ1x`h{JoLUW7fc)LsCJ@S(!tKAqDIYiH-v{b6MnU~v2YH4b8^`DF4>Le4h#fhO9Y zLBqsI7Py;sG57$`ATecyw4T;tyvj`Ub$!vX{7JWhf1or}Rr|Y#_c|>2gW_V))NZh# z6Oy5yh$2_C$Mf7?2rCwP4>0T64cRsU=(X+qeb1dtB-M0ivRq`MI*v4X?kAzU9bZ>d z%!)`J7UqD3egl=zP$nsZlI2$xf|C@Pedenl=ZSGI4QDdvk*-zBy#A`=UdzwDU_q=(U31+U7Y-y_aJMWN}Z+>>ht;<$Vvs z!+!H~Dl^-l>sj5sSyIMVGELi@aFHUAlQ_L4J9(P$RyX8J>4riy&co zhBu$Xa+wGRLmlc*pF)aMQKaY+W>wQ1*9x+b{ts>dJlT{D7}*^^vn@QEYl zduM2RHmq42mDwTxg?XpW907&HB|<`~{&%9-udjq?;&8b)9yAAsp4=Z;Zf)6TP=H-7>JI z3JU_;CODNm$7BY8eiH><`3z>n0%OLC^3JjmP5_xUHJ48)TTg=O1Y6UdDL%A`FrZEM zh%Cn}U-2C4iSYYP_L5Z);kVEiScJ!8|EoQ^bFO^Ovp z_v0TOT>5B_LsT89YY7unvx7c+tP#;V)4$+D2NB|^9{9T zOTBHK+KEL3E1cQm(oeiW!kE&h$x9*qe1KNEm$u{E>SRR%cpUG=NrAM_&FI|(CQVwW z@N1N>I2CMvO%*51A6woqlFXHYPljgc8HLz)yoO@xsR5a=O?hcp{+%Qt&8EA(3pd1T zUi=|3fsb)vi^n3p?cbbnJ=EFkJ~2xo8@m}F14KbsF{1~ob4iybWi|%%-l}JoT~n?Z zFxA(_>!RbQ+xl`AohEgq6C>`P)>u9J{pONv2dF1!`PUn zLrlGQ0ZfGDyK|}PvnmEnCz~m++G>S-4!S0|vRrnQk((2T)1SSY=OKG>3>+kyc8|1^ zT5^jvXyb$7mRlcHPo3|e5Sc2ZIdR5zUI|X3$l-DFxEUule=i{y68Zo?>vf;DZ9X(^ zjuB2jnYJZaRlS&n`Yy8+)eW?v<0N{3RWN?TS6FvYmCSvx!J8}+5n~1E+@%85g|2RL zLF+WC$v@@yI7tqljA2Kfaf94xebiXYWE%7%8cf$_pMte$;3!@8W&|NAb<^1RPNv2$ z74a&1YR(y4NYqu=;z;)O(hF@NwVn8}YAx`_?F?o78uUhS--;ZTbG)&+vAurFe-zSV z0|>$Q4zJ3^30&Fp8VmV@Nc8s9zpr|2n~jQx;AETSYBjy+oc!+eTGB4SrkFj1*coGF z^>Z;6Pi)F$?JXCa*LC~&Cl2ARBmt5`-;-#Ka0Y) zBLviqL>BZa1I!+A*>>y@jDAY4ZVR~um`{b21?@{R6$|~NT#MOA825?qvpMkmypf5YdUzib^xfNFPWvF=+Hti>{fhJ z9LL#d$7^erYKu6>pTEy9hN~O2#f*V=TNZ zD6xDR-6*&^mqxxOc8#F2)(Gc7jjwC-v#w2{A6Igi{Vnn@bFqbu5QhM#0jr04Ac$G0 z{;H}~2k>e5GRVvtosG(c5sygH-iO(J$MUTtVZ>nYIWS-JmEdu83)kfj=U`$`hSh=v z(NOoNUe`Hf!@6~`(DRHb6VM?|R;Tm)KFvQqq)M`yjtICkz$V@5Mm@dBP4A^|YD|h) zo%y0{q#Z9+)2rRl&H5V7_``B|1=N!6P7K+UJ7UTow2RW=d_m{Zk|!kf=MI-~yh8sT zq-R`h-1HwdN6=k8c{WV%bqFe$sh@^~|?g_`9DMelQuUdrSekjo& zza86jh#!5{hzyyFSVrm-gEoYkWV&FkL)Bo;%l*|YCylS(^KEW!Aj^y|C zsj*Jq_LM|o3Llv3gum_ZIAl{Y+`36|bx#06rM^(^lpNm>ea5;myeGGzb3G*}ZfG#_ z9MH2nT52#kzzd`sI(U}-K?+XP%~JxJ)99f%hB(J2zJO$c^MxWEUN-JFTnp@vjg1(B zO%ESP8t*ik(ubtsLysDz-2yp$6sV=Nb7}qt_tG_fMOVVl@4{LeVE~8JNI#RZz7k1@ zuVurO-!2yBOY{%j_NHKH8{1kEC4R8o$fJ!%$+ZxqcXT$FHD?X!X$o-&s_H{E`)Z zn#~XU!0IasJ4YM1{id);{OAvFOd{in;dfU>$fcnvC~rmJz7WjSD|XseT-l1K9ogv= zA}$qlJhFUp4qKPsW(=utc3u5b{9huixV5#e(%$-W|81+!Ni}T`Yvtheg!K<7ju$&afQ_H*LJgn zc5RJ;+SN#`0>3?+6NwvIIHmf|ryyvB%S})wof_svA(+6gC0(pCY+UogvnNhxqC2X^ zdTgJdqiHVBh70o@TxyVq?*~o%W^b`!A_3Ie!gZ-0HoOn!NSEfv0GTZ|HK3vos`h;0 zJSrcDIOCx@MAd-bv`1TuB-&~kay;D#yPqGNBCsRm5U%s3T&imX z0&H|X{DFN72AV7Ikj$Q^jA(l=7FgTg!Bq8`DtGksOWbFCPO|NLf=a4G$K=Z^_|N+F za+D&QN-WQUyYDRVe>PdT25vZYug#-)StK%;u?LuK)4eU}5rwzsm2^WVr`>mDZWc7p zs;WN0qolS#Vl17)NzI&Np(~_4f8oM2A#HqI>-muecB$qnz0QUE4X|asHEw`{Dml3Z zd7qv;D-BJGDW47V<^d6lf_;*{iz%GYUc?-!XLkPpflT{g zM##&6V_>}Gtq^R>zUu3l?D^@UH4nuYZ*y=VA z%0Xw75`U91P;S5Qnkgb~3BxiX-9;f`v7^>AhF;fKkV$O4!tps#cA2I1s~>A^43Ilx zd_(6JXesCsOcr+1z^6D4gejc)l@K343AtCZxe^%{$T|1~)d~LHOWnOY`(z(9MFiVh z?LzO!A?UP~-Cz|?Qn_$YuQ}dm$kDCom1%j&Oqwz%xR94*u3}raqU#!lk($hHSP1geh43&2dclZrhpJOg84K zs^V$c$BSebl<-S$JaOyk!n0b!Qf>@b)pcqT0AS@LiYrErg@XPFLR89-8p1wGucJ}a z6n4U6p21@|=LO)Ej0iFSjY^dHB~W}wDwLXij1=dFbSklv^mUudk|Ja7-SEzMuiC%GoMi zPaXe1BYMM1nlx?}Y8*;N5**K9GB_z_Yo6J0RBc~oLp|!7$c+C4O_w%TkdluSp7JN( zQ^>#uu4H=7#pzgs(QGB9lF;6Q&YYdcx07ypS#HcHp1U!UaOB~jDW0l>FblUt=7l$P z8W_JGKMGvP=+=&Z!-ss5B(1!Sx8t6>V*C9@y3WgY5^Ul%I*` ziOxyjHuWd942jG+g^(DbDm>V$35hV%JGUAu6w~a4tM#*4zlCbXq`vZK3Nkz&RHSV< z#f`0o5yZE!PV?&0NvuZJ$+f1bdJ}^Se8)mKS|Vut0MH}{>ESQP&tngjA4J9*u+buq zM2_qk_c(pJv4419`ZJr~SOFQK{oItw8VX4!lgDEMYf?d+-DJyHl9!^9C3m|yN_0I0L~k7?Er9CIP>R<5UfsXoIx=E+jx=!a7m*({&|s z+olZ2HvseEONN+&&iu(OHc0{h5}|}~=}H`eb>)?8_*|5zv7{d_N&*WsrzJ&S*agYL z(dx=qt}_Ra_t)u^-F)y|rpY8RS+%5`HHmZgMSeE735WIEdVb4iFd!coD7VM|OGJV* zfULSTJ1__R32#zG?SBOdBq)Il@ucXD{VV^(?=q7ysx`f!cTOP=r1}(dZHY35@#O*R zXLxo#fuR@i_^rv67j#s3+HA{(;o1QK(6qO_lzN*BPD4ct%h>y`IYafH^p5GCR>a(y z5~T@>F^PBBC9tvv(zJn+SLpf}q)PVpy4S3aB~U(S*q@=(>vF(5-HqEENG@Sg*kl@1 z*Wt9Q#Ky#|mG1yXYznIF(l!;4M|VSpKq+Am+CMbtC9hQS)+POo+4-NOzIj#OmeNe| z+U{J)TH_G0#k}MF#l!^pEJ2Bi?)jAu>$ZaKS(Gf@s=}3JSA;J9{3p|{gi3dI)Mx`D zH_6!VHf$*n-W(x!+Qfo#mgs)kHh86Q(igT1R=1onoXzl%{#E4n%l!fKG;@BtJheaU zv1j`MJC zvM`9S5)$5A{UAfK?V{w*Fi*p{WUE%AF|n&AU7Xp>@OOWd9hkp2YK3NQ*NbxrZRZ)l z7`9V=)N33gc_M0T^d!V&*^=Gf{{wUKtF>`>C~@f>Ru%X%rbv&`Rlw8rkMxC4XeD(g z6e=Ra3^r$=LD{BX&HuPoT5*wibSehMm z)DGe-tEYI?;6a*x2H_3rBTz73KSwaeXn*-qv$xw=&jJfjJ9iA(mLEJJNG|FX7~t-( zSF`^)fb!tYB+0qt`=dr$$u+%zxyx`WmOLh@B+;9DYxO%j+un@Sj;L zigy8P`~-p5BdKWfPiflUMEYA2e`fdFnQ>2fDsSZWk8Qvm6Zq+^-n9sP&a|spno$Bi z>?*Xp5ck9xC&IwW)4$jr70Suv2?EBPrlHxjN_2XUf0Go81m$f6tQFzdI2jkx7Hb?p z3HN>Hl#YL6wyvg>@GL5hI55F{GjDjEakkBUIRxj@9KhM{FI-h1KS~cH@(O$jB}D*s zj@yJsfTdIhs>qY7@vJ){l#%y*mC6x7s?B&)5M)qwr)O+2w{D-Y(8cc>M-a=h2Dsr2 zbu+YnuCZ55am5)w{R8cLi`>9Y8N4x1Gy~nWAY+WDQf#J^{kG8KEXa!u1PcxisVK64 ziT_1{E%3S`Vfp~(d8{f|^)`+dh=L?m!#)u)9a6dY@$VHLhDe?j7u4Vq)S)W4G4WFa zV)$_$#dB{xNGfgJ!VT&YB+I1#7r7omJZ4ayDc)d;&b*{DGj~uKZA;kz+bxg9J0|(Y|4!a*lMLNwD;&3aGKr&Mu@X|7y zu?iRn|CYC^#8*6qde|~2n#8xSob4)@4P!B^UbCO0AU<5*jE*xv3D{1HHWV=3&To2F z(B@~KSC`63j39jWmo=h+dOiN)Y6*SIt6|?*}-lH_u6L1Z@i6sx=PKQcom(J!*);^zR%Zod@VIUcA^5h7is;qq*`Mq!@eT)Shs-+#m4r>> zOhBhNQ>PMM+o8DONh{K=rN0zWARp{DkAk*&>$qmJ?O->f$c+!Nc~=USo7Hr zP3xTxVoDa2b84*Hdy>Wj51ya*jlxB#;n(~gW@sq!NTdJI==6NxIE6Wc!qjUShMFjm zpcp1|v2kW#Zh7xA#*mQZMown?_+}o|Vt}JgCvycLN_1?L6DO(UXM4~f4%}<9BN92M z1q$o&lP$hM(KbI*EcU)KhVZUa`Is7W%nd(SQ1=SAW@ z9o>Pa;@0a++<5h%=Pcg?i2_WluQ{BEV&kr>1Y{I3e1zN>cW{ zf3zt;8Jk4|;f*zuJ^@=<9Ej}GDpN_5Ojl9fMtieG)UhqtpCjLgTSUh0BpnrXuNcQ! zVm$Pu#G$VD0={t9<-kDlGaGXBkVR_h1mFJq@gyPV??sp1JmvV=M(|}a1mWlA$I#@C zqWr@fJ0*vjGk%0a=0i6~Q(2qEFVRm63Tn&DEzl>!Hfa08yl8rY3D8&scluLvE2N!GN*xOLX)K(7!;@N6cX$~vu9vC z!J1$n-$kXDOiTZ32hubF1tg)D$_W%B4Ek5(DwG4mt-@l1 zWaL)xoqNVsV{>C5yIQ4EyivuNz>}*>=3lY-Nh>%Rii>&13)hwDTXG11)k^CH+_wQ0a!KaX$ zq+Dj0x$m=C+KpO46E6iVl3R)}rTILoyPmGsq;2(kZkRR96E*)_Yhyay_n0xd_zb&- zZ}CAQ1=P5|rxV`Tbp>{Tp?aSdPWLt(?FseIJ~|eWq(D3$*6M1i{OI5Om5dc{q|Fm< z8=0fft}iqdBuII1S!-tATe|bzwraAx=29I!-3W%~p^J8gWe4gi+b~J`8rF(LhtVe4%?2P66ccKg`!~*9N)WEb5z*FJmRd>#bA;ptpi zbjwf@vLz`Kg;q5j2pa&zmH&KHw1|McOzvZf44#_zGJo64M2MGOr=jgdTaHp9>4_<%sHjZHqlX7Xkdw?UjcYG^Q|0l}@B)H{bkT<>Ki;KFF zO3p1EdP~+fE|s#ya|#5?t~k^#C7ue)JDtO8l|$WQEi1DC$}t)kdO=*cGjZ0)Li8?> zM~={d30x)V8q1iUb4n|LW7tcfMM@swFLJ_**WlYKX1Shrt6ywsE(LhZbC`ML@@I{C%+P$^dx3U}G$!a>=>1 zTPY;EZJK|2ZpLYq3ozcUuy_4AArq)-KP^Z;ZVlI{W{`idlikjN{e5O6k z4Hhga_9IO1>X47)#pX0xU8boSRfaV^iqns-io^#eg$7XCuIIOElaL%E?+GkSGI{8> z{_HV0$qxH#ABUh_gH70I`|z>m!5xM^@J)36@n8(ru6XDV_Vg)mAdcgCN2`Xx5sA3^f~Zop4%@WkMN`QC!>56!0=}bZ1nlsPoQP57Dd?qX z69b(=ss|SQ##rZYgCt`wX+q#NgM+w4H3hxCw3F*~kY%8oEGj#!?*jmDF$A zWKt)e77qJjgMH;jx59uTa;-`ChuQ6W?3hEZDZ>3&YGzV|?a{Ep!>Q%~Zp%vuWRNBt zL03EgWK|PY2g1*z+mupJ9E+eH(|wDEq6?#R${v{xsSDS+!eZwv6ix~66Mw9mL+XeW zeVUCw6slz!FUue;&*1;jY8*K6dwYaU3&@HTxb;@@ug*0XL>mO}{H4vnh>+gSxP#!E zQE28RIiHt4cpbQ>iA=8w6a60g_Z$60AzV_PS|%F=X(>y#W!t$lmX7U;omm4iF32_W zV>LierKj4fI4lCKi13~6U}8nVT4@}UHh4|n&N@zyN@o#SQvKTbB71B=ZG<6JABh+I z96fk-1Wng8JQpe;`kA(Wz5P03pMtEmk0f~t(?7dru+QaAHSq7+X^}!~<0Lgw_?&

*Lp=(gI@bGRvr>=J~i;~$+B&uHWYQN&L9mpCwHYgZo27*Yl zA}V!it1>+U0Km_&JZjnDch)KqFeAuv=HsWg14CYZ=w&R+1mDIR_cRzZsO>x~cla_( zwl_i&PY8_%{p{nJzK&?vU4-@wr?^)oqoiG&#gBkuSXiSgD+8&9lk)A=C1|#r!X880 zsHL^YjUGCfIuyIv(do|zYBgKkNN+GYXu8zFH)Jfe=W09DPqtK{!NB>@QdI4_4Q7xJ zQ&1?CK0iW%O(#bNqB0b81+abi^XtqTIIa@TlIO!BWje;+1kFQ$ zqve`L8zt=(jqICbUdqZaZCxJ+5AvTiJ9{*SvgG$P@MTSwDaZ!)fuGp?lEoE>Qgctn zs7cPD0}PA@S@OBy|4raatM^J!A!Z^>T%+~&{~?~3ksexvL>&ha{0Tu^l@SOYW)blu zx|5y+>jkld)XwdAwIuYRo7|RZkUr?QW{bz)&&Jyfj(F=Sw24$yh^mahIJ<+b|+QyRqBcF^&zr zgpL-{UlANMPaCF>!iZQE`gO+(Te_w04Lq8eQqV%q7NO=sEwJhSb(gNTTvVX|Qm}IB zw4*V7Z&184o4t#8Fp1@tDzW4@U%be1wsT4b3;=72U)~p7lE(AZkxBEFOUtHa1=W4< zm%pfLYHxQE=(r(bp=zqJ!^ zQ)(UXTYy=Z+kiry;-zQf9BX%PkyB45_T4id_D^vG(S@LnBL+g_o`B`I)KDB9>-dEY zMW2}^^Esli1UX-jtymiOrY6wsB)HZ#CsaeYWRpsDr$Gqm9qZ3Q%a?Ue3Ru5-DH#%l5#h3p!LQm9NXHPp2y@-V2WkxpK8W)%aju%d%nii9`h&u_@-JmkI3|%NvcX8 za3h@qB zF`ZwtY@m#~M&qD3j+@$tE>XtN?b!duu_bL@U%% ziDwD1p9HqIKiaE%@2%firm#E>42v6bF?m=UVVzEHM|1u$J4s5qXY)%Y@b{Zi3i4D- zk(HNX;Fh+mHu8&Yx!TPW>Lu+8$MR3-yUT&=2_5>yM1@9&jQoffGizxLXL^KLno&jK zuMmWE*D$=VIhUGLNoET;NB+4IHs;_G!U~3Xy?|`&eYYHKyTm+qY`ye6qX5^rHSSJ zXV~+A!O&7qC37yUbUZVo*kh1-Z|>qmClnGtU?F7?oj7AUft;Slg3Y1pLgQK-WC_9P z2D=0>`-MDz@e;xuMC~6_8uo&$-&Pi1kJ-*JdhCe2=M>YG#is4;nRrG^M&~Zm)gB5w zLhl?CcFbw&c77ojsm?jZVp-ZhjJbE%8+!j=W6%!*@~I>R}rL885kaZI@;*w;n%5O zxh90`gg2HDDlSxR?c@%F{SubAHBG$f1wdR-%6Ih9?0%>{AY!+MB?veoo2+P&HF(Tf z)|O_pQe)HILq;WO9j%?&aO2JTU2$S;@_LGB%V~Szl)v<%45>Zhlqm7|B~uy;))#qfe?tmg%gL681m~M3d^6#8nVgj6Xg$}x z-l}ieXt(hch83P^@Wh-~rQagf#*@Am+Sbgu^#rA1Y=$JEO=*ohH6bC!xIh7brEDCy zo43?`N?`HGc*s)w2I#KnxJQiT$!B`-_*voe%?X4NXSn?=|Jw z-!JnTTNufhr+)RTh$OTU7j$~<`i64pr)a~ zkBlzKQb9lFJ=Co*sbZ9JTJV6$L$T{(Xz2z!dU!gy%$&*GqEW2F9ekvk6SOqJ)!5&!ug#D0?J>9zj=fh6 zM*O_+%=>nd=KjyM&MJaBTajJI{?d*zY)4tc6TwBH&3oaCQ-K=xk3DRv!)NFLFUS^U zUEwrVu(?QS(tAU}$J7~Y0Mh)@cImO=ZZc26wMt*s(q~GR!ByO<=wJ$c2Wl$HtXkssWEL&d9;kDrs~jGQLa1XrQFj zcr*aG+dRrH<;IVEnbQR9Yq1^b&&4Z`F34N3(vwH@e^EVlJ2q9r-Hy%{ZViI?5BKs) z2&G|m($s#-a#R`JPDIl|NtW6;w4(kO0HU<6R+ILdJ)E&>kzYHZreKrY6r54Oap6KP z=^9tU`OHD>W2-UCPld>}cE$5Ip^_uU8yV$hJ80Ex99mX!iRN!$g91xPrv2h)XI-N6 zq`+m0-XXe&(S!!4oaA)gJq+kGVRq;`O~a)YsiK5gHH;~^%s!|Iz@$v7e1;jC|G0It z5LO5R+?E6Pi!zq-W3F%BOx&HE(3rglxWQ3GK=O5E)ErA>aME>iGwTOwy@n$Cy}rm+ zMk`~)tkM(5LIT#WdP3S4Ms-}tw`DLf-lG@4n3yB@ZaWAICOv4BO{Mk*>ryug-E<&z zBiz17lO=*a{33Q^J6+{#69oY3Z2(O&^b%g5a02{fsfLtN=9x2+3=O&ofN+;OM_4#E zwrXk&xZ(Ir9wveWY+Ra=21w53(3*Nts;6oN4Ahb*uwiWF+G>1E44$#1c(I)Eetd&nmeSb1f$*ZE=Xj zT>h!r^Ls3YLY}AM@(93qAOnL;KbE)i;{!5~pn5EX`+73x3d$m{wh4BYk}%;o@mO_r zV*9vr!Km!_G3diQCl)jIbVL{AGy=rK%87ZWANn@+#WGm!q(p*}RX=axkl|auAtpNX zD{Cvt!*bU5gIjunMPm45a)0Rn^$DTDyC-v`TzFZ+wqk03=?U@LAW>FV7~iXi@he~Q za=bLZKGh+|^g1JI+saB}!sqYMsTkkM^Le^?=nD=0>h&*DR$5HQPEmbq@Oi^ZpP~-e z1Qe2FaPnyak>x%_;DMk-p%?w-YAFu4efyW!oN*sWFe^tZQjBl@m?~oqgu?K}7SYU! zVtkk_uZR%!&*m*m+RQ5|`S5x6{+A!g@?TlTYD;&iyXsP zaOpSvNDvxdI92P-RbtJIB2ge(iyKdzmegXG-UTn!1Bg8#_H#_-dpBf!!23>G1pdEe zL51};V=&Ut@V(6?ZwA&>TW$DUV=Z53<@PS|!Rb+sf^9U*Ed;NoZ-H|Fc~F%%^!LRR zr_-Fs?JhN}PPLp3h)1(C?s_gpnvI!!L-87ehfm-U$pVP&Y1ud#3!tGK5Ry;Azk|AAsuN8b-eqXM|Zuj0E_qf+7E-$S5HGyoFt6*t8EFG zMRgxbv%vU|lyARtOcPE;J@BqHS-=Z9)mFGJ-x3o9U%l$Ud)79F-$n0!wSVg0ALt2b zH+R}GQ;d#cyj5Furr9L#b|uc{wZ%yWU| ztZ;$SS{n>|#aF-_bRz~K=5(?Id5p{Ar^>AFm6Ylv?89cn6@2e!^KMbY99&mLI{@!A z4F1ANpy#vRW1JNC9l(wRY?zwIxoJ2c?|>d`gFt-GM?@)()fWyS9AFX>E`3lddEysZ z`qS;0#eS@}^ik3H)u#>RTDi{FxDGnpu#&W)V<_FTX?qoQVm(2{PRGRJ$HZT}_n$Jp z+MW7f>MB};hs#BDt@Ri29cdluHYW6&GqN=w| zdT$o6^cRD!=5*}N_v6$1{Y!`7tQNKXqw|5r8DNAxupkzET<#JJ0mWl0-Lz=B9>r*8 zGR*_5TgwYh_jzI}sLfxGpA(M#{afz6#8~C?cb`Aw^tx=)DOXw%s z(Zc2vmOVHB>84rNJQ)@7EGE)pC2*TR$XqiTk%Tdf+<<87Z^JVGWWSttBL& zwzyh=hF}1V+7iVo{lN9SYJ{Y0*Ek`p*iq`QL)1((MRjD$h05*CW+WS*j8h335Vs2y zT@evpQRs@Sp7jH7Xa8dj`${8yQB_`b!H*z*PTRs^T}z7c&RLkM4+F0>{M6RHbVpQE zO36_tzCdykmxJzgPYI9UG9=Jvh?d!+lt_wEIarVqanhji5yR zVz=p?Th`=0-W7OpZcCY3(J|qtpvRTjsw2QA@@=%p?ffcmO$q&shN#xg%|pj~b-v0U z#17ZDkdv(4N1kjdkg5=qC6oqo>(FFW^?-iSrxT`Ur{U9yt$oSJU=n$E=gaWqAM!8k z5WME;!b+I!1*6M%=sm^b+)rYIviZ83?7)Q-%~6zI$R2jFZFLhLRergon2S8+D9n~X z_~Wj!jT#SNk*|w^(Gb@zAPj1Y2A+Q6L~9xx``joV+*hpD zWXn2;rFP*$tm1;1WGi^$M!HTi^-zQ1ud0ka%5>KC@+#Q#9t~ht?GFjU2i{Ow@8C#9 z>rYyCKLYTwkZ18ZGY|u_v&f@i9e9$a4sC}rR5-i{1A77}`vuRwFX6GIeQ0cBSbQM| zJpkhXqp|^BH>o>eZs8q>1%!;Hi}d&uFvL^F`Ou)&muMWkReudT4(j08t$JIylB!#? z^hi!;x6$k?!kT(*jrZ5$(3PC|VnPS?=@Isc3P(~%?45>^8Ih{@;;L;rsY`D!)05kYAleSwa*zEXk4xJIst~X^Ej55c4ttcC<~6G z(6llVPkU<9xP(WhmZoL`o}tfwOZ&r;{bV0r-x+OC5lNM8p*(tN;h&hFeW)iRjEzWs z7o&XxD9%Hr7*#y^b{z-mJ8cRgNc~?}0}j{coflPBa7CzcTnu)Ig_}$y2UQEO3cq?~9$maR0`_jdC@IH6q-_FA~;y z`FG+O1JLy&$BgaWB~Ivm3W&{Pu&=0*V6SvF#-~0%LVw-@gxvfLQlT2NFL}^nRTew$ zvPYVgTRn*E-MN{^1UQqofSmw@;F*+(CAPo z+OWQwHGd)%@+0NoHxLhHI{|~0L#sGMUXZ}=`)EP~Yj*|=qDv@yGZAbX#7VgVPwz_^ zM~yptH3fbS09)Z-v?j4AbY>>QL=lqULX)}pEItFZ@y1W_RL|PnU^n}HrF)IoF$!AJ zcS-kX%P;Ls2S9e3Wk-nd$MoFtX|bJ$YWZ!^)pbpDweQTns`dRq$JZe?>Frj}!FIJ$ z&Z#oCCtz=y=sG~tWLkLW4Fw8jE@gt2N7nNY0=~RY-(IqKT`~Ez-Vbrf`85I_ngECo zp|~JOCqV5lKoJOrthaK$<6{wEawZnk>TwKpt)m|IIieK_SUX2B0jY!7qGb0aeR9ZNZFL*->)39Xd@ruGkDB~w)zpt*UZs5 z{q|uGsgR8%i|ZER4bmd~M2`ifD3-=ol9ncs&IeeELrxoxewq;ElQ<}?+MU&}%gGGG zlYosq#x`H}vN8>(o<=d>$dQ3QOW%|3wccAb#TO8qD5@5Qg)w5%5ba2$WKZoli?{E@ zr~~VPQadt{TpQWHF8{u^Gb@Pgq1Pg3QAPXEtLUGU8$^+Brh&manM$N%bZZNhUn{2c z&!Pe7MnqvE-;75tCm=fdvrxvEnhYusaQ|~in3Dj-0d1lB28Qg1i%s30lqbOtVAN}G z0D7tCS^vIXFwva$D5AAuhS3RPCW}DSs(oF!0JE`<4-rUytEyxK(mZ%(VW5i-C5!eg z>x!VVVZ`8xt;UY7c4wywU=dD%N0CEO_SC;jr;cFAyz9anPdDs)L z+-xMD4y23IPq8xvtn3#wtlAjr)-%1_~Sh{n<@PfQ$uQ&}4JI$u}wTiOXj!lVmh2W;{6*9>V zn7KkmpER8*3Kto-y0tdED;6xXqCC<|g>y9q6@m8Ol43#sncKBX<4~cuRXxF@C?I;d z21P>U!3Ok(&y~%&xxujdbFQfov#W(Rqp6muuRfOo9al6dubXfG=s=1J zn=qzbkLov(7S8d(B&PEaAqhmvqMj;vwedz)8>>Ri0zN;0Y3$nss0jmqU(mWc_k}yCe;JOgb8-pB!L4Ud4n&v0jENDmpnr5f zWvmX(CMQY&S#_Lq+$0YY~Ous}Dyd5K}0Jbu**{FV(-|ei%7U zbiAH@L~9l{EHX>|JVULLQLA~n7pQ7->lNF<*sN~(W4?9-kskN@7G-|P+M7<-p7b!n zV3T)g6hBChkt6TAJJC1M{M{{WLOOKP4&}{MXMWk_#ZRM& zXyM*T>C(?~Ir1t#BU0cRY6g@YzIC1e6ZES%$1%!m2${s29o7rA9=zi9j7pnItb=cq z_r+}MD69YL{FB-zO!nAJWbBf}QG1;ykk_JER#L|w#UJeq7cfJQ?TTeS>si_bE|g&l zA~)O(qhLL{hkq_~(Ht>+ZX2-n?*DUSQG6wK?-}Jh=XcZ?(->H9!0lss11m$HxVGRJ!419I&h8Z#WtT*N)8)Y2F; zjx+4NW9f~)yVpH)y?(@^y2HF--plVb8Lc6xT-{6pjApEnN&3yf+|^ChJfOHBPcnoQC%JSn+43ZLP~JNEzpS`I2L&@Y1Ne_d zKBYH6-%axdq?2ilKpM?(BEaQCmlaz0eWoSB!pUzr%fDn0zrMEv%WZ(El0`&(RLzG( zOJM>VLd7a+PhbOs(~)~3;s1H?z4@vYV?Op7`$Y5cW#yjvnUNvZA7&kj9OR7D#yg0N z1le>vj}c`M8;h?G?uj^Ywj1IN_h5Up$~M^CPp+(FW6ng!ZR&M1Ta`z!UnXR?!@@zB zOkIk`U{6KQ*N^F74C-oi;`;%|c^tB;UWmvE&%M!+?^zSdh9z0^S0M;$9Fd6f7j)c+tQE!77IB&OgaO zuY|kBV0kM*Ii|?G+{Y=;ZG4YM|DEyrBE2^=CYKov~aq2|c_S`&-b#z@+i z|G#b4d3g!K9aA9cxviE0@W`@C4RbT2GZ`g%D-xHlMKdG8oHWNaumJRPh~9@*ua$Lh zqem!`!QS?NSQy~9%aOq^&ORt^R@@*Qi|@jC+|n*ZUQ^~#?SF(RR93SN&^>1ghC;#p z3*BOiCpH^$aaS5~J}FudCmD8s&Kv;WeN501uz|MsmKm(0lK0;hFs{T83la=i$G8rb zm-aQl(*)k)ET38ND3Yzx_)sK?tHCL_n-WNU$*)j4;f2>E;BKj7C%Q!^du{tW0W@Wm zLMp8rX98kVywK==Pd(}}+`~c-D)KTo^rD9v8U|s;Yga`}_Q`k&(qH>+Jglp?kQ?B) z0BZ9mHl9N1%`^9C%jmz{fkrx&$G<=dA`C99ABdwv-^X~6OZbEUwJ^x0}pA>j1VFf$x1gAF64s((Wmc{N&;;Q`E5RDCLdT=)D-yz5{%zxVo}KTVkB(f zwDFe_!H}HYvm7mMo>!20S}ph}m0=yqy|KpCV&g6}g$m31vGJcX=cRIQI$x7ve9q}MWS(e?Mcf!H1WEl>NEfW=)@ z@~%1Jxj7z93a1H1vb&BmKC{zdVN|^p!W{($+C7vs?49n)f@e#Mj_FX2A3ExhrH(Zu zl)>StC&>$SP29jc#ryC{(4d$$3+hL=9x06?{=*nj)+xb5wFI~|7R9X5 zxLL^hXy(?HeQ6ME+b>1S8YM7pPzLi*Wohm)*+?~$2<5Y|Tko*+Pnwjtz4M4XCWDJ0 ziJ2YSFnkoN1K-p{{S{^H#jq~tbuXb8iT>j#;Ja*k>%gkT z3bI}igZ3?KGc^8pXZ*&^$K7yfgWiV=hy`J>zTL#x%7isE;!AZs98VUrl*s16I_)tB zOpt3&?0qsORX7~Ru6rgaJN>~}okIWXxRVQvz=qf&Q;FLxvH)Jnx7hx}7XdTR_5qxM z`o@~nRJ{*8y{6i2&!S0yXfSkfA9PLLBhp`@X6pLBsSZ?N-Zs#BMb|`{2 zi6zz%%n@jc7*`@jWq$m_&D$@?pDf?ETOfPgQcfK^6y%~uc$Ag4ND-;;lh@=0b(Svu zM$~?^FC+8o;?NF{-7YG{o)7r{+h4VHGqjqm5ezQmAb84iMjIvOpx~@+Et3sQTx-0E znxS0@cg;97`@KkwIjJNslDI)tQN&#xRGyvuLGFgJ4Pn34UNoPbpUSNEU8Z|JhLkp_ zdU)EMQ@XW|x7zs$!y8D}Ga&m~1RAgru{Gcz!X4zQR}#5j~fB#s|iJQ$fj@Kw^C z`WUhOrec4>kc+Xok-=^`_cHhBtA^(bku6G6^`ONH@2xUjl=dZ;*3?s*iMkL4#&#+L z9I;qeSzVi?Ku=}JlPHA?N0c{G^!7fs3~62vDSegHuvukfV?#)Nj*56mJSV91sZ`E1 zxNJb~o7!*q4<;NQP)C&xba}m<#?tv@h~6OqE+d86LVH;*cNaxd#lyB$`?;J^N99wy z4PYpQp8+)S8hL@>b}>g<2n_o*VggxgCiG#lpdsa}zOD-*G&_=2()6Ph7>*yc0@5c}>P0yGA+BMjp-I*OjjiK$E;mpYZDsqHoO6|oL~*jgnBpOviR$cSG*>k@k#gnGJ?mv5D}23x!12J`=N2B{GROxE zt&ioGn?u7vq)_g2APygnq(cTHqsHsbi+?;*wc%rNvqz>)`X&oOObulk`~B$MWICk{ za}3ys--hQ5$_kGoCz8(@{YAEX z{p@Q6ws=2OZL^S|Q!?>0`7%U#mr1RH0`(zBJV}NV6xW{A@e{<{*tEiGC)U##_`F9` zMS2wvM9GvU67&;F-2itve7~#XIqyzvk&38toJR&m+xSVbv(v&tQ)Mz}f( z_9h=~@Xx@CU-b(ORO?W|f{0n!(38SZET^O*iWxj)_E&895LY=Mu#u~mz}s*cY;ob5 z_&w#!qAPk^OxA_`nVNaBDyY6%`tFoB)MEaVxe>;V2KF8(H?Q$&X`X{Q$VT;QBkXs{ z$9Pp@b_HC$Oex-|z@*W953k+g)by24aQs7p5*X)D+N;Hsd}_M`HFT5$6u*yot5cx@ zPAD&W$R_Xj+@ARbU6MS8-8Gv)=7DXOaFOZUnOZvU<{cAL?0~$gHM2m;WPCvx>6dP= z^-e`moG=#cteZS`1V~1KO&4wAmvk95hC*7P39;?1arzLXZugbix5^oEAJK@u=Oe>( zJP_Nm){(p63fET?ZsHRHoIYZX8XReQBV}(40^}vcfl&j6F41X`Gl}FDpDua>>4Z zs2>CWs4w75f0*6{*c$etaCvg=av^kS$4*1njx3)(v{Eb~_zp?Yds?>u>isWU zp^KHjKC;L1s=91xIUuw{mNdQsl-^q(#HH^!Yn{G2f_?`_-hUt}C@F?z{B*-R!~_OZ z9S+nr?QcjrI*MOJ%6|g|%G6R&=`eyXt8@1QTarW8PLCvlD7p$VO zC?0IOUmhUsGk9tSD@G6b8JF1^VP6XdV)QZe!dK9Hv_@~GWxwG^Y|4!^|M9#*K6p5q z7zc6MsWV-A_UZ~QhnaU;htVl5O)-bcGuMa4KHLua$BG%tNl1wtWkx0sJ*kAKcm^Pw z?_{Yh<}{c9hZ{9KOSHt|pYO7-40$FqM{EyRN+tpeAq7ad;*_C6;`yeF4m_}4wrZP6 z-aou@RC$~6(ttW{oLg(CpMgSc2z58)qv$@nP&Q`4Uk5U={1oeT_B7af2Fc8*{V(a} zbR=r(@s+^St2Eg;ac#HczG1QiglRtKaA__b5zAj*JF=gLkW|;-a%@l$!STFdh0vEe z2XJ1$f*l}3r!sQrGNd(qBl~qYPvxGs<`Z9NlKvu~Vw$rgm>;&!Q7xdAHByHW*T)tr|KVoL~1){{&V%A}e)% z^WBae7!jI0-E{B{du_PPa>4)5@{oN4+krOovjAI!j;MsWllP!yOwik_0uBAcmDGZDi6j1Qe0)OV+R! z^jLnkYcq}za>j3f~D74T^ET57?PF*87W+#E?m@;ljXT4$^$Xgdb3}$$PP2H~- ziQxoIj0UKM0T!q-g_^RG;pAA`JBkg*hFhlSJ3yeAPHzrho}Vn}<~ByuLl8Q{e7GHP z1?-BdV-iDes-#3G4HExDn|F7vFNwX=f}h-s$qfGRys^dc=6_$xa+;Dvf~I54;7W-< zw~{0*&KO^}<@25O(8^Pf(m=O-loIg7`-QbW7x%|9h78&lOh1&bTX~G@(ouZ&wLjuc zNtuXfb#)l;Z~u+6KH4-W=xbx@QY-Hnbk&|G<+T z|IOor-yMQb5B}0WJF}ku4V&S}(C{MYq!FM#_ymVq(RyUO4}!)}HCr*e>}%(@J?uS( z$G;cwI$i$(DS~U4IYb2@I}N=HH_Cqo4?SLgWZpgYm8hIvQjmQV-*OC&6};JX zu;HQK*5#vte!-h0MC3V)L;a_Yvdn$+61snob4X>{1SvO4+NRny#ioN|#?NF0zm=0p z_N1TCF@#ocr}<oH6M}#0qaz*tdmk zSDk+(@@08KNM8f6HnthH|DB_1wX+blj7^T8qCK=(pG!=h{V~p{0X#6lCcYpJ$w%(! zf^ira0fD)F+k9x*_D|uVO%76ea@977x(Jv;#^tHq<-sawmHes7ay$)AMCvPd-m3Z+ z$O!GpnMO?)7xIf@ zYX8Ka4M|QFlv;3idYLVaDBYHw#ByEE*xBNDPjMWOP`AzbCfs)d|>P2hB5)QEk#VhpxCzL2nKs+WA#EyitnHXO^41hq; z5ODbsAnOk>DfPv)I^00&X)UBCj{(fCBCUknO7L(pdu+oc?Q;51M{T-Bj*8`z#nCrx zj0g-8F-JL~+JHhn=X&{=V?Z4o`45MqhJf2Ienc@>tshfTQ)Bht^#nL^=>yqG#<5!1VJ50R*_?L*$hk>{>V-4KKzSVo=RE1N ziF(r48!S3qb*Q!XiXmGiplF`5RA={!euFc$E~}qcb6T*`g+tfup;ZvH6_H*DzE?7;EukCQSEMDzy7G_pm*}Kmg%t_PqwSSSe66H)4C1?(wo~~zoms{%-~bov!@=5pweNQ zg%pdfW2=?anJ)#0gb#E$>Q0xkTfUALf6+Eu%Df8$>TdX|;OY2iAOae-bw29} zmWMQ?%HjH}U&^16n?)fStonMB(xhe|9H|VRF%#?~^T$jXkQSkeIus?X2%fbGjjcew z3WiYUn+?`COhdoM2(VLZ7sWmu(4b+at|22)Qbu%`m?f#~k)=!s>p#mK$(_5YK*F?m zRYS!T+^-B_J1W**YlJu(H!o2KVS(eY3bz|qEhKB}fN(8?M&fZhBhU-eof9#>8<{6? zQ%){Mk$!n-S{P1i3gSOP2e;Wme#Y{G8-e#sXcx#OUAbEXUI0_Q{b-JzzDf4wAVUNj zGX)RZm@~uRv+4czuFuG3n;`U(OPzBX%&*bu-nfdQU#G4K(DBCVwO=petv^`BsnR5rz8aljKHpR@>Oq*8Imjb#m)j0E|xq==P)n&7s?l(%Xzrz z=!4h1Uleaz6pTIUZte|U=M~=GqKabNa!B%Yle=Mf{>16i;IfBdDuUEj`6igf&lhC2 zo)!osX$dCEh4`Mw2A%fpj}v{|iXQ_2CilD!=0-da4o5L!F}Q+62_bw)%KB|@?`Gy= zm(B_(nLvD@q->4OEZ6^I;P(ffn5Th?b`SZ!4d8NsE*e#b=~8&)I0_2 z#Y2qMKCxw+V-^*?y-BUZkaV;oghL zHe)6*e0FwN29xq7mKk%#afJt*Q7KjJvXF+zv;`-HEi6wbEma9lM2)|&(RF2*>%J&< zQAUP;IO2OiYy3H;NibdxB{l$t*)?3}Mi$In*jw`qIwvM<($30@LT6L89nUV}iw2$= zm)Jc4#R++e%MtV!2Gt#gn5P@^NhD^UEyELMtf!L4ESNX9*oxRM<6s`583Q_g8d-yLMBcCoR-_Pv z?m_WwarD;aIiSI=F433~54y4xtmW=HV4=b5&SbgZHb@^pWX=_+mEg@rwJ|*9=EP)RCQ*V$FTw7@hU@k#@;R7 zk5%i{KXq4AA1yh7iWT8Hmush|k(r4~|GRHN&z(vQ{rzR065mafNS?xbW@v>x*^(N( z;@_BV1!+7dxTgBe807qEpT=QOBiL(TCtmkzpq11@A3BF^1=Z7zYFn~uK`2$PBSji3 z$N#{_1D?qtdx99N8)-C^r3( zm8t5n7fVxCJm3Vsq}f`{h$jrFGnE;}<8@0^Fqp z!Y-ugFHoVU*7hc}1 zFsx~%*R)b-(3bhoRIUj|wM!l4VbHD(7k#5YLHoEggodbM@nrj+y{w{{^5IBiUK(7t zX`r=28kL#)=O#NZiEfo`M^cB{V3=_9quqiec~Q|i@Pd5-;}AjCUXfa#PF}^o9z+CUH=WzDQ(p{|&uA_9u?4ov zLZQgh>O@)H#scdw$iEPz=adV(1}9Hob}6}&rwBBaon@;PCJ`^HxE zW#7Y^){7r-#%15Fhu>H?9x|U4x_%pS6!+}0DlwxmnDBk!fz`y-?A9;av!Tw9ZKo**DARhVJ_9&tU{eIFwGW{-JSlF?EZ%jeVkL)*T*VDe5J($5ZZq-@GNO^-k1g`U&tuz zv4g^XM*A@%ccfS3>W&ql1>9}!+gF&;aTdfFBvK}`SPd*Ze*FDE+I;RNR8l%RsKWx^ zX$TuM$iF*sLcb%RktRhHDgYHdF#7FjmtCP_rZ;I>>&qTIW;OK>F3Jxp4D(>9i60jx#7jZ zV-Map9DK`Z48w9T=1|CYQi>-X<~?d3k6-bGt*0zmMZ2g*xFpo%?&A^}XZz)OAgQNo zUUI5%>mM`WH`w)k^~``!AujiS9pK93eWwxx<~}6ZC6GkltbG3lFN5W^OK~iX@q0dG$|{{MIm5MNBQ4x&%$)tHn;UY>?3W|_G&qC$n)5?xVudoM zA{Uh+5d3gK)jigMZ7$5NkELIqJDPpxC5LRb;Om5A>RclcO5#OW7{RCpv6Im2hO##S zeZ`KnEf_KIxihi^_%dBlCapRN)Umq;?9qb_{z9RM_;Xw&nZT7hGR^H$uhb^7=2FX# z9xMX*InxFKOsr8_P~ogZ&f$s0eCdHh+0*#oxTM8m5u52*`Nc-i=lujN%f8%4Wp{lAU;1{Mk@dZeRG?&h8VdKfc|NqA-@w5Q)?@xr;z|l_zlsch zGUL_Y=+1sCHUL%s2v7xG_vWBJPsmF0FSgz=w-#|-{b^~Fc;(>@l?D~i#w+*f=VKHu zrR+HyL4>CNFMk7kFois4+L3>B0H)T^>3GY@;X{qE_0F{?M8?1m)-MXC3Kkt)f6o^t z5_Z}GU{d4mPF>>G=`%I`3S0WJh;I_Pu(xaHW@v?onQAU+%4OS0PdVQ|2G-ajk!dL< z&&1a~zrPjeJK@MEQ?88p(cJB_#1LOMtp?6qe~atX@8P0=MW1H0nTEYv(D{?q6K$90 z$)qS%(eceQIjkT)s0e@=u=?S#o`f{HFm7qV2-HbE@=-AcVB;U-HI-t;Z^ z{TdMFu$`*VxY3*Bs_#WavXd1v?oP#B3-L<{x#KnZ($*`)YJFDQu9hFWXk_?pj3ZFXTR? z3DF3Z_Kx`-` z!Lf&57qYNDwQVX8aYr-EVQ7*0X)UFN6R1zxq-j)HFHkr$Zg|%n#X6Q#DDSv5B^!wv z_!;oPb=ONz43`QLQ1lwbju@84IROy}BUQ^dhAjZL${LTqKNW`|& z__SkM6|W`N>>wV%PtuhP9}?%9lyuYI?6-I9a@%cvuB1}~JDmsqtDf@#c*0`qs-&|D zG&$ZUjmmC^wzx|6bl!mFoLJx8 z(#UEq3g>1p1zc_rLt1N`jGN`{^~TduuF1~)!==_R@2S8~B7E%a?QFr7gYXX--VffC zkL(h@Gc+xQxEd1;Dyf+6HZ%I*Mc1Te@9uzo(-{G}8&eXt75-7P!Eon>m!s8!_}03w z5COjpxEx;|JqCH7z={(kR-r~GFVda}krHr)e&DP^s9``E**#nI1%RClS-Px{(YbjZSfuP<9%@h>Cse+Vr_VVgjw~yq-i?cWT^o%V`!}nN2N5ju zbU3*}ZOdQrgirZFPq*EXvLqEJ3RGljWLk@L5)2BJfR)ZYlQ;7DGS2uctI+MpP7B?0 zbHQ;I##Eq06oR5R@l%UV8wz%To;&&ZBtpQZJRWDyG)s6Gl)0(R((Jo|NI0vqc^QK^ zEj-}zxBgV`w?+`Iel^DL~+$#g_$?Ji!-lo zF_DXL38hledYU3(>3S7K#P$iI}3D*e4=9!XQD38w|8!H*T zgTC2l0l8Kqilj+OlzJY{eE?!a=bX7?xAnD5rAVu|=iOfQ(sRb1+VA>|bbnUS?7W8v zYa2L5!t;3H&X+`K%VuI8<0WNY6J&j9Cf+ewdQg)Z0#z#%&jvh=hY`)RKtJq}YUgm@ z!c%olt$|KRZk;YCwTBObN>TsD<&zxhjw%_%+$zjxT2u5w;wOH`nNh&d@|@a?RD|dH zBD^n9f}wKt->JR8acR%6DrUG@J86@=UxV#sV+`3?y1wt8f3xP@$W6~eh4s+8NwrLhwrv2D{W1IdO$ z9L8$ig!pX7h%eJWO0&>4z$`UydtnV@LN$D;)6-Xs3(8UVF``?96@@?@h>aeI8g*_G(lUF5AaBhYR8i zMtl<4?c%ZesOB|q#2uQtdk$%UZ)Ry5ppb}UJq}aW06xN*u}r-;0D8K&EKVoqIwV(T zwot5}awPL3VR=E1^viOyR(dw;1Cn{ST;Vsq-7`Sk-yc#Ne~pc#XqXdul_OhtXG?vRWKLd*Og>Zu?{gR|1QUXH_O$2ZN;lPrm;cD+TRnn+V_uOf;*ajK zRmW@UQ6>@ROk!7N6-mpAtg|rvU`qhuzZfEn%w57w{!FHT+PTn`Zt?~NH}Ati{gkS! zChxq7ozi9_W9sBfkLS>9A2T5?U-O0r&e@O!^T!X%JJky6*~22hGby@+vnj->&yu*E zHd5yNQjJj`VkmG(GBG$19(~^>TX{CBy$%;YM}CzwPlz$8O7SyT>iap|GY{2>!J`nc zEOqsEyhUNncis|yAtgHzr8yV`W_Uqj*9r3u%UH^lNg~jqoy-DlyE^^2OSMIZ%399a z0r7ejXQHMN^1S`T35J}+K=a+&WlCV_QlI3P)hd3Ikmu-|@fU6~2qkWW+`zjFdH^^- z))pSIKVSpT{=Cyp3KfY3xeVBBT()BLT^v&>sI3w-b*2 zOsQvDh50Sg6BS|J4B#6`nufHxACK9%#iZ&lPyz)(oB|1aFB4W9cS8Eq*s(Qq;smqT2gY$tRqB( zJ?hP;KJ9>Ou#Gx~6Z+G2<430%0r$vhF3&Yu>AU6l69k`jYUN}dz&33=mY8ZqGAr4+ z+MJHhaLz{!WS9YLUNz$x?ITeFtQru11_rH@?~`uv(S^@ONQwT54v~)c%M2akc=ln{ z9ILCmGbqW2$mKC}jrMX5CapMQ!v)(lJ_QVb2y3vRcI)DS$%1~3cvY@}mWuaCI6mwH z0h^Q-XA{1kX=A`os${85j7I3V82gHwR{>ibl5F)wzXXn;6n zDGa(=QL-Fz`eAjV&oW+=I7t*-rjdeLb$*$i)(39$@8;T><;isnIXGC{N}Xa9cLOes~g+1Z+5%&{0dq(lQt25qn2h4*WPJDC^eW z#qK#f%&6o==Tz!&#HGd%BwSq&gi! zE-Ze-K&VgXd_X4o9OP6KJ;19NMD}_=&0b(8zv`vdra>blj%I5i^n}|U0s#R8xa~IB zj2&K-=X^6;g4{jQhHD2*@IwK9Of>xi#qxSF|6)_APkM{tw>{ko8{lAqKR#!ik<6h~ zp>BP?B`X-1UR4CXyckRoHS&i{s#|7rMhB;$xJWR^9?C0hMr2t zBpOFUHL9W05k(oezDATIP1M|h0NujAEyyaw4}U$%)dn*1N89x)QUN9%AT(_+n)r`D zQ+Bu)Sfr0P48vDZHn~qN#l;tO+>GqKc{o+y+xWkZ@tEf!!j??QJZ3yJsi>%AC=Q}o z6eYqDQk0}L&~P*lBBDug(jb~OQRtKgjc8P+-&%XEBcJDbuHSQA&-MM|`^R^GKD*a_ z-|JrYy4Tuk@4fc6dHcL8{ynO5K|*@XyR?e7O@H}${u7x$*_Qr=M{Ct9c5HiF@whLx zdayms`Q+F5?!s?7U+4Gu@TXq5C+6U*_h9LO!mE3p_W~!*5g9qf@eON|u5WAWhQHq{ zZ{+0uRo$6yTBgC(iZtDrRkD8kdiH_q!EQ?PKjpogceVaku*aQyyT7J;N3M@Ft-O9g ze??QU(f*CqZJu>^IiI*Dqds5VvCGtRzN@eKkC)e$roVyzUFvmHV||ncmC9~(W(1$P z8B}gzu;zhRgt5hP$$b}^tY-Y|t}yH~RQ*=!)b?0p)yt-Uou_hSbq6)?Yo2FcaeJ0M z{@{tW3WfPPck?Ii%dqt_dRE@c;2hzbvmXX-)!pe)@A~rKVW$ge z7s3y{olv_jNThA2%=A^yOb$m}-M(dVoc_ferCX~E7=Joy(v#TU?{fmf$A6qMv+A?v z2CL_R%AwP=RGcJER>q(EBwg|P5q!fUdtk&S>bjoC<-=lO0@`KfPn4XYp2Fndu+egDx$ew5EFR^(g6MEQdqPd<9GX z?-3jK3zcU@@7zayF?8H<@BQ^>@+c;UG_JlLD9deg$w*4DZP8nN@7ofkMRpT6&(Ntm~Tv$obt~$ zP%L^d_4W?O5kJ>`>9H}{J8@*P>fKARuP@J?9d>8*XEw|9_=1=pnsLRi1Ec24EuQH8 z`1@Ijo7P@Cr8vdc9Yk-8zp6R$Puqq#?{WEgI=dep^?y*PE#u|F=@1`z|M2Rkj8<>! z)gdM!&TbJAu}K4E1FWv#$1X+#U(SCo3>es^u-%?>dR$k?l)pQt2klv1vt#D#L*?gK z2C;6puDXXyWM7l?`8HzjY9+%mcg=f1rkG+180120U72>Rr(cBA6A_ll3C##^`V$kacUx~i{n zR(ZDh{2luT4^?N_2CNlhmu^YZE@wD4s#^8i|JMeRezGP zl1NG2HoEf2;4!w3m_&2Mt#>CHe+}l1n^C-aZ=&DNTl44LEO@xH`VRkO$U%eq$9rNP zGkxvsr$+zL5`8|gNOSh(Q>9Jkf4W$W-`6_pb$8yG(nI&{ZogRj>DYC>Z6^<@tnfDT zc;xM{dGDaLw5I7+wGFCg!bF!}Nop#I?1(%(y?C`HE3sN$TY9Uv%Cy4|{a62v3lSZ6 z#9DrLc|D^n8~3U9(rn+V-TY zZT;~L53J=)y>U7<^dW9``{& zEnbmxCNJyTa_8+f)#}N;x6@4euZemcv-V$nrtQr5m08=r%5C*m`9KfU;-cVxAp zLO`R0_0?C)etDgqtFf28+MPB6rXv%}SoSR(DXBPOjA+2=lJ>*<#VSU0ZJD!w zyw3qclbGU5hh_9e2dd9$AF;`2=GOD+t$p{r1HF9p5K(0)LB`+Z+0LfWyJBvoYCjDi(HoqcoJ$U9KXV>a*pGf)B7z{Qa`cu zZ@$e7Y&+H#=(6Nam*vw1p{*U;*X;}5*J^T0WQ%`-X8%6R9-BE}5hwpsQ{|kjw$z58 zEzdU`5B8QCqtB3>)ltO#Xgg3bs2QIBp{dNMX-wwbKlwkSJ|w;6r)#^j7me8Nb*SV~ z`imo0$5us;sCx2;_w4>szkx>hw--Nsw+mS_(LZ~z|BiI|X8EhJX(8tVR14yztw$ZM zxX`ldMDknrxv^$jH&W3JU|#p${)zY7Th^`Y5ueko9h>#pYv~B{kvAr*A5E?wpYtHv zB&$qiUXjdpWzkUc_?zdf50tzp$sE+LpDnr3?xJjIQjDzk-k+`Mc|SL=u-tw>RmJzm zRmaTZpIrw!m-K$(bPrT6P3&bA|92PIUj{%BQpd`7`@+apUK8;D&g5!Pv3(6Xvy z^5z2)$@Mu5Z@=SrH{Z-_o0qV~^}4gwsv=u{{JKF-Ph8kH*OOmd4F_Gm9yY&hR(j~} zkL#lcrr&l+FXfiW-`#t4?uA(*uHM@|J*;p2q_rlj>Q-A~>d711POiyYU$RXv?dg{8 zgobpDI@RwiwJ)odAK5r>|D{K>xnpB~k6!lbqZ8A%)_!XLhqMLdX~#w8k6rh=c-^t)$P%%qQDtS9_(AIhAQ#z=x65Hl^Gs@`Zj{|mBod2xdt60|gXL;R@l}FFN z{&vJtTjyefyu?gX)y9$D6ZW@O`;L0>WyX1%rwO6{im!UuSEh!F?oXUm*K{MK^nGNV zLBBz>iGOM(TkKX!SMh{AMrO`H%cW7PoW_a-zP|BSRV?b@o1-pqiq4XZhD7n?{AF*Z zy_@#D{qVAi_^)v}k&bWP)*TQ#zYVk}p{te|zNM-0r@qy9~GS zTpuRw$&@-K|15sW=F+bPAB;8`JsTb6axCHNG8L2ewc<0qw6a)VZp^(OBC=Za+_?QQ z2Wql6)H0lHl1yFYlc(u7j6GOw*?q#{(>sL`)ZNdIUKxJktvnrFpitJEQn{qG{cMlP z^}L{CTX?ct5T z&Ey->r8?)QEWEPw;-0o$iN{xbn59xZ{p!G@`FGSl@ED>e(CLu6;Qw?TuOX-*N}#x7@o^O+DjRRg0?^ zvm*0tZ)i(BPmg?i^|9{g3;bPfXRm{5_e3?lD-T|+OjI_jI6TWse$DTY1CM%SX7xT= zF#Vlf>kM(fg_n*Vi&@v8-M%$K^TPAfZ6^ z%ZYa+0}CF&Utwr_|24Mz_WGwYMBbSst3{W3j=UZFGh*HC&^>vP0rx&!`X%4DG;INM zHB&Mw^vP23cq#Mn>rd{-XK+Im4Ht>t9V-{U#@@n$b?SAk)v^BldHHfnZV0Y{Sxm#uLq~BjI5^@s#exUkMDQ{1tXQ!fphI{*;xy_??2YDu@ zHn~fUV7#9Cz)yBP-zdXM=RtdF*1Gl8YaS;(_I@M(`TgRlU)Md8RdQhKm3BpVaqi6% z`Sv1u+8E&xnY}*`IG??9)^5-xzES7hH+!$AF<@I;vclUU-%OEZU-sXqa984*MSpY8 zJ9BfNQ?6~4UQm$E@l)G8w4Tm78hvtAs&=K>jK`km9&UBJ7$|n{yyd`;*L%J)XCD!n z(DFR{?{&>~v!drV`7dPm8vQe z+e&SiJ+q9zrGmbeJ#6>(42ds?bza{UPPmq|{GjQ}^uM0WVl8IOV$G*U1;ItKAC;R$ zILE0u18zpMA0FSUR2W`j>M*Qr1U%Qr2rKL4q0 z^yTMg>kF$6CWu=nxOufn@6vgr=+_#wu>0uGn37bVYdx-UCAWazlZvqS*)zgi&nnsE zh(3I?f6QOeriF{cb9O$fxsX)2!*jP@mjQY+KKgZmK`(=du(m8 zeM?uBjL$EdpT3T@3+lzSbPHR8zRKPED(gRo@q1CK+DqA|chdrM-=9ins1;S3vuBQ3 zpm*l(hTV%m@2jJ^4;DR1(G3u)8#N;6jl1Rb=8>O1|BK#?i`H-EZ3^XkxcJI!P#Scc?!H#MW~NyA)rRGvQZg2nx(}Z&f7fiI|U#+3M+X^T~>?dG0y>&BbnZyOQ;{n}q!?)VbG?5P5y@;fed&Vv;9|evH&B z@ZpumJvD0gT|8r8N6r4Msm2Evp3naF^Sk7Lw~0@N%#yM_$FuX*k9o#jk{(~1ukvnb zk-VnNSugl2!@H_JwNJErS03zEDQ@L)D}D0Yxz+cdD6dqlUHh!Tu|VkV;HKm1xL!klW5k88srfxQcbH#Q0+s!88Ina? zR~NpL-Pn2IXQyn|$lFy7yskeEw=UfMpl!xeo|<)`DO2?A?qB9RRj$0?U3=FlT=%5?jv!zD$q%} zc$~*Lu|4<9_eU+5wl^h%qn#>$aM75`@pcoYKM@;$Ax9>B`Ia`xCCVP*Dpt{>?BL&v zHaMQ0nW?nlihsf=do3e*XWqH-gKh5S`3Yx*&Tn#hS8!y4tj`}e<(9ct3x8bleI`1J zHzM!p`Rj`dJo7FqgNB3+BfIL7tW7Q^ zwe$woT%Q&etnu3Wvbag=om@(4wEaV4D_zY%i5tQqDtuenCpHaQE6!CpC4I^0vYlIE zwjuIXwQJY8Ki?Rl{dprt$vrjg^SNH>xf`Tz9d%dOvg7&GLw#wMTG0~Pt(W}_IrARp zUes#ek^VL^#;$nY0O4ZdR!cDwRxnKW!NnWAIe0c@4!xB@H zBT|Yao*pSY#JP4`_Uh<0+A+(bAB?(q)A>n9dQzoiYT~tz#~PxK#n-c6SN@1OX&n0P zg+)$*=eg#uuLt7XKBY8n_1uxKvP3+0!AIYFyL6U%d$``-9IP(+eR*-skmR72;oWar!)dh(ME>5P_rklRWxh2Ie(~CK@E^nfL>yshMz2&}xjSY3`B$FD?0viI?Jr6l+MoI4<|p?* z<1))$yzHBKcy;b^#69!Ks9SN${?TXJT)zY=IVQ?mHQP{rdtU7x z`K(SRrtV%-Ip4Be$=>h1(B_@R8I9>-=VZoz-Ne?n^jnektEuo_$s}$@@3cNI&x_@I zRK~h$e=RjrbjfvaPF^-Ax{fcs<7CHQre^q4A-%U3vpDQoIu4T|Rsn%zGw3bM%|n*G=oLR7Hv;J?6h3KW~|z z&+Uw;NnN{aN7VnhKec(s6zLDMwH$J+Q9(1DeAWmlsr$@S#^-> zwCEbU`JBsQ`B3Gm@OigHYc`6P+U+Q7WXIaT|0HT|S(3)99sFOb9QJBn+g6p4SUI=T zQ|d&Z^omnXrHjkj+A{3yO;??kf2WdjN$6#?LwC&YW1G)?u@_z@Joen=-^FiIr(Zm` z`iXAy?bXg-Zygf*9;Gwpk)CR|v)_mCMGH`_k41b> zmR{eoR&TAr)UY$BQY@DKTK+ae`RTq4n^~@oUvE874+@&R_leJ4aUB_ExWV}B3r8RD z>Q@-s)Nb2QuW>GAf}z}7SEcP=)XTV zOSdxswQ!n_9 zl;iv}vw{Z?T>Yt99e&trdZ(OqdH9`3+su`nmw`n5{f5TShe_*a2aUTiU+Jc1jiH(7 z*6?NAm*QQc56VB+wO+p5f7OSrV^s_s=1OPpX3x2ptu{V-gTqM9%c5MC;>Cr9gJ5^u zEy_SoM0lQS!`GJRY0mqmdFRbGly4p;sXX>{)oWVZvQo z<&OJr8o%woI^d>|@{#)_dG#+%Nv{~;;NOFDzkbkzzr5jmury6>w&~K4)?<@C&PlGV ztz{~XSvbjK>8FGl;U&NK*gpJyGJSV`{-RAsJ>u#8I!CoT-{yxNV zW4oM9Ip@nBkDa{z%2tb6B@;hAUvW*yEb#86jI_g-a;Lj2VehHlXZCJR>-#UMW4KFL zMaQNa{!wmaFWNA}ol|?J<-XzgKcnQO+y{3y9no8QNq*0CyEiGe`(Np-xoKT+?YLId zg9H7>*`5_DHKTMiX6KF9=?G6f6`duSmlN?;d`kI4x5Bi~=l1@-{w>{YYDN3}Cu+Gj zZ>mlBUS6E5rzgKCm1*_cY1J~FqaELTSDWrVcQW?aL%#i74gKJH&iqetED zO3!q~6rq`&-@wx`vq$^V^B&tki z+&W$?@hs}HDOx1b1-@eGA`>*Grs#P}6rsuwj(^=NHcB+#{ zWWM_L37xZDZb^MB`mC^RzQ^*k`&$Zt`nAfpHcv91UpW$E_)&KEpw8y^v)*S2=ceE9 zJ{^|mQ2$HWDXGz9>+LhKvTEB;q^#diG1K&v$@gCco2&0$aJ+c!jM#@cM~!X->2F>3rschp0bO@4gmY_R9qSx`u%g(oWcFq z?Di*gR@;6RyJUBVH{DA5PNR#8<-NZ;AFRJue_wF+j8%uxs==&I&2&*yk<*3RuXUH$ zzHIOENDgbAdRxlykiz>>kNi^$&WJ?iMc&PEv$}LuK6Pt51BjS}lQyN!w`R~N@$@0Lx+OED zMGSJXXFr(m`PEF2z5J+E;p=6SyCSW3=v34R9i7!YJ5IuAhVRj0+v<-mruQ2wZaimf zx3F!J^6QDZrq0pYCx6eaTXbu8O5q3YYSjhV%YS)H-x)8yttH)v9kj8&_I~bDZl+Ix zllAk8fv=g)D!cRJLvnX^sl0Dlf4*L>&s4E6d*;mpO%c;hspQI4J$ZWm`P$%vfoqm^ z>2@tB`dnv!r%B?a*b(#2g-WXnZhlP-T7B5-%eoC`7LJHXbD}2N?PJOWZ)xwcXx6^d z;#*op)zsaq>XbhnE_ABz{+_I@5BrwyAJL>H*8Rb4&Fcl8p3%%#9czJ!jrlz9dwZ)& z5=<)-ayc~*E{E#gee`{ocWju14Kt|xxt8OyBROR^)b#4bKGjVh7??Wpbnb=B^BSBs z*}Q_gEgi{IR__g+mo00rR(DgvKUECX7(f7FVgXc=&{WGp<*PC)U!eXh`wx(;EzE?=kTJ}`T&G>5Eb(t@3 z6Xi`hEJrx+zwNbjuzs$Q%gx}5qP&~xx)&R&GFB>2_$=9Z$XNS*fqI{r#dfbQu@ARp zU!AaI5}wU)1Ii!b&kk-oG>hA{;Cxxb#$YIR{LJ zKjsMXEOET~xct?uSv$tANNN+`r?Ot6?8fx(C3_u|J0o7qs>+!m%sdrraF)L`OL%QX3vlHEnz8SH7^z+wSzPO-g*TnTlH_^U~I|aNTAu*>IV6 zS{Za4ohJ5Z!ud^ZM_wGceOJpz_+Z(w{N<06M)bOeJ3mdBzW1J)m#1+`~q@ajuxW#8{J#FRmk_mKdq2^VxEf&Hm`yNp7;7=O3H8{gAdy zH*GK0J_!uply+WjcX^-jOndR$kcA>g&CUhBI5O4e=1X^%*Fq6?&iova4%;5?bB(PE z*=~Uv_tGaieKxuvDeLJR(;8@&Ibs&e@y}ncI$bmhv&rAyVWYr+PFE< z_^GIve~ikw)|}rt8{)aX!PkZPmP_-GS|<)Zi4&UawlG=RvE|9F-TLOq6^424aVM0$ zY|hzdZ{Dbo{WLl9L5sdC$91!8@YI8u7h4{@wb2vKD{(4j9dP``x5;k{pZ&)ud}&^d zQPKJC1<%*r9XZ9eE%CbH=k8>C!zG90M$bKdRWmF+QmMsu*P`CXvlcie?6WkkA9uK$ z!M*~~@tA011h+bbfi&Rzd7@cYdI zzvA}V$Hf&jo6p{Bl-kx4wUSpa{nl}04J)yEalVC$W?*1{%CwEqca_sRmu$*)*uFXR z$UL7{{trEx*O-itcz1l^?{hV&x@YCx*^V7M?Bnjd;B~C~R4Q?3)rJ5i1HL7AF)3;8 z+uiexf_CrQ+^gFs<(hs*l_64ZIq}Tm<7dleSu{P%=$fM1+F=-b8~&$1tJ3bd)B^>B zHDku)6@@-uo7}Ni`MZ!wf`8iQytZ_uWMzvK@zO_WUY?GX{$dk);y=#%oFG)Yn%b76 zc58dP^5pO7%j|1a=6Bks9n)|LIH!`9J0_zu{d%0^_N ztH?*2Taizv1f9zCaG$L1`o?MUm;&8^3vxf4U;5wq5D+0-p%N*bGoUpPy>Fsl|E*KX z8-&|LbN=!Z*Uc0Du&6UUXPfrfSrv>03QZMu6CNjAl8)?8kmvsK*>?Sntj>eu#ib)x zf7q`zZy;`~Kd)esFpbL(r_1--|W74*jqSb0B;w61HotY2d{Z_2S3 zkz@Vpvu#dK(zNilN@hhrl@6P9fZ@2Rz5DTTS^ns2XRMy=d~{dsny{>fZjgQAKnRs2 zBk{a(vRbceiqnW2Gb%%TZy(g&wd9wT#Hc9N;|&!r*;iX5Y+kud`g}jd=jxl))03a4 zRSG?7D)RjMbmQHX{suEFZWiTc8#-$(KTB1q`-kNF`Xw%{i=A z`+2+M${TG;qn<8yKfh6GPJms|#BYi#Gv7BMe;=c)q5=H17S$ z!KIVpK3NSed*QU=S!}`czR-m4tk`TJ{mQ)Jvzo>syNZ7I^inAjX)j;p8SDnkX>*os zU1el$e(#`~eRRtX_f(eiMWwZNJ3Dl?Ps|fJYP0dT+l1YTMMso<7^iM3c!gXVOgr1g zez*PvUIur!*(d}*(h^;IWnGA+^RCg8r})N+pJ@nu6%nCR7$IVCX6t6-pB6Rt zZQSFU3v~OGeS-f+9;*A$TUm_PqP%jsr~8C%{d zoicNK;l`0$@LFSVq}r={kEfh}&zESnV+9!=$Z_!U-m2AZbFa_B=h@e~tprU6vG*qKV*;H6A1WnE;3ZhYJ9RPylEHSEeffY5=4FpasBO9|m)vf6xdBsRLmER#MDC z7IV-7EClkFMgXvZ2mlK$KzslLHu{?hz#ae<04&`Z%sC8Z z94gWTKtdg+WC8t0Ngzud6Nobb{9)-x0Iq@_n4Sdy(dv-E6garZgDwCDfSCA&zJUk^ z(-Vj~07(ZB?f^_2V8?*5IuMCw4#opUJP@LQI0rB|K#T%%6yQ-nodOgEEGUq<2nchK zgP}U;k%#|xfCB;>>j1zE0Cxal0I&iek^(|TK-2=bm@=3#45l&4P|}jY)J1|00CE7x zr~^fHuv#6o03bCH*~I`*n1Tdxz!)5X1YtPHwonimT#i(@!4Z?SKqE8G6R_3MI5@6F zMeS(xnS z0T3OBV#1M>UW^2$Jacdn5L<-W4Fa%M5A=@*Ko0;D3m~fwQs6In0bl@t6Fh`K2+At} z7y*DYK*y8qi7~bRR`Tb79PGd0H+f=VCL$~K_+uh9x!@)2U$Rx z>FNf%52ulkBuwNB91WO?+*UX{V20EU1pvPgX1-#e1R3IRkAou!DJo9Y%EBxdGOS=Z z@CW*Q5MnU*h|zv98lw)5A{=UIS$>Np^i$V>kzqY~1rP$~nz9R^mb!p47`GYLy9)Ub zvP_i0?1nKojjn(ybOrp+E`TfP3a-L3YKbfO0R1*W`2^hSQBGp2YJh15SbA_?7@2_+ z(8k^C0N7%7;4k!Hh1dhOpFMa8?b}2c%!|k-mDXen4`E3$G{eF zN81Aa33ZsakwXUb;rxO{fN27!g*NOPoUZ!j4bXlBuoqr&<15HiB|{b6qx*ycR>|2!?BZ%Ya=JW^@a~T>lEu2Nt-2R3yPOv=dzd`6!>?j8qX^3QtpX z@oq*gu(Tfq=t6!s!I>V$0ArvZmckm=s2bgcUU(#gP&iNucTj}>Nk#vZfp{i|?q((m zAPy*W&ZB=A1AswC0U{zIC`bz2K??(R1*%LYV{o7!UeeeA>}SBh-_b?Ah5=n(!hgio z;FJVgkt&A%@rOHon*!%hvdfWe0A6!I6jE;hI9xvgRO6A~8Cc56?ST?B3&GK=XW)Kw zP_+%Hwf#t9019;v{^JG~G2ty@CKF!lE--n_L1^no;oXtnCv+&$l@GjxJ3g*3GHgHu z9U2CM0m~TT60k&W1}r~-DyhRd@Y)Lfl2Kykkqx$p?p>Z}bf83!i!1E(KyPni9UBxAsW=>TU6oGwf>VNgt%CLDHYJo>PO0eJLj7aA*peZu4t@;_po)4hz2 z$Nq*%eaGYz@}jZM3ihG>xZ#+b8$^%9q%w*98YXy*$zO=cj>TjJVe$z1Bo5~rwgW;= zEAek5Y{ujh@_rEecTDzgQvQ?ZZ;AdAlOu}f37eDyfOYNwE@$-<|6ancnCve^|3vhU zn4Atw-aBIN!lXoST%HhVkAcbgOUnO{dL&<76xLaxn4HC!{5V2mJfDF&ncwB`B!(O3 z944=Vuo#nXhAv$2Mq!L8Mr&{-MJP+CLo_dV`A% zdZX`NP(oLEv`J#n7f2++ns~$Cj_>{Zb$5d;BGqZ&uvUTA*%uF?0QVU5m-% zVREiw0;02Ph+iG?yFvVJ5ls%AlTydz*%P}hvCCqz5;8FyAzYsLhP-?{sNQwjmhmH!36tM}$r204_mRStxE}?WR5T{r6_Yy$lNUnh zi^*R^%40Fv%Lyl8@&XBi2xUmQBqo0+d_4g--ZV_sRHE-9%p>;Qn3N|bM^JAE*7<~# z)p9x>FvX;rW3g_)p~*49GrrANc{!y6&>2vV6vkzS!tNuRfH=EV=#G1nCumplvofQhPx<~ zCXbN65bJ>G6d^kj+o=dlJ|W9|K3$(P0h4EsNm*dBT}ZhVDIbT)GQ|Y>!E}9g9wxUC zlR8Z7yNSLPlYan{yBU)gKSIY%(LmoPyIu^%No zi^)Gu%Fht{Axt)(Jnu8GPRU_%JFuPlj&;5;>DOPZgCE3yfbbV4uNRZwjmfnj_1rNj z2clbI@|-Za)|l*Zgyxw1XcBJ&iNBWUF(iHpCOekc6ES&F#9o8RdO~=M*m;=LJxqQr zu{RK2!DOw%c~C1cS!+mMu|!WI+=$6eAY6gTPb1~2#J(JpmyP4|xR_uECU-O89!!1? zDc_07+k{Cy$7FS4a$ghs3&IXePAe&YL+nkMJaS!NxnZ4cP3(@Cd~#i2@5K3Xwv&GB zBl=O&k3B@s#bg&@a<>qB5GJ({lRuv@oY={AgYqWrdtw3!T+UI(WJ_VP6fpVZ{N|DK znC*-0)D*%QnA{13T9_9 zCUuPHm6*H}n4pZ5A139m$ayAAbOpi>D6GFNOGVFu8<0 zV&|+Tc0$$~tg{7r0?`RUBGxH^9!bhy;Bn`?#N;($vKQlWZWJb1O1KP@NBTppCw_$N zG@_?svg0v1gw$HBvjqA&q7(870U?(h7hsN$7Z{Jpvd82TJLQaZimYq+4#b~azold~f z_T!NC3q{s1JaRo_k@X8-4*LOeeFJ3u!kUBaY_fjg6FZk&=Kxv1@W}dwHy-}37IDkt{im{ch#KZMD9iSytCtn+0s0a?EQvVNh2asOCk z{lX`94!Mp3vVP(AlDK63!Xej99*c~VJtmv1UnnOsZe;z!BI_5HIkt1j`h}f=@FIolNp2>lcuSbq-m-P-OkWdxY)0I!ubJU-);3KUu$U>Ph((OnwZ>gREDmOsoU4 zPT_K}PLXv9hpbCj2T0uQm~65xVeiH|m#j;ueBwveCH!Wr^S)qGWL?51>lOYxVs9mW z?U?*$m|#KxKpSfkCT}v~G(sOtFxDUYnPXC;h;D_+*CTdILJLf`6Dc1@>;{-DTVgjP zG$rNMq}&-35IfhAlwH3%9oE_Qgbsw`Fgb)=fv$zm4-SRN)4*iMCE#|n*Wvh* zOs*Co3lk7hc35ZWkn#hVoTbEX2__YX$y!dBipkHyWM^Pf+lW1iFp-q6!DOXja-uPL z3y97pI%$X6MeO;6L}zcEMfaCgh{<{9jr%{2u#M0ilifn7G6|1c2PX9alQlS%wsShk zd*H=5E_W7*Pjsr>m-gdj5#Av0F-kF6_Xv;ArTw_aFe#$*^XB08tFRqh#$*wlO~@hS z67mQsLO{sBgyV6lFu8=Bqc|?-Xf>=y;G_eO^@)lxp^GUfE zDJNv7;qm7rWAcTkv0pYKkGa8XOnzcrMR4<;X(Ux21q{!F*$^M;?L_R z<;0IAAStIV<9Gnz{5f4D&(DM&xIX_Q$>$ScCnok)2; zJpq>k(r+%&d4zmIj==7O{n>79k*Z&J~;wR}zzwB03=@Ms$)Vmxbf9cHwyJ z_qZGgxSbq_r=%Vk4?gJ^gU$keTp5Xv1KXGQxs&k#I4&q5ao3Y^{)x+}7<^m>ad_PS z)B$OSU4-lN$$0UjNdL*a=KaC(cw=#Wb`|!gl1Uz^n1XfysmJM4kn$uCJ_aK~%$tHFtlYE4RzuSUehv78Pd=i7ZI9BQFuLzWd|Cc)c z9t?dLhBp+S3HRag|GV}C^BVDgYX861NBaL?zW=rSf6`ID!{hxQ(FfQ}^ywq~IL?Sk zz8FN7{%G_Ko#4AUGWm|cYN@;#WM#u%#A2diitAqALK9xHZpUO1&F}!3GwHNI6?HKBi@E| z_(?0>3(_n6y(9e45q@Pz7tr4a;(pSV<-r;Fbu9(IABMsi^mSt$sAIfjkbv|Di*WA3 zFI>^ri40L%pofVJ3i=9h5py7#84pvO$sF)!vQe)18%X?pCH%IL3?)N>{x%bRyGR5E ztd0{SsltyNiL;0@@ex7ePJjJ~o%`ueHes!y;h@JD9~1a_q~Oa)_$eo>fCor0zVxA{ zzXqkhl|>~vjXM}5~DCL0qO^$*1o zw1xUJ6o<%27wjlc6{4fMfy2rKagfglVn^qlz>ehMx-NFO867K>2l7GjCl8aMNZXN*AW!6jR&dB)aGV7)3Lt39lK7x}(Deq{ zQ9FWTjq0LJV29UbT1N5F#YGUup4gE;iY2fc5*hhV7$zqVlLLs1+Ep56_a!olC+Gtj zXTbRv-wdj#Eo8qrOg=?qbo|jK$X}JnbiZI=WJf;3=gHV%{_;ddIiN-a{X!E3)j`J) zZOBfKi6^bnI?9Pb5O3%t$yGViJlK+?fHL1XAG@v;QEe1o;L)G zTeQ%@>s-1myc`li&mm;>OD}TqN(isbL`Vd(5*%8n^~=+%IDBm&(|qVUfzBpmL+6ML z94sW$*EJ=1T1I0v#t7T#^A=u&kPkhEaB(!`ub@E7D2^P7gZ#tbj(pHL4a6BkKBz%t zNB-zuf@I|HJM*6%szW}K@VYPXN5YUSD@V%$9g#l%3}M<%=czYp$Oj3?2kr3JHff?9 zq=v^QGKwQStS{)7ZBae?`U@|>NT$bRn&*&R72f2LogN1mKp?}Av`ptiV$$;H(L;7K z;*ad;-iGQTdCV{wEq0I{?eJGEX~J;y1ysW50twTpd)Yt6n ze=*%z!(zfR_|o%l2Kc#!^RC6ksY;b3KvrXAGFpN z*ntR+PwON%`dH`>n{Ol^lml943*ro)|N6tmWF+Y?$_G7b4Yf52Unl8#NbE@V^29!L zeAoc;N8=(mrpS(d#TwbsTuLSRAo(_e@=VJpA2eXdPUkjkoW;nw zhT4)Kc6uDh{6R7tLb@*Uk%En*IB18rouQaOTL#;p-J6ut{-j+b%aG$p&pr2HabPe( zOf)f(jQjypVko{EX$yiLBY}?;u_IlSj0x(aI>{4_)!A}f2Ob`JL%uMr{}^W}a&4jG zz{Umffdsyuqj7MCyTA@F1GJ3dgWT=3jQSN5itR{7zwAcGgQCK){87WmPUkRee1Nd@ zP@MVj$B@Ve*T?=Shf&n9_`~|E1U->2ozJlA8~S@20(qp@YC@*)lBCa|13QkR8cVu-5`vcG!4I5}A$keB>pl2}@2gTP%Vc|~aFnPjIOt{<|@<9s} zflmObi~QY*Opg_G5X3Ylxxr$3Lv}h(MMc^NW7av@HhLhtH1$1)CgWtD~mt}@*19g z?Jjtw4t>eXb@VbFKNivN)yWgm&|ee4ugeGMKO2B@K>3OMdpJX?AS?8!^41~3GCXe1*HpMLRQN5FxH zauA`PQSs}0ijF|P$^YluKRh%1lL-`dccR&Sc-8#(9$yd#Eqswo*M%2TB%|Dbv>YwdIV)| zI~3Cw8U%Iq;i5!P7rmnw_`_!tIwtNf?h7h|^Jb{7?yx?Z%HTM3Td*?nMLW7T(e;qb z#N&WsqWq8@Q5oJ(k&N@i{(BqO^f=_9I--X{uT z0ujc){K;6+eGwL;#}@gacQ1mNqbO>qE_&7w#1SX)(Y%^6WeRPl=h%da69hgmkzvP6 zOa$4{E=i6Tog18O$cFMaCh<`m7QAT*{DHLaKN-l%3G6b%@<(-s>~H{(OplMex;&EU zJ`NvS_yCXWbPn*|D)149gN1D9+yY=5ZKuapYK$!MK|31IAsH@M1+pZWW2jy9^9f`} zb@lb}u|{?!xTr;TB%}2$l5uW$E}^!ONnnR-3HltN`vPA)31Y%qJ#D9RGaOAJJFbh5 zFYPa{ME4z)p$B_Zj@IC4Lo%9IXpJOj3%%43#J7iIi+s>HA3-$hZ`Of+6Vp>8$o>7>c770sM39*@7+27&O0C> zCnNCJgbNgbj2>)|jCLT0uMf1$95&8ynKtAj0spoR@kiq#kl`@UG8$(o_#yz==`q)( zDAW)1jEgoTqxFc2DVEW=?I3m(FOtNe&lh(b6ZIYKC??%^v0-zPoL{I+j`{CeAvNq; z2gF6_{87yLbMSS5jsyRk+fbfx;W#AA0{YxR{u5X%+J_!bVU3|2#Nc^{`hw@luz3#G zhk`uCMMY?tKE4V{3doLP0@iqzzz6nh=zK@-Gl%T(hzk4z{IMPBK=xlB0h#BtT@L4f zauQs(>2~4!7C}rgGPmjbENfUyVIVDN3l2H$kB*%l9CX3)g6dElblM?*6kiDrq#!<; zkw`{6kddW{;*5epkPYWHY^;V|PXK&46vTnA0O|RR{DsN+g>s(ahvT4_)=K!=PR}v@ z(W6ma`WOY{>mJ>AHJzaxbYWiv@kL3VbbNA+LjGFtpP@YAGa8cV_+!WZf9$<^fSgs8 z_y1INb$4~AlXUh@NT50kBoH8h0AcU22HC<6A`tdfK-^G4!@h}z9UXK)kP%QpQO8{n z5K$NvHyC#XH^zNb98CCqKWBOBNli54JO18x{+J7uy5D=wJ@?#m&t0GURL_SO|HKhV zH~Hfyj3;hw8vOWGZ`1`IO^?P8-zXgf@NMO4nBm*}NB@w{hcmR~fsr^e)lJPN)bYwI z+x)q1fiLH1%AKHwNjY_uMBI2rjWsz|uP&cwiO-TC=;rgmYy8@?@Qtqg%eUD<-^s6N zFLAR;p$j~UTU%V|Hk8SDR#>(v6-N$re=L07<-5-0z3u|fYxWEu@N#{;WehoD%eH-r zdbi1kU*}rtd0v+#(O%&v9I2U}<5eJWKAgQ%K4a8;9UPKoa(Y|`Y{DMAOxH+}c^T`8 zTipl8O(=O(E;1S48c~+jCFX0B-)P%}bJxsE=OQomxm3E5jt%)D4vqZ8t*ys-y0v4g zRi*@TYi`~XX(;?cCawm-|Y)nHIw&UCET<2l5_tz>+qP3WuM%%MDBU#nQc&l8$aTTgH2}7$we!Tzs1yLXM}8 zwlxxY<+mlzKNYtPL$|s|eTh#U(vQx=h*mai?(kYil&$!OmjmOesZ$-I$;4$4oAFHnp z^hvkAw#4gbb&(3mKdDmpw1fFWb??^I+g?lS=qP3GDq+N}?lIPxZhG)Qy0y_w*RRa7 zW{e(f>0nJlwsx}kfUg<6O}8?6w%!vFy6N0-yP3~a_k*#9hYy4EP2I;;_E4OKlFp}S zcJo-ob!)Y(EZS&JYsX3*i+UeJpRM`$21q%Gko)xRhUv_w~8k zw%f)QXehxqK2wZu+l{%Q%p3c3?DjS(Q}S=%YdMn>bGO;BsLdwL{i-5oY^9D<*0a4o z^U>_8ee`p|Bf~3L2voPX(#%e>(x0mbt zCU9Sj8^lM&n%RA+J-=}F3*Gts+jvwv(x~HWqc4MtK2J9u{hW026o+a;6&XFZs_3a@ zk?CdjU*S5!bE24&e?vu(!)I*eY^1xQznI&7d7{_X>^7=xEACw&!}WK5uzu>gT;sj0 z7?@u2)Lnn{kd=+c>_1^#IlpUbX!}0WIrkYdEwjnZMkLk|6s_sbQJ=R=^QfAd11Bx zsw(i94%IcYo}H1-XLQwv_516jp+9#>$j8`|0ZbeFs@dsasctOE&$BH;@>l8bcUuWg z$A7B)|EKr`ekRy{D)@yLE$;u=K{ z1~Eh#HlJnTUB$EK%$Xh7{YIV^*f?t%hypVvAc*v`JT_#3Nz;8LD~7mht`0-8J|?Kf zZ_GO;GD{(`kt1Z2H2omMqgUC>#J(RM|noCx9w$E4NL`~ zn|+t;zUy9r(et`4RyIzz@+$3V`VQ#eA?PNr(!Ss>Tj^HH*B)Sv@}?fc(xYvU6&GK$ zBCy%7p~I)Zl&86+)W_*M=nuM;=j3*MYi<3bzLpK4Cb&M1$D9^Ne!ravw6T7&egHp# z*Xr9h*2I)}47Z4!Zi;ob_o#OH#zJ{b$6=n|{4| zun=_kIg2F_H-61EiOt@c=c<@>Sz;@1(qyjsSbnSTn702qt1W9vx}JBG`WU}o!!WuP zY&Yawo;i-x9|`$ZUZp+2GraniAO2J4>TeEI`MdoND7<{w6BCGARO^Stl&|(RwMx1@ z1*zzxKLtX*lCH^&d|=bROPhkgCaBV%;3*oDr{mBie+-CV=O55*P^X*ycGz$uLF0FO zX|o^LB8~16LpNuv@{iGqp^EKqK2*xDYeTSxyxy{Y$m5O&0sX8!ie=>-Zw32u$LR2^ zH?Hk(=4h4i$m;W_AFmKwSs(3pY_c!wKcJ05(5>iN+n=odI-jINC;zBX?ebjJc7KMa zsE;3H089R&&fjuzYz-fai;^yDAO}qSdO3)#;G)MT+>&0m?q>Yt>ymzJ+LM)fTb`Er zr95P4Z^?94&A&!_vVTdswa1vYf0Dmge|lLSc>H)D(1}~l%KU&{3}2A4A|S(wzx*O_Ivx=Zdnoh)*ju>a{RN3wWgKhwb?HQOyv1^(6GH?DZkzzYVwiS z&w+1XBWTaR=6v7OO|>?EQ6Dpwa^dy*uGv1UNJ-D~IO`^W`AnSXH`S7^dpf24Nh>Pr z2MCrH-&ViM_=^1w(Ai_!mvVU?UoD^KgaqVRd(b3-&3-%XG&AYW+3ugnVYEqpt4VFZ zl97kyE~(51mfy2md0?H7SQYq(k4^3oM-XS@1ZbAO#*JmireAZEC6nlute5>Ma9{RM zlV9;i6EtQbkLFFj$r~6`%Cm^3->jeGc6(soLk>RJiplb0I;rSuQVmm+Snjmx+M}d= ztEtX%6C;>su>|B>e`pMs`a!`yd_(vAZGST?VM(|8>gFaI5l0Zu<_RhPfF+)gSWNYe zgKh=;b%-**);m@V{OCKj7-dyVtisFsk>7i-mq$r*S1Yi>ucw4gx1P7<=wd}+^2c;o zDW50!&W{WoXP50|4bwArjq!Z+z(BeFGJ3tMT#sUxO_8C1EXvDgQDC!wy}chG|0o`0 z!lw_IGZX^YT7LV*c6T)8`CquH(6`;GmHZe|>)$o($sL2FhrVTb)*d}Jd|7#vF_lY% z3dGTO>C&Ym`Z8?xH|dUz--r7$KhK_%pYqID`Y!datvSD|0ZV;Me+HP~r~D-Vh0L$^ zvudP%2UzR3>1tpzGjy}xPQ}g$1bh8^)|`)hdr->nt&BG&$d9p%jvSe{)XyUNGc!sq z^K&Yd{=_%lS;g>Hv3sxQxAL^S%kjqa?HPdGF^t&Uh9J|@wFGW>+k;4uCEy)Ht?yBGTIq2*yPuG zmMLoTNShK92ys4|z)JgA`!yRjAVD*Ib*PG7U@Om$2Mim(F3FHy@>l%d^fl>DxB4~O z>le#EW^~bt{N5hpISw;<;9YjvWkg?Pd9#LV!&O`?*mCE@@Sk4sXY^+|koucG4XvP* zj=r>63}=Qz-}1Z;{j@(qjM1$=i^CGAo4xA#}1Gk#Mpbjztb6N$|} z{L)DlQ{fV zAWlVePQPaRH}pUy=qBH%hf<$OliKS)7!Nw=pf%*>J@wR&@>8C-r#gJdhi5`%J~Kv5 z*V%sX>wLJJ|Bc_9ztrEKN_c(n$71C*<#`$v+tRml#%~q%?q}Hjp}qd1Je^OJ^)dR= zrF&y?%I2f;N_yDWzMz@Cv^`4wjlVY4mdM0S-dV>Sh8Qq>`jqm#{_Xx~`WV&u(SL{5 z{L&sy@_&(M^{ebhk*DjqrUw65MB63wOgz1^pP{_|SinLzc{_|P%QO34aM6V;BEMC< z-ky(5lZw73&u+IUcyY zwtTB-y=@QlH5*jq6}1B>s$HI6^DD8J;dEp4<%QABzD3vE%x}DEKFWaC%kvV!mcM4h zp~b-(FKomlZu%-aH7K!$Pq%CMOS64`?fh+j#eTe#Mj$^W%Q)qEOW4OaQohgD&QE>j z%$YN+uXgzreUZ264_H?5{|fR21V)$<+aC(&s}pE79%JBHLp$A4?;=i952 zuI1|*^e~UnO@3c{e?)s6a!6rI{8FD{$_CS`<>`J6fq$+2_J6~XiH)*;`+14kv$K9$ z0nvc)dP}$W>!y!dkMvT0&yqFu_bVK2x-W+fyS+x4Sn`{{?O?~DMyH=#dg-P5*X6@M zs&bxe1y$P1`vZTY*!kUm$6GS;&Ce?QMz2j+Q(t)}<-pHJkLK;pK;k&=G@9q{SnsQT zX%C}U_D|qhdN08AP}~&r<-5tV`i&a3#(rA&@a>G3@=czLFZHvGIm^A=BHJ6Qz7T6)*d9%9l8!BU3?7=_|O_em-FIcu#`3 z`GX%fwevT1Q6=(I|2dWZ0p4_e3pXkGCsfw+(0A_GkFwsc^6PThw4Qj+%6~GW1gm)G zr~SM)ULmrVkg7jvQPbN;<%8Su$1W;Qe)FMlyqTo?p?XUw-XYSfRs!Y2UcG!Yz4Brd zK%(`s7Bb?cE5((IzbRb4fF=MFQ@6ciR%&fk@MJxx=53{XCyfWu%2IiMjB;F6q=hVd zpGv=qX4T=XE^Oz-@|m?VHS8%k;`8;mc#EpB3O0Lbttv!!=skPekW$Fs$8w6lL1tR0 zO7_y$YPUk=5xS}uc?R-_M3kekdZ6KNf~mIrm0SJ_F1l%}(_u(&@ye6-cy3Q4$NOWJ zLuIP!5|*gl;;^A++ywAOE-QyY{_{(0jp@}F%iIQ%jIAigq*1=E5g5>K)3qH#Zv&cc z6*f7b{)n&@YIaM~Dv6Gkth^6rzpc`Kdrl@CF5hUQ+S1L(8tacu-(S*e7)y4q?XG{F z&Op1@h(ch-6V8A5rtk477Wjgcc#ID=0JX6%z`))!8@59OTgSfWs(-v-MO)r>+v(*f zEf|wu!-0)wVAEHVH3M+c^+&($fkR2}A8W%7*d~fbalkUg!B$@FR$HKyc>X-9V|0_> zGsYf?raV30v>_IZ{(3KhsPU6A&l{6ph1mQ6FYAia`cGl`Yy55>AE4nkL5sK8YEi^Z z-=XQ#cwke~8)NLi0&Mnc)NMUg(zT!2Hu%v$&$CK??T;vzygpYjL%4i1l%6+2hu`W0 zchJM$-CStM@)i!8IKyVo9d_!wJo4%%KnRF4I%W3Kd?C;H>l@7?JtAjOnpb{@qsLZ>jqmE86_=xW6n$R~SZ~`D>j2C6)t~;}hlGPj`#@!&B_M&NY-z4W}x{5Sap%Jwn+gwmc_zC@WW-u@mZKm2+g zWDl%M-0T~j{)yhXKh5$~X&axDKlg))bz!LV2b147hSz6G{Y`l(2*1^@G9Q}dD)j+d zWg1@FK@5ADFa_34zI@_O$bhEH9?VvV1MdZ2yq*wEVYh z{Nws}6)y^a@vDtgnXHfLr~LyBlKHhC(T;76`jzt|`tmq2+aEqn*yVWY_2u7+ydHmV z6#0A@d**ZfQ_ z!=&l{7#L5zr3FZKl1dB`Cj@m{TL4q*~CXh>f-HX9RZ{)P4L&x@I3!3k=<@+m^2+n*fq-&*xMa*sh?ZL^P6Dq>q#j29S@9N zqyH(LK)LxFY2egPgmS%Q_Rws_cS+at77PTo{&(R;*Ijg>W77E$pz|SRK#o`PKmPpZ zQyw~~e&zUM{t){E_|2cxp2-iMTIr9L9vcq$OkqyNF!<9mlfQe;qpYRpHh?=;r;$Q=waZbl(g;lV9BtXqY^CK3wv5 z`MZ)}t1ri$Dww#Bk9r;}B6L18^`XR)ztOWs|7SuJxlNa}%xm&%g-wu^{N;RzqNc4P z(9J%o5A#6shdB+KKk7a`e9)=?p4Nfd{CWr8)-RMz|2?tJ8#rD+<{Q06R@w&{a~!tI zZw}}Ue3xhK)8q38yx_dA4EC1r3*U+3_^s66_J1J{om8K)y}(-hY6S7}Tpl;#TsG_H z8+P+nK|bk>K3RYCnWVtNIQ1*^*9DYZ+DAWdu*;I&EBGaQ9D8=q&E9(7Ank3qt8WeY zh583K;wd}U1Bf^I=*!|H^@m5H?9a#>tv^LziTVee_iwX4N-h0?{5F1yk+{uQmG&|D zJw4_4TY2(+E_5bczs<5n{iQ)49SA!0>Fx3R`N@wgE`XL;8F-l(Onc}3cJkuS z8K7eiYREU(>Z^bF29rnbr++<8{!i4dD)qDa)@ygYN9pieeP|yMkjZ(%>^~WMDX-Uh zoAX=walbk9`);B_*ZUyo0o^pIO&v!+&iY(ayP(vE^2d(m7loW3zP(0@B}{aYz-$S<5Ey;v|XlLEo$pbl2o(|FU3Q*_MKYP^L)+i@6W%Wn_@aY$n_{XX|zHOt55X*Ex_=*J&bJF@;BS| z1Lytc)KB*@EJKzzFwowQ!>{|F_6AGxYc#8IV<7oQ>BU3p0p_E}ox=!3SDzp42;XSb zFP~>Y$6w}l&ownuo_6!4K4zcch4VHSA9M)VpKmZSWF)h1i8bDm4yHVvU)dF!66>&p zaVGh>UzqZ|zo@?|l5~yVRt(ta`eFf<@}`Va2zhRA5fw?gegR?ndRkC``4qJ+>O_dc z-)FlO#}p)OP{-(2f2|I=qXx~#-<2abjjX}HhCT8=F7i$BhJL6crY>_!jhe2Uhv zUC<+L_SJE6*x7LP%!+jIUiQE9)0XO|)>YS}+k=RFMzPA?og8Ye<{`%do<$kip1bhW zA|I&fq19CTNk4yZ(|*k4PfK`c)PBT~RDa}QPo8*Ur4y}u9%Bzw@)=I6A;_44-5-2V zW|Q5()-LKrtaM9U8#}6|4wC#uQ}1EuhhD*Mw?&#s+xhJnOjbzxym=@ zu+?XWorh*iG8lf1>m@zp@nv+gSED&fClPJj-|XXTDD~NE=~5e)z~<+ld-nVjhn;SI zIJEvWesdkVnb**ts>h3UN;c>7v? zH{5!g?Smhz=gKXZ;I;bcoT;cc4IBS(Yj$g9%dp97>f}Nb2XWJX`k;QpZ3Dwz{+jLY zqiThp=Q?66%hN#v6D=6~TN&|fgHJ>Q9?9K(ZQ`12lUNmm*Hj6OS{i~^YYa4nmo^~AD8S8t3b zr0E{fA-w5A9DUy=2g&llS6)bHm(RXNKR;yrroWtrt3H|k!3Xd+@6XWr4M75QKI)HF z4solmz6pt~HI%31A0arVy>zZ?H>aS34YNHMV4L-!VG;^fbJ zh)K_LIWYRF?d?G)82c7|qsOMd8y;S`2 zYmBc4?YigwTJV?h#|+p(7?_XNY$N0gA@2hq9Mt-Z0hAZX_=-!|H@$t8` zDp;%N9f#ZUiuxuS&kg?%{Zu2Td;Qw}VDcIhC$B$ghRHX&yO&|JzvkX9{kk0GyFaw^ z!>_mWN`It%rKKHgl=}Yq&!5~(8MA)+EkeCo=9n~|8!QR^z(sSUXy`C3`Bm!JQ8H8; z>!NDpkNTKmCB4?y#T*Z|`Zb$&kpgV`Q-(sxuWR$oelO4E+3;m_v%lOh{YPSHY71q4 zx#y^8AJSxzu92aMmf!rXSiIe~i@dz>XFHgK*YNb|gFNVO%hT`_`a{oi73ijq_VGDi zQ@`8HTRp$)*KQxv$IjVC+VX3S0nNCEt$fWEIB3e}w>k-6=;QnvaXY`v%E>r%t6$3x zs=>6sy*3!_llo-;fNmQUeJ4NXRP3{|JpG}czCo!_%AYe_8>h2BF!g<(M%NW9+WdL$ zney~gOx8kW{<%9W+C~>(z+umFJ&ZnjZ-V84(c$4ac=i{{V|6kn`XiQ!?qU2^A8k0` zBd_H@=*V5O|C@b=7uL903eEkiZC`6o4R$?pFzDu=;b36oD-3k^`uJq}tf&{SJLLRQ zUNo0sZ;yI0q?=ddH{2LAmS5&bc`S#pWMUOk=f%_#Yu{O2|4o{tA7Kx=mEUMwTvLO= zkG^^gf(p5d)K;+EM*2oDF2>oPb@lCFUX9Dki|jf5FPe$BvTqd1i+F4N+K<%t`;xwg zEw`{-7Gw*nld^KFsZA=px}&LX!LQh>u)NmEy-eGruJ+rY?1l@mR<2{l-Of^P-S!J! zG^^atoNGU6uabrut5K`GP1u-T1Dj-Bk;?0m6tw33O+*<&cGY*mYPnVH_0b7OvHYR^o!CwSqNTT*dU-dhPw%X`U-^kWg`k#)5<< zXm0+^2D@!)tssXbxc}&uuN_7FFaDox4{v|JeT!$Mx45&cr9C^UV-Sz1(Jw=q{)WWV z+O#$9-{Q8oMtZn;vCCpmvmRd#EREUWww3XK{?QoJU$&m)7pK=8rQGY>#Y2toX&Ws{ z$)<+6>1Q;6&s20=d4?PxTfv_deX;Popo6vaSOag?fjKl!{*ARShJSCH zL5t!z%^U2dR_a4IT?h9E>-zy)IB3w9{I?2o?n}5!2eSw1Tgxd6`{__}xneqQu(0pM zqWG3#dk4N>^?ju#`*ZcZH2AT{QNn4DF4^l% z!YAlM_(IFRia1*4r@`&-dmrReu;G`ACGpdee}(YGs2}>x5l;QUs={By%QtlTec~Zp zsB++c&XE4@aNw^8en$Hce#C{dTS9B&qBu+6+eG~?+Qi%QGNU@3wn;kn$KGlG*DHdp zcejN_QM|aRerHhljL1K4p4)Fx$p4U>aLuJ>S}q= zvFDzOr~N)T?0fn@GJJ!{$KH9B0u(Ey`1&{t4T^sdl0fcez&YB-YxuOq=Q?31s^55(w;M;yzl7^ z)h&g$*M|V6yu_48dt`YR9`5Z$9SE;Gq9{J2@9RR|pM1KfWQFn!I>WAHu(BaQTkDM;X!`-{pR< zKyGT`D&Z>?`=!GIdGy8fw@-@^`PhiC^>IFaoa696;a=4j`%EA24A@IuplvVV9V>Xb z{FnNl>FmXUVy6H2%_NOAqVt>MNxxheU%Dsw8K3r0JjbV-lpp@Rf_}CdMp^jtau%*X z-P`lcF&_LtnDQx1C)a79Z`miM~~gg~#9EzR2GzAe<)5SiLatGr}7RvwtI;wZeaQM#WmdKCejMJ;lS&nGrrNjIlfUp{3Gl4bkyH}Nk(U<9hm-0 zd)%WB0soarO8;ei$2X%pnZN8Poc?lWVs4E|R+EdD60 zCb7SpL(*x&_}7g9g;}3*c{e*OMhnA#L*N}WSka#NC}HBm-hTfY`gh_j9w~~Kh$gqO zu;@`=AF}2kfOir-@dt$OQ2PEM@AaSezw^3l*cbew;#ItbcoY9l^j|Cg4#5w8cLk%* zX`-b*LtpUqNY2OLtHq!ArNT>vx7UZTHjJ-S=~X=Gi$!s~==MWV`d;$5+xIxd3G2c? ze?mOs+t#>?;$M}Y{&zs&E5GbC)_jCXU-9)Wc?eGk)8D=iP&nycZ@={KU4%8{m=CUv z4nJil|3zPQ`HabgF9qJgVS&DL6i*!2kZQZl9;ZUxvTwuKUtrxW&hU*zg-`~m>;UY>HGPn!Qv?4Aw^&6u((Y4 z3dMt5kpEKQ%>R_ygYj!?oJQfAr+oc&u)|{Rv#yKGW}y>z@`KU6njhcI{GIf*Vft4! z|J-%tU%!KYqrbwB{@5q=q5jxE>%X@8RqL}heXHf~r}}R#dGq@9k3uIu*QY-{be2U zI&o+H_wL|dm;BE9b>hzaop_gy@(%34%!gHbb?Vzm@5HBdek{iATD zF!uUw;K!RaTQ8}bSorYg{HzKa5vFLNHBGdiM1KUU$P&*Io+`dcK?k2-!Ec;gD_X+2 zKD|wNn(({zA$(i>+e_Ycp%3N1R_R&(+VF`L`U_w3_0&uWi0YPuR0NK z2^>GwU7W0qc}wYAg#7P{K1Xx>euL^uuU~EdbE^uGquLj;A@L95V zOMKLkKzp*D$o5^ik(d8HqslJ=KO6Ydfqx$O$-ut~%>H0A#dCjfq~;^mH@gNM484k3 z&n3oxW(ueOT(GJBn6&Uo`Vb~>=JQR`hjkDQoiUJ5+p(s<=<8>q;LiGecxRt~@_g*b z5$`Y8!>rJWr!R5&jDdt#@8bBS4vS}Y_3@(>_&ojQ)B1{E5beF+?lr5=?}Cm#)IaTw zKFftupI-`ZBb@C6#y*K@A40Yd_Wy-&+JA-gxmq~wxyNpB2u3dwf-BD zyz%-FZqR1>EPcPuP*G6cEsAG(d+w|LuKY5ag&T!uC?+*5%-qlMYXd*EkNd~TPA+QV z$6rnl+}VD29auA3*0*+$k1y)>7B&=~t=Q3l$-k{|+WTY5zp3y~jaz2}2iI)1 zo;cL?8xA^{`d2aaNsRobg;RcKd3VT|`--0afPXVSr~j^}KhFH`!k-O&S*Wt!mYaDH z-tMp9e}0+UYx^!|@5FZ=RkN{lw-5)W{Sx1x^676oMR^~U;iw;NK-m2lCom=vt`^=) z-)9=qI&^u>&KK^8{M7#yqNP3FuZ8tOVV)rn7$0cs93P&(&-aJZjq3dsduRSbPw@VA zW909|uQ|orGyNNkeG~sm`1Qh#$PbGe4y{IOf~mgw0ZzJG?#KZh!f@a>=vM|ta? zU9L;a?P zKmI}ZV&R)A_=E~Z{ttvxKDgRnzxL`{ajNLqU$>EdzZA~(0$46p;&%(vUyjv>zm0Mu&#cC-J=(X?~Hd_mB3OcCnAIj|M*& z|4j_PT%zO$-_?ONVy34*MaAC(Elf4+W(KTU;4wnYLAxiL;4UN5BzzD z1?@jY@$`q^2+t7yhoIxneTt_)A0q#qC;V>Nfbce9_#X_6|GpT64{-!C_&Ww`Ie4X?$Pk32hgQ)Q5_tyBywc@#$Uyz5s z$=`o(&F%v{5&rUsF!b$0AL@(#S>L($)$IKF&ggG%7QRIEU3&D7!q0>s(f2Gv+K+s| z+vlLb|0FtXw?|;s3-q5{FMzQ}V%87zhg?5^@%_ZCCuol?LSHcS#PoM?_V-SFhvOf}**?&Z6HfX#Im#U2 zd|q=@;2eM9ho1a*ezI1K)mZy7r4hiaFB5lv!uJO)hzh5DN-w|Z`^#a^@xo(;-x&BS zT8O_2z8Jsf1^*>MUmIp^ob+qN4}K*0DGyvN51i$lFZxX32ZH~*4|;$8Y54PI4?E8L z5i1{8d&}1PvasKiwc;a+?H>3u!pxuJsiea1pQzdWy2pF}Yxvo3)(TA##a_WrdyNQZ zdr`la3TORZ|7~xN4Wtv{Gs0Wx`$9wN$KR_J&#Er(5B+WxK32TP2fY)2PxMVh`$o{$ z`=RfL76raUc(LM-M0wZ!$oo_J!#kew`f6CR(ErtHOiJN@m_J!|G0I<~X` z|05NC#=AMfIo|zL;|sobt3HJJ-}m*vZ4Qe)gy$)KN8m?;{`J7$4Ei?$Zy|r*Nb$R) z{Jo!df5`hKTYXmN`=T=^6Mj0iZtL;09TwBqtJ__b-$(wlMMu9@(BE>Tk7wWg3;2>( z)ogAVAM{skUN5vHES3lU&S(AZC4Gu;jxO#|zrzjbxu`JnOZpf27YZ*A`nvERHmlou z@iW2yLtU_JDLy9ZGh@EvJdZpq@XVn9%lfVlK1Qny+i)#svqr59s>2l zzp{SV1O3w;-(TqRb?jq-`oo{~f0-_>wS?au^krK*zBlj$)fahb&m(WI6&DF#tq+0o zCv3wSgs`6uJ~q=gZAw^A_4~BGS<@4qlt1AMXBu+)`6?^v@ZT?56@R1yvzAEu({>E7ven_IK~@NcgC$q!ys!Mnah@7f7d2g1 z48j|)cRVZbRsT@8`<*%e{q#~NEOGXN@vJ((;XkxZ`VacOx1t}IXO*e%-TS!xheICu zUn_fLe(<;oCO_-p%-@O8hxS+y@;b*`{DZkJ+rN|kx8mI%t{1PAye*|80sO6jHvU`X z{r}DXxp&uXf2n1q>wBl;-vw?2)-u$>|MLHR?Q`JA>b8H+@nurr*SWciSAEjyIX`b5 z`0GJ`jV|Ibo^BfWV}WzLdG4D|&+&6X&~tsX?bm&L9*+FAr=6cMjj(6n>_0br+vy`l z)xFQaO9CGdc;~>seAfB%`NRIgEzwR2`isvv{lvhFe(d=4z!(3>@$$g$4tb{r{$kLN z4Sa9NJ0bA+z{dq%9{Bjc^e@KFtlx8^yKH^WoJ+Vwc#6I^HdGXxhux;}YG&XQ$9CCV zoA+}!)1NfzuC>?Sjfq{h7Q9b+2;ljmC+_Uudrs=IxtBSa06tFqiJ#R)0QAwe!a~u>75tbkGN8+=gWlS(%bsUu`QW9ZCB}ZU zg|q#>KC8=YwQuAH@2+?iZ(YIPn9*gjUQ^-6)>Zy$e)#d1B2{N_5yz9wuLeFkRlkeK!3KEkU0t7}f*(wKC1!nkh;Xh?k5_#tpEVHyI^`$*H`0%> zq9^PFrv8b)xObPm4|uH72w?O}JY!$i?>M8X|L*7d<@f1<%8_1vj;CPs zOFT<25aM5q5rqDuUB4XP!RVK`(>`;;KG#}q?T6=yUZUuwKAExnAg8KY*DV zl77hgUG_ZiqhwZKy+D0(y|6aCeud6@gtcjPJ@R4UT#umdiNa|gFtjS3BwtI6yj?5u z;75MaSw9^s{#>tsUoU#%FR$n8r<{K~+n4?BO!0q49|H2JPs+be>mk--dH(SE%Y6LJ z{sLxvPE3DgZ;<_!^#UWz;rb9dap(Gh^}-DCrM`^Eb>SS3JMr4)ck<`>%y>-xWA!0) z;b`Z%EzpDg;2 z(l;=w{w9q2_s12_{@ohxva`{51fBk{q2k#e&bg+`;?sf-zD515idTx3c==b{UN;B- ze-~39{HLtnAG+)}wcaKj2#jCM&pCcEe=V!G=dUTkTZ#U9m=*5Xvdhk5FLqdT?q}F< zOcL!iL8p9hme2kHe16c+-`MBpD*|J0=xOiIZQ__VCJbnNhQ7WbJ%;-@dG3^_f?*~0Astv z&y6_!(V&B&C!V*f(;HD97<%FZc6a(n(816XAGN2`^L_ysdg2v(IbDy{EP$aWesXW8 z4~9L!&=YU6pVRjXIv9H5o0d8KEkOrEPuzK)fqhz{r+vl;zCdY&KkV%EcR4I-!r1$* zfw5mp@wDH*fj<@WZFX_`cLVRd#PfeKF!pUJ-l%!PTZ8{Ug8uT|oW5Sr-ynX4yb=hxp0ATVUFU{MkNF1iv10S-4t1%mDp{z;}zE{1*nM{h(+2 zeK+_&81%2b#OYrR{0;Gw|AD}?FZr{5Hw&Em-;MWm`bN>7^Y-!l6D#dc{%rqCf`7N5 zU$(#JKQZt{@)ycKFfjf>{`8L@1^>lCAA6wF-yQf5;wS&LfjMv5O?ak0gzir??7r^~ z4h=6*Jn@WAHtZ~Dm!NaLw6EfC4-B2LE9uS8G%P+h$}1jd*xi?hg1^(BJMmTDZPi0jdrr^sa>u}onFR80s_$xka5X=;njc)v4{tR;xSF4MH9t7>FZp4^*5Wz7 zUoOmiyr({deSYjX*AG7u{*BU89_{n2d@aidA1!*~-~Yth^Gbv%d`-Be?^gj7c;3!h zct=ByDL?UXKV$aPnuAGJ;enqwikIm7LPPqUgTe%tDW>$|JLb08*uu{ z-!*JMk@U{??8G1VkA~e}-zCaJU;Huk10UaPf5Q$uYcOGwRo;S;NL`flYecv+Fo-fbek{beg^)f zmGYqDD@o^m%w@uPKW3GFNDbXv`ViKI51i6%_Bh7bi?w0Kk18G8CEjIfx4-Wm`N8`r zzIEU(;W3K;GVmkQyKO(dRp9N{cl%x+_FWrh{gm|gil6%58u9@7^6ASd|Id%;`GfF3!mRMUS>1Nt zyt%{TIWZonc(%WluP&73LvK~+M<_pd6MYEh&vg7Fhs8Ig-@b}(@7=K2LH4A7&k6b` zw{v?8S1@CF;@)k$Z9RHx%^8l~-t!+G{P@?-il={pUsl2UjJUt-7yMwxzr>7JoVU}* z2)xh9S=H(&?{iDK?QA*Eudwg!;!FF04_8|x-hP+v;`7RTOSI1c%BU-I#iJqb%-!8S z)2uYza}=JSIC~TV2uJ+S&8xcs)V&X^Ecg_jY0Y|4w}fPYF}j4-Cof zyE%W_|3qQR%l!Woc>Cc0f-t$IPLMF{k*?y9Q=DN>$bTf>DYt2bZL(-9N^{Ynudiv4(v8xJSXrMgz=4Y{{sH< zT=%CvJiGOuF_NF{**RYRt@ve{KPW%vTgv;0aF%!L5#7ZS;cU-N`73qNm;RFDKlh{P z&$-_^_k?a6Yx4ZFb36v`E&l8u+^@m^U#bt``IEdqEOWTl`Ix+E5B&W-6+G?bZr|Ht ze&&5g#?sG5`;9rH+nyI(9`s@1nWA4E_@}3P`@K5wqM%F86% zr*>f4Ht8qb?DOB#QC_Eg9=gr#`}w*uDLnjEA8)4wzAA7&Up?!ee0`Mm05d)&zV7aB zd)NDCCQa}63va5jtN48t+`Px_eO~ZyAx!-)4g7KC2cHsnH(|!#oG*VMOn*8%=uf_{ z+vc;K0;3;eL+aOAf6fOP%MJ*B@Kzo86%~yCRL2kaY5!{ePI;_PlK$&Yb=&=P(g>a9 zzxYXCKQQML=)cUD>5rZLnfzObp7Pg*=T+!CeXhIMN^QGTX@pLDeCuKNhuKap_I<3| z%1^w}7redmJaExl{eAJt;a{EO@h{%u@Au{N^LKpF*B`n5db#A&exswjXM}0*T)$o! zblRNourU6{hj8^BeqVB8l>g4J`1s#4YEe-BHHv5X+;^w_E=Ya9?Dd@+_({#?o{F!aQ&Z+iV0a|v%2Uas$cfI_GL{Nkx@dw!Vye(JY;J^vK>Ii67->%Ame@z{$#9-i9m2|pDkygKkVbb5}zb@y0u z0Uh5>dMAG;?#$nbJNegzUwf9%KexC#1^9J}CtjEQbM@n`wuzp9cSe?s5%r)S3X6vql{n6=%aFE@U+0s2-BV$1YV-Qxs1FIGAJsXEO{+`e?H{h6Y~EQ7=Boj zzY~9NjO)KwQ%nk9iuzsauy}rw*O$NFLfBOH!M8RH+&P~8XkL%K?}p6?%jfo(f4;|| z;g;fw>znl0`P?rmbo?#p$iGQA{Q>z~38(y7^LuRnn)CMsqED&tA0j%u_yFNkDzByQ z$pD342F8a7o#W5YHa*tX+c>%S{$kZ%{+Z+Bi0A}-ig5OJ-e11zuz-%elHSSx!Q;>uTcH7eZaeQ;E@W(-uQpooAU7YwBKD@IX(N| z&-QfuPvRlGGw|yi77q*4f8H4Qge5NT((vCeNnT5|ls{){m&cxhu#a#{-{%4p-ViwD z-5>a3Cl}8KzA`Z7(f_i%PW+Q2-M_TVu`ouMvFSF4#dAmX6zts?GYRvK?kR@#{boaJ z$0M4LtMu=5@bf-I(sw(y$JR2_V!V9+aXrQ6%73c6wUzg(O8$f8sJjd2`A;Xl>;$)O zw%?qvpzI;$0!d<8NcsQ&! zCwwOG%)q~TZI7MB-4wWUK3o?*=F%S1J;&2yKGm@GHfsXH_eB4SzFG4VI-j@gce$@e z-tXjs{EWq!pYdN!R*wI>UFQC?GWZ7rXMcMx@VkPJ{FdS=|Kou_5cI>ZaerGHc>Z?& zzV2gTkIwxY_pyE@UVMbW{gU;?`x%Et*KIw;a>c(M_>1rCvENeqRAAn3yHxRfzpZ|! zmw#i>`F)bz)%IEc&i(5(pVoM)@_IwRJLMd|RXp$ae_emz=Pi;&A18eALHCE3I4q#k z_DM%Rb0cF8f%eA!IbKiD^TuJ}gCHur3=U+?~V zM$pH7vd6~u{UU!Sro79=o8_S&V@c`;is=x`N^O3&ho&FZ&i9#{--~$ z^@DUhN<0MktL3p@nyK_$58St^$DSwNZ`>LuU+l5FRXV1#0KP)8#7A}Y+T25%5qREp zp}vm}{?-?KJWc=I_}lK!ACr#|e%|c0`SN#x&(t5HZ7F?K;Ejc+2-8Fzg{O~q`hvin`u*et*FT?M9C)Jh-yHl?PI7!#;LisCKL>ti;D`T$ z{QFOK`QHfodHqGMUhy{JLljSc1T%IeX1w~D@S|a$M^Ejw``JH_{GIx*OTT5O z_ZAN+FJnGo`B%G(4fWjuD0JRWUVKrnJlIIV$6nKG&yW8Y^!u*wwfRV|0a)m}vDf}q$(y1)=EKFJ8?02JZ*7uQj_S$~`AEQ2R`^R3Z&l7>adTX!!{`Je1hj7~My>>r~H6!69(Ode? z^#pW$FX`VAru@T$pWjQKFPy)Z%zoe*;oJ{&w*N=(?X|n{i^M|!W52}D+}CUSiwBMB z>#K>1=lbfx5B1vb1uT#DqkKCb58PSan?B{^(V3y|Mep_b{|6!euE0Oc@;>VIe^<2M z9v^f5y91vQ_@2PWihq*w=JSL12G08l-+QpPn5?qrgnayEq2lRZZ-3P5e?{mw?<#-( z%9ucapSDQ;*M6bb-WA-`sM^np|MQAh`LSj4lb`-v#rRHQ)+g^1{*^ui$Tt8JTB~uy#2+O`N0Qv;Lhhio#j{8o8)IMOnGnomiyQ1lt$>p@XuFz@`D#vF#8|o z>K*kVbn(5p;eJhPBC|fv?i~ov|nRDUY>SwY;Um zso#J6yX1{(pC8bE*dyETTYqr>`B>QZtS|a{{l4&r@BFFP)|Ll_zd&L3+`fM z`8Cq-jSAs~N-zEl42gr?2kM;cZ4g#Md&!px>gx-#_d z#Q$CS>&icCJ1>8I*?`cA*Oh-=^!YDw`TrjBJMp^m|1bUT>u-N=dk#L}?K^3}{pas3 z|9|EEecS&#oAh}+`b-|1tOdzm!d3%Rz>)*HFMxkUIKqUjokg>7%>v$gov-EDl6qKS9DuFv*wvz=`B zk%{K|m;1@Dso+1|+GqN_Dfqe1&HC!r!0@AQ=AUq zvi{paIM-v;A6nKQylrLu#Qnf+#UH~*!F}R=gs164_``?#?EVfs1n_bCPCW7BUY~bG z`%HUppWi1BeZZTEUv6lD^SxaZo9VFl;D^0_$RwQf**^RJko~LY^nw35@J0{y6)ZhI z9{4|m2^R&v;$g>c4~+cLil_XKKjL)OgoO1!=kmVpu=uqw;hw; z@#mfX`oKR7e172FA9MZ{fnWUv=YK5l)56G8vspl2rry*SJf?#0`ikfOl(QH0CmlZ! zc)2k0vcF=_^@P)&;7uzS`{HX=`wk0N?K@pK?Tfw1pLpYMy8o|K8Ug$Bd?4+QJ;|T; z1aDcv*q8FF_NDx)eaWBp#opvkjJ?TUwKw@!=tDqX>Yw`lt@=~m-&#KUtk8!*dyzle z3p}-gX+QWM(1$?#fwTR<)F<)p13v|`LMOiLtKOf!<>caL!i@jl4Gcf_`#;UU=hs}H zAB4Ph;XjL?@}CL*OXSZw!YKD^`1got>F=H6S10E0JF*|Y6DL==c2%FfJAa+Swc`Cm zOZq1?9uda|gpb|dSA1XJCjt~WZ(=;&&XAt_>wUg&D$Z{}5_n&|rSE)yeRy2I{dV!0 zb*O$ng!y3yLw?_IM0s}%jQ_!!{>b>i{&hvr@n^>W^k@99OE~?V@elrw2S5E6{_MZ> zZ{%lxXS{+x`xE^Q{_Jn`N91S!WITjF$3w9EE`c8k_SM5DXcqfPo zJKpF0<3NYSs(T&dBZOz=4=sH!0w`SYQC~0Q{I)D`zMru51AX?q({pfP?3?&sj_J4hwu1ic6CCr70D<%HZ>g+YA26TK zRC> z-*I}s_5D|b{>Pu(U$jKa_obf={EpD?C1*H2-zV-qwcpDBQP4Z(b>daZkG{XClsB(Z z9_2%?mJdD4M<3{kX+P$(Y|ouSpXVz2l0WrDfAS~(T;QLCKK(2Ei%W1EpECFG3m}XEV7+~*Pp|!pU#qA0Y}r%vke^S{X!ebI*R4h$1nZXoSLw&J z$<-gYN2RB{*|phr9|?6?hh#t&JfoWyOg7_iZ?^@*(2IeAF=KkW+H@5~I{AB{4^5vj z`QV9$t$xjcrbcYLzJ_4Qi>+^>zOx1TgJ8!D?60S81bFYRVteB<6ItPrbB{b-}*TW5@I~jNk0l z?IuJ1Sj$NbdW=r{oPJ8H)tc-2TK&6f*PJGQsmulYM&!j#5O-Gk!Htkc8&4{y)vVR8DOOUNkw|Q&T-fe#~neHBz-}{@lIQh{(??r*J z$EMBMMbUD3u3xY917vyrCCcXg!RptgAX;gkqCRHqyYDcq+#d#I&n|gX$TaI#_!lf* zw1vD0Svf~vJ^B2jOn0T}rg#0Z`WLPJqC8d5#}oJ8Zu9BXzo?^-`y2joz>+0pds1Kh zIDfq<_f36@W?z3@g@H@?ii7!RMY4E{MGF@ZxACB8EIa(jQ%ZjF5ZdplHGUZlOLQJKHir`mXbaQ)=K>VKs^Bgen;^yBt0e%hh8 z$AV#aiaNZv-b&o?-2PG1=e8_v^*QIH(@sCN-QE*xdVwH#P5+wK-~EjN;^u$Fi;yk9 z^`C{?F5IeEunn@UKFz^_{-*11^rAI;aD20`qz_H6sX}HOukSKd$j5h=@9jW&KHhIw zr(Rk9BYnF!cb72aA%EkUHaxZKGgu5x88>w#>2nl@RUSC(r|){3e|a%7?uex}|5$xB zlnnHZW=J)^vcb+Y)Ni~hjevpR&Gzh)J9)eCi z#ou7WgKqX5H??niv)}TYJzK@%?Y3Q1mN%+T8b;Y}Pyd(v*1qGWuGc@kGCmFtO`kfx zJ%4_pb`{x8ckI1SeL&jCWfeDlL=v}+_q5MHKvrnizde4FHby~5#x}~EKbisC?X~Hq zeX?Jl)vrx&kB8%HKIuvJCSM=Xd`ZUQmpmX4lhUw9!&L@CRmw?*dbwNd$d^&7TH`#!nnK(aOvIKs})I zK_mJ5t;9{9{-F#o?XB6-S|IuFx%w!FYYyj5y3%2?%t{3wMx=Z=Jl8!>qt^I0UUG>4rcpC;!d1HM#H`(5Pw2GG(_CsHj z@9jmKIUN~)nmTpr&`^7Q#%e)EDd)>YwFM>+-H|^><1umax_nc}%Evzzj+WYDDCw2< zw)#vMKR8j|4;>uajuI=iw`;xi45z+gGx^N-FYg|<389qVc?T4Le~HK8mB3a;eV|E0X6euYmU!K&-}&E zP@`9t0$ceT&Yrzs;kJfzyrCnN_3`P${>}A=vX=a`56Yqs{SZ3WKA+ z(Vq+>uV~h5qq_PGW1oc!2<`fjOWU`SUi1tu7>fSo{yw|5QLSY@2|gmmYs$kkR0m^% zz5N%rX3zBg;N>^_21faroA=i)tt)-}GyBjP6@i!Wb+1E5baiL1Ly^~}`~Cy}+`XIs zygYbhpA{p6HML02*LBMW_VQlrS}nuCYyG3B4K};nUZmZB8=+Rbu=<4;R^{h~7hcqi zR$D#T9BQsw-D=Klu6l9xY9%#SSrRGYSlw&}M{T&aDic<%9%{CltJ)l%fQ-npYN!@M z%Y^2d3GHGjRE5;0H`e4>HB?Q|4AifBS-~%wqJvT#NU^k=^#wVKwTUokwAZEs>SZcJ zQA=|lvL&aDEXh~YT7|~Rk}una(JAv9k>&Fa+wPcY#s~1`v@-A;KKWIa(Jbn%!HMJK zp2p{87@z$EpZQ6<8pcPvjW>m&cZ0*IP#@gfd9G z|MuH&pEW!@Tum#67Ju;eAN}x-Of!Gqafj*aPaAKG81lN#?$gPK4s7eRuPg0`E;%+Q zpAlE=^1~nR@srh=Mj0CoBhL+;`n~wpH^2GK7himF^3iTuhhiD4GI$(BZ+eT6*K8lg zPhy<4lEp&u(YLkrvi%;!2~Kt+E51g3on~of=fS=iGx|o^5Sw{t|4CURH+gORn>$|% zU{9^+EUGJ6@*TT;s91mb5ZO!pY;M*+)il>xDb9yX?U2kc)inN2p2pEKFFH@2Jb9u% z9LHOKnL@;Ln=-PmB9u!TT|JuZP22A&gLy-`+1LwTq$%bB9P$+NJFf6iZk|ynYGqiP zZ^TY!&YVo6QAdp$B|mDKVM-fBS53P_ec2QmAJ}J9Yz%7G<6BP^4-^kPU};cT_bJ?c zcR$jc&)R5Y+1W#T+YoE|Sz2AaXk23?`OJ5>-exOpUy2o#y!&c>01tsO!q>b2;kK>J z!Of`cG+#TyoOvHRv;J5P9`Kni+D`Y>n_7iebZ#v_`&F-b#p{%0Wmu=E^$j$&l3-pS zFN$49&^ICFof#q1$SdI}xQ2e_Rxl}$7e4kwV`6+td54VFvYCtXYxQ%YehxCNFx^;@-2`x>)65RY?8lx(aKg*~(s-kprLAt(d)F*1~!AHyTMZ zn+_FPluw&Royu~{nbGyILBONp@<{X}#9K&R$^@lmxjW2nwOaG%+maW0$Sd0jK0wsg zs!W>sLDA^mZP9?KpYk@JIn#zKYD}8dqdB1Cp2kEbpNc#oH(@(1j2wJcMy;DexMet7 zDQ|GG}K#ohi$v8Es^;TzGq#WfT;(GR!VI-<~m@Rl28npB|dNes9|@ zCeQ6@iIia(db;ZU6(5HfW=CARj1yjQc5A`RxtV4*Z4GNtT*o!qd_yAzhwbd+D1$ma z_+afp$$UUjOUrtI3GhX^V$&e#%V1v`|EG1Zmc2Eta(!LgYObE!T)@)VQ&^C$QkGh* zrL{!$gl0P-7SGiztfiF&8LL*WwgtG7Ui30nW01N|7|X?Vh+I%zprhx4h7_|EyGpeL zl zqLfu;W-DcllvUygA&pLpQ8|}U$X-}U^HRqNNN-tk5WZ<6*YXeVeC`P57K(>3EAvJ4Qq}C(d^0)3AACex#qqsb~&pTG#58V zXb=T+7HVF{RHQF$u3FYyeRy-ZafBVRK?Jpf8fa9^Z4$g7vt3B^9BML^VWw*|nvGQh z4R@V1_o`N1#kNJXY&#fgRT{O;v8q)Yrsu3~HdYTb1{UOV zD--IbxqN!HCCQgqcXf`%q~*9KgW9A*8siXaY6Zo7zRTx_wc^i^O`eTcma(1J#`fhS z2OnxDyPlVEjFN1Cjl5p2QY}>E_4a0x&9msk>DSoe?((@JX?d0m6)kPBEs7P-UskO6 z(`D^)SH_tMeB`sSUBfSxWf4c-(64rz{v$nYz~N4#(OuTptuZ(>ad7-N@?_o#wFx#? zF<&vC4C_Onjs)ZpkE)Vnd6^6N^|uLTaZmH-ek&W-G_GshC}peiQXukto@q6P7jA1m zr=NApISa{|*2ipP4b#?nkH7AK~-n%*{wC4&sQJ2X*5})Pg|Fw@htzDjBF2DSqF7x zn%f!wTWw9!=A&J#c}p8`!{XY;Y;%dM@7sEAt`E65vkPmBy_V{CwFsdzQf&QfRrY$A zh3bv&8O4ghR?BrxT~=)HCgt!nf40#a-#5N#TeP&5pO%X$Y;S$AwWQ8}nHS!bfCymI zg_CZDY&UP~*|j;9`g&Sd@jF+bVgvs>GKj}2BzF_vE`C1eTXI}0>@Sl<_4VykP(f`Xd{FM5G z37Pjj^%bFUrQ8RGcG#&^D`x-M`MeKa+_R0AWyQ_Yi{%aYPG}o`L z=Mdbw@-k-`HFQ$EETetYVrk@`M2mZ~SsKxRCWX9ZTCkGO+uZMIK!=a?>X~I*KWgu1 z>ZE0Vd%l-;_qEot0ZJweG_tUmrGEMWZ{^LHB=fz(}bLy-9hSpgIx5WyLPx`k^laU6C?!LkCntb4+ zQ=ERvDa%_eZaTI3Cg`q%>+WgTWrz83$Pj!sUiD8KKeINjdpOdplZ~9T-|;8zVefvU zv#+IU#VQ`g1s|>0+l$}(s0E+NAjq8obU?sCQE|Vlf`SeRiu;J7 zxD(?R6XP8~LF0mGB5I6ijB$%=Vl;^nQQY^q=Z(RAPta&yjLgjcd8)e3?Kuoi^7{RM z-}1BI%sJIhcXf4jclC0X3!J2uFQ=vbjbeEg;B4CNXXOpDy^Jm~ z;)!>BqpFbcD{}2;)NdnHHHQS2hkZ}W6=y18jE7FpuYcEUl&Z`@uX~c zI5Xnm(@LL&d6YCQ!hRKa-oJm%W9_ZhsgnrguBp%BlQ+xTN zY1t13a6nY3M4QfhKbHqRj#Tk z1>N%!7T7P2r#@r!Vc%&gPE0{DljmGP79VxETfi_$E2;EP9L6H31tlK){atr$v&}X* zZ`~Zoi#FUgHE5uWTwz+DRMJxC4Nz&E5wvd`(k^5=&$MDIX)xLg8Adzjpg&rc5W`sK zQaKt_E{ACh)frFxQuT&Cdt&V1{K&$F4eKgi0}VpLn1_F)L-Juf+Hcx4-0vXa+Vbtk z*#{mNrXy#V*yRqTS{T#v807Uu6bY01$QPjoZgvz@KP@jJh#52TiF(~&5TOxLbm zK)AreS{8=;N%A-uiW}!~@OUE)qiD!f%ix-6rOvg2m{h_f-|}P}Zb&yS!aaoc8v@wf zL8MmQL@MtRAV@Z?{7#E{x$ste1GYhu(#yMj+z!(Xhj<%9c0M}Xij;jaQ6kI}3C-8) z<{G!Ve2%)EL1!BWaZ}RoLA8&CWZa-pk6ayX7}-``tUVG&y`w(fllwhH2$x+`I`Uwr zi^Vosu$JWr>9AlBFOKCmuXJBCIeJht)LfaY#3ooQ+J4ighzg6Tqxdn1i~j+RBw7vS z(v_`VSZ6cYHxSzti?`MMrWg7^C@roo+mI4_(#F_Liwj-eEi>t?!DOs>x64}JN&1KK{QV+a zMK6%IvMtsq@|SgHa}L^(R4!XX<%r6L%Izz+sbn6M(On6Hj>DTV`Wyi#>Dx|n4U>FY zTW9x#W|#tqJhlCrihosnRnZ3HQy$BK8A6XuQ#E}yLmQzk1%`QI+o3M>^Uf{HT$@>z zxh?a{jOoHLgTw`|m3QEm*@0hX27bvD43nLg64uj>|5cvqS6^LUJ-GUY>LJzTdgC%r zpDAWqUmr9}0Y_k$f%!r5Z(zQhmiHNRD6PiRIwu;rCLgBdsLu4rY?|qZtcYs6?}Apv z(yPw?p5uTQ@&jJV7jSbO;ktw5-smqmsQsA2x&rGUZU@qm<&W5zZGG}Y{P9%Qxgi=6 zZ5M5i=RPTm?^Kag6D^0XbMV_qZXuqRD3se8#cOo2i(iNJOjl=nW~(Eysb3Fyi)z`* z&z-PTS`OAT4sibe8OE~t-85z-x5wGm%OvHRsJ1*(^Ixo7bo7vH=11~?GPAC4m= z)snw6^DM;Z!Zp@~30QBSvON6$UiW`>{|xpk>j%Zyw(ytn7>>WGN=+)fFPjfhd1_NZ zFyGBeJa2mnlQkvfX}rPFmeH_iP*fYm`bj?eC+rJcBap0YWj}PYOl*C>Wc{*dwyR&J zp`DqB>cSQvB=V@s_-MQ|K3qvWG8%<{LwULz$z4e+M|dyC!tl-z-j~-gih1_OK@!8` z%y?SoSa;!iS!$W|BX8$eSH{!6&{UjNJfe7f@wj484xo5b2+Fd(cz>m?qFr6G1T04T zI$wi2U+en}+c@_|@Gou~>L+PArqtF?UGaV#H-h7MS`GjRqLrz$_M?XCt*b{=kF0LM z)AX_L#1%4y$Z|ZrHvP11aBD#K0a#w9*HH!|9(HILCap|Y#!|Xzi{GMo|lS1%-KfC)X}Em<^33&7V3P`ruJ$x zwiS7MOJ6D#8`GAw4GU=mR&2}&>Va^@iy%DS?nfevPn)}jE?v7KsG-Ydn{gdV`EkFH zfsBzfoO6R7vS5`3s<=YNXFhz&TL{;rSWji+zYJ%-+YA^mAjNm{@W|Hy@MSsTNZZBt z`sf2=9$|bRt_2FhMNgZHZ5W9=h~*=;*^P!UecbS^wivc$w~cc>GjX}t&iFbl_CbW0 zg~cB>Y#5&+8a!A(UnSuj(_NRUNZ%mR`y+v#bTiyY6MY%Z_yzxm# zN;NS)%hfYjyMry;EiROrBhD8dk>xOAxCpFnsKKK)wJtMoYho6^qN0MY*RT>eg_Ce9 z#%5z#gz?3B8WPAU&w=n9nGffMY>cqmlGf>@TosicLkSkn?K-LNrNL^NT~vBxyJehq zW^RP~=Pg@^nzb!9{OSdV3;X++^O*(L}<>c*rsTHYRAd}-ARvQZZ*0@Er!mCZ#Oi)MI#^It| zs;QmR7KK=-cpF_USAGsA6PBmQ7VaPpQX!LqkzWhinAV(*HGCk+B}+s#hm^M z>q5uNS2Og!k)%hum=HiYI-lVa6nXd+-dzjgn{!e3)m|S8^kj05>oT;?&hNlVxXpPo(1s!O zr6!-xfPMyC-AX8ept7$opQ82 zP}_~rCKg{&^zn&}w>bl3vz!dmddE5n*IbQrZNzKUll6w*1eUKjYrd=^s}^397~kfg z6SCtl6!NC1hO0iS@g>Q%-M{Gm-!erm%jeuN+dI>n+Gu>%*CgC8&ttc|$Usn8{&1|h zyWksv+@}ibOQOYpXrE9|RaoWd=vIhoqXJem1LS@uCevbs= z594dQid+HL`Uazht36k_H{4nbp{s$0@u~N`ltZco_-pxgjk?0#`mcTbDXGb+gHqE{ zjj1Bym&+Ab0WMSyG1lNFkQ%vP$~2;^=V(0fGZpVTPLU^n7_NF!cL+dXtUaiGE{C3! zsP)1tWY395-1fl+cECFbuu|Udh*-Y%oQ>VLWw{ z<6FDJ!%@(t+7%JTaMhE$Ws#fC$Ua=#TVwOo=6#x{Hy4`^YS#GLo_Ee{jD9hYk&%Su z()pbD0fq{h{`ewAYX8&>*lcV&yKTFH{u84hg;@&oC*53NCjwCpG2B4U*XA2==FVqW zF5VAco?VVcM!iiR+>f#w`Ivu(@iXpO>=l$U%~D{-2P|y>r4lmmF#vG1#tc(}kWr4(!KCPGR(x6Nc$RWV0O!)-k(9 z$6K2~`uT#)7BDx!6mCR#Ge~##5sV2>JQ({4p9#kVi9W&aW560{L97H2Z7buJ_*woD z(}(c^qeTbtdFlOWe5QQA7mZp#SEivrlwB)V_%rf=&rk7k0)61UBGjo=tK?gL56%*n z^|W=2EMbuk^_QlbigF98N~w~Y^%?$1xb*+B2)VNI2J7H<;aCnqe{?l}K|QVR8`4oj zI;FoENH_stoUYu1XP9NP0?d^3ypvGuRo*_R9H zNx(piZ+6yjew{$e%esdQ`43SrY#@g%N@S>@pgkZNEJdLp$`~M5YA5gB#SZ0noDeI} zhxSBa{nC(6+q7%{xLs74iYDPN5;0%jZmTzpHpcTC`o*Fk9O6b`Ut^i56zEx)=*hpIsbHIM!++f7;m{>Tzp_4Ms6)#kQqbKC1pP|A@mg{Qc)8*MnX zaqhHYQ&Hv9M%sN@AR&=Yooetc7CF`EGXM-T`C?t<0@CSzyIH)r6LVTz8;Cc-##4I_ z#{0eHRb2bE8ASNy2^J^1mQd%$l~8$oQ(kQ&HrJfxl~mb-g}3fo{T><@;`WY7d2!#W z3i_8!%x}udmvvyPZe0Yz2}_n%bieK|mK99;QZY%eFhW^mSsCvM#Eadal%Wt=v9@2_ zAtqlM(Za{?^2CM5xPbSd0^N1Tz$(YDB(;8M6OAgbiio0EW+sF2(g&XqV6fFa-(G3e zF)OSc1eqdYs*W}-Wf00>2#R*j6tTI1C2n=ug7HGP{UD{mW!aX@YRqDXyA^?gY_@T? zcdOdk+6v%#yi({ZeGZp0N8!jWM-cu#;?wW(m>YyQApBW`@#rnr&%PPm^AR>J8cXpt03tM4js z_G$hnc0X(#60Uv&ZdnF9{ljwTI)U^44cxW3cR%t84&KhD5E^}t;-Ed%u@w$dIG(sLlk z&*M{N+jxJARAmbFfxIaHlR~rsjt=Z2$(g6>`CxiQ`m^*OqdO5kPu|mHIM;iXDUKjY zjIZ|R(6#T3X)_vU(7!TV%k@L~#&N;bx;2{p<0PN4si>$p816XodqID#&i1iI#`W)zg+x(;b? z=W_g%J1#pqI~K=O3@+tx=YEuaBK=|d>GXN{Vk*Pco-hyoRbsWAN#QMegnPS*_8I7( z8lNsQT=T7VZ};cSp_|x<<>EMa$RUT|FHZOr2CvHUY3&VQ`3ROCFE6BW%>dF^Jym`Y*R$Mc@chc3gM zAF+oysl%KM|AeePknurcXNLF3F=NY(jwXh)GY@bJ`_;0ZPr}1swSgdTS z%v5%%?2q*$wX!`HxG#~7laz^=e};x9T&o;y|JS)|f#;FJ+F&0h1koRpZpUHz$UA=$ zs(-?K8PeL;CU16Ie0(b_Rf{(d3aL6A15;8th*wIap92|7gu6>+@3W&7}s^5uM> zBYVD&itQ-=n)QT-c33o^oG-)cp^F@~BU;?w3xWJ_z8dOtI^=g`f9Bf+Sv(qo{^HiOVHM-tY7Ek)VP$(- zz0h{|3@V2&hMc(w<1sOivmD_Cgz*UborP1UQ2#}Ue>%cww?#p}vwAEbJd^_!<#$gT zaK1gTo7H17{06TN^9}vRsP)J}aEJ0kJ3kxP|9!|8*$Mfp5Z()6Jem^m8OCyi>kh^* zAdE*?Udm_ur2ZD4SlBNtobf|DH$u+s2;*^jP+zP^k&W=sKE?HfQ+`MKEJAnzGI%8Q zr~G7j=?5A*h)+9HK9BmqZee>U1>rMWI@W(F`q3N=Dm+#P>$|y#KM`R`eQ1XQ@)TPH z^6S^GKmJ_AZ^H3xFpjXji44jLlgfB)Ik2wg(eg+=d!J{MGD$x7- z8$@ec^aVP^xd-LyNPo(&2cEQBX+8Qpittg0&tqxe=iPeZBbxX~$`9L{)nfy~!~WO+ zIR%9A2-`#bdgRk?GZ9w~*mIq26WSuM!(!CqTuk8R;8+%{_syP*Aj=I|*I&{8a|1uN z2KnX@#-pSDD0LasBg-pch#%JPJqVwOFdpv*z6W;da^tn#Yb?5;gn%=Lcg&L@|%DaafI`tRR}L2jK@7exxk7onSW?cYbW&x9~F$t zY`2V?jQK(|dycW%iti@amvmOg{4{1>s=D4oQ7X4)eYt zm_L{t+Aj3-W*>%!ek`=Z#J~>AQLZB5QhqULpSL5t5nJobx-PV z@{7Qh2mNAhV9&6hn*0LdhjxA+@mZ#1dCfj-b7A`-&m*aig(btyZUv+X^EG{v`C9yB zILoydG8W;uJ+PbAS3SbR`KQdQBZT3&Js2;ny{!`;@~v!Pc|-Z(eA4tRAm8=1=g|I( zA%8C7@)#BP0h2Fz2kqbNlhkt=B|pHe<;nUp^V;RS^A2=!dFp80Aa zF)sT}VttQo(@3|g1AktE{1RlJPWgeJVS5Yv5u!;Oq^@E3YRIAP$#U_7pp2UgUyk@i zgcA$LHO8y&Ae^$p@OT#QhWKuag@`*Wgh`O$+AP^I`3Ly$mPpFETq1h%yDQNr~#OFkOw zi(z+hSnSqfdjKt5%F@!xyNPj%_`TMKyaKqnhiXXSMb>stM#x=11?;6uy_eJu!1uJ{ zXJOlrp^DNcZp-)nT5WFJCF)v!@)g#VI>*=USc$y7Hyh z8y&HTHEagn58}UU#QQGvYGD~}P2J{hi~f#ZpltKsKVdrElg0{2M(m;eFT3Q#yhyk}E=jX?`p5hTt#VWmOBS z&ea_-!PM4zf2a>EuXm>Oeu972px(K`@?&H5L%YOf7n%8uy9NK`76i+nGK;v&wr8q{ zX9=g{??jZ85&Uy21y?<=t-7wQy0)zv*P)(Gh*gcUZU|lUDG{dgx@_q3y5%vQPKna#7?W$(_Onk^ul^*0!Y(*AM^%T9ej zsA)7V1!&^19<-66d}v#!zx553YuoT_42{3e12k*fI5KpM_!)(bPMA70=4Z;&k>w|C zS|{ci*wU1rBZ%>d9V|HhcJqKhCdX@i1~VR4I8D(ps)HGnPGX#V<{;49_R7|_aFEe~ zx83M(Bdk6%MsxZ`=uZ+L&y&$d*mrsK)v*XCO-Ib`9pW-3wqbf0e2np)ewIEOCnzEvcG?7iVkeO9OD_)r4yns-<*@T5FHL9Mb8$!Cmp0_4|I6v&cwFy-Ss2)%+CV|K4z$}mtAFAn`oTrw&53_PY6EEDp0I*y%_Re-M7 z%5K(#v!A20OVgOXNYV*g*$a_uZJSL|tvfbZCuiqq*M^H|e>m8dNc4^LS)izdC#nk( zelQ1by5Xk+C7nGN#5PDdMoh5Lb zAUk09tKQE-m`=w`+#=icoE?5L;<6EIMywuD8liehe!Vlj!hc92{jiP~F^St0j(QJ> z!{ZAne!1*Tc)#Xk{MPz$*sIs)7l`SYNsLaJ&kt2&%-|fso_9GMZ$6!fV~%T*qR*9i z3x(rnK&>an7fh#RPq}l_@21be`<4sSxirTvj;S2~w%vAH9`-g)Z7n)+Ilm&b7>u0y z!fG{gACc);Fa4C@x2pa1h8r^6>d&p}?+(Hd;UH0_+Pb=~ROjlN>N0itx>Q|+YhwOc znz?sKeFi|L)yystB2{Ccu52oWWJ}v)J}E1C@A3zujwp!!ls7&*FFPA4EUe08j4RC3;ft z?pEvZS!Jr8O^CsgHKCjt?0cQAb%zj=j0-sHAg}2-H*>C78dECb-{{iRQX|geN@kZI z>odgoD-q?7wTT|(eW4hnj&+`6ej$->3p>;B_9VP{lYGQu8h>L6&2#LKhh5>P1 zjro?D9PHtk^mnz?DTV_IhV-(l_G6MbHl!41hrI&(Kt3MV8iJ2Ui2rLrI`8|DTQM^( z;X>E=Q`O5&HhaJ=gbTP9sF zK2A2oYlmgMxo2Q1u}9Q1+9;4KcJb@@0eA>)kUhyQ0|9h_J@LM=7PpvJtB3`uXJQ?% zQ#G}<4K!8E05pbMvR?OZk>XaT&_G_+c0FOqcRN?Ii>Qwa)@M#IFpA*;zg= zx;S40!R5i1Ej>&6y>pkJ#Xzo?r7w}`fP(bst{6=)*vLXoQt7o{C(Z2P_P=ZM{d>6S zJ$x3B$GCn?4tJby#ln+R*&0>J$H$4QpT)h)?wQry$FA#n0Mr7#UF@Ml-VYylRBG>8!x@E7h26vpJ=vNB>0}$X1|EI zPR^22)&>$6i;ch!!yUBwj;upM%fw9VqzOtsaV`_-gVloz*zOw*=)vgkvc!OMZNt{} z=x9tdHX4TwIvX(1FX32F6n1zmwRz~c%c7iWy=wW{nZUpzHUPPQsxUO<&hA%Cx{ilL zhGN_GI96l^cP(>4&I_=6Co_<69>V6pxuVV+#^7FX5&s6df*a&U5(JfT&P(^fuRLsu z^JX~We(C3Nk+_uk(ZcAq=#uEcsNf3IHNDOOQ!*#m+TH0k#}3npZVQ=xmeY?#+-=<9Zd<&)Hb87nt%&QK z`A6MdW`1{vmEkpA3SID9THsRpUUv{5RX%aL(5y9S&@4%_in|T6%Xg0&%MT_ilo=}>9AtVp%v#u ziwmRcBi1|9Dqf0~N7rFbeOYt^_R?;Tu4Q`^TGDZBq@1 z!Tf1|{?0slsr=SF&P*y)E?*J-=Op~AL;pF|o#uWRRh}1O*Uqx=)`DJv`1uRilPAWa=T~K|kD3mSjMruEg zX@uS8eW05Z8L4E!i+2*F|Ur9!CmhbYv5=w zqDD&_=az8IuB&Xk%0iQB;ljyIEOGjT_}ywkMD;B9Yv_D@fSeVRFu|GLoJsji8UFjK zILmLS(4VMypNHafjzh}CWJai^mJTX6p5s~P^c$VYDWEKAVgn}E%rG$;Z{BW=M_hCb z;1UGQqCAaxI^EX2N?ZExd1G_&0Ujcpu%0QZfg%!tAzRyTv{sVBf{E3r7 zdr#UAg9 z`u;Jl_km4Gx(ubJqez5`#0gV zd|Tt%%E$85gExIILuQ<>-r(aCXZtsNM@*sc-`(Qzo5Adk>uXRh68ZgbHlFnb72^6M z&h&=YZK-`}K@Nc+^6cNnA2dwMKh(=-e?b+;{pB(=)&lrRI7s(_-y7#f;hbZ7>K~>@ zla15o8t|JC;D4Uh1gxKZaQT3;jyT)4;nN_0Hh4T;ri3RDevhlmJbMEA*R#0(f#+#I zH0juW=Ie4(*BYpYEj{%*Pf1N^uEuTJ2N2^=c5OV9okrVsJIp`p+|Yy%|r zZxlK1zw8gx-`WfL?*#n6idz5kyndVF%>3rzAWhp7>rk8*dAxRKho@tl+m|4Sd^64= z&%R>(swry!=Y0A9=k{;WUhZ}r!P_5c&(j+0Vn2^|!}%^*H@6ug$+sJ{Z5d1O7PQp6K7V zM_J6jAB=YSA#nN}68ST57|-#6<+JgDJo}^Z{7^6TGyl9Xc($*NaF95@!6fa*H#E6; ze7j|q%HI|Jj&whG`iJqJ|2vFBd#v*M)j*l0;NSE7QAer$hI{^0H2(3x3!Z2G)a67R zB#y6ak2bz8!{9;xwV989EDU`r_;a%O1NsyR-^2O3jfHjTxp-Cwac}lK^P|3&AIC@L zZ{s7|#|ZG&KG^^1A0NO$8ixE2#CfjIpZ*6~#QuZhZ!LHme>XYFxf1xUK7Q3HIzB$) z`Atti+lGwWQHLbj5C3EP%{>yYOoC^fkv>QIEpRT70WCQIzq5(+OfQf1dl2}re$N3P z*6$qfp?w#EH~a4Rea(x{jgj^SPkmq(p=vlXn9%*$>r4Cs@F9M30zW#y|1nd?`juW^ z^7OaHA9<$E-RYA^#K+-mIQz?0;8ATt-7rz;30Zvu{s>$f-w6DC@CA>5I$!|B+mW{lf?a%{KEl%E7G&QP08R7h~*iH zvz6!H!FNaeF#UEx`Y$1W4EUv9KKUyGp6&H|@E_qIaXvy@yr``E;#}u`i)-^g8=a@~ z$)cA>f5NfB{0aRP`-jD6c?N^G@|=UtOa1_FU*>lUc*~FdjbAyj{`UAG+TI2s4(T6_ z&Ygwx^GHXcy)VMq>Vte=q&NP4G<3FC`c%>g@Xz4GuS0>7Ro>RF!>- z#I*tGmwIwr)GB_R*N5XD$;QL^Xg8aIKhmcoPycB==bzNg=ATy{1OJV3dYDQ|uFosT>BJ>XAxd5?f+ z|J%v)mjmF}{66yhM&MV1xAn+xP#*TbT|7>He!!pm6rQaHznjPBfQL%)`hN_7khs8OPYU8z|+>o zU-24$Z5aD@zP*u0mN8%Zvg)@z+6*a$g3*7>_5Li07yhFDt*DCY}T)&fLZ1^MO z$MR10`H`nBjZf4vveKmJB7X$qWKBhGsY zhkAHL>u0*>r@!OeGF;pES`U60cxx}$gJ)mFNvJb?()-#U{@cfAeh1*%^84ytZJ*Yj zSYEbQtB=m`ejn<7MK5oE%4gY4KJ_CX>OUNOsQ;)0PJ0@j)SvS93*r+mg17P!KjS~d zIX+r?>OUL2=}-Bze~8ncggE_8h&O!=-jV)c`p$6b_n*oi5$H$xhl98JApcG4=j-IN zy|R2b2{AwR&oF{-B>`x+$LcRQS|exHGSOgY_k-aioMcw_kD_Y|L=MIb1N|K8(Q zt_NTGv8Lavs^jz*A^!rP`9c1netl5h!N6||@EyUMemRdH8ss0Qe*@)V`s)KcOyA(s zr+s~}d?Efr@U+j801xfM`YZsq`b^rl=>yIGx(Y-B5ub*$=|2_zh5FS7{$+;%Ki1>J z*Mr{+c?HBz1@;Zg{}14lzkh&-SDazFJ=;bMN^4dw^$E z*nZl9xSzK<__01c-_2rvmw28y{c(t2k-*uXLi~mV&iPn~qsz9FzeNI1=HHoqTPMN&7SV9Rt3A_-ErF?FoCZeZJ`J^WPgpvfh2h^GA97WzYWwIQ4nT^Jjbf^&maV zW9eys$`9>70KD0M=Z#gLRX+Wm;P(Umw&$P3Ck5H{xUM9T=Xhj%GbXBAfxpq?b?HtrvyCHPX!;!AD58N@gc-H|F--)D&NEaXL-2Zu=23H#Q^{68C?%i zCh1aaL~?!bLuK7x3lZMoFTblqdyfHc_C6o-S^wPgBQZag*YdlmPbB`O+T#OIUiz<% zJf8(m|HC{;n}FxbhwpiO8;{QnaPDmx&idXSe7p5ozz;*@evmsvq{Ba9{y!PleLeq8 zaoUga&3Uhes0 zzz@VVx{=Tu;78+%a|Y6<;19r=a}3f=;MumgrX)pEBH5okR$2Ew+-TYj*LV5ykpD@* z-#;~y^(FV9NLPdZHO_~6p7QqwZ}Q3KfEm9#@?+mbGZ)%(pU8cND{Jrf;$s0U>-!43 zHNY>z^$R}!a`5cC|L{2N^E9r_KICcJkY`^t{;7Sneb@T*AAXA zf6AW_$RmGQf@j~h{D}W5;5XeL-vWoM6<*$$10(k|t~n2={S&j-(YvmB#I z+z%U%v+ajH5Bys2ClCaE0iJbzNLpA|bx`EaLHc7ne=8<$cLBQ2=TDw_g*@v&B^k^5h?4aZm#_m`x8m371^Kg3z~7d+1W*IjWP z?$3S)yzRfpS|s>B2e3_2+0@hwIP50nYUq@o;?>;#{9@4Ln?*jtJ84h4gjc2Up<_XvGh7 zJl@;u!}TfsTev=*4c_$Yvq1gVBTNjsZGPlt!}fdo{?`!>m+-ZCBji|m-anv!F5w{Y z{=x1zZz3F?i$nY3^`2f|wrBb)YtQ}BKKg-&T0(3OV{x^MvX1_qxcU40F2wv3anJDh zd5d-YI@_0rJllWB)1JmZ1e~%K`}pkdJAt?Ue$}nc-3`7c4pRN4YQG7}I^xT4Z8*o{ zpFkfQkE#FDu&?R=kIQs^y_Zkl0-kCA?92O2?Q;wsJS#vR#}Lv|@NC;Z6%OwXU#0l> zJiiV2p|~FB`Lod2561PLp1%N&`UYI{9yaN(;0rj9Cj;XCFxxBJB#HLxjkDR0{+V;l z7YKr;-WtjC2#AAjOeY1~{ z*4z`x^HSR>>qg%TeNomO0)9=v)4udKX5a08kNyDM(i5jYF?>F7j*rxd^fdVWapoGD z^cMI_akl<9`44zJ8hj6eAo3*Rue(pz2ajv8I|h6&;LiqpeZap5ya~L`PZ+;jfWHs< zY(JPr2z7)HOW@SS@*DI=U2h%d)BhQK4mit5dK&V{vyMpj-5<&O8oiYjp7mjTak;K{ z>0?O8gWn40k;1{RLmtb*JuMRZ_ivH6_3wU|xUj8t!5BlD^Puj}u#BYZz;kS7nMh2Z z3evv?ynygEKK)?Wi*01K%?7Jra zr_i7H43F199_#amUS1vx#o6HPd4vhz>05pp;KwKMTLXN@=P(}y|6V2jfW8Bsb#*|6 zu@5ucotM_~vboQ#q9gXwG z9$y0fBwW{cp7`DgobAc*%`v{M1b>LPCwcl3ul33oyaJKSRy@UN&h7$zQUmb?C`KzPe)A6-hP>l0qBbl3z z^*r&(xDN3m_^-pqbb@!5K8YU(d13zhB;?b7hWNDq5bvyfoa=`2_e#j`EPZGAcM|fO z67mmE;K}lR9nStyK>DzM34?(jxc?`bUmA zBQLL-^4+pyqZ8B$4Ba8*49`CIGb!Pw0?8EsN%NowV=>L8Q8t zE+zH*7L^4h>xXy&;f5#epTrv~)c%i97>NF5FwUWWnE`$qf*{(5^ViTnvHzQY+ywr% z0R9bc&n>{yH$3S1oxxN7hn~L{`Ar0WmghOYr2l*s2Z{Eo#M#>O%zr9wK`vp&tLs3f+IO_1slkYx}#}<8R`DZ`MD@9MY@6>Hn|ud_TzJ{DEUO zsUL8*uOEB+6fx%c z{N^Nt7YTxnyiK3qnyIWK&iO&n^TfFx4Do3Re0BoodasCs^gogRP4)ZVoxU^s(4Iva z2Sodna5nqyGAHF)!0(5H#P-uQXdka0m6Ew>jlzO+FVxx-@uPtme!<)nelOO!Kl=FY zq?Ekxd#&eBL;L04b1M$gPABL$Vy;)#oeq8>u5Em#KE1$Oe&jz3c;4^X1^Mmh(^uXQ zxgUdPn2B~>qkqxoklu&Ce**kmWre>eTjpDD)A4#4;*c2staN*P48lX4?_!#~j?y0)q<{T5 zE#Jn0{4Cl^nEpA$59PlUq~GY?lnzvOw^uLrI} z{}S5oo8rH}J|**`FMRud{~Y*d;y)Bgn5Vfs6R^f$bz&mKGipFz5Lo3uQSv_M(+@z!bCe?QanFAhk{^FmWRPx*b3 zcPM`pc+-z~Z35pVz?uKvkQL_t0eH*5YR9z9ZD#uXIR7r-+UDQH(H!FW6!8H8-nf(E z`y-4*oc`F-Z?&`H2MDS-eQk)>f)DZL0Oxw74!o^LD4)Egr+?(VPVT&@ zCrnS?(pL`C^4k6PWckUn{f6<$Tm0W(J~tcu%{WNp=cUU0A*0p42P!P~Dd5`V5l8g+ zejxL!3hV5A`t=i1-o6Q_Mcoc+^quIFe^ThB3lXkYSS`5B+Q z#XlVOXZb0UM4sh0p5^O{a4Y{sC#PHyd^f})5g&$gi0=sAaF(Cxt^71@JLEx=? z#E%Sc>N^9x=}Vlv$^R7fwKI5Z!w6A-@}@uIUk={lQyzJf_r#uQc{lkmNv-y0Up4y@ zr|1yhJiz-+(fXSeq#qFAnY|Q0Jixa~;H=*eF9kT)+jZdUBK!e$R=CgD|T^676$eX<94%GTR0%0V!p90Qi zU*c)-As*K60DSO-INK13>BIW1!h@B>*=I?_!}=x8`VH|Cc+3CaY2RV}GCp~0--FPe zsoN49B=W3ZF+!?E&Dg@(+J|@s z;f5b@T-s&9=NTDPeZ1Olj)-HX{~^x$H=O(P z>_4_YPyfmBaS;v@L1>1X30 zF@0!1`d8Y|{44R$eo6mJJhWf3{}BH=`_aGBe&$~pKeXR}+JBfnv>(%xxBhd`_qG2V zgD?`~v;UaAiL?J0p6ow&{y^<_EE9v6p8dztA9kkN?>IpfXa5Otw!aW(|1q5RXU2oK z`!kdu+K+r_AI7JDvG|?!Kc)}u!}R1W{eva-kH;g7)Cco{?Qwn>d651mILq^O=|lX@ zd1+Tbe2&Q^=FjyM_$*27WfDgyFao}xyTZHu_*T&c2 zAUzCzHqLtr2R{IQGOk0M^=CNc?+rebzZiTdpL-Eu`qzT=k1o{unTs&e3|~LDM#^`D z)4tyX=lEvnk2p{5dy-}+`P05%hhG`so!OW7M~aAlJq{A@kNg5>+Kkkh{h0n-#0%52 ze^`3nk2wXn-H#!^G~lZT!hfdA`@h`3eKK3#U+sw(F&YqmEDjRm^L`-1NPNG23!KCE z+v~tjCkW#E3zy=Y&Iv2;N9>17!w3IT{nKw0b`7VbksxNT1%8mbt=rlokEHPJS2cFH!Z)eEf&E)cHj}&p*~bEf{S~;(in3 z+J4i+(^GQ4I!z}F;`>Z5;=IDQU+(|y4?f)AI~%<14|cl0yfQ7{=C~SZNL?OI%k!-q zvq^kEWF*e^ehBreLEfex_ls!jGZ+~}{yvaPw!7>VtV<7e3ZxF2Zk zk2q};;x7gGr|8d|TiuR>#QOg^&Q||NVZX8fzCR8Ud5$Hr2;7wodZ*u)$<>me?{Vi=yy1#e(`pEQ2%lLkq!fyE!isLau zA=ckeTv`2H@vPz_P-YU_2m7|Q54KN^hhh7q{jGgwf1i>00LLs+M|=U{hI9Xze0Llq z#xLM(_@VbHza2pkajtg^?}*BKVR&cd``?Xk^Fc=1 zb6+V9)`8%6!ZoU0i1_ok3h_S&_?;hRq%EDQ(dGWcg}C0u^TbEt+VG|iGcvz5|NgzN zGOh`E-3ObIt^m)x@9;eDcd+f6ygUAtad<`Cjgi<`Pkqu}|E_;i{r9I+1rg_5%=9O| zEqKHGtj@@M+4N(6*CCzdM|?bZ!yiTZh2Ty937@sk{}k}F-v?dr2Sj{PkU#N@!5cpB z^NiddHTlf{Wu&wGiO&Xac*8$3;y*2a;`B#`ljr=|_>WM391pwVAa#ZPSK?eC1L_RF zyGvHyho%msB;Qn%mGOR_!czbD;M(*jJ{)|AQy;^pZIYGo@=%{X$sYr}4%i<8oc_t; zzuPM-&zoSHAe8Q%#jpL8zvs>8GkOD=>Ty1wL0|fU=ZVw5hB#%1_|6G@X@F1fla=`c zWs>;5(_1)m&O*8aIDHY@1nH09t8u1Iq%NCg<@vEcDl7a9TpQ2y{lJImcLZb)Q|OT`jJ03;Qu-xE8h;? z3SlJjKf>Ag^9N=fZfUrSeEv+&`H9I}**EKkpnYu1#315DoJ0H%34CG#=Ug{T|8@8a z{h%+>pNcdj>bD!NO+WT`)}Q51{>p&=%Vt?=i|_jMgy{&k*PO zEacg~*T*wI>SOtlKPsZmA-rxJ7nc~}t&X>1ETe0~v`56I!=!C31pK*gm zcjRZ{+W0g3L~b;ATmST&n3ehVY@grTc-gxEd>IbXO7KH*UM!q*zurrEwn@@adnj7s5mR=Lh@>j34xe_u?Q;#CUW%&cnSv|2#M=bNN*S zK^&jp;$_Svf5>53`5x7DGN22<)Bf~fq&2hDKQfGT_R0D_T8*;qYWN3|-M_pWJYCsk zXd|RIc2WO-v9iKX!?p3%bJV|ZO+FvElsQ2-kWi;2@Fz7-!=zUZnLiLQu3b@Sow@%F_}4=L9|+e3+iT z!P4{jhUm2nSzx zTUNfExt-^K0RAZ0=kK1M|EsL~2ly>L|2+5yQCGWqp7x>t3d?^tcq>2gDGB`21U@E# zuTJ1Q1o*#xo0Z?Yu=d068(awd5nsRje!`}>w(lpf{T%|lh=auTN8e}ZN8)AXUn4%> zStgO^^V!B<^+Z9_y6ejmu{|I7;`neR7xyzp|?U5o3!o*(l{R=zj>nCGv4H7noS zD0%)3@brJI0}^rCqeKRj#Q*;1tn}^O6?SjG2LF%p-{bkyPSpPT(}3R(*TzSy)PFU4 z`!<08C2$+x-~LF~E3VWhK%1is&^HBW04eQSKSLmiLV1|51ox?e*=) zv^|=?>DMDCzKwmJ^nTZzn-2N=E9>?|`=_tj!pr0MJ{f$C$LU}8#I^Y!eqZ%Qq;JMS z+8OzC{l_&N>3HPNxYl2(Umf^RKlU}#uhFNs@$5XL-wU|)*VBR1c2++R0Ur(C?D=!x zOv^bO>0a=ZZ{-_OpOgLDVS-|v3jRf0+x&VB`2HySqaIIfnR6>~{fXz9z6sZ1`W4_U z{Vv0EGM<`0X&#(&+^e+uC*K$GjeiS#AMmspY5TeQy)v^0zh4EH>JAeW^SP~aGC%o2 z!2cEUjpz3iSpGv0Mq+Z}jc5LEfw%nM9;d%5`%o5vpaDa3 zV!H-qU1$CKo?=d(Uta^CMJjHu?P;vCt|Pn)FvB-Sdd?p|^6BU9n3MN!|K!sXr~N{_ z0N(JaKL6G0$-g5!%>Qhk{`2*u?+6dmcRNu1$2DHxfd}Pee#$bDh|}MO_^aSUd~|>h zL;N2`Sob1~^wGgNc^=_%WrfF(A#I33*Ei+l+lKFZfBXpeX{gJQc};ND?3{e>=s2G~ z$#ebkYhWdhbA7|{YZK3(2>-_Mt`EScVHt zM?+*^xB0@6r{{!U>~W4?oWI-nMZ6by!}S8>fKcMfwMq=yp2|MAMV=n25pQ(NBQ`S9pWlrXn4|=|3 zg}$F*`H_DFnDL+dIw$j$DL($t-{j=CIm})?UeCz%Wm6 zXZ**3S$yJ@ZTO2wzXk9Oefon|==l4oPtW<$iNJR8Jm(kG)#evm-%SAjg2&%_JSSs2 z@2QaLpHO=|psbtyOwR2J>@d&o_X@^0@V1_M73;U1f!X&t*d9vYtvwX}oRjs*O+G!_ z&!b3h?WgzaIhot-fH2a2;Hlqxo+n-hKEziBILpWJIV|4|;H`YbiG}!c0lxXp+WtRF zArQpzX$a0^g~M~8&*!8r-tstk?*AI!S$fV-u7@nE57uuNq__HI`8Yqc@@PH_C5*iOaC3(m(OFF{SQu82zDWbfynm;Zamlbn=@QcUElu| z*B^L(Ztn{5r>tYr_2Ai_M+=AFMS!rQQ8(8A$X^riD__(3w#^6l{Vw{3M}7JgeJW)9 z*e2jF#ypACaAb+h%_FM+eY(558z&wo{v z+r#$LDrEni?^KewzH7#L1=5f>esX*>f6DQbe4ZevcHau|Z^tO>IDTG*YxCbH0cTle zdi*Eg-@)}ko_`o0N+WLj*Pnp@JNV%~{~2)R^u?xs@_WVqr{kB;sc=Q;eARf~ZB0mphH~tXt^tYcX>>fF~LiUb7^nBy76>`6fK8Hj+i@G$N_8*S$ z(Eg`Dp4p%JvHzQX(`Hw=UjSd~^-1EJ9I3ed9s=e65&4Dksk_O4_3#RL7Q4aABY!&N z8$SdedgEOFe1wtMemOU=_S=H^gTUi4Vj;FKt}U#6eN+6Ec@^UC=csu18F;Q$*oH}e zo?jvNq9!XVJomDVAN2}+9k9MRjlk!TPQ|4?kJNzj)PdhkVd)>NE7PC*YqP-@J`TzF$5g&?c!-p=Z5PMjDw_jQz&rV(E>yPod7i972zb{96 z>kq{53UKaMeGj<#AI|Uj{D#f%M_yhbdue;7R3Ym3TU?udYmUsyvtm|W#^>B6jQ=!v zi_i3PpsVq;FYo6URlMwfo`7q!FY(=VRE2w83vH zTmfgc2@=!OzZA)Un4a@CD@GahxC=c{jfd!3B0w3L+`7Qwdypl z&sm;7!SkKrY=1?_v-ZdN=_W{P^9SN=-y!}q_zxP(G&3RkVhR!tNxU8cx60(-r}{VD`Y)% zfx@oxJv@Je_+yMm{Y}Sp(etdo!*Ol(*HQZz9pKcD^%LrM6L`~)cwGX&EWlU%SA{%J zxy1X=FTmdd{6fz&Jst^eC;t-gq5Ne2^rwb%eR(x_jxi*zFZaON{Li9yDrEoRY(eq7 zIQY$AALE%nKq5W_XTw=PpMtmii6`r?JLHG>lpsClXDB4ynvUskv-(Cs?Ue;<=Q_LoV%|NI4b8~A;^ z{yY9n=NI^_hR|2&INaa3Mp?)EV+CA?_s3{Un;)`#b>PGDe;<5UKDK?s>AyHXG5<9s zotOFdfrvvQe>Bd2IM#jJKG-|H?H}Lzhj0Dkx8uXN z%srh8t^RpfB@%OGQ=kZIO9`4i(hlD@(=p-o$1#R&h}*G>rDTSaMqQT&s|*UP6WTH z*M~g!PK2SR!bJm=o0Aq^?{ydLk*EkSsAf9^E!kNEi9?;Qc& z_It_S8}KWBQYp`_&GYe(x}wtI6Rhqw#3AkQ<4SoRW;?$={wp4y;rjL^LGhg4vP!vM zVfR~a27eAP?je!};r)Y=IA7!WoxpScaH;2ayr$9>z}xyd$$trXygzXk4$`5BPo8@m zq-X2(`P2!@%KI&BANGFBZ-1rwMLxg#Z?2TKa;lHta4X7->rXvTob_Qi?+^6?AKo9@ z3B27O;_rhqKigm7@4s=sVLA>{N9*@D5&nXpcrW25t?#`(pUj^)<%RgZ;7z|Nw^WKf zclGH%hW@pk&tLJVUUc#NW)Exn7d@X$ zf5#(=-?1Ki{9}rj)`M^SxaM!||H%~^(fs?Xz^OmBL4=a|AGxB^p}ER4EQ~;${m;tR z5zh8w_(Mpa2LD?eB&P3*v*ENK@z8$N0sb$K&qo-E>1%Md^u$x(Lwth(KldSe$MW}s znLd=i8un-YH%qK_<#&V^5ZChG3-!bFw+89M^0EGihxHfczu-~D&j`|o4I#N|}G)v2Y>c{S)|>;0aQ1KF*1w5= zH-XcihIn&;v;9%O`8Y^P{fJY)5D)bm^0JO+izT(D5A~yer~`IIfQR}K=lB)kp?>u5 z#Ld4`zcByb0cZK259EjW)Bh7U|IhTNfj9dSr+q@4Wi_1ssW14Oagf?xsg(OkZ)KGy zPWd6u{0*o7B5wYR=|i0Ui@5nO;%;&X%6@$IZcq_>=(eEPtjSok)Lukp7fARQ^>6Bb^QVPeoZ~D(iNi ztiPWe;ww{SybtDwJ0LEf$s+Oj1M>F#0r3X#Ax_@#H7%8H8F=bMBL6hxhdldM$hRc$ z;}SR?*^J}gdsn4f1$;IR(zsleJRf802jZ6?JjB0)vKY?taO^UD8K3uSEk4Uf-NN#b zxA?@jN#Nwa#bE?cGuB%ikAEiIy6dkO52=!SnP%_qhgP{p*#9ISpYNY?Ez3Ov65l^v zhVw>bKwQ7o;XFY&<+;8x{v+hiwB~>KzIqM#K|cP|$dBV|!Sh@%l0VDylTWO2zrytx z&o2bezH)%)SAC~S`okUp&-P*b5hqni{=0ab{A64kPyIN9U!Q*O9$zKTf@abx;AZfg zFWB=IT>n$v!wNgD|M$doy#5DHKE(I(cx$W6=kwM1meyYRLcTs~ZOD(x7r{=>suIsO+CRZI0PfuKs1z-V7Do%BdAM30HRD>-b{9OANmZoM=cE^; z7gW4m@o~jF6`xlq&bctCSJbPfSE|?6y>{%iYpgD;xJb+CEX7#|Uj9OE%)0&F8 zUsm*zQ0i8#c=PDy@y)wGw|nzZ&Br$nYR)vf=AO+=-vh_MFH`y-KaGq31HVKFlQF&O zSM5sU7LB`M-1&I!^hUf}R08s}=)m+KWIjS1AD-3R-kw%qde+_e$p6Ee8s&d@ryN*6 z93+^-jcwCo49+B`_vJ@HGO$9bSFgUk`c(H`+G}R7hF-+07!kB6eO~&)^f}SOC>s@` zhG?#93e%??EPioxW%Oz^BH9))?m&iCew6@CQCS6W7Y)63j1TL0<6c`mqBO-xPp_xTnyJ6N??#4YRtkzQPQjb zahCh)EZ2HgTtAbRT<66|GDn^V)2k$yg>OOrP0IcE{!EFG053)E%E(=fzaj#qYHEig zf7B!l4tqf)t)}gReOah9$ABc(`XZzh2EvEbr0iFW+ z`6$0(<%X5%s;Fvy)xxT=Rq6bID&pFHqZ*jMN2#V*Q>baEsjALZr>b4GwVxSV&X8t; z=ysMIh-*utIoDJyxcqO45Q z61mRdT!Dk>{rCg>WJ)eqLNQ!-Tu3|=A%4zDrMX<@7TyHD(T| zd*xdSdCh559+K9!Fg>Mf-d=iR)as&EnbQ!LbnEEAl4|~8;kE2@@^b~v=UY(zu<%;; zQhrg0YxL9erF_ex{9+(W^UKP(*VxL=e0_I%>iqgFWcs(8zd?LBfkOtU zd-~7KabP@Kf*#;X@gHeM2+=sTa)m!KA(H+le=L}C>O8|X)e$ic#S5{KN(*<_9{A!O zgoHSsNaM)m+P6jJ&{TmjGWGf0j9*QU%6|~zDXjQnW?Y1ZO5;k^OUr1=w+2C}({ejMXv<6Dz0UF>NU~D)F zi?gzFywn~3>KQ)KsI0TgSBf zH>qnjeq-Z05oL0o$ZY@{Y=An|-)Z4$Mi&WXeP&k;%7_0bfIQEXhaVH zG;y)^x!a0`nNZqG&XSmehbqXK|FH;|;$# zS&YU+E3j61AUX_hFBMU1CP(Y5OVrm@MY*V3bbd4?njF#k^>G}NQ^bf>z#YHcxk`%~ zF*q)jI98`<*TQ%7hx+LJ&0%C{jOIpj)88L_=HTxQUNiX1!K()|jg|fG+})|WA?nxo zcOB~+v`qeK`#}>ydDlb0D95+MbPCV#R;L@%)x0&2A}x)sivHr;7|S&>8i}DY`LAqe zEqjV}9?e4?jDcsUajB>(QoUGq_VH{svko~4fg4Pv(7H1zb=JM2*h{nj(l>^_AEOLg zYC~pZ1}@uTm@oDs{9x0NwA=!2$yDa$-MBsi!1lyAe%(rUE0uyjfPBjKaS+ZOni{GxPIgYl6{XQqj$i*2{^#8H<9&lC_=l}oQwtE*rFW68~F9^CI=vu*k1wpW4$C|5AgB?4X zs24=V62%f*G_EEZG)2@DG-_6jT@#Y1(b&+h1zW^u5)%b}@6XIUyTi#Mn*4sR|Nr-T z{hr;qXFlgC^UO2l%qjO=SDNf{lU=^<%60a;a}IXrAG}z6*hy7!yXb?!YQ5}AHTKGm zq5@H!P$Sy0x=5194`BXJ>R$Ep&`|%Z(fW+ca}e<)nJ%BPc*R-n`m@A(=`8n(KMhUG z8t6SiS$Y&$P34-}I`{Y-L}T&c#G+yp2Nb!zlD|#)PLXfB1dt#^&A-MxbkKWdk z3!81XW$qpADJOpCdA-*g??0^^m7SI)-~E7NE1u*uXQ=Ms*yuIK>x+gu>hV|7mo&7a zQ>K2{$bbKHwZj;#k_l^voNM&ZN}-7T9=s=}#uW1d-zt((pA*&ahBGpTm)_mM7g};x z_~&gT6XJ{jN0D5+bJccNsI-^ci|vi}TDvQ&UUp8~L8TriJwXzwZX(H4m4Rv`onxsj zG;Y@z>{WuR42 zF1JiCuhMgsVoQpb#JSXcY_-QVbQ7X1Wyz_U@1E3qSj; z^OPc<>?}T>!;#b<_{Nqwn+a!l3nnta!$9{ZBI%gcnO0_YiQ|63BE^xDZ&BUhA_~9!U9ku-` zH?C0vo6;$Ywo^&DTvZEPII4%%lTf9`M_Bo5&TY6YOI!9Dssb@4x!A5cL0Y!hv)F5D z`N49boJUq`MwJ-k!n{(f)++VBhxDzME0w-|8A9bU1}eQ>p+QU~-PI4I$#=IosN~#= z8uqS(f5pk-yi>vdab_0&U=>gae^E|jx|51EI%|k@m7Ns=s6fbG@UN1qEK@05S9qpy zMPWwa(!w0AqI*>G`F2FSoIl>@)B!XHnU>5fA5o}B>{kfjc%Ov?R#l_HmS4!l)Ie4b zAq4dmzc3NtWrM%GtGXIIg?oKcO7a_H18aV(kA+$QbHE7v*t-TXz17OAE_Rr}#x%xeoaxfvO`c5oe;8fo6TOP8B~ z+=M}0a&ypEe^r`9IrB2u%AJ@gcQUw&j?&DGetxvEW>HQWXZew0lT%!@-}KGC`J0uq{U%pMH;qdpQ@?g_ z9hn*_ZMTk$Kjw$omp^u#WnX^A+%@yPNtcp@`>>tCR&wfxd#$_T5lUp$ot4skzJ7Lp zim~AjCdGkV>mrp%%_Nb^*I3f{Vmc`*muKO}~lU$0;-t!qb8-J3mCgc3EjGXjZkx{#9oSMCC98|A5 zGBwF1^HsK=t9`1-Xsp+hauu)C?^#h!vK@(>^d)EhWaDK1&Cb}9p32OYE5B8S_K%<( z=?N>PGXs0&z&!T_K2Xk=M0oKhJ+!Yu3Bj3!wPct~{pUEliBhYIljZON2+9{2T z{7kXg8-ZLEo|62Y0G_Elsco$;|GH}r*;Go~qdU1OGD?l4J?0Sy({E+J%lKjbDgLG} z|5R_)RcT`XF8^jLuI%#(xpwsG;2J6ISCiQ<-KELRK+fz{zrfz?L{7(LwMQHFm8K{0 zt7YVt{IHC-=Y*- zxl3wa#Y%B9xmnn=_$e+O;HqRu>G+t=e$}_Tddx}erS+4(NP5|F+cV{6{V@O3&r|;< zX0XZC*xyDuN*#<}*{_qYk6yK&=?7J0l%%im(nek>_3vuRRa})cu4iSi*;5=+IgNu9o1E%f#g>xFotwcX zH;Mh`yXql7>gd!+X`CAwxfvO3_T+bJFZH7X`zELTsoWfJD`i$mjW3Xc?dPDZocvDh z%>+wEN%iL%LHDN&nR5p7ue*BGu%*;DIey6Rv|PnG#b)oZ%>L&y{+XQir~30U*yPf< zYJO6=ReV!Q`)PYdU-cS~%ve(U+Fk8orzC!6-{L$MIn}}Hp}0uK z^h|DI#@=Lb1G!10dTUplD+|K-n!tXY|4jmq&2`x~dt+lcDogW$`D%Wc+>+{1MK3*W zbtfm=O0C#8d$TE5x=PYlzi5p(jq^MwQn)kvC8+B4Y7RlHP= z{F#KkCCN3At0JQ$f0iUS9l6xM4sZ>f5u{pj-ksK0_N>0KDXC_2|yOti4$o|KxAAn|h33e;fOiG#^X^ zUrkP0M7=`B27>1O`;r? zQ6=fPGCPCKp87{>PxWm@NBcDXOzyFa++471XXR8s)xrF;a!0UlQZnzVJyN;Up5{3# zS8}O;^D@}v-3c@6?{;Qa{X|#aaGnd{~@Y!E?K* zula4|TD{Dk%GEye&+1{=-|QJq<+RWCo1FP!a&zf#Y5nZ{Qr9+SCFk8%uK8{D z%)Z&v{?wlMDNf~5|5V=;o7~Kdz1iTg*ld&C6S0M0?#q=_!1Z2mT_;}oq%9j{>FPo)ECdW zkjXt>E>m)+j*E+2zq8AP-fq0-|3JR@TE6&EzWC34v5+q|^Ese+_Q)pkIo--hWvLr3 zUvQQRyyPtRyR+PfXSoZ{a^F46-Q#!4hj`zhmaA-=tBlT7$c)TY@;NR)R#x?pJ<)Ew zS4W4-<*M7d>e;S3C07NOT$OL(_IB0&4(NS|cH3R0;VLs-zeHZfiBYR-ark@P$JnRzG~o_ z>sxcHaLd-;wWXO^!BB%h>I=FDHf}}zZL7cD_E+O+u3G0^rclEvQEzD**$vmKsXvd} z=pIjh!qA|eMZ%{i+g!e)>*c;bhU>=cs}`$Vac*;M4fM!Xo!YBx7nWsLIuQ5sYQDZj zu6u7=9z`jxTxqXzwV4}pbV12#@LZASzCY#u`=5UX0f`_R>{bdZa98XZ1-#t1aCPDN zLWR3yvkLPIeG1DLE@!{&D#lRJm1=sNxyT?WHj4BuS~B01<0fJ;Uv)uN*WdNR8UL4y zpSg1^*Fw%WxcNIS-;(*u<^3P=BXs10-4Nf3%h&St{P-S~*50iZz6RB2hsvnRgO!o} zM)nP%QvcbI6e%{#ngK4ic&}2YTH7RjqwKOXa94fo^7I7*`W~x~ARyUwLRPH-(Xwi* zKy$aDLUXqXQPurKyVo$DK2;;_K-!taB<%5azh_HIWh-;nbp1#xla?p>5^OLM4#hT( zp@u8|*cESc#d}=wGFP1HiZfktiYqo6O|ZyF*6xGj@WLGTDAin;;b6eKOBUw-urPP0 zUOVLNcFhm@&kM_cUO=`A%g+^k78EX9P}qHex{3U?=VW-&v)G}pX0YWMh~nJeZc}`X z^bzS(lIDN;v3868Y#Y#kmTLIRRdZD&B&+@lT8~e01rIohBzJ&&0UboEtAXbm*a6!9~9@G z7L75hHoFncZmniFx7pR3-N0s7<%ySO?_n)h4RNshV(N2hD;27K5)REFfIuHJ>ksXS z{g8y$x#^?^cjtW~e>F+|#E+7wat;XPeH@~{4d>=^ zboI^o#KPPh=YF#=_wYgrf#j>o*@+{ty8Td+e2%s}FZMGIcpUad<%?g> z7vJ{Bzf1DP^YX>B{r=_iX+JBLD&?a7U9nOuRw~8HjACV4sd8Sa@@T0tvsh7?!7dRC zF=tP=Yp#+iFC8MPz&+m#PQwc>tgN;vY}kA%x?S zkM+dNcEvHpF-_Z*wriS3i=l@NeZv_%XPL zCMoECCdGwpH;7n#{l1m)k7a`09sYHZe--#}@Jy0O_$s!BCvi~N0lXDq79EQ}hq3*Z zNBm|N{Qb$#j(E@-AvPyQdHFvYp3T)gsN62#C!>6o`W!+2g6PlR$RA1iX5?SbBIUc} zKZ*Q%`?Jmi+i!L$9y7oeuS4kfKLTr?Xap0q=JQ*kzOd$O!_rs%On+VUR|FqN5^WCF zyb@O$ZUh5X?V?A;gf6JSEv`3{w2*uFMJt1!@r_qo&;7KiuC(W+pvAWBkW>N?Qizv|EA#7 ze@u4zFa0*K=?@@S8pFTT#03dI%+~N0-~s4-C-VDm>7Q2jzq28E@h@j(qy-li^#*7;fH|Sqxr3O;pf#!0LOdgGhJ` z+Z1E66MsnOVhFjp(S8$+qgZ`E#=FldPG|U?zsbcppzpt03yBV3u&cg%l|6KSMsGOT z(<47?U-lHgw5^WZPDI( zr#p8cxH;mjz`p`tOA_r1-U!>~-&5b@yCUpgz2w>M4e+J#bvzV_uesIu_n+afkGO?# zK2-bu0y%46^%s?A{o|f9gMaE{BF%rFv$gq8eDxpWYyLU}zWR_z_5B`OtMBP#o(GSP z{o_*b(_s6JAmQb)m*QU}So+T;`a2!SZ*Wl8qho!~D28uMR-}#8}>4_TZl66HSve+xV)%J-NSj<*Bi_)gW$#K)CupA;6+Rp=YWrn`kIeK>O-O|o=xQy zkD)7jw)^ns;T@n)$NF7&XBca7Ip|J-e?Fo%emCm~bH^4@Uid!vDgI}IzYc#3@Q^4k zd_@MctCQbKAZCEgp7326{9%H}!q_dl`&~Uo(ln;ltrKw|WUc!b9?%=P4e)pWu7oS0yK5XyzjU4+zk| zBe_bRWr3%!Dlh-kS67ev!yk+DPsHNiO)QN6Tl|r{^|!3N_`gBk_>Vryd&Zc1?47@_ zgC~KHMMktS_!{u`0lF6-4|B%`#6TphvQxZ9g2z0```y62I@r@e;NIB&N3_2pcz5h? z6ZsRF{5j9DW;al0C;$g@e);n@Fwsw;;bolL| ze@_U|s|W?!5lf4e|=AZ0M2b(>` zy9Ty+E54Go_zK^g;McG>417z84@mYk9?bq{Zw3AY&t*Ly<@fCob}UW4iOR_S*S@6v zuPXn4+W%Ff|F_5fv$XokpK;VTjpvo%G@f^W(|AfgjpuC{`6m+jyRp9kIG@CSct&1) zv;S4)x1+w7pwCZXds2NHoi~11R%}V zQ`wq7lHV1a%4KNdgc7@19KYWNm%3E@aJHrD8ELKfcPviJNezozm~}F z-;(p|rBPCbgim5?cs@TE_cYk958T(2Z=`|Wr%gmRfHgkfjCgtQT3|bWJaeU-|4rvD z^O9!$10F|y?}%>%pGRJEis(gtQ2o1XM|%{0v!RG>TaV~B9QIAH^mVK^{q@j)6U;Q` zsRjHma<@f%EWZhhsMi_vA+mw{g~o?kv05dPUOx)*3Kt?6>$qTMCw1^ zMc(?;*7OJU=SO3IP&{kkG@im1Pt{lQX?^>H)B0*YF#QSZ(ci%uQ=;2AaX5(W5RZaC z&yzQQ4jY>D*XACN{04Y^@|#2~{UgbnzT~e3f04Y_f2sU6OOemozbPZH{+0T3;(uXZ z^QGcdBZ)Ns?Z$S3N2~=$vK0hM*IO-brNm1XU@mo?w57! zL3<->?XC8>4Q%Zr`GM%A@~?qYd5Y|mmw)QZ=AZ2UE+hXJu-VVSXNvWS-A?icfm8cu zB=+5YVLpz-($&C!L+@}YLkEIiNB-0RUGZz-H_v-S{MU!WT(NP)x}Kr2x?#kM|IXyo z_+JXP`0E|o>tX-VQc%$O_$0ELqeMEN*88)c3DD19+kkEUdSO;5%f_Gd??u-1#b?RY zIX=ZdBH{PP`1N4dpe@#&R4xQ>p<{f3BKvHoWEXwYg{jAy!;j4((&>E zI2|u*Q5PF8w;Y)B_u@1siVl1|#8Yct(RmS<19bWgvtGnkbCO8)y$fvh6<_1o_&+&5 z=YLbp-ZSwaSY?g&+ChH|dDH&@{+8hVu_==L%4}2lb-*Tn5#y(S#ebH(@nx@poY}kU(%{c-(LdoG;2TzdR$12H)qm9Z zCCIPy{qUQ2wtg56-VD9)~j>27f*9>S96{qhDn^Kk-N7%lvuzp-}$EF}}xf z<3;v{#`?+s;feep_=?@p(cV4q6`SWHR{eJdr}ZC^=>HGpN&eGVUi~*={GS~42cxgH zKPTcrPlfpZvx%LM@Xy(%xDT?1HGYP|xACL##ee7c5@yQn#FCf4seC=*OMX{kk&e#` z68Ro~4A)!tW}is%w~Iv2M7 zweK4__bulCo1*+V9PE!p){b}2fUm{hw`2RA@K(;>OKUU-1+8~ylC|}&@DAvw_%ZAo zmi=Wj_SH91`@`Uy{jVyo>puhVM}1Os{NHl!uWUzp#J$0HbAB!QR>VEt%=xv7jv*rH zZ@|{{wg#>-FHCwg*T&fiZwKR`EQy)d4qMVys? zBg%g}@@GYP)6dH1-U;?Ejq=Y#`HLfd694;>--H;8Hh(FMhYth%H#~InoIm$_Jjx6I z3|Yf!Z((cSP5%>|(Sp2;b{-_=DzCUP=6m8x= z?|+Z!gD8LT{yG2q8LtGk8?jT~UvISa$?@P{(*F;P{M*1!knf+!Ywk_uRo7I0O|Z#- z@4;}cWc~JNJfB~UAKX-b&@oiB0D1k!Y>Mwlu&yU4UNs3rx}I=0+X)`A zp1|IG@}@tJ_&(2EAsx}PN95f(%+;p{=;m^x@E7=VB1xopuFcl`9dUf#{gLu*eJ}fe zOZ?G;iO(W`la!%T`|)fwwiZTvC&AZRsV(Ad;WNa2pEY@{_f7tG_%DJ}e`bKqpVFCm zfBw3Mlp*;uiTYT5cbSs+w(_yORxXyEioahA;_eFg&J{NH>f z$nPX!Xle2*z8>WF58_LepZ3$Rw(K3{&*@cg?~~V@E7I}!NVaVr@vPKx1wUVz|965< zfwxcWKTm@-p6z%xs#5Uxhq%n?N%H;4r}Cr0CcpL`;rii0QNFlB!QXG2701tdeG0tu zy6ZOqb-r*Ec3l(JxAh~|`NGxY$44yrU9gqPbIE%#d6jMQ8eghwI=<>)8((u) zD|o)vd?L+%W7yh!CVX^)HNP>1cg}BGuZ{%UdR6n;LCJh3ydMWdo8S7bQ}Fk~Peeyl zUAy4E&er%7zz>1#c={|C7Y+k!O)S#&Ijv3YdV}u&seShp6MAm-g4b1>irSexW$OWA zB9i~xv$gqo@VW(mKWsVA4f1P|PvsR$lb1g#FZJhV;MAYvz~+zS)s`l|<$48wzM?)L zQu#XeS^4LJC9881(IeooZ0-E1=g@**FRbCY+~?bn{z(3eh*jUM$fy3F1~&gyp4I|Z zp5%p7`JW{6@<(lz`ZF1v`Xl?PKU!azKdQg%Tm4nO<_9Z({VfarT*CUFjvtr9x8sZO zd}3wz^>y?9+(*YCk=pYawpKs!4}q8RpHBEK!}9+8YsaWBtmC_3*-PbD9~v;HNuGrF zBX9ViZ43Tdyvz0k}A{Q(A`3N9fXWX{;7RZ|I_x8yyBnAZ<3K0 zw))KC;WNqGdQJAfsJ$-d!ClGMNg~N_#WwXv*z8MQ?Nuj^||ku;Lj0}zcha& zFMmvaY5rVByr&>PG?u6Gg{^!&&v^iNb&^Q(-)C#`;*Ueu_|g~O^d&!UDe~f*e71ic z5!<&t`X{XRH7t46w@wl*t-d`D3h_KVh`XiPm%Qwo{L<_n@XgS^M@IYE_PvSt>;><# zSf7K>2>xh|BwCt3l9xXwzchayY83qUkB;%yLwp92Py2s=u=Rh*%YG`a`7D(moXEdE zHOxQ9vQH#`#82f_p4s1XT97|Z!jR;*V4KR10Gs?{=LP>KNf?s+7x^!F`Jc*vk^hHY z5d1m8TVJ|AdY(;VJ$;@{ZEfo{t+(C*+j!V(jedp6~Vt*ceGrxm}e|MBH0^Kq>=UyfM^N4l7^{}R{^YQau3;w6) z7h9oc=NE0P$Ik$7En|@E_n@rQ{>$t)`zKsl@Ym|?`kLe)hM&rRHzWTc*yL}ZybZzI zkwhwgZMIgv)}!L@EG8uWT5OFk{q@17pIyJV{XLvNUK8WB!i;dfF-pcD@i%8{d|{Pu zSn^sQr}Da=Xnd`=wboV=X}v#??HV41^8xw0dc-f@SMb+Ez7z4%&aXdzxZtn1+z{n^ zKEnHM$Xon2eL8$U@!H5&`>JoH?Ryc}+E?=8r}CR*I=(ieB>lD8KW= zMgM$|u6c^C1}oNUM=bfi;8eapIF(;7k-z7iqN{?n<`BIH9?iCwM{M6M`eS)D;=}$@ z^!*`~-y6X5?ok@^#7+wfRqutKbzfcu0cJey`}SrA~_Ss?W{j ztvp@-o=R*qrbTZcKa}maJPKH2DaDf$eA;J4Hy6xhc2C!Wzenzlh-JT+*q``$(cdq5 zB=V)N_DJ=|B>G=fejZ;;JOcg0V}BC<0c9CJ;9o_zB|NR!MVl`wx`&zj?D-7g(M^lv zhg!PuW3;cx;xF7UgEvp`dmk44^8yxs^^d#Zr}5XdU5o!t^B0f5a2kK%H2!VzMymNE ztoBRsehJ>=lcLjHV*aTAy_xZcTRxrs{0#ZDKM1G(2&ew&`q(+xv+HB`_b$03uqPWL z^#@%Kv-=i!?R-l3668{RYl3w>N^|3GBvE0NlAn+N5}>~ys=4Eth&Nod&a{(hB?p`wchmi$=PGlhol!j|FJ*DU$#hl+tn{vO8G z;xVVS~97(`>$^qu*RTB^|_R- z)kpH%f>U|nRQ{SoUh7ZI9qIa0bEVb*qCH2I{QBv&I3CVeH9Y@s*OULSeaT-xJvi1+ zcxUp4)xNTqwy*kI+P(w8*1p3EC4YR-94i{be5KeJJ{hdO`c6-A`5p%IcVD)~f8~S4 z<$E#zN`BuaNpqe4?~BWC#PKn;e+XFetHk=wCB9YgcVqpUX&<#md&GaDq1FG!FinWY z_AL4J|9X)xthPw;Wf|OrY|7s%gHOreto*haeky;|fhE5_xkJuD8Xr5cwf-)AQ-bxp zSr5jZjv*rPxy0Wof6hrf|G*)!Phh*vk1YA`I_j7vS{;mv`%c8~MSO0=yU{Uz0$;~W z(SApl{Jj>9S&{JC$Qsu3Xqwv}G=0{C7m&C0pw@>e9WLO>QfA+7qm@dxd3)d%jlk>*?2`{7WZ>CDLMdsE-|@PqQCcpHv>Nu z?Y|7Z9sFR#FJ4vh*K2hSDe8Z97+>p0d^q?t_P-GE-ro)KdS*m)16bqH#%ESu>xTjG zcat!r=cnF5*VYS%URd(yPZqDkXNKdsT@QVP`rm|}elSa<{y2@T^+&b;zTmWfd_RLf zNbrq649DM7*(W*<%o56fhd}sSx0l?NY(Er$Y-=6Ndenqx$IKKXFAc0Ww( z^$WnZURV1S3tjEg=i|`-uaYvf1$bk&-}8w18N32@`%%OlpN8X$d=d$(@1$7sui@>F zDfwq-PLJd1Yhd-&sS)dWFxBlnl4!MDlYc(+#ioGgEh@P~$(|gKx7)!#1AIe|z@OaG zgEf!u0Kz*qKc^8Vcv+jo3Zz-mL$ z1&@dEw_ok@%mJH-5F!6e0e_bKnG;}KE6#?~(3D-x{dmok{`h~m46s) z@`Dd*@@t8UBn-WGApM)ZcTIpEpPAr6^(Oy3-Ql!}Ncy`rhj)|-OMf=w#q@9Z8ZSO% zf1g};@KXuilZtC@ zu=!5M<0?2k9xL7!U&UM3`V3FFG>rGL$cP>VZ_jpuN1^|zKbd?FPIR^bs}GCxe68lz zpL)c+_LuN|X32>3yy7No*Yk+yd%xG@*K_wptosLJsP769>-ekowd1dj=SPF>_$)j> z!2_7zP6F>4`_rqhhU4jT>=UWJ|6ptW%l<%QQ~O^7r}lrAV9Cq(R9<7#4 z#%5i@(9`gbgx^0v_r%|u{Phi6&)z>bV9jYFwU>M~f7G9^f@l3%>(33bpRPak{VC(` z^j0{ZJ=R+b_U0w_WPdpJ%)ZvQgW;#^+xx(&{Y$}Sf5A@8{`}p}=Qi7!cMoIl!sx&J z-9GW>?cJMw{O-br=v449wi;8S2f(+po$V3#9l%)RSwC_>m`$v4=gl2#KPnbQu3H~MiexD>-c3k1b;MUMcbh-e~yiK<%kcD_@%D}`@2!5s5|>3*l+ef zs|Wd)zd*j4$X|DGkpKKk%75?BX1|`Y??*le-UeTP8OQ(I;5KYckNBF2&HjAsILZ`t z9M$aK4SHUH?hWul)NvDZLeV@#y;@lDybdBnNV{yG0$ zVjDlgv(YuI`?n5k_j8}0+U%|@a~z2Jx_|m8YtKjH@le;(2Ea?Nrws+~8Rd09SM!P8 z&z1a|8TmCb@|tT*Ugc|kwesa(2iW}kD|}tgyqOG<)%m2!%if`hz4I?@_Q%>W>=Vrd{}_9AJxKhYfQ|o) zOPc+Bsxm}pF|ZEIb3PN`zv1UEW4yt$@wD~j&2D|<*N*bCe^O$9_N~qSUd0UdiCzRB z#&$x)Gv5f`6yp|>^r{&PUYdx6y+-;MY*uf**H_U-t6CxFxGQk z@>@kb8+-xzjU$%-^0gMR{8xLL|5Ja~?623=g+InO!%e?$ z_Q(6Ri$P$>v(0Webx|9OWRF|yo%V#)7gGD0kIi0oy(D?fm#O>#8F{ToO<%|VV=3E? z|H7vyc$a5cALEb4q)6Y-lYLwNT-Z_a>p#sgqCLTiwPGxiKTlJC^XHRyoBg|d&W`n! z|9aP&`E%TpO2z_I3W_0$`qKS$jb?spv+{ka^x9K3fTmVHOOQv3S8j`=J5;-~gC zR#W?0ucY>01)F`d(&yQHww+4})674@Yg&z$fUx|EuKUj6M z>k0Zk@LaI$&9^TZ**ZWoalK)dIPw!VzywxW~l5b&~%J&AR z@~eVP{*zdrYuP7Sc4VmU?g2X4SNW;D?5FbbCzbD+$j`?9hG4aU=sEDpY$tj|T%!H2 zMJ##QPvsTMR9^N?zJdG(;EPG3>!N+laiXk!$;*B!FZ-!{YX7Uovpe~fu%E_1Z7;?D ztHiTAdCgyG{MFvpUSBny-N~!(rtz2kH2z;Dp54V?_S5*M_K&%w#jhm>A|n!hkgefk zN0IA96IZc0WY;K;#WSg?z7k z*ZuhgV7+^*)D#NnaXa6~2S1IBNaugMqhBZntn)2B-(u%ynvcY{`AN?k$hQeW-0As* z+sM}=*8TX$$lH7&`M%&(ej{+5B+5R|@Xz)ZKVO^`*zRjLwuJlj5pNFOnEWLXe^q(e z)3ZBQCHDD>Wha*XQxf~a)dZ`&6T#-+jyDIadr~6F*VvkW7s5XdtTl&7;b56mftC%tdya(q|J zMfZSz1lF7>`ok+>J$6g%KkAPI*l+#u`i>UAzSlJck^0vH>|6iR^P2x!W%1`V{|vV0 zJJ;c1DVe^Hp3PwkI>Jjge` zr2Lohr<(ZxW$dT&`#&7U$M2#)*E0CjmvoE}UHoi|zxMn>Dd3f!Xz}Y?4&$DldN8ba zb<7hjdcMW4FS)Jc>6brg@z>9C_$d1Ik6QfmuNosF#b;->7O%FShVlE6=LY%R$fxp} z3rzm2+F$j@Ev`TMt3-cvz9?+xi}L5B#Qv9&zbuj0^WK_|)91Yll(i@OL@H1BwyZqa z*L;@xBW(O#|Jvf8AJjR4=a&zazGB`cLY6JbGz;HP@&0{YIv~{gF5Sx{H4{p8wB&SAS6d)VY=QfAzQj-SPRq z-TqIO5}!Vq{;6x7Hr~EW|G#r7_E*frm@p(jo-yxskL-EJ(krR9P>jUj-T2wI0#> zIbFX9n?Lej@~QuAiN5^Ty>gS^>^mX;o0ixKy?$8_-yS^1<7un!^ziGmYJhIit>Jxa zd~MIu1>pV2eH8gRpIty+>s76JSb9JWBHYNe^l4XeEq$t;$+P2!Qco< zm2;lznxq;DewA~$YL|Wgdu?ty3ZgvevDeo0$Lz=1zC-$yRA&D`35b0CLM5UaizG4r zrVojFk*$@4$H3v3-Jt*;8SG?u*54kTSW z)cMJ`uE;NDzk{pXpOfa3I$Sx|Q7z{lWcvV#wTfKKweq30Uayo&3FX2ngbmcomp=e` zPqN^q&L!quAAX;A+l$EGwR|py)5kRP;dO#gT3?l;B>yCG>0aEsBdww>SS0y=KF51g z8l-cPXKPg8Hx~>1;$mLEx=4~gYa3H;RL`L+RJEt7GQx+4YPzb*)>^BJ26txH?aXy$ z#BCyNGAL3A9G}&yq^jI$G*WI5`%Gt}LN3RDE{{jr=u;UeZs042&ax!UX%J1%7hHM4 z*U=xBkN&vF(GM+i+^F(#50#G@RsP_~^3kKp??0+qhv$*y+b~>nu77`Tbl9+7EhX<0 z=bO2fVX+^yKq`nUd7aOl%Z3QYAbDY*ic%NJw-qBCU#X3+xbc!ukl~Q z1OAh8cCESP>bYenaJLKwYtmKU9Rq`buC~jbyp_i_j@hr*m;C2FE`y?!v96?!fEcp zb6tb)Z58EJs7Sr!>MB|~I-ZJ#xZ=95HpJD3xI>2McWjIFMmlz@YqYv@tIG{>74=W` z1NbTF6qa`2bMBgb)Z|ZD&b75<7rs0VD$Q`29hgu72$Ks@M*`9D)}~&j_-M%+-fGR zMCwC&a2wy%;DqmVR(;Nzu(ns#)%L28`uc=t@Rd49qLoORqsH?K!%ly+Mc1Dsx=_f4 za&-Llq}s&ET6p!5Id?wSb1!7uLdBjWUuD1Q)2XAF@*|`TUz&4OwiQyD#HDH9WE$Iw z?{1`jqfZwRuCUti*+d|XTU&#;HOg+*^y%dpO65lRYSLw-Y3NLedeRBUct_7Aam1KJ zI)pTlbOh<(Pu6sG(xK!s+~KxtxPA?{Wry3i=mzq?v0nJO z4!>&7zwe((c@(yt@5H#mZVpNqq;1%_T~VKhl963e3u!H%dOE=X0e&ki2#*AoME;lV#nU-tV5Ts?=rtvOTzOJBe2-ME!*N=TK zUR=+|kjl1d%3=;{nW%M6jt)&tG;8~RUqssO?4TsIBAJ4l6*@4lf*J2c3$D!1ffx27 zhT!!{>N;oq8x@OT?=d^|gm&_uPFYd30xC`?+>-oxJ>v>XYxk zdw#9m^V@Fde^-80bUiWWi<%ZLDy&3WmUK92ZBo$dqQM=2A^*i;S zDp*PFV0sP4o8)|A|BMVSqxUI%rK<;Z>3y1!t0JdZE45`ZyGpX#9=>Y!~>zwY{H>Zgr=`BY8xRG-w(whV3u*U_nw()wwf zqNh*1_gDr$zXUziJFQ=L z<)?h}Q}cQqpK2t6boO>RKbE z?Vx&Ff6#hQ@l5eta1|Y;G@kS5AL;n3X5?z%4s?_r8`#wj@-x*-<0<>?@ayQ*NU5K* z*`Kz4 zt-S8)lh$`0cK#c^Y+N+2w&90T2jjbf{S>!@>+ou%v>j>-7H@~~89W1AMMtTF`da-O znesHQzD#-6KP_HgwjJcZ`Jr}JyQFw-2AiMO4p!dt$W^F|PuN*fJ2av_le6*-tNa>v z+DNndcg1B!#=i8tj>@Dw)j!4N=N$ISmXgj7MAeuS_gV&<-pq_W_49Om$gbH*$9vWf z)kkvD)x0q`gRMM^r>_HY-Nm!J`n6&&-9G}Xx+>{-G!c9?d8JCSPVUan)XtLXr?^*T zO9?-%euk}nhOK_Gr+wC6B$wj(8EkqJGW%5@Z#$Mh8QdU0iBxax>MxS3vQJ6vGacL- zv5qr}uVM9jD^K-H?JG`_Q<_14G(F*R(m!Ws^d1AJ{UwcyjyqP~jEtVjuVP!t#$%1V zQr~1f@kQm;v9I#d@~yl|ro3tfQ;hGc(rr!roSBhR`DS0`%>lQeqm-V9PhfwQeTu2- zJvot6|CHSc@RT}|^D)IeZHJC%M`c?5s^kq@{i@8Xb@qFk^!EmMHh30kI_1x2ezohZ zvp8Ov-easoQn@dyH$9oxRllnU>X+i@V|}ae=U~_L zB&WETp5mVB&C6iZn;-RjOtB~ZG`_NtV$*A&SB0n4K(9T)U(`Q!K9t(KI)i6|&93ZN zd9yQqJ_a`56yLcC*8F37=9k5#Bl>ArdMeMb=~?_#hWfk3&oH~Y9S>HXrcp3-W2a+V2IpCb5xK6J<4KdKf!HW2hzTm3bRfcR|h%vHZI z2UFLJ>{`#KuK20z`zaS(meE`^ms-Q+_XyOr^Wl0j*UuI(;9Q-Z(v8>Nyy_!yS5qJM_D{T+6)$1q+g{l4z1EPjb^I>FRIGB-eA2D-sO_ zL@inMDr0><-^1nD-wRH-OF@4w<7!NKwo1Zz9!Xt}bY9Enqt0XdL$;5Sq|0*(frxV> zw~))@+%F^5z}%yA^<%i^PpXmU)h})=NhDpnkD`7r|50(e#;>jVo38iie#^+Y!NY;% ztE9ACKW4Z}-Ir8pqHL&*ZKZi(t`Gb4J@A!Cdy^!qYje6TKW^`_`dex2N@f2?!&STh zyg+3x-3MNj@Vj-*Q*AuxjvlVPtp6&3<^M~P^y58&#&T|o{)bGtUH2DnTuxsq`F>8X zZsH#*-V*Kyx_6dyD+}z&o&Ef8~;qL9>?r;2W<31YhJ~}o3 z+VHU-4X5X*eBB2X5ndX01%A*jS1Y;>UZm-7I6qu+`|w|Mdl%g){5Rsqvw4C;ef{cTsq>xT3qYuA-r`h&}U{<7Xfj>C+2V3NgPa5Hqg8!woK1 z=#IiIB0c=z$&2u?gDCXpLEa=E4U!J7p%8M74SSCkRPV2>rH_sDvBecFQN)jjb=Vh( zPVI8~DClEkiJvk%TpvESgK|y`yOwc64pDZ48H;%L7A$vNce>We-B5uVgKHq>)fs28hL$BLi7L_@y`3% zS^Ui?zn_=pw~E2rlHV`UR}WGfilm=ny?pm5_Fv_>Jg>~4IGFsmBJKnK81jBZuw4s$ zGTZec|I4)hj>x9*+X-y(dk#M}2R#t&sr~BYanqCdHg5^QSwkzGVEXn6T7;$B{&epN@TL|I>I#`=4T+#!s>qzwY8MUaGJ0k?N03^jD+v zZ36x+Nu+ph!1e);i1onG-kV4K8CZQ~OvEZ*@~QtDg46O31E=L54mST4FZDl*kMM~Z z{89$%nO&1t`HD|kK25e*`P+lj@^uuj@})mCqc3}@|B_Gj)pn`=S{eNT8T}eK)!!DJ z>SxmYR9mF>RbS()e&Vf95@~*(#MbQpXzei8SZ;VamcpfbUBnAp z!u;7gu$}N;=W%efq1g-rU3nT(mPQeh*-y~ z)kyC}++F$Ea$UofE9`m)8CxkWb6s3~c3V zzTj}%IUfiwlffKPI{BLawZ5?Vf9rk2&Hk;~CsO~$#m@dM{`KILe`~_u;N3qp_~{c*7n~pZ&s7nBNM{-f zXKwUY?NbM*{o`P;^$*#*6m0fX-WA}qyp@vjBwtIg{M`-t)L%W%m+I?SZ1$zEF=trE z=T*?R_w{dX5Sqt@{H-ib(fAGU^%0Z#&-68XYENwCK2V6c@Ze@_KJ zKoY6^)7hrwUjVl954|h=2IeEt{uHpvzcp?wGYx;umI-cf(0 zUxatiY912F{#k5IU-D`nlRx2?VXpXI)R+9OiToy!Z|~^I>hCZ+d_VlwM1RkW{_bGY ze;@zW0&9*IWwGpwZ~kTR4TEzvqBKK3@rUENupWc7V|OBUN^xvzZm-e8!UoY|{ul{fH)t3YR?Pb^rW%VCMUhTJ8qObm+>WgpspZqx-uk{`m(aEob z_eH!N>%Y}Y;dt{>=_UK7lr0uaR*!X?k2>t)X9x6SQ&yry=zWRR3KPBO-etUq^`W=~I z_4keN*ZTVc;(ZyhdMLJM>ziS{K^Q&V0$z_C8&BVVKD-0$kcc(D)E{kpNuNVz=Q~>U zj%gLL({P`K!{84=wQl0hvZ}mq| zUSI6>YvKbM@=iFOt`z%&>c1KL)B4xIR)6_35p3~S{e-Q4s*l>w>hsxKyw?ppfh3at z*V&rB=CkjDZ9Y@^bdkl%XUKMzzbN_}FNym2Z3^GYTm9Xz9_m|WCzQo{C)+OUw|BDX zJH&T_)9-M%gUw!@^7Ky0AH?_^&pU0t4L*iGEt&$>+V{MOXMpw2hr=Rn2dnR$9PwRz z3Fb)p<4=RS6W$7*;itd@m*aQZ^;xA4Az>L1ePg?%c_}TJ>Q~jm! zAIg+3oa%oOU-8trk;PNrfu&1#Uhh==_RiSXwHvel(#pIe7kqgMA!r`>An<_LKH?9g zZH+H{EbVFd)_ys^{+%4Z*{FnX#5v%^~KEb9OEKh)1{5z4pg8(+2jqoV%%jOqWx|7W89!~dcGn{65V z|HFT%|AVOiT-0BYiy4P8AFU9o;|75>7W+l4ckW$R>U!s%@bVlx_lx}5eBbeNVzDsd zr@`vqT;}lf7w|Iht^a%u<|}ud_Q!A`tBT~CLEOKixj}xbh%beI2KLs8_-OFU;BSyb zS^Yo5mv8EWBFTS`t;xR!o(XW9|QBkDUL_GcFT(x*C2@CqDLG@ zcgeY5kUurrllh_Bc#=x_kGWU$4#!&~?CXg7K}u^);~Ule+Il~ zqQ3l>zp4Mf2Alt~PZj)ojAU|$J#&6+6ykg$toAmn@~;J_<=+jq@+Tgc^S@_uF=JTt zxBWwV92D{H@Ku-ZMBL+m@EcEBvx)}6|2y0Jm!Q7|e4Vf8oK+-!m2dibhchmBUf&Sz z$l$^Bm1Dg&*Y;T)eTTke{a5kS__6v3pPj)^CpdRV&ixa7N$h`m$Ef<2j=3Velk{!M zehC`}=iec( zJ|og^94of=j=K7{!uYlNh_Cx+i}92C>NijJL4TZ#K^K9wcGj9iq~9Rn%h~>#oUr8E zz$Py|nf->Puh^yf-vA#hWk~Y6eqi$Y4K~e%N}~Pge|l$n!y|r^9Q-HpD@QE(tKgfw z`k%_O{&(vwIsbcV)?a=Lmi~iLU-z%g3n|kT+j`qFC>l%ni<4@~58;^SDqW(Hy`7a+us?Tt?R-YRDUBQ|&MEgelmzLnaWbJyE_~$45t(jcDN83FbRxT z3)g3&yvCc>5;op$e3$brcrQiy$zb)>w<10q{3iI~h}U6oC{{X#h_(dZ$`&zCH@%

O*^d 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%0Ac&=dW#3Qj+n^~f7>+0MNjhMZDR9U$H?!rEa z^!+&=uh+48eQVhCy1y$fyT5<_X~=*q-e%j8t}VZxAHf&NLhO9Y74c3gl?Z8(Yax*nGVqMX5}5Z2v^6~5Z< z7XFrdH4N>Ezq|PL{Azl|ul9z;ueBn-B>dY_c#6M=i$A}%r21oa$F@yX^q{q+PQ+*i^xd=7krYnJe>|3a+(A7ee=&PQ+0x05eu7}jC6`hC^d%IqPI zO??6q>HkdmGQIeC;xg{V^?pBgcE6o?4S_eLy_WJv??-Cj<{>oJRC=Fh3f#WG?t9q! z>!j~O5MECaD(Ro&eaH21XBS>??w#KLaM;4zmbLDhVt*t5lIm|FA3&NUXKJBEbkidS z?w4bg57Vo@QU9gYH{uS|CB|9{Pqx+{rR(`c*k8};@3!lCzkfE&?jyY6DZga@f;go| z*T3oxv)A?i7;M+S?8oQAU&Dnj|9uG0{J-;4!|-fl<9oGs;94%cxBk^ITMxd6f5{EM zv6dk2I}$6tLG1VG)AN~yueJGpCVtg%60Ob0D~D2kXl=gzVY{BSHlOr0!J2j~yad)Y zEjj$C##uWWXX~-gc$XX>m*XpQ{B(}L$?@8B&RFv+C|?RXU4Nb<*rr}4lR zp6ow^&0gW{LVOmU=Dv3)-t$B3v}56JxECZ=|H`JgM<&+u`;NG46084Uf82I`Y3}@R z(r^7a2NB*dSZ!#D`cs#%_5G<^!oGiV3_OQ_iN>GE?fX;z0^9f#)z3>{tDmPm*f_lJ zRUS(IZ?83_wb0HZ+yg@BaqYezaUY!c|MuE1if>(x#m6@_7vC=E{aSBaVx_g-l;3o5 z*URs7(EI#e4*UGp+K4{C*MTj+b$nfO@ok-puSqVx@wxcap7!yrgnfMffPH*FbG-ie zs?gh7b~?USU|*j4!v6TC!9G52iS^=Bd-T8Kiv{?<^ON}^|HaFT?p^+RQ2pSqhmT-? zJq(5Y^)Lta*TYk=zy6+v{q^wwGCtjpiWEh=AH6_-)ei9BSUfY`k50$!??;!xHA%1g z(Ji>`espM|GR)`bob;!`XHh?`oA~+JO+tTbm&DyKXcFe{KaGt&jsZ_Z3f8)bD9L6m-x0DnuK@FH9;Hw7YX0| zD?H7Y5z}l7W95@+mZB^}Eg_a5TBxFU3C#YmZJze0E-mRLWgXHsZsh+d1zDCALr`V1 zw|zfOzvg>qge$k@M-f*)_$}U=lpgapDaZ2X#)+Gf2EU@1~(f-7fKleM5?l~M{zCFeatK8t842vHGfp|fdy8%sICnswK}WJYSy3@ z3AZR+C`fgTu{vf{HF?q^Ry1J~Zg$m;;wIQ@9=Pt=jZ#Xtg-?Tzc6^EB-y75C0xRtj z@ds>;f588mB=7O$U-SCchOHk*^RCq{Iy)Q!&xte$^c>qyfguX-QnnVJ)(ud2ibL`S zJOWltIsL7~?e)3_%>Q@TGc-7S=TQESY?Wn2wwI^yPJ=aWZ-SJF(titEOaJP) z8M$owx%giKFATn;{|`7prk8(Sot5~LjqY)E`~}YO!d!su!5dAV7ysj^Xdj=5?a(q>v$frbg zu;0ATG@?_#vk!QZDF6^ZD7l9ts~GCz9rOIu{>=D`{N;QiPH6d$yc;I_lc@M^Kxgv=b|vz!;KNh?iRp?h@dem7Za{s)zhn-T z>1F73j*SnYYSH|&X>*yhg9!;jDhWZs1NHT_;376RGv@Z|6~E8_Y0@6 zy(v&!*W^^(QxmH`Iai$0r*#4-;-z&0G*5jXydvo}4}BK=Y2tq5*Tb;A*Ovd6oqyFo zPryt0mq@Stz9!|5^n38{^*TPUKMpp%>XUC_t4|ca*vGH;Sl+*$+s(h?|7%WvzSBQK z!5Tq$SETyv?n5JQmM$=z59PJLK6G!f^P%heDcD~RPs3IpN&jh1|C!S(e1+x1r>Rg1 zU*}u*1Ao4$V(Oi5`Ss_ULoS_f#Xki0=^F}L`V>E>xL*9K%I)|R|7Ng{zZdMwo5J() z?+jacQ~Wx=KK`+=#V>uEoW8BoD}7wD_0p&FW$BZCdQN|#(<^+HM<4%_u*Lt%neqGM zkFZa&5?1?YqjbGDK8rqmxRK+pu=CuM>)G=bIo>(PV;w(5Wp)hVbyDPr>YwL`&*~rX z$&Kpsoek?)_0fs6`F#C!3~4o9bq@76C;04i{fS>APmK3GKgRtaaY`n@yR%hak3{Xk z{n(O>AhN$4m$$ze_V%hj&0gWXm(%~t>Dy8HksaZ?$!xM-stl27agz;$NkVv6uU+F| z)s<5O$a#rt1JO2s)%H3qvAze&uF|>^VwJy>(($SN)D^b!r20wq-%|c1DnIf+F;Hwj z?Tg#WkMx!J@%k#*>-Wm()qXa;zEP|AyQlE4PuwB#?Xc3@JMkm%Al#htAkVF^OJaI?3VL9`q6YD*f>MQGq{r=7PjjPwOksSAKWV`=t|2AtUu>b9(m%ZMz zd3&+h?}PoG@QP$F|L4KxzstvQ-UGXXXxxO#yXqLpHSiL)2MdrdiTtl@HP%@o{XoL= zdfksq|H~(gb%IAm^YC78Hf+b+a=kdtNNrxp>Ue#0UjM(#n~+xT|4_#rI+um>ZRJs{ zaR8pz#NP9Y99LA<>HFaS6?n6FIGMsbvZ_u$4E~1WX_fSkY!c@MTK;QZ_e^w~B>k|> z%fdP~LlSGA_tv;=UisBz#vP>hmZaA_?{@H^i8arA25kBNCd^c;(tGc3cI0@m-8I>7 zSu6|hIrn$G6US>jWH9s2s9&wVkp083>BZAIe$RXcw8Zk?4>tcAw=;;i{J5PxU@Lz& z>|Pf7!L5GLd*8p1fA-$DY`6Fgyu(s@#gjNb&&wSvyulogg{SztYiuozfq@gOZJUA&8yLSC5C?n(Kw@fVH;;8{ds6iuj_9&*y7jm zjwZkCc;$Z_$7B9$KBsL0UyF@I_6$`m**|pC zk2$9j@%N7P&8v&o;P{jNO8mbE+x_lNc+y&R<1jQ%@&=TnV{qAS@OW-u+a;d)e!Ld^ zxTGRF8NTzY*o%ARL^qtsaUyAug_cnCe-uNdlDx?eqfBi}G4e%0|3jbrGU3-GV!vt`MDo(H|mIt%ExPvw6Wth%%_WnS_)d^_iFAC5t?3fBGL z`gA?t_jLTmBcJ{bBG#B}&({;T@k1}skdXQ{eBh?-hg3 zE`}%Jw{PObu=?}1NG$u0bN2h^>_3LhzUHks@B5&XKgYxUaNGIq_i__|`k@7>#XC+I#-$!NHsAjB{6wR~gACzSy;bk0?WI22`*Z-%+-OIwbdDVdu&2!#| z@a_8Aj*DqId{au_1HH?#`NaKE@~?G9PJs`I-h=;>C|~AZ;k``yj1}H)oLdV|^TL() zDkG8?;2~^Pr%0~;iu@%0DJlNN@R#iG=y(=x&%2T~&*xBHjPJ#NE7E&+2%RyC-;qA- z+o$l}BYo;GRU1$8DSCZl`PztC6B62w^z4(k>YruVQqKRJywk`JJKmPq zf5q{ik?i}oDG$%@x2N!qhu_Bid(z(wzXc!T?9amO?RO`A-hMaO?B^d}p2>cx3s3DU z)6ZH^9=_T8WzzpzD9^qpK8jJ0^Zry8@`l?^5ZNDue{Vk?TW_!M&Hl`D<2?2S$-j6p z_Qslbela@B53Qr6x``qh3B5{`4!l%{|Uq|zC6XJ_;qX+zx*qH?_cqG|6=do$FKH8FT%6-gxViPcm)3voxhve z`tzr2#m?Uf7NI=evF4dm1WRxI<-d~ny?>2kH~+f7?~H$cf7ZRk?#~N9i0>C3r_4)U z*q}kS75=S#Ibi4V>~ZS5?opkcL}&NE;2%?dDtxUQ;KP3kw(#3B4|y~E9+LcPp0d(2 zFR|t+t39B5zT{#SVUX>-6u$h=hrNIK_5RO?z5iRKPyRJedpbOje~ISd>)P%Yh_cWz z>eVKcsJ-|NTi;$>1l##i`%ijnFRsr1BH}iC#kV!~7N63y2W;t4{9+&fJ+P1eMA*Vp z{L=gQ^Y&wM@o$2?k6-sTAHUegev;c)y~U^e7z0~+bo|m= z{CZw^81~OAx>s2I%I}r1rBBz_oy6y_uSZ<`imxN~7N63ivTW&5{9=n=;j6q@__|(I zUVZ#O<@66Yz0Qx`4_N-FyswXb9{&=}+ZPWA#M@r<2jDint_PI|E6>t@p3}dY)90@z zUH|5Pw`CP!&VM`7B$=0ZW8xEKY{*J^cJ7E8R2`@^Qf`n z|2tg3kEB}z#?8SNpVl3i%zk67J8%X3c~e=_ubu2I{+_HO(8Pr=9+G4AHTw9~|5XT~ z(e7p5duQASC)PZ8)kg;A6 zX565zH7>Itzj1N@9aoEp;hS&ls>eEiUaz*HaW}>(GW0%slw*{LY4Vm>_jlcY?f(2h zyUOrxe3xh*)*ZMJx9&L->Ca+odhr>KHSUovm6E+!?|;4jlXCXQ62IxIJ1~z4eK~$4 z8aJtVaylmxjhp-g`*kB`9k3^gy8bQr#T*ZzJ*s=EME1+MHa%8NR`NJ~k4qlb|&aRi-5314xhY{^aLe z_Ag5InkU_su(t@-yxV4;G*d%L&qJCQE&XmuuXO-M;CF8FuXz&vh_5E;mA)roOW)&9 zQNC!8+wr#Awlb`1r#eTnX5Yxaq~n{{JFa_iSX5{Gp&yHGlf-sUhSnX@iZ*Y8`Rabg`kMr&M zLCS~m+`TKq_4Z|qKGVFgnYgXK_Fajt7vxUVm=Y9bS_MSt$i(?k>l%f{BVxnb^J2^ zJ8`^fqe*l;weI+}uEo*pw{X-MRefR#jhrO~X3= zdTM33U!5O=%T~wx628~}XRPbX+aI0dNsj+d){Xdvv`$Rv9eXovLBboESnFCWgV#^x zQ|n|rgWKD`51YN>AAsMY3r}rH)64%N*!y3S(;q>6Ua#}({p)_@^=rEL)&Dq#@a+El z^IetUI~3+${e`-=mt!N5{o$~;zud(q`6JORJYF-kha6G;E75i{A}N%=Q>vHGt(`*ri~{jD;* z+d3ure;ICz`vS-NIMzJOMX;X9B${Wa_U`5>JqnK|c^HEuy~1k=`|$Ms&Uohg@mluJ z=Q&1`vX5M(y`-neHamc9D+%>F)j1>~7U!@U#V47VgaJKj~W`ev;>ZN2*D;Eo0ZSuFs=jyWTYKdL?Y(Yu%eh#P8R=84ll?!q@X%5xya@*0qs- zL1Klk`oh9j{Qc4S_`8$$rq{Y2_n^1?m;B%6{A*se>eHGOzUF1W0uM>7dEMQ(KCQi> zdELX{9!cMJ0`q9GSD%ceFZ?I?ip1T^8iuy%z^G<^PgURz6Cd$pW#~(9mbmjZW!cH3 z-})1J!AoI_@6_|kvNz#j$zJoacgJ0mSnsR$z}-Hv^w*LWuP00E>Hn3}|LF9Z2mU^+ zb1G5zA8>r_BW8!sXc*q7ZcLs?)IYH<_SQe4{+0`1-`{c+JR+KBFPzyh==F>*$+NDL(nL2faCdV_;g?}Mz`fxu-=dZt;@o(3kuD4&&8*AMJz5llRkFKx2 zu)n^Z#J`nyU7ym|r1*7xYMnQ`KKuXJFs#XL^}{$=={26j>yL#^ zU%?a!U0+r{ul}}Sb|d*cFvb7IV#dnBZ4$4p{<$T0{7g$K9sjn^kbd-6rSxbWpT4+9 zrSP*A(j>c`}SN#t= z!q#5W^Vzv@r(}Q5wT;8NHCLwizr3n()&lpvNiX|PbM`aPoBho9xdve0{^$n#_QxRD z&#T=Z_U(_e;5jKiwLk8Gef#5H*tb9QKE&D|t^eLQth1mtkwpEw$FlYPyDHmOo>U)l z%c@r&E^~VMm)`uVzEOQ`^^Mv;d%+gJ+E*R0_s6Ha_s6#{?2qqs*dO0i*p5%>yGZt_ zK2-nod9bBl>66~lH;8ow^gQk7HLHHTqY@)T`6IpMkJ77W8=v0U=zV(MfPH%Pyy4Tk z7HsKN{Axe?_|-q|3#h7uRrPi^|zGk$6tTj!2bF> z9roAXov^?DR6qFZ@Bgd#*W$SBK8%w|CE>SK(>3CD7VQ+IRnxQ`oVEkgHch*3RnsWi zg^BOjH%`2M+LqZ?6MxVfD}HOoNkOv-sZHBR+7n!bv?cGv3X*M+jkY1+iu6{fqE>s^ zA3VnSRbspb3C6e-zxBfhMY?BYG?64_#@g0S3Gr(G68#|MlL?XiP5k!lDOn>i+ums# zURJ=F!qGN~p5fXWxNUWGlgvVCuhJe@d~FpDwwzvrln3!;SS?ABbvS0c7896LM=uWr z{&8y4ivKSBCy`e3=&Bp>b4mEAmaA3xSyTIX%3NQHAl2D+E7zK&pJDo`u88>aTE_~H z4%%AnE7wm^KV|wU@Kddy76fDMc3K3(NNTMfj#ter*CTRmISX8^npsua!~PLr|32|| zT2)rtd>{SB{Z01O{;9zxJVe#j2EW;!4d(wevk-n`_)moW;ed50tLo45ug-A+R$j?o z>pb*^m2bv1u#Q9ji#xQ*=KcD|AG2}mf7r%+NB+0^JdXMI^U&$Px>K7_YU^ExoFA#k zkFbrKtU49P>Z+LV>V~#Wb~6&s;9McqsSRD-GU*4WZB&eUCeF&(9` zP0>49oc6ON!-Lp1Kq2na`gCFc)MT%ISxGvsEMaNQwKvlarK2cA6AQh;Mnh`ZcVXII zp0*dK?HOrXaY(c)ChlJzdGwBPYr$T)SL7B0(*Br#=^BdXSGFgx9)nc+*ZE)Fx)3TK z`mZUp$yQ1-J|D@IRm~9a*xobQE%2%yCVQYjZq5$4hd& zBF8!plG@xl8MAXdKgWx6yaX-~j{dbShSv8e;_l6Vk?XQRyq;^|`RL~He>eKpY}@mn zgv+zMLO-hK%XRZ8k9QJWwW010sL{Gv?I-OhPx>k7r>K3i`6&xOwYd80r>s`DqVS_g z8f#yLelq>E*H3l8aO?iFY`hda)N?n_!hIs{Ywckj53I3W=gltLut(?qeOYB=V!l;`jKmteoocT-sP42Fg6+&xL5dT610`8W}YhTJK={>D79Av zSBC2qxh|6Ni{YmVSBRH(8HxB)O3LasdKNdSw0ede)7}1!oLhZ)CN6KXo!owne_frd z$Ieab6dLxO6~b@UMed65+amnVUZ_3Q@i**IagyAopJMoJpx^Q`{Wb}|L&9&P_*+^_ z7j)F}-ckN0$neZ6W9i(cr*zdHh}`^ULCYZIpA z89J@hm!#)SiCE9(o_}*J|0;*(UvtxY<8K8v5}mIawm!ed!TN8^d;fG#7qz_|xS7+U@9{!N1~^{0@(1du$-`k;b*$ ze@g{UYZJT<4^RHJ7Qtfp#AL6v3dCn5z61Ui_mPRU*1_KR{YzrSr@kDEPjlT#Vree? zb$i5q=2KGqui|$<^h=X}<>zGFmY;uMKMy`5+3P*o>F}4y{w4H(!(E&7o1$L`zmoLI zpT}@p{@i;Y7bbetFb^4c+g_V8IauTQLRzE6iWo=>80s$a-f=Uk$-8lGa?JW%|G zcQe9Y>RA20#@BHZP#*4({44(#IKA?}J$^0!Cy$BwRY>+ao(s_X-sEDd?~E4CBI-J+28>37ydqCHi`!Ty_>bZ zhtBQeyqRm+C(-r4A#S_=72itO$G0nG(BhlASzL?3^z+FKT^k#w^k}aBd)N<3*N3jh zJ!zs`lUV0}CwOUyJIok?{6RH4Yb9dMCJV$wmkyTZx5f3+seDj_wBICghchl9c+F1 zejc{+tZVOK*y^v-XTvTRI;C?9`*&0OrwPX3;fV7!^#h<@F^g?g(EB*VyKK*)E zV(FK@J>h%(PO#~Jpfb7(w)|iB?07#Yrt>HM4ZX3_)12^qeyjsqdZgbyr{BZrwKfA) zKxyp;t?jTOtnrc(=?Ab?f4M~Gdv~^WzGZ(B?Cod5-u|!7Ug5o*(?9O?Dj)q}s}Gf5 zL*O3#OH>~AWNZ1Q66SK06)% zfiSn^YPhsmGD3QI+m$%pX^7cAkX0Py+A6~EX zWqO6z3HISBK5xIDvsd~rg?;)j&-uSO=l=%hU+H--r~jAJkLKp0{P{8+|HiQL=ZD1o zVC9eMILSS)#r)YdU0KbvDcUwHi?IbM|GA9Fl_vgiGu z>-eS-d_xF(ji;9Mfk&`ylvv+@-yQcqgEppD_ihVM-+A!dSsyE{Geo$o$Q15OJ#Hln%v{s9*_3nXa4<+u9_z`#!?q-Rffp5dzGO^}9h}$N< zn96w*j(_XKTAN_q^18JN!dM%0_U`%~(lZ+_ZxTHyeNW@x(kJ~FIX%1T>9-+#?_baM z=3iqu$H3df;KN!8%UyajHhu?mtB6xlHkWTou-z?CWVJ;--;v|339p{s@vQY&+k^9= z?^;PTcI`lTLBwn;;tTr3O|Ob$^_L{pSkp^z4^2D^R@-pT#9E6%`7t`N?3<82vllOM zEdOHf|3-MU^Z%5yf9=sYm;dKfpJ=YW^48DoKNLO=KN8LD7f(;DZ^WzqP?!>ZL;f<{ z9moTTz7enX^y|)E?GdxrH|6`lFC=|mZp;Pj^^79XH|=|}tx0;>_k+z|to$=pdc+p~ z2*UdTZj-{(S^{bdFH7Mme6>e>_-$bePh+Ka#($B2$yh408nz<^h{jr7%ywd+s8{`F zdih_A@QO~~5jMU2tNrEutG~tcV_v1~k@n`vzrx!Uw-2udHhYD4A?(A`^RDUTzcQB| zy(cxj{O^`a&uFKA=xx4%4o@XaN#}RU!dR3SBWBmEEDPaZ@AzM&-}4yChUbrSth(Rp zZ_6>$H|pu9J3i}Y*3uzvl{v{=Sap{@4~h42EPIt-vlln!_>5)$inAAgoZ}+)K74ik z8E?hSKyH;uiM}DO`ni1|`m)fA|CV^&lUTc?acl!<*M^hGPwLK2Nw4r;rLy+nt+i(T z@WdA0<-u99uP6utAE7oHJ5fcI$hI}L*c#H>KsZmw{|?+ zfq^1Z#7eyVxbje6?wj-*v@H+MJ1r8wihtGplM~B+E8_R|XTWB!xw~6oYxTXxKAi~L z*eBh;`oJSnc+!8L)8Faznp;1J_*I8VbUb1^9vweTg3|Hp{wclPKb4-7@aNOB9QNtC z5ccWG>$xSB^a@{k3t#E$#PR#|iGBJgvh~uZw3vT|N0m@wjh$VD-p0--HUtoDWXulA4Ui8(&mvF4U`AuX#?dNg;mGj6NDG`I9C z=}%#6dd)3;6s~sq=bU~^^t%2VB>g~G_xEqGk?akRgx`vo=^N*|-jycFCp?I?r~LPg zm^J5QTuok^el{;kpM@Q3L z_WQ$Do}@pT^m@I%6JYv36JCMz>ls3#xmtZ;pT2R9FQ@)~jPkZ!G!OR+eUs4F_q)RF zo&I``-|KH~SYLlrXey^Vkn|>Fo=1v$ zdd<}}eb)o4Lj7j>v)4gYp?%zpV~|Ks6ttoD(< zA?y9Ogw4P7`X;y6>l^E)|7=24I5$>)#cvaj@hVvTX_G?il+(lb1~05SL9!*>9X>8% zwimoFJT>vL@Wb%f#0u{R*uuL2eL3l!ko20%v@`DEi8XiY4&1uNB>O#3722x%L=63} z+mSa`U&vndkJ-<~{snkove(=x%^hl!SoUYbW-orxafilLVV=_n!jNcfy+Leg76%#g zd{y>2y3vXMTvZj;mfbw@i%(W%+i-jf6JLS-dAP4g`~p0M^RcP3??nA&_CKQEj`DX; ziht2tRpEX1E6M&-_)gsI6Bpn$N&gLrHCL?w4@s=KZ*P+xYY%Ad+f8uKq}SZi?O{E` zNHq6N`kFxW%fMH|7M{-6e(3Cc4P@>Z)4NLjHxI6;%058fKc!#aoc{?{n@l2mwKqpb z%!({>S%l9|d@t!8P5KW{tn`R$5-UA>yW>-OI-s-k=zP-TDxF{H)gJTuzd60^+Y!Gn z4?`X6eyQ;mzPzb_*W0g6{ut|<UUe9kToBsK2Yj{LT&vWQ&aBn~y60KEyEL*=;v5w8JRlFs( z*5BXyjW`}l>y1d%AMrYRdmhyDxXPzJkH0=Oe&c;yG|zUK-Y`@9pcnrV=_lbfz2^Gr z{$X={^?bWqqx#Rcx4{1Sb|pL~1{a=hH|BospKm+E_I#`G)SmIr%evNmc(7_Uvp-*B zV1K^k_UG$j*v{AL`p<4c@6XrHq~FfZ!VluR2%8J3^QZhUy|{(5*EhnCfvvqI|C+0B z{>As?xHZS?^;);iSaZ+ERdPQ|YnhYYw&|8ec!XS^eR79 zK7D>(4*UGnvx(2oUtph~zrvQEIv!oimR|MuZ%ced{v~>Uu?^dif#UlMJv&ZJEd6}k zrq}U&3H#$I5T6~7))LtYw((q7ENL9p?XM;cl3VX+9G;&Jj+kjJ@^f%sN1jULUu^!R zCrj$-#a=JB_b)cR&bRvC?R+aedOu+45nsl+6R%CUc3;L>cT-LeJ7s>$bc<&FuwmQS zZ`rkWvg@C=Ye=7y-$`TR9pcWeX$z4u?r+JyCGKw85k$2Z*K_!tmwvU;(+BO_@O!zO z+2ytReY>dN1N4(xTWyxey_=(pnxI=qMfwf< zVrt`Wv?_%C@i#b2Js*+u8!i9Oe&xRv|8@D4Wd%-WMfj~&Y}Ku_QXOA2+=yRh`RjLy zY|6rK0n6If(O2k~sqP>4FJ*sLy|fU1dvC!`DDXX(@wm}xYgYjVqjW#!|d!^pD zN{%FajqN%mVm1@K&h6cfw{UzL`uT9Pr0-37j>4_`xkS8(t+Bq-_ARXXRHEaN&W=av z=k;*C^xy6DvOmso=l1cv*tHz9L}M}gu(h$6ok-YxxKYyUJArB^s(mB*fq&iGP8J{< z+b#X~Nq;}#zX|L8v*h5WwEJ<-ju=>N31h`Ki?}SlnyxYbj!gDv!n*g|n0RWZ_?$7b zGVb^*9PY(QFaJ;A_Wt#(VE#3hcvHA}vcC-bOW>_ic#3Zh=`nlpJC2{)H1@-sfgj1c z-D5jS?*kE-_(*!#cN=@s5n zj*rn!6qc$py z^;rz7zJ5QI7nO%mu$2duuY+MLUz+s}C3%qZRbbmffXE(` zl6{`#{|NNvU;0yX_MT-gHv3DskCElsj{Hk*hj(Qg?@9DEk~um*gQZ0D-O-oW_6bAKJU+ZHVGHlO-Q(C+g(=asPLi^vfnt0r zKR!N{H;Yf{A&7chVA;$ zT$%3hH_<#?4^{BiiFG~bS^uAjbv^JnRPTDwv$($=M!|MH4Cz4Lz#6Y7d42C#m+Sqd z@f;k+`flx(u>Wo?MWi%#U;3SL`aPX~T7y_V#uBGw%ZfM_adu+quVTN~KMI@v9PIXh z)&C*+fq#`hodd~Y^ar!ODNyVaI0X09#L^$nv3dOou<5hb@x9C3WUu?HT5EQHojNk= z$0oh_P29$FH;LtKXwr+@<2F|PkC#&Yukxv~vNYM}S>^EobUl(@*V~i0tvt$pNB+&f z%Af9)3R9x%O?hVJQ{TDN^4g7bDd%z9(mni>^z^!AFDF1l8FXi8BlViL2^Qg|g zhE;#}PAvUn*qdJIIR&=#jG}yB40qsPqVKYPjC*Qg`Cp6jX#QnC5jK0J??l+A?HyLGhHu!?!>9Eg|GP3w`i>J zzUAM-6aR%UjWt%IhIsASTi@|h-|OqxN%WmQosYK@UyZ%$FRe`|5vyS8QXQ z_1!;~dM|zVZyEa5#NQ|R7oY4{{!fL?zut9pCcX|ay6m_27*|dBkMJ*PwSwml>_4sy z7%HCE*S!rF%ODv|!SMs<2|&&GAEz78(QdVL*- z!M?BKQdo7iMER}j$?{wAJqcTU>gyxOdVPH#!Xx;Xs4w*=w!SY__Z#a=y>d9;IYNIB z`y?9M-3ND{lwbL=-8-ZIJNgDmud&%GzjpspU-b*{_A$6jW4+supWh~y{Rr6G9}k`BOP|tnY%V>w6N|-`1kpBYc74?z&?FXV(-)U3EVzLpDBOz zuB0Zh;(x{Er_#@G(|Z0F=F&Iao!|fJ>C^FiMS3kil-{` zd>V_X{MaM$3I>Ai!|_;t_J(yms*Nl;3SPnSkBS(^Iy2m+lpm+kStS2unUkBVieHz>6)3=QD`1DnhexJS<(fjnN4c|V+ zr}W9cPv20|>(jS8?9<0motdRiV|B+8mfG|Z@iuIY^)Bu<*xtqI-PHB4-LLd6WFyXp zy}OhCU8leM1ipiczDrYfA{x6pf#dHP@jviicxiVj`sPWmv8;c>ZS5`b9XVG0W_o>B zj*ivRcjCm`I6nG<2H9sYj~zku-MNLZ-nU4k|CaM_dVTln2h!d>s>4|C?#=4roB4kH z2BCk~upHY@Q+q@DwF%qni?Hbzeh}w2*t-v{6WEmF_v^&Hjr|>@Nz%7{dG-Y9{hECe zeYfrwSa~i{czSng;c0Aek^PgUM3nzKv9z*U&$G(M4d|_Wh$#Xk zR(aTuwE6PT47T#3^E(N)^V{=Z4YG~#e+l~}8XMi2?SMd}6a66Erq_4TRQ~2Ad+C?u z^zS*n?5ARD_Tq~i%l~#c|6;Qr_E1IEo^yFE`y`Fvp5(9I*GQxvj@#?^&*{I(>8rTD z&A-0u*8{faHGOAK<#T>IK861**RKy>>zteaE*CPlg>(!KsiA+C#??CbZISr14=S=T z@RY=|7khh+%`$uGyU`vtz5G{F_RPP+ABf)Dk8fOOFa6=L>Ca$n?hN8qn^mH*!1LJF z2oQ}GUdYzki?Z)VetCPn>#vb9BKtjHv!8(drlfy|sLsUQa{N<{e{rmJdt2eRQ}Vw$ zK0BxPtoHLa=q)|^E{p0C|J{~x@LbX?S)Kj^r&oB5-SKH`>U{h?D$j^m*PmzAhn_#n zaVNs}dYymI3v&E%j$b1^X0P<=JG^$hdOjLVeEwaq?rr}0XgWNHe~F%tma_HFN6TRU zeDpEw$3naVkKkXT`bB!HUsS(74*U9b7U{M6waYq{VJ?o9#}{voeM?gn7%~N}<#)1w1^l#`>r|zdW(*)!$(DckECW+9I2?Pa=CgKbZZc*uRPYQ=&S|U7`t7n!B{i zHD%%1xidDB=`{Ag!)^7W^qZ64UVj+u^;=cc*Y60Mej@&VfYk=E@LAOA-|G2vSxNs4 zjicZ3xLNd`RlZ*t*6PtUAlVsKc{(p*cKe5w*>=RGd!9u8?%6G-3Gh}pD3RiS@=j})KAo~o~ER?^>zz5suQABpT+!e+l{Gsb4Z zCq;Gk8La+@(-W(_pUd%BdGFVwDr-#ozD#e~^qmU2EW-K&GSPP`=#nVCZDPjrC6@lVoc?*ISNwN2s2~4b zu*I*jk|eqGK1gFFRo`3tN@FEIMBgLDr?H9B*Cf{1M75WOBvyEf;J%3!9*-#X!g~h2 z4^Mg@UJ1R3rgVCFRT_4Ine|>a;{q?ag?5~eAV1Io~hwb{% zSgIRg8%w4BK(W7GDoBgJUZl6{MeTb%|6BWB{RMjd*%cd!^8akOeZQSrCqd=`^l@ox!R z_#GEF49||1-@Czk65m0|Ui#sNWJ4zeQ3w0{MGv?pTByxFunZieM2z@AI9394Vzy6 zI}w-nujL(0ud&jb;8%GhQTs>7zdT}SPwftyenw?H-s9LOxrec$8qY$vPY~6IVynLt z9$g%z@Wj95cstT#@ku|^@uZ4|VLXNESc$%yqWaU$r{dQ<4~t**v$!T$bDVHb*wUl9 zN7E?p)*g`m{V8wWzu5af1vdY8JjVNK%Afh~b5Y|k?{^z)BunQu4)32{N!;Y-vhZC! z&A*fU_Ls)t`d1w$kzV~BrhgUx6W}wWI)pcxuzYwAz-F)T__SN*!&?hBy`ES45te_R z(X*C+o_Q#zU*hz7o*G7ecVeF;}zCph&X_kD6{m<}}h*{sONFT?3zT*QN&wM|w zyXxEj7h-Gef7RbSlGdxgAB27Vt>?En{7dwF(w_Kz{oM(+`djt2!t?d@_UNrVseY!4 zD%H>WuE_1!ug^Y-cmiAFdv0qS)(RaHv|JB4R{z^S(E0wi?_GS-D}7$SCgs)Aqvxdy zVY`2*J+`OQ>wZ*2_;x>1`hSA${-XT*hI8ZZfBV5c|2BYq{=EhJ{CgX={8M@>DStk_ zT_|ssUd6uy?BgFydVKt&U?2a5u#cZApkDmTVT)h+(SrQ)`Js2=7XLPDRE6(4j--r9 zmh$rKW%Pp+ANnEf0rF4psU`D3wtT@Za&?p0hjBv$whh~J0*3pyXZ^get&?N`b0r|M^f_Kj$ieufRCkyy@A@S`Rk0q|2@R$D$$CKcf)hD;0 z9({zTbM&Hor07cTzOGSj>Ouioa#FJPo>4$|6as5(*4 z9;$aF^52p(X#Qot2kh;K!Dc_YLmbzl_g|9FU_E=za{RGlja6++d|S&H`4xM$Q+A0M z#_oL#n_l6)j?Rbo1A5PQ5SQnrjuqeQu!W~}Z$BqIyVrGYAD`u}B}|FN!p>l8WB(>& z&*NzrKPLT!@JnzH{v{7_A{ydX?JY^3Z^Zsc;_sd8HP%~g-?gK8$nO=f<+t+x7ss#S zk6qc)WUqCT_s6a02Z{8%v-NtlyS#q7)8C1IvHCM5Prs^BDCXzfppD1RDJz9Hm2=w%{xaz`*8V2kx@IIl z@UQ$kS%92No%b8tYm)x79q4bxZRu0~srE8f_?y8N{#DrPS(8^fL9|Zr)wu0=zoFyr zEtta$qWs$#m(RalV9P%pzsj>e{+X~Hzx;oa^Z#kizxtNE|0>x0Yb?3yUbSx}lUvds zh+BCkQT`su*5~im@KPxe9sdxvcKk~3efanB-49!QO7F+8Ki*GZf4mvR7ul)QgYKYQc0{LI%M%0FF? z{`hx-?f9iXJf~OrF}=>uJlN;&C9vhM^twL1{yL{`w@>W1f1YEI^n&%CWm=$k{hf+? zX=06=P<=8x*^3WxJdN`-4j!BI!w661TVY7X!?W2=3B)^##I=cUhabRwTH-N;{|D}Q zDLm!pP}uUb-$AkdYeKvdtz-TX+iMalzh8luN{L86o_$`wKWuu1r+3djyos>4uYt{8 z;i>$3{kKlviOgt4yc>nsd9MZRg4^nEo!>oSfBp}E?fgy}8}qMM@~`uGK5lk*?5_v5y>?R;yj`vAhSvF-}*mt6XOg)KbI^^tvx6keX?U&rp# zb24oHm7agXK0Pf+ucb$0*}D*S6Ko{sQr zEqsl2S9$eg-POMKW8Kx>Xqe*H@q7zUTfY(Hn8MCsce_V)c?vu{gbRQajqJ|g++!}J@m z?H-7GS>g_fZ-@Vk+m7cEcmUii>7Rl7;BJ}toy00r66p_PYx>{dYhWuc;zf?D9*JXL z8naKL@XAQ9g}3yXc)cAN)uC_tB;3|FE&VO9>A!{-z}qDIXXsecIOqowp9Q~Z??K z+Vh9T)=Ot&>t%lt?Cr&7-<-mr{Cq2Q7|8!!IsflE|FZuoXaAeCUvtB<@H}~0B|8!E zVvfhS6|DMivx+)>HTh$D*&mzZ*B!szvMf8K0rMMD`08t0m$0laOnqxLFxeVJeQTp( z4l9WI)@ot3u_fx;RQ=%l7Q4Z|Z&CNNIs8kM-)FP6{L|R}^I+>+TwUMrb?EK{ub}{=TGvANx3*VQ056A!M8d0zCTjBJ5&uw4}U+a?VdbD-N7k&`0KkG}C zf5qkfU+MfSebQU{WZ#AOy?t-k;?rCOJsbMD3Qxf{S3&POS`ps%{7b~s*m|bO*JDm` zJw7DIdN=O<|Cr+elrOJ8H^;B#xFhAs?6vOtv7~1eVM?^_y3)5>pvWW9d44CyYJYjX z;xpE|>-!MjKJ1fd-SsK3>KKXET@U(*f!CtE?vr>7`n_=e6t{3UG`flMz++W~z_?O84c+%$mKZnlzOaFFGudzyAuXR(s|Iax- z(`%jf^@wK`Hjp;dP>h^^s@gcvGg;YKF=Df{y6$&$$qbg_>wK| z7VMLpOL*c=5wjDLzL2=MBMt7=v^+b*f5$x}vDOuDioNQ1iPjaLO?WzHiPjZgf_p&3u&(%~TpwmX8U5{)r)`t| z3ix$c$0$*Jr&7Lrd@Q9@^8W<(%NoV`=d#yWYF+CVpVobTfbu&~N<`~UKLYoQ7}kZ} zjr4fE?zg7bTnByQZ&I??SbV)JZI}3&%^0hXUiVZ<7`qRfUW|dWWNo23~nCWHTfUt~ZzZPuv4SuW$^I*FL-_$=$ zTpWwu%By%rj^{hp{p%}u`{e(CpDV(<_{|gFl6c3&RSYyfp7X6TBFVGD(>j6{p8PlG ze0cvF3vT|UpIlX^m;Z&Z`4@kX<2K~4>8JcrKY!n4Vvz24mS4?y(R)6;A7MyjuRbc% z%U<^nW7+QtoBeX^?}sgapFn>LZ22o*k>hfX-}FlVzAityF;I0R>9F_)f5-W8d>nim z{5f@?ME1Q2-`nf_8q5AKu-Q+=Uj6Ns-k$%g2-mx%N38aQ=i?kJy>Gbmw%WEbV!RFmsr3A#XF$mi_(!(g6R){uWp)AXqk@+9GJF?Yne^8;s|@StmnVLh1yFVV z?n(AyF8LB`-RMhT%TL933vBTzKi49?R$j$Jb6i8%rXN0r^ua2_67h{}JwKk~4|DuS zj#b{hf0cL7dpSNr@x!`jNt9k+KWOZ=+T$HKMv2CD&u80QfM{&@nfO3y7kiPkau7Wc!6wXU?zci*TEdX2R;z3lU>^KW{^_bh4g@t0A4jWrgrmawgS zYOLa`aQhUW^f!|hudgJ2ug{3j>vw^@zDWFDe-7;Rhm#(!KLR$r#zHcDxYU27^LaIC z^XF?%*v^;q%1^J?`&H97f2lI8{nMF!64`SLt!JhBKN6iU)kk)IZcO?elm1OuFUr-YArTiGH~EtK9PXa<3SW8)e_QmL z>-0;~D}3oKeAz2}vzK0M`gOml3~f1UZ)^wa+2NU(oa`W2&ntH%J`>hl&_#}Qy%;OJ z0}0>46F-~d?MScJ-56Ay+DBfTpU&q;hh%HP_CtXoWampJ`c*!0(6FMcAGH?@!dz}DKw z;%?}S)n2|8Zjr)!gY?rR%$lb3tG@U%Z1sio%X9j>bNWs2>-{%@&A;NC1Y3OKoj6|O zoo}fM?S<1)dc;FWpJ$CV_Phh}d+x>g@;rt3jDNkAb-#&kM|ZrP$S!!YsfmBL^67~|4u-&^@uh5fos>dM!4Z&qc`uZ=#Pud-)Y z7aTr4`5%k^$aUg7WbKmv7})d=K2eqZyl&m|jkrbY`rMSlJSv5!{)Az;hbLD5>$0mY`*NT-R=6)|HT!8VRfV}5AExrD@CM=b`mwOr-$DL(Jx$Dd z`b)`w(?9)LRrt=>z?45)=UdOimf!8#az8=$C}BvxZyCq_-5N1d{~=unrT#;joYI2-wG`dxekhQ`pD%8Eo#_UTc7k5A7Tuuso)*wT}qi;`!hSM6z^UYa!Z(ks1B?}IMAKVH@_ z^yl4zjYK@3t+Co?7h`{vl!)4IbK&+8!`d(Eukrd`u<6&nJdWMB`?7 z`URYSuh;Xn>EFAuVW>MVDT@hM_Sc4Cp7oW9FF`+&_@7NIdyS#+_7`%!oBbc?zk=0g zEs_1soO^FSg8JXvzYlx+rj6?C4SH5Z{B$F_btzPlDR z4(}4m63brgO>aNN*{goK0k--{{Ho*K2>)dAS9vH=cn`o9-cMtjgy-d5qB?xXM*Wf2 zUOMQi#@P^#e{Rx$2`{EU{ocfyOL7U^De((k=%2uTaAM6Z5!>97>+s)-{Ic?{wFY{^ zRz9>g!Em@H`PW(l<6%8-w&H)ww4Y7m+UERLXi?@RJ5)4c12tL_s8!ug>E=h>;<%aL znya;<(ZaA95;w`D%eBFz%XMMXB>Ia_V-?w%A!x<-><$&#?69ego0N#cS;3?t#@?0$ zb>+V#l-nqrfRb>s*w1ei++;s;`uepEYO>SYhTnGjE!)uC26rvLm+TOJ51NlV_Wk!@Yf=n}D+)Oik|O`* z;kQBhtzi$VityVZ?76y7#C>&P2)~8Un_Z|bW~*qdup_I8zjB&{gYFV+x(t(LA!rK4 z0l0e>`^)c=Vv$R^HvGmk)ujyUj{I*Fe5IeJ+R`|utnjZX*;!FP1^uWr#m5vCqcDKC zwi-uKKL!0%>qm1cvI_lZZa`MXPpwAt7xh!nPqls;=_gF+(4>Qm31OJ=Q`Ao(8C7Ej za;U8Qtsjz)v1E<7$>#t5#~%gU+O7ElOLDv-#~JerynP|Z#T;usg14{D@%$Vw$?=LD zTe_7_<*0J@vvzH=*K@ow$BhWb+ZS@&JIBLvJTAwzIi8net&8sCvvg^xO*!!SGbG0&b387`C*=6d9M6OOd0w33C*T?qK2rak+GJhG-*LEy@!xynxW2w; zOLrj`PtP0|6E`9pmH%NmuF3JF9M|S}He4Vq3vYHR7dp1yl#|6degW=@t_%M|2DB;F zCo5C9A&_^_snrI$HQQyNnsWU->yrGPvyIS&W>Y#V(nXq{Svr{yEp$u z&WGiEdD;{q@JI9LG>lf!(>G1j&a=aqPD|2k=Uh-=$oE)#n@yZ-$zt#6& z4g37<0vE`ukXG_<2;39a|Kbj9vJ>E8xQqPH-=s~}lk-0txBhFo#`}rd=LP=9QQmd$ z+l~J^DVCf?Zd6eeVw7Te?UdxQU8Q&7b#KLE{LvuPE5X^n;ag>@_VW-U`N)~5y9#Wf}+T0E{->7JN{s(*S9j`}KHEiE0Cxse% z=qG_t1ECWHAykP32))ChBfS%<$IyF~BE?8AiXb2XDG5jsks{RsgbpH2K~PcN>zdi? zKI@F=^Srd zig<>J{yX@?-c}1Ro=rV?G0A6#L$1E^%;OXPPo)11(vs8v7M#=nZX^BHamiOxk=GIyiz@H@a!5}u8Y45{;`ES;Z5+bOquBXuFB(V3067Z z4f_b6*L0olVlmyeJ(sy-<$BE--yhLwe`n-j|Le#Pfw!r}t%)PKe@1s;iO+TG&H4(3 zeYa#4cv@lK1$hbo+l7y(VV#29`5Zdm-FcMlIfZZIBKUWhA->94{!8G`<-a5x_Pcx9+ZPUdzKeAt{Awv5-^Dr!{-oIV zU98jLco$3gb;v^gw=wk^w-bxLV|E^kqxtD<8=vMkvBuUr>(bT`m(Rm=eivjmc<&mk zcg0SG!+x{8EwBC2&E<6j9OY$sJObzXX!%EZc)WbB6US@s^?28U^s(Ga<;!m0hO@o#aM&~dj(bIYTYos?RPfrAkig^` z^yT*x8~^&`CCBfx&WK<6F%9{#4fz!fxpR*q{Cn$geIq>-Q{}Fvu^fr-TZR7#oAyHs zZ?bCL-gyntO@z;3dqPFjy~0NpzLSRJHvCLsuG};53;5Qqv8BCPkcBmOHk@C=d;Ax{AIJZmVf8#P9syR)@*j;am;X38%HQ%^9^G8NE5K1c$1h1(%IoCX zT=j19;c&Kh1f1>N0B3tQ!eP()cqbh7|57U2o7i4z&N>3qy8!WL`;P5~ef53T8u~AA zvTO|RKso5Ve%T(z^-G@6VCP1L-27hv=k$ITj`S-3aYJtV8gkz~N_)ZU z($4GNA-xx}-DJiJTYrIVFTH=z-G}}~Y?m!OaG$!rI%i?ieLvH(x7jM9 zZ-9I^{NoE7o+59DSATOj^xr`rmG-)9%GuSH_dBY-J}%EbopP^_5nlNvaF$O>@}F~J zuK_#1QD^* zehz#dKb><89$}lGRX+;HvugD_u$T4it7ZMw;L!J3_K|SRg=n(R-j~9@byoKTycJvf zRXX2oI)rV0x9LeZ-fbE{dPboe-?V<510&C6V4UB$-Ut41DPQF$CV7)x7wawLu`ZU} z!Lbi^Zos8*JZs-^t$J?hb#-*D!(h){+Zf$T)Awnu#WtQ*e+I7)+lJ|8o1sso`*h)@ z;XT;zd=}mJ;S1QlS@>S~C-5H=f0B3up14;@+WY(9Z;+mui#_F2h(F}Ab3=PE_A}2mpf`68 z?BS;g@3ZTbi+$re4*eWoAKKWk_c3zY--VLC9QuoLqjeU%dXcXTuR;1p6+ZSX)**%C zdgbx!CjD{zoEzeuRG{Y1aAf*&S>{U-@6)EdOVc`)-+i z(V0s4&3KV)cl@)VqwBwa-_|SeW;Istl6?x#Uf6fh&ZIsJFX4R`&ABBT6y9ol-`2;l z*G!#rZ3j~yhZeclvklpwuW!z~4*vVq{i^Sdc~7X@oSTJb+0txO&hYQz3;lJ8T+ZJe z`4YZ^ICakL;1biG>+$iSeXHx)Ew#9{3@^rT%C+;Wd@`Knk0<#mEHb|+VRtFvH-%Tk zzf<8W;W7B*db&4!6?{*TAMhZ3cl<*ND?bMNAzvK1yh)NzYRKh~8~@kfh+p=2X1*L- z!P_p_QT1opf;LAa~3PG5|wx+o3R(^|0&^T#@IvLJ<_))b9Z)!ts}bQ;1O{2k55^>qq@I~ z_DsGPz07o(dhw?Xo`vI+^_Ob!*all4vi>!Ry}ryq*+u!tYc%+v2HQ6X{T&bJsQULi zvQKved@$R~D&l()@JaZy{M?58+J@ZrEr)-gA^%m9UyS_@@)P~XgBIzi+9vyaI`gwL z@<{KC%!XNn{jXM1o`b-qH~4~MI;!uqIzLV)FG2WVuZMfXaXmD=;|CF5_S^_oe;YXK zUy|hNzujQJn-Sra|E9t7ldddZFY!fNbX4m+y=UTae}A$rn`LUO@_P;b2>;3E9o0Ja zpBK6Mcj3?amT%|}#=hf?{rTzCcRVum7eIaqJS52}g0}qGxBFM$ojJ4)-jWTUd7}n< zKa}ORf0>_Xu-B`Qd;EQOERMhYeuG!0{mAm;8|=F?A^+eX9o6`G+#jqy4{INgmq&InVNbd5 zP6iJqeZHIW0AX~NuWMUI`I~{@ON$4@Q55>3Bv>9n$%3;mp|jT8%Bgn_>Sy*zaci7LN1D?{I7nk1G1E z^RB$BuC*!#oDh2Msq>wa5d!@q_+!mGb4@~rQ> zVp;!Aw&FnvHftdf5~10TThan0}A_H4eyuFDCu{u@*>0^(dxp7gEugbep+v5L0;eBrGsGddcP^(wpF?g4-_Y}GHNsi;a z!-K5-ME(~o`on0f?XPWE*!uV;+*R1{bV1wU&nLdE2K21e<#!Ei@3txN`CWrs@o!$j z`>s)o_}b<3E9N%9&lb7gE!dFwBE7~hcNMwu`z$fi?{^O#B>p(x4Sy!bBZrrBcwPr+ zhqt}hn&V@5`}DR2O~>1^)voR$7+iS9_7;P<5v{WA^L#ZvKH@uN`)a){!MS*rgGs!# z8&Ylhx5yZ7_Sp8Xc}%s}skF6=?d*MP-<)M@`lB3*YP}g+XiV95)!QLuOW`=A(rR`3 zub!7yZA(P$WDftQr&9HucI9P$WvhF+)vNH`!|UzDvW;}EQ!BUAU#doX3@CVB^p-2S zY13W%r&OEn-kWLF&Q`s1u`v~mWYc|P-;qGiX0e)7V5b}0nCgE$yBY7JHF`N?w&s+I z`u@Dyl<&+9sdo-}pxQa)!Fp3`mbzY9DLn*PediS!hbxvuk+zWzYB% zuik5*%Ed!t>Yj!Al~7lOa;wMFj`weo71sXm@rQkRQL0Vw zMuZ;&A5u;TEJmvvBanT-{7qO_oRO>@ePCHn955w zc*O><(O}b>!#mEEd56T#_3_?tg_1twI}v~AKTTvez!Sy$mVw$IP&W=Chs*SD#U5uv_*Uq$=lBCf3K3(?^NA@e`;ape!YS} z?uF&I8f^Uz`8qT%_G9+xUmH;0vGI_9xfJ~-c;96IizGL^_kub6UZgR?Ywxba-p70d zPc8PGTR{<5YxTRUKM}3VcF%IWox61^ycOYe@>Ohu58R_(hkfNr%Cn_q$UnNde*6WF z`e1(g6My8#xde;Cc`m_x@aPhsa|x_Z(KmE1!6zGe4)YFY@Eujxp%IUBdsG%K9b#?h@YnP%oCxRiW!=(cedY zOkvA&cjUP|ol6qsXL&x@VEd*ax4p0}IiT3Hed)v>?aNg1zZ@KM9set~z4X3q6hEEq zC0TBd-Mxst1L3PFN8QAc^>eF%CI9Cm-yHviMQ-`;3P<@H{x~?o%ac<#+!QN7Nx9P2DMeHczaD8IGaq4XUj$j-0{ey$+_b?Bwq_jimkHpsPg_Yk7hkP({ z&;JvW{6gXn`DEmWkiPSa{8iX{hp2DHzb$P^#Q*Zrw7qbQ#W4?t@^* z3w6pJn+dt>Sbgw9-CT3w0m+`Skh=~&U6A%zi|f!2g^%Z_a~=6%Y>%yovVyrJRO5^8 zavgcOTfn)F{3dLVtBCUuHm@<3qy01Cuy1`l3!Yl^jqg(YIXX zET56|WZ-fL&M?Q`aR8r&j3S$=DSHzz+?-re9KcJ;m~t%FB+a_H;OB?+)PLnCG~~B0*dt#E`Qmi2<|y$kUwG?e?}zjE z*8gckU(Wic&)cK#H)tndtGh}a=Lc+ko~!Uz$*qqecWlA%9#fs`z^+AFA1diH{IB5d zN?P0B5zgV2NBF%7@4V!vQuuc{UOD_xa1O6L!mo5s->Q9%>-Em})qGEh|4`&t;HO$w zPPrU%!`q*a@aoHRw^PTHKOX z!XND1tDnL#_sY3qKZG|g`p(5#&GZbYcPM{1$tP18?XN6GoVqR1e-HMWtaEOhympbF z0e4W|d2ZY~@Oia*H8*Y|9Ou95jvo)lTsPNsJr><{ioWZ*?uvi)!sbtTxH;gv^x&JA#G(=EiIbMC;|@Mbl(w6_%g zY|r*B>^WC&Yk1yLp3c=f6wY(?UV!sly_L}2se_$3=ibS2{yJCB`~N&w@8Tp^KeP4Y z5#&)n%-@WpKk}#ic{t?b@9$sTzh7NP-x>rzjo*6?opV1vV!Hu0b+Tj4!OlhT*=N+B zmmc8y49{PySL-5AfR|2uW#Svq{~&-=u6JJ<5NAZkB(Nejp!OPUaTk<)C&rB2A zX6-N7zqkE8IA0<@?c08beb>4D4BH`hom<3IB z@N&dw`0*(}hTjd2b(LK=c|^*Oyg*97yh38_ACuCr{fAS0+W##a_FboTd(s>C8?GDs zJvi={nykM4&8#nH{TmajKOOO9eL3`92lq7iAmY>+-^WQVuSI@B-*s|Nfjfvp=Q_FH zh5HtMc7DDg&Hlsx4S#Flj;j4VzsQ|?WBU;Oi-(x|vlH>JsBzr4(Rbd?DM?=r{Z|(1 zXiX;mQMG!@@W0{wkMQz%&X>$fbG~QZJL#W6eCNQn**e$Z@mcJM8e7gy`W|c>t#fYD z?QmB`^<1XM;YgqB^t^?wSf@umpY#T6e+=mh`|@uaJd*T=-0%m(IsE$#`4(Kevz(;? z+u=?BnT_;2KAF=$HKpI{xzD=u_53!{pRea1!1;Q<1p4`Uz9byi^RKeEJ@RbtA~@T7 zu3_)_WbdSXJF4;Gt4sNx53fUc&qf|}&K>rCKI*q~g)c@P^+mbgKo9x;$iD-xPzP_# zi~MA`tFUvAt^dOc8=v7LKIOX+U&syrb&gLCzd9Up^?#Rmmp3}9@!YuIf8jOOp(d`* z65r#~>UFh87VdbJxf*@yZ@0MXoA9#a@2n!9;q{KzVx({9!WR<$edPNU{uKGsq<4|R zhW|Aj;V&WnkKmJv{MFxdRNuh3Acf~~cCYYWeW}@mS;=qo-?VRkJ==HuB-_6n&i0>yv;Ak`Y=1E26ZVbo0m?6U{(JgY?|QC9nslyn z`VYb%S7XJ;6F#^b`7pxA_^bMh!y%VH;`nF2tRZ(D-z^Wc5d;<$nCT0 zl*^%iE%!rm%q4EhP0ybRo73}qIMUM$fBkFqyE2b(Om$WJ#PN&v$@XGHcvvm2-o+S; zy>W$=dp?Bx5Ae4v-y+wZ<9*ql{pZkEejnwT<@duO_uUUJdA;J}lG2tN-y)Q4#AkcE zE%hzhTjy>pOIkK5>2V$0lkq>B_$1OFto~oQtv-ynbQl zqBy=2{fExq4QQ>-@%ElWr~W2z=o|k|gL}u{XS&|;ABH@~ue__WR@?g&dD#2wq`|E{ zki~dvlkGoTN_lQw!n=;4-*vjE@Ymoj@^f}!^}hv&zWt@^QvU7#O@Sl7%Kc7tR|&8D zS8&L+=X;IWp6?E1{b6wEoBq+*iu`PR_2BBeJU(;Kxo)Cu%QY48+yMJm;LrB&fV+yk zN)P_9Z~hG*`PaVJgKXdPE!$rY&h~eJvwemPdf7L8*mqq^*DaA%VT&^NsIH^H_)+K=|f@b;e~yz5-fiGJ93d~#jR_b88bujyBP zCn~>du@Ut(+DGGaE>^^+y(>vi*pm-Mo_TfBA8dHBc zNz63Z%FSH1{RY(X7<(#HO|3>$EwpF^D@<1dvx{bQN&y)(p{R?byxrSHzhoi!gEe|+BM^Z*fTLa z|6&F~9p{)(=?qV`?Y{BGDmN8W#i*~HzOdJm(CQtvT`TqUuU+@uH^3EU!wm>etNYun z0bM~rI}-Q(8&IunA%`)B(!jEuCr}Ka)3#Ppp`_lesMfB1|MK6t6-%=>+R8cMmEk#x zrgJ&=#-HbM905;P%IQ;1pzp$cOTANncFHE}4}-J*o^a?pcg6Q84=C|DcjYX2!NOCq zcL^MGSDY(yHym?E4F6Iiyzf;4E=QcY(XjL69S;xoS$Oc_)ARfYj=2YZKk``EwTN`udmj#auDdjv!~RK; z8~-HgN5t=3P4jYJ6`K1D_yYWs3p+RRV*IldcCO~n@o!mbkMdt6xpOt&fPY!^ovZl? z{s#+>gzYDNyQIgtn{Od|s>roB99hICJN6&!+)c+h4=Lf5-;?Cd-TVW5c#;2qF@FoE z^qPM2lJj>Oobz{IlAAy4Pvr0EW$HF_n^JzKBij}Kb%j4=>-iUBWzL;D7``1nopX7Z z-qRlYR<3TAACu(HRXrUZ%TMQAJI6Bit+BP>vZM#ztu!^)a%u2uk|ap-^aqy{#u^bz)_yd(`la!zs*m#HvDV0OO*JX3*DczPAus)y!X}- z-t?>t=k%-z&rw;UUBliu_~pW;ZwEN1&#}`;-&bA#v>ouh)}A{P3!A| z>$Z7HiO=iXF8JemXZYvfY~Qi$2*2Fg^<08mOP|F2Erk7Cp0kR)n{v7@dIESANogCh04-x)%d)BwgyRlFAIlLs>xVN0PA@e5Sr%QYuFUuyE?>FHn zU+o%0s79L96uhrs~?ATQB1&dObDRbXP(AnQO0G_4BmU8=(S$=hrPdl4=bOY=6 zFAUP;n+X5LbUkzF<$0#>VdLu$M||>TiI;n*uAiKSmHQKXVh7jT!gs@8aBW^L$*&=Q zSw1fua_zN9f7rVY_ARW@$=<&yK;OFb@YTcy*p4oS^hlwVSlkV z>;Bj8OZ?ZuN8)EwxvO4mRqHP8Qds#U{2_O4*}3rMMgAU*>*5^CRmg)*ecO-F*PiWV z*i+y3GW3=Iobt-@bK#I{?=?8v+ohquJ#mM=W1Cx%ju_jVhw-ZIi0_Fib+osco^62cj~n-?<^tMh)(z)okRojzK^k>8!i(aM^Zn#k>vuh_=&0qLFV+3U zw>bxN+CLTjuy1(hc13vkA?jnW&*q#fk)O@|8IEUd+LN=rSIAFi&JJb+4{1JOTa)|Hg$UVc-7UnT78_zB_zV;%gG`ivHd3 z@kRa)>3tIR8m)63l$YRHYizA@W8dogY7enbH*H+s>YG{PYHW>$S=y!j&2Qy=ma;v9 zt9(a}$EHR9AlSJhI~2YVUN@Du@-dWemR~oZ=Xks`H~HgwaA4RYeP5rxzQ=Lbt?=`3 zoL`^7M{*5ZyXdcSQ{UFyG~QmLbqAl@uR5RSsj=cssn3}=BY&AUBt5~uewla0;A_c) z&UFanWlMP}zl;2Y+-D`bbB)T+O6G^-S&8TKd*m;l&oh&sIG?q52psl|PmcI}c61{7 zd!)1n&b6FrQ17{xuaMR}7jq-hdv%@sYVPQ{y{l77DlKNYr*qf_2V{R_Es>E48wF2_fn zhvOaWT)l6?D-^kWSYq{`Z0Il8zqkH2iPb+B4*T-M4L*!x74o&1%jflfT9tb00?%HL z!XNe7xpbcED;BwP{cgd3cuB8w``(7nFKqZf!8yEh!6Ur#`_RqupHV&`ckbU>=sPB+ zQ(q2!=l+c%KhYkVz7wfG5ng@@d9ZW){6^u~#G!NU|7f=RSM;xZ7ZY6HJ2ZI*YS8*ap)`fRE zX+Y~Tc+SFpbNXJ=_npGV{~7IH#DBmq2eb~S{c+qx=Q=BYfOn{|`dI9imr8DH=c=zhvUD##@5$&8QAih$oA26%3T9G|CiY(HmE3*X!iAkPR#BT&a)XwF`T^ zohumSB|nWk*z)$;6XE6I=m)=Z_Q2}ho4ty?^_j^09^t=R*yF!8`Rgid`0u6TVSHyH z&+**^hkg5>*O32cZ$1BZ#a5J$bED=YzGsX5Gv8s|9{fj_@>f2V^oCrv{~oNpQ;09@ z8Gb69!{1E&p}+Z*j@C=?vL!y}cCAZ)XT!qU`yrg|JqKrddvkt8AT}pX&VoRgoWn{@<`a3u)4w0Q=3=pBDM^g#QbCN-eJJ z4WYl1?R^4=J@vPweF*)3oIkiVj{ZqUv2XlK&(Ndq+>`O7H|Cxg{(HzHyu8iKJ?uAS zExYwfdj452ZTd|P7s!&h)TZ!O2uxtOjSdPiaV zv&y4C>$`cQkUc;d>o&S~aLc(y+tgUS`__-+o9D7_OMS?5S-pR=&DQy@?l0jym-TTt z=CV4MRC{s%Yx)3;@!r2j7Tmm=+bsZ%<~Up!woud!-hl}Gz} z-^|ms_JcR3%yix#c=d|PdRZbt52?T{H^}ByPoMC_T#DtwgPB?<>{S7(e}{*NLEd5~8V?>p z*L!LYJpyiI>pi!HrxsBkDvx!j^4NROQ}rVBC~40Wn#Okphrk@>>id=-HMrIIe&vt` zcfy^7wY>a(<(LL{HMqOMlNvk)9-}ROemAnk_ZTyeX>fOgr!;sr>~!(V&b)>@B|K~| zZu)nxk5M(gk^M#Qvepz@v)bL0{X=^8f06uuO#VkBAX`qUwxfA%yPVGU&ZeiK^v+E6 z82!Ye=a{@>mhZ(F{bYM_XWB)7x}#K zKj4UOCQ4*(_!GkD7KH~<$s$Ujf=ulm;CIoO_D z>_0>m^7z>g(;5Gd*hc)$k$4S$N+C}9D{MpVw-i5wUsQ-w{x;i?%gQtRj4@dIx5L@K z&-b$2{$|Mi7Rm_t7$d`J|M8^%|3rR2Am0C!U*(a0(|1rxpZR^gk>6i74R$QpQ-`%>#);HiY@Q*31KFxSrU-tel!pplf_{s*~kl6U1f+Ie| zdkxR_)}_8@_L)!SD;s=6gP%+6`MNaeA64?>`Kmw8SI>vt;RA}?Iazz)kMqUw7n0r_ z{)9$&$A@xw%PWT;)d;@~oa5gd&f&L!BmAe_jQ)=DnZiEZX!3R>zqty}ivQRAW+?3X zKl7tEd!@~>=3p;`-}`)>ycFAD=g6E3k5!2Kuh{j^wnJ|Maq6^pFx#;ARm^p`m;8r` z=cRLQ`QB5~=bV>|@UL1}`E?CBw~cMN>zmDlJ-SkrGykjLi~N6ze-w4j~J(Jw@jwXDhS2n-FerxU%coV|t{MOtQwnqxMiG{7hI`tj% z41MJ{!ddS1E9Bbq`j+jMA_cVns{IQ zng5dH)wkNnPp@ya!8yGfz*CDo)9W*hEPpb|XW5l&Ji5D*F5MEaZQrdGF@GQ482?2B z>K*bCiMND*4DZ&jmhS^wAC4ss-JfZAzhoQFV2(y^eLK38hwa^w_(xUR^&F_9;ApQb z&y(RO57!I)9z4G2-%jPE2i=}?WBd9Ad_a-gzWxJVu(0vXjX%fd@s9WmPm%QszbqW# zk6*GrS59W1PW>&|=J>XRL*Mwuz&XBy;D}H8#D@I%BzOI@%iyKSgU`cLn|vlLc-5|HI*!y$hR zfydKpn$G&)$u`%2+uy1Dbg!dtTd;UVv~9p%_^D=<^V@rS=M|}6e%P0B$Nxmk^Gn3cT zN`7~QP0zE1kA^RWPcPvwgFP0rl=8nH{tf&%$6R;Ez4iPChB7L5+CB9gyw1X3qHlj< zqgvcL8~qRQKUD0kcqikP_u|pAioGj%luF`P9K%myhq$It~A1(x7vW z!dqY)!Jt69Jy703d|AFPd_d9n{cOjx^BB_r;>%-9_J_|a`i?Pu2hL+m6X6(R zGJQXSBYn=vn8xvn_~bVen?Bz+&*}4-Oz5BdYW@5_j}bjdT4IdI^q)?CbNZb_kke0; zz0(i(N71iv|B2J2a?X+R8bdX#oO7h?ligT&|9R?X8lSUIr~TE4FYL<$ z2KDBfx&CDNHPiRzJ!b69Uh}g4M?-qp^#$cEiBtCj_`TY1coX?M&;e39)4CnJ>8XV_`_WllMd$#A<-uiI1 zcNm=Q9S(;*zx`%={ysmQW8}^ch%xeY8Pk{ZnEq#QjOnX?DESTjhp*||+K2YPyI-r>*uXaI##bzLp_7H#=lNs*VB_XEbRJk zlkvwpxIQzWOVfU4;QAKUy}Z7~KzQ>K-u3H7!Lfeb6R_>Yy!>>3h7Z7>*RyjxDAuzZ zK>V4v<-;>FS+3kV$fx6Y#(H!f-!; ze##6z@_TmeXmt|SF#w(4&RUo4p%rl+JY4s`!rptVNA?8irOB+^i-fyaD(?Qq1e{;ZrIIlOb6GCN;0 z*l(Fl?$dKW?zhHltCuP9`|UF2pBGmC_aygQWhaup{_N8!H!l(1ZgcND@p6(I-o8u@zir~@9vV=6M{u5!p6wqPP~E?N zT7N6K zzH>hO?wHqno%Sw;L++esraiUqZ?*Rj_OrcvkcYnMo6Pa+s;t%aoP!#2=a6hldpD}c zU0-DXKHL}a)49IMzHIFy=)7LaalKUjGdRoTEFVnRESE#>`W`33`w&Lw`XAT8aXnQ2 zctieqlB>To}?zyn(qnwMh_Kmp&Jr163 z(4h9dzHMJ?A)>CN^@jh0`u8Jx-JpdVzQ_8rZ|#tdX!~~S@jV#Qg`)rmE&NFAn>c;t zBUOE;uVTPAr0pwLX!cEq@UBYX-~3bIt6VYB6b-E7Xzp%Z^l$c`|8Ms1`fv76KYi!F z*mg(1f3ttkze%TIX7(R$2+zem*wv5c^qmb}roldE&-&vV+|}R%8{FOCa~eFU!M8Mc zN`s$j@U#Yh)Zk^w>j-`;E_qtlJpP-t{cniAsQ9Q^zsMTFgPl^{@8Sr7>%z)LHGXye-~OY3p~pznpsYD_zx| zc2}g6j)$ST{ik8Wc31z$RR24x|8-P#sH)x~tYR5c#Vhd^MD@RgjsBIt@({WENdnkv zso%-AyJy9a745 z3s0=EZtGA-4Bb#B&k&OZ;)|cdmp@YRr{zeF^W4A1wOj z=L7taANB2%Vd3`afMt zpY?f8IO?6c@?+aff zjL!7TmhvMj4|}rXNWt3Qfb?hk3@7%Izmw!Xi*#-JW9sOt_;yeFt~atMvfGJ6=Uk6X z*{)F7_TT4bqZHz7|5s!i?Z4}Z>MQD>E;c*z_(9=k%@)M|w@qI5^Vd^W9~(ZQ;0{{E5V_LA;aLr!&9j zu+90s9FF`l)LV_)KBqEH`%5(JFPZFX&-k*v?claOGrqInh);VT!r9(O zaJDy?Fgd@Dy@kE!$?tIZuN`&zU2kCoUauiK?T=)e?fV=q?BB$}o&b-XlYcn#|1{ei z->>0_&-EAn48L9M`|SKk*kh)1y59m@HB zJA7G*-}dE~aI`PV-)_kJk-v~zK8rW<@A(?#GjU{n{0Fj6x6eNHT)~sd@%Gz|H?lu} zyYc(*=%Vkp8*hS_Ej*C$KY_hQ>dfy?*+%)8-zjj;?^HPQJCg8Ez}w8pKb-C5lWcQ) z`5_$kwEua7&40+vzwPM(=;&MhFgkfhw!s^3 zU9X3AWhG@DdGxyRPfdJMV&`U^0KZq{zs24U@gG&}%bp*>f7r5qPI6Y!*Z%AHv;BW0 z*8XR3*f;-k5GLo}V-xvzuErwh$6N@xEAfYS)N^NlMHt=Echzg<-%$8F3^KmRem-GU zxx>+)i0q*vm+wlv9pSZQA70nw?;v+Qvei=fPb`zfKTB+Q-`~vkGHdUr$g@4?>V-Y$ z9+>}lmM3>5zUFsz{@*D1`_Z&I|KBg{xAM$?d@Jvh-`4qmvB+ifAN=*-*ZKc_kvI9U zm+SmT`)zphAK_*5A8dH@o9$)Rp83!A%zuP;?u7lDs2{Gc(Mj5D({;OV(Wh#Erd3q0 zzv1;Q?P-5ddVn9!P@&*HYSpD^}7xBrw zve;&y-S0*EXDaz=vU3COL~b5*P4?Nnvf)MEWZ&PmK8!5#CcpFm_g~27ug$mQA0>XG zgx|EtZ$N$z^5Or1pGb1o>$tdY&)iPm=XO+j19WsJzgiD7<+(sz?0d#F2vi`db{ddV<=-6x*Fmv>6M2<;P>*y?+>+J9=U ze${idU?C1L8yIWD8)SmO1xzVB;?{wi1WZ9NO0S?r&FY2WJG9N#JYKK7O;Jsty{ z@vlJpltr3>Yw&bowc{Ud*QI>+=qEc3*ETNIoIOn__}JW z*7JA=f0UQ{H*kEi{_=3v-we+Bt{)Tn+cI~;^7;`vx|0ve#(E!@yYUhJ=n9eqnaDNXbFED{4C`e{ae>ZSrggel!30v&h_xz+n^R# z?o z(qsBwhI9IyYZ>8PU**$5^_Y!8EbrgZwuU{Q1v`GyRqXj}+57ong?$!m|728Q=T?oy ze$+3+Z;gTJqdZm9d$1m$Yf;{W5 zfjsp4AI15>`M+JUuRT70(U!~OIsTzkQBIzFy&dcQ1#39?s$a2IufAQC2zrJ>VREPdJDF4jkck+q0v37xpF6q?6~P zyfW`dc?IA7kB(~m*D(v-87vHOIor=G;ygvZ1mzL(vj^1Q0vTWAZ~TJx68TDnpF!WT zfO8Y?MOreSi7d0G1srp=Ob^rX+V*8W z*V*Rf_aQ%o^&HU60WVJZMEuGRg0tMdbe69QhkP^ikANrE=34Tpgb&uf>wV?$AHzBP zVCrYqAIm*_);|}{`ZvJ6^k-`5!@cz3(6>MTSJImM_w$neVEaE4;N1V&503ti^<8-W6LAGEI6vPiNA~j)zw2R|wx1Mz+rLxrM|y4l^hf*WyCDyd)=i4O?^gKj zyP^yF`Yx&92F2W-!sb?);K=&em1()lgyi`eG5&+O_o_u2l^%EYPjTiBg& z%zf70nsB!FEjZib5cjh8Ih^f%0f#;3_U=Mn^4#8e;mzyltGU(B!!cJ{{Uyj>=sVXo z%bgqS{lDSOa+F&!_g`#ECF!l@&NWMM_m(ti;jhvp_;7;Hvhc9kdi0CU-a9+$;JtU6 ziGK-hW%`$$TK|`wORzKg7An+^1Ayyp|I?%EuKrK){}{$t*-YVAyD??k>9#gd>PRIR zQvGih6K8jE$UBptuhT%anL22zv)a1Y42QS+KhXc(#ZRNwnxWbgGd$`so%;U_t!c{n zg>~8PPp3WZVZhHqMZ+mB%tWxo)q3zv^UfeJjYxVhuh z=8n$hjz08Cdbxhh9mh9!%+}m7OLIp@bH|Cz9cwms^h!eorM|Tm`{K(lJsj4ucNUzl zHKxH^H~7E?pVHt-4W8WKryBfDgIlb-lhZS_!OOs%DZS$xd?36Ga(}lBpRe^4>*!pJ z-``$~&)3?E`EmNY`AuT}pU&qiKV}=xQ+!@J8J;x`#jSAR6LLL`y%oQMeg@Sj=_IWVb@wX8ozxqo%Uy? zvWI=2XZo&Kex7OnGy0Q0AGI>SUBa8c(Qu^SwIYb3y;g*48;pm?8X3;?p2s%QtNb`P z}`kD7^@WTCj%dc#(_q#d#iw)kI%UzbczHsm~(sMbd{Ej94pTMIB z_w*l3?*usXmCwZqAN>pE1E=ee59;jGnh*Kz#okbO7tWDgN`0~aGaP^J|D1|$?*BXn zTSs(0Z*nXx_kTRsqW|N&OWMotF4_Nz^x5B09{nBPeWlCZo;&_A9nH_+$e;2-9PfSV z=&SYAC&2l6$`4`BF`fD|aJ)iaKDohjbG$M`=Lvr&+rukj?hX7J{;>ZHFMcmY+8-)%<69ig_7;M}o^t0~Wcl(* zuKji3u&@5k4gKwtzVczjo$c+HXZ|0CBmc^& z0&ThJeGks*U5@x8ymH5TPX6#e@L!hhTYane{#w1# zpPTbF!gn&5Ejz}bb3I3zsP;N~C%;;s8+rWqb>uN#t9&NXm*wN&EVu4v`J{&Ymks$R z4Y~72bNGGXY~OdUvixrix$k0Sx!?cD;g4&`d0n(EcYWX~%k_chAik{&yFT#d@SKHRADAWITi+?Hy*uG- zZ!#SARz=@;L4QD+bgmbCbpPJ#1>el^ezz94?t64V>lyTSDD3#n=Cr2^6n6aPWZL5x zzuEqv>8d&EOBcEPSK`Wi8tKXG^N!3vCcezyB)-hQCBDo@PT!lSBQaTi$xOX@3HlgW zel2~5%&Tx?m-(^Td$V(0viuL+kYqk`?wT=MIoDqtijQnm{nA17<1%+PcyxouH+ZiG zyZ&OfcX5MnY4D>Bp4Q;c8$5)5X12drgU2*@>jod#V2YrSS&p?kFnfD~dBLpRUOftX4N3~7_P1JNdKA{o-nQl^;$#C}8aTKEutI@vLxVD(p^$Rj?#xwr>> zc+oe$r{Nr*V}zmaoZr=G6OO6Px76PY&iWU_q3;~9rO+K!^qqsZKmK+b$HOA8&%P6^ zbG@$}-InyYe%M3skqU9H_a&cD5o^K0_Sv>Cm0&IW_VGL>I{Vl@Q;9y4bJVth;~MSy zZHK|8NvHl#8~V;?3Vrjl6Xnq>KXBy7^j{4}`nC5Eoa28M4tuA6lj{Zcqdad~q)uP7 z`F@jbH{_S`(|P>v#2@7=-;?-e>>Z2!C2IB7rVNf=4xeB6A>_`litDjG+TS?)5cwE*2J)m+z9!qJi~jR$H-V=r z#K~Q3gYPB$ez0o<=w{leu1hbYr<;?Ti9^|rDa@3h>UqI)l@!~^&%l3tk$aDA*~LA! za~3avk1BHSF>RCMp3^abPIy|8ckN!U_xCvabf$MDwo@zOeu(-=l)dWj7I4(xThKoT zzPaf8yy9H^6APaX+n!xl_*1r5@jJS(;g#j^*TWIMIv?PCK0FM^`QRAFn{bR_ILF#P zX(vCOV-8=#KWmMxvyfXiMt9UZnsc;WKg{yFigMKX4d#8==5H|DUdI@W-%x%4&U2LC zh4Y-_za)LfaAqL>2=5$a)0_1z!;q`*ct^0uV`X?0Hg&d-qv1Fn&Ou%m&U2K#C)(JH zJWlz9hWzX#x4iFw52)3vF$UYWDDT_mrH&w*vB>>K^CbM&qN9^vXB%vLv;?wfj|}hp znjGG`9QuZTFtOn~I0qv9F~>1J3|l5T?HvGTdz0X7&*v|}+Vh?u>{a=JdxeKX-}Jne zxC+m;Bf{IBZh}18SC5bFO+G%0!Et zLhiVSPWh+!v-~efe&q{{X~IjF>#uWmPl994?u@_V*plZ(u&Z-S#&-l`Oy(tcG`wFe zuAX_VgKmt`Xzy4!?DE-Q`>Uk*--knA`=`_U3;Wvp9vpIc5`D$s+210K z)B*FXTNGXyo}iG4)_fd=P*Qlcm0|_59nFH#%E}Y zlRn#Mo$KeE0bfg=bjlrb%kmcK&vKu!hurwTKOOQ?KJv>A_8VVWeoSK5AKH*};E$y| zT<=K!tg!a}JX25j>tEx3l#}O?lHQYF<(Vywb-ri60FHZh=Mb$)zE-SqXMee)T7Ng# zIZlqb(T%B`-+Y=%`NjDtJBAr-_%Yaz@baH1-(c+xqx`bHX>bmIGvych+V4ksW%*)o z$hH4#$}3p=vrs=pm{!}4&-6?~p40P_ z0X=fl(-)5Pyf|@SwVvu;CI9pB&~6v}qp+!4hW6-6wrf{|FrE*WT-Jw)ZDE+w=O6?d=F>dtGq0cMP2EodIWi&hgFm{t0J$t#o~H{m7lk zd#oSnoQ5C6G3VjGTHkE*H(9d)`<9VTdn4d%?-@Ak-9~%q;Kuo-J+^$7=XmA(tPkh> zoC@dsOo4NLrovG^rvGy|;%l<$+k*Bjr|(iY>mSbf9c=o3O1^UX7J_s7j(~Ieu7Pv< zu7x9gUJpKo^Yy^~b6gKRzqf+p{FbjuZ1^YP9Nuengjc>e<(=gl!&!b}L+&$~kQ-k= z>PL=$!vy>dH=$G6HJc&*=^?ztlrW3evun~8{*I57!hZ+lHw$)msej|b}aU1mo|_Y&+gsrhScss9=r z`r7{;oa6WYC&xb@<(uWsK@Ir?=V)`hqrbfxjk$f~5hXtDTOV@xBj5K_&154zjAQ(j@hBb-gka5xLQwLo4TC}UsPjD{oToL)?XdY z`f}F4wV_{~PsN`0<6R1-3et}-m*H7`4i_f`1%G< zY4D2;j&c657vucFG0qfwthD-x_eQ_~2gg!4aS98H^s#v!20e z!7Ed~IsEa7?Q3^(obr5}<>1Zv>7GD7o~`YMuF2jTeTV&_@7T#t;20Zevicp^ z3VqiiJ{XR*h?}hb3rXL#iG4q5r&7O~tiI1;!v08@7f^6jMm-?87T_1iP!ioWk#@d{yUSYf|c z>-#WkCwsP6*J{5Z#r7r;J={ohrjEn+PZHPzT`Ffa+LK+g)ihr`&<2b#tt8c{hs*9BJbekuRp>b z1Kl^_5#;Zz8e1=5&+mVB7B>9pq$h{J7S7?{gd@E1AI15%UkPt|SH~aeRX&mPC*(7{ z&R7(@bJG6>?N{h4Uz7GJkNVVeF5Tt(-hP&I1NP~Z z`)o1mJD(+3eL3{4&vMjf-(Md~`Hd|0?Az}T&tIEwT>$G7RxZwqar~Aj;WvSwqAxbO@Tu@jL+dp-+;tN3gBG2u z{vMnBYvdhtc0MTO{nV2+FR2hW8y~y=6W4y9x9K*5H(sFUd@_B*JA2Y2uS?-Y`s522 z>dkkI=waW-@qEnh<9M%Zo2~QxpzpK2u_ErV=Im45OJ7si_kXUTJmY%e`#*QVT(&Fc z`#(3}KZs+hGrp13w;bOYaE|XlILD_v;`4o^Kf{hU>U{s_D30H=HMV@ea{}!6m(KM2 z{&BV^hdsl;lETl%hrS*ltvu4MocVbVj{L05+SaDkb4=%2*H07IZ8f%B8~a`SHx+hm z?30jBF0B4rgw6Vnon-w>k!OADXV&+9%dEdQ@~nS%M{j-G$E-gAdDefE{AK%dz*+w) zIO{)6`leP`VaA3iuc&V_UBF&^QG;J^u0=~iCtUUzDLZJaICu( zc~EWNez6%0U9au^A^DB5YR4MoJl5#5-8|Ole9H6c;MKFlGhxRQbdKepg+Im`x5VBu z)VH`EXkX6u?}4-Zzr)%7iqyYseKic3I8~hIJITq!Ew|b9d zKDN`S3p(d)jAi?FV#f@EyB24h4~}{*ThB6YllTzir@>2dEOn>AzlEcna1PBr)Uy@X zr}MtwHg(n-TbCmLner0e@xCSb#WV5SklPP`uIN7uzX<#8r_MP!gYifHjDJ%&;y1s$ z!;!yh7vq@&yhcfn`q~Qp=h@$f^h~YIx2~qcy%zp&C0;wR-xOU3_FUD;>#_}Yj@mge zx2u(Nj@=}DN7h))v6D|ItiJ0wWc{__tS^WDmvlJ4OM34v_7|W5{RjT8WN%&M+1?Ux zwkLYVem7TY}M$@0qSw>*Lke+-<%+lS8K&rJH}|H{Po46EOPr#n|U$IV{Gm&^N)aFn<5 zPaE<9gblfK@*GotuCm6t4j-A=Z+v9O@Lw-q;Z$sntHnzIi zr}MhJ6#lqQ?}~g5(r`+Vt3M|k`tn?f4evNZgjen}hS1kutAB5Mi@;gFQIf0Q-QXJ% zYya0Nyz#%=(G$PnU1ubx|6n-BHz~>0pO#pAg9rE6lXwOM|2;tA+`KKR@s>^c7_>))2xbq`J@ zZu{;!?+Xrs<+aHMxSE@Z1< zJJKs(koc?0?;Ye(e(LA)lV3~aCoh!BOWr^6<8$;bKjl6X&*?ckvE{c1`OoF&oS(>_ z<##ch%kL66m&d&g{g)g1EM3w|e^@F%)4M||KcAt0hw_ML=+(F-`9BXGo&Da~;mvET z<^)j1+xk9}?;h0ijJOlVaEzNe z4*Db<fVqs>W8=ANseZ;pZ|{Ir(o5w*0f)^EvY- ziH+a>V2=L)IN~4iUjLTwm6;~p-RR#4NB`pur6VCAspnQUjuM^JkEeuC| zws!}@(Volp2ZO);W&diNI>NvFe*f0a#2Y;02mPzGY%`!rPV3pCALaKb@iH-jtIMQSMhrtp5r|A0)_$a?$A@3wVQGU07(!aGP9Ob9| zZQz`~^Aa1MbJTKtkHQh3DRLVp1<)*l#ydif?YP&-t_5b&)bVZX9fUCt02)KGU}&Y0dc?4@df} zZ_1-Sn!fqzKS%nsw;lb9uqXev@I0h>yOQqM3<(cg)Y`5jr(&}I)vlC@!sKmrw#Fp= zuH^6Wj!8P*$=~W6)1%bt>hbqVXwvDM{QZ-EO!9Xpe{0QFk6Ww9+kP|OUF)a)BFn(;@_Pp*3U35!&-ex7F3%uEQOgitfZ}${3|RrTP0aONqVB!H?~Oh_gOcAJ8+IS zEXOv+8{`cWJ3g@=*WPeA?2W@7 zr(E^z3-u3zxkOfD`|^eGm&hjxxI5v2$p2B|{~i1ee!4N0>&uDV!THH$xy|b~_{hYI zqR*@St@ZioOz$7?=k&e;M|zbXPWzbUEPdFP-$vEloIIXYo2%Zb{WF}$$9@GLS>(P` zE1yumm~b#W9#q}OMHeOHeK)Vat<#?_~We`gx!NO(mB4f z5!*cevoRdwKaMvY1n2RngW(u&(%#W<*z+A#%ff58&UaA1%l7HQXCd#0zq7FKnD)mX z@0j`yDz~WZIjYK+Omg2L{W^RUKV6l6{5kzQz>$8_;~b`(o-R1j<2$oH$C-g+tTVml zCFJvM#=Sgz9zUJwIUIka*Zz*l{j9; z|036i9RF2t&i`_7j$e6>-+7@CzwymWeTeuh&vW2x?;CK~^Btsbkk-9QdPlSP;H~)M z{#9Ox`~`bH9R%m|=}0)vC+{EchU5NGK9Twr?D_8+1^Ikii24=hm(PKhd*#y@?E-|;^VK|8(1w=SIH`x4IajiJ19d`H4LzN6rX z&+$T!MT|f0d(yz_o2T)Pt?h|peUV?;@(s3pk0ZUgd{2U-d@Voax%~VFP7c3aBm6kZ zH^LjA^3a!WN#%d-ggzC={fzCq@@U`HpP%xN@aFe?$~*FFc@Aonr?On0+rha!Pl0oJ z`c9SQ={5Pda-8#q=m%w9r@`wsc%ANses^cD@Y$Ar?D2%7$Bk>+<5MaG+AC--e|Ysz}HR zuk~nyeJ>-+-)ZpY4Ib2(KQXkyi#2$3gV%?Lk{*AHk)E!^UGN0B6Pds3;fotQ8D0!o z^;>(smhWj~9>jcy%*!-*>jrl>*!dPY{8J5{g}5){_m!@B5LD{s#A&$BzOC`IHTTWh z*a0rwQ$5;3!v2d}#ywNk=(WGv*J}@DYS@NempYAooqezGb#ACK>?`*D;4Aj2``>Yv z@uatUr`d3>*YqQ{v0jtw8=VP1r4Z-(5InwbuMct5{9KFR-AdVC48H_#SNQ#TTP?af ztt|_?KGa{~$^3NMd!4PvRW}{++qbtrr&B%v4!OKwV(qO2hdsYpdn0^69lQ$fy15-$u{~1&W#ue$Gy={fidv!`RRNXzb4z~DxxfqbGy-AA4k44vG+RH!}(t44mirg zxe-5w<6h?(!aoGZwafGwcTS(jGt%e1)2DE@_ZK+q8Gayn&Eb94lEaUNbNE%@2>-?s zby@AqKHV4a5%?djv07h*%V%q9;fa*bPvG|oJNM{l{L|Q{Q+_4ekURIt@`<@e>YKl; z-#6J)-}GnwQ{k+CQ$zpOr0?7*`vSw+r@Q|o>NNa0`*rsWqfX%GmZEZ&pU=T^`7H|P z@>>JW$9Cj?HHIYv(M5qZ)e@DAKm=o&*CD21LMs4oFr6F^jH4P{9Za<}ipLpeRN#tTP}Ws2DK2u7ZlnV9s$D zR4{=VbHIQ(yXIZ}uCu%DdG0Py_kWN5kMDht@2!L3>9eo9?h0MqU0q$>ZO4-(;&oKt zY;(eU;*R2)3={OdBb~7j)8}1Vl#Xj~Tp~Or=Go|nGEAB09F6hE_V($0=KP^|k}t0_ zR%z*>kBszjkv=!lZ*=;1iqAJKXv2gZUn@!;)9;*=bd4uIRQ8mSFhR^*qRlf*HmNE~ zW{URXbnIdm9w=2c;jPbJ&4Fe^Pvoc(cIE#k@0gToyg~ zRlI3q?UO-o^}6Pg=om36=v#}|Zmv0(zrll~lb(&$klv26xAb7%F>Q>$CnA3_|4AKI zpPpy-?+MC_-@i{6`~CZFvERQx6Z`#}eZ3 z|L_FI_~RK0^T#)XnreR;tuzSCjp`(RD#LVcS!c0^G}6G_vK_>Aff?KBp}cJy_)twW zJ6ybR;9nkXkSuUI_a3QV%kSooHAr4p+8u&D&m3{5Yk%i&4dvhbF*e0J-?t7rV@Z5N z)vg~H+tVvF>iYwXjiFZud&c%&7Y__f{-?^H*6$y!BR5$}eV^ z@J!b~S1UZzb%X3%H!Zx=nfmRcx6&7>{8t8lJktel5d85>*UyT-wemn9KQ}4= zmLK>&<=68AEegyxFwawG>>wAvvUNdEzX{u>Fqa;G_v?gi{un!ce$D*Y@j7ee$Bx^G ztvxbUjXpQaZkpc}@^Aj||2M~sEk7pPA;F%p<@1!+7aUh=|1@U%j@SO}w{IiuPk#HJ zth)5u7ri?8WBYz5-L^0OxEJsJeG&N^E%yGR|Z{?^z2L4DDrI2Zi)3IDA!^B=1g#t=Hon;%0MAhv6A z#t04-KN(VF4B!JT-xHWIf~i{8Zkq=9FA-nkm}~yq#O5FSJDd)4{_y@@b<7wE*RaoM z9Rd4pVsGC+;sFsK7BSD^`}oX9{4Hk8<9X>vWyvR$r=gmLFV6#FAAgbK{}=0fR8*fw zN4)#*@V`^v54!rLJuG(oU#aiUv~B;twD0R=Z`+&paHrU}hr69l{+^9^xntV5E@N`- zo9hwtPyC%C-Z|p9eou*Xb)$0rJX7Dxr2k&~j_dnzSKoir`MjUX(@K8?o*&ymzhhF; z+!-Bg;5kZzfPRvGP3IlC@Z~|r-*#g2$2+|HN$ak41l~E$@!eko$L+2Xi_w@Un-bm#k{>~vi-Z}n=nCp7NUYqIupqAAv(g5>3jWPKkppcnCI2b5Dy9Y`J?CWcz*A3*&nAr!nG<3pC7j8y<*#*=wCUV^y%aK^m~g>lnsITK=70d)8_{nAMokZ9)0>3i>*FLpSiD= zKJ$m*BZEKk^Rlz2e7}m#|8nUciEH&oDA`4G8npbU43iFGzB@KLFz;nx+t__P_$BF{ z$CT#zPwLEgeQw0eCHMNe>O*-RtUi>YU5pp&1eTK4&wCieOHi`e^nLhSv)=8yDv&!Xv^SIfk9o+W=g z*JS?S3mjA4OT<=QnCH5UDgV`CU;b;vR(|v^BK=FJQ{D|!55ByNlUjLs7yNnRv-L-K zQDwVGzY9}RT*ZG-%Rc?Ti7kENudX;gzJ_OV@j0*h_*}>q&y+6*g-XG^x?{81B`5UQ0ri~R}htf2ReXuB<^ZQIlkLS*~?x+p=81a2twqq7! zLFnv5gb{x)O8%}gyrX;*@JD*y-wJVUs_J~M_(zGoKXmigP4R2xk9~r0w*0@K4{rwH{_ULBM zSTyHdKNh{Y*pEdYFZN^6+>7vI(Yzng#-j0ehsx{yZ6Y>*Lq5*ZYtMmMfwAUS6n|)j z$>oZFr0jiqbHqNqtHeG%<`w$%28k^_{GBfL{uYY8zeQs2k8wNik9maV?{MXx^fq$& z*Q0B>{2woSpWgLipWZyNrFZ;8q{|u8Iw{DQ^AReqg!g%pkT7Evm z1b^ei<{$fqBl|m?{pZRr*D?J<{JG{MaYd?~QXCCKrhR6?mNZ zXYr4LNss$LKD{cj`HSCA#J#9HR91g4>PWF2AFwZ%?=^#e?nQB~vwKa%e?aWxj}cpZ z?9t7hd;f21d(2WD5I7#aDmHukp_@PKtJQwI{a~@TM>l)Y<9KE1UH^{e#wabD_l@37 z+tYO3Z*+;+zuyS<$D}8k6D=)3cev|BXdiX6*23IEk z?5_(R)5|lv^0vV~{1zE+ncDLjs5F078J8zpcFg>URldeaTk0z*uQdOIgD%#3^?}jp zXKtxK3o0fd`>6<&t*Z>wbf4NHt!a8d_*pO{qx9#XY~>ZTlZs`s?t;{E-R0R&tr~$= zW+uC3KL=%&C)9F8YI;IOr-q+%Q!l5UtLU{&Q`h>Lj!-=pVTrb?U(+RR;53!(*KLYPl(>IB2BMh#gw8inPz1-W2kZhP~I#uA#Imrh#jeQ?=A0F#5$>_WBu4Xa3wn;=cuZ z#_qAbCoukA*RuIz?6Op;`?1SLV$-=7&{6zkh`)|_Q}M%r8N2K(e#ZIdn!)0e-~Gfs zzq-X&uah5ivxi@cnDTo4K(&zHW8PKa^~)oEBI2o$|AR^j@&6OsgSztD;}x;r9&fnx z*&byozuz8>U48uD*dFh>^w~b~_MlJh>pSLiB0auW@@b^U+kTb0%C29t-BH&k z;wh@XcKRcXQe~^#Qh&{g{#UW-#D84u>ReutfI7Du0^{ld;li-8+AzElFs-x0oExf$J<3b)A4lKFBH$oq9=>R^Tj&{?sKHhXR4oT z15Xr}i+2w^Tlx93cxK=`rGF}(?|7sRYQ`gEze0Rk&_7gpx#pN2cHIgVKdu?h zl6GLwxn_7k%i|p{c1$1rEwS~{xn@{H^)trV4-{K`>^VM|J2R0c)~ZjR-s)nDPal7KvGwt} zMwlwLYXtH?O58vAV}1(PoV@}wKjlm@{UZW;4{aZ>_ZOSa`~XgjTW98}eOKkz+g~N! z?3qu3ULEYYU(a~Sz`&_LvG=!Ol)vkxdw=NOU!~alyIAb~Z55U0Zt311y7x!E0i@_s2VC&EJ|y79RU&e!TVNh(C<@ zhltCg=TzE8+%@7YBOVy>J`s-=w^dg8<2jYuh%XUWO5=~`R_<~9jQC~8=s!fX&CVHdomg z6DFWj7heCt>3o}+{pZkN|L=U8xx4Ibe3$t9yZF49^#C#bR|5Wq>zDHjfp0w@qTj)R z?-Kt>%r!gV&5g2o!2<%n5_Imx6L_wjeuIq%aR1;EvE5JLx%R8XO;qOu^sDu2`Zw~& zd3a{7Ywyi9+D&sJ!BMC&e)UjomuGM?tI_c>SE^*;9fw0*sOwb<;@8Nc@WaW zf0_4Um_L}g=f=dpIr6{U`N#gBF8)=@uZFa8-ls1YS?ac4NN9 z`k=;_%pP9k_!gyCSFUXw>IeM*?L*%F(1_n&t)Ty^@{H9z9qT&~|JSAkz190VPc_S) zw<3#O#Dm3ag#0pBlD=Tez;`azu}i$IkA|PIpSTFUvGb9#IHo$M&O@?$T^ij`CieoFW;+TUq1E~U%n5;zI;E4efhY5 z;LEqQ*vd!#8B4JIlRoDIpZ*}RrT?C`$K7IW@-%S2m9det19QKUvDAfusb3A@=hCkh zTl(0atiOf9ezNkyOO-weyi|>2vG{bYC%~_0*|@(tv72ds@9y*)#inC_v5tqv*ca<~ zXZGBWts z-xizB`KDa<<`2F+^8dWb<>N1R{?qf7i_iJwavgu|d~&VQe_iJn{iK2O)9&JNfjM7L zc01pouc>Y3_2xQWnofF)#Fk&;Yjm?-=X|911mw;~OT-o*`(--58FPM`q=VD9VS90Y zx>#)c3)|<&)`ji!UzxYbSlK<5WWhet$AU)JmAMa&#XuTS_LrvLw=bld;vf3KnTZvAh{w~g4!$FtLn zot~&T1nk>rpE7%{XO>HUIFr-zT&{i0=Vy*%`tx%X-}>`>AF!?BZrCPs@S1opE%N*y z;Ro@_`t|+aQ^eN)o!lvV5B=$7SnFD|d-h!N79qb^NPk7^H&0bvr>X5#O0)A{%$-JO zddFZ-|CPS`vcMeA4-@<2`Dn4V&oj0BXZ>9l?7!77$79Ms;P^LRZ1vCi@dmLS|As03 z%arD~q5M4id$N`XWzp08Z!5O^qr;}-f0)?&-%D)%u|F-czag@}(b?ngg-BoKbnYka zsJ!|6i93jghWw(>kMygZ&U;kO6tB}Dix4yMk9F~5=6)yr4@(dJ#xchW;@k23De+y( z|Jtf^0`K|cxjuXE=O5YgUQw=p{d-0|^Ip*O+1AFH|Co6X=?-fD{yn6g*OJcI6W1h! zn0Yq2o$_nXCX?S?#8$qzJk;l8)veVp_Tw8C?AvWvoW7@?IbDRCHCS+|er^BWTRLsu z&cEoe>BRp|?Bm0xzoQ*!Px)@<{KKZto=}{Q9V~SEwNAhCBz>Pv{CUv(D*Yy^|2vch zVS>0q{ELgKww1KNGNrz5Sz+J?!mavuC~%#}|KpoxY5}zs|98R+e0Pz0G_n-``+9oSnaEANaHO zg#SCGd;hd|?|(Jr$NOhI$otHQxi_Wo}Yd;cGZz5frz=AZnoqjRYD z*GugE9WD0$ZWDWdcZt2fBJIoG-)ds-Z#S{`$MvxHH(hN0n7@F(N43uqUal%jZqe`C zDP{b%W3IwWA6lr3^#|dam&|C)uOwpNNF_33S$ZN?&Nph;0% z+i;VdKigD&3+pa1FYOEK>X*vumm2z|;704}mul;m=;sm|wq=Q&X-OUPu%s^QN=xd6 zhjs0;rPM+CpW=pfS_-w$aG&b1)TXU1H7qP`Y3rI7*0rq;T~~Q2ERm>!)}_CGsib~g zky{F8s$E;ketFJ|&2fHM&2vSJ1q}&x!E-&gN;@v-FvnkGo{PF!JSOPyO^$gkYMS`O zpz~Z3JSFhuYD}beWJr(nk8tS|pJxkveAvgw-p9W&iqBZT#V3Ev?Y8`qA9V9a`G{}j zyIc8#?f%5`;(NvYL;lI{@oKPEU-;wvV*Wmp{WfCjfAAf(9mUllKIOyS@`t}0#O4qE ze5d0dHviNg_EvuSBSYld`U~{`)uqZ^Z*&q54e8VWZJ{=9{rNF^fi=9R%1A)JKs&SP zGo-^@gPT5A{!E`M9X`DJ{&8d`kAuitT!Y z>x-T`pW5{W{e=}`>o34P8x;5<eci7S;Skk%Il{^yfos6b!7Gao3_sL z-Vt9N@n;clp`)_*cUr_tBW}|+Z$Bd98zcTc;{I#qi^~?3-$$`0F%>8t`Uksn^c+OV3 zpC})v1p8Bz-gVMB<`QD&{yp~x4K23_`Gcz*cfK#XA2cZFa4-2b#=cr?@mHnq z==6K;*1NOCCj@^NiDzh;Yjnb9V(Opw!*iX7$$4W6{3IxiBZso(i zrH+e6paI^TT}(#PLJVvD~(9S8WEpmYA|q+^I3kFmc|?CoK1-$Lg{ zZ-1HC+r!?TcOjWQ>Hn%DcM8Bdolqzpehb;$5LK5-Q)&u~NSusLc}4)kJf86P4BLop)pT_;r!ayWzY}`||OR7Nf75Zb5C+XkKTph^rzV99VAB@4r_^ zJU-&uh|i69cEqTxmk}qL_o+ix{d*fKBCd?MSHx8j501Dx;_(sJMtp9> zvjdaI3JrbSB5tc?{&-*eV-YVGS4y+`pQw4MgT?%H?Y55o&*labpLw$czR$V2etV^) zcVFrIo#$!!guthXuhjB*r#~3!&qq3QWGp`ZS~$kvCSvc8`_A5etYhr|8rfeH=^S&t zKkhSoe~FF@#`s%L?Ctk(I{Bra=j|s(_Vb;N{cVo%|9oW6x5mw1S|5(n`Vjm4jCDHp zM?1!zc`@Gpj!1vr>1^NCbe!rHw%_VHNO8?z{dV|@h!;B^DE)o$MygW+ytYj9UT=T9)A9eFW9(b1KD_-lV)KXnXvf%J z6xl!QbnL%(jD2U-ulK*F*!!R282j5I``4Y0|8kudEI#&p-^TkN;dJb$ImVv%!lQgyP1=(l}J8vl{rNcCSG7@hssbmG^lK7IUok^Xd~KO^?>XQ;k>{PV=7 zlm0}N-=}|~*mTmbP&^znBTn@;@YI`3KhBUQeSrEeO_J7l=t5i5P` zz}Ro;?5U5f#O4ov+cD`kR6oh5PruCU@mDR~(kK3(#ikRV`*c43K4Q~}|FYP}|Jvz8 z)aRh`l+(_dXdWO^`~WT`h4YgUFo{~OauAvE;jvf@jP88 zaSkJ3|Df30KPxu-9@3A{bzT@wu1V+x*}hnH|sjd;*;J*Eeh%3uX)RY zzc@eWjdamr>7joqw)~>suTHq>^s_rFE508$OlJ(j)}j$%Hrc6 zC-(6z_wVdorE$pA!4@|0VY6@1XYO?Rl?*xBrXS?D6+>q<iL(#PLiZ1Jh@yTv}gD-;1+57y!=Ko)^=e;{tKNIC|fAN9AA3WYM{x22#@}491 z{$cO`Ua|S7ydR2f9GLRH?Cd8?KU?irhmk$uDe!V^Y9nYKun7_@%WjcTUBiJ7#{z>{iS@ZKJ?Osd@XI zoQ^&By}bW%kv;RmO~?Lf$N2wyWdEttvH!*~_N%K-e159L-aqpIjIrmQiMKx`(z);D z^_wD{`|Ms{5$Vl!yz_c%u}`0IWv}lX>BmR?*bj)eg19}d;d$sKK_Sdi%))dIjPyF`P2EpIL)8f$Dbs&_~?yvy!U#0 zvFYTmhx-4PKX^CCFIAQ$=ZX7-{Sf^~9iP4Z0>{{|rIWYWli$n5KEHQ~eSV%2TYj)V zQJo!cf42=cef~B{XKHhp}QfQx_e36asS^Gh!y;%E2zhCV2Z=8<(PmZx) z)9ugbTe$rf{jf+sGSbh8bncs5e(?9OWBh#=+5aojb?YUUf93_5KjQBk>HhdYdOWA# z?RjsiuMh4sn2tT;ea86zCbF+ADd^aDag06poxJ};BYk$HUl-}iBmIL&uT)$0{=0}R zzl}_Rr^Uy9Ke6}EeInEGe_O=*%uP=JA>y@le6;xZ-$`u#`G(9u?eBJd z#r3sr1?H|#M~dxw_I|x*a6fJTO%#WK{b8zqe?80is<&Sv_V#P3KD|BL!`ojYHhboU zjZ=MHt91m@-^HbmK3L^7oo{4K5^pRU0{PoW<@Mw|~{y^W02#>Gs?V@%d(x#V5Z5bbaFUdxY5XOL;#N z`|`q8UcOOvk*+r$3gus{i@)VMpOu9AL%&IEI^3Y5z|`+>ou8~en5VIo%IW86>>~E_ zG)@-J(jS5MF5IeLKTqRMu|222Jd9;xKTl(+c&PpeyjK#vMB9*neWl9c?KvNrJ@X`X z6WhE8%Cn`~tCbIbm#ggNk9ml^2iM|LpXgSf*y~Y%oIUd<&7S=5T!PQfgHC6Az9zQq z37@307?WR~OR)UX9(YfvwFmUC#HQ08VBa39)t;<9uzh}z?zhhc(*5?~df9KECTeef z`!p5X_94GKXJYwjtskUN?$ud+|N_+1h>_lL_RX=Tt2J z)aUDBtIs_v8Yj!O{kZ2#pgfmo`}y+BaNCpmM7Q#suJ~u^_%bJpp3d|AUj1RKU;NG1 z@x%MOKJYIisOK_{M7; z0iFJvPtRXdqaPXR%$@Y{7dRbz=3sb#zCEGy-W1c}O2_1nIWpdVb)?rsx}PJ1zk4J5 zuOs^(Bb|E?KD~{_mOt{dkJDl1%$WTqAC)GTi?bO|dT*L|ftYWr6KGFoXxX=?lF~x_ z_oTz8WajCdsRP8l0+Sx+e@hR0*z759U-c0zzl;HFrMRBQM9lfubjAqi^P2w$#H(xj z9jbK%^e%3DqaPgU%(b-mGo@c4w(??stFwnWe4BslKaA|lw0%q`{k7fpgEw-FzwMnp ze2`=8^*DYme;i*df27ax#hCaUUo3r?H*tIZAYzU$rsHp2x4lW9{*%=Y{&sct=>GVE zJ}uHObMf(ii`eo@{6$VD{t6c#{?74ZpO>cZj_Z|e-UQyTw9ww*og6b}?%Na0HJ7y? zc#&hq$eU_=T6sH)4|Llbo%5B~7e)FjPXAV8(2TiRdGXiV)jvGaG4>N9`*WR6`qzpr zeVF5gG5(%*_V9;}v1famJ?X6{w*0|cIwt-QSN||`@T|SSQzK@K$#nePEjIt8|BTqu zC;msy9{txy@1*T%{?K{u$l~LF53%>pH?2*_|1|NTp}oMDIp!Y0P2yfbhk1{sXAO(j z^VF&a={@FuD31i*`-|`XDQQgO{08Y90E^FifA>*)=oxh0)BA$BIxz3)eM~&i#UG~a z<>NEQFBe~&i!ZkLe0O_-u5s*|iEGHy)H$_lNWNpet*%Mv^AY%tHEjC>`QN8iKK<*( zKK-rM$fw^!Z0QsKF0s#l!`Auumx`;?)HQam^3N1o{KM49FZS{KYJ!oEznR$LlYicSW%YZ$ z_+U+7_$ZVY?xFG-k6EiYefQsNwE@B#59xh>T9%76@Sbw`^1#d)VGg3rp}1D@CyS@( zkMNWZX7qGz3u z4$QMBKZ^GZ%(EEH)&A9F)4+SxuPoOXL}1>lK2f~8(+_Es*ZYXQzC6;mZ(PtR-!>W( zu=4R^*x-9y$&%s`-zb~@76MZ*x%-u z^!@c4dSjK<+w)wXG4{KPeSVmu(C3Q1eqN+Ahso<7JDvRY7F&MFPXp~=mLGVW<4Xn=B`d^? za}!=&rzm+}>(gKKU=T7P2G;Wr#(KSJkE zZ$Dn_?c3@6>G^(_9{x_z$TUKhDNX8N+4#z{YTQ|GH7a z@$3MtBQU1SJv)C7;4jksnDVP)JHK&{hB-HWOu3cV#*|6#II*P%bNyvZdT(g|@aZv! z(x=Dul27k>u}|*>u}_cd9rI6m*E^9{x^(qCPy8=&hoCdYK0*7tjj=OEKSk`v z=%isv=I3%9YksthA=6YNb^xuPE5e?w+YDuPMX|HY=B_?Y(FFZSM`wQtaC)d(ve{8PvhusZO85DFN^JQhKU2k)AM#t(s*qo}MAw^^e~zy+#s2tOC-%qJ&&76p zPolAjJAdCk=`?0v%tK|XMdfq&JVi>`T1zw ze11mideGznz3-*_^tO=h z(>q%1(;F|g^zc8wQ^Ei36S8;Pt4h-Fgt)hsw29L2j`&P1sfyBo&Ul;YKZ?~v>gRN$ zKj!p`iP^i>)kR1HI@iAzzl-!SVs#nnb;ff||C982Vs#!r8>ZhZ{R?q>r>}7OV(HA`>frQF zVvGL<>5H{V(?I@4I{hD{FV-fk*XKHYwG)-TSevw7U*Yr)(tDO>&rM-~f5zV|{jH?) zj8Qm>rus;y50-wXc*D$ns?#5__+zCfI==L9x^4l~>$TE%mTvt8((fa-_!mjPMBLNG zpC0u7TDNOhAAUH=sCJq8@0V(AT~Scg0=%6LFj0)4&Z$kRv$%5>Xlb_WinMNgx{f8r zQWUp+!Hy;DlJ?VCy1ssib#v<1rAvv_%K9`|O5eFHJJLwKXz7^xrK*rxl7yw<^-F4C zeS=zAzf@sMo$Bq%>X%dpRap$Tq)k)5E-b0FWJ|^MOI3;yRHf@;bP(zLnUaGSEv4&9 z>(`YQ;;w3GlJi$`miVc(uG<)#C$Mc`a^ji_Bl@xnGusG=(o_G)&(ma1EXmIB(YK*Pk~zZrXVh z``NPf_GgQ|{pn(}=bd$2*VsGjn7h?O{98Kj#KwMK^?M1#KT+G);-kZ+<5a?epUKePUjul&x&tW10)dt?cdSKFYhR}{9<1tw)A4X;Ta9nXPF-f z`J?`;8s_V>uh`;qp1)pf{V@7LpNXv>6f@UFPwMDn*G1&#HL>}Nb*?+M)^&=#;}H9O z#Ad%Lo$DIY**;&1{q`x+w)`!f@~n_<<$)j3bsqj{!Vi34}aeNDe+~} ztv$e8XB$)AJ6(LXS6|nDW5%97sV^VTidgxn56{^1ETP#`|F5ZS+4hMU`|qTi{kJ7W zsr{2_Yt;Ejhb=vhmVU>8RWRo*xlIG@_iEREW5)ji*Pij;M(x%6Zz48-_;2SJdp+)) zvu7@^w`bhVnC^?YS-SGyLgMPTWoIK=bAX)Ovxxw zvUfk6r{(s6KbHQymiq_hT>}FZmuoQs?<%0*Y4+%hOM9Juq1S1TUjMV$^!PwTE8<mi=^`bD>zxCJl^pE*IAYE|!1d?-Q8%+*I4!{FDAp+MYiBoyDdT zf05Y7@1*0G>BL_{*Qq}K4r&ix?-uFZ#a@3s(%*>mDvhgp|5xZb*vDT>eMqnGE_<(c zkMs@1rt|KK6=Lh>{(MGR`V9!XEn=ZDT?oz2J{| z0NjfqRD7QC0ota7>3R_Vb?H+xO!zQ}k$hROKS zhRNsJ-rOr9V9z@O%^p5g+u!)euN$WObK8*r*X8eEZSP)L^n~)>F1GUGf2!)={Fkcy zyJ&mc@tga;yK4JYhxpug=04lNz}Ua2_-22r{5`7e#Xe4W;=2aP6mieM+?R&?24Ow^|m;^H-JUZs~nghXkG-d0ZDYLo!U7E!DV6D}C1`aGxa&lF{Nh!9Vwvj}RXi zbjnk$ag6G~l&7EA%7gz>jbnKK_lnK`*|OhOJlLhTcAI>9>xnHr?pq(zws7B?`k%ID zq5jdA>Z1Ll;18Yeu-f+F8%m?3wFvsjp)C73MmL@&{UA7$ALe*%O#IQ2{TQc{-Wg&` z?+V%fS-hA22r#yT;PsgN>Zt275#?<%ru>J_}4vw+kKeA^Yi`lPAf86Qh zpZJ!4?6*@oK7HPm;r+$>Q%=Vpy7$*F^7ovxC%stbKD4EWKXmg)eKH2wLhA^;^H|Nl z{`lNltlgvj>3H60%(3by{Smld)nC8srIdYhY9}pweP^fh4&d9wI)tQwcN{;irRxHJ ztKXOP$2B5>Z)Tw@+i4(w%@wC-VDeWX)*&Jd`0J!U?{9sv_lIu&*pDab@1_u+e*1~~ zn;e+(P8a*~%n)07$q#)mpPy&MmLL4Tp+E1RF=6w6+6H?ARa+Vur+YTEAQr?{K7uJT>ts} z(!aL+V*i!;*WUg|vA5@)_hwIej5Sz#J(d6a#2aPVO9qO0&T-?w_of4J)L2UG^xr1g(iHU!!&0$Z z+OmG#HrY~bl5AO<#$_q2uZ-m!gWWq+QY0sV2>{)u|Gxq?$-AsVrH=QXz&dRTaFfRDbeQ*&*{%j6-T;eTP(J&Fq{RYqTi}p(2fC zOlj*6cPv*G@&9k6g`|*WJe&iwRq3~H*Rkd7S6{=eD6AQ*MXiadOKV&;V9hsl>qA-r zE61wWS;$oYD`xW_AxcYYrl;%ezh5;Wpf>S!tTjp((u&Kf z51aBL4aVfdD%Pa;OmuU+U>L`$tu6L`PHD!=TJOfvX}O7%|V;dHZn@^DZN=H&xz@AC&*2#k4&Fd}_pJI;MYko499Yo_-Vl zcCqyj>EFF1J}T&3Z@esCFYtTv&v^FmP+$KP^DOt`pmV-^4`BZ2zl{)d$x?$+q{`738nd)RrkLVJM6I_|CX-WBhh zC71She-!)r_(^Q_L4ESAT%UV;uBT1sxxEv_V_kgah?tJQI>-3qxfJh@ zyqi7#%G4&jzqVr2@yEM_jPb{FY~J6|PRHL_V)KW+f0q#YqfW;^t`1@9D{;)6C_BVU<&BdnUpLgL|`Qd{cW6yKD-kx`d zn?3%y{x|=`zuW0B&)u0l{&?=r{J}hTXN>(Cr3HIvM~b|AuOR-hVr>>DX`L7=J^==8xwXIG^d`@>I0?2m`&zc?L#91qPu<)^P{`Gc7c;CYl|{GBSc z^s(pNk7kem8^zxLVy9#Ox?}wPBsPCM$6BGjSFcb$c&~`ha?Jg_!)3c|u!mc#JsNX= z?tZb|pX2@>JRsO}zh@iO595>s>>FtNnmv4rbYt%4ovHj<{KV$CC zDT(^~bKL)0pz)vTG&S7^7T+cw7?}Ha8#T_~zk8&S`giv@cE9yorT@L+j|u+Z8=4iE^yiB$eeU2aND);HFwstr0UD-r>S%9)1Mb{$M%`tLq1Ore&e4izXDJL->`mNRkB*L11sn%5b9TC zn69YZG2x4jAz%@$XdbU4^C8@}-NK8tCx6+Ee^V|0Heg{V@idR~(d)}g9oXU=>g?PHB0#{_H-&?W<+)B-C`8G`zolHs^7>;*5XZF1ye8qK>_U zV>ivdf$(02Ngwf6irZYra>5gpIwpx51^%o24-)?)_+QdVV>DX+Jhj$6)+(J##IFYb zn~N_Hza97hG5w~WgMF>Im-5DUYY6!7EjIs6Ro;!od+LvHSyeV)-;N{qi=UTf*Zt(5 zev{8X_aH3)l!x=&Z}FS*$93eVA-yeiOso-Kt2`5kKi|b?dpxA|etTR}TG$@zb=26J z&YQasSz)F$`n6XFe?L{J4gT8(|x9O{U>hjql?nDG9M6I6fJPe|Xtq563!*z^942};k-tGs^$J|V=Ps+)L2 zblzpGfWZ4j4iNXxF!`(U^M?4Zfp`48L9$HeWwtZnIPu;(FAoSzc@EJwvGOp_XjX^9 zJRrEw+6Cr3Jy~q|Ur&=#E)zeZc1HL|o1)|&;@dJz(s_O2y1;YPX+)nJ82`=M75r0Q zdx)*Rc;Cj$V(SO;zLcNEHZDhfoTT%-)d%%IQ*8B*|FJsHzYx;Hf0N3*|Lxl6{U0mc z`~Otz{r@WV{@+o2^H2Iei%lngo2YJl{Ko6&^x|4+N* z^WRDA^M9$>`@cbK{^&=x*`Uzg_I|lRvgwAJ50GSm^bg*sU{AkloSfV7ka@jl%hcwD z??1698#=%d?x5cWwQBF(o&7zL{k_hf{ESvx@cB7X?DI2KZ2l?#74q-Xzf$b=L5=hJ zo?_EU?UUJ`d5j~|J*kE=4Lnb zM@q5`+#~+1OOk9Kc$?Nm$qQ;Pb|3h0bhQuWS`n74QIzbf`adn$qjy&NUWZM8UHYTi z|IZKcKg6HLAv$OuA)v3R{)y@2???4VeE!PBmOu2b*39dV>-bm$3`x?df_V-1+RQWfZ{@kPLKi!rUFYV9WE3OMndV5wD?0KKfG2*9! z&iia;h+hg!fAB7`#mBz4Hm0|4CieDwiOrt;)ON_{XSCRK@-u4ve13|>-v5uX_x?Le zxA^4eY3bg6wsdd5#Mx87yLZgj@1Mn1f8^&L$JigF_UX6BkDc=Nn|03fZLU2Nf9t5d zA20Ul-RYS2J$Hjb``upUd$U;c+e@+yf_~hF1)cNNS(5Dh#rbfpqWt-=hj?h%o}3T4 zmay|7e5qsl6FMZ++v6YI{I7~HRQ^ooIjz4culAf4{<$w|>EZux(k(yu+fKU0r+)}r z{}6qd)A7f+yZM7(aEyP(p}l|RU7COF*UiDM_-65WA5Xi+8j@6<6G-nHov(a)B|1NuJ^G_!uOIJp zo@3>?s7F;NgjMmaPN%;J`~F&4vwVMTQ}L|KUE2R1C-(g{z7b{pHOk*d=R2#9!`{u< zzwc=-{m;J;uT*ujHyq+US9JVCla?~sUx#KNR^jCjOxFBkFKsvb!-U#y zw(}q6MJ923Sw(ie35_i_+4PUS{C4eH+p6eTlFQ4g5{gWy<@&tTFQnfb;(f>dn=KEC z?VBy9zpb&sNUzlS!Rxz;ef-);zbVp}M|v}zKYV;{NO=E8M*8eXe=5?MaB=-KR zBmL}1Uli$IMtTPw3(Y_8QynJO^!zmNzR)Yhrv>Kypr4AT2j=~yeRMvW8JPFEGSA+Q zf4o2TY4OED=Y6zm>-=yFj@J3i zj!`h@H_w;r{ASGde@yJ_kLx!pKRV9=dwrot*nSER3q^j137`}o_5z5gSe&iUnH zu|L1e75nqcdt$3!o~v)A^QS)_^4zkW5AnBGbbdWd?EPIU_Wqs|dw?>V$P%dJpm908eDdK@S zD6C0HHocO5wS?03XXggl{b!7HCmNb(kQYjDoM(#VqdFT6*qt)9kya$>{pSm zMC;;J!Ai$tBCN{(TdlYF*f&(_zh}>!OK*R1 zWM5KT(8&*Dk>0+m*!yQrn(5eI=a~HP?E-J#NoDc&%*i*#o;kbT{w}BE|8d9IGY8k( z@2I1W`NMuc$Jies_V&!7_x7JS#{OTC{TOXSZ-0to>^Zl4|IFF)_DyweHpYHEv9~|d z>E!xB0`qr(^8Kkk><<)s`&XTgJ>P2aU{z9?$-_q?5 z*mEDw*Uuoaw_ogZ?B8*Wf8K5E?N8E4$NXV`kz?#{6?=Q;M0$JPv15$=NU_;U>@_{4K0fw$ zi@pEeZvVl)+A;Ps#ooT$?LXM_Eda|O_9MjJo_A82j(roie_+p8s<*$x>Dc@I3H#>S zKfL`JZvVml9>>_Pi0rG~{)7G5jKOa;#NNJ%+MX{jiIuD!#@N6Z{#+dqh3p|MkoPkTQ_W3iSV`K@zI`Y(wseeCzB$lKRC z#-6zZW>0>)D!!!;@1pcQpX#{fD9vHkez>{zF+$8AkIeK+r+3n_xA%-a?Cm*!dV9~< z!`}We?XTY6Gxo6A!O#)~{Xn*xOY&!RD-xnVp(&OIn2jcdD(fe!v^ZEd>*RR(8_=;VFnj9fFJfPQ*mTO*QSH~~k8g9B zzx3X=+Pl}MiM{?qi@g4$*z0@gUWAXox7h2qYGBOkw~4*pqIF(xDfapasw^LWg4pY? z>n4ZS-w=C!8{Lcc`nF=z`Bu~mY74WAvIfDotyb4^yU;!uON1{E%(tmJif#Mx?WE?~ zf2M@^eA{YQam!%O*d%AhK_|cGsQp@g zv42Wz_T-1_Aos`jW&mzy zw$)qWJp(f~`mI=-I1P-g?xXg0ZD7V$7m0TdO#Yrzd$auUZK}6h6rNe8JWs1Ktvu96 zQ)SNA2Z>pIP@mh0tv>no)Hu!6XrMYL5FfVq=zmdrGoARbk6)vW<#pKWymQWU{KMuS ze`D7y*t7j6i!HyYz1pMMQ(nI9X62`t1qZ_QZaq z=6aYt{{JjC|FoZRnoD8rhx|E=jv>$n zcSl^J1NM6%6W&Ie`mR8>`#<# z_PlfaEAh=?d&i7@GwmN{&)gv9CfVGen6YPWueU#=Ja6wA`*Wpx`}W#@%s=`Q+TVUl zC;f@ep1DwZ60&|SRIKA~j_l3fs_b9U{$%MB-!t(iO84=1Qh(p(Ug6I(?e#0^)?S%w zM1RcY8pS+a+X7ut(h#>t(%(hx)6$RkNBA`DzqWsppQE(@TK>?7v?}N^V}FJEXWo9a za$^3T`5=3z?!BS?GWTn)bejvt{z6~C?=Q35{#~?dQSyZN@T_jS>9#+y ze{7@u$MzTYhrftzf1thpEcWfaLT%ZY_Pn{+x9>e2Q~ndgRz9}ZJh5#r@&{Y~;M-Jo z&#ko0jEVoU*vE%Wr#*e__MbXEgmbvs|52_!m@8rSr1!F8>i0+O559hfyY`H~&BW%9 z{ES?!ke{I|G&e$Q@33WiGjGARH{4F=7vps9pxC$9a~Qo?`6}Rv!2^$Lt?}6Wj5c{Jbx={NNup|HQvc`^QnPzQ<|* z@Opn;-OR=}-g-~XX|Dz-Bq4IdWw`1~mK-;{(vNa3#wD)CVYwzs;opgO- z`#iWdz=WSh|`1D$}%k%XS|I2aP|2T9|(0@@!w^Jx_#tWxuZWAHHiqAV1fMEkF3< zdfdm~Li?AGzm?eHlYhQZVfi2as;-^1KYbGNi+-=z^!*oWuC2IMX%iSf`-F;N4VM;{{58h}tX9 z#}fWQ{i*%D9Q4TYS?0o7mFF-}7Sgx0m$g;^of&*J8^b`md4RqC-Ka{XHP|?e7J#Z+}~@pKpJC z#Mb^O|LPs{`R^(A`5z$m`G3`BGpMImx`SjNn`}8*v`}C{C zKK(t!=AZgIIMR=H`t^&Gzg@Ioiojt2? zX<*)Y$b6Si0+Sy1>wJ2fh<$noh<$noiY>kBk?OCBmjr*LKS^xq!|2Am6A>O1>=!my z9g6Lp;=JSiL9ur6G{pR=%F|58D&EsX7(Ys5S6bd8!(;=+?IKe*1F%_Wmvvdw(U3^ZrW3=8yVssrIuZbDzFb{7mUq z-|TOfhzA9o^7AcdU;bCbR(|f49HevOR>7Y9&l6jEjHh&ywr$X>pD#;})pBKEbPb8t z>u^KulV;C&O&_rzui<#($7}dTf!P!P-H3Z=fA#ul+FqX7zMk8t{yo2>{;y}Ab@4nd zVxH~vI^W{;JVJHm`NoL(wyxLvt8I9m88Ppa^7_(<+pLw>M?`#M#NS8Uf9-tynGwGf z@%roJ?Z-uYcf=*_^7gw%e6eHN&myt4AKJ&)y1(Gt$H!vdK6X)K-PX0YQHt#OhlpQl zpV!y#kmqp`-yLzu`g!|ZBfi*iS{|{LhxWTsmqL8ThbM~lFAeB-JDu`Zbj_E)T>&J^ntx4;=gF0A<&KP}>=5x41?w;vJlyAf}(alxMJ z=~Gk^yPoD<2=I4V@zU{K?xlGh_WI0{g3h});I~42{K4LSb)BEhALA#?FY@CjXN!lr z^dA?SJ^5X?VSz~x_UXZv-rh&*-3&Tj>NZ^($j|*^)A2XFQNbVlj?N#J9{yqPANKLr zX_B{xy*+I9JR8EZBK}zu<~R6fL&l3|h4OPfJx^@cGh83miS7E3{5I0{sO1;#tj1|f zd0|VR`rcH15?|j{Vqf3;h%G+;_<)iz{$THKEp=|ZzqQ5Q-)dqXAGY}TAMeIpLe-1erE4-A^sC$i%)v6PY<^Aco)mzI$zqmSkn3u`}pIE<7Qu=fX>zq1toah)%H`#4^@wGZ~EUF6@|1N+;~;?Q1xRcqJ9Q&swt z4B{;p3bQ&6N)IO&?6FffZg$nxrI=3qlAIZbU$u2Tosx#4%J5s2{brFgToob&vqatB zG?WGd9WK*Q78c4nWh6a_{uMUH02%A<<&19ib%gS`2(SXcP zquMORMxjy~2fN1MEVo)<9mdkY{7r%mJ8972B@H@kWWU#BzxIB&79HDb57uF$WBcu<<`Nzby(jz6u9+Wncgo*VUw+ypbw+sn} zYD=~nk{N6r>=-X1Y`x8i+fgBXQqp~@@VjmJ{ZsheF8o#v%W}{+aNppEZ&(xhw#>G8 zzYOc&=QkkmfDY%Sd%^$(R&5{FZy)?@KcF%-85q_N3>$dh*O@`6wj?{4=$ba{7@-*^ zgJxZmu3;Mybg;Q#5B=_vl72%zcMUu2uFr3(f7$&4Om^#>8SWnJcMt7jaELc}Zq~j+ zbtXfWT%TH!27#m71&QVp@vD};N49(D_nJ&!nEuqyb=x!e9h$99hKBTq@=|bxp~H$& zi=o4^203(Cw!w!EYajGssWNof`RM_6=&YEWLT5T z->_Djq)mEQcC=20wPl8Z;%$(v7`DNMsVDs&m#!ap#tG@~pz`z5-;mI-kif8zz_4MN zpx<4r&V85Z>hPTZY4hic=+HcTD zX2nZJhI$=2BNIl>>X;rvM_!e+4ECIJ&4dUBmqv!m)QY8_n-=A>Q$T!twL>n@56arSdyr!UVE@!gWnj z%ZXYhoRs~f&u_4JYH0t=?;uPH^*K45pQdE1lPTf2Vsn_LX3Z;^+C9t2v|u+~LCrVe zms9qPuztqW9!*%B!N(aD&Pe|+yubAfHmbtR)_*>b-*du=^xUu=(ng~7+1{_;Z~~i! zvBIp7|5@4LneIZiep33AToC-F8%e7!Xq4sqf<{>a7jT0vU7u~Q3mVPhk}SE9{}e7{ zN;=CW(Y zT-G_6U6<}o$(&#}Cp%0ea|6=_BFxowN&3qJqzb_-xqg?f8S~&4>+7;|%}c59o~OF3 z8j{ePN`hHZ*QHr;wQSShyB;nI*-^JEbD-ZeLFX1sIKmivvlq%sjJI6c6D`^TzcuHC9=yr^GgDCb$5+>O$&8(OBC>vp8om$RiWg@ z&>_0%ll$~f^K!CkNbU^vdgmTl0VSp3zF{|}hf03e(wh6~Hck!hSHOUAN5X>R4}9tP z1Gh*X4t^dUo^9ZVPai(8t@fEkm05XtZh=7V_+83>3QL0@#t{im1zu*qUuNsowN3-? zdLz6VP6V&rH7?~h(*Jd@DV#vx4)Na!`Ff`&GguMqRs?-T&{u@?SA>4iijIT6#&pH6 zAzs$o7XO-Bz90O2y7z-j;Y>bV)-KsslOaC~em@WT*TL`C+;~v@=19lAWfKU$WB_pKD7)C{Fr~ z7FPV)BCHSf^lLDr?WDRE?ALtg>UfAYu?z5mENACd_MKeXsAb228MY{`os^Kr+AN{X z4uA26eQzJN^s*3ppxFl=I?N1sLQUsK3*q?3d1OZKA)TKXaA{W#HDiOj%|f|Py{h*H zXH~n-Z68gYpH~!M-kygv>`h%U!he5MutBa(4c8^Bg22JibsHHki92%_{?l;|X>c;lSy>%ZT!%UbCw^Xanu$BUNUZ>3Z9TY{~hUa~P8Ue)$L`d`>>lT~fA z|6kTw{Z-=K;J1FO(vySBhh_J-BK#NDXD(eD|6>*@?Ejd|{%14Vye9Hj^E)f%(+R2T zUSmgv&B8)Wy1wvVX0c2?n=C9FTCkXxnqjeLD(<~%ANzHyPelgnbI7crOR;2^0RtW> z8#G|R-~kmijjx)mUiG>9n|*2dCYx?jGnK21?~WQZcGSW>S_~P|w`TIBIal?o?Axh* zd;Lw?rMRZsmOBjk=UW4IdvBe~h76igTvgMvvc>gxzSwxz3kM9JynaPe+T_p%lPZgg zCUw{_JCjXXzv23m`ZsP`G^wtrrbQHL;zRkQ$;CBA?Wa`qD=++4gC#G(q|28 zilR_c9EFO_YtInkXA8Ts|A^ zYkVG9t|?SSRxQeUJ|{J~+EC5Z)J@kb{1C##ny>QV=$d!)VMNWN^Fd zYW@#-?*T4F(SG|DIZDp4$x$+r*$t92NRCa|BtbHgcaw9FoM|K@Ac~+Up%GECWF$8T z2$Cg95YAMsRrBp>-5+?)|K8`h=gy=2X4Sjix2jWh&rHwkVZKMi%h1P=h-aaXfe{Zw z9v{??$eJ@t$Rnbn?-4O7^bs>6p6?Nn%=d`M?t4U3^F1P_g+7u*gbX4e{$CkKZh65u ztNMtTjp{d=*ECuEM)f1sX086|+8T`-tzG-++O!oRycgl`G7sG`ek?1{IP=jE}#& zPsamhOUt;ksY$1yb<*yMO8}03ZajP5fwu% z!5V=jQm@4$e6PqG1RYqENG}BRh5p|iDMLHK&{ck5l?ERFc`>1lff{-Qe;h=<2iU;0Y3lqXLg)l1Ev(wbfb-HQ0K*$a}KQK7(WN6_3zXI8WreQJ~oC`YEb@CvIpOXE%|Z4k$CfWhh2Tx6Nka{(EoBDp({6MvN^B%DN!?0H)@`YDT`IPZLNnzf|*S+eH z2?}+%`S`W~D%*_xkm{s@VGXB9u+s zCxwl7TZGN^xf5}3C&qQ1`udL#Ib%C_qq4O|a(Wj4Z#yj$97+;qT{w&nZS0JvJyGbR)b1>d#3iP|w zmE*zBk26G%Ina7N9sU~rqVyLz3tgJ}ew>BsSv~4f{A92i_2<6jt9cCd(=)#HChCPz zzg`PnnEKvqXnp_4w_iXPVf=yzU6#6=Z+xSFLi|0(qkRLdm*=W)eDQt#w=D>NHs)WS z0j<|xxuc=W)2{>K_|!6Rf7~Kyp~Y;J) z*XJEye(DSuk6s_w=E1LzzteZ1_4-d$9{%jCpJ^H5`gpH72XTG8q)m(C6H67C>q^3} zKNm}9LaUn^0yXDfgEJQE#~q1ya_XwS^}Qq+`ZE|m{v3YZE+pz_K>x=XpRoyXJ%6-yiqpO!k#a`az_y8BOvr=zZ12bv$Ri*w_l_5S~pPv7|-_4Irk z9u6Hmp8G@Nu7JROTc@zTa1s=vcPYg6_WAq>v_3w{RE5^ZZ-U9tdOlg`n;-L>LcA20 z=eEyZF(u-9|2g41K9cz6x1mq4{CfNR7zVAk|H$sp`aGKdbm;PJ+JksHj^~rY=wHu| zL)${@^;L5V{Cazz*a5A#-y`4g89N=~aasS%+0goU$e9!M^?c^|_RsSlAg-@7=6{NO zeSDODfVe*XhYdhH8T%Wt4qDG&1?xfU{pXSIcr5cZ;(GbEo`O!#dhLDw*IUuQonGa|t+!vT>d@~n{`x?u|F4_Sdj2|h0rkt!pW!uhRqBO1L+jVO7n=Xd zH(x&Uou6`Dg+Bx9z3Fk&ok3L^qN(^nV-p;+qPp9?e(Ed87ht}tV z#wPOheDLBI98WQrf73UA47`E3o_`zq=HmrbP+za_#H~<27wZ)nh`8RLGyCS_lb1v5 zugeiS-ZpblPoF;;_|8XdF2JwXZzA9Mqux@)_3_rH9kkwG`@9RS=lh3OLhB9O51o$7 z)5fPi^UWvyPQss_{#d@_wQ~u?_4%$xEG(bizUO`O%L?E8_pAl-_4(UA658K9-+Z{g z5$fyt=R$92eLdgGHy#dKoXA(Hp}c09o$~6Bl1JvG?I*cdtX218d0Eh}-mmibuG1=C zK|f_#@Yx^m>-~I%Z(g1^9)5k@cWpoPd(7V%7uulypf9vO@BKUvTJI;Peb<3iV`5&a z&HQZL;MeORp>I9?_#5Ko>CaLefY#Rm?prz`sQx2L}Ndf)L<-nV{#_T`^miT?C;#BT#b$DiDnf6`a~!C@>< zIxhdLcF5PqYy0_#>+8Jt2ZYvtiuucI8k{ zpSR=r=GUJtB3_35E$|%=lYH?DzIaF9{+^Jpa~iQ;&J(SZIA+xY>8!z8W3l z(dRYOcf5Tz3HkcEZ|ZUA^z5&|7ts2;cTaujM2wI0UDtN@>B1*M>*a|ZI-ae*_f5LI zfL|YPCnv(M=jW5vq4oY<+t=UB<;d698BZrd>*XuB23jvq#G}yucKPy)*1FdltguMoS}IeC7rkSf|!$xf>f*T+Y>uF!h_?&+JqQ~QpmAH(3+``b6`p!NAE zsST~?zwmL;dVMAFU1zlLUH46?0l!|K$2Wx5kMG;R+9X5V;P%h^3v?;!yO*HLP;d3k zXPbQSQoiw}JBR$z%-`>u&$s)Ix27-QuR{Mb-*s=eZ+m4b3%_2UjhbV7>g%}QeAgG} ze9Qm5D*XC7yK8yqgzSIZ?iK2pem{5`wSJ#?+L_R}L#^Yf8e@EVe+u{QFYSEmD|f?C z|F6FFJ<;bc@0;(d`u4YpzSn`@{e9 z7hU7TjukUO{CIH_CweELUu&PHd`~~}L*~jHnJa6gPL(o6@?=SqWX_Z^L;7@S)A;N8 zwRkyAmG&CWRlJ_|H(Ne23O7*NeucPsY_`%TMmL@$pI9{!*ZIyeD9tr5SvuKywxAJ-)$F4`cTbV-h}GT@wM|I9arqfV`Mn})0Wn)O5SE#_}H zxJ11L;T;c+yNrKPC|PNl=$-V{x6uE$!}BkZai>OTzRmdS?~ZMjal!ue`uEOa`$Y4? z)upMKk=su%e+Sfe-aXh;rhC70M&kN+7{9T$oq9{d%vM+00$;4bavLMS&Zlpy73YoR z6(!>i<6ob9U!8i5afsWek!NMZ`1Zt?zYG%i{H@}6iC}#Z&h_6S);ZbimSp@F<};qF zOZYD`ZhdP?2%B-2@nMbEsvSkg#TkyjBkGSH+rNU$({Y<|oAC_QZ({rE`iy&wSNOP# z6FFa;MSZgq>Zgy>sro;~9mX%5xS=*ouz%)@&dBe3rA)iX`8MMg75@Tp@f3N+>{+r|oS2dRH%a@1DkJP`jAvHUf>={4^+p-@ zZVi)9n8$;x6O6z8h9eCIe0zcx2xW{YI6{%Vsfm>Gczmp3C}r`TC*$Dko=p88^$? z5`oXzxqOW8I#DHqY}ftk@tggTzoEdB5i;)e3tc|(G2)$`Y}h2@PVA2)0zYbm`WEBs z+r(5mp5qKa{08DK<4M!TQ0?|2#<_orIoLnTS1kUWG+0kVZef zTvhk{=^r}DC&m@TZT4>r!1%X(SX&KTFTal4jL#^%B4q#8agXuq#m6<5_5JzgK-7Qy zV&lEYaee%GcW26G5xc|VA0^Fuq2qUL9RI~yT>ezX#UG(@=N|Gq=J;%n3_FiPRByv5MaejXT$|{tB#r=eUfUw;BJP+h-8Q-*$TyHU9^f?-t_5V8ox#-=^NG@!lUO z%LtosoAC>+U-g&mPMOfS$M~yBHG9jrn=dqO4nh6tfA)AJHZ()#>iMj-!4zq>VLz?{tO!|MZM z$6V$Aa%xI-emDCguIGPeCYIxTo}6W+(W}Tf=U0dIXXj}2T*XtUVF+8#zc%{M`sYmb z(#1#_8h080w)oDyY9PM2F&z2ZUuB7{>ign0T%%j%Jk2_906m7&pF|qh#MWf9{k|+;r+R5R97(G5_Sa_-79pH`FbRfhVkQ zJ;D5z?%=D5GA>&9@+Zz#%?0{pR?BbY4via6k$?2r0yTfTtwQ7C7W&WB>d;@RP^Hkg zu?X>vv8JhfJ6~wrWBuLhd*H-ZH8gI{#Qb2`->ZQbnM32AhxIczW9AC7e>Y2L+`NML zmQNPelyR$EXxz$%{Xfm=soi8;qza9TS?K@45B7E$wv&g(4Hx-|H{;HZ+{~g!+ z;rw1JG;Y1d_AM0sm!vY^$q^d2XJh%3ZkuyP)vpj5_gH`H#zN{qunL664gS)_^VH4N z`OmE$8aL;l{;ow;v&i~h17CbHmhViAAJq8F_MvevGq!KWS(Q}(c3oeb{aZJO;`-bQ zjf*VYf7*|FDEoI0^_2)7Kjt0uU%z0T(yINkFMbzs5yoH4NY-B2^zkR=a{q}r9P@MD z(74O^ybG@}utK46dmi%h?3cg97dXDthsMqMh)=ue;`$|HXk08neEBycB&;-Bs^)C(&kcW7KJM!a3zAGXQ*URK8W`r4kL zHk&9@?fO$0Hn8#vQY^gb2>xQ;>gi$A89gAJmm` zdv61Y;P|~Hh+Apaca+U$gAo$J@wr?-@hYuV+uweUX;3epH66=$xP_Pb^>Kp3&6&YN)@E5->8~VSfIb zd7{gF^YUA&Beo zIjsN9S6?5HY3@ws$HKVXwHV*fK?4mL7wtGdF>ZW@c#EX$|$WwRB# zmP9aaevWw7UE_<%W-n($iD2AtvHqLYT+>LkpX{Na_Yd>-6s3!q5+3XJ3Vi^qpm1M%oPv%D|k#@w#T zrpMW7=aRsfzpiuZiVv`&9lV zhQRi{(naDw<7a$P;&VA3c zPxImCb=mCg?=2CG8!2%7g;g4NST@@SLgRKbte>O%w}r{LI2anYilhGC0#_R=Fg#VoAEnNWp#ZleD%%x(`8xl#OnRAq>(8!-(!BV zwJlf4xXZZxEBD_L=zqZ2t(Rn6#OC|Iod2wbs9!V&exK4PZ7Z98f7fAt#qBTDiNr0- z_)XNeGh_Y!xq3rgnP_JZ-T%zFh(Bz!T^&F69JQMU-ybovWB>ahd4dR;Z%#s7A0JK* zY@apb+xA!SDU3g1|E&?fpRHV38TTgilL)LZ#J!qxm5f_#zXIGJQOJ%eB3F7uMuHSqZf3{>LI?K3Yj+78OE}A3%g@~3`wp)zr zgoC4Zi#raX0>n0fRVC? zitFWb3t@bPAAP0{Wal^E_1kZV7x{kdGMVUHM_ku;TcQ4#YE#twZr)@*ufJ^aqm#XR z%6#LxLh$@+wMPD(+>QCe z$luj;+7=nM8ZyrHZ-n9a>wacmY8iJ|hsMnXI6mSHAKzQX#oExg*9qI_!(T65mSNi; zXa7mxX{8q2ahcESGrKLum#{>^b~4}E;j5osZ59#Z+^_1yU}sgkVQ~Lavr^9$~`?kaQHWZArSEf039f@GRc?J9L zoi-Z}srHhg`>)IT`B%PH=U)-`17*|W^V;J$jd3HDirdrGWlG=&0MRZwp#RTiKXg^% z%eu(t{%>DJ|4ymGHDti}A$0wjsga*Ef3wOm?rioQf7g(|H|e}zRsP`6*SB^xtiQ}l zc14qMD=m(H5&IJ3iI{EdrmRPTR^_@Qwx6SnW_{Z~%Od@EUK z+~|V+>q_5VFJ)XLWt{u3({-9^9=Pd50{O({^_Lo~iiG~=m;8RVY_6Z9{mbw7Z+$pw zaq3m;pI_gm@BNT5`CLSc9wTnN_z8mTJ{?uN&J*!dq)e45ciw#Y-z`wEP~jp)%T}pc zuW|DZ-9PHlvsdpveR-A;ZZfRDsO}SSiZzf!5@tsDqPkzis!d;h`h53&7>DYqIu7Y- z-w7Pw_dok!y)-z@aeZnwC6l9`=!NZ2z05D_JYtqcJ-a+;(&y5bd(ZM-vYyqLzUrXM z>p8=oCc`30nunVu&BeGba~F}R(65sX`|mgFKD{k{-e1`Nz1N_teU;%Kdi{%1(x+bs zYigfS1-?4H-^=yid=7ozpHGzTzxj-+sQ1*4Q|`a{9QxLDF3?f>?C4k@Rt&BeE{9PK z^}Z;O z1H+5dpQwCZZ;8MkC;`n(tmpIDy%6_Em-RgQGBns=%QDV(`0Sma_PMt5{Quk}MpCikNVFjloll1n$=kWSm`|JVO z@0;dnquzfrj>Bi40JYB?2;Z>9b=5p>okiR`AL?^%V?D=o{!~v~u3z`6&ld;vvOnyo zt}C1ih+CIJedcdCe%rh#t=^w-jv#Iy3-yUXsFyZXr95(Z&69{5r$c>aT=-VS-DVx%>Eq6Qs{vhqyG~-I=QS>`Lto}p@zwk+(*Lv1n1_1rG&66?LWa+0vR{Y3#tC;< zls?bbul5=9QLlZMF6#VkM&Wbl`?kpybsb_v;WHMX-jU-oaU4bAbLg8{Jy%jWJ|_yF zu@LpH)IL8(`s^rt4t@0-C3si*T%XV7dhs4$zZ$W2ky^p#s20*L%rT($Ie);nculKj z%CH@Au`|?Xj>hrUxk< z1))A?-YgX!9fB_T>KE~v&UjNrf2N=So*BOX<8tV`j9H$|8uM0=VJW)OV^9ar$6U1 z_3J#}=R6`pP5Z(o_3H)y=Rv}T&m-L;pU7bgV+)oed}ku{I!dgBPpks9&!KPBli%;k zJa-M^&bm;a(I0g)k36ze`kXn4+jD)suhDPGo^kg{pSh6rJ_Sv_A7N$2cDqvH&)d>x zB&sGMtfZj!8Q-Gbw3<)8mvJXI;vx^IU$5Hl;XD&9clHy~XXAE!;ojlvRlctE!cebG z(Hx7F?;7GBsq2Y-@J+ukH@oy1*WnYth1N4o`0~^rqOOOGTlDGv*{{ud$9k=fE$dk~ z=(`zOPwYp%Es5H+QvKd#TvOMhuU~fjg$tK;tlvZHIUL`R-$t3Tp2_hW>|d{E^DMUS z(?_#%tA3l0lMoi^^7W;84!)_W3fnSnuEgg74jJ?{z;awaI}peD3iv!yzYcIOqF!-( z*n6^`#p`>A)bq334E0{*Yp_rHY`)L$k#1hpaZ6%9__@uTo6=`g7%3rKO&)J{F6@8F zq9=(^hNO7k%_H@^Azs0kcGccp(q|=u&rA-weE-~uqb|S1wfLSXeNKO@Kd(2aeOCQB zGAt6zcb7?ej}f<@fWi6T3Fg1@Rnt9_KC5D93E@-*^?EU%!guPh{Oj%k-(8%yoO_^N z4&!HBN6dLrP;C!mXD?|N7O8zM-%sz-BfpwYoy7f>&m)7rU$LIO`DK<%gYgsV?FC() z2d&Q7ZVR{M@2d*&{Y_K9-P7=04!FFLg!lV2eohk+UV9h(?FV}#F_@I3Nj`g|FE zzk_oz?R@2k>+?k=2k`rW8~xu4{BdejDIx7P^IhNf2)(nR`K5j13@P$ogqd2sT`ufQ zVDR??Kg0g#*ZxvQZRT|V_3sjT>2ZDQ*ZzEW67sy6tTO=nfwzwR`}E)P_cHGo`={U7 zfPBZN#eN+BMi%VnUGx6FP1dxB<9$+>v_?Q{ze|7I=!42gzhNV8ksc|&M1Aulj<+VK zl5CWIXR<9Jyh)%*t^IZjjCVt-KI(;nopQMHJ1IbeTKmmYsDJ1EL25yqwD5UpK$BYg z#VK5O^*QuMJ6YJihHpqwp8P_BJgn6&_`NYbNhPlp#Cbi{8s4~ci=Z~gAN(2-yij#yi7V#+N}rl z-3JA=_KU=*KlxD%wY{A6@VVBo?RQ$D{+^zD<4M2y z7(VL}=#koQevI+Qy^j|n)-(8=KS4pQ{cbDNk2A1C4M7$+XInzJoj{XX`^|x<|L9PhTGD3?gwGiO3hJQ$ z4Ez&}-M6LRjfQb}g5#pre)se&X%p*4MmrhRgsKtZkjP73(fY?}VP^ovihos4OqLu$V{7~?lymN}#Rv*0sl(obr?aUSE3zO&{} z(r*YKHLZ((m?#Pmq?@`g}JO_50SC z^_%n?1L3y@fG(-)doxhKMUG@Qq~D4MpB7q*%E>KFl+@|YrVV|;7^z%?65R=d*BnKt+n=F zgx`5by*(1Rzl(m-(pvj3!M}X=vQ4V~KKe;pYx=z}us*vN=w4p>jc_h!2hb&h%Nv3E zUp_whyY$;#=<5s`)Y>mDV1FC%^Xp>L@6?9Rs|A|W+HcyZpY>q8nbL37htIAD3To~5 zSU+)#+uNkyY(;-d&?AHXR9M~#TLR$KTC3v@{B7ir+H&^W%jK(orRepygZYrpAX z{Jj_5xhltFS72QeG^n-Tj*08tBbDr(}Jj5qwrd&?U9s9FFm4p5&?PE4vweO+kZN`;ASg-y=@Z+Oocrk^T&z zNv-|PC5(Un*)2t+Uu2~(3+RyAZ(hcDQYLJaTH4*>@Oi~Ri(30_kNexF>4r+bQ;PnQ zph>O$<`vXGUn2KQRX+#)*;$`j`>o5U|N6tu>ir!j5B<4WpIZC9)>uE6%-_4o`d&j@ zB5)rsXp`D+j=*^G+0$1`pVJIJuPJC!2mK@A|0d4T52fE~1)tLr6x2cg6^y?`|2^uB z3!^Q3mIb`U=Zix!sj1BJeQ(vL%G|67G)tRd?4lv^FgiB}D@sC9i|q5fAZvy_zejqa## zbpu^e`^~YaU+~OXH((cDFZc}7CWHQQ@RvGnW|MxWAN*cl(4^LWqb=Hf3MrC*H3 zxQ$VuLu$X-4*qz?qPfy;SEjEL^QiUv0}k)cIWZ|=Q|Y&^jg$zy&IXO^)Z;%7Mi(dO1mx)b))z@Nd8L zxRLZ*?BCSm(A4#Bs>=+~I@M}*eQ2M@a=PcZywt(^by5Fz*TKhSeVgmiARXWOcj&LS zbZ0|!o;}A)0e@nmb_fSL`TaCxl+%-&Tdn5h6`x0DzUxFs@7ZA^< zsXQYw#xp(n1+~4rKiaBx>k;TZ2E`YsFOtnu@is=Hqw2{#OTnE3+H*m{@wlv?EPjqk z(rEE>ewTFg=l&dzwP2RCiRHCBeIaSwQqzPmo`dFT(AMMk-5+2jY$nr$mxzo9>h0zK ze!Ta-dfQ026+xR?`~BaC_o~oenSN^R_kX|L)ZcF}3%^GO{l4#$d!<;vB?f!k8V&>YXcRQ{14 zsJK@aG|GYY7W%t@mEZXzw=}wk8YsWX`z$7I(xXt!#t{9*uT+Fs>JD&xZM@+l@@CrO_Er z-y~2>B=z>{j&a3b5HpqZ+Y1{?1QJ1q+CBiED1rI#i{_ow1mOOT@fx>5=MJd-4*iwa zHaa59y8OO}aSuL|)aQ5OBlI(;(UTI=Z;t6HA;dV)q7K&Y34g8~t;gO)Y`c^yaXAWt!ht_^E1^(U%YY&iq(E)Lj zbV=>^!Z2U0Xpr?w<+tc3jkc_>-+%CZe=f@N5$9X;IOgZ4vkPyQ^^LgwR5vzh#Dflw zhu=>-w)RFoWpr>}F-c=7&tKes>;~8$=2cjmNc!z%h`Xe-9NKoUUW~c$Pw9U^EtvNU zR+DuGbV)rPdpYt3q%3+|);B-zE+K4EY=qY57cV8&=a9A8)kN>@!1>4B37Rg?M_ixo zA6P$s94@<0*0u1nCc+^Nem_jtx0}qCHqmPS`Hv*M{itUjWIv=nKe~@m|7w$CnWSH& zv=p2aphYdd!gAWL;ZHDSMHXq)_rq94Ft1trxIb|H8~i?%-FS*4{o)FaZOishyLoOWTz@)UK(iOgJcGXnwJw1!} z!+Upe{Cm;V;V4|*599wGFsBFR7q2%-ZT5jSJ&e2^1fu7{M&uX%=6!;?CJZIZLS}!dEc^mmD|C0 zKeEI7kuCCX_a`&Ye}A&Y`;!gwZ}%(bLw|3&zu3!w*AI3UP#^EsdpHkXXc7za&Q;Fa z*GPVE)(OXTl6xKfMRot8{+*BD?|Ed!@#|jWI7_3yuVaqtvphSiQ^>Rua%n3VO*vqdNLA``~!*yz|c=Ro+-!zS?6zYc%MM0tMT3zUYhm z{5|jos0{k-k<1^#{Nc=JyUur+|MLTHz3QJn+h%?Q^Kse2KWXtomQ@p@eW|gF@>?(5BYRH+y2ePn|WQmCQ3Y zz-O%o4QhKM+o>Jq+cVJr&~iIttNdMEC4{#VG_>9gZBgrdYbNpwU%(sG&TX|Af!~85 zsf~NkF16Pf%kS~~XZc$l_>V>|Pmj5yD%e0lH-HSiIb=Z#UI zJBITikjYqf+Je}`x8QH&B zfw=c6C`fN9wDUD+wMV|42Fw53Wm{cH*qw0Q>2xNk1-07|?Ky;sP+1@Hsbhcm2mhNx%kevczs}e2U^?6?Id5P zNbf&AoC@Kp*(eG+Ims-bm29PoC;5JbVj=QP_Z8~CoVKjjj`doBCjZQU!}@7hwbaoD`UdNodi-y=FHzUGUZak43$)LH?n%%{j`fq9b*t&|`|n%S z1^fxXj0S4>D#c^(XL*mOq-dg%d`!i^NoxV~H0MIw^GL2AuMz5$`QdYQf-^XN zcRhUW2GIN*v`Dd$bp~=C$uLh2Lkvi`SzW(4IqE7ca)M?NGB@buVq9|~>R5MXs=SV` zr>Ykk#={7uUDA92EuMj%j)6vUp4{hl|0e5r%jjDH+RH&> zCFm?AsdXLm6VxfaGE>&kB<3m7uFz8ZydizuBIxg#E&K$l*)^Wp;=X3%M(&`LtaXZ=6 zx{f^q<5@mK3hv$jE7)Piw`?YfSM z+f>DYk+T-aI?gHNxm{7m`I-HG2yHWN9$`C|ORU9mrI=Vax~yZKL)`0*JaL}>kDv{$ zHCe}b2mABIC9~E0vEn=A86A=5ZH9KV{ubKa!uqUZB|@D^Yhpi;;}OdkZ^!Gf0bqI>GWA#uBp&QTWE`Mo9()e{TbHJL^rIttYcna|6Cv9BDCni z@ll(aTrP7R>P%VOQf)75J@Rb5zpP^&(q!D!T5qrQs8c5IDo>4P6Y|V(F4snAhuUD= zX1iW4YYo=(ilrI5$U5FiIB1938w>5RT`!lt0qbXOmAz_0wmzp%ujdWWf;1U7 zwdQz?#28QOp=;;K@tAv&=kmC8e}pzVV|)hV9^3VJ4E$W6_-(`uwSH{Q6N2-GIRkYp zYHJR($97%E{2a@*Kfhf}jpq`4HupP+bbDev9w~Z3>pEg1>dc$7e}}AN??)Yn%OUnb z8(olRF>bJ3*Kt|r#qi1M^_Tb!d4l_odzs^-_O3%)S3q6I{sQCaGBSBlIUa8^>+m>r zxF1;5F5||e&^qRqsIzzfh9Ry-n?mj^qAfqhLda?Qxk^L$@L$%15YvJ6>~ ztVY%$o0AR6$TcHBf9RtAGx9YVYZuxRkV(nZWHvG*8M$WU=hY6NP93r#*_>=gb|ya} z2a$cr$TcHB-?yill0TCt$#dit@&Kz>TDCO44Zl3$ULYes(l zenHf)PSzzGkuAt}WM{H3`4JhpX5{D93ZQ-+vLV@=Y)5t`KOzT_eaXl*BR}u_2nPlXek)OB!5ij?axld;A_Cm@rOsmY9F9x@vlxn|_&b6IyWxtv@}ZX~ym z+sN<9y=3H?k)N+RgZ00j+(d3AcanR^1LSG)C>gnCr$aZ8;au_*@{F?lfj9gnje{Ue_*CKn6)5+E34)O%~J6U89 z@)MK(`ft)VPt8*n_2TWH%>3PPXY(8tz1649S^30igZEXv@t`#Uv?qebWX7rONz^%U zJ@U8Td;1CJVUslWLEC$IerCJ>ci}wN^Z)LewGeq8@8hr*QM27)yZ`su%wRoSr_`xd zTz$Z5UBUY^?ysOh+Weh0?<(5O%b>@0H#e47OvTHaiW!T9$@S;*@4MK?@jir`qOoia z{M}T(pK+4!Pn-gcbcpME&I8mt@mD|f#=ChMKJg3ls!^W-J<>f3Z8QLNy}$i^nRAHS z{5v!DQ0fbybrCc#f!+wv;PRTyu>Km28*^DMm+^B031J@r&7+_=23n*zP9GVbwW-RB zAQzF}k!Q%KWU_4Vze`plJCUkbq<^mQ?cn2as?GMu;?Ee|T+hFWH3c zT5Dep#y113$b`JT(ZaQ9R zqZ#OuR&!{Nv|G^El0MSuh`JvC-tN8f`(Dd}&eQ>_t}~6~ZQjl&(B5>=oXPksQ1I_$ zxNT6^_#N-7{FQz|S6R?q!+G~J&{z$6>p-yzbf{e&r(civjq@|-X_NDFRP(gU`C8Zg z+u!v%jCoS2z`-UsoTjXq``P{QteEEe^&m{M?L-QA-MSocNSl1 zaI|{z5Z7@gX^}SRIn9;Lcm$tCx}-l=?T4vVx&hjf>-|0nR-q(=(9ez|_^OW3~GPq#lV>)U@J&m}!lyh6M89qKz; zlh$_j`&##l{nJ^9`gtyfca-%lu0Mx#Nl)u9P{)4BagYYbVUl|Ncw12aQp~Nh)%e-J zOM0Xb*#8XfCl0kox?C=k`?L8J<2NU$vZ88SEJandd|Q`I*=#CodTKW#JFV6GXV z+AY#v1?`*zO|6H~7XgY<@XPOYl_{hx57scMWM=aHMpqvSpEohV=N|qq&k{!s0@0&tCG<#Mwr3`A_uDQITDZ^rGMN>jpDRAB8|2yg; z&BrS4B?GO#)F$XqI~k$fL7*VL*O>Rcf%Io4Q=z|qJ3kA~4{w^M9s2ZqZKY;^Z+W~q zdOm*3yxa|Ms@|696!C-bTG z{R|G*r@0Ns`^xub;r_rRm^WU);DN zc7RgKc039E8#fS9jRBW#4_H+aT!AQZnFP126Fa&HoG_xPihvml)DthZ?VN=A%Jk!3udqp+WZm-~e0NTyTI-t`C6fMabWIfPsLbf7n zf?j=4G^1w!#{4;|ztdjHo$`s(3vs76Xpm+fXuB`-sjZKotsZQrHv2(~o+Rtq)aDmh z{{QLM5jI~3h)L*Z*{}+pZe=2-cPPQLgl%2K%*9DRU)f^US(3Z zQ#;ksZdPNQexn|B4aT|rWTQ zqvO77FoJW36 z?jg^S56C!WQ8y!5l&ns+A^Va4Ff`Saq8!IZRv?>@-N}*UJo0mL4|$G!K*lN0@sUNz z>SPA(MlE9-@lBC`gg)#vK-}f=*V%%mA)YaebjEeeq z$^CKNK91vyivIEG?*|$D{c@MTXRg05q`xQRaeVswqft@+?zum%+xK#OQPDrXC3X9$ zrc30JhR~Xeefo9-#530eOVtMpv0ZZswf5)u06u>`zxI!BMHb9!_sE1fp(kVq{aUw| z%!+td@@zI}%?ixd{yn~Wx~`x8@ok=rx|*-2LJuJQTDLEq0$)-3icX^@tN7|{^3~II z{q&Eo{#ex2ygCv3y>Z|KpUyS`?b8^aI3Bvpq)_f+yY}16)Ae*ee(fLMjG{R2RVE)6 zf%Y>h-wOI0l3Hu}>*#)Ty=&~ZP%-rDAK$C}SnlKpz-kA<+|)&VdJfymkqyXJ^lA2F zyY{c6*7bBhe(fLMSMT9{qi7|-I^+WK23fo$;v>kP$qc2?-i6#k#wd;UdgLPVcd|qo z#7B`wN&om}mWA&!S)d&BU~(^+vOL<`k)M;ttDrq9zND{u7<{wIU&%ry+J}<<@x5Yu z%?j|%C9jc1Dxy7tJV>T}AMG8ZC2^0A92gJ!H90yybn*n? zJTh}aX#e`F_72*Qlg$!AUn0X3Lq8-3CV}>kuUJyFZzroHgFa5SOb&gG?2`ieB{@1J zw10ec(x81pS}js3P(8RFbuF?sc&<(; z^VNmc{@$#k>*;>{+CRSbN7UQt;v8A$DD)ii8d>@n+Eo{Fcml2JK@>|M>Dm$N8)zS(O|~?j&E6iDJN?k!(rMBwvtqV!}6u+(W(~pK$fi%lSxl3$aD z$Y054Wa3fC%R!bQ>yw?xq2vs54Y`v%N!}u(jYeIoDL#iVn$A^2zLehSB%gS-+A3{T z1-;s!`vG-Ll5x=p+NcLQY&YuDR}HkPQ`Z5_hM=wcp79*S{oNim~~9FS2Ce(@e? zl?UC*pjQSoN`NNonic3{o?Q`Ilq5@mP8euaA+`T~YOXJ<2F6wXoLNYY%lVV{mpmh% zlP}1Zpz#;^ihRvD=?c8Qb)$h!bWp?utyrK(8gbapaf#s^*Wg26%W;WaTrSf19@-_1 z-CQnG`~Yo}#vbOA=8w?kPoUUK?qfUYl4=Zre@aywqMrUzu@TmC4a$ z?I`MZ^tI2S*5fNSa-4cvnyf%pC2Nx(kj=<8WH|XD*^3-PjwPp)i^$dFCUOV4kJRI9 zbi22D+MOJB2l~sq;8`;EJ?P@($oq^x0P{Zt2R{N2J_gf21^Ye+_mcTuK-Y`bNA({; zz5ONH%{iDqL{y(^RKYwG)#n>lHN>O(oWp(}aq))FJB-Tk`9JqCcVc}0`)91hxNdMr z!TV(d_22HRVY~nS8ZV0bY+SbM`)yp_cjK~-M_LOp4n0mcHICoMyJM-}qcCFQ{RErz zNFxs0NtYCH(Qc6rDdM5sByCc}r=N64k2Dh??vQ$a^fP6RZmQ`TS-Bo`shXhHKi3M? zy8Zu@Wox7EV)75tU$0uVqo~)W{3td4W$*tpV~3&rb22JlBNM(?r1q_>fcCl- z|GB>Q{aZd}z14@X|J*(C&zy7^?friK=eW*mbp-M1M?-z@9)nJKJhWZs{qOQG)^jW3 zbJf4y$G8UbtF;>RR#EHr70~|s9Zk0D`yNgD_5F_?<8QhT($@XxephlFq`prwIR0?V z|0S=!NF;YCoA>c}q?H2mu}c~$p>5J5jZ~c1Nrx1vIiHgv4Sl3TdZdw-andD?bZEE9 z-Lp)!|L2$ujwY{>mFJ*+1sQ8DbU3+(%rTGo$T*#qguWNl{o)5{%5wSjQ0H1{yAQkc?oMG{<>DE?@}G; z<#j{bb>6>ahkB^<4V$250}7FBl*C<3GoB-d{f<9&cZ$FU5Z74y5+K zEyI1|`igb_AlDo~{iv4jhndw>DA%mFW3k!ry)8eS1Ha}U)S9d2A|C5ga0B(idC-#< zfO8gs6BdJYmx7ncsFv^G?LjJ(_Ria}BYkhnP4sILtKd!arGUi3Kd?yRz{hMoV$!bO5e_O7m zU-MUL&5}h?ul2uV82wFrdH&_xw|TH?inS$_GqyqdS&hEYWcXJ2KA}EHCjJ`jnzg8J zeDlwBbFhxC_a^$sm5$@}FJI|jYpACEZ^>BK;D1|&Ux!~a`)|;iHE%#SAYa{w&Uq8m zdjIWEee4$WZno>VfBDJ{!#wmRrv2aawPT*7_3vQ!x8y??;kB&xQ$;`fa7_mIRgevjv0(u#-m z;HUoHk#7ID`hO}fs`aD4&!oTKWG=#bv6g}Qdrta$P{wkspMOjJcX<5N-+R*S|5pD` z1`6i8$Jx$&>jbp1 z6EycQ&fgdI7`INceFx}KJEy4kGS1~NNKg0kt*MsZNQ?F1|NS6)Q*#wJzX1)>{2JON zE#3aKh4On_7}xomnNQmE8T47Ct@G$}=rh@Fe1$p=>pI#`dK`z#Jd3_J{mzlM6?OIR z9XaeLxLy)sKheK?!d8lHyC|kv8d) zViV(}O}eD`igD5<#b&mXHtCYq7Q`J=d`&-TlP)Q~VVv|zVSX`Qfay<8Y5cGDmm6)= zyz+nReq(d_R^G#Y6I(5<5TgsvSI-hqe{~M=nAB~HgvNIyg^tU3H(z{%U;F&EeEnDP z=>or^|5&U)(-%*bEVTcvxuN6JU;j1o1HYxC9^)GRFZSL$u&QEv8%{qbJs}VX1PHx{ zgai^$kPZUUJBUIGEf9ndioIU1*Q=?Q|Nr!J!mBPm|GUTI?el#vi=R&)=QIaL`FY6*ct0z;$83_X_Hwpe_#T-a*|bs7r#nG^qOqb-$oKB&ZJ!>i$9f)}1cz zecX0`;&>mQ6ZbgY$L%uVzxv&^`}n2&5y`hsyv%ya3;Nqz;&>m&q|!+K>F=GspO;tj zUAvF}{&oxTiGiNq7ybU865y#p{eRb? z3&j7abr?)TU3GEKvj(3xwB(rQf8Bo9b#LAEnewxCOzrz^=C?C8opRXuug=N+m+}{H z3B4XY>(oZuPA_c#=ff_Q|xVzpE%=T<-bpUZ`X+P zZg_P<*;5JgyL4%+{OL*ebSiDrBLBA~-H*shEuEzNqbr+lUiOdCJFcBj^|`-Dq&pWZv|hh|2HIm==w@CgovETn&*Y58tt4BEA?>{@QbiCgeXWiv^ ze_wiPmE-;RFFD|Nf1kMb700&-R#5zS$NTskxXSU~{-RNi_x)d6?s$Lx_<5=0eLVkp zspEb8KHTbf@82uOM9O!Q``{P5Tzm7tzmoGE@6R*O|09w=@n*;S`0xM9o!9(6|MqCt z?#DMq&bPCKZ#C4(`|(Z`zUgjf-`{86?&ReCed811Pd(DL*TqZx`SO0(?$2R=^mDw= z=bC+yGhISEfq)AM*S%tc%n4 z@o9Ca{0LJ}+~{Oiu1KQA0U z&9(de;JN;e_x`>q{9qigN})VIs22zI2{_Oa9~W&Jpk3p$BxoNWv}=5QoPB(K zT^Y#x+Q-$`KL_nU2KDdghjEArcpq!p7-s$f_6U-o<9Qp zaQqcPJpkb(Umoy$-XOm<;P3KyQ1?e&2tRIuea^!L;90K^>a&9S>7e}|0sl_;n+Iuc zCizikIJh`R){C|eigo__cxwCpEZ6SyMcWe^|JUtl2WihfNc+Bn^#8{}+CP;0y!!vs zLE4jhyYcyaQvGaM&)WXG>}T4(Vy?6A^F`aEySsLuuiE~`LHz&fAnj2H8DHCjjPLn_ z*e^Ipeik33{qlpfe{+!bBw3#tzoH};-~W{VQSDs2e=nr^XZ;+xzi4|$*?+XX`$5{r z$bO^xlfH2M`~6Ydryr#K$b+Gc>i2j zbd=+L{y#0x5r>`V+Wq}traU*?A@7OM8y+t%TqEQ>1?fgm0Ya#^=}b zt!*9e*Kh8DNd30Lj}-s%rTs@4e~I`vTlA-k{-2^hMf4Yl|1XRG)zW^P*k3C4<}{7W zpW{XUG~ri>{!L=PR_t9_;_Ul;K0(^IiT)YVzD4vmNdK1!f0gjp3BN`74btC6;rEDt zC(C(r;IEPS@^wmNe(e|jv{A0zpPxgM9PjtX^Q66rwD12dvcKPizcekf|Eq=HEc~s) z>+_R7k9C&w;&ZP%fBgBjNY0CA$bOV0=Y`{1JAeK9+bid_WI5kFCH?;-{hcZMW2?MK z``?Isf$Wc2agp)cCj0BzV!yM<&k(+^ya&Ei&QtG*{f_dy_khS>CH*HfasK-Ke~0vc zx{PnH%-3roKUVDBBk`-0_C@l1nJVY0X7arEq|E1(KF)u?KfEmM&&u=j+tU6-Lgak4 zlKWG8;TMQMHNyWP;~OOV@o6Ieqr5jvmiyfap-BIBiv9?Ze@5B|$n)_5Y2PUAadLkd zBlGc`$WM{>HF7_BS^RrV;_;x|U#E+`z0zN?_?MOM;^WU7>!rPEQe^zfg@0e}59@x8 z+#jD6`P+s6O!$+zZZxfrt?l~0Tif;hx3=s1aBbK3~F_w(AW@9VW)-`{JyzR%ZoeZQ~m`o3S=_5HuL z>*oR5uAdKRyMA7v?fUtFw(I8!+OD53XuE#ipzZqkgSPAE5!$YwPiVV-UZL&!`GvOY z=Na0rpKoZpe%_(&`uT^p>*pcbuAh%+yMA7x?fzz5u-wW8KkpFCs!^s17>hb)^~aQO69Rl_EXST*|a z6&1_Z6whBXeQx2Dzwpv5HuST1ei5yXUa)4-=&4iYmrPl)yl45073GtTsUBWiam0-B z-ixbCdJXNicF@>WRU->Y>0^HN^7%bi z_gq?0LtA|@=WY@kHlj;5mi%R7O~vXuRgACKibbQAj4Lf0T05h*V&(L{B@>5^S+Tlm z&6L$+s=AFBSv_X;;Dr;*M^;r09_HPso?lgwKfk_1ECmZ3`^5ix^eX68R8U-4P}sY7 zNpasE<#Xqj6!$JGC@HP5c^bWJ)#9}yM-LlbGPv)|)$z|~x1@a0sBRs?YXVe0A`Ylqd=jyz__g3;Z|mio!8Ubc9C{=%g_F?sp51uo<^ijtxu zdJn0dxn^O}%rQrdTQjt3!h(XL!Xc~sjO{yi=%`*(Yb&ct`V1R7X#UVLH;TojEAkgs z_nf;7dqmj+uH`i}*Q>N6Ps7L9{+e-1mX*#e95iU=qJrYu5ld>0={93p>8kSD84<448LCT)-UYpT6%>{f^y<;K zvQJ5IufBbX3JdyhW`>QMH+DkN(6SL@$4p&Quy#q$QHKwnI-~Ex zZbuZaS~duacizf{Rpp62tit|U(Z6DKg$J=$FI!kuvAqBMG7nXiS60oPzoLKJ*)=_; z=gn^WzrL&Y#Lm8AVfE7dpze=d2!ov6Ht+xYE^L%T=hjs8=ep`q(5FYQlF0>y{R;Z_ zEAG{;0A+UDw!u(`j2L&+u(5*%j~OwJ(s_{qIMyN+`re{zGZz%`&44@E-Wl7E-o%8>D7B~d7skW zy?d9Hm-Q+wEw1d-x2Sgm-I|3<{=)lSB{LhyU>+A%F03f;UpcpGMMcujy@nK?(JXIy z)G32A24%ngUDPhzs5^ol0ma~>!5yeG@F7s#tI<*0aeW?NAOoM&6&UJL;B)h$q88;dV}xYCMxQD*ocQ-U(o9@4&(R6Izi?}=q14J zOW=n=wg)H${NupGs0)B6p}rUVJs`H<0DG4J-vGK0bP=c*sAXPMR1T;F*ER5i-<9hL z$_K?jF9UTEF|=)j?=Rz;-|J$(nOz_Qf8s&upf<2`HSmuhn-(1v)fiX^vg^@z2;kCk4!LJ`tXQJQnxSj)g2>evkM}Z!}^)%F*Ab$g{*~gU_TSjzL)F{vk z==Vubb6h`#x(CLQjq5Ocd;)wJdX2#U+94|HU!Z2VJ``;iqQ8~!k>B5YrVZu+v;zD^ zz@LU*EbtM)+QVKV7r&p_6?%`yAQrIO9{MS5qN0*Psh}wM!0V3D?z@}( z-ewcX_W~b{`dNrP2Wp1v0$`bteFi-1uHZ+a=3I1#UN_JVP+4A7)I3l=+6ThNOE8WM z$aDsu06Wh^zZlm!xK2g;AkcO2H4Huu)B%(Nx)geSAlDq%X^?6=FP`F)G)Lvk7G5?Q(pMg3F*m_)##r3uDeG{%{ z;`$C;^Si73e&PhwM}rI-rb9o5lE`iL&AdcfU(4c7do!NNwlZ&w&g?JVL&wy+eYz{?D{&I{z3GG85 zKLRui)DnC$uYyXz??ycU zZSS*vx|N^{{aj=yu3)P2_+cfZkfj@O!bxp*{gr1RLq7xlgtP{R{nU zh8`}X8pBR==-mV?19No?u*vZ83(WCVz_Wo(2R{{*hkkQ`B}4IP)YY6@)K|mSXOKT1 z*B^s+f)d-|-T>@K$m{?=1$8p8YoL2Q_*vlZ#5KP!&F{{RLp>X`4Q-QAZ$~`|HP>cK z&@x=Vg}MdkcF+&tyTG5$pzffV(a39z`DoO0K(j$@fM;WT7qoHfi2j`ix)%O6L!YBK zcGOp654iyKxuEkv>pqz`8U8X!ZrWm`(4ERF3{VcM`7J^eSir=pxWd@b5a%(rAnwzAQk!2loF3`7aQQM(F=WT<^v8BdD|U z9JRysagdviTo{P!B;Yyd`v}nOu(JhN4Qy>k-5l6h&>g^Apx%i7#-Y9wd{5X9f$~9b z!(J_Py5Tw(?c+gPA+s7-Hn26Qj|Vly^|7dv(dP!(>f8ov6?7M5--nG@wDJ4)hk-r- z&wG3UboQd2n}@XvyYJz;H*`q1!$vf84#OCEhUx^pDY%{unhu%?$^*6uab(>Fv>Deo zg0_JE1-c1zGw2r3t)SMB*#^1-*KJWh2D`_#!?^_gOho_80e%O+8Z-*mqd^Fz;p9KY z_1zc`nhoRm=0jY61S-OHCK|p1jluPP_}@DZ_ZVD13wj6?&%Qv+k-I^ZD?|)hL5}A+ z(rxgKx;)$6fw~XsD&Vc*-wxDYWBo9<=tMLq29yAbN01&u+nt~|@XQO&b1Lk80pj^# zD`*>N2k2f?_fTU@6??vp6&C8)=M9}h~#HP6#`ppR=%^IV;Wc#gn4 zXQ5BhqD7M#wcq+g+fh@aJB{=y}Mz2zmkZ66kBl zm7=fSpm%WnF6eH^_Xpn<*CQb_95f2_Pw>M~--Gr;8^}Kg{CUtO^haH`dyLN%g`ghD zx0iueKrb&3ed3z;kPKX3i}rNjd=5yDMou7x!_n3TZBL=ZKr(>XZSFEESQPU6lFc`$XXq$g8brkrypw-|%hTbGx zAA`Cl`e)22e-HG(f$SHco6r}U?AfLO7k(^5F}8u2o7i8`2#N!>gFn%zmjI7JeLLcI zKKz^pJPLMS0lk5KQ$Y_wZ4&G~h0 zF=Y7sRni82!UmtY&PUsIpiQ8K;Lk!$Ix`?*pMa)A|7iH11l<+j&q4b-&;VdJpk51l z4futK`*FCYzpHUgj6QNa?2o#yzy{9)j2EBbM!}c$s7FHnX4L7R4$&AFVovG^+54c^ z0X}qqOh?e4kU0d{ji|SPW}vMJZ6bcu?-Y&m6nL)PucF+u-9FT%=&LvAYFyKgj?nuO z*L)sKfsZ|4a}Vry0bdl2vj!*=*BKzzh2Zaj%w4F%sN;dPLj5*$*wzi#_k(!eVBHip z4+Tv?pFPn&6aC$X`6Tu*`rQV9Y3FCqkDwnw--C$F%Yz@#nF`&nA=?|*eR16hHcDcU zTc{s~{&ZlILHEP%H=q*8^#k7-?WMRLhU?iR@Y^B(W*hem*aAMMfhy70Kj64ZJ0YbMP-vUtF&MT|*wSIk>(Vbqea`&_5Qs zvq1jv46ugpR*ay zn?R?-=8^EB2Xu=;O`*s0{Zr_N#Pd{V@E4$F47l$z4okqNA%+h_zAx%WFz>ek=h*%U zJLiHp7kmb74jLSdc>sSs@HHUDgmHWlR0~_j0^5N4QS`YL7|(5^z*mC$fxi{HgRxfg z;5+Gh^hLS>v0a7w>mn zfxQLl2)!)uH-P3qm)AQmwgIRgjK%o@HR)N{d=B(H=vMHzfI^_5(eBy(@St7_pGi$1 zcNO{^f<8u~Z8&HIA{yQiJ*N0(TST^?i&INf`N5BeE_kb_E z;M=R9BJ`Vv9Nvy=o=0}0<~=YC#JU^w+ri#Ow6#Uu7 zZChdMUeH`%$AiBO*GJ*{NYLH5z8~}%@GR6Pq8@~pJ%;*fP$jU}+aO0__hQtf8{o$w zpf13&Aw%keu@qn&JU3S({||?aks#hjxQ=dy{G*89j)3@%Z4qn_K~36->#IOlfUX1$ z2i6|-a`eG-2Ky)i{}FiFY=?fffWHYe2L1Ge{heq#40t*GI2t~X*!KmX^`LV>=QXI; z;re`#udhZ7Nqi?l;#@z0*t2i;w+nRwZ1SB7pMkjEd9OVM_+#+nA`huQ?-XW+z zfW0R%pTptvEYN)TUj@01uy+-R?_0|t`wM(J57%=bvn1LcKcj}=`Y~X~fL{uk6F|M- z*UylB82C2ON$58heUQ>Y2f#0eJl`*@KwSxW+Px6ubVF z`x$ngg5Tdjb|H9r(W!5`GV%0cwUm ziXpcE#Or~;NY6li2WtPmlJ6#aLx!Kp@^h_i@Q0sk@eI!M_pgxUL3ANx{CiD)cFS}5 zv#^zbwm1;qZ$1Lq?V#VGG7e)|1)oNvz7BjJ=ugA-BGk`8Z!E6=1iltBCxA-8ABVbg z8>~6_Py)F=z}^PG7}w83Cp8b}InXZXVHrj}0@?xE4tfmqC}=0>M$qFR|2gnexPAik zG>FgW&w`!~}&lmQ9-Uhu7`T(>Q zv={Uqi2i*H`VjOH=z7p6pnE~rfav2U5Z{yWeb;B8&q1Gp{JWWlaQz@?8;E}M*?k}A zY7n2(9|nC5;&Uj+z`c;q4t!p?3dHj;&zw9T@?6OC-WCwgWCuVzd-2T0vlh=j*Mc}! zo)0+Q8$i5oG~DaB5B&k+zQJ|+D~M~5YwR}==brP;x&1FoG)s&x2_XuHGn%z*)v9%y zcJ11=Z{M+VPhzpL2?>dbi76?Wjk9x_w-`f=dg0WJ%tnnHXE$r!VgWJxZ$O0kUz$ix zNl8nqC593c6BmyXW;wwS{MRDlLl8`aTuSQMPAV=gAt51@ly2p6!}yOmX>M*bHYO$( z$|3ysE0R$-hwL{YoRplJmeDAyag(OZN%{wneOO`M!IU2>JPL)GYtY4i$s!*AwF~nn ziMdoK7>g1Y7tg%15*)IGqFJYZNl7`x7{2&~L<~4B4Ku)ZLYyR8cO^bl6obcTS zCZl1A8)CZj&|vzPaJbWj`}~iD@INe)nmX0w(6Nn*@ehT0ezH6;RgN}3zT7YlgOZ%k zP>B0KeKu7N4MX9*ASxR3mJka5OC{+Ur#W5vz{p_gl9J9L#!eVGDgwO3Fm&pN3&U3! zX5PRk)Dx3Zwip)cV!%-#T=x=-W<)szn}Ebe3^VtF9+Hxtb#mx~GfQv6{OSsH5h)9` z`{#9sL5>43Jvxia8k{j~R#BghZFBnyFa%yUNW^xRWpas z<8q-Z3`}b34wG}b7JbaqlP2fD1{h$s86-{ge=3H4{qvGQd&FRK#rqLO70ryx=q5(Qn6tT z5(t+iPS?7&EX1Ju8)h3!&~<#m5MoSv+y0nG;qYiLhfJ{LikX{fa<*%5$mlpRv7DIY zRsAZgGR*p5NUbb2UAF{X)`!EZoLrDI=_#S{!D+QJ+Q= z-wpb};B1*Q{l6f_ZrOt^q@?7ZoSd6DXtVrU*9VN*eiBaP_pVTQr@&IjQf<_@DZfW# z_oz@}3YK4!rcHBN@O^kx90f8mGP4?6;dzXjh-NrBJu|CGc6N5T$>Fw`ilv*`s7ceD z+}zWMF+mXm+yo$*m9vqUWqq)@K>9Yb=ckPeGo$IVhG9XaG|p~{(yUptoV~=XM8}3w z8)rAqZQU*<9snjcF(tiGv)1i9b?x4x=V8R+LfA;?O0&GqUAlH#WOBBQ5W2MV%tl#R zCz>47j@tvgLph(AZ`XwgrCuW7I3zs;*9%ITd)sgEl2^2Db z5DU_T5EI6-iaTR+hRM~*vN1NRPM2ENMO@PWGsHphxgO&t$HAg>2e#FRH3#4am4CwH~k<82zV ziN(fpMqrPl^X2~qX7OVf&hqwrL@}CwTEBi^u0GexxlV0P&UYA`W)flAlhQM;t&^h& zS8*tOlVRjIkmO_xBmDtl4f;g*;2V6b~5SD>Xxj>$3TZW!2f(mH!x%(cghoE(Qm z#~~dG9~$UlCuRhYx~Zw7h_PqiH{>SOVL?<-O?4PWVUVsQCe01(p#$d}EH0_TFgUkG zWSwFdl$hY$ptGChTwxfqh0hh(@ESF4vXvP2L~cwxcV}fcYw?0%=n`8cHk^#CX3bmf z`wJ{BOkKn-DJ3JT2_BeQAHSw(?G1})?wVWTq$?DU}EF!!3tKF6ALA$X5bcu2P@n#n&qxDIdd+U zq}22)9Y)XsjhRckrJ)>eJqY2$9t&mz$HesK4P)@|DANdm$<59Ef>^@>FTXO3Nf0bH zboIT;LFYeX77oicgf-#kztH_}VAlU{-WOy!?%+6OXEaJrMCWe#+My%^_q?{mqM~sO z!1FK<)JURIle6W4n=q3+HEo2+Iep}=t%dO(}a@OW#p)S4IQ1|hZE*8+zHs*uBIRuaR)=W)x{N7H7_*E!4tcmipHavd=gI2;=r z#+cJG8{KF2f_&lq2=L>?Y#X-FWo6+c@~+8o6T{lIsHCNRMa)gOZSCBQ_7gK0E^;JL z_^km(gb|EO5;1^D#4MP>T0;1<9mam~?1GMQXy_2=I%nJ*6?}(9>JBjfDDJBNl2Xk11J5A2tKRH7wDKD9vOEV@t zC*U=cW0D62+s_Avx%qW>iln5kh?yfyGnP>32WKx>gzP>p;a7*zp}KABw+5Is;GYH< zQ_He9CfT>v*Rh6C1e1yQaXzvf#$X|{kU@xHE3fOlL1SC53rWVBo_F?g^<6}FHH$Ki3#9(rXbh#~f{DFFsSx@hZiw$t^?o({zx?c`jX z7(N)TFgX_xyH8^RmYN)TaD|ZwuO`M*9a7n%g8SLu0(;JL_7E3;PCbV4nBz%TI$g{^ z@6gc4K6b0gS@3YqbV>Q3(~XYdhJl>Ij?nBCVrB=u0>KR==PRe{2H;X7{G-#gv~>6G z)bzL%=(>kp?g*UC^v1*(C>LnUt6Y<_;M=~*71GIJ<{%=$c7I={BmnbNEjFBG7r!z&l5?r9LCJB(IJJxWro>YG9xWF z76o!n)zUO!Szr&bc3FiyTuF>c!konTIrS$Io=z2t|9!9DJCscFoOW-azO3{n)q zT{R;!bDz_7p<+;w;|GYjaWF4!+m27Q0rbMZW`S;$xk}}$OqUTbF+y>hyqpgN(9I?XDa$j)J~?@-mvi25ONhVE zV@}r`c(7hKNXdkR9S!7M5Tm1anq0tPEDYh(PR@ho}H*iZgR{Gt}82P#4Ku@2^_nyFq=8dHP9L+x@DbQFuCZyz1hPllpCx|)8w9B7vr$W zMS_$Nb2&@5`64}hn91>Jn)g*^P*UQbv}%6OB}QKX z&;T=YVVzu%Y;e6Qz^oH)9q7Dmc z)!-$>;_>nh`*&vJ#(a&LeQRLP`Nt3>Cf#ScFl_!Z3Q0-3oE(P>lk_hXdN$B?19VCF zykX`E6!EZuz3H6*vj8~vQa&dJ6>RP(Tt=yB2Z-6~McnN~l$I9C0LBh1`&KW05P!lHyLGEmJph{_Ln2ij9K}Q%z4=;yvmjxNJrDo3}hxco)3=ib2cl6KO;bfEJ z25T>O`J%S@F%H99QoLip2d=rT+qSxG`Q0w`z00VMs_u1p8NJ<0eg>C+5P& zvDi3XC&rD_+~u@oWPWCHh^dpYr2fI_8p1i_4j-2pc*}U%`7R-p>@XKS%q|4eniE6h zF+X;GTpaNEK*l=7O%(OjL&ac`NNEps-o#J*#g zi$U;j^t=C#Mg5l;=aH$2@`?59`f%ZjkN@i5?M3f%azRKmVJud z-W}_(V3EMDE)KI!>1BLUdgDRFkk9x`1P9if)@?g=>Asv;bbMlJdZU~cSd*Q56qf$W zFpd?@21C3pz}TrTw-XCW&~xn82ADO$%-s&78X{s-6y9c7(1&GjT-*+?>th869wTNQ z)`O3GId%XObn@wjSb#qpVBTL!zTo8?$V^XolNcYf@OcjoPL1%9P0sg*p-BPF|%o__T36f z4;wge@Q`8ai6JvW$>~{5o40Dyv2%XGlZJ&bN12VAwP@7_pJw&=nOIx`KA>uZCy!Qb z+O})op><=^ZRlQHJ7PiZ`Z#n9Fbf=W13OnCF$U6-#jT^#NL>rYA;c`^+!1VBOB`mp zJWq4g^R-24>cl!-dz*ocF*R+j>GHV%vBqZ1Z{#ekljBaDfL%X1d5vKVsS{-{Cz-CL zq&rb!i#glbbB7S@?d;=H)5Wwg&)5Z)@D0Rl+Bh!m=1EC+m>eU*aG6I5_n92SfxFrL!5G!G{Y=C>efwGfSEK?1YTu3jGS#aT>C8o49#_= zWxXyQ2;mJ%`+AHft^Ch1>)QV5(7>KKhu%ARjP5ZANZw*%WWi&pA63oSY?r`xHAhwbI!`e>@quL|W$Ln9vquCdbK!p%Xl>a(;kiUFfhnhZ&rUh}mLs z>yKN-HN;@d=7*nAWn?$Kj~J7jN;V_$@!RU`5kyHy&Ul$v7-vv^We$aB^v_I}Bj)V5 z@|DAA6a`Hv-!#C8aQ*KmhT9X?J+d@CGaKJ4NN;LN4fc*uxG6Cz@urZLp2f3XZ--%Y z^rxycWKNE5fCZML4C8R^e8oK>9G-0U{LW;vmo&%gQq=a2aJbTA92AF(iK+^8 zU7!pK)dZMz1BmL!IbDcB)y;6iDTbM?V1G(X{DSXj8nFzYpx6g)3{Zn|#t+@ZLU9Wc3=cznC0akJ*F+IH;RwR^{A zkikgpd4b;=X_eP*w8wb%X5ax<6N|;&5;s&lKD2EQ<;zSC{$dT_>l;m)HgA!8ufrIr zy7B-qE0zS7Fb^As48k6X-3l*On&-Z4y6^?&@Nx)mTJqXN=Rnc+!?g4!&0FTR?c6=T zkXTH7h`uz>ZPUJE*Y5e{#G>(OQd&l{ybhha6ciSfUTbpv#3cjy(;RNM@AM3@xI}!# zh2N1u2kkp`Ibd=~G#oyf;d4cNueDWnbI3`l!|>IcFam~WsV4c9vv=l>$0xR}#u7vN zAnbe{gPk)ieU90~9I-GNQ04`FIMDrD)&L8{Vk;fy#Vq9(1aj;N#R6MJ3=B*o)3`w= zCap3I$5Lz>aD$IlEiNF&X~V9>S>v4FXL3|?_Yc0Do!m&U!eptul=L)|a(j*X5QSflhFk z^9~co6U>=`oO9c4`DaJyVn{H1E-?ymtZpRn8yv=@_;W>|M z|0A=54Nl(_sv= z^~*krB=RmAJT*oUY3k zP77Q*!{i9nmoq)q06wb$2AC!0?0U@kf?m!w%z5ICo<}U`z#K-$8ysda@)>ejy*<|h z{=Gb~XHgCeZVa$GAzWNpkHHtr9+F`TF}K&_#>3+y{^r8uXvji>ya|P$BIcb9!thLB zuio>RnCG1?r;SU4X_WkylYjGuG_*7YGSp6h1aTa+G`{TT-`<=-jH}HGCIo$-@8p;p_A(e-XX0fJv!#kDw~5a-pNod7BBFp~_WAy4uLaMiCzBqr<4RZho z$Z10 zec;Ma*WF-og=-%7${*d35yrf5Y%Mn2{LWiCyF|&Jd>;JJB)3 zEG&>jY5kC$oN%^tq$W5tf+;U}FvWQvCqlV5fA>{SLoxx$9f_;b_6*Mi&;%wCxsaJrTO zmVz+xr^D(JoQV_P8ve037kQ?MOLCYE*RA}N)Mmt@;Vv_cFHq2LpNgHUo z2)^YRPc^CO6N$mHjTVvNe9ZE?78pbUtGLoI+-R_1AY*&eF;0#rAHJu?qfn!)(}>j< z&PvP~hS{X?G0fgPUf^_XfzTedm(;7A9312n*_kc^-!M72Olz>uv(G0cXKwj9kNeW(kOOvvGxt&s)Y+>aOn^CM4h$;4o314r zvd5+`J}%F6(Co4Z0ZdGF7#r&J)9W$kHViZ&W)igJPTDPtL?ltm&1s0NxQAi;yT`A7%+D~?mE+mNimGm<|Bpi&B`+&dgz7=3v-ECG;9gc z@A%39143_X#Z?n?h0<1z$s=GrxZoiXYYihD6!f*$VeajNc^nR(N(^l-dHKYioOYpM zK*C%JIL+hlaW)gHGsWZ&C*Emtb#bvE+}}XXi$6$Aio@#i%)T15D-S{#hDDyY0Nev! zBgUS&;_%fT-a|hk204Trw^hD_Pf7jGFieK+H9Q%}**0{j z)Ad2%022n++jHTA(Gea)M=)RsGTJbzA~|d?3WfMPeQ?m_Dc)?c%xR!&e&V117KU|E zNnM_{aMS0rB~NF^5koq1GvGTeevN>?w}hzSy$v_c#!Z{$pCaf7!qj4nN{9bIN| zM)@y)^H+;uY_!3;f$+EQtPl?hf1@ZU_E{09vvECEC(hqxL8PqsDbDe70nXXyZBunankWoM+W|?sCkP~#Om!MstKWq zbr`ePQZi*u!#-e^GhgQ9Y=yWJLQ+a~J%&Kx4LjEBNv7+T7Bc})&*|qod&oBKt~i_F zZxA*U!=L-`gIaq#gjYWg5@SyC~nb~lU(9wZ+;=oRR? zw7_b`aqKW+_$FH3i#uI-QgoR&&k#dY;9ihd_(HWLgTvO5<}jq7 zIcSR{%P^m{R>x!qx;}>>9oL)~tl1+Ia*t=O_5tP|BKS;_lG3YA*A7Is-}iHvivY6* z=s?qjL9!v9Xz;z3K$mNZfBv45l9A2dH4lngy!eXa@x*wNw*x-^WHKjbgV`hKb`rkK zz0NR zF0t=;HEZ4+x9;3F#H{cGRo>*Y8uu|QNDS9;Tt6pgiR%+?U?686G7?yf!vcE{M3gXT zFgcl+({%BI+|0n9nUZE_5@;$ z8edEd9Ry2;hw9YpoE(kv{*75m&%7s)qbP?W-%4#UstlTD~Q>O;kewHu$ma>1OB0F>wBfiQPQ7>;^U7s zIl5vQZIY)rIfq#m#>AXfhf&s*GXi_od4T=RFc@Q|xI7Q9BW4{~elrN+OT0bWXAB{~ z(c6P9_v1q0@bw;p2^PA!xdG-z5(?cK*t2i8pa(=D=|013k7dU;oez6m9<|+KN`9Ic z{i7E)m7&l}fgJl|p@+Lo&RugpS>7_aVDPSrc{|WGhs|_!^g9i)K>XbXxooUTtglS>yy;>Fh9ePM@&3B_$UT zV*&*Wh8xU4Vt#0-dFvWsx>zCC+9-P8z}ay4c;D1@G*|AZwxT!3;co6%}y7i2hUv^54H~w z^NGd{3*XLo(sa=;w?4Xp&o$pNIlf)vmptt4NamML*Y4!>1kcK;KRY?j4!-8V?^R`H zCU>D@oJgjMTbTTB)&S!4+n*6&xM}>`|R35PRaks3GROjJu4Oj{s*GGj&ZpX0|YlZw(hEao3uDs$f)AQKtfv$TV`_&zj#e!s}?BoN`;W>)3f7F+6W2;j3jhTD5Eq>}-?6_aqH#p4+x#mu~z$SA5?L zU!=i9nSCp*W9N^EK@~qWgdZPjmDjdI=dKyufbq1&cO|)bZTSmC13X6ET>L~K>@6n7 zw<^>n2DwW-hGS#X7O)4oU0&DvXxX|A`uHxu+%Iwv>(r%nclyT{P#9ZtVE7){C}MCg z&3=9feRS!bzm^#NgD=@ZA2$$7fSmd4{CmZ8v1hukrP(-QdN^JB+%)jHfLPEkSNL*@Z=F&T@(CcF zF#p`wkZVa9#4Ii9|7m1$6y;WFf2fn*#_0xk3T9eTQa6XW6c3hRVZAPM5G52UCB}qh z;vp}&_74j%dSga`4-a(dAYPOqld^N>njB^9OKliMTKY0#xcxC!O>t^(*(xt@o#`^W zc|T%FO1?a>2WcwUs=Fq@Y*7(Hxz1t1N`sFmHyY-g<`{763g7PS0rusN1{e>}EcZHH znl@XE!Zs(zZaEabKFoNY7@`u)2JS~GY417A9()ja3^y%ppVP%OVLnjk&5r?QJ@8J$T$t^V4#$vJi81ZXoPAfk(I?Jc zojG)oe!yW)5c@V?zJ?0u3zW?pJ0+wvF|2+r8Ru5STycZOthaHxoPMUQm5wIIl&CLV z3}YuK%nuB($k_`PIyaca#QycVuth8!9v;ZKP8>GQVd%v9&5W7mFz+Ml=;?J>-8{t} z=`qYOH#U|skJ-#S+46eKY_X?>k(l+R7)M!UayB#`ev&?EJjB_ZSYgu^Tz{vU@0aknZa=IJ`Qy3i^ME0Fo(ivf7>wTpG!*Q zLE$jmA0FtsW$0GO=!W*pD1H~c9WnVxx)}?SmbjkBKSKoh8ZP<%g?{MgvO#0>|gxG z`kRiA3;4_aa6DyMZWR7E(SJttUl9H_(GTy7>_1KT*G0d%w15A;(~o!VMSU^)QoBkE z_>LkU^FgHiJ>t(c;X@+7rjxUu6xh#}_Gd)@Q}KUkhSLuR`fCdvpB(UcV(&}Q?;!0% zWqe(w{eAJLSlWjOzhC5|-g5Es`LO;1=db-~Abj2^0{$~dMUq9LL=>gyB2FLq9i(4h~XA1v^ zF>`Wa00Y{JBZi=Tp+(P10ZMUT!@8{{D){zajirvj4s(@w#8^KO+1S!tWLR zqh);WNdM*1{=N9~p~&AX@yuB0#_RXnHo|`^>$6toJEO+w`~Bm7vHz9yzhC^@E#p5R z<6kD@OZwW~@BI0vEhs5(x;Rj0p z?PWY&gf9}ltBh}=*eezJ>C%3=jOQxh`-}cy;Y+3eIbwf=$d3_zk;o4hdpC(cw+TO0 z?9CGXXyMadk30_^A^lAjzC!eON`5So_F1AoPxuGL|G&w8lGw%Nk3S!kNj}~Ach~OE zJG*7SX)F6pvGAiM|AtF@mh?YU|3b;9 zPsE>RPjLPF^WX;Q|3{I3Pvox?`4c3+w@Uk?67N$*{s|f1GV#BujQ1Ile?j(ZBiHWF_uokW1El>c$?vOWyg!KkHd${=B)-Rrf4z#FKmNQpOxDLL z(eE$vSw}g2zu){R<83GHLxjIh{243be_h6tHr4g#&p#had!^*xY?+_kGJoldoIQVj zTrTqWi+{W2`Mst1vt0T=Q|t|v{>DnY4>`j5I7G#74V#`}1s) z@Gpygt@!u2td9*c|0^Wlm&<(T?s4ZG|GqO%`1Zn&kn#O2{huuP@um1bO7xEvf6f*C ziW6OY{Qc?*X^;9Q@_A;X#Al)G7k|on{Z{-dkn#R1?WNKl^-<*WOT6%n#J@vDznRQ; zW6^IVd`FS*A$+m$1Es%768}w-zpqKW(=K%J_xF>bVsE7It5-UC|2%t^#$V=dzTEFR z4tM(g`RH@;=Xc@1Kg!Ab{XgR*$NPM_Q2O62`Ib7?$@~58PKiegX@5%g&vw$^Su*~& zM81pI`%>CplJ&bo{JBcT(^>MPNaFX7*y|zkV`Tn57x_7oPlt+rg|t@*f0X3g3Ta;} ze1WW&@#5cP;op<^d@cNtqa*WUv&836>91FRC-2XXqh-9~g}+1mpDp=tm-M$?^5YNj z_gz^Jqr{&n(*I21r%Qaci+@wa-ZQcu=1P8^BIBu+_E$xJw)B6r@SlkM@nY|B@pq=o zPo?lx!Y`C~ERg=Igx@3meJK1gk*^W{o~|xm{PXxa@#hg~-yrSni=Dnd|E5lJygy&| zl=js!zNf|h@zVaMjAu-Yv+vIve-rsptz5f*KD|Z!oh15OrTt8a&rFd&TiWMJ`*yK6 zN&Fcv@%T*E*A0uE|NcC^OYD6w@p?wu&y#pe&2skq^U^Ho|4r#{i>$AINPfR0{Z)#+ zInv+VVy~a%$EmWvZ4mz}#op`E|79XyEAw%cw7(DK z=+Bk$94G#rEczMJ-zg&hj*PdT^tVpzoi6>a7kd|q{5c|@KfvXqKhHPm?s$J*Yt`8C z{{G%t+DD3i*mWp?;knN@&5V!SNP!?X84wFML*FPj)`$c|( z$cOhvp8t#F{!=6IN)`E-A0qdo{-S@J=$|Hh8?o0>`1m+CAO3v(z1;8SRk?QmexpF< zudncHdOLalercQB&z=&#oA@(W?4^i*w@7@`BtD}>zp=Ep5qrDDUUQM}Bl7*k-~Q5m zu8eh9jFa1@?d>$kG%_6^5_*#)aR`?p}Kdp%ykAMDI zEA0=6{mnAJ@5%FMw%9vK?6s2itzz$Dk?$k&FNi<)ivC8?-z5B55|065zm??67SZ1> z{S6oW+eCh+$iE~0UntKLA4~hW;_sKz{=M+O2)|zRpAdg`h`-lKzTP7I92xILvY%cc z>*Z=`zed_mmGyLw+~2lK|IzU-U;X_tEc_)h-i^XvD}1`>KPU0nEb^~N`t?a{q>OK`=-(mo+2U_Y;oA#;kLZ6V_PdGv3z8p?i2m2I-VcbqS496ik?$-0y)NA$PAuNQmW+qii6=gm(=|7+p*3;({Uv8 zf#@%h_HCkHEb@KDzZ~(eROAm8et_r?kbD>@@;k+!W5wUyvVV*ad#8x}P_dsY{*RRQ zr=B3JG`!i%bvqgTI$iE=|?iPNw$bTU1%cOm!@cTsm2jM$N zJl2Z-FCrhcKk|OOPUh}Kzn`T2H{sWb{ABSj`qRksRf6!Bi+&&R?;2^JCH6N< zdq0W)JdwXemx=r;;qMiHwhMo{$hQ}N z@`W!FzEt>k#J~R1ezx@Yk;=>bJR$xL7JCwOZ(MwzrRiR4@LjC)y|&(zQnobI^O^NCj*ozH2fBpN&=lVF_pD$}g|2~QD8zO&#$e$s6lJu7;{FgGm;WEG9NP9;ae|O=V ziTz&EeuBjNaOrP=$aj|bwHEtBMZTl7_YnRgiQjKBzEj1&Lg_#1UAI5@_b+FP{3!8f zyzoYH2@7?42R}^&)?^v{y<0 zD})~>>*Y4FcfQ!WSopPK?_}Z66#j0RuXCmSF6n=x^tVa)DKcN%#QqkMe^~7A6#hx! zcZt1bGGAAS{~0Bb`)>>3mx;fdME?%qbEUt#Wjqhaddw5~_QLNF{m#<9UHX4q_~(=t zdwZn)L*d_%cz!AI{#N+UMgLpje--&zlF#vt%fHBtD&mZz2A)75)$D zuZQRl6#wH6M4pGsCH@)G-bMP$mi9knd<7z3BK!d16PmjD@XzN%#osZ)_mc4yi$CK< z{!o$cC-MV@A1?e7iO*!QKS=CPm-gY(K1S?M6n?bGA1(G)NdBKH`9EIt=ZO7s<;DIY zX&)o=HB;=D3tuJnmWjQNGT-^a_YuBU^an`$aN)-azfk=9e<(W>I6I1J|CekDOF{(1 zh@ho_CJ~3Qi0DJ@BxF;PjG3@JMAI{O?o38z<_`DHWWlYUA|fKj9Tl|&L{!AMJmtB) zR#9b!uO_ZqE@tuD#{w$7d-03FZGr zmH*c(e=bt=rHcNc8js$kj-(^fwiKsVd*^Dfy2TeTPc#W+lHz$*)%Sf35Vl zsQms`$v>^i_w$N=NTnC4@-h$B=c7L<`(IP`zNzT@mHs};-T{ifK&5}9viC1#?;@o? zSJ}Hn$^TE;dy3LOO3~M;@?W6jTb2EVN`8`}zo6{>MESGFey%;|>z~_{{5Og|McH4h z=-1!k>Mwsky+X+^Q~s}3@*gUHf2-2}qoR*i{_jxoo0Pq)RQi8c`o}1H4=MTcm3)z+ z?^f%%$5i}K<@Z|U&%S@CuaEz!?7dv2H>&I%tm0p~3|L;-hU8>^$K$X{jsQ8zw_}i6!p!Dy3t}CznJoB$= zJ@W~b-$#}F$tpibDSGx?XFp&6U!nZFUfF-K^6xsO|81qeM(MvurN2VaFIDt975`_- zexlO9L&;yE>5E+X=KJ9uRo>rL{-31eZDsEVN`I4* zpR~VAFP~q2qV!*_^k1O#Z&vyZRUa3s__r(lyA*w@vi}Dqf48#t5~aUG>Az5w&p(uW zt&0DjiVhV$tmtLR{HO^dUe~vu4K7Q}}GDqk8!^0*Vo$qhvD)~E`PM)8ytv%n-`TM$O zsrXka{m&`-dgb5eS2}z7{n&FQM)|9z@`U8vGKO6h+`+1o31{XKtw^#dipMA>_uvKJ_NxuSop?7c(T zyG+qnsQi3Ql}CI_eZ6;%O7ALV?@FaVN9Ffc<=-ony-z56hp71HDgA9q{}0Ok7nFRn zivLxW{~MM5T$TR)%Ki_P{?8QsOGUp#(~s_gIiM^~Tu z_xq1h`TMxCx7WYw^V2pZpQY^mNTvT%b$&BXrMI85|3zj0Yl=Qb#s7hlAEf-5qwGIX z$q!ZX!%P06oQ{%=+Kw<-OPD*2?U@6W3GxK`yIk_ zUlsjp75|5-ecYww532YFsr+nI{?C80n-B8+*hz}MRqYR7rRsBRt&5+(UwfyTU(D?K zeENX$_af!beJX!*mH+=x^0%w_k0|?l+*@C-K1JD^q5L~a$+w>8{LlBxx4+8K`F?nY zvVVZ0XDj=USMrlodQVXLrzrVW)qWN$`Qa-53MD^M$={{yEl~1xD*oAu4i$Z}ihrf5 zpBE|lW)=UnioRU=w^hlHR^|DO!(9F3>*>Xd9i5+t{!z8p=bYo@`T59ul>G(D{^d&E zqte^&dCp#be!foS_iL&=UZ&(%DErqa`dH=9=aqaw*?XSS|B}*A6#YV_zf9$CiIT5S z^tYA0A1Hc6`S%1>Uf)sWW0ibD#lKzI|CAb^)++xtsrcJfdbcS0Z)!ZdTa5?Ts`h!8 z@@JcpzgDIH2c`c;CBH<`XR7>sUfJKF?46_Z_jsf}-_2BXztUf=>i-a>|5fGRVM>03 zl7C;(Hz@xnRQf+v=Rr3q`X|cX`6~YF6m6A%7by8NlzhAL?-(UNUeUKG|4vr&7b^PA zD*bmV`c$QVnUbd}|G!i8i&gwyMSoD)yHCacyQ0rf@vl(vA6EK%9_Yry{Ji#Br9YtT z-K@&{Hbtk3{*1Es1x0^Z(TSqJrRe>XzmHe+Ju3b0srYl1{*RRWUKRgmO8yGf-)>Rz z+ZDY-*}GH8f35z0{C9uh`hR|ZV~6_t_PU&0aD*wKq2yRQTMG5da$m4xw0QCdY#fgThZ4j{cVcA zKy~=|JzS07*D86awq$!}2p zU8T}LN6qKADgC>Yz8|Ki2R)O`&6B2Qyfrb|9_*j&H$Cp(flkMBv!~%!&(PHQ=QqYD z+wh?Vrbb2wN5+R*qBYqpS%aphIXdKwv|BEm+%nM|9T`8@^o&gQ54fk{R%go?lvtZ+ zjE-lIIjb|-&gjABz|`>i{(*sZbED}wzfL-8sNFx-EM%T?BIllu`^$B|H!bA4KpIV2}kMLY4q?6*P!I0?bGE zF!rf4ObnuLi~cN=Jbq7O|Fw@vwn2Yp4-@ko5JrMu?QK$EUpT|qhxaitu#cdN%zPGI zo`c(wKZ*?4#|S}y%$gY{OlBH;;tZ31WM9gGw`pIWX<`t3V8&OmZ~7SWZ8lv8M_CdZ4j4 zP<}@rXrfOL_g{OP2&5o*cyE*7r@0H;AOZ=9;hRVHHX$%~!~X>3GG~Sf_SnzF5=y=N z0y`jFkNrBl`1ThwOu}>c7V7B|cpu_4^Y_?zD*1jo`34b)pGI5w zJ@rC)B_AcdtFieYK70)O!2E@{g!Y>=Oz;M5U4spHDbLaA*qBS*9?Z(?5W-)hpW+*c zKmyD|`1>1pAOazD0^*;Op78O>+<}ZRx_~x>{YcUP=Htjur>t(BWr8#C|BM4n@HcQj zI1}Dkl;=Xq_3sCm^sUhUIKbFFX{UFS=G$hO6#e)%`2ReBHbVFS^jYXXNc{h#ubheg zR&1OFeKzU*C*j*E&v$^cd434I>;MzJ6PUKTx`q2vs2k@<*__w3C2Rw9Qbb~#yEBbr$Jb>O_=$%Nqd!yF?Pr&ylKo9c#eq@JY z_leN^kT;3*JK{FT4`KKLbei~=f_rESGtifCCVu?}*&T%Y(7(P!{eTE0zxN|5rp>2fxiRjKk_rm}>Vr+~b zPq`jM8<{|UFTMl&0PSDExR}WJ^+wWq5#z<%@Pp9aFw+FbGIp$^jbB1~)KdV$50byX zQr5K72qfe=7(;##dcynbz9yD_^Edj<{q!Rc{hjdf`1eo7R$w0>1j$Xb*HbFw1 zXgxmj9L?CzgdOVOaPl*P527=ZTM>_9`}g>{0e|D!w9VNjJqaE7k;wL?y-YF(%%FUK zMZJPV_>U1Eq>?tWh-dpY>gK=UgZO*Q0fdP>U&-9|Ez0HF#0T~}guvcN2!fx>7)GC9 zyo`YT2xB)0*5TKE^mXbp6kGuxx%mQVfCwbOd=VN%Ad%;*W}5J8lh7tuF%Z0i_WC>WC-LrrKTNyXmp1r+&>yCp2_ujI^Fz`Bk%T*# zpVm=VJewaugIIWk2{7B?fe0kP{1_TUAOYql&>)iV;eAc;ChB2~{t0bQTjJ5$yl3B0()nDaQoA?k#=F#^dQ;P=>) zb;TdB&D?A*#@1nsgUs3XX6hZj`53zrPlXSHBk}8r$bp%=j|o8n?0xw0B*F{n z-yp_b1f3Aayob4;=fKjpM``CzBLu-=*m)DW$n7&|qtL;5qD7f6^F5<+_%Jjy=C_lP_s!1Rz$5CJ=n@(d^wkTB-NjMLF!l>G?(^d0h+ zjdA$~#=K9nPMm>V#;<5U$`pPCg8eCDLVG*DJ`Ng~0~q68#n`}e!gDkW{n?C-2ciql zK83VoY}*5U5EC~dOpr%&i2F*?e>~&sR@$@Z?8p54YwBR;J|<=CjCr;<%Q(!Kv?uZ5 z2ZZMB)c+{$=ql2NPJm7E>mbtJ3z{%Gm^KeDfR2O*%-*B{>~AQCGpH-(NJHC>#m{}Q z&9mK)a(p6sAOZ<6tSHVGq; z`~}`$k%N>mKX@9x-$R{B_+QL*SFm>A+5C!mp8TYrlRXJ#_D^Y3qbBw0Q!3{|oGCzsULkgwP2x z!+4t>LE3~72pIPgWabup7-PNnRAfhBZw~cDdp1u(2Sn6s{4DbP0dNfSKo24NMk8yl zn;Ex2FrP8v7;KDCe~dN3!PsEDF=t={#J4l|ev9&;eBwcwZV`I*$mJjRmw^ydZiPy!uS~a66=FGL2S;|S->F~RZhPT(0tCt?dd^HO{U zp=GXPeICm^NPCL}(kHH?jeeT&Hp+w0us*Y#WkkXgdK=|<7kPVxJl{=x#;Kr1yQGX0 zDQC(fkusS4TCAnRoE%f2R|{U`Lpk4BCo>-$M@U_W^rx^S{IeG4dE*LLWBY#xA@BFzA|e19LHe@NIpTk5OY#h2WXU$#;s|vFZN5Re!0wAJ!UULag4+%>0bvBfS5iMe z!X`R~IWridZ$R7a@IZo&W$ZDGLji~+lyjw9(OJgWzYlf%3hL=Mq(NCGz|7o}xr1^B z2{8LYg9s$R><0}ZkN~qkG>Aa@5!xnU_!;W-4$?gU8HlG?KM^Lt%z_6ZkO0G+VP?Yv z5lBENyaVBZ2qf~{OaH@W`mNclKWLM4$j7CWA7KO%U}RrN-lCiEgSvO1NJD= zUx-g2yq5YnlC*eEfH|7}eG|UIGsmF=B9H)cJTyqri3shdX}h06_w$SkN0IgyY4cxV z3`Ay5Ko{6&ksrcz7WNKqi6p{yGNcto0E}&2*mL1v*Gh>o(KPO z%7ZWh2{2!wjXWPcbOOR?ocetx>GGTadp~LZ2XaE&gAUIr=|_YK2+=jCU>DfGla9od z=XtaxLc>@b6VJSWc%*HQ#Rkvecj$XOM?5FbU>qilh+|$zS{Ku|7m^=*3!o#A2p^t3 zj`&~2=NCcq9KMCJ;5h>Jc+w|ik!J!BfdrUE&>#W{FpHr_13rDZV`yyM!raAIzuE1It((!An4l+@6f?GHiiF z>_ErFkD$Y=W|{EA)a&!miCKp{6F>gR^8)H0c{Go;h{%>>3x14Fz}b5M9f1T`&eJ3M zU_u|YM-xx_qx4grQxJZcz9M~>K9FptuhVCZDcCp&*>m<|{X;%`zze9Gz2=yh zFoI4&^ipg9vzG9?dzkR+#Qh#2d-wE>^xyrdhwqTbacmug4s%J&_!S;I+k_WV$LK~N z0p|PYfe0i5Y}f-R!#^|bF;7Kz%`)M~=rgq4@MWwK;in)*Cw>ldn4Gg*L)!z7x!o1QKA@K?^9GNc#3H@^movK?FacuFc`-|IbVl zQnv{Rhp3-FBY*mSCb0MeqW>Y!ceD1S&dglu9z;( zK*DoM7;HlJDs%|#7GxmVO!zuv=fejf@&u%><{4Rvj^#N5!E4X~=C#N`0xWTj=!uO8 zIWYf)93;TLp12?d!5feRa{+P?y%9bLE`$#(&k20j z7UUoW!6oqDikvVcOn|)<83^76ADFG^Lx+S3uy2P3DG1(y4lwUT4iaGBg&d?HcsFuj z-h&(@AbKx4AO*o?$boqua*zP~eq#k>Jim-*kV;5= zy9pkMK?>|u=sX**>;DHp_NuEIrQedZ`K`f#8MQAtj3}S)A zlMw$y@)d(r^4EX{F-YZ^GK&S`pQK4X!!3j$g_p|n`N#=F!W7t7@eE?&6Q;nv8Xia^ zp8tzykiM1YOL+#d;3M#W-O97*N*tb3WcF?FUIRYI^W}u^Lk2Gu9y<23&>#k>gdzjs z>j__r{GB|57^J|y3mU{A1@_$lTcOyKI3WBW&%nNcXApxF*b8{Rm}g+$f(*nU1@;nX z5Q7w0@)&{`q!&TI8Cvi;a20%z0{c;D5Q7xhtD)Zn4N_o<8-iGDNL>7l1@A`=><8e1 z7^LznWdu@SB_C4Wz>+U}A#%Zo;DZ!|G59dg!15e}6jAbe;oAv;m3UJ3lui6`o`L-Yx*!HA zu%CnmF-U>E78<0q$57IgXJ9`C4J`g#3*HR>b>L0t$n(X> zfW@~^e3bIr#xsaP3hZZ~K@3uPCVmW3vGZe|xAP1_c?RiE;s1U(N35bcutTfJliYL5sb4&Bn+k7aGJM1$IAZ5Q7xh{dqo&XJDU<48$M>_HbwrODMKyz!!fAV_=^O zE#U$1Knzk~#lIuK)8K=cH0&H?Vh4T@(qk7^J|?gBIK8v6uVeUc7VT8KfY35$6M&7)LiVu6~1O=x8;2*l#k%0<(tafM?|9 zI_!W1q}Ym|4ZF0{e-NS;AJenRNr1>_m<5}9{1@IdgtJb#{Nd<;n^ zy$8!QKbPSymhQy1d z?g>*6zK-&GHM$^pEjECGmq6RsP*xxX2|OD?1G9+o1qn!@?PAIrq#*bf_JR2}wm|~y zclP2Q1?hoc326g!DmFj@>{8<0h>nEstv2NqGVDV*CRMurHy!fmz2n(}mapDRgiebwIpG;=+reBXolAV-uKF z*Z>KztC4{e1aBfQr=zz99-%pdGLyW23mT*#_%?n3^Bv+-rXivE0X~EHMWlz%5#3?+C-^Zk zke&el=RD8C|Jm3FNsP`?7!a6vU4L zd^7LDZ(!ez&miGBeJSO&mO2Kek353}*mcr|XagW1e()aJ6-bF^-isXp<&hAY$4D0> zz#41=dl{kNMr?rKyQCo?P6|KS16$|?kHao7&>^sU5(lIp*b5m5PA48PXJF@j=zfpq zz0tu|EcE+{D}a{>e;@3C2m~|W6E8t-KY*O)7+ykuv;RRE!An7KIcb4#CiXr^NE*TW z=?~CW+Az8y`~*bM_Cq`)j|lCV_(PjFKf&e+`1Bmg>zCw{IQA4mG;4s=3)uqP7_+WZb1AcY^o zOL(^TAmceAOhNE_Xkh+;E=Yj=BXW?Uml6i_r{G@nfcX=8z>>!hB=US8GRZSx3W7gF zgNSx(L2@fPx51x7`2q8I?43nBegXWC;2U%T>_N!koByOP;78CQ&neG_I!>uG%Xkn| zZ$@lFCydKh>I6DMW@*PUbsFr49!RPC;KMuv7VF$Qz$Qq5rLGg&P>dhJ6{JTS2+>KQ z&6UJ~7ZN7GUWFW_AiNr$0N)H@@KJPu{TMnR1;I6h_#YgM3`9>L?L&wQ;zNl`XodGg zcpwlSVG7UAMIXdsgV1~&-r2PEClP)hAE6_{MEIZJ8CgV_g5Z;c&@s9(&*oZqFQW|6 zH)k@Be1QG}Vt6641X$X31Ptvv1onlL?UUhw_;C0~V3X&NFah={*n}Tkha8wsqYEz; z{!`(B5S}@Q`ah96`ZvbpNO%t6+0P+o-i+TwykTsQP);BPF|^r08Gr<&L!bqJ0)K!x z4?YM%@Jjf=oD1(0*!d)OKnmiG@He4zEj;1}7r_JO&FF#<*o%>YRKih05R9P*%s4tA z0haj5YY1P94v0YTI`jYor3pa-?0+ExDF|MV9GEvC2MMqjAO|T3-iRES3*o&99e9YGn8q6NZFo8(s$**ePU_@IeA1=oAE$PxMy8 zx1a~iCFpPE`|3tc))-d+HNJDfHcAjkpV0I!wcRH@7?f#c?Z0A!h09-fPohy z58jIovgkd?fdvV)MK=O5a&s9vz`hS2NO(>OgZC3&jt*h)K|)|Ygzg8>gKw^a7ZZL2 z9x(9j705sef-A8FKPC*W=2_$)MwfVrKx~2Nqv!(*BIGFuuxll4;)Un(O#aQscm@fu z*Pshh5PTdxU}%#eNYIb&oK2gVWs=7JCK}wIH39E<-^u#>f*HJX;yIc{SXpY-t5DZeHi*M@%rYk zE}r>|3sWDixcchM{=^a&&N;({>8(!hffBKHu@peNI32@yzXxzWzU* zJot^Hqq|*ra?|l|KGlWkpB&#j?82K*bbRam4F2W#=^Ss*^CKTG+2Q2dp5^3B5?Q{s zzrclYUVaN5op?I+;l#0?@9o7tj2>`y;{%<1vk$|ZpU3n51-_iOAK>(_@!?rMjC>gQ zeA>Txzr9~GeYn|&fe$BqJ+AO!;^U>ax%kG1sn37l^A-Bg`Y_4$Jso>G^7R(`eArpe zf3v`am-+gR@_O+3yl7u1w+}i$Qr`|jFAu#u^7P5M{-2$G=)*alA9_214`Xj{gKrPU z>rb5S)AeEE!>!)m#D{ZV=JY0fn4InC8$G?P$I+<|6QABz-!6N7d9LuZ@!|Epzu3II z=Qulo_iu+!Kk{_o+l!s&^m=_5`EZ*LQyz24JZnEG(ekzUWslczb_dU>x8cX zFOS%V+Yj^p`t%q2F!kjz$J-B|;{Eoa_4U!~!}tjAw+|Dqx5I~l=TGFJub;@*Lv*-{ zzs-ln$6M&b)br=~_}0_CIp60a@Zp3HV;^qw<&gR?@ab>&v?&U`<46Y!_fN^`*dy2_hI7w4177<({OeJpWf!zJ37ke z)d5Gxe%xB<$FqsteqMimT#xhd-p`wXAHRaXyZj{&xiHA*E#D3np6Jp^Jbm(u9KH3~ zF1*N>(~T#4+J`fJxWb1wdcDw>bL7_pCZErI82R$t>dV*o`m(-U=A7-)NxhxW%kS~+ zAo;D!NBTIYciGEb82rxHqn8^WMn0V5+fU%_#a`cf`8?llZ}xiD%Z(4O_vuBR-fUdD zp{HYC&U3w9;KPMJzp>X3e0rfz$K2!V$JJej*o|&$Eu6e}Qm#_Z~ zex6Ql_4a+cP5nF_`*nxS*OPu-5_mfC^2F<>o;JRHNBO$N%Z-n>VSne3&HI55=X$=` z&&lWcaEA|X^kLxjHhVhuVd(AL?EUQZ{K)gK_xX)I9r^XjR&Vd-*)H8}KD54HEcEq| z_Bpxn{WkFBYrH)6^VhrZ0ngv;>61Nu{VTk_4-;?aX0I3d zdDD8o0w1Q{-^7Q3&u{2Mc`&=KAh>tr^L(W`SJKhAKH8!;lmxC-|NG`^HU!`^mOFI zt-hbnIo9R(#^5-{YLl&wPoa6W?#<`ud#d*QF2md92ruZwozt>rpOV=))a8Opo^VJiX1++mCeoUQZh@ zk31dvby)1f?LOU${QMC3cCs*!m+O1G*4vrzda2LXywhB|b3A|Ict@Y?!?`CoI`#B5 zKD@~D6CW=0Ja8BUp=tVBP$I}bF zJoWMCEphU*ygc^dWnO-xk3ZAX*Y`X9G#?kd-+`Y`cKCeF^y~Qzeq6oLkJFdUa`7+o zyE&WpQ-PMiSM7`a+mInzW-k1=?zOA ze~$0ZXZi3R9|p^uyw~@G%Y1l|=UYF%WR=?GpT9iz*kgQvV&>i_IN@vfxk>iloFEIr z>|eusCw>FNe|9Fn1o2JH} zXtx^8PG`-;mV1-ZH7847Nrvrc^t9O~oSBk-@sw=Hce#z{WZc*77xr zR-Jm%iKESp%~2!YOMHG$^Sqv#n|z`X|4QM@dU|?Z-c6%DH9k2q);zY5^-s3OMjAcy z7Mu?2twQhLtFBD_->I)s@!u=QOut?MyQwjk!tQG})7y1{jklJx zCbmd#fYxrdjE1>GZ4_Z+4cn7JQr zCRdKHXwuM0)s4;l10#%0Yn#K1+QXgsJ*Q5M?OcctPLYyoYZC}Dfqe1E4PnUb6(*+GF{N>H@W_zTuYbidBj1N!OkqND5p=pdw473KfOqcscpSQan6#1^L zn99=LStQ)*W(&4=WUM*XJTHswTUJlTk>b&e^&9)!qs?*bQU2W%%&KO3f*HHWxx}W@ zc40wkZ6{VlR9NyYSgc9I`2VhjZk?&oKRVj8bfPsndS*Xs3_4B5S=+y<&pn=$7fdBKsN(ohWI*Ey7Doss3b&dST8 z&TUG0HP0(jA5k>THe1T(SrB5;=z^8(EFzBepWEz1b;)QypA*mH53t-j9{&qQVQ^sg3#OA!oZnNKB$+pM z;|$*|A8#C2q?OHxxhF!LIWoCnZ9m^8&zVzh)~u7$wA_+<(?Ahz-hxd7i>HR>_e@Mp zE~EVy0;k!L#dNW_>ltHuDl~*pZjMcj*EBLx>2yYh`y1JoAosQ4D9y%jONNjlLFkp8 z<*i;eG4!2+E!H+RSG5MGMw!rZqoO=c2@RLM4%U(lP0Fr4GTB_*-)@gotc;BJHrt(% z&SaC>c$6ZpTACJZx~G}Ss^-{OYvc43`$k6^O<4p@GrEpWKe)J7z0yk844ppS5MP_c zO0&=Y{_7?oq{CFEj(H1)r)ZVgVwmxz zFbUsjH^(L>%i1s46Rom8iPz#ny_|$o4&J#=kwD#UE>;;A8$}G!VdHjgqct|hJe@bC z4jaG5!XEcovn&YhToO^ors=| zoV=8+reHHlw9EP|Or6=T43PBBu8pFmt`4q!vkzq20IzAd(5grJ!=2N1mg|OpPUtrj7+x5c00kI zWU_y}Y*RU-F~uZ2CX2%&B18U2V^g)MQJqUSk4&y;wazVva%u9F8P1WNW%8FtN+rM2 zp0+q{mrKDmUn|Vsm73q2p6J;rMB3dC5s9PLs@AAnkAk z18!>=znNW{jaIwtkF;?4+bl&I^A@a^lA7N$PA1n3l~cmJ1){f(KjYGr20y=Nh}~Eb zO=K%%i$JfhF=;pjJC^n>*@<4jjhIjA|MrPHFpDV12kwORD6&&s7pZ;A=Dp9zjyUe%o3(5hD6 z=ul^p-JhDcJ-4^IFZ8_AnIvw0`V}%CYd({$&U2xj&e7aQ0t=2X#gCiT)%3xi|%wThHsxiq#$5^tY-5jj+ zB!-{HXnS=_j`#fLqLXb5EB%kZ`-B^V!&CijEEVpIH#fBgUdh6#%3){GUmeG@rBPOn z6|K#aef?t-qh-$I^r5+VqJ9A3PbA8LL$pR)!(|H_8g2D+d^u2E!%q}DnR=>o5iM5q){PQew@G{f#Ly zRyMuK)q6J9z*6f;jbDQ-Z0rK3x&dsiUyNkb}V&nvuvnc#B{c@rxm#<8(+bC zNs)-K=w!oXlg;xrOn$2K#bm3siUm(zRjx40g$a|O+A|gT8*erT@qB8cHWDKq#No== z3`gdP+VCeGNcvc1GV^LOk`&prTw3d&AURH&^({0%2sZxp>P`1~?gOi@35h5k^@_-B>d|S`Nb%6&#_R6&9sV#J9y|s)ek`nGANa zkP*c~Dg~6CX7g7sc`Z|p&70&XG*{Pot_gcGs<2p>O_UcioL+9SXK1u~OqQ1-FF4nc znZjDOeRRcD@Yr3I(kxwCyg{ zsMy&e#w}S(S7c%1cxufg%VMQmvXm}W{18avPiSEJHY`zN6S<`(d#|4FrN9{MD80VP`l~D&v*?3;paQ;13V$)Yf>luhfQvkxorI z+>kp1YwGJ-{=hQ*M7`G>ZmesM3=cQkJ)EKx-gJ4@a5~e8ymhT!8tfTv@T#m`MB`QP zm_KtUoR_JixqQhqJ%8{pO>fK%OhSc&hO!rp%{I- zl=jN$g}rmF+6A|sF?n~iel?q~C0iP`(KVA~%oXgjn!J~gtv~l}Dlg&X4E@xR@*PKZ zYCf&aNbyxlBP+$St>^WVRita`<+LCNaJbc9E`xJ*r&-jd9ER{hjc&3L2RUA=wX~{? zbjBun7+;FGa+q*hC3dEfOS=?g-ni=}S$9k|mEqCW0K?*WyyqY2pKO%3UT8xvmDjB9 zV01A@p4D|i{#vuPignE^_fLA2S~=AEIxlo;Z$z2rn-ke;bbgO6S(%L{rM4)6%0@m@ zo8SUQSuaClldJm{byoEiZb)ZX(tElu$IO7Qh2=}uvE}d3=4(grUDSE0cbZ&2q@?7< z11DTvl$csZ*u($ZM%6h*SDQ{p(k^HDE*0TGRiw?u9X(aPgi2F)5k4d$sNLE z_vzNw-^$h$oQ$hU4Nhyz_uXA}*z>6Ecvm$}RBE;cS;p;bKVKA)s$$^}$*b^9+1j=! zf#JrfZSDsYw6s{a#A0q(&OU;p)I#W$R~HPiIzWRjD^xh@6;XZ);@*f=?Ujk?>v&>j z2}3Ne*ce1BSIpSR%lQFoqwJkr;fa`%?IzVcGFh%PIve^2%Qi9GZf;S|751cCivbP> z>TM(!$VE!&dgX-GGr`U-Q(jZPd8drH8SffP;oWdUtW1A<<_5xbBja1LaiiA58svYn z&Az0`4U?<^tDOC z808pKt$x}_wSUVr-e~qU`q|r6OGqkYZF7MXt7)%*@f6$ zCdsxdS!Bw0 z_)^)mwBCz*vJHJ7G1ly2>u5T*-H01JsWv0sLm4lmm zM$08%$t%z8$^y&gI=zd{qAac+0J(Q!+4Z@?zY0&~Sh6O*pUQH{-BXk7OS@abd+XZm zqjHSntfuEQx*E&qvzzT!r}CJNI}=?RaKdc560UE}K34RG_nto6tMA>U_qZTKk_E zDJN!krKzwm(&55zg<9QTt_xY5$zr8!o>X$pQr1n2$mBt-)mabrR^BmBSKzADt`!(u z)gp`^0`|AJ^l`S;*s!j8F^e^z3~VlcvaRd#a;SQWQ#~B)DFr>9iP72`sT9rcnKs?k z&Wu=}6oo-^<+vq_yS}`QLc7g=_t7V(NsKKLaP6sx#bBfkr84?7IbordvzS*u$#o`n zab_*;DBBy<8bm&*x7QyBi;aN+uA9}{^YntA zHs}^N806;d*{!jGk;*M;cYBcPVWwRO&e`%-aF z?z2mr!I91cKT_!;8R#FCYeN;uCS2l&GR#=={&SqhuC7?s73xw(nC=W!lw_i=2cz}_ zANn4)YAiM2wJ61i&t=c1*+|oHhg6g9K&FUT6Y48u(kS{`W6d*b_G(;} z7kAxUx@B2L**1#OLZp&Cz+WxoK$*(+YMDqMashUk`XyLDhC{v0)B=l)Wtd@{j_o3 zS=HJYU{+S|=bh?wKJAF>JM!}|cT=%Q(-lTG$rU_~gjV^nz2M1UDicWdi(NN$*AA75 zlhv~56p>^`^p>)C{4%}r(o3Sq&nZ{+Z#iAR0;%i}R0pj{RHLa#)WU|MYIoMP*oZJw zZsCr8?fyg>MQqhPsZ}L(jH5Gb={YJR46mBuH|mR{YVrE5EBvdzAUsO1^T>(p5u0<-#UPR@Fa$2SBB389l*uW1rT`Q_COv<90 zs{dSt*LCOiW_ck}EsdgX+0(78{-UUsSA@%}*QUA&vjQ&n#nRNX2HaD-{hpWm;7DbH z->JD1D!%4x>#Py*24T8Ce!l2dXH`+T5tDX7jb(1u_Q=u#e3bf~#hRyCLhD+YV#U#F zOAtf#?YD4TE6H9BsAS8Ak{R#aMRYo9_8w1J$gO8@$##*Uy7Oq9 z)He9I&9rf?%vL8G`l^>~rASM8ZTOfjs&}1wv_APYM_IYkBWL#|rz^OlmCT1-dEP~V ziNpO+p;A_ETASa)_kYTJ137b`WOgQ5$jUECa<%gK#+`;RgmKN0mv;WnbNzMa?zOWc zi`A_&7v~9JF!zJR3vTng?80|JyDK=^i^qb;l0+`%)UMyqL^7qy2DlP+`kJOW=3f3~ zM(RHua`Adwoylxdwaa8>OI;|qh^w-y>B>~2zIU)XJZHU-*{OUb)RVFJ;SE2?DwFDP z>efYfSnkkQj~ZB?wD{Q%H>#RaWGr;DZEJpMsdfWxH@aC37TMa3@=o4kuu68tzFc`# zX%{=yDbgNnbvLqG1y%l1h~PgOD4XjS$&{#mpj*kaK3MLWYpvA9e!TaK`q zXLF8v%~}-|PI_i`nAdEV@BCN?;mxVd4((!ukC+q@gq?lWM80cNxpCD~2>1muKMWmQ zOM5;Q$nSfn$M#BR%8!S3p(QgcpTQ{Ndv^!D-4SNnLRNKoVrqbU2OGrELhj=-(Gt5n zU-#^3PI!LTY8RZi_II(^+fr^eCTs?ruew%Z`xhRe}@eOmTOHY{9^ za`HachKq}uDRJ4(iX{AGV?8z zS1$xRiPET?xYwc}=pLoq9aZ%gcUL}Pr#@wpokiN2S0|LenyDs!!jjTZR_dMFw+1qn z`^joiJQ+{ES5W(~!eDc#*{=1cf>U35)A2G%VNaIGJKne-bZca|MOP;*K z;U?;&%TE!#8;_L$S2xx$$ek+wXJ05PB6Jg~j=yu2p0ef2&$DW`Mrmj}Nm4os-)zNs zw;eBh$?_@RQR-t?Q*h;nO4aWyFdQ)Sl>2^}v>H-XMU2S})uXJ8Qdt^eBq>LSj8Yoj zW;qvTN_ER6OGVBEb*~%k`nOO?KT}XK8GzcZPAf0t2VDtNI1FI&DWf9C!>#EXJFc|W zUEr?#)aYO@_n#Tn>Y|a(q5hEkBZ!n@s%yRsafx728g=G>KHMvfmZ8Qo2Iq-4IRHa_pgS-y!tu>0Q-Lq0JXXoKA zzo@Rx##xL`*^DxJylfO1Eng)q+{rkM2mR&Ll(AS#a& zD(yJ4E{3YVanG21kD$7~lpp<<6SLE(eJP5hq`G+7J6P(CRWD*o*{$hwGgaaDV5=)z zB4+JYRq07Z#Gw{%^792l;2mEohE0jt=`CU8_PxPj|xXhR(&NPe_x`yqGG^Y&bPJrO5;+# zlwFo=_Q|E1=2-TXR~g0`PDh3+sn_kEo_tJoEq~LYH7>tAmleMJ`m^vDQ$B`jzzF!Is2|?? z@Sz%I`7&Jdvg(PcTrS-pS2ijc!PSDP(#R&0T}G%}EUqcn_@#aM;BguRF8$L!z-Pjk5bWx?FfTdaR-#KM5+Vj`4+{vO4%; za;@?BuGU+qvuY{kp=D*A&}Z2+6BSDA5Seeq^{?3-m=pDGGbBX zc#)-J7OOPHJ)+gkO-sd8IS&rDTN9Gw>zui%Zh)(;n2ttirVF{4)PM zuzpLlD&i_${b$A#^0gX1TUt3E&gK#dHOd* z9!ffR{l^VO-lVu!b48c~z{+}u9?7|bDs7Go<%@>HoWYeXI-835zn@Kc$y z$5r(-r;XS0v>XYeV~R%MD%SD8Z_N(Y_q4e5y+;7igTy!oqOZ znr3+>Q*u`PRDNYwQCq~|ysX##;bdX5&Q`NTHO6{kRzF)?lMOdyX;B!h%CZyeolCM5 z%hm0)n7i;Ov%Fqk7tJegOGh^6Wx|xT&$~8RN@O+IEr#%S9cw+k+P$DCTZ~k%Pf`q2 zRCZ%)VuU{4&5yDraM_{kB-wW+%Q6(1N`Yyyb`s?2?pkG&lm@hjYr`^Em+Rl*A$4Q9 z^390C>*1m5B$!cIYNeYcuS`%(SHEiI28%9Ry`2cyzBmb&39@s}!k_hhTbKgM-nX75 zO7^?CCG0jzt<#9uT~b+Pt{1JomCO0G{IXN0WOKVHyDMM0i?jZWQ~TBwW?Ar1{N}CtbyF$ltvP(DxFN-%w4Ygb43ZpXqZK%#RRb^H8(ma>~s#kM- zPvSRIA}s4)O`O@pQTW48yNhSvBg$pOCf+BNl-~iD3|<*Z%Xe#v!b&z7%8R1u9F+$( zLU9PmOjpG6qjGgn@T}?-p3P-h&WnhZ=}o>8Rq)5E-5@XWYO8nGKeIWoxAvjBtb^;+HSH7$+jBGts zq&C=ES>43b&S>t7<<|vL1^H)P3-yYenJaty=5ClM4cD#eUmW6BfUTkI3<2B2OXQD+ z6|u5+Lw!@_xBa>#v~H8X%~FA5+j4Sb z#6f*gtGmr=pKL&DOG!4MoFcEyb_Ip?%9#m=X!Tu6d()U4qVT5(WXvj}FhJG>YM82u z-E39FF{vdMy2w)PE1OY`T{gNJ`^4_H%QrSv?UC-88BzmrQEjzVPrRokdkWUT$xw<~Xbw5XCBIVi-FqAZxvt0d1W<=~hT`PK@?x9Y|} zlZ{NS93E#ptSqwRm(+do>TcA>sEj$RXXWxrt8*-|(cqT91nc>?W@NC1gAtp%V*5WTgm>xSMv9I`m&NyRyf4yYMncmnL1U)C!2Z;Z&8+gZnfI# zWg=(rwZ&;gJXHG{Y(;=o)+FVE7P|hXHKX`+2uHr9R?aM(%NX@nje{di@yKPSP-Iov zX|hEl9U4o)9+yS}LzU6UFl(1J3KtSG3x)0opLyTZY_Az&@mw&cCz81=pJvQnITVV+4f)ME zuZ7i_I!#=ZYge>06Ak%-v;Hu)^aw9tWUBngxs0;DzBSGSbyqT0?Qf=JoSF-++xpkr zWtBU2_L;CEXEjyD&F+Vk(Pg}I>K%CvTnf4}rS3A%3Zrsx-WlFdPTekE{bg-7;A9nB z+UKaJZizp#D)(Os%N&EsJq~%BT)Dm>~nH;Yf^N5*=R+&WvX%_E&F4U@kQ|Q zVW(3)USJ@aJU1&(F88*F<&P4V@s*ID9r7YWf9I%-&vch1Q2SW5cs0f!d8l5*BMKim ztG!m^8gYXg#@X7wbimPaiBAtfRsC|QQstgdlvtHpE>x=Aa-EX(C%GIkNrlul8ts0n zP&kv7pA{9%A~CPiDhzd(uzRm8$>rvSaHb{7tLo`)WOp}emo;!hqSwcZey&Vb4#Tny zn$&N7w=PY3y!zKZWem?w={iz%h4=FoWVgV$177=R1vihG5|<3OoU~AP_X6toGY<+&Z#t_tYC{oDtcu)6=pe@ zaJW_$vFxSY4aCAycH~NP>#P0kxZ;;*Yi0LcD6^iC6O(cQH^}$9HH!=>9m#r)RXNRE zc;<%6?c6~Y&rWw?ktnTVr?FSH`1$Whb5Jh$@cZR*11-~c_O0de6sJc%>$Xn(C_AZ} z`7-lW=HQ}i`fCm(_tH^}|a@@ut;kkS;Vx4$j{~1vhaV;&0 zHL8l3iR#)uGg<2XysLh?pT(()Wh5?KsYcJPFw~~aX>l>Fill15r_X{hOHU`V$o;si zzM%H;GudJ(7+OQU9y2GTO<}b1orem$@=Lso%e5-`gi;s%T*Aa(cvp>5yNl%nE%yT) zrQYghoF6JwHk3ZP{N>N-TwW&D{sM+qhMg5cJvI3eTkV6J9Vv<4B}4y@ws%`@D@W2s z>rv`bR>aWdL%FJFu4GwqaoU#DqU`FwckHO3$R&wmid6AnTir3w_22I&+h1lPfy7}g zlAyXG%Hqls5@#ThNX!>k)P6kmEl$4)5M6m~@W?2hlcKmA3o;a03p6{=9$CY?ha`5| z7#?Pt7#^l2uLssw$GDk_^^RAQd2m<=`{?*O%rh~#APO?WtmYF4grbW(ZobM2qKrPp zoE)u=Xdh!|3-_J0d$^Z>i}!L2fv}0aYKEv$?)BYEnMHgd_{o+ISk2(z^EHPTrqA>i{miu z`e%)ky@H3QYc?!h=F_iDx?FQE%~-)LY3TOZFz`=ta2_X!!a3P>pHG;YtVPiJlAnV1 zvKdlXT`@e`H8KRJjWH{-c43#JOf|s>fVsg_($hicvtQ!<2tk+e9d5^ca(~^7?X$AH zonLb(2q|N0?8%VW+(-WRWOjDUv~6qSC0xQfhWi~Fw%sf?c)B_PeH}0P=$Ea1kI3ZB z{N&CU3kiRU8S69pf_d+uM{o?c%SKvSXizC4Y4CrXd^r7MaP`O4|G7BvWvsxr{j+x- zNP?pKec@z3k!gI~5)2R2>XV${{JnxOfQ6ehOlwD3d;cjBge@;DfE2+JZrQZO2m-^+ z;{?Gm4B@trfMGQ$L>u0oC}`Xv>6I_y4x(V}xE)8%W#*l;={swSOI+FDsnkNN+N=W7|b}n|33!iZ|av#y7-x8cE32|nv zZrL`4T+B4q#1CXFeGVhi{bbbRV|wRz5F@_%C%PkeyuVRSH<2LPB^@}^5?U_NFaYtCHr`H6(>7_uB|DWa{WuV#kz|r_*_~c?^(6G>xTdn+) z=UW^?`x3csu%~LGotbqg_5+pi%tbL{&NQX^mSw=W_9a6d-JpuPG5y)`9bVFjYZr&Z zqYD%9T)#OJ+5`xQ&1OO-5IY`PdJ@`(3!J`q;A=zvgt2lsq8C_P41D8F%jP}eHBc-% zI=(T*%|2dA!=>(9f%85icl}S%%O2Ule{dK(mGOA5HC3Sg6h}pi$$8rAp~abPkLjJf z5ci!j-HJHEbYqc#-L}H#)D09oJ0udjXs&eM;>2Sjy_BD{X^C3KAoxdliP1n{2vSDp zDb*&B?*O(TFMntBkRk{hV z-EAW{rh6(063;ZzuuN?o2k-3aqVoX-o{SH>{9W2`T0)1Xa)Re-7d{mH(mLLzx_eG{ zgnD}M6vt#ZeDj}cZTSWQEtFc`?GUp+X(+dr#JbGiu)E9G?HryDG_c`Gk{_TCJo)Jc z2VCH>sTqCwWBF}DFF&Gx-u`imfMml4&p|EkuID&8@QX*h-Qs^kQUCkJ%U{FC%b(wb zkDuYa707;iX_#LA^xAN}{^>7q0pxp+R{`z5(PA+*FKC=yAUaFUDDe9oBOh z%(XSDJui|zUW7aA^l4t!p-)p1OpH2Gt?8Sp$$nE!+3y!rSr)+cWdU4e7QnS;0WY}X zEJW(gLZtdEgS(dzfQ~gmlr>QKNk7o)$5lpARrd{^3AWW zU;X?#E&W$-e*NXAzhrgr%d1~rzxdVE1T72r=9sS=4v7Vi1(*xo%H>UuLX#ie&Z)LN zh&s6c7*gB}|HT7A>{^Z6_^XM10TKfj4GV^65q&$nDIN#0WkVzE(cq&OBGF;OVWC`e z^Jp4!$!=u`Mtnyg%`P5Lps-^OeEfGWAx6AwL%eN64EimiE<@eMX@ws4m&ijvq(E!JAq8L@3@L$^B)>W; zYhuD687U?R(io?2c>6s#o)I8+Zfowb4?COFL5o{V27{tby*lF9C@*Ff`2%ai^><(1 z)CSe1(;dEe9PJ*WkK|_g+(u~Q&}=v1#E#E?gN2LC&t4WSG(ww^3-BHZ7pK)E(6TS3 zNAed96&?a|+#&LxtJ^P_dBP{w4vRnJ3?~6%z@U{x0@V$^>{ol3SrOSL5Y60*$z+WD zk4d8_dfQ_42f$+M^eNDIMQ08f0;KTZ^mO>dafoq&!dM5U7zQF4UIH89OtKlo>F$z? zV3^iF!W+|^PbpOly@xA?d3g~=F&s1alu*~!wF>!}!iUPbGEw0gcOw_izzbj#^&hCZ z;SG*?>4{}t)XnDKJP95~bjQyWHB}awE@N_m1D*tk?@>TDiv>JJnB`dyAz{pwii5)l zc_{*mG+4A_m$Otk^l5ZsF$u{wVp>u}fQHG8`E!jeu7&*?m&3-(7XAp?B4Dx_Uh}Cq z?bbN3?tk2bE2Mr;A9dnVigdP z7%hBqM2No34b?;rioobq)?=I7sWs>JWN~d~?BsI0yKw9iWz&I{LA(aZ99F${VRVCX zrImOodxbTT_}`ET?>~FZpK2cIu_xXS8JHSD4i&dIUJGR$*OS#(T$Vxy%TVmA7{DC< zSc@USDfkL{;*n`Q+JY6Ibf!$~A3SvixytLq9_1)`M}j2YvAGvB zY>u)o)#q3QWuoV&a)i9(mBa7P2RX2zp*I>Ma~e7ZoFKkiRtff{z<}jugz_Wb5YO_2 zKx<<>ID88uwF?JcLWo7Kh{1^sTUzvNM`guFHVH{z!VYnqn^>yDloC`_o}$BSlO!rB z(dE;mRT)KAu7CwZ3N*TF^L)_@g37u+| z32?ocbbZ$QD|spw6W~)%YCh2Y@Tn?|wQrIzx{^>x|Huf_|$?YIwm#Si+ zaT4TT)sDqV>#CDLy|IcSs441psYno-jLf3lM5Her({xjfIR4`XBHUtuO|BV#MAXMQ z;+=Mj#Im4MsN%1<1MVjKY<(|EwCTXAQNI`I8|mFJaN*qKx^s5c+Q59(pb2b2bwd6D z#k5v)QoM}wiS*4$x$W==hqNY>oZ|?!n1B~TcU!tCKG+laI2~7PDBe>FcDO+h$l6s7 zqR#QgY>P%AUwF5ujmSyr5aTHN6khlqr|z4YGPX3dsl=7otNDghWlAQ}G9kSl(Vb@8 zFYdSMYb!LC)=thNR`3ok>xKCZ+ra5#$ZDDH4u^C7G0JQLt5bU$jmSR1WQ_Q@Sn;rCa4d)H*~6`eDvWlvVLH@2FZj zqevRygt(X?K@Yj3wslgW=`YW4HL57YuC!ikCV3gw$3=0rCzqui9MWv>4WQJG+00WE z$Lfnwh4%uC?63zkfntzK2eI3;q^}e&bNLg4LU^RUtR*W)f7Tb z8>F}=qLz??yeQF6()H3}pbE6mATxp*u{>?CBJ%PvjA#R(#n{Jiy0!NXxAqJOmpUF2 zs)zBPL~V%J$&ZY3B^W#Rr-g}_M62^16aWK5Dxmd>2})~a8!y? zomznMrDZ2yuGriMxkXZmC7*H=g0tZ~C!=x_>ZphWWb!P4IJ*`mza^9M+vZOoFoDw= zgY{TGVl_;mDEUjmJvj`TF&Bz_a$Ia~x3FGlH;94Sa4pn!?FjChZUpsR=ityZ^eDvy z9ukcZak??eBpo9tbsDC6r_(vC+WZrNAHF+ie~BAd0>wlyJd>Y@1cXSWG^#_rc-c|IOv zI1-8noT@P?`j`Chs$)GNkinlA>X_(5(8rJ32wO3_^R)C~%7;El8$`FGTQkqstD9eY z@Ay*9C0(j%f%j)p^d{I2 zA+a2yBt5vC8s-6>lrbGw}K?J6;5l!b?-=V0{iTbxaXpl;YqJ zmz5@HY;yBd!3cc`^Ot^+iGrJ+hZwdSYLjoNMJhRNAKbio-F(Mcbp(6$GKb;Po~MCx z-)$p{1{KA}!UM4@NPDH!UcK}UUI{5pvMFjoJmN*r@3AaV%aiaGsyJ5|K$p0Zj1;8E zJng|D_KGY`4^uUvzpdxEU#(w%(ig?<^AOAVY4(kdHI?`p^$=^=U(JWQ5~5oSo^pcN zR{uOT|qQ z-YAcx<$O}dc`xFW+CGSAdn#4;>`4HV5JB?e@ zz#BLwOg}XD*mPq3NDb{duPQ&F;bWWl54h0KTjZJ{LvGp}yxYMUwtX!mU-Y-(bovUMg;l|r+m=9o7~zC#zCtGcbIc11cWEOU!C|5c$xU$H}|Vk`|;L( z{M~;n9@mug>EwGeHrcvgPv1UbG=7Qy5sgq&qj%Jn6U_N-Rq7X=L*$u%`Cq)4@FkQW9{*u$gd5~!ns+v4#)?WNX`STJ0UcpTl^%9dy1xH-1DAyP8Y5E?}d3+)lE`4c!>NrUvs%9O(+(Ks4>EP^H&M&^?U zPhy$};W^=B40>)N3~m%==RF3nyUB=L(0%gPOWtb1_fusY58+-p`og232Y#CI_wn5@ zOf2gey^W=8j>3NK!GvL*S-_$Cf4()s(g*`0p z>|+beZuE2j#joW)JhGz-J$4};7Y-w|199<)U~d-)6@y5`C?^r3M|l2p4}ukDj`aZj zI7B@24`5eT24Gs^_hip!c-qOy z5rI;yiimGNmQAF&bC}*q@ku|&{7aV-Q-XplTL$OwyV670paa_F_lGr>3zT&PMWOO& zOTh5MKjwsTx-GrUGi4-E##a;yLIU7Kg%^Wd={aveSAn5OeL-sGEx?g2v6 zR>vxK6mg7F6GxFZ&JGK9dpSdXKUs1V0#_%R8JKfdm_&SCg_=ZdU>lHBC9z2}y;?Av zFIRz1A!$J2+2ek&<}e2qagLA}&wB6XN+{pBw`G_uj0*rWf#fK|yig2XHhk8*fYINP z3ILbAVgURRLsC3`p%8GnG2-&~%BX9QTmS-B0<=~10P5(e0}$hka93x=9@pXvXQyEjfo#HH;Q1~pTM;;R%0nQmyrv?o=kn|an2lvRe%Pl z3(9pTeMp-N#Mhd;mG!K5Nlj5T_fWL8GU75GEIq?Q;I^(jt}TTkyhT21L(5dDPmYvM zQ;?P6fw2slzHs+^jWJvuP0*IcKNWH%G| zS)@%w%}muM>#5WUixnz=T5SXyKUJQlZ>Rg1qQ`Sb4BLW>Iv|=ESzX0HCYFFl!W=$< zyY`Tl;|fJwe)P z?rE;(pV+HMd2lWhetuw!hkg(ET=aB~Gh_vEf57@uyoDy%DfM{29)ms+!e5g;I2>M2 z2F;)B|4bLP-ElR#q9WLL*zLU)3u6x~b@~-(;W=|T`UTJByprKkH+u0g7g|a{Vx@I-J)v9bh8{br&+Ocb^5Bh;!G)uARGub5 zu0s0TdJ)iRdw^@cDD>kJdoVsM@_5t_McBD)Lg@o^g_leMV2qe)%;n+=xg0VGO_fb; zUZ6nvEJ}5V`Q0KykwPDpET4sb!FnJOst1!X>p<*ZF_8V?Vh}1Ik;mK2m`LmsF^tA+ ze%Lt4HyupIlw_rkArzYyH-;SNI}~K03~|7x6zU+S-_|EiVIL9J;1s8oo{8cdh=UCm zW`MId0>h5!CJclnp3q3B4XG=ZQv0r(v=R>|Wyu#KXW)p^E(e~R z%@7$aN2bX|u-`)qZY17TnJ8@BI9HO*P$6CeJ*GCvDTq29+$=Upz>Z#|8xiR9;#?py zN+iw=Cu4PRnv07C>BFU^Whs*0K1NmU^Qq2VSqYWN)rBh~$6A;@R5An&T#E@Tn4u&2 z#Mw_nIh=QwetIHtqAG*mKKAA2WtwSbYRj`hMjhNIiFH7h9)~+lld&U_=SHoz=nPCr zG{EGSl_hC`u6*;3mo%xQ-B76>k`hC2R==XsNFZosp<#l2Smg| z92`ZcpOUoww1}1=E#t$ayqpj3wxrO4#Joj_V3Vk1GO76%sxIY4j@t?cm0U-K4>^{0 z3U+}-E~NoQed}iS6}K+amSx=VGMucNoabGJ#rhoQ{wuPI8wGspl&uk;lPjxnzf;h` zVLaO1JC8fXyE8s&m9u853c)N)&m_CN6ujpY6?wu@)p(`|llaIfH;sYIw~uIOSZI4r zE_XXL(ps5nndFBNp1#aVARjB7jof@t9h2 zv``9;n=0|(kZUtKG*;YK@^+NzLdGL^{gu|R9Qf9ii1EJEX@qS}D#ze;9Kb6%WZF~; zX;H8Mg&rXwzVwI)K+!hB$V(*f;}r$TIO!<}N0pgwFA0K@oF!w$D8n9PQrFyioXSAd zHg=|q#lTDv#IQ{<+9uz?YMAW-85r*ZofiuE7sLpXe<^k1HIiW&Pj5C8jQJi+q{%{n z8d5avXlBCvED+org3m}PgA!&g&NK?Nyl;z^c3h|w0KzpXNh$6|2A0m@ISLKBBrI9J zM0}L_QxrnNhYXZ9qw%s*1c4NzV$Porm0x2=;yBx${2jk*6BS8+NvHft5@@jz)HKo1 z;S!!{Gi#|u9GR3d2QXH+VVdLvz&_>xTmz$rJ|Z=t5uq%?&~s^(IbxLIIkPjz!Qman zla%L_5rq+3#IXG|OqUdwHc1Hikn#^#^Hf2-32lV#R_P- zWP!la!LC+a0)=^mhu*MG5yB;NQD3y0{Tj5aI+xvG@`Y#sRdic=|bt&9w3vlaObrmqgaK7)=n=B)OjOl~UC# z8du5LO%eEwo1^+AbuiR>6fxNCw-REW7B4Fkm;xTS|yeJw}V~gcTc5&xnydv|X zZOrr?w|NgS0|>#=E<>=S9T6z*hXf(do6rSEU!%^1-Vo7J&8Dl8=gO{}^TmH{(B zninuaSdtqjEr)UzbFe_-{6hw3zl}O88*XvD(6`oKhzST^p!HQm0cMVRKjohkv@k{+yBB?k6FtFj2wiw|QP1$*N z&cQTPV%jbs*m&SmPww}qRQNoJ4bk8H2^drYHjJ<|J&R0D>`SkR%-SSOyvlr5GGAdO z!HTsYxp?^CI;=I_e(G5-n#lq*I)?CIF5{3HCzzn|C}kMp4UI*l9U#WVBaX$zJ;`Eh zhfUy#3BY18rI{M_d74FC-7tiKEC8c8>j9jPkP*%v5*b8G)}xJxCyxhP501AaF*x0o z6tQ+=k`hGQuM#rao&*BgIOatiO{bnXUfLUQK?3T%t$sZ!+M@(u~&)cPC(r?GEtvrUzteAp@5z9c-Sim>*b-#m6XRWCwTSy#V918i z6xEUYWPS~tg@HRlw&Xdt`q&%*YtLsbstul>wFfn#ZK)NO4I+VOlsY%inWJ=>#CIzo z%6-Y>ldk09c~1(cQb#h_@@b?eNV<`Sr@bgfq@5_n=6xu|CvByKK8<^jCnWGc1^NQOL_+xd&OAq!U>b_oKACSb}1EjtFd% zju53*Z3*Ir9bw|OZBcRawwSD4<;bj&Tau)mN2uIqCqYM(M1t#7ENkB95PeGSNrJTjo66^g$W}i;(ds`4#c2ozO-^s5XOQqZp1*0C%EXj z7)u6;G6IAg-%jV(J?95us7N<*t|rde{DF_D7d<(xwjeG)IAwLAmOz2$;H*YBt&r~VT!YDuppGl zqylkoQtQnz*;0xccIe0m!9(Gldt9oBeoZ4D_ZGaThI>Tv4R^=<(=|+`IhlQ(EGSTp z<8j{!6>eRB!M)9s?+qTo)|clbksL)=$O4XdF7V)l2f}mXYR*n(O2!Z|2`XqY{01w- zg5zX+PPzNte+NqkZvEXNh=xn&8#TcKoF61qA};cn1xes+Z~c%+`ZO88pNz9q*o<+p zT2RB31{e4s38$X?FsV<1N``Xp0c3NE_&o+UK+c*KZmWMm9EVkN+2A4~--ecQL|}{@ z`>eM@$6Pe09QDA9Qp!Fe7r5dX&|OlxE-2ChMN-Qg6T@LYA}|G>;`2;1QNV%emSeM^ zo4n*4qJn4BdtSl8qf9|oBxmht#c_~D6DQOoAW)`PWnZj@sYGh=d~H)iP?>VYgj(^5 z9~{yfW#j|;toLa)!R2{Z0)qHTfm{l3VK~E6BPE6iKA|^j*AE}b<(IA=icXUyY>4lM zBeHugCgTQ;!{binX;hfXm703#8Ubs}ck+oxJ0rCHq^?DGa3y8P!b2wJD{0$HHkaaznobx0>UWJ0xM)aKMbaWa~EMqItK*n<}cCVI)mNsS?)53&{0^ zF6~%^e|R_^t|@$vD;!Glwf~|8*ysx`P2pA3W`!8zOZVAA@uri4no%dg2lVaf@R3$6 z9SOP4SD+cr9@kK@l)eQZfK~PBLXjrK!am%d*fQjG(J|PARZJM~SS$K!%8+ zBO2L5F*Q_$s0y!^Ckev}y)a} z-rQ)))Ie?~6lTzO-c3{E52T4KC-}%-v>dD?n&) zLg%wOWgw84`4UW7FLr{WTG1|RL`MzZb<+rKJLCO5MH_P&k5<(fI0pjv_?GX`>#%(N zOv}HNke0O~>x}xGeYt1p($+ElgH9O15RsDb+Qn}cQfxdnV7lYLI~dwE0FTZE9uW_& z2ZuaB`yg&kKMyt|yocq3d_X1RyaZT~c^{jsZ1Irdll4Q4E-WE(0<$uSky(j^#fcVI zJ8!-SNrWdWrWl*AQe68;+u9rVL>n9r2dnY%-Fk+nj!>lXGVhXh=zJ@m0~Ru3A~$IG zc^)N&0b)49mXc#55I5p%(%m;^K+@JLj-gacjDEb1&dkvg!TND7| zkC}lbs}}qbZSgMB71ps(7T3$)VMH1a-J^N#Bchj3T%0r_(omp8?(Eu?7=b}-w!U{| z^=0DfV6IiLg6FsqQDFtLn}y8Ap!XlI z%op{*W{g{L5HH{<<~i)~QS7DxlN=WfK`QL>^!U}QSAP)}gQcPvt+vA2Ce4}^c)#6g ztClR&0vX*}l7$a0rR>_dClIfH&M-~IL?ZM@H*o#nQ#(f9&cknh(UYO5&}Dkv;-53Tee*_v35)iprLCGo|^qxtYUE%!x69+Ia&+T-3t1 zyBiV!=+#C5`gaU~1;Hlpe-IzfkaJ%&-|w{Bu{KdhWJrH-PC&zvjwrv)*HHr4vPKG^ zK>X;)B1t2k?7KC_G#Hwr?vCMs##KqwQ-q<*<=%=@jubNre<8ilxwx ztbYonOs23aU2JmIcx7OGp+GrQ`%@Q;^ta&@kIxarQyoQ>2v2)c!UMSMGW7tjwYs|e z1X}=}pduMp+_1)EDzX(l_Md1E0e1#h`@r_;>ezhIC~t-82*xRd@x_0-fS4?fMmItj zak6~!D$?gi>Ye9^V6PCzjOuGHklE`x@`Uc6gKcmwnUL80y3JbxR2R2jv z^JhK8xP7gH6vlhNobFelqtIMhL}V1b`Uh%sn9G2DIh6rhs=%(vsw&$7rok)0rV4OI zIKKMlWOg$r`M4o)zW9eOU}BsHqtabA@av@{l9Ae}I3NSD=E}eB`u_a#{QOD?Zs&{n zoU40)!B58_Dymc31#>n+!71D(NxMEu!VNLL8KyL0L&ieWwHPlV+|t9WT{3VaHe0JR zxtT(YBrK{Y=Cim`+MYerONuH3TXl7C^YefKgyF*jX~82>J&3PL*+sWv?21ESW(xNp zcSP-4@D;inLRb1JMalfUtpKxHQBX;XcweHFEhBbVQ7B=w3h}^Xy={hEPa^kfqfD6= zsbsz%M1&oaQ0x5R5MeUVBxG3;SDIOiDOqTsF{zmYl+>=PJj@I+9;T}a1;kT~LjB6X z12BEZO2~wcrB(^-=XuK?rgeozD@+B3HL8VVZOu+S(m)Af7bUpbLwikHuk)=-SD!A? z6s(IexEkwf?BFl}&6>}G^TlS2P1l<-mKMiuA!!kz-V4a6@`HZS`qc`HGanezijQVX zzn5139xl6o@+LC_!OAj&q6+81vp^rih3SEwBjLEQKk(0k!|Cv!k9eKghviGbOR38g zj2RRGxf%N3cv4G#v7vD?e}1#<(JX~0M7)tCfl@paa+HZk`%47oTTiiLN)Xuhlb=aM ze1+^g7#Ss2cacp(h$Do1f}wz+)=XzMg5pg0!WEd8?^D$L(KWV^m4ibIk8@*jCPNnN znvSX%WJzY#>54-CPv^J2iyHPj4h-aP~mR zpk(z7w9at*oVF-9k9G$oo+(0;yjI>*XM!)YlIIl_kX$w@(;$05kI6|%%Pva(uQ*R@ zrk@dag&tQb)8J_y^@Q*Q4>(6;*RO&Cj3Y;{HXJJa-LoDabztU$`=6aK4S)pRhXKBMNg=*BeOFB7T$Hlj4-ZG7x#Wx&)mMBP5 zJSx;#04;c8rPl3YS(l2I`%DX-vOpncC45OzglNWcD4a?ST%%%%1U!tE*h8dc2E!Jd zVpeFVNs0%Dft3z}Gc;uv?h4xE+whktkxewele<_85sUzeA&>JUnFQO>y!_c}T7sMp zcktT5?+%Vj+=AN3+tRiv{c!MHl)rM8!mcDDnsn@x9)^R{WAPzLN-;%uq|?WqyvRMq zl)jjo=Z~rRzy+1ESMIE#eKlWkI8c;|2KJWvY1?dK@EuB18_dLqk2Q=TlcB&hs|t0Q|C3(B8c7xd&SRYS#)fv7bNLUyD>Y7mJW zWOt>&6kAF%&)l0PW7B%GLDEO~@U&?I+-C0X3_-*;`Eg|J*-?THeRv?u@)DYmYpI*a zsHK%@s2MP(Ly3!T>_G0@lYEv6SSUM0aZ*>#E2<>H5^N`@T)sw5S8H)(Sqb}MftNqs zlT25Z(npyawb;%M2OGm?J@Tdo(?^%goP#bxfpgea%!q`5fZiXsBbqS|!V6ljKgSd&as1?na^m5JTjXU7y;;bG zr5GxtMJY@6oqdN#Cyil@hi$F?Da1;iO#CoW1RI&22Bb+RMD3Qel+YQt zgH=09{q$WpOo)?owG)--a(IKsey1>p;3$FfGGEe86(HGb(M+F%$h~=)!pU+DQnx^% zpKM_cAXk71;3ZL76CFP3UM23n+~A6%*m4*qS}icKIj!&qD<}9Yke541Lbm0|^9U`~q)S&*@$Sed7#7KB#hVxDLBt3|$nVe4QXB{6aSjVvut+j)AmN ziRkEj0Br-#DGSO_35SbKtvHn8s=06D#M-O_OJ^f+iLnYgZJJihV9l3GN=(ak6tpaI zl)<3>#1|5w8P>O<#*iJp{2EoG@01Svyuqp!cVT<)nwudmI7`CP)=xRNG!7QpfXn*@ zF5nf4#2r5sFjS26!cxSALyWYhanlP1M>@5H5V&(9o0J=Fu?g=|{Pt~PupK*A(`bb* zj02SQ^@@!};FZ(K0Dh-jR?6(cpFzRT1nESZK3iAuTp70p^|xCoTo);3_L@!^dl964X3kh?duh4Vvkb zq&HZWzWQVo z!E#bf*Tfd|Wiwz4inCnANlSzUmxq1y53%R+7Z23YJWPBZluWrOuDt8vW%nmX^A7V`g86o;%trs4L={=iSm*kxc-7gyoY7&0A(sOd%F>rzo7xFIe-RwM&n|4I#ekOtp z0Tl+yh~9FQA=3lEjgjCOp1`i#QMS8nfIfI_iodj=!hLZ3qA{2L;te4_dB6+0 zdj1eYDc=bpw+4Zc8gjCx!^wi{$|-?;HQ%;*H|NAWE;N4+QhshjZb+jEh0^(eNsND> zolGf7LJ-41=D%yKJ7@(czDrbURy&nKLZoFvr2j~pfJtwKkz$phrW*d25)PrU)F< zXWtnJnwPU7Rj`_gu?zD{4X_lAy zvu34D{uG*qJp!Y)(-R8^pV^3!o_IeEC#5?Q}LS|;B^gD zfKi(>39_@4tR{ZI1qktVK;Q?&8^Qy%xMxeigF`pJ&v7Y57Bv~ztt1lovV|V-hyiTQ zH{^o0EbsymK@5LDKbKE9Y~9esm~VX65R0Q02Cu6FCx6H>MSslv`AzY}O*U z-Q&_XW}FN7iI4-bu;E|l@nF8O6&>PTlOaON2=oC@f!{0|%^Q9GJ{e=;322;qju7(; zZcqWnvw!%MNhSFnh!CB;?B?k> zK(B{m_-}GR`dCX;Q~Q<2*(ckz#wiP#h&pXx>Onjg4_^D;h+@= zpP{>-Aa>;J7H|U`&o4p)6|TQ6QZm67e4|M5r4a-3$f1TD|telJ|@fX8_P&1O;&?q zI+uWJr)#W8CE-9sS>nW_IehI{~&NushkchfLe{ck+Z>4ZnR zjpqXpnJfsv^a5V5`b8fls0}qNF$s#$G1#?6gaF3?zvQEZ0LB7ZY`6jIj=unw+sp+7KR8ik}I|iIgmv_K-1Vk z<7He33grz-PE2T{wNlex7_rLqiO$L+gHa2Th?4BYd@V?}l;vu0p(6HSj!7%^vU!*e zM^rA?)P6h%#c9QL)LYs$Qwvi%PjGOkAew1dh{1uUIm03y0~9VY2Q|DUQB!sIOO*n4 z9ycHV2b;4o7@&v!<`0uxCX zPX!{Wc@;2E7fQTTyrS$WU3fu`$u{7H+z%0i&v&!3z>-o2hu2sKY7v(bjq&X=ByXD} zrBo$(+z2@@l2xBE#NxPxcPgfcdpv|EMt03~^ZjAU247bQVslgM2XE`hAlx;v9;AR~ z)8~}i;qhL-xRf!{Kr?nE=Fd;tD6* zh@RyXM_U?@InD!k2NLk|$)PQjg|9v72cm0wR@4S8M*j0^{t4GZ;s4>1x|(xjoA8aZ zix15WKbq}<)Y`sB$z6f$a&mhY(-AZx7}mjwbV_6j5uzP9H7`>%~1h%MCZwXe7FANCR9n0AXh{tt{?chRg5aI z=6Edy8qpJu#RmUCX_#8Hll4#Th&v%+ zR_uB1u|0rAxiPup)j#9UaPlQ3o+)4pg*sl?1W?k%6+mnp=Gh9-B%2@q^}k&x^q3VE z3B56vnRJF1-DY!E<8B)D`q)6_udXQ_LT}$ctR4~WAHf4$>OT~bbj)5tpo13S(%4HJ z1L;+YqQGs(LyTopFDHOpi&ffhIW4RN!i_w50TT9Bx%exQ^stye3~yo2Pm)gHDHrZ@ z&G0@NX=~Gy11|{+uBp04r=JIhBV~KmOAE)K*cGD4M3_XMNT{s|CxA~bi^7shhy;l? zzA&javbJG?tkkO_J)>T>qh7b8UU<~O;R-%Li?&7@kXfbzs*tC&&rp`qiup?Jqi$<3qDG7!gN81Cs}LxWb1@_I5jrbZ$pwK@pwp=fFE$MwIwmk(W5WFHB;K3 zZD4VM05?#n7Dlie2W_aGaSKV^Y|PAs}Yb-e69l!rv-0b z_c-<*h;Yud!cn344zv={{D(WkDIU>{U0N9G=vT7^3F7$68gR3;G1-H2GKSFL$UEjP z0&&4hB^=Kei#5f-$DWCYC%4K@>1_58g#g+6+j=-#;e@e^QoWJHSRu=j z94?o5c4LaVG$^TX1kF2{jVHrd?_#~8qo9aJ>R;Jkz1++m(Fi-QW71N>EGb24I(Z9O zAR${$!DwBQ5tY5#)P+zi>hha~81?y^?B0TotlpYT!R9R}Z}FB-GGNOuwO8wxSgYNa znq=9Q9AL?(H)jjQ#2d5aJGMv%DQqg1Ps}K6Ier@&j)KJQ9FwU%SfI4^@z!JkU8&+O zlO&8S$w>kXOH+tU&Ox3SoaH;1m*tzQ#-$}e8U;?)Wcft~-f&2o!uW_Z1rkHXO+Xxv zmT2FG!V9StnzJfGe@*jBd5S1L6ipLP$AXXmoYFvtt^>- ze8)+O-w3X2@wq?|$1WRouIF4i#(umEC>04-ft-zFu}CHgB;~iHp#8BLDFw2_!|g_@ z-|xtox04J-0&yR3J8OXmwVkBA{q81Npyf)J+boG4MaPLe3{kirV3)+j0$nT+u)Q-0 zawy?K?BA9F}w^=Q7bIwv2W#wy z$!?q^>*C0kp>Dj2%g}L98-zPojQj2CO)#c1v*`r9{asSadeK z4sH%~%Ciwu)C|SIRm4S+iUksb?DzW^= z2=!i+LI+bDNJt6=P~JdBN62MOC$m)dak+FSfukmD%re3x_J0H_F*7fHUptY5V3aW@i=(6va$XNzs0_tRT-Po#}x8h$fvf|HDeVPr05le4CDV z*S4Gjrd-?2%gMMFd4)6NhKihu*bhH%F=4{FC&7?=Hm?Q9%pr?HUN_FCa8QkfBtwC8 zjcsUT5{!jii#F`3S;p`~>}AvkiZKwQXn=LTQ!xTjcwx=L4S-1lC!83^$NqU~-N0Rk zca|}ANTOJKqaiLr^K@F&qxo|^oRT9D@9Gjoc()w(a&fxL2{~AQXjT|f+Gubpg!it} z6@Y^l)kT9QFM&jn;zB}zMJeWXdaN`Bp}=nVd&fG!I)lW_)LCT@lc+~-`(+HAadg*% zpo|HdK|ZXPFjK=Xsl2KPLiofYR?CW+KeS3&(ha}2cx`yb)9(3#mllaidPO2mAz@8; z0#-U|S#nBM5(2X>>(+w1!lPUT#rn8LQP?$df{Md}vx^nzPn+;BHWH+BPpZME7cXCx zgq$_$z{s4%1b-?CpxerYf&sWleo`Vnq2MJ&L{Y|7iS#O)D5=fCzFQ(bEdqySXu2on z0y-T|)A5$!XC)bDMJ3MGMaiWtD|@dU-@*4QE^24DC&R``X|0ywiz61oFSys&dv2-8 zk3OYI1v0u2buY%50_AFWd;UOAnc>2=Gyf%O$F3T2I%bS4oOJNiUEF@P5r@Sy4_`E6 z{b#TFQ&tOpHQ@8Z8;jyVCyQEyIK~4)(XkKfba1G6Y>6{NQNR|5i)0y5S{x)Kbe0j9 zTSCBR4xJRy0ieqRGw2SoXkdyc$e7rz22oIUwxddWRFWqW#s?ss`64Q|k8Y&erY__h zs8iH7V*EK%rzB$#-hys(CX++lQYACV<{DzMEfd_PJk%^5XOk4<;V(TkcA9&9o9Wms zq2;zyESoNR@M@os*;?6P3yW-+-~ABztYeHUY@W%VHCCj&ZOQ4f4N^{0*rVk{h3#NY zlx=8plBL~MyUi9+wT!6Q9x4!uq#ytFV_Y!E@Q>a|0MFk4O7PQWM))89_XpfBpUmMr zPhFknJ~^UEfYNhQQnCN1P(-|#W>PQco@z?DK$2*p8T{P@>*NK_gc2>@a(D>%d!-1{ zy$Iyam{OaOAw~J|E=33rciI$1JiPZWYCt~R8DfOE@UV~LInvvE7*_S16>cB}Vv;Yj zSTSW;GN&jV6H@p$imdT=edASP!nE2I7+1SOPp8=AWCD)9!Xcgmt7w`^?=eUh;XN`= z0h?-7M*f?TGc>B$h(4;L2;;`mR6QzRaRqSA&Fuiu6|m*=$$RK<{FR)fa|8~+B3Lo2DD)D8 zf{Q%vZfT++Mrb?>b;D8OV-$oHSv2ipK7(_w2V#w$D6!Cl6g)>G_w628q+i?1&r9ilueEAij+2+r`pvgY}`tmui80hBe zvcUoDWcAp4`^X8k(P3=Eh#tlB*+2>xTp90w*g#0p2*g=UuIaf!Zfma9w>igUSZ<%t zY*&UQ$9sgI>kf%XOrY&@!*zsCgF<^ifKH7F=sveD3RyjDO-}pat%-SWyfroLleZ@3 zJ@eMoG>vaBTNhQkbL>#ner2&!CU^m}6Ng*a?7*{x-_F+LyNdVw^Q}`bEAkzAb}KBN zK)260lk-Y*Yps~2LaANLnA3q@O`BqfXgc~r;hUz|RN&VcBByLi3zvT^Z?~mB3hzeC z&utm8Jh`GPbGxO)2WQ(RaWz388M=Gb<6qmdv1X$$JE%68Hck7WDV4#Is-~P}ggo7l z>xdZMO*;vfZCiJ4H37=z_UZ`rR{Hq1hlh~4iEPp*W!R#o*=ivz9Kl7YJ#A5IIn(Aw z81roGOA+}t-6>|+sxg`3>TKNO>sxqZ;yzgW#D&P!6S$iEv*~?o5V-EIpSK~ERT<8V zdw>1>0fAxVyR}(|G%RBU(+zKV$vr%_c%k}FoS#cuOA9*4aEsXdddX*Z7Pk%C%;*nI zuI6$mx;x9(X|cg~hfGEETc`4kj7a26#k0_2+gz2{c1u&LP12h$pVR9Ky(!ur7NP5h zB^hzhE65ZgHWxIB^0#qAM{FJ!{O6i{DSJM+k64%(79vUsjX#N#Pl>RT>w~z;sfsSU zia3U&COKB>H#{eirDr|PPk&4=FNlOuLg>Cf_1{tOX6y&n9KSyze(#aD2Dv~19V1G* z#;q3?-t1G_Y}JnoxPWunSn?JfVZkZH(3w~E23vEMMd7<$3C!nT)(;)Pq+mWtU{qn? zM(R#6RG=%lgpE8;Iijjz)Z-0rT2~Q7lMGilkA!Ixfvq`6dE8HXw2qjsVK5@=X9v#d zlu#7e;PK%$+FazYIEv9D;mycU;i(204eU!BY4U9VStOy-v|Sa4E~=ocrKDkEfXmA5 z72g&Aj2Q_BnOQ!afKI&-u3PME8Tb8syhgA&JQ>lheonKEG&B{NA#;_jz+$0Tf?}m4 z1Z92Lm+Yg@ppRQ4gHKWvlcnB3&@QS&7R{RpF(Owi;1T~}j&QtiG#tyP*)-q(K)N-lS zQY!>Er8C(SZ_3ijH&G@vhE#btc{jw92dO~?VcjRrs-3WTL|biyE_x@^Xd(dCSKoC9Tc%+|XkjnMO-I<)X${e%7Uv zf)|0^LKbrx?oa9VlwX<2+L2dcnfQ>A5!NfhneIt?h>9^j_B4vRt6b4yxusAv8MG6ktJIalPQ_!>y8qBhv{X7!Z z!5N3lPZvW3m@G~WpIf@4o6HMM6$993M7WP7EY1Tuj=>&fqj;WU<#hsA`QW^6CaY7f(1g%uQJGN4U z@jI;}Q-@T1t%Z}&mFg@ZDc1y=tmGLkwGyf+$ubwRkdWJLk;VvNXVOj)C5j;6y^BB9 zC8C8U2;ta3T@p$JhFxL?bqXkw1QDO}di6+z7)!Ap#~rYv(mf%)>(J3WJe?3;BZ`)YJPGT_VT?8@Rw9bUlv{b!h}(yy&@Fr3B`U2dY~#)1tCcJe z1yOB_=RgZfygF%>i34d*2;h{J6m_i4j3YJoeD))TNCo5>&J- z1PY2-ULXks;vU(lM`Gx4tz@aF!eJve6@kiypDK|Bq9|JZX1&_>{^%^u z#*-{nBj46M?5y`YxkccM>ox7Tu?bpXU#$TXN!91W6)xM2fOK&MSP)#0=Q#P_D8fzh zU4kTvKqiUThCk>RKc?#LDOe?$YbRzRY>q%mYV{_S_!RRlG%meE>UGKN0ChS(^zs z1VfiPTu`~Mc-^@0YXQX94~f{2apNSIwa5n+M)xnizBVkHoP{Z!)c|a7a1{xr z+sVxYvrdpo5_(0M;&h!*_T|=mD&Xy8MZQM~@juAlI)SXiltU{w2Z3Yx(Oiy2a9RzHPS+b4C zL}p`nGzHZeE>G`V&8-}PA?D%a9c9$=f++1e9HkaskdJ(aBBkV99j@AjWniq2?@19W=Ulf#C}0EVPl@Fkt#D$>H`gf~7E4`t{liA0=Ag10wjW}H3;7LUpr4Y@Cqt*uSgQMrY1HoK~X z2)e7qipYv`s$Dhez)}T?=mPI28ZB&7lrbf(7YD^GWgCHm=7s1H*syub!Bx9V858ts63U%#-pTn1YI(#VPtWc$n zCrjAD+bUYn?bRH!XB9;+MbixqBOs%3BC>WH+y6rDd6`3{DAv+|(C%Bvy+_5M-llVM=|jN#z5mWOhDMi9iVMfd!X37k_fb&i-`hRz7R4*`LZVpv7|x&MztT9UB10VA!JWV zJnWbQM!A3Ziq+ zZWMT>m$q43auKatHEhXoaH#35XS<{%)Vrp|>kEuAu;8O+c2?1OmTb+Z$>FZ~e7zVo z&f{cfevTw{UT({R!HR-nQL{mj?3ytuMn2-%vI2;Hmkbg8Zry-5DhuHF?C9f3eWUpJ z_j=y5K|Sxq)nz^N)!(n`nFp7j>zR*sWtGNV$tJt_En8{m6G!;3QqKxb*qGfr-`n?I z8FhD?$jo!%yLNcPio0ldxDHP80|d;#U?>jEmVV4R*%r&#LAnU;b3uIW5wk}N_0(R>FZmCf-WeV%=)1~n3 zK2-`|#WX356;q^Rq`m%@)gT-d6KZVZ+A=k>a|&CrEqS#YxaB^&uAFHud3$~{r5D4o zIpd2`^x9!KHEp9n#K+loROyLrS>kw3j#Qf@;$#>H&@c`m-XyxqhJ3`-P7lAoEi)<#NDV#@=#;b16hZJEjYlxPfGOAl8{V9FHTy(=y72 zE&6J`JmPf|vrgyVnuR!!`koJlOBXa3-wN~^(eo-5zOUo?HVPQ1>ZrZ+nk~K95Jvh8Nz91^R%(MJ` zG97cEI!YgR58t(6`fUi!9sNa9TRFQegek@;tW8$IV?_H#^~&kJAvc0dk&{2z(z7Bh z?8Y&8AuN$-uBaOT$tB=jGj$ELm6N6a?D$)xGmQ*H-Ev-SA?L*wG%w3E1HQe-IEu}P zh=Y>tL~SwscHyETrS{WcKSBcp#z6jJ=Amm`y&GIK&?Z=-zCcmKJBgHW?C5~h26}IS zxy7Ys*E3Z>B8wleGoIxg zA~8*yw@x^-FEBFoXDb=$+(%jN(phj>$>xSb@~Z;;X%xbDqz1k{J1&h}BFa5%V%siv z%r+8zWwFvV=niHpzXQaWx>z0GHQO6<)6_9)OlSv7!LGMl1`z?O zx+{G^cxV|fQ9i>d5AeQez?d!V?2?+()dJ69QRxE=`*}0GkHL1VY`%}MX1aB=EoI%U z#1V_#FN?TM*n(VQ@q*W3=sJar7sIdf$yn$1s9a~*8q)YBZIUhJ zX|>$WW%Wh=9bpBg(EbHo4U}Zq6NSk1JTR)>z`==O0LLm%;y03KIs)MDnwufEM}ua# z7~Q#?B8k&?hA|;Jmz%jJvh)99VulXX2xJDw-h3g z3he``OCcx1qS%WfNGH_ChTWt0R_w{_K^x7W z%Jfl-^7&1HhW_Ai^6>QyO%BKOAQDbH?HpRfb#a?ElJH7=St?w%yU?SNY?j~*pRFpwv`2L-r?eez+t&@&CX8 z*uOA7cP}sgOD5GX5aj(~MDYjX|YeCKSb9CMe%o zLOXF%)jF!DFL;gtF<_2wb%T~Nlv|GoGbKLaiTx7UcBL%UH#osi8@Uf*(ryoPhBS-BP- zi;ggnbaApS2%{=<;8>PLM50`{%rjZbGOsDN64nYX;v@NpZYJeb&^E?cxhdCGr%Yd+ zFisYd3D7tR1CPYtHZvR-ji_b%g&^(O5e$&phd&%X8w_0C;=C4<+2{^+&PPFZho7Ll zxweHB_}u23%J)Lds0DjTl2mH*#rh8CqXRzC_MIpN8i^Lg+QJQQ{s6r`8d~B%_80n&Bt2hKl?hUJ!ESBSr}tstFkZaUdgFP-rd2cnEuI zBhn?ADFnmU8*zo&U9#+b*E48@F>GK*kk^~3ere4=yIuN2dwNotWpD=ktWGN7Sn(^K z{0`HJ0!;RF9`cMZ;mgiS_LYmd&W0ZB+${_twMCbAPh|&k0BHeD4VMC#SmFQ=3`<;n z@GU?;jLz6Sm^JPF@cR+G5X~qHh>Gn7TbW^z>`i-SDS(nElk8}IfAT9|Hj&|^X(o~ag;aR?*NNqoq892}Urn$JXW)q+R z`y`k?G$UV+%wXZ3V-V%uBn?DdPA#|#48?P8`&R53+)dO+0sCf$a!mtYTE#5|6VR@= zLB?h1MI|{$Y}JM6c4P^|g;qjvsg)3B;T2~jGm%GV-=n!GLk4LGqRya;03BIK}~5VI%4lo;$N(oAni zgJ8plz>rmAcxQi;fSL06p{chaqm)**iP?T_+9Z2uyjw3gaPlYJe0x8jq+@${+_62_ zbZiHsUKqUk_;3cgS}4`wWDX;6_+YR;;d_LHKjQP%>8WI$O`O|%l);E@id zn29eK7=4L+i_DQJxJ?*ywMhd!;j_KglnTaFm!Qi`PG@>tu~ULS@TT1v$cR69?3tcK zPXdTvU&&(+sMa3iaXf@mOV>JyG2B2hlnq#Uc5}M8l$s*ue z+}C4xU`Tr*=r{@Lu8zkgS)j~1T&Ue>_Ki#2u5}8S4xy;zPqQhGIL~Lci9oZE@RTQa zk{k3cVWVVPB={;W4@XFYD2yaY+?$~chRgt{81h9o(A?%KHgP6-=`xVo{0zyfj6}DX zI6I^$RukPotI07ZR3tg#w|i(4^0{|vrZI%S>bqcTRH}q z7LP|2%E#jJ0!p!I9xc95L>ao3-xgAOMHXS7+B+W(!8{u$?vz19PF$3mRH?~A@j?&{0(ZQdF@1ZFlr>*v^ z@EM%;982L)D`qSbq(@X`B6D{5jTY;RbGS}O>}{8N0K2%|4j!5K(GOO7aF9&=KCmEi zn4l2-UAIyRre`B*6&Xz&s9wr!qCk~+Ejne*LPV7W>-lmZ5fXdQCCHvJ z&nKv70heIn)kT6#)*cy_0;nx;X?PmK5SGfulbO7y2Z6K!p!n<3?AzU<0?i`1WD-lr zHz!eacS?qq_#lJh{r~rWU&ISlXy-4g{s2eeyXQBvugKbRegEb)N`?Lu;4=2z&gTes ziMysgXcs)bR`cuiO?V(?+~66N*|>MjF;;PocSrB-oP2La>lIxq4#LlxZ%E6(A}b7V zrCY70&B+XTnDs)G-nyjS?qnBc-mh)L(D2g{gK7}e1U@Jd>P z6X$wXalhM*e`Jzo{&%$sd~e3+Q@f?^GY)2iF{xs{8s6^6i15+#Fwtohf5)mr0G##xHThTQdZwcw zF&AFCItNz96R1(0m%rj>Pjx1k zxl()PtyY_^Ay=z?x}Hw=65wWt{+N8fc5QtK^nurW-~&_3_-=BGH}-br_L-)f*K@;$ zTa#&@x=a{5r!OI3@apEBGuG~!eIuZLS* z{DER*ET5#lr1c(Sna3|O?%IL2Xaawne23d5MH9H>NEuI&#QCh5n zaH8fP*z{A7jq%f!2K5iwlKdM=goHn3aTGf99|U{)V)@wMsUe)&Jbf#11IJSq3lA7i zDG+vlx)u$?2j&eC{BIaA{-8qz4#52s-8vpAp0YG}z<5f5zRx|SP-(GGDY4KB{-C8E z7HqpO7UBKN&2(A4#^zC~a;?U3n>Jc*iVGk~mQ7u|HdA5kSFGrTlcL-1-0y_-bUN?0 z85Z-(#Z<>C$x_SSSz}JsO`dx(vo*NWz}22>m;Ppha=QrfiK^5e7mIgoTvBSohkZ15 zr)WE;?Haawd~8?E9k&MFs7xIfn)-YaxGl&RJ~cKJ9(j_baukP9}QO#p1fs0_R`x2<)!R!d5-uDSLHCaRRF5u8??bwyS0@ zmuzL*cHCUuJFC6P$X)CaG>jl*^R6x9;LuoW@vd^M-8hj`YdcTGRF=L5v9H%cZF+E} zV2_B3at$J$LXD~!;@~hSQES|Ug{@CF-d8aIABK*uq)gJ-Ds zkQF5L+=64@I;s|9RH+?LOtDmnFe=nr2!fDjaOtlzBL^8hikgfk0QYRNwNfHQst%yy z*1G>dFA_+vy^DnMQza-W6@>KLeO(hIz;h4hT04sf0(yM11oH_$O|r9~q<+Yety)&9 z)D=DFw`bvyLRE5%GR~O1@6c8)#;U?cnQGGATcbUtS;g2fWY5|X?~)23_JsF@F9q%1 zY^;pxwYlVAuf2wfs9#yDgz8-I*6vxaYD;@?sN5W{UiipLlH}aEaGhXMO55 z#%Rkdv2rW=fm6S}={NyZ_8*@E7zpZh7wf_v{Bk~AFJRwZQ)Q7kIFx)>cRFRSYkG#e zy6t%xl?Llj1l2X5D(qPW+zBcg5V^+fHS~*s`ra%2)y3ye4}*UwS>FD$*Zhgw3aytG ziYB|TGzh-y%hh5%TK)L1A3KCi+(Hy?r^DO(Vebr~BEB?_4ML}3g^E{a{_97#MeLGN zRLSxE*N+_M{Kqwt`t`^EeRB0=9Z|0x+#y!*Ql*_=t&o31uJ$Z+XtYhG``ZZjGKw#8 z4X3|!Y2!|#w~#%Fv}z&b;=R$)&$r}Krbt3K7ks{&e`#j??jHg)Zc|X`N=q2DkKrgV zljf!7d!%KU75d@z72!JB%|BY9Fyeh4-F6K)K zroK%v#8RBA^;Rt`<}`VEpuiJ5lxZx8-@Z6&5J(r#-#oy3a^rbwONnHHs#P+1t1lpb zU9wsY+#GT3rJ{bod@`e3N81e_ah)6-I$k<18M}eKLJ1>>FI8^Zs{VBV zZzwH(qVj!%XPRM6K1MVw1i)SWfa;(i%e^ZEkiLKfMDDVn0iGKLsH2%}Nc9x+PVkL> zyKxm&A#QWqEepMgRO`>S7|6?l5TOf8SSczBLa>YBC~ZGfUeuo7KJIuV(k-aAjC@}^ zTi=sfyBOF9L1kMZd0BgF7c%N)?$MtM(rPta&^?{2 z`NIc1sf-82_5MUv6Qk2HGb8NLmCKT9^N8?Xv1U7-2>9kv5c708si#d%yGRvNS$k`@ zaI^a!O3`3S1ztPttWbBGw*75Wf-9F;g}n=f#JR>@nwc3vn<$}{Dy ztBW_g=9G@I@IY%NTU`mcH0z4UGIy2{hj{88-!-EzeZ*Nr+(R5sc7|^g4z`Q!#KC-W ziMq2O%kl?!ynUniX6%LQPINQ_XqTizQ(y}03g|~aGkd*zI&SoV& zsq+p;ICvLjb01#3LyTwUI>xj_PfdKiN8+A$i&=S7@=nC27P76FZCZ;j_pB^5ywE=7 ziL>*4*axE_;v02INTz2F_9o9BpWpDgPj?8!jqKe)5WCp>vsHcCbVyXsjil@Krlh;M z{b4A#Lyop72eF&ZFT09s6EC!4-~Q(~oj?rP8A6?onon1!zt*;nLEW9`uk^b1`ORi- zudo}&`!ldk#`~ze@#w!;z)s^jX7(aHzu9E9Y;6+%nB4xOJFe%Z!EBQkukgE|(mIH_ z&#ty1e0Xnm#gCINPv?uRNAPlLn=hhv>AL0Il_Y&Hp{X}#lst&wK(d*zoIq{SIQ@2- z*g7@XY6;XW!LMm*3uB|#T%kKi`BDeZ0IjY!%z*b^`B22Z8*HVc>58akcS#7&mkW!|0VPT}1=p|q;Jabz!Wp0M-N zwxe_1MHDx8Y%z3n&08BIx48D(EV?g<3K^bw!P6EScL?_+O(zrn*diB_LM!XGd$3%< zc3nT`+p6~#*{XCMQQ2;6jIO$5-qIpoVymum#5TK@WXOrxH!EN05ai3erS4?G>-KP# zJW{B^E%xgRBHOxoS?bLhEfzLqb#oUe6mb=kR_g|+Qi1F^ioFD{5Q7*dVcdh>g3OMvGH`WZ@E;ayIA~iiyLL0_1yP1 z+PAREWW9%gYTc=Z!Zn|bGgw;sT`I@JA^YOT+3#U2!WSlY?ki+IqY?2_c?V8}h;Q|-K7GpSgZk~TLbq)7_&nL5;bWV6TcfBli z$@TFZd!wCF{vW6+Hi6C~#wC^FoqAR8?Rr8{$>i@=)#h2vy-%NoDoz*SCD|=P&8mz0TZK7bc>n_0+wu*n%E<|SGI`uEM2`JW{ zG_&`&2)5QPLfiWJY}9FsYM1a{UGQoeJ~h0pA`_O<7iP`Dt~DUsY#ZOX@d_`kQ|V<>UxwB6 z@2$_16H_n1XQp1n{vEb%%%PI1+>vi^Zg`@k zo0-=xm6=A}ziV!W>uGKCdlGKHimc29qGzmzu(Zu?dF`>c6gRq8%Awp;vhJ5~-BjjU zaP>^;__uTcE;VJYGzt$%R;s&ZHQCOPZF-@TP`Ms*+? z>qzSvX~3yjE<^%qmJE@Aie-c0uUk6A0;-k|MnwG*!U(BcM&uHzml8(Qp38}%q{^Ay z$f{XZ820@Ys9Rnb6`o?6V;TKQTemwVsGcl6f9+K11#EF!wX|OF{B?EV*{f?JmQY&{ zlKbjvQ1<@pVZHOdMVZgnt39}}R$VQc;XSq-$J0r(Wh6?oVpTPaAS&D4&EG1hu0<$! zb%Tfm)V7DW!zC;+HFgx?tUYHI?)oEr%fIV7M0l%?^o6zVNZ%#9?E`J4LCEEL+gF)N zBCPp~j@WA~a8^d`cwCaPgHsXMmu!UGEo8bM2HdKrVg=@XSt=J!V=?-;V=vf1cWb_g z2hQ(0bjNuu)%+=Y(U4aZ?kG=p-faszheg6D(@$mCj>~3WX}(cYjqld$rKME%PRUD@dQJbx2Cv<- z;dP*4@X~o9v4g>G#UZM=wSX78yFR$!B`@rlaqDTMR8^JFiPLJ25=uq+o>^7e?!?3k zttq2aMpX$N9J~&qj3E{AXm=PyCZVzQD6(_%{isz}E0`a5WRMfs@ z-?<4iw2Yv%dwdgixAqg5@dndwtZ|{$wLhEjy&9nvq)lm`?5K>o=2+53B<(&lTUoX3 zyD?3K9;(^3WO&)KNB4;MEBZ&ozjFtll(``RB3vVB5U8WLE zYTc$1F;Yvrj%tyRx;7Gtc)BK{L+oBTQXzFcD7k4_wL;EhR5aa8#^&eUO3gPDbNyK1 z$(>1g`$$n47L$k7eCOM6nJ}%eU2DBn&=b}C9_<>Zk95hjqNr&JTsK%c&Wg6?IO_&T z$6Pm#IOaV{T6ShAvD#MTR8aQ1wnIYLI$d9N%3fK2%3fcIMnctU(3U}cYfvrrZW1a; zD|Xk>#b!rk)HM!g+^=gIfw`h#1m?PC5%}vWH1O|Lok5IN#IBW@OQ@?#T?kg#OO>^v z8kM!K5(9Vb;x$O9UAG1abxT&|uWN?Ny;mbtA+=2~<*#diyzs6YNtCss0V-=<161z1 z%2V#WDo=&fR$j_qS9$*Uu&x3vdqpK$_PUC+66z|`O4zGHt)SXUEy<{>SoL42+bzPW zdNQg!O$jO2RcYX_tI)u|S9Jz4wUwDmsH;jjQLpQup0}cRdfvKv^z3!j=-KzGMK7hc z5;Flcb$BtwyNGvl3dcw1Y1%0dy3fVecar5nPx~w`2Dm=jE4IOdS4jF2HNMti9(mw}5$yUK5L|?lUT8zaFDf_UtbzX0P6& zLiX+}D(Goe^eS!Nexh<}BaWKZt)j$?yLS^3gW}#|o@V~lys5N3r{ExNkI1BjqWAW? zC(w>HB~+=UB&YT zt-j(NdsW3N?>-gpWYko=W38+Bh`FZXRlq(K?_|_fyqrPT*SzvqRlR54r|wlqP30?Z zUG2x*HPx>Y>gvwzvg#|(3#h8Sz`alPc_}sZ=b7s&Fk!E$K`)}N3TY+JrtSJlG$N|1 z(em$8kw#8URT}oX%FG1RRHqfP&zNlF)HRF-4TBAT&w3SilMQ!8W#nT zTBW~bugX9ype6^#L`e;avaz#)^58I+qWg>;4U`2@wY%?3rz!`Wfz6R5$VJe;BZ-spL?ekv+j9UAA^Q&iB4_W8YsKu@ zah<3q>T^cgo_$Uv=_xN&-##5LmR55n8}&O8SGP9Ix(n|h_RZX$+mJ*lC+#UZvWj}b z-t0s^L6=rZ6^=<+dvLOzW{hyco@AhiWIe%Xq4J(^$gm=xVBB!x_U@nlfQ9<|K0P!D z(hUR;LHoCr7Qs)e>yt=h1NYNNs=Ce*^;chP`;KryQ1v^}X6QB240Ml$ofqhSJW2WQ zIqrI$*z)}(8a-h@+Iz(H*%L{7j<-SD6OFd9z&*!WFYL0}!+WmWGoNbZXLMZBi$D@^ z@JX7Tn_tMq>G^0ediAn5X_|(E-5c0&F}geYI-E?0*NDY?a&q!Rf+U6%zJ3@FSB<4y zPVOJ3&8G~`5%req`&0rYE7U1wIh~9UYw{yr2Dl=f@>DM759=w?&(Xq~YoQr;cOXp; z*$2*iOFoK;laS*NA3uHAYQ#g}{P`I9c)l9m_Iw!V-B~{l7t6chb|LShG&yIZ`TfHJ zVcMVHP=WOh4#$%by~Q%ejm~GiZ;Q#QIi5c}{*cfSZ||oRibzbqt#5AbhqDvP970+r zY`4vHp8(+bzeDBWa@bD1AxNY*Hgtm9}^GiXx>dc2g3Yq)Kz< z*s-!;W{}KLG9xP^Qxa=!pX=P8Cp(`zegZ%M5pYDd+1l<}nU$CU_YV$thvOe$Qo1`d zpxxHE->|LUEO+e>PuP?9;tqe!uGQCqlSeP>;~D7Bn*AE=0dk+TYTM<55*m`6 zt`|4UKkGi*-LsbYc-A)CU7sKn!IZa8dH4KoTmO;7A?+a%7hVUlTM_sg>4C(ySL}}U z<{Pe!?D3L7aa5fWgXE+b-dVHV?l(Jrl`hN+-iWQ-4^dw`}Q$H=V6_#8tlL{Vsv%NBO)|iO~y#I zKc&jy%E(pq%`<{-KYN$1qEP;s>UD(Blk*;GZXa{b(XSaQ30XgvW zs{UWcZ;L|O6}&93JRLF)VcYKN-5#S55S{s9dV z7dJaz3w3%^x+i8;6Jh#QIg{t*ZMdpWBrP zvZvAqpq)yBSkJ8Nwaezkvf1yJs~P{yIXpmp9Q5CW(>q?kc^+Pp()+3zHTY86St6eR-@KFryXxSiI^;(hx6@+)lYe=yzT;|_i zN|dV0vY`RD&i%Jn1puA|B>+0}f~+-XnKNIqQ(ZRI!hsR%U-L?dhJC0|YhL0TO7idJJD=D59V0O`dSmup7 zxj+rK*WkkBcIGoG%xAJY-E3BQ56yXOZ&&qGv96Xa+0O23&zp4N>@5#Z8_%-mshD|< zXGl3`o*T)R-scls=M>5H5+f&xzxsJAZm9$h=+Bw;1=br?qWt3HSdrmYwNG?27VAJY zCKNj?RDmGW6`#WI6ohjZ-nYypNn=Q@(nq?(lMKzv^ywcGn`{c98Pr4=_HhzoD;`&mOb@)GOt+3s&YC&C>}YTLu_= z*z1GJ$B;kgL)un@nw!0-N2^&s-V2>9S1~{3mm(MP$HPOuIy~gdd`OC*pX=(2?uB)Z zdH@KicYcE$EI>O$1C=kp(MiXtrgF1m##6n0sP&@Y>^=R+&o-$#F1Nt>Ocf$KsPZ35 z2!Xo}mqy^E!$5~{P1f(r%y-zhX(X8@dU%grYUQX53?j5rToR#$;vfR+v>0V+5LxF@ zy#ZasI&aokzbwnvR5El(uA~DoH99F0*-_I_rRF(=8PC{f$1YEiL*P7&U016Yx-Rf4 zrU`nI9T749^BQZ5Pw45iyXCxCicf8QR$&aUmIJd@;5$Tq?)G8fVlDI#&X?`H+Acn= zzpR^Yd9UxXIvocQc7r_o3weFT37Ng>AmpXu{<3ZMn^L}fBP;!sWTv%K!b(w|`AU0I z0dq+!6N3=8F);{X3loD7wl54Jo6&KME@O0UF5`5v%y&*VyL>LE55X&4gBcbHMf%GCN_ogxw9uCH%JG zXXett%q?DkP!g7tIKrTu#1V$%B#tm3cR2YKD|C!}&Yn-?v-++qi{7EYGVY$xGWM#~ zjh?KmZ<8lT*az z=u*UI3deD+taw7!u7E;Dr-(vMQ%E|pk7*3vuPE&Ak;@gao4ku!Ov+Wr=x9mEX(VO+ z2zdje3b`GbOENctJN6L@(1~A;K~m7(v7)RC7`4(0IE|zwx>lN^OiQ>OnM>G>;N?c@ z#4pDnDX^UsJ1w(gh-nRkY)V=olh(12%N9!7Iyy2+S#6%87R%G6h|>{O#OG>M#Apl1 z&R*y)LSCnkLQc1sLRMQ)r&i?`*Acmh-{xKvdby$qIbBr=S*@_FVj;7msS=J$} zyJM#E5|o3G95+i@2v(|-a%qi8**XEGG0_!M%G>2Cic)TtB1TU+BF;`yVW4qk6|#EL z3VAzu9jBEBIORk|0A2n?)lKCrWcBnV4*FA<;<-?5fZ2)7XBC?ttK z)+6q0O8Jz;QZB7*DO*=CX_Rxtl=61Dio%uYa;id#SY2sFjGkUaoLwP>QO+->kl8J$ zkku=ykhd$WQ^}-}S=+T_cBsq0C_bp1g{+>wguI=+tY{&3&&Wc4Px2B0I`JKI3x#kC zQI0~AVCe9=U@xhVP01@{(wY`>*+NMJt0SY7)#fP*awb-B0Y#jSs3JaBqasFIKw)U} ziYVlD3Mu4tiz#Ha1$AnbG!!d)mPTUcE(!-FoUW>bnOaq`iiOOfafR%z*d^Ip*&Q?X zZzr$gw9){loTvz(%fG0)showZp1y>8y^1)yLJFgtUrZshTTmgZ zS5zTyS6HW#Nh7mz-Xef5|DyPyau%|B`V#VX^0K0Z+&v=;`8~-?1n9(ftR)n}EkrpA zNpizii%GTvsJ!KTT5)nlS4?TN^o5mjyE%*Em!GYOHBgg?*OgZognWsG%z?~8ZdYo@ znWYiXI93saD??FTG`S0z1I-D!U8ze#QN-v%2?F^`gm4St*iI;jUzBnjl7=rQl!rty zn^vBf&yi6Y(Uh8Wj#6ePUr|`{G8J+98WOQO!V2S&C$5m!7g)&bi0nA9G!AOx79lti z6xBbSw~*IYnvmHMxg`4ZjV;XI7rsOUrv#4CgkpH*D2HKLR!t?iBt_>eV>08kcf=+M zwMN~t>};`g$fFyHaVf&X8W)U<>lbBR6gr7f6vG_ViueNUig;ZGix{nrg;6gMR>QuBMH!9+{xtE0q@XJYdF}hHKK>iXT+(J0E6AI!Nr5uN(;n9XXB#POz z^2B_OjM9jv)TDEiGCTQ-!jhM%h||}Qh}98R7>_)0g}lDNLS{!~$AP7BP#d=h!I7Y- z{^`7hyuQ+e%#O$<(Wh^0VgA1GB_cQ_aEvAt!z)KQ49Rld?CI&W?5*`GYblpEJd*@l zt#E06UCE?j&n=&nx64%&yxc5BjDc1~yq;o3oLwn}5ibx|$n9!L$m*3<$lI0Hsb^)? zr3j$QzbHniiX&w8^d;o&AX{=7e#L0Jw&W-sYQ&QtwfwbmSvg> zvoAyGyhYf0_!<{7y9yApdc_v<_OdP0Szm-QoKE-P--~;yDmn>SJ=ul4uKJi2|2sg8 z+t+0{o%+}fCKRTG-&14>0EthJnYQ_@gQ;^uHf1*L}aIw}xyx}_GfhMAVBt0zDijMX~W@`(E*;a5roML2zAJ0zr5m ztVnU%XoWl<@5L9RDknpJ7dy$@h?XtCNwzG7&vC^0*{=i^(HB5VoH_FFR(`4Z^(K)y z4adiOVUMC?6nnu_wYjd=l9#0drO?&V{CM2^diU5Y1U)tN6sY7~*paN+BmPUig>vA^ z->(Z5!_o=fuFH{5aQ8wEoFK-AaQj__g#`V;jL?1Wm-TAFK9p~}AVLcpSUj$M)~vtQ zTRabxpXa*%h9jg8`&G3q^?cEPa?F)AV7AY?FkM8K(~;v`!zO$UL5biz*Ha z;=z=g$Ac+1PYkBOJRVGmc{~8AdD`6;-Seq^fF4Sbae634wn?GLOw&UVTBgS@HOw6? z;Y_tl2vTI05TwW|2@si4LJ*-%LUx%+*7Y}f!NQtEGIXk4#=?PUfKg=10Her~aSWLu z0}P=Z18$iak4~QIwyhp80jDQ33hmK{S+*aV^_6~$dRyPG>iKSl4IHZ5gnOj}||UT^Jl>oJ&OllamUTO|r3H;fNcU>hHx#5~t3 zY#z@pYr&iA$|jcgms(uEEbq+(-cx>DS6a1g){6bTS{5iqf!W@!>Zf{Lu7lexma(zN zv{(l1$i@5|H9xJtZ6zy@2=Q1tw3S_}(ua#gimMv#<6$TwQS7FR?S}vtK_|+xD?qecbGp&AOdkwCDAGwO@%s?Rz!;pjUj4XBJWt zuHp!00tj1)j`6&1=iB9G*NDQO6}K#RQ!^B|w2=xj zFW5;CAY9PM9iX%V_y ziSu|Sj3ps^Nx?Dlv_=1n;mW4o9?uR2RIU&!%ZL5bon*sSv_MzeX4mMRuEfV8x+&^- zU9ygin~-|*rKnK+ZMEK&ai41L^Lo4dTEE+`Rx$^F`+d`FcbLtf`k|XovZ^FtYm85( z_xZP*j~}SIWIUo5Nj>}tRJ z#5+;4$X<$edapMyJ{+k%=M#Xk=LLo%td?E*=?d~^k8lxiZsqfi*;6Q7pRS> ziq8|p`TKIcmH5ZVS^Hi(9*U#UY?NpUt zv^EA!G~Pw~xvsuU22qzWOoq7>t$0OsebK&`Oa@0WfB-v9EDb<}Bc-S;@E!5oQ55K) zDAcVuMCmY_zN^qAuOB|H>*ju<$~!dOgPMpZ>pVrZei%WxUoGq8N2OsL9(bei$XCwF zcB`qY!`*7$BSQnJ>$*ah=!a$VV%h9>%hilNoUR1uh_THI=S4oQSI@I|Xpbn9H_unN z13F*C9!NK~dh;x63_Pgo`T;Qs2R220Jf$!iTZ!%8>Dn0uS9`D4S@KJu*z6El%J{zCO3rf{t2tF!Hu)3-kj*B?5PoT7ZAlEHi?8`Q z3~x2VmeWIK z@tSxDfWA{<^wrU1_W5x+e-!qcLn)v@y>MA>L+EibhIpAiEC>e!@j3YrWkVC#(hWu7 z8m_F32)MD5T(EBYr1lEj?64c_c&2~Jx_;Pm;epURxb`$Dki$m8pve>$iMej(70!bT z$C=FehE7G4FwzV}2_I)z%B=M@k-bE0opXNOXYFb(;e|(?VT9SSZl%{+b-5LZi5mf= zQi7#SNHAhUY(aJrPF^7T(8rM%%ou|iWSrXou!R(TN>pRk1Jh&uha{6Yr(Sz2%ZC|W{G z07xgA0vNh73VPVjcawUv!mUG&29Ia5iJL(Fl4*(nLbjX{Fw1+2)#fcGN}p+NL^j2N z{ns6*Olcl#iOM_xnZi6)vAP0vle_ATRD4%tas4BpzptBbYo2Uq2`me1QPU*%g65Y5 z`@8wNF{)s=+maTR51|Gu6ImCu6)rX;P|DUE5@3gzZJa;W^Dpe)`629{R{eC8e!py6 zY`>Vq%oS8{IcOw*h7fEIO+g4Q0Zl;&+JY2>AoQmo1d-l_5H1JwSf`kh^PXbJ4xrGC z9YCQGJAgtHb^uch$VwEn%dQ#GRuxv}YBR-n$d}m*O=s8(4QJR3&1TpOjb_*jO(xs+ z=o*_irx?xh7h28o7n;rT7uwD87aGp;7g|oOP?gm;#XF_WI0%LMcMu9K;2;#*z(FXq zf_RkaRw2#Ib|~$`sD;xh715QVur9g~h3?=&6#9b;QRomZguo+cgv-sZY=X~YV-pI* z?lTJnUbeEyEjx(2&PR|SieHF!q^wWlm)>MWlA&*v8IK^5N%?7Ou$VE zlp$nk#0+uDLT89l8bd>zvS1pblttALr98ZbNE7002sJ6-hG3H-ZwNLi1czYaSiDhJ z%g#<)o&lH4of}r(awpnoU^wmiO`G3>>1zkxJKaNx(6;T-{o)(k^;2swX;V?{ny2Ob z!*ZqhkFfx{+~pT#t#@@}GbTMvi_5WO5`e#y)f?2RS$!VP2u37kJ9K!yM=&BX5WTZb zN|u>Gnt{_~5}4EI)f`gQz%acBs-ze+T69*$-`Tgh7)UVe4;IM?*Va2m<#m2W6__r9 z8ecJ<68Ch2vfUQiC=MoVn( zoh^iz!vEx4JX?@G*vpF#X1f_IzZpI{(fyI*nQF_fRG&z=2hxXG39f{2Ipy6jkDJeR z$ofOJ@NY!t7@Ta0QPlqnc*_;dUC$y*%R8;E&~##`Txz;XyGUporUdir-cMjH^^>9<|Bkuod`qE!E7nrM6?eI>5PzYIE7mE3PYEbAE>uG| ziMyzGzA;ImuI81n`d5_GWu#b+d&20Y-7WLBi0kdpA&?osWDk8Xf8$-3emwis)@K!V zHZE?27lenSC=_ei&T(5_!Kz9htLPf{K1_*%=n%E$JD$Clo-nta4E8W`7vZ#U2tZ>Z ziL>e3TGRxeT^n-OOsAuXH~7YdlE-Y^8+)vk}}MKp&UkC55v$$mtndk;dXW%JEXd2`|YW5KD-Z6sY7b-yyL|@Y2H34(Wpg+>2HQ zl@q)@|#45S^d|0*;#I%62tEUGglR>3Kl85U7q2ypGv1FID z4~QfKN{NG7Bf1`YKp-j9fJley8bT-`SW+xC;5|sR5)W@uLdhISMbV#}~ z#6bb2(`X4WJVi^w$f7FoJZ)LS$EG-<|Z z98x$tlmaXmxW@}yKKYUoO*UteLXl5%q>xJHB?hqMeaQi^;sO5vrhI^&0uv6alQ1R2 z;53+Q?3%_AjX2XV(m~? z7xm_1@x7IGNl8z3URN$|H}rV(%u``%OhjeZA7o`n;Atl-g5(pfIgN!?|5xnNWm+ZPMG2fJNva6!Z7 z4wl3<#GTf;FY-IJp0lwQLj*Ryp<4vk2|QF0MUYhHgMob*9m_{#J32`k1E(?8x*?-! z*@MYRHa@H_FVO{B9n5zW+Tol>;r%m8d?@!(5+2fj81bLrKuXey9<(wCYJR6#=O=V* z-ZzWF*pt92^qvIT1m8&@7I{trtJrVicvHP5j>^$tf*#Re=_QKa&q#U2(Z)w9^pl=6 zhb&oysH6Ppvq z!BpkG#(~;3-2gT@NQ8LPT_i+2jIV^KQ=KNnJB0THm$g17-g9_lrgSv}q8f=FgY)*RrwG2x5_A zjbIjg)(CEaYmFcl`qnV&H0K(|p5|S@)a!bS7w8vs9Uo17{(ib%H+YjCjo|M$^;3oB za9+|H<^dP^S{`(<%jLlrcwQcGp#x@tPxHg9ET*|5O=_*2tNXCNhgbZ@mKk^biOMKY zk+(&W^lC2Oh%KC6OXFoM>gJZT*!iQLMP-rW)~J zR@Hd0>)3v@42SE$Xp3|8a3DW{aOd@=UN5Mxa~RhH?!gqs>mCkErE7**S#h+|INd|*K1`RaG(LASbd`Q|2V0&eK&0~8 z8I$Wn-D31n6pmtW#j!04X3qMJZk5Yc9v|yFujhl8W9Fk_6|7kgUPGIWMRk1pwO$;q ztOl{Dk72!x<(PNL%rX?vSw|t`~g=Lt3Yn%09wOKw;NGOxl`lEua z)eHd2h7>6&4Qf%~Cs0;eXW7ZMB#t+s zs>A^&*Ovj2pj!Q{`dUp{+P3D>Sf~T__H0$P?Rw-kn8a*|V?GV} ze!to+H>;XNmoEpz3T!s}y!~Tet=iM|0(VM0it9lPS$W*qV?F=!X?OqE$(W>GItuh| z_yw0NUH;M>%Ft(X*5Gok8~OuU<$#!1&xe-s>Tz>uNNlUv)^pmVIN4Xu=5N>4-Ksv_ z*6V7zNj~2F=bS4t?ozy8mMz@7(c!FpthO5(*tVOI+gGyO`R3d5es>_*VAw+z6>x_u zC&18_S9ra>IvnWr{_gou(clovV|v4b^_Q|q;1H#-{SRR#bpfJarM-X|2Uhid*zYdXA$ga^Iuu~%;=57Uuc4p9MFs)^Ol$0)3PKFFl17lA6Rcs^9;#$qS& zfl%qrs1{9!puIoiLmxtOOm_6b-y>#k?*L0ji#3o)zoEV#YjKbLDgG`D|5vbDGt} zO+FA}(;Ng=Rp*j&cm2wxjs^<;XI@XcJpvxw$s(B`F6Tm77PMIs0jfx4Rx@- zP?*J`{FRr}4&byt&IHf(fhN0e1a68C`*0H-*$0C+PjtZ^-XWYs&wEXDkr1WOK|+{G z?hyqmb&e2hf@_3O(;Op$b_lmnYc3PLA^<6LiU4JjPsFfFT_V7m;1L1RG>7Peg_jYC zyTX0QL%3K3qjae(3RUQCQLIT$mqsjgy(r=Y2aMvu4QZBE>@6uUxFK#SzzBHD4cWnP zubLL;=f2`vgxz6*KVYKkp8|Z|;CO3&SYeg79~SfU;bBWUC=}H{eOX$!LzKd59l}hi z(NVC{${d1CsK+4`s_UO7@~zz9&G4I@aC%$UL}wPXZuf-xg#uxEGg zi#ULGvar^E_m7E{ns*Gf(AHzHlMJ5)Ug`y7;9dH`EeQX>`qWlF|JunEcMSl)UCYex`N`k5X66%%iiC*d;S_D0a#n}jQLvLxOl{~AUu zb*&`o1g}bB!lACJoqT`r5a7+Gl3!gk1bA6j3vA{;Yo4AkVI<#HG=zP-t(L2Q7PuDt z99tamt`o-1g$3vh{G7`^ORLy0W??-W2Ax#dGN4Oq+%WWnYBvmATK7g#mA}&#esLo) ziv6a3SjubnC~Qd=XB5<2gDcd+Jrwu5dUNad4L$64x4-{=VP8{H-+td#-^eq5`Hzb$ zAwIq7HTzc~Q=U*`&xJ+W?mS?pw6pvDdj3)lWg0E zEVgPNs@R@=sOgq84+b4dT?TKuEnTETOLqus8u<=kPJ=bwo@z11?!7-;9qj>6w{R5l zP^RvIAHwE6&_fu%2YM(k=pM#7v>Uj{hw_6E^RSNKq94u^T-3w4f{R+@3*K(O-b+T4 zoM8;Q$QyD%C%D5He4#&#!4^8i7;KS83{Ab**M}xKMrIC0{vp7g;3k>56naZ0dZE)~ zqATB7?jHAdvw8FM;-Ohp>xUO+(oFrq4-2V%qhpjuC)l!CZ`ajIp9H3dt&V5!t1a$V zz#Xh({F>{xSL39qtZF>`SIm8b+f0g??bF}m2c!5FkI^rL z_&&XvARNo(=;XToV~^ALix15X2lL-DX-nstWFjAvoqbF5f= z@yL;;uA2^ zY4b6YZ&g)l|FOp-lUO1hqxY4|xoNXb;pM8I6@7bU)w$;fj~>DemT~v1${Z#r&;ToM zVcN_B03DHeQoPIvb_;F>`?A$aL+~uJT9?@b!v!E25i;U?#&#BLygWLNoNnl?v2k)N zz|X%(TL(d#Y)Rkebs=JH<}5>bY9(#NH|PKIP_O^xp?R^e%a${<>{!66)(DyLcl7hH zI7P^ zGv&XtX6uYqcKjCU2n;vKww*i#nC+8K1d|L@`-O~d0>-DdmDz?Ku%UWEqXr%<#L-!}*JY`0o-me%n@Pe77x!S?362_LelIqcn`H z)~0bvs_h7xu->N8HzK-llcSBI#37G;9@Twx|#uLm~8crMsP+qqDaOh-;&wLY!xS(pjN^Te5K zy*}C$^Lc0!?dM@lGT@u0Sxv5b4#))KIVh7&7h+8@oP#ydY!1>SqbVg%Hk$`C!EheV zWYhK0rWnsdn`k}{YmxzJ9fW3^_VtwBri-Fv%bj)dIzBGUWb5_7rWnr!n`k>1YJ%ya z^C(7}<&!)H0n-4oIUa{GN3_DJi5%$S`5mVSO1y#Dbv0LGIIOPnIWi}AOb)->KQ?rV zDK)k8u-(jGEcL#N7xZh@Jj`h41#YK|9u19ie6F@@tiZ{bc(Gr`@(zzhtYj=lC+aPY z%jV&M){?1k_mOZDFIdQ}3tA4qg)V33YqiVSfBS(P@!w|kAD9OZr^DkKaJ83Gn{k|@ z6RZ$zu&H9bJBOu|vIotTG@Go+u<1k$4+%ZDG9&5WN!;|(`k0mc~V(Fs~L1pnLPS;J2m3K;S# zwZ+f%CXXS*X)S$rya+jRJSXIl2$mU;Y!=zoz~_*Nlo{=82H7>t=a7h$Ro7DPiERh# zdX7s-m%HZ~u6Eni`2QCDt}KQ`7uu`CxTQih-&u%9CoIJAh!oWhLf+y1#1=a;PVEnD z>qFh=v1BSYhx0@IErZI(&&Bq+^d8Q51al4pz?4f*1WcKJZg$?syFu{siz@P;c~eY>3hy?%ascK++}jK{hI)Z67(IK3se z+=iusi#fXKL|fB#+xd(8WwoPRU%mS2?W(2=WsYZf9K^8OfsjkS0Wq4kF|q(vIgwUc z6gOb-ir((;cG#+db`e{d);rp`L^ZS8T2Uhugz)x{!LkH-UbO#FZyN~*Z8j7X>W*fM z1{p}Z7xWks-6*-N5Z~HihM))#$kSYos&DppgE9qKoGum;a&%!N3y@_Jv2}C_IXsg+eScq z!wN*XGhoM^%Sby;8TgfQ`#~AN@#9|wp$f!#p~^+g3RNycR!Lokyg1`>WW*Vl{BAtX zfLt19+#GV_jK?z`XI%2JsuMWFSp5#jGwN^1kr8Jge{Ku`>6pkH&}7I-WMj%=s1f}W zjU>*1JU`A*QS#yp!;aS}Bkee4V8^^T^Yg2hZ?n5ZAkK?3E^1bsaT&5o>N4cT8J8m? z&bZ_maR%hlIOFD!8)rP85kH4Nxa4D1Cm66HKOgTR0=rQEd4V7(19lAFuBucz$R?q9^X^B(G3Au=hk3oD~pY69_?Wis2-uvD%zsab*$2%dWl3p3y2WS>kMkz9(1#cDq${6aO11qwOAJ+4(xha$ zTbgPi2OJn@`2yU`E1W$<*vWHkoRzA#)vnocPHABrldBxwRBb(!3rTkYeXQ13DMTX5skJ}9&Z)J8 zHq@D!?NQHP|1{VeL6rIV^?-j<@{lFQbx^- zuRgqxXE-X7+j2jk&2u}V9}8-CO|yIa{5ngwTx~{!u|oVgg?I&_P+Ogzy&d7BKYpYHlt*u-K^ldPSF0SWi zeu;(|xiuUn8HjDejJ@&IIQg4l5{S}``$ff6otVqz4lBvG%^U2mN@$Y$Oz7@_;nM57A6XciKKN*!cL=@_}OvUIjtI4k@>oY}oIXD_rIG zd{KQpB$zJ7&q(^gi;K#DJfiuK`mRFPWC<>oqXq( zhGoOh(AyEIQ9TN_yV|KZ1VmFvw&+8I8%uTD*uo7l5VCQIAvzM?OJ90h0=aCeWCL@p z5pQ-XU~J>$Fo&}!&jPqRI<>ZGgC<+!|DMfe|IhKvEeDzwzDD?k+K)Q>wBFWug3sAM z`yzodptUf=9E*fJL*@=?(;gI3x<&tAsa(-o78X8>=znVs{V!hlCp=*Kf<_o<0`b`U z0`1fH4d1PVJ+1vj>UW~A(NDlI>h+J2?`fzH&GxCETHRrRES|+pjivH_&blkyPavF^ z5e9sZe|`PqI-c<3%UHsa@M8(cAoiIH8&%#_y?u)0eDk=!zsI44e$i+U=zKJE=kmh+-glNMAwTghbWDLF4AM%NwmycPO~~OqEG7-Qhe(wOIW28Cx81KR%Pt zHylCeeOoNQe*WB%tXF@UAG>y@U&N&|2fFYCgL7aXst@|+cMFcE73oU4<5`Ql;lFQA z*Nf|B?@IJkeW_39a|8c?`mZ^*KH(ZiKJJ#f%20;%q1`R#U!Eh(=zDmTni%fasOoWA zxQd&ApXh!scbB!UKqfy3;C!~O8Q+sDZAmzYs z9-!~Kd~ifFAL||Y{7)_{7X?|l&hFy)LYRU(cI~ivv}+}%l7$Loc8qX)0$?24`$lsu z7R}^>EqLKK8c#*O!LeO0)&OsodPi5tfos8gDA%>;4lF(BVxP~KUwiED8>axcxVP$; z8*Cnxmh$Xr(?i3znC2jqYtU8m&HbtI62`rtHY`GZ(Iyz+C%Pxr^4O@Q?S2&G>upb7 zxH-+ZVmyJvKK*1ssUc)&h~O(%Yu*PJ624omRspdtu6gg9B2eEcF&)RRf%j82JK|8U zGreX$fhZN z2E||F6qoH|itDyn*Q?d?27A1|^eYP>Df1rlbp#M*@6nOVMLwg=>5<|a-Ye;S{@C~9 zf5)!XPzN#AsO0)y`;h+~+M&wHoxEkgYpO0I^_GL0x$WDaMV;$t>6hOe+@U_HT05hE zs1kMLP9l$}gJk10UKaY}FU{Rsnhkc)x|DO=rXESrkA_6O&0e=3P1T%#yZQK`lV0a% zIsH^pWa#d?Duxk{KBG6(Av2xZ{LqKF8>s06sz2H-w{LV;wadBJMls{6t{lf<*6tXb zb%-w&_K%_iR(Xw~{Yoe7`n26A6yP-QBM8`~TOhB~f<8+}vf1xGxW356firg$7R38X zC2CzVF5-R_G|LaQ56^6mj)-mL1{sy?WX>OgdQIQFUM+ptZRv!zRhFjlYAStmYcu`+ z9)8#YxpBG$M1;oSgX4qrY1z_*w4Wc7b>|n~ehqt%h@HKlZSg-Zk?}V(UND`>0MpM9 zO>odaf=#W=aLW@e-PlyKZsVy7)(m_Jj)|E3Dk!=iec(*cL?_qA{lS_tfo*o#JOmoU zMF@0cn1pqj1FaIbl3_fuY@2OBv~~M$#09cW68*s)#()GiaK3=y^KZ`YZH^W-e(XbN5k`Uf1*ewq4>Rfh7-9ZgzFQdxG`MJ4}3H zUDIomi5KE_N$=5Ts<+n_*6LIa-|v{oL=rV%3CqPrbwHW+yGp&fvS> z@drM74;@iAGNr5#q<;IYOQhkZ^OI5?15m2_^KtdtCx`cO>;6>1_&3*40Ebxon~QOD z0yWv$eyev(ZS#oLJXU5CoCcCw&o1|)lP-yFO&m_6n%VJooXmK=$87~R$3C#1?l9kc zS#EANm6;16{rcPy0*C#!`Qip8pLH-X)>m+VRkAO(j~=6N06s4lxTh|mk|2?NCOwOx z7i6iYxxxH^eR?qbZaWcn<-~Aos`YYyagWv`IQU~R$;D4scA?MvPCI>ikgyaDm(WXE zK6M95L|2ai&?iZa}9YpGFz=8tuIvw@%8FXwE`Zdx$ZlVj_M4#PznTVMM7FKzw^ zw!xB~<;utbz-YN@3gPzb(*X2{F8ZOe5R53(p-h(4p-K01U7}>K6z8r?mwBKw?9hyMNqV%2zK%m@ z!+fL*5+mz3(CA0#tyIegOn@L{e$Z>OZzAUjFcxu$a5q5YvN)gS4KLv6-eo^COd{=9 zdkiO>dkMQulora8VHTezER%RFyj@@#Cc_NwFLnPmJ)P+qivYv?$mS!4O7~cJ!zSp# zg5KqbZRhNUvt_MgNHijyw+k~={CpR=M$l@Tm6$j?;1g9{mF;Jd*edKJU{)tpkZrPv zm{o#|DL(DOZ@*)#z8F^&=22OwzV?@X`Et0A>X;WyGIuSZFx2AZqD;d`{-5rAaH))IYm~i89#0AFD zj||L?195bu=;IXdrW8h((Ph(Es`jz^`QHKkj+u+_k6!lRSL@&WG} zn@3l)KlW1f+81^+;K;=f>3Mv$z^K=@Qed|I&~QE-=HT1?Qys-Xy$A|`FDUTu&J359 z-6VALR9%8IN7XB-+a&Z7-_VAuK?=TOJdm+d^3C2JW9ngJngrNAf;-AG0Oa{>Uu#Tu z`u-fdD`E-1{rjuVYE`>_Nz0OO=>4`@@rBuXpOm$%qIpI|`kqe5#j$OD!CN|fMlK5y zYFv&UCO1`4McCV6ew!QxXnCVo8o^JGLOjtvl{A8v90h<;)9g;- z7_&;(hlNOWEe*|KqfqHbC%Xy{Ni1}(#}Uo`TqU=`Y&i4h3&wOND2pszkFui6gBuMUTyZ6B9(NvC{qDWZdN*nSBDwSF~5P z0~OIr7hXRs9{54lb;VL7wl9Q9t+1bTbmF8YyGlnVq56;)?vW20!x&xE@70RCsx){a zP5seRfzznOBOiy(92C>E#9_$zYwSm&eSv9d0xHCvp1^Jkk}Q=^6octnk|c;r5`%C9 zdJ@DZiot|IG6~fujKOsQGYRC95JaNxpu@geI9-_p8LC*rQf7uFb~rif4m+F80=R_z=mdGwY(8G= zkZ0a;%k#&Ctg6pyThZywhnLhRuCcWttN0QA3q2Z?@?-Pbg7a4+!#s8#e-hW^TzMin zFVjwEMrP!W@pv9L`5Nt-&h;=y#U?vFWs;xYr!`IC73S#l^zw4_^^>WVj*0fSkx9cQ zsu(Ej`bbM*1TvkkQhwVq7nh`ras5o{EaL^Ez7?m8U*$ao;v=@wHS206D1!=Vv#YxP zLR<*0V&Q2wV?oZo7rOvc1C+P~6fBDCJ-PgwqL4_6%aqlf-NY&LwnC`0mrkHV;olR| zOXmKnZp#(>oUTg0Z9GP^v+^pok@3ozAhz4R=%PY1w@QcKXZ;T@8&kO8ToNop!Q$R3 znUe80%w^rH3Tb5TM0B=qG78V~P-9VH0@q%`qk!nDI7dvVhn8f6FTS8e;};HJ9K74t@r^Rj-Z=Jp0BoiQNPRL9KKlLqhIm_pwnMuNkp__uJhz9b>SAq0bv5=-B%^nED6_nhr!M&DWO~0Ad6kdt$>wUyvcf5bnLZ z|1$-}M0W6DYB5t=JX5Tt*#P0*SVM7+wpgYfV(@7763cRj=OSpiU>JGcY@T^u!!)^C zyb(EW%z>T}a-7`w&#PC*GpZ6-FTY>e05F1oUqU~8r5BV)(wyODo*K7yutdX`bb&){ z;g<1eQ#rLMRan*zX~o-ZltFzHSsVA9K$Vp>&e;A&+q@jaJbnyFWun!SaZeoduj(Qn z@4?!{JvKV4UdD*q88)hUqgM(#*<{$vKw|>t=CRo(9)k>wVVF>D&Z>2TGaHpYF+Nz3 zWvd=k7^%aZns`2JxWaeDkmGdmpE#kj-eFscU4Ks5&6FX-0QBmqB8LHn#py@~o?G&? z*>Q|ot0Se_{@!i|$rWkvQKW=WxcQd*!GnhN1*sp*#9wtD9T@I@D1XRJnC^kNqiM_Ly|XlJ(D2#p(5%i}h~!2E-og zU&~pMYhE+p3yU0c*m^eeJC$+0V|R+0e!ycr94Uu=)fyU+Wth_Kz4BShJ3fG8LyP;( z7nDm8wO=J^wD&Rz2cnXWU!-*N2{hK)4iPQynJ#ZQXJ z^N3Zm(}!xgCRXg-V1%%b#kr_F0`!30m!Mwo<%=`hIn!$$x|k+e_00+i_m9^u!*V@8 z!?jA-rr>_XEIqyN?S6vZgOE#ty55crRWt_lJy?J2c3{ajvSFi=E@2PM?#JkDWFtwO zjch#(C(YZjMSPvG*X~wlox8sUj_C2l8T0pqbgkY?jBRN1We7L4`KkVXH9w65CgNq}uov)^%M1wQI3knA_A(GX$zj9MGt|ZG0pN@*u3o?vy*X|xxWtCl;~63vcEB!i?RsB$ z*JC<~aUDQs1N0bp#kbFF)HIgvmuFq?UhKCkR8YM~>(lz%7T0t4zH@T_Gj-9h6C{#Q zKW&;V?W{FWZ`*mbsokBICIy?lX|LU{O}mRFw~x(!wNUI94Tt*~&wg08a6J2Kzjl8G zq(>*8S~NXqSB_`&*P8A}F~YcsSJ)8#jqaCRBvjQKga-!+lR7y4ZPGX1ua>Q7 z>g(C^lqOI3JJQ5pt!TRc2rpq7A2B?sEoVqs8;cK}d#j7om1R(k}#U(kmP zK2f(a_(Y?w;L~}%3O}KS+E1*xf9z|=jrrH7(EGF;N)12Y8WnR%QisKiffr+Af3y0E zNmWOmx~LZ|T~%kq)gOJAvPxl)>-xUlA~tt!q|<%*8N&Z$asGfVcb~2=!feTR!b(Es z^*pED;MoGA^uB6rzmF1>D(rIv$$!HHB5TMtoQ9wml)4au?&fxjvpt5CF12D$wNa)| zp^T_zv^qZX)peDl6Z2JDyie}BWJm5gSND~CwO2S>(fcXamnQx{Eq)HVhx8@U-SU%s zljyd~CkYMX5IMa)ciTIz7N7?#uqNcZUeR?G3EtuC`iYd_bOU`c-0q&A((CK_$zDg# zPjWhOenQyAqg2&z)1^mu?PZ{I{?sWws@Z@hp<1SLG}NgsOzCtNAcsBdm#$(1T353{ zQctx(x~JP9%~5WU5^6U{MuXVyDvXQJtr!3ysxUcjBU4W}A0`P8l)O~dJ*DF$wx+qJ z*8Ot*iTY)zU(~O=!uBC-Wm+}ppr=yt;wkPg-qAsgYK72?KfF$<2Q>$15($kLWtvQ{ zRQfx*qAewj#_%U4dL=sLZPAoj%acWK-=_h4q+)Ev(5*lW*FxH@!Cpt#=|i$)2af>aI{{cq&e{jX?AmJ8>R;7-c7-{Cl| zbLg*2vePOC56hm9vw!E=AM>fB{(JrWsjVLB0YJ>H;wl^7mWL7K4uh0f-dM(Xi&dzb z(+~Yj@G;KB`fyVtKEgC$AC|Q42*@)(UYz&EAivckE<9tsoG zO^4ud)0osri*V!a@r6U-aid8mk$W=H%qCXF(BC}APO!qaF?hVtAX`6`atzLn6`XFJxPwOx1=G)qi+fvy%%E~6u z!*aJ&>@C;t&R+fX)ywy|j`^;!_nL9d$MiO8GKTv#@4UFI?&_7VUcSicEvQyq74S;S z1Q-ttC7*LP35r0o-1<|z?8tqI0(xDMJedL#7)t<1gY;CG3V?Oq5r+>5{kdjVy`oV4 zgSnoQ^9oU|s0KV=tj``{BQGgHzuPZY3#J;>ltUJgSf83{-eJ7?*w6B-nSJ3gp6g@E zL%w6o-92u{CEPWaxJY$-h84Nfo3jhQv12Y%=?2ACx-+Dn9z3Bg*4TTLPR8hvF5mD7 z*w?tMSRyvfibr90o1Ly6XrkruX%^`d*p_yXiX6*qUbBSMMx9=CGo3tNYCHa(Ea2~F z6l>$iL<_!CE|z++Zt3>Z+KP}0FkJ=wZHWT|wC^-U8aQOXM->p9@u6>{43g3-=^(X7 zNgKI&H=w7P_sdp!B@gdiXH{bh!{kBrZG*nv_01`ke+->jvPxEG-Kjv2p9*+(eQ7}r z1lNpDYg|gZSiwkeDcUVzTMIoS;fhQ}#Q7bx?YIgOerikVL53IU(w#R zEssxXmxi23mLUBxUx1%HQa0elRp*3WDo=xlLot@d1PXT5-e^s$Khg-tNfR9iPZsPs zF%D(xRBR3&gAQxEF~UT?W$Z?Wrzavf>c0F>bBHa&~P>ThdIAmvPKi(R0%m0XO@NS>m z7xT^D%mT$uNf;9BMWG(QUSu9c%b}~bb1aJE6^5aF(RIe8;t&N2u#6x5GO~Y1t919Z zt2{$!4WC`;Xn8Yl21ATQ8)N=RPZ7TQSGxN4<&XcWCOS>++^t#~=r?#6h3~Mr!Sy&; zB*fYp=HAiVBdWfqE5b4D;<9jTd1#u4RXuY~$~|m1^X|5+IacS?j7`fX{vpBO(%n$I zi&6X~dfO}0kI3M|;dz`grZEHUbD)I`|4UBZs>O8$$l@%mvsBeSb*vuoxJp7F*8kPLdnYF7s~OlPtBT0br`1kNWarD6@COsl>ad8M{_ z7CDb2bI+8iXg<4 z+q0_y#EuTTB)NVPKJWI`wtezQpM|cNvNB=%eGAq(9MwEbcyI!^4L5@}X$RzmQW8yR-St4Q80$#weAf zk>tHx*u9n{_Zl;y**Vj3m3(US^XxrS{KRBFEA;uk`i_^x=D2=mhc)zU5v_7+9CIV@ z&oqkRqrEou`i7pW6qwX-f8blm<=nI_OIT2>$SD1wA0&|Uo4PCss{{GE@eOI?Z>DCC zPS6)4FMVHaj_JLT8=-0X07Z`PND59)#8CaR9cx+V%g~RPu#%sg+tku*5SMP#!XhHPdbeJ4t;ixzTVM`xNSB%2n#9{ zE-KAeFP&CH)yZcVl2O{$^srRr6_hoFa3D!kteq~8#+fXYc7_SoDr?r=DhRifHbDt1 zNs8e%_CupW)ID|GwHBGWQZBEWCeE&rYdmkIx*3w@erROa7m%p$^L6nVXFo8i5OAnz z$?P&Sxd0x0)&0{GFO)uW6MXiFwW0h1`TPqUTEZ;y6bLNX;)cI1HpT&InjAPnb$@Yx zO^afsKo%f3Zm{LZKQhzbXOQ zlSa3<+gjuq5tstEh@g-#W$iDI3lGw%QmQHK;ISNM%0F40BJafMq{%(R?$>DBNSYSge7>(T&B(xL$=)SvDmaae^Gc^|i=6^`*254*J# zbAHf0d;COmT)I1i<;#&Z*Zy$O4wiN97+h`6u__|bf~wtW(VlpD-LO?lSNS-QZ5 z@fK^>^JaaI2f=waK2BQEC29%H>9d_%OpIZb2ftcgIzeS0<=8bK#U_?fLaf7RU>;Ro zqC+>MRgqCfUnbfrBrC=F;G9pQ=ybeamJM`}^sYoEydPzpNt;ApN-`#up&ni}vl87_ zTQtkK1!2KAAB`4zXjhU2wI;(ZC%#E#OlXH8Q*OFnnizl9`j$&}hDD!II9eIP^FtZA z4ulRj*MZvXlBr{UIr$D(c8f`a{0m(CfpxJ5Y|Nu8+DFle=i`3&fFs_9=eqhwwko@bEo0y>9KRc`034!u@)yAK1gD z^jlmC0P~D8Q53^PTM0+D*xjzpuh=ii`!?TVPu9M|DKNUtYK{vx(6hwBM}C`d8XQha z(2@Y>GAdbCciNWY2J?{EeyX6y!ldQGi8#%u`Z4Wjz_hGa%lQ{x@ygCDtJp8-wl{QA z=$|)q+K7hL{6|V*HV&gOIus8~tsD7OK48JR7ZoMF(C2dmk_}B4M;W#AlWXxk8QZ~S zx?zY<8?+Pk*=h-&>Wn|)qMm}SGgl=t( zGCi9FogK*8!adMNo%{W&#g?%7BdYNmYuYwvGfgf~=G=}94(E~%QP3MM`)zWQxJYX_ z42Sm4Xz?KO`H%zy37fLB1!x4^?))D2HgxXO>MP1p!?EJ zr~p0mf0np(^k;&crmo|TdL27;ukqvd3U6u+bbTkNm}H*p2}WLPzpi&VK_5L-9SlA+ z$$?pkBCgdnmZ}$hNO6@D>y{KZN|ZM-JxvVHBaCWcXr5=3IS?kVJ3ER>y=yf(v`%!G z*dM^o4&7D-_&Bm7>6>?Y+27;ZJoKABt?zJa?}8p!xWZinqfQg&%dOH8?n~UGQj{$* zPRMs)GGb6mnbAB_Qs&H*m`-N$v0a3=GaL}QtMH;cAM3;mA>$`Q?o{?*w)P#>@o<(> zxiQ_*6C3L_xU68YPmg)5=B+TpIERsHyH8Hg=L!Uf!^m=9V?3kVU!%eCSnjBc7bfZ2 zU_2)^R-5B&@`C6*&*@4yd7ii&lB6Av0#;l)%g#5xWoKqMblJwHlKN&hws0z;97HV| zCxoWAY}LW*^lYM{IRoX$y1ydCqxI_PlHr9AMNAWv3!EjlH?{oj=HrKyITg!L!|sC) z3*f1n-vGG4GVPCfwbG#%c&_1+xMq-+%&6k~nY7sEn81k7rY43bC^4xan&0HPd4b>?^Xsa<1a06tz>ojyc(3+Ao5y zvQeM4Q<>PWQQgx`Z`d!PUdW;K9oX4zPetWR(Wy9&90ffzj*)lSM{U~ z#@@^vO{9fNx-L7KNQ04NqTbq(Ovf5*z)TyZ)H^+N-yS`s!RJ$xRCBse;k*fD@L}K% zSP$LTNxWstcj8^vbSqtu7dDMP1)nSG3 zW@ZK2mj*fmJnh@vuhrL@pHrj-wzCGe8V5L?nEQ=dh*j67D0zZx%q=p!)aG0Y-<2LK?bda>%imM!F(-5R`yTA$_ub!5k2*PS z7t@#Fa52m+SWmdF1Q*%eHeYJGNpkyx`EawT=XCQC|HcwNE?j$GFP7CU-ScCJh)exg z*Y%?1o9t<_lhgS!J&F-LM~K zK71qK!cBS98>d8`{o2yK@wmGuAVWP@WkeRSGMe-aUj|Kktk%1*ZaRg5ug1kWI>DBn z`Il#oCW=HqBo_#@uD_8)O3u)^2H;gOHqB;Fi=Rqc>NS%tu8y*kV4;Rka@`WbMEzv= z>iQF!=hYjU%%$gtf&%f?lc)D+n6I|=JuZ0)(v60r=6R~VccH%Rvl>l)Kpg1Q<~o;4 zfsJm%MC(zQB_h)r53(i-OZ|z<&o@`LZE$>}s}Rf9@S|;8KB1m(sizbckAqB${>%EI zr6_n^Z&nBg+ir(Lpvs<$r76SO5#|kl4N3Urg?C45N&;kX};1Ds=6fwu(p=p#>T2cd+$r*Tz=PwN&lTA7+lU>I?*%9B?VI&Ou_ z@A*kS>ZuP@M$dAI{6CT-WoPc_(ex4C)Cj=2N^tmLL_7{ww>0;SXO;7dA2`1<#SMBP z7?KH9NJlNy1W+zxkh!W3d2LC&?joAvLh&gGSYfTvtH>(>jmfF<)W25i2fS#X$JO(l z1Hot?m?n!ZP-#)_s19Z8Z`uB>dTM^V&CE>~Fq4`e?Vtk>PaE1lpJyA@$)JAHhj(WM zJb%w+BC&?MV?n&pacYiyxd(7bmEq)A{3HZ zP-G&1PjgF|LR$I{=uTzw^g`f0b-DOJSe|CMOeXr~wswv>d2D%8tG9FWvb1&KcM5XZ z1yx?Rt#|wFTGBc$8q%k@Lqm!=`{i$zFI&!_Emj=?AY}u%73Cf$J#%XcORSpF0z)p_ z|Eq3ugRau)nJhD{QO%X94w~lVE7^0aIx~nOAah)__s zp771%S3SLd?CF3}9*3=cid9yVPWf2s1urY)W_J(0QUiTF`-8;9!r@vfDoqfo_q*~k zb>b7d^?7E7w*M##Xij!!_`y@RnYlXbc-a#xHn|o4=wy9Acjt66GwksRoj%Alb0$d- zG}iZDN@eyL#X|e+GO4kogm*3ZvEkOtpk-=1IfX*gi_68jnyu)~LwDgf=H-@}23Fa` zydry#Wt!vJMm_NpmD++Iov<*ftzFRm&_P)|a*FQ)^7Q;pTpG~RH70}d@Wzl~66*6~ z?(PkyLx%~!(i|aHg-+Lt)Ud}96qQ)1xm`Zth57sEVQ`jW4s<-}7bo>5e7Wv$Tfw1T z5JP#ilb(=qO5hlt{~RuWXZh4bokcggq(e|Z_OYu`lqI`7^AoATo3zQJA1@HyWX-UX&V_H ze^tA8l4|nVvHJS-@$*eCHEpp`cLk+N$|C;VQlDPtKtkMh${_4de_LqE7 zYkQ*xCUC>C!M#1ST|#-NV&#j3hKe0$wsM;tl(f`+_PAevsTXSTp7)n=(JTpFCFoG# zASrH7!Hz6^%b{jwwMXLgE9OvW=S~hEFIe{l#%vH?3`X9(ir-HsCo*$2&bFRDq29-c zMiIMy`pN3O63*$ZeJ#FEW|hNB#hBkxOU4<5Y7a)AkV6J-0yCRXeQR*P(E3lGoz*>H zO&)0SID^Zk#GVaXCdz}&gahV`vUD73u`i-_>`Y>nH5x z8*CrBJymQE*xI`Odb*B}aIDCbnPNZ?)~9FqH%2_4@P71A^XTNp@%D=3&E@E_+qZQg z=iu-@P@~-_PN)8Jg`{3_W(P(oQMZRle4cY~CI)UB5j>6wNg}PHhS?pQ9hc zYkNJJ<;55Tr?YI#p3QOWqef)ljp@E$1S~l)qST7Utwr`h8YQSn$$9JBD_ey!p$RS=a3Bx z%QR>fu}GaxNAt8!r@q6SPkrm$^6m@pZdGAVGLFv&QZt+OUG>iZLD1gMSZo*J8*O|& zukZFwg*iG2$*_NM&E~-zWS5(!JI5`v49Q+a3ZWZEhRBGcm+nY)JmZr(u%+u!EEIdb z&9Mh^PdYur6YH45Mt>qg$SCB0zDIW8sJ?VFXv^~SGVoIIbZmQywKQuut&xBz@X0vQ zhy9ab8^hCdKk#H3M8(e7HBJT0?v@Ww{jyrmXb}1G^%xF(>wJ&tXPQ}dyeuvsB4G`^ zn!LjzUqKG-1c6RE&03nCV81k{->PTL&)(>}NQdE2b|_u)XWSFsd{gIf0|PQq+tt{P zT^CqYCS~_y-8%3Z4uI5-g|N^u4jeg)dB0Dp14jlWY=m>E4Qi=6YDlF}wU}#y3)>Zl zi%LFDe(>X~Ai>~WRj4fR;Qy$%O+dofhAyT@Cb+)2RRu{>Ac)ebQa-dF5NW0NDDpI) zWJ{?33X==yvOg_bJk*X5k(Wz~E6k+xKZm1JDRmUFmD_p`lk18UZ+uK*ECTAZi}M6) z=i#$cr&cRZnVD0}>__?=5If=YH*@0CrQa@}RD$ky?jaAO}sPcH%o>?!{Ji9jyFvA?NI)-Wss}Iwf-3GS2;SqVBRe#su z`Ax$bQt3}M6#Ijn>FtPU9^FiN!CMy50c z@zY^wpB*;^;KUCFm2O~fE00OMY|xYTG)~nB^X1IUfZdp%MDFgs@K&{OWvf1J#)HQ} z#_s5DCooO`Us0E};(-v=i*2JW5$TDX4qm2ETzlv=IIBL43wqh9%li%$1P9Eqj!Ng< z>8}30i22F*aCBcBUF9ugbe}aSp(1vQ} z6?zUX9<#sSe?OiXLs`tJSr`B zTyCP8rL`7ulQf^+a2h31`Nok|TF9-oRdDytDWv-~$U7Py*Qv;Gw5C5BrDc$ z+?v)&x30gTA;H<(dK)$oPCRM!LoRr<>&8@UY7;Oo2FLRag@(%k#}Np&>MhOJ_D49e z2H7cj_pPt>J5&>W#^2F$_cg^qIu3(vTi2iTwNU5H9vfKBt}oxY22iltJid(l6bd>_ zq3a?dv4p{Z$NL=0NE}MGAiS|Hxoh07UU)KZi5(Sm&oK3e$@~Ggay0V#j3=Z(JncmW#7+tfBEl!0fth; zf1^KDxo?}l{Ev>*=BeFb{sr~w4FzqBW=Wp*-`}EF7E3Z61=U_U7m;+#72j^uYP0mw zDdfE}vv=rdSI#Sv7KMp;E=+r90tYV44`n5iyE)wyfu6lo(|-w~U?wp^)t}r=5Mmn1 ztjk1{&n2ImrJ0T(VQW=6U}>wmqZ6gF?p`(B$e7PyahDW3dT*+%`|M4&b)TX7Sf>3k zlF66dGRDFQ;f$4@fn~$oVi~HxC}=2XB?>d9{=hhNATy=v=HI7*X@cg4Y0!AlQe0mI zPIV^z^;BXn6NjWPNDm|-g$I&D6I&JI%vcKNfyZ`8qgjZ40n|{ z(*0t0fM!iVLeOvq#Ks72dN9t_BsO66@=!UrtClGhYD@Y{TwPU)01dl@0m`F_sgbj^ zZAeOPOOUX;O-~u!5+p6|P$cE-wLd9&dxQzOdvq!JdxXhyL@1NxF*TE0fK*vLqC`17 znqCbL;sEEChyy-Q!mT`_q#^>Uq!RqDM@kDmRYDCuQOcG+RZ{+tELi~RvwCZ+sWS8k z6UFG!rApExOco|WnJka9ggWe)i6z}2p7r2TUe$xkCX5vYy|`{R6ME^-Bk~;==nJW_ zgx;In&r>a$nTr9PKB!5cVL(@AoYv)O294*go#~k+8j=tXH#6b3CYl1ZGf0-I*W?_X z)ZLU@e6+2`tNpaduv8O0H2>C)4Y$+?7L=^L;h~uXmW{xVE#@H`ddD8&sMzc_PZ!IK zEcCUhL!~mL#t$+;*)Q@ijSFEcO`~91X?I4$wAJ*X!FyT{vu6A7;yZ6#46iNh6PSBr z!utxdC?gqqc&Qr-N5FYHpidLt-KRHft$_H`#d6Lucw(58i^@(`plh^puH0G=q z&T{cI9%jfqiH&a>I<&*6_E=w8)~m%WoyVeWeOMzI;aWVetEc5$bF}sDef6D>X^ik` zp>#dqT!*t#)Bc>#IKCqOt=e8-VSP{%MR|eER^Kr}KS+9XVue6yA8&mvkZTu=vVoaBbelFj&%>&lS@Q z2Cw@M(t5ry4z0+4r4yXGWgbNT6^G8As=O%oq{N81F}w{Rf+M%X|x z`aEyf6!%7>fX#~Xk@CcSepunYqzeg>aR;IypOP0 zwO0A0Pt|u0kr|QLQKHJ}-5yun=gP!gtZeEo1759oRmw<@h39!NcR91Ed1c6{#<y8Sn(og1N-q-Tsc(*jbgIqS z46KB((NsIjhcUM3W##ls9Csy_oH*;SEI1nGFgbf&hXsFB&6hIfFez5vubXD48@vy6 zug9Pv)UBWr4(!fA&#vC$C4h1GQ@&|TOOvCMSm5Ij_Hl)G8b_VvvDcAqxidGcgjlA_ z#cjitY?w8tpYGIlnqJFk=gnFZ*L5_kba(!s9YY4Snlr+}4rO{dW-eibr`ORje0Iri z5Wvwzx4<{Zk-Tn0z!fK@ITrVvS%M04WbRUeo|#Dy!^h2n!Z6|7taA>NZMajYv^L(a zoGr|;A?0M*e2-ndq0V1+4v6g zTX*&@fs1PrI(qLAUV?!d5{D&GnK949MCeOnH`-9g!l7I>YN~P^6CL2|8fWA=4|?7> z){nXm);6x{(%`ZEp8nX3xn9nnl6s~(gAPs84mkH-#e zCUD8g2Zs8NcG$5)eV#sq9wqq($f zhWs0aa(&uz6x$Nxi0&w{CkP!jPI5R)*y;#wf|7m55~uM@*;oRiA1CFKQPoUF{i73a zlTCNlcSu-=Wn2apS8=3?Kdrye4o5B`HV#(L^ipApoE7GB3=;NM;8WCX*N01ybitoX znGt@8t9CJd~rgQJJ>cg&?Ji24bCz~@_P@&CYeX3Aw0k>Q!LTVavt0AjY zgQoC|U{~&0>14S~jj`1r1?#m3AGf?CDuJqMtG9_VK^ZuU5j`aX1N*xSQltU0WlGUA zbZ^Z+Ma>&{{Vfb;XF{gi_OdekW4>z)#;)L^q-72F6PTwWES{5~8#3D#q>n0mdDjwqeSi+Q;b?#Q3VNLVCHY<9- zx*Zd4>A`Dp(dgt7;qlHm(W@E9#m_jzr*z3#r&sAZQ1>8wH2+sKJkR`uH+=q7!?TnC zK9xR*kU*q4Ib7?INY#DEkvRxM#rhtB>TY~UWNAm#!*X}gyzfn^bquvpU}WwM2Qbu4 zC0G8LgM_&3)5_3eb9A)i=bu7IV0PWwTv=899;3ERULLvIQOo1d{U+K~HL8r3E^+?0|E&AW?oxIxd2a1jn<%kV*H1 zII+lXH%{cQyhM$AMor)nk6FQ`9W{hYJgx|zdfXggM~cq#7$v2g=;$QmLV?HGLZ(rb zh74nB4e50TnSJn(+vJwT9y05!hx_kQJ)(n&8#>f=VF|zNWu}{n;o)`2#lAE)4IDC! zdTYoq=CL6?x)j{qqbmgy#gC~ihYKS)cPY&*9VTLATy{tCM z`pDj7JIuVQAz?x^-K+Ju5iT8nGh?MkZR%Od+#d0$|9RA7&Sx7KGq*MFMz$+C8oey# zSOG2JXyGj7c)=Xf@j|(?n4{%#iN}iO(vFtSB_1!JPd#47UgvwXpgoSU()Jiei`?TF zFL#7xyzr()=TXOK!9D7+LVLvKlvgsQdeme6FOPUsmmc-F9s}}m9r}a4Q6>81V_Nj7 zN6YGyj~6ziA1|#t?V0B_J&v(5_ZUWt-QyT9d4y%W@XicrUfDy2v7(3cqa_a+#tYu( z@XFobP5GHqO&_+KxxMS=1@7IL^Yt0CyQW#`OFPg&=W^|F!|dyy8VmyV!i%Zy+5{vkwVQTNMVl=|!<# zve!BF1?MDpvz(uNbiykka0Q;s=W`@|&3H6C7oS9_R`X$k$9n$d*LwNz7^>J21t23N z8!X-Q)L_JXs-Ev~@BSK>2PSE@w4W-Oii_@euXU=J*h_oORV_exTCVB3SH3?s#T&7{ z5qw*3>YmK%<3+2cXHuw$IYY&TN7K$TYyey`+T;50C$}3 zaDV;kO)m=Z{aYzh@HK~nZr^^ZHfiuciff7wSJf6Pc!SdF3nzV={Tf#$5A(4%QCWt` z$QDc*%_oqVOtKhuQ`L6-vTgSL7J!Y9IL!ZkS}$>qt&XATQ@iSvqhIhqpcpsT_gI1w z&73juaaGzi&MSvuK&4Q~!{v*~^mKlTGoAjSen8BMYE@+&Q-ey;tTBQ$qsDT@C4LWe zJL9X(eI3}8&?9vM-<9sOaEtos_T66tC!>d&BUR;M-R?eaOn26Y;#<0LAzLD};hr|W zt*ypAenDo2liqO0oo&5T%Jp~_Nl=)$9CVAvcW^0eD3D_0SDqq;IXVf_aZm6N#9Qj@ zeO@kbA*i3xMf9j}-Zy25WHM`%|^_%4mzG?e2 zSRv%6wsET(g*X$}@%c^@(v86_?tfFcBjH-x4z~ur!Et0<(uuvGHnn4Ox|$xGI?w*w z636B`HUoMWBBIBb7TFnwIRzmW-uY>TGDSp+X9+xE|K~Gx8uW8ymf;Bx%q-WqmOx!Y ztiOZ(QZsatThc&(_ItaljSoXe`nrr&-YbDjN@s;dqbW=h zgiP@`YPjZEdc)(wz5QO#_pX0fiCt|sO027`6FO&08xChW{R7>OtV_xLAPRYyFE@2| z=6&R@;HxOT*Gn|$e1ok<-x4rh5USA#nWkpuezbMO`RZ1Vr|OGQwvhm;{Kvk=D_+)4 z7^C9GepU8fjqwwgxTYOf+fft_R!@HyWULv)W2H7c>uS7l1pi5)O zxudh+1YbJ`@#|0b-L*yc^|GOUft4jbwSoSs9Vel}eK+;pF{Fwak#KXZgArZ8Y*lSO zZua&g2ACIX{B|(k?_0Fc?o3ZG@iY5_ny@}Boh{hkq5bM7sqb#11KSvJRH8a#X=UX) zsgz2`E!ckfF9vEt^(wHG;GZuB*US~Zd9q+VD%h>6_ z&mUIy#lP1W-8IjBN ziZR3t_kh|}QH|k6m?N@!`7><_T|Gz>3}kTt+q(x|2Mq2bC~xhy1M9T^Z0@AjhMV(>30^zzy=egR3xC8u9d1nUyVVGXJ!tv-5JP-`8zhJ=A#Q zYyvlR`^)%Cjiq%y)n=BzRQq^<2;;93)#>_M!issyU84II-SzId@4fy=6wmjq`_4!8sXF&Q9+Hz)d#|dq z-r2R+zH9A$&Z!p_V_Jxzk!aKykU!8sP!gk|1zP883+a3Y!aFagJBQwO=7_`9EGY z1@5qGmyf@7dKQM;^$m0C!sdK(0!oGJnx`OigFblFk{R-ZgB9DVJ)zwt*c5@^~SM!u{R3xKJAv!IBW=nIh;dK_$4a3T<$=T0~7A^ zio1_jSUQl6q3PhWY7`d?R!E=lbg0a=!n?Nn%LOL<5R!E3&WT8LCs?qe-U{*^+eSqP z7rltN-i-7WaFIX>cSxWdm*vqRml{meD6=T0Gy58LgMN2nbU|8%bAjSf;sy{~NR4li@9GM#TP$p3#E`y^-G5>~TqH-0KvmVfL?M zmD$%DRW8wC=U7+LRURTT4*g#ZY z1=}QububNUv4irlY#!pqJ5$nRZcvKg?0ykA72DmoH(s((&&ExrF-=o#%89xOmt}U% z&d4HAGcdy+J+w@?DWMLNK6zsL&+XG5EJLjtF2&6FPB6{WRlrw#ZGRrTc-@#k98vkt7CS+ zwpi&&Hg9ROra`i#A-43>wl7|w9TLY+FUl`*s8t)k+p=sHXZW8Dm{uq5mDkmVj;7yV zS6GI3k)Lk5dtyUa_$@sl9C(l(3spE;<4x! zYUDJoR*rIgCz(x`xqRSFS#B{O@V3Ozl>#5zJ+OxWDY$i3@WA>I{?IJT8{)6A10M5e z6YFegQiyhn^cG@o)!~5Y$+z2jLo+LUKZ~wTT+Gr-g6#TQV_WJ1;s?;8*(=(&_^d2f z{M6y;CK_p6qDQ!tTjx4{1&ZY!YjLV=8C*JyQRq_Y2oI59kmsIXe%rBW!r*8U4D%J& zo*6d`w7J_fMU2-=%51T77{_MWd6n?+(E}MXhO5e4OBH?WG9VVf-F~m<+g(*}TAZR_ zd$`i-neD;1L1^@#jQ8@z6E?TN#?j598%~>Zk_KkK+16WJ%8WCtsZb0Z{jkm?<}r|~ zR-{Tkr_-J87|;|9WC;VeHs@$s=u&MPiaWMhinxdCU^2iw z<4-V-JL-L{yURqkx1=e;{KlEB{4~kpGdNwFRLxI|Z6-Y!OsL6kfPbQ-h)>LtI~0LxA0AI3un&~444AF0F@T{{(yclMK^-3J!TL4K zAT&LeGNT=YXVy-hBoBf#sHmT8u=#^ow{R@8QvG5{P$8|l#X%ZWWb3AxbPLBaD0NDc z$9%U%Ce>mQO$v%7;9TlO;Te?cmwq!T7l&t1PQMNi7pLJ^W~I6{>`W$uW-)*U_0IT4 ztZvOalZvx|W^4@EqIRaThGQ9OLSFsOr(4#99?{J=w>A-A2FuCo@tG_qK~l%euzqGs zE$UpCZKm9Y(v8||TNG$!jU5K)hn939P&cz?-XqYn(I0FI18ZmMKU)=^z*t$APeMc^oUn112S7C3kItQ+CyMwaXHhll<^luBy)7 z-N-h9IjyRgd@+3yr-hjM^DT-piQ`d6qm?zMl23WWYR9|k+8q`Fc0255u4!=Xp$T3E z5!gp!Z~8^;UUkxpEju7Ff8YJ{U{mhc+j8uG?AZAVi}IU$_3Bph-4)jBamVRJP3QHA z2FD$7^~V%sN_c-=V;W&f`2ZLFVcYK(iwe50SzS!I4v!}iXk@Dwp(SRDPiHmM`oeu4 z8>rUou!Z7swSCy`D%>AJPp8o3YDwH81SXB1uLf9tUa|#@06paCk`V229RnuU$_Ac? z$8~T!d5irK+%lr>_}gzGpxrwzv>=@cvAbF)2NC zj<%yU^_p&ue^KIsK)RDQgQ`nP)wJCRi~Lwm&H+g`{WD$f?XRwAQyE>(7m|-g>?OaZ z^6qAJ76^on^bIXW9O1?rcBf(nHBun1JvLm)E#07h)tc6J%&pYGy&{LvuJf9?N0o4e z_8;#FgjC~1KJG*c0NCIPR=fjo%ZF8AjMz8G8wtZguDRIs^h75T*WvEzdF1gjjX!g6 z*P?1qpIdj(_A5iOnLr?j7@ZVA-fKyQshbKr zaM~R}xNJV8(H6|?Nu;~0Z{x1$RQ}+0pRQo$MW{EyiGN@X zoJzqW*m>FDI85iO{ZxXp{Nr?pOD<`K-^n+mGBk8}iQ`FqeO)$>>Lx*tb$v~n+Rr4w z06nUfj=IALtKg=)YO%nvE7vq36V82j%*0M?FJ{j|T-b^f;fyA{7v&AENx!>Vg>)s` zT|*qGqusl@2}uKj6FoC@X96nKY+E*%z}`&U5Eq2UJBLS${TA~@C3lr`%lR#BPsC)_ z6>gIV7-a}uSXTtsxQFnXRFLcv>@R$I?OwGBjv%_MkI!Qw_0R#dS;}%J3o7g0pOqVW zs*M*k%!5ppXSlR*S9kWy35&L@zR9UA^OG$0WJtlj=7{VF4>Z*a(~sk2)RMQf-0MRs z8aQ^SrcABlb%6nip5w>eC^dPCfU>1$;{F=$D5ci*6T%6sppBC>O zec6;N^h!`B79O07{14ZBzbWZBv2UQ0LU<#2Nm2Ijtxr#<9}~Rj)+q5PA>Q0+Fqc*1 zl&iOmX%xrf`b>Wu$YiV0kb)Q9e@rt})#35$-EQ02{Aht$d)vwW-uMFmN}o(%8S6$R5-nXw?5C zP5w`&v4`}7HOhxn{V0Nf7ThBM59@-_8U>5C;j(aW2JGu&m36?gpw>dKu*LxVCZ z5>&a5J1<)oVfvtU*f{HE7Tha=s2NXmC5q-W=~Nbd^qHeZF}jK0LW593?d} z5g8l^>*_e)6|dCenSfFY$c-iM6pSxpjcX?Q;iz$B=kAlE4P2eGT?w?JpEU9#sK7PF zr95qSwAj7I$=)5^?j76v_ciQ^^&^(r#6e=Wd=MpdsCIJgqsXdx>;BeYN1(1LfbBbsDkFa?H{FvQ13I#EVu zn||U=-a{~55}Y+{#4OB{Heyy$q;X}ueR#Jnctpus3ZV|iNEn={K!{#;t}wMw0w>iA zdGQpq1V7TD#SEuZo5c;MrWmPF!b=x9O5hhg^L29N>h9Yv;fP}p2Emmo*bR< zzTB|xTu`rr*HD}S6W$mFa0Su+ighk)=_5t~qhY$}F%nE$~DuRo>`iIE7vtK;s9o+Yf>*h3S8 zSs&D!uth&%jo_}*AQNjibbPaYzFCKyZW#dB^vh-!evW*AK$i_~4#(AD_?(3>8eAyB zZsdJQ?BaREsA31Fvpyw=ED($!%*Gy^Lj0E4l@(WKFE`!I7Lojq&9`@&dcIw=kBrBA zRG|yxWB!-}VPlNv?E0dB>K_9HcMAc~y^9(kbu?WeO}hk-CPz?wcDi4vNQL9G9^6ga zR4~ojU`S7ER8kFENcYc;7Pi@~)m|NPw3u2jOiO>(pJ#NEh0enou6H+yU&=eJVgN9Q!NW9$d3+C842F8sRU864 z?i|C42?46W7*=v3Hjy9Ne&J$I^|sI~H<04sJij642xpB$uZWSDQKr!Sr>Z56f=?ug zsg-a;cAViNaZ?nZ&pBEIx7?l2bk}qHPkKnxC85hmLgbSgw`2!i93+X2VHct!S7$nQ z8uUk8dL)Enc<=xt<#iP}ChMig0Z8Jhi=M1PB#5L2n-WacBNjy{5;|EcxnMZ!sDX`% z^$A39cmMEsf)O+9(7*(zpHT;Na**butBAu-V!2DZ*qDUamOGr?#oZ5RRj6%wQ?|MB z0(yQUC=V{_PGk=+4WIfFx2j2d-$FHcM@K}vV|YzjtY4Jdbx9Xi zX9F5KTEBa-Sp1&r8mG9g7j<)e@}4e*VXt=Fp&hNX&CO(q%K}`>vN>t${btqFmlZBt z$2#1?crAvG17nDL`)X}D+R$@hwV|XNT<&#(efcE)FpJ!rRoEERbj(K!_D4t=2aKZy zVTJH|4Y08OQ?D_Bda}Zc=yr<=Qnc&*DGie{{gSKTVBjGScbFJGHYylc-6Ls*@$eY- z@T)d`X*B?zb0QW!&XK%4&ZQ^_EA(Psbd`*nW3~OPeiv4E3W#4%R#AdkLuf%A!#FiY zFzJfCD|Rqx6K0H&79B=(?G9$arRZ<=+w&Knhv~!T@g6)o_Zv*vDu!!t@y&}c4MrB> zD4*6I*8#hgF=^6gYMLflU!Kr@kdm4a6N5fZuj&TRA)TIuaj{i*&lPv2h|6MwYs{!$ zbU#eu5|ci-6t49gtE)m^isj;@Z8+rSOM0Byb2R?f72Is|X!Kyoksd z+oEmhAmaY|HD14x{uP_qB?tpxXo@x>cICy|IXt@w@M;glthO8!4a~=~qFv9!dp5M` zTC@`xMEYAOp4b za;o3Nr{$vizC6XyV^C18e>5?aEk=~HP#AZi{ldlZC)Dh|>i_xb?Z=D9_ypI|Kg9Ko zx3AdEmlt%|=fln3I6Kkv`@`8AzzDzxWxH&uEuKU)SvUfeN}dt!+5YCz+)a(pk18c& z!TDF<&JFoG$!O3Et6hn1v)O~ zJ;Z?qJ}&U;!4h*fxjfr;7lJt;TW z=F^X!^#vT;^+qlfel$F>+672jy$h5a6|Z0=*1W(`uMTCvEEU-S=BmvO4psV%GP2h=s!%|EUaa?#%}h5BmE;#aMv6!DAnCrKLM3@Y z50zT~JrJrZeu6|s>HdyO3Np~?_N+E9Fxy&$D;!;YB^H9#^)*(3q$Qy(P58ZPig#qY z$KNvVv9O7-uO`|!eU!5;E2d&g1-I`FvI&Y+P@PK~R^yHqsg5kqGt0QK%Y0@{bI*#) z+Qv`ZoAph}ekQBNrwRp;&!c9pd;yxN=4H67PAY)2)wux7R^b9LzP7u3&Q|Qwt64>h zuiq(7YQ?IEDK)AhrBtPgWUIq|+fbkK9lKRD42Q?-`udvgRKW=gnsKU@CBMLddy%O> z;DX{9IgswHi{+a&ZWoPG1^uH)C9qq+TT8(HqDTyEx}jCJ2an4QJ<3qS%$w5VrTC#j zp#`sq?yo^FmL=r?-U&Z>0ZR$+Xqn}HT zvId>w!UI_0yajHny9oBP!{bd|Z_lgE8{ZoT<**)j{kFmmylmt~&gXTz!@#FcNy8yJ z*WvR4N%6ZF0LAML=<1piTwAeSW3e9lu5s_+g08VxbbTk?_h>rG_Y^m*5w%im%kqs@ zMvrlcZpD6Urzw`pa=Y`Pd9lY85Sk+O;>xC}n=3mF73&l>&{Co37u0vqNqJqgPs%H7 zsHkq977dOFYN@LBd`s^*=@4*x(QC%vEeq&q`m$h$Pixe(r>d?ub)%Qo)0D`!ZX}}8 zYTe@$yBAb|2j#lbTMrgu6b=)?$Ye+}4hV45-3>CZR-tuQ3l=K^!J#WCPB(3}D(~X4 zL_BwlLfD!q&rN1-fqC@-B#HkRi_@y`5x)!toiUl)Kc=>aUA9%psCzz@5HQASS)Y9+(nueZ0vWgxtON|botS!f2K z{Iv-K)Idfu4MZ2nb=(-%at>tnat?GB+YUq)#k%nK&`qJVtEZ4!G*sv;N}g5Q(nG_6 z%&y)*XVGmSBE{%mrm7XLL^SM1mYufc6xoFr#H+Mczf%=7D93ZIhwWrSyY*yBi~VFW zOJOgB^*Ftu8009p71^U43Z=au3aO+67xP8~t)WP2d|A`1N@_2TN^2?1gSyM`mNv1cv8vZo*){9Q ze3UYpmS$(Vwh({@+diw-+yyOV>uIcI>#6Kz>&Yx->uG$-24X|mSm)0pvq*Gy-6cYc z_7asve{>|P4Ob2`>4p+WL{{5NboLTRgq9LWRF)Fl!;9V?)*Z;~stt4&%?2WiVi&^g ziP~VzXRF4t|>^|hql zfyi!y9?Ma@p3YXjp2(|!pf=RZJv`LAeC<&=GNHWyGNq*mGMP^yXqm`Rh~5cb;QlUC zNqeGG)6CiF6}N*$n|rv3?2VJE7sbd8N=r~yzme#y*6bCt*AAAVaGTk_b8Aac`$7l~ zLpj9P9zLX!T1ul5+6%<$+*u{$Jx(IJM3JVDJ&K}|+BH;ZEyY#|edXMf z%J*A3-m4$9$t2G=<#SWY;dFbHk-%`!&<2MGTWZ{gXQgR(_10XiqIm4y9yb{#x*y>L zq;cX{z?qS#6J{$Ca0hEM29WNSUT zoe5nxiqOU}EV!hW*oSc0HF!R>Tl*wpZ)q_tVJ$27C|u)@Y8kIi3RANyUma7ITq^Tm zuQHIUcZ43bSJ9R8PHUr=cr8G!1$xIf^Ed&i)9fSoa*g+keFzautnK!pWwsPeCp&X% zts_4DX)QK;#=|&_=>3Kb+O0qcQ8qVWCBmzl`jtuHR@-_D7d1^*a&`7?2^y^&b%TJ; zHk7-Db$cBJGCws{VwVBCU{^=yMiTQ01DFn{OKjA2vl9*@Z#&&E0JhWhe&m!qOrmlv zwRr(^%(ze2w)}_J0$}|k`{o9cKx5V;^CF>GI&(=AbPlxynOUH`LTDUMU%)D)yh|%V z=g>-!*|ZWg7F$W)CkK-wCOfbS+wicLR_l# zOD5LZ>=qVWVEy`o6|A4J*>IO?{iL}y zqy(5H)Am3{8Zl??RH>imw(2y@CA$CzN{9IeLYw&qDvSB~ys}F(G5c&S=;5&-;}x&% zzIXDB#vedDNOtC_6`_i4_OqY8b``%Tbk<8Z(QU7mem2}#L>efHiEx*4GOa^DnbfAD zOlR?(est}11x?d#pmdV!ge zJuUe>Ew=3e`vjBm*fFpzA0j>A_B8g{%kHzzL)d40l0+WE7nI*yop*zp_{`T%=xZZkIrTc-xZ_Pnc*82 zR?KiC)q9%|?&;O@hCg@-^u zvq8*`Phc#n7Kd=kQ_bg}(t!%2W0BZ?^k)*xbQ4?4Y((;;ij9s*WJ5bEm3AplH5o&) zfw0SX)l|?sEy`Z4kpHG#t_8MW-76=%09Dy{n{j&Uk;!5-Mzm?BYrRzgsJ9Zw(`_Ix zaaQJfQ?5Kn@v@yc!F2A&HlZ1;MI>zTl4LbklfzUvf4{1*e9mcs^fw}@+G%K&Uyg|IY+$wg2Fx+~9HEIsNhTeAF<#1DtjBW4XSx>G zV~X)^ti`7nPoF$w{i~6*;R|gb4_}Yt_p@^?-nZLR98oNnRWYtA!Jw5Rz8p(=`QpjX z?91ks%Nl=6u?!y@2aMc@!Up0qTA8KAw^7k$GHtI?G^q5L_Gn)YGTiX3EJN#YGO=K@ zDc#dJ(R4Wh`9k-xtOWbs3I2q=K4-BSCvf7h3K+q3`OanqJk?dhk0zZ}IaO+9FR@2q z$Fr>75Z!QrwHC-JT97`Ut39xfN98b(-NCz*YVxuy?k@WA#E9qcxc^4Hc&vgd1Y)!y z)_zq|;ZufH)dhw?-EmRDKV3T>h-fI*Z?0GryIsS2AJdP;a;f@_XiV8KZ@>{BU(`HF zl+E*o4;NJSmL1%|hVv2s5_3x!!0Ba*FR>7IjSQ+HV(PS|F~|M$b6g>TXS-G-f~v(= z&u*4<##Lp-i%eKI#kZr+s}_CM(P!K;;@wiEa$mgQwBycj1OAXvtcZ-or*;iX^Rme0a>c0LlLtDLVO{ zFNuw)Hv1LYIu#k?U^=F+eh6!ITd>s6%T2p)N-->=*+F_!am0+>A#5t+{>|7e_))g$ z=QuWhgKqhEO4Qw>%?J+VeY9yGemVO1+jTXj6h4byg{t<%I($ZaL`8^vIP2hM`{6uj zV4oG+gNLj+4!)b>4V4yCIAfoiC~NSPDc!Wurk2>K=n@?&Ol~~i@9yu$p*IEZb}rqk zSL32sX}i|Ks08=s3*@1ZqFrU)y+TxKzLtf;$ioWo2xdelY{~Yvn3Vz|$+T0!esoQP z5v6D@t6hWV-h@yy>8`Wxh=QP>)h*p&q4yPPO7!0}OAK-g{dWXw{)S#KhrqF0QY*5( zDA0XW3yg~~Hu!k-DbpMia*uRbl?;c}saJt^Qh#AE|+yGR+D`rNTZtNY?! zi8r3RSs1lqb~N6-e>0B8T{ogdR(Obkyvl=6#kD@VZK#V3=5CY?~#f z^SOR~@Qo30xguKib4L1*_oGKJ7!JUN6UP5bM<8Rpz!pKWzhMvanS(9P>wi|;Ozwi1`{r5XDSXGtm$cC}5 z`nAYN-Eh0OWD8RbCUw5R(@k_c8Rk%=Llqi=ri4?N`A>0F#r!Q3_Z7$Y&m7;MLC0Zf zQllc1LZuLsEE*dA*u7a2#>G6+%q06QEk1lvt@=q-jhxq*V8yy+vFR^g(hxmb535g_ zudh75?iwYU1vuH6FrL*oOjP#!^fhGg0e0C{dB5zZoHb<3Tg;YG?m5x0ql?sZeMU0~ zlOc*FynR$YT%Sl!HLfwUv8bEtllS!Y_z5QF%Vtwxo`#;C#JyLz^>W28YsJ-t%Qp*p zTg;E`@OX#Y>E6;UjrZx;Q7{+90|W5pgl@QP5IP^R8(6VnR1Y9@uCODafpn zR9sDV-StYm>JpVQ<~~EbA}73LA=$>1p;*18>o{XrpCApeE1o_4P}QAt-rFzVl)EUc z&#^RA-lNx3f@Smhkr>8uNhkUuI4|lQR!1TjF@;6*8;L5j$({)5$f-@iUe@(6@=fvH zKMs&<{fSlAVeRnqOQg5A1zXniEZ9@*LEM#}*84_e8UBfHwM_X5%a>bD!`K#uF!tq~ z$_+?XTISG{H3bREvl{jYub!fWWgioNU=EtX1jVL?Jt(P|_(LLmiV>JhrvQfhM%klW zyg(CGHV@w-cWP4ol!kSE?o7kOK>4wWa!aegTr68Mp5zG*hzSfv#BWp|B|1)m)c_X> z=4h#a06AJT<&{Y%nd}k9aM*igP)nxVZ!C~km@*I3j>a(tsn>XBj>_?e&ludbqosB`nL7LpJ_qxWM*Z4>mMjMEZOH%zzLbrz4v4v~3i$}CR zVt^f}aFMYOQELpx0qXo+L2uV zSrXpBbih-2_mFi~SWh#lp@`b) zhYcD51+J^X%MvEkhNPOlykw)WAjPyjP>ouKexi;NNswO4F)69oR(kQ31DcC^z1wXUpR!3n+LASV);*{4bpQTH{@zg33+h4| zQ;R+E@Q$acxcpmI9%JB3H1=+$t%J!|@$A_LSK=4nxjpA?MnBhWu!+T^;hD^0rb1&V zO$N30Q2}qSxV*8Lr)}dh#b|q%gK{YC&|aF;!PG0Y-+#cV-O%LTm2=<`F#yH>5<$L0#U)9dmGXgHy7?^ZuTb_DW23*El4ykN~fn?UEA2 z{rmR{jPtRb_=|=%cu@1BqaC(iTz2#)n4wyhSNnDQu0n^54wVTg0|t7v%cY>{#2qd8 zh8zBtBf4amYsLIiIzpd$bfvLra=yPzQA1{r&;k9bdX4!m(QWY8Ug3<8%&QU4vgsW_ zZ!*CYA&<_zt)A4yihBh1d7RZaI!lv>+Csxw&#L8{D;me%BVMDg>Q!B?Yg|)q0M~jZ z;}HHD&&g~#?~TfWC5me`^8lx`CZ5iBz%%H{013L;HD>o@sZ4yPSZ?&l4A z&6Z|`V_73gj||vFe~?^0hZDoeH%4J{0I}b)i9|zbi)q^R=GCNZ&KsVnU-0Ditfon8 zgQ^;F7X@~b(WeEB>h>9XO3@ikq#|!8DiUPLZ~nRxb%=~ z@Qb3_J*pd4b`s7OOby~?J_M)3UNUu;@ysQYiQjRRy0pKdhKg3Zv`TfWYld%CXT2$I zFUz}IERtg9dx7;*YE3wPEOkW|no%7qA(ZCF0+}Itnt4%#a$! z_-uXqsHkw`)%BBmejY!3-g~@eNI3qFn8|>`K*U+0e~6I0uST1~^A%bQGjj zR@|e-(%zz%U+!_=ibvD7$o*O{~3PJ$*>gkl|ReqQ31t?3t>sXxo<7J=7Ai5tNy9?0%GCAY$kgm|5jQ z@sm{Yq=~ET8Uz=sZ)5fw$McFCOFRzrFt}Ge4;#f%nZP;VrUxy2`DyW1JPQjJccG2OUS{n$3PACzq=<9|A21)lyVM^{NrARIe&w;n0PxGcyd;fn52bELOKco;qQ2r7%Takf(=#xXN4v(lIX?H}v2+m|=kp-gkAq8I(3YU#4e z$Ji%WtRLV$z~@`q#b|67!17sLZ3aq{so22B80uJCd3~?iU{fu&CeXE`1}}m*S{`E_%D%Fs>6w*W@jko-U z8$<9?gp}A#W2&r4$;lAj#EylGkx?17tK1_Vc{0dbEt$zjp1hEAv|uxoc3CO|yR5_D zirl^`J-UhPtw8I5g6zQAx<$?-9Psj5kkfF!WXG0=eB@|pd=dO@+n0fBB6qTVEZws^ zMgkheA9m|cb}`g$omoAbMFGBX&oRKqFP+ zi;((^ pkWcF{3(19&ZrZU?QDp_HUkk8Vm0urPF8dlM2qciVZ^I)f2ksWYx`P-+h zaXqEn&|Re_MX)l2TfWVe#O`XtuFJP)#Vu}OH@4QK1SWUrI#W9!U7c#DASjc%yBhsz zxU%Vcn#REdDDC>Zk5Ze)6DQ0lm?7qq)Mi57<+Y57uh5^Q8ZR5()y4i>nt(RxcX&+q za|SRVEmIF!<}hJnh0nJK917=(1&(*LXqhFxs2fY?v^)I+$CaslC3I6^sJeCOS{oKx zO?iB!QIpA0c$qA@ObDB>*kvK#aZXdM4(7rQj@U+6(&ZJjj^k!%ItDjoe^S*j@f|+9EgoW zR2{Kp0!nDhUH3(S$K-8mQ(AK0N?J9z{+J{5b4VVJj?DDw#l_j3p2uy}lHby79FT}& zw3J48bbBZwQ~Q>A%443_7^+Uk6~*W4Q)FPbSIXg0`l2tp`4Lx=Va7#cHB4N%)>Z{ai(5}HO4?%n%OhE1^4Hd5S=_YO zm}9c+=dAZw<+1kBP~>X!k~#@o#Z$U0Zdq=zHOClc15Z4)y-KLyy<(rT ztl`&8W@mE{1nAsY_U*Rb&~)_Ty4>KVk{vFF#pSVv+FaHfjHt0Jh4nl8fd{7E*G)KV z_mY=-Q%YAA40G1(ttgihYsu|0C?3}pZjG^HkH{FNv4g22Hu{W?*y8qb5k2$yNCGu+ zm_)N|RS_GDyGb5X#UmZ#MDIBsV=+oqf*SY#>pT%n{SN_CScNh>t@7esimdl zQtWzuT=$NLJ8*GbH=nJ&(dJp-HW;inbe!na+#WX_El8(_bb%;(PX#^XVPHi&wQM^r zj*uUGwwXx`u)8%tPHsB!w1Eik#9U)O?b^{4LLg%VwjnF^BSf=qyn|C z>-`!-2P8jVQEdN#Q-q=&d-UV>-u?>LVux`C+U_0PAgD0*an87EIJG^Kj(O05#)5U@ zYu!s`Bzwa9*TpiG!}Y+gB7un1X$Efh^RwU~^zU#4B|V@Kh$AQH7QV z*O_E|Ua$8z<-_+|ob|$ifmzC-m64}B99pUm3Zk~9n`K_n{}QXj37@AFG>U2JH6}(n zcajQ()u0@e;w2(aX}Hl|wuq!xFX>ilG&pGcVqJCumq$x_oOw2DJHYdl;4!Y2-+I++ zS_Sya$y2VwW32o0L`$jq1y+dg)EPVLK=UiKPFegU|atGZ%um?mTQ-DSLBo4vcB1<#gOwCI`Bi&jR~ETff>JJ}e8 z*&h*U`;=V9A*mOi>3eWs`r%Fh~hLdcA9Cq&E}c(RnaB2SSq zOX$fGW{Evnzy}IGwAymq#E((Nvz*Dj^C@6zC{GddMDG+gN5D=|GsUPLI5{j0uxXK~ z2Tcn;J!YqYRTjWG4c$ zhweneOd&jxGfOB>q|6o4T0!|kTQ4Sah--yp4t1@J*+PCIEj{#``m)S5wT2Lrz>-5+ zLCX}r3TBp2RS-HT3N2=8BxynO#FG{} zM^tHnGsTt>J2}G4$Z2tA#7&DfBW$ji(+WW3r7hu_P-!Z7i7l!x_+vY<^D`!R9_e}J zn@uvF+-x7$e1l}O(e~f#wK#+%W7It zb0j&vpzJwMD<*pi)JmB#BTnQYL5ko##nlqA9Z_9U;GfNy5>x?mBm`B$eCa@yGgmTD zrOcQLrh;Zk1R62<)4)_n{vrwNBwjMi2 zIO~x!g|HbsIczP^X`yNcP76;nZmy8jOX$Nexee}*Kj-R(OMt1t$1_boFLjHjd9oal zo8smOx+!X=fYSpf2b%#lEztC!X+fsP%oSi$bOaZllS|tks0F^a#to4uEX!@4J(a28xzn18K2M5MWz3Q8R0%VszNwJxX;32~ zZ%UjB$eSLg_;aO7T+4yXGgr(h;MrqNL7yq+6dAL`oFZYan41X6A9GU?nPYAuAal%3 z@IOq8ObaXxV6IRaK_hs&oj|L5x4SZ-<(&dQsqhLzB5Kw? z|8QYt+InK%=|S9*lzc_w;ju7OrofZok|Rz5OA9p_DlNujq+G!zFcDQE95VTT-*Zh_ z4wKa5f6_&ON%zZ1hzu)z^P+^v8~N&TU0&4N8gKjIftA?66$sL{$K;k?i<#QqYeDn0 z`da85xkn3}DG?d5le3Z;IW0vQantgZ5jI!y(h3m$gSMiZ`?E$LpwF5T?-?~^!VVvy zb+%|u?<5Q=<&E1s9fd)=%n^FDAi!*4*}>(BMGlrH06A9fs5_#EYtPH;#0~im$~DeD z@J2M(i7G8-YCER|%@Z$L=p5~w7C2KB8L^WC%8Z;ATSnZpFf+pDia4!+Ed6T}a`Leu z6*$vAHa%$GxE89;5!eDde`E{fSwdR|&m7wdbk5+GfpbQ;jGHUGX&lPmML64E;#HH^ zc^g9)d}{o-@bg5HOG=KIa>>XPT|Q!x#mF-macW zK)&ENNyr`jCOLV--y|h_{M!U&OaN9fxiWxFNUjuMlaW6Mn51Ry{8_~0>;74UWb7_Y zq=>wkts7&MFk>zgg_u2=2|+VwGa+XFbS6uhGoLAPW=m+Yl-V+xEF@P-`@C3JtNy0C zeyEr6DsHddl0QHrV7NDL|(gM^|$OjD2ES(OIV)b&8 z2RK2(#Pkz#Qv3vzpTrzD?DgxFR%4+bAa6}X&Yi)=0_VTWSx|?YDc6~xlQWtTI4y6PVAHab2{l&^(&1D8rg;Al zJEfAwiw5ZPUD52S&Gkk7rrgAjMiq3?2TUBTX)&_~wNP}1s20%K!&(5(5!W(y-oRFn zGe)+In=!Oy*jZv*2taV>jcf_{8J6txhjsTTAo9j;-zJZRG%-FBFhjtPB+M55BRMmr zf{~Q@@`6Ut97#eaCVR%v2+5v4G%{w)B_nA_EZydva>ZBH6Xu%TQ7R9IR@JVm^Y$fP zQIf<}pZR+f0(p)!(X=1E05ol7k5~R~pdaHri2hY#mq&}4 zHF*d{XUHA`I(zyMz;ome89Q$RQIIoc5E(aP3Xx%F$ss}jeEja)qFNWYkW{q2@uMAW z#Nb10%cySlH#}XWaPOLmXJXit84n>$0htlqcW@yc{7mpk)dw6)-uBMsR6? zqk^S{ii(vhI0jS-hw3|J;;WDoeKr>1@6MXy{KQd z3B45skUa=5K1nere_BT%<=UWSKuyhL2G~4l%>bSw#~GkAB|Hmya`v-fr=>y*a#~)r z0Ov}Q1`$#RVup|;^m5shyM&XhW5q?+Cvo6lg3TT8Lfv@+UZBqr@dA6MkeA`J$Gifb zH|S;PyiqSB=L&l|2QFI5tXDTpK~p0~uWFvS(PQU`8a;BRm@$JVM~nqJEndvPY0+ZF zoi|p{hUL1^1cIF|pGev+Wr!R=XS)1KN`hQ(aizr^Auq6J z348%QWB3aZvn2r`V9rz^%a|u2C=zB!3o`x;$w7vnHAM(PQm-I>Sz_4A^zi+**sS=W zja<`x4)oN3cEINeX@`&;LG2KcDXcxDBnP&SjI_}9kdPMK9s+WOw?h;HoQGq|q@i1e zI0*Kl*jy(pL%0Pc&r-TYjE=}=d1F{jjG~*C*wHZ+MZnLM8U_Bmxlu@&GdT(wGiOIx z%xvjV5i(DHlts*wAY}=2XGkFnDN>}b#Pw)bK+@O=53#dk&|(pox=2-%@`ww;VP5LG z+X$Dd&t-y5%_t_^JekCVo+E>purp;28+>xcu!5&$3LA7Kp7638HOD?BN-4vnOJq@JyLl zz|WG31^8UKSjNwvj1~0E*;vNToQ`GaocZ|Wrk$rhqX*6rNP6Uak)+4Z6-s*ajIm@E zkR_Nb@afTH22T$sGxq%Pl&y!OF9hH-cR)sRME1$hz8a8cNDM;h*)oF=FjHy}@bl#c zS;8F2LBY?S9c1+E=|Kk1nIF2b2=55zoIlV5=Ljo3a=xh2pP-s%eh`0fjug2dZoX`_9kkj#y`QBJOD3!{L%6BkA?bTp^ltP_@y zXa>LtpJismh@Nq7WF$khWf^*J2ILu<8KLxS?TipGQ$r)*=WA(X33D_x3V!ysMn=!x z*vQ~HTbq}g?f!CIwXgH{-%QXsLd%4mFSbk)as`(OKVx*+L}UpstAOSov9!YkgFRs5h2o1h6dP(JxiVtiqDuRgoxQPg%B`js*q*OlPeSnGb9Tce}-%! z!{Gke)=AY9!gCO_&D>l%2<%dbs1WF6Z9NeNT@wu8WIxb%0mKw#zZ8Gm?aY_ z0`jLK89sk5lF{c(MnVq4<7JE8m}%3mrXcG-$0Tp+!)biJfGL}No0x)?nh6xJJfW{Z z=7@C#FjH_(Fq5NsikKF@6TGx|oxtS^Pz4w<)4x^}AC+Usi+WeA^TFZju2n{~O_i|z z!;9Kym`uq*!poB&B*2_WLW0egC?wFV$zp_?DPfFJb0m!sW{$)$g3OydBydU~mz%n| zNe_4x^=a8==_<_e+*mgt(n6=kuMIm-DBC3Dh-w>trT}+|NRD-2J4fSx5-P1xySYCuj8Py=wz(A0=PP^LZO zWe7&#COzO~fF<|K^mLb20)HiFj!eRlXUQfUdd7^x1yWwpJU`)fjP#_7?C>YETO0cPLDwyYolTzNW3%{6xP^et{C ze44#mR=eB8>miN#00zpuht5=zZh0K#xvbVGQCea)Ny&1sPX!mPONNe}9yota7Ant` zlm-4gSy`aZmX>7!Gvs9jK6hf4!E1O$W@< z3@-A|HEH1~B{iBo#pDTXPhmOY+*4GhpbwCioB={)rKN)aNolzuKv1qk;Swp*Mq)GU zD`xI67RC86aV(^Lh(H#yK2Rjf;${zJMcBNtEQ^{qm}N;HI+{mqb^M@U6xW(%*Sv{C zBOr6i&`6jiS!m?UkR~)z=1C9+LAg_dNlezHU=Wfu9T;THln6A^kOI=SL%2g9B9eAS zxFwJ;XWAs;62_NxXU=9^$lMu?OZhNajm!EFnT<>OK-p~&HhYGXM9rJ!20`;?xl#gl*O)lxq_t&@giWZxem90)YRaXkS8s;<>W{SZYi14fuEq{RNyHlEe-ey zNlO8KGIE8#TN*ssF7C2KJ8?lok*NmJNt47?k=rqFSibt)0aRjF9tuYA@1Db@! z-UQ8>XuKhKQKj_5Oz3oR_3cHCiz(t0(}Qx2j*dn`uHl_qKx)czOURSI+;VaxGq;pX znaxj7a+>oLla}-Rgrp@vKN-2Qp<7zc)aWHmR3qTJ6A1L^si885>GUjrW3SVdGRd|R=?NXRTi0qiypK!s? zm9vEU^Cm4JWzMW6WXznlWHGblEk(#YiAxqSPv(*(%$>S~EQFDgyJ9CsDqPRG_=?PZ zU9XGH^~tuWclG7|ivO{AQC?Rq7K$Fe-<6vdGd(iP62}CJYEw2JwY$2(jl&;Rc=xTj zDwgF*yDgU|>+164x;|O9)q)B9IF|eH_~oX$*{;i*5)xK)1dDb*mCezD{XIO^Jd*_F zeb$*|D6fdkBxCeY%1l!FWX~>{pGk;(0Bj}^C`XkESwI(8`^_>smIr;6pvtGQ7B-j8N|5H$Sqqy>=TXq-)7k)>OK&xe{QJTxAv;jDy-jq1A>MH}L=}A4F*z|jNe74?SSDU`|xqa2`_I^eC zyN?zRH~X6$gAIq6)KS?4o==J~XQtld+@;ZrODz>gmFk9HWAc>RVftUb>Tyd-Ez5A! zcXFJ7HrQsaAU|oTW#U$2&x*W4&uf>vK4j!nUBytQT9%SS<+r>`PHH*WsMN1|bLFl8 zk<-!@@7j~%rua_1`KVmBAED#C*_{l3t%~vn>8ZNG7cC87KUy^v#+xVmUA10d|72S} z+^n`W2D}G#ds4nHmy5&WhfPysNXmXqKYqD+*A(0SbNa`&TruJii}KZo?S6f8gT8$a z)BT%FPfxB3Wz>(mmP~wkczpk6b+qWLB0lX0?+?G+}eEUlq;u z+p%&CgGv0V`KwRNU)?c(^>P2za$UFOV1Ty&qSN_Zv0J{rzk4rz{_uUZV}_nOA+z@v z1^Of-Ll*Dw;p4hN(J_}Zkuv&PZ|3Lw-F9j@_~0cVSNd<6XPi~ra;y-(fG&n_;3=bT zwoQ3ey+7Yy(f;(g+jd#3*C+c;^?vcNU{|K~Oi$|i z4ZAXFTkKw+pj0LOu{hu2UZ5wKx;s!mZ~M=MR5j{H)!Su}(Wk6uyF)+prx)dy3jxFf zeDblJ%X+O3kL8c2&Z>Sp%7DF-FX*rP=x|B6{g(h8f7^e@zQSuqLUm+rDRA(o^j-hW z;;b@o$X^WPqwK247=0%(?bYg4xkg_~Y`1dU_MaogOJDRK)2IA}IIRJsZ_%b<;e_t! zqnSK(Y~hP4rvkbwZ`e*i6YTi=ff;-J8Z&GE?Zms5yZ2a_+OKy9ldrBtN+Z?x?O*t_ zA0NE=$#zlIC)9@bZ8kOCdrV&+Ejnk{P~8;m8@Ts_dWS4({a*9s;qgR-Xsqq}^r1Z^ zd(CF|c*IS=Jv?6CtiE8~3l!_T+&!ootzsiG-nx6>@eJ(=iHz+-Nmd`M5V)vV)9E6j?uLtI)GE5jyT;Q+cD}2(PSHfv&nuq4T2M+3~-03Q(Q z5^MOS#MXPN$)B~FvAjQ3K#MCH0)KL2xwX2Wx$uY95>H^MP4UCjQ%(T8CdUucNIZq@ z+9Xe0BlQ#*Ete;#mQn}En=Wru6S)prG;QACW`+rT-~9Q3>&dHnv8=I#i`CrCj&|0c z-)@!%XbmfLwlSuqj~=1>s2UwyryG@zMQJx+RTKiP+A|z~t3{f~J3Q9XiB95mwR^q4 zL|JZ5ZtBZh>K)^c{RV@Vt9tR2{wi0G3iN#Kl#Hib-Mf9hEjPvP&ZwizI?xAvQG8K1 z*C+3pB-RHP99{xKRH3Y6kolx#-&qUK9|)|zQ?da;XMI-Ak64$7TZh-58sP>aB_Yc+ zhsWo|Rr!b>B;4KIte%q9j~42`Ma72lozq5x9VT0n0lt8>xK7WvJIprs2}M@vY4N7K zhmjXZTC3>g>vH)9aL>@6D*L{Q3`J%qnbqbVjq5ZOfC_GQEz#U7mTwS>eVZ-gv;`(D zQH`V%sSTk|>T4_qTN=y}tY#N|TFGppie=+Ds>*88#MoEWNtrSbx?sHL2@d1lw zttnSHBDJ)s-4P(>pVd1i4VkliUA(R8hIFNA3#l!+C~vmXnB#_=vr9ofNM_ffU}fU( zHrGS6x~+A0h31Yq$oaC~V(*YO#qa{cuU>AL>cWt6IVAgcRHOwWb*T+}iJZ;KXmW!@ za@szr-jwTGVeB(D&ur(pUu-BRuW!#W>&i;Nxb9Qdaufi|w2a|Jd1df5UAAZW5Xt`q zW}K>qx(Wx6*6W^?@0i%YR_01+bsSZxQyj&`c0EevXuZbTD$0l=93CSd zQU1L+T5KE4mslNote7}sG*#{J{ZpD;*BNrx+*;BCDq>l_WF^%xvzXyu zb4TlEtu(>Sl))A*CynB>Om>%SyRx(IMgLhNNF_7(45$9R2+ulG5X`&<=B_EmA})uy zxHN(Sa`Tk?XyMI1Wd`rypE~c-=LQ#-Mv%FQni3x^Ow?0aJ^=AoofTI{Zi0?z4VVlo zpHmpM{H|`_6y%6oqZjQ)nPONW+}$F*!>ATf)pBEMl(ghay#|88mieY~&EDG%+~~XM}>a$>yyjs8q0+*3QPn&C^xkZ7$-xp(soB9l7FN5 zV!veqHQ$u)w;$sKi>Y)?X=3Dtw>#$!y?mXM(UzUf>RV+~TO6qySr}D=VixbFI5deL z5`qQbaees^bGGze+r&7`CfySulP^1T@WU}J{2JVjwL36&K|7JA!aE{lcl7OF7i$Aq zvspC@Ok%@1ak^+lhZrWRG8$8OU@OaJ^=Yxb(lLtfj7gW~u<2;jL?-{j!Pkw6tlXd2 z!M|$%`fK*Dzi$8fC+uJUq~UAL$A`z1Cv2?~b2gDGY=l&sxGv0)C=ZYM_o_>v&($ph zT-P{bHafR}{fH zP9Bw?7inV1|V23D8aiMxDIDE5uxp}jx-zf(rbs)vAzNwa2 zk#EY5kxkz_th}q)?1g%;O9#(qU`QVySe06&I9G+Qc!7E8yMMSUXG>F==wMgvvkILi zy9hyCUtP7OGyDW~(RMbvP|noptaMeC>lMb;pBHPaw>z{sJXQ*f6-exP46D3HBrjPG zs~0$&cuQW0ZFUd#O+gEPPVkQIQB&VwrgZ0YcbK$e(Ok}{GoH-ABy|;A)b)@GN2f( z@Ofrz$Z>%S28^pb$2G7J=CX!P4i<3TQG#_k4V&Bdb$mWSruM9SD^)HO+ZO4vo+<`& z46LU}FdktfO9SggfdvD5qoazWA&-j#UAaMwix@sI5VL`bNA|#-K~IY<_BG-BrbB&k z85niHU9`}p%Mm{FPlg$_@x5*Od?Cg+%4D2pf+96}!VSl z@fxL$>7Ug;{V>t2?&_DAul~e2y(vlYn3ox&d$33XyxRG(2rni{$QjNjl&dhV^Ux|0 z454*`j2}=XkP>2Gkb4zdSQr_C>Ep%JTbPszH1WDFP;7svm*_(c{D||qat|vFC-tzf zFxal{;5~RG310S{$nfHlq=Z%qUmW$X6p22xQYaI-*I|1P`}$Ws>^sc=5SH1i5$V z1w&NvMGwTMrQ?DGN2md)!FR9N4F&^!pb1DqSeJsAC?GHuhENN5CBMM{o~cY`h$_BF z{Q)k}SuE55e(8TGkZ(3uI09|(t?K$a#dSayP#F9zAlN)(K#+TffMAF!en13pIl&Gf z*n)~55CJ`YSOU0L*K6;NQcvtx>qC1+j6TstbRGs$fjt-~J_y^(nN)Ny7J(n=dwf>g z%lv~SCV+c?b3$RhRm)h9O3YOj;RRoa5RNJz(`%e1HxF6B>IH`Mi4B)R-m4q zyDurcMNCk6u&Ct;HC$yv2^X!aI|FAFjf!7xP<+NtazE2iqbnVGdG4vxS%^@EUe;%PTA)ZXp=GvxQ&? z2oS*%>=v9c$SV|JykJ~2NznJ9Plf) z#1K+&&gLBeoIIe`X)Cm(nqOH)Od;hNSiQ?MumqILYf_@Cf0}G?PD@C%UK0}%y_ecI zxS5YV$l|?`XUf5LhdH;}82FqA0ee1Ho^Ul)wm@Aq%w7tsn-kr;qo|N$9)DG}oFRIu z#dJlZq^!yqtg(jOPwiqG^rg( zFRH&F2YYl;KmRz<+#vwxa1NK9x)^bhNjVCqF@gfCGrG*?7hMLKezsSc)x;Q9Sd}+M zbq#_uOi2Ixdpsz9gC16py{BCMIvaQcw2e@;X9?9)W%N>#9@pvFeEdLR@K*h#nuTHn&J%hC8rC-$eS7SItDsvps7FLc)uE4)u( ztjtVf_xTYI43A2*6oTu4n+ENNM#WeQC#pP$SZ>Yl{8YG976&di57D?{&|Y8<4BTRv zjN!by$*spH&f&iyioH+WOOf33_yho=If>pks{7;cJhJ~@>~v}GI-^dp5>e! zgz{R!8}WoF#-)U5#t%`2Y36WP zL0){lD5}p;6L2068;qocX-4%Ksu|}A(TsD1Y1ZBS8s^X)Q;2RION4S_kAio;VWPkl zte)=|bCs zcyF8=%Ly}BccwZ*Ij_ycs&b*V8L&j(3-aDNFyaU^+pszxX1RecBo+p)FfG}3fG`Ca zi#w@8M>}>d8gR@2d10!77S(%YrU^9gkme zb)3}-5#|r=*cO(@atS)kSl(VSIYgkbk_5*8?&;XXH_kKqS#RYhSXb>HA^VY1R}OXdZ36x_48lu#nh>jOU$ew5%N(G2_-yG zRsIAmn2)5YG6sp&XN(hWmoY++CTvPQDurq|nPlG#YU20xtbren5gMp^=1Bcz`H{wF zbr@d=l|8Z;8jz^EP;or{S*Z{eA+k8A6%9^!iNX`bP!@?d(lOMe7h}vUIxtI0NHL0x zF(NH8h6z?>3=pITMt9wL^3Z72a0Yp{iQm_w2YxwUd0J1;9I3x7KhpTD4&!S;WsfX| z1|+I3RGgR!Q4u1Gla?Y_Z9$q^VbF6$6L_!HyLFG@-g4Ii^Dr1mXea1N9b{QiCX@V5mZLtjXbqyzz z?Catte&28%_~97w%FE1=`cELji@@qIz7Q&VWHB@#;RS&$R2)x#R%%m4h%C-T6NVFB zqVPm9ltto=l#WtJATh?2*yD9zH6kI!C^E)~)MgA5tjZW5NDu0;L?%ofE0gV;F^vGe zPAvh*Im^?62JYA*$Qr~}0jtW;v?-NC<&Q0i1|_aWRG_G8Q6XYWl$JXs1Ba&!J#(ys zM5Rwj1(iQR3sx^l)(~|ffyC;QuFM!ANR$3-N@(Ox8JS$){ApnKjn$qVH4&}3%p0ft z1R+>|HAi@+nZEQYcU&1X7{R3w@sLs#8a;xYX`)A5EJ$G;S|bu`oNN?9!Uz?waz|^x z>LN{zF+`j$W0X*PjQNAK;9HrZ7R`06Ot!B}8v%S{Qv!ffga)R8JGKb22C-GZsxqM* zDt~NAG$?U3q5^sPwOTDIL~MyrHyWUbLWSoGsW=jItb?ezFUq2Mv|#3xprTY6gTz{8 zj1#WR7$HcL;k0LH=xR8FT-?O(>)8XpoV`5Fr)Q4TUzQ(fd{&3?HK4Lb7DEFPRTnBw zOogZjk;O^Nn}dUdCkicZq+>)S%|QW`JzfV^BPo^;wIN|dYLl$W7{E`D!{aM{y8`QP zdT-fRnZkDMtGv81c7;=?W;g8`re@C+p=QtPt7g@2;PO^dW(iYK=JZu?FEhO;aa)$# z_6kp!iVCZ*j!>~Tyr+sXOPGc-r>}xks!$CTo-h>^R$m=2#ly7Tjwo@2=_fJzYS-?X zYI7ZybQGR24HZ^j9WUuwkT4ZxmM{%vPCo@JI?UuTu-|^8ylwqjgPUR?4nlU`;wU43 z)tzxxRl6*jm2z3(gW)q)8V?xP)uGOgpt$A)Y4Vgpo;9*=^<8qEw)MC;GhK@e2K-vO z78x!P&2X1#hAUN_7s9$L^<(E%wjLNxr}n_e;GiEnbApE+8C>+^3_kjC1}FVEgO`4s z!A(ET;HP&o`01StetIW^pWeyfr*|^==^dw^QiFd$7t#LoqWp5Lpeymk`*u+_W&)-Bq!LnHRlGj~l`ckH_psLHuLxf%!$Txi0TEO>yfgfK>;7n29Q3 zJ>@a`(ISL@%)Rg&V2=4bM^$6Cg|BOk8IKY;d#v_FSvcKPSIYwe%Mfly+0?ry_3}-L zD}Cs95W~yO+JmKC*Y6%0Bg)?!507<7QgHc0>3|lG%U!Q#>$Zaq11Tv4LHqw=N=-*FZNt0p7F=W+vjzIb_O9>Zrq+XW^vyIgbqBL zFc4z=E(E%~y(q3db?Rw-l$6vYg)gbk+;5a>0faw@1BJC=G2h_5( zL2;V*_O+S;BE0N}$3L?#HoIzfE1G(*dXw3d{z))5jT4({yQ>?&vdfac`OR;>>eqnd z*t=~Kk<9eaR~##Q={49`RN!txzPkZ2RJyXT5-7jpO{wn=BEHf)fTWt2Fe0m8Mu_nN zi9f~>B=#6@U`truS=Q(7z8B?n)uPY)s9Jl*!?td#==NS|F#IAw+t7I0U|YZY_$#OW zeVJADwpx|26 zLQm_yJx58%h%;iae*1!6#hqbb5rc%5I+9|)2Yv|NCnR- zm0P*Khk(by19~+w#A*AjvZ?))m-+6tcemT7evfg+u4Ff0VK{)lU!Po7*NbQ6JN6m- zWN}7O5+foYLS)@8YVY2@%oZ?6P}%xwh^zzuF_Q0gA^rmu5uli@ z@g1eeDh3R^21#IwbeL!5wVySFu*JhK_r=u%z~kj^7Q|wjI zzB}JvT~+U~H0~wp@OX_;h~PO|6sr~ghcA1}#C=+9R%@ESU)Eh-4QlaK9pW%XiUb;N zY=<>7zpoKQ9y#i}-Dq!vh!%ZZtl|1+9=V2t0aWpO?@_GGhi<(uqs)eR zA)fH>*0IMm&RE(jC(AY&9X!b4&YV<2k?ze9KfoG3~V)J-wj|Li}c*I zFfJq{dUC1)eMcq}dA^KeaRH{$$PD0~2xbSt;vAReLIT*wqA^*;hMv*F!vIX;v0Rd@ zfj5S#g!g8gNu7IhssaOQYa%j$R~70%BP{a;OeM=~!{iEk`ORxAHZE#EKjRNEQX$2$ z6TDimdb{Jacx8{1$3!Kqsv^b9@W1wB;S@>&lQFsCq40h3g|yB#&Q2xyHb+yt8SHt=p?-?`25Bh^NaqV)%zK+h;0o!vFg%?>mHF-e1w~S5ds~<~5x=PQV z&_u9`@RKhs(#9=V4gj&srZNK7KDvcs>9}?Au01Jkitp5$kIH5HQE`pO?oWolRt0uX zZeC%h+I88UEZgd%RfF>+&B=aOtxvAn#p&j%mXBk_;=Qfc`*C=3Yyll^R#qQBL zJ1qE=f09uOw%9$Z&#>X{L3xF9KC6dKgN^bTtYRv~b-8!cfuA-PVapsg6b*DMvpXej9m>l|ZkEVT>514P~z(k19;dnah`Z@oT)qYn! zZ`Sqo$=f?Dc+N#G5g&s7vTn=n%M4E0mGAJF7Y`>=_BcUV*VpTEab2%*Vt!FK*C*G_ zc8Lj}qPfM0t;AV3c6vmTj~uou=vdrGEp|~OA$-I#%2lx}Pugv{JXu$lC)YJ)2^>V{ zTi2gqP3pXCV2&JC)s=*8N>HxOh;^?C`uVQjW>uT4@f15qVO|{cNB(*E9$RaagVc%2 zZz!{IlUK_!qw*bar+r4?!{g1M@X>;_r=VfY0W|_ytkdOXgm{-cc=Iw}F;3fibngE_ z`Ic3~5M}RA+S~SIzp38iBsX@xOYxOh^&>-~$zdwcNR;oi$|*`pCF-sqk;Pc{KOZ*a zWd1ozG>a6uAWtx5GG75QqsxlV z+$iOSpQzqv$oZ_#$}oo+Z|GiHk(x6f|3GErAO=Hdd8$} zEB0(U$VR}LAI-SV=d(h<4d%ud^uLUv$U+Y{D|T}~?t|zAbTe-3-)I#1{JQ8a9gP0F z?f(5^_S`uG3W{r9hp{!JhMm)&Q7xBLA=zlziU%lQ4I`}m& z9sK+${K(k<6aM{MzKehMyYTzZ|3e1{fB9D*9Q<|s{)_nc|B4@y_uu@Qg9Fmzd;Y~j#{{w#hBYgM&be~nA|9Sj8|3?lE{yu$9MeF>hwgunlT&KCbC{-*!FA9(*fe*TrNT>lbyUZPB2!O!o-&)=^&98K_=<|OcpZznS|HcT5zWbAq{T-B3p9sa0>pLodE=r{T9kAmkL_-XL-NAUAY`1xD- z`OUxn;NUTS$VZ=ka&YiNzvJNG@7*~#_`i-14*tXsAvXT0gM)t+zkdlof9&IfgRdWQ z%wIejZ1ZD3j=KFV2M2!#-~Y`8>hSvy4t~>bIym@GPk@P^KL;$*<3IlB;9&pT;WIyW zaPSBIX~f8n92^|uH+}crKM0@3zyCgdegc0N`1#ZL`RuoW2S0xTKYtlNpZw^-!GDFH zKZu_n|E&iH{~>-8{~h3-L$|+%pT7k;JCx}m%JB%Yz6PDXfIj~o{{4HQ?4)Y=iH=#P9C|<`4cxeD?zf2S4(gfdj0c zh1_3(ors?PJBI8(2)ggX@3)Zu_dx$|<2Tji4?^y52kkBFPWC06344>R3Fp_r_8;Si zbSHcM5&Yfa=a=yF=U{KL6X{JjWG})Zxm5N)+|}uy$M3&`pC17}eNS?TW{=VI-d_ZPd*4q!+6Pheb2 ze7`9DExs4O4?F%(@%u`H|NErR{y6@A{L5U%FMK}8BCP*eq7&GE19E>G^m>e+HGZh9 zf2jNYKXyL+XYlXeiF*9k@k72s_WVoun=n@R{hxGylW&l(5I@LKn4lOC zpNZd;XXtOrEfg~pJK{UtZz>b%{kuR%x_#eo<^TTQ5rg#aAIHB%+=@K;|5NuS0Fo3{ z`glZSW>r?!(f2u5&wWqLeQ?dd0CEh&$fd~9^ikc@Om|n))jb!e9HZi(fQW#i0xGEN zdb5fyip!<)Lj~4bQFmEa*89Gd|Mx{!R9AObR`pDGwfuV~E3X&vj(G9n#fz7jh3YvY zTaINe$1&ULZP=TB`Y?`vj*VqWTYeq$=L+%A6By^Q=k>Q|_r^|s8|SRI61LOGD#*T$ zrFA0q_7d3WJ5l#AHp=3YS({B-^5ypet~bL*Td>Lb?M&S=ZO3*at(O4C=o4*usd3?G z=;k=V_Td;o{Ug2k<3v7*A zoM@vcKaO|W9{_wQdF1;<6X`#t{1wW8?Lm34O*qz29EoO{Vn=r z#&0|QyMDPsz8m4GyRdu>CnMvmNN$aLgqyYzwvv$2amoJRAo}H+@;+p{%}&WAa8k z)M4JI4@&v*K4r+Z<8}Itx*Yarv=kmcXhY~Xeg@km*l0&+>*+U>Kh{G(n|u1#v{6Q0 zygt@e=F8Cdill+%>7$Q@r*6>i%}v z02^grs&9>@Wh(lY@zY2z<;S*TAEK>i+fyc_|K4>YG_%ck?N{rCh;M{EHek+(?aIxg z{f;HLe-^g?L|N)bp}uz(%I(4SAmFGI)Gzvf#PLg9zZLc0fc+5ee-pb?Oes ztiRye$$O(#x3##o3)`yz zlfnK@Z2y7nN7!P(PdNUq!|~PF?$5i%v5{jo{SFh0p^rp=gk|VsvQKebrT;-Y!0Yra zsRKOzbdx_uA3&S4E!j?#JK~mUR$j-m(7vWbElDn0A;- zAFWWElCS)B<+-K>eV2571GJEKUgvy}{hBoL-l@m=_j%0w{A)VFKmHW%Ek9m}yRi{2 zyj6&6u)P`gX&+e+`x@scw5#m*#%}!$a4f_6SdXbUzYbnA^^-L;=I;F=YTzK_1 zpWb`0=lx=J60fPZ@#_gMNq*VC%JUdqkz%CY?N?;+NKZQtXC<1wsj{&R>MJ|cwuYTrKbS_S5OY2S{|MVXpM+2Ga{nInbH^)2#$Uoyex$t^-E%Jy;*oRU=bk6T=5vL3 z|0^+HJ|F$&RKMOWFT?&6*vZq;kFk9R_uh{49^OZprb~r*H|ki6axX_cEx5L^13bRZ zFHbt&@P7aJ@JEEW=%cWU*P%=|#>@}-K1}k%LVOm-*T2&rm)`vjz++p1^XIW0hvTpP zs}P4%h__;U@IE2xQ2%@1i+ZjHZP;joiR+AOgqVM=?=y4m{Wsve8Rxvmzu&(GI6nv5 z^akH1vyZdQ+TVs4=38N>ZbjJ}M#hP;W5mHL!QTNP2GT<8#1_K#_I{MX_E~HX;@la4 zEy8vSj;ROq*T0YBow)YD``}{?3Q@Hmb`SM@9a|LJoxuCeH=*4@hmB+V&HmW-@MExL z55vCxo6p1gFOBfxa|E8AfDef4;qUo=r12p$Phxz*_4h;ne*3sTJ{;YlLpZHNIA(vLzERhVp1l{xgmF(3 zq7T~&z&(pSuTiGP&!i0^-K2%~>Yl6(A>5JB#Qr|kepqMtc4I8Pv>l{@IEkA$X;;Vx z>7hKv@(co3Wl^<%yH_k$f0mnY0@p z+0fW=CUgb-nYxW#XZ;)>Xj=?T#K-GjLz$Czpl_Zv;(rkz?dzv;eHE_f`>->2`sK)j znVXE2H)Tco==T!`?KS00xf>h%R@Cz&Y{pMDV+w8Or*XaJY+qMTz~1N%>oW4@aWR=u zR-}>m439=WV+lH>jsqyh@0VU<`X4bUugU<58{? zwC1;0p|)Z>kw3N*b)WHN>LqoB*V*Q5gCN;+eoDDgC+Uw;PiYTmyJ!p8@7b2@v(yLL z49>IJE}S#d&QQM&pk3a0DdJIO>UWfn(S7;~Y{znp|7-)c6J^J?psrDOj4a9LU%)5N zjqa85Q-XAEs(lysKhj6q%-`64l5g{jO{6^}{7|dkSGQj##DBH<`pCXw z&Bpp(lsDSSgO)Sfg{THSv=y($o-q8Q-J-ry$2k`88v7D$EcKFlOdDdx z2HwwaPt%S;{loMP>a^*Hw3B9hpuJ@O<9KiS3;P251^Y~?`PEd!6v&eq^F9eV8J><- zH>p4LfnSQg`B)of^!)+Q8$>htS>E~5{Z*glPo_sriPaK7Sl%=@t2hwXdVn)dj8lsK-(ed4$P*YfKy z{>&S2{j=D9gKb%_5c&08g!BA5O?_{|b=LU=_NJZxj^oXJh)rT6ZL|>@_i~@tM{u2G zRKIWQ$S-AO=vad5te>=$qGKmui8~)B$L$-?zBI5d^e8yM;QKbPRY6D*f}NJ*~}{mS7>g@>xKUE{cZA28YvH>Z(KK`?I&O4 zkM^EA#dUR#16;qMeWWd?Z}b?BxnBQ8&`y4SjeW8Ca6avY=)UTT@p>}{*Vsm9VqdDA zOxuz-((?h7nG8LYA!Wh(zJ0({65!<^G(?JM_ApjAUl@16W3XW^Zd!sG1gZ9 z5%n2AVs6H7C&uMCMiVc`akdw22-}viEMpsX0G>3Fx3}P!=Tk`=d3^?TnmHVC)eKFI zZm=&?zNVc`JCNsme#Xj+G>x@K)QySs{bNBp>*gQ%qTQlwsR#bmkzd*fb4FW48$&lW?E3@5P>FxZcKoNqn3m za;?(T{Z7D4hBu=#pGQ6B*u)vfw(Vr_(B=>a`C|N%{ODXcj2FbqJR0(5;!JWmwL^e6ect5Im^Hx_Eq*y;GdU(2yT`JWJ@u73!||Ci zVxQtY>N0&5+8wqD*C4sR%v?$4ZP0&Z-i*nGVH>h-*axY596vZ#XdQ3%#~6^R>t1%y z-xE)3_L#8_)=6A<;2L3{#(v(FKI{tcZS?RST>Anx%7S&UJs3mhajCW|X3HkpZq$*V z0UvEA=ft$5)mI^}8XMPuxyH-3AU&j;d$5yh$9}+}3bE^Bh1YG~iu;^P7$2Q$H-*-X zDG%bK4^JFd0FL$Y*!d|G!-p@aO>Wk2Y*ZA-~<5-;f^jKQZ+QPHuJJgZcJj{h z#dyfCn|P@Yq?d9Sc)fql;~(JIoEM_mtfPJ54Srd!#c@rJWnaWTe;zZo-HDTM={NfO z=deHL@QBRF2W84~W}T05A@ZNkui-OaSB(tEwiES+IZ14P;(iMF3h_lc3{KWz^nx_y z>oe=veuG~Z*A01}eBF&>#@uP|*r%S%-XmRO<-oiV(#5`H+O_FT{@BWMlb`iR)Ug%U zJFsm*oy0@C#`>?tHR3MiyN$&?74b9XOi`X}7moi2Ad~w*kKvzm@t*N_xXwww%o-Qifj4t21AqmR=>V8uqPbLP(O^`6W0OUqb;THMLhX56F=LQeut6gFK_kN%~^(P z_pFoa_l5e{bgb#;ujl8l<LGXCPf z;{JYI=e&*Z%mJm3LLZ0c^lgkE!#1HV(g))`{^k3W{uTe%*v4GC6L{sWblc?;)o*U^^BYbVFZkRY`x)`jzR}+CnEpF${dZ9ZbHthVX5zmWfDh9T2s`%gGq^wVcE8WP9{Xaj z>^Hvz4C}by4$Seeu|M*B-rM~>kFUWouYV`IXI_rU)ycO3ZFd&70gvH2%d;;2z4u-J z|LebzcaQFqW~^erq&=F7zDaxFOK9}3>7%^*{5$=8DdtG+22G|N*d~wQ-1J?xdwwnR z?(+LGue}z>+|v#f>f5}>KkD@fXe;VEZ4>pMeTz1l{f9bYbXog3&3=DlpP+8D4(f~^ z|Ir7i1K$Piv+nk3c@%qIOWq^Ib=dv|8_T>3`>$hTzP5aiulvmRCSKNU;tZ>C?*eRh zVq^Jz*i#?#$062b>SdiAA5HE!>mhF9A+PLX#9{oECq5>`=TIkoryo4(`-}O$CjG+= z@AYZUr@_!gT3DaygUnldDXtAt@AC5x%z7=?YB^5l=kS3wqU6u`jK-!iAI8|#LV1JC zX}f2e-P`o{DVDO*0jWBgmrUGwL+LGxG>PvJ8FXMAXU zo07J%a}hpMK;L-mnDA2aJ@Ur``ty_rpM#*Tm}eo(GY^#ed%@F7?Ky?9u?>z(W1sWj zxWpJOc`$Pr6Mr`IltRyGP)|00+aFf_95J(ZW+ITaa1#}H_vrUbbil% zO8ZG2=3Itz0NQNM6Lh}h_5OJJ+|@oGoEuQ@xgJ5^pLU4$gLHDOh;s&x%};;SfBuu} zJ)ARf9>MqW9Dr?@@re;$3dOU>+Aiuv(Aopn7l_-$@c)=sccC?Y%8YHt7zbs>x+nTf zqj`pM?6WcXu@lBk=$FvGnKdu!0LL7TH~L*IkST3M`T>7FNZC`4l+6!utx)+wz7T0A zKP=C(t^ampWl00uiDjQgS?)J|(w8Ui8UK>cTT#aRJKEe(`q}01pP9QkR$n-0F>`}C zpBm9MK08)Oj^yv9=sTO|$-)o95Bjvf_Qp0Zb}W$W;~oaV#b7g zpParo=O3JRuzlJ0+4l5}8IR7_ZThVAi3!I)K2OW%YN>@Zax=AKZLkUEQ00FM>)0|$F;pUW{jA88U4N;*B-{k`iY0Oia7JvrAXIL zao^-)u{^J>Xc@03q?>dRCu5d`W9-qyT1hLPb!T5D4f(N?1E9C|-(f?r9f$2UY{rjd zoijcQJBVvfVgJ*I@IEzc`LZG1XW-g@049U|nSdj2g?J&~#rSv^%0G_nUesaMlIRzb z{(ZPczDPgYqY$6uk-Smn^i{~)KTwYQ6`%9v#$!G|$i8OAV$x*R9rFG3=~#1Mo8~pp+75~xLMB2f8dq!FC8QaM`U&}i9M_=wp z{5AS8=6O~2eXi?Y2^q64jz8Sff8l-u+JkHFW?jqV5&Q+$P0qoUXiw%h&^FUX(U#A| zHTn>&gU?Ev{0jPeyvDw1`sGy5sR}*ETdePyH9zJxkT&Y|b65L*A@g==m*@-8S7d$* zeM#yzVd?AB_tkSBj9d9@ZiSxnV?3St7A(tL4ElleN6&uD?`M2}8e`Y=RoQp=9J(17 zNeAcee0C}58H#^)e6WyzW1cf(?3vH((ALogOs3D9{!ZU%Y~OmR_bb{!_7~HCs0+pV z8T%Le5aHNw*oR(feTRMj{>%Jl*QmFAj-6v3b(TH~`xJ8>nRmhaJD>1v1;=C)lPu@E zIVijQ*rv(f<9mDZCpQ*?Vnut6oi!;99(|sTIwDqK$ zd8Ut{oyjYC`ZMlze9@N^WyL?jQD)SKQv8gaA58^+r0=U)UxsbQ_99)3V>ADfIhUlJ z*ZA%R`V@Ru18HF!nfA%|SqRJbHvBW&C|_UMKBS3qHuECBugtt>f_$^xD2p?n^!eqx zC&+I;k7MOeIZ!sw0d_KZ>B;{$q7&2u#x7a!>u`O?Q@Gdc&q+S@6^w`2=6n_L-LGRD z#(nDAn{dA38NZGX0lxanemnj9(gDn6 zsP8$zUx+%`#%KShe|_~gFz3VZtgnrZ>Aw-@zr;rRIR~MfDR0gXDOdJ?&S^PL(|2Z{ z;Ccmd(JpYFLtmPFza2QHLZ*AZ>C1&OBwfV)U0mz_7M{uf_Q*Vs@}gX++mvk~xlyhb z%2M8>`P--?e|`Q`)JLAl3*Ym~oPYAqHY2ZmUXJDX>>T%n{>=K#((m|k;CoF-?^Mcz zvM~HVkNWwS9L@|T@h!x*UVa-iGuV;TUk&ZYdB?yoH++P20#L2{H*Y)w$c#9yZFne+ z&l#r%+lEq|Clo+2i1)(x^rc1!Y8y)T^>ifp&Du<1T;q!HYmQ)Oum_*#>BzL=D`)s# za^bQ$zVSJ}B(@Sz?FWWZZN1&e?0$mKsVj!tdRsNyJslG))4>~DDPDVKXt=$Eg0m0o0k_2~LWB0V6$k0tooX8> z4#F>`4z~60X-#)^m4fZ|;%-~zU z1&26;FvTyWmjKz%&(x$#G+}B#zARm$eRj8Hb_W@4L(pz~VkzA{*w$B^DB6hP5Iy`j zcyW;4E_?v7lx}8$S~sqTl9s41YfOqm^>y{^pFq#)OJ%KYiP}2a(7}qsWM#XiI8;|# zW(XgLFVTCtdedzs#89#)_hs;5=;Fknj#d)1t^_#-u9R9CxXe%qZSQMu8yxH@X}CL5 zaJBe~rwwFZ+hBRGHwFe%slI^{!rnL7gGmlNlj2-tkrxNj(~T0Xv9~jm zp2)< z?&_KV7~Hvz-oc3h_NDhuWRjolOcSVcaA@@?8&W9VVE93#V8XC^UX!m=g(}V*=sV-`LFHA);v#)JnAZREpSR#1(P!PNbL3#p}N&36OtYty= z4F*l(``U(fCprGeqXvXAZnoL8%XafQn)x_nJa=?Syzq1S({PNmly+6s7q@Q-M&SPj|PH_ih#gj z=ty^_lC;J8r!dR#f;-avduc=hM3x5;5Zg8oR}80z0!9V{(le9}nBN$P&QwPaqF=?S zP4!@4ZtYF=^$eCk*i{lCAqEcwELRw+ibm_TeT5VQqN@6K5x2y@A7sGv-E@D@2(NDs zq|-qH;{d_iMf?a|MRte^5Ibur>RRbK_OB?DIsCO0NgGn2vUnH>{@7kCUnk@3uc1dosgq7#t~z3Nd|00yiN zLC@eJ#jxMm(;YZJ_ec7qjy$bfJDBP&F>lGj7kA%sGVSUcDls(nq?0}A!c5{;-*E3x zfX%^OP6h*t_A_9LrO0$fI|xNxi0txBl2KiVEFh?xgW8|!C^n%naM}GRcdy`(Ft$Kx z5=K>BSOBKd6setXjm7K2#2W7Co{2C&SR^E5NIN)+jbekQDKU|?GQIHIl^(F zM#FWd2h-_d;xR~z&^|!7nm>i5qi>@Pf*fk}-mVP(7cTAJ-PhI|5Vg(Om!Xsnt0z-f zMhU3OSONnY=vd||HR{H01GlI|y|M^cLJa%)#lZ>m*?{)%<5!bEl>F4ETD znGOh17cR6177{+x-qc_Q%bG`yv_IY7&K2Ik7-|kJ198ctVNw_D>TE6IJB>!t6`=oP zpgQ`8dRwy%SE8W|30-t>iY@w$LD6}Hut*;$>Vb`}9)ntcx=8OF4Gjqf4*}yqb%e0k zNI1GgCe`1mbytTfCL+xYl%}<#H_fqWqVVaUxaJsQP&Gg&q|CZyNec^1R6bewo&XPb z3^fCc7)+cPU-BhH!r&X_UBUpTGs(`L0QVX9SVLh%e!(IF@d2EX3#yLYtabgGC z_F--r5KKW8oJ|A_q_~T*VPAk%G-Zo7cJLsN^1NB1I9F^+fCMIu00W(xuEBKC^?D7) zz%CZMT7$-30C8vzY%|_0q0$;8SZ#>mKyXXoUWxjLuzpjtXL5qw%AcNqCdGuS=v;^Q zi+RVqUu4mjx3L}?po@r=z!^ZGb+`xNy#V85fY`33VFr2wSIkXC*?r-5%>fk&?lK(- z6X3RhfFr6f0kVLcE!;-t+7MhEz1NiNP9p(zKg4lxcd9?h1$)g(vaPQT-u22H^lxg)GHccurEn5*v|ZeNAGN+i~m@+#S|z<`Q@2( ze-aTz1VRhfH5!t-jl|-Kfa-!1s)r2r76EnY=Wi5hZ(3MP{vXpEi!Z^wvRgOm_Af^kKr`>aU^PD%k4jp?x# z%A`~!!A~Br2Hq{f%##dNOB;>rp5#;8U@ic4P>>g6xY5!l!EfRR|)?8 zrYh0DQbXMV%Qqx@ATVpl+$}-FL;|p^N-IRsuxk#gNGR99l!&tCgOyPCOvxxIE6W;+ zQmvK+BXuRv=0O&3zpMo+RUa!U)#vz(PO=MeL~PpF9KA!;olaw{LM6F@4}r#^G`#+i zsYa*2EQGETl$ipbk)cgLR5=Y4>Hab*p|30w$jySaO!gs1D9NAlF=+BJG`>+M(~L8d z9v;kQ3YA5&qj)nXK2j!*Of$D5sW#Kctj5_olAAN#m|rcQh1EKbF$&7B2J}`tlSpB$1-B}%iT&oKjrmYe4ff} zM)I*t3qO1xO}U$=FEyBb?zY?=sN9?kri|xOMow~1{+Ag?dG#wd4r-OwgJHQlPi_qE zOl3NBj)V3!CcTbQ#Gd9*=Ga9}5#|vZF5 zE$?7ln90`OwuAly%hS}9lq@2t89&Wwx{;RGFpL+mPN~_A^opRA4IOan80=WLHmQHL z(v4da8w*wJS%h)0MPJD_4m$V9b9tL4XH<|=lEhY+Z@#(>0~69Ad+{ng5>H=Se=DA@ZPmG}M^-F2DQ65GJpVufC&mQU?@GgVAH*_c_i#UUg=cx1VXQrP8Xk9ba-S%KWRQ) zXs2OTma|g2J+p7Bo4$yR#>$@60X-T@;q8^>j24b&cG?m8e0KGurp0~HqTQEj^Ov)y zp=*|T`ZK2Sm_#}qaV{;!at9Jd^XBV`S)Uj;{_BV7`Mv`461r(aXQ2FNIGEG!9AxF2d!A+*np6+i(=-XzU1W?KjRe?fbcMzuH{z)js%v%r14GGAt;5UvjQFNJC5N zNegajW*a3?b*zK|T!}oCkv^PvI0Zd8IOET^9eeuI`;h;F7t!K5)xH53klgVUU@yYG zk3NTNO3_Y?X}G0hz&ynUaY<& z-Q8V=H8IVg;ftYPyz(adeB&g>yTY6qG-VZ^L4tOIy!KB0PIMVhq>>PpR;KLJoA+zkN30s=N)f8Q>o**Uq>tKamU7IbR>ge2!_gZuYyc;ebiv6glKy_XFwHOP->EJ!v z22ZjCEar}Y5Ux};{d{>~z*CKRH3fY+LW8tpfWnJ4g5HjogDLXCmmCbf-&TZVVuB$o z4S{hWpf~1YngA5A;Zq)&fX2tuNrY-m$$LDunlC zCj<2?7{0U_&FpU5ux4%2-xVc&6r_H!V6isJ(lox%(cvi6y15*hwoLz;B!3FmJsJ-4 zm%tB2j)v5oD9F$hdagaov%ljza5PaxD4TdCg*ls8`C^?eOEQdjri~*)Cg9!QGCM*k{a{xyTb@?YpQ5<2z-nO7bCVyg67_VPYJAy}zmhU@0io$tIkK^oKR#tk1 z3?BZ*LSYf3=qp9X!3RG>n*~jE`o2(hUzE#1XbZNIFavu!GHdp(*-#oV=p6@H;$TN$ zT4|^|4@&r=Qt+kDcXAZBP#P}yCC~Xd3033`1NoqQUsYFelk5|SuPY+t zPGeb^n?eH%-i}!O!_g%Q1%KXXA_WUIVxe+badhm)haub6uEslL53E_YdIKK!8hv5n zd{4B-3D}LHUWl-W|B*#Su(n>4JQ6fuXsF?!8BAVPMZQ9p59P&|;~%w*c52=ycOajFsci)Mqv*-y+(b@ijau~3#q7>y#& zN=-E{U3_bMSy(9WU5UvMKla5eV=M{2w2k-fA58MQEtBta6GWDMU+^@r#YHcy(M-Cb zCdimxd!ANgQ)F%?$R9(`<-~~Rf6~2h?2_fkvecTN!(a}|(^_}}z6~j1ZFp0Ne^4GY z?T8NGTU>*98M1#+W;FC|5Z6RrR%?o{p226@eAj=doxy!AE0|-jIJ<9vP1ipOl@2dxid78X`@-{D^XE?me_+ zYTEIr@$TVrrC5wd#*f$KzEU>jddnvbIPd99<;VZah^E|wHuXb?>&!v9)gLOD?&?C9 z*ZVSKgRbwzS5aWs@H)+8Cl+po%JGPr9(r=BI2!4wvof=520i9sfMIlXepxr@+pUb4 z?H(E$7vL~I^;0Y#wtQk}?bLArGjmfOAI^f-d$9b)jICem4fg^cjBABbhrYj4ZGQ%+qN-@!5z@YFavA z6@6mm{iTRC>sGDCzk;#UzGms$pXVf6{Mab@cQP3?D&oRcp#9A`pfP=&chYz|WGvtMiYrbw&{}31t~w&tT8w z=rDa~;>^%Q_H_2+i?R4QQq{^8Mjj=-`lCQQFx-EDz4j=I9-Y)j(R^fB^@zrw?qPg} zod>-^t4oEHkC;bS!FrCIgtf`t18{Nt-$@kr-+FQM6>v7!)6uG%p>QoZj&lx7$L`_& zJ=vMbgv?H^3Q7(}eg6TP_Wc2?HzUv`{0H3*NI>roP`q449e8>GEx_UYzQ`rVN(?H9nhyL8SJ%yyRax=2~bIfw^U@&M8qMQi)4qi?S*|&C; z6U8_WXUf~#|Byg=c<4ebqbwZ(Neoo|i9&X9yc!c< z1IL5U^e%?|k9lKyTh=$D_`HI@a`9MDszzh@3K+9KHVteVT+@n_y2E9HN%Y5wznNmP zn8vFp^)VNu8?Bg=(V*Axd$us z*T|=6k~-GwDTQ`w-hnetD|2XbOzJDs!f64N`|u2As~($Lwe6m4j}NvjQ?rt40%Mlnv3!CYd&jc$|J; zmeFa$iF9r(U=1>d&n(GIhZapwn)QhOI-xT9g1tsTf3W%R)b|j z0@NN3P5ex`IW9BPc@GldrA)a8naYecHz8%(43c82rJndNkE7l5H z{bhs6q70sB4fwG>69k(qq6xQQrl)`EKPWPK?lIDQxuaG*g*}w>&Bx8a{PdX=g8g{# z2&M@y97qP{>=gp;4@^xg1YKlBWA{*BFDBVTX31t8sXhP#J3%?)qY(zLBaDU{$}+F@ zU>wrXup>`$jsw)xnY#3gGYeNZ9xnf3mJ-!+%3~hqnF#3qfc&@7M05l#ri=#bO!fBk z9Raa;{(%qmA4!S9!Jy|QMw5bfrw3}mXh@z-q#-U3NS_;B+vS;#q5Vg|5QDg*9#$&R zXhwe~Lb0Bw6-iMaO?lv(S;m3!*@vPm`dy-}-G7JyADzn{X`&}H6z662F))-H9`vL0 zcq0iO{u())YHScEvOx9Ia+8mSkKx3xdpBZFX+Azv9?~_ENmo5K*sRAF<3Mw0?#BlJ z{a0|82iHJP$DXd9!7_Z;QnSKkf$|XU2N)=!^3+ekAo`S*etB@Fy>02eEr!3%vsNwCA74^iZSPXpGA#RvpE zbmNb6xN^#Z7Z>R@VjUYv;mxuLTu#YC@t)0@Rrso`=6DQeNADetuN0qY7#`5y+}koq zH6K+sDCYyildQ6PL<9TM?FaN*qWTcg9OC1UNqv;+oDykI3{y@Yj=lxD(|KOq*tcH! ztW3!}k+Q9!Wwg>)B7Ho`7741hb$6;43!@`F=IA99h@!Wre>kW+=03m7xzA)i;TC9r zd~F*{X4<+^t=W^QV7EIxu%~+!;`7kyReM(_v8X=DHX2)_4*XAkrEH`xcBf(Lb=;Ks zeSR2qiuE7BzxG8u=H3@J|x3r4DL z{}VA~Q?v4XYpg&c;mrwnsV3qP<<+w4m9SwgXQgE z{tHv_dBbU7X{th+#nsPXnFfYBhB4jmn+8PiA+uxQG$5l{Z`DhPlg%E>PF3)vNgrP4 z&G-lsRrlaiJ_9|N{$|p{gNTo`P2s$&I3|9GW|F;WLLBLDLg_F6PWma63E{h97~i7{ zT+r2@-x)~n!%KB0=Yk#)Ev-|LH!>lNj4!3|$+yY6A`?S~m(^rrUPtd3ObFA#gZ%J$ z3a|6SYic@Esez94z)?Ti6F6(vQNylGGW$A`qu?p9>b>dSVZ6x>LFvJsqkl2;1gmeI z+ym@^ShB%Ye|NO~C$M(JZ8KN}N@n*{UVoN)ZD1!C1`K2&iz1hwGL;&XPky;%L&D1> znm()uOgY(k>xN?VpYm3(OU@Mbh2n2=whF5X?ODeP zRe!U3cjzW1Z&ruwo78M!f725mR;!d!6}Ea!>`KqG!XbO5od`L-v1_E)=(%lfgL2gz z%dMWH5;e}enubf)c9($qpDkl<>j&!1q6;~~4hID4tS6G#mHMJG9g^0+I znj_!mDMyHZwe0zTSg%^-A!)a$6XN&D(7jSEbMKObU1fjJ6XHZ5JJ*g`Z*&x(tshuI zB|a~2uY6d_&&zfCH)4LHBJ`(9(bcHpYL=R<|1DOFqZ=#hR3tPzY`e!L?D*YwA`<$6 zT{+v1SXHqFcD-$@ynmO5d!j1u-=*PmLoxR>duwQ=y}IrMdy6_Iyv43p3!>{>J06Q! z^~yFi%nUD#0=HkfF4Sx*RTHYmxwqIm-P;asZ1A6u->oG7bJX7}WQ|%b!RsgEDlE^k z!&bt!tvMmvQEoUK@}iM5W8vr%Qm7fCkwmH-skl}pRyoSjS8x^)yIdE0Z`*lWX9{&t z*awa3bW(M8fZv5woGwUk*ZuNrxhrw@9HIVK3L9INv@c1LcBfP;Nme7Y>@n173D**T zk(R)J+Y;A<4qUZ`Ym0Y-0x6^|Y+F2_kCiK2S3HZIbcOAT7c}(iElb>u?ZXz!eo_Cb zxNzg*J62rCxUl2m4>$sP*AcI`9U&co-*?)q|Ks{sdBXL?7i~{SPvG}y#}+@q_9urh zw}kksDui1h-WRG6vO?GuLWPAJ77v8NLWYGM7EgwNLkdXh`UvQj;xKlqUwHlE9kN+9 zs|MxaUliQQeqr|u6%uwx$dFJ?S38f}FWPm&{;e%8Tcc*Em#HS{da+0-RDrYRxRuzV zuei8U3El2hGi4%Ft19Qz3K2uwH^|3r3V4nBp{1%-qgoKgou#&GJz}Hj(Ea7=xydEM zeuEUZ$y!yLm>;dRmY9a@XW3KjCSIwvGiZX<7obF=!0{(#LTy)`Y!o6PQ$k#1^Tktrn;5XizYj3P?FG#o8>L)CMj>0zmj@aseiZJBu^LicVsB;)S<)Q zAwv3hT|ju)drxtd%#(jl%xEEe@%9wtc&1 zI&!P5xIvDQ$89-z)V@JFZ<2Owv6cmlqmhCQvj7>)LLXmkk^hy~=c_mL0ViC+RIXxbn-VK|&RJcpUJjeE6e=KZK&lbXw z3-Dtv5bGl_J+MC#)<)k_^F(5vXa;gSYNH#?6Y4{@*lD4$Ec~OX3c)IZV_b2(e8UyW z88LtW4(8MR;+&=V&sEZ8DgR8tAkx$+*FPs5niDWCuc90w31!(}HvbHUga1f=whYXK z`R6DJ+WdbZR6{I0D|S2r@5Fd)$~YPa&wY+~4}YN8F`H0PF^{+%bTzTwrvk^nQQ`t0 zvEvKPMiXdql#9Vd|KSQ)(X6^*RKX1$i{#=un8U9GB0>PMt2Bg-R^T5XXdTfUa-?*~ zze$0yESgFSfHe63biJAdvZ1fp#7W$`p?%COt%V9hx=1vJ!8J5gixR(L_1FvQb4pxF zA(KbkM2$T5Mago0Swltsp2`DkIfWVz=|gCWath?vKqVlbEJM*tDvAvSqRc_R3gLRT zj8-M`M5&6|EDF)#g#XZDGsSWF*Vx(A?;LS5VZR<-#U-wngzwVbC zfdUd#G4?9yriyE2A64sU94t*jM_)Cid1nMSua1Q?8odJ3aAg$>!CPf5)#ScLlw`7rF{jH*Jsi9pGRKLI-0Z>O1J?FLe@?qYTfXiE~9Q z;rNeIbHt+2r|NbkPRQ?dWBVNH(>*7r`@{fBWP%u|NjxXtro)p0{!zDlUi>p&C;aFh z<{J$E9&6z_Eg?71w$Ft-ux-m$uzrHDPvGU% zLd@c2?`C=CO>(<%?~tOs$&PsoRJ;O%04EkT@*rvzC)?E)t~A-NMJ-p$#@E6{nk9B5 z;7*|;{^%n*R2#(!S@OWS>26_7xF%n$g5M%%h>ia41b+wG=72T~CZ{FPth(BIA?i>g zyp($SCkx=8*k_2#Ywa1F;`q~^^?KT4SNW5kjWC?s4sMm(YOpQXx09UHD5;dUe zt8!J(6LwNpeTbeI>yFy)#iQ!p<5xY`RQnYuRD4)A*~>;4 zJB^IZP)%k&=crS}gIN%jxU98RUbYTf4BMvGIl^9jhjMRMAomg32&?5lOTq`->(PYk z?e$IZ%1sS(3?V<3a9YL7?YBt_*Bb4ggU8j%l_-pwFUqU=Sk}Bk*ZhnWKg-q}zDK(E z`xRHk-D4|I$yxT>b!9714IowGX?gBfrF>e}>feUE<7Iir{@o4ZV6KgyVuM$fLpzec-margu$8df-p*3GWk z4jX2NRK498uG?1ixN@H0pc}4qop3XzewZG7NhQ9bs_b}!qoV(=tcRc>?x&UW5VWK! z6mMR4iT1HMIr}v_mk{ULmsoN8EUV5w-a0E(=`^~v;U={~t+N2wXfIb?n6SM{o}=C< z)lTaoA$|@+E?LH;a#3%|bQ{ zRV(aT@t{>JWUWw`UDS!sS#?6z3AJ3<%f(~Xav_%swGzrMp0rj9xsttQ4SUNg#8<3Z zxN*7eaw4^ACD1SA3}HI~*8%WrfP&>#vl&lFn%k#{@8?~IYOHBhm(@Z&64*Ah0{bGZ z8n;XFg4L*1&biZa-vjro%C2jua5qGk8=b?%9m;=(y$jSrKp%q2ErPC~DC*sS`b@p+ zT9*lXnXdP(n1tDWy%73mE%z~a8I^WjU4^$UzRc8opTryv3b@n4rDdoS#n4sHL{~k2 zYeLxfO7SbZG32QT{z**pYv*{eT6jSIKW~2A)bu({HL{Ku{_a@g@2C@ z6m3+AP+i#hwQ}C9oDVqG`)&KPxGk(6TdjF#}6 zP)iFYt}75U`JD{^R)+pSUNLPA{}sl;#RMEf!%jAh1D%Ey$MFnwix46@&}18i4;39R zwk1>qE}Mhdj4qNCVlKi-XoG}ZV^v_{uk0VncgP<|`9m4izgzJuj{B)(*+eX&E)B&I z(TdGzZdpX6&q2GcV0y=z(TLQL*aul;%X zjCvU4p70GNR#Z37t#&afb6|Sxb>3#jj)bCa=ydOlmf8zvg|>RznwN#$#`B%awJ5%b zdZ3jLN{j-&2(6z=4zk{5=eI`03A@E%xm1OuhdE$$gs*dme+yKD_%Hj61Y?WENr>Y7 z33L5wHxltMHG{ViO0+oDvGW^W+3dzt$aPjE-Y79OrU<_U5x&CS4JQf~Az?4HFaceR z+FEwaku6bd=jgo>CoQ$^vM=+^(LgA0f3a28BiTX@y29PyJn!?Ra zQ)M&Eq^dwz2RJ?f9F2(Iy$kyULP^IXj(3?53*dCDgq5sBL@Es3sSJgk*+9MPa>S$} zdD}c3?}UeQ>ctI_#w86+jTegb7zsj&L~SgRaPO|ivP0*#Nqp`mlQ64)14V&#& zgzJdEUR|Q=yIP*}T6wjMd-cOQ#h>d zher%;cvmPIfdDGJM(ZbG>;J-Wm3Sc>{c%`%iSLKq=fZY4q~gy>`}@*W9-QO&kEQ(r zj}Jv6e|4?Dxbnxc>L+sHUv2q!E7B5Gs_LweSGg8*u&5h#s-AQcY|>j0l{g0ht6uwq z%4)D{C{|uu29;U^m6~Bkp-!&T;M(DZo*k)r{(VmoB${CSwoF#^u(EjQAl8xb}BpI58CdQCerk zo z|FEpbP!8O0Uu$~W3z(b8e*RUef0{jz1T zv#Lt1!#L)KFx{`KvelcS_6^ad#u!4sk(hU4O{CVTjv)5!8-fQld6+KjQrqPvR>EB# z)^YI*)Xhr1LWs8^sz(E3TOY(wVef*;5~nSO$BOxqKiV~s6+Ovm0?k*evtE?)YITj& zyU!}U`>CUM9s2iW`Zx8WTq92Vn7j;QySw)PDek?s*TDf@pTw5Jb}BY|UDf)-N;ALF z2f0%hiLE_FJc0;xM5>eAeG%IoQhlL*=;8K;9TlqnJnJlXr*l^16H2agf2OK`;i|_Y z&|4LQKUVcnB#eSKBPDJXuA*tHtZEBeSjD4u!l}2Kl!HMIwk9$=^4o~@yU2{?u@%wl zB8fQur(-w6L4f^*-{IYA#dOF8eO~L1-U9R(@%PPBmByL-o!fh2^0?$?(mbqGQ=^ZhTkhF6o3rGaM9Z zv@cQ@$t~(pnD%urVVG^p6ns+GsdiO(i+h_4TkhKMIuBFY=ymAV6?Sz)wxOcZs%WTQ zl0BP+Gpl-T_N)nKc0#JkifdJ^tL(asji{mNPB{}U;H*<%AzK#Aam8t~sZgP{RpNeY z_7})a=mo4fWxe7S+R8Zy^=CcEkOki{vFm5@?Bm60pHkv0_PlxFxz2)!YPKSCtwkQ@ zXATU$tJXlm5jDq#-?at(-0x@a(4OyFdz+OA^{NWr0C-T0ljY;|!7e+cb+I^YuejTp z4R_EDVU?y1uAuLsUq)J%*$t|~!8I(6s#mhenXQY&X;+HRU<8h!KcYx{p(&DLk=42g zuCd4^v?yN*!=kK9*NM|Mk@@)AMWOg9&bB*XzOegowih;Fgt0=6PSo#l$BCyL_B6+f z{MMH1;`cih^I`Y_dUn@wiAvxu?639oc|=IJyvh*S;u0q-eoXX=XtjdkpUREKiq2)CV^=_Tj*w_$l#@USHV6(9< z2Ae%k{4NA<&9~W@c-8neyH=dGK>S1BiSZ(o9Bb}3O1qAu9=F%o6M0t{CjJ}Y#39?c z#`awKFCjEY;w$jbYU~-;NKEHcEsTEM>oG;M9}dyJy~B;a-F4pS*215yF?Q~kEa%w2!2|jw^`P0mi1R<{S8-P4q)ov z6SkjKIa7awWxdI=eyyzEXaEnU9(B!-_l98VuMf9`8nmg`MqZmG#0y}$F~d>KbydFs z2V=Tj)^uVuZp`?Xm>s#tvEJj%SYEp#dX4SC=d)@YZ@p@`T`u+$9vbBPpqWB^Um}21 zgXPU_G8t-i4$06GnEKi3_cHuuBwRgb|ZFTwNnYFZ=Dl&X4=0EN1#g2Mx19N&etN~A?U1`_)F=fo^XTropEnl$9P}QylXQQe! z#LtlTGK0aj85;Q3Xf5>KQuVwv2a}{3LY*h}pC?+P@E5pVoq$hJkJSfx9)yK76$A#h ziGzKq8C@zB?%MbcS^ahyeuqRbb!95rb-MV5+=R|i?K+jsbF4#Z#*0#YNQNJT1Kom} zB9F@IugLJ1rTrDTA|yX9qaTsp;;qJtK7myah5^=CXNS&#aXg<^bB_8jMz%hXjm1}M zW2hP`W;-k0X!vy6y5CBK%@X3^##B?+AV`{*vb!3^ZK^Q=GD7HS_sOPzgAz5`F$D1| zI751$48K=4V*)4p?LA(Fo`?Mj;%`R$1NLLBtVNKM^LzCRT-}JN^&ootJh;S-FqU_# zFIaaedAC|}7XqCJ-(icV)hY}YVReeCw-Rb&C>nxWgwkQ%l&-rRNi!9BR~&t%a@`W9 zN-%+_LH<&!#%t8mO4i%+7(ZKt6pEi=9Xqk@GBCJ)YaQIIS&QVt@E)f(z9-S^E>a5} zZ0%y+tZi~b7!f#Gov3g>N`X5cmg*y5)(h2#qL{i>%twv>NOh-<2Q5UGtyfF^fShC9 z2|i~jiS-2}Ik}0j3)hA@5bcogz&#Q!M4i8hL-JWEHrCk9p-Rj~&c3v^r#`O3FOQ*$ zD-pg`iM!=xcS(7-{Gp|HJM{0~yJQrF*EU;CFWAjhO#|WrL_R+mvpx}1@DmXbh=sAV z)+TM$h3&U;riUaa+_*Vb^#+WCA!wmvud=<1U_pFNt^tA6`ps5t=nUt7tnK2zV+q9S|hs zQ($M%-c2>&;m4psXiv01k|gf-lO!5$Lh$2|d_Z1lU3L7G-c|C-@KtdfyVx%m-;>)s z1Vv%3=h^dMeBAq#^)7{MD0n{b<{@Fv#+Y+vjc?`-rj-_7i%&$!cWk_-@t^AOmY1qKHWv%wSa84t;ar1+k-6t)0i z1?bW87;-t(l37`8YL>%@EkLz}IAABKwF~S!=-jS8QIm15_z9!zu#?qxUaa@<)DDB8~vm&9eC>q-k9*KchtLEEpdM4)U6%>SXP*#8Mn{4lk`GnD48VNZ4`1 z)rhodg{YBtXgS>??F_UxhUqZwV7btGO4?XB#JWa8&P5HcMhH@hV?by9)ktf3(UMo& zKahI2^+mXJhvf&u;)GRDIJeS@x-l;rQ!~A|<${mz!U?GKDrR7F>NL#77pVmm-;|XXRsf8h`>!E!2k5Z%WMEC}OyGTm zc&BVq^UdN%jXaK$TIuIAHDL+#!zh4xz#2>)4$F1~)(D-QHPpycmE}X@N|Sv$Kq7)U zNILO_KgekN25LBr+^_H8I`rDXDXvTLHJquYk2=?cKH|uaIzMtgf(hGU`LUSznOdqA z!uD3G=9pVmTkTkzk>Z!IYvEI1#>jL@yV=21*sfUWV#s!v@e191mkl^qRfX03dFXP| zoeR$<0SKssi~K2iyOykeUPhI3i;8SQLZpF{s44C;>_Rxggp~S+bZ5?5Y5gCT60C2? z=(nZyKhnXSpGjQv{##oAC1<+z-;v%oWz)C#8~>Kv8PPN?(D>^c-l*aT=c2TwOIy!N z^nYD4{1etPYoxrR%h!EVTHlgqjjE;Ea$bje;)jv>RS`#y90D8JWVq|}g!o&^zQS5; zzs8zx55tlm#d4?fv~*9BJDryicBy?meD8l?$pPx@LY~VcR#AA2Fmk06LHMlBhWv14 zC1k9^OWX>~ZkToE*dff3J-DE2(W{%V#jTwh(zRB&&9VY_7;dP+7KUHCPD5d(0ySFJ z`5NB}_-e?RgxmiG?16$$)SG^}k@wd-cio~4@R zRMj`ChKBe_OI6GEs*Uqh)21b>a6MUdOtY#xHa@ReHO;ST2F#4vA(RR?p0H5O-&*V8 zI9j_1zl*(PHL7X3+Ton3>=`>MUylCC4zpPP2YR+Zx}sg7?u|IBFzDJ(AW)6q(oKmM z5z0L*A4-Tr_7c0nUf{Odmlgb%vQzd&_KvOHC%?k>&dpkdguDy(o~y+tA%1lpjMX{V zUXE>7cF$w8@tV1RE{-pN?|%vQJFp=bqUKr4LJQT5u;(m6Z+Y5&HuP028XcCu4~hS= zm)a|li5v;lU`&}WPr|f#6Q<~qP&K;Gf{0c7b}45fOctrJmPe6LXsxP%CHHeEzn~4q z8nsZJFFpC1(3uGFKBg4nIF!P!A2YXg_1U%JO*D+>VMz{^hau_~^pGl;Gz*cGW(SK_ z=!UD|iFlE!NOVpuEwVpWzDt`%jQ#u2d0cK zdfbjbVcU;m`erS#uCNBJ<+d%4fi$j>cBd7`<#6cS%3CCHeu|0ZpR=v6+wpJM_SbEz zK3nFUw*8-W{A>KRHpg)Gj2(ZLzt+asu`mdyqQ1)Prt6&r^a{bt1}_#B7`6mPFsvb9 zE-EpqGk|YJxI$pXoyw?=5nyhsR6_*u0X4&(9i6qMB{V1Af((PXa*?$#zRX@4T47-! zz*_DsKplty+AAwoGqRPfZ%gz9>-hLd_KBgBt?kyy$SZnTe20A|j$p&F+4jrh7ue@p zJG1AnaE|lq$^W%4Tp*AUVxzUUi;p_$PJ2N$8cD`$@AO;DyD*Kn@9F zSUMFc+AQ>lW4#ysUl)oXwpU>>;Td-cFt(7r`n7r)oJ-+yb+vep?0vIL+$eX5uW_}f zah?Y+7a^qv6@Q< zt6A_67O9O9oHp9;fdljzsTRnKh1w~+)ta(;@kR90(Cbv_dMIgVk)~}vCN}R^?)`Kz zJgBgeRnU%|f{XZ=Kge025?NXGPpdE3UsdvH_1{YGmVZ?>32&vf5{d`6W!%Q(HUD}w zT=c)nHGh-NU*!^v#OGU8m@?PcZ&O(LO<KPe&Rw8O*|3RXC?b{?1apAY=a8KNhH({y4cK%B_ zzrag=t`RJPR2ayG{|FnXA%U4&SeH`8r$ z?1hLFI`uXN^aex|Eo>3U1u-_zUl~uddu_+UvBp9t%7wAU>wMHo{EM{-UYawrQq5ZK zRz<^}m8io4kniVy9V3kp-&6K{lxbEkS8tWk=0uB1Rm3VQD%K@-*pT#@BknYeWZpmkh_8>t)Sbbv)rVzrrSK5e zf0MmfU4d+-Z29+M)`-V`5a3y7;UZSetap>;c!n6(rJ@qL#>g&~hoho(N*_bYP!{U%LyVgZevJx@RiUx#m{Apb)XAMbv zxgQPk6ei`~Wjk18kjo8?j$Wcdkr}xn7qiF;tRB=dpNgvoi1&Eg&e>WGt6K{nGyw;~ zNnlE3SJvc~OkT-S$77`$&K7eV=i116@V4#RS|z+a;(I8FXa11)HrFdzSbEz%en#To#XW*_Cl%ISvsUU3IfH&#yYYb&l{b#XKCsdL3*g=7TQc z7`7J&+(}6PS;DDLqqUWejkj&@)}_M3I_A4W^O0c~!IW;L?NtEA7ZjGL(7vZ2;nFbrCs^ z+jSLA=wvf3O<;&1md*AIq_x#qptBK14v`ga*Ew+O;(CMnAnWVDLoFD-k+zM{Kis;Q z11G*Rl87Xn6+X$0@-+&fsm;jd!Ijy3s0MT|0417=+hBLXAlj|RvV4{TK56%A5-`JV zLC32k0kt^P1RS3u0CIX0o;V6?0xSoPq~leD6X66rT`jFf*~40r_67@AX7f2BZ`(!C z4{x7%B;2GI6fhWB4mv6FnnT`*nzXUCPsfx*3(v7GMbXtWk)Y|z;bfl*S+t+s2wW>vvwWiz z2WP2@cy+=JK^jQJ*`Vqp)rbIPEB?4{)p;OkDaPw_d7}{q3pPotKzDR4)BrY{lhxt_ zcz)(G_5}}1ilQD?0J~ay9$CB)EPkBvmU-BgV5?5oqrgp;*v%B(LyZ!xE%M3rd&+FK3vxev%3DDB>Q}+7 znxAX}JT&(OBq<GRaNc4_WRhc^NpcB%fiB@h0Bfho3;8bf%=}c zwH6iK3WKO9C>xb{QQO|6s{cRQ-UH04>iYY?yPbZ{t#j|4UVs^9fMMvMG`rYPL{T8I zL`|_kqA`j284-K$y#`Pb8+M~n!5C{SF;TI^iW*xqm{?+aKl|JnEU&-+?|q-=|2}Z; zy>srlr|iA<+TXR-cdc#hjoLl@+REQxJ>Ob2B`Dq8#O^m(rdVM&`(vn3E6~!~st|-X zjOs#J%Gn80IS7m^n}8ibbHSu1w6gI~+J(r*ILlVC`)!Qw452%%+w+%n#>2K}4p|^L z{fzy}`>qtcT!Kps;j#GuVU&cX#UEmBl;u~frgO7BaC7S$fixwqSHNi!I^uI2O)3e> zlLqd_@&oMMq@3|vKv6TGt8J@yR6=i{#sO#XIvP3N3~{ms4EAddz(v1OaCclCsj>{u z!pKH$YhTN=<)JHh2nsbWYo)kb$# zjdt~<71EPwt!QrSL#g_MDLu%t58NCO0fwVMb%2PALYqG-NuJzN<0a;0h zdrzi3HZy%doET>}N(R~^3Z7c;c~0hDxI;;~!HfBq^(vlEw--7hnUL=TXuep0r}FhB zC9|94Hh_<#Tq&1{;8o0>uKJ0xpTs2u9t1b zA0xvvnUkAFn~@eLx*&TW-bF=rMqbX`FTLAjr)<~*|It*lX}LKR9vCbi=SA%2kAdtc zZuIJGeBvJ-=>!$*JxlINaKFVpvb)d+eonlhAjVd+f%&251(Us#Jnv-BYw?@C(_HV@ z-VL5NssFnr0wO`9ae^C_f?G6R9TqJSYLZ{gGd;&q6Uwo`(5T452Hw-8w*^bk%l=YP zStjICQCKdjR|xNFtNb|VCO5$LFG(Yj`Niuea9a@pq)QTojF^|i){STvHPof zkXoU%O`;|4C+-&T@%}^jkGHi!`c_L>KaH=tGQE$BdxTysc+IXBgB$CchTbF0YB6Jt z@Shgp8bRm#YlQo>=($JqtQNc9Bh+fK4Aw4RG_4Wg)1t3ceJnKO!?xpWjQ1pUkLX-2 zj#Zf#c*Fz_usqhlXy>@pq`G9^p9=Yr46ZY3rLlCaSVl~*p9$v^`XZN@Q-nct9xcoVLNVNb zY0e>@slAv?A?G0pCpz5Gzti_t`Av8G;k|x6&{QmS)k#vHEY;<1`BpAhO91d?{w76c z)|F7ypu5TFADUEQ#k6KEaC}?LmErBeyesV$`S5Qpr;a32WJZ{yggHj}k6NUR*?NR9 z2Zrwm_J`(I+?oBsDuIc0s97n@-uTLn5Nf3e&*IWZfz(fWdY$q9F1^19?GpTm|mlTINdZgLWTqo80L=h~To3<4S9xHR` za-o(AzfdUUAVFn^N4kNXRV)-)HF?}1=LK2Y0~ZGV5z0MUIZoVRAZG`%5HQbb*Rqr$ zr)On2H2a3mpQ`iEh*;%tzQtFHe74TyfBH3V$qi|lf^*1c!YeN>m(CvM2I=gA`*#a@ znUXzFrU%8%`ap#b(fU}b;N&xexr3Qc9i}H`GLKtwB-C~>*ru#wFwP)xJoG%*r@BN> z)DtGjbmFH06y2Wq5L8A}A}f#!jX+mC2aOeAxNSI{!UJz z*0!+WQu`-Oc-eiC)uff(hGu$O8;eb3CLCX?O82;es14jNa2Mq((gp8M^~NwISich+ zsMf92%o3|Q3C+?hyW)fBu{*2U(ra5$n}%M?qdNBo&GoIoIo21lC7IstHKHR8>oh+t zf<3vKI%tn=_DnKQloHSSO#GJ%XlTiQhZd6Q~Fwu>9YptV2VtMM2yegd!ZW4#l zjt6{A2R9#rYkw-VD+Im=R*PfXV>)Ha+ z%w)kS;;##)ns*cZ0%Bq2!50;eoUd30)c~K zV__=nA}LPD7H-J7*X45ByE5nd7B00`LAYQ{rnhm8NS+qe^pyrCFUThs<^fo-IVB$~ zA@~`R)@Q8}pX9yBtmlpYC6(h}FfeCYDc(YEEcnofgjaDcqPehCIlD|&ir<;*M0aL| z*m!<8Z=3mgUdyk!xS2O-zM3cJcg$1iyP6lycjwjd`6u(uyp7oQVe8^=J>Q$RH9oN} zUEbDwF2gURvon{O*Yy3aSCw9)vZ0RLg1#%8yP{~`$I+=~;1}On9j?_s6j{dU;7Eg} z>RuuLAk-5gWDZyh3%Br?Ah?PZ*oP-n2)x;C6MUs66S_QHn8iXJqs_mRDFw2J$>;#} zf#T0S_BTh__an+dPm2e|qtkXir_qc-HT>Oph> zr5`X09HE>h(?z~SOOVqyWP;3`w-VnsfPTU0sgWXxvk3SD`uX!tHnrm-oE zH6}#r;ytjEOx%@Vlo2uG#8ELE$B^vX6K=x_F(hs1;=D@cPlUqrf3CI4JyNZGF6GG@OMmHqB>fA96HBD81TWdN%DC}>?;7cw{$nF7B2w;paol){lj+E zK{(zk;t=Z}HOFv)OlD_NLN{_Yl5)QGXx2yOks1lVmOSR7>O8%idQE>IE0f6C(trKO@QM-05V}zC0lSd z;IuT(88&lc1lv_&f$hqbf>vl^>s%__Wk?G{Zoc=W{k+}$IDOwRbFS0YP^`~(22kwV zr9VOuh6?lp)=XdO=w*(1JqTY7=w$6)|4#$^&QPL&3Yxj*-RH`n&}>foxaG` zp!#?G@J-8{)b15-t(k5DDXTxHNM1d}n|xZhSM#9cXJY-;8tOLEH|5YG4Ta#?hWevx z8|p}gRewYMPMgR1ZNp=(ZKz|@FADpvS4StOVpMCWy0oG8U*AwY@|gdrp$7do4K*!Q z36G@H`Y>zj-68-AE5y-Oq#D>J(n?!cVe*%W+5N&aEpxKhhCa!91?l_h9DJ7gd_3y< z->&}9HD~(%X|)#mverW0iA0jrm5}@hZ!Lim)zmEUw0zp&cXp-x!;+aie z=h*&snYUDAmxsK80o@3s30J$C=IKLr>6X7-OeTa*JPJUIp&(dec=*52grPsh@1DdOS?_;C6dC&Y?d+T)J zpW6LbdPnh#qGScZY?&@rbTIZ)Du(jtob~qh^lv#*AhwjCIFs z$JksYj;XmpW~N?{*Y({5%&1icDCj{nq-F{tnHeMh}k}tB1`E-u;7vW1aiN7?Ak(IR^ zZgf)}#SX`sD|~Yqw=i-S&Im z^?Ic2^G8};{I;Aw39LPS9_1ijimFiqh3%?DYT9IWNYE$VfbY;I{M$Trvj_BD>zP-v zEPGz@hRe3Vd6CwsqhQVY)_FXTOUc4u-vDwv8+wJ_LcQsu#+L`sMjX$}k$S@2?9d;; zw6-rJljnv?aGQYTO5_b|qNQq<;AWgelyts4#L)bj3te)hkR{<)#r$?UBDOZ}N!%HO5j>lIz}du4p8<4JXY z5&p}OvP8cQNn5`hhihXwnqS|DqVnI2!}nu!&|vk)Fj_*O$Gs2> z#O!PS%Y7IDMw!M~*c zfduhf@0q8()|Q}x|NCGw#cby6ZYHP}(`;I@+o^3^N2vYOVQN!TkJbLSkOBJFFdhM) z3w-vua8a-6Q4LH0<_4eik(rz#Yo@C2QScKgRsH9lzsPSH93=MO-OW66yf7Qu z+6@Yf;ta+K@pFv!Z=CR8+!;JmBqm99s=DH#>Q>)99X}?%26AIU zGR_^DeN5=bMTFB4pWC|>VCmPo>llTE*Y!`-?WCDX0!`E9<-*0hM0|`|=VvlofpwdR zLiuFQ48|NGb>DgsH9=`NVxIP0*VB2Y6c&qRCaY>x`2`xb+7vY^!UQdCacj`ww}%8T zt`|cYmP3jiroE%bbWiQ^yBG5LB!R9?rEuXYYgtr?^R5s_>CCcRH3+tMj!C>@lj2NY zM=@BN4kg8tM^Z$ZZKX-3k0GivE^4da5so~uQaIUT6vU_I4b^09Z$!);VfxyN{z$c{ zr+b5-u`+IbWcZEL{yE5UZswsc!dh&2Gr1fSsDlf6!VViH?y*j~?f0H(QT=(;gv^&5 z-4!9NvJ^j;1WzTHA9bRPPiSJQbMq;X<|D|>w(=JEG>sW!T{`u0KN{GHn7(2!fOf6; z4^s0tAu{!nyg|Mw#Y^(H-iu_{t-yQ3Ks0OtQ^+9Rsn)~<EA!(mwAq^;h=8zx23emx>LN@Bu?<7t@soD4P`u)7&bsf$P^FiMGSKj+^bb$2YFY|g) z!Q*u?S-s|nf_G%W>oU{y!-+XDTcYTuRL=?ZJo#U_J97*fYqXr0#obPcnL=`E0fHbA zetc#6s-kyoF(k#00pXjAM0`rYIkf;{crvHgkO9wRq=Tm;|0Qk`t+H>hpV<{xlutp4 zdec^rg;%5e+Q?Fz8aD8*jJ@|G>IF5+_oCqaNI!<3iivYABq)sPPBX;pWw!8KV9i)F z+T2<+pA~FAs=6`umc#_GbX~+vq)gPR^xrG!b(FA(J}7wqDtOn$>g1T;UnQwuh0VP& z=ZMWm1@mzMU7+f2jC~5?$};JxmM9wk7#G2QQde(|y<@-ryMu$Hism8X-_F5JKUW7U zn@(~d2OlhTCGj@<+9ggYn3IdBd{Aeb7*&;u(dFfJ`-h)*C6fy2-`~4u;1( z(!Fq8*vQgmtAM z{zA-mb}jS$pt;_zeVL{<9Em{=w3Qf_Ogb!8zg;~mnauBo7@!+ZOa&bwLhFYy@;d|Mg z2`tXBW{p0T8qBsl-Kwm)lOPzw@ls(f5W)SzJRrRLMX*N5t?+3EYE5F^PIC7q&hHX6 zIy^SX{vjbb8l_!a9XZ83%~P=!XVfdUJlatztrTn=#j<+Sm=;O#-rT z{sB~U>(r)dGqt@MC%1H_$-y4}Mk*4A&SVSc)U@OZ8D1@I2ET%4Pk_VwJ*q^SyQpGh zFz;d8l~m7wXdX$pz{cQT7h(zC0x_4Eaza>(1FG-^Z!+XGWhg%si+SHL>R_m(iB};2 zJ(rqvp@7Ry{yPb)#J4NOVs*f%YiX(>nC;az4^O0NCFDbV8ZzKE5blDgYfPNL^0V7-Ij@xy}T(xU2B5(I? zomr;WOS#iRSL(-XhutUCOOg2-;SH=bZLZK}xsI>U?$uhh2ghkU%@H=eL?G1eN-YoW zH^vTC*J-_yNK)PP+FT3bG7U_<_iOJVM8sAjroo;QLBEY9=-=0bd0*7*EcIXi zGB#oqsv?wXE3RykSwm?X{Y03es@KB!Wocp6yP;YeidRGPKp3p1eiHU9*h-dH$d&^mmgZB46HQCQ_|C`lX--}PhvUjKsWcBjq=7GTfBq07P<32L+wxG&J z4{&A}lV`!n=YTOJ+wGw^vwxMNuXPNL<&_TAAaQYl1D;b~}) z=Qswh)d!Bj6EPQ*QU5iRacpX(pJ`FXe)2q_pCYNE1}vUMH3BS-N47?zJrbc)U=af> zdisHdp%$N^280C`!2F`eR8#{Nllp;01h8to3V|z9HpTchPgOU39by(>M2O!^7$H&1a_XIc2^dyo)zy^#9xG z8wzzgeFH-5l>OJQPuYZgziZ0+@22d*Oj!_@zcyuW0uTK=9yduJxA?Wk_2yK0)DE@{ z|DR9U(7OAl?Dce~BQfx6&rgZJ6tbjK_OkDO{{L>u?%?@1U*W2*IVO*Gq>ZvK z{8tSQ4E-OklV5)wPR;dd*BSb?>%?5Ar~f(&Gw8Mnd-t=T^8%h_9`kKD@QV}<927sN!nM}NM+w^$5WJ^6 zBF672vkp$}dO*;RxD&AiKVCl|SZ)EqzNETZK)?YO5U~CQUf%x!5DfTulhntnOAY;C zU?~2F0Wc5)273CzfVCI~z`)iP4BTqLz_oyZeu*j5@9{3~oM;zjhkk7^5pA#)`z!Pp zIka}-hka{w>n`Kw4BAD_>0>b2eg8jz0S7Q}NIw`jTnwNArf6Ltw>V7H!~M9R1uw|M z+I#dXT=3!mE_g-Y+j`Ryx>8*5$8Y0;Tl#SU;9cU7SBo&(lpY#VleixjEXKs{#{~zj z#|5u(SPd6!r!N)q6Co#m0~lQUKLGVQ}Yn0fQ&Z-Li)s9-UU!%jq7g`Uf_6 z7uo*L9`7-KPf{r`U}^~FbkX6XcgfAkGH{3S-3_Au;0hHa9~HdBh=o-Z+hx|((7}D- z*Zm|W@of7|d*unW4c8JzvhZ_d4Lj~;csNf~;2N1Oo&&4&u>)o}t zGiz@r*WMy_-1s{~Zov6+?PHwGlJli@YmX#(uiDp|3HdNt9`dR`89ZHTI~ zm;+ixdSsdJci7o*41rkQ3py`9GLIo{db=|_B@XY<%UGt)GL zwUmNfB=ZNE{cW+Hx16`B}*`MCb+%BFIv-piSBit%zb1=g7zTN?OkNm&|xrM-b7i?LY6Zp6cx#vifOWu=%CxsKVeVkp)2%yTND?%y$PUw9=m^{6!Ftf9o%ol!T6@CodVEr2dvhafl<-G=W@LV}8Rg;G zn#pXlit0D1bo7f)|6l!Y8>C+$BNf3-x8m~&hbv0 zAu=6^NekjLp3eo2+v{uMGn?`s|C{{4jia9-ZxK&JfIbvvT=5VbS4hx>FyVD00(7_3 ztE71-aqp+P5_F3PWhy{HH}Zo=1@S2&JwyA2rz@CfPq_w9d9kRTmeycGbn>a_)S2Kp zY1T+Ed!u|=nzeXqWw=&m_gDWG@rTrIv!X*<$VoDHHfB&NJS09GE3-B6xl(#p%e+@K zg==K)TI)J_65E5{H6ldWuY~AHVJLQD#pn%TsL=a{2>&j!PI1zD=H0ug0b@mJ6FEiP zF7$Zyihx6QoE4=X4v11wJ@+k9n)ttoQuaGUsfsA=@-0y+42}nFmWombqSS&YjYpIU zeR||xUlS#pX85?c%}pb8EIcq85xGDdF5<;vF7<7oeiQK^^CDFWdLDJ!`Kw4-TxA*< zVKxrhKv72nQ1P5LxWp~U#7K_5L-1iTo8gb2QzU+9ibP>LIGr`m)akkSG>b&r)nL!d z?t^FQhpA_3Taf6c>Xq2M7^g^dirF~0Oc|B|xJ(VO9Hz%PNDl8u=JTldROGxJQC`ZT z(I+EF4lhLN?Z~_nfkr=wQj)_Y<~Go%w=fvT>Pz@37D;z|5a$kL-94hh$4NK_gEmNA zYBskjbGF6{KQ7rGC2<@KLV~;_;j>HABpa#G*2tl4CK=R28|b8rUiGWmJx_-hlbLHn zNBRmKE>E2^D~MjD0QGlxtk%oI`>8DKApb4|Ra_1gKNcgLL53tin^a;`B2IK|eioH9 zVlnqSd{&l-P>0v5*iS^Lfm8!X9UvkM0j9R#vl>ab`3?b2olJFd>$Lhg-Mv!0C9V_D zqIODOzfjkuy-s-0_P6WsM2_t=CJE@BW+%O~+6i{r*QS(-jP)OI#1y)Bgh_#`Ee+zd z?mTX%E{-0<1O#w(W@Vn&9RqG^FZE&_C+Xcqq#s1?Qdk@`tqwjB29MFp+PtFUmo;6S zj`BC8d0p$*wEDZ2LxMkuet7bZ2%bx|$U9p8tRK<-O1-W1J1pB&N2IIdQucGK=_1Os zKNk4g+I*<37&DVlkB~yScvAf@b-0-7p->F0>+1|kWTo_ivtd~$#44A|6ykpJZHW8U zdWcJK^Gbtr(L&r|p}Khh;@h(g|r_cUeDrppFKC z96#Xva=*bWz?G6R3nHkZ%pGBnWA4aPgQWO_k||DMRvA%EU1605I=i)HTyqzkf-z00 zE39!A!?|j55Q9lmF*Xe&a5l-D3aHZO*AVYDVSJvluCSX!b#*AN3gLJJ$9)6wo?CN; zU7aG{m14AMY%PB-7(Ao_n; zp{&?dFtnW*d9qTsUFLEp^@pAQ4a9rAQr9UE@2S8V{9$J}`b@|0dbVTEa@=zrvo7%8 zC8H#+ks5iu-0?1R+~p34_retMu2h9fE#m#HP)jW0#d(?r2K7n`fZ-3j-idE=93E#M_BKY)XoFJ4_!QG5=eL z_f0A!d8?mhb%qpa$aY|3#Yv`@V*8XM%CRe#B#rS>l@Cx)$kneFNjJ zNipvE)<3oo#yEG( z_o{DUT)q2=HvPiijkPG5RWiS~Wgk-dV7`E3Le}e`HL#WNNF0S(y&3Ft(oQJ*r4~>d zMfMk7%<<#H1yuEMGM9ORGT1D_rxU886{S2&ZhST_({3lYh%Y(Qe>l@toWOTj9*_y3 zmgd?^p2-TnS$`UGZ&zA|eZ&@$dwYYRCdvEOETqUC0NM{GQY$P_ePNmM{C1jyW^Sno zE|v8gWVSgT7un0L;-s5W7^8;(e7mu`s3n=eyWU$w_5pULO70C}Ugk4+1r=~ZV7u1- za9dkxAuF&G?Qhx@)nqw-`$<$nzd=l;c8y(+l~9MRnMf4{dr-hSak7xX%S4_hIkS36 zi#)4ELj$4)Ng<;Pz*c;rTsPT$3z~gbwu9JmY&Lzl;dz;%W@V~fc}6OC;S9BuynI|{ zwLzi-ApANw4OP|bkm+YRUvUXR59;xYCwUUzshNt{(}#T1&Ni}O3)0oV^4&OzGnw58 z0uldkYUQ7rd9GN!lx90qy5(hMmw9aX2?ToAnGpKX2QqVy9!`vV2x*Iy_7xXt_Z4oV z%}b6}{!wag09rsCA@9zWZSj!S@dFn-5_z;q@KeaOXd^Ior{u)Uomu$>)QX=loLx16 zyeTdq_3pO~q*Hd$6q_QA4GC2HAS^Hgbw*`wM?2K8jHoYpzDa&>NPY-T)-I((?>6!Y zla{Jt7L!?794b?Coy-RYqlTZa) zd?EA1ZgITloRSyQi{z1z3*{1-Hcrx_8W{{Q+GW&A|GG&jj$4Vt+S@pm%R)nGv$tSB zQ?XufUaqtO7pfacqwJJ9+C?0O;>WMrd6Lwe3KOJEf4@a0lcTf}zutl$tr8E{tcp$7 zTd0hMn`--ZOZU|l7)D+vh0V0{&?q`ml#URze1B^X#V(sQHJai~ZJRP>s+rQjXEk;3 zlx{xHI8s!P5PM~=^%B|Q#Ft8n0_EwCOC$^y7m+tk-S4Dw{Vw~_>rAecwp(6toCSIz z)vz}VHV$vp28uSsozjNEE+t3F+y_qdq2qkON7$yMCL{5zi4u~sPt@UK5JJ!$KIud+ zIKXg9;n`!JqH#+BYr{P0n5P^_5F6Rmh{&591LY6ER;m5v1YHcjM7+WfSSQk&d6x>j zOTSdTjPf1W%GQ*$g+Apd!cj{krS2(1i=gIHDHtjum=g)CfAaGnLktDq&4LW!cGftTrOzF)0o{ZoY$9IDy zJjs}oVY4u`yFrvVxf|W+7FXR!shYGku4M{IpELyt=0-QT4OJMlr$T%#5;F%`3v7uU zW=Q)e!>O1Q$SVZ-B`K3@0wg6xX4w<~O8p8M?uLqsn`@3FF7uK$p4Vq?`OYxT-Mg%O2pwPj(-Y$ zCf#PAE^8MU%?w4?wKA!q5Y2{!BbC?Z*5hexBp1^O+Wa~`Qw0Xc<-V8LdbC%QKE~Vm zGSe`d=ia*iQ3vy=cgoDO0dzs(dp<-LzY?^CcRJ=Sa)K?Gu(U?YT-7H9>eO032Dhx= z_Q;@j-X=FUz5mxqz(x=IthP}{Erz!}^Ok4pLW848I}S!}EAvowaBi2~R35Lyd5WWj zvO<&yY!jnYlQUTCZ3~y$XH4V>CdPm|QQ`;sGGX}1Y#w+l&e2jj54M@XNCS5+skpme z`e;+r*MlyhXih^LIjG&}&2en|h9=7KJ}q;3*dU#Yq`DZJ9C@o42mqumKd1C^P1)iZ z)?f;at@?GS>$?)$gZs!evwG|WS@-Y+sM zBTAUJ`7w2A*vcoA{CbK}IL+%!CYP>Q6S)M>iqbQqhsZGg25-&jRO^iily zG{!-dHwTle3f59RGe;WikAM_ZEhN{x5R%&EmPq~zDnWhFoIceP41wRlFR@Q$KW|Kr zyoy;u)q|8gcvp=)cvNX7Q?uV8cUAX;^qB<*G?f`8RsduHW#jmet?>cJ@yiRl=?0zOYpll zv(Y-%M(~eO)T5v);vs5g>~d)&B=*EGa=@T(dWYr$8U%tu1^l4;uH5E9v1HkhA#4IwGw;`{I# zWU1#87quVooJ4xFO~lrBndg+I?H#!#!F=QCJTpX#_LM0;1qs zVm`J*O8+gqQ{q;~r6iWYhcTp|6`8y8%{=@F^3+lUNMUhm3K^)XHm|xi3hzwic5~fF z3VqqD)>ikq$4YPRBo_|NyiCKpZf0G+SjGFM9+YaKIuuG2t>}E3(_b(geNc;O%l9N@ zsH%U<>&J8I1*skp2K@{6R96=L6-6W4`3WAs3yOMKF~So~`F)0{|FDe)YQB0er{2ni zYY15|9aCY5>Uk^-peW48I-ly0=;6G2G#^p=A^n}8OsBF_>@`K_CKl04u0ZtypQU~y zuU^WVG7h{egjx<)L;gtZ7A2MOigpNE@%Ib{5jChrMjxlja#Q51@LRh=1AOT-NKKIH zMWOIhv#gW7Y5i_Nzg`FjDJaAo?LJFe4AN3n@akQ0-jbGUK+tK+Fs?g+rRMja1HSY`07v#?T~O zt3?sMU&y{$kVhB2ql%ok!aTjX91AI@)z&LNgeigCdC|^|_3c9bY@y}sbd5*V-v6G* z8A1j6ndFooO{fAARS(m3^vkc64WDh(XFGMTNUN3C7I|z>efoJ$JAJch#Y|yO3S5`u z=!T$?`Lgz8TidGGV=3*=o)X0%xr2j8@*I8rR~8+^+C~58Qf3WzLAAw%L~d>ctEb3< zzS7MhrQFW70*yRy;-A?jYnFT22kfI$BPE<+wuT_N2_@QV;XPoig?mA3FWhPI=6o2Z z%ty;vU1HmwJ9|ME2YTY?gY0w)b?d5DY*M&$V4Cm@q~;XMlX_F;e|f> z3#}Nz9f-NFU_!~wcV*+ej|FI##;vJgSIEDdBkmRXJ4K_{_@ZojNe1sL|6MXvSuoiI?fK@f zRp&ShtH!Qoc#&Nz)Uj)g&`|PzX{(j)leX`U6!95PJ}QiP|6p!&l~|?j78o~)U1qSb zL_qJEN-KXMGRNv>f?{|Op&FTP=(@GCV64&PP@If)gS|DWT1cl7YhaiTG=Jv*gY`CTr%jQGZ3wmZ00v^O52fsFAV5 zG&$X;M#gTGH!ExnDUK2@l!(5=jk~4LxZZkS zooe*4RPQUuIkl@bsS%p>7}HatBKGBCmx{mF0PdAKg@K)yaA;p+yX-g+#^gaoN-TLf zx8Sh?NYN>sOP&RV1=O>ye8x?1mLueLmCsH@Z`aoO!7SZp$Stu;oF-r-gp}mIpe{d3 z%yMRiOkz~wDqO^%2JLJsw|8dxR5fV$c@`BK{gU(GHl)yFbe=rwi3-=vZLWB zkxl=Ij>X-F)5dG0m=8YElSJWs5!faD91mxNsX`ZvJtoJ)Os_HmLci60MDYnwBDF8VLec_PfO`R}UbB>urab83< z+||Yd!6{9)v}h8=JLU@6Lz75EVTbKU>UE0g6>3lRy(TipBl!db$i|{+Xj;hSS4nvj z^#0s~viPWUZvz8vgO`D$3+&$Vsgi3!|xXvg6e+*yGk=|WddSL-@S)O=p} zz0$tZ9b4ChOlLK1 z%xYSh%wF^Xd)mm%s$+DcDvz=co@HAs7i`YSu%~m)`4)0<&P5@s`=t7#blQN*>)iZ% z6nMh8A^s>$k$8F*`Hbq~b}CL#!e^e-=(OR6E7udIu}xAGwQS_8h5ip*Cc7lWQX#MA zHmo(0BSg$qfc9JAX1Ps}OH*1#qSRijSs}$kx^zD!(Xl``Voe=Q@R_2OnaZ*X||6wwSvq;%)>b;)~fu= zN*pP&huaw`p)hu4knX7YCynF*x>4Aa*vEzj9!z0Dpn)5=1vQ3H!;!mxKt+F4BxCKL z-hZvnwzc;%Y2Z;PN@5?yW{(W9CmNHUsLT=_WZSWH#qn5Wau;TSUH!SiJf40KQ90he zI)WdKo!QCN_sX0P;s7r2Kw(l65 zi=tbMf4z}67;_B~9dCv4uS6>|%{s6U5)b=T7!eB2ETf(9>~% zoFe>FMVFJDC0frF*h4&4o(!-2kiwzsf%%$rR=!NgqZE*>Qmcd%sK4L_n9A_8@qs*U z748YF)j^R&Tb*_2Onc8ai_8~vGP9BlMi|QUI!*!PUp55`?`s49+;nVq=uXkh>6>b& zZ;^-DKKdzG@OII&O?m6NnU(ZUo~nd;u_i%)dMqrY64Y^;`4HUT;q~An_Y{6kbj9wr z*{%_3yRq`XIvSew09dZqJ{%P#^0nnx##+A_arfzRR?Xa?n1_WC(^o3==E7-{Gk1yU zb+#PQa&aGma+=657vf5hT|sRFzC)ji`m*>bh-*0tF`$+-MMPz;4UazmTuu#X19vAT zE9pILe2ecH&OsKloj~+BCcgX{!2&Q@N|)t>d>z2Ex4V!{jd`oM9!=YROZkw*t-sh3 z{~X1an5yapWh;bFPXWe#C?+0C1X-&8(Qs{>vTWpCqUB0aSs~h4f0UX}XNt-h7BbgX zw3*6$PnE0|Mo_!`!6<5C-X%&T1ga~98Fr$_(qhwu9zQTyWFZc@E_D8!ZyRRe~HLGL4?3*ATqJFITsjJz!XuV z)hJ5qG3okcW~(4O(oCd?)JzWAM(>bJP^h;c!WUW3S%;I-;M8L@d1Y0s;wT6`6`6b( zniZ;Wj%sVu1p23P;Pw>KuM2eD90f;D9VEtPM-?WRiKC@x$Tk*;e|TxmG4)$`3NTGE zKQ2Ek9ET#PEm-j=5fYZ4)4d$lqA3URmXNTPeiLrOxDDH_#u!OQxD3P|Hw{o&-DAfNPJ7}wxY%`5ZSy4P{mndV%I+4S`Zk-oj4(zjn< zf>+=!aWo#`AqY^{N}*sq-yq1x^KW1v+)Bc@$logJZxcPYijeX~w~Au=YD*p6nif3z zKX^3*zis`$`Bm-w``l{jKb&C*G=MKf_if@ATP9n~-!k4}`&;cQZbunXH8z(q3vyAZ z&Wm5t`2Oqh{S)Xr0^dKl%&GeTT7aWZaLvj1sP(7d?L76a+GK8c&KW-5u!@tP%jc;Z6uxlByTIK89eQea-T^wYf>SP2K{_JUN=W1~^!3 zOsdP4u;Sc4BIEgPKB%YiU`X7t$Y$e@|NUl5^vI-@&BFTse%ptj21yyX!YVvQclH;h zq&UAE*KJREA4EU~yH8BxmM-EvKXbb~6yi`osw|kUkNYB=0=&BmxUz%T;o!Q=>}@iCm)q3vP=$x!+U)?nrp)W?#UH*|t7x0m8nO`3D!W2@X_Z~p z{=ZmDpbGE)L$sg!kLtA_$?UIn!JF-*FeX&h)~CLSG=ng=7!gSN}QTPH(=@CMNP%*9F)cw>j1E&KpX< zMa+Z1R%C5lae|DFmHH^{9IZ=G;hYX}rHqzKeVKMH*R<_p3gC3PE)Y8>&W0)Cuh#Bu z#NsJcgS#?|!Q&N!lkDx*y5_fOn4v??Acd@qx#z>s4y+*Ht`d{5y$KkbR*(9xM1(af z;b3-U3wTxmW^Cj=7Msh4d9|y~x@opQS7a(_KOKu%T=AH8o+2{CnxW(ei^J^#qtP-ev;#MNdfM(g z)84*pXJcU=D^Z$qC zsA=x>X}k~TeSGEt50v-^a%Y`Dmz;Z{67l{0YV#ozz$}&+|Dz;5uMf%#HChF=kky|Q$#qGDO66L!^v+C2+ zr{$(Uh*Z_&jgxJVR&Qd@unUBDp^yWw81D|J;sgP53ytJxpURe+o_Wyv7an3kHwyEF zcL{X|v?A(E=Mv)JS(KmmdjStw43ET%Ze^|8SjrLqQ(KnC_@{W4V?A+l#@*?~SR^jlw-v@oS219j$ zqCEmm{;^KCQ^uu1tYNTtk_b?TEI;Lnqiw1Cqdc4sN%Er7e^=rS>ec)2s7X!Y-(KNk zPkgRQwgxUR?Iho%K6Y^S~k=_-?f zpx%NTkOjI%$U#{8zY#-N@nX1KLDnm4wk&{QWj%vu3VM*9e>c?&wKBIYHfIy(MBW(! zb*kcS8&nveEH#}>q#|}M`>TSRZz+`-PknXMtGUX~4V%}Crcz_IMK=qu(FSdWR_kB& zI%K+qgCo`}%nhMgy67w!O#kIHbPg1wo5E&mmw@W)Z3d!U8f~yy+K%5a4Uh=yh3O(?0@;1mpck+#2L=4@@FHiOQcvwqrN^GBS%P z9WGY6eRsIcO;pywPcpqkAv~w(nLykT7RXBpTIr1710i1ab8G#eF}8-)o?@olfTj+F zAoXv!JlA?Uvx4vJy7PnaN_Bax4`rHIIeZimTPG>UGw@0UxxVa!qEN_BD&>l{V&uY$ z!~)vwV8~1@nMdPxX+y!*aqYhBb-Y4h8|p^cCafvU^U|^X6T47qCR6*3tiRO#to{;L zTh#4_Ro5p7aiSi!Bvlkvrx~M=f%*QXTGki(xj9WB&kMo4rHME*E<6S_1pTDpS4HOw`5I z#{H8ictv!2wsA=|A)M{XdO~Y4;I5u6(RGe^EODPm#Ge!QuZj3e;y#s#ClhxKC7r}G ziTivao=eUME)Uh?n@j| z4(bBq<(%fI0HG{~=U2eX+i{m?@MKb#TXuoBaBdQ9sC&{&)_C<#dTnBNH}TrI<4wG| zZpc&sL(uV5BLp%xXmrG%b9GPU#FIJq(Oe&NY1uHpz9+%_gMk51m5p^?16JiparNAI z1R?RPPhd_ovf1}CQ+Amc6TxG55UbGuN)mx5(jA ztj^h;YxAwBuEC!8OE&jZRy>)_J)adX2NkO>-wAThyV-1fnqPcG6n;evy=Da7*kIXd zhcW!+iP&=Fmu+wAy$>{{f~UA=2=6q~DVaR*Qrs(fSuWfkcz>3BYl{ibbp2?s?2aRE zGq+AoMj2&#<;EaY55gmyFQa>4A|`#E zsJfMMgNwR!8;=t$Zu8z$Q579gyFf=acH)MhcnT0;SfMvXFrppxVBHh_?(1=Kyff}i zG5OF9lgafPzNDzN%)gDqrtT(xlAA-8*kZBTO3x5mm91xETd_T_J1}%)w9^dI+r-@5 zu3~=gyxiob4aZpM*@UNKc5mi+%FCKukO#rmoPSm8jI3)8# zfx_3cG~~d)^P%l%Prnplvfl~E8Gu1*%1T(b-Yinnl*Jb9W zVkd;135=78m}uhqEF@xmbR>?79A1xz^s7?8l|((w*GKx}NPHAIy#Cwn_MgwfBMI`S z<;?jxaZRbZvV@c3y{vmFEJ-++I~4ZC2$okTE^)c!&XPI5PVcbQHsXxB#hYUg1J=c561+v#YMR-pNcY)KcZk6_!mDrS|;0XL!c*gJ@b`v2Mq$yAti~^v& z5NkwIjmykU@MgJPtLD0xOJ+7S)-Mq)fv9U7)Ygf_IqkHWUA*sgYZRO+3a2pV&K^eU z$T}HXJpYN!y!tgoP5RSmffEF}nFD0f$ij-&Y3@@?7+lxZHB8~YU}RwtF;vjpjYkA^Q+iUlwlF?+ApG0t3fwP2?}5shz~f^ zH>aZu>i|L<^{?Y(QR$!3(CJwDLooVsi?NLIcaC#IriZ0I+QTou*1R4%bZVmcfJ zO9^fqvys0s;W|NxPT*EaP^V!r!YN0Duz|lRKF8$%y;-N&v8!9^E-C@omqocyG?F=z_dvW;$2|KOTyZy-0d z|F3zq+rgBsui~FEUeo7Q^F@^@|ET)l$ok;$`e1Q=mVHW|UN1hdH+pqFbpdg%FzoeU zDGsl4%efWx;<$Rgysw^0d0&0Wlkq%v)dyQ}uS4Yw*@!Fj`?UQ}*(}!1Y|ey=$3|e3 zfRA0mJUoh-3#lOo^5=6rk9LppSkAg{k#*%fVqb9T$iCLh>`Qg#>IS=*sm*YO2{#01 z>QF_r&Mt|8X$-D_n3_|DdsfZ_JUc|LEb6dS6XXO2eTUzdHTO4*a8cJ zZxeE=_!dHcQ4lQ2fD%V2G&CH)Oi|lCV?Y&$=;HJJH zzUv~9c>v#vI$aSj!!J(=D)dW~#i67eYuDlX>lzr`r>6LM6WyjFr(#2N)YyU=zLgEi z0U{Nr!jhSv4&#>0tOgjgL#6~%#S}et6LJBFs_o_+V6s7>yhpH)*jxW7eN-G;Y3#;E z`+j4cGSjdDe9{frYZp^&(_7j|nP+--;Swp7CsXxd(fZ?Q0 zm&xI_9zIq-bGm|cH~pVoZe0g%Toc9ve`;7q1MoJFc1&^)VfK;Lb#|D-gd z`5FG;61_~g_Ce}+C})b98uH$7v4CnUE*9=Zf)zKzi^Pvur|TlI-^F6wMWPQkm0b*u zRh1-5Lc321%Ts(Fa7)Dfx58N>Q7u3iFs?cUHQh+yarHA9%x=HR0FfR+Wz!hq@H3v^*l+8$O5J(p@BNX0od!`aeo%tXp}RegXQFE*1OAxpif_-oiK z_<1=|h&!nP@2a4VY!#2|kC;vOOUA{08A;K&S$$KYsUCtgeu_U;WX{wffkCW&=~YNx zB%C6|ZdA@<=`e+_H&*4?5+>>2xK$076BNZG#Ty*s{mG_`aKe;R6r%VPoEI3mzLm0+ zA6pn%%*@(`6~}SiF;C%nHN^qAHr~RnF+2==N_wId`_nCXp)jqpCim0(Z_{v_TVxj5 z3jIUu2mlWYKfx6by}%M9#r2XKK2v$`3iS`%&fFfzV>jbRp@R zm#W=ajCK!BbA+hurS25*OZ-&Z1)VZB5y`F?n89C5jK*^EI+-m9*f1!S7elJ%VV|%M zYX``$?LZ$rB|mi&9=OEjPst+5(NqF^i(HburSmKIzdTocAo53&tc0hC%j4FR3R=qz zHbm%CDMNfOdJ3Syaz)ylV#E&7TBbRSl27?2`@9j)ndluurc_gY6Mdlh%~rA!uGbsy zr%(o0{{kDuuY!1O3uM}ms}S0OWN|rMr1<3+wSF;Gt{%!Y%cK?+yHUi)(&b6+IjWvz z?h!46ii5kTwNMyT89Zdu>?XS&m>l$o$Q)EIcqaqyNO(BKC6JmGPZ>D-6t!RM;sJKt z!`-q>n%SGZ+3szdEW?}JWT`vc)`gIr$Y>5;avc#>|L05q7SBZDnRIltFmrS=0fgAU z6?ZVvuq;fOB<8YAYqOwh%v+FfYYzz$E8rlMeA(F)jPm40xY7ZsHEhHZd}y~>@+aU{ z+^u7YYWr+=2^O@!N9=f@n8fm_tKrpv_u$@RC1aven_Aoui9dwF0)`yRSvdvfoc=Q| zP8;^;7`(r>E{!UyCUQ%e9hrOs#hGMzr947kC&fznk-AQHahaWHwQjcK#eu;=D~M^E zYsG^)bDx}S*Ic^Sq)l}{mSFC-+UGm?46h{c0~P}c8Uh@NSBJrs)SpX&?c3dscvR_^ z_zhUr>nFiV#z)}P{V>GZWwqCQm-PX*Q7Xji@&-q&EIa`>wbzIdOxFiCeuRr6-Iryt zYAX(QUyP8{p#MoJnj}|+#n37mC(>^E5V@J1kUELcf9BTc#NBWRju*_cD_D)tc*aMw|h96je5K9POt*El#M^uzHr-#mIVQ495Oco5IXJOeF?vF`t z@Di6a+*}>gb!nK}N2-7h>hW4Rg^~RNl8E!tE;vNPk7vPdgEPyq@L?=(!%4B>QZiWB ziG*ytU<%DYXH&Jw&Y4qniL@@56m{1#9W>>4!n<8$(?72kr2|_JBEG^` zS5xBpAzgh#iFcHHi8f1MjsS1}X`|TD+C99-z6YNeQ{T>1Ffkl4$J-_;i8C}n3MSBs z`7nsNI~o1)d*Yn`#n@ZN%T=E1-|MmEYmLvIz4vUF?6?yWAVLVi6G90!v@I2&6lu?o z^XoZHkl^mpgy0$=!HR|yf)sa8a3~ZBPLcQftl0^i_q>0+$!BD*nOX9zM{c>U>sIzh zw`d|Z>wD$DvXkzVvxsO6vngimTkKi-=U`H~X3at-^3Bjm&t*!QYhHAtl)hz;YxLm;}wL|}Tn0qW-ADq5zb+&BL#sF)>?RB55uzm1qtZZ-Wq1=AfI zZ^U>gKk0yY#)MBAG=Zr`X~>@di1bz2ysOMfATiw3|EJLJfFMN}Hq_`zeM2`wDy9Uc zl=8Z!3w1|X;M*^&(XtvPU5Q9M9?c!=`}yBU5JAAR5oXuj+>F=b_3OgwF!$>_`QRx# zxo^Y#V=$h=U>Lo;%4E<6SpHN&ijoVqvEk|0Si*deJ)a5SjX#EG&qJ>PqqR!>Vt=uj zzf5>n3!Z5zp8czZw~V?ob`}V-=igjy(Y+l9R1dsW9F#wJ*a5Wz%RGua+MTOh`~pgv zF~0_oGVT-MJ+9co{jpr9T*M5?eR%7zGVSXp!fO$)8SeosbRQ=?z~w9`uV0S{C*c>= zjqY`+lXaZ|a-?)nrgrJB7}%azoK{aybMy3$vtoEH*t{@YP8aGd<_0V2$Z&IWD9VZ# zWd3CtHWqBSfQ3}a5d{nM>ST5|@Fmc|&t<2gLV6cQ< zU{C}&c z<}1T$wWe}Qt+`mQwc0Y^;M{y#eH*{VRjS;RS(`YyH!bclV-Msb1J_d!I$%Y6O=lXG*@wd?+PNU z1CN)^C4LQ(dPs;hL=PhzAujieSNX*&eY6sP7|3}Uq;l;cXkiX| zm`BmSJsS-*{Ub@KTxUNjW#i5Exj9gY$#$+niT}+IPMqJKACmqW@1hX zzyC3-R=ab3m<6!P*4%v6h<5`qK6hT2yrjaHVbin9yynMm`eBuzRT|h?`hof3WAlml zT(AqXCoP82df_hl7B3bn=i}pk-*idVbiq2}VPc8vUEuml?ZU`JvLc9Y4#ahVZNVqQ zaL)~s$lKY{znL5+hC^ifJ4Rt6V3SkRu}Ey$qX8oN)L|nQZbJz%L7U+O0Q|I z<=VrJAzBU@49X^*Go*8hEOf)v(Y(Mv3Ua7e;6K`UIn{i}s<29oJxCl}#$Lo@+-*qt z2;nUf!N3!;VL^UrgMCFpgjv{PNN(Wwa^%pB2AYPr1Jxlub)IqqU}pw82VX~CDk_(W zj>c~nipDEw>D!{QCn#~ODj%n?KHXJ5V8wn?JD|S z36TUVz#8a$p6RM%nJq*4Ddsx~y{{~Yia?NfE%d$!#T^7H%|bV(xRz;6I=fsX>c8|! z##n!fa^pNdn1YMQN29$Zt~-{s-}fJO-81bsT(iA--u1sB3K|01m&e#WOZQk;p5&?% z-Oi&Le;?_}<6Lzt(#8z6i@eH0-&`#Ut@wIqi*XH)+G|*sy}iXh1TrU6StGgfSz;G- z457smI8(da#cbyTcy)tP*b)55iiwPiM@1tEjEzKkCJ9qUW@?(UZ`$X*?XHGmTwEf| z_0k0*eWvTKrALirf}scmc--B5CL5r?f%gQH5SijHWwE1BL|`YEWmR%bzb}uZP>a{x zRCime?S5N{M6`qz)k%GBtn!YL-IcD6UVhrQPz>;bnZT?#eJBx?RboeH6(MY9GL_L< z?L@apHqlXalPzVvS+|(-8;cQZV5Fzi1JZGj)8!yf^!C5=hY7Ekf^mZ+%^f}<-(e`1 zaJ-26O{YH_>)O=RcZoS831;i9!jDt$$KH8q<#$+;n}B4v(0*cO+1kTR?BFG8zof(i zi;EL`>Er_t_z!!&|3aH0Q3+=Xi45^bE`BhDYl#^0P((FcbE5E&wuX{MIW0>A>Shjl zD=`npU|1nWqbv)pX^xpkJ8E;bFeeGVGSXmoad=}U%1zZZ_RcawKDYbU1hL5P07CzF zlDr=`L2@|+k;q>J!?FCHu~)KyVOfL^<;%{4&E>*g#($U@rSIt>Z*lJ&=daQhC#U4m za1Ck&fe}zko0}PERK|eV7#=nK2lWqE0}6bAxm}P)hEzG0cg=8<{|xMDKi==doI8Tq zd9##HBW?$d_e%<|y8}G=DzSINB;JTym)mFZzBgkPWBqQ#{Tt(aTd;8Ku&OEW0?uVk zp5(gN#XB$Gxuuzbd-V6z+>wSO%sV*haGquH4wT=r_9y!ZU3mnOlJ*9Z7%X5q6o#WQ z+XV8EHB@|)j~CF%eHK`{xiZz_(Ya(X17ky2?l|`4I0P75)#kLR+7@7gjW1=EX-(a) z^q2-442zVw7&XBB$>ij?+>HnU5sJga+%+4UYp^XhCIIHlJVZ|#EG-bJamN!t`}m3n0&n`XAWCm_Ux`;dJ|(V75-%ck%sg#m~;E| z@7uJGzi&(tlkOEFy`EM7@lt=N?)8JGeesM>aIo-CG2~gB-gCWoLjBLs?W&FnPL1_B zvHOv4zV(yNyv|ki$FcuvET3X-KsV;Tn0aGbn)e|&6KeC7pU;^>d83kSn*^;Ne~-~s z3`Z51^YU0#9@IKhDZfN`s)k9dpDb9NH*}O=D)>}-DItdNOd-6Dnz)4*{PYf=`_hP6 z9Gkfoj|wF7yTJmB@nA3vL9||bZ~OHD@-ZcLupAUfJWSvPF+?DAW%@{45(5)sLOXiX z019D$)P#c^V=;8o5wQoLwyjl5tad}w5;2W-JqE8>$GudZG*K=lbor@pPN|HaS_R3# zC8R(~rEK=v_3mm9?zB+7K*NUu$Q|LiO~rf@mCIR)%tq$d2&OliZgP{MxINYIc1pQ6 z1TBtf$yWOpx!PYk4^%BQs%+he zfOL8@MZH>SmXpMVjg)P0qK*0Nnmsq(AIb+?^4qbns3V#6LAn&ofHea>A_1=bpaU)qED?bU-Ff0%&`@7TtyvQp$L@ipodqGP0`_; z@YZs2Opq*&!uml32HRK@3vEqi%k_8Rk*t4GWThmAIzvo#JcPp$aT7qNUJ_I#{BxA-)4jY)VUtsm!tPjY`1_ZHCG z@!zgg<>YrN`u)meKX}G&QeRX89~mvMDNzrUn(oB!A)jgTK!@A~g4L-*=Q^+#!S@&| zt^pJ$+?j=@;itaKMCmw(3Av@{l~k+F31sp1P+u@tn`|0vQBTv+p=10&KWRUJJ%6>F zXg`=kR>QYgRyuohj4R*$!^_{V_LKLnSOrY`gU}tZs zr84=TY`fkg9!u|u6TQo6sHmYs2V0cLSMrSxR$L4aIgv*s$)comSW-9~ zvq8ClrDb?(5`Pwh$4x=?I?l@=?JalAzK1$VKOmATspMn(LMHYSfE=`UzNm=Rjbyi%?Ki!Id7UWC81pZc2rQ2W?7zykBaiEVt8kwRwiJ~{#BIM8*vKf zU-aHX`#`KI>IXrxgr$Ca_pB9rLKdAo5EdVs%G$z?E#8aioj8%ru~uz|=SG2ILZ8r@ zxhIJmu#;wUX5AS@Mg0GG_OdfRjnhXGic4uENGQyrYBnw0Kts?}I7O!H1gR60FnSbD z!eUX|$t)123sRa4?7|U>cTC|u0-cbJRDJF8LC3Iv$(Tu z)9^w|mTdI$e`WK;TaxfCwhhUUneslN=Gs}}Rw-}7PVTl#7{A4TrNIIs`T?;qIJhZ7 zHLSp=NlM0-$~jG*Uz2;1!BeXDMOPf^21f?T33N+wHoE(gk_TH?@@|S8#z?uv z`0`jfIJ(HA=iiX!fPOAt z-N10afvX1_v;OMo&iuF6Z8L_pe23JPvxqg}e4*S-)egIOBZlm)cb3L;?OSI(durAK zrR;s%b(TYP6j!~;aza4YiF7%PM`Th(ONRW+U(4;eHW+fZHn(FfP>Jvw-&^jF>NH)^ za|ny+)Ki`E5#M{-H_IOSI>c6yKnNO3M^4_&q&I}I z(}r<56_cjK{MlxM1pL>zqv#D;L(xdhCyRR8dV|Q&(H57N@3It;xpN0oVm2-IcQi1v z{8&JGY&BEt^uB3oy2>8jbPtq!GVO5TycpK1B+L9Z{0ZXx1SPQ8Ij8XWzz&$?TVH)c z-B@4!+gA$$Z(-ma8fdl*gwGNplL#xouPX)xNYiAXLKnv4qz!leuFSwaRwAL@L@Jr> zHN6@yocX?wNzjS~!FAwrK_xJEa5}`kKDOb$-FTdB-wfk1k4JI$0j^@B9je=#1I&R? z-Mp#E!L9b~0aR8J{(-WKnC^l3E}ZC-Tb)>fbKR9pXQn ztD?+5v9sKnQT4;fd=;37LUVQK9Ve0tP=_hcvzu-W&26DsQs_9p;NKI<7s5vT_OUQm z6iBEZ8s#=ucSYRT-l&Z=>A_IlAGX{W#SjXiY*AWRyc>G&hvr|Q`7G2=h54uPeS9Q| zN|cTrz^E#?xmK%wm<-c5`Q{cs#~>)^@={S$8+`6FvdLs4AU2Oly(hdb%R9|n?wY(` ziz!xLs%n90%Gj!Prq#ZKl*A&8mQG0Z4Oj_Dkp6OTpS$rMc&g9QD6NDq(0{CbHWj)hhY;6g-6)Z48s~(Y|6+o3u4~FuCn<79Tn3N z3797f6t%hl_TIAyFrN2ujzO;y^!17;y^%1Qi+#pltct)FDp`ZsRSN3@8)GL9QEjwT zS(5~JdiV&9i*U^Up`Oob(Q=(AEf0DC1bpdG<1{ri3Qt~GX4;X1mT!pkG2yvQxiR~DO>oqa1KwK zwLUj67X-O&%xqTAtApU$Kuw6p%L%bx+9?}A_A+q6?K)Al9*@nhP*tXl+ttJX-NFGZ z#-3RyX_m%4O0vmtSLf~2`*)Bo2*r1S_iaFW=uhIIRKE;rTY=|y^Q8G(6zVS_kpL7` z9KoJI$XiGR|G5>ON${sKDTxaO$yY0(dY#zcUdbWZF;JI$Jr7YJE!4pB3qa@H`1#Va z7vQQ`ybHwE?5VlUx}9fB*4QY?+|nd>2}L+V zoy#%3H%zF#Y#^``R58O~Hs)`)ox5i`LrG^?j_ zg>^ZCO}W@J|IV3X^4p?3>l~nQTT;D}tDh_jqMKV_`@!7p+3D}HrDR&R+d{V6gPqGN z1VFOgdh{)IZXRv{e<$XyyjjgID;C_kH}*X*)7T*#UUe`#%n)b?B89SAOv-kc&vwWt zeYCMhc=~Zp{XJiJ+U~EUU&~YLavr#t4#(M5|JKI4YI=Hxgqg&C^Xxanxy(J(%1f;l zwabN|HrnMPxI)a%`bnR&pjum)Bb(_yQw*Lh!V%N{+2~Csg1K^<{}Ei|oq4 zbfe{7HZf&0I9982HbVmh`gzLf-Z%kskrYTGhv^MKM#UC`f1of&AG%6T^2N>4zfzi8 zWZ@>3N^!jmml7dJxM3|k2IQPPN#3yN5ITgnyV@&9w2^mc8-;%?+I!fr zZWm(YJI-9W*h)|guIwfCkOkU8Yn?}5DbA@n-K~qPI#&>vMzjte=bYg-OUT$_eDEIA zDyu_tYdu8yp}Kxx{LThA>T;ayQf#vm-oDm#qNf8eXl0INwEcnkbi;lr>6{iu#IsBb zwasEE@f^*>?GQ*g(lho*C!qN&PF4mCFj;T??9TvdoV%O3TPBpEJI}TFt0lrLM%#76 zr28j(X>~GpBME$BdD*MB=K{*HaV|`3ra(-SYCZG-i)J+lpjq$yB9(dP$AMRrkBZ_W z4DIf|!Lyo|y?SxiI#K*c1nWfbk?=PjN_pDO)pmtrUHfNg@u~f3c(|8z=19$8wt=Wel%#*0KZJ<}O1Dc{@S8-@bXz3yd_21$ z1ltJ4HOu|+Vy!L5CpDrTj}v(6;|3WukD1c*y22tlx>_TCZ76Zl-*pl>luiC8t}&nbFS~HhXI( zt-m!PXMu97ov_wOdg0JHHK)5{aNm@GX3;)EyepkYkwKFma1e6|a+~5zKRjQ^uU)mB z+P1cxncdZ0L)J83ajRQU*`*W)KCtxE-B0d;SYMK+c~u;5W)@9t{dhPf^Km*^|Akxy zB0}+rUA<1pJRRFUB^Y_qaA;}CiVVp!1UYF`oHKDxi)Laj21t}^rn_~raYtNwF78k} zl1~!<6eptk(+wT{jBp6{4wiMQawumK#og2G^mDBvEVk(aA$Ub2I};8I_t<|T&oj56OWp`l zlw(4ZtZ8QN399u#p#Kgx~fbUzd?$`6G2P%Kp0%ZLvU*6jX$ zc9Z?Mk7yjaspQzlQJ>LE$?ay7LJQlc55B)}{Y+6uyL`;x#u5Bz6K7F0a)b;B@rP+g zCP~*zf%->6G2UMkwYItKda;WCs^mo~yikQJ0`C$PU!2t~IaRr*srWRv;!@i(zr=|1 zP1g;sy3vjQn)4Qf-mRhS$7`eb*9b(s7R0Xy6)^m{PiFO=O2o0Dhg7 zDR*H+2Yo)Ozv7nPcDryevwb`sm1Yu@@K2A!6Wn0r2Jdni@o&dDP;MtSCwo0z?*Ni0 zFPB;+v%TdOR!Ou*V)sI9tlu*pebt9nCAGz{bQ_|6(7VCbx1@P$s&=tFfKVVlNvAEf zAR{^*bb@KVP*B#$wADMy9b>wA*VCKARrNOEwv1V5<8W*2Q*|_5>0;&F9M^_nY+yaP zNe_twi1dY?vhm1~pzGvTdTR(&6y4??Nbzo4PbW}TDSA4l4y#nRrbm3ux^H{N2W05@2jw8^TQ6cP8Vvsz#76>j#_Nb{d&CvZ%2 z4PnPl^2UBU5&yB)itd;0D{=MB*c0{FV*Mr|Yzo7?5$E0mh6UJDx;?pG|MS>8D>40M z7NtT(?aR3MH9=O>!j|FG!$_+{d;<(hajBnP3w2Uxb+xaS(WWjlG2#_v?OJ)i0&M~0vj~FFT&YOfS#ieK~P>fnBKV2LLsrW}u zJ)C3tz!**Qp)Mbpy2rp{#{^oFCTmmw_B2?T0$sR0^|)Ct0w)z$gEBRjB;tr9ydzfE zq|rJdZw1ttCjH`xgs`%LFYuJ`pM|T#YUtKQS_$k1xUAh1nn3fP=~O1i-@V{u#_S!tC;tIGmS zbw?_%48!XYVC$91m8pMKD!r;mmZt7;LcE-)rxKStpkGeJcPTk@`F0{cPe?qfO+6_@{ z;^JYj5t+EYl+m42#JLG=*sy<@_+h1l{%lx_nzn6mn=zs=4Z3Rwb{vp9P#A;DdVP&?Aewtb=GlQ6F8@#}u_sO3D>aIw6)~zHz80@PzS;kq5nMGf+mDW6EdP4hST7l zw}U0~$?2s@Za5|b!L{F!n)0mqU`>#Qg4z-Zmtn-T;q3SbSHirx6BC zqZz+u!Eqex^5Gl_YeF(l+DtOYAjH;?a+NRsT!5zvS^iP^MPuhNRUd;~DN2 zhyxQ{s}pi0O<$8U`?vIV?cd9)MiDSYDZ%}*_=$)Zjr3JF?fhxH3$MHBIeIHKyE-?& zUtEi)rygzFIHzMW!w+ndC;GAejuiwW2OItvM#E6fvz?wcz{B!1Jinj%gqBR`1}x9~ z3Mh~2OqfVRG(hQx3buD1^Et-&CK7j#B=i#S7}&qhsn3Hn-{#ePTJAxKB;f&*PxwA zOFb{TuVL*I#{$1EJnD+il{?_B!eOUFA0>LPpi#wYKF2x>*kIpS_&1ij7hST*Fvspz4on=|f zBd7R{Om9J4G53Mihl9pLRA!S60j#^peA@ze_$mWb$o+$!pr*(_Te$2HnsZQ{0N0aL zlbS)Zs$gym8Jb<5w9?L?;mXJythEV)iCMCs=G3Qi{Y9=H#jIl(GFrC3 zqU8xj9c%2h6Qz7uQ*La%_V9aJzN6ivjGAa*C6j*&E2u3&%0q>N)W6u%*2Dg>b&if}g!|J2zmJpe$N7cUB^LsLTxy(ve zJ*sAA&wmdd0Uuc36U%`q+~32C{i#VF_K1!&n!>C&iAAfV6cGxk`lFI+IuZll@|}kh zh!V-K(jwuSdiMQE7;ZM)KaVg8dw5S&-W5#%HYTu|m=uK=xj@igV*ikGz0}U3>|ee= zHwn^i4rLD>66KuEryb??66NmGIbOl<=kFB?zw8~63?5;kRXgT9+BtR~k6HZPCMFOy zn=D(BrgSKlOEW)D2hX|0=g$e}d9R;1P=`++K~S6WNNa?6Rp{@GS>SebczLjl#OD%F zi~j3iuFU09KPTgt>7YR`WkIAoT6!A8{MjHhFi| z&8m8OS6#iX%z91=w%%wZ(h*I%h<2`KZcX|5yb|T>auC_}v zA)o52s_M#W<9RG5NphyN*TPv}pA{7SD=LNr`t;GJavCb(KIIbiMP+p%RWSl$T7E>} z_e}jie$txf1Ni{}<&c~k7ejk=g;b4k!_zh6HNMTS`BVzj;bAITM368=d?lzqO}*4& z=&jK4jaq!J;XKou76enP#dBqF0rbd_GMNu6b1_wiScqfdaOlP#>msri-tOv^p=oxZ z#|N@T`zla2a(WKn% zy~0ciH>Qf{jNhZeQ4B!&HV|zOHQSk-g}0UJB<@7>yreMfd}`aOtwFU-(Fdzt^uLUn zVKEAuc&G5B_HicyYxMQeAU7@QZ6Eo!Cb0}pZcj#(#;Dr^-+d~pKU8yIMI;xXRdLDK zaMXY-h1F6;)v8S+={~uZxOq5Y0n|m|rWVu=t;KGytKN%2B1GS$VQQ!zp@z=`0a+e} zI03mOr6%x0eArPPYXBKGp27| zpV6^J`^=whsb|gEsxZ5MoBGx()OPW<$qs6JplWj_vcGtqzhnE4yq)@}5jl&$ZSC{? zk5Quk>4cw%d6V6iO`2MVQd6{fH@$1RM~UEbb@A3jJw}s*A=IQPJP_qYCmM~ zwcj}^s=IkC4sjiEn)vO|M#aQU8R6jhkP2|#hLC=?rcRMN+mJr^A{Ol-1Po(H$TqC> ztoZ=jt$r&+7&3T7H`6AvqrYQX+s005y#G(p#SIvsDE#wrCrjQLh^D2-1f_3620i`a z&JrlH>wL4E0ssYBmAyv?{xJ|MhzM#hP^Smp8T3FLKOHU!%=yR{Nm1#Khhs~L zk1|CPkHKW#_Ql89U#X5h^s6&B7@aR=>EKR@+5lDJcOgoWnVi0Qo{n~_%|(>x6r3qw zWE1?3Ua$>|*(_*1|5@xRh;Sg&lNd7xV}ufP9Zr2;EC<13JFJ90UdudwL_nlQI}neS z-Z+NfL_nQ8B%5%C-Y53Vyw7~EH-L3s>5;wNe+~5F03CVTZ_f_A^8-AKrGa-vP%;q# zU?!tIF=QG>^ZnV{IhDL7fs0s-!b`|JqBhk*+|E|6+m{{LtnhXOV*1Frl<^~fTQGPYR`9`$9Q$Vb;aYJyEJkyAR(Nj;^V+ODilYC-Z7!LIPgvhAiqnu9Kc^f)RHN= zP6l3_7=~wrBvsg_=0R%_rc!whCO8;bm0%tSAU+85Q$S?RpYJ@tf(fC*{>KywlEHv< zOuUU#Zle4jTM+nG(`<)**fPi?$N=*fkt`*V24a}IiF#<}WHE7janTxnrU`Rd`gH_K zDN_a9wiJ!r&{XeaKF^Qje-c85b=hFnh3a)XCe9bTXK2>7gb)F>{%Q%4ula8(G@|L7 z%#V-%Lp}N(2vTr*E?5N;UrfLO+Tf@zFM1JPRR({f!VzXtIv*`_ve!l8nM> z#HbSZJH|!<>;VqYL^r}LQCuX2HGezj0u~)i9`tT;B*tPRR-9!&*d*ajoGGudG}K4n zPK3_teB-zF(bA0C$R0~m* zw+Rm9k8M^X95ZHg(OFI+5aJ6S97D4i;MHKl2msj+KH(0gthJ+w;iq?{^7 zJ-#iJwlw0lx5@vq0EjGAWQX*aoj8wU1pN5G;VM>`=G75oa4OO z<*vBO_13uNRX2^J2TI{Qd1hJMZqs`4S~t9)90~tt>E4VEOBD&~dH>Eb)3Dia7mzEb zlXk+rv${zK(E0diJx#GWOH~2L0+dHo0vi83(`85WY%c1zbGWGb;JF2}{jF5v+_vGZ z-+0^OT;bL4b;X0O_nm7F^@1Bq{tXoJ6^~>mxQ-%4Q=DDA7rzYw*>@CPPQSc4oi(i#`ceGtbL3}80UI8zXjqP@fU943JP05u?7u~ z`ALr?Rofa>fH1nq1Z1JQIQ+gto{=4Hmi{S2*zV(ntYT3gwF=U!m9rRAnv(I9A%6k0&(U($0NlZmnX9EwV zQ+*}SK7nm=kdyud2tbqbbcl?_0f1VfX%s=ogwV?;D`gFGbDgcL$E{+(;*?)ScGTBs zB01t9yLypl;mA_d+omGh2L1jOthVx{Qb^v1NdpqHFl@B z1ciH*zE1&m(%KP+IQo$PweQRq2RLJpnojq)Mebg4(vxMk*EP#|8ueAeT(Wol{~{m* z=`V@A#Zkeh^wGo(Gw{mH2AC#~*?}H?3&)Z+8 z*;e+~{|ffUc`;D%+dc0NkJ3F)X}u0x%mU3m(LsmlW{v#7vb2FcgK`h49s7kFf9{4~ zL;FHBW)t%qk$0;)@kt?nVz<+6Z%(XI6XS^q5TElkqV6jk>`zH$u@;ce(k+ zE~%jFykxm&CZiq6{!K4vImnu-lku{`77KGv@yvZT6MDZf4;%3ijtlyK518;sFuj9a z>_mEpE#BIWV1_%>%;gQ`RcZvox=p(~z>-YR7hIYL`4PLHtEkaBGZ2`>!zUn_$BoEE zEtbi_XfnA;);upF3rflZ@0%2gS8}VY$pq;D#6h|3Cx$JnDlmR0fMgof63tBlo;WA$=k%-B{4YAJbcRjuDH(ZL@L}%xM#B0yVEXsEXCft;6DC zqNvLqOo4>C6#s~6*zm)I;%|>7AR|slE8DAPSbCGJd>M=o)@>q2z8>PwGecc#%PRx_ z$?m9B_4`2n2zR=H(aFx1W;?r^a?Rp$yR)~GC`l&d`>J(+5}s%RUnmcrE+weGx%zD~ zB1xiBCScLFWy3}65YI77InLDzo`@}zDc=-gl7$72(g$(Rit=$1Qe!s6mGZ=uDuZ#Q z)pRx)1|2MvVY1F@*@cAyaj~#MW7<-sfBMUS12N2bKP4n6ch2XUhuB_Y(S;;TIqJ^| z*s!UrPh$b%2mAiTchaHR-E)(zoG;R$UwVz8>7%Htai|SQg5Ox%ceWm5m)@a` z$fw$h9Zhe~9JXF3-QBr1hr*Oq1~)>xzvq> zIM*#Mb_0tL#yz6OB{vnzTZ9+8-eqpiDmTTEN3hCf?yPrwxsWUumP2XxT@-ULFl}aF z%#Ajyx%24ZPI?b`njAV>KL=p&6Y^?%sXZY92=NcM_Aogki$M2!qjAyb!br8T>5q3+ z8zaUw9d;x}PGQ^BY)E=soFzR-?LY)_oUK5K6KQ0T+=@kV1dlmbz3F7*xt9v(0=STN z=^@u%Fz{_)-Iz)hHw2Rf!(R<<*n9Am;=jmPg`A&fDm<)E zyejR#NVa|_a#M$H=9!*FvU->BX39m<93d@QfNa49#mzNE2N$OP;c4aQqB*6=;`bJc zx@K{402r{<(@ho>{W94VAT-Rf5d{s9I(`yI19N?@S}oLJ5(S{^rMXy8C3Z7;e373o zDCO_Kz&7__U3K9lHL+juT*2<{>td1IR8a==%}<$^b~M{Er=KPKQ-%06`@*v&GY=E= zrIOc)ZtaiN1qIg?$LGA$&;R)kqcz6knR26k-O$9p!{9f}p@>M^cIF7<}8xu}d(txk@# zGMM8iMa^kJji{3{V$ltbk&6+}Pk+vv@(!)C~9rTuO{p6hKGYTGmDE3ELA1-@1F!YET;&q zl6y+YMP+kg-aMS6>h4{!d>TX!lPNw~KQn6r*~}^ukRrgS5+@>iqoUW1UYUlEc;1tq zd@Bq-3FRYckn#DNpj&+w%8$e3lQ8-yEUXIw6MvaY56>f-e`FM%7aEZcpS6A^{4iSy zr$S+VOpp!?qm(QPjhQFfS`s3h!EL<>J7QT!sCWw}dQ9%Aqh<&JwaB z2w7n@t<*{M|CshzD~{HLsMoTLt+7@~#}^{~TvW5?Q)TvIs=bw~rSoDHOK536y%w$| zCg-jB^p1Qjfv60zsO%QWp@r?nFK5b8vD-!{54VB};&|a{_2fc&O2Mp2de0%;Qjr}p z-44J=9}%LI!o+rIqdY?@b4$Os0Ip;Qwm#~f)KyTuM274~xE1nBHnRg@nyES!u_aPe z4Y~~{iSx7*RoBu(oJF;=oZcS}p@vjrZTN+qpEoCuV5>^$U-4CF7!gZ*HhrKhkiCW^ zLXYC7E)C7H>&h$9bv0i#;X2-HHC@AhHibQO*s*eibuh*dax)6N9fephw(ZeboJI}q zvNE{KvCe(9ZpM=Qm)+S#>|T77?d-H#Xtm8ob91u=E0w>n>WX%sD5tZ}vD~8b#VtAu zhb$vAJj6*4f?f4A>WF4y|M0#w)Mu~t6FDx5`*1jMhg}c~*A#H+rStCfcFtZ6x zk@7tu=A!aemmpgBw8oA60(*ej7T1{t3!}tRsmc^^w%1Ad0P}){IFvEvh=s^;pooMV zUJ1$E_FyDa8>{IXR+4#6x;37Za2B+X4CjkB`EHFK2(ye&DvV2UdYRGbpHm}FHqX)X z?BZmhV|Jn2V=tzL=f&>$N$*JKmKFje7C%5v!L@O9@;b!V`DzaG*Fy zTxhdI<+pJdL5#S)2Z{@`@2{?l6^-vNujKv%_T;dlRVHZM_%AYlv0Dxy0W*!r=Rzq5 zf^0O0>SN6KiFmdaJ~N7unwXiH{U_q#tN;O7L%>MjZ)PSUGXh0zcvCKIwc4Vz&`X(X zJNz$gPCDTSZPS&tiSJ$iKU-rL=d8A_Mr%A#(XUs;Yqm9Bx2@p@Pt<`#9@9417KGfn zLq!w7M5f{$E@|KPQsnO%Dq z*WL$+fo$9?*>5u`HGmNot1w~k+Pk=R-)wJLlU%L_98m$t0+c}4}k6qFx zE@<)VQtw7E@%_~&Q5S~JHlQT zc+}|0hcY$W$nY;4Ve9o`v{uwBTaIdFq(XsLzi z_TS&|gKdP>YyW=3h90nm^K=JQ&*{(x9oHa2xAW)@T4H5~IK4e|em3dHd0=Pvk(pez{6UJ6+r1^9NTWt ze>9L6>EW(T4z#jz^q^Nd+~T@Jx(yG?Z(v2$dDNm_=FB)ZBx}?PJBZ1fA}(w0L` zCphnQF<)hoz#mBsbasSJTBAuDQ_5C@jXS|Psk?S{m$x=9wmPCB7YPpYloQ^YH@vdG5xYq|aRe+LrB0h5%DGnw&QW8gKa}2;h zl3)9?XqeNK`U8p|XbKg)bjJ;+d`jjiY{y6wW8_phs*$J(r4@b$%E!p7x-ArjCWP+I zfUwnt?mS4fXd{FxYot<#+5DPN5q#3>hw@haffOIgvqkoDuK7Stb=vQVoZH+{L_`UK zexSGfOb4H8|4psB<)%#hll<4Te~C)Y5dJ`dLgT5*J5A}k#YlhWiSfpSWW8cJc>_0B z@f*`uc}&NA`zm3sT>o99N3mdssuAWg9J_0-r@dH^xSdwB-%^X;^ zJ+Hx%3&^MSUt*jMAtaIOGu`AnRr7EC8wC6IAJe5vRIYIT?WMM&s(4?+JW9yWt!3_>LO{8jP>4@uD^N-{ zVnJ+2n;S*UX(TPhSR~+bvyHj^s&1uNEmnG}^~&&SU*&y)E9cir%-0?_aB7@H(=n8L z5E~8Zo(Pb^CEu=eb6-o^Jk?IC@cvJSiA(OW;2|98VZ_}5k=Eesvas#MZ{(?+i zmc`BxC6v-PGI?K`GqIjb@jE5+}QsXu_ZG$iW@I&k85b6#$py3))=a ziL>3{5>;;O{4?40sZ73Lwu0UDxeU=G5``Oe>uR~7_kV;1>o}hY-79*#9L<$wDmJ%>Wncp+Muc>p$9=Pght9*i)Q;*u9K$Ti3cl( zEH3f94NiT;3CG{5NS>P>pOdqdIeg}Fjt?SU~nj+SF;MC|fB zQjn7EV{(Q3pPU=yaOE1 zg7_1HkSq0B=1whE>aUaR|B7cCo zLJ(W0xC_$~o}cf!J;uL6B!3HvXZX!&a-muW^y6`y;S9Ao^W&EUXz zp7J@N@Z0t6VbdMNv*J5LP*pi7vb}M&xo;(|Tym2PZkCmsWcaL%o{=jBbb;#gGJHvz zhY9MKo9z7liksYq@{oGT4_8^WE6@x?VWhu@KZ`1)k1BR^kIFsbM-Te_|M061`l(yL zTb1(O?MmLQ(!VRUOsT6COczA>?^kA&92tzN@xD{Oqr#2l%_{mp=_$3cU-b`Rzc=~* zjXp)fNwoNzq9PgF?ZBt9?XcuswWYtUzqy$~Jzk-vl61%N;`3%dQYQ!gDM2v~zLf=& zyd}f8W$rC7Sl~8Izk9qYAEo>wl{`U3$16y*`vMWQMq{ZN_y{nP_?*C;9pugm;xmJ^ zr*KEm)OkO#EE&IU+v)`wz9@N?>ul5Xy9{Wr1_bHn>F6*knj54QxQn0*?SzL=o9u+JtKF`0x8EhZqpn*u@}`EW zFL6Ef3q8lm{%T*?pY%bswBH+A8RiW&!@{9+8AN+5uxQw4tS{Z(L2?Y@0Erv=ZT8-E z4+VT5)TO%9E3foiBpXJRR@$u8$DaS0=iW;YRCl{id+t*n&uG;*=ZZVZJ!De_LKd=m zzZQEo+;67Ew-{jn_QB6kBF6eN9u+Hik5&q49}Wbl{O=aWz6Xz#$BSZr#@hl#-tHpl ztVBTqFwDnc$0tlB;S*u_9(2LxPek&ukY9=DOJQCLnK_wS%~6rL$r~I_w^&u!P#+rw z$3-?F%j|>|7{w)>11`uYz~3o`@uy*p_#woN;!kq5?d6a!!}Kd`!RlRJa+F&pK;%L-f(3*NBrdI)53SLa^$R%IL2|gr z*K&(RF)hp>e`ZVfTq|Bz8It1@kQ|eo_AYM17}9EtZ(qy=IWQULg=_{vo+4jVgML9dioJYmfI>#rxO3r z$zFQTcwNl&^>JK0PbW|Ng{S=F0pHy3dk^BTMt0rbLR_rVtK#DQ$OZ#E5FbV1B`UmF zu`Xdy*l#@Q$EW-L8NPYM?>^0kw7XD%|M&}0#?hc_cGvr{7R@4>)@BL4H9b*2#!&5| zXN_UntK$`s(Y29MME+B})3UW-Nl5CzGS@AJ$+K2J6PsUXLQ<`4O@vaw=yKaVSRden z4BkL5IXm)`TE|1`1H~w5Eg-sP7&>AE_8ozRbaW9|WHipMb^)mvOoQ?96o0arfOp%M za&l5nf5?(eBB%W&=`6~X!nm!eT{eMLmJt=5yi^aUi3;Wv>YoE7d#Jx)#Wr+XM1?-1 zbx(7zX$x@*q89V((j|fzmYprAP9xM}k<5e_Q4$Z}13p9IjQ85U?|@(;$rb$pKi{xW zqgy~9?1F`CO_oowRWMnK--%|Y|5&W1bPe=J=M>TDj;N`ovg~rb^Gtd+z@Gpa=V6E`h zh|fgQPR194AP98BY*!C4W!j7wX3Vn8aB+h6{g!SpS{mr=?cYNAZaH z2zL6L$vh$XXxDJ7XrFBnSHo;-V0m9-ad(`11iEKdgmH5BJ?|VfGz)rJBmfaF!$UevCf;a-pgiH ze}*kpar!&6`&C;jG`Bf>?!qE35~!rz?`yPr?Kz=e7UCtL*P>4tSzuBseq&`)^ERu> zJIGpGM-A);N|Rm}{q9lmy3TMK2R#D%uzw~=Ue8N?_7JbJ2u&X$Yu>dL{NjO08@U--wU_y~naBlSt#p=OQr4_BtgY{`6$Ub4sBQKnOZ<>p=S z8c|-~sa6SjmoTeDaDynW?^JgSeUmUZi{eciIt?A`79sBuxxucbR||c=9PC>U%7}#i zG8JB}{A-oGMw#oCze4HjVbqBm6cA20gb{c;@sRQ#Rr)ajo!zWbarQ>vtt^Rk{lTF# zk7e?ixYZB2zyD@%P=!J0z14KL*-Ura%_3XE#rVJUKxEp&Z>-Lbql!r{oQb>Pkvh=i zak(upS>vFM+C*9$n5Rqx>3RBjCCC?TKdfjR++u#PFXm*s1x4sK-I?{oj;L4nguMv* zkd*TKbzjtvE7lyg7^YBvIEGWZ843ELU86dnYV2<)cMH4zSD8I;ZTcQ(;CkU~M?ldf z=fI@vF-9~a1nGi8PIcQ{Xge=NB|j3==o{5Eu1ERD&dpL7AQMUr$_3p z^%wd~7FGwbuqS19`T+BBv1PT91zR)CTQX&ym}!CXDBP^59D9mz33+2LkEWS`>>R)Y z5{a#5XV=ui002A^?u?>bEo|DPm{5^6&E|uZVzIo_MtYX>g8!1w{+NF!k+gxXpd;Ki z7zLp@M@Smhh#$Qyyf=jQhXwR*nBR)kgtrL1wy#G+M*Xe0047zZ3{vSW7NY=@J#L!xl2db6kCs*0@ZCS2FPc zNrZ&NJ-VJdTXB`cOt@0y?i56F)c*dTnvij->{B=>+$nrfz=TY{)Zte;xm3lK4Z+Pj zvw{3a44sdJZlhL<94D&oEJNO_!Q$OkeM_sWZ8VBe)&kuYfpCcC26M%=VG!5?#F&IE z=U_WXT^fca7d8#t5Ik&x9Mlabiyg9%Ak@*NdxM?=(B_Dt>kru9g~M|r;NXq&NA5fV z;%G;q3P3zaOs8Ezj%`Rfh%r+bzO7Ctxx=X`;Rnb{B=bXJO>Wc)BuM1qVp#KqkFyfy zAbr{8;{&Fie+r$!a_sw)?F_Pq-R;TicRQKgb~v4&r&EDm@d)m%)@+OOeN#2oQ1&{giylx=R9NOK+l4 zs#A6-R!}unei)YC2<3a^(g%O>FYA{MN2!9<0KI~Y^{WQpu-R}FXMk(!s@7~iC5@Rn zf-BHGoEfxK(mxOrC8qlrAZ&ao@9 z!EV$Cfz+Bu19}(RScsz&_v$1yCqEHR=gG8D^-Q_Fa}~Hnbp7B4@FUPes2@oGaRJ2t zAt9d>ai{;0a4%HVEAX?^V)QI`(J>e#LD>$r0DIs@jnef!%+ZbUJ^1 zmQ?V`vOAN{?#!qkyx-LMN)O`<2<2$k?RrV6H;F8mS5)qGS}pg6@*Y$!3lAhS8wvVU z<-V}nzZ~4&f_>k{2~9B660}h=&k-C{^KgDmyIZzqo~EP@Foi`uq~8HoY(WyL^H0v3 zZjUDZX|ABEd1wo@^?|S{D&8P-BzLuc8$q%zoW5rUuWNVqrl{F6u1%9Dx3M6*klV~y zSjzJ4+XA#_y`%D)`fq+Vrk}x98C`Jp?l|9C-qUF=P2n(f(#w_M4H;hy14K>c^D-B)>tx!Quj3`W@NT#u23ghNrP`J%J3wy zP4>se*>k_u0^WP-<~Aoa7mWM7&K;9^ZsX6T_U~Ccnt3AoTln*iAy1%}h+TK|=cyeP z1)5y2=U~no-=Efaxj{IG>JemN9Eb_NYiXk!=QWHmLU3MUAiSEcs~TZ{Xb?gP?lmI}24VGe?^ z4@vQJ`%et5l1nI+x+j zGU;Ap>kFzYsg#+q(4W+-nc>5PzKdHM4TajKjLz4&V@2{XGRx_%$pPW-k(VgUUOyq7 zo*_lHWIn1xD11@4JD5&)hTPigr~VJ8D$zzN5Kq4Z8NC< zQUOVoDs<|OT?s|0Ue!amtxpW7Az~Qc8lI;Pct@){ ziua>)Es57b4XH3^C*`?FkT-N_BNADA_fwuL+)=N;edFxy^XG>4C7L^UPlr0so7!uV zG=aNDdb<^WhE&k&NP$@_nkzCrW(;iv?c5a+Nu;z`kZZ|@N4RhW^MH?8cva=M2wKrX&nILoDm60 z3%juem|{lNSUL$sP)L?qkOkXH9YoaEnxoVjBi5RhHQ3dA@5AssD!Y$nZjU|9WbPHH z4!E$uWz!oU1 zMiY=rd-u|+Gwperxo!3(oIBC^!fm5e;~Cohm|Pa~hdf)mr|BkaF_^b*eyLUBdz|xR zqCmgwa3d#CQqY~Phuy?4o~ zwk5d&E?|RfI)=E!lt2nCfe=DoObyiy(+$|hm>PODz4uOl1VRfW5C|<0AQ1R|XI2(` z@B4h;qi1JFyR%bnIro(R`5%cMPKfTSiu>{dsUuF~z`C~I%yp{%B4w^qX0&y9@^vzx zb};S(obOU=B$hIvii2vo+_-UjSkXF@K!)O^+El zSf~uOE7%s3Ebr!?I#`Clxa)ex21^?_Qm77SI8a~|#vo2&U&VRVJ$B-5a{Kl>@s8`ouH8Q1G#PNg!&L@(L zz`IxY{KB{0R9hmAky`B3m!nQ4c(cFWgt5Uw%~x&w;6ZxzNb2+MiCZqTH^?LnWAlyu zOyirl36Cz?6#wiP+X-(#!o1FpT~A74?bs<0IUIRll>$x5A~e6~B5>;z$neX{a*%)-kVeLhwG^LOep zzDX9Yllq#F*gzVHp`K9}AP9Vi5=4INb(^?*Z?GMr)h3(x)!Kv>D1fD^g} zG73LRsx70ybmBSBza;Ko7N-CcsF*DxBQjP8P-qq*)(@qYq z6AN4vqmy!(z@%J)lj2hfeYhB>rXlIJWsN@gS#^*;IEJdc*Fm}BQ>S-K@04QoJw+R@ zr3zE%w%N3c?)Hz=T;%a`{T_4u`0R zocS!y92om;qW23os6&jmGX)F`E7nakVp;&p2H7TV;SQllWC{QV(;d{k9$S>acQQL+ zLFv`=q%Ai|;hRG^^T+BW>mw2z_iNu;ZAAsC`8QL3g)98FI1BrXwb}ODGU|?u`%%XJ z6g^Xz#7|J>BCi}u*VNfwVJ*2TwzEqjDWL3k1SlV#l=Zt9HN`b(LuAMF0m@EN=wvG8 zcdMP#pcfn?K5K8ptsP)h z`Oc1{Uvl#&WaQ>A%lZ}dTW%ggUD~ake7s8i2+DViZwl5OT(f@kmOqFVF1OQoO>XZN zFSa?lJ!bnlHH{uCjNZc`(x8d?Ipf1@;nb{Jo^|id+7CpxK$<=+lagDwNNyo6 z;s(v@0~Cq$#StwHbO@4NXrT}~1Ch|FH429qGjdj)Ak;9Vjk(Bw-g59O;|klFgXTsD zPB04ZDC0;3j}l^7bfitl41~}C3sYsuiIcQx7Q>j7X%pHybiqIXanp}N{z05Q^g%x0LcgS5gk0!IE^v=J--{erpHhpZ%_uzR8yoCG!Czte&(aSPe^`sV z-fr;=F+TfJ+l{Usf1K$YPgC2qZcWDtrgb85POp?q6c$>{aIf3>xwdaN{X5LsYs~ny zP$u3mZ5Pe4g(UG^%C`p(!W)pZFbNPkR_oi z9URacRSvLJ6>B|)I-u*#|q5H<6NaO*0!x~3{aZN*r%BCs7hTptEgMzyN) zs$*5D>Mr9fRc{d-y4s4}L=srw6NhhRB9e!Gq)jFb97gj5hb-}&#F>`wt4}p3EbDbU zc*C||5zPp^ngF+KFY!0qe+5ldD*yt2vSZb@o8IiG!_v3e-lt~lBU3%7>^-f+?QX#K zrrOST)adJ=rN;514oh``*1|tuO(qHdhwPgK8Z*@iC~HNq4;X88 z0i)nj6Izhfrpf}5pxVn?(>m7-Kh);4A_M~1eLB@=nn>&_>fLCLDm8E88^TtPXn(T0 z%``vOsoSKc%|j6IYU^&x&Z!MHO>{ZjG0v?fuCMS?d_C$M*)=bPNJ)07h4_VzpRc?w zyHB0S@%G7{7d1^|4i9Z-h8LOYEwX6ztG_ z(u6)Q8FV(yCNbJA%@)#hnkH1dI@$k?@f6GxWExmsEA=k<-0ri=`&Lma00lNwBhn_f zo9cRt79ljhulZB!fZ%YRdaAmD&+I>#>d?`L4(uPp_>FhOS*%`D&MV3Ejt;j)%Cg3_IW^JDD;3dMxxFo2enr;cd1 zd3MLH!SdBk4R%;vClP4d{uL|M^qm<~b<;|WzLG| zvnkv1ark_ru_l>Hl^ib^XfH7{X{Dwc9|Q?m z)Gu{YSC9@s{hIS(TJ~NDYIO7Mu64CLPAVZJ)T1=YdbmbI1Jb0`KSgR9C!hm z^-S(_y4=_tt~5=q#HFGuISHRDO)@q?>B5!XbdzsW2GjeaFgQCvHU8yV@49Wp%PixZ z)3DGJ@K19Y`L{-Vgj~Y0@#rb&mHnP=S>LjF;r95ou>k-kWwISGM@|a;BHO?+xfoX> zZ#fIMixt&P5no?zw=(wFsEp?{IHi;nGl^O8%T?kkczvp1y^o!#66c5_L!h7QwpqWG zTaeuu=;6bxl|KEsjOG-*oWe1T#fc%7>Db6y^T6h z9Ydm*?&Sod=!iD+G0SQcfrUlOFa;9^L!?8T%&jEXk;or?CuQBzq=3ZZWQnq|vNtLI zX{0Y}cdzk`r&LW7LlOgcv+{3KiOtY)$^W;aQ6Gyo0I=v1%3p>rOKJ^rOw}eT6owF* z@C$f%QL9^6gfL%{HI-baR?bW0xB7B!OfP53VD z4@~H6z}<_N(R&R?1NnY+=+qgL9q}4(FX}FH6Erj<-fc4U`-*c8939LwA5u>7O&x76 zQ|dNlZ&tC}RQYC=KH6KR^ysHn^l5&x${d|qrfh@41J|>9x_?latB_dM!o9GR z&R=AL3L{uD`p=1`TC5Y4N7w^Tkcz`u}K)!f@ z{}+_zy;7I&WgFCDG%Q{Q8M#<~4mqz>HpA=5Hc)gMD54nJS*kpcgkd7a{KNE1k~^Hs zr||&_y%-OjzfGm+CgTAy<~)dWQ>Ty$2V)RrFN{1=0kM-FboBcLbz#kKRQgWN3VGg@Zd7Lu(YAFi4EPr!d+JlE4mAOo5uX>JT13%d-8E6S9W-3A5=h46 zk80on{vv>`HoiJ$7?K|~I4Pe=HCR`5f@M@CX8u50o%HP?zK8Q3i6AYMKpAf#fXitj~gVN}2~_9|{*@m%2-z0V`EJ}m&b z-yjDc=W=k;UBto46r#P;P_EUZ(V-uRo8^zJEoN$s>Awuq23qy#f3GS3zmA$?&JETn z|01PNau~-khN)wJrR`m^GEl(;%^)8=KpFjObga8hgo~-ZKFUhkr9{d>xgx3A9EjP;p#|c0XCTrh(0iV_GmbC_jtJtTRs?gg z(NLx04%#T>V`vP-KJ!6&^j?O?H)Rr6CdUs8EJn%!gi2&}jW&v6tG&cIFwv?p`J@_y_@N&h^3)IZ@sRF| zqSiRClru%*5-~O`1BCbLL33i8@nVcb>(A+E`>I%&$`Se}Tg1X{qa*FRV#zdK`A1{s z6EW0q#;?w!E!5)W&Y3K>HIZZ+MzYy%HTJOh_&){!^%2^wdVn|Ict%z2Q`ox#%49&L zR^vW3d$;Uk?>!0s^)%jR89g|=>I-#naC&Y_ZM)az_lcX)ZLeu5W?K7|c2m1fPqRA5 z=`^X1?Pxt??jK4?&?!A&O5kLmoQ z%z9FE5S(z|2q8MST))i9jnm+hw+vIr)p*pM5iSKiL!Po6Ws#HUvX9Hws*lRl$7S=P z?Ug!uJD0Z{SKDmfu7W$%T*Qosm%Io|>kdFEP%+)E;s{knxUB&fJfPa>g#_n?leHWs z7}qP;@g!83SxOw*trj%1x-Qe$K)lC?zde(-%3-=A7mCmAhv#fIc#m#%~<1`i9mwtpwbw&mROA_6jmNMJ1BCKu$0N; zX=|n0Hj1Dg!PZ#1d!5e&tf-%D{7(WMtU3Wa7c`YBHFxoMHg|!EQIm>M-lb{lUJJ5m zLzp5-&LjM)t#xYtMZy}mJ6mJvAC$2XOhQOhpagxu54Qo7!0!^wA~9vl(Sch;Gqiz5 zGot1nI4^E2#kqPj*mzWA6Q4~pJZ^&$VXu2;nL1WIjYhyu`{;W$@4m703+blbOs#HW z5y_LsBgN6A3W*e@Gfl*c_(n~b7E9H=(TLeggCZ3r^d4}Fkuzo^Z#iS>M=G1mU4k+~ z7HpV{>88toL|fA{^=qum3TWs2YiDL}pSgfWNt;zdJheN1jcx5J2k9aI5%XKhfX{$r z;4Iod_(v>I!9kv}^ho1fRtmtyx&_E4RJKBQvlXBmqDN)R(hsWdQfgWHx6!sM+9spz z`Nc1S?^2b<(w^mtDyZ&8WnHY!wlEyqa7G~UU()`I(KDNOo7R11NjM4qJh*}h!2mi* zT4cVMeVx7T07YY2S>b|bwx)JS)e=a-C>r1tp%h&qK_Aa2Db*wVC zfLqTxZbKei2xrT3`~DqIiO z;y1)}LTc8*HVVkIJO%|O^9?u68WmC~%z;J0^7A2e9dOETksLUsd9GRdO85_$>wJD6 z8ZKvpnsZ5#{+f_am8g80SF9w3t(d{m0Oee%PPbDlZMDKqueQ}HJ9ds8>!2q^;)QCF zNW2Ux^b}bY(cOqkNGaYF5424ELJXZ-Bcmq|gVNGZsm5TpK;}}T%TUdS#jy>09w>bI zpM}2D5$`sV;xJ=V=;;R><)fyKa z@!O-dv9yu)*u{8^qi7A>=u#kz(ab)aM*zm45|Q8j5<9*K@nx@(C4QGk)(l78*bvE@ zy^Sx?c_o(>u|T(DHpwq>cQw&;SgUg7UHRFP-z?_V{)Z}F5PBm~$_mvWdZU96Mw_&@ z6Sl+z2F=fT%K3ZEt2O@ZRkPF}jgcbcmK2wxpNWgI8ve{m`Ah;i9AC21Ty3o|)k^cg zXq$|-f7dH;8Z8~%p>!m-gFQ05gEx|kCLL4HyjXQ@RMi(NbEB%cSXp)cLkg{W*ZM!H z9a19~n8wGkW}eCU%FXYguZ7yv&7r_u;Nk&WMzp|$vd#E5%Rx7zc1!Y4fnnd%>r zzhFKCy)`~FU4FkO(OA#C7g`JkGV{x94bSqduRVW1bKfj+qynEJi(nqC|HZ)2Lk#4%c3e{9Zs<#{`}vrID-ze#+%P; z+}3^84(4S2XU48xC?2$CtIyoYI^HpVO_4xWDY*5}Z7g>fp2Qpmjf*DNm8wpfsjLd) zbPOY}S$AjuBsOC*ph2{IkNJcHj^G|M$<|o9+1bG#sWm>1m$EJ-h$_w{b)Z?lsx=<) zw39fMDpX;r284L2dXi4NQCaJ3lYci0=&Y8>)Uzjkh#G3RF6!K*N-t5rFb=HO{sUI& z{hY8I_l3AanIiRi3Mm`;;%xEtau%LWR)JqIPWg`QbEOuu`1&w zt7gk&-pT^I#?c2KPI}QI0)=lt$XKGc7geZR?6u zOoLJct{Z1hI+k%6B}EsrAp~W-CqLY;IE-*J% zK~a7p$w4#&p#@X`wnKkP)~v+eLKJMpGv3kf{=5(FwpL;Vy)4df!9;5!bHs-R%=b@(x%btm`2BP`%JjtY^?=qlf-a@$C}LVBPZIDIR=R`(1hTU3m0WYR<0aZb7uywOVzoQk&Eq zjGA!UnKXzUeJ*WKYMcTkGf@UuhoLhT9hEX(k=lkF0C4oavQIOe3sg4d5A<2~QTA_V zby@#Z=2{)F-)SjSeH!C8e%>t0;q$3rVA)PXXp$?(RVxrAB&SfAPMry9>n0eRvX9S z6=6vCAwx+3hXDHjuQvZTz!|HAu!4@R0A=_oq--#T0Z8}{7n^T-zE~K_ktMtL`;sIaP4$QrQ z?e#K_KvoBKs-X=7inD(l%d@wA8~6YBv@UqWvaD%_}A* zf7TAGRdA8uLG~f=!}RsvP(OWLdB&onj8ptZt4YYj)7@!TYGXOPAW1K2x%ar zYImcr2FXGEH~>S7(kb(NDdw@KU57uLwAS!??OsRz8Ol%Ir0}dDpbIq= zLLyTGuyzaiwPtQ{Y_i!1iFbdlAtQ|FCu?gmY*-Y2~sM9@Lyj71%n5sOm$M%zc!Wy-!3pUq{;yA(^pcsYPz*s?nC=Mykgs{(Tk zRc%PNLeCMx=2Ww4O5sHS|26up5B(KrZfwBqj}0XI z!vTV@_XhSe1TG2|6F5IM`B-R?_$2dBg%ZtL?2_-V0x(8h_Mu--&8XJw`0Oe zDk9cw9^zM*#ET@kKt8kbF@;OiQ^RCo)SI?w~Nlmp!lV|4D-xBI-&DFwGW8vd`i6+OE2@SemzK{bHSv7 zpI#JWnFQay1DV}AmU2p*tnZY*qs+f44?n0jOJL{JZz}UGau&^Ru_fLYx8E`; zFHL_ea*QXEj-k7aMcu~7)Xb9-ZMf15)ooZ%Y+3V{&Qr#spBNibS!X)UipD+>5;LYJT>;EPAvH)p7Zn6;+*kiszA&i#5D_c zNlFBrXdUI+FU6?Jh@{-lx)~3>=q=|k=dFW(&+1_;I*o8)I^kgA;8)nO9$bVhVgDoG z`zBFQz`-XDK3yG@G!}sky)WHQ8)le%1R-vShRpa zKiN1oGn2ut9*w7-Vrj%lT7e-o6IX2-yRXdUp9ORV2?B}fuZgnP!)woJapb?|_uCsU z0yYyCjOs9nIRdax`#F|Z-s^P+*43~~08Fw~wJU#H04qVZY0{@Hx)3>+~-1dt-7=8$MRIoj40)tpF!QJFb*QI#ob zG=Em^DmC7?C)=VE-(`Yhv-;~y{@V=YCag|q^c$`91Ya`#`B{eqG<3|E`Ax<PUcm| zE5eiEyd}_2Q39b_#xG<7;|0mM2&FAa5F^rK2Ue@tDrK%#xm8eYt089&`Y!q{>CkK) zV`GkmffO>?RAQvpw_ju|4}f1G{icrpWAQw z?(?BFzjWAlcJ*rr;ZsT!*o0MI>*W&hJQVMFzmY1Op;~X2Pz%}uSYuvqR-C2v!?yjZ zoxDlgFmt$YyKo%2vUVk!?;&<4$lY&!`_#ZbEwJD8i=V|Bp%$3y^=DJQ=XB=>v*(0A z_zprKU7i|ebya=y!=F$BS#I=hv*bQ}#`c3|4ntl zJk7VS*F3DhCia_ab#Q-RofSLkbU)qu0{{k`yUYMa{{DIZExy(s=RB*_zcq5Lf|8s1 z$3aM(Dw4KM=GBZfLAx`^%mru@cS%0@VoFyAAp0xuJ1`!D?M2z=bp)^ZyarMwqzG10 z$)hAYpQ>xvR_1R|{VeyWJe&#$$DbfxBQK&}sjk#3h^)S<#?g1n)kv`iPa5sPLF0I< z7EK0Z^R2$~2VzqogR0y{O?1w03PN=(MVLmP_;+JZe4Llba@(S$WEDBtJns%xIm{7# zFfguA=2Dw)tE`($p_O&i2$E9n@pr|0GzS^wQY4w1+SPcK~2t<@hQri5^Yg z2N6A$I#sW#+ZB0aBAZ{RSDropjR^tMB^ zEs3@j(Ki17yRCd3yu9Z%tFg z-QL%ps$1~n+QydXFua811qZkF$lFmDh@bQ~HEmh&#hf7$Ur zcgrtS!3D~{Q27_A^uJyEbJu43M+dC1y-w`i@(mJnE+le6+;cjeq+hzhfdoD?Gm%X+ zBuW!8@~qNb!C`${R_@hNM$`s{s+zEm@D9^GW`#YIlHq45Yb&!AO@~7Z*6%^oLM)<3 zBIqDfa;UUIO!0#Fk6T!` z?@{p2j3$#N&4-cgos30Jgb1J49plu46UA5Xn5r_4$D|O}-W2g7+fyAZcKhI<#V2k| zx5`D?8l>Suipb$o9tL#sh8j2ex!JRgt1zUY7WM4JB)^^1YvLt5p}JhJGTY9MOz?jF zD?I_yw#JiQ&Glw&l+Bb^SW6tF6H3oE#otSm5{Te8&M7j2~O%LvQn&Y zdycye4XDJBF$b*!xN;x%mzg3P-ZIM*Y;ng*JF^$UEde;3n%tOiWQwtZ+xR0vc>?V% z6~BTW;NJ0OpDG?%ku?c*a}=3bqz|EX+(TMEFIcw|gOR#J4cs1htK;$P?ZzY5%OmeX z5CC6gXhK?6vJ!8?3awV^#0s6`;7^44qFHw#e8jKZg_hfb&X&j`n~UoILy=qoXwo1N z#%Akr2B$PzhF|Y)!2BZv7#l~Zo+-g7rdp+Rx_C#+EPS?H^V#Ax^Tlhfg5lY0wzwu` zX5^}+x`a7_?B+$)8~B!j(y{CRExP{miU3J;eXuug078&dQ!dD;dV6e7`zzIg6{?a0 zjy66Z$*Jr?_%Zk+8DX8EMd+E2>&Rbzt`Q{>wC^+U?|%^xy3fZ@$m7@AO!c0_GmiwAJW9PpGv~SGR!IA^y{C&Ub2H zfD#3h*agfng0=@Kp}4Nb{j|Y~+)qLa6&NF@sF~)hV5U1O|BxzqP~EAAoZ&`Z`|~=L z2rZFn;@e>W>@VYFUYKFsIYZqw!2Z{yrDtKplDT&=lIzH5^PJH`Rn8Z7s<^hT4H6Xi2#vA9D@OR?#1iB*^k$7F5i~#I2tf!F) zge%7+LMVQSfP-Q7Qq!4Wt^ND zm8wt96fL+04S1x{ScYdOQVX!m<>T=v$1(Y;Fysw48XIlVDfM@jhoy}mA%cinEU6kD zT!($uU@-J}4xim#k;&mD-?E>(${KRLgp`k7UZiuJES9tRdX;S6tQVZ7+D! zBgq3%6w8`9qI|TwI2HKrRXmiCO#cN@7i2R@5HQawt6q>W1q+_1QIB^DWiBxHc3SLx zjFI0M%dthLJHE@z+nSh@L|DN0(oGYMm3S{@nvQl-qS#5m;iW^YXViB^U-%cMF_PGF z_x^h2Zcq+(--aj%FiWAP=l8T1?7u;^uUFUTsOJW6=RxiDxCz!eP#FVX0D{UWI$OEC zpQ(H@s|f>qsniKhc)XK;+O|KWO&f^YXBqD5a7uIG_>S8w*Ld}UvX;>xfTwHmC;Zk@ zZ%T$~cp_8#GE)5PVI%0QBV1P(U6PVSm3p zb`8T5V-PlTj*lMv8zLVBKyKy1f41ep={9$!O%PzcIzr}o^n86ARO@` zb6lkhKrz3I|36^z2E{)w*J3ZSu-};2-R>(|y#HObtvj~3f6?ZNCKcY&kbkGr^6XhZ zFw2@yZz~Yiw$t>z)BlfTu!g6(I0g_!0Q$am!ex|uLf*Y@+YgZr7o?+Uj)#iLZbuQG zD;-&&t%J=E5CW0=KSk}RLueUmq4}(3{mw9c7PZlqAixo$0f0WI)xNzL0GR!Q007T6 z(q%m10!3o1u=11{FO2@fQdLbPY^2+Gl}}`DkD8ukA_3}|u`;-(w@>2~*>x%dV9$7$ z7`J_llR4gr=22Y)(iR&t!?%op5D-vkuO)eh z;acHl2+*d2VG(oG)hsnes`gY1+==$!oZ@}e8t28TZt>J+&;6%of9y38y(o3my#i89 zz3utIm@aZ6GE0Jvug%|-` z%MK-I2Ted5az!M3R_!MJTT5|dJ}I-L-pc$hBu}GB#Ckg^_9bo}2{^8}=dD+@H>;+b z)WOC{emNGrRw0FF7r1*`=f!-eV#AB0|GZ7HYD<4^H9^0OdhK{Ah;0hrXJDQab;mNr zz4s$~7(eYIES06kq1TZ|YuEZsv4gprYt?2uTCPW~!5=s>ZhqA~y?yLdl|4=6PgRN2 zlt1?XQd`rxOtuPg&*tI?LNm!csMuQHDSx=~W)<9|Jp7h7L2;+_O{%PT*!kLc!Y_UktD@XR${ zzwOAEjBfx4a(G^H3Cwao9~%x+K^pIV6&6%8nA4CV1R2o6;Lb`bVQchY4R%R^D_Un4WG7>Z-we% zspgmbkpF4Lg`>fegnB0OL(HJdW18hGt$$if?Doya@k7js?67SB6*lp#hx%<~k%_*s zKaH|d-5~zxmFfzd7cIuf^ern5D~uKG7uS-W4XR_kO5*_gy|_;xOL;L)O0KpKhCD2< ze(C^lUWcr5oDEc^aM-sma_p;!NXW=im$3e`o?vpPDXKK)Ryk_St@4b@tgX&Hq@P=~3JwwUiJ&m&x#DiCa!IIb`K_;2S4pMgpYH?yi7z^=Mi0#$H(CgKw zDj9-RjTM+(1Oej~#%UR?`sTNLv#-d`m+d@;9BXI!LQ0zyEF-)Gnj$wkL>LkTX(T z1I}OoN-*{mMH`=>^jCQF`y&&_^5S@A+L<7fVo zEO{eI)p^`xu0?HKf?~w@$Qxt?n&&GgqpnPqT%AgNl?cB{1SRlCx=5B)sj@W?)&xBy zph`*WG9=ZJj4Q2whoNw9s^o!G0yE_#eaLmI z7|z{RnG(|g!CV4GDGhM9nupyxev9DBtygm+VU;uPBD7WYm2a&L)cG);CDsNL=|^=2 zu_%Pm%E0d!YpmNNBdtLI^rB@I>m%iWQ+M#M_Lt09EGl30JmZbeGNeA8na-a>M8&t! zGtU;ZNp$Rrocf&i_|;Ob5uFw$ zpekfXd9K1EC~g1p2iEXQk#A$71@piJTQNtV0#Unr4Q@)$lJ&MbTCC!cqh!Sb2*tSbB@O%JKs2l2R7C?^^=3*0>6Wmv4=WFlFxqI-_c@;k*C-J*@G&H}Br@AuJvRh{IqtSXe8I(ZGnuC;( zxMLfOIgHexmvYvwgcUhhYFt0Y(pVW8QMgEuD^`Gk~{=4jH47#FV!n~38Gj~x#0iYv3dAn zG!JK3$17DA39i~fT+SnNjF(Gu{E{UPM-!Z$l3Y>}8F4*RiKdKfV|+%%A@NfoC$QW| ztwc1OXQKMI^TOU?WK2h+-hN^TMdX6vpoY4KFQ~k?=$T z2^gw73(S_!3Zgoy`{j$|bEWRpXt(O@lGM5qf4k%!XdVZpCvll)DP0(zR6O=2DP9=f zSV~&q47Cjw_l!*2*zkBPno`5oZrD;gm?PF+X1hMbYBEO$MZvtuw2q~NrZYFUCs2?u zhp`AJVGV{s16%@OGL8lf0XfA?c8o?wT(o8?2-@%S zBy3F%JIXW|4~l&deQBqDtO%~Z6oP*g;tn`>UtL*_pn9vkQLAgpq*0$MS9c?ySrG2X zQa!{?|E5&z(Bc|;L6mK?i}e5ye2j}_3P*L5S?E56kj*H%bj z)B-BBdYyX?&#Dk4ZfL3ZqWeCr0&cnh@O|-4i9>M%+iEeOl0v&ZHxi_EO#0B382PnC zDBH~nspj>n9X0IMs5`^KF5^EHEjqjf@owFdQ+MZ_ z2W0pDocjP^cM`R*5-DsLeq50q2q7;6m4VN=1*TnXwOF+hAN6fBc2Pb;DXh(hI=KMh zd2X4rwoIZP!ks4)M*fhjNxLvuYS)&4HdXJHODCtVkiS&IHrHJKTzpZP2>#uPI=94J9LJ(iVYOT;l%KJ+PV=jlZ?A6 z;mM3Vk>G&d(gz_{8rG?*i&O;`c^->=Jm$|)$Oqqe02*>Q#ow=}`miEX68mS6`Z&nH zUXppM#0}FK`1rKD)>JoD`0EOkWswYVv?hcf;2`yURq91?9VC<_#}2S=>AeBD8x1I< z6@(S@PR1TUZ2PgJFmfa1Z3mRFD)DEPa0eD0lj42Qc&-|9g(u7XXUeUo%bjP+5lI^S zrO9ueT7*W*VQ#9Nk(L2!RA!qudYz{ zm%AgmFUv6gA(ruxD*aA8RIgX3{stk9`n){+vYca|QPNoNmia#$TM2HD7QF_pwTu2v zsqI9u{eo5@2H=w2aG;lR12Bg!-RLt1#U}eq9nHPZ<%V-e`t;1)tO7SpJgkr*u(i6j z0PlZ^Xn@z%r0%LA!BUemXnzK@iCcK7BKK+qJgH<|Y7kS18*(?RQplKwDuzu4QoyU! z__!9&I$jl!cO}+M74B6PM)B14@u1Czq^GZb#j0Gei5JO|gt{2^W$ zDzu3-$0Nq14`A;^DcWgN4xt;3N(3AM2!w1DFPLGhuCIEs+^Q9vVqiFX z>IDQCW;GjsYbYGopiXRXZ)>pcXrQA3_SYkd6W2HBawg7y>w;zV>YC`I=NiK68dQJc zkp^7tm$DZ=(tzf3ZjHURCeZ4(hLAIyU#~B$ch}e08~F?Xf9cq?f`$QET}yTi$b8m; zG;|04kq@)og$je;FcbcW;9}t)CcrlE( zFFs!}ls9+*!1=~VBLy^{WSLPf$=xn*WHEY09;K*aJ%Xc+N|U)q5Ot`NWLy)$_+Cf- zJi6aqfbO<2$J;~_Y#%MQkUcP5xJ$n#cBr9Q(?jE_Mq0oC6)Dp7JiIgb+Ex`^Zg9Wy z&o5R0!WgOBG6_+sn2NF4QGcC2y8h-jsM7UHZ%`RRUUbjs$Aj{4sX>lMvq~YOQO4L? zLvm7M-KAC5V^!+mDks{;-XUOs^W*4C*kG3GZ_`s*s+@=mJukE^p!s#C``$^o02GEU+c)a%7xWTJY5X9`}&!cP@R%L9c4C^u&X2unR#-mnz4<46^(Wtb)lZ&PA*;W-Tn-4IYG$Teew#X3{!Lyb$In9( ziW4tdp)hCnuv*AJM2pivhS24Ux^(rir}btxikW?zTCd43(~u zM$Q6g*$t8n**=czub6->G;z9!kwK)$X(CE?=areqd~O^n9cGdh*UKMF)o?Hz$_&Sf z9m#y`WIh)ENkvn#)mYb3aKb+|m;SjK4fo9&>(d(bNsaSm4aIDuxf!l*VJbe|oO!Mp zY{=iE_B*9TeNh8@rR9BA1K_P(eGz@Uwgu$C>9x^hI;GaH$~283vHuXQnfm~|Zy;*| z+d=h$f{5~+8$lcZHH+Nk6vhyN<%VblQs+XT$ekc4*vqC$I`X9dAgwMbim8)P3FF4d zjpEXtjqnM0kAeVKA!k}dn%0t4A`3aeBetnK%ba`40*Y26J6APXCpJygssA?Elm~;U zJaTt`@Av<#B3+Sj(PD}d{}0i`pKHNyATEFVms}agg2S~fb2c#%3}D>WTU`4Bho8QL ziP<`hCB286OCtpr8XH@M1BVK7PdC^vHwdeU`l2EHPlH%xKGn=Jk|#Y3T70VPz!ita zB=y14z@>y*bNVGR>l>yKp{vDRT29}Nt{`2~t8pgjBXWr^n)EkK4*4YRUt2Q&Xd#pY z(@QIJY;)__o9qfT|M6F zouhA(!+U*yffy$*8;TFNMRAF(_)pYUPQebwgv zrwu3Enu+Ea6P?<^2_4~y9fdvp1uzNWHAatDkB6zJLbb{dmbXf-6q@C;%7d85D;dl* z#6NFtVdZ%-ufJ$7t~`(B>yEGw@lG=B)8W4ICCBZ|4*TVfE>bC59QBf5N}o{v9{L|` zEMu>RHQs zfoeJGy)K?=-8hz^e|E}!t{jKQ>ZyM3@qUNm%6EZAP}kM{;GTj9I_&>i-j|mBM{0t| z;#$+5KQhy$Zk?!ZUliQ6h^6?piM|X9w4}PNDb$?`VjQwTBWg=Zz&>!Dx!6) z0bp>D!+n`PPZ1_amlmL)3MyY6hm{=R{W^7I z@wdV6j$Rg7vgxBQQ`G+~-q`QeV)E2M@}*B!KUs;RpDdNwYRQNiTEpkznd--b;gVo6 zaoNQU6PwOc-nnW%i$_m4KBGfqqDcN6L zjQk`j8tX3s2q22Cg+X2m9n03-*T?Ex^^s6xy=z8qg&%BtK2qq{4T#-J7zS@q#01U% zD)U3iq}r8tmQt?zmOb>5+J-(H;q%_1M{xTvFwBw0E)hwwEL}4p?XS2`hI-JFL7a z^J9A{1kpR&{}=%OdiFp?x@>mYrvvuy{nR_{-k%5J%K6s-{9#3X=Q#{(!???|o~B-x zeE{BDzA9KR;mU1bVX4H657M7Ui0j#Q%CYPonCMJ$1spgUVbX(-qdQZbz5!p4uFuc) zD%~AG(gUhWQw_rwXV3J*&}5eKD&rMQn`Mk#Ho8)l6qm43J$0e+LQlO;zuOkKa__Y{ zr*%4h@=U~Q_-Tg#chE6bb*eAAk$G45u#%BMtxo6`xp!F)lzrcglidwH;cIQdKig&% zAFn|EjXd79%EB=~rM*g%Z|W`5@$t;oDLM$As)k}xoLdqZY^f+7A&crPaiX1qf!%`# zWk#q+&7~AYFP8P9dqFA~yQ9sqQg^oLGn@1ejF8ltCKEy&or+)GhJU=EB>1rgn20p3 z>~|76l6WYJKhf@#*{%axYRPkwq)@>tKKl9z?-LfI1hyW5@#S8xV!w7U_$XK)O_v(% z-c9d1+I*wxVf&aqP`+zWY~R-6TZ^%ww~$DkQK_y;x!02mu2)t%clSgKX#SjvY`gkz zkLpj|*o*WHr3h;3{9b)wFCuzXkF@QLy@{kcF52DHo9HIp_Z1MF-wW#UwY_voN?jfu z@>Fjj$xkne{<*I=)QP>vbnHu*lZJ5=skD@Hpc?>OVTN^yrY*@>Kz@O%_==~bM^ZsI zIZ7!UE@3(uIb7Nkl$;bld#pSjM8dVTnr~}bjFB3|N{_L&59PvFt9sovy->Q5N*b#p zF`x&iXgO?2)(inwy2Y|kLP*;vj_vlLlHsYweSMOPBHZ-qmEMxqdaV$xImpB^;=P_h zz6)>dblz0D>lxMmwBTdU*U{Ux#kcmS$&478i51WnSp)b=crQgyOpgwCV6)SUyS03? z9skA$)`@8U!h9KWBb5E?m~_;-@FWGG(9MZNJ-X z|H6jvN}b$opVqBT?Y5V9yRFQV_5IF`{RnNx&Z>X*F?%-ltMi)uf4KI83(Y4MN^&+e z$t?FPmrUdHo7E@1(%EbJsh#*~m%3r0{ZzMiSC@CE2-W4|a6It?6q_@~sTaG5y~|f)#U1vyOmN2UC6o6HlgT=;7+G=ADEfOk{pf=^5+{o*J)RsK zosx9xDFcxk(4>AUcT(c#mhy-T@QL{yUWP<>yU(6NX8jU-D89VWKfTdR7yqLqZwCbV zUrPhuxJTlcMtyu^^0-D6g%>)pw~GB?scRO-Z(KMEJO z5e!QlT9MrH2G1pfcDP)c&mWv6VgK3Pd(#n$v+zRbHD)M5znLD^)CxE#J=}68FIGUm)??K(gdjf=|m0{+^ z&sAuH&0Z9shkC$$eBGnU z^jW=x_{EbfbTFEtogi3IQ2<22ZUU?oS5^|&hTn@XVhW}?;fI`Xw=ZB71VRjM2agb| zl?&mB4D|(W?2^FGlW)Lp~goh~YAE-B9E2%L!F~XjRvu`NqB6 zpHx8I;8lJ9`&Rkzk_n9NS0|`z>(%kz|7%qH#ZkR!R|n7k<>O^6KQ)0{&tgc7p*j!S zf>%7`?e@&~eAs^_(kK)_yMyY?nN@^Bk5}f8inYRR^Id=|Qs%0Kv=Ox2?;qNv6g3b9 zMK_KPYrc0~Cru0vXm6?(`-q_JVMS}DCKSuojphxZV2uDYqHk!GegkUyt z@FnUX@&uYkA3w!{Trv8vlZ>kddBPR-*6Mn-s-9+CQ=j^x-~La3@>DZeZmRqL&yy{O zlbk0@k0Cj(jDj|EbffM=7ahfHTuC2}U6A>m{6DukK(7M+10PTg7NypBU@(UgpdPF* zJXQ~jL=uIhmn=fwir@1bC)>mrXHX7nq>E>$Ib!HKmRXfxO8_7>yhbBtlM&7p6zu2| zZdS&hwg^%{r~X&yp}^QUpd&3&%_}kDUm(RC`a#QC|*b_;nVz4I@0ERx*kwT4W^Tt&5nW zqSu_rM`X$&oB+*ZepLJHx?*fExf-aYG4dFC#iU9h2tyH)H0TorJkG+iD@>fx!sAYi zMfrr`76@m?_;6D0)JbajB=_D)u_!dNZU|lP)FF_B9}a=`IeS>7?B+=keJ7b|WHF29 zm>j9%xj*-R;0@@h9OyiCdvx8`Ciyk!7`@gZk-s`A3WuPx5WV)HOzJR}r+e;E=bE^bjgbpY zic=qy#xXG@QHP1`r%j?YJ7AbZg`K zX$6a_zbqs?R&gO=B@>qcg!Iz&Cq!nmbU!}!D8(zpo1Q?c8#Px4jYp;x-kGZ2o$8)H z&AxCN^X~a6&K~wRlP&ar{I`Ff%=mk33W277O_A|;+B9Mt^d_)+3EbD>SLsB~#PE1D zN&sBa%_QxMTE@zTo&iKgP_*S?yhzOdvz8pN!BJ^9s;%@hhXs(^&&NeY-Jdn;gI{EP zI;~14AN7MLe09vE|1GKb@XTqE1`b-_?*%FP<)1v2N&LVR=FT-!xcAjl!#pLYO4W^J z|67SEs^&gQ%%x>P&U$dFJm7uPNHU>s@%fR|OyER@$aZ7P#~YC+qecHjRg;6XgvV~N z%C;;cZy+E#|Btd30nBuHvMd5Eo0vI4X$fY|50!J@b;^>BOrxenG}FP|tQ@B*(INV_ z*K_^tLx@sSbB{KbZ4J93t*CJ>-B}^vhK3ce zKaEV;5-|mvFX)n)m=u5ce^`6(FsrJw?|-kd``P>SIcItS24;pf^eUi$2n-Cpi6s#w zYDA++e4Z2$P*jM$A|iIhDE4Tqu|;FS7>y-H(V$6;vBlV9-p|@+ASTcA{{Hw~?={yx zXU{(8?7jBdYu)QE-}`$LSb4={=XQ}WBF%DG7IVT6#gLzgpEQo%@=0$tioA)wLD@_*#x_Hqr!^rd21RuN9&s7l*PQXVsDuF`y{ou_sInH=>+-71pCVg1VwKiPF2nDW|34%#RHdk z6>pkE_>q~5Mf3OJ|8s%fv{$t!F54@6cBBPbbHW|6^ zxWA`hD2XRs@bVfy5mQ|^ltZ#Z3q6Z+sir1dJvG%4E`fP`YkK&lX|Xl^h)&+Jm%@QI z>tgw&=zK!FE3K0!w_%Oss5)SnX<)D;eCWFl>1v&j{CX#j>|8f8CmRh=M@KNql?g3%h{dCZTaQgH|6{mVJtE^pIvoW7iCMiI z`&aeq@p|`H_3lLnxX(_6UiqxqJTEUQh6M`##8$__@jU zeo66!%5?mFf@EBPn)sB-5Iv}p;ab)sRd2nX<PUw ztbuRt*-zVvzoby7L|t{EiP!qDMabA7_v7wc!QfC^T6C|P&2w$4toQ>AubfD zuOD+5W}nqCq;^bUNS!>j@NUiSA$4k9^*ek1SzpJHdSSA8NS{v$cJstSSCuSA+s$BF z0eXghEgKCAON3AXwlyU%cMlyHX)62B-i7EN06Yq122HU#89-s;x}`>k9t@i+3^LP< z5?w`+%k;i_y4Wv=RUJ-7vJcR+j4n1Skv^uj_xaN*Y4?(9#c8zLe%7A98QKV4sPga!qMJEUk#@hfWrETTA{Pwur67VWCM$39w zg7kn2Wxm`ZRWo?edO49=n0%{^N)jg$!IaPPHPX*qC{Io1qPg%wMki*&p_E>DH{vxP$!N)*1WB0M7dGTGH~a{r>FIMar{2@F3lRR%pLtD&V3$d zK8b@*aq4=)z9^l`Qq7?<75|Y8rL98#96yLD@=(^(NX%Nt^CLrx{B^cij;7=l{5*`< z2qjy>bMQwSN-b;FT%1jYY^JH_eGoDxHdDnLmH6AeQ3tTR8>_9d`D2pcQ!pxd3rD>z ztq*6A8}w@Aybzhh4e~*rjKs?@DzkTF95{0#P6C@We z>}$WVZ+!O*oQ@yP$lhz-Kbk>>v#i^wh6I0~raqk}KAGlyK23Z!&HHkiIBAA|$_(-N zbS7Bv&J6K{*$F?NL9uIQGjtLTC4QVii_~II4llsa&(Q$z1v2SUvBxFyVY1S_FF*wM zl@r`vghyYH=Hs%4D|iPhoq=w*Ak-LiCe0J$$>_(s|8x8{gj!5&#VcmPta;T3K#(Hp zyjp=bJYjr6z6ZTTE9-h+I*gd!)drpvnjEY4>eiZ$ifrnM=QUbS&ID1Uz0al>8QJdp z(=!lNQZNsJPLHI1IukJQXXaK@n`e?hVpwC=GV+9()mA&1>>bF*lwFlrcVv!K?UW~{ zUz1{|d{Ddw;l->uvcqr@6dw`pqr!bev_2~AN5q6mD>n5YifiD!AYC$|hF48h9YU2< zOtG!UHNT?r-RH#=jeFjk`fFuf-DNzt83J-H%)Dal=#Gt}#RXl(O4f)Hi@Ubp@1~c_QyV^MdwjKaH=831sH|h6MSM+k1_d-|1{Ig%}!iN3he%_z< z^GNx_@4tPNE30lARqmbQxAxFRAS+cZCDb5;dL%AGo(nW9zYuhlQ4}%C@r97x~zIVljgPuF)&7cWisUYU+C`;=Bf=KEQdBvovrE$c~)AN^TDe_k+E zfz$^D@54g&ivnm4UDmbRiq3UK^?rdE#P*`Tsp$WW`Z?yW>h&ljB{ULYI;;&kA*5;a zM40#5awfgGhaU``)3UygFG9$T0*AyZd4mvZ%pThQK)c!Na;t+IrSAu;rECu`6!AI{ z9U#9!a+E_MDJaF7)yWxC0x=m+#DdX(R4Yor1k~D;yGbPh;TjUBwwa=b6lIF)&~fW? z_1SIU%t@kJktC~qyDq9NkjB_(0!Q?w=3+vt4i5JT$WW+CL1izZ0ubH8@%>dwBr1CNL!U>RFQ*h1L^Jj9-9|0gW{sOZ< z7O7z93pk5$ft;8)e19rVz@OBKG(A^Z=XaY}Rq?eM_FFUHw+pdr2$|TdvL^o~02m@o zRR%mxOY{V|0BY@{46Lw|XTz_#%PExB*y9OEV%Mor)z*F8<=@Q~ug-SQ>bB4Ah86@X zPW*9}8J4GY2NA@Tbl;6pL>Ds_9l{<=?cykGKq z2Ut?X)ljf^qlifSxFP`78g!k<`te_t|9=OqM0Yt=`@62_oh~m2PcwhwcY~5lsu}qG zU-IIYVaUr6p!Q`enMUHzvrU6H&dK7RD2yr&cd=C{VtXS)Ihi9$-QXftHq6PKK8LXK z{ax;ZUD%071bv{&KT}XI7pNu&JaJdIInyh1Fogf$+b??&rI%!B212p2RKifkh(8Q9 z{@ZA-zC2iT(Kqd+FXz!sjPM-F@sSK2L*W#=hb7~8dE6^fnM~Ttky)6G+FC-P@Ot7k zT+Bc+goxjTse0Bi#AxsVZJX0-NLK#1clh?+utp%6F#9D;Yt_Luv-CZ)mdX+(&3c;j z`^3=ihhw(eS+Uz2@%zNk55+JZ87DN6^2@v(ruX+agGT1g7IH~Xyn9&^^7C1veeCk) zM3`3~BDgBep(#KldoUwoD$hw6;3T;uy(|Cr0N7a*V5y-zj{k`07)@0*c>*jDFzx2X zjNvr%jSK2uzpvY^Dx^joYCSNw{QEg#=N$K(x%T;UlWdcd=H^gKKAa18+-GymlR0;; z?dVUbhY0EmN$HS?jtMij>W#T>n|!ky@6Vmx{_p2Hug=X6&~FI)R$;$B*WNW(TsPMU zUc=RPPq+X2T<49snNIVC?IuDbA;j;A-(~{s)L(pneP=g_$-nk=o%@v- zgsEW6$>1F0d994;&54rQBySO7D$c{+@)0S?A0QY10o?K7qyuY~St{Q$!n-FpcC56zF@b)*=R zLmK#_JI1-@x8ups_i~dmlhr}K&b>$x&anXD;O72;Z{u3r) zC7&gAsVgsAkh*+9ne7nJ3XkWa*zHmNa z#Xg{*7f@evlGsakiTx@ZpLRm}XhNgL<+B65B8jG@&~ZA@S-3FN2=qtx$f|5HO(J3y zBLASH4vehR7Z&g<(S`Vmv82;!E}zQdP;`t_YTd$b}X%)J1USwEP*JqH5WfAL9cqu+t|b4W>g14x0m(P#dVJ_5>GC2|GCIsv$)FC zpn-200t?(0BK{vhr0acs3uDYfnfvFW)K=lVy-@slp&7`hFGhpkVRkbgE(+?Xz)jnO z3l=*UF3yy=tsaSz7?iz9Y3{@$&e&ngLyn#nZN?JoGw!kWow?j+kk!2vP*V_V?n zad7jP!EBQIGR2OvQ|iTV&UB{H)0$Bf`dFVXChH6VH{abd-z*e<)T6JZ1c5X1!tu{@ zBxeetH*6;Y#QJtQEvhoZ=4 z|NAroI0GA%Mbv20*G#H)rSg_PK~9XRz6Jiq8I!QMg(9r*PXwbzTjwvs+&^ovbM|8F z_Dt%brDACKq6{xzjQgpp4)IUHrEc-W5}rx$?o#UQj`f5y21znrmnhJi29g$5$oY!u zR8Y=_*~eI;)r>eCJ5;J0m!wn%Q89>taM7$QB;#xN1l+Lm6TRR#11A|>+N*iIJ7&4{ zt7Uk<42dSfLB^K|;$uMc#P(%Xw=E;Z-?wEE<{wj~0Hu({>`d4p#ifga%NL0cmS#Rz z?pC2&(TL}ij&MI*NY(iZL?{50?HSKVhs?uuHL_Fl*1<$+0QJZ z(QhuRdV5*%A<>t9Ow01aBJ(p`U}oRDN5D53-f0?t)w0aB%SyWDe$&tp^zJQ&kGL|{ z*Cc+-VK^H<7ZgaUH=n==jt{eqsZDuka{1@l8E-nHD@MZ2Ap<3Hte9M&P@ve^Sah5B}MWIcAYr!0Pg6{ z1H@-K^*^Mqfr08zwK!?Hxub0d1S9dOUTAW?2hr9c=9zp)9t#mQ@kXXP4=O`#=ZL}y zFq@#4Aws#Pxew@s6Key`>Z7e$=_$pjGp#QVa4EX3URqjw3*eEVbp{5(dH~SEwJk_6 z_0g6^y$LbXIE0^PHVpoTAu(u~lH=i;AZ=ml0X*OV?EA=t8f)8uFy$iE)P`lbGnbiR z27$-vJmDT>szE{)Zd)>fT&Q?tST@h@Oyf5-%FWP0oz|?g zjmXz*(UhvGPg42pzz)nR3UV0ZO8Su8IfT1Nl&mS8y1#wL{`z+FYA^DBzpQH0{$9@C z&zXrBk6|O&Keq@K9GW<&yjh5V+9*GWmNUG5z$M>ICQe@MqP1t!Gz5xS<*Ni2WyYQ; zn64={6Qs$_ZntLfgSQW=XRJ^bi4e3Qg3qE(Mp5Laa=Geu6CL~!Gn5@7B=Rv%Q~ivd zvO|k!^bI0;`xG}L|GmK*a&K$J4vS$6eMB_eDLlkl@;WN9&w3@=*RSO`cWi0gx5q9S zchuM;#&wQuwa#8)stdEQDWmGjFay;$DzIIZa&dl&OIGAAUlCunLO;Di_3>H*WjE{V zR(RW1fD6D4mT7<@^oAAQEh~Ub^k!*v0PPZc5IvYLHZB{nI!{D4+*eTmUeHr9tSu2-f#e`;!r|lmOCmFacs5@-oTm??WW$ zBevTR;vqinPdr1Oi{Y7L`O*aYJ!YO~kHUQKMe4<`VMy~!!MFV-fCRo39${$6{8mfO zuzqMCrdKL9ahSWZcv!qLV?D@V7uQOC6@y=#E%g}^=MV9wUqH4O=hc%k{+ZONlqF_Z zdWI>#qlw;-?Sav++#()?4AU@k8oD%LV4$ql54Tb`glK?u#7^OB&R124En@UUHiKY)G@Y z^c!66Pd%45`(M9w7S)47t2n>py$(z-t8pMEZ;w^pa{m;ESU)_Lt_=^fS3ct&rs!jP zW#+Kl%7BAuHhAB6>V8zk3*1pD{WGcV!O$YP@H<{FuV3b7W&d1xwcf#Ut@73>eYaH4 z$ie~1XCBA9ZeLvukuNJV^=t*wSWS0tMyJ$0zC92$~3~jw~{vj2er9qs?qLh>~xJ01F9WQoCJxpCBP*pRy zkY=MZ8Y*eN-cQfaJIo+@M^Zw#TXNir$$Fj2JKhO*BJZ6_$;g6#hnga#d9>!ukQAsMG13u1*O1o2H`%{qRuhCP-pUa0|uyRvq61 z@EuExN}PKXp>CrHO=aOuaM^QBzDk_rkxV=krPb)s?}(vwx!P{4p_Uk4RglZt$Y%rH z3cQS|_BK=wBY=e#Wvd^W|8gc*F6iEWwr9O7fJBRzMdl^py(}hKSBk=?#2B2+#}2d$ zU%-G&;-gLwpUVjO(kO!p$4tO>n8Zn7%B-{A7vHc>#xd&{T_0INLr39uAx4dB_pga- zHwDD)eQ^Rj)Lx-PNi-+lLUHr~EEZ*Nw#?QV_GxdITYAJTKIS^VbXy*C)h}Jj1gR8c zQ0RUu<-y=PDWhXq$J1M|OY4$duP~gNW)Wu z5`OE!jtA;jrpB88)VMBl{vs(r^X0AF6{lx^H;MJPc@U(V*++Bo!PlF06>Oooi;om# zR>;TWuL(vKus{??$srbMoDL_&UKNr%VfQc$A6VYzwTDaPQ3-^Pn=n1I(Kh(I>t)h4 zFX{!23!%o^BFiZcQ$6i?$7SEbMk6^F3VVPjpDDRcduw$yY;T@ybVA;%lh@|tHIn_4 zPX?gjFj9F%@#jc3_Lyi4+{@_+C2B4s+0hV_(xz-So%OSJk&X9|Kl5JM!V<|3yLJ9s zneLQ4(8S3k?(r&lDUd3|vO9tQJ=prGe@x?zH2bw?Dz27qBF0Q-9sfI#dqq4b3qk&A zfu9CtFyB?O*DISpGyV+lgu{a=X;z&}D2U6RPlp7heW&-s3 zsv@N6g>s?R;E`ll+sMqsGXd8;wEIO)}u90Ck!_mM(A3e%ncx*0StLtfKCovPD> z{1GbgG4@h#v>ycBZne3uQEE{fH08jNmN$2! z%x#bn6!aS;{Jbqsi4(NQX03o+QE~e^pen&N;m&;w1`<*ZOv~cxy5cbkU_Cd7*l+Rr1CGe#E)N!dVt2#en9j~KwG;2 zZGqhi?q|4sEWS-OmN+g%Fs>JvS|n%i(At9b7Fl>lJAb8*>_ESv3zXcpK{jz!t(Rey zpCs@=1S9v1%ySakt%V2jO}R$$xak^G*u>x$Ms+0zQJBPsUYCS_a)n*OJ<3VcR^~s=aN59E;$XtDmE9JiSiC}6W@^|PxW!wXaP^xdQQ3Hr>kzKQ;s zK}2(yydrrID$qAM3pB#wAg(iUo$>6I$j)7P6xS(mox`l9eIXeoiv_8obdBQ-wfmc^ z1jot40-yCXKh?61g0_}w0Vc2300bZByhm|f)=_boS(A>ZG}OwvdEtD2o}Ay8Q`?-{ zpJ;~f+)nGqg_P@w?}f{K5To~^Na#GG-1v*XZ?CjR$wr=DgBdd?i}Zdi=8jBu)G5#` znNTBDQQ*Dfa2<{%Lvr5N$OI-B;Wq|xCw9vF`ZVu7E#B9!G{2|!vsPX&w}>H^2))J3 zgojn5-GqO==?UFfjmAW^;6{+)jRSi2tJ!bs*{@~aX1~<)fAIhLyDb5TH@U&^d;nzHjd?>`9bdg@`GA_5H_778tFIh z5@ByKubW-UgSAyj48DkUwxhaS@SIGw2MDpM#@pK);E|hus`O72-j`ZkW_y?0&UH3u z5+_<_GT8INU99J+e$l{s3|eoDH%QfaMLTMwxUia`W(HRZb%N?;=Wta381Zp~DbFSw zC8Nm*gqZWx#+0Fz5P_Pr?STD(B#zuZRMK%`YXuH z`#}Ea_2yGnFHaX45JcNs)tO42fvOi(sYqp2rdq0xo$6~`ssgJIl=@Jm*1J6Qx0(M$ z-#M99{?A->r;GNh)_?}WL2fgEQRT$h|bsDZ~|9b6g)Ak0fp5uD-`M+Jy&=@7x3+wE6{^NRR*5-PA^6{SQ zWw@o?*8?%b^_UR<<9gaFcx5%nn}x?X@0~2|vuJ#onUf39iar$f2at#Z&->W;VPm*% zoZv2DKZsz?pChw_!ec_e*rm>-n<(UMl7?{Jv#;bep1PJQ#_GC2Z9_=n{=CfdHhSK9 zo;ppdE%;)RCSB~Q&7Qg}P?rOx@h|e!Mo;xm{UT5g2K9G)se8Qm5<9xo_NZ+2A%io| ztTHs%gO&!1?8#?{0&cEC_(x^;+S3N4|Nq(s@BdF5YLhmEyh2#&fb91kQ@EgIb{JWs z1MF{c8}Df!N}dND`xlP)u#?iJWL2e+LxI_xDC{9;h;CRN?^ogMPr$ zeT-vRP;s2%@wVu|h7ZFK$8j4EO_}z+Qk?Q6(kzz(9JF2XmP*YuGNd%&8h|h z^#WT_)$K(g-?pLEeL%{OJ^LBg+c!F2IBS$W&N-6>65l+(Y}3cf$NPx`E$ey-IhpZv zL@WX*7bKv&PmuRTH3CzSAcY-2pl83D{kER{TJ|aKoGOJ1G7*Kd(Mb*H*{^25t!KZM zeLEZmR>-7|X3`6C+3cIDa0JFyFRGa}@IEac75cJI+4TY?#L>W2)rw-dsu$E+Exbq%eW?;50-H z202!?+GxJvs27BKQ560rayGHQN{D7tV&NQ%(R_ozKRle0g8gwrKZa>472O@y2PEA6m!l7x8?0NU8%wA&9ilAQQ?2c4J81kv9Qc!gI z;BxSjbmbsF3EY}O8zzMjpwz=K+WiMmYAvv+zC4?Ge-OD{BKHSj?-F?)6VVJY{0}1j z*Tb3J^N{wvj<^6Y=$!7g2k*%$5AeZ$*^a?+Cl>KQ8STi3oTn$;{c{ z;xSI{6Y*U_(1~>3qhRZeuLY_aogVE@lq1{)0+$dUJpiOEI4Ed~Wlf8CWmxL@VRC?i zr4#F5iCUVrN%q8eW-UgQ091(9oEuBjsM6mbB}z2pj#E^XGZQMBv|A4ws^<-K8({+C zdu4r~B*#1;*k@7+4L?sUhF=bFF%e*5VCbX(w(9W;nhdHS+Bf6&bmzWsciMEW!m%{R zsLiWw)aG9p-MKhn2;F#w9k6tPoNd%>pm6>F#DLWXXG^~_Z<)Ev0AuspvD z0mm%30=2V(7Gp>oM(aA+fON|93!~7OI9S;!bClssrC8$>w*eNqwV*d@b%RZ+59g<} zbq$n!oF4@l$SulN@Ptg#hu#p(J)&)yB#CGjk{VwItC_c61gGOAM94dlA7=u;c!3G- zRQmFZWbEEzXmZK~Xp-p9PFvyxw$89+3$4pjOo@It`gKKUdl}nHVpS9U@Q7n=rUbKL zV^qCWAAAFder}OsAedb(Aw@{4v^~?_7o9q`JN@2vFB`MO;TC&w%Vph?yt;HlBVCxR zncyY~`U*KTJ}9aBYDdTD<4oqU@s&mcf(AQd4=`!A0TLWC6IsK0p3<#O`>~LlSMKO) z0>}6i^xIM~>o*IVPs+MmehwsBK5x7xgU>VWrQDzf?&3LVZF9sC~~?{U85-{j=Ts)qLM<&Gbj*Jd3QRf!vj_ z)9wH?1L3A|xk9wVd>BF)0kEzZ0QI1VCS*j~=clQh$ojfnr3xaSa!59<5=EcF1*x(q z`IMYY)re|8)gGqmM6DmUN2vx;?`PW6sU|F&TzfXvBAWd|dp^}$^zy6Pi>dyiBUNrM zr3RB(T+?2i8X`Iib%SbC!>EbU&{>}vA%>@$hR93@Zj}l$=3(ZUW$i708_2yCM_UoB zzaWKpAl_uaV~QIw?`|jU=RF*fN#4@~3g+FCcaM|D`bWE+W-l1sN^j{yO|04k z`+$i;iUH8Z2Ac>bKb`W03vz~l4Q%?jiwLQ^TI03iJul0C$t63?E#aThTg9kLO)1JR zWbzhS(~m0Gm#)KW*1TODaufdDx403Ce+521!;pN~Sc*YlDGJnynO<{~aJGY!*lZ)szV955mPCeXlJwOVTY;M-B`JZx zj4)4jmzdpRO>a6|kSGMt&0``*a^WdFR~YQpi_9sNC%s;{r@_Or=V`A;Rro22geU4Z z`6k(P8#zMQ*eBY$ohPD1hg)zz)|pf7Jx~60+dYdjsQ-NS7ve9%Db?J(TS8LdfC=+s zIZI44Ltv&_so80QyU?t-1SL%+UULneyPM8b^^Aw2n?p|i`*^5F>(D!?*ZZ0fJ4GpZ zEheu&k;$9St2O;>96E-v!dq2U;@(*&1Ol(+u|x_i5}@D5R?b22SAgg6gyyM@X%~vQZ(#_ZoiS|F~Fm%kuKb zyEGD)M?}l`OI;B`<7Xb}McOzW$H?z7-rL}ZLGg>#LgS)@UQeCGr`;r%jR5-2I2Bc- z1(I4z$G9QtsxKO153lc_r2InnlG&nrrZpWF=%d|LrP8t1hoHEEt%CNu|7w45k;s_{ z83|pz9OfRix0!P1kq%?7Y4$`gKG6?F^51M;t?3sinCe$c>p`y$;b*8jQpCIP^*~4>{se9!z~+bakrg!J zDJTFFB&2;2rk$oLa3-(~ibwx%-+C!55g9k9h+u<2^DuXEIs@rIJzZUoFGlt<_YL#V7wu1qP#rs<8=-9HISL<`!ti>^tzy!m2I7k}noPT`q&0mtOffAh*U@|S_`+VN2(_wDS2)WrMdssVCbwQK zdR-+lR||cW_}5XO`lFo@2RtJRJ4AG~h_8Z0F;*LCO1Pb{;)8yxqjhz8y!Pwu8oN0? zs-NdlG8z-89`H8E@OsZZUD)6BW;-}?vyPvON2*bTf@Ak^j-nDaJmq_&vpo^1rz7_Z zRW(yTA9$6?a&BP%&iA$ixf@mGbNPXiA1d`nCI6)4A61Ii?MmOI?1umu*5vdh!Jbov zKU4BIPG6~@kCd4iE`WJA)(5-aNTGd-wQlYd*I%WMMtwXc*vMGIYGu8esfR%co%?m* zjimNn_RT=VxRE=eGs9J~57RU?&K@hrWk!}R3B5Z*M*SJQFs*+c`geu)&&dQL@QUIZ zEz2}#ip5X-)aSnY34tI03+&yx`_As5o@yjBbKuM9gf3%)uaFw3xW*Asks3k4-tKyf z)t8PO?k%$KRls9#7;mGJ0Vf>gW{I_*ne95?=st*E*Sj#RM{2uX{lbIzpp^pSj z#Ka+QHni_|!z};_d(@Y&5@7GcLbs^CY@_s7Le0>}s#Yf_?vls{Ih-Or?culZH)Mh< zgg-K_r|eXWRfi8^oStsi$s*Ab^qwEeKL_H+aw`+?3Yv)o!xkVU>s2I}kEs;puy^!Co>EvGFIu)VSaOYkVBZ9RZW6D!+Yx=!e^59uKeI5HqQygCs2QA}Hnw@3J>K8z zsIjf%)cDk1sX{l$hvtv7-evZC5Rl~&{q;Pq)ZcNO&HB_EA&Zgtg#E^AePdE!t~lZm zKPQ_W@JSEm_^Xu$Z;QszCmPf5$T7e-2wao&h2)cbvy5(%#ayqg&QTzBJHVD z`Q3!ozSzKf%PD^KF#MvrZAs1~JyuMT7m|2xy`GD?xJ97eO=N3jTOme4U4TDiGXI=q zBGur#4iq!>V7SYMfEyg_qCBFNq)DOl{i6tr8P`=R(~Y${GI>nt?9po}7Lk9=;p48vZ5>=yH zPAAAWMX~smv3^@%3o;0(lTcK9#^{f^6N6T@rngw9rCHuhSe76Iir3)%sj55uyVh!A zZ6m2YN@%kzXYI}xTW+1X=lGR-_8`1DUqE;>z5kV>3Dw%VlaFAkdMR#tg`P1H3Y1G; zxypDwowNbE!j=#h;u34(`z<1<8>2%qay(~+cH^U~oOEYu5Owbj-+8@mGPZ51mQUJ2ulG%s)U~Ls zuL%7;ycGjXv#yoYU7BE7-$F?+)0wN$x-J?q!8Bq7Gj$+aVBM2LyOzCg4s*AKf$sgY zF!yr<=HPjATO&A0Z^?6sb>-ij7>G`66pDj>L}Wd-rdJc9r-~KDyJPER6Bd;6s$9pl zxt3ptx#z;*x*Yj_u~@^&4wdcZL}oYnkvS1R0z+SuMnUdxy`3|f0>L61P1r>AQjGCr z)DeMVxE+0!T*Z*RPgnwCjYw4IQ|mp?Lq&Q0@{wwL4K_i`>uzqT`fv z;h7yvKblhBruyDJsS}3xnpC<58_AM8=lStHAw{Qu1cX}i4yO?s}4xYGN|Ic%_ z({gjFcv~tsF&{mUkGr@%a^1$5w8qhLHX^OR>gyEo0HE+0iY+R*X_ayx?;npw>@h0V|=46YlLvpyFMZ;H%YqUBBDza^$7ubDT6_ml&^TAfpt!KkaH;aZ6V=-k6dOKm@ z1}et8I}9&GY*W=ejn75R(R01Q!5}C%4SSUrG&Sh-98q7$4Y#ayhW)u(w6OM8yJ^st z94qTZhRADrg0$4)7}j1xUox=^A-7;cKd%0gux?>o8tQ9bHq?|ryP(RQD)OfYa!*eZ zE#Hv}Xml4gV;W~{8mvA4mh~@qxGQKxk>$FbQ{E&F+%B+rclycOujFdA!9!8K?#`6gpBlL2k)iC&tsP`VF+ zHT77)H&6X8kT}J3(0w2&EuaodL6;-8Oq*sB@iB zF}WoJr?@m(h8N@b;7~zdnK*P`6s+)Z22ivLWyV zmlu(jvb&SNOj5WGmgB_`YIzQkGclt)^Kn@ZRrB;x^<#}WdAV8g=AopR$QBJk%x^cBwU%==Gs@dfQWI5*S6d1mHmdaUzh3)(|GjbbW?8>b_o9bR9oOyUF*g-xXlS; zNkQx@dm;9Rb8_1IV-&C*hy)fgv>8f30K0Ne6)#6)~xS@f8 zYlXKCMsC7kblrrW#w-ExTqX?Zd(~Vcf3Nl)(01%zq~$R6G8Q9DXpS94gm=XS$~5NZ z)B&e4rP$q5W^F_ApjYW-VrbH=q@-G{`jyZfAm~jD4F90ACnU{ULbFyAzA`Jsz!SoC&fg~g`YJ1<^Y81ZqQ<=y$hT+VSaK^Athl2vHzhI z#G?_39s}fPIY^a=#`ZD&V=HnUtiC+8KtZ7{ZFd2}riEtgBn*k~YNvRy^7bJ9tQ-wG z;>h@j<)$%EP2`gi<|IQeZ;qwbiOysS{h+70nYHG7KH5TU((n<<>*3ZNb{Swn4!;yrAiV)M^lDRUia>tw`qiuTtM^DHuxMIj=1c3mKl2DXhZ>y83^%TtKTj|ITCNLrmF-OIqxeevcvepZD3EJd3 z*o;}p@luy6DnT10MDuVmXjb8aSW&6zt;S)*Wa!}7%@cGpG4?!)aVqKrr2PYuq3nF7 z9GCnmbf_9tJpy)`!+8kri{Fa(Od$_qki5RA-eXvA5{q|F{K*@|f~5B`hm+p#ZQi4G zBAa|;+y)VC6iaqLi=NN+O@u^{Jc+}sb@&PmG&Cv{>-^!!x>5GC%D-NTZK@(I`XDWy z6`&-loD*&Nk5`#**K1#|JDhxnGQcvA2A4- zy!=S}h~Eh7PJckb%NlME#AcjHxo>*gbUGe6IPEBsCnhYB7cfS3YAIkrhxzRm~a)a2J#C!>Lrm@dz^*EPL`sp`W zg1?1+J)9+C5W;OagP0b{sx##aGD(FgeC>6+IzyV_^R7Ojw3?Z1Z3Uxn<0BJYuzN!y^fM=6h4 z!BXJz8#z28D6yQ?5ob3`@?Jnf;4A=^B~>rF^)1NXL;W|pA^eD(9q~`oG#P#>#fdnh z*dqeFwzBu76em^ozLH{nWpA|-rz#)q0`+T+qMRw`v%siP61@f&QVrga8o&@WMC@zG zK^zz*O3ZN9(=~Ec8`odSbX$iVle|%0AsTKyiytTwS!~%<09R8r*d$?BIloNVABOhD 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

)V;*~sK&EG_K;CgSEY`HS$H|a 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 z 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%0D& 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 <2b-n8H_H>twi3I7|3%!@J7^R9CJ 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

)Q#(}0xnhJ!yQlrw&#^o#3N>objekX! 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%0D!Dm^sY-4mt89S!bv|6G3O< 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�xj?IaCetr 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


Xn$>+|wwR3#ooD5$&C-bkJ za~t#j)dviZ92k+g`pf&2xI> z=OFV1rg=_}d<#zVoF4Nmm@YKUb9!877sJBSJg3JzL9&uIT znR2LfN%5^*Mm!4+FjP+qb-P&4lwrAPK0_w&sA-;qZ=MOG6{dM!k98|f^SmCeJk9fZ zoNE>FOjj5Gf5vN0^SmBL(>$+-wbQ(3AXAmj3|PFOi?wHS)8# zR{npOzg~W(H_FfWR{0O)z4DhnB0r1A^!FffkLxe9C-k@UN&P+8xt@}r;c5Aqv%1~< zGxC={FF(_lobwQI1Nz2{Svh`L-Ld z?r8C!y3d$%kkM!Evtz`ulLZUL|8bwq7soEfL+&$1Uy480_$%=Y--u^EEdDtDES||P z;#n|0Ufi$lOJ*Eq{+s@$#=q+?i$COH`lmc67_*C>HWh{#7O41Hw!8~gLU-xHl`zbB zkxFPj$@Qv=XNrhlx)Mg1S64#I$?~sJ2|bLbSNz*S+{{X7W!_W?y-ep;Le;7AtyOXF zid(x9`pPk@Pjj7Z4C_@qE6h69bc%~Bp`FG0mC(;@gNn~`S+}8irtD|fNS-sCYh(Et zn&mIYtUgm7wlQN~j<=BiEP1w)hbjA6Y%TxU#@kdp4_`b7SZr7EJbdvxRQ%47>l|dh zW5x6E?Xy$G^YD##u6WN-+%6T*!#8FZ3l1^-Re#SD&+gLQ^p`Q4&$lkoUuJvgFT-B? zdx3fOFlD$2?JJ(4O*~VEi{;!`4laI~JnK8ZHzUBB1`(7`;*S;(mZm{3o_GP%&zRd5J=SJ%u zu`i3z zlegTL<@f{l<*mkr`;ys*?n}lWxi4=s{?vV0`nmg(@i*?v+l|@Hc7*u{-=H>486t+O%JV17M>n@nJqCrRNZBM$?2iFbgAh+d&s4yhY@BgOb;!0 z+kds`p@#*B7}l8XyJhUpZYC3^hhe5{zE}N|MXC^DyTC-Bir`Ps#&OFUCHK4ZW0%roK;b5@?U{(So~y1;pu zvC{84J4-Kg9%dKG^PKuGmWMfq7+)g(d1H1m>XwHYD=(O5CzDI%VYp157oCe;rI*XY z=nC;KS;tPMSIWb1mHB_U&Q4|=D92ap=fB0VgMQJ&^YYEJZos~5XMBy| zV>iRg`oVtelU7n9u|Z8@u}-?=?4pj&s=|7JkxjNVa}rTUHkq=9J?65XJ00a zhs3j+Ifq%W`E%C``!f2_zRW+e?-$0O*_ZKu%rj%
    OW&HM}dGWyECU-29JGWoB4 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%0D` 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 z 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�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�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�dpY==y|}+5bEPwfW=(*0)HbA;)486z$l0> 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

    l>r{7nA9?`c64xA9;Ao)^tVEiXEAc@7uL z`Ns58uXzE+SKT~qPT&j*1~BD)Dt7;e5EsiK4L^={6j2@KcR!tzXI?<}MeVHYXSbP7 zOXS^!A{sN?IL+!6ZDp!g(0UndSHW^yqQlMJ43pq~W;!i%7AkP$DA(y*fV6oYQ*wy? z6ij703=IW?_Obsm3RW;3p2eOEM{>S24ixQY*IPN5UfJ&&D2u-mnh;Qz-{x27(%0ea z7D{(wY%E|8{NQ*sH3WDO_cM;M*^gz|WM{CBICyZ%pI1{@AB4@nSeL!s=DY;`t&n{X z`K554bXK^Po9XnrfmS9CT{wvnGk$LlrYpTN?3gC)8P(TJr*Ekojrdd3X!h`*&tV^r zk#>i1`!B0tfPBw|C)1BOUvh=qOrDNY40~~6WJWm8%WfByW>fzx`pzh)nc+;P?~Fog z41l%A4FFr4vY8f&t(M^Ansk1qhCGZ2cK4_4O{q*Rl4uP3Fo4sM@bH(LS?H?pI!N)g zr?V6y=gl}&$H0(2E~ft*&U8u^d+1~EdTTfnf<{xxSqK3>MBp8^0Ow`XX<4+>m__p- zz|Q~w1eg_WH7}qIVcVk7SDGor10&{Odfx+&_H?FO|B{(*4yL`H{@hQ7jC3wS_>8}d zrow=E0nLo){IpiyO(?<+ND&wPN$e`Yva9Axl(8hyzepyF0ySB*#l<~g$FW<*IxbZ? zX%!Cm;lV!-H4SG<&cN_I7V{ZE2c?gqe_$>dFp4Pwx6je2Y}tzOG3AWH83zxYF^X}y z7}5_zBTQMzZYp2NE*%bWDH^8v}U^P_VVO^;wgKi|B7 zK5w#Bz<&0b>GUoY%F(l8j|T+9&w4H?2-X|k&{)9DH`#D2Orx{~P~M=0IAfL@G?z1j@1`^5w1 zpNs6dXAB0AzaQ6X>04E-JuW z^kgKP);P0h4YEIp>~V97H5a`?Sxomjb34pM&qlK8IcFBVjC_xF$~U`lv?(K2;0Upg{uRz+dd0}Xpa#IPm8M4;n5N>mT|x#;&E!H%Sx*WNPefO$eXaJ( zba%PV#2Q%UpZ2B>^UoKg=byA1oqmUXgbWXpVaw@U_R-NHoEwYe(It5@045gFHBH&} zDokcr+G*y>Mm5cA6!7^zjP@=$>WY%)i_x-gs8tZ3#crzjijL2U@+mTdp=tf>T8&u@ z1G<{U{;p>+N3G`Z+Juy(5#((7o0&xO;C&7T)lq-pqvJ9on z$2RtHDz+^ayUL0k08{5zRD!fRn~7XXOyLo7ax)#f0W!q+F?0w$go}8w;k1W6l_^io z8U=Zt>p~vL{#$TTn*CI}4ZBu9IG#edRrk_RC7cgyb6oPsnn#zmoxrl=p2+ozhRTEHkIU4P{3X&)#WXTgZP-So;_%NopczDu{`mxYY>eIyWNp8zko~m9LPDGGWXJvvuvx! zs%7Lz)1=oO{jn4pFxD)ftD~cFz;uk7!rOIO^dZ)>IDYvk&)@=V(PCQ}U>=gz0S-m; zvP_e%bC!eQ-H}W#;tMfB43-lLw!hbWpuP@(gJ6Hvw*foMswIS=?6y! zqGm@k|7M!>xdU-?qNC|jtY?E%GhA_&f4P#9o&j2)e<3b`u_pkWfW462eD>L(Ymny&V9RLk>Z3WOP8 z8GTdyHnK{3Hra>4u^t%1oq-IO|G9Vq2AJTQLXB zLk9}C>JB$kGxvf+bC(tiebN3R2?e|UtVZhQSc2DM*;-FttgaDv)_WYq>m@BQelmZLLET_gi>Ql}I!?4OJ;rZ;L;Bdw!p&RL4 zlsvZJA_|VXgbbuDfjnoi>}3`5DO^c&q7@OQD+IgHL|osW&arG0QAIfKB0HO%VI=K! zWH2R`3u}I=YNhL=nLHB;$f8@L4fL5Ki)l_YkA3u&BLlIt%MoI_2?wiOC*m>|me+SZ zOt(cxvyVP>d_cEF1N5O|u5kuM_o3p(JUXnr;36h2XFu(atenlR<5eY@s*+4WXmRD! zmyTRUo$TwOsytLhw?((nhmI`c^o~`c#^;zWkLJy$X6IarG*EcK^?c)TYL(x9y)qMe z-Jaqe!eE?E{c*FvJod?FCo0(pi#E4%5mySIex|7l@K=^fI;=^;Qr1d33lPyI5|(6@ zXNT2FdGhtCQiX-^8IMjV=OPZXpI4(J(Rf*69)r(RPqL3kqRNTL?4qNlaS_i`xhElz zjzdClBMC1?XQX7SM7!o1N$0ZC*yr3)57xcIQxkYY!3-5<-^&}OXCtzM3Nnj zFpNu=fVs)IcmcLtBv=YPnyNR_Nf~re9uOg&^d*gpU2}7b*8e^y=G0HQl#BU3d|B#u z8ouuj`woBo|MTBMDZ%=iE5A>n@_i`#k8~n-Dvg})Xso_0r)9ootQB`%A&2W0X%=h; z_+%TZfZcd!A>a7zPkau{=0xD4)pm;cz@`1zpYOtb3zU$B${K!R{~n_f&xF1Vt@dL- zMaKP;aj%aHUITt=>Z@k8v=*C*LUPLoyrK*E9DGZH6^_6X-gR67uVBvrFAw6Pm(B_? zZt8G7G{)YMXNu-A)i%g7UX8{j3+z&d(;f_6yqmF$`4$)RF7^S>{5vunC-;xv!^P%s zcF{x5S->o}VP0U@*N{t3fh7y=(ne5Uoa)0D=}Xzig9pJM0e>>sN0U;Sj?41$Z>chm zj?R*Oy$aljFoNlra?0#)8q{oLum=Gf!kMXbiWSt~96=w2GwISyET=EUIs6eYFFG0V z`|uisIfA|lr()DgC9f6QABiNeA{F^Av-2gE;}j@H*AvGwjnBh(9y+N%KC>laI{{zq zf=o$Sr+BFjo)xzW13SW*95fB4yNoQ9yd#{=r!pOuMI$nqewRhnnM3Kg{?sIu4a-Ct zPcDTsPvuP8U1u!307fvacFc;23d#77ra^ZYh2{u)TUE0d)zI7FY$nc%Rbv`-wZ!}< zoNe*5NRf0bc8Lw9tBq=N1Z`0X?v(^v!r8b$%)@kX#qX&<7$wSLYD#7MUuh7{cwMH~ ziyd_eVNk}VtjBO!7`SAS-P{KK+ek4-(4H`Ens(uG82L8Fr$B>KGbyQmUz(b!X3@4- zzW+$RuOTeEus%hbNUmrmCH4SrK#{+vroI%_`O+5K^^H!V_wXUm!_;dO)))A58n%R- z83Wk29t)pWopae|j%NB-B!KUee!hgN;mmLeQ%Z=RRLnT;vkOh26Qp1Hngpu*2upJ# zVDu}mC;vCv;&UO*>y%;9H0jY(xXWh@qnld-ufNZJU|1-L}-5hp(TCNQm! zU?0o~!TqU-{eMz>1&*a!9=v1aVR{x5G}H4A+5M+pqr7|yQ-gG(e@1bEQv%bQj$Ei7 zPD3T^;bUUXIVG_IzjdS}1zXt1w~S%mw}j6pN!aRf9nXFyXEl#tmm88TF;AfDqfk#e zUyW<9Fb!Xv`8@XX4yJy&DB~SR zE@JMBrhvx`+ z3Dmyd_kP#)f8VQ^d7kHN_qoq~?)^qny#Wq$)L6E7!Z8w-Ve?p7Bfe%or=A!bC8jNw zg-Rj|a^!dBJ&h4Q!w7msiMjP-+2EBmt*xG5R1zzuZ<2Vh1)X7sdMK0D1Rhh)=>~ez zpzag(jA+P%W|$oOshJT^KKk#HAhVPWPTHhG`^6}>Xh8

    Q)w;9OC9=1!G>Mc1NjM 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�W1rZ0+@8YhUhRYky9x)&5ArvF!Q=cgVI7E;wxMIhL)h#cod(5fJ|Nu(ew( zTU$%q{U2;?MVQ)m;%v*-))KotU6RvG4DZ-^U*!oEN~j&H@cWALG89_2c6nyqkMG6S z_G!Xzn@|_7M=Fe8Nk1vRc6Rvx%+!9`In~tS5{Ie%q*I{26d^{@Qjam>S${TBQ;W^* z^=0T4#UA}qsaS4jP(m(F*(!nkls2)t{R1`_K%wM8Dp!kTgR3nY{L3x{+MS&`sP{X3 zu%ZrXaWiDq*@Fodau;Nfd$>Q1+>YJ-pLx=aG3hxQVb{n<$kp<_1PkwwJDN5|;NUxW<;4Nkqs>Yd`1eQkz7a z74OmYZL~U_^>U%|>)l1EdTCnTaRs!yg=Uhq0+wnbpSi3)Z%>V%nS>=7&T*%!ZqLbY zQFua*)%Ueq5_wmu*i6C}mq_FYHt=>qrMZ0kX0=+MYPK)6t25g zMBuW=?l!AannXO~s>89i_fysRVD&AtOaTj+WC6SA=T&J`K1sHKNyI2Ul-2hPv?{bi z=eR-Q-6Udo9eOMMV=`Y_RZZ-;^qYX>zN;AH%rvQ+VnCg&y}uFf{nuuC z-|2Bu9DZmP!?s(^-_!ql6noXR7m96nSsZ)WrLnU(wo|bVX(ZFJmqOV=vd5Jxkxgb2 zTC+;j_mdXMRyf47JA-B0_Q0~YlOo+cSk_!EB=cl(ti9MlvHt%J!(=lQ{tey>zpir^ zSvy#aXtzq#SCT@3>)gVDEPgF7AODu%{Zdj8zRoTD>L>JSwcD^YX|d}jx3vFCA1h>d z!Ll%uh@0GXQhYcFcAipQ>FG|_3~A{Z+zZR*rm^ft1w-nybKSzTQyAP6&*o(i_h*;w z`ah8E-rI3GJB@B+cT9xIpMuUxdnTp++``@+=s4c z2I*7^VG{mrx1Kuqv=jfgotomU@Ye;NbU0ht@3ScPh~?Bjk;7d^dYfQrn!}xW_mN() zN85b1Wz{DUyL(u5rPA)JD{8#%*)h^KSEaShCp)bAB>Yya`lk$-Nw~z(MG6O|)|*NA zjYZbmw57x|Syufvi)3=$k?Vw9cP6RyM3BG?VwAm~?ywy`l40CebD6W~XT-VV&XiRV zTYoc6`Bic5@CaAe*oMzIy!&lbEP;6UNyHQ4-DP2$-liG;)v7ynAzP%Crf(8TWX+cE zSxm+beRfW&%}l~>biO{Ry*$?w z)qOfGOcZpp9Gg;M1fo%#9>y8ra*>zTeEV<7K}7F>2vCC;0|Gp{M@!A<5i)uvSin?z z@NX0H0G>pgZymL~H9W)`B&>G&bIYMl!i64t8l@SYL|o+g5AF1IDVY{xM`!S-@$fAE zTxS*2PYZQ!mfXT%0HwGM%`(<0cLb0N>D6vpi2eB)S$6FI&&FIFg zu6nEWXuHWBaxOHT@aIG-h?_k^B;xsmC1AIB0+^L=V)#eO5_IihmZ_SAFT{0e>z1Xe zwFj9C`8Ej#zY}A%w_s3VJ9#D{s&tzb3`Q_=la{@HJn}YTW*Eg{0&EqrXEbZv>4}aW zXVYa!X6VRQI&}Kk$T2)DO$Q!!;7{D=5e1QiAa54c9~j$ow0+2=UT2% zdhfJ^@J({6Ky{(irhVg#WL>uw{&xvs5

    gfPKk4Q@$TO8U>Ngs@hi`Y8EJz4s(6 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∾;U#p#8uR6c3%dKOKQaZh? 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

    GnvF{@##gDaY*?uRHrVK|dCv)}CcX z)B>={O!|R3MabtX64KKkCtaRRgBs}aY_YiwH@$LpoqSr2n8(V5sXV9}r~7E&q6{Z; z3G0~TMzN2Uh1;0E#+fW*k827hWE$?IzrozX=+U7JaGZpoCse7$18yk1_&2I#IFasI zU_BBPdkKBg0t4l2b}()sl3?5}u=pR(Vw7(^rFT=2_Wgnjo%iLW)M{W+U9goE^o>SWbPu0z;oCp{M~DzqY8Os}g>rZgmAI2-24vtYTc8r;Ml)O*+r z&$zqth5B&Q@)R$7sA4r! z4Gx5T=d^%nSk_qPe}Iz(uwS44~OWECIl7Jo}~HcxPAjnSAr$TZ^~iQ`gaL6g_iY8<;`42 z*Vmm?xI<4 zKEQU&3%5?fLPYp@9_M8Qw}x2FqU1yDU|b0_7P`20^jS>(oJ{j@xQ7SbiN&hJ$utv1 zne6BsMZp#HqT)Oat8A>xRqt4KoJ>vGFc%%{pn?TV$CrqetApv7b`V<&LlSR=AIRvl z#<1&>9EMCesGu0|Sj31=c28rEWiVW0awdshQ^dA3dhg?WErn*JF*3Fc%*Bn6)i7gx zS`yPAAqvqT``FsPZjC|NZ9wtx+p2l;(h+;PSDdGitsNWZ4dBmE9P;P`v=k~busL$` zf$lFBx*V^#d;|UqWNR=cdT}75FXDx)qg*}l054QW{ye6P9ayl8gPn^cy6AB!7ZNv6 zeUSZBpN7LPYfCCS9U%-;M_^ta_n1Tkd8eY_r!Prv44Or!9g9w2JW5ts0y25 zF?^~^bb`y4m0s#_V6f1{Ly$Xi+~S<#L;jiaWIUa zS?p1VQ+=0k>{YQ6!-@4MrgMsz&Vv*26!!BqXqeAqMj|ZWSSQnDyqV4p1eD|I$C;(P z0n_Ppu4MfKcJY(!XZ5@TT*$97Typ)aPQ=rF@Yg6oz@PpQ6c--%Kqk3l>J;_lA6cgv zaNbNSp_vGWP*0*=Nr%`YR=3c}P?wfYhD1NwRIF+ALXwl?^)lYv*pyBEOV~q=*-XL+ z%w(6EL5St+3*D=pNL9E%5OM7e)^VAvopoH7gFm&U;?L|-SZsp>9HNpmsgv@STkQTE zo9M;~)Ja^=jQq!2z|zg_VCXLZB@acqOg-!Kq;%=R~Rs>Lne4t?Ia;@BK>436PM z6y)s;-(xH{>`b9eA{f{@in`fCy~vE%$Gl+#zq^>UjqJe2A4DV*&g-KYdwtZB&1BDI z!Uez%xJNg#hYl)Rm<~li?A12tI)^@We7P5)o!3X*^tDoiI94W`@a!$aeD`Z)0Uc7Z z0ORWDdbZO+rCMAJuhaZ!8eMG@uMS0!`DfK+j4+}S5ca9E1%Gaiu0YiKd8B!1AJF60 z2FGaDj|Z>=ib2IS<8@rjxIF5nPn9Byy6NU<0e!A`IS)W=^D(?J5NUCAHGO5!vrN#l zPZ@5~b6qr>4jQi(MnTV_$zlhJ+&!=#J(dh841TFg%Y?RWC z(IAKDBV`Hee)>LQ=?vxeNk*JW61_&LhzVdnSMoFBf5-XaR&5+;yO^Bl&V}i8)-I;= z+pxKhO)(eKDY)2=eE8&}c9F-;lo4P%4a#Dgn9h~zNIJ*h`_%Ch@b!g?jQ{GFE`TTw z!Qm|hHZfWnULfUZgsVFksrT)?Y{Vk=a|TzkIuch`J9rriR38G>_58`@Py{7i0%QL} z6kRczPi2RG+xTn7lNz9~yPZoxuaq|z)1OuY^BAZmx@Z&As4NrnBsX51gX^JbqWHRO zZ^8K~T4f4ZD@BJR>uFRq(_f5!jyiNIl$kzt{3}%MhHH7$O=>&NuCZ@oAbtiQCa!i_lF3G8ta{+AVWvgm%vCMLVr6rQO1hQLsr|$8E^xM1f+Pg87u56ykZ# z5)RXoQCP`?EFXz`rGTc;IxUrV@VhwEDPk8RWTEIRKAUm8pNoF0gAZ|tN1Y~aIE6Ek z>tDiJQ_Fum3mqSQ*6Hk`S~pWeF(xD*!(xMjB)!ii!lr3&gb(Hi?9`Iz?#7^|(fjxf zzt=U5U0g^RSzHJn*0*UI)6<-*CDE3~Y*<`WSAnul%B3$=q~}Ybrv$jC0fL?q;GSkD zfEj+ENlXv5xcMYaL%FE$HhwcL59hE;OVa87mQN9V#~V?7TVu9xGS%rx4#4c9ZH)^w zjh+MwogNhJUjtRF(=&~qGF7M3A967}@i_JY`peY7`=yyzcE98=y@x|2Udd}Aa|B6W z$#7G4u|AePGxBSH$eS>Jf>=bL;6M3~=1mwsU07UXTgNW06y^kiojh0M<>$YhKfcbW zJzU%hPK~QYA`6)H)-5pY51ROoq4e0gQU8xzkY_w(y+0>4CA3HcY+-i=$dED*cL?GJ z!e~0<9$TpGOt^~)my-y#tE1g7plHQFDW!jB9u*pOncX(bWv$$YE!=tE3v6 z0`0MO|5FSlxd9HgUU<}g$(0N>L}%yH`JjQ$`i6CykPho(fPDFHC71Hk*`*F8_aUAK zt9(i(#1x*?bBpP$jZ8JAT)C5Jj+>EVrzuVR2^)X1hJ&P*^-QkO4rx|OrJ!c z(Q0`qXChQh7cR&=dD=Mk^I2odr;RPUjOIsk*v}t=5|J?A@3>nV%Mw-x({;8(G&>#3 z5)acCk=^Ll^|sgPn@Bnu;PD1qfWF48g*M34v5WP~=+g+?;RRGwT5j{wm$DM;bdzlh zia(ANOWb(8#a2z9%UY-;K<()cYLyL}p|n>x4;l9JN*i*k(0^kU=?+_fK9ZnVr#oyL z>Al!{V7tp!L?6g1sIi5o)7zqs_0jIJ718^$4(qhWwvqi5DS(j@*-HJEGpWnz$4DCc zxeW2&i)_{Gq7LN{ZH=~JRMB}bSpsgRK-)z2Q@S@FI(bv{)4$S7N(s{w(b6(@oP`^Zh{CLpjr8gt#OzUmA6nTSTmV0#C9jQRp2zF7s%}XDm!fmz^ zR?~kG6uufsqxCk#EQ$pOL^EwT`}LP0ki&DS94D9#x&@ZkXUY;%vp{`h0Wamt&?P^= zjCJ=TIOGx*`GxGEe?{H2U2!5y3F8NQ{xfPCEH?pP9WMUVr-?rUv6qQkPlx>^{4KHY zP+zhA1Yiq=f^x8$4sXV>!c)Sfzc_}P(@AsAA)E759H(5)V5b9&Cxp1J=Vgda8^ zwwkFj2Yoqi3HxdG8+6=!F2$*fi$lix?5}zz&Ha>)4NO~hK|ZSvnuC;S7`~_Ni(pPXr7?JJy-|DSLQ=aF4^ni^7d^iJ?4W zwOlOBK7F5>d4Q3#=>it(EaF|*Lt&3t03e_idFA{}gO&@P+gW#MM0bSU?1xXFb_}aS zsZ%`!^K8nGg9lS35@Jw`nC3I)3(gq8wm}{y0Yarlv_e4G!2-e%`pkgfquJv2_OX<9 z$dCXWfH|0^E`Ydq80wVVS^OTJCkFBFIdEX6f*_3(W8#UZD1Aop;`45aA~}wDk-q}9 z-J6&OGy(g9n z*rOK}RvTUUuTkOdXd}IERlwwQMHihgUq3sBy_83CAzuclw;63e#KmEtF9=t=T#@_A zFFv+MtWQl@dAWO6A2z#s5N7+u)Qsa#AyaR5ueaW;N6CkHq53y!>Y8(R4OIsJ{%Z~X zE8FP8wYu5W#)80XvJAEemP91$Jwk`gBdN$*X z9$Grc`X07!jn8=9YP;CTyj3=B16Q(t5uLD+W)#pL157j8AOe|XVgL%y>}tM%J@khq zRNbf#xSsy7SEuSUgq2k{^0^RA^>y}%4Iy(`4d&_VL@QoLjg22(PrO&B#x&ww?GLQe zL4;3=(W)K8bQlT#w0=x`n~PbL+@dXEJ4!xp#_-$B=W55$En0v$iyDplHFv;@2EKi4 z5O`kWhu43y^&GLOFj;=GCE`=ySmPMh>3cfFKK=kCw|t6!8@J-$+O1*_f%U?eS=aft z#j3}&)D+#$`aafQ#uev$9`-7t?7>za4#@31n_AL&p*oKG9?}NT-j)iGOJ1h%R!ygO zn$xrav{aluhqYtq1|+*BTNXvO^5a}cT9Gz@K5Qw~j-lJgOUo zve@~-R#yE7*{}W;;k%3_bjrX6mC~Nq$lHj^Zl`unwla!u6(?RgmWWI zl}vU#%L}2WlD4ClaJ0rgE}8*A|b`dAcBM3{p9GKYmhTgkrL#QBnbA=L!A zkk!G5@uBF1tXK`+Kvy8xL!EGd!>k{mx}fC_^Iwy`B>Dgd= zYY4>B{hGUWlTvl4Q}crZ%JK{=Udnq0{N&&_QGvfFq)h-!cD! zks$wQe~}2n@D{;o1e9DQi}l?jEkPEJ*k9KNc_CI(TQx~SM>9w`hUrv60a9_e8f5=E zJ~I0!lD}?a^;O$pc?7R~V!mVgk78u$2v9#v8za~*?yByaB}T}nSbbve&n4C?lfe4E zPQ>P51J=WYMKSyy?Xil`&Z1(!A{@@U@POszQ^`fpy~YZY>FGKwSf5I9ir+y^!|&J% zlbK#_a1&=SX--X}YemJ+>R=xMT6?mST^j53Qp0MRQ_!6N55qr+jw!+s6G-=ny-qs? zvt>nO%s|9~p!C>WnwKuN7d=dUoNT9Rt0JaRt4sZzxW^LvkRD2Q@3zU+i@``GyQh{Piy40$8QWor>e~66?2X-$=%@s>~8hV)h z8dHUcIT|9iiQtJm9bF2n;HCI(W7o029t9ICG>y(4PBttdntMhfGSm5`j9CV`bI$Zy zNAbPmF3q|~oMvaL`;-g8%tf4)4*_91(3ry%Nk_hza&~>rk8s8qHRC6}Skvh4Rvbn9m*(J5=~Z#`hcgs*Fa+TuE@Zg1z=&>z{XX&_lqP~TW{N!-2kSU;&a$eYjj~8zE_{k zv<68`u}k3M$sA$?f{U26SK+F_h3um>dXWf4vor0eM+hhM&a2p{eU#}Ty@CDK{>j%8 z@6mhtKlF0M|D~60=%sneuY4=9_2{Jox5}iC#Qg<5x|+*zU7aolRfy@;dYtrBimq12 zx(aKdXII0rs~O*!$P;V3bUv!K%Zk@_7$b8n)gZ^nBB+i3leTl3`)U0Dr0v`Z2WbLr zmv}TEn-#C^(50BRGrHt4^h1B_cv2mL!f_Cd7)L|j8M*`m!cq|foJY}fPjy#w8+)p` z{QL<-^N*_J5cc`=`s{WFvcjWe#E zpQl@Y+k4kSZyrcluG#4Ix>EEcoTuf9+{F%lNXkHG zT!TX1kM1X6dzso3EPUQ{`W}hN6MDkNPx{g=N3+o*5jW<1rXTdZaEaAyOpAqMpE~$3 zTWi`@is3slRf;BSrS#{+;L92tuIbLiti2*}ycG~W)l$rH7sa&3gVC`D0*`h2Tz66r zKjC!Cv(W5Qj@c&{?@IN2}HT zyJ}@5$6y)qfe%T~32BFWpN-X1X>&7t1Vq@dI@0KsqQ@GVUjz(4Yz?bcv8UE;n6z4L z-m$*}N;m&%bf{zACXm8~aq?gR>K`wwiw#-DQGd@kJ^=cv`BNxGsoy&KOKL2k zg53Tjn@&+WV|BgUv&(~~pPjgOugO1(}63AEHA9{gJP^%-ZR@~@( zQbo?W$?$D7LSwHH5v#ipu`0g6)8RDeEP6^^&h?DTuv9y333rLYf2&@)iyEwWtR4Zg zB3@Rr(ekD?_V7dOQiqwcI50+X95HVQVn%?NMPi4^Am)3EnDr(xZ>r0&h=E42(>*3J zJ5?{z$tEJk3aS;vtj03b9-DGIQYAHVWNa5H^-kuHW}{7woA6b4a2E7&Bb2~O9EeLL zkeAl8^)iN^9@0@fF0SIzX`M z-mB(fK?YJ)NHV@N$iVrCMg0l!2!z~N$Xl&~m${gjFA; z*~s5*NOpFszKzvEhxr|LNPo?;!IF;t?BM+(!Kz)Z4%=fdQwq`c#KY3@K4VCHJAJ9y zXr!hnsY*r(c0fq-=^(QBxDFkvD6B7_%Jk@skv#vN}-F0C@iD^4iLI z6)4tVclJ@sWdAklz^<&}(02jDnU1QNinr1zxGA={k$09ZDqshlRKzq5F24CRx|)R3 zD~?nS;KX+HmhwxfE}N+wZbkY4Msw_@+pz-2Ih~J=Stkt43%QW5;T%34J1y$qgZ!s4 ztpCIw?2hDPPwe>I0_3HG9rtLoKx~wI_(MEySG-J*M%{d#5tG6@f&26&mr`9RrFfbC zEU=fs{=_XY9v1g0iL04tW3P70d$b!6*KQH;iNo@L_G-7WSG#ACSBWkO(s8-McLD!0 z9hb{^IzE?<@zT^FW#N9RLZ6s&NR%4V>l1fgHgOfZXtSIsiyTJLBpF$0~gL=A3YddJ%L4{@It101@?E4 zGUC2y(BP4a>21KgH<~VZi-RV?+t-xk7JlQ~diZ5}1$7^ax|?xbi8^2WIb%K(;=Bvo zmx|JW{KGUJPFqNfOdF#Wa5O-FUsS5;F+t{bWgR^hU41F8EzwVDqN2u2*-t};t7b%Q zhus{j8m+R4E$woygrB;(^Oj*Gj6T3Wvz?zaos0FENFRda`{yp7d&)$toYg#vb`fpA zQ#jOmz_!qCUc)YF0(G2hB2ozfi8wMibuTJn*YU4gar8e3>lUGWt`Mr?6`P{iY(J;; zRctn!4SFNd*ba`qJd~ikwsLkwf?{K2CwPHTo}jogn4mBetf@^-R3}^1msia)3q>ykL8Mq}P*Y;6Qd5*lK~|EYgsLj13&0$&Ka&+pY3hb{ z%o|||!c#av;*~s(3z1XDrC&3CS^m`s^btO2E)gwJg$+&4N2-W3nIhR7Vwb+y9jl0a z;@gn^Ok^>!>+7$>q32SHq{(S9Bg;bho-LJKs%9EuvGPt^DtlykS*-jMQEsNjX^oYC z5ntXOEB`?xYudr87w7mc>57(@ZBcMQP@o$Wl*P(_Ld#Vw!u~isSBwLtkJ=Hdu|TkE z59@x!Wnjc4{xQjXg{gm26h1ZxiR{PZlfw*ePATDqC@hhM?9o*EMrpvNvUCt{Kh>n$ zTq&r2>oBbBH2F%{jVjZ7@J-TeOlu-y2`bs&(W_>s&AfQ^j_x%x96e!vV$0QRbZbOd zkYcAuH8|I5RqZdA&Ej%f%Zlo>DoFai5U_6Q0qaB+W=SX1%WvwMYTQd%UNyS5B2-%y zoRMIF;{wkk6pt>i4bHAi^wxqaZUs%G7AhJlcr?HMF|9_ zqm&e-ItYk((9FR%%4D$6!XfO3^0h{e)D(>Ad@YHp3*fSU$JBgH^Rk~Y?T=s|BM>FRE{-C|pSKMYi$2r$vTTfr zN24=hfMz5HM9FcW>VmwDcz8UpywfdUa3+QSrLXi-!6TYdoge8$MSW3IR)_*y4xK+?p+c>8p)bplPRgpKPLK0L3 z?Lv*A>bluRO_bW=ORFpDO}O1EOb=FvYRju@#f)H6lGlJ+$lLT2+SzQ$>!1?(Kx(~hP~y z(rxm)JYWrfn}R26W;7nbVZYg3Imi?0N3!%|&%sXu?&aW2?7rwY<6P@*oNLk^2RiE^ z-Z)2Lpc^QYomN+R5(7}NGWisoJ}Wp!pn(~0JQ>8JMqF84b!CsDN_p*feNAO;#XPfq zMNLh0w_Ca|pI%*Cg=qqFm|5xafce9aE<7X&4jG{0kzElC&hk&M3RW~!2xG*i7)5dP z97*HGdTaE^kEvu%?HNFajhEoOis|uiLKW3wQDf9bEwleU@Q3DLh0?9ooM2G&O~qtZ zEqbRaqI7Oug<(%Y=q|6UE*JG!QEKWfF;f)<@&t^@xU@Wute6#++-nxnf$Rt~r>-1v z{?p}JtB)clLLIO%q(DN7qFC3RlcJP|%278gFQfUr;j_|V2NY*~vO;NX3oJ9HzZ=IZtB0Shbf61oI2Bs<5?4a!VOc%Q^ zM$9yOCeUeK78_d>&Cb$k*cPgCBM^mVyV=~A-TuMK9}8p+X^I)q2A%5+uqTajj=P_+6)nGb%^?a}o&qtz#} z)oT&A#`K_Ub*pHFjek9gFdWt1#g#hY>0vvJ0W>)`4#4xfaRa ziXf-`-7WLH@z(pV61{Ji?*|d~Wmd6|A7{r&A~&`!GMYrKM9X=3Cal49Tq^ry8mF>Y zacZi$*{k$XTVus(amDSi;& z_RY2;LVQyuJFrzSVl4Z#6#8oc-i<;|!0-yDHd}7yX_?w!`dEC?mH0OBmqH4H=OS(3 z$a!3-^=F;V2xut?{qlUG^=HcQYAG}+ja_&+!wc9<7X1-`GlCC3}Go?K1Z9MH~`WjKIZ>>KBlXVTlmz z=IU*p~Asom`#`is_TyqW^5)Y#H~qoOCjxa1e3^0S zxeup|*q!iERe?MkYd_DT1N)KP>9}|lpN3GnD@Ba5gU{kIRFxz0q&cqQix^T{F8ryf z5sri*+!J*;&fVK<0pB5ZTWCczopJn&TrNnNDPkMwb`ev%hzmuG1*|<>l0z$^3k1<0 zD@BrRWd#<*PC&#GlkL2!E+`B`?BB#{e3!UJ#-B_W$&_K3!TC_P1B!jz*C1kS~4XeL$ZT! z5Ng}b6kfogSQKu?`4&m12)oz8`8?OiRX&9xR_9t{_0Bf3Ro}|z;3J>rJ)7+a$7cFV z0n@2j2-}^M4wV@!){^N3C5y%Q;=^t}jaUBwdd&=}(B1q^T6vzaa_0Ahc4#Mpr#KakN$0`aBz?PG^FglRTB#FLr& zBPSPSZ2=J*1QCBN;FWAm7#Wi+LVgw6)yP5hFLkscvg)_S-edR9kPlDneP`_bB1<~r z-sfFt!CxYF|5h>&tXpgK(AiFs)E`(HG%#kbH$(>q|&9EHW5-kj}V7OQu)D z*;KF z@T?y8BRklEltDU$8-@0xwb9++pO&oCt4fJnJ$77V^>2mfe~;NKqsV;UpN_-W(1k{S zAc02jPh~=*p9KALRE^%B>2+vy;hg!ANw~(W4x=Fmc=2idb@CUpJ}8!rsJ+;tbq{Xm{ndIsBG!#t5_Y3jbmLgjjib$<{Sn$L zx=}B>ks6@NbkU804OAt%kt(_|)6JCT)oEtBHDM-i5hBxHr%_S=W zwKLX*wnSYJ9YA(r`mOKq9Xb#%E)Je)*m&1V0;ApKrE{u9}6%+w3@u^xrpa*6^Ez_ z!8L=Kim-7s8mb)rjn}b<2gwtU))I@t{Q|r(bYE0@8)Hdyw$L|!!lL1*!j#0cDT;tQ z_*ILcJ6%j*V)zcFr=nfrdnD;Ju0-~;v(zHwC!wNy3jHP4`)hCls#E`Vra7h5Kfp9+ zy`jBcP}Yf^wa23?!~y{GmskM2Cd@^{luyF>xw!yfJ%SKTsy1fehsD_}HvL`}(Uv3F zk3GQ=jG(qkR_#CI-*kkjRqAxia%}*m1OTv3q%`|h^U{iDH_rS$f5G~OzSD}Bu4~T5 zrM$Z+vI&~lTgra488?5DmQ0UEk?<0;eG=0PN(no(0mK66M_Pk6fL4inuEKczvF4?l z5KQug1`Boot!xfzNhrqPJJeXJC5ijyq6J!i`d=j7c+~pS=Mf|uZ~(?~8zO~~W>zhr z%dG&-yfTZuZHY8|d+h!F#tet4XP}q9iDX+d6HN9b`qr41mclygDJNJ^#fUVe{~*Q|RX577+2}m8|A;;osq;9)f5^ z*g?rf)DUE1FEzQ5kBq-z3I|1$w~N$WHKx>Di+mC2$+wC(Q%j~_;YbYdbfpbB;%!A* zf7%dnYf1F7Eij29ZmmB(DrDeg8)V?&m<+sZYZp5L9#$);+LD2?%Pk%VySwKQ?1;Vp z*x=C)@MtL2cL^T#YZrsAKAjVcIh}Oavcdw17(Du~!6Pk+R-+4?3D#gy%{r;e!JiFS z{3D#Y(akVf^w$JaU1SZW@6ju;WrwIHq;X*>k1*ES-wg+M_moYV#!e~^7&==t@Es5GyFAU#w_P_y#)Lr^X6nR7I zPkY1ZS`yu&Rzq7qC3*O?!NUh4Zn%7DN%T5U8{_VS@NO-M?ht(I3`5@9Rj)AwKQV!U zrF+9jKO@xe9jY}1@39Gidx!@~v!OL)vFr9k?Cgxa-xSBrVpc=@(!3g$y5 zJn(WujF)ezN9JWm*y7cjiFlb2vEJ{C@e)Y_-w+eTmA3g}hL|r|8NV-^#Po~Ola=p> z#WboV(cOZT`r{bs*+MQ)MCu90sluyH&t%`pypkPvO<;8h-9(3&zHD(*l9v|K5~eR& z-0b1A#<1(o$#esGnZ9nxX4fv7w<(X30wRFc3nASLMuL`GR572t7lv(t;l2h0P*X)7 zrEH|e0#dzrU`pP|)Zk`H39y423q*u+__NZt6j0riLTDsVyW>d6_Lpse{FO@>x0*kp{Ct`kk?EQ6SlF0prRlGT} zI<~XwF?Lpy=uK5v^ACn&=DauY-YN`J+eUVz8}o7@>o*{=-l=3eG>MVb4czCG#U*c! zyC!G@Sf@852=uAclIVV$VXM9&Y?J$KUT`k#*4<@%9#5Qj4I@dOM|_*Bkbe-FwbKz6 zKM8vjqXkp!KeI=*Q%e_Yu-n6Ja{2Ivx?LJ@tqU#oEGI11dQ3r`vG)%P_83#pAbK)l z=*;I$;e0Y;>dYR(xlJU?jJIEI62j@zlIRP_Mz1Ma-+QcU(?@C+JNP28-&u)#M(k(xPZaEuz0Fu`^>$OD-nPcxztpX_ zcbdK3WA^sWBlLE6uikdGU?`%uS0U5K|66abmA(De=g_9udYf^b z_5PE%-e%Gwv$tI~!}?lugx>zxtG9bZZ=rZ@PuN>E<3QZUeU&Ts#(mo#TFh^|n1mAf ztR;s%?9q~F#sA0NyT>_IU2VW8*@ra&wTc1)3Pgek_=d6Y>S$laCMZMSVq0uG)=JyS zFcTm$OvafE_nCr4%h~7TL>ns>So>j%^wr#z_ltEkC-^~ESAV5G#`6Ddf!~dI9@&I1vQ|2t#u?4Ka zjAAc)$qJ62Cv&dUBI-F?f#v@BdX;%j6d2BT|JspSR-nLLZUvrIe6i+HV2}hnpv-q{ z0cK$lX}ezwa5lzu))8R6CBRA+;EC@Sz<-{#SqU!UzTZ%+?`gsB)2}+RCb5WGWA}ZF z-S;)$)Az><`hJbO@4NrAzAth5{<78g>$&f5|NFk@GTe8(o2cOGGjbE-+obOSHMeDy z-dybQTh|bCov!Dd`Fti_f7!bJ{Bjy*v?{Zmy4>V_+8J1Q6XY*dYCqwJ+QY4QcZ`~t z#Kn30&3K6yey=(7zG}Y|9~RRHvjm$QXV8CTb$;J8o%z8ozy-tnov>ca2}7 zzY>Ux@W7w2$j7Ynx;|>tG(NAp&z$4DWhZtUJNiXYM+M)ntfm@Pn_|!u^4oD6Fo; zZ*_j&isLx{JE}z=$GtUelog{zW(AF)Q_T{!!wMZXFGvitqk7Db6S;tTqP5)Ys8;%V zqM;{S%hlIt;1a#X>8S4W)tl{598h1k4kpzyobcjBYa8Yds(UOUX#^5Bpw^jloXuTs zDT|384J=IlWsG0hP7cghPaiHjJC6EumXi2}alru`o`dilz->g-d(#B_uKCJoI7HlH z_OtJs-#0CeE}1<^-#K474M%V7NNqJMaL?fWX}DI~YVIfJ?)h!gmhtY)JdgIs+xv~X zxDVH~E3!k234Xn+k9QaC=x48UVT-49^EI+URKl%9z{OpZ8F!~9GjE==?9E%(EX>ZPnMaGH6E-Mx{ zAr=9(%k0O&xMmveuj>xJYo6!tX{|E372JW_ighq@599ZugNtayAL$Hy-vICb!lU81 z8(c%7dYoGme(N}(rVXahTH2;sJ3BL3@Lo2v31;vV`}2ydptjO72tw=~Q=QC)|s7_I6(vjS7+AJlZ7IkWe1ds~Wi zE4Y&J9kxH1jrL4?t;iUdTT1roD150 z>Ijp&pB;HTeRWh7-}^NkmzI!DX(^HJ?rxAqkS^)Igwh}((%sz+m$)F^AuT1{UBBV; zeb@V!i&@K=d!F2TKWEO=q~ygT6Rsip#y5QOVs{ACPjrIcgOALQS#8IZ2wYJ$2K)T=F`;j5HCs54uK=Ps7xixP(MTiso_!g zX8!{Dt0I>RlqdMdR?6(>848sz@d4j$HsQBNn2rbA{>eUb{i;blTS-3Qr_NF|D8$`7 zv9v^|zWiNpgx9Y<*OrSsBZ&J`F6LyxuY(<5fxq#{qrUe?42ddiyS@J18B1d{9^%1O ziEe6|6B0wYz?o6k=Iji-pyFJ$M;5__aBcEgFzbm(V@KEA^|Sea&xy2Pb|urPKdw)g z{3Fxpv-P!qOEst+OL$~;v>SKr?oScfqpqN8m_UL;N$m4o4oqj_y%p#{AYIs(1_3K& z!}?Z_aOHY)xyG&WX|>q#qzB%nh)sg3uBo-cEn+p~ca_9u10i9E2EkUIVlZtrQ$MlEi9UU*mBO&Y<_fajDA zCxVjCKavxd`dn!_u4XSMs1bwCj}xt#+A&KpeD=>5cw6D5yi6{yzCz;X52g}IHwc^{ zMV>LQ?l+<`^$efxMR6(e&lp%NwUm~my!jOTy_^BJe~SGJZmp~TG_L+a1e4e)$S}It zV?`{hhzwoGu3!l*I^mT>S9sbW1k0}VNB@#3PO?GSib|C!so>SDBmZUajm!ANHU?BI z^40yvy9dHHt-}LZ$No1v-uCMNJ2`hs!WLodoAxh{T_zjNC`!|F~P5#TrYj;oTnQJ>Z`(j*u zg7Ws6nKSfWu(Nss=<%CYo29=3sOj2%8S*!#3>eroC%71XENA)aOn>EbbSC$ry{DW{ zK77-h=iRb`U6-H_&T5=3nOr+>))39e*geyBXH*^8q_=Cn=obV1@vEKkkA+-dMY!0(G&Yxk0Ww?5FYhvMV86-iKW zXs6p4&)Zp&3IhfUzXN$AJ4HG9+crN#G0)8d6i|AQ%qqP14+qwPoaZf;(tK(s?GWVx z9E8)4%kXo?sJ+KGco9%dzZM&29T_cbZ77a6>-Ep0yy6#&hVccJ$g{>P?aXz~@tVAT z@~sb;;odX|AuFUDHn{c>?p+@g%(tff7cut#Qtha=W~Tx*ZNs7xbrfaJK7 z?Bch}SZG#Y!vb(L44J9BQfT1%tbr?3dD-< zOzva)nBPPsBpeTtDcLxSDPuzGAW1uuw^xPiS9O@PtT}HE;Bj zNGpw#-)O<_mTfV#V|+GY>5R{93byoV?=#2L=jU{A*EvG^B~uojC)*H3E%o$?7LCI* zHlN`tM=wYrsZ?uv*cjO;a%lRDX`Qr*@l4XQGR;Wd@3kX= zh$)Fd`qFN+#o5KY%jtC3S^dhGVoEM&A*nAkmI)daICzA)S(v=~FE-NP9-Doqo;snU z>h4>GSqe6luBQf=>*8m zCB7_EXdc}Fl?cT#y(PFFFP7+HG;dbIep|Do5cB1ZVYYJaPV&Ihlj)DzBkK?GJ~mvEF#gty%J#i9-~O1VL~3=oSE7Ex>qzV#x%$2N zHxELwr7s*W&yx=^kluJpPvt?YTi@N)NXHb11HD^}Y3JXlXH&n!?`t#$`VSQ7X-Nin zX0+z}6w2r|Rg~twZE`7X?AM&#YnD86aTpn=*}W%Ala00|7pkV?%c-Z+%PLi#86fFZ zDzPxXTJYozIw^?>$|(%UGoe4!{n2L}ZfB`8DqG3+D-oSf8}v3z zM#c%{O1#!WjFW^f;lxwDJM^_jW5b$e;_ZxDLOHPEdZ+x{*&-#l4QGX^P)P}JBlHv}c0KMJ!p9XUDNsNdr!agY3to*WdcielP4Cv7#~yjwRsoV~KJBF>YR(hU_Ic z6!ih!KjC-4)W;KAdYapUP4$v6F)40#PmF&7gw19wNinv?l|(O_mK~W}o;%Q@EK9=J z*a4E#gEzPVTNuFScYi-n3}pmVWFOVO=h`eiIM{U42!Puo`MUuBD9g9_vEa8q#(02P zbumF+8Q^PMe@Ww-VYv-MT9Ke)(&ououFV8<=p%yCAaDC` zS6LJ0;m#>gFA+)Gx94yeX=FqQIL^C_wb~_E5aRw-Qkpg2)M}Jr*EJ)YV|*iw@ae?Q zcKjvGVSS^T5&blSdIqh*bTxA`%x&b~_8s}zOAyiadDESf zYx6JHChpaofYYzdWNa(7`}`s0vMfDEA&IBn4z@jk<)F1K(`KM>jnP)y%JONBX=uiy}SD#?}Y4nJVt z+*a1bKm|3jB^nHgB3UKUB2$w*7YQXTSEigYQftD>X>x4-yfgiSBOjT+hHKGhHcvaV zG#J4ucA|&5brM;%>zk8fK0B?%VPm)t+a)XLy>+N?O>MJb4kv^MC#8j&d4`*W_MV?= z8%tUF-0eQK`Msw@ez@$`F8OB4`*X!zPQ}01kd4Kl|1P97L*S-7Fi$xo8LSU@+_T#K4*#y1AmE%NtC5l8Poc_Zr1os3CC0 z{0d=Ic$K|88n*PB3*E0ItV@L*o#+RB^KSnpi)(N<|LUCf5 zr{#c^#!%$9WjRH)^<7FBa6AfZ|A(gy<@!h}-X zlA7q>mKcpqUz_&REeSXO&Ne)XIZ{pzvMqPN5K8Cf)Of#HH2_t=6~3V0R-KKrt2Hu= z;Oq8&V$uGRp(D}BRuyJKR7qrPXt4B;Lp33t9iqQ9i~&!g_|c;^Q}b+|4I{7f&s|w7 zNBor9V}YrO2C6v1$<2(gGC!~-FvRm|{ip zh~vab9tue)4Jtd8?DrVsgn^*UXKhcPl$IslbHK8Bh#Ib~?F#t2(+(kV^OCw#Qm@k? zkMP9dj+q5?B13ZQo-mPTkn)jaXE(E0q#tLLto`{6ee$Rl|e~PMd7pLWp!*Oba zw}JmFda78N<;?I&gl@e8Get*)KCw+KXBO|vnFo)ra9)SVhp1>a?wm{~THkQsxWkx>Kp^ARi-``xAoq{%cqFU3^(N`&sHBN6(9U| z1H34?Ssf`zed2M5*ikFFmI^oHJcZ%25e2$zD-vRhN3i{#wZPHu(O~)MOz#p zF{j{u<=K~j#1;yGjPlw+(qn(;I#n|+UA;_83*(IS&c35|u0e;FJ@rq~l*;^x$Y@S# zM^XGkpOte3`lHvJHeF$!OUluZps$a<`Xb7?tT$rdbC%nyGb4d$8 zE?^fG*IlQR4fG!%sBA*LgMAbBJXP&30r&0;(iKkjENQmV9W3$h3KrzFWDOIn%;vvh zarjUWd-h+ZiobLU{ZG?^xc&WfDtM5(#ap3VGfDZAP_d&s39( znnuSXG}f>la3S5U_1(t0aE>>ic5#F;x!HM1le`}ti-^IkRz^Y7;$FCka6!?o3(zG8 zIJ9(v9v^Nh6_ZUByT20b^(60|6enW20JmWk@m&ly6nc>V2KiVD*pi=)(C|Ta>klML z3q)4cWQM*KfzQ-A=F@Qme?GM$Er)aSsD_Z>vUcW{KE%~#WoO7udTH*AjPRMRR(1(C zroZcp7jaGSfRX$@uhOfS$aSUoHHW8fP5wKlx|_8?CUCHLD>_m`BT9|!0}fv-i6N%4 zSX7;O^SshJp^S7*=!3nuQB+-zE@IequsP`?+Pra@TAk!mg88GRQPgyg|4fYYAX!t? zx(Xy!#&ol4d1e|W=hRJq!-FN%_}Big0tfqnI!(n=VH!|T!KEJIjL@*g!Yv8UJsdA0 zs3`QbHmw^(qGe}V1cVeXOVm7M!oRwQPi$?bSTFZl$xV8);HW*1;mzjUDqEqG;;B&e zj-FB-+%Y0bs7O`>X=iT6*hZ33Xj4QF#KyrRi-9zLs>($51|2l)PS2d^D9VV<`yrKO zllhmTNf59o*#Kr2)6VXAVr~vx^dls+beyk^(xY##(9zljRZQ{#JPzAPFJ%tLiiiR` zZw*UPgP`bx_^6C9B0u}NFF{mU{sc&j7M*V0bTWNd`Jg~Ps^wj}>cAQfyA9a1xSu(E zrsYTyZ4fwVsLRv0*Ayht?QS|p7(wxY=euaPJst!38={gc87n`Vd&!U!4cI@yGvN8# zfYiSt?%{RVL|DDK{qFf@P|73x$6m`i5N3N6xJ zJhMm7bQv?uJs2M|X7_&h^=WNIysq7KTN&_EJ)KQ`YR&rYTSO3@rDm&v41B@iX4|p^ zTwmPHN)%$Z!=r06Pu0`i$PFBb2SKknH~@}IP=cL#y$B|r(pX6vJi;`IT5DNLFGkM1 zfq<%P(j}6B5H7p7%U(>gsT5bPdJR^Oqm1`%d~8VTM*V@`!^2I*CPppC?TiiBm0nhQ zBJy-p;oV?lLIy%hUSAreH2l)NOtvf-0dXARc~qO3Zh5KuDW^hPy4k~)t>oONQ6GY~ z(EC0m6T1k}7lBgTHx2VlLHqk!))wkn11zSqa;Y%!I$!sftvT*)%Eu`xcl(B^o<#&8 zR-@^-YiEIAEefq3rQ7OXkgW+X0;0$%${c(=0Ynk&2I0wgq_g%y6<(yX@+p?dXr5F4 zFS0vqO1x+HH%OCGutMMGeDICfKvwzt4r;v21r(6%VR5Ll~eg=xnrWD<>Daq@jrc!O9X6(2DxLnj@NJ z*#h?*K^bjR`@hnlJhAlZU?08pBQH3aLRVXly6#FhI=b70 zQT01xTp`Z>t0S+%@AXcbX_DJ1i4I|6D?(L6d^v)s@6>{VIOT2Hcc{Y3;n+Cv-FbIPsy_E2zkosr(|A^6wvJ* zs6+dW>hFd8VApl)=5;833=!$RG@3^76cWwvz79_rI<~GVs`XmMyVX^v^u$>*TnIwe zmy~}C$(|!;Tu&XU?fD(35eFYnWOq-%6XZ(C96}4k5Hj#d>~Mi@z<-z)2pt-)zs5F~ zGwJBdNybprFFRX-g$37dp5qw=myFqQrxf}<9`8|&?XRP94fszPhU8|8q{KJhI2;oZ z&Q$Kor4Wo=tmDak88M?_Ye9W)s*h6jCqxi6dJ*`5JK-O!WOllLB(J4iXEY|HPQa6P z1oR*zkkK)q0}e3T{Cup`;LP|?`_p-z9UUZmfqhUbiv4;H&>R4+KI&>EcA;zpW2aMko> z=Dpg5?z+ka5K9l%2J6*69b+iZxzRqBkLBx4`yTXORgYC>#su(E2;BK`n^%alv+PYhxjs+rj|@pJ%rfcbX?PhMH!<4v5(zx-@(mShx*uw`y+(Zyg@$-lUzUf z^dc6WO1r<4$ccKy-zR`t5ZZC9%G}?9gZ=1CaIun``{tPXZ@qQH1p@ei%nx*g?Z})NYXgDD0rzEd4te=+)t9 z0$}H3GBfKOK@52@n5a-Y^KWV0u(D_yh-qZ!o_D!o* z7>m%SWR_~H@7oA#Xtvl3K5B2;f;twFku;wV;qvd6flqXGjhCI{=DKK?`qMJ)=3m+p z&a7ONl0MKk-LWtr0%;j1OiJTQ<-hksa(f}#&NS>bN$H~$x+ff}hvL!ayEOA|O(nIx zq%wzyOveS5=UDoKiU%5-1o@jXHg`Zc)yjF(=_67!{gm(&74}$x{PV&8 znCz712v*NF(MNG?LoLsCCNc0Fr`uvoA%K1ZZmtVS2R@F7cT-1_9{%@FZwIavuy@ct zHX}C^4V<#Rw$N$Ld|d~>*A;B6gU)ko@^T^s#|eIL@KEf2 zfT4yxcI+l?ymAuycBJ6_#$*mB9Y(LD^&EvTxi9RDxS{ zPH=t6HKA8P&4G34@x*&=TcTUal`qY&fWSjJaK#HX4(B?du{$$~n)z0sI*f`gHdE^O zZ{sQ=D3omm6kx^J4k>w-k69kI_eYQq>d~X}-KVSWiQl%{ zKm!n^lQy9b1n^)F1pm{EEs!frKfi|Q?x37tE1(IiOcGOPQYGW~CP({(>1v<0M71@w zfsJG5O}upCeHLazVQ{kT<w8n81e{%YR(9NSkwvm%7CB1!rbVQ|Fr;DA5g2~|GKcvH)q)k0d8cS z0(E|7Y%W{n47cDvfA=P#bV(AR0S?~)8lWS#3F~m7rwYPTMBDHJ+TcfW3pBRH5JAN0 z9#4G0Y_AO9zk6q|%ANfp>tH0;>#yjrFDj<*HwT|II*&8O6Fj0p4d>B_AUB-H#Bh2L zHo+-kGx7&MNR`Nx5$$sVuEqEvDl0>l)jEziVFIC&PD+J>R8}M@Ub)y?dUUj&m(<@cBfY z>QwX|Nb=*17Stk(uo<;zLW5+JCqBAL9 z_RA+{p7-3m+=v&X*~#B`lR4AnAm65YfeqFt50O(Qnig+?1y)Q%vLFprT4yK-b&6CP zjQnv%n5GK{K)*aZ+)GR#lxz@X_V(HtK8JSvWw4b#C*K4;XGi-$BhGjq&Jpx`Q{OFB z)@Q50Ng)vIp|pRNGSSJf%D0I5fg(F=Ux{M3wbR&}ee7+75OV&WArxn!k2})?DDmQ+ zzv;GQOgPhCy&NVfI$=oMpQ^bVmGDc(Yd}tW!Ep)XLmoPY+PMVnz**?&968qfIx35{ zsm_iaI)A{9`9WsS*(resRMnD8sl|5iZqtOB$BPer|Ck0;xyQtk&J1Bh@5Qy-vf&Zy zp$xGFS|nkn1@3%M&QlyaN~*(RP}}wC$53={C(3M9|I!nAjmWp zXcylPP0);iAO*UDGYk-<$dtFF^DqDPf46o{T$baljPR+R%*90_xJvV$sP%dGMk``v z=S?pM8(~qD$8v&OR)zI0AH-)-gc!M5#0;+=ateEHKxf*)U+@fC`UDi3ZfmOLe{|K| z&`7%t%d|LpCw;=m*Fw|HC+0X0MCP$+P}UGG@A;di#&kq?duubWh{Pe z-hvM-OEMb;5t}RSI2g=6GH>d+2I^JV^|4H)&G0G=mzyQ4WS8A@WiNh+WpCc`-o$sf zq;&#qQikZPAcXgp*_r-S8jKBQUxkr)pmN5(G=6OsnHL$7UF~%|lQaS?4OsRWLau&_ zr{ng^B*>6mw;Cj{?X-D2bgl|60=wN)xG;4|;GkrOVimjn2o$8*(Ha?rz}SI=bU5jZ{vd+WDWrOt-3 z0|;FMKvZJ;YHT#2Q8|U#*mv?o zj8B9}4T7r-h-+KiBFF`l@Ag zfyY@)LQ1t2`H|#rF5?2kEc4AwhR+CHg@l>-kI+1hm}O&WjLy+YOBia=G`B$VdbqE@ zctnj`;ofOE@~3`Nla_Z36RS`(3S8ab{u%gR{oVlT_v&Xfk3av_Z@&NPx6h{+qgQ;z zjX5z4Xdl-!CT|P9lnGW(u`Veri`)#kjID`ti?Xg*CyOwo;_|2phQl+et0h?B#*iZouiLe?~wsw z*h{Rr*iaCO(Cusa(8EQ%~*in|t=vtkl74JLo(^hQLxBQy#zzz#w_)A57-5t_>Af-}aZ zhU|kbF9vSvaMfypyWk@~xJC(ku@#Y2rSZXt@z3=wb)YmJz<8iVc z+f+CSr5=$rFIcwXIx^nY4*p#Jv*|u4xGT;95eeif73D?1040}wZ;+j?DhyvBy0Ku?_*ejt^4*Z?S7bxFG(dM946HY_4(wm1 z=DT59&dK0#v`>ZysalxpUx`4E_`d#gsd;yqp6+%ws_m^69lzBxY9ZdG4etW zJP@6M*8dY9U`J5zRU!)}8X5MB`ZOxr;~KdhrPb9n;V z6s*_sZ}6{`4n3fjFEtLCHVx@PJOHaRy`#U?`7-L7gkwEW>5G94d;2cNl((vlJnY63 zzFG+`F23}E7DkUz2w>*BtAJ#-B!~i7x>mgTAK^UjHjJeFLXRR4PJ!j@mVlSnVG!Uy zy|}zKU;*Uy)pnTt(2h5DiWaqVBu9&LPog>Ne)(x2@*-&9{?1JV7+10_iND9B|KpzoDPl+i_w@ zAy-vX44Ln$+~`WQ2DX&cdpeJGnR_yA2g}!a{xs9~@Ig)_ZFQM$i8-g@4O`GC;i|Qf z*EyJB*5*9J7D9m|K!#;!+g^=ohzS@~M{UNh{|(;{k`AnNFp5R!X<%A6&Uey&0_|54 zXAyda4G?p3bBOY%fR5Ld3(2f!w4(raozz~aBO69}rYrYy6#28Ubv{5`- zP)WN7IqXbBl?KsFv-0t#q z<6JIusznq@?`k%mKx#PSC~1V9%L$z3fO@OsKT{Hxj3uq}_^^yC$ib}#UckF0_JEMh z4kvy)rWA*AX@>UpT2dXq{e*!z>J<*iB7i>yB)@W-!!K4SD=WPMApq`Jng)1Bhn@7P zEzp}`A#XX3iNOGcG+l0(AQ`A>Qi$9TgPbsi$shy}c3d46aKcr>e@D0UQL4m<|at;VsHo&c3ug9JQ#=5qn#GVgAnWoKubW* zN{6u)%bEk40qZux!q1;De5PIS+&k6n3O$=G4IYrdh_^QQU3Hqv>srng#VJXpC*cu% zjD7%zdoaQ`_iGuA6=hWApbt@5LD1%KhcmeCq1!4+!G#(Dw=Or!r|CL&K7=VrQ0^C>qHW{a~4DSR0`rl$RVm|D>?`7A?19Kt=^FjUU zk5M{Qk1+%5e_lO>V1AcXgdvn|XI0P}2Hq4FM|WJ_ zpbz4nfQ@NYPrDZT++Q6i3OEq;Z|%Z+wK~3_&LM^D^y)SEwn2H94^7v?gsNvI_?n8y z4H2=PTE4oPfOw82*`J>1j}rXHuPUNOqj^;2e;yov^`JJC;2NlT_^v&-AfV=z5%MJ+ zP`nDa?pl1kr#smmgq9(Glg?6MrrM_p_RDQQQ2dXa@2pArq78pxVZ(X?)rOTBCg28X z9UfIwx|EeSW*X3NU$K7+4@|tVQ(B}bBZ{at3QsF4Y2e^Xb!Zwe(SWJ#(M1Ou20S)t z&z0jmLuU9Uj9}8+!20SYuoAG3l5pGZ05x0n6scl8Eg4+(GRldw>`AJEz)^Ca&ybQl zWzSx0c*FE1eav1MUOotzjR^vC05Ftou_qEJF_3z8BiR4B&rb<}r}sOK${=Ikbe>Qe z9ET%g_XzJwMl*20m(5H(Wwd9nSBN^YDtiWI(?`fVgwUE$$~!(|;ErMp?1k@WJ0=>% zGZYl;m#?Pp5;10A0L;)a5iHR%%9o8N$w(8z42WRrr|6AN4FIQ6mnNJC1I2}b$jasE z;A6ziwo~HVt`sBPA&HLwZuCKTQ~kPv-E!S3&@>1u@WXr9udT=kzxSw zm48}E8<5v8t@Mx*ldl76Y1Z3Nki!LsDkzUKM9BdxY07J`V1s*}M;T=gz{hu>uD|yx zws=2{Nkjea)UdB38;3G+bp1$>Svb3so(ndcXpKJRe?0h%vK6FlYv1P>O>- z%Ij5^iiodke&%|m8qh9&&ehb_RU$T;!vl#iU6&)nI`EpsW+o9E{jK4bQJ=dT68CL~ zK$LD`vcQ1~7~hMxrnj0d}`&n?5rXl%X7>k0hi0J#7KJeIgEKMzM62SmnJI#Kj zZ;vr7y__6Lts65*kG(pMG)OLEG*JTuQQS0nT(3GeCO5A z@T(%4A|ilbi7Ezy#mZE*?L=$xR;cL?4nX3C|4qG^hyzT}1YVK2wQ2k77zY6A_l44D z?sr|h*1pz*Y0!8P7u%C1>-`ohJX~Lqa&ZU;rL$hH%6b^Q$oz5_KgefyXT}qRI0iCJRvH92AU(G;5x^%1cxnFO zzZx&${ppY(Fp^xH6M5jh2st3;W4Qe*obeAi0D*>XS-@@hdMUZ6ElXeoWX&a;`5p0P zWVIaj`}dU!n(HY18WougCDS|Dk`_OvbO42G&0lYX)6x`RK`1{>;kXKU5DLbUjDj_= zYooBan^8$?*BKhCC+W6A-_t~~n0yi8wSXEoKPSBY4t&yDwsUa;+-pn$i%fxSYl!hT zuJM@+Ty|t^(D)qaqz-R&U(2(Af%J~q=PrzaG+~MdAlxGYbS~mv$iPt5JivVTqz(1G zlQK#hVAJjzChjxT{}#&pZ};^9ZF%W(yA*!y3CiryMgodhj!)HT<0$5+K(U%sOVJ}g z&a+C6>|i>6iyv*n?Z0%EUL?lYLH1wE;S_HH=C=63d5h;RuLEL~4Wriqadnu|GS;i# z6wzAcfh2DY*YXuo=})hor!cm#0 zLt6#?Q)EJq*>RL-r&m0K`;P_6$o33D@HmzWlns>Phh43GV=|v5gc`Ruj2f3*y7UhA zgL*5len2)w$^0MahO_t&bfaREjuRNwqQ1(b(6ZNDgpJ~_1avn~yVG%HxRJvHrNETx zwMNA2PZ0%(FX(ga%;AAq@FCqkFHtz|*2Y3T+FppO3~(}Z)jy5DcXKd4y#d7NcDUV; zb9@FwxPkq}bJ*9AMcoj16*J!drehU^l^M~L1GZ;RM83*2yL#)N0cuIIFvpdugt#U> zit<^QA?{3%Wz#S@D&S`5HfZq6r|!A8>D{UfqlKrD$O zqFT1YJ-0yTt_kmdU4zOrc(qcEG_W>GW&3vu?)5otdianVyG4F;#rtxgcc%o#!i01; zSqB-{BKW_28kclBLKVcZDA>=Vc2brHB-q!))8!PXM+KtMReS+Ze!FYJ?M%~N(~dq0 zm`DPGOuXEufN#=gOJwg)p9O`W&bgsi$2g#9!hsaw z3s?Bywx3ONz1otZN06Rvm0Ym;U5FkBO?d;#b~qqGO%dvNWaEX&DtO;j+orVs602@^RNWz|f{#Tn$)_O);^q$=T#Zx)QMhgf9)QL3b zG%e~NVufIch8O&omF281xi9PSHzz~o;XrWDmyIxrH{rqR_w26{H?ov8Lu{aWwo`Qy zi^vWDt%<1YfOr5QFD>-Fjw{QZ^e60Jla5sTc33dfwa0%QD3Tk)jx6 z&0@KsBOK+~pF@!DR_An1KpNqZm=f;xcNV+!&egQ}7P%u#lN?O&+uF4U+CZFFLZ;8> z2vaA{_sYj;-qvhK-kU2pQ209m*HWy3fd%0&2;KiUnI%HUr#w%F7nL#WmL}s>?3NUJ z!<97v=N>7ko@!Mm^GG5XV&H+;=0PI%jE{?anN%)P0YucCEgM`9CCEBRw(e)P)h;WHH(2DQy$m~%H> z)kgb#`@YTxU6GJH^@!X6&>DtlkJoY34nhV79?nQcFo%nIfRMDqwX{=_B)bcvfd3v$ zjESN=Td){Q1`n7oX9Tf;5?nL9aIWP5C&Nx3()CJ@psZH7XaMT`>SomO6aUit_1RB+ zV}xG$T^>;gyVVtGNWA8K_>k}GO-s%6U=GMn&f^FZ{nLh1s1GXDx&$yp5O520*M+@r zp5pA=!C0pvXaPU@FW^%$8X^bl|7wRp-Bwct!GHY8B619fP$AWebX&;(?N)U9bxCd>n-Fj*EmCv}05GimGqstaft#VCNxYmavJ@*gUAyjjTZ%|p!kYt-jm_YlAH=Nkx9xCYaHEafB8&} zz0KnBc%H}XN9&wbB9IY{yPKK&X~1k@Jeh9%H0y5yQ6}>EMX?NETNg;OpDJMthy7RF zsmH~Dy8R@1N%phI3---WMm8SO7hwaV|5oEvr8I~&0mtnu^1s!TeT+yD$DBBL)ziEU zOvd@`f$tU=J{o86f81+~5$y^%4M6**zTI`V7Dkc(_)=`p^%7fZy1K0qP$ihgG_U$y zI>ld|0<&0jgNq@bOMB6w?9j$zQAT@Fi(zw!!XWfQRo0dPAvg>DA9Aox>#%Uc&`vIT z`Z#hq=gE0|s==>(9K3=L4_zToY{K-4UH8Q=vH{2s+7EBYxqpUc{G$GN3Ac+u3AK-M z6q4Fh0}1YDbBHzJ=jw@Nu}TIv)oqi7e$k(J3z|&NW_z0(FR*YvCjOD;-$7_`P2xeP zk9-lPQhgj;ioE*2n|Mtrw>n07pW^cPv1}%rJiV=xJA5rQQ6-)>6e~*YTH7n@e0aHe)QlK%xX$M<6^mAVb$L9Z3Nh#1(1rkc+^pF4u5^| zUx+<)*)eu_y;gfuy@Hs$LUB#w%68#ceJc_}@hi#h26Olr>mj}~>u#9kId)U#UaYZg zuJ)nVzfYUv1t;=l^A^XT*S$&4JzybrP=Dv-zyBBiZSnZvzgsoO+&LONQVhhJBp>-( zEvFs0_c4fdoj&+;VE z`qC;XifW^M`x_^n^BhR?4PN6EXc@=&;;oWOCn{DcTXrJf?ygMlzn;*q?H|B4i z$_foWERZ{X+|ek=44xEgW)ZF>h?#$OcrlG7l{iN>vvzZ*=3jaiRL6Cb#L754XYT41 znGyT?_!3RI-gZN&Ob?%Q3~zi9ff+@S#S5&{-o zfq^gn7sq4U9&>l)`hpq4e`>bfP9-Cr!!wJ9a>H-CDuX5zZN@J@YwjGTP>(OtEPHr< zqx&QJ`Qz|q!V6(T|AI^&-oWEz6hRo@%9@`hO1V zFHLHaT`FxVg@tzN>l>>J78KT|r_{Svigpbmir;$amA2^X|807>bWsq?s;y+o6t@4W zufOtPNZk=3=}x7(Z@68(K1U`ajGWbu;kH!s?Bmyx+O~QR?|4=sfr8XB1%Am1mVP7VKT}G|3T@~5-XrYjT^zt(jjWS2%x{FkS>xZZq^(^w%&iS; z3tKC{+SS&V)D(VH%ZlKc)0t1=)`|^}m7D1&Db?7F5;tnE;aFU-Ae1Og)A$X%O5$nm z#$@EfzbZegnnBFtWH)t66xQE^+?6w2_M^o4Od78n7TDW){p_eZ!2T5BG_4X3>XJ~4 zFnj;xFT{G&W?DJBn~sc>N1;Uf^3DHUnt!n?#_!fvYR~D!!qoj-StbrDqkM5{J^sQk z62Gap3K_4sq#{_NBVg8lY8U;$ebZm+oc*T6!Y%$!RMB6hlGd#Sirj@KR{Kg7Mb;i$ zyULf&=NF1PDbM7dg0tUesh&@L)X`kDBpOl?i{iC%Xx9>n(EU`;$r0e4l9HdPQ`qxf zdz|PNUihsJMcXO*&s#jF*5a;Am0|}pKZ=It5VRh{fSvPYr3y1VDwU;~sy;&j@Ty^^ zH%%xX3L9^Z()=VKszH?}*#7cnc_e zRrL*vpYVIvTO50koD?eW=o>akSXD_josv%3c?)dq*UE4qag?QVlaWWyqti1+yPyqY z?a1a^El*?SSXXObon=(ixM~RBzb|c-WYQ|KZdLSv4KOVY=GZ+c^)xr{a8FerPN&SZ zaA}7s%^PA8^6#pyuCf!;J1ZvA7>|igK;L735MoR-$D1~xPISz zFPSLSn#w1U+eFV^nQ#8BrkKo#O9xg|R#vON>@LMCtk6N{p`cVEIeN>eb@hAZAKk!o zVIppEA)~&#ZmJoU;u4OpdtcDXZ3t5H=e!i9Gb`lYlzsG^9#g}gq-axAVWxb(49~^H z!692rh5Zr;*^Ypw3V$(csVy?Ua!M3N&mw^1qAs%X+>MORV7jeJ0NuY;T3HH$P+&jY1lzY~=QU44tm7##Osj(!fBQt@L z5p;xktlBN|>F=Xl1MSuIz?Tyhh0x9ne!Fa;uUMfkVtLj;eVlk7u;#ZPfK;*;P0jT= zF<0!;bykoz`^z(`O_^HRT>YqOEJ?%ubK|p38Ha52FR^{BJcjZ{Vw%|}`@9+LyyVA@ z*bkVvK`PI%`-kwBvO+W3%33oP?ph?#AkKVphXY4<+N)xYKJ=1Vdx2ss zVTX^>Q_>OlfY9&^0%_=pKJgtdln6V~X_X8?@}F%PwI*SR#Tqm%!(>;cxzls&EeFpu zk(kq>E=JK`SQ8p4-UVNQ8km3Y0FzTkcU8Vi)NGBTE z>5)`*=ebRDm_f6Gm{u$HKxSXDZ9m-RgU(ag`N=@i{*yhjCgBGu#(j#s)?@k?XNG(x zw-I@*$kewhUMH2Dav7Wvno2Ey_I;m^7}Ph1XHDOhNWVSM$&)o)H> zA?uj6&yK*7i>$Hsx)FmodoK?H>Z#Jf;#`q`zAt{heuB1jde6*1k=0YvVnnRkaLf$; z>hRz}4fQ>4`@h+yzZf(sPI{zUm6oza(L&QvSq=#KjXElK!$TQC7*fSy+`Mb%z`px_ zJlhn%S-CHEB*$dD!NN4_*~*$bSh|>&1-BMLD#?@XOnC&)e9-LJX#ZUL+R#fTQ|*5e zNgor3WR-}^|J=9=e+15TU7*l(VP`3DI+^j?!6_|RJ}i60zcvmz)0I>BH@|}um%+q{ zo%dyZCa3v9O)e-1Z{_GwC^6U4nE&Tcag=ysK0|%sTgE=uidw_Ns@2B&oNm1dx{2uA zuR&cs`!>p7Qg&qCe^5wzp3Nty>)O{8qiXHLVK%GnXESw<=TpsaYg{xIvPmyW9lpDv zg6CZD;X+p3{;6c@P{pQOy=&a8KjbRe zw5|}NQMX`3UZ6b4CT;TfVe$1X@+69`cVj`9In!p`eOah*oWli{`o~(f(9xj$DV8V3 z5aL*piwt7E5@+1|8k9cdrTgH<#qN-r2m%eBuC;S6arfAJb3ysS{`B*p(u9V=`!+u% zQ&4)W23tgG@Jv}J$kjx2WwBLJiJ}144)HiALxt)d!L`>;KmeZO$^J(*-;bGFqaD%N z7I3MyI{sW7xvm7#h=c~f;uk+16g(m4#ez#FmA>d&B&q(aa}^QXwu zc?jM)mQLqW>F1f*01|mC;DP3ynNFWu_*6d|3^OWL;5E?Ic9G`GyT5Y@F#ub5dGZ4<$|mep>vbPIt2I%%zV|P(SqEOsdvNkI!Gn^>{g53~ z-l=oGrU)p=U1oS)7%!LSA9@C-jqeYpJpwB>e7>lpC(I#rW8mPFzKm7oxYhgB{YlL| zlq~nsB(oR?eaX)q9C=s;PLBLJRg1=V-l_CIY>w@ce=z-0`K-zHRXxgbl6`g|QXEJ^ zJoOb!vk(6VdO(H04)ihmsxB2^Cd#QYp!|c(zUuG_vs6vM!5wy?Vd`V{S52M8Xpi{_ z(LgGrf%Xye2r8py3YmRLmCT`8W-0lPSM>*Q2w!uP)8E+Pc7IFNsn){xp}tL0Ms-vM z>m5f@)ch|}7fhj$SqjPjihHo48k{ut8fIz;@DCp<2r; zR9mkKtmdi}5B-I4qoPGMbar;gnWOBcx?}AN`*C<_wD)JF_zipCkBP;<#`m2gajp~B zdAkwHYm9+?8R4Z zFW$7gxS{QAN_;@I6gCHtTHh9@S@7f$V?Ulx_!Bl@H&IBnUx_(5YW7e!v<)`9t5=L# zYJrIFkZLP8d#GETKI}B+P?%1jC=H~jdexWFD{&e&<(n^E@ zpIJUk-RY|^O|`eR-0ZF{#eVcDomgtAZzNR))C;YHK{->kmaCUrd#NS93L1^z45Z37 ztpqeUPd(jw;3WDL^`#LirL}SLEYgd0dBokxZn~3W&ZY!?OyL=%l$~o|wA#6Lg-_?& zIaaP!(pCzoLpk5xXhpuw_tj!HS3W1--h=n(-gUmol5dox2&uV9tAP5v^=vgyr`zXN zy3Ip51zOz^AEmx1Ot%X--O|0eSFfX2i_9JrrVxe9?jZ_M<=w-m+fWK)d#=)LasSS@?RM`<%ha_ApashuW+ajvyebP(bPlU2+Oa z?)QzPQ>YB}9&5$M0~@7E3Y$IDL#@ciHNMHtb747YcAXzH{zBT0ZTez#80&g7h3Oi& zI(-HOwh^D^WKLjz-%_1AG%1zATF`DOh3KF;KyA|Zw-%!R6i}~@Xe+b2slN=>hD@qIT9^8V6Q^v(z;$osq%nBW(24 z)h)wGed@2k-uV@Z()mKXNFQ1&%#^U_@u( zZ?H*x42K~U#+~%B6>~RU*B6cX&r@v&rcxE*(Cv6Njt{=FVfO8&c91!5Sq~1h@gC}M zeZgsMiJqWJdeFK2N(<*XtZR!%UE&)=>g(3wl(?IQQ5gA(Th}2Z9uhW0r;zG4lGOSA zt-rgBBsIbQ`>2tm;{8c=@2SRIVRlz{_>tFNwv+$(we?{NlTb~D8 zbM`EMEmhKX*RVEwU|{cQ!NArD+cpF1ivL)9e4WI7yci>O5vdo9L8R`$3TFA=UA^ji z2Wu+^3908XeWB51t=fs_d=-69w?5lWyy$}yyB#MMW5Fi>d1`TMz7zc{CxV06iK~3b zGg4dN!~a?{Q)0_qh-(V;44BlP(P<)oBpn5F$ad_1qUWOGvHO%Lz7Q8;y#j zvj}IU{&uN<=pa%}Sb$yiAK?01T=iq8a{DhxeRB}0X?gYUKmuo^-Z-A`*j@L z>q}}ibvP-)mLiJ9X7U26qziB{&E{mb@E zna|=Hxobb1DkRGBcb5vYo2n|uc@@U6JwE|oVJ)CLTJ_9?lDn*u7n~BkX$zy;_Ev4| zNncOXRDZ+e@^ORk7cRl|Uy1&@u|e29Q543`FSjc8H%+z1H&RV2C%q;4Gxh?1z(K`t zNZrtSlf~ZSJCC9`Sf;@$mh_)w%^Q)^xrwRQ293=j9FK&k>Nq-$LUg8HeJU?&AkPKCxnG}8jTEAUUW`&V=|#Z4GZKuj zAGh0nV4rZi*;RejV!3d!zaj!3zHPxdK$Gi!hiR%y{BzEr3$SOerZBasX-R$VW?y{< zqilVHWgW^bZ%abb%|<_bTGf^`P4&Fdv#Z%rO+v(4P`tVgoAcd91wLHUR!)_ssa`PN zQ61;#1r_HGxM=EZn(Ac(Cl@_P-PSh4G}Ws{PqU*M)0rx1F-p%UVri%GjyhxxsT3|8 zd#GF5h9k1?8-pnHP(xqBmG~^&N3ynd&G%!M(>%jD3pLK*ex;R;9@_c5bqD(OnANX` z+IEl=>4kFh!u8DYbxc2L1iw6H?op!pk>(Y5po3Q-wu){s)4 z5-!3<0G&sr6rxk9OquoiSUgO7DKw0(qOh8_Y^Itvg<71LM$WR$pQcK%+xZPe=_=^a zm(?JPpTazdJx7`ii3d|54KqP{?sV_8Z&4FVvx(I*h;s7TB#?TeT*g z)Xqs&>&NzcsK=eEYks(D`gh!FPvkGI!knrbezMa`c6e(HQXqgt@+s}w7{VX^TAv_=;lQc5SB14YGD(X1N-tSBtK-G}2AVh%UwG!qIjN-S3Lsf!+PFy>JPx z%*_<_&+_e!5RSP0Rha$1rYarFK$M~wm!xp8MEfu`gP^8;rp=YWT$LrxlwQ9D97p{x zD5SO+n@Lq{p(;Hpd#lrG)$l7w4X7}Cs7u>AQx%;FH`QLF0-H%S8j zMOWu(yJPnTDWp!>Osee)iqZ(~(wX4eUHYGX=+Z_Vq*>%2ZTV8A&R(X%wWNN(g;cxA zYI^xEX*`7k%IvA8jZ$XD?5oC>o8{{8`O564P*kgW4^e-;f>a0eP)(R(_E1aN>AtGG zg07Oh=vbj$gfi$lDc@$QQog0?*g@*A!&UEEf~~OfWpEU_1d3s2a~4&qUKO}yUrlBH zQq^<6s_w6P){?4yjiTz9L8NMyQFP!X>evcZb%i>nVkN1m!_^&a<<2#q5##*0)!v@o zM#tk~k-})AA5{)h)5}d#z;k)E-OkDQ zKFf&Wq>Mv4U6J02&`|SKQtfar>2y+42b-s=cGl+g6J(_|=hF(z@*p(z(hmacwr+}^ zjt8I*A$4Pi^Qh81T`g?xg^zD{7-Swv>h(lVGyYgT82{?h07L*eYZKsYk$fJ*Y;SAqUAIa*AzHu zrjdBc1EpnSNzq6O(Q(#CnrQ!vmH#XX)1L?@C$4{?!NjC$8$~VV>1ql;#}KTwHSL9Y z4HK}v?Vg1l1>ppS?>U}*kV5nko>9U%nEvj}>&_ICjn7v3XZ|!WhC)HyJMQNegL!UlJ&0YbuqBZW?19E$MkFBO{an>qhEH~E2+t>!( z*u%Q94OU|hS&el?W2?;`>Nf0s(AdMRGn~dMG2IfbRjdx?H<%u0H#k(`2od+q8hM3w zurrWw8*qfU5y$suQIy`Isz8iF`jL<_I_De;Q6CIEB)@MZCFo5`m^eM0=buBBlrYaw zU$x*FBjmzwae(%+y)Ym@f2Z#{;0k91g~sU(=sI6#P8GIrv|62CPU>h|gD9zS<#fB2AZ90wf80Sl)m1V?mqr7()0HU-|5~qX z6P?v+7^y@1L4|v1RzNlNQipy@{u$81>`MVP1+n>%qTmJkA#<_J_9ZoOnf-v*FjDRN zoq(4F{vQ8RQbvvASFf-Y9!;f3H9h%I(YFQi3rUG~Z z4G&1_KZfFN4odhBd}BD_70Bj5Vz3|<^z+M6`pxQpu z2l(n+L*F0=a{#G}+HkHvj8uzLAKy|@Crx%{itIGoZPR`r)Vhqqmiw#*=T=Z~x=r#O z-eCkDEsY*@*6*wf!nc9^V-HfGg+l&zhRTvWR0S0;paKdicvr^3 z8;YplUC{xwRro)jeJ&|l=biWa|M@(YoOAYGd+poW>%MzvZHZJ>_5BXFQ@1Ud`c@(@ zlZ_JXj|a(qI}vLYEnUlO6z%kb6a?*2cg^hjc`ptAa!|CagVN7-d20Jb5o!&$X@#bg zIN&m;zW7A*lNj_9uf4Wr9`czQym0DcTk2zaovc)ZQ9Jvfu$z7{4yr@zyD=`8=31@) z7vVn_P3Gc;4@8)w| zeeI-Zb$2l@QzzC>?xsStyQrY5>iWuB252!1rJG8Y(|R{w7+liL>)(uFvKzW+YW;5n z<^0BLr{?r(Mv+afoEWLBb-B6;6*GsD&ghH{iPl;nE^e1=T5VNzz4c+nM9VK-Gs6J* zn(<^-xCdNLxCedbqtR5j2kht)-Q}vAG|`SlNHyzmxj0*dC@xpc^k}_;p5}5*tdCyA z*XGYE>*uAB%9x6CvEn%t?meu46+5bc&k^S-o$mT!C&t5k-U3%7o91z78`#p(#n27^Sn^y1Oax*Z0&*{WSRsTCDFzIV#jQ!Bd3vluox28 z9Ov~JWFM^815&Ryy1EoEOuc_zd1zVeMuq(zIKz}oOirF227XFsXfB33HZnx!FKC=y z1VjR7))&rG4E7!3GqQzzSVrtLDG_oW#t@;YY9(qNE%c77EL>q4s%5b(5dY&s$ z%ck2mrKUmT4o1=U@t}BZ-`^dn3YS^>2m0C5*UKw2#4lsSUpZPaRwaU?LZ}IhxDd?& zw9JBME)I_gY61+?=$(UPU?jc!>H;`62a&)Yl?KLfR6D#Prw@`bGE9B(iTd(K77?FR zu-HT@ANhlR?NUJxx+b*5(bBH|#%nHUlKFJS>>AEgaf34vPg>)eq+@TkoOBv}RmCq< zp>wY<5ImXpm*I?x zC?Y|bE`A~y$rt=Shs{wT>5Pz1O!jWlXCq6k_hQA_%&X$uYa6;Azz2N<-M}sJ^i%;fo z)JmiTe+vk53OJ%)4i_JeY@-Nvf|3vX1SCcuyJ)W*!G*bk<8p-QH>?REB;49E3!k`h zaBE8zzH#L+*+f4zT}wC`1fYI!M8ro`*-68Pi|_bRR1tCFYLIAeY(z_()7ONS&ZegO z5sRZ{x1i^@WqcBrD*JP1hw>XR8CDU|Cr=5XvkNC3%X%v?3Lldof*+axPQn*e_kX&D+ zR*KKK1WkdWQE-P&ERrnojgVpDGmelTnlf!tQ+TV>#0O3jn3PY;5-OLfhK|iC5=@G6 zzKmlEacmnRf%-zJ7$UxtWEdr4-#}F5N&-jqrv%}*75IgV9pIl(hhu3EeUd1erVTaw zxFJ>M3kw0Gk5FAWR{Utm%9+Y`l@4SK*AkVRXNYf+%%hGvwea)s}C;>USgk&|cOykZP#9oY`O z6w_HUK(A&AAz2Qil_;E-g~56FdltNTI6q5pQXW_S4dR=5BF*aB*=Xq`!ly*gRE%Uh z(qouW3<+JRyyT7Z#IKZxqXdcQr%iD*&6D|ru1{8vRlWzv6BO z^e5<>zHGl*On(r#S4dDlMX;rrexx7jz+)htc#B!XPa!8qchIR6VqvuLpVNnn_w3;` zZQz6g!QbNIrMDaUEtIg4Eg@8Lr52qoexaYvIpP!LW0A!0)#8^Q2qRm3x-JIpYaYu% z!d9%-b==oHPlx8kKhdGt3~{PEd5BgF72l`}psz!sd=irL{-y}>sXRZ#S6Bh}I<%BeyjBK_UmNkmBqY`& z7(mNBB%-ngiA+v=KN|JDHqqN~pEdV7=DBG;{*a%8Db{Jg{Z0YPU9U_wT{2Dw?rNd( zj|Ou7U&ImO*yBT2M115(m;KIB9;JXRCZ9k@Sw_^Fsj#U1ZkecFgr!On17)0Y%?UH0 zDr_u~B(r%HAsV%{IXfP3kb217g&B9Pbl$J-`hGy_{bTOF44_3KOA1Ia=L_!`pgDyT zY`-~*Z;+$TZm%58r{+xYJL;Ykyv^*7EXM6EQNd1Eh`|ct$A_-DMYydcAX*hZa*@%! z#XiK^Ryjz%YE@p$%AdGGxV43qKW61y&C0vX$~>tYUDt*O9SCok5T2VRWDJW)!h&@4 zxJ_#7sdsGIs+C&w^dYCxZnKgw&PvtURwTjOq*j8|vr__CYR5ioc-X0Rz^pZ6nySL4 z>JDv5snb#`Yqe98{#sN7u1sMm`U?pgO&Ll#=WT-I0R!m1gRS zNyOyO_=&E%IN+X(%aTiVkLJbWM|O$U2DV1HsMt@Ss#ah2AA4*Hp?(e?|j)IzdM`XQN#&IDJ_<=R|A6>TK0&^q`n z6*;`t>GysM)8*r^CqWmS3@rz9G!obSiLqkfI&Gnz0o78rLe0Q|M3g7hWm<%Y9Z1a5 zGcZddra`{=DG?9@bF}yHJt2yA!a*WjOWe3o>%cdvWi3~Mn6L5JsSKcw%RD zRQI6maOL^@pwD zz^z)xIMlS$UsJOZm$^1LV@Wr&lH0_m=vK>lNJO=P=BBGi6AYM|J0S0{&iD$`leSpUCl8HT;zN8Xe~+Q4lUT%sn9Qf!QI?>W`L=nHGPJli z)4Ef?R3Le*$B`3N!eF$A0a3xHwG8#j7XN_3k}Y*Yp+q*UNPu&L$85q zR7J^2X~&tJbZvCdUPrW-3={8(0xj=&o&#C@MSlmh>=xgEVSf<5SG$OB?-QS#B|hbk z!e`=LMxKaGd3I3=z+eX}>4s~Q)6{Eh>h>Yxy?%&MDVsT}xS8{X549DzJrUPVz^7UV z7A5B4Q>_|{H~^n&TzbagN{B9z*+sZ6kx8$`GqFb_l^%5->Z7z7`o$>g;@tC`)9y~T z%V2&O>=k1ijwK3$i?bLMiet^`ebEHh){G$xtyDM0U`l> z#hRl15jUWNqRc0J)=tA>bWFmI=CN3eYJA*Wj>VWOj34s}v{Kr*bq|*J4dDq-f2#g0 zOO@c+#zhhqyg0dB!W5oJDVBJ0B*=aJX(RbS5iB}7#OKc^=S%)ECh2I!c=5?Wo>|E( zv)gw%-QMo9#<80IT7EIS0SV&c=3FdBf8Y(fXmc&s&FjK=d^J5REuXA!Yq zpMfXA^ctitKD8@mOHh%X)#}+R^Z9%OE@~f#M7!g1`i3(s&sxKx4cI4PE{gAuT*noJ z)~;)dA=P-cajC3SYpX(>g{2ORPaElN^Xr8rSa~#EXRxKdIK>X^1CJMv;Gs00XSDm0 zA2?Rm@mwsILyJ3_dH(LeT-?zd5bY265FHOo7>)GMVu0{HI`Do|rpYJYrAIKIe`d#%56sF$MTO9K^NUABd#{t^aDXdKOtjqMVy=a0m83Cag5$*JXAU9sKi?5)ZT zZLb(rw90!ORdcGujop{1c;A81+I@)~sS-b`aJ^r(Qt^QU<1Q=GZk707%8p2ugx?%= z@(@A68-n6oIbM89_o+5kn5+E*4_Pq2fWv~_(U?zSympoNxWunMvb4)SqQM={HY#EG z#mW3?8=Q&CJCyRmvVjJcgo9ZhzeG`h~L?2LcyVjT~KgDt7=M>xRfQ(n_!m>!8A6$ zNqzkbOKO|>Td^8`E;+ta@T!I&#^o>#~bln-Gi4s)w+&{ z8pjGo72|Yu5Wedn2N%|L+}jx7j;6M;OoD$jiY5CYDlRcj0X>Qc2D34FEKX)np+~Uw zh=tA!2f2pTDa$AWyPYNbgQssg z(|a+sl3H&!OR277x9aKRp1Hb?=NrfB9&GfGYgno4c#1tVjv7W|naUjg#|lCEYQgle zNR&@xf5T|r1LP@}@VpA@&7tLqA5D9p^Td3k@e#qAUU?~!zS2XX%Y)Y%i*+5#JrU@6 zk~n<~K5nEkK)b_@+dUn0l*A76&15X~FioyUu%MYiGJB9GWqiEW6Ed?q={oi_<|=V= zt|v#%7^Ca>rZJxaizkPgHC@M7jrlAfxWPlZ$5&r8a++^aMOfvt#$0o3*7sglkY&}| zP@@0~HuTQ3UahOiW%Ez<&XEGvd(tklsW*=)f?ivbrF-yPZ@cx!Sp}QbGpjsWV>Pu& zZ!;yRr<(Gq12Q-FCOyOn==$n<>e_hz>}jT#Gc($H1lLnJXujpLQyVXj6G*miy@ybq zZsbYH!Y^dRxO4@N)^0J6@Ru@jBy7HWxHcfTv2hlKw)Jj&>FK}?<^+WBwWkB~&4=;W z;~}eR;7{|+EpsrVRh^l*tahpH!DYQEoGLN;KutifrEw|S(w=l_cyi+n#*+$ z-d7`^&GxySbPu+9A~IChaeHGfUZUuw^~V#Q4#B3zcJbp0Pe|e;@Vtpi0oHgr9>z0# z(vHP?PY3h}9&21`V7;e5HZ-;if6=5w11y&@K6Je&et5n$kQ`eMPYxQ(884uQ>*+Yd ztaQOT$uo7TMjyNr&y+Ckk~cVj`#h`p{lmI)EeFe`18>L6v0O^=cD!A%Tw@t6?V@JM zWDnm_nn_aHdfkJ&g-Ov!kKT-v9(|~Lu&Jq7ar#v0Vyzz0J$Sx}8|QI7WUlW`O>qg! z6xI_wuD9wQY-wV30(z9C&@-faa9>8`{0m7XYB^n3DB9Q&FBeRs&DbOOM@FgH%r@1f z_EeYt$>sEYTyd<=xG_&U%&uMMDP=2yZyN*I*b`TqK8Wk2gYXuL8sN9<%EgDPBqZ1u z&!}Sl!YtVFoXVff-x5R(ui`vTO9{9wT8H zgXL;9XX9f}2NpM$8~B%J1^&^Pi;q1KEN;xDaZ@`9J3Jk@gAHu+RLfx62048H%9v{o z?uy#==5W82ktfy$zo#}JTG2k-(U>V=10Q$_(AL;4TH;6gY#e`(2j+Iqcp1zdZ6_J{ zBX)W^@CS-rJW`FVtoLbr3nj{4j6eNRogP;RN4z6mUQQgYl7$wT+#4qao-58W-yaX? z9wW7m%JFGDjzuz8Z9(jg7Yl`=#as(1sQ5VEo|?N`Bz7itn#<-4%$5#Di1?J#gRx!0 zXvv*x;H!8!7Dyh^Ss)S8<1ZC1H;K|ueH|}HQ+Y%cTPTt8Q%o8#244`ab}UybzKfUh zBR*6AuES^XPTDwbmJYKR1<2Xb!CgZynFr)%2}`piWUYi{o9@Amj1Uf9l1V|lwQs~Z zPZrnm(D@|8J{fM|Ggn=X6cE!zwM>8I5qy?G1sq@9RLjHU3+MR;yU170tNFFLOr8gK zDXZ?u2+3?+H}Gc7b}>LnAD$JYbyebHh9BSARLF!Si6_;1I~E%}9l&Zl*4S>~1yBF` z@fa812G2sQZ_LF8PoDK}gvb43jbj-Dtet}AJRN8(XU!)X+wq*I?E*Z(W%;xxrj}(` zj44>l6(?FDOY_Y+YNbEQmMO7q_H>NKYV&D0pJXIEv7&c`SxE8fjO|t^fbpTOK^>aM>WM) zG;^Dr}#hB^Zly$*4kY0K`$r(eH5B<=}Qi36qhyeYDB!FFEq1ixC^92 zyc7WwjUhf&(#X6fR4fivzKMo;+zuQ8dUFuDBy zj>%#(mYCIz@Uts^RXQ>xbu84fo4(@bTUcKnYjuV?l!+~m%?5FaPovDlr5Pm;Nu z5E&zX9fq6TA;IU#0CmnIUkm551yJB0!k6Y4KV^^$QyTXl|(mL>YtQ|L{ZAP!v zV=&7dxlr&`a=Q+!j1`MgdHpLbG7P;#;z!*UmHXAtRhTzI8Gy?^9fq0!dWW>*e|qRq z7^~5ki}T|c8X1YtT&pp+r5v6R8jBHLgaHw`h7#fF{6i-sr9GAs*=c1jE6u&|f(h)6 z;FgwLfCt{}(GoVk6D4CYW@rrVRb%$gwAE;jl^b}-_!ciWl#4bH@2PAQlmv$lM=W2$ zI3f?X#LBTNErN}%JUrQwiv^9dVesk9U%w!ETfT_ zrC@Q9gtdMLWVD2Z7~DhbD`>?ZgDVv(-=(d_yjXy!?83_p0ntvxp0o}L;>bL7G?b&& zh~R`gROI68_$;&WSyI3>R`E)~90{>4@yQw)9l_p)ay(!}1m(1Rmr4nPACRmRdT#j) zT-lO&A-;~4<60v!48O}mgm%grImWptf z5y2}Bne;q-$SB~rVx`e>;eB|mA)w{(H(qPV#oV+Ud>_ljN~3ic`GOuDn87F`9}n2& zN`8HjP_$$5kkRq5j21lCP>zR;bp**d+l-eRaN-;v}iaNt*!)HbMp+Rn-v`~Oxuc|o{fG%vRKV)Q1Dvg zJd*E66tHGSC6Ru61#=~Yy{gs0RyWJFK^)SVV&H;Y!Oga7soN991U?8d2tD&$;q?YmgUg1`+F$Arim9! z6h8yaL+}u{6ZN)oTrFy&`1vV$L<(5QB3Hfw!4){PUfCJV)SUVLr*borBX2i}!JByK-dei7YvtuSN z^jb~z#A}wHaFO`$E?OmZOptr5YD3ECLe?&cqiqZevz=<+yG;5|jjw2fm{E771V_pB zRAIeb#J>UCaiMLHQ|*2_wk*+m39fA!D^ynW6zoyqPj_o+E|n15HP|WsApIQZV>w64 zXwkjg^iNdbg*iep1ic!~fskyH;OQ?8dO@hWqzZ9d0j4`XDy|b8h@0q(A{FA5p%S!x zNCu?7zht%;lp*57(c?wsXcc3K1m&_C9NC{dB-L`ua8ah#*F<j?VxT3i9m71Si^Z#1>1Zl)oyy-?txS=i z)JvJl-n)^B+omzSgf)yiobu_oOY6HtP#2IBq)e#H^$D%HB?D?Qn|o)A{vi5rvog!=_AG34|7WLzbj@k>&Ca*g<9ACFi%-}e*)AG=Fs!W2=& zTFR!v!=nS*W;6z*S_UyL9-hspiz>F;Ct~YCeB2VRCGt6_f>qjP@yV0o73#K;oM$hf9jS_YwZ7>kzj6^P z9O^*+kz=h)JVE-v%oYZMQ$Ivcp`(XhlPiN{wpQ4A3b_id_n-_JUQtmooLSZ}qg|H$ zPK<5h@YDlNaX{0_qE0qaRtzc~)Zhx5EEpA8SA>=*Jg}eYg&ocwyOn8QR_b?FreC?;!ZNiJ;8M zmNU;365cTsi~lG=xk-ZL zbyntD{MOaVPQFWo?{*M=$6X*NNRX#y{d(IIWx%NpZf{$-y~R`(%7zyd7}etCX7=%j zLVBxUdLVfk(Gv7%%Myib&aCy~$8Gg8RMEkmZ)R6+lg2(SZRX|#bX zNT?2cqcLxJQ&b@1F)K;3tGu+(>h$JkH$_p*h%zOV_h zTAtv?gf)$VUG4%oO@iw5Gk6yzCI#x*L$Bc2R?@PTdA8@;4!;Bbd&|p*tRcQj@VLSC z1WkV?bA?=|74Tvh!*`Uu5@rr}>d#~9O<62+it5pjDP>Y7eq-OQCVlCdBX!Ez+$&6> zrkrL5*e{Y?HZ>}q#V2h+B5O=nhzm`yYEU_Xv_Ed-5n~Khj#$ZDUc#+j zq<$fhD_;58Zq8NcH1`9&CH9GLp!`^bCtBv=FI-vp&Q&U5%xh_vk}ivENDieNuabxI zghH23UZrGa{^10lPG5`ZYA1(D><#E|EEgol;^$?QVu{)RT#rP#m?qn$y!g?4p&&~9}G z?FKgo?aSod(GBvneM#II%p^1S47#^dh1KVxH(%bq03oX>S;t*5P8SVvj;=~Sh4 z?i@UwBu!H=HZpon@MMxs8dOTCH(t?>?SQV%i2#=$NtOXNW#GAFuGCq#H(|3o2aj28 z1qCmsbNoRp={P{T> zx+z&K_{u#V3zAvfZT#?+yOg{r3mF%X*#6u^5nN6GLA=K|Gn<_^KSB}YE1SnMgG_?1 zKKKp}XVP}AgZoS|=l36iSJgr3Gw`g|fwhSMR%s!;nh2Pu{z{F1kU&-Ja zY*i$ZlZ-j~3Y7!JPjVwjFA(3KMxQuL@x#zcC5YzrK&en;!K{#%HD>8OafP&!vnx}F z=T~@J!Q+~`TVK&G<|p#PU*W^1OetY95-j1T1QMAxSuY&xbm(p|WypQv73@qX-O63s zw|FnH6m41vI}%*RUcnt&PSFCHFZB|BX2^sg@|J|@5aknmkl1Y=UMDKbLLR|Byb2U$ zarVq^&kFihIPC1qzc_e2WDV>b!9Uf&`nBWnfYyOGR8}#s;C?Nqs6onv$|93drF*Vw zO_stP!%GQ<<@Tc1?|(T&_j-7U`s_oru*^YYlZi%=_=@O`MV3PGo3}PH;8+{*qXe$W zCH4Kpvzf8GJ~$T!Y@rj4{+}cQn)W9doqMsu^ zX~rz2{`Qk@qf@6t%fer`@*f8z)u3`&Pz{QfMVANhN=ZEhPW;pu zvA2bwVd){Cm*GvlKXaLAhnYv*%)dL6|8r{cIhl3ELn#Ghv|>h*Ou4FOSKhl~)Sd{9si zQ&1^_Ahw$eU!SY@!o$CsOF^C8HMPxU8LsuPYeA=LUr`dh9GAF6ObB+XYE2TlLyTGP$M8H}p9KV0Bl3 zIEub>PQA&8d{b%goo~%ukyKF*JUgrriycx?XM?OrJki*7#4vcBHPU4gH1M~j_JHLJ zdfV01fK4;26$t*4B~(ceAj3#0DR3aY_)8Wou>1Su0i|7xzQ%9+C;vyUO2Nvb$8)1> zsUK@Ov-K3*nMTFHS!5>MtCe7`fL!a@l`6A5EsuuMv1U*)k-D>2srXs_{W``S-Q6pP z5AW8Mt3z7L-e(%1+w5XH>f*Wwcbdhv+r_+{=4v%A793enY}T3Ii`RAa6nw8hUuV|& z)~++KbHM_cPaLl8wOSpZ*i$#p^b}#$u*_%Wuj>LPDkoz`r}*V!MVXiwi`_GDTdx&n z2R>1)+-A12v#wlaNHBh{W`49>U}Y3H7Jz}aeleJ*4(=SZw3A-0Zmc9L#CgLjo)r>4 zU#3XeCHLVaSB{#|l@gTCNk_S24LT&v?zLLNL~(cBBNA2u;Uh8TH~CE=#v}Or$jw3@ zn4b8!j(SLs;O1T-6VBecJruf>NLMvL*L0c~(nu zSJ3My8=E2#}l`2;7Nu1m~Zj%D+iYukzEy5^f?21Rbs<{_Rf!<5mNoTVg zUG;$m9+B}jmpZe?!R8-E-(P2A++ly$F_)Try(iXcZB*j!X&$Q*(Df8t3sOphY2A8> z`k)%U&UwwV51SICT8@5fL#@@a%GUD*4+>Sh)Jw;5T`tWvMEftYp4HXYR#jhI*KLxoZeIRI(zEGi8nbRH zIElS3jMrCAy!7I3iddC@D+ijHd8?ax#AWEj`smcEN!?}&yKs8drIAXNWy$SwO}aE% zUCE3~{2iS-ZDOtc#2imfG4p15&E=}CoObENNp_iNwfPe+my?zYt}dyY+)Ul1hSF-| z(#raJ6RPfVS)J!6kIPk69jT0kt0&f1%~0^2R}-g3PWyvZXnOrcc8;-&YbQ>dT&374XM|sDR^Epqlz)+A{$`g45!KGXu(_} zKKwnPEL1-Et8xruj(DHoc&bFtrQNuGE2&2Hcly336-ok7+0eMZ>J59_cZ(( zwLgZ0Hm*K`tCfL?j!GK7O9b>jn5Px!8ulgj=zVaN7Sc7r-bArk)_SVc`(Um{0V~MQ z|4sx7!Jj@PiI*=Wkx*WAF^|^o7wUl~&ys1Cojl}0xs0HyzXqD6{(*v7(O%iBv6crm1 zPID)l6(>^U7Qb9b%}a9t2)!cIVOf@PL2{9l>6rre8#0?GdJ_|P-f5e`T`e}ibQJVm zQXzi1THRg1B)wi)BxSEk*fvSebP6+P8BK&iLaxs;A@`zz@QDg#X-zuzW!Fr*1-#A? zUm|{Kph?ykBD~7l$2`#RaLIm2<22V)f1=3 zn)fh~SEk^pmPKZd3-}iCrS@uQYjq&c;t9-)7&)YK#4EQ6c-yB+*;_@8)VUJ;gXAfL zY?&}9Ttx$oFz4G^UTw1+fD4s@m#r@ITS=;wW2Bn$COHcy55|rZgqyADSS7x*izbKxU2$UGUE-G;lwXAJB^f2NwG;M>*8djj5ak3&W}rpjFaH?GE|NiW;!y^w3KQ3 z#k^-KUHL~d#nCn^`3ag9n#aVCbo)n-emr2}kR7g%_>;N6nRmg-7$t`Fpm)WRxXl=y;XAG{? zOf}6aDU(r3@}i-i@Jn_IXI49I-)U0E#Vy7%$~06eaJtVc5-$~7)V}zIt1G-#jI*it zpwn75xrm|SyI&9`$9=YxOqN8Zz5O@b=%DZq&7}AB5;T5SBw7_`*U1^P<0hxz%5Dp) z_3NC@i=5JrE02xE%G|9TcfjTc+EOKydyFbkCR!d_olWXxj8Jz9^)uJY%$psEFIb5~ zj8&LH`DX|-8W?+p$syliP{y%sf=EDoIIfh+5o(RSf01EQLUo^UnoJx{_i;!b66IL} z$rHqx7mT~cd-f0+hx8l?4nt)C$3!qW07Ql%BQy$;C^B1x?t#IZi%y#%+V6?&5UO?0 zl%VB7OP`z|sw*qbXA6BwhyKX~BxorQprsuKl_P3i>LqxNl!)&>)Ri|PQQj=`(Or(D z!X-}U589pYBUN$(Ig)P@0X>b*ZntPEo&e2D#m5s`PZt9_6Yb*LL;`l3Hdp+N8fT@A ziCp}hmP}|2nW~kro`w)}Jgl&jtGs8-5HD*3}=jIlY$uyI-ih4C3f) zMA@5Lg`UlxkT7_|clIeVRf<)NWr-L(A;^p{uUVR4iN@?9+2VVZZR|*7{)aZ^E6l!5 zL`C}>f}QNVV5i0_do|paXcr`@_brpz=KqAh!{iS)CFqc8^UiuY0-+&tlG4%`5ec&7 zjam+!$G%Dgkl3xK;TEk`!kJyycH5oK^xkMWhZw7HpK=u(!jsfkBY52v65h0c^bW4^ z#&&AP8*+u~yjLme0vsT`oER&<==DZZIgdS-BPeVt60ca_I4-Gk%_zZw#Rsk?>wgbPi$jk7#-2 ze10iGB~zM#$F%Y4#p_%E_=i@&uW#9d@_-r?hi6>w49G*~fP6&rgA5udMZDr`K#`1= zv2cf&(S-(?nQGU0B_ToHY&TC5JmxJH$90bbZKDZIjC%Z>v}i{ODHmqC&Efq*<*z_A zAU-+gWGSi<@{QSomg11`K1B{3nv0PZVM>FV0Ma5!CX!@&8^1B8P_*MLq96k#h*&-j zYej8fG-w~A5JHJusZR) zc#W*TN2_TWm~%ZcB0Td(h!1^QM=-0-m(;7NbWuTtR3XwsqZL8y#Xb!d^RjO`3K>ie zbCV1+ov$e>ydpm1zR{ybwu~HEcteqVq?oc3hskIqUsO=ZsO0wnOJ&yPAU_)zUaTPf)EUVW1RU$4Ou&hT=0- zG6oJ;PQ6TESsoSCq*{aBCxU5#33=#cjCUo+HyRytPqZf zFj1@0+O^~lA#*xLF&_r@(on6ZpD?QK@B`50;n!f zbl}dLE@e#pDLy?zkQN&*Ws^C~dQVKx(lgL|1-VQ)O~%Qor^u;tlKAwVGC+Jndtz|7 zl+j(rmyMcep`L-mS5W(zq-!vEal3(*-63di6plFa)S{7r9QuM3iLXIUQfzsNk_yh2 zaXdT4I7WP9M;942qY8`iM-`16ty~IbNLlpOW@ggmZ5geW^8&t4s#vh3i^`=iZKw>9URb z2S~*!JF9Na+kQnOM3!}w?z+BXB5%ZMECdqPd zMzY*EMLDg1C`I&0@hbsmic0S_p%cgF$&KQ>PrkqeM>eV0=wP@Erq9eO8Nw97Bp~%_ zCw?zp**skQ6S#5Z1gRpocWa^&;YDH~4*N)V6Pv5;Y2axx$yk@*Eo<6DJVPE_*9<(B*sb>z zZMgYHu9Bc!N9wF=cp{NvMoUeGSMP~y5Sd8ipGxeZd49$Lr$w7VS7lgaeS%rav=hmz zhKcD_ctd=;hJDRldDR5@RScl%u1xQVZCa_#Ozha~jO=D>WI6X$E!h*~L-A?-_D$f_ zP+Yp=LCKL4x(f0FQic-q($Nky1*j$6t#Y3A6fAL9iOsK#`oA z)#GQ$EaD$@m&O&o}wjHrao#G!_sfG1hs5*o_KknjbX{%&6zk;Em3W}xda5KQc&uNn{ZIq@J%!Qd$i+m9aK=imuYcW^I@}# zg4eA{e;_sK9GZ3PlHlp)fRwRMf;HxwFVq`HRAImcLJ~&Zp(pl$SDm#nTQ_$d)jIcx z|15zg?;P=AMm~DvVMZ=`q>jjAFLsf$9>sD`HV26HGl=OLo@_QZQBX;+rl4tB zv9)?^1k;3}O5K+_WBvW&r3~4;Uhk<5;YULIxhcvP1g-j9MN@q;gond0UBjLxwWdHv4jvX*?W?b)ytN9A6n*(AXxSgF9T(6s=AxmRgb-HZ_JCnNa>4aGEZ+lr93tgq~CJeiNtS4qZ*f zhfQiKmg;IM-fzn1;4IgFF%_RQ{pM8MqL=C#b~PO`74KV9vGmZX*lAA1ZHG?9yT6!< z9owC$xW@D;B!@I8XI!Bq#AnnOk{{&dvebd{<~+Lod&MWlNbz1JvuOdd)de3opl-52 z)hio{&p25njWxze@RWHcNDVIr@lx>Vl;F{aiak3V7kEsP4;?X#vOhIm1B+B#Vxa^p)G0ng$|%i+ zkCtuH&k>+@I#510p(sxNZ{o*uu7!dpTLMyoOUs2f&di|TN7kG?yHB!B_WZ~^3E~CU zIy}IDbkAx^1Ie2#d0#DCE9t~2$7=2{rpt4&mvx#Mob%Ho8D@c!ZgUXC7 z1`gTnH+5~l@Dr!~Thf#SyPOt^rSVR|zl7M+nleOr+hBP-Ab3}p>;+3zW~v}hjCUn( zumrD?I;oKoG&%bJ!d(vRb`!QU2TtGGTgnBmx^nP{5?y~a3IB8*+P^fSblRaaAatjN zn_ql_rnpo|Kcq~)Gj}^^Y%$R&DlE!omJM8)7Q&CQT)~wJ?zkc;nZg5MUo0TFCQWs8 zPmIE(>gY9T?C5^g(Yh`jo%yNL!rNvG7n)}lt+Wi}xK=hM`zAd4_Y*R+Hq*?Y?K5|N|sJw$7fC}HyDa@shGfPw|wuF>l)sRmFqomPg+Ej zx~iePeu7MSSb}Jwj{2Ch;1NWv?Q{jzmu}*T4emuzR6oNEPU~HBFM3iE?NarLv&&z13Ncz44SYU#F| zX&qOc+!*`CDZ(+h(omFs6MM{~^ocZ{C!1nQ=&8h$X&t(TXJRHt7FHZtSZGt|$>Aga z^jfT39k^Nn)~9vw$Ylz+Lu&BkF^vU14Xo!FV?!(|+BrO|eMDoHVe(NwH5|f6%`p@g zw!eXK6V73Mxe@wIG3Co+>b>3*&!&}rje<>E1k5lZR2v$IMd@~4 zn?DLY^H7^B$OtJ7!+CP*STOVmRol@wHcEhkamsM%MS0e!k<$g<5W}#&f{PVPo1?-% zo8}4ik4%Uj5icT93FGe$aoO>`)43bXyb8jMoacyNTEr)%LaxxDI=W1$&3GUdDQ&TD zKhuh$*Bffv{k}ka&IiGGiWOAp_zqR0@%{)?mxrwl$~FH!V{?soF~lT0Q>Y^-MLeK# zRF}}SZy=G6dm5-PV-C0-1}!${N^l~QorTasZG{Xe*Umzs6FnlBQC?Aq9w8*kOGk|; zl0qtd4Jtp>&E)h(VVEQu*K?<|(ANPOF)720sDWg32O`Y!N9BnRX{FpsB6E6+3- z%Zle37{ZB-#x7+=R%ncX9zx?Hs*y(sQEBSLCFSTFxo`w73E;R08jJPA@WqUP-V;lE zgm}LfjF5g9-k*`Hw2rvD2jPw34lK_{c8vNgZs4FiD@wQ49lFIYNP>)}bqKa~ICJ@_ zHJ5LhIxN{s9_DT4Cw}>8MjShu*S1cpj^$BlBy8Tp^;6d`4AAn?VzWkjL&|iw75XZl_;H^i}h z=zDpb{$KcBUUccii(S9I6V`Oq>*hm!)zt1>EGw%gMI%+!-GQo#b^|8b9qj+}?YGg| z`fgzV2Y1ry|JO@sf9tl{y87Blyd2ln%`LGU+94N5>6U2@Cm(nhY}HidatW8q9yWfV zD`k{FJiJCWs=OnGKda0eWz$@)`uH?e({QCOmo;2np!1&3ORG#b(H@6*gQmM&U3^i~ zO;`#eG4CODE)(T*>KfRdF4skou;XuPKK}9=*q*<24Q#K}WvrK0RZowFCr-7zOM5A} z7twzbZ+?jZn@PR1pUm4{ z`P9?pvYt$gfAP+~`!!X}y!*9h*SlYP(m^(L_p7K!0^-oBG4FEstGMjDUpXXImv*`P zRb0w1_@dhA)D$wpX`NW_U_zMn(TN1#+vT#a|Lt-OtogPoRp3JFC$DzhVN($e2P^|e zy*^YhuO)u~kBqbaD#OG(lH%F%GTXARc$tyUR8#!h)v6E0ycV7{d|f9c5;i}5=W5f3 z;`)|=J_Nt-FLm;y8R4jF+WC0V)p3d?R+Y(lG(1p}qNkQ^O51SIqHh{zyZfdh9CxJN zU*+zr55+Yt%$%$V{_UD8US@UBbdwDk;3}m$x zx%S7ASlANBm#!Q+*>n$3DOfC_c!S%)@nbgy+BIVIlV#FR)2vQtPJvxkfrHA&!TLTk z_5EA*eKwu3AlX?wW$L8)nHp!;Lc3Fzs}NU^DHuMpym4n z8a4WjlHf^d+G!UuZd8(HP_!XGND#?RsdAhGT^2j z@InfTSs^LW(?uJCCluTLQj8n~d+BEy#p+Ib$_fpq%~n%8MaPfu9RYH4Uyo4w+JtzG z6Ngd1TO!&l_kJYWwRCerH}r6-FVOp@*WD(5W{)gU^;8UH8l69?XqsI_v6?BFs2`Y0 z%i0PtP@fAeBxTS;g8JS3rwrO=^Miz>%zSNxr0h8s5cJGZ|7Oct@uSChjyDC?$@8Sd zY&uD1X9@p&DZcNUC4r#2_^z?KTOn1#q;1-9$WjX7O-be%UO>L<3HNyMEtjeH zk@w`iWAuB)Gs#Dk>th+7bdRqWly}-Ly#snX;GeL-8x=BJR!Nm;CHrLlbz=OU?4{lt zt1R8LPf0>P+fiQEut?A0MTws_G2eLxZlvUbInB9z`4F|pdWPo1mb4DNHy&k{OKeH| zR{bugQRyXA>%H-CbFR)0tz0BmvocoxhZge)ylacS1&_vZ#jnkAb;FIB35HViK% z8MU}d%8389iLq1<2-@`y35)i(eSEuBDMKHTGE=aX*-}MqH2+t#QL0P>R!qc>qntH* zrJWUn(#4V_L!GB^*?+`kF9sGTd6|-W^@)2tDdC9ybo?$tBC5!?1=9692jmihT!Jf; zV@)4l{NNrh+F$o!GV`C{cOj{fI_JX09jS`zOqGuq6X|DhS#!Rw;U~w@GhXf2Te(=`uCma^4X7T8u_$tV)aNz^k#S%+{#~ zc`$9A_~cRBYhY%UQ~Ue0z6^r!DYvVUXVT?^f|IL`&~$>BmA;&4A)Q2KGId=ShYZdS|LwW#y9(oV=uVvfwy+{5OKLFw$NEL-t7!iLEBovmB^DNtN>9&Qob z%BeS72FfU^83wD^5$31x3*EZ%>2}3Tb^S)s`O%D|q8}ZVw_Z%2B~I`aW4#8H2&ybNpsv z#n?*-CX7`J41>D99M4!5O~ta5k%uc2%;Om>i|NFZv5+bKZk16J8J2+Rv4X?L3#vO+ zKzW_i;q!(}n?-P)Y@wo5411+Yz7W6G%j6#_x_o5TJZ+BqAUBy~#~3gqRl81JW)2>| zXeaT=H{(A4=P;@VZg>9|>VZko>iWu9cT#r!Zzuw4YooQ@3HOxrx)avp)lLBAuhkG$ zw!mIndC{enlj<+6s_#zwkSaEDQl+aqS={OeB_FrTMcnyQbGaJ3$eUVMdDD3a*IqO! zKR^F;tAg1e@lL+L>N^9zQ^UNjuLB@Nb3Sb zD7o~|cGz>NVVS$Hlxbov0@qM$jx{XrD%uQ4y}zgH`@+=w2i$$dYcKkW)cc3jd$$RH zX6pT;>OIW&ZK?NbyT0F$dcU4{${-acR3_(0nG|=ydzgdwr%DpB>~}@n6;!!BX7A>< zRLRfHlJst>lYTbpu2URPSD8Lw6hQ_S$!HwjpWqPPLw|jq)Kpp~&f>0gcFB%Z^_#8g zUkGWjpQa73Zs4)xBf5s?-33LuAy}7GN6a(sP>~eUUx$HO+A;h26Un7E+5_@SIdhab z7i)cg9qBzY^?ikEc8QQlrcWky<8*>jx9eyTiX_6ocj9t$a<@P$Q0~;Uxu|?{eu@MX z8~%l4CA7SWRR0QEwv+XS)?YWUP$i(7qeyxksnc#(j-HPBOn1e{Z``diTeP!)4pc>X z+?=`(iRiSh7R?=}I$e5B1xXk_F(!&%&Xb@tDg#|mCXSGxd`KtefrOIx1Cox!J$c9JMY;xF-yT+>AIye#71@O3Ql6WMSF_(j*KM5D}!|n z3*8}(hOI6haJtjpOvVpA_=g++x$Ukf9PjK4^k+(lCDWQ{63 z!vVNRRWZtBia8dSCyG^EqmRR3hRA-e^%t*{NeLIaQp{IL@MhiMz{Tl`BX~h;CRT9aR_Hx&pji$2-_@Z1sGQ>HdP=>&mr;EI=yU%n zGz$16$SG$gji7<1J+kb5TZ$_za5{1uN9LD@R$J=(a(0v{Y7MMNY|%CRQ!6Oa4Lq2j z5(zWiT;MNQvou^cuu4q{V?#BjV`G;dNk+MPUviIUJdQY-nJWUN_U?O-&Cmf`eDV%6 zSBQZtwGcYolyY!ol2;UKf*%sRy6`da%U#a08sR{BoSmUyto1u!bBHrjpVwPD2ctrK zXTw;5Sos7xii%h669&{JJ9PusBr56qq~#Iyn-W=eC%2KjL`=juK1sySEY2Dz7BX3B0xx7jQ?UCLyVghl&3;%ruJa+TefOZf|T zNZ?tmygZGw6mhAOGnKFxj$+y@!I635(+#vHD>*I)+<>EWLeuCUY0*fb-i%55l$7VOv26>q- zlXQ<6*696yYZcXcP7CQh@sDPn*_6d!K&id7cAV`Xx5^rOhT|IlvK5^b zB~F2-ZR{EH{5SCx8^_RNUr_>l@A@?%xQ2>dxsl6qGI{04s2dnT^#K2ron=dr1I}^U z*l8)Os1v0la-mA{gKe(OzalgDw2;j3@-5J<18F%Ur_)wCj;%p+bc9`C%MuPIREkwIYo#NkE z#f@VmTjmQLlj%S2H=Y}zBxAJX(}2!*Wk~QE4FfG%^h0l+B>??9(a1}OAraxxRc4?u zAI4lX%n}&P5rpZL;!|mFH%m}x`hG{j^U76}i=x{#%NASsKMq>AQ7cc==^ZVO0JcMA z^``_T7(AYvc?|zxmAh0Cv7i_wxGNd8WvIfxSm4}N?wU#^B{}wm0e`i>rynNFiBl#o zQ*B|3Su=n6Jt&K{BP}wkbcN-G4OTs zSaKw|5jk99x?Au?^HQzWM9TH|RLc%*osjY@xb)uX9&X^*aMx>RTX4sx;Hr_;jy$;wRRl(txK)K^MAXR>w-hR*|nB>C{_3DMyj41omx3GR#km*Za>Dks(XCSF`wT|YGSYer>tBw9Q4;;Q<|(=Qw{DLQrN#Zlj- z(Ti(`@=rICvL)bl^M%50w=!|0s&3N6+6X02x64Ji)=vu-pD47Z%++0mWtv{2wNodm zV$MTXVHsq_dT15)Z~3-uAGMglzNN%;6FxLcYlp(Z?Nxdza4(RgX zGk0Ib@zL3xdHk6-J-J3PnHdy2@VW-G^kf#?I3)bD~{WaG%y! zvGjw7Nl^Yr`pMCDXE!*duttfK%x4%>EYb|3cu&hBYV+P!^5C=@`;3}-p$%M#Y$d;} zc56$V)pps{3atK2a;j}t{dt)!)ykPl=wM8lU(nhzi**mGx@g&2bBK4$fQSQvS4vR- zM1GFhZW$fOfy8G?N}B2#FEi)uE8>=i>y}F!9nw6m8zs2caX(I8*xy4 z+HqFli|xYJDdLk4?Ng${`NorAql6WW^^xDKlb{whArwyT3W12tMyc+`56!t0?__1l z6x{Z!qW5bHX$~DGC8WVGCB}+Rw%P3usInomebsMeSTW|?>iD+bDp4kTQ^w%|Q&Mnj zdLC3`XyAE`UTlN8E^cL}exh-Qy03sCvmc7_h1A)HmFp54PWoZ;p(IqmvtJCqjc|oi zfJe4D@^(XOQw`nIT|D6@;FRGkeIWbaM+b#JwyG0`JcDYQ?BhBTSI#DSryXrQP(r5m*nsdfP+fT{e z)gdXR>C{~=6D78oW=pLP8gN^RTgYUqU%>nczCLwBRtozGgGZYawW|G?eBU@!5>RPo7jrM~hj!xFU=exX0FddY-Ke#$7Q-%gtv!R(Y0^K?KA zQ=^P0xByzH5RHMt^P3PapDpfMEmOx!mJ@d`6o|O zEhhfu3#4%PaPcBBtNeOY$EE00DUmr+IQ&Xsnh;vulEoqU2ZwP9rTDxbWDUtcJC#cztJ~`sYB~kRv zGZ4+!PUt*^l5LnqI^WIL%Y5frn+**P?CZ3?YB~DEcw787Z&es`3Me%=TQnZ9l@x8M zuXigxW3f!1BwnVGz{{Mrhg#;DuHFJqDHq1+W5kc?T#5yJ6tDbV{8BMQ(3nNXU@24c zqym_w*>XZMkjR&?7?{dn@Im6oW>>4=@su$#x{7QNeVTE6q4U{1~0jK!sr;6bA%>nBedT z8Uipvqpm?qE~W->WT_yUD`*Y~rkhtHUVVaig?)a`L*FBy+72KKJjUCGQ{f=ZlUAeo?fJi|5g+o!s#lMl#aPznlND!Bxtoe>@&* z>BNh!oZ+X*iE3$|HdIOu`E%OP(*#Yqc#NqXJvkC)9>9%>-O%Vz^C+z#X$8tke*V1C z62^dPX4o_sHa|{$x(6E*S-OV%w8;4t7#6{~l}L-gh@d(bJtH);e2YtR(Km_Utw3H zu_-FdD2k1Kxh~D zF`IQVK*N-RqC5t^CUMz~#yDEy%xlxMn?K^^@&#g`*UdZ zDc|0;$aoynwMY;Xl?IU>J*Z-Eh57TOQd>i`W41Lmicfr5mMIR=)k7#Zb|1FlMarlG?}T_~^W*yZZb-MFP?EDskavqzWGCihI=6m1w@cXfzg3|^tg9!7LG z?rtg8HEeUSA7yA!NRy+!za=15axf)!?6|r+6tF}KNu7!l_{fYjP%_O{7dazVaJzp> z@9A>8-EOi;-7qrKtE(nOBPtE@DW`SI#!Roj=#lrbau--k*+Uw;uj)Sb1hAuIr||-LiR=zvaPT4Nf<3tS`TnJ=)>PiO0lCFYb0= zFPwhSMU{#Z?#dsU$Z)*LA;#-XmwmVE(A3U{WRJF!HhT_9`7BnV=5Q+Iv-4`=)QFk# zSzQ0eJkR3#Ri0<{N~N|ww5j@EW_jK**Iqg47}i%d%FCp~D{Tg^aGw1cr&+#QCx~BG zvQUkb-6KIpT3S|*4XMH#U46x`S^mpAQtzKv?=ANR*R>Atm$+(a;X7eC84SN5ok3s} zX_ufmiXQzdDlnatJ|-i{Wg}5+>!>!Qz`W<`TTwCGhQA~A;Tsb^&dV2^$b=W;Fg3HH z0!J1wL4@D*f9thQd}t=q&8(y6&JvtPD`l(rwG)7jBBs-!>f{^oYa@ObBDHirpp_Oi zBy#iTL|T8SAUx^aoy;ES#N=1^=x7IWpggTlo$aCNFzpMtgktgi2Vu<+2Bhxnxz2^#A za?fVO=V1|J=LF8gmCKFc5|pqa{lEX22J&fRRWf|bJFRe$1NwUlbUn5vIjp$f{VmZF z-=FZ$WB?DiRmRMqjFzCBPF`ayGlWn;!`qAnT;|ThJ4vphyWP~kkTon5v^-+TgECSQ z4tF>6W~bq6$!ssdJE~Q3uUO`;mg8lrOlP`Tx;9~*1oyamAw@`mt`hvd==XwawfH2gYj}iu9I24t z$tt5Bnies4l-7og$$%vApu4~JdzZSqui{px^_5oZMYuur0$;h?2H}1+7_Y0rU;@zF zq)c9=V`k%6c$k!1IdJ+UTaD%-NuV*)UaK<~+rZQDtk!o4E;9ko)W#3Xm*WIKCGy3O zSz6wSgQZALleZl}QJHV=c-N8?lsDD&$X_M$1q;-@nK^b|ZYD=VauMbzeD}Ev4o%YS zz`!ncbBW+R0=Y|T%TZE~$qNl1&dkJHti^1Mqx&S?B@vs4{Rys$*;;{=eRN0??wPmQ z_~Bu3E2cBAftF%hb6R+Z1N2_Ar2k(<#+AAU4<^)d;mUbUTgb~` zuu@ruU(-Sq$(bghOdb@!EEq1QlAFDc*A0b#CkIpRT{GJp@K1o}2Pp&vpf|N+%tf`s zF5$s3)c!+j6M7i={zj>b`m*ht7KZ=Zpda$~w! znft=BL4q?F9+D|qF1bR>r@ZiP2R5mEomiXnT@|n873lPEx)FB5I*;JX<|qZi1P>Sb zUl>bOV6WUR2$HY{1tT_786#+($0IkN20zJ`fkk4}i}F5`1}S6omI@jfW)7}vxr53| zw~f0=dOl_Iw4YPuRLhYD>V86Gv(a_o>svNje#NOQWHD^)7qu% zJ~1$`fD~3Qz+ZC(14&Vma(0mvkqoL#VoDr5M+FvCOBn?woE0^2T7Ls)ZNb2Z;E0g2 zJsBu9pL^0jCWN|jL9YS{W7Jr9tC_?TB^)4cLdO ze3hS?nb?B}wqsx(GV^drKya^zJOy)1lnC<)9WQvjF;{~7RL~sOcuF}v&zmXu9+EO9 z1@}>09=MM+#LJh08SR>7sd2SCqc`Qw(<=DF?H0pCfRWqB%f~ zNiwP?v0lQ)RhJ1>Amix8#|R?2fM+Xm@Pzw4-N2?~zU~nNPr0kr6W8l}-Ge9S;dOwS zP0=_{!d)(l+_2I?aIcBrB^-BNb=OESg;T?vfw^2a86D<*qL>n85=)hhu}ozgkjurV zoq`#imVCp^89r(^t9d7g%Cbli$0xiJme;i{6X)9f!Ur7`ZuBSu@E=gsg7R&m#t|yU-$3^$Of^GK`k8xk!$S@Vw~0bQmUqd+6I6TWl)wox@^r;n`p`U2 zDJ0?&JlZ}rH$3bBSz!Tr3sbX5M{syGYM2woK<|ZQ4*7tL{)gBJ+g3aEUpMO;L&?@j z5KWc;7-ii~JV?$OWvvIFao&Y;zW9_!C@D@;l#-yeA9g(Afcw}4S6^7qr1!}zJAIG8 zut*p&R4=0ohn%dAuL;s6lMmq?ZNqat=D=H-W{wfrZR#6HtDP(|XO#<1$(hDgG>+N9 z582|UF#$=&I-y(<6!eaXZ;M*+*(g%UdIAe&Ah#*2Pc5b**!Pm!_m}cbte7|%{g_<0 zOBUU>#~swHoG&VIPV;V6bFKJPcuu{9u(~Bcu{tJ$uRUV~9^-vAn_Z!E#V0LPwcaCm zpe4#$23~ZnBR_T;UUbD+4=++vs#4?N8P|9f@iOX=yvc=Y9W=h`GD6IAzszKFcVhXtB#OyMWoZ+XI6Pj?8GVy zp_fv%N(#S1F*|-K68|27dxgc)7|#}=F~Ex=nzDF4LSI2eJ8OI^)Tf)AkAa5u&{t49 zpWwGHxmKcE(L2V3+GRt?OkUz4D2FNUKKNygOr@`0(q*D@z5h z%m}c~njY_&`A%e_gq8g#f{y9sxFJ1)XgRb}GYtzb80eVZDL!TG#}(-`!WDz*w&&rn z2v37Mc++p1GBU5BlfGDO=ABr88hBn~4F;atIy3``p% zc6OF~IfY_oXK5FFWn#Oe2bouLSt)E6%_zrnJtF8EVY*%?TZ?F?VbKg?OpgwH+9OAp z+N)=TIW}jM>mF?HK^I~4UCnw;#S>IU{Q&JWdQaRkgLesg1fO+D;L?ul4tn44fEVL% zPK(K6wY2kh275MxJzMmtnZU(L1Uz$#vo;=0H|ex-47JUiZ^c1n@0Xx)maIA2uG02` zRV59X6lR!r>)6!2Pa9I7yWab>BlY?h_daRIprw;CCTB-U;;%{9i=TG9=(KmTi6NsY zdGXWLBstAvfzT_pLbEC7lULdxIZw(ck-6WH+4O^KVgkiGZMrw$WgFsuar0A~Q~abFx`rOwzN3|Q1FaHUEr=Qh_f4;3moj$Q;fb|eAO^z| zbwS2>Q;e_c`m$HZeEFir?z5-_ac3f`tRaC)>eA29|1ZuHQ|hAC-RQz=%}Bj&zSv$8 z-F&)`n(c1hS4F#dNmrWRc>UWRHou(|$W*a+2k=C9z&g9D9^bv|w(i}wd1EVJ6)6`F`OPHeOa@9?mSY7Q{ zE^MS(2Udb3Rm;r;M7D|JkX%R6=%p;J3#9sm#b!av|izs?s6NxLnh0Z>rv|E}lb&b;XEZs_Io^eOxX(2T;1pHSt3GWy8d(`ipC$)2Fffq7XHW zcZa)}DM;l6VukwXMJ$o->M}qXU2RMmzxLNU!hXe?eN2y~ihnvJ>Rp;WWU&~>2`}k3 zsUAZy{)``8{UxYn?Wj)La_jDtC=yYJIKJsXJ?Jv|KkBSrVN~;% z?*07dkDa!zvTd7F_*Safmx%9H2}zmI0I&J>OOOFT$xepiId$H0>MUa&SuCqaM{hVf zPneVR2~U5^puLeN$Fu4Ve7rb0P^7#dvBbmcuyw(w^pBzo=c1!SeExiLzU1qgAfrDY z>vDAshvkTm4~vf;&o3WO&f?RKo-yk#Z%we(RUm%8eKWmOf=t#)o!KConQ_=D8yb!`ovtg}Mm7AU5dVL=A7?L6unl<(N%Bw+M!&{2NBYk$B~Jib)Uo}fIg9cyYF zDpKE{>GJ(w!hj~*gqJF_-iXS-r)7j!0`1+Cks_(N@>bvIK*O5hY#o7GQ%az^zKZoaTKE& z9dI8w;2tF|)YzZLT_T$mw?*GG%3pqgyl0sP*jfJ13-SDt4H`tUQJIB)A&$l;-g6ZQYO@3xa|cPpOqYq4EjdWcf&f)Os=t=Q(tY!A zdE$b0V5tYwu1YR&W$d5GSv&h0kF`NHf3+Xyu=n+Yk|3WJ@5q`?Z5oQdg z@yQ}WPc-BTs7ralp7O7`3t*+Ej{uGboGo(IujmMef%g?WeJXIH7m8sx$4T5 zX}tdh65UB#<#kLcN;1>jD13KzFGWnRs4li@kdx(@Il%^a{(`l z5#A?hITB=iJ{B_-veZcsf36hd$8;SZs*lTb4R<&nO9J>q44xbsX>dkFN-!ZH@V>_w z!URn>I3t2H1L&J4_&vpcV=T3Zyerm6Uz;OCLZ?U^!G3tfz`B-7TeI8tsk5ZNF_*L$ zA1QxcCby+StDwg&UB^{D`lpu58gT1yyZQxOF}jZDnzJ}#YcZbbTS+#9x{llXRF9VX z%sudVls6*kf}8tPQxVDHyQ2ZoO7KO3I*n{8<7gQ8!Cj5n$z0s1MR@m;S11#QC0L~E zc&cxx%Neai8$8>%MZ$s?Czn^G4rwL%e%d(JeAD%iKE|A{FVv+WUlftb2yX4O*_@@f zqHzfm%@uvBCCoEc@FvmxD}Hv+4AUZIquFYqiI(-}OA)?EWD=X3wCW-W zxvrgxEiS70Q5K;8K#_!{)kO3|J!UrF*0f#M@qxl;`pp{#6Sna?(i*($Hj)N)7)q-BD3Hl`?rt)!wxhNh|4ZNxvn9moh8Ui#I zh01YC2y~dqE6{bkdsvP+9?R|Vc<(UcP9 zSE)4HM>DeekNB+F-q(kqxe)fgo<^<3TJg*2WI0YS+0^@F9iu%2TjONi%gk~9S=u-( zxU8{Qa7_z4(J4HwviVwYd0h45XNi#9;IeqGuH%*?ZDPCoQsoF~8eM=tD!7%k=Y|34C=t>6ttMnB#|T(^F- zT!70=GICIxOEPk>xg9exmt;gc6{mIxGdR%Q{nB>vNsznz8}Umio@mbGq&$lV-(gMj zSYAef@mSMbiRUm^v_bS^pf-27oQ<+hLH=A?T6MurbBG1E$8!fu(75eqIbMSJLkPWd zc$q~dT{JgJP|jo1Pe}l2-_lgCQVkT*MSSRc_%NA^+ueC6Emj6{jxXI=gQ5+~d^&t;S<5mAnKaf_Q+r-%-=9Xb4XgoE1P|HHrdw z(G@|>c146}<_eO-Ov-$r$}6aRfV|?Dpf(VfwRB>&d#>P5<>p#y?>*im9q-qyH%aN; zy$ft&Kc_Z;^Ja;5681NBN*I@6JPtI^Qbt6zjAx=h4mQuiPOVg-KNAsx$8$|l!9h>} zHNKD_u4sw!J)7kz8RlsfL`SmHe0zTR7<0Yf=~3$)+Z)?;;7-qK60jYOOt??Ej4>%; zY9+(6QrGdo5#1et9H9T}n(N?=O7aDc2q~(Ji|37!u-c6Pvy#@cMG49RuDT-eO|IY~ znU%f^E2d>)+hKVWAH*k0S3HNiPS80$S8|0pJ+4^`zjsuWe729BDGs$3<0P01xi&TPe$T)HOl??Tk% z;;*?JbO~WfIm!d7X(mP;AxNrgxH)rkC8VT~`{S9iP5ibTJ)rkkD*u@9>^bSH3>`&M zcDDS3UY?Yl$B3%FSzq@nMbo2Aw62n%Y2%sE#2~#k80kXOT~K~jiLh@k--^L^4Xf&fM|={xW(GF6n|(6-lfl_ZeTrc`|vLu^-#Crvo z=R+B*xmpFU*IL}%gBj%J)DnB8HX!)QBz6ltb7i)6F1~8)!~%N4UEaiiHs*}sVQrvO zZxb(Otj7@%A**dBFe(yUTrB7p({=pA#(tZPeR~EuV#QVeli2_DAh-94Kl1YPs-=Pf ze1@?QeM`lM2@J1e1R^r&kxtq_M9vmyt92dkcuWaU0sC6W^r5a;{JgwF7yQsGLb+P7 zpsvz9QorrRwpBl`t0Qk_;HzE>&H6Xg6`O^=>BYfN7mi+E7Z9|YC)q#MU<^TfV<-N} z!FZ;TgOQXnYcSS(-qQ!-k;GW#2SA(*FtgA=tW9L`8P94FS}@CmX|5$3Pc~94V-j%f z7(DCgP$BwZG2RlTvD(>-DiBR@yN&LnbN3BCU(OH`)}R<4 zn7oayi+5(cqAvJO^-c}JJofGZvv;qn-sRze#!kG>-aUIr@3dp^lEQDX z$*sIcD1^J*9yRsGgnJj^-b~*&!EOcjB;4HCiQR;|@({QNUiQ2vUd}6#`?*hdjKm`O z?>FT;I=4Ah%MpSiWb{*vyu0HK#ly`~` z<;8*%VoKCCu$Y^gUH(Mv@!R-l?(v;m#<#ffZ6jGp<}x>T$9&Iwx{ep)ndT|}h)_g4 z=utP7&TPzNhZkm;Ii~S>Emb!+XXKFdu$A4l0sa)N{}1BBpNj>5n5!_+j>Wa~4P>G3 z6e`!NT8i9!LsS;J@zF0(S?YO@&W}DOanyBuZ*3d}WV29pa*p`1u4Sn(H@J>DHbMKL zmRiEARST;0UaN)eU0YB}$NP`?)-2LdYiU*HWK^>c#B@K&$|iHIJ)zdb5NvAf#1mW- z?{-}i1{QhVvo0CtlAdC&xTS};{r@4?bX^*=c~~pPmosp%7jGBU1g-W;o~ekTS`r6| z^^+#n8x_{4;K{~LY$VoOyJF29vfM*O3UNkmtN1X#Wxe1V*Fs&#)?U^Daeo~Th&Ow2 zp4E)4NUge)eiZXISo*?yR+Gyx(KsNbIJN-I%*Y5VRH4a1DdTaGEfZM$VWpX%uahxc z*YE;0iDQ*o};%ih&X>H6ztacr(qIMzcY ze;*@Zxx^fV&l`60^Ig44>6w7-btKZdU>RwfS>zq!`(b<@3DE5d-;3~Jyc4$*-yh;8 z{pT26CEqG8I4HOnM&=*BY)h#R4TEmUjfu-0Zwdr3!>OFI) z+M?yAWW$D^;1F_CJ!@~Or})N1`x&D0qdBNoszE&oKgK(8B?tBTu4t$ho@WcfoNrG! zc2L7BWq4L;H4Z%*j?Tg5)d8*nT0?o+FQD|S4h0abJUU`3e@x-6BAYVt0=$xAO+ttOe)sOO^ae-zQYVE*Uu%KbG?A9N0xBN{4zjUEP}E`>UbA4 z5&>$*i=^)F5*ReX?}51CE{CY>jh z`f?I2V)CiNzNVO35bZD%-3_NY&>yutRTZ6LfLD;dYIg_~HMho`)YZ)zd zq80q03egU%@Rq3(lxfU|i|K06nUlcg|CQwojm5UbYrt@)E1#KNkx_#0WBG!4X(2N3 z_%=qouS*Nz+gK&8ORE;6MSOC{VDTZ5C8vm2&cq4qMo?KoiEW|a?{T^xnmM4zg_C7A zz=%lUjdCozij)s~Vwn=e^=aeT6djnA3Wn{}VH$JUqX#!w8T-v{pfPZTybP5J*=tWp z;Td*61ao`zrLO8J86ZLVJ%l+b5ht}jPkbsshn@?>hyQXJ9VcGf_`Sgagn#s~SB~E} zSsoTY+~b8t7q2jrLQtltIB35Z486)8!o(WJCJD-=5=1PYi2$0)p@$~Xeb&7iy+f!e zSChCMU=lCv0l&G?Hy1u!y%QGpTg=iyI*3n>7OEJfiw;my8dC?lOK zB|=AaPUIQl{nHs#MEInhK7q*q*&7a#dTa~`(hHbFV~Sm3#w@G}ycs+%BseD^@W&*m<>9an=Zil^jmX1FU1;`9&Xlld$L=$I z2W~CWvVU+&Z+68{8Q=_Gyhpsk|1q?K&*|hwyy7$NWQyOWIFj=Mh?mFJe@Mm~86H-{ zP{(+tX89skjIvf`8WyRzDdP*HUit}huT_awu;0vx%Sa!UiS;IiR_bYD;B!}-Fn#Y$ zEm1uUpSxnBd6l=zpE{*VH#9#MwRB2QPt%UYPFDx{FRyLAcZHl*Z&Cgkdu5HCo3bMH z?HZD%`(eZ)rF~E zHi}5GHTw!+2N)e!P@i!qWtW1dS+aa$u!`?oi*aRL?B`!&Ix4%M6|r+2Uu94=VI7Q|PhO&ol`WmpglW3r_*leEH8724m8+ zPNEH+EePJkT znr;f#NLy%*;r%^giih8pT(AB;&||au_thEdd83|&I~yDdx#NGFW$}TvEEtO@+Q5A^ zTCuqlHvGjY^R-oGj>(g*;y4qFH>xS`uR1)353g1SgdSQ?OPSPYIVO;bzdAtnn(ImG zC3tI*d?{t>7CKr)$`tcbB(oVPN-{OuK*Ky35d#fT8bgiO>B3MYK53wf2Ngs``U%*a z$fN|x#@n=z;K*w6@)DnepPs5G2%Z?0T_L6aQpp&q1xLR(5L8m{Vj1gnCjeY3wktTR5+R5YV9PCN*QY|AW zL0s!zp-_9aPb&vNPs7?MHxlYA?I|yu;B@svn4GBbmbva18LRPTeWv&X?L8y*hHrK@ zymBV&y5Zkd^x|fdUL4X}?sR;>&w_W-s1znL|A^6jWs{Xrplcsv)N;Hcz-spKA-j*S zME9_dW3j{RV_1T?!|LN|r;jhPkF2-YV1jWnLW&@4YshqZJ<;j)cU`7%p_;FRtl0(*HOM{}S|7w-%zK9hlwCiT;GJgt(u z_yil>c|2xmqv8Je(ao=Ok^wyp-}AR%u6o$VkazDRf0sexMRKbE1u<#njSiXt|vUb4#t#A-~q7?{-0w!&1R|L<@e5*#Ry!H)}I*a zY50*kgOCT_zhjwQJ zIu>(h3g)DfW3?EI58@o-rOJ_K3|jIzh9AZQdbXgWiB^;}!EF6oJsV#(73*oZK`)>N zK+aR=TWNW^qsg05%X(9%{kpr?F`9B){tn&?Bi;D;;=kD4I8JGOTDgR-C^XN zN(AQzM(JtTMdvJh+Z5n9wDS(ws$$dLtImgSnzr(ATybP6*CV&L;PYv;V=p?49D115 zKAjejbD3=1D3jm-v=j>@#$H_|Va#|$kgoa|9K|bRbRC_&Bcl#&nk}nqU=AZ&{azE3 zGhoG$YB}+Q5L{lvY5ZB)!PTy9tqCwCCj~)W@NN?ij6?C9sZ8gWrSLpJm%SmTsQWnQ zN{PD9>vK6PMa<}TCMC~@o7&l{$Mletn68G{nb;#G>Ux)DxKZnG@BWHfd(6{uxrdo= zxipyGafp~XjIzZGJ*LiQDixnq(d7PBO5x!Z%uxEJ!(-xmKxtu3<=;M4LZd9Oe7N|U zhf|&OzWgy;yfc{P0%@E=w9K=r!My^>TqLv9<%=dL0}aJeXKR%z>TN`^-pmuBW_PXh z*VFJ^JX6<+(LUw zTn!Gme|i+xVq7>vxfKTZH`$J9W2r{L?;__5rWA`08Lfi4eDnS@^x2GPG5U-*v#B!Z zJRXoL1JkpR5khSMnIW`n4Iy5R#w>WMh5j;^NLaDE2ICI~vD4mB!pqje2BM45QqFvn z2K94f>%J1N+<+*zdlfJ948mAVWnDZ#JwzWB&)p}4cqOKnJBT=cc&qA+(#oXep@qid4igSAK_6T({9hed2h|cN}kt#h+v;yp% z(J5s^q)_Hdz0B86+Gk7_qh98VcH%ynFAqzY^g|2nmw!lDJ|sh=+$FVs2f16rrc26+ zR4LJ3WlAITSyt}Z6qAg8nBH!3M_2S#te=6-nz5qY=f=az(PuAvBY5lZ)oe{q!w)q9 z@tv>hnBBXTUHPhpS7K||x$$(fIy;t05bMCrq7A}Lz3Gj>dY{(>Oi(|0QXEx$xAs5g zYH(dK*7Uzg!|l>Hy+k&O!HhrJF$c9Qvq)R2$n~noUfD)6X{QT!UFm?hk1jk*xE~li zbq?8}6L`S={zv6JK3j}!QYHN|DRU*F!uYMeW+MY;J3!Wo+Qyue^`6yw8lI-H9XG2S zJ8172vgMD|nq#)*L+I7RjTU3I!9z^~m)$Q&)?~O*9T!ht7OGqU-p!iN}#T zbgt7wV7VjeITA}%9Pn$e`jKo-a%o%h}Ufeicps$Aa2vuCdk6085~DSC|hc+ zO>mpF38bH*JzE>M+Z$o#_0HgZ)7>iHk@~)utNb>u@(R=4_F=u%(uTa;WNJ$3EnKGP zz#rBArvjdlrl(;`Q>IOA2P|-!zaq`_gVTP$&(v_e9G^#?Yy)l4*6PDP zMcS?rhbQ|n9zaX9UYKKu18FRk;3-sn_>@#eIVLEh?o#_PScJx?-SG`KI4#dlBL$$M z$}h_mzBN*p%Jy7wqf_$MG_^;~6X65>zc~>|{;dB@TjV*fB4K?$`GAc2Q>qk024KcU>(~g>P$!m90{3_nIx0j zOcWKgMujR=K^t4~0$R~R6}1vY6zjF1f);DERjij*tAI_^e9v#6%S^)H>-WC;e;y5U z&e?nI``YWiu*njjOzC&R6pH*ql72W@+I8%QGD97WhddYv)};(3RGf zxhjI#QtA~pTASQ5ubW%u+hOLGxguh0nfHZ`H;pZGQ=7GAdVg)r$31f9h9Jh0TdnU8 z$nOW8+1_NyKN=->>1R%-BD4`mF@CX*Dtm6Tz-~3RN`M_F{F0Andn0&5aU^Th7c)H_ z!0%)_MK0aY0>Nw?JD=%Gep2L8S4%GYrie`1%U6nAx~`=~zTJZG0midh2)Z+)7&MRG)n8>wzCZ|CKCBq8=+j6Mj7UK@Tm=#wh%4ODR&*1s0NIPF%Yrgbp{#38#g2p5{T~2Gd5KGEanlfGPOOw-O zsO9qRGpCE`cUhw_DwAg|u|Cn7Ed6@%vxC*AZ3Fxuf2_I<^taZ8kWKewfd_{;RdaDU z&>-@~053QYo07?PJv-QrTcl%gJ6qv)yVsd8=#N#W%nSx3Wa zsHsw;EGIP;Ff_Q@Oc=#otc_e(iObrBD^R1@9LlUwFX^L5KV{bNboQ&K_A?z<3|%wL zTgi5&W2G3Nx(wz71^Z@VSdlq2tVWHZ*037B6di(<3ogQYFd`TJIAlOc|Dyp|TX+yR z!^4Pd<(K_YPu>T!0QPV@`=gi2NuK~twqqrOu=8uAI<=7u3se_tOS$~TNvQZpm4=g6 zy^`9Vzk%uM1mdo}scfUW62VL70vFSp%9C_=qMx}F)sF-3m;9HX3H+QO*60t3J(6dm7nNeBt;%fH=!rxw zh-yEE>f^cWzZmX(d^_t^HYGlX1VpLB`I1mhHVkM}4QOeOu( z#3;J22|SAj-&muaSvBn8Gto$t{WNkLs}pEpKl=+#yd0TY>MH4|8ist!&srh=3}+u} zZ{pW%_VZ4ezejhBI+N{u_E~JlT}FrGGr=rTJ(;)D6Q&CA$JctnHM*tF1 zuM7a5{4*R;oZ&);OHUilb}^imH%Zaw;%s=2!TfWQKIb#P#SJWmv-+qiL&uf#kdSME)j z&O;slHLp2}BRtw9kvg{+V20CV+2hg@q{OB?CnLh11KMSt1)n!iUE{D2$P`2>JR)9Z zisVvW9a9t$Ld${q1Grcdxs0&gz`n?hf!MLIg2Jtr5BsdS&%*`PUq;7ONco7Jn}9bTGrRGtHB~$Hv%k1N*5e$F#5M+-i23kp&D1CeH+g$;Tk72c{f34uER{GMy4q zDp?U-dQ&QYqYSMqM?9!}-m^wyBj^y!kY=xuK}h_pO%fV8$FfU|km-ZKNR?|@e%trCSj2m!AKZ9BrgP;(I-5uM%brddusIEE8 zbchodW|F6DCVS%hXG;iO~p zsj{Gi9qgy^YpL2zZAH8u+ou%vjrnw}m+4YB@(Rsj4;{M=MUdlODpVxG@UxdjRnR;) zjn1d)GCDRt%oHxd4QoSyqf*GI%}K zmnqiG+itDV%Q9)-kd*M9=JyO5jU%>-Wg7FYL@vXuPFs%2rt1=)(_Y0HrE3!fjZ9z4 zC@Q~9{d)v1$by*rG4WYDBh>`;wVD#~lt>+R?s z2mbStvgxcR@fzCM78WHlh)r3pn2>^hV>0Fym~T>AxYXt zW9{nM!;4J(-u;Hvx|yz|lwH4nOdb2}q`yz4Tj@&rpxw=vgLYX-vy2UG{-f~GGFE=mg7vI! zbO=f1XPBXD|U$@CRr*aunhBHsrwSy$|;Oe9dC)gbs zJ0Bbta0(u%v4u~SU*I*3=rr*#(}=SF{aYb1g?Lvw%% zR1;?UQuXQ;d{QuezYJ*skB(4Mh}HSFH5dDhkqaQCQkv99LRZ*we=p$AwHGTpOrS+s`sZoY(ndO$AY#@hlZvdgVu8?L|OD; zVkMB&cI8RzNV|RAJV3*eWO(yMs7<{yURvjBx_TbdgY*sK3137Xs;|mzpy4L z@V+%kPwSIJixUM5GvN(zC0(p~X#h7yr#co}!N=+{8+FEE1BC;dvi3b6SfF0eK^a>N zR$b_|+_B3g_wJy!GA3Ae$_2Gc<018W8{HrwHv;R$!aTq()ySXG`Jn~&LD7y&qfk|C6r%j=}XG8d^W_sa5~$boHMfT>tT*^?Uzi)tBie zhxUK-;QCvK)(?DU)xQa5TBvUhUoM@22<*Uqv@r$RwKm$WLrc!4@*fM@9lBMYLkECN z1`u;mqD38JAmU`%d(yTHT3%Z(Hx2Il7V~tMd|@@R(X0r%PFpHh>?XaB=DGSp?_YL3z)=Ht7zE`kcJq$c!=S60lfxT9x7tKntfBL5OqzRXDg6uVx0-^vptN(xB4GN$=H&Gx3;oksU1=ap zmb0BY6Xinybbo6BSdj)m;Q;_H90EX5F3@$o86<7jhKymt0RS!;0w7?s0Nk6V2ge-% zVBQb_J*oxZp)>$S9RNUDvZidhJYfNNEDeA|4ge4v(u2+n3&2(}D#@{SC*Qvcz%u!f zooBHf<~?FG)0*}jv?>8UCxg|qq>|Rf9qfYJP@_a@FFKOXoI>O0SJn1g>3k_K(0s%3S`W0{-8q9_#-~-ckBqx&qAFypdo;~WA z|Kft=yTQo)442Osx*Sucj;8j0q+HYJ-|--?5+gOb!B(Rh*6lsn)|im(8iEhYl;F;!t(+W+6iputD#i-2D>Ux&246N9u%NQG2I_uEGZsL z1-)v6chDoLG0=L487+>YBXr&-%8nCaoX7U2S$wfUQTa;QGo|T|)2B?Ayn&R4#KIQe za;O1ArPr_lRzp+Ew3)k;aYtHMMuOYi0^=c#_S?4Ug|>(TgOfboR>VGOZ}x0^nO^J) zEd>^W!s%u*ecLQc(6hEaUc%~e`|$VJ0imMv+4>!&3^zJ& zJ6t#6SYys{=b$f}ShWwBpOg{FN-|Gv)qu6UgFbCx^)_4b+sI@!tUIiD5dY4GU;!Rs zqo?9-NuclL(WdaBPUU8d815N*@uH2 zJ_SBEHrD9;7U{uu$_n;yIlIiZyRGtv^D+}iPx589WU5!#5Lnqp|BUBCa&xQATZ+Lj zy&vzwi`#55qZRS1Mb^sIpXgo68=b6-Z5UxYuTf9eKXwoLsEy_ac@5juBlNGz zn3SqQgVKP;@@TZXMQ`^{Xcy~GPfHu}HR{QF)y`y9q0!sQlg6;kA@wA`>-*{~b9YW( zhXI`xlTfGUnEsI^$0YkAmsDuq?C0!;41P=>9|*a!I(%;pQD{H6b**k+4TUYtLmLDlVrwEK@0_nLcg@s&S|}#$b~b z^}&3rBEt~mzHrGsLtondc64t*%@;?}pE`1QiLg=GW{$87LlySBt7cAn-q_S?^222xTxIQaJ9WCv`Mmw8YBx19+arg1bo~>bR4K9l{Xh7IleZWR>u*ckU-Q!YQ z*us7e!P*aMTF9H#(p0{Ad}>)Nkc;2di=CDNvSh;dDyE$Hy^8gGzha&FsnAl!k?i1T zbIgH)!DTUDta;4qws+9yO|0hQVvDH9C^p*{BalF)?0Y36Z=4rOm)0bBu)O1GOQ+=c zn5+~wMj8rh!_`%_h4aIOk%sERxd%z85{b(67HMjP>Y~Ahx~f`Pwd&wW%0po!e6T4g zxiM5l(chAyM5?Rmi~^0(d6V%|q@=|_Qu4-7ZB4KNUs%u85kqhNbyd+&QxLB+!Q^DA zfs>5oP{|DkXq$mBlCQTw%#3Ue>^cFueIN7#GI}ma)gTPEtD#te*fI*$)8#=avGTCC zi5=Ve#n5f~m@)^XC9{jQ zUr4h)2d`nDMv3Pkubn{Eh#4}O{a;R^yqW?YEk$BJWck7=bf~%1+|N6yIR|LK(!%x@ zTCM)hXq6{01`rFd43LoNgc`@rzeXQ;JKbc1$r61QFJi}uQ(%JFWgE*L+8?hx1*7tu z!Y-bS>;MJGnt^-nPl=VZMX5oY*a8N1h5YCDgX*YViTlNrzvrE5b>`3L46kD3$f7S5 z3FdmxV+d{n>o=rJ(CBpq^vNQ&uav&2E-4A6dlFq>gXm4Aj_uUCQTmq35GNWnZlr8y z4Z~$(7Sw;*WV$U;i7v}3A1K}!mikzl-%m$7Nxf3$fOGIHx*?IPm-$@E2pXAe#k`DN z>Y4i_N(8m0jR~;h);6Y==h;Us{gTuiph%8tXjQsTvxfMMF~m|1@QDmB7->Pm)E5uR zzFcENK%8cFNxd?XM*o`q)Sd&=KucEn6BAxG-K36!_Tw4$y}_qK13e2#9(Dx+Y`=>A z=DEo`-K;@(>C9T`I3CSV7rF$qI)S#t`z2lCk?k(TjvLM{-meGKc*wRJ9#R-By&7Mv z&)k=jm>#sn!0j@ki28UOG`eL@?fR3ZGSXF`yf$t!J8r%BM(SwcWk;tfHUg6`z+qQ} z3MYSdF_cDF`^o6NO8SxSPL|r58VjK(`Tj5ZkT}6IU*tG1?9T4w6LAJ3?9sY#lP--H zu?M_Pzhps)pnas;IoPYmNHcTj#sci)i(tFqVy$#C-5S>q82#N=L#yMTgKeyUkr1`y zGLF56wNgG^qoax^%KTms227sI4yxHhYB#lY@yC|>A@3|}yw^dH#jB8#7cLTX*f#12 z!+T_&n_-opjbsns0t37vnV4ccwH8nYRL>sb-K2V{(LG~|ROumSZ8;*yu{MDnJPo4l zraSo**3OnkfWq*%@IfH%Nk+iwDYp8u!EhITi^mh!Oqxh7WyIe1m||{l{_-d_Q~gz9f!%|#?VF~vQ17+}$&a9qbi9lS&U6>e=1QT_$L+`#@oS2KsQz0! zB6z8EJM{^T-fMSrDN|DpEOY$Y>48#S#(tsFz4QT3<*L-$>*T{6p(3y2%>}JL)2;=+^@PK1~>$rqQ3;D;a*UK55JDqdb@rg@j7C(rmEhCN}ArZcW!$ zSOs3icL!iRIhh^jGGtJ&z9Ac`BhWp5d3ZI?)sqO|0KxQg5|nxfauym!%Tx+Hm1ms!1C zBTR9TtG5(_dE8Pj3BE894JH;q=nRrn-+k*DC1I>?4KZ5YIacL8s0@kh9qi&-c2UQjSXh{W1F0dB)J%5do(kg=bqvM( zXEff?uxLCxa4t0b`4tRtsBtmd`6_l0$0)vsL)g`Zsdmq~R%-)t2!?LH*Lt5#S7(e` z%}Dm`U@c^hv83FpcwI)y*aOM;HyN&EOW~}j(YzoX>ZHS*On&JPb|_?a8U}$}wF}B< zlvfLIWHQ5U=4kI!&V@Z*d>z@Gw6K!tXs29b58uuXzK$KRfg0x2-YYF(4{kI@ULMCo zlxU%Zn>%p3?PP~(w-q?g>hFE%7p9ed0m6z3irJC7@LrCv3uY*GUd$f;BRjeWo&SDGjsK9urg4Otg(D; zjAcDLE@SNocEJo#BJ4J|G?#R2yT?BBrpL{p(27&@d-_Cp#+X z>V%uFu+@;LnZ~pzOxGlG>A#?~NUdo+{&JK>P_&vt_&Miz5i*>#*sRGoG1Sn)E{?Mw zBbo>nAjG4oLpsD~Z$qx-0?Hmpt!eY>)E2PCGoVDXcEhr}rL>vpAMuUA#<$DxNo1>_ zL@rR@UKES2V;^;V&K*>5O-PT=n2-!fxv$v=Hl+HDT(%Q!U-Ka{iz*yc93AlmZXiIw!05~DSVN_tE2-b78gz?zfUMQakz(_4xYpHAiz zXuGsp-UYH;RA9;5+$2_fH-NWI0DLjM0jiqrPZV9uU}%7PC>s}vhY21P+GEftsCF0? z8%)p5*!5>kg2(vJAz&%RVSAp`+3M(T0|9=QT@-zu&MTs)6(?+5VCmu~TRy{D(Z@7W z_H&_|My@FB1xZL;D;wz6L?wtcsCPUXHN8z)&gH<|9(qsN!1S9$7rmp5Wxw`buii#? zLN=mpkasVXgRmZVQPyYFOl{HA*gOY{7o7UrCpA@iJ=3F_C}o zr5EU=at7@(h+QZfOWFPf!ycVlWki50;)wE=!E~jHu(9LWGhdqi*qILffE^-}`a8n- zewFG(HmA)@qJqL8W$DNPc2MhL@RguyM?x9j&mM{+;=9K}&H1~Kx3%MS29uTD z7VUS;;U#!EsHj;|q}FdUs%NCWY&EK%VZH?OK);bTWIE}zdKkn$UGzQj=GKPir;)lu zTI$l}vP~=ULD|BpXn0{LU6p8PVY<|^;qR37)Q4+p)AlM-U6uArC|o!%9mMn*Y#SQu z4$`fVDQ#+~stzhjaaCh9JU>_$Y^aI`Yo=hI*M{d$njeOs$x8T|Drbte=*eh>qM!*B z%}|uqa9uD|H&2SFG8AQAxM5*c)cB@9_#5U`7ZnwqVY~#G2!6Ao%nQ{9{f%{@nE6~| zJt4nrjo<2s{)ox*8$(2uOhsvx@cgx*y2hBlYGKXkr{RO9C=q=|(|nm%_1A|Z zdebKKJ?A%a*gBvlQ!qp4H^>Xx?iefzJ9YBeccP7~6tB}kXo2e+x4WVeT$tYhF zYOu;O^3|F`ym@j8v-BxMVOEs7pln*xUnWP#iqa6Qs+rdiUYP6*D@r6<6-|Y1Wx&lw zHr#Nv0X7(em=X_%C}!GTp(u4>Y$UuMhRu_u_EuX+>Ul$&_c3g_*)Hg2p}K({81{!Q zAgFeCNhz0bIcqwF&pwf%(F~c0@T@DPC_BQVDRE~iLy;G>ns@;=s|OhDCcl5INFODQ z#@8@au47jNXcd>b&bFVcm~v|LPi~;?#3o+5CtxGWVsbkrJc+YfAhnwc-aOf4LlR^Bz{{1{i zJTyGPf>6D~wx8P9fzn-Jg9W{M9E|fzX+{o*cmezG;H%G+k~3Fg5f?JdUR_U03LFv7 z)rV|!N*}w_qWyuBXqKB2T}&r;%iN+K@I3qpPblP*nP$29>QlHtDkJV;3)D8mZ=x6$ z;*0jMyn_9#K4+uD5JA=KOi=HP=ejhV=^NCU;j-FTeGJv9)ryFmOzj2iNI8j6k<_W_qa$NXA!{U0*yt$P zC1YAIPVEwUkTR`1MgGe%O8TJ8IdP8!#&?o&qs0!O)1tnIlpalMv|8FyX^D@dBYudecwphmq*_YQKQI>|B9RI*sMRe;O zAYN3Nh3{`l4K;7(Wr(%33q{r|OU&0`PrS*+E0lNwM05|}uWmMbG z+Pel7pk%3?9o8V$!a#c{F6d2uH!~ndMFzbXhfL@Xw)}Cth~Wsd1YtIylEfvCA(vxi5U*84qIS#4h@^=e!vxVY@y$Y| z$827-^kN)RK-y@lG485Kuq=<@X1dd)&6R5`P&cG&DvJ~<)Ho~2lbRbsIB^- zo)|PJ=hr4HQnJKq<(71o21kMWBOyfOQ^I>AJda@c?O@c)tDDBoaeOR z?BR$8g~w>s5Z`q#wc1>ru1)1y>-(LuP0eSF>_IuQSM-rRqL1v)2N_v!63Xw=wNi4O z)yfO&- zp5Qyw)9G1)=>HFfB%+hYX`1~W3Tx2eX=Eut@07 z0gR9d-C%^$aXm?h=r^8{To20YPkL)8k@C*udXlenu18DddNj%ASY*J@vlV52Fxp&WG;5kw9HJXZ3C|PRB^%epduPaHGlM3N|yZ}y;aJ{T&&uL9C=RcQ04m)@id-z1Q zQ?r{iFJ-NjT!lkwREO2DPmE-WKhGZCBvi;z988%{f;bxiapxm!r^b~K)Hskpm$mf> ztOvr=LGfI&dC?M6V4X=rl-ywUFq>Xe^gs}HNYa0g4l=1LBo9%}M0Lm+A|2-(ge=vB zs0vbkCzCQwU>DQ~v!DodL01>cWhgH^8a3=mMvW-B(QJ_RN}RfiUQuGSF#*3#2R(-r zDx2UdNzcpIVVV+SngN?SnlP4KbogwhMY+0`n{Sr3Ra0bQ#f5X&qcuuGm@e4EE;?g2 z(>btLKny`gDSA>IlPTG~v;e|37eC7`{uR5lv8E)4Npwo_&W zQ>;Lr7pdOez$dYb9#8C{KZBNy7a&@KkCAS|E@$`^%=aGXC@8dpJv7!ym%0(?;XF4D zn_UQQ^HMit?eK<%!5FODe#4HI6LYzk9oiMJ9_zz=!h4n)ir7Juw$Y=o>zLrgx*Zql@a_&qu!|1RYytM& z#y^MbQP-*Xpf+2_ODLLyePvm%^xSMTBCv6?*YIAhW=9zlZ(s*@i$ofFoLIy zVk$x0$Vpc+U4XePr773bbV!IXb}axg{FD#4iZ7wY0;UV#`m4=kK%lsr?Q}>!B-HEx z9Ye!5u!|jh9+!*5neIp+8qm8+@pvxcQ!%!8xtyE$>{D1<#^rp4jQHya&^$LCSzHFy z6AsQji82n!@PZn2N3>H}!E{f;%`>FGod-q*evNvR-Iow_I$ow}vRhGD=Y;qon2M|i zq&HzO`|!BNBAMMs@3+(3E`$##tHkEZtzQ+8A>173}ND;tAt|#(jJDA>7D(GHx9lLGeW+CWb zN-^8%-o%_sXuDFQozzO67T7pb?(r6KvM7LG$ zw??^POxMIwuFsY%*PSePx1_FDq1-<^!a~qWbu2E1Wwv63*!ox84OiOR^#g3@Yrzyz z1+=t&8t(<}XkU!O>@tlHI`6dluu0Vqvo;st`_NscYhZHDeld*x+u>%vjDx#G-NuwP z8=4YPBkk2(L?6g&1N&?}JB|m0k2?^2KBC9ZT%qQpb+uR?X;zOP5Jdk1NU+@!>@u|v z_RiE;1Pi+nW0`ClASEK(Hi{QapN{y58pVTTbBbXa{j~$DahK{uTYv39x-&s{sNHkt ziedEEj(#C%y?P}zRMPMoI=qG|E9uY;)L1Eo(ce1W#%$fC=1Vg_63%f<9Yv(V>W(s< ze9}1fOy>e>aZdza{R=MS3vl@@Ce6u|y&b}jxC}CZVZ1hI80++5oFS2v1Ht5>kn_k} zxr#l~gd>1t?lsgA{+ToZBZ=%aYUw(Kf5K>TCOc-n0sYkLWb?Y)tHKvWOR2++h|uHM zG4msQQpfJUQC@K1wqJuXe?g1ZdNFs54#Xyq1ju9_ zhn5jQ?7DI6(xx+1atMAjj(vO&?zJ$lF^w8J?=yi?X9fahtm0BS6xVb#HwkDKyFkk{ zySaw#7&%;u{ZMH|Qexn(H9!rc6D6&L@J7J#4vqplt0#Vit<$mC6lwID6%M5=ealwM zalk&wjyu2e;#24-CtVhVwOjlbQbXsU)-uNOmCrjxqvk!(cRr)Um}X0Tzq%GEW@McN zRE{W7bleKI^A?`YFR`81FuA=<-Y||9w1vCa13BImwkyS<^liL|X<9B*ag6EgTym`- ze;HlYMMqsp`7x%1+Y7@O_UZOKApp68rS6ee;JP9HOmdKZdIAc`7nA{nru+;xq3{}@ z`x9=utRI8QpUreKWan6R>PqauqCs-C!Tdp!*RowBXAM(TSROYBFn+O_mxx1|j^8E^ zSyK__^rYoe2r zru-H3c*0FbdFiq;Ix42yQZ&0;sHKIPH@0-KG!Qc)0|nL_E3V3bHRxWxrNsQ%W>bkN zn7&ji@Z@J7!~9A9@CeA&!_s@}8wEV}Bg%m~z{|o5gN3nB-Tc;f4kEwN=%@ z!m5Q;t>HRHusY(Xnjfr-7AAi+1?y_U4TTFPM<#{Bg$ruK^9!4tNo`pq*c5CCMO)Ia zum<~w zmb1Ah3ls2j_5Z~L%x#=EFW8V~_-XZ=uq#iet%PXc|LNi!L>3ZBul+T6PJ78%2jSgPE1Gh%9}F<~?lf&0j3kxBb?H5v{) z)3qI8$R(i#(Bga~(}e{bfl>`Wa2M(-5se%lFwI81_q%B=gu`zl%Z2u-`FYX@lWA5C zN7OM^jZ;3DOfv_+a(*zG&K>;fw7$tk0K20Q{haQn*+Qj9+6!QoyG_@iJ%YAqPD|-H zZeU-ufhVy;J4-4z!JAOQ+R5yr+3wWOGm@WAUOO4qgCL^iAF3!~&(9`KnmCC##?%6J zm3A9XMy`GbpU5tn_dJa*)+l!^FJstZ>HllP`S%SsQN=oH`Mm3vJE^T}QRAYotLp5Z|Uo? zMqiJ&Q)U}HmuWsZ;?4ehc3SLI7IqI4EY$=!*hg-ql>2Mo(&gzp8gB)%Jf2YH3PqJcmIX3UN zAf0)Fkrpk*;a1RqnlFaa|LAbrxy|Z}T(v*wQC_l|`3e=kyHlOX(w#QYVx@~rKt0J%x7ZL} zQ0P7DO}+hPabg_AH^ zHNp~hCrjLu+GJ1iy)@ZaEi}3^f%xny)3?g?i=?fW0VMAgqZ!!5 z{cz>~FkT?l@tU12pW^P6iV|Dt)~lZ=`BJXo8ML+l@~Z>_|F z*v@ic{*(aOx<+*#D;wp}P5nmq)^NX}(*Q%^29h{OA`1TbinB8+FrTTPl;DYU6B~zzPNC z(2}{&NO7iD6=hLlI2yz*f$BTj5Ug5=hs^YT^_tE~_a=9eOPZxJlyNV!KonjfW7{ z!)p*WIwN0~(#IuC7f)J*^aIP>Bs1cWeFM!{XWF|3{$`EuKXQEgr-CO(kWmjW6j@Z3 zBQJV&ES=FOh+c-5GZ5#)Hdux3)bk?kj6;5%jB~6qt+W-N$`b|At~j*jrPNpk_ADED z8fL+on!0T(_*5>J)28O_6GYqMP{U9LjAzGD*4O}KGQWXA7VU`V3YG4czh6UW0j5T% z%_)0@^yQR&y3e+Pn$|&+v78?iM1POx>JgNAn*Og)={DQ!K^B>L?^+YEMAumH$I=|R zoHgV{zZgh7s;d+bnqB57>41>@3|KejNV%_)rFJKa>(+GNr;X0P zTW#EIbZl@NpF+yyF|}hQ|FDYx#wh+jk0bAWt5Wy(7)MXC_q%r=J8`_YhMt$}?B z_StURHbm5+-(iC={m15I=;=!3B^TdJbxV70*L^vZNZ-<)8Gkq8AGcj z@zB-76h&1U#DNm;18%Hvq_8oPR$>hy^Z~^q2ayOL^g2o__qOgJSZ1ZUqYPPWnlF;M zI7fMOzJrs&W=Qo5K>m!!!mQ7Kx z61X32xKG0i8YP!!GsWVnqJ-eP12YRw1&~LIk2If!9*nAnNMNMBMBh%CtV?c5-IOYu*p}tZ62rE z=IJg-R@uR}d2*dnJd!dj+dRw;)}-FFEBwB;c~#MH2>leP>WS5Jx(c7pA;$l^!#sV>s>5v+z^K9Mls@R9H2Xq8%Z8SJm zYe?^?4PUw#2v(!4?P4NbQV9%QUnyNZKr%wT9ufttcG)PePiJu}H?v)w#2VcoDwsZN zLwJp66)(*!yA(FcbXtsQWx?_o+*YQqC`=zvDe?mVVL>hR^4?4o08W-wLt zi<9UjBs4(lk0&;=i$+w;VEAHq_-E{(2B_C-*b9q`Lu)iTbj1v&`u=I`5htb8_iM;S?&ZYj2?obHzza z1LR~6)84i)JNQAS8-eEs{J$So5(qPT1)=1d@`@YMbIPvKt4+1?}82=l^t2l<$`HkKA!<+Y$4#oK12cm7* zVGGL+lju_RTL7j&fF;FvM&gMQ^P2|u=QV)PBne9gpUxr-%_g#ZL8`nMQhf22yF9gd8Z+u3-s#bi)P^xFDqA+oL)u(2sK(-)zyJ|24X) z$!-b<`Bw^!jvvc@aSGFu8gxM#(^Jix*&(u-=H?2G#>S9A2-^EhUB;BxXMx#<=^P5@ zwMHph zrepGv8PGw&IZVfR$FrYH*`ZNY86E0njT*|T*l`Y%R>S#{WwmoRyD0NXiiOn^DYK7a z1qgu_E1-rJrV$nFSI5(#ebf+S%Ic=zI`-94+&!KD#dfJmp}Yb1Tm+k4m`?F{_WiDr zwF&0eb2gh6vc2CL)15`v=qxO2BM@3aLs~J=*l?Cn=l3r{6i{nVmMA|3`d362T`#MB z45W4}J&8!?B8%y1SOrRw*Urzv)=8X9Un#IzSthb*X~KY$ zZc*oCck#Ov z&yi%ZlBFub>h%4x)2nzFkUFe)J{ASkC404mF#wJJqddvJ-|-CgfJJ5vfxuw-1+n+- z9N|4|e~8x%i51hCVKwo#Y(n#~Hb%gPdo0^|mB^w;5++vB&I3{jz=R#M;h}iHv|#~K zVGEA#(KggeE7SN+G!-~OWK$LV499}WUz3UdP-lohnO^t)GegAtF_F%kfZ8%-~n0u3vJdn+V8&x5= z1^h_!{ovfa!3dl4!xM05_IIlKXo$gGV+u?r{p(Cb4 znt8JJMq^#1YF_ZNU{y`9A*~p|z$=Yak_DA)yDmmo6$QqXrZm7PH)(zt>^^V~e*SNq z_JXmH1Y=WDIld%+E#HUgWEq6NU05G(h)NF7rYH+0NBj-JdBKKYU3D7W0L1z-w27wo z9({y4XNoOf))3y*5-uE~B=zINBxgD=C`W&&qTtj5)?tcbE)58{@Lxmb64(1^^GU=)~#6xhTggZp2VM34SkyAz_Ynu{;p#U+kqtvnb}dM7z{O!O5J7<(j>(mN6R%pA&gs(+mfTC z#BCX!A~DHSEUC&E)LR&>nv1HV6~#c4PU8_GFym)vUX?DT8?7kywT<&bG91ik=`gEX zYm8P*Md~prDzY)kV7=S1iekC-9;sOJyD^F)b#rL#xa5=`htpt1uEr=Wb=z1)iI_Gc zgJRL-DoQGf0>nI=F;o15TgBQ^M;ddAQdlIztQH5?FsnUeh*|9+iV_8ioSPhWq{WaE z8c+^qb~_TRM3&mS#)}^ch*1!h+7gZ+=P0tXM%Zrg+gS$9noTEzpk2kKrR?Kqy=oYi z<^a_>nX_{&V_!=|!_cTSTg{^hLB*iS9%%;q`| zv7nu`|1GhAbb3_gjbi+DjB=sqMc)UIV2S%Av=O3_tJ=_c4=5Bgb zt)SaFav&<$qr!2PGU~=rS4R$wfa`=ti5BoaqrV1wne@Us-0H($FpQz>PjB-3rzV?q z9v_8{{3EXSYn4s*>*KgvjAZ(??RshCsv$LzI>{2=^bWTg`pkyq9l~dojIh3cDK(dS z84;PI?B~B=tNa}C?S|9V_+l{|Hp1*_+sp{NP56oWN+S z_A9cs7U6`xsjrL|-~_3CkmR8!$Rv3wRs+kY{>o-;=$+t&81&^$F$Gb&96W%1&2&}`yQCU^ z3TyO2#~g-`T6TY<>YOE4(F2bFa}_%zVtEJch>_H-$^-mChlN;vt9tcA{0#dU;byeU zxm>Q$=8hfuqCKXET)YA6gX{|Ok9rcd^qUy6cdRu5ed#8sB-i@>e!B17$?v~Jbn4aO zXas9*VU2c)>t$F1jkdM#5J%JB<2l?h=>7BZ{Y&v2+99qq%6=f-I^7WQ!|E!3UU zaL3!N*}c!qC^_!u*gPJDSvSSnfpJ!`-=i3>Vz?z}lNOmJdXgo+6*@M&TzY%>p60d2 zaa#a+;WO-MU}U$1RIHR;+HTe!grL!dFbIhp_=mRVs1tO7Smy+*;pIkHVQmt~hs$M5 zET8Tp@4_1d-ab>W6*$qVwIO2^&>LlLpjah@?GFAc`+2E2ioR{l5yL6Fm|e(1*C=Dh zGG-1g!6TXWi?K|?`#Dcx|8)L(9J{neUIk;KQug4&xTXzGy(5|aE1>8Y&h$lVF5B_u z`V6Q3TqH))^%)x&;io)2O&&6>qmvAdT|u(F?ueJlFrC%bX$z18#26BpXai6|2TH3$L!~wFpn8+bbEKJ(e2-5Y(OV> z%TE68Af4Q8baF+;Sk`bY8X2rhCR&}`Yjjdu&yExOPvF0^OY3~=ZRv0ge?axTef)bF z`FuUKty63CQI<@y09?Uxkz}v~3qY+q(8};qmLQxu2nWXjVzv&Vx6lG{gARh!4b)M| z+8OK-HO)Up!u;c#j6S@lD_e8LNctwjDe${M|IJWnmU2kUgf`{owtlwrUNMqB z6<#rumbZas(mY}${Y!WeX{mg_7*6-M=CDT`#e=qw7)iS_yf8{qPaQ}J1Lw4QyIt=s z?}eId7ng7$+eMB>-?Vgzk<`gvkwe$CLjOsfHm?{-S7p>tb0r;Ca}n-JuB4WJt_8k# z(7)RH>DK~ET4aI@F|tnh0Bk^x3^g-rC|-FHwO68>lwBu=(~cH>6R5fL0K+H-naArS z#qD4>A99UVkG?$<=e0suG3Y85+^+a+%=Bv5_g1T0 zjHLTAYUch_45!U4m0~142bk?|vyW$y>Vy`B;&2K+o?Wj>XsLghn%`y*(}Fz+gfd|p z`*;DD^JI}jPhj=<8MgBTF_L;RRsdy|vX4f^m=?{EDe!%)9RXbia%@M~cMWf4KT}3b z45yn~peP@__%aO6Ug-?%;7=rt;o$jzrNB z_VZ{ll3vg78l7pLLmh6qXtNkj8(O-!gGU3!(Cz$zTCE?0&aNeOqjij%Iml9!%QA&c?mMPJ9v;?_IZYyOqZ$B;#cJR_hOhgo! zmh<(NdyB1>do!W;U>DzIUI}?_>*IfPm>gx-W%tMppp9eC6TFl4*aI`!aeO0maMO4V zwOCm@OQu*57HbBIfTnaDyLdVK#i>j;#EKYc9YBwMp6LaR=2K6jL_gWCpNQBp4(dQU z`xUSQ^)q$kVkG0Z9F!ZY$9}~w{uBGe7^X+sLD@i`T*5wFpMKV!!Gh9r^qCk#kG3QE z0@wz6j$-Vm`XV~q2{n|1SMU`aZ&$_}UdV$X|_^jc;OcR+Jy#D6Q9W=+h4np`fv zeDWzAkvr~Q{mv&_KE=aibHZ-b4z`jWPJGUO99E`RmFsCkB9~rJiaEqnpil*^;9*CD zjAV%<0B3;5We?BAQ1ZWNW;?Yk=4I4oWiZH_VfEu3*$>Uf%Yn-1^X4ul)r-4usa8Y6 z%Lt=g&Kg2YoG&NevtuFX5?qOz3{x-X(j|>Ap+Z#8B&`o>MyiL=BN!c%uvf~gc0ZOI zL-X_M6WFyHHl=7KJ^^G#gk93;_B0Oh6VdE%xwT?3apR1msYUr4O3>CA#;}ueI&d=>6tO`nBezJ`8lFXknb7#!!R^E_)9k7NToXfH8c-Mo?pwAna8mzGIG z4hOHRFp|J>Px`{>_U*Oy?Qy(c{MYI70nP{c@jQ1jvdUx0>d&4zJ~^@jBKg>DTGum5Y?IxalW->|z)DSj{7EKl}J$vp4_a zG`M6}CQz_nHPVy>F0khLxom9SA)C7=`Tfd6@O_oMQpd6Hr%ZotMRuvZv?;?IX4N^6 zl&f_A)Bt-rTbNv7pK$1 z9bs0h_knr$Bq0ZU7UW6DK`@nmv64LiaiWtQVk-SS7Y~Io-7;SyZfc(c-svGGTMYL^ zYYsb1w2*g^1#hY}USaJyJ-W(6xCa=>3bs8S-U33y2C0+$<-)IJ?2$>5QvOBj|80Xz z1Q!GBcknMTAq<8Pn-+c*xQURy%J^R}?WI0(I;(d2WjkoY(dY#ISATg5EkO=l!Ss!M zq0!>@O7=_08ns}H?xjq0NX;E!4{Ow1DP7^*61>L+{u-(d$nf9J?ob)5oBAzes;4@$^w3dq_L+njnf0Ww3i`j3ohXa z9O7~W^LBiL^G+E~FlId0P3)zPvWsQ*GVN{-iOH8dVs$ij!7c2slol~s2T$i!z*?-)zq2<;Obmmy>l){1@}m6= zCxs(I&`phQ!qF&7Id3IZMpp%$GAg_Lc6RX>rii{f`Ryn2R*{XnSd!t-vj5@}7-X9k z;i)rLaujc0-9SlS|ACT9vmU7>Afi6`#Y?dVCG5owj}8*XS3OLePZmVkXnY2&_Jx zUHp>@cJU@D7)Vs2!twcHCRG=(dNLYULtt(^OjJA$5x~@+(&#?PJ4kUcf5DhMk996C zv%2w;9K%bhA7H?2IrtHXFdU}burp+oJ(Cc5YANd6C0#AXs(f!bu5a^Awp^z*$#zNn)I zAZjp4rock0B6z!<>|#IL&9QbTze@EIoL_}HlU`PE19{-G`cMMIy>wYESK*fkx0*T& zs8J0puR~x3pORG%*jEoqXc|490LI#4de4^BCn2qYc54~Huo|G}l|Jk%re7e_pP&hK z2X3uZ`qm2m|Jho?#v1)m4oY+JyX;ZV(3c?)Np=Owl{L8P2W(DELTCJW)kxH?L{p1t zcD)p2Pd28`_?;kw%S}i9&XmGX-yyn%Ol+)eVbwp7RPJ;)rb5-TAj8L28(?(~%9%6Y zWR>F(uaR!O!}R|5rhHmrDk1Wkt@3i;_+h!}LYPeT8Y5k=5<9R6Qj2TLSS?Qxo%ANl zaR{ScLTi!Joaw9f0y8UjUW)}x5G|3J&{IAKlAqCiKzTrQ@&piqHl`Ol=9qxGQ%Ww; z%OUjQgj3+5EK9P(r2Lgut5JRBq^uK1&1Ftb_n;!09jW&w>hqS@Hng^fBWA+%?m-_> z4;k0m>eaH$7$+BisgofZUMCC0Eu1H#KVpVZk_WbT8` zWGOL*2E+=h1Wez}?4RGk9Li~%OWv`-Vx5KLSDo^VWT_RJ{M!?UEz$fBVbJ4>b3$_ z&&TdIG1fI{+7n~wZ=(3XwwC<=Xp2_2^|R^#ax@RpQmZLrN9`0?pL^Q|txq6XOpKwO z0_$^ca>sQiKN~xH6>EDzca2tO7!!Q0)sV45W>lBnL0_;sR%KRC9N^JrUwf`Q0E7|# zCGVH1UjPD^tB2Jw)&eWnrxrm32N%l-F{90`+Bu{|2u363$KI5W5l%yJ97T$vDxana z!O%D~kA29@6E;6w6P(+4FbmE!MuL%+y6-UTwBW*iCavk9(ID(-Y)LyQHN`PdO&SNm zU$CkkWmUz@N=2zzsRYbyvefP_V`f!)P60E)@`7*tTsi?|6_?^FYA%wfPNflEkwMi# zq0+I4#zL(tO|mQR1`7^I<_NEX!#!*3$3aLbGH5}LP$}nn8PL~&*Ff^?9?2$ZAG1~}1cjuQgy7gj!>@;g1fFH(to~#l*kjO44^GGH z2uU`1nMRAcOv1Tjnbqc(lE_{K2Qyzulr@A>%V6>>hMz9-vUam)(eHW9(N^8%R^5MM z@_2}lqC5FrCemlJbrTYh+E%a&GPE;Kl03*vU66Lp^b%bzv|P$=I~d|ZpOkn(GAf<@ z$C>lFCV>h4tAZH?^NtxsZ-1L8lSzhNS5}lvt-2WbE=!pji+(bTvYZSzsxY;IXrq=K zm|K{HQ|}66EYb^L3l6V}Y$1j6Xq;g?(4ha|M?>Gs2RQ<1UhCznYX65bRcN@^9@uh2 zU8=^ADvqOZyyNP)#ItCPfGVt30E7bG3r1RV;^tgQVogSA(&~o6DYTUV*RGPzxOt) z&%Nn(cgZU2`&T$Q+C_Xcu*EMRx>RXGA07hIdGQ3x@XE!A=iy>nmw+k_em=BAiP7&9 zx$L38C|;aC4@W2wo{S#i@M_fFA}Ipn+Ur?uHQbl3V|lk*-_MjnK93X=EGT1{`}62+ z@b)zRhir-O-IJ+mMNI4IH8sP|!mgumd0Jq7K z?{j48f>Hb*s!y}2^^I9oYy3!4A}F18(|oY(_78qW=e9(H2nO>VMMBYVRhsV$tD=_` z&J9J=NA|4^R?YKQ)mj$hbwR@*8J4@Dy6CCS$v7AAahEqK9#q57R2u10ih-<1TH}iJ z5o9tH1>FP`lrTKrSy9kIyv@`PV99TcB_%j$9xYUQC^1J5De|Inr70c=BujmYEzPTt z0KJ@N7PEs9iR?T>jk5?+99s;RjOQ!-Ev075Z>zi8YOBizc_#e7pxmCxengZAzb(T< zxCF5}jsC0j$=4c%!^!uh`g>OYY1=P9)54TmQ>h=dfG#}n99F$LotAf()$$6$yBhGF=NHGWm^euqDmDrokw$oYe|A)2cpV`R|4O zc(=r6JT9?8p$YY->e~<94BeRk#h{MaM{g??Y^T@`UPcRYOyN$?y;e6j%L&>mgV<1e z5m5|wWG+k<^DBAd`Rw9**!2LPg)w~{FQcn$6>JB^NW7b(U35sk z@%J5N1+7Y~q+aAC`AwpLT``u{dK4{V8sU`6$sA;D39yHLI)~{L=h=KF?_vid1kU5e zG|XiOKPFviT?pSp3(J_!D_}1r%BWYFP4f#Fi7Oq992_(C5VSl6W)hVoz|EeA-xU;* zleS#ukc94WkJR`gmV1a@{5U%CSyhw!qS44C7!r9Odks!SygPzeJc|yD|5l6H$4J(G8e68homLIH1vY_DHipA|5yQT85mNNf zVKA7XFq9E6H%)no^_|7#d_GKB|@|8J5x&-p5W}`q5syiR?aTd(xPXRIbZacVS%>{XW`1Yd zEGNmD>Ojh;XXGccRWQYaFmOsvb9YLyKg(hW&SkAaPs-=*@-tLs2$o}K%G%EM2^1-y zVfjpv0>;0H%O&*AXCv7V`64%4B?VIURq7a<526U9UZ?Q4gkiC8_6t|Lf; zsbljZ$h`+Et4f|Q!DiD}gv1euwMGAk<9eXgHhG}_9?vy?f(UD-^K&rwr{;t3k-8zK zTV%AsIr)zv=wvtpzfyBTyNC$G2O4v z!)s`SX0Sn-jS_noi4ST7oQ7i*5N#9%=hL6>-JvY^TrSxlA|OoUH$PO>xq*IygDSOs7}S zd4MwBDWS-PaFDZG228cH9k}1mCsA8iMtevxrO)dz$DB=X%gLRF$?ep^U#Vh~p*DTp zA-COP`NqQ@`9e>m&(z_|=)<_&54YLmKJ4!ZV>{{v9!}YZR@+QpLgn-K zHaFca#)4s|ciMI^b&Cq#lsu#*Pnn&iZ;S<~o%6f1SBAH2PeuW!fQ}Tz<0<^oOPvrp)b( zV($wl(?{`w3H0xb3atFYZCIx+_RFT$w{2t((3WiK6}>5vE)mT1XxkoL+Ws^?2%*u< zZ3Q3;>7Qb($>uB1m;+?GJ!2GmW(t-1TXP_BAo^B#g-U(q52sLDZR1%yf4=%=A~A6UG@nYy%(DozMvv zFzvSGo4C3++1SHIV*$SCc%C71!}-`=DpdMZn*0IuO&R&@p^h#X?k*K7y)D1!BU&x{ zush|=?HR@FVQTAQJO7qpkULt(A3a->Q}ay5C;@wcR<|T=>6aN!A!u)Fjv%_4oOFd+ zfglUx*^Xk{TXCTg)B23roX?IU*{-qYsM`>qA5Tq}yQ(;?=o@MZ$%U+|ut5@QB zeOB4dA-bcRkB`ZZYuH2YDI0hqha}bTAU=BNHwicO z7&SaPedeJJ3HJl+Ut6qJ*@?NmI_^jSVy0yKFX%Bhn*X;$sGChbY1iDuJ2|d}~ zPfwBeo~acK@z+dtsdMP@_I`Q>FJTC%7SpEoetMR?OeYK=NXp9gARg(s3Xao?c8T=_(;LYMDd6T&B~!l78YjCeZO>d(RzZk*5H_oyL+WJuiu#zAv;!VJO;^gim=1M3 z^(cK)sI=@nI@3!$n;uP6(sN23J(>vr3^q8pw$$YywC z8DvyOp)>oY(Aj0@$q~$^Cli(Qlu}1e>X01ji8Q%y3Y}X^VUqg2nAf>ZeYnuc?n6 zt0(dvbAgmMtp!?|X`zwVnbd7uu3f|=C0QF2>zH0qb{CV3^ctK!EY@5S$xA4~X zNXZ?&(YB65>glvv^fCRtP0r`5G@D&&m|ju(XnmrLUQ=e%x z7~q#}VfrO9&VAXIc7WH4e0Duus!rZ7=|_amqPle^cIn)04d$-oV9w$DfGljd!hLjS zJL2?E9Q>Zot1rfgSpdD#;yW}0K+fQfeND(B*I9LzOWcyX}Y}mE;bYpDB zJ-3rRs=;XH^;)%GG-@~UMQ8Jq?33BYwxpX$dQQNC4dM;$WnCfgbZj#^syYSHBbm^q zLQ4>vgS&_}XU@jsQ!%hudYMNvi`k{!KfP)ZOv2fP@7rTL*dt{!6L1+moSDzmUXaH= z%(0YCI)qBk$GQa3hRm2yX|w$OWag8+43V=9zrm9CtTDX@qj-2kvz@<{GJNQHlHWfx z#vI^6YsMs%hTEAwje)sd&$KMF0#9?W$(Co%=9i?|ydAj`30i5M#ne)EsSH@T&zPPD?qC1D;{%-yN})djH0>;B53Quzr760$NiZ#qx!DhMPD#e@&+KEnHlMxh zmvn=k#;=C1Z7ZXF2yO_o=InefM*~mC+yKdb06m}9=s;b9sZ#<)tSgY=0|3ez{i>}6 zr~gy2LS)j@M(>Qu_arNS+l(HWm9Nlbp2`I{5FKxWoQLVXoi&7wa;b(TdEgUsQkY)R zMln6mDvcGlXE@Cb&}kK+zep>4I9p$IjzPzI_#!UfB`F<`Itjk8Fi&}p?W`U%K<#eI zfJeOcAho(FwvK&d`+%qN0DM4$zvOeJnoY)_FJ*`J`ZVc{14*9;9gbNEpnLyic91?Z zTGz%I&7aM*tF;Sz`r(X$nYbn0L^ZsRDbtH=e>+=O(!CiqOz*U=v`{0{gBd`6c3wj( zTHWl|ub@w(}&GnT};-vn8d_0NH^rQjTbEvi9vpZ41XP zwQww}$Ka4rhow;M`NC>-ZPqAh*Gj$dFm>C!rNDU_EosL7rvGYJvg0=HILbr{fiJC^ z4_hs|&MhtBW)6W2lPfksB43UE)3g}}p1QKUFhN6-Z988jm=-sO^~1Yg0|t7;1mCmQ z1kdzgRtnDPP5JOCKCsK&jmo}co&U&BKBik*<}iK46?98WKYkRa;HZ@H`(=3t(+w?> z-TNE`nQm&4a*Ka6nAM%hs@+yq>de*=MgZt-smw|V!pS9w_GYc+ha^^Wl+EC!0RMao zO#kUI-lm`Ty-i)I=l#np2(#pQf2b+-$iAEUjbL6M_PhRk0rp1(@rj?wfZc)j&aXr`gcnU zI)6;v1e0$sa!N&qM(;OO>J71asf7_)J$67gpq@y5`jCJZ*U6?$Ec6F~ot|uQ)2|?>+L&2Pe~!uRwlNbM>=W<~ z*R5kZ(1A42`E$CgOEIEuYjtb7qI;I_&7{)H_ybohiPIqf2qU)bu%pOV< z5$YbXmR)39%fDq^gbh))R?c=_B&B6`rglkMN$DBITku7_Sm#K)RjZ@@$&P*vk;!7) z+Hvf7fU9YL^J2^j2rW#qk3M22-O}1BE)wlM|yZ_YH3KYR47#4v3lDaI?O42ijC(#>r- z(r4497VV$P37t1nXUN|!R^9Z0=%Wavb=pfD(P(X3%dI!?GJ0K%HBo(ltpTq*L|+;0 z`=k1jOsn?2Mr~jLNlt$ks?XD`dK(YXQTC+Y|<3#g2Wb@i` z<68JCYFrCf9wM&=m?0)(&1736dBN-kt&PvYHoK+8ZEoGS=_Af(+9l11)Pir=$G7NlOygkfV|BW|uLFlB zE0@D@07cX>1IR;UH#0*ihYczO4<83>tE|wSgFeIN8s5Zxnb$FZG3jm9u zhcY_Tc|hqGXaz%@6-0*~YtI!#TS;23Ki0kjF;>m4C?ke8^ny8#4ejevO9rfxdZ*!2 zXg^?HdaY8~ha1N5Mql1k>TqBvRbhhOz1~&{VLvE9vs0ZT%}#w+Q_2zFr&Om^%3P=( zT0vWt3g|X;#RhuuCB*1-qsWJpsswIQHrjxBW4cK|7an3e%Kf_y%v5svMwxv`h5njS z0ab^t=RmFZ+sXvd9Xj-f67v3$YA1Z`l^7ZmV1ezlz<%chbmO{3%0D5;~4yYk9 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

    8^I#zr7 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%0Dnew**ET0r9n<$h6apO3uU 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

    >d$ypi?wY~! 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

    KpX|n7f3So4z>ofA@;=` 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

    l)CWkgwM5Ma^YJiCS1iGQgZsAmQJW*a{MBb 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%0DQDKU9-Z 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

    B$~U*EaDAgEEGnDq^El6 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%0Dd|7oXXihmAaMn*Y8I(LB_ByJ17?jVL+%uU1FKsa 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

    3mAq%A@l##uX58Dy-ko^F{el3dTN*HzZ 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�Vh^hk1m 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%0Ad6Hkv5h*Ldl@-6gjE=RT9-asLgN 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∾)#RN5X=gG=hsH#2V!DU?(tk zt}OW`tlS{`&Vc=urj;zE_KatiroXfdj30w+9Q!Aah9{vD!UqOJ{JYVM30}lIo<+z7 z2_ehTi{zzbo`G4=n)ZHd8LTzQ*kJb2|Qws_Kw+_){)kp)ljFqav~On;GdPD(%$hEJL3VW z8f+UcK=XwZIE7lNOojde=Ft%L3}!RIEb}4iGpGeuF56qO%(GU;FU6$Zf8Rk%Bc}YJto1sE)kbP^H(PP%c<&u^G@bGvVQ3W=!bT>q5dOo`hW!f()c9_Nsue=)H=t z{(@iO@F+W|v-^C27sUw9WC$>S zOMlX*NYA{oAVuV#5v_vye^x>QDxYj#G* zo@s~tZ}(r!fWGE!SQsglWHe>Z?2#tu!4G9w9u{ToUKjikSIUzGo}W_|&TJM1>{CZu zk6nUo(R}s%CKflko8Zxk%>t>7UTGmWzS`}tOm#!q&de7F&VW>k;?2tCZo1(qadDO6 zPF(<*Czjk;2BBm*WMVlsXu5Q@5zl|#LmzTUd@{{6;?E5;9vYZCkDlJxE8jS;Ob z1jF<_}61Jo96(3ls1T|V5zNLJ$b+m<8orkbQj)!nGaw8?AL!Li7MOh4aT5=1n3DdYGc(l^3*s=%C zLo^`BHE&|#7GxpWsynx?rY4i@Q#o~Z=_NM^i}!Hr%za@~FRZHKF+n!3;V-l9TeCGi zxX`=l>Z2v9dTKD>71KdvUtkY5P>SSdhOS|TR2PN)kIvI}AiN^rZlmCQ!+E4Ry0NtE ztG{91Qb_HG*q2u9`OSVTm+ZByG6JjH*5Uh=3dg0&nAvzBtGc0UHhG4qd1+_n^j)Ep zcJ1lQi099i;d^|8zVz)xIQ;1NFWr!p1-qKlnsNMx@K1>RH@WKDLVwC47ZpOJ_|upo z>}k&J+y4}oc`$f~RT;J_tl8wo$VRu4Ns_D&TGuvjm?{=)l)n*=-yfH-21|Fy^`}du zL)2LfjP|${e>Y?T#Ay5&dYY?I@y8H3W3S=UY%Mo z>nx7A;WAxtHoGZA*~KVT&D}3yVzsxoE)jKb3SL6`Bz{s=p5l~b zo$kAzs?A9?{wLbxmY53~G%=>QQfqX-bM2F<>6dZJLRCCHW&>8hXYCL>G}wTt z!EMdJPbjGCGU+GST|d&dJHrT9fW(|#?M=8&D`p2{sznfQ=a7)j^pked(Z7!kg32R0 zapAxflOAUu6Xejvc#jQ`>2=11QCslfJ2qBl5R0#uL<7c}LJum57%9lg`yd%A-;m@pftxK4t_gu*v5rT4 z-W|grTQ_|<2m-Y$oI#FmWAHb0r@+~m{4_KEjP<2IhNvM1VE{Zxa6+c~^WTJS0y9V_ zm*}0s=LE*wM&<8g+4^s1{3q>k#1}vLX>SSmYtCU$AQ2uO`*=tAI)E#tv`~eHPK8ZH zTO6K8cFc?lt}rV`o`u>FL`!2UTUe+-!yg zI!!DA_IOQwM-+B-X%eFX$F3-*31}Rr^ls<(W9F5~{>}=;ay^u*!Y280`j35Zjh%gC z$ewT(uSN7h2&1f(UwRNhpzsr4nh5>C7PkIn%w1< zL=hMAwCv(N=E((`nf5*l8?4wKHtaWvFJJaH-E(PnYUw-nrjnXOcfA&7`1SkE3&Xgo zn}c(jfRtOlK5(RhR%0p(QM1`QQplKn%Fz+unkmU^SHx&eM=%*evT3aRLi?xqKY|Q_ zW8r`3v*Vy3y;MTmC_cd#yeL4UXM1Ucu~a;$M$}IJQR4;*LCgGf@srAlJR5R*m#tav zKt-p2stB?{gZyhpIGGQ>E4Y|S6tff7)BxOL^}9n}Nh(a+k7ElQaFb$lmhC86_8%Em zixFsQmA$Ko$8h#me&W4&Ppg3e>@7JD&>4j{b5 z=RZ?S6RB5ZPGgE>McuE9(1?b-!7&=LqJsf;3H0NHH6pnaYB3JrdCC2vCS--&?b99@y63#zx1FCW%>cTrQ?G_H+2*OxpadYB> zt8OSjMuO)1TNa`1Xf-8Rim%TUwNQyi+AR;C)>zP-9Tr^GFoCb1tJJznS+KkR(n!90 z)L3^t8l>ZR2+>J34!vGbkuTPsJyImx2QyasZ4zV#D(SAE;gkP#g%!O~3yA8g{Kh-O zS$#QhqE*fQ&G^YD+nxx9Ez3$oewpPhGXza+sK9Lnb{MZaC}@Y?FZ%(ik2)oQwZ9S{ z(%Y79C00ZxMAf%)q;yCHPfQL_%ZS%*`!`o4?L|r<>wXpwW>~R>MU3`99bAa=V5C_I zT)?ahTlnw{H{4)d<~$hEPQ1e0Q^W1P$^Q}9O#qx!BR*LayxK7pV>*_VsAblEnDqo* z;G7IL%+Cjjmw_n}fQK{Ic$ArJ3rFn`ez&~Bfjyk| zqT_pdD)DU5H>IKKI$-=1-QK1Bc#9t|pPItW_bI5vnc4s<+~2-<@Um(Nu(J9luAvJ% zn0EL=0vFI!d*e+!V%mjK{h@*XrbQ}s*aeb*cuTx03Q9NzU>eYhbEsyYr086!i^h!E zUW|j)E8!VQL>urX5wH!9KAQos@gGb`t*FI&eFOnJ=e93%uubJ{VH|(Us0P*@#M{X% zVhoHYht?hXd!vVS2*3+Ytt4R0W{&qUb59&^flWXpaW5-^Y{DQ7e>QUcP*voRbJ3P# zYLX1?V4|jr?hE2MPJFX{^F8AdJvc5$DC=@9!y6irYSuJjSDbRq7zcZpGBlg!c+580 z(U75_%V^e})2ihA)Nh4eooP4h=#J|QHigLWwaFDN7FLBROS$IUNlN2QwIn0zh# zolA765F6J-7V zhW3<)J1Aq$BfYk^!RyA0;nK63JgLKbdSM-D!gB7$;H2U2T7KfkPrgGKifpSFU04;d7 z@@U)t7!wC^0AFmbj9_bRz~5}gkqjegAsYR>{M)JjJ37;SxfiF0IM8Jy+z z&_UqOHAw5-<+#ZAl~d!hj4RG#vb_pl=y_4e<&Oi1`N6bRUc_jrc z4-62yQ^nrc7+mlIu_Xg;bu17V%`1QOb&Y(B>9bE7XNTAvM02dq59C;UKh;50xP!#3 zqbp(M7nqn2txr?$k@*l0NvS2Kb&X|`rwssz$taCZ-Mh8|z=|(K8bpk68*C`i$}SOY z7u@F&57m}CQCp0~P2`lV)!QKyK>E64g{tu`+Hom|7OY&PB#0>uVCt!S#QZYOD3P(O zA2&U{Pgqr7fj5BM-=`|4vG`N^UD{jd0@gI)T!hN*XO(7Y)u|)pX&~FOr4v;GYV-qC z9<}-dc`NOqy}sJM>Cfb{;52rz-u2?ft8BJB0Rp3NHVQb3SVhNskNRkUa;{jILQ>kyweYBRLhe9J4(a- zbT>)>6vN<*ZX#b@$;J9pFa8s2fy!LW+PujQk8hnlrkza&^q^y=w7;ac(xvGKOr(cw zN}Pn`B~myUezaDNUCv7Ql*fehfg@v#WV4RBQsGTzy6#v{sqmx9KNSfe$V`KEr^`Sh zRI@H2qT|KJ@-8o@d(Q*DNsL_l`PQw$PX6PIMa38BYrHQuKH@3cc_0&@!~hRiSVeO< z^YcHulh=ks%A4}|uY@nS9N7fQWaJ{%v*`p)n2u^feyZ+Ga#geKGQ=~owBM9dT8$Qv zUJ=+csDXRC#ld2dcPF%T-tu#LQP%e<+iQAq-y;H}j6bgtmYn4BFe1TNXmcpZOTrp) zpwY~M3D0wC+o>iuew;^F?X^o~S6{esB16Xj!|FM`)}IfTSw|m`K^Ci(-x*LI$A;qF zo)!5cyb*&9Bs6-et`MMx0D7|fPE+6^?q+&7i*Sog1HBvu!4d}a$PaAn+HR-T z1ed+%pw(c2)UX20m`)xBe@iNpMqzc0-5d8M`)ehfN zc-x<%Z=BE_PoDi~aDGFF;D!dRJO>TxD>{RBD5mPed>HHBu=7Z^?nz=ntGD|8%AQ?{ zd{s#4Mn)4!P}Apf9SU3%GC50zdET`g4k<(Mf@A~i*Y7XPZ6tWvIM{|IIk`c_?#~!I zqXJ*H13ICOKPQZtAix|wBG%1pac9!@kM;%&0{8S#g#Knf^fCN<{VbC6&`SkA8VfUE z;^zbG9=RAIwT&!)klZys-1nk7UvH|s zUsjcK#3u@&s}mOa-K_qF!?6EcTo>*C3OEwmh6+#;u=)p;A$<#p1UXLymzhpO)vX9% zsFuEt!t9Xaj&}k&MDn%1FGH>n{vn4i~=q` z7uftP7a+cY%cPa7K)~h_q~Oukk8!R;xHjfETv@}A;iy|5qYq84D1+`w8%U0mn!*S1;;WMED! z=RUG}C%hP++>fq9*BkYr+~W1Z6pAWk^_HS#V(v2;_8*cjhiwh@BKl{dgai`FIU!I_?Z z@NFtoFL0C5+4w~o>d5)MCPn;~b4zQ=Y3wmHwOlvb_avC`>@OS5&%SmcJVyfaG4}m(K<8`wuk8olQ!AdO@f>5rPWWSD zpFe^f7?G1{afzJp7Zn*BQ^@|MoR4yU-O>4-tM#-ol7E8q2rf`k07gUnY_o)B zop#o``ct8|{}!-Ul0l$o=rS;BwLl9u)w)?Qvz;|GrK&#Y`qD;XC_XZCQB>S8Krinn-t4W(fST~a5)9_~$Vg{62KXb@X^f;I1OsJ>~> zPxm%i?5D5R)nK!MX2-9(SQ`LI!mgz_fo0F>_!S6e;i*ZHl9}@RZT3=@Ji_a9QTnP2UCO->=vLmE0CkxpDgR>U~fmv>(MB!rG8-RxcPpJ~x+Y z_~S6^%p=@K#trEo*wpm>cM+~iY91E_^ZAdXtnOJx@?<*!K-;e_CEV#NM+yD z%oEEaa;@Hzx493s-U8x(d<;uFfjK44-!r#K{?@BsE!|%j!B>2~81p(|wyfO(=cCTe zO!n-h`Yhf@)Hs)w8htQgGjaFTP=I@e$=C!LV^`9@|Bvr%aM0bq{NpDG9Qjpu2&e`RP4(|Wiu%c3)ej5F%X-wyEjwo*SF=D&5 zCyf8a<5r=z>dkC=B)fc$2^d5I)y_skQ$Mo*%m|+r+9?^E3OPN2X(Utx-?sIkm31|tV$dQ>hRe@5CX0eP*7{Gj(iTO+F<6rZ`j5o(XG-XS zUkhVT$S)(vLXIrxwJCpW4(bh`xc9XbU>>+>y=dvAjoXcjsWM%W@~^6}lvMj2MdDYx zZ4)Kxhx?~8z=2+snNi|Y$3SI;g@yk9S%fu2lBdPuz=?!0XzC{A0r03!9b{h#d)Gwu zgF_X_Dj)8t?xJ5syR}7z(C4U-!*Wj&R5S2}34PDQgyahnm}REsYPPwxg1u^4{!PQ$ zKK?_4Vy6cX)UJUN3Wu4EqkQRc7CY1d{TL197nw(ek!ak5C&}hh^@LdIWdtQl0s$vX z2gEom2gLTZAe$Y)bO%6vHqrSIUqgL|oVsJYt9#A{2)%FRDm9FVYlx@-NdqEgN^<^ zMz-UjK?bb+={cIR146Y59>%2&1*;wEcn_^3f&V1Dz47#KdAg^t_Clu@)Q&;_ft_BD zB;nsK9lZTb!xBo=Y&&FmR$ZFyV}SpP z#oS9QcmXZTw$6se=KDQ-2?7F@LExjH)^7KNk@5xfo_#RULh3rR$c zegOp4Th|!+nus6VQ3R&AV^gdQ1EUhQmy5H#noP?X!b_`#LQm-!gmK?c+ig zT%Rlubq1y=bv!--Z~w2Hp(hHS5%n!^FhKveCA_iQydbh-$1NF?5;LOI+ZI=TH86e> z)GJY+As`gp&@7Vc^F$d=J{rW68$q2OOWD`!W&$pe!ZTr3_9=UgxH1LUHhh(;2hm#VjV~nVh#RDR~kS5{b8`G=<4#@5lO@9SkVVXLKkKmG$)G7({aPkY=O? zDvx1y>xCQ6H|1X}bSTjm;}lj0STxe$2!f0h?C6DApSW%Jn^{D#k#9RxuH*$DcN z^njlUSOCJjPYc_5fZ?)igB$E;WuvbI4*CEf{d+d}`d47NQwpnlkOv6E%I7PdXJ_uL zJ8Um!{$E2n@StleiKCp{>|cKkN-yVDL=MaE?7O#>T(f^)qnzbub1tD{Wp_!>F;%Hw zSuI50f9L2T`ZT^jc(+>rD?c+rIZuG1sI$j?K|Lp=XN*hD8l2Mwt$=%WD#W$J^lys8 zRGMr)zDqQ)RpIaR%+CbUBX<2X3Ku^sjy)g<_f*Pme?qPmuLCz0#1&iTJfy$JWcvgv zLch$aZ%a5p(CUdeF+-%M4DVkDf$aFR5R>u8_06vTab#5y-mwvaxPKV#o;U_tu zo8w0B;7Ctwa6n>quFzt{vl0G%5ZZTciEag7(g$vANWI{^hY zItin2WK3%p0&Xr}Z;3S3G9u&X&msg)i{QH|bu`br*?d)7ZL0*eo)sZGi7Hxe$)@CC z5+6+r0+qchaOuJT6q0J#?)wm<%c$6iIPGCY zT}qqY;pYCX(>PfLc{Yr33?HkL53!O3L7@xih4GY8F*&*V^YL}en*;1!`{77vXb9St zr{be}{(!CHG%z7dNqt>ppQywFBvl8kZ{_pr9wt%La4NV`0zn|KBvwQ4@;cHD=K#m^ zUPoy7JdE zrzK9nH=$tmN$}<6;_#8lWCRnD|t#lY{&w=oy&T z*0p`sD$c$V-aiR)-A$qd_bcf}O~ilfbh%FkEya`*vx)yyX_@)E*&S#58xqEt$;tA^ zmIBbAXhuZJ&l*Xxjg3g$whfACFd|bo<3|I- zDt0B);&C-a8+=>BOu;wmLeeSEfO9&h_{G%==Q7NNNhzFH{pJ6V7$fE-d_CWPCDH=Y zoiYf&yo zQW^i~YRQSA_OZ5l-e6Pl9wV|NGch0XK+a+*3)_KQ9Kd`0*k-w1SVhys?V1Xn-q0ZD z?y1rT6AX6BXdxrlAiZl^+p1w__DY82CN-Zj0SiL9)N^vL(^DJW~g zK02If6R*b};ljlKfEz7E>vta+k#)&LbT~QC>GpJm*^W-fF2r{jW#YL5Y)Mu{0%bld znY7vTD;wZPHqiU{3yfGd`gBJI7t+$H&?G^ul9WCdhP!r_?Kdx_3eKd^s6VsCXPsT) z=R)AHZuP^eKbO!{tFn2j%Lnt+NB~jje^i6TV4n5A{0^yvD9MMa!`_{mhT|Rw@QUpZ z#jf`Ox=QWt*_z{)PWMH$6Cx^Ce8b2^tvYcfwrVN`rU@b&gym^iC{>nJK%Q`s4xYlY zs*<#Zm$<1BrHPb4(xytq6&jd$01WG-AIB6qYA8&ib3s;C>Q$Mu`3ZvvRU=#t9&*_T zF47-~^Lv>*nEZ?;{|-UQ0R~(QjcN)DQ$TRV8v#FAkgEQNsuHbA^wyP3HdlsfC8N-| zCF^nuhAnBKZbX~<$@UV927at+B?sv6tnJsD3e)z!;4ET0GN+q#Rhuq$GZFU#K1ix0RjhB5&VC)Re(J@U;P#qYT_ zYOGJ|E8h)vA8;T*?zZl1;@>d)qTKi0C?l+!Uz1>*3Qpx;3&CC?EQgTX01VjZ5;Wjp z`>W=60g{H|R3+~)IRV##d9P0w(7pVpNjc6D02u0tNSG0jp8c&>b^?}UW*PgW+||C)h)$Wl zZ6YjEZKC@#hGmW3=gN-&t&)EL5rd~#9LaM+p=C();SO!g(g%R)kesymqECgqlOPF_ zYwvtF?NQOD4gQD4Fccx3fz8K#$xfv*^_*Yb1IP6YcD&~0(Fu)6$wA7>*tSQY>%GY* z?!e^x<+IpB-&=pSy>gfKp7_^pn9a_g?)kJ>e8@9g!0I}bJ&jWPfCO7ySkZ`H5++hD zr5_yibP&2)hRui#({G(Yy^Xa45XMto89OgKQT_@c?K7hlNGkRjUpT!p zb0Larg|LKq0}sv1`yGyy@H=(<2f`zq#H?=f@dPjwjLfdI zuNtSuu2Rfd$VO=b)G)$4DO)5*-aMD0S;AjT-!e%tbGSk$C`t-@531w$hyJw~IS zv^mOd9xPD*Rlizd&f$^?^p$;meW+9)= zrzd}6swPn|!!xIN`^yO$qKt%Cmodp&A6#BrYhr2|;H?al&^Wz$_XdMdHfPs`4JLa* z+887yhgxBgpVEWPT(4-0|rIUNEHhoFm@3h{O$2xHB0B{Ro&#Sr!M zRiU&=l;p!7Q`sbdch<<7%mnqJj+#IM2v?Ufu=|Bi7i5yU=4RTt%&s);u>jg1N0?>Y zIbSu16Ov}^uq9h|+ychqJQaxVt;rNSA|cIfFj@*o?p2ZNBPG&oTCwPFR?9RO%y!aj z(Yc2$w|cR`{s24Y7x%?NrSC&nYXr(!gzD{GRI?9ajy?hrbO8slS2oL3X-P&l8JU+2^gV}_WR2`b+Jjo zK~N}ccn57i2Dd!Lkp5zhRtGk?>0DAFZLed~cs!Ph8Kc#b> zg-yt=PQoRGjZs_LEt$WjHk!9cGTZ5a6noH2P6=bn&1qgLLq}fb%N==Bc82ue4Pl{n zXu%RTdlAeTPxmO;`h1~0JLX)qxjE-wt5OEEhAIBxj=G*k?}C!P_Z^ys>bgP6Q2P9R zTrEN<(brwdPbro`3pNiYhMSOKx|uuIaTJ9VBdVJ;pY`6sdJ2F9hj8Y!ZkOtfo>Xe? zn7NZL7(q@14M>hFu!n2hRtDmCt5inWK16fwguODFCK|0x?{Sj9YOM-X6QkzNmaos& zgF_XaV{{9|q$Zh0?$C5D)4V@rAr6~YrKN0R0Bdl|2|5&Mfz9RKQ`a_{BA;X-aZ?|Q z`}?bC5HR0#qF$J+OfLqcYWu;AZIY;^Rv6Eg#Z z^MjFuODT^e-aJ8yQZXy+6{yD7B+ZrQDIeJD>DFlJ%d6aQyRLO{SZuCst8SUCH1f0i z@PDW>LhJf+N&Lh54~>Y)3=|iZOSEaoREvo&Y6$N6$%Zu*MW4Jf7kI?cv>8BurlJ?dw`FYCrlgREl`@8m6(r|BurX;g;=)b3; z^{#6!9uLFMfuC6?VuWW08@_S3v;9!h_^}deST^Vd*%)>*woTkjK0+doS_S~yu0L=R zzGP`wvUEkHCPe(=frI+;1Q(Jk$8l;GTEln1{+sH?-|yEWWl#^yuMDqwexxSLW4R3y zx7fxra=>xQMWe0oTZ79B+TsnA59gLYm0SYi{R6PVuxjS1NwFCr%`Sv=qlVX|I(mS^ zL2%vyhHx|lu9uu;;h89*dP_s*#pqCP@dJ?9Wm=)%9Rr1D(?Vp_9n;TjamDEU34J~8 zdDAO&p=ikIM1tAI`OLXZf294BdhB&Li`l@gGmf6dY5CxUU0S*0U0w0uDCN_kf{Y=s zuf7EFk73DYMj|_Rs)<$*w-~89;Yrwl1GF5w4KHQDC0-oyXcN{F2$3BZYc9YVGz0WbRjAC zl5gd)9Z9-LrA_4(8t7Mj?gRGqo6dg6AU?HfU$Rry61Pti9X@>!+SVTvS!#4)<_hFe zWL8BTP;u;#b$U02n=syC?GN=YI3Ka)HuS`TW?Q zUU8l_Y`B{=(#&DIH&`NI<8(aQaYX5-S?spl!jhP74d~^Rg}7C5M~q9)uCpf*4=Alz z>9JX*5^*P?IW(qUPDOfY@1{+S2umC}^}Y_C!b#nzMChlz@Ox^?y_(zszS&QOUGj}K zJNQ_G#z4Fx(jm+HP#gqribN&gvuxVhPp7YGxlN8@t-MWJg#L)Uly;T@Uk{z`6x4(> zEOK#{@(y<8ruSqWfc=p7J+YrQ!GgbTn97rk*&X)vO5kHQW|-wLB$=j6rbd; zviW7XxapS=?Ownj7oqpBT7v^eURK6<%wyBl(-RVOVNvwW117D*!TOZDEJ$&O%a*=> z&fu_HzKiCFH-k=Mxjrf1eF$}1{~IeeWgBO|uk64r)>#ZWe2E;aCRSbBc2t`W`>+@| zg1;5=c4g>uoQ0{lIb~>^j(N?0Wi0MiPH-;l;1zNQ6!H>$B69WW(%xp=$;?TMj#d5i z@j-bcq@evtNLo9bX)}FNTJ7L;!C_|ml3Vp!;jXMaSZuNAX$2KXLC~pTc@sQ!u}CK} zDaWQp6DvgMULa>!JpEo;{@D5#0LBoRpdh5|y*#JdlMwcdO$bHC!JM+E!nu$VWacn| zc}YZ}dwNDC$iCypRK+W5C4mPB1&FdOii5!bzIYp1{r7GT}GzV3Q17Pe-Li?-qhT?hWvOx zHx&7l+M9+e=v9$(Mq@FgQ@6&_G4%Dp!9$8W5#XvGiPCf}{-~y|h;#@u5*oVA8tBg` zhjbd_O*4UoNf1e^B7U*7BTW{M*(lSSaGT~Dvc*08bTzCyDh+csBj|jB? z8Z2D3thJ{$11Js2dYS&ApAsd_dF4Z%`27=qrSk;_)J+f14u`n5doBpp8&ViZ(GVV! zubf6v{G&7UEJE`18k>&tHJ=}-^&TFgrYCiWEzkJT>p?uCclsnnRm1zmnt%b6vXN65SqAEIg znBnj&?P$vB>6OUHWOcyP>{l9KezKJMpE}3S2GBW`<>{E?z?UQv z?9R48!Dk!E;9RzyxY5k+;OvrgnmX}oHFfnpZ=hIO9tZRBaDX>&h%GCrF_RGkxkc5^hdqmA)L z9m>k@!=Y6< zynY1y+h>W4+3VnrL+K0xW~|It+?O6H79;R?B?|1EEll}_fuoTd|B-&X85VOY%dT7$ zHUe0TM}3{egDJr&Qk0#;dQ{c@jo>I+fP$hY)I@ABZwT{!=WcP*pg6X{Jdlk#t9%MJ zWzy*m0JsE&eb!mvfCo^Rtxr14KqZ+Ol$MKjQ}4?vh-x9GrE#i(ovI#w6ED9+Ot5!< zp5VNoFG{%@Avq6eZ_8S$&Il6bquCPd=(w(o64CkHiVrk9Sy)d#3O4g0Zw&fzH8q+W z3#We&YUx~FU&!+Hw+>UOq{<0PcWyP2L}B2?M1BT8TXUkmb0MnTSn25mcn~V8H2dEC zw0Y7M!xnQWiai9>vDP@TZ^@fwRqZA6I%|aYV~6HAM3v zJz}Q|&%F{HpR&od>CT;F$t_L-3iPP($d4B07`0DZ+0<-TP$_ki1Z5sdclOCNGE0?- z)a2-SzVbHgo?>DR@y7V#*8egfV$r{C1pd_nk9}q+X81e^ps@C^_{`jUV|!^y#FdD( z3XA@X;BSDrrK90IaC?pR5fq$N{T`VuEU&n7uY6q$<+gIKpH}`Zt+uVUppwsFNsq@y zDJ22XkUBJr@qfJSY}EDO*-RpkubnseGyDKIcnrSW#|PHiP(~Zt|CO^ z4z>!+QeEuufjV>!GgLH1mUiB0=M<;QcQrbp!k=Du^iVC6hrA(S+Yb{EAV%JuFHRrj zg9JckH_Igh8yYsmM2@A{f`1WO3R@dY(zBMy3?{aXgEV~3R`RRyOoNDi zuMcXbsiQVXw^jj`%Y4Qir24RWfEAgs`Hn*Cm+SjM3hjE6zku%0i0#sWeWkamN_L#? z1r&VL2FbF0jSEnwF@ab<#`Yc!oEA~FWgxl0vK30!Z7i?IIK_p{BNmdflZI`o1p6_8mI?x!Q2%Q9+{JNv(( z8Up1ciG*7_n|JLu3!nm?_qmeo@SpEFtc(=$jKL|4zlreT>-3m^8ogtu+^26E4&a!d zE?4si8cTGQ5HwSZ^&O_zeZ!|e-^VT1Z1!Sger*|(SheYebX1Z>5xj~Q_f(SykZxxZ z#6QD!y$yP>=~&=*-jT5QU~b%C^Nzg@lH8INUC7*3uY!63Ld{xsoWT?0w0Si3teDiS z{Sg!bvpt!M7}Mx(-DO(!x;glWSDg({7@j}u-nYrrAeJ78_j6091AN;s7~PmY45xMW z0yw_Nprm45QeQx8?v>1@`%yQ54o?Gf?akawv9D5v4jVjfF>@BSUd@*w9c6>7COg_! zn1RpB(nV;rSk0EtLau3$+g0Q^WMgc}%`qMppR(Cm=8(Wu6EQ?RUst8s%xOLQu_}ucp4_=3 zI`SInZe#waTK*S6ua^Cp)#zxZGIk{!_G@N)wSN$ao*yr*%w3DF7!2NJn{MyC0n++=p4GXJazm|opWg&<7`J>v+aW}$caJNL|ZJut% zVwhDyaHt=Y>1CWsB$Z5IvJ|*y?AT)M^+&gc9va#WauR#^h`Z;= zQ-m4IigV=k_3=~BHuySiq5ZBpP5jkP)89ckdSBfrKr}iI7|;@D<>6^$B9kpzuwOJ zFEuD%Wb{G$mCnI%w#|IoRIou-DbrGatb8WhtJ(`klXl9Vf$iMx$(aY=8dD|U(gxwX zk#N2GC(mKH84Ibd`sjBs-lVLh$<1d6QiC(p5iJy`r!TopJo^2%kikxZCIQ=F%e0JW z5dJb?i5+rKPNWDKDALcQ3UCx8p|p{_h^rkCnkI<%Ri$g1;AfCmu}tHcK-Wls`wiiO z#W{`fYp0I+A-1&XIRo+2pIH={^=kW4EEjuWeVB#Ssb_;zb4Y+syEgpsrkV%W*))A+ z9SOH*;E|XJJ@@P$_TnD&OeDAP%t(Rg?gPXP$&-0vKG~z9j)M$X`cJyjWe=Jrx@l#^ z0B5EzSXV@17cVVc_E@M}Hy#d?90`;P549z@bEm{;_4(Bu`T^sXk^lweIrznot2+J))!4%G`X`}V0o8kS^?uL67U}}+v-=6cDnnKw6$2Kd{_^r6T`v&TJ>LH z7ZA_qa2Hw=gFys^Tm5c#vDG!gFF)gDAxzD+@SvaQW#spJ8CCV<5f6wklbnM-OZP~z zVdP*`8JRyuA%m~s%f{Ge3m5hwf3U^oD~pPr~@^5v!-&!LvO!q;2^4y_l&%upe(G$zgro5QrLe85>kK8>v~G?8z=++r7R_YAOWZo<+{{3B z994ceo6xSJRcRqn@ngT8(H5mc@eh(yN^wQj7GgYO!{&3)oEYGfmRa8{3pd$-^#req zJnhGMeTAYr>9HWerG_2?exjI_?L^H9@;Paoy2r#vAHQH3E7;{QA!wH5v< zY$63EDtStVf!sTp)kf6m8fgOu#!i)?r07&A*^TTJ`HOfGP3#b6tGdzIwRFN*{TvCr zh%kTT&yV9zt1ZPncgzK^bqMGc^-)qvg)k*dep zPnL&cQg^h6DOjj3nQuq}rib5u+c%7bFuHiJ8iZimWtlDSjy$vUB$qX+$E1u|^Vi{W z5WBO?V?SXwTwBMZub~tg9dXz%^O@s>fot*{OyUDQvu~-zZ3g*Yg7TQfHyR*g$Cczy zqb&fKS0&V_C3`*l`}Ok4EBftBk^^+og&WBKxyX$NLdcT%`D+ZCiZKfy@(N(8e|3u0w)V zbivsV=#a+n_?#qcWj9a)%9epV@Vr>G!yjC0l>4SUt0a@&bmrl@AUe){`=J@JkW?Q` zD?cgAP|^t5qY$Z28Bm>dj<i}zb?D#wm^-@nNoyvS1 zEcfNz<$X=EZDFmekLs@wg?t`$vmQp*2*HFJjnl8Ru&x(}jt}<~_uqCy0QW93Y#PpD z&5o$f;_r^AW@a4GWuJ2u?P^?MRw51wmAbUusYJ~ebcO!9XmGh>LmX}DlU9rN0I5Y* z>varB?=o$pza`LK*?&sv1f@_K0c~|B7>{lA_CBMx?#*HRT%s$7OB@vD{1OVQ&VKI# zgLIi&vI?}^KRJE*<9dd>?)H5?Jy}R&Z?56Bj!TstlhiVte*ch8o@ZX-^=y96Q>|g= z`o;h-JefW1O33|!F{~ZOY!3*`!UP51HH1lnY_<%Hz1~qF*s-8qi~DJD7RCJaQ|M3B z3!y;I^nPJG*h@C)(hn{dK|vo6eNaCaD~wr0xx&CNJ75Eu9iT7=_LlM|*dL_jpU^f6 zsN)~frS^~~NjHg?a?tDLY1U9B)GGuYH7y7savYY>Z;{qBroJB#_uRYJ@W|F+wwn4S z!Z3L#HzJn{R3DzZic>23sJ<0DgRa6thTH5(%JZ2t-pNs7ioPdw|oNb;xcc8Ya zdfgHSokRR&>n*uw{Sy$|n^#O6#0C5a&`9s-(?}DKT@oHChD^9jXyGq$w61!7gTjGq z`|-?>PsZa&fE6|u}qY&+qDhwHcd8%f#Y#2d$2530Y|Ecai`E(`;xel<)4jT$P9Jf3a zXnMJ8dF8>~^8RX9KwHwQwX|uMChUNQOmVQ+dxOqNye4_rP8CpiOR!K&MDmTY+=FyJ zE(cMB%BPD4&51^K9PxApXQ`LgQP?1oht1P)QYI2) zih4Y)=Nk(0j(wmwL34Yj4u8+M&tBQYr$p<a((` zU(*K)YG#t&R)u3{3{E`i(I@s+B}nv&5pj0R4k39=y?Z>k@HP?YEKHisq)4Gn|9ALS zrNmW&VY4v^*2aKbIrMged}5o6O8hr@Jn z^_3*aXulXljuggmK{Xl~WHb5aJQ{|z>cJ(TtDO{oJNJrkU!db0E>uuF7-lYvTBia^ zKmzk1aMoiG$2oA~95I%jh9=ldCJL2Ys%L7~Vd6%!x>(3kiLXn1aWRwdoSCRf$Q2lX zysn*H&1lm9fZVA67c5BEvyemM#kqgOQ&i`SpIT7VXjZ@+00+-FMvlVRWI!`)LG-5k z+<>!yDe|`dw`5f)5J!(O7Mn8dn%n8qvrPwsYyaD@VRdJH{2VVF+uN3A%HpEq?Dq)9 z62Dm7Fd~?376Ri8JTxt<*YO=|8C@_{#J?FxBuY9zA%Pj(dqusT8W>3@F^9}!S!2%Y zTBnx-b)>pE3D*Uo4LTboT<}Xzm7wOl?qP8`LpyyNf}4iE#kvZ|6ZwRV~zDQ*j= zi9TCRf!u8r)tECbyOk%Ss&dy%WePsuIIiUY-2(h?-Iqjhhvw*H`3{ORg6!^4#)$5D zAZ}M1#>rd%L!Z_>6r;w!x#Zg!wp05*pv(|XnTVBA=%4xo%vHlxf83gBnADjF(AqkQ zDIKqJwIxeI(}+nIVK8m@J`+XNJH4?TCtC%cly$=6{{9NSB!aKz;8tBtDsB)_N|qGC zogfJ+W=rYHq0d>J(P2kEgL0B(;=W64v^?r}!`s#2(S9`-|EWDQJ2j`nc%NZX|G*csF*TR*8AhK%BO9PJ z%qnr}(dbIs%q3?YHFpg-l{Ys`9mgonYm`@c1D>bYfzgJmo<_DOtC;Oww?Vyxdb}EU z0^@LQYOZ|67kH#V0GFHvEj*nPg+<%tLGw27I&VI#L!7_VdDs1cyPl>DTh4I;AmEt< zwXcZ7w6hLkX)rMGnQ%NE>7lBboEZkA#%c5IzkCj?@B;LQ&{~gbi z>ICOL4LM(6WPxNB5GFo0?Vx-k`Wl>4up^o^vk+Gv{qeJ~mw0(d%HT3+oOAuLaA(?d zY!p2Fbq*Bh^c*y~b*#j)zpky`2 zobqnFgZ&g3KkVH@zbJLOx^p6p1o(Ns+)|BBC3J1YTq>Vd+OHYu)LYzb*zf^hL*v!Lk-k6=9yi9S|Wt-)rS;}EXS%Bh~Pq6n&+cp(E zQ*^gUy+9wDsKD)a4Kc<<5bk_k^Al$>V^)F%_196mH-Qp8g4*YtZJ%eMv& z(TVF>y@a{fs=D+azjy3BkB;z%wiOO@l<%6E^PB}b@)avTQ@C|<_!{nB!8tb6$vW1=B#_P24 z&qNGpJ(7C{7pVxq-dhRB$$2^!HQeO56Af-_527BOTc03+a7U1fgE)5MCBl4nxTeqA zI}dR$v1zNBM*-%8(8$nOZ!+TD#VZukXxcDhq{vvkc-(l_+J z;1iE;YCJ`HkXJUr_}3T~5GQ1@Zp-W+)3t5y(m42`+FgMo(mnCYAAMH0vjb_JP)=Qk zzSvRZQWnNl27TIKV4@Y>ygyRK0e2m!ruO|UDZHctA%Uh7&gQmP|u&1_%hkM*^B zVCt0cKubdf{#!R*lxdhm_G(&HBSxvhtF3_Gp)?E=&zJFa5e*ps0TI_Fh_^N33`Ie1 zYfDDl%}0N#Q3Hz$xfgy|*CCFI${wv?!&D}1WXLqCFK_|>XQO?>gL{a!M%nyYRL-!z z_~_c)?EDn+?O14_EBMr(^A*;1j%*Ra6 zAJtQ%L!}vxiZmis?STsZeGPXarb>PT;wytXMS^vuL=Ka-1&tM0_?TL*$0{%a*3UbE zIF)#zgAF}Q6J&+If}Sc3VeGzk4RgxpMU2BYOik5yNJ+(klzRWzVW<_Vl#EqFnjEWq zQ3exhhXW7(xzz6Rctf#P9!`q^=}NDZrcVsI*Y{fj$y1i2VSc#4}jB@CI91ox1% zwUb#HT!<20KQyPjKfKSc*Q`t=DC{1dusHkMk6VdRPZ)iRv?O@N8i`Qx zpH??Lhg5c-F9YU4i1h3Cr5;;~+-`Pv5gr&z%hlHwdlzmVjORSjo;R@&Vq;qk2v4VX zp%a@RJv8tHHCUHeM8e zt9*zDI)8=fa@T`jG9!OEL@nOg*3`vbs%Z?}YBrQWkBM%nI>h04-e_pR-n9i)$firc z)kMPuTsD7oT4}X1Kd}ppR%(0#QwSg0f!;IoE!Av?x{WZe_I}PZACY9QGnJ+Q=wCqd z(owz-%%^hYN$kjg!GEItIew(>u(jK8d?%D>Q>d~)efiZ(BmP}UxLI{w12kYn#Fl?? z|6}I(2B}2=M4mWUqu1Rpzm-6CY_`9(W-7!M-1c@`L9n6SiOM_wMb~Z}O5O`%JgWkk4P0~{- zb$VD^K%gb)ej^I@70E}YoXpaSL+^~SJ;vL}M*{TmduQ%gdE@Pd&Y;(flpDX``X=Q{ z!tL^nt?}0och}62j;311dQ*KcFz~qXWR_R{z#L3-3ZaY?9Bp_dh3o(IG~27FrNJ-eZ&pCKd-o=;$fO**`S+ca zOD>&Hz-+nW!S0*&m5^Mx^i)K(|B$9zZm)*{I9r${?yYug6(viX{l(4e(u=ZClE2lK zIUDl`KfmzK1Y`OyFL)>74gGRF3dJ}x&DkZ!nCt+wca$Rbaqr?htxS>JqfBfYB8vXk zc#IoX`0%`N4nMSUo+VRB$j`_0K-~%LL-CImjG6%;8KZ4xfAG@@*A7BikVU>MwT1(N zaF>jak{4TjKOCWF0}Dj(s9yV2$i`-^qJmmn|Gsbijrn8&gMRqQ7JNV%HfM-2s7yJD zqRkd4KUfDt)fx|OHGqee%6aYx9jvE*J(K@q3DcPU$@CTdJc?N+B;57z?m#7j#_4mF zVpNFa+oDA)JV28C*Z?oAoR9UDrFgopS2k?t7~@jybQ#lFkok4ewwkVn!ol3x=6RB2 zY+%HAuYpCRImP?O^O@t#Rb0_hsJwl7rgxaBomRu7jbv?0zcgPO(BJ~6yQ1Xgagw7S znH7Fj!0I>q#Hs&wW-Wqves-tbgdX z)xSKp#6R0feW7=!XFuC{HT%>K9hg-F>Rd37b!BU7V0v^~@s=nTxvb@BqpYI}rSkFW z20#oUC2k^`@_)HWc+&fZ;C_$d?#No`7-LU7L*W32?kt{7cvpxyQ=j@rkA63++znjc z7ANo`A0ohF%>Md*nte>8*wH+WZ8~3ih^P3kYV2hp0}aGs1|)_9{=p{`b$K7VcfMDt zItGjZ3N9-sB8t6Feuwh>s97B$8_a&4b(J-O#dtE92&m-I6PPb`I6{<$#qu}k!G1K) zKv?3mZI8Y)0gLl5-#MRLjHuJql(r|N?tDn6EanE#8MOgh@ClSX(!Yau0G-=gNuK`)FUh33{26=WjwCy=_FT=o@-kxK}6uX3IIB{ARI1)XX4!CdzQ z?0&Amth!Ai%ol#BZZh_t(QY6#YaJ22j~VY4-WdvvL5<}$$pcX4D6aVkpM~}fXg%P# z#6wwACVpc{(#E!n2S2CjZBsk}?=eM2L9{=FEG2B}lJGR|F%&ql9n(MpbE<~8`CISe zxy6JXvt0*P6ht%jWNh}yhInSAN4nmrYGJp>cu-nag2^20Ol_TmHl!QZP8BUsE zWa+>P9+9IYKaT66F|#?BRbUyKNrJ4O!xoWJ(mDNFKH4um_&SpD7qYI~GWl&;t*+f2 z$$cz2MnKi?YN+J+9j^r)@fx;M#tH)<{WI1mlmLombwy|WABE0WlG{K19O4C8pf~!c zt|qWGLFfjg?xOfkE^q@wXq0B$h!pW8Ckk#Z+0n7>tgO#z3CQ7+sbL>;3PfmoW}e*Q zPDQ4qgALdkYz_X!K5lCzPuYhcw}o2tK%8)NR$>w|@H3)KoaN;V2pl@Bd$0@uZ_>fU z#m+%nt5n9}4WZAQx|RP{H$D7yV4V{npNXJU-Hrhq;`2kD^tDyGea!Mt21m}x739HkPKZ$zx95xxNu{u@E+m?w|@ zYTSQ<2`GNEH*qc5Ic8VW&3>1xgrc5kL`A^`JF;m4NjqLfcRn3}bGQTAA+sZpuev{C zW7A8RE2a0XD*8d6IeTkvun$BSKZ;_3{d)o~HM|BjB1i6kv)~V8z(mmLgNEQ#-1Afz zh6M@G>;00d|H&3uM6Z=`8#z0pGF%!TU6|*%?iH3$O4A;#F+QGifF1iuF4wxEMk^Tv4QZFbm9^5Fjg3O!2AKTDz2^Va9E|H0yV0f{FtA;oN0m)3{)< z@SXR@F(79Ov1NhDl=u^a&gopZCL)>rvfX#B)t1U|K?Q$fMnrwD&6~TMu(^i?;ZE)b zLbP;jDJ+FpN3YjTjg(jLyV4U>Pj;St95jj#cZbBm&ETTr>qWvIX4!_4XCaEOtp8;_ zu&)H5-j#toa-U>WuP)Jx=3?X}F6@j#;OQ6RpgDF`_NXDy5y%GACOZ)duw$r| z0^YCYn-^JRr!ol{f_ustC!+l1Q8wDLK>KVH29}jmb|4c+iCFuiGd2xRRrCo8A&5w~ zzezkSys4vWM_}zWn({h-EMgizEbl|);SqW)Q!Qfd+VwAUP5j(QhdyzWD@-ojp;o5v zZ^C19-c=+B^ojiI%$DF^iUadxSexF~S{_x#tO5~e*e3sK?nTU`&MVJ{cm{XEgi+jA z(ZPK>*bY{F10>er^bo*DRVRrD-E8vJ>cGP^uxYnlj}*GNL533DAqEoNBce@Iy^^b? zN0m$(4K0f*1kWV;(=U)u;@Z^YPPsB^kzmqC)UHwo*Qyn~j0;uK^=rX-lw$}|xRtUx ze&a}oVR08o&`#~#{WPF%?KPEl%bj9{Gj{|T0Xk)eyUO~h ztj|afLHT5yx(Tp3$Bm%zq1?ZVKVfh{w%x4$5{-uFQ5hIsW>OPZ`9$DeuO4QWyn};8 zjQvaqJWm-}xBj=gFU=(xS+ zXTm&4h=Q$^0kK|7JTO}Y4ulk89-R%QWIe`%X3Q-&(_oG{am0*Am;oG(i!4gWsh~%& zwBB)ZNvkt7ab!j0$s*<`?S>&((*e2cVqCxtMY0f2te!oBZA%89W3rU=Kg>Kq@ z$YviL{dH4r&Ae+wd&tJk8ZFGZ>_naeG;uyMOSEiTpi|pXqU#c@w7WL8lJUqh2Z79R zZR4y}l~S^iQWMztcVuZ6ztwM+ImDWI$!Ca%iC&qV{h(psTD6kmJX7a-k;N!Lo~+)v z=4TBF;07ZT@z(NGwXUF}G|(lBG4*m;nhN8Q^t^VNaUsP#&no_22VJ(0KT^YxPjU`L zx?u)U$w~MwQU_nqQxfzC&~ggYC_8GWt21gKbg#hptNtqzefhadAG!`)cncpcQ5-a< z$U26-pRJ!t-NUt8IIa|0>iIls=NR*niQs%0bGH^g&oKzE{6jv@1uLB%J=nWvq>G-o z)0E4ScPA$7okIp;t3$@RU?d1q3UZ(^<_{557QtjkW<44vItv{X z_}B$mH+g!DLyZ6SPLgF_?3=7#v)}pGP10fBi84^*cnN7gQDfqF6u?VvA!FT-4x6YQ zAAUD@P%5Vq9QxH}0wg^o$t3Cf8wm16a0W{-Z4p*-;{#Ppc3WKcGZG+jP<#ggVGMy8 zr>99qawu2=jP8TR(U}swCfJgxbulTi=(s^)9lpZtOF*lQku{ea#2ho^w4WaV$q+(OJ=+F2LO zqI5EGs?{53FG8vL8<(N9tRkfG;NAUY3W>fuuZS?0W`0}L+AGi@zCu(tW62gKO&hw< z3+2fg-ja5vaAr;w_I;Rr;=g=17pcOVB3AvLWr3}_o3HX?UUh&!Q{4S4FLeW-TfEfp zA4*s;NTR!4I(-V7p$RSui(R)6^@wq4QLUL9yNB`+VTj-1;>{D$SI(*0I`r`U(mHIh z%!!~vALIoxVk-o)tn9Lp;oLIXpZ9YrGW`>ahhgPN#mE!ED9IZdBhgm|^zhS9d1Mrs zPN4;sY|}PWt%fvh&mHu>3%wi<8NU$Gu2i_S)p*gA6}?+EjEB5?`Rk1Lp*mPt1@fQcu3IlXh-4|11PRSkl_J04L$Ldv(ObgZP)>~^I%l^*e z__rE2HE(_FX00pnM!Z$4#k4VwHDp4 zgoFH(9881N>+j8{`{MEVWppwI?BhnMxNz{C>m!-k+XlF6WkS?rV2|~_NDmXKO>CgE z>|7?HX%&+ve91GrWW&mf+}cf#1laGh0;(3D5R`*(9MP34Fs6@-4H%5je8-3cZDg7s z1qy$s%xm2PX19-BO_)rL5v{P_$c=a3}R_h5q#;2$Tvi;ImXP; z$ZC{W*M8)0;@#LLaR?|I+>IkZm@r;s7w+s6jboWYfwAyCXN!d4{K|NF)%iG{sY zKe(F?m_j_cPno)k=6|WBs|tY}W6}iW)xKHW`vSBP6ghrQtqZ`W42ju_1V-`d=lK0v z2}Q?5SQfC2H7c>nOU|B5x4UP{Xy}ijA#jeq1F;Hs?kh!?HV%R4Qh^>KEdLdD&%lZA zX2otZ_Glj6B~rbATr`#A%tr8d5x16udN1{33&QxrVhUAR(sJp6S{B?eGI76K8!ODe zg-=5-PaP*2vS5_AUU0la+2P8qP}pRvN_C@zDmiKDi(o}Wr&9}KV|_l_6hTyUX&kd2 z`i%N??-))MNUID{HLjB=3Qvb8iXZ6F#P2NpH0gIn8 zX|)=+!MV@8dI=#T*U2WELrhtH9U#dBVgX1{NqmKpesaJE8uA|^O zgAnIM?UJX;5x{Ub2e>q@5>h zCSUN`klw^?kjsJ_tIbGU317^*kU%>pn~fCOdxOsLb$lQ7kONdk8>H&amhmil(yXpW zeE*fhQakW8&T0poY-d4@-+#ptSsbgzNHt#5-gzmvb2(^6C4s%2_}`wLz=`W zfv;Vuax#tmSZKCK$)ce>%BYC{mbDM(e=id35~<-3n3a@@?~D$Cs}uPg!(fxog>%0I>B}sy<-gq9D&-K*K|T%DZQ_ppG?0PU)or$C&l>y&zv(gg#UJ= z8vlGn8gu$(3QpB`SK1N8mZlD!MBn1KG2d^@mc@iNNS@?6s-nD?HfQ|1@B0>Z%BTo? zi=I&S2w!J+&u@Cs>8%2^-WLxk-5Xxpr86;rYNLSRu7T$;!ri>RNj*qF=lqL-wqRA@ zR$bu?wBwT|5wW0!1?nb!0>u}SYHK*1E$GUhsG-Rd%&n`j3{**ovf=qf%Vv43t(wVj zer3s2_ol2w@V9=Trnl{9C8oodPFu>}xIjLomyiQSPKo{FM&bb8zc}ZUdvA+nx1?)0 zK0894Evh*Do_GY7)@zZye+6&!;`bxcM3W8(W&;|6o8A7fh~*Pr5Yz{r3gd$^XJ)9{_rxn9M`Oz|}}YN(uYtNuy<_%+ovnGzf{iUB39eh-gB6 zAO`azuUH7tutbr>6I~98jM_eEI(m5)5Y;c)hEQA3x?T>~$){oI-n!G)kk72}lQlmp zA7!h0FOD{2W5vg}L#59GXt%u&t2v~EdyYa92S9OLZaQvN6CwnZu>l@r4NypT+VkLt zXbM2PCny>TDA*1~M9*OeK&;w3iqpoRx>eV*ICc{-OL%L1~sj*et zsg_6XjC+@ff65v(dPlFs7g`kX$SKh%S{}cVnJK5`iMIVCzJG_(<6Z|X=kT+S+9h0& zFN8^Jq~MMxZ*dpxFV#m{5vt2Ev1guqh?GNxmD=HpFT=fqZfDC`ktL_dp12I^7Q0~8 z0mYVHN!dHX+4%smp5mv@-n3xtfv(W}_1I>kgKRu?RAvWoWqe^vM&a@U=_x}!GKc3a zyXpK(J6Rw~<~GU7?`q_?`*SJ8O`9r!Zpcv&AiSkL4=oX#wI38d1?xAf798WfV-Z^C zw}YtLK(Hv5y%XKa6g6rEIZbYzg*z40h;!KAJD_Q~)pCzwBfLI7FPni1UgDd9rXb3u z;j}Aq2^TlU7w>2(5KoRBrb$Y3G3&rTK9pYR1j&BsESZ+>#Es7m5mukY8rUc?nn|L& zD_DatiXa_pfYTAVy%R>E(EPFEKCCRjIxL+;UYs7@RGfW=DTfqhg665q24NmEo`KIl z8T>j9PC+>RpyhkQNVzcLSb4QRGQdn>nzJU=!ZO(VU=M{7LDluebH&|$s!DOA6e zB7@KYvi=~O25lSEe`ArHq2hU1+wRhH}Z%%iSiNk6efz{^O%)XGta8TqI@?6T9;S8T+G&kUE4& z?0jb-EMr@ZaA}$&6NnJxcS>fC{bk4AM(Q8ZkTu+ZNakJPSJ}1PX+Z4k3vbvZIcl6H z>~&iq4~Htdmxs;AbUcsT>9jDN!UxvYY@O*HNMwRXB{V7K5ek7wL22Eu2;GrDp%`q$ z9#r)ldWpm6*_;}h0ApfnvX1Hw@Vzy@KGVtk*Cqn%$*soLsDTi3vtsSQP)E?#ZYCP=F{H$L&L;Y2dWI(y&bPT z5-*YViN}Jn7@n%-M=kT;%OK}dlakwDc=89Y3`Xcgs?ltDJ>C;I*cjQ8))7@o;tWy- zJ@pB5mW+d1Np}l0W1z-uW`dhtAf?%uiPv~K=>6@H(%U${+Cf%J=jbv-k79n#NcYOO zC$W=Y31Hw#GLOG`IZZsvf0xmsmYr(-tqPsMtC2tG8SxmI(c$ypv*?#NYE%dG z?!Ts8tA z^8GVc7tp;ky(MsYbnqXY56WT4vfp>$O4#Sav^0A`os#^eP@-Ac7yKl<9{N~8tZdfO zfv^{>ktT7Ly5FVbj23?X<&F-@M02cT=O@Q9sg?K-qv|P$uURgA?y^bC!y-Qh=l7i{*;2hMDw2sJ4!A zTp-9XeoqTl=(CFI-#IL8lH6NBX|tpmCeAgDy%=jO{Fb6BDfMwQLxBgriJdR6`=b&t z$+4LYnSDqN{9U#ym{dYYElb^dFRk>fi4(|r=j0-%#1ygWE43@Hu^C*)&ACFpj63_Q zaY8Ff|0tYXnm1DpL0}NpXl~MydA^kRm3rP*(F%JCN$8(Q|5RU45wdrb>d75pHlIlK zX~-S=pLYa)y~6~2ynNwF$|NNg*dlAo+dmLfC5gL1A3vk2B$*P%n53DZf$aWyX!DAr zNl-=Oza_|TI_3L<=w~FFD4eaazbNQl+L&)-JjL$OWMdDg#dT6^7Z950)`ew0gR#9a3YF;7^?TB+LW%TWYw!B+xbl2uG-FILITynu>dR7$ zNV8c1m$|BuEDacSU6vLp5Ki1suH%yRe>r5bGLvR@CN9Xk6TVUsX~3s(Z%=Qplniy} zp&@WG?u^$V2|mb^8HYarTy#IzU$TnBXIn)Q@8Y<=ye6jhg>d~TQdYsO1z_l6!lIP; zj%|d6Zd@w=A~xPu9ZfT<4hbbP1(Rt&sOGP+Go$2QdJt|yrepIDf%ia5oB%owyA4y( zC(r`%*mb*4T7s@q+}zjN?aVhGztu|010SKRMiV9Dvzu<_%I)CiyUn9+oyF&hV{&st zSyzj70(|)x3KC>fKMILO>WL|=%!=fN8&HbF$Xfrq%;|V0S$^J)1VhGNy3`Gtm^(aLs@?0OZx(JBes&?kpqDM}H2@K_x0|ZJ8@^-yZ~S zwnsu5wfLKLMz(h()faYpF!FGiN+ny}=qs+YkBCr$*bIA*$EN1wVM{{xY$BolvAFy% z)Y(}>s^_iYhIB7>LIvT}cdMK?F<1}d9cdTi3P-{d`cx$cD!bC|Q5Uj_JJx}Mk4|>5*k5a&(j|wH>2Qwt8p#tSCDtfT#Y1oTpA(YqgsDH zJ?qpLGw8Ic7ii7Aq9HcU-|bX7;aAm~PS3(7rW~ye%=2-g!9Nko{?h_@<6$!^ zMi)op!bT3U5|&-g48MFsjm#?C;D&on4|=(y9^D1xq+RE(0_mlH67u{;n_;C*6Oj9@ zl9cF!PtEaTq0BhX8IumuN=ehEY&@DFrj8l%zaS_?*;b$r|BT90mbOjyQB+kSpC%6& zxe`%x@%{u_*hSu?v4|cG+<}33;L&CT`h$bu8J!;s?v&ve6zg~Cp-=Slsbc*!Xp;Vn z_wO~o(0fnn9j|%RSwidHy-H1>%thjQ$z(89PEBA6n)rA$LX~=mImIUDP&KUw@#%Cl z5LjOxs|xZ%J%!i$XPRTCokdHAVq|a-&7zUUyd`V5u=H&n{LPEze&n#$sj;{e6Oo#f zi>i?DX$uMf8NZXo4gk1g&T@o``K-{o`-O}S)u}9b6kSHZDNN-?1kW#DQK%k(V!Tqe z>mQT@>&uzHjaYMfOOoUd*=G)K@K0MNPGs9Hsq{o4Y_4IAjefVO!Gx${ovxX%|M<4p02nE#7p`dv*- z+2>9jZPev zW9TvGd|eIw1=eSRzB0oS(I|Q>E_ADnu=r+qZq`aZi#Jb{z#Cg8`CD5{hU)x z9AZ^Slouo~DiEt@|3^z(lyOihlQ^c7L_QA&3+G0i3ZGO;0X#wuc-GVu>3YT?)}Psz zbrASTuG(M*8G5qvb0XvY=j&6D;1WQWX?vM5YSP4QQXmyp@~!k>Jd8n)Qkcs`f5xdc;w zHbG2x*I@&p5CBGW;y3ZlX0X3`wx6v!uGu}?osY2(rqlmb|MqN^sDT^2$MUn9!asS( zQ1=TD=bxSoi|dNcpIeEk5yDuFq3fb&bS{qK_~dI@UW{npnSON2To%*oF(ChA1Dp(F zxqGgpme$?_*FajYq_`nBsh2YaPvS7y_YJ&98s~pdw}D^#+ve+RLdF6Sxd%82oq6cb z_F%xIr8(-12S)mP!MVcaR}{F((gTj0uS{3oe-YGKNaCl)q~~-Jg2?U>FTssN*v#1- zYM?io%h9pD4OG6P%O}c<2mi5|5QYm9^w_b;Zu3;MA{25qkH`s0@qMrs013l>ebN$( z-w{9+8=lU#ybx-L{dtSyuhvq6JU#$cBf=XET}}`MU)e+;DL&D&$!NS`4b1sJ$YfIU z+L@(;kh32RbdF?_Scc4uYYQsPVk@QCC?K=*bMb<7NgB4j`ylP^BB=wrLL^wT)cJ-q z;|4c5sVYq%^Qt;EYz4U{y%{s62qD;F196i(3laF00F`Bb=Ls`|2se2kP^E+>_oCB? zjA73PXzD~de_;AYOO~BxNzNhA6LwOYqMpbMgv(7Y2Y$p(rm@ONjRu7VC!MB|7|(sw zD0|xrgodjgKv|t*lnY9nVHMZDAtAroD0~;w>L)j!@nI4nJ2C8O+JtJeK}ZZn<8BHr z#iHa;Qt++Zg3}6Vjl221k?`j^K<&Nef&rsxgJm2P{Qi3~$e(P!mE$gj;#=HH)Z59~ zM5918kAkt-sFw^nQ8CCfU|Vn7Ck)IfEL@or{a;{8#)*P?FV1l%e} zTn6)23FquLpp6O2n`-rrBT0>2x#ez&8T4L%Qd+jsqiY`yWnU|plV=mF|78t{Ga&rXX z&2&{gL-cTGXxJ;zSFE;{&Git1H#UpA*jO47xM|#U_w29&XXYlTp>E1X^s1fNJS&iv|cu&wXjn0X5qS6}hUi zHDP1qjoFH%Vd_ft4c`=ER_BwJb71Gdh>{L zREv(wz}J^yHPdT$*{Y-P#~((6!m4%=d(4PqpQ+wVrNH;*1yEh{ncqrf6x}yLe{H5f z9$aJmXy*mwO#dE_RfFAj*5hj5!#ZxS-T!SbK4WwCIN>M#(#7bW_;gmqDqIvZ7g=e+ zgjSGNLv$Knn!BXiy!{`Jt}-BwW(ndFoZ#;6a7cm^+}%C6li==d!GgPcu*03;F2UX1 z9o~NL4|gob?#y0KcUM(!PxbQ&MD}^#88w`1-l?lajaN}dJnCrR6lr)5%Rp;^r{OH} z{))33KJJ%Fsk@f2B(-&Iw|h9Vd~UWZdSH+ ziPecx&X*tqJDKji#ty54%-EmvUVfbPjEN`zp@i2kQX|ICWR1ER3CxANQ2%>x|8OuE zwBrGN*wyIK(5S+yYQmn9fkA`&k6lpml$Rmr=?xb1yng%naIBYsN>wT?5GEJXR(>9$ zN#hu?JUnKs^SiD2M^gBE#40M^!#AJjC}&RD?eF(kD#c`Z_S4^pPMBwU|1NjH9ei^G z`xpK4(uSK|Bkj-D+C5``~0!ev`nR2~IfpH_My z+>+gPn_snPK`HezbCdMXP92`t5xo5xxiuUbXRc7ExlK+_4=mEeOHq`UiLKA}AL$y7q&TMRp{Rta5uWNqx>+8$A@Wjl5#e zBG}{)4Ye^CB>*O&%RssT-h?rWmXUmsxzn{;EJ+rKRdgyK822fLddv3Pm$PI1bCAr3 z+HWf94>h`97Q;ka-g3@An5gvZZ+#QY2hIP}Bri&qhy9{c|4YF1iUtHwk7fSQArUiiKn{;Ip6Mvdh`?n$ZZL$nYzVC<_@1tx)3BKZJm?F84Cw!ksew%#}!u;6-%*`8vaR}ZVqjBG<9F2W2F|27KdPc8) zo~!TCdmfHGD6n(n%*@#j;q7ZtiLd44fSMn|dv-plmcF!(xVj%gmsacGRdAQ~6^2*f zM)_freXz-tYvrecFtFNtER$EVp5||Ovz|i&MhCai8?yl1f(y2D{rW%M8>ykstFqYr zy+WmzgK-S}Jrjr+8J*q!y;p)x0U4kdkzpPns+rKZRqwN96BfFe|Dc_DZz~M(qB^)x zp4v%%!G%vEbH&6V`@ET2i%U9xtaTm$Xvnl9m?T2RwN8Iir@h6Ut^P$`xV2B& z!gp^4Nnb2gGwZ1vA*&5?-E3)on>F%nd*J%LQGEf`KjvWuov+td(a*uXJ+LzfJ=$!U znzcfmPGoAwmE$$%d-}@}NToFCN{`WkFs#Gn>y*785l<4V1vy{|RpaBp$C;PsIJD0k zud4|KlU@09)g#1I{H(F>b}g8{IJdSWCZH7aUmFE=CUv;kd9(V41L0S-}=H9Eko_yYD_2f@g? zu70cV-?$iLU!W1m!9|nxAY-iJgOI_|(8Sy%KjEnVmM&(bDhIXt@tf49;~iQ}E1RCD-dk?MUJbJt z9mQ6r(?PA3BwxlQa&@eCM8;X`6zO)mHOd|dRoLhHcK@6n$DHkF z@i=iZb5YrzAyFNH7LJM_L}Wa#+&t+&3`_!(3I{X<7n`(F_ke6sEv8&+0_j;D9Q1&jmRWYWh`?IW2yY2@^Y{*31QAl zizG^{)pRMr*Fb8&F%v;w{UmNyj3ZeC-^)?Xx-p}`ELl}dX8dWdUPn0AA-6Qz)vJrw zDR72rIR7_|bZW&gwr)#R7LM=gB$W^iqApURRfKeL{GS%8hOU^C1@#7grNLMVW>tW? z)s&5sD`>sOJ*)iQLzbGXE7SWAiSzr+pUWaw9kTKNrl>)yX=@{e)5+g5&=mX~^sBdX zUrvMMhAO(Jx2^Xy;ad1d-D|RI=WA@|5O6V%8d_=YT6SPA+^I0K)7fUnf>wNz!^Lf* za_r=gG*Y8jk#$#R0+^}Nqa%KH2ZDc{Ia-8ZhiA_0=(otHNa()aR193<(N(bLq#lde zgyy0M9%XS{dVmkfN0_w50y`bh%K#-6Y|BYW!$q=@VK3HIp?=q1{=(U345?CGVdp70<*uR|Pi1T)4-MaCC(P>RFKRFPT=Zu` zv^st`20%eYJn{pyIgO%afsliO$V#ZI++5I)TvkMhmRq*$+;7e{h1n7cdpc!jIyED#W?kS<#nxL1T-{$MwV5UtUY1a_&oa%$UXx9@F|{ z8QazJ&g`KGS%Sz{%D4Zq`XsDW+s+-h$7wp=J?Uu!&%J~R{vA!E{91kkYj&lRU`T_z zc12o)?NHbA!Ufw0=cl;!Omq>o(&Nsm#wL38L)dLB-y&0A@y4oD7R7hQKuywJf;M%X z0O1q+h&Eah*LSB`$TUFiO?r?aP)sFTN*DB^a3U1hO3o6bb8RYa)|Bw9)&o3xX^z$X zbVfByOp?eb2fjU4G=cioaWZV+u&~d06?J&bJ#&bk;km1umx}hLcnLAfqwo;%h_x~? z2L9a$Xn?g}2_lD?u?I;{ zW(Ojvfw@O~niwm}c+rlxW)-%2Nh9ONENJ90j+7W_Uu_kF(G;L0NV#qN(7w52J8Y2H zh3eLr!R<^d!9BNx--@uZ|3&En+8BA|u??E3~HMHewuTQi(xT&s;C`?N`*L-EhEX&;&*yCT|=R^Dbk zINs~d_sCZp-5+D&QcXsnAC{S0+GTS6Nj;El5VcHfu9nF=K0mYgK=UsoLJxtYX|9Zs zo&P_sn9_gT;y$Mh#+kB3dkQ?OziZBEslx3mBFn`wZnJ6BiN(=D<|Rvp43W7Gp5=V` z2-`~;0_H#47#+`h3y=3jDVi!!tDgMBKdS&E#MbW%Kqx-}qVA&}x|4Pz<(ie}UEUwE zz~zp=`XYunlpl~7;9)dNWQL5zB@uKNPZVa1q#L*@*5yEOuquVqno18j|6Gp5Xn6SX z*Q;A}PTD$)=ca1-$Ps(P7ZHB8i>c&xMW&i$0F`3d+y5}Rj@2OO@X0p>Xo*c`Q9s3M zP)E!!359KI$FK*KUqhRyLL+A!1#Nl}x?j|Ag7sO_{|h`YzJdiXPQE@OJ}8nY1ZdId zw_UfxB&zykx*NL3=Qz~cekForf#=pJ@br7+3-(!+*BhTqeie*2clgbcoYV>d1u$(k zimHhk!u>@775wgYOc2S?`R`R620$;AP-c%(0=hCFGBZ$p`f;n!|UBbnQPFE+o5`fDr+p9gA>TdmLy&%XKPOK=dNC{iWI59hx&~$m(O} z+O8+%qIdUYx|RuH6X9`!!KA?(%(TuTUmd>^PJzG)%BNZsv#o|7rU9#0R0SO7mC)WKfeRV9(2oN)8P+9GGt@`6&iV{YD)3vO~Ya@?t zdzwbG555ZBPr$BL=a1Z|OMiB?$Ap@p_#`ih@ofbjA$Ga6U!$%FU*IA0n}dD+cUvVa zTWVI!V04!$y5;>^D;VkKMMW2}bxF=$vjBBd!dx(Ut3kFI5x zhh2BM(cUg#cI_y5}>(9s!LCicF9d~2#UTMFR+5TdrqrS-h+T5v>p^w9 znu`!khM`{90UQD%>I51E3Xt|{%6E)4;3XmQaJr#5dL;kI0%<{Rt|S3sK7`C^zTV3eT;?N^SccW)9g_8P1UNv-2vvm{28DpJcs5(tg=fc z#a^btzHd*qEW|SOFQCo2`y^wGmLE$18e)Sv3@hPYhaeQ5e!V1?>5}qa+eKuzh#kl5 ztO_}!$@nYi((~9x4>$=9cGfwtp8CM7CCxuybi+~{po(&mTDZQ+9PgrTBsNZRQwXWS z9FMh2!G|A8&2qdVcAH=1-Y9b8Pzu6y^)z_fI5JKWc-L~rfuZWn4`nM+b);S!bz804 zy3la>%lfQaS^h;L!cTTC9cNuie(wYsbYO)JGj9}5c3{d`Na0=9uXnIA%o(U;Mebf? zQV?=!5sa30uF)(xmqiP8?>D$rMh>6aWcfXhBWUwZB?3RV8A;O|L9{4@tXV%dd^x1B3KN&*)OXAQI98#(!k==anM`HiygWqrW#f&eMsMHlVl5)=i5(l5B|; zgE{_XMM2%GC0mXmnK7i|F#l0X6N!J~A0x9(PRgHDK~L|7kBq_T^`p_7HZyT7s{*gF zGjw0kq-{na@JNGrq$bY^3Qo^&CuWg?9+bvMWDGFD(kZ7PnKaGCbJ-`QyK%`#ZmB2i z$PqqWly7v(1_z(L>vw3hmlw;ROT--FAy=tX4Jv$Zyr<#lO{r?q5j$NR6UQI~E|Bli zK=}XejV>mQQ-UREN7tz;R)d4ud#2Bdtw&3~(q$XXn!mt1N4s?G;PCw2$weV~qG)Fpm1Kye zvdWH#wW8ywRXl+jqivs1qdR)?4#95Ys&#Y%&c$09jX}Pv9?_92Pg~G>&R8FzW0kYr zdgHl!Ua;*Sy@Ok5$Sx##VpF!^-u9`oudYsWmr4Ann~eKf2o6f+TKgQAlLNKz^YYj4 zC>rV>Wx@Hf#=p{b8}D<=g%UVxa0l^okr~_2o zyLuOxSS-tNHiMD%zXgSkR(F1)*QpWDVpoXX3c3H;#dTf4h?5`seDF)q&}qCUm@ogG z$Q;Z*pCmXhBxUrRLbmQ&VN&EpO7UmFLwm{J>8+B*`g6+m-uTF8Rwo zq%wyTsynnhzOkpM#Y`>^s_Wm6{+ei56Zk$s-ztwQjP9%|_z8<5DJ)BexAe6VEq|vr zU74d!QeYp)VZ(IE@*YEj9(bX;Kr~c&dH4$%K@Q^ZWYsb{UTWfqP|=hM2Ah%9ssuw> z|Cy%Zm{h3yD}>tC?ltogWd;2gTenI5}MY#hcdOGhpnDDw)+JU(BC28m03n|6{ zeV2(1eTB?mEK=3X(utFNB_O1j&xR zW7H+3mP*9&@tj ziTMN0XN{?;iDlJYa|Bq)~&_BRTO{!sW0DG zGiBYfR~EDwm{!Re7no$`lp#{```6IVS+ZH zSNV3WNA}vXxoYx>s4R`ojVeCHr5}585I!Wx47)1wtjakf^4>sjdRMAED)!pafhs9K z)0y?nXn%;(nH_u~R?oquzVr!LXt+pvXwF|~C@C|_AzRM%|4>tffsZ=Ygb^vG=hz98 z%HoIi2%_l^{S@29B)0ciPe;khu64SLv{$uc^|>sHV|9&Qm{b$wWEj2^;G@zmg&f`* zp(Tu4YH!{GO}1)Bu0XvhIq;LGst?-KO{4I0I76(KFsml^%WleUnj&hvfN-|7r@w8@ z)fk2}lxUb93+B3y(=SWdUDsybFe5n>i6w|H1~(8GNQXa6?*1VTl|xSU<8*wf2v$jLc+!L`yW#F&EjTjw%pd4)qe?`l}jak?*kpPwIJEV5^1sdCCto{GS1>q1X7ySqM6}(GA+?wN^$YuSZZos!y|9sip0&~QkT5~ z*6lRIb!L0M%JLDX`AZ=L1V(on^={6bm^)_G~L=pwwgv!ZafNsXr7ZQOYh% zCXA&{MBLPdi|&j3{>{5hZb&m(P)WH{(kEVC8P6lgj-Yo_>^>kmCvpvyzCh72pB6B7 zX`}9l%j%Ox5-d=$-8D6@uwM+`LC}tljIrbJp(4m4zfPQr`|d}{6X8nJnIIyvFk?qs zbm_>47=5Ks67Yao%Idz6{e5GM^(M~n1BVd_HFTutex3eRM0t_0;W~P=ZszzQovAAO zm4+2fc3k9F;+MQ0)M#UL2g{O-txCN+>zKTQ(VYmBw|J?O{ zqUGB ziNvymc_s#pHY#hoWgXziy1;Mz$Bf?%>MCD+rr z4YGBCBuL%!)p}j+B`^>AB zvL6csBmo#6F|+bF;4Eh%fv`}clnio@+jP(QSLP{_ML)h5ncEbEA+EN6qhkh{|$G|4mf3womFoW|I$d*lb$H5lHfeaT0s+3uv9`}#*mz|j&A(r z-Iu=6Ji)uCsLYY*OBZS-5Hj4Z(*>h~KeV6o0AJ{E{d|p_E;B4a>fm3EF*=#uBHnoB9D!^x((1aawRhEBS@rX5sCn3DzV;s1g<`;rkL;!& zkphAhr?1(2gHFVNA(qE$uHHXou#$p2SKTD}`QKPC%87v?IZS_bVm_XZAam^nTu6)1 z2WV251f5m|p`ktpwjqvYUKaX8Zm3?I(npwxoRARVo*<${)UD|Ne@M6g>Qk6cwf{QJ zf~_B1{pXW+m+S!NW+PVIpLgItx!%$j$*^WWN_omkVRB^)7xoG^{a+J#^R6Jg^`fN+ zrz{4p2Tlp;hZId?S+N9Qdah23&}Q1O3W^E81#kE_{5!JG!iQWg1@*bJrYZ|&|3YMG z4D0JW((cO~;+#8uB+-Vo)dL4Tc~hz9%CK-L`;i7) zdVYs_EHP^2#ww1p z8Cm=pls5RAkIfM|R#3)>io=k6GJiT})^?MAA+sDl1u(_LicgF23y`nys76 z3%g;yEeI6xB=;qMDiVFH%TwdV$!gk$mE2bzdI};Ux05GiHW!@1;nWD3~#O)xIR zUsB}M7i@<~CE%3?nM&T`5J~cioAQyR{C=_+i`x_C2GVtW{3+ruI2QuJ@@ARrw1{-Coa?6g@y1F~9-kz}%COiUFp8LtN!;Lk9rr z1Eh!nWxx$8%eF_nFiY(|vE2SJGgl9mcPfhA$bTH!n#CVzSDY`1vrEF>+z zD(jzbUbb$|w7%{M!k+lIz%~Nm2Wa@z*k=tDW-a+2Hq>77Z_bhShr0+tnlF-#aaWqW z>jQGAoT7e1YHJ|9EC$bi?x|ktsUBG}w;npx)VlUmw!zu-*~|^xBmD~Xy-cK@C}qSg zY9V^Dmd1|thrC=@U8trX*= z|GQqLpf+BZy12iH>Deqq5Q&pQQsXo~bn$|P4u|0YdxRn0($tOQ z!#uU}0{37HdvBnc?ytr!esmZX`OK%=S}mVHY=3BRaqh(ZopL9%fx+#NiHEDer_-i% z{afQ9itp=p5;Eb3Hj+bjQw|fd22Nyvpq>1V9>K(>l*q}NyM?{QXOHhpKW0zq@MX3KGcrgp>r@n z$u5+}J?)=uD9xA%rG55rn&V<5KeQKJ0{Perr-JXYY2?@hw#yAD>Lz;AIPk6J66nBx zNH2cND893cq;TZR_;+acg+N6Fgd*x#HOMPirjU){8|LUH8E*55Fy#OrPptem{Jl*~ z$CRXdtHBIQN!Ib5rb62J+vP)K@I$NlcdWlMxCU72d;GS{GQ2_U`fVsjX2CFa{jRUM4%Mj!VzQ8hPiT~s$ z4))8X6_#!{th&RT2G0k|7mD8)$uD9eH(Cb1AWq1+y;%!&LVC3Giouq&`FLapD5J1n zI5#e_Mh^1V+U;C+yW5(!C@DHyxx6)wpnK`9d^fXmESoa4G{#V)7QN&%xsk*4t-cJM zq?*Q+suZCV`UZVS8`)X~H;Tvx@jwPCu>b^oj+FZ=QT(AIai=o7E9+7eI_+mn#Km=f(du-?xVnR!(qoK@rlZsAkR z0-aScih^d`f)O`o7QG{EHn_odazXfTHXp^@1U;afl?p7Keu#va82H@V28uR*C1;Lk z@wx95GdYMjW>62jz~%4DYF`}T?Db<^rCulC=cRb2r8bvGx`=~m`SKmn!qMtT(CZ`6 zCEqe=MjWQxnVgqFK8a;3F}Mxc_4?FO+at5I0c#RH zk#Q2ikP$d*?$3yKyNH&km0baq`&Q66wCscZb>)(U8*grVNmT1a9`xO+t8l`}MFc=_ zv{4EpU9FSm;;h5Nwn(q;!D!ISk}zS?>FZo7dg%3d6_*0UVsOD?GVfi<_H8&}DO~4;=qA_kxCb-<-e-5!&5z-WgSvJ zgVjLa$9rirbc$}<`#L+8HCoT7OkLm0Iv^>1h z1N66%fbt*Ik3@Ax`G{S@;1g=XSK$psXclgME<8`Bgdvq_IEv4B3-aH-FNP_9Mt|aI z{BQ_=W?h5H&+*b^(krf%EMf z&NG>pd0am!>4?7X&e$rbf4p3zXY3p(%$s1QVdz;;W~GDI=$CWb_zfsKK7S)bKD2@R z(!TQdHa~iOS9md8z4JZn_E|`;VOP$?=u)Ah(IZNi(=%4Zx90FC;4(8I%(Xcqc|1pJ zNVRTNL2XwRLaf#gJozZTR|@m5^J?;ya`WCjRp}03u?7+4S3PC7NN)5cMbbc0+GXMI z8Tsp!%bV;O{zEV{5j12R>NhgX*ap#tjmDu93=m z)f{!{>ln>yVe19(FQI<^dv$b7Y=11!Um``Je86rXLY+6YT=@hv`BN^(d9PeVWgqFJ zP2ZbUr9~STgPSRd0x9eJsY;*Y_hV)HqN1~P2CuTp^fO=B#@CB109(GtfM0OFGAJ_R z#&sJ9ee*+(fRl7Gf?UZu60gD^j8bvqwU1AgozG;+e48*XA%ehVGuvXKj#tNwL6yt@ zBD6G#iK%CeF!&KmeUbStY<<1@Um;= z2+8)BMz|q**UrS(m-ku)T)R>z$lT~06bhS`jL61AUC2RakQmEi^nV~&#ZPnyeC5im z&@2T-7P?gC_IgP*;Jd$SCx1z|AhU%i*_XIEZJY^o!azbG%uqjW)x6kBjtpp1DhrqM zDa!XitC=gRS?XiNhIY$S!AN_S5x*fZD7%r2lo8PHi*k!X#oHz0F3t`Tcms9aVC03h z%G0;-^&gL~a>V_ZdJmhacsh$7dceNR=g4CBRfqXI>bz#DjLZu+2|AJ!-F=eTrv_5S zOXqhW0Ns;x6-3V`rxqQ9PW;#$hz3+J^>h&WwjDo-kH3VgIkqX;xBVK~USHmV;0JLGa-_wAzZf)ze#&&V`q}FJ>ueKGeON9ijGf=RtI~=>o4)fg4!XD?2UINKh8=nM)A$bVxC@1ltux$-r&9E&3F*z1c}lyaS*NP|d$Bux1X`49$a5~^{m zv!l?;SC1wU#QpsDpe&(qyxl$@qIlNuozdAWeWFh)EXx z(*de7pdW1%4)EHaa@PJ+6*zCUUFpJCf@fxlc6MWH^~?35XV=GrCB)O+C-4&s!oB+t zy&5hm0;_m#&=P3WLJBkDch0|%ZhTv#(VwpIBeSQw6cv0CQr%rT&Y~pG?dxXV&={(FZduq&vdNwTOW;#0dN)h(_L_YK8#_#H^3ITGO4+XfgC zJ(Y&0b@X@mI>$s5uxQmjcL#P~-Yj^yX83;ko{)kyE-M`fOQA@??65~A!{+5js&&OAAlurNOJ42gk}bp zk)qD?i#4Qy-sE8pgG`=M4oPMT>qfj||GOE(X-cGw6+yD&egVJu41jk1 z?kj<-XhlB|jB0_IUh6%%lauq!WIPP6ZwwQW*a7L1CY8z$eA)l}c+t5RyLEO6Rzf3i zjcBLD%}8v$blM44@dW^^Q-b8QVN%PtPC$Qv3{t}Su^U^je1C8IwW{`}j{ZdFU^?UZMp_=r z*hK1l0=l$|+=FvUMC^7(f@yD8-$*q3S(3x}8k<#LQ$`knnBxOzKqZh`P%ns;PerNa zEJB+um;dMbk;>5!%D-~Z@RG==3F&6aixfI%p;2V+>XW!F^}hJ~vbR+I1o}WHcf;YE zX(7$Cx&^KZPO?5AacPAxeCd%l`K+&v!onQobt^`|-~z*{E~q5=TUUbX&bc{1!RJ3F zx+vlXlB;|w%bN&=1zV@G!I$cILZW~ZjRkv|d}6lmCrXZePz9!lng@k@8CS?J<;R_T zhO`{|M_J{b*}2=HmLz!7U6l+R+0nRfYcTXVT!FG7j{JhI$Jtc&2Rm1_#W4@fW_Oh} zm9ut!nzxiX*bWVDo%eMfHspajiAg{buE}teex+5u_ob}qXjGgyl=Or+v`epDm+zXI_O~z~=3eHHTWMqm5@xmxcWUe}Bw|J-6m*bAHxf8mER^K{`keTk?l*^kbzF|ZXE4p7*} zV=6!K3H2;(M&xyz@{pt}9Ey+Z^-oZBs|+62v}hYYAHn3OghuYZ3fi*$;cnY}k`=l} zPGX3r7His@SygOm88=kr^3!XGgGP{?xtTo1<}<*s*6D9;euyMuPBX&IGPqgrL z7@Xm+tTE$}p@QqDM%eR$3eI-g^n#*n5q;ssKMJLZD4^TVTFYQP%a1~V$u}BxBOO92 zTunQ7&a@!YTiujK}_Simk?u1Cd7uk24ob)o3AQmPCM_>gT1Q%qm>z?G}nfgkF6R9_+7`q_R4y9v)Cf zpQnb|-wM#4e%%jVhsA)8avwkC^Kk;S*|Q?^zQom=XxUUVgXCRjl&G+k*A5wDga z4I?&bOD3`yJ+1FqOgOI1=+Kti*0MmR3U1m--mUK#4Q4BN&I%mHu;bGWEq!O&t}@P>&|~>JU>I>RX*1 z&p9PzKRJyvKXvoK`K@};PPU#*jB$3yNpI-Q>bq%VyDYZ(u|Od=X#wO;kI8T+!VHm~ zWuCPC(JCKO+NJuhv0hae=Yr>yUj?N->O}+gQ_g;j2=eAbV2ehtLa)JY-$MEXfYGRR zPy1TEw$TFNoO3>sX4m@Anz-v$?fgX~Zo$c>PNCLxAOqVLP-8a{P0m%>vNS%>UZXz= zK0a+vg4WvDMj8F<@))3^OKcX}6`_$)q2=UZO5V5I!^#sY%0&pO0k_o9y`5_jqpX$n zUks^DkI^k{3GEK=PB+Bo(#jSo1u7(nM6Bcw>PLhf?2{ZNM9sq8oiROiw8A7>#n6(q3slLwj0DQGv%x#>UJ zLe+;uNZhaPmY;LX#O+eTvq^&lJ(MIkmhrA#Ze25?m9co&r=t{<#WVEM?5S2|wbLOL z&lnGaS^u0oLjXmJ^>5Q`NW~np4k#5`UfrsxK+wZc)6A9>!6%~inzjH+A{tt5Xy6y@ zo(sph3VaRkw)qP}W-|}c&r$u>LSCBf)dA}3DC&D+3SX^NYYq{!9|v7uepejj#x& z&-k@07U?_+A_%@n(@$BgNY*Q`zi$T{^$Gl+yh+HtzvhH8Wi9x3QZ>v|}8T-xp3t zCceYoBC9jn6*P304Jr)`vd_S2RR@52u8Vpu3ZO)TZN15Smr5NY#2CISuu@G>`e*3N zQ!Vc#LSp1s%6S0`o|=jJ1DjO=L$3V*W0|o6TSqJW4qbNlA8i-P6$rK4|0xtaDU9dM z)fA2u!ZtWW#q~=CZbu6N%x5WnHSE`-wf20J zX(DP{k^RxHDXEEQRlKi2xQzTSoO%3l%g6R8I(sjs@je4i&5z)o@U};!=*++E zwDhBrQNXt(L$~P`9zL zx0H|ajigBA=KTHXn$GM7jd4lxl4qNsBdi+7j?K(5A^)6soilR)OYb?!fDxk<6m=y? zZmCVwzo)|7)@DaaJv)MHz2}Q%Q0mnmb;;{;Ns3jaJs+_~%g8X7j%u(@gCarJ))r`x zr|`j?kHRtXauh+p#ASJ*3ab8B<|O@uxusRVIfLVuzs@uIjW8OFOLuHOo$jNl_O50Y z|KRmxV)mr(Xa%RJ{P$8#z#5SHCHl6;ZBnc&eIiRUnsvl-tJwd*BeMD1PuX_WC||OE zBTTyXGW*M%@9IeUPkk;ce<2eqQapAB|3&H|jALO_3n28m2vo-jUagt4)MVFy*ZXEo(k|&<#qM`q7BY~Uzq-(-wZ@uNS7kc zU@7t$!0U5~hbKXIh%Ix@>c%R_IB8_7{;-G(Y2#Ejj}{@~ zy0!`_{{^fTj$Qasp0YzDIzb_9b43Pey#m;OnIXV*(=)&Wm6fX4>tulK=BDuDohHeS z`-JX`OE0AlxKGaB*1u5v;0{27)v154N;@%a3(lW0IE8utk=Mqkm)3Fv& zUyTjzNHqu;9`6c!3LxuCW2UQKt_IZGcVhoWZhhJAC_M-i{d-_ASJ9e`+uNNQepda* zEyk(iJ`{gpot@$_3sf{MV{hfuFJLfa zvlP~WzB!2h=rK>HPYIx+Ps%B}!KxUZql8J4<*7&`K{%1Rihhn(JeMdg(9MypR^`+D zl#kY+5q$FmA+_IZlacvC8fPcKu9%23fgB|RtVED`X~=2k6U_&(ar7btqGMlu6cRp< zFzg2?t8nC_1GF$y8Uf~yNKn1ft?~_5*b@Uli(bqvEM@L+h#TfDyqPL4On&uPDxZVUB-?nI; zbkF%a61c+`Y(Lg#WxtnyDRVe_=rIh%6^`m1EMgU~x7s_5f;&4_Zn($r_L!I^y!<&0 z*QFGztX2vtaNnTT2-@zKzjk{3t-`din_M5nj~e}1kV)C*i@U>Of8I;J7dK=m6^cPy z28fpq9uc~#CwY%8FRh|vWg$q8Y-Eq49NdQ>PN_Zil-jBxIRSk~zu6 zKeH*uevZQ6?%Tg0qtiNA*2jJr!wohy1!@ij*!^NobNc#qtq=;~;$G`hG*ObuA11Jf zHn21CtTOlb&!ra9ReRNXbQ?OZ<`q(*5VP^#hM&Mz@=9Jcvzu8b)BtwqkgIGR_b%;0 zC{0N~&tz3^5bb6CTzxpJw!taBrZ}K5j(S>Hr7H6uUY^(V83~-bv?SA=t)mcCJ0C57 z(heU&oA*A)v5Ox;WGE8PcPZ0bdwDedub49RutI$NZ<3mx_V(&Ovl_PAWrIYX$aDkq#Gv$G@ z^#khUT*v@!qZBZOKI>5yb9GJ@pH`?%;uHFS5EudSDTx*xAvR6iig8k`|Nk2|@?6l= z2ZN-hyI*-tl>N`f&~8?k1%Yg9gq($!y{-ry&TDNCKN_7I#?Q<^HlSQ>&FxEfba96? zUn!M3HO(+`a1v2r_`*Uyarkn*Ny-^+JAFYq5mJ*jF1qVzmBV^$00H!n+5FVQxtbkK z?IGdbcu78c=f&PsHO5&RSNh3hJ%XUhM>?74rn@OhQitCFe9PXc!R;-nR{WVrwJpO~ zVI=D)nDz6y0_CB-ewqb@5Ds(z(s#(GrBV8kdVG!>w&`5>&DA8xTHxVjGE*>D&<&UA zwPrp_`K%?XTbAXxQZ`PlSb=YOseN)(`o0ZSuk@Hp1qHRUM2^&+;*W0=N1w~q|CXqc z^axs%8weuZMH?_J8(Ch_(Fg=69A=FCo4wQGwhSa{{?urWXz*MDXZN8*4NlEAwZYlh z!*JDI)9BR7QHaI8BMW#q#=j$jBw0=8!_Xlk-bLXk-fyO%NTma!9<}??Ho@*YhV3&? zxv&FHRhku*B3K$V#$F}z=eUbd%^YkrCwDiV-ty!&jn(P!agEl^axSG04C5Jwnoo|w zK3Z@patR**+xruVcK#gih>`CdH}+VgwIe!wqDVg3Mo;UO#o`&J;nH+?ZjR(Wbi^aF z{X_xHxC0~3EDo2l&4MhR@-BOUw(Y@?k&a7D@y%!1D8WveK`|xV5MCp56uQ6a)tC6U zP$^QdSkfx`1ZN=?cq*Dvr2_wPtgEvb@AqgVGR$_j|BNvDgd$SK0PlXn%dW+L|jw}bpl8w(OuF)7-1BZ^KJ8oJ7csJ16I`nytZ zzaoDG^wKDSK@_GuT-9jj=5(WoyTH~T@vJK*kyz1*yrv|0E~?frTSHMwePgqFrG;=Q z-s*$aBPM@iI?VC{lvcR|P*d=W_Q+Pz_@}x(K9(~GO8mtYq0kSgQ_6rkHCHYLlw<^e zm+&h1IWJ$Yfv>MxzR%e4w3{7Bmm^%mGl=&;j;=B+uAYgqxGb&(in~M6;_mM5Pzo&W z?o!;{-6`&_#oevAOL6=5{r=qN-rY@Zl1*mLoS95aCm80(KLx#xAd9s%79XA3voC8s zJ+u0n)Fw=%zo5k(3B_3^?V-<8^}d{H;Hn}At0@}s;E5FAshPCXi)}$2{)Ii-g+Lbm zChBcOQ3JryPR6!J4j+aSAQ8}EhlVj%BAop)=yLh~`QV|pdAC_x;q}Af-k|c7*Dbe$ z*z(F}ivMxrE-iTWd9~ivv1#Fj>7A%)(o2*{s~K|Asn3xG)FO)>C46f?&L+G?SH3wF zV;lqiC1gzBQWP467kg3gjzL957JA^D+qfJ;-}^0-hsun930#M%9>anDUF{HTv$31r zTsS=UUs@V%zr-iK;%!Q|&h>)5!D}TRo%aN-j|yLAgrbY!KZdw3NVva9@|IZ_>10 z=wOe8#vvoKyBO_!PQodwnaikUhaxh67VxJLYsB!I*Wdp==nhY`XkdFl`;?^3A6fwxAi?Dt+}M$X_1I zar;IE;MN*Yv~6+VK_$1p%C+aI1wL{FySE76avj9g@hn*}{cua5f>&>UbyeP*(4(Yb z2mDLMRyAB*>(Mswt@Q2E_3239I&%}FcM>ypZ}a7dkCM%a4C_D$w(j6>6O}Y~y*qL3 zAIPfHiPVlXh6?mJ(7bJq!Q_u9EXnq7R~W2k1c+J+R1qRcej09P^FpSGgO6F#dXS0M zqZ~GpQeT>M^#TytQR|U&b+!`|6Dj8HZ+vJut?q<5OX1lR1M^?zV!7~C2%I$9cXWGF zctaM?BUFW0DK8zDwSAUWKNm}NGF!);>_(7F${>7XcW)@YuS2jflAd3lOM>@(5@Isc zRhj(QTaZjEBJ_n=%kT#fCytGmCPna}@*>!kye}i>dRch9E=_T)>VjuRYzel=br(am zjiGvLFl_(y#Oo%z4HjkPxsSvgKo7WK(H{{M^?lCOntLmULm^`P*_nqYCrP^* zW&B%&wtT$I)~yKt5|Bc=3JdLH1toDx7lc5GkWv-}6zZ>*dnOPL6p1&h<0OMg6-($d zhLkd(7y#dp3Q9o~sc${YVob0UJc-RS%WS|We3t8ykLmq#$PlOCAs(W>ex~5=H*qUt zh&O9AQQJgEhWH5IBKF2esnP3w^$OqTcPAEF3y+*Y2%mioB6q;bEyb*A^OI-JZzw%gK|zLyeUDVe`=!YF%oVHt{L{35T zT#kFQrd9GP>xcDk)^MWyA{3;<@piGn9*bscg0D2u0Iys1==9CG7J%A(5lA~J+`sSx zI*!SYVL7bu6hlQR*#4*jME{j#u*xT<)bt-S1>-JkWVR_UXj2WyLP(E3zDZ0A8=8S< zB|rx7Mgy{URrl6ekOeE3vLCs>3&u-ekOD((uu$O$y;p2}__*jtx+p^-LOe|KZh>}~Bh&xndurCc@H_!!_Q^@Sw z3IUz;OrFKW_E>be3qrZ7u+`lTdS8<|i+C)BiqK6pttb4%$RhS->X(OPSi*J0B9EP# z#ZdZq^0aivLr=8#laS9=HJ*Ki=ETad?TP%?s>>eLo-O&@+NNjbSvxMJks(G}3_qw~ z?1|jU%w0SS#<(q&95>`Kf)K=(cnJearnm<_yvGXl_SHp~uyrUzJI#q_mJq zI0xaN(7ymKUD9{^1MtG-qf%>)X1|rd0&mK|AtAl&)Fqd04H;p!f~>lAAF6>kXZkVa z7uSNWn0zbk0y_kZDCA^h@{WU+U7T|2V^h9XDYRWf7%eTQD|R~V^*Lhl*dZ!wl|L!! z4hS(1 z0Z`%`dM8Fjek0zS4tmI@=`w2Wukj%)o*LrrocUYLptnd*O5fQ1G#ku-aCyKoGomPZ zlo$grlwA_xs)S+}8#02uq}-h#v-fZy;bIf3%Py{&yp_+erCYow8C3(`HyRX85yWpL z1xku(6|>xQl2&dnyjc$84XraRa#zn#`;Hg~A$A|$-bccgOGTIX6!+VoqeYOT9rhzU zDfS))DF2&dhy>5Y(6K=?7X`4PAjJ9sVsH5q=~ujsw!YbsHHeS4UVI9F50b$!HXisr zuSe2`ky3X!`M8O3x#^JL$H0NwzIsvG+A2F58EZ5NQoX(d1yOAD>kR2@eM>P`!iR3@ zo$laBSlP+T^f|@Coh1q4fUlMn*plDv&r-O;PmmUF_Q)Yf(s6otDKs0fw^^rU;tc** zL;8%K-~QVAR2G-)DXuKjH9#XfAKjDp(KT4bi)P2`t&H;7d+SpsNX@eE{3)dRV1Ipe z(mZ_zVu6B};bpl*3aXpF-s!*%>7$XGAx2;C4KIPGJ<9)X$OYoE$X)rij6hs^v^D zIjP7J1`(6!qSQ)nUcrL?0-AvU>7dOhw}vjE4ra)zHQ(SKD#r+ZX{O%|TcQ2S&cJW9 z2RD;=bl`Y&r;ZoorDR#S@y{!f#3Y0ua>0PHfjFVO5fdL zz`9D2bL>c|4hzZRcPzaS(=nepdkAUZ6o~X!|2Wumk}6Qs0*ZJ9%!O_Edj#E;=F37r z@{k(zvxr)E!H3SI_A8wD;Lxy3my&~>e=-?xF&B+YO-)+z)?PL~)ty=9fkhLvn)bnA z$;hS<#mW#-U|@xD6uQeg$66QG(=k5FaMO>MoDECT2Z%Q#m9+b`+S;4(zUrV1yMbin zp+IWfk7Jk_7WpkCi!uhO()_{DLO2f6_RT-|hVeP6LJSHWUuF)^w=adT8t2Ct=@-quFN7Rm-z z0YVDlsoia`q7C|XW3f$S1Ky2ml6n(Rsg3&u>s^$w=^c&x<2JZ zgcuXi@2-AksNX%GA3BG4^7|J(`N=%eK%3@kB#Ejboo7r?A~w%XZDy``RnkmScsB-) zKB`SyYb4yiKB&fj+I}J7WergRiIfhqW9ID~<{lvmXgo_-B1Aq`6t!*su;os)l*mDP z5H-m>LbPI0q`ksV3NSvN!0&?Kr1y(Ywbg#c{(BWL=p&GNJ4zEmamLlz5n=YGrvUR! z=-qhOn(}YmB30I3g7ux95tbth+$qi8bnU3*dU)=EP*giG{OzySur-3}o$ByebMCOm zfr5~34caS|{NRXVCaTp;{Z0yfFJT^1DsE^_3+o>i)_4QzS|IC0AtL}JFAH<~MLT=c z`O@2c#Iei=TdZ}cC-@aW2FpC!?v18S_>)JUKq^qc-u>xrmR;p?OYvc8Z@C(!r;vBw zqf?rgh^p}n#X9hzIHVcy543q#XNq}J7z}t(MmM}{4`^7mHHN=jQoRTU!d|*<2*Ij0 zgRjE_`zd1IX*4#5$pZ4>aC2}rpN3c+JVJfRBV>$N%tCO_P;lby<%JI!$ok4QK6vUY z**D|7g<4GFK{MLiPzwgnXB!@JXNnVWkvxGn)&M*r$3E{xz=sMxkggc45liM^nLj6w z*=CPo%pnI#3){@;if3hw*f5r>$Pi;{CzJ!f9+)8%xgj@x)1^qqzUX>IY)Jeb&MUfQJR|BO~>XXHM+ z=KNv){8vSvQ@4d@ywd34zX@JpZ4p z@an6hHTs?lPnZc=;;{pNF>&ee@nwfWM&5el~vbw3PCNpRTK$q7r8SOJv5-=`RWqR_@B-UHj^gY9zx3`ilnU-2W zJJdWl92AM*5ze<0V1s&?t-$nPTA`-nGDbS39gk%0F#4!>>^Cj*64Y=&rf~y{DjB)q zLYNRLPFxJ&90nOCMH=;V2WEKa8Gx%Jk{yFiG9j6=@8Q3t%E&HNRBvAF+Mj+Rf)fQ<#;WYSqQLINRSRkud!zgRd`6tCb=Kkj%1W)3GSDiy8IwWy17) zQ)jG>Ggu=7MhC18kFf>XGw}nT*KE%FEw0J`qz|+u;$6vSK_e1vhE^DRPDyl_qDy3q zsKDkZ$kwzt%!4&{CmNld(U%smP|h78Ox}hNO`;T%zgm*+X8?}icNqy}o_&Au6mRXnns28#_yQ7WDc;bMK0pRsJ2yB?@<*^5jOvzZuF>)R>g& z_}4g+8xCCAyk@S=4oQc%I9Q7Ez;QcPTbzTkz5D%n_6l>s4yVN9q*F zpgZd^k_crPyR2pIe==8zMtUsgVNxO5NRcMDcw& z6n$JSX^EC1N`-FN<+=bd60G29q%t_DnwJ(v%nuWKa>6P}#mcgdMJZIg|BT#FQ94+n zHrY|KK%2I*fHtvg(E{qVuquo!)nMB0D1F$T_iP&f@(u`vLH(~&Mw!2%JKPa1I24f^ zw1Z6hLrLj_p4ZL~X?3-J9nt5kweS5op-q_-^Yiz}`~H)4B#Nw;(;T7B8r)8ey9E}4 zJGFj`8Px%shqLkvuY;WaHt93CNDcyra~L2&Sn0c=eeTjFgcVV1kD9?g4Kv<<(6W_! zv$?XV=q+fN-I?sCQ*UT`&JXHo5cRYb^_6BXpU4C?$kp6vRe^|_Rj_b7&2$_oblm?Q zy#5ARjDG~MOH=?EmEv$^{}?XUx>e>X-7>w0)(Bdup>oe@)v|R*fOjqL+b!4~kfTr# zC-AIlHL`smApEK8RxZ*x9ivpu)INPC+;o-c3F}BNIlF*{&e1z%v$*=cso<*%)4O+_ z@Cghhl!hs14^IkhU``V~xv;WUl6ekx6e!$S+a@Z-swJLCEpEqkD)B_ncZC`&O^cuVSMSZAYNCvj{DZN!gT$ z17_fG2LZjz@{$Cyp(ZOBe!*otGQo31jATM)`Nm_p!zF>Ga&h07bHvSfV8Sg(g#btI z24T1(^u63T^&GW@HgUO|E(!5=Xs&~HEO;`BeRgj%i9#4H=WCIJ@4<~8osgJUi$sFq z6{pnjTur=Klaiz~X7g4x_-@9MQl4aq%D0S;JUV70JmDf>pLd^UoV6f2pOjRr)A~b0 zuZ+!@pZP?xk_tL2Br`ASyZ^&z#|i2$jww_H>S%SSn13IT0ij65u-owxBE9hjy}1wp z2b<4Hp>sXtchTWQ5T8`PtP@~=)S#xL-aFjf4Xk^hou&mp-FGZ=u(IPt=8Re>GSWnT z=0k7#z&!CwN7=En_rRK`+r|5>GF0ArMm7cbWLN>lEWx>46zDMLpJ={H3iPsYuuZfb zQ!NJVESKPZ=&tUYzi>q6V(lIMv;L9>-8){q*O3-go!8%x{ts!W=XOtUVwGswo_ELM zPZ9Z1-zHZmk6oU?21@H{kd)+9&^>U9A;BYZ;y{03jetUph}<5qH&{$TEFRle12nOx{=LVI{y?V*NHU2AFb*Q-AF99=zH~U*~2#O#qLSx6%uPFa&JnAQ8 z^bvgU=WNIc?2GIc-^q&rYCGfP@ZTVwEQ0F+beSLl22?%yEK307!t`-yt)1zcVm#5!9uu#xvCv@2fJLITtyy5_PtElMwU$%J>fuTXO z)x9KIX4nV*#=c$*sA)ZMX}wkSW%HO181KWbLT>mw?&py=Eb(sgZDfr9%48~`2|aH! z_f{C{FeHCKSo^vR5~UKFx=HO0-OJM@fIiEZR{OZB(DVs%w!`d6aJF5)iw0arQOUzY z6I$_|Z(_;rl*(Mez>K3+|1)U5%+(C}Q{;^imdE`}8H$oNYuRUmJI75<84nxDBMN4v zY_Oo3Ao|h&Bk8~-tR{VP&;=3`?+V0>MpdL41TtN`*F&b0WF3qqn3+<yeKq%h8w1+8 z2n5r+3ur8)?Z8VP6g)bc3BZ7|o-zjuyHklyn`lV+10KvI=Dqb7;95Opuz48}wpgB( z@P+yp)E7krZ5Y zJ5l-i$%1%l+S4vOmhz5Q4h=JVZ%LV^Vg6)<%i6llQZcbS1F$(S6a!5wBr;0Zky%u< zan$ZW*%asfRoI2N6PBiTp0rByqsa8a#}jXoqNYwpT;Mx(!5lX}525{oJdSioT2 zXH6ayLTY@pi9Z&6$59;6PmXPcmp4a3io9eKr9$d}I>|rDVzg(a)VXi4)+C)juJD(2 zgwQq_Y$jjuK$`z<40~*)yj}ZR>ne?N1y}W5{*qmu5X)vIeDSeKN>gsRa$}A1PCov%;c+G9+eaL~$ z`BjYwZdGNapON3|9>JW89+-%^4c1bzc@9Q%B_MglkRx;R!KNKBD=nB1L9G_t5T`T?wmxqMM zQei$*#6^15((`NQFh@&Ql1UM!#Y!b1T@^k<_-=Kbm$}J@M@KU~2NF;Odk8R!E2+Qt z9!2e)Wxw2Cu72u|87|hkO;bJ7tv-RtrUxwC>bPW&PAMpw_uV@2pYAL{?$w9oa_y5S zA}DEY^p@p+PWE81dg9?Hn8VAq#eKT6tC}(Gv%a{uojs_gxr|r_|1}-W^X3JS1O-aA z8QBX@07OT%##j-QV1fQ2C}Ft2jquRQcuz8Z$3Y#+@K}KBlY@=imV!Q{B|Fs}#?=2L z*!Y(0)^=u5G7UoIrS#oZ<0XaqbKV*N1Y#Wo_6f1V$+2s@<*1tjRgf`9WLX8J$TRea zl$HJ^UM=fnn!2~KQN8cKCc8qy-kYL;05UDYW3|pZxA_=DPk`lEEZ?mkmEgmnE7b5` z5`wR9z*7MB%9BdZ=zSc@_>T1%YL`{z*HoVlFJR~>?!$##PAz+IGV-}9+dMKA5XuzN z&%@{C^6d?!^~(q;{)A;iH&SNbCI8y>;V>czn0mCTx88g`7&%DUhx%zEt@J4*J{AR& zKxC3a3kfBsgcuUxhAjQWSisu|1`Kj56N{k$nunxH;Csi&k%lQ+%=pkflDe}x6Vs|t z8^Ig!20l=8L)181^49myBjL4P57m+4cJ_NOWeU^r^xCHWp9xSmFz6JtY34sa&Q@6I zW=)|?ZzC#?k8Mqk^qXqnsP3+Y6rlwTrAYF80pchj+D)~!Qw2u9cio=XjS_B(^oV*N zeS8LpKF-0sErzq)ip;m{E$olF%(~ycV)FA*vCQnwq;dv_5lmD^K$12~k$2+g?g0rx zC&A{hnLouKj#YDfxp)Y7gDsVdJM>ta=3!M5;E5_Kv-QJulf;kZO>(|eAPB^khd@)@ zJJ}IxMqXefH+N2}azYPuvWUzFjN92E6(Oa+)Og?qEhUk?um=tZv!0G6neYW(36iM2YXFQX`mah zVnSJme6?=et(|c3{JRPaJMjeeLoXUrbP4DsU#58F8uJ!*?)&c&G`&b__EQ8&=LR+M z4D#rzV*k996}=+Qn1?%nq7xpUe)s2w2?+4+Ypk?B_lz?1>oguPlx1)lF2ZQHKLog5G~@<__$DS9b~>D$=2({Bmr zjJP~2tAwx{BfexO0(pjhgNhO;W4mIWac{nh$$g?>(q%36(XF)0`Je9^3XA&-y%f6{ zY&yUuA0)XZNkk)~niSHG0lKJ^{IF?b8yxT%qeU@y)x;^O8A3^h1G{d(aCC z<#y$E5a=O9RgX{c#bs10ifFulg962#@7O}OwC$;m4Ll6KmS){98Auc{G(e#XLSc~! zRW9bFQ%}?yL0oy?7B21ou9I`?&YxBc>wX5=EX}z3NF(l<+Rz_+B^IiR1si>N*ll(c7?x!qmWW*X-X4 zBhz}efJ3);y;^3GroLr5sh0fG^Q7_dnPuY7BJNP~>E`1&neg2D&Vn!tHem!czCH|8 zi;f*QNc;wuYFf%S8_42rb~?n*F;*CTxqhTwao~LwbmyW>|1q?z7_@a_$i_KShgW%9 zf2t?#t8tmty1SXQ&n&x{;e^N(%axEwv8&=T1(7Lg?Cbf&uI!(#=semV6@iO!Ghl#5 zF#2qvdlxA6Kiiw=6+kYOI4|_~gE(k2Edl9ZhmgF+n8U$Xt(#(k-`9_?`Y{!Lu54!o)2TSN&)C9hT;A zPIe|gC>~rNE4uoGfg>qmDpu23wK@#`Mxh3F|2{$8=(tm{e_!0KJr7n2*a?zRHiMO& z4Lt!x!eX@tP-4K9<%ft-iMs98riC(c?TLevVRB1^lc_i5huDPK4Y)YUlR#z1@b(Ak zSaYQ}$+=rU|;o>~ykpH_cs zoTLc{z&T5ACM6hmQy^_xGyT6j6Ajptx)*qG6zvL_hb=_vwKogW&LE#XHq?a;0oV(d z!(K2l?PQ3{IO##~0^{UbO)=;yU~uCUP}m61>HF}7#3qM7y&I$bq-+YK`;1h+QSx8p z;zXDqul3sKl?lW259_rQWLcWl4?xsnrn^n9CyO;1na&wjviA7T+ro-wkQJExO`e?P zEV+o`gdITfv5?VmP+)8Us%rZm7UMI(_Yb#k<`oqd)&J(Axcb&_U+j*kX7x=5-02n1 zyZs-!^Ei^aLB`CWpfv?M|pIEIkY?NTe|>tr9oW9Z4uN_HyXk& z4$pm#xbskbbcE9v9w9DtqZc^~cL+DM7+B>!tQ!hq$5RQ4<~$N7J}o4_=x{?GF33eM zi2bLm&A20n+ZQJjUKYHZj=MkXouoxI3@uLnB^m*?>q7k0)!|w8eTu`P95#&0RIcV^ zZb)3;XyqJ;D9za`Ar(m8qjNP#X@eR9!)#q0v71QlUbE_>XCqgYmo$ZMFsQ!tR>%Sh zr*Iv-caj{0wSn-~w5tAZV1g50Yi4)eX&XO`cvHZGVq~utREC{2r%hsidDa%Yesy-8vYYM zsKB~k6t6=7O#o4u_-jfHmySNZ?^pO*c@ov3 zDkeY5V!%j%?HqTihYa~_Jj{q2O6nTy`i|CzcbVI+eI3XYurdgNieb-yCOj#_?m)#$ zvM96-c3NKuoI`vD@jEC^Ui8);nnMxPC*@;UTYu%afr{o`wYFF;X=o4}~T zJhO>Zg^9#qK!!%4v_)S!AwpgY2Gid-7cJq=r8P?cir;Aq2{1F%U)Xa(838z60I@O( zmOB&u-GB|)UW-?+whp*qISkYwlhVwHmnGim@VZAugL!w|#wY`+U{a1a@w?u8BrM50 zVsoshM{eJXgD=pisagyygs_P#WIwk=%LSYFhQ57S6uF;4{5Oa$!wE4|)5))*0HzS^ zV(GV2U$X=}R1}odl70}fM4_cy3-gIFv55+5gj1g_(+CkZM1e5tU4K&!(*Lu@!ouhU znMb6#NC(xUbA_5E@pa~!gK}Edg8z5e5QKspR++zm!P{@7Ye_TU% zz@0sWojoSh1u60QT}g|$5g@6Tbo8PKW%~RKbN5}W-%apHh?*k%nx~S()6%T_{Mbc* zNzY@$zGBNymIe53^XrE;&#}QK^|tMO0z@;9oW(-`*(p`m_OctOnZph4@|#;F`{Qk= zjiNd!!k3yJ(I*z<0=92HXUY7$I@+8k|3Jz6(-Eo{R*m-+ImrGvUJIuam2Q@)+-L|% z-@c;(^VyaIGHb_*Sv9+t5^yMjRSQVUoY0JQYbUXT@1NtF-`Y2ecV&xI>v+(c_3H?X zH2e36<%n+^nqQx-fz`bFa%Uew`cmI314!W3>??#p_JSbpJ2ofHYHuQ zJXM)&gV#4>4=J7;V@drE+q1r6?r0nLH6epj@HyVwm;U9eFLY(q00(vgJdQR05r_o+ z+os^AM0VFn%@}?>PIRp`3Ws*sYKG7 z#gr>8>Qe$w94w>f;m(Qc8ot5@VG(OgMz1XWj)+wyfw{spE^PmsKbm87$&giVS_X&Q z8(dFBO{f^-6A$xSUoBG*v%R|k0=KJ8N3q1bfAL-?=ah79fX&SbafM0 zI+f1gKbG|nb60*Mn+RiIo4)lzz$H;AvnnXCfJZNZ-qkmAbJFc$&fdxUqc(wXG5V=I z2f5b>OZjh>(-hB9mXqJeW}E+sM)ISNtpeTy50Fqzjz!qu-d8seWFogNbC>S z-Q>hwcmEBA2#? zxrHq6Gv!DAt)1kHPRvfrq@VqEM`HD>6kRQT)FY1Ad*IYeJ?x=>06H`aAMN(Nx0}OG~p9c#iG=>`lF3p7w{?+!?v(NK%9ka_b$q_ z6^GH4U8v+8TP61CtKe)O@nIjsRV3!eF8Sr>o^22p2^W_@N&~)1K?s|CL^sb7TdNq7 zT?WQ`MAjk%L95~+jp$^T!=EVk+zjOD&5XauO17`Dj!A%3q;ag(4j8 zxL`M~jCf8?+K|c4!btjCSbT(ssdUAM)9Ds-&9e&*RE3)SoI&nshp3Pf12{ z-h`AI97F1KIUDGR=XmC~uO5le+uO;1jWlC;Y3I;(^g28s|CLS?Ndd%m@xa!&Xn}k2 zcTLuJ%H~wb6mxP(dp!3?p9B3~mM)T;U;W{Irp)${$R_IJ6O?E+D1#_=>edu{ul@Ir zscg&&eX+O(cg?fNnmgxIPh+)cAWxnoCL*JobIKpwkXvOATBuf=bpSbZ zhE8i@s7QJplk_NIGAR2lGONoaHU@rWE^g^t zq^=dA*Zy*DJBE*vt36bVX}?k&^gHcqg2b-%Aun!_O{_citFZlaP;^X(0 z`hf5-XlS8))Odzc+A8GxfO=NV+rUt!vLK9EHaZxF_6WghkyL@GQRRONe;a4SD2m?x z%h}_3d^XZTsJM8>38AaxxU|C!&X><79L#VrE-FFT+Hm^P;)$7Ewk&&qgK%4d@Uu&} zeTzmA0v*zg`NT6R;{_Ak`xEF0hu?1`DDkDP0i&S}Y+JNL%)bV`G#iXwi5CkILZs)9 zyZQA#DxqIZpObalW$s^=_u)j*+p3YGe*e+N&N3MDI(S`F{aZryLKmP-D*0v`Sb0af zH|yio$|vnem}0o5DO^)~yefNu>Mkp&8EZh+QzyL--#S6EQc5{mmIH z*#~!c;4=UYJZhrqX@o(i7gU+986}QOwLG4Ue;ap*F?McdnC>;lPwE-#f&21t?u`n$ z_piT^7#Y4$&|!Vmx9d(J>1u?&AH7&vwymrRJqXZ0Ma3qRMW4zU4|t9Y_XHW&u81xO z`UbqE<-rv;nB?6)dlop#LNlkz6c?Ln5V+>xN{lcdVkC8+n0;GN9B{4lqYF9v5eO3l>q^F`J@lgRXBKI%D{^na4p&Jb~k5)fi zDkq*T{mlhUE*I{gF3`^%o2`ZuJS@q!#tm((fi8?e9$=g6$DmseJpnwSDk7hK3U1od z&zcA}5X%ub<>Svi%U?MLu()*NbTR=j(I|&--6@&r@$Ri?mMfYfwvjVoYQZr#u8**| zeC+}PRbN-mQu-mL9WfP=+oVRD$YDl{Wzu7p9^lvj=FiSKh*;8hYUoilih2}f8+5|( zL~5-MH?x%U{;)8U+hwr+ex#** z`8gf!6Dq4sE)(S~?4Q9J?)5qkkd!O?$R{?+LleLd-5vTOF*?>HiDh-b z_>*TC#yd~G@^M6it7J${kYFw~0t}9$a|%yb_0BIIWt6T^o||``)Dhb8w+W#`Kj!+h zkAM1N%4F2^Epl-a^f}Gq9-moKP8y*62&jXWp>`GOE=Te}ON7P|TLZr*sK~f=D5=j* zsUCw5hY!A%l7~{ZSHIpTsxN(8^yjVjkiDPk{q>Bi#Y$#?t#UC@EEb(KvvlU~x}a`Z z3HPM8@o0FHDu8PMV)quEn4ij^M6`mf!~ogV{YTW6WSwjNaOdUt46=aoI*V z3ID^mzI@!K84Nb#ZhxS@!MO0yVjdasS9W8AcnxuqRB3EMHZ&y&Zz+VYKLf=qlP&pC zyF&YyuV1(vz3RuxjSzm_x{oQhu?lOPse$52yr>Y#QBzp{GK9p3eI*w-io+gkq4BPt zdMzYabAijI&s>o@S8PFw{v(5_2%8t!NY5uy0`QEmNx+1W$w~BN*>No4fa^FYC&T;d z0a^@b_AA7*R7T^>pIMG%D)9csOqIdGu)69)FDV=}`R6Pz0fISG_U^ArFmqIy8wu%|I#p;jQX1Z1;55at8)dOa zC57<8B4d}&gWX-2@B^njEkA&>kIJEz2n3Y*3^1}Uk&LWw-Jf0UGjDG>f_f^XWP;mk4I|8PDdk`w#5GI`AxnX$PH z!mxDEXVch4+6`7m`^$%BLjDYn?ZxC>7E)}fP=4%ed655c=us2! z*ifpIPrdh;g*d^W46EjtcP%!K^JcjFR}$Y*Um=ykM(=`~B+|gL?yIBM%sS2LK;AX0 zcmVa(X`b3nzznVwtq@2>S(a9Xx%~%`v_rniaWf%q&AlzIBXiN#M6g*6HnO@+_09H@ zzdI#fzkhsd5N$+316d&h)H^Vg$*D4)ht^Tvdx96kmER!p7znJ+*Gy~OFe!T9i_A;#}jv0An2h>vP7A?v}r7sl7} zhRLRZbu}AlBr5K5tl?8K{>E`)p`?*4Bko?$09XjEDwLEPTA?`JVy%;)#bNnq#HT%Z zEEo4I?o&!wWnP|2iUQV9Wju^+o^r-W?)Doed};D23Qs~;$ZInn{2^$XT{IMhP7xu7 z1AK11c>Anz<9t~ETgsbH-e)MAUPl7ZhVloR`KpM$43kuSW$pBV!#}>P`nqQz)A3XKhb3vhgs4!|LNIz^ ziTp1XX`dcXTnrY z@v!VY6(Ip(gnM=KbowQsjmFX93-VJHqqd?EQ)whu*nab8q{tjl zZ4$JvS%%R~&su_F2hrZa^D-`Qc^q{b{khRUS(oey^U>}b3!kK!eD8QQMyFQZHDNqG z3_}%?$e+pu`%Y2c0|~#Poz(r;=;u@nk5&y3^iFZ49%+wbp&RW}*zJIm7*UNmCE$s{ zd`$cnDsEI3n&I9pNs(EdwHsVE1zx}qd*kZLvO&zbS%S%8H@?I%cSau@%ruxhD?Z>10N2gFGge zSv!iZWH)M|sSbh-uezid1I}uDdCMKZ=KpM2djjlIMS5h&9Cxn26)+2Gf{zyze{Q(# za-}!mh4_?3Ae|OLjH{)gED+n>uZkKCCB6efkd^SQtF*OB`|iW+kjqHz0oufA(ZyB7 zEr&X!VcXTai9y6+w*Y9rt)qWa#qwW${RIr<=Nvu=_=G{^hJqdqQmW!TqX% zC}yecXFy{ZXV`YYOdAd#f}PvxMO1NlM!t{B=@WE&SslgnB zaIqLTR&*A}afw2&vM;$1>cxh^`acJsIgR~OJp!cAn5;Y++IWGTVtvG9fhh`+< z3BHv45;QrqU%V?eIuo0Z@gK7hfIoFFsuUKHMPZch5X7EH{8X_iroAHMLNS#A$)Ce8 z^W7Q_>wh#|Wk4Q1kjCBJ-JPPv-QC@aLve~z+}+*Xi@Q@Cio3geak%YwcRyg0Y<4o4 z%w{H&y!-TO(n};g7&Mv;3jR^qySYl#Nt@zg3^vm)a}O*ts$UIO`~Xce+LpB~_(|6v zCZF}4#kGUsJ)i`tpUIX*jD*LAs~*(wkV?jGU9>IG;L+%YEcC`qxWJVCFNyE8DWBdY zWS4Dv#+}(IZ=2ZnH}}o38Rg3Lub>E!llgwb5oD4+ z{shx|kp#*=Y=vXEf$xV0svKAL9>9LV=x#;fFEeeGT0E}$bEN_2>rDw}v;)b!?5I=H zCz86Sr)9OXhWCm51Q9;l2Qk>u|5K=`P!^4xho0JVNA`QcG+M2+HFH)@s#r57`JRd@ z_zQJ{S#3u<|F?>A&@Qc9>1+yq0>WG7u${T2TfS#szBiV5L(Dp-afq+IWPFlAuDZUU z=*G>K>UPoFqiEBD5;*a)1LSBAstF-kkLmMvK41aFP%HhT2OrQh(87)6E&`NqAQB0C z0|E_k7`}rX?b28X6YpP1cZM@&;kyW+e*U77Og?fK`nuhQ$&&!Nj=E}pA913r^Oc?* zUmbNiHq+LQ&~7(Fr+M&owP${i@D_%!9Uc@EhJKfv(lKT#LP+?TO+9`r8din7pAL}> zS^0z((XqUUPoF~awhIk9GvgQ=0tvc<*wz~OC^Ma&YwIVy!z--EcQbp(0|^N29~$ec zW+Qb{T~6Nu2)}ee1tU~hA<}V~-1~harsE=$;wrD(`}t1o#DP1TIiL2h;~FAH@}SG3 z>$O}LLK(%BtV;>A0~m`SNm}~6H`r*a&!&HCPyyuvtm)GbB=8bjhDu;28LR;QQ6NNH zSFt$F<4dt+2s>-Fq4rf$x*k`dv`O^#yCD~Gsj>RX0wxCHDlE?|V4Unc)4AUQp3`r| zFml)Gmq9GdY=ydA^7aYYIkq0EZ-5ba+6_`~>;^2z(@7!0$UCLQkvhV0N3u)j-Rt05 z{9FeTN5|smstcBlJ{6=b&-D^r*8tuhW}49+#nl~SlAbb*t%%@B6*|e86);yJoo&fA z;5BOo?e|b31O=VBTiGJQ#;D1F#SV{i$XUMh^b5k4iPuMtyC&oRvx9U@MoD=G(xycl zIC%%hDAK#Mgg1kq1OR$tV+=3tiN&hZ_wNl}F}MCy#}r5}E9cgU%a{K$y;s>GlXN3J zg4(11*6FfWVvtzZs0((Me{3rp2>&s|B&UsDY$15mH!gpEGPmu)6s)h77P1@2j2Ygo zG=zj1Zb;vH^u_M9p=g(FAD+N9v4O51(vS|#r!6gy%n{FE+RQJavG++O{#apuHV0JX z4Wg+rXS}sMmtrA@$ECTb@xu!{?p^lBoN*A$*hTgq_gzf#^7k&3iIIb! z#oPa$IZ|IyOd!^&n><72;)sK$H_Pq0EwY;PyU95z5pNhV&IVVUdX*W3yP}G`tre^P z)7L~ZL5RuYn8$Jlv@O^km z69r5wcfTH(g@$$N_l`whs$5%|xw*$kNrvfC!`(oedEjSgIZ&5&Ql5PdcGV`aOTPhF75@Lcpqt)OMR zWuBhP*b6|HYrRHy!71{30qb>adB{aU38zBCQ@Mhj6i}-od~YLDqK0B&5nBJLMtckM z3+DsCh{Zd#m%9l;FSBsBl?)74T^! zFmI(AL35e!t`f2!&U*j@I)XC*!jhgW3!TKkK0?Pf^MFZ|q$Ze1W7B^ugKn5m@0ms8 zX8w}Uu|9t_qx$5TL9-+w%m+tnVFrn8*c5dfIuxxVLBMHH2Fm!hH?KTg=gS}lCT>Bw z_pTsW?z9ymfG)CK$tIlC{X3|8IH@ZnSa~zjtX#Jg9wcniZMemG&KP6kCk2QFuN^cd z3VkXA-L>jM@2bo8d35th@3Z%59n>Ip@=w)fQ6Zs^*tFlQG2a&Kh?xcRLE3Uv$i~XS zSg0%@AwDemE#~|MB~Az-L9$DW=IAxHL- zW-D5k=Plr`1)lv^b$USuvw5O~pSAs2E`-6J=ldY>zPqa?_BYyPhn;iq$vGXo`0cn=XhvIByk;(Yjj2uL#*m9gXE^)ns3l$@n$I{m>!h! z(=1@y@CIuLV9&z&o=Fbn1b&h9ln(CrwKhhQHyIJU8qHxr3QQ-Rt7l6<| z*IY@*$oZ>@dMFoqKlRV^Pop|`XxL|n&)6vLsLq=xjqmFMkTTZz7~dzD^KBJl>%S=x zv1_xmWSsRAIss7~Z|$P~-Hqcq7&RaQ{|9tN5Q1v!yR8G)@%Bh zALB4>UB?c!9rfRal}6w< zRUx-DEgon)k1)-{-@89i;-}>PyzaToQ_e1aLzj?3CXeb3<~vPw#nsL~Wd2H#Me~@W zgJkAOmGyC;i7Txt;Pd_!JM?e?V(*`G8ZUzv*MaYO&jIYt-GgYK`2$y%`T*oq!8|b& z#6!kCH6#!u7i)WL%cVE40o!)rUgkQztIwQ4r?W5U-E{2ASOY5g;i@ib`MK1D)2Yl3 z3{6hW*B?0uPsYH;-FtL^LK2ke@SllPlo@TSOIn^Jnm16oYnl&`q>f+u^Kw&k+~9C4 z{(?d*L_^H^S(z<^wpFLzKfref7wfb-2?Zer4_KNEO^6obK#kMQj=w!A!hq-zFB(IH zRUCF;GZK^ZFf}yuKlCHislz+U$QLp66+TtOh{flg(u5a~54VWN3g@staO8M7uGd}0yI!3%&b+-VleR!K1>=NO2;ZE082n|s$%p) zQIKH{18aw&s^vK%@JBvP6+Q;X5M>f#U;((Q42>?7nV-=blsI}FB@ z3rqeMI&=uTHnLUvhB=P|>W!fho0Fl$1WDeK{TG=a`A>d)Jao)Kt@}L2A-D)Av-lN!rX0?htbz*s4 z1jIVWs|JQw_R2QaMl^(2-St_@D=K!S$Pf|8an zdQ+F(liEjU$7C6~!aQh{+zKaKJ^A68u;`46%s47G%r-x(?MRW~l;9IXPCRIh9B|%8 z;1;e4Q2#c{lY%Yzx<>Gj{Ot-6R2a!n2z=&=hkb$sI>PU_Y8;BeRgG$Bk3UFaxf{}4y?*q=%C}F;%Bjd;s3V2D z`BJ6gh$h)`@{jprALv1OS25yXSgE1eZsfg@pXmI7#GndU8LEAwewh}xQu*lknRqsu z+>pIy;nDHr+f*hYS)%o2y_(nYi~PAqPUIULR2|Jao7U+~IJ}(%B_nQ7P7#GWpP-O* zmMw4IPzH+5|j=81L~I zxg-ea+>nH)H11`=23fvp*}t#PFE-GmorYCegqs9_E}n@pYE2gy)yF(&ebaB;oT6-d zK+E2&w@`*_LIz0YP{JL8oIT`YRUH|m*knVENkVA1Ty?Mp36{@lT4pht{VwAbhevr$ zx)qJ^>t|DhjG!Q_PhjLZ4NZoDA{++`c=3Lt+VHkr{T1iV6dKvF1h>`qyZf9v(-}JR zC98xA>Dv}QzXkVKq+L316B1B@P5KTsyP%X~w!ADM$a%nbr=pXS6_Z4&>fvMl&fq|c zK^}Q)je4=qMG~WSSBQRbO&Dj0Iy<<-JB~Q0fQnjv{NnNrrQ1ktJlb)jf00-zZO{UA z0E8(oPxW9bT4sdMp9#Nqq~WhqJcDVqxJRH8k2ZW5$1hqNe}{mn!K$WpA%eIjELWjL z9gH8281+~f5qG*~F(N?Lh0c_brWLf^RzJgn5waYpb%1HIG^!&+u$EGMxYP^y)dv3Mqqjo)=emHV4e2__Y%a{!S_*P>~{D%cD?2_9aejZirdz^ zr|i#U070x94^~I;seXb*xt|UYSuWDCr?%KrG7#bkG+)NXzOYroiDE#U#7&xyc|<~L z8)!4ivd}43RnJWjnDweQ9cAGewj^>)y4Kdz@w6@it9GJ?;8n>EI&nxt`Ep*-s)USj zicfQIrHanB9CYj%)Lux_z4!->(*B5@T9|Jm6otu}*C0K#t#e0KSJTwJb^ELgsUQhA z=9DBRpFg$V!`UIdf8-4R+LACq?cXlmhYY+eBd$d3DE+Q2(qjb1SUDxM&VdHZkD^n? z(s$F8s}MQ+NYL~K9rUl9eAp4ZH1-%{O}FqJd_sN3_2lfN5xbSG=m(i;y9!yEnBEf6 znJ;~Gmsg(YuRkW9btc^!1G?)Jx=dGQJ z#0mdU!L%kdR0S$`9?yYau+jzz{y1R}f>M~LLN28vWpIT``((K*6cuJn_a z=_xJEXYnAT8bwfFJg#Kg*EAGE%y62}KdSLzJt`(oWGr^4b46dCY3qn0rVb$iX5z!@ z!DAxCvKa35;4on$<9)!RIzR01BE+odOpC>h>811cAmQeY6qEen+5o%TZ`Q`tc?*OZ zM=oy)^?p7ym=ZA?)4C068*Z}||Dn-x%5$XOw$@4Yb9v4B{IbHQq+EFHIEUb8r5&1`7dM#Bk`Yx8@S*y>YrcjE8m>-%MaW#@>e9NJb4O`7(FD%auq zV${0q#YdD5(>$2xO_WNW1fU^9Yb48f0d>nlI{=S%k|7}M3Lcgxfauc$Bd3pXiePf+ z)BH*)lb)Z2HvA_?Hb1N1433=m3DUhWCcb3q!(NCT(f7DppA!xO|9SM6gPxl#{nrT) zF4=k|2ceyZ4|C;eV6%f6RS-!b&3UjS&s)A|eXXUTA3@l|$IhsIfwB()4pCyqrmvt* ztmrzSktSUBN-m_L*QE z^v#TPMcN4)JMBk>&8|I7_&IH-I_WR3>i-!kD5AXTYS&6qr8)zH<6Xd|s{pvCY}WPs z%4p*ErbMLVS;VVz;Le;g6i>crzp@fZxj{X%OD+<>OA#%&{E6Ay@16G|a%F{C<6L5fa$%pk{%H)2FcHntkn8Q(4THN6Z60 z_B*-F7}`ajaSUVtVB6jlDk+%jpdI0<`xgy(w>`s{-xa=+f@--uql|r92IxVrdfN+5 z$8|yj4R}3T67A|XuF`s@vpy7tEa0+WE7i^Wkp|%^HAgc!(C3F6G|1o7a6+CMAu7*=S%m^K3xi=G$5- zfrClw3+JKpu+vsDc79EH6WOG}`J(g_AW6}crBf1-0Zo_LwvFp7lBD>;!gZi4FmUsu z9puvzvK|q9!fBvD%Lx{HeyJ_uxYxJMG~foCdDpk*Vz(pE)QktD{CwK5#!z{-dWra) z$;F#j43Yi3#n&9x$}03*YeT@mUzfR!!D5u)%;l7#3P)tvSHd8teKaI#gKAk;nhSf# z=3sYj!$p^gONU&%M}Y?0;@4?80NPxwmkO%S{{IrG=|!M{u9$0U#Ye^Qp1kR27u7N1C8ysozc0lE7}=wxNrlc@<5IAp6fAqw%&PaNd4eTWgdor>yr1QK<)67vqFHLy6x=Kmp4Z^$HhfaZv-Q`OO&BRM$%F!!J9zo#!YL6!T&LH2UvV@x z64B#H|8l6rQ^odd6yJ5 zimJFW9AeAg)~Jiv0!3sPx!CGU6Oa2MxbDfO@`?YX`mIZTj6q{=NhQ9nqU`*sd<2Cn zh@@XOd$WoM7>gue5uVKD*zL+1^ls_fv7~nrsroGhMcaLjNz<0@i`Y;JnW!2AKzG&q z7&Fs)GgzlTjZ_TF_Plzz&c*!l)_*270)fq#x{Xg;#zq3zqaboD)B9dZW*n^3wyGfB z57#tnNZRiz?GxFPkbiGuxbKe{d8lvMt&fua=58PPd1EwCAx`I`)+AM|TZUC`dsAM- zkZ;HlcI%1J0-+@BlP9TJiF;94Qg5MFY4xBy0DdNb&|I=1iHPj->X#9o>9v;5wWK>o zGKRly-IJnHZNa|4HsG?-e`{R#wOYVh>*JY4OTHsEV+^a7XyhcOW zziaNBn0;g@Zf!l0N<67|TU#+#Y90T9AT9PKg`T8n{c)o?p|U`z-ednE1+(=)NVlZH zC43&k~raF?kqS#dSK9|%LP>*rrOzj ze@0XdIBX)V!qRlToMGu-$DVBy#gLRQf(}M5F|@DCXIY$Z`|GU2suY}dymUE|`I5sR z?A5g2tN=ZBvA+o&G5dlF>vo}u$B7sp{_~iF!F_Q|j|exO7FS|hxE_y7k5c7G*2eTN zxeeH5kwnQYgY%BXm?zb?mUVa)836a$gw3S(Xr|>cHY&LKgd*Sv0)j#T>=xJ5dhH^^+ zFl{NgyjpiQXa9buOubyY128{5TAw&Z$>+(7IxrCZPm3U0835q00*gu|4m&Kyp7?Sl z8!S|xnu)3vU-9wamlMyKc4ps7P=$HLX*5ESeG?z!Pc&ss<;dG}CrUxG3e_7WXEUj@ zE9-Y}l}7V#c$ta|sgu(vu22k94X~7&kw{j(HurZ+5sTi%AmA|fvs*m|ywOvxb)F+& zGa1N2N{Yatvr?(o^a75q%{S+(^&58%*?SXG5>B4=5|4|sK$UD;6K7`VlbBm4eS3!K zR@R)t5K#SCz2*G?^j58d+2z^cQ_0Wq$`rv z)rb;EQ-8$6TUkpAQs3!UVLExZM~);uD%s$Pef?R{=1^2%Q0a-drB?eU0#4@5MB#m1 za+}z$D(&n5O8DSF!egqTU|!9)CllwDLqLdYMo(UVMb~T8RA`s-2_y7lJ9O@ahCJ8 z%1bB5f9i4^QvXjXyk~2xa*2>;1STEie%EfRCxiC_G=wcW3li>zG}!7u>)e3x?ki z{5IjurJi(^`uzZxW}0sjz2*9YAaG-QKZ-VesFX*?0}6(*GrQwsHJxKO3Cqb}5}NJ{ zgL^d}_*?ooqbawB7C6jBJOrQG-cI90fIPAgW?p)gN4G*uq5;$SDb!UQ}x^FNXcIT zjo!H`09*ufg7&Ki6v%@HxKQ8%NhwY0h&74%fJm7`Hp$Ty0|dka6^I^1x`^(t4~RA` z0_I&^Nq-5Qr;E+}H?$k_HUFt>{oB8+8|CA-RUI4eHfqQgYUI<@!qrwN;s8CWw?)4%;apTH*A=J^)c!zDZc?3@9M z)=kWNl<0doqz^E{&NY50c?BoI7Lx)EgcV&zcqc9F$kQlx-*a;oX} z76T0giaJGUYo<;<@RxFn=wDT!JWBMdyNT72@WDdRk(d@xKdRi7&4n!77qyt8g&2SR zrKJ|v^t+_egxmQ^nsM9rsq?19N}{v{0`lh%2uW>feHo}<4O*qvFHH01TZC&K*1`gC zpWX&Mk3|ML^suuWvX%r$h=*oCau+0-yHR7o(0?vW9+r{ZL(}3fglrWtpi=1keGiMh zfBEHY{s6J8Bi!%P(oIMGPA9Ku~16>W^f`Bb5q_w+BpaG*ubGmPc<+D8uKEwV~Jm$`yhgh z<`mHPs{fKdnaoeo`+lnTL4SUSB!0VV7z?LaK>jeh@rnZPY#>IzhBlF)gjyxlh*jy$ zef$PCwO~>uiS}oX1rm&qrfrv}!{NjO>hH1uUtMVgb~yykV#8Y%+#nely3Mu8jT8s^ z#ze-AYrwJaP%%90ivnmup1jSE?^>jnHA5#k&Gj8U=aVy(+fO?>?|g>y8ABa5?~lUI zlBWV~fFIlM+0EAaGR_NT1PKC(_;wu98ux!)AgY z24iLgN_gAorrT{cdNdDxRqa&TRRx~7=$^LqdL*@F`$Op}J#f*63yYKqyDuQ>)p_Dc z-t~7b`5F#)+$*BJct1r<7TK9qF!0SYE;H0AM!G>BM2Tl-i^n#k<$l%6H8@<-0<<*_ zy7x_&LxT~6*^+Q@*wMh-RezY9uYdo>euoega`zWh=v@!FSGKZW580{3>4r?^Rfsa3 z*Nc~lxHrNR8O2NbPTq}gx*gr)u$_^HxaH~~V3WLMX8d81Mh$n!rn7MRE0}l$@>t~b z*B`km{K`ee;jSlh-v z-P;1uy_U-qarm@Nz+>Qk7ocla$fWE7ZrqHts1w@x?m3868d_NOC(;t=W|!{<>Q}^~%D&*RE)0iJI{)A_vCcy^RiIjQ2~$z9(9D%N^!-Xa z>s!}wD(<6Zf1#Qr4qZWmUQm;*nGi>ONm$R$@eQwr1Ti&qe5gf;oRk65?Ab)qF!K_xvkH?1Xb~oI z%F+(2gYBlTL%eD^bHEH=rdv&D$?lo=C1an9J*ExU?>@=Fjgc?I;&n6vvS4UP*KKc% z5B#e{7OIlwF$hFJ89ZQk7S_o^yu`j0WZ%@bBh1@d9d3VI9;=)9slW`?xspM@Ru8qKiPeXC3N zd(Y*;O#ZGb;-jOCV-gxOJKu)ICL>na#lMVWZ^Oe3(OY&t<8b3n_85nM`~c#?MN$;V z*JAK1#~NzS5vbnl7c8>dtK1VQ+hk0>%RXpEwj0uV#saiHy@Z}CgS*){1m!o*PYP@KZz)wU5%gEdg{WIe2yg9y7^W`<-Ylq4 zwHyjbA1A9G2aPrC0{NRBnU<4`;a*Ac_Ve`MHJI5}?TvYa~V`KEwFUHl4RJH@`=Zu!b4YM67c?qnRT6MWeA;TezLl= z1l^OYXSY?E2OpGGYwSLr66MrE?4^l=yJ0V_hUIcZR0HbYM*hVZyr;N_oyGq9 z@g$y0SCH%_+5*#Y%V4%94i(jQv#(sQ;DQ$5!0+eOd{MOqPwGJQ5(Aw+E5*KU2ks$< ztz^>DbQh;q#_x%q8sX$3P}=B-opjj=x?+asmPzW&dFETkMn!HtM`6sqxqF8XYgXY} zP~T#&#%Ecz+Z&1p@Gio~LG0BW;(%-V6el?;m`&2mFh?Hz9E7@e1Qd~(O=uzq^wNRbq?{Z6hMm~CPHS(r1HUV0($psrefhCNz_Z!G zH{E*)(=YK;K!p+Q*g2jq_F2{dIbk}PK)42=Re{giB=x<$Bljzi_LM@oGZrjkx ztwhz8JEpM>;AY+n_h-jy&DOriJg99EPtZI#?~TVCctHIg(7fhk8h;1Z)~^mVA;P&* z!Dk%;_YEdk4h_umdaB*_-c|19b$K$4Ep$L>aw zR>GKfy_-}-U*mmahw+CRN{W_-pDc6YH_79cK9Fhg5&ry*I3q#U}HJi z#U<5H1qpZm$zWY4IbEN0URct{yo=)4E6>3#d1)#s^H55O87ZD(-+(rh4DcuinZwVm zw(2pMLVz}x&n*1)?t*9~?-gCJ1WfGRvdTH2jU_&1Q%kW}O(pN3;)1}``8vwuDX1`? z@z(~UOANUD5dX;plp;L0J1X0(a#dD4*eo_a#y|3C&7Y{;+W}>zCt7|70F?;>aI|u!JBaP2srcQMtDl z)0d}tu>uIS(85LM5dy~Dx6_V}TMl4+AwmH#f4&7&5d#1}SJZ+(lYoZM4>lFCTz%A) zJAoKX;{KmD%)SiDL?`}MGR^bCv0tufWo#mmr32!jT8dwwv?sKjnPx@|`FfXly`|o# z><5K&*VeTqz@je=2)_nMJ+GQ2JdmnStwnisMe>&GCo%*2*f_|_Mm2-O{dpH?UXuV3<$tJ;gj$sb&prjRk|k2u7!s)D01%XlmyaC z7yIHoJt!DJJv@)tZE+sSaW4qw+2^3V>2RGnk{4NIj@WonkLEHC!~$%OvS*yHN!vC& zS11_X@<%oS2IoHVdq)2i*`xg{@)hn|a`{jZpnA%fQiOmsock*KU;6Q1+M|*{=9(j0 za5fCtpooo%2H+Ve|NO)11lA|$f&~lrk$ErX==iYR!@2wM8?Icl9VqZ9sYE*(tWhD(b9DKJN?Vx@3DUe4NTG zvWLyi05-kkpz0i1nHLa)3_W&_E=lRnBEWk>$3VRE>*0-lowmNbDu|d?`fZ5vFFqf$ zpY?Ei=b|}OT(B6mQS_?cO=Uf~>=SWWOO02J%d3_P;RQt1WUuN@AfiLK{t0(1&Cv~) zk^EOrNJOQnIIa|6KlG?e06{l!6sh*U@G{+BMTXa>?P9Ag?`SRrv*#DNs8{WMi`G}okrNIt(;V+00vvIGWioTwk#)cln+fbv&MgOlmps7Nmd}&HFT9z=E<+%5*FhdbU1_$s4+rmJY$|9ztR%zK)HwfLoT>@##!!iw@~T?i-}jne z$)`OId(7Y_o@+tTL(91|SM-y{d(h>|b?Hbq^#B)#J~7QLR0G;AydChLa^m0ejdJ8O z%f$!zl;5)`l5!J?=BE3kd*s}0QE`?eSg%B#o^sI^3LPnO%RKT%%=xCJh?)2_Ab*RY z-c7~BcL=E!Q+UL0ub6kXZhXpl)WZT)_B{fgpCM&xu@53~w(supJSQd%KENAPG-0#*KQ3XCj!6@f z@in7InE^Onyedw|s5-KaN_2LRR(6? zb(-_WyrzWLa9v@WiEfPg6=&YZK>rTmdv*SI@vcHYe{Ua*@-Wg1|IJr74c%rkJ$(TE zyTr>DUTc1wfOVF0yK{OB!1g`M3~s|f9so>E7JOf=0)cCgWr%Q5_6NsCGwDNd&?6MP1o2-wCP_H2>fi31?Pe>Qg*&++e z-w;m!3c6RsDvX@Mfl4{m+ecWPzLUGp4%d1<~m1~+eLU{rvaTi=A^UitaM>6nWg9w@T4dEy^YYih>niwOQrc11+tCAHqTqrL86H-yNpo zZQ_M|SlxKcj2OhycnOiCWFkC_)by&*qj>I9z#WPR;QfE)g?She5PAiJut!*c)Gg9z z64xk^u%}^z=JlC?_a67LPIKjntj0)=q!Us8n;o#Br1}MlbU2SsLI16Hz5}L@Btp_{ zS{QNtc!w&I*~Z^kKG3oe)#*%#ze?&7&NJ-8-+B~?0f<7hVc#)Q-yr#mR@G=7lbmwO zP)<%wp=1h0QHF&5Mw6BZC2j;kK)jLy!NJY}?ajNcz(H`ao0fXL95^(NnbV#RDyu29 z*Km?iyEfzT(_yB2T9OgasAg&{q{x=7yV`=Y;`$kKi$K-1F@FnXhIY%ey#?3As+~_ShHL*ET2KCesK^ z;Y>#%i(k<6Fc&B((dNln`;RTAa zcikC9^Dn)q#-%$&sG1hPPIoRK2@4reEQoTasOHCRVL2mlVimvnn=#t8;La zQ$~5~*{->6OOMy6wwW7~;$|uMd?gm@kP;?za45A&B3~6H{h8>{qChaomT>MUJC6K7 zU*=o=@|U#wsl^hRfbKiR3fVAKtt6?sTU`~m5HzK0Y@=%8T4V7i^#|zPZ`6n%fO$me zGK}Np*Ou6o=IH{?A;quBod6g8qFfPmNeazyep^EQn%izgi6x)i7#=bQJ|TmmHqRHr z9KpA4{l#_w4p>u9;;L)T7W47A0N>W<%Ng zBuRZ;wxikJ-wp6Co%uzE;aOu@rKEhegxhxwNa#eR1mqpe+bd;7g%nVRzo&AGaxzY` z)s3J`4}geRk8I|=A0MwkWbr9B#r-}({wXnmg_C*K;h6irq+>aC$5o7|7j|(`8XM#L zvgLx*%gc3|v%K(*F>EvNfiOeL3A_9fdK!?mzvimcyF+!-gL%0)P|epNDP0*=94x8e z9z;P;jBIt#agmR9F4OY5XMv1!9W?(-RTmLgP^|iw;M7R&SS(VkJMfz`50RCVMhuE)t-kaVyY5D z-)Wi^$fSgU!_r&Q1z&>p;UO(bI?CB0_FWv;tpZ;sdQXczps;XvJ^F&a6os5$ti;CT z$ipby=Wn)1!QhRTj!QR;y%XAfKfmaVjhT9d|9-d0OlL233(_^j$hL7&%mv}m2_UhQ zb{GTgUDQf)m=O77#CZ;o7hgdrc*XncGS+GX72`>Buve6V=21j&ypdg#o0b@_0B)Ao z79y;H?`1*rqS6A4LgEF9|O7$5WVY?O(S#2iN91XRs8ZRybo-K zpH$4A3DIM<+QC@#!<=70Bw$SiE)L=^^4&{b zXdx4f4_q^Si6ieE!bT2zG~I@mbslU|P3I#IO*e`c&10Eip20JZ@}x7x7A-fupcrR{ z1<6vx0QDFr!!%pnD-!*%!UTOhO4gDisC~2W3unX_N`fKkdCqs5D^t)meF9DLOFWO) zSw8Scgquzy5!@_PCZiF~lMdZ~!ZZYgnOICp(jZb!SjyW3MBm9o`D!NwAS{C5aYTAQ z&o`*qyttT;F~ni`zs0Um@0}A@D2pXfzoe~5-LdC(Fn&jN@1MTXyJ>`p)hXwuXtUq+ zD81D!BH`oQ?M$SP%WUiYJ7tZ$l&Bd>Xb^?$oK%((2`F)g;&6%p!9L|~tKx9`=>8@! z1V7R*Poq4{I7zubFTe!e_)Y-#Dj7FgX!0}Q4{?rnOVA*}rRUly6ul%W1&5r*m8 z)g=-BmTwYx-5DXW4$F_OZ$vowTLz>c_*;Mj1brTaE;7BmN0qqMvi3&5i97|1ps0*} zC2o-Lij8+?kbW)l4TWgW&Fg&%zZDyA&JKcWRo`fk+{@pNe)xgLBiPcs-DZpyem{FR zDkt4|fMF z#5S?JL);8z^cAuLj}{R$-Bql7b|H+-G*Wj3{@<|NE|GGR>-7TK>x8_3dxgp$vu2Xt zKAlYAHteKHcOp5rQICHw#u@uf@p1G#R(6`PKy=-8yzl_{V4hRTV$n2ejlrinrAJTe zcIk2c*f+5a#tG3*ygetYK%IuPW2#>vt)j2?_o{%!5Oe9!T4XS}M_C_n@}FsvR2yVk z_KJ@93oL|Fl-L94bKv0>JXw`cD+JW$=~_b;b*uOBlsV{#-#QAh1;noCcE}rF9)4na zmy~V8C+pGCJu%93%d1^?Bzd=#Z6nIuMui!z90XQ^VV8vvhl4kjh~F2^YTbn~=-4Hu z*hen%WrvUWyp-Rxscojmz!;BE?G=jGCa>GJ(AgZ|T4mJtO5R1W6Nk(@d~|&`xjWy? z`Iu-WlDLby?}5{d^@zsX*HP|!iASzMZxdp|^EecL5s&T=-zR#%cO3iY8Q$h3GzA6k1v3;a&qp%{0%fiPgyJ;lo(SXy|e=^j8G ze9$U)@dqkazdJK$;T0R6NeZ;;xcO%YY7$he0S6fN1;y;Q$%FK*Dxbr8_nnWwmdujXL^M9a%2=*biDyT%UO%e2bD75PmuH5K%Z)tfPVe}Li7J}P^WG3w}OCQA%8Cj z(UvMwOZKbQAe&RH_A@u(v-n@!IzF5is`&-U%p*-fwAzYE?H&UNT8K^G0U>zEfORhh zCh{8||4X)w2m?xMfCc6bp4&ewad+D!N!z%N; zvKzYmMe?Jz{noFvpOVnxalY9~AkGGH8mol*5{F%l^uq!~6oM84n{5&RLn;wcK5`uag`L24q*h3pK`Y20NOT z#%|YL^o=@?3yU~SdKTCxpLMRYY#VaFgR-oT+x*bhvjFolik74L{(4TScAtyd;O7J{BP(>T7QVtF(llDL~gvRpl0A? zev7nMH){PNqQ-+d@M%ePb6?2wacr)G*#@Oqk{>X;dyVjXPkDguVoQFKpYB?uP3AX z%i3e0BE&sE3G3gD>jQRc0{zP2^Nlt{N6#wOE{(nj$*wezAqvl`SsN1Fx1dL&NEKL% zyi%_SXP0G>!XGJ_Rabi9lU;Z3JEn0v&Ebe4Y)g(NV}O@3?EV-wy(yMoIZ>PWj=qC_xiJ`nUS!aUY_ z)>m`^rkS;r^6QscG{+xZL26V5U@9*_O^jtB!@G61_F71CC1!awHjU?` zd?ji*$Cd*4Fzc1rY9`dac@9P4Z-4(=(^=RP65|D1K8b%2_r8_814TU(Q<5qNS%Zi! zF@3_hH-jTI7}PU}VL$Cfj%Q`$=-65|OaqPNVK<_~4;W7U=JaQGbD}68O;s05zKq$H z{|~NVZsgZBX#n&!%NE;bh>Bd>1S>bql9y0>-O+$W5)m=w#PlQ`FFPK(WGFMJv-rmC zMO%KlPcl>!q^E1Dc&0JE$_i%Q`%yRrUG2aO!90hYEO_mTzgG!4_J-_~n6Cz-Q6>5p zJ5{jn`D3QOoD_i7PV>JagR|62?`j1VZfr$54DOFT^-IiH&W_ z0^XE3Ik_w*XPn5dDW`Aw|3Sm=W0(d*zGx0esUl{?U5qT=h|UFf^20@X|Fr4N6*%jPc6+>Pl117Y33oGLxdGu7(NU)85W(B_->yaG}i z*LAmkOQ~|X9cmTElMeGt<3qKoZ;Obk=}pH36d44_Y{S+PC_I-mS7`=>cGGe0bv8NC_UnCv;d$AymOz0iYGGXQP9&J=MK_msa4O&Wmp_o;K~9 z5xJL%hOFFD@7%lgoXt+YN_H^YZjQ@M=;Lj=n|Rd~b)W4>27xOPoPw_`D{kvXva4P(RpzN{=qT$Tr|+nMPw3*3ku?T)WK4t07cWM2_-=iQy+rq3A*Ek6 zw|65y8aMAhwR+AY_FL)Zdy~@qeef=g87I0}Vz+QriMuajE3A-&e7&M833C`WEMr`Q zC1&BIHW7x&OzC6!qlQln6xo-}qgYCmnyhQg$6`#(i~Ic)5hb${)M$5B6)0E}&dHy1 zkd$?hF;RD1`76TA&i{PVUeHUpLh(h2hMXJ|TF|o~wIR3Ma|^fo`i~~@y_O5}CxZs= zVF7Qok>gZIhYtTw5THVS4>`{>*-O{5-WfU;yT7U$(mt;uBYsj*2P>&KwT0??4zHMN zoD6qGyt2LEIj>ba#Hwtq4i^tz1jv-!6=g~e9q=fy-<{5R~U0s2qK$yoE<|rCrKhgx&M9_ z8pyA}-c;PKZPJgXYwrH>b*{i(YL_%SVw$=;fFBeXv0=di zraI8y0`jZ4+>_|z)T8vE5t7k_lzmowJ2ZB$V}=wUS@vVHE)3IW-Y{grD;Gj5;LrVT{1-cSbgM?C_51%Wu_^Jb82NtLb?laE5gwmWaNBXMZFtJq6HJ# z4Y>^S-ZC<-_98Mmmi6>Qh(S{kb+##?SvBr0nl>uPLE3wnq7;l8OoBxmrg*rohCfZl zQBJAGs3$C`Ns6jy%oLc=p|aKd zQ0PZ5G>~FDBZ$rCv`1an1b0U2o{V{)5INo;qXivf7+xU>a-lt?UGdu=L>`l1g8l^} zkwN-6M8#WhdiCANU3Ds2Rn}7~v>2*YPT+S-6&_RnJ1E?V~0 zmaU(7C@avmKBXi2h@ie_t#7){nq~aif?Z1-dVMNZov_LLG=+!IqAso3K z!$9(*4~iT0!sKyp@(gXU-G{o3Pr{DFw|e zucceBP+}^T4uDOZr~t11y->R7PeiDzcd-|ZP?Tts65L(J4hXi!U`s*lDQ0gHfpG%I(|LP9bOq=|T9mkQ7OEpv>ut$r<78M*j zgLfUO&^19!aFQ+&6(=HLQ4oxF&%v4J5Zhu*H|n5 zs6K@XjHD0}JuE9W8rXh_P(f?|W;xyC=LPJGm}aY_f3Q-4Za`f$v4;LW5Uog6n9d4- zD1o3EH+jPujK2BTQbb2blC(Y@<|&RkJGesKpyS4id)^X$y#tPiR3L{=Fz_U*D z%jk&W5!4TGaO5X9u{@9wh;T8jzgg$_)HiHq+%n*y&k)VUz3zH_?9A- zV8}=!N9otOZ^6?2*vU29R}eq|4cOTJRX<@Z-0>hJy*tmv`2m!0D^@5kgEy)_UfS{9 zm&gl#@|3JWzzC6VJ0hUddQGLH{%N8)Wb%HNYb(>HHAh$6?l;NAXJm0X{lGden!rO=8fbm{;MrZa#I0zzFCiYQ`8 z5lt+y6!!g3_3*f)8{n$v%vJ=tefwks#B?PvTR@nH-omxczk=-Z{<$Zx{}wc$g`HE^HNU z^PkcqT3ngd1$S`fsb%ot)YYjEB<8dUN!8UL6%)O<${^N?pk;#u|g}15r zrCih1o2A2rsC~vVj;6%JNycagS@Huw7TCm?^9^(TL#i{JN-#rA7?iQH>XioNgn#)OKZ)?fP98%1;F z>AkQvA5X|`5qZ3@KdM9J-(XR5o+$?S+`B3u+A@fzxt4?J4ov7_kwMeg&VkPu?qoU4fiz#JVth zCUaAz*VR@WvU}xpGAfbCttXzn<$j5ki`rhP94aSOdDLG7(k9P(a4W-W*o`P5C#y3x z4yo@-5>!5zPlZ)Zgz9h{YtDsio^mluB`|6Z@fT50D~+`tA@4C^#G68u5WATB7p1GV zj>qpEZ)>`pQqDG1FOwgeU3&yhjjyXvU*~%!zse{jr~FPnGsL?bU4ky@HCaJw{Ax>F z#c&1H5rbyYs0UwT1zxhn%#dr|2t;(frI*<&7%40ECD{rA@ZlB+YC#h@L4i9jYMcXR ze_-Gt{|pw?Ar<#}PG&-g7-r^^q5to91b<>D?reFMYNf{vH)D|uGt`-#d|>Y}%X|`2 zxJ*kn(&m*xhPAcbzm~jK!WJOqh8@pRzMoYN-nwh$rAoqAoRUa4dLo3^R<^?v_&-Ez z_fsP1Lf5DfF5+0IGqN{^hn5_e)5HNbebyTY#&m~~3&v_3?y;>P1|erN%3p-EWe2!d z+EO=Uikx9Mf<+BQXO?_l}KSK#}OJKsO4|nC&&(* zJ;^XkZa#QdM@vU4LQ#+HEn6ByCZ^oSWT}!q0y`n$9vaG{@8vb!#d0gZIil<*5rNda zC_S9yP_vjoW{E%*NPVH4aJF$rse$^t$POC1l{v z?@sCXhBCO6IEfA}SUBxD>()Q)P^ohn`7ISU;ryga=C$%HFX;v`owRf05-#z~c}DR0 z7FwG4&7b+5Lg#=z2qkHB%i(?aN&(T8gUC{e^ux)4>9{+YN z>{$;f37kfJFCZD)p4`%t-~_!R>RtB+YFsF>#AQOAmcEpe1@nyRRf;~&Tq?IDMeHEn zhpr$YQCK5R|!P!>!`rzl1fVB3Th&w1QrDc0u4_v5OfH9?xp1yKqg6 zZBA^3*c#b7J}`kWSr>lq^cyA+q)gB(U!CkNg|8jxBAO6y^EM1?YINOP|E))GZ<#AF zl$lf1;6yAT@S7CgK>I@2w*O+%T-X(5sJ1Kc?TiF8FGU z7$E5=Ba~S7Qv4U7G%y^VYM%Nmgn5m<)jUd!yeNRtV|0=70N&z=Ec zEeCi+tnHmIuTE>aP?z-09xqIgP55I7pocd#>3p((-Dlg9P49;1GF`P;?|b_`JW*`} zM`ekAB*nF*M`QPOF>M3ZM>0YyF(28kSaw3uc_q>lZ=3GM)R&cD@V6_OJ#<4bg8zeM zy(|Qeg>l0qz#4&Q2XhgwtO`gkyT*6<%EOX4_%!LKEruc;m4uJX%)N?=?+06Bp zH`aWqbSlECAx7$N*XgRkyBHXfhP>I<1zu|Pn6S~fT2WB<;+ZJZ2%j=uXO*-!=l#Df z$_Hd8q#97iAneR3L7%@B9*My)Ib5{SrKW-b5(Ijz4>TShc7C~77S3lK92 z-7HC*7e7S@XyIM=z+1ePi*rKs4^lZ-+a)?TF|}T!&Gx)(0qb^{F*<6Ij7QfI1D-aP zST<608D((%z`ZhzE=Sn@yCCJ15451E(rpxq^^+Ge-MKf~Ve1hA{(}xwaTNF_scZ#c zgUS4+p^P744<@=cjeTX-;iuA51cT`wXRb9&?x~s8IGnZPEC(BCv0;{+9BL?85(qO; zk0*o~gs=TbKq=x3%aAftCTJA((h9GzqUbGkRcKo$>dZ3>e=F#`9r*Gf2>oD(DuW>av@%EHr+dBX1&boSz{~^?qj7RjG5HzhTjGEyu;Kf`QIdop^nSN z_VQ*f6W-IR3}LE$0gK2tV)F9#jiOBrEk5@PO_WjCxO?tqoM9YPAX3@$J2BVH=tDQx z+I^ad>C#WEdBZN|NvxSzBy&^$Wb40n-{7BYxPx_PAWozsf0_<<32iFV*_IL+wCDEW zh27PCYI-{*oEZiZ`1b?ciF_x1ohu)$^s*?Y<;i#KBu(LQes6YB9Hp zjvM!@i}`4-%mf9r!aws8-S(svQ-b$T$1(>mF%&$ZWxTGRZDiT2l~T;VS-VsbS%KZ&T_6Ipq+<2PH`C3NVs+dg}G1loM4_c&N&H+A77B+nSHnsOk$H)kOgYT_!+{uRe<2aM`pShQM2fyi-W~Pt zV2u^KTe5C$D&s-DP|`sJeBQhjnIGDcz*T71Kz*yy%sIj?Y;;i26;c>l;Ij~~HTP^^ z0|B1Z7B1wjIz`l1kvAr(eON|x()k&63)q2L7F#_XQTrK=f$C5+m{xjdvs?-?vbP^Q z({4es4LN(-cnD5JIvl-=?~CG;f;p9-m?u|gBoIv?yCtMUBMBl$MFRyjnHRJ=y&+*kFRJUgb2^vB5kILXQe?)Ct8|G`Hq)3mZ4l zv^CxATRDABt9=ZOBdAd4Me8Q}H6H~v#Wgk|Y$L5(7iaLQW-J2p_U6tP{V1zF>G zv4bO)G+Q`>Y?wmSlE)7NWLD-l@SUyr7?V;a!{*zZYm}_1s$&0RIZ+c5>3II0;zp}A z*S9so2iA?@a*@7xN+cz6kroJBILc(K(T6aaT9t1jaPal)O=(>+m>1BS(xkbFApoN+ zVUXB@F-{*_@W&@VZ%iq8 zfKtN$h0I`jxn?@5ZJO`5HXtK5G!Zv05J%pwxlS{1czfglNfWy!6w6wh8`uXJkt7)4 zOmK!ElERixn9Xv}irs&vNip+_BFoYEy>(r|mqqozg$@4IJ@=(fYj(#}l5lEx6!zUg zNeRePJh&G2dpbJaF!Zvt_^K`VWL;5jM7jsfcZ`M8lii#IKg^zLZSo8~x}oSJ$@|n6 z*~#+d%{#gt0S@f>ujnLw zO|v_@udDS7i*hosK0Uiaa15$FXtjvu>QmM4O7@4GjCYdjSIU(x79*i9YAq_~!sryL z9%1dn@ea=zd{ZdjocT?boMh=B@LCt2IE7mVl{PKe? z-tmCtVdvl`(SL9^e}tqKV9Kj1!G=Y!s7om(&fC8gKSQ?DBe_X{a62_5uQdlLk3M`a z$pTZ~T20E08?=3w^Ko3AZ*4L+LsM+3At7jTV6x3Z*a}l`?Y+{k-}|xfv`t_@#wTJ1 z-b{u~BJym%cfglLLfT&xXWTdpA#~$#zg=tnkDz^uZx%`GptA>@C`CM=zPjSzn?q;h7xh01 zxJ3Q+Qb$cPzYA>1-9X9%Bb~ew;Zm^Z^Kb^F1ffa5*+=>zDkGFtLQ;)R>M(t=7m%*_ zoo=_K*^1GwAamI%oc=hoUWIxBpQC>2e;||WpviYdsKomZ|FG1gz2du}T%?IsyV5~x zCvV*%=qzdHwx#$%pLuV9xN2OGQUS2i+0WJN&CTntpBMbqB&Mp$s-d6Q$uCmf;?4aw(jopD1)hBh(3dlc|eumOqJu zT>IFXE^;S~g_FMjj$NcY>;S`v>ta1I8yM}{c>lUBXZNuq-Iy}vlTD7tj*HUC#J0Lg zCx+bKALh0m%E(scU9fZTqW&(QsqFC;5ChWy)RS-eN?kJ4>Vqigl zC>*^??kNgIfw}_GNd}3b9z)&!Lq8A0MI&?D$L>J1o0@DlqYOrZP0h)f3ss_9!SD|h zHPYWylQgcrPLQ@KVbcJL)X%f7?-^ZsVh%_>*FoGsl1lnXOX~Sd$|x`5>@%kw3q#iU zl^xz~+tlCb)}DWY{DVN6!+nN_y%3YXA*-$h30b>qeuQMVVwmI|f{B^#)rcQ30rVDT zTR7fV-VRg*-(6+A`WuGt-XnHDsHO>e&h~Pn=sYMWGYpaE?z0){aI)O%e}oXVVyx1Y zfOT*LBF+MFRUd|{{whESPBJO6HF!TrX2HuR(V$T?Fyu7cUw>69h=h?0f$j0GF5(gX z{tG#Auq?T{d_Zme_HFpDuzUR!dMa8wy&Rn<@>1H1>;sy*B~i6Y!hhmfO$UqW;JwLN z8%BG20&_H;kakqQXRgz@?|@^5sYR4AEvAfqhAH{@m|Rn2U067^jy!vxE0U~~9G}M{ zaAR`6wE`B-7U2Q2V^gvAPqSS1qJeg2zp@fNe!58(VF9z>&v?I8wz&UV9ZHWkC&G$6 zV+~TtUnEuU#`55kj--+j?Tlrdxqea0(2Ur#m}lEgjAwv;Jq)wY0#@uNIh^s^3Gr&F z*+K|RTKKMgyFj>#32{+)QI-Zk;I@&e&P+HflZhABbXqgH7!yT?Eudm_TMsk*FF3u) z?uVXOdQ)EtqeXT?Y43i;>}wRDlsZd=ZHY* zvl=O_W~+Ycok52@8J`wanb&czNKOenhl;QT0pETsbJUDFv2e%%KuyW%AoMsR_V!aC)Gex0J!7? zE$5@u>|}7s@3r<}+o)j*oNO`Z!iUNH8qt$*0!HBW%l2P0w$iNcxkO_lUyzuP02U$7 z>=&fp*JHiD9y;ym74J89A1t6UgQKUxw%XUMwZH1Hf8p8wDJ$%Z2=lxpzWlD1&`G@F zWJ9a3ph{r?;^c{P2oQh8f`#*|eOEfXhQ&4#OT-5H{gk2~=w=xm1RMPNIlnrmqgmf@ zmIjgTRJTB~-3&T%3{qsfhi5k5vV`D5p_!Oa4p|1-)x7~$PQx0j!JW#?whXf(#AOv~ zm>IOA_zY0^gkn>PRr)a1F@QzskKJSPs`#jDtfbm?bFW4aE|s9ZxZ(qNbK414u&l7w z*#*roGb;05E2Sw9DFm3WMaO=%S*Y4{n4d_n({~=+FBIHI>OxZ`y?3gP>~5@l5?^&XqOQ@J9gu z=q_2!wFn=@5=TD^zlm(5cxJPx_kT6%ZXoMb;pB*t##3JnD!&Sif`OpSR?o5j9|6ZBdy-if@mv8Ck1uf&vOUU(kG5 zB5Jc~RAMZ4chyf|vbISE?||%}IggBI%ND>uvnAYL_I^{uDM5j2Fd` zM|L7;pJ(8;5#n+Le;Iw1L9C(JiZnI5sf5`N)zgaNzC})vrHv)ib7~%T)re5$rBSJ* z5l=+&wW^ZQamDi&(Hk1-Z~Apk0k&|MBnu!6*^GVZh8iM~CUx0BG9DK=$fS3!o!xIv zYx&#lMI2!6t-{g-Refrm!m7a>jPBpP65A_U`tGFY)2f8k=$2yfnc65v2IJ*w9QC+=SnM^F3&nGZ$4i=Q>cY~L3a;4jIk?V>e7XwN?sF6{YGlU0yw@A-suZXIf& z+umZmIe$3pr|3Dyr0&e(0JU^#_TB$t@wIEDMsvmDt!BH4_;Pj23T)$zuuRiM7v9V z@elSk*9t=H&n)6YRNsi^%mQ>fhqZgcB z=gj7O>(EbCO zes2J9(B1AwQB$&YK^|R}9Ck%HJ>p4dK1+9r=OWtuK4GV1r4b9uRVx(}qwuBxQ?I}x!8O(bedCNK+q zXA8l}>iB5Q2s5S{QQTQrQvEl)Fw<^~JZC5xt`R7|a68I1Mriv=5c;|;T4xW?w%QBY z@diXsmRST{=~5)Z|78Et)UtkqmEV^;;_Y3O6-!-+E;gLrB|8Hn0tt zK8Es(N`a%_&rB2^9B>7(XB}l^5Sd_T1-p?(A~gA`;G+0z zg#_34#@o&v+40E~^bo9Gu>~n5ITLttr*tsrn&c2{rS`xM{&o7&eb(?h60F@t5`$8j zFlzSLL=cug-ge?WbK7KR++7{ej_IJ{H5&mI`wVO&05;l)cH1VHXK3{-rk&ZS+@w!E z(T{;y+aIj67mWA38>NdD@NMBAw5sIER|f-s4YB|Bv@!cR?{^TwUBIkC2ZTNk3eivg zZAyu2QJbO2xJG6pOAn`CM_CW-ILP!^JE;()glc1l418}J$x}T(@DPE(?h-??iONWD zz@;Js8ZgVCbI>$&6C?=RLfwDFFTh-&%c&STrF%S;gEY7UdXDoRwQ+nSKtqWS{0Jq4 z+VD+ZONwcy^t8tj0u+GaH;#GNTjg*4N2gaJKfumJ&Xv4K7~CANZhq$){H7w5Z(=*O z>auYsU&p`8&Ft+*86H_BjZp3+BoN~gGna_C*72te(YuyNoPib8-aq#wutA2ZWGb+@ zLLx_d#Bc|oe|@{f4n~CmniD!--?ngPx==T_kSxbb0UPS-&99ST`rwygPd6^VW>M-oTal$cq?2c>#OXtGrn1>mThI9sxp5|edSb+b*?tB5-A1kLg!aI!Ux>dkp zNA!e3wMuW59Y&2P!J-{j*-c$Mo;M@Ngfal8r1eBo*;{Jgu`!G@&=g}Ft>myx!)Q}+ z#ldV=%F(z&@s`I(M;_@zydUgx;@mtt8iz-)<5mFp=_G+uj;q@EEJo#L#2};`>Bqh2 zU#`;nb5$t_@oeMJUvn%z2`s%87Ke9k%>ftLh**%PXmOd{%~I0GsaDTCr{?V+#HnXWPDK0)A%8q1*;sUV2nJ zscG7KtTCr-Wfvp_ZM%8qeWlp0?dtYUD=Ff5Yw|=fO4IWRDjW4Ng(($lQ z7UgW#m$YwAZyy9E_GGVVe!Ci_{x|8WZrr7rnDfGCAP_>eC@ED@(>+WjGy6mS+Pxom5hFF>K=?7UXZXG}loSvX_>rT4hH3K$O7D4ga? z7pe3m!=noDOr(JQQda-fUrzG@$}2JvXNG8(zSswbP6T_VET>5Ot#b!*)Wg5#^(!tX z?(4c@gC7`+K6(w#plwa8IQvo{{$v~S@brR-O{rVl=3?Pe{?6($8|$&y4v>Vhz-RH! z5=Vp}Lkyit&MaC?#Z?C$@@I?LyLjYNYt>l%K^m2bqnZMh>EJaAVK0=dYo(TUZZX*U zeSMSD0Jc_ihkk!0ddkf4TG^7`Ri$h!5D$3wlPcm8ztKO)`^37gi%$;}a3X&a-4$EL zRP=nK9UPvL%#>pf;a4^ghYVeSQP10lHxA8?&mu#~#P%8ZnsCL61(K7!gK$qeEA=wt zMni~BiL`rGk4trpyV|?(A1%AUyv>nV}L= zD_jafGO^mwxG+Xg!sWWGYRKw2!rI}-kde6LfUG0lD+sUjts2{0PT8T$$lL! z&2j)&C2hdIPRl%f+^eC3VW*u>=^r;bqFz@JxVL6 z)AxpYzWh7Eq5uy_oG_6idN(t%T(5R7mwyJ`v`&xUYpqr!<1Y;gzMZ3$EASzc-Gqq! z|HKBvuc|}S7Y#&}V6OIQcbKz=tgh8z@IRExo=C^PO$cY0Zf4`y4Sl;op86|q6>+q) z2aB)NpU!F0PA@A2e=8B%#H=p`hTRo-fXiWD9`9=8pTp-J-fw;~H;y+F4%#=LVrj_2 za)hYD(bS!uDL&1M8(rtsVNoXDY(b&3v837^-aMLZh2QSG{R_F{x|SOb&yK7q&lF=C z@~pSxOil^Q^Z954#;CofWpDtd{Ru09VHsYl6~IrpoqP6Jv?7o)1|V#)_G0<^9EM@kXb~nHJ<`+Hd1hbTIE8LHtZU{zP$xaq zyXs>j(!RQY$*6;r-=6P=T!b|m(%tD`jV7cg>jJhmP2P5GPJ_t9GY3l;;*qExkSj@Z zh`^wnWAiaG+cVp9>B&7!$B1lY^z}PN%?)9JiNBZ~$Bbj%zdH8V%4LSvg#_zz+c7IL zLZs$VzkXy4KWs*}aez!Ow$7Tl+%_tg=V3fI!9Ohh)cw79eR9vGl9+l9+Nypk{(%nt2<;;K zVJa)8i7NAw5?`Iu$iHz9Q2@u{rE!rZ+n&;oYec$B*#eMSC2zpe~ zp&<^YOoV)Qs@nP>Fa4L&GFmk@AynydTbEgKUGakhK@z>+Hl}}h3&%=?eWry57h6CQ zN`!kccs~5<+Vn)048Tju%P^G7l@@U+R%mwU}7`z`p|=N0HRK}l|Kk{arHf=!TGka9Gl|H8WT#hr z;28~L!;U^x%UlAX5&yT`)zN^5sWuFFOR*Dwqa#y3VSjWHhCdP8voo|0iK&E`#`tdp z2lNvq4EsYPv5u46(l6c=Q)z^j8^aUSLFOGQS7A>O_l=y&59#2ilo-1VZgNrSu92(0 zv#vrz1t}|!>hQ*|rWi_^M5U2Uo zf&e5;rLsY@_9;AfFVQ)+Ku|Dq;g8%Bd;GZJ?)!_uXJp-F{dJkLp!yJVHI<2 zRa*Lpn2~P#?onr>53?Uer&P$YGuE>A(HZon{uw$Ia&_tyBu8gQrN3%o^%S4!i+NiRVU7%FfCJ$_cziOa7M9wu~ix zBbHQnUQujP;o_(B<*H}9;oQ4so;>6*nRR*7z&JU&wQSzTK2fM56x%`meYkwD_lPOh z$NVoUjCgo0F#z4z8|q4zkddP?%}iR~f%h(2)B$z(8x+(E_T-?X7~4L*PFZB92#6Q8 zO=}u-K?>XxSKvYgu}T=5B18-G)=LEM?tibO$OzF)u5Rj!V|3*C0ON*2h6~%!XgVd;Cof>%R`($a?!%N};@%scOT9yjJWo974NS7RlWP zS87cZ1!)Rl)QAzP&Evx2|9x$*Fn5k6iMA zDxPl{z{KBgdcLUF8E5YX&VY*lFgKI*x_GSCHQMX1AQ;}reK4Wq1n0Ff?3?fdu>{75 z)uL!id_GL?{#38lIb={ZT75gJgFT0QXWzyw5doq6dMwBDTerpZi{)GQ;IbHjjMC3E zQ*$ohl4?jC8h#x-p?D3&Pz#j2BbyOrAxa62KNlv78+}qoY4X&H%tWOn94oE9daBQ- zX-tj!gZf%^;`!e^m|^GpJV1X$Bvvy2fPIM0R)QA{c&hAlr)Pjy3T(U?*?%3&HxWHpY7xiI;&V8%z_P~N~oiqjuvDONz`N@E3{Lv zOv_*xv>rGn)sIb=q4D}+9fMN%BX@7`!cJq{AY zo-Akhj&fcD&vTI)EG0X(e5bKFvR%eRm|Wv{+`kc$ZKgj)4}^i}^wGT|8)k&8$EF~z zVI(oQ@Xa&vlQYek;;1F>8YVCi=FKtXC9tl-sM35EoBW2UX!;AxzS?SND9qvSQOcd3 zy?@^8RX^5j_B@=sNw64C=PbS7e~`T2uUs1SP=z^Z7Uj&TaRnU=LhLM}Y_=$Fz(Ju@ z!_np0oRFKM?U~Uh;Xl`c4U#F;YHWCx5vftuY1HRz2w`p1mQhzimI#XRO`#>yx~Tc> zIF?Z%0)28vv>v~8Zeq?{sKij~aCHTcMUNlSZ_fP)f%_(NPu-$(ER+$}oEcDVe6ZT!5#S$vp*{kt?>*A$M2C`Qe?*C5i{$!vC z$m8dExv8aAeEYwnB5lgwH)TCHZS@Rq&!3CUZI9fe#;PcL5r{a`th`>{M2Xq%_O_Z(yRT z8eH|d7#2Bplx8Dkl@d=YH!5WiCujvJX(~&9)bR~dafVj%>6PH;TAT6VU=j*)e}Ko( zqIT*Aw%$WN@iaS!Y70^}2Fr*l74%9e~iDX^$1kYynGrptr zXXDs4bb%ZeO}87POB^H1&^pcvGQpv$!f_sGn0^9@{+?F)jW0EdvI*%5>Xe5WD3iHi z`V^}sZd_InQ@1E)-0eShq+r;ux!XJhO`mWa?+_d9YZ6cqR;-7mU@qql8*AUNHqluI zZDq_|W>(Rqs&?Sr=B2<@5^aSkLE_NMjS1Urw%hN?5<@*p?FaT`mwO87g z;fw1!Q(csEVI7G!b#K{xp6x*dS9F89rb!Os=WuM$N<1ApleY~Lwk*VCWbmt<1KLsX zbQmMTGEbH}%fzU`sqP<4(e@JD19NU0m39o#)h9|EavrG31V}&pP@c%nE$^^nT3fm^ zZIB#LIpOkk4^3hQX#&20Z{M+iw9O0M4Bh`F+}X6 z9sS~c^E%0cc8TVI5xcB^QcS-Z#AKbQg4$)vkG!7H(As>C;TC6V(Tll8BxCrMKd&?F zx>K3{j}qA(LiYOf=4Wn{6yvL-f}s4NZ?&}<26Hu3zOW6hY&wxLyot$lE;8+WcOLBb z`M!EJfT0feQ5w3KjcoY_Xdj!tH3|MIiA?ga$D#U^_C;rJ9k$w3k zh{ek)_$Txd;@Yb~854t*0@z`4`?!9ru3tz;EtBu_3%r_<6os8%xfwyn)J2CE+h8%V z@LT|>gwkJtFW+)_S7+hf*yt_)4_jXW7DfBDPb1waxge=@m&5`~H_|QAjihueASnnU z(%qm4NW&sXH%NCk(gObhec$i*eZT*8u@|$$?6c=N=iK+X&oje}(-w>(`o&lLP9a}! z;f=m-j2HN;xoS2WV#|`io%0SQB^5MOK*VUEsZyF?q{`xZ*lhu@vvubGxJFl*Re}Zl z|6J?3v%Kl7K^&&IhC)A;Wev(QijLk2~fL?BzfT2C0fjA=~0aa-+dhLlF;u34@lB+HRK zJi3?Lo$?sA(&nU&agw4^EuOdGF#ou6YR7DeQdNcTLqK^vXqC*QP!NG18iI#yD3@Ip z7?PjhWsohcFIZ7F^+UbM=}FsFn#2b5jX9eE@qpvb$mT1wk*p`FJt+#JoW`K;c(0G5 zxH4|p?X4d&ZbzrJ(UB{;_@QzF+w)TL*gud9dBVPfliEM{gZ~I|=?(YpjH;J*S zL@tH@lCi8Nx(nYId(tj#uafm#{)?<3eROTyFabx$4+5XV_L$Mc9@T!e<`U?c`VbZK0xnf$jk;C>r9(`3Zqhy^xY;S)?K+pff zUGzd+6Q@rhs6wku=?kipsj_boj8BB&Hzz076$uJWlietmU+!J^E35 zf0%QKZmO~l#(*6zH`>e+F{`k>I0dKn0e(2H391DlCp{tO=kG8(4E)HHck&S{@NufR zA|2$^P{v{&@*TI#0re3WIW-!OI+mWQZ`}m>Zr*DA?UIY*tG9Ai5cJw#Et>c(Bcl|t z9F7aX_t*58x0A)ol(bS#enE$|FvhQQMZ7eff+u4`L}Pn5%pxAtYw;9ADyZHQB^lni z+HQjBwW^BxNJwv-QD4o) zq64F?VWX`X@e_UOeG#X+Po~uAWIU5ffxv1YS1DHE!YzRfVf0>1Im%$!NwcOKz%OO{ z=@;+!9jTF`1+lipUc8ymur7f{!6d?& z%RooENz)~laM(6(xUkv#cDNKFz;V}8h?khBPb4jbk~P8!d;GVm-I-gtsK zr#1?ewGbu(y*`Dslhm4TCISk&1p!`3)d=j;h&t<-+BjdLSaR?sB~J!vhWHVqP6bW# zch}1!)~R2M<6v2#aHaa^4q>kH+$Gm4btoa2zuqtixlaofl_j%BYJ4G6eU!xlr zDx_cP#&~lDydlA#?0-8?M;lrsFvcm!{cLkAKA?&MBZL;!4~^ zw~D@Pp6Q8d^tW(%C+HYuZ)CW>j%vR!Lu{CX`;96*q81%XA7(C30ujC-|K^nZ8xHmKc82Xw;)h zz|As>xyMLPQuyQLg<>P&ymtsp!0S!kT+3&rbgMRVe4`OZxAjcV358k{F;TWk20W&i zp{ciyjl~#Y9!nj?Y|z?5UCjmioA79I@fM9ASXdHGvT`*X%*3taIKcul-E6a5601M2 zSWJ=VwO=m&=Kk^f*_LKq!s5HoYW)|FxTV+(tV@}N8-gxaUSUUQ(%@Ek6hct6&C$uZo@90_8H!RAb4tK#LST0vpPZ;6X z>=fve_j$BSzVK_QY6XQ<8LIi{{8!aMPDiM%5hm8LV>pOF4h*4!(rhCAtI*=J_|lv| z88@)Qi~0ubswexcl#D0sy}wDSmRph!qSmC2Ppy$P5SSddl9yAatQ0%L0#vy;a+pT!MyLT6BfC>%&Ei^qsLZJ`Y!E^{=*`cZcEISTIm@KyM+^kDE zC}1}&(cYWe1;c@eFQK@q0#6mNRLZe|TQ8F*t8E1~md)i0jBnXF5DN)dirV2a^y{9EZ5N-mo8nLun4)ZUWgH_?Z002MwLN{i4S7pa+%~;Z(l!lbfzfnl zofB$YVEzwB)s79>k+ct?)YMdkD6pUUHMg6sZZ$v-@}`3wM^XZhXpcUI@-s&q(aIZF z3=fgqGtr?K*6s~zYQ)=LoMEs`PRko(gq2g&TZh4ZC}_HD7Uyl* z2KsuuJXx&8`3po`(o%+aRFujq^Pwa`LnfkE(Lc=6Dh$biGLE1tiDngK7Z|}WjvT^Y*3(p5&oy*Ic}3(NDk`5zk5AI{Y%JJxgz(D(ri6 zZHKR;Kkt&)#QWWhd9yhtI`f5)2<*F0uVZ1h=>XmPK^!tRy@`6VDH2!3uJe=L>z&_Q2QuI@Qj5?puhjf|^6oL+hc6;w)9%U1lTdX=SO}@&D%iwsMEwFr1NRyr5|6GGAQkmZ_ zOZJ8FDcm$K-(5Ah$KiD|t zzW>ie%M8NXWbg0cM{V!I1#V7zzCZqj`H`B&K|}Hc3*O0t>6s-uRWNMJ0;Lj@ERGp2 zxKDdQC#h2ly%utq+1N3dckph@FS|e%KkKOoeiPj2Pq?Of9CA+S^8liRh4-p9#!F{- zFmJy#^!R`X-he^o<&Lual@H_d09z^Em?WQg3}3yJcT#yV?Qp%gUaWLthez=Aielq^ zvBW1#a^CaJI<-t$t=2JK@wKuFSDYU`$Caq|rX@FVzcLRBuSVCOq?Vn&sFej9>?V_v z!03G$zH$DBcTY`SyAnm@*kF0WV@qRH7;={KXje8i1^vA_#9ptG&fQ^8v$9l<#|3_y z1#hB06B((LhzF`9m5*Mli0d^oJB?t9lso@kRj>^u_@X(aTeMmkD1^}(GCSc=8vdL( zL78L!B&{c z_cV(5#aDBD(}UR`5ji{$g4gJQOTg)6ue1syWD)JH&w2uXWPMax@+{>pmynL^=X;Jv zFr3+!eyZb5YGKR9_^eD(PUC)Xy#?^}zX`iC%qatS2Ny|coO;8!1KVjCDdLeRT$X`* zslLZr&#V?bJ$&wPE^A<;3efVFO^ilE1RlvcrPbG3bXTXkuR!Ar{*Wc5Gs7ao6V4-<9v|2z z_O0;8uHwFG&pkulEY3M%uxTO2rMznIvIv5+bU=h5OnLG7qfJgix_}P3QHNac#^+kBRGHJ-K3c5A zTQMDy_^ezBifr@l-1^N@wR;U(gs2Sxy{OG-`{U`FBC3T%B$9%2B~B8yYMWn5nTyl= zZ(2bmpX7((C#Fb&IW9Xo{CuJ0L@5wc--^cJfa0{8uQIQk`w=v-=RFZf|BZR-$ThuK z2Yd(K*@*OG>GAY<T>l23aaZg(>B~Tjj8x!ic=NewvT+mp4&dP`CYR3> zBaFA@LZ1v=LQ3Q#&@qGo(N6S!lU0kes1oKy2CVwAJXQBh-nJ3c29i95MszVjl%4Pf zGRPr~a3uNUE$i(C!XqbkEj@#ywj8-MHYrq&K~8bz0Lf4Nrz-JzRlWcNyBvjA?6+vL zy)OQI3;|iR{nZyA>*0YV-%Ay`CA5TS{@TZ3-e}qMo^8LvXxH24+@r(b2@PhnsPAP{ z3JS-`y~jtaNX2q^e4)S+H&H_5!9JDCPHMH zB;tX@++M#|s;7hXvEL|Nn#{D;=776{|JIE20~N@wfkEi%KEyLyRHw;{YEPmsw5R3A zp2XAl*`nKLnNiMzXK;M3HaI4-!mX~&d+_QpUqu53gUdw4+2IPdCaGFq?o1=npIPD1 zYzCc4UZ66$`?>UMP zleUuSgb5zJnzJ|4d`rm3=J(`v#GC3ABy~ecsV}NNeb+^>p9~zG_!WyD3PF3sdf3&{cMXTdyj+WYN`-SkiSt1!-crU4N-2q4Pam8VvBtymB<%=h~ zIA~0xnMvgEiX@1?;1BzM&hpHbQp<}xRdb~*f4+I{r<)S%>I0P0(7$f+xcDsbQb#DMIGbc%Olli%H&6A9iqIlG6M-5I>DmsMF{d-?)#dG^+lh>ll0 zT{L61Z6LvLd0s5nfc~X%;j3kfw(r6-$l^=+=ro|EDAZ_L!osdz>un_+j#o^be5R~3 z@rcePX$7K#2tEbskE_Lx`23zJ)Z>^q*o&hG%(W(SG3hTC@|4-VjI~Y7(-OU*2zkWb zLR9XXd)!)?2doBSFL{lS?08IWeK^)GYRy}mmEz_+U8JM-RkQ}kZirC%H{2feld|?) zG#Ht@l~SrW*XL9d1q5W#qhQrY1Xc)QHTEwjljhJn?cscz_n3WqM-|xgpBC&xLvSVy zpVU@XG_yi1M?bShq}Tc|qr&&4pmh6ee(ULYB5C-hQqu?}Y(c%VyD);HsYtHy629*v zR@i~VxicAcDpc;aA%)ms3l;tLx#-?w`4IMZw_$X@5ti^5CMC$D@ThTZ#Y!d8RHAjm z6E7-Jb_1v`_l``la(`V`hM^<49%0Tn($w`<9of^Xs>BI03O&LXcsG@a?4E9A59OF2 z?EnYVN452|Z0~W!0rx23Vg@gN$mk2Ej8lWg{bB+`ya|`v?VFSc-c|N|5j19&B1di; z#z7DAOi@s}e7&@Lxu=E;`H)4E5_E`JgNBrIBohtS$r?>i6M^Iq<}ehrj6AnhV|_9I zwKt8e0O(iaUaaq)G=~UUC#FQT3R;c^BaIA^1TB8P?c07;Kq9y{@eJmhEv0Tz(=v zy%ooTfq$l<-YW&)c79r~WWS!}UhHdz4Pf!C(K;R`{p?|N7r)&-Tj_0gT>Hh2BWl7M zbYzZ?k1-FdKCW|KNw@RFiO4@+^Kk)g3U{eMKwn7Sn#iRSOV}XaQYrT_=)CtaL4leX zn<9_3+?h6_s*^pt$2}iwMIv!@V&V3p673JM14|}ph@#pV`16RuaCw%WJN=12R&46l z;fr?XIet#0XyvlRwGD=^?ap^g*$5e7N8|cn-EXQIv7%9Thwi29QAoBybT z=b)AYa8hLT+X48R*mbEv7&xEsh~y)hf(+c}RCqh>B$wdy=34!76xatrT|oJohf_Y^ zC~D%*HpWr^KAC`bmw(9cr0P73a6M7vNhp)CmSuSCg{$ToR~{VUfZZC5(T`ICp#5Wp z3`*i<8Si5gf%fR*TqvTBF1ZOg%GYklQv<2?@UM8uG-Q6BRBRNkUXd;ubx(q#pL%>d zRPE{e5o#K~=GjvZU9J`&IZ`B%LI1wa%nWwc&BYybGtGtjT+d^gULFT(iFA%=&~UDtEv*Z!jC*TLK^g0v!&M7pzrXGculwj2!P#D%W_`7#e`~ zhl_P;ec}wyvi=EYSghbA!S4b1%O2U8{NffPZTv=AMnrr{?Y_0k9+#!}kJ_IIK8n7~ zlmyP2cn$Z@^D*@G7W?VPb~BC>c+$sHKhgy>v%~Mh4h0ZJ={XFn{GL`Mq1&4G_`MW( zpfn!Pg=x<$viF|c`AgW`rUSj#f$E{G_m#dYl;^FF`Nkva^(lnq`(=N_y=PY?+!1ka z9BDun3v|GSigL*AwK0A@*HpIa9-KR;{*AoX29z4VnYKn>UFR@h{DiKtkvCvm9r0qW zm~g(+6izzr^JBhE2xg`UiC=lPW{Y@Ydx0@c`ei3au4>8u1llH7=`W*tiMiwj9gWmaTsZR%R2krOl%Q zg2z2yj*52{G>WbVS^ad$HV~X+=|>93J(SDF?_NnRkMU7=O($xH4VJ52NpBt?=n!$Y z{`#F*`w?H%P!VCvv2fIR?)j69LWi9UD~~D0-ZV6GiFTEYsSG6bGA4qT0TPI;-{DK$ zu*|SBCu^?287z_mH2AMZW%hQST#*@u54EFkw4q>R*y%qtFJNadRRF?E@vd?_m8mBs z&)3p_R}ySPIad58&Do+EHwJv?spj> z$x;ZvDj8C|5fPwJQpZW!xUJa2f-Ue}6%jz6AiBnjhjytLZ3}+*rm`|TVVW*m@W|g+&}3YOram3M zUyp{7R3gry%3fCU&_AEHA=#wLbxUxo$kKY}W-!Ek! zlV|@F9rNEj;Kh@RnFP~YeXy|=lKa*qLw|BiUWNFdbGx4-Y5GQ~(Mcz86;IRf)Rt!z z@n*sd0w?u*N?-+`vTfu2KuxuS*b>*}{WW1T7$F(VX~r&$$3nCi{GhthPLVs|S@=r4 z8hD|~oiWu$pLiV5{%wfWM}1*x_y9D{fORD6(APyWQfr--G_uVYwcxL{<7?wL%;FaY z?2nzftpL?(aJIS-PhYKHY*`2un`&0Wgq(JYhs^rW=OgqPpln8K93@^8yp)Y8e=iWO zQT9={7zOP3p43@ThFC;GCF?W?EXQLWpH>{&q|Vl!O3v zgD*cc80dTS-=)M|)D$;-U_d%-GUMaNJRt2>jehg~ds22S^_7&hESs-~6q14$eI&dk zIbt8dHyBNoD;NXKp3vc))jZ8oLEX4iPX`q>k&KyVt)EB3=?aeo;HK;G7={=|n1N^S z7bjp^33gKEVukl7ZDV|=F9Hv3*I1e*=v@lp?w5`vULUp4xm3iV6-boPbvJN!cjN$P z7NL(881XNS;wHByyH_;tWVK%WW&oa_N3)+OZHtd@&kv|`64~<`bh~+5uKoKTGs>70T!K*avbPN#rRUs5X z=bdGMt}?MgI+vK*{%rO*r%OLFSWuYKClUL81tm1T^&??_JGXxv&c%QA>0Kyum_ z=6`OQf4WvPFyqpD%0ecVAWx_Wx{|)h-a~Y&dA}sWPS7)7 zMdusp6k)kuDS)V=nt9*8BWzm+HD13nX*{l}>e)Tdz^ijh&vd!7S441Xt}0Yfo)9!M zBWRsD3q+;TiKsIuGoC8TMxU>CrGWgJ=1lgU@ru-qb>A+&V+*O-NT4f8l6U%N;1YvndYq^ixr>R$^LN{H(T7_~34I13YpNq3SLn0co z$vwH^#`4XdIoAV^Trj;ri^nOXS61cZv62w=;6fv$GGx6ny17vB_V#<>X((=3Drvt4 zPyeK)_c-%+V2%zWmjr_J%(4jE6nUv97L%C+|80t2yH%P1a1m4S6PcAtjOQhCU~ZfFlE#MI&?=hP=7j?A9lpV-gXUhr8{d8-iXocz(>n2v`Zg3Tsm7l{i9L?Mwqi;lBO& z>D}kk8P;x78rdklwlZm0@gmRbb2^nA65}rjC+7VMq(`iZlsLjrGKoXJ!<&j(==-{NdBkJKR^)TF*(|!D-WBg$-JdL8N0C7{X@wt%=-IP{O`S14WnO6h1;ih5$J(sN9`u3&cQ8 zP^7}XjlvNMVNw_fBzSde16(d^86OR$3L*56(3h9_DG`L` z*%KYHyvFU_)KFQb6E@jJU+39TByM__b9gllX~XR8q!(=zW9UEhKJWXA%nfX2J$>~H z_!DAj`e9cGo?O@@4!g~UtBMt_5J{jm2*0^FL)DHKB>4JU;whBA04{xeKp{*+LQ?lA z&DFiJu1rVS{Vk->=c6Vioi*9}D7h=mE{LA8dt>fj%cpfq%wcQ=LNfG%<5hMW?|P~5 z-EDy@N0@{m9B6}=-Z$UPgxSfAsNdO@PvXehBXd6`dH3t^Dut(GhadFEKr6t&CG{CF znNbT>yoG0zzJr3->aTrMT9BZt&<`7Mg4%4HiFEo&8B>YR%+J9>Ce9!0+Jqj~`hTX& zBCnXLrlw7Y%nfWw4iD(4%^Ev?WXj1d1=Euey##C_Eu)NqPzg6>_lZ|mR(!g_Waf^e zh{?6kyjr^bYDQL$fkxHl+MML)nOUYIlNT$;S3BYeMz_>qW7tyLG9P&>|Gcr(zU{3% z^*hxs+}c;skl?rSElytgTfi^!c&l1=UIv3$2p3CaLpCsgvs4g~*FbG{UCXfc)0}J= z{YU)=>+UBG*lsN&?L6q9&vE}3!o9adFL_63a-oO0F#Mo|~mdCf6i}AN*&ii?pv1z%br`%hYCF zXVkgAg(pGjb9QOk=tVYmPFY{noFpur0`Bv^S^Cdpxk}ood6okF1x;EwXOcRGr~B|~ z>10O!mFJB&xSc`Q#{L<|+912gS`%)@kek$K4wzUSZCj*>&x^#n!5Li?{dfAWYH!|{ zqJ$T9^!1?&U}C$DETw!X>guD&$L8i{?dvP$;Lg#|@T)C3D;^t5kng#cJ$dzM-uujG z+x2SJXX7jXooerAmTyM~>)8&sFC3CF2(oc?S>>ezL4qL4Y+R!3#F-7GP$qD8O>nlR zCJp%KL0lAZcA7X$BMbw25mbOse;V!8giQGu*Ewk~#_Jm4=XLx@EQL5sv<`tYXja^8 z-|UmmmoeeBxXxioi@jm>{WJ{1A9z~=deF$6ylipjFSrpC*i_Hf*aSh&Ukt=y!_{-V z#?lnegmF)-s;C8TRpM?Oysjm$2%w~M;$|STPpmgy=Zz$^qVY8&j_2LTk*iQQh>9k} zKU*BwXSJ94Yev)+EO~_pjcZ208{wysOmwMeBpKcp2X*RfM5^z9`tK=Tum0~Tetei> z2onh|ZO`i#gA^+dns~EPSLvVo8Gk<96M-P@0u}<(vVeb5#Ssu@-%ldaB^!ZO9uWj) z#_79$8%|Yw`11%3Jzsjzb!0!Cdh#d+Uafchk zK?yn=$~TwYjU=3>;0fiMvqFPRNDQQFjDSc3a3-)5h`C0KsE{mu{w*9RAMmC}7Yf+d zwn~)YK>BxcA2!&xSU3=xg--8Hv|~X@{jt{34XIkEt84AvIo@ut@wYMJz)yBfj*ys` ztc4qrnHv(w&#wd?FFTQOwF&wf6`%RL(2K-lm_Z6|Xt$mk3;KO(JorR}nUM)hi(f`b zmZ=XTZL3+@^ch{_*G5ymWZ*zdz$jbkHN2oio2se4KH7SWdxTLq z^XlPyVIRi{peb?UpbMRiZ|;8D^UY3C-FmfO2L~QvQYWoh=bkOTM0_7){h5tbXox;4 z?vge#$e|DmdQrZAG5bFW>f&p}rU;d^C}YBU_%Kvb6YApYr>qKl9xgT5_&B= z6iCh^o@xY6N4h{LPcI4JPBb+7pjh{E{WT0%)AnZ|+qq(<`w4VB%Wf|_mKK!Y#sWeS z?4Z?{=45-fZ1BZt2MHuLVP~9B0rDn+fbn-`ix!%BNEq_dyQhnutNoh{EpK#{RTb~C zwK$ehD6aSh5l9AKula(y902E^-x5IU&P>>cO0qG#ZwHh?NqTARuvp_=+%+v*2!kFSiZ82r#nIEYs;BgKqU~E>r&pcFe{f z{~NOvy=draP#`AKMTO$fYX3KEdQcYxJpM5ZXkC^z&2rduKnjYl)O<5(v3T~2D&>iz z$F8O_vNTcduyOD|>A8?dz%vR5__dhMXkhcAzuqc`4)>&JU;kJOe1H%EG5aKZI#ave z4jUuT6+UHrNY51SY_siJ$6mC^B1XXev?~H4Xpy5hY%JMv@S2c63lUnElO_&3*Czoe zaXOZVX1zD?pgSUB7>k|(xFgUA^}+`Xf)N5;);CfQBs)St1nf&9ARHk8NJM@?H88H( z*Mm(D;t$VBJsbe_NC$F6)5BL~KI%`3F*ckw)pM*6$8|a^*#I;x3jF$BcF>DPUK;?m zm7QzvC9Abzo32BK)ggmt@0r?#YW22B5@WgiAjme)p zm(7;!B0xr`yw7v@SwALOdN+}PN0h9%C$@0nuri11rA89x5&-aj@~m3_dBQn>r|PLP z>i+vo{e!vy(mzIARZ+w{V?cqQ3yCfiSl#K07yEiMGFTBpgXdfNZtg0gk>p_tHx>_H z-}TI(|G{D)7~2ynYfu2re}4LW+A{`xI2TkA@d)rCNYpz9wJ{k#eDECbba%A>xX=NQ z$bs_tM*>0zJivwD##IBIN`4!#>D9SExbRUeIe@myOMvNU1Hp$?1MVfiCD|0~q%F$y ziT*{XmLDf0(<}%Gsar`l!qUX8LcP_}1RB^k!wDcPyOuNzf`4dyred`{gb6$WFur&^ zMLf0|6kYABasNLFDX12Rn|Dug#=UvfK)7*@n=7f#?+!2F45W8uDkPNQ{04Dl*N!dB=t~y z;gIuPa9ZY2Jmkx3)h-O8N0hbC`=l`_acGw9SJA+mo~Lv~Q0rFewY{i+82?Uy#PXi; zWgl#il{M(!ykPvxGdV)bYj0!xQ=|BV08nP3fPb;YLFp&zH5P84IvN9PQlsJj+v_3p z=GzgGMUG7WPz<$yJRQDjzI83Sq1Nu)9uD@k*G=3n+YvYZ7%W%DF zCT{4x>4`Uv_eGQddLIInuG*IV(1@1I=K%(Fkwebc4F)NH_y9P!d3|k=G8EsfN2x-{ zlt4Fdva)u))kwtgU(=m)JxI%nDr8tiD%2*CZ1pH77Bgg$mM~vJu|Fxp)`Ttm9 z&GeV1dyd!zLA3J7An?ySK+eq8qT?RD^FzfwGFjf0WusZwK6muGHp51YIQuR%xwy9g zFt!QE7EA1bb;H}hp=~q%fGBCZufZq)>5|R{JPPjhUw;$15dw_T;%qGrZa|D6H2=gZ ze_he|1`rT6*%Wu59<IN-o~s8!n|NrJ zKWsRcP*i_7dkn!;D|H==Sh-tkhY3np>9vm(%J3ptUd}C`TPUp7r}zgFgR4wZ|2JiavPao7SJH>4QV{*92XIEXe_`LY*u2 z6acKcD%u%oJ}BAZ~yf6_|2`0#tbKh(cR!&NeM;P;mBg--4H#?_1)l(K$6za#q&pOCE21>1IqLzmTM_8M zzCN_SmEEyW9Aa$5MDi@RB>-A6z=}%?)VXx8_ap=VF`20U&t#-sgMex~JS|bn!h-9t zS34k$QL9X|tTq6UZ^#)*Z)n6nI_IX-)$~FA0m%v|t#BrADATpVzuME_zK%6n+}ANU zyg@Et46OO_*fGCccpzBGJrNOtnDo<+cMO7i6*k&K+Q1X!2LF>TYcE}bfD{7E2xeu$ zMLA#xG%QMncwZSd5EKNw!IwR~YyU`uYJK($3~mQ_-Cg2x1|aiSh|4W!y+hM7oiTv8 zjy-EkbG99neq0*>ZCJT4A~4@#L{NEkli7T;_?cfW9Ns%;c)U@nzj?Bg zlH4Q7Ss9mT0~U(V&jSb0aXP_u$tn~k=!}530Y)@yM)e;zNZB-`!ILX>Ex7fpF-QTz zX%CxghB974gPd3 z_thY2asVyW8t#G2m)An{uXk3nL-iSPj|fs`cGgRv^T_z|Fd^XF-Xsv8BF5_1+kZ#^ zP`#aFjujaMgc>S9B@#FVSU_VT09wTE7JSyu2m9s}wbT-zcwAN4Qe`gi?hT=xHA+*{>;8J7fLT!(|SC}JThao8Yb z#-AqBd56!7{ok_L@ZV)~p7%e?rgyEumwVM=T1o(QE}bu2 z*TH}2hem*!{;z(R=V!Fahrb`8EHaq@V1oWXOb}DuWZWG2PsaQC-2Kh?TkwPadx-5B z{J*jF&qm-p#exFy4Fn3$$pk$3H-iE)Xqpm|OS)sAwvD>BhoJ^7CCc-4`Xk&3vn3NF z5&rh*i8w#-(A3y~u6IxBL<{EHP6@pr_<;!N)C!5Y4hJaUPw_UOJjWRfMWc);9Y2zM zFhdBRNNArro`6sY9{}yPXBGlb4dd&rvQ_{C)Dj4w(ER`CV{=^0{`9e8LJyFqMOUMh zmkRvD>e7N@46^j#BJmKW>-Y+w$1o88S4~fLtv5j*0Cyhyr(;zVRRgjZ{U5+xcWppn zV?gZ3_-U5srq9soIgSc_?(ub$b3z3DCzq=H%#{BKn6-B<|4u-gkjaf60R32%uS*PM z(-R&~$RPvhZ`@`Bp&Jv(Kpwz>%7HH7Mg3JgIzVd;hS<7_J~W(Q0J4l{GaG*kp7TS6 zh;a=n6kt3PUPbB@lmN)UQyF0BG=dpQSD@et1V9e}ng^w#fWHXGK{zMsv%d(h!TzYi z**`q^f1I)p;5}Oth|Ep-CCj=7<^MF{?zR6k;eO};(S&FH+k`IwU1$C+63}(ylV3p&(55L!hRoUWy<Xv&rttI5B-NKqXqO(4;mOc5&*rPc)i~4@Ma~M&~d4j*n?&n&1g#&`+?c} zOlgMabvDQi9D8Unf+I?K>qK}S63moC&D2Rc@NbFh?Qj9#qm#qa$Fn)oGpH7kvsUOo zYytmci|qRUPa&%PYfFm$T#l!hMY!*e8LI#dj)scG-q?Z4Lv!W! ze^D~(0yf)Lp)uPA+B<^j^mGgY{wzwM5htQqKI%eV^`|VpGd(b9eJWUdZPb+WX^XPI z8fHRg$4HKfi(}q8rSr&+v=!l~+4TUE94$zeGic2^4(qG=YmeqBd5aG;hDlF<2Ys@BNFtBXbakL#9u;XOAr&$oziiXT^#sKBsmh3AV$vKzMT`# z8rc8Huwl-rv2Ht?Zz%=(1+5F5+j$&bPfz-~{g&g4ihAk?2O7fGLfMe)T=LV*0=d!L zt*ORWu7@v&&&gGcyugJ^c6lIFGkEJYLu)||YYZP|c@`fDf34I?lHUfyFQ;^?Pe_s? z4Rpw9YR;QRT+&B~&(sq&&w`AeC{1DbecI&O?XNzel$XZVCXSoFz8*P7%X_w)$5gb7 z+@t`E;Vb1v_VuaopeBopsdd2E{7l}O!#@Yypjx*Z9Yz$J8fF!+*jpbgKz!J${ti#Y zem{H=Fnpe*ah~St;y8l(9aX{d^U^P&O@vR9nlfESLYfvCqneXUsj&%2I7%=Hcm%l1 zG$w0K_Y}uO)wa1l7aAZLd`^R^uJApBjMr3}y!k?$yRE0g;qw#XL#s8}9+Wh!7gua+ z+V-9vFZJ^O^R6}=2xip^Mf7!h3A%m zhHEH#@QMi5HC7*Z3_r3@E9tq8`semvck%Xt<)nsEJ|I`8)OG#(;0CgLsbl#brO-<~ zktEk9PEhK1pIi6)Qe9$x$>R0N&U!;@OCbwmrj`TFnhbKj-dXDLdEAnA-;;v7Sbzspsl=})>SCD_wtr%l z@(lTwYE*=esp3SqPD`H}R$#Y57Rk8NWZAaPhbn!POE);9M5ILi@jQ7a$3$uzuFj%w zDNVb#vdeh!?PXa?|J@un?FmA!A8XlM?<) zHc-^w>D(4zaSRV5!Nm31Z(u6ZCq7%=~2Z_w(~G0+y}YZqcT` z_0ToCp4~~}kGP&)Z(8?M9!>jvwGPLhXyU1BZIs_K`nxZIFk5wUWK73h^NM8PkTb_-#7+4t z!_Gjg57_ck+x?FeiRe`K#NAd4y_o@Q1&|m$2R^ss5_cKaX=M88ay)H$Bqa?6H;i z>YcBZt|&iBwS@&CB9{#1rPARN^)6ugneCgLD*!|=m^4H+`n=E%X)MJNnHR31iffeC zr`Yp@t`-}Do;Loof+8?*REsEqm5*Y^=P-Jv<&oPg;x$suGL6-TlUtR4AVHn0w8XVQOBWUtuC`l~Pr@pBfl544V#6`vxU-oXb zws-fHHtU}m74vYHykPZ7R-g2+X=Rq@{yeRAW|mj3iC}%|&nOl%(6`gQoQO8svJQ=u zhMXEy2p&F`=LYNy6{}9=xaq|XRxJ7XVaw#1=t^&AB$E57J?zTcKW{fMg67?a`42t& z&lwUV^8++F^^_B=Iz*%sOA9wg&7aj!H_{xJRG;3+7rgy=N@9<_BxSaH^7i)1^rO@j zRA+Q4zx5<@80%W;?mOMB*yv~4l~csPxt60!Ead&kx@;UiA|?uA8uuAxa>6oJ-bdtH zij_L+k}sh}^^{e#qsd>^xl%ELhwF;qFe%<^s&16)NI0p(7d4P_@mp=y-5z|Sg^nG2GG(|ag#U{`x8w^^>0g2c;R?h7lgH)9X86you z$s+yat!WX~h@JD(Ov|rcbw3}})Psr(s--biXTe8qG(pdG3Y!AP#yvKJ#ETn5hnS@a z&fhM^;u&@h4*8xs?b*X>N!zQs64u*xBSMu%WE8rok~tJkBsNivei@Jpl+N;Nz2&&5&Y$t#p* z-@+9U-5J&_6lgji%oX%xf28SyW}z6nz}DmBwFUSEClY31p}Nu9mRhthKj3X9(HxojvKNtT`_3I%FBw+*||x>Xtzm&vhW>@luL?wsPuxe>zi;h26t&E)E#Iq$DjmGx!{=4e?jW~ZwukmnYPhos zYmwVXtfE@rZiHJKVi77m?I?0XTDE*vwOGY6Y|?gzcevNfDStZ^gj{yw1;!QgvywKF{^(6$o%E z6t#=y-%jC=iD=ASq33zYkclDd2 z-w);vOWKBRr@d?kx(Y*b%wIn|)FXrs?zU1s;k4mbVGNs9E1Ogoa#11a!H zep1pLsno`AkUOw9D&yfUh<_6fA;|Z?#f$TZNFhuA3d)^;dwU}{*Bi|JYb7qcwJsWy z2i~1`>34i50^)X-5VULR+T5M8&AV}#j+?SN&ucYp+MaZMY8$g+%EOz~9M0UH56>$V zoyR~1kCsC2bQk-|-Wnv<`ZF{iwd3XE^E~GZ^|nB+0xu-PMT(uP;R; zr~6wdn!N2P4D&AnWu`5 z!&g-aabG>+UQUlW73zd&VjWmIs6`Z222QTyHiN!@*$Ov&3NXPn#*wASU`3+49X1hn zu|WhFf`xE+rnbKteuHOnDelg-7$yk#jik7Q>$CisZM^1V@}gzq_m4a}7h6EyRDAg& zBkQV#rHkUUa6`xg-%1^pV<#!sKPN?&qSGPC`ts}b?f<$f!^i4c9f3q9DAzyMtfjy- z)qdCF-$qDWM=PrIbkFVNqr$o!_N7IYLPDGo=)Dg-k((blku{N+qUMR@^k#2oy|Q&j zgD-i%MEopkEiOE%o-ozR#|s2u>?IDl-`)owa|PN83S5Vs2vkX!;u2FZZIs|`BDBc3 zX+3+2fL&2LZ*X{N&Kt3m z(sin527Fu3$=Wrh6-h*aFq%i@fy76tygjXQFlZ=?6vjy3=$_7Va+?P);NU!ni`;X*UN{^to{NI?)o? z#<60~xBjMF?Ekr#J+%8=j&otXjxUrMzh^}gq#Td?zH^FNOz*^pb;Az(19PJ$S+2fY zM=C_}_U+UYIf(yLZPRtb?8O*xfgVLx`70+SOX86;rIg$0_%B)?bRqgHy~8M&{e6-) zS?nZO__?n+%TAt@XG|p9VaGH%=ouILqxC&%)h6~QpO93?1Fs}uw;vSUZRMBu(;BjC zCk7r$bH=!nSfA7E-%2%V^xfn-Zp#G(%;ZhY{6DU~GOo=h*cx|t zcPOrf;x54UD&Y5Rti%xTB zaz1KjX#^?mz9!dFa=l>lm`lS@o6HP~0Z+ev8{(7|rK<+7xzOCWApWCWvp+Es80qYn zEydX(&^K1_RM}smoUvi(*aml7jv9`RN0Y`aV{?pZH@<1u)46<7b_<%cE8~E_^K(ML zN^F=2zP?E@C>ADU$_5ls(r>vW z@NwhTGaG;EPL2}IA#iU<7Hid5am8F1neCUY?thF#br=~m@)e?oX>_s$wK1+$=$BUh zN}3mMllHHc=?fz-|02Fxux>hy;1e-(A4=~7IUHq26RE(F93NfXPPhMH<0dvyq3;GM zXysgbZk~!rt`v@(wD!h`&j{W7@Y5Z}uh)Hf1>?ELX1bYIj~ds+jJXH#!xS}#Dl-p* z0#-(fx*wDIF81w+aR;hP&4(+Jz*lzf>y2W0##zItrmXRcxAjnXyIy@fW|l!%hH4t@sjP#X>eIas~y^b`hpskze}6861`x!cq<_D ziC%8axA7uXnyBU(Lzq@}{CJgQ)(7W1T}O-KPOGhRX=A}?5+HD%tayE?6h@7e*P_*L zogKSGNYp2~^9y^RML2CKC8VJ3}JYk|9t-Pu*z2O8Sy-4Q50LB&g6MNKgNvvBT(-ay?FU87y zkPjOYnS#rxEaoXc_74jSO1m7R@3MMHX+e$LUF#d1@Df}NvAV}&QUNe!2KshJlwIAc ztSclWzcv<{Oi+`=0;-I(a=7&g{_~aJh&wTb5%#C6Bv`LE`6z*()M=wcjQ!oXTsrE$ zk>9bKNN^}0Xhb6~fi0K72h!)plCOy9!!?BC!Q;oug_K-W1c(tlXz{?3)(Y(JrLkdW z@ia74R_1vhtbZ^oyh!|~109FB9|TE4Wdty81g$eODA+wX@P>qPZp>4`{^297g|)0p z6ZE#|f03d+5d3BY-$04&!`hO*q@wj<{ZL)<^tVYOIm_<9R3@j?=UQy&co7HvK=ns2 z3$sVFYueg`0KBlqAiP3YnJYoQ-Fhx=pvzT~dpD_K-lwAc?*$9s82OxgSm6(S&^#c9 z|8x~vU0%cor6v9QwqSRf$|q*#`Z$`zSD&XVk3FBG>0QaVr{Nfe{=6B(a%GT|;9PjP z?=lLU*{N$`bRDD@iehS{Pq^k~6#E1*cOq2baCys{h}5}HYqy7T8 zl}mXd(oAMAI9%3jXzL37x(}MoU6F|YVJ?N8F9+wu-Er@`@)DcQ&INcmRA&N`n*AviYr|saM z=s2xnfj5Geu!*(ut=t9t(9{g?TaP4xp9l3%4ArlJGdQ#hgErHT<$wA^rxBivC4|rf zH3;|rw$j)WZn+|H%_+KaXU!PYSUCEoH;7caP@nyH4RY#^r4ptl7c)zz@515p*tNTti z8nQ6%Pc079X8bIhS0oxyz;P;tkcco}pFBUidmYA)S)CGr+VGrEVP~VNmj#GeO%AE4 zQYw_PJCn6zORNF2;IUO53(b*W@{XIBL`HHyR&kDRoouRMRra27(6y%KaFEn$9k+?6 z*TzZ|;bjIbcisJ8e|BdKHIb5uDmJ`7DOp}0}M`Or@axc_v* z&k${}hrYJ~urG(Z_>N2x2lpAIx8#!v zdGf8Fe{mz?*8(z6hUUjxRD9`3%zzLp!))eZ#Nz&quAjEJ(%i(uoAtxw&! z&zbx#tA;??ZP@)C^@?D<`D!^&M>B9I6`eA$X& zlKO`2Q64l*NaO?q)K{0pKcO2$FT<)110y}p4sH1LtF~na=1!yifF9#DbqF{KIyb$A zckF*hMG2G9|4IX>3P}~L>hq5*{j+lr^CKy6VN)duVWuJXEpjwF9c}_772jh+6YXJ! zZ^QrGHzjdlhp0q?P>GrAf&@@lk3Z%nJu(8E$$W`l?;hMdN?)~{u&wp!d_^6mxrB)O zVxn9ZY9e#J0Rhc42-b?s&63!7Wad&Z{HR=z>)B}=XOP0fpjK+ILQ^?wVd2O82$yye zH}D5FN3rCB%+wcx+6~tt0gX#td$AG?x0Ly3_?h7WDKnnn%41np;jTD{uW>YJG~Ox+ zIVtaS(8RTdp4wF=!0nmPMGwLoh8+xZt~6;{a&m$HQWAL-$jeO2ty6_hrQB7bMb9bg zJq8iCW;pj$+A|!979Uk*9A|kWDc+EEfVV=0-$uR>(Z4uhGNz2gQxrDKO+UEYMFyln z2yx#k5x1JY$?!*-eJV^;@#CGQl*MO8>r2g+agept&!0Rowojv6me{bn1h)$OcA;f-a6t&wIcBcW}L>Gb~ENYD*aa!qquTsg$(FO+%-?#^aa2XuF(mvf;6aFW9 zNwoiOcsQz}tO|L49M>WVQHmoehw(`WG$eH;d^3U)gC`34jM|rZ+|)I7l?9bi~t>IZS`ah#{I1t5WULL^^Md=4vnX zQy7XDzSgBuG3snZ_QF3cpevlC%qN^6;S6Qsm^{V?Q+O zi(n@}84_9Hnm^xS#Fj~rCbFY*RF+AIs_E}?Iku7&`~t`FpE+5eF0!*K{xN8u;A^b7 zEI4?B%0a3RVA(dAdTwKiH{R0eM;or<`JVQ`xXVbs9awouVEek%rJU&nX@?5l8Khk9 z^Y=L|ilt_c-hAzL%zrZ#G@v9Z zN=w74vOTEtFAx!PN`p!Lm8wv{YT*5fyugwpocqjftuD7~vdb<2#X z%-at8{!==lFG`5_U#l)rmwXXkcth$OJH4e55ge_S9IzGZUTUVcRt09V1m^{<#mt%B zC|0t^uU834A8|51>AQIVQ(bBeJOIQ&Kh`r3^&wL)KM*8k99r}zvjPisY%}z_;iqHV zglq9cgvPgj2O<NJn-OW?J5^*huP=C)G|M-M~iF$56F5sN7FK_GxR>3x;m>l?FbT zF23a>!jEHi00GdnEFPf@7ljt+3PDdD{sCnvh`Wb?v{$w*Y9g73{07O_yU7-_QQkO! zV8-m6?J%cXwEKEIf9p&5Ld=FdNAwr}B@*EnBEa?XK!fjJ9R<8$=Eug3(XL;DjYGf( z*TUWc^D;?higos8!%g#M3xOOeeVGNoJ0hVXWH|SCZlu$7cQOYfE3^1%xMi3GnAeIX zf8~-l_fak)7GCciTBpT=5zp*`e;D@Lg(d5P$(3DQo7aQWn z2Zv-Ewnb_nhNw#+e+X0>Vp2t#NHLm;tz5~lY%`DU@1!@{I@7;(x%T)uN$q}d=vq_n z(_j=o?|{!5IIBSshRe=X07FDR&XOJ2)%A*U-E0G^ohnTDF>|oi@uMGzGK4Ub7q)v; zF4+e{!Ca&SaNCHMWvWsSU;>eOmEoUdy_)f1VaiCp=u$2@Ol$&(1UT7>!}Z)TF~{jP zit$yyRpQ4H_eL<)kj-f;;5J`VQMt#sWEe_r)EY|KBd|^WEH~VbJS#rxlMEbYvjh6~ z=UF*E;6ruqmi1vMHS^*8!#F(r`snM@Hj#I2{Zk#z4?iG?lRihIHn>kusrgy&-uTY2 zC=N1jSySpkWs@xq$VKTGE>|~P;YrP|w=Gbu(#XOk-w2nH(Zp2_@4%(U!8Lb)pX1@; z@JcY;P%%C;+^tw;lUiMh+6VZf0{OBvudSK*cdS`9V!&?JP~)6DXhVt^N9bePsed84`KbCx36?5BqgttU=6}PMqO`bjL+DPWEr{1NjqqzqK>LFNeU3F%j-g z0o>q`%RUgwC`Iz3whC`9_+X;rSucY9@0CU-TT*;JAgmwZPeIVFDm56*g?Lycm{MwV z+~Ll^JvUEo=GvJOh`51J=r6UVqGErO;voHo#j&4aPND)v+?^eY?!j6JoS7;IQk;CpfR?qtBMp4F!DXBMO4ax4dzi9Efy&2_zh zrg{O1iv;!1J(<8AK^~iM=O=f$A%OL+7@NW_|iyX8zhhS9Wo8_ErT}g`#9mb;B_$F!xwL$_5(zH`q*8K`YL{pJCxs;RruEt=K zU<*g*(A<>M-UZNCNFL)EAw;iKV=y4LQ6jx|2G_0q?}y8brNdxPc?DMt7(xwC2@J~6&P=M!`KD?-W1xisxv|<$}Kp;A)NkwPF|Qh zvU__YYb%HJYGAw_Xy<`HBCQG!$WFq6KZ-@ig$MOzEOi+>Ur)(L>CtP~K0{VTdB*_b zatc7fZuAe}94s;x2$N_dMSuSv{nL;M&!jQRH0FF<+@^p-e1{z$S8!sEOs6Q!q ztx{eEXD?tEZ z*tto>6aoe>1J&8I+9zY&dXGXAD&VXfA9ULD+a_$tx0jxGPo$+ojDvJSGp`xXb^Mb7`+RR&{zPEVkdHkw{ zg)n1;JCfO1C;eX2^6SHOM3v;tEB}h?Luj)z#18F*Bq|+CK8U)Xj&6|SR|6#+NfL{2 zUA#1p#cwHUW-w%>&tQMod&c@EZbKO3Ti8Ypc>uj8J6Gp1b?8Q57WoW5a0M~dK*se* zxvb8momQ_G+1L!+YY&f?#~9(23gPFuIYrIZ8GaiJF%fn!2RkI3ums#ZaCuy5(@n<~ zBe#}D6hgpwaR+*W#+R!<*O7u5x`mQM9*P_dW6%U*O3U@LyX{f)vC7*??{eQ=tEJKPfjBMmcYo68QF@adL)4r zQ&ZXO2|h+f0W}R3^TOp7P~P&SxSerCGe5O4&wA zTS%wDo5;`H%Mh|}^t`qH@06VFkNeho<1epM4=uxPDYG=iwKKD(C(xpKFiM&vpEpue zRE0$3HIZJS`j$c}x2{=H?je$Z0prHwmsbC_Pz>ZEmQl>YU8Q6m{k6h4j!ipLtw+Ou zV^F<6BJwn>kCI_=u+*G!Tm#kNiJF0azaqv??)spxp62PeySffvLGCOf(S| zqk@3|Ng#10K@>$)6jV6V!3~*q!rV+FAPJ#Nso9(`)f?`r6p3Iz9{Gt}zfJ;`H1Wn> z!otQ}x+61h|IFEf5I-)5W~XKHCD*oZq9ZV_7w|kqGeL;$hgmBq1_5l{)H)RNxGPNW zLiDt}|MNLJN!u219Fen`c|KWWQ=`uBLGqasUj4GSrVYSfGHQMYQccbFVX|A4lV~2{ z29n2BJaWZ8#dxB>iB>lV)A!QZx_~T2p!sT&CR-S*+*{quI-SUU?m*n7Q^{sTKxqrT z^S(kF;B^j58`)=EM+d!o*p&g;cKBmYirMiPlz)W7dKSXfIy!v8)?1R>P7DGu7sN0p z!!}j{|BM7km&aOql7o38fffGJ$gRAExPG{B@97BAJ4(EigoFsRNJ^1=!Bmo?o)ES% z)s`9}4M$MW<)*&Q{~9h+UnHPc+Qxc8WBEFpRl@q@DwjF;>-b(uepI!gIjk6JnFm5d z#qhP$5;X|x(+=D-5Rc!#>lNYz%@h;nGfV2Rc?6qP_4QQBT_Nwxwl;k}{r}Ad+P1*Zy)&6JFLiRs>=|6t_)7Wc&4V%`^j)s}Ora zGdxoPzmg2Ivlrh$b{ypSc<^&c4k_YnMKJCp0y|KqCcgTkYK959;|s&>gSVxuh0Ma{ zQB&0b{7dAYHvh_h8mSJFJtg@H>T^@yzYh^1Sqe?J{n%<<;7#g%(X@nCDXeTzwVZ4F zrh4dR?g4&rjJixMO&v+#B@kmv@o_ z_R8p>{->>)*)m=g-XHxnGpJ%TG~%|;3Cq0F(cEHbY6Zogg;n%>>-q-@{_Gh^D?Qyz zh)%y~DY4~=_MO4f%|IuzxP3@OG9YnjNg77#;QWz$-$6m>%whhj zZ|u!Qbz%^G6lzp4JT>nHH39^QikdDcL`Ip61nS3run?5(lkDWZ5!N*~TIr?mY)7bx zt2nyplHUh6PX_sYdgUwYE=!%l`^GM3uNaHHWQsGy6S~F;vuW+8^7Poqx-7~keA}_4 z#t{@}JUW}TkiFzM42dW(__!OC|Cu}xf2^$5Y&-iSPekOmw67#uk(gPg|5qDNPp`0_ zbrjNofWlQ?;{1V?`mMkyd;R_ZM=tU@2Cm^Ajh%s4RtCb+zq!oU-7@#G#0H0Ui%iIX z*W?C@EDBIu@F&fT7v=CcdhQ*I;Z8EEUGr}<6oYfx3kow5H2y3YLh58Y*;o!~1Y}u^ z#eM!WzxqVZJ2}}RK?Bgr3Iqj=|tqW*l}Aa z(m-q%Y86UEr(|B2)ZYn2O^o8XXM62}&L9q>!AXo}IK`Kd;c!^QZzQP~F#(43)G;3> zuEtHN7=%P8%NCA#rtz98p)C`O(px{9(_;ib|`1kcCedh6(nxteiF%MB@mSv z2m54H>gs8eCLtx6Y*^fBBKhdaZL#?Gh-r+G`TE%mHPR%)-W$msfS`}y) ziQtz38(55%NS{px9+KjbOGtd6Wziy>x^LG6SlgvHndv@WyBCga4rdAefS*{O%|(9R$pJs_&+f(@mF(@=H#c$| z&^zwp_BwQO2EHtfh*ai_6GKdiTKgnEoW3!$q(S9u%ZXOle$rCvHz52VebkG zy-wGp^naDaRGon?`lS`-lF!ORlH%QRHVt`FVIYa5VtwM7Y9AC$RCy^p*o`b0Gf0bOoL9)`S=wTNqHY~&c30k1*0~M1;2tqD+m>v>DjAI0jd9uB-T$doND4u(i!;R^^Aw0J4PjO6JLX z86bmp+77FCp@dH{4(QcX=srYzpIb(ZDt4|6t^WYcTCVZei3*K*5Y?DL!IZ{n)`b78 z*R2#D$sQ=2SyPYI!vc2X6LBPyEqUcn+eOqx{6Ko%AXT9yJz>{Aaui0x9|?u_2XS6| zUZg6ULW&)wXWGe~J9)45iIZ@i4tJ;;BRq_i*G=$r;wnTv(J(?Gu4K^cmw5Jqf58cc zWxH5+jhlZ1SxFa3#pTap;bKSC&r-LiRwB6~0=Bps^e7LV?a%1MnLS%NNlG%UUMd%z zZ4x1llNjbq)G-_ilQ{9pmuw!FG|o?_n~g(Vkw}dY&p`g(qY=Ac|KJzJ?5`2iNig^N zHA#3+GxfDILSv>bp9lO{{tqlxsv)6q$eMFKIwDbg|!z6P1-)}FokV`#jCe8_+}g41W-M2KIR9xl5&KbaL}|hE%Qtz}tV>e>KJ_a3F_=8EX)53* zfBuNDj1WIu%(Su>vw1+YR*bvxvUQj}J$KBFLdk-bA+?NAqrnWdvsQiu4ZsA0kKd3EyW`{S zDt^iG**apkt$+`G^;~CEocN{8$HI)4<4SZnA(S!RYn6q}hbzX1QivTs!F^K-;9uWH zh>via&&8j6;S9v>(%K8>w%?8iIK?f%MX%zB9KtKCK$)Qy-AIbxHwFJ{Hf`xQzN58} z%Uycvtqr1=R>A8|!Lk3q^>a#=dsY;RS+F)h4{N}o2A7E{ zhKY?A#^fHTjuti$^<_-#FRJAY`tKYZq#tqY!Q_FHe1%N&PD_5d9Y&c1Qz?=J<=v~X zaMntdX64_3@8R#Y_>lYp#6aQun$o_k+dQK$-qbdLEvyP9gv7IfFho8j1J@?9C9&Mh z(l2ii^xC)HRDvqiMk4xzSfhOdVPX`5z({_C#Jhg*!#8*i^WfU}Eh7{-(&h-CsNNq) zE9~?Y3cfF}j&sw~KTfwLj7nD0z6##&2|P{LOuM35yB{xwZ!MCYb~m;($Pv#I_iqpY zS?T%oQKmV5Qz<%ZK!j)9*Nl^f-{Nn=aNl(x6A+yqEgO0 z=yDrKQ#*NvyczICJPJ<}y6*HN;7rZXEk;Hb4mzBs-mGFe?rseIs8NC5KmVQnxCLe@ zGJ)#%!a}3{o*#FsWP|!e5-Ea@SO!D17mc`LjTMaM z?|ULrNuUL2(l%Jl3?enZik!=3+PXR^ZrnD8YJ>;!*rY-Pbrcxvbn%Nyc)5D#n(m^< zX2s#rga_}k{@lpd0G*`9a>RBRo@gCPG;@1Sqmid#ay3SZ9t66tH3nd+2Xly*L~&S# zH6@OdMeUoCqV8(3mCH=w5EV1ImBF+(Alz^0j3WgTU;hZbN0=ogSV7b&zl|gM6a zYy~nht29y8+eK|U3}^Y|FgtSljL=PsK1oI?OnM~)F)j%g|LKSw8bQ;HlS>3l9N1@w z_?5=G#KI_plu6HA@@aRvIXAhY>E9v3mJgG`{iwh;iNTys7jWZE9QcOjR+Z0?^R+|q z_wbe|0Hv2&B|Dg;Pv^a z(vA)bvpWY3+)?Nsze=gOtv?{L9Q>dPdz|nJOG1ObzWLC!QKiUXPJ2uZt^Vw6- zOH=TjXg`wRro1gXU*=5PLUaZ!vhnhNg_3Rh+?9>{<7Y(IMQGBpPRAzV`+C6X zWTzy%++l3pR!_L}nT2?t7--PxbKDpXuH3}Yg(bg(c1tVi%a zY2a)#PfsOvOLAJ8@t+0cR~r38jovlepCf1FPMrgT@!7?dP!rX_)O+RThF_Wa88CS& z9DIY~F8_pIy{gjA9NPOqZ38fQv)85*3(XSXT>_mX^B!C_*J(coRnamZL`BN4jMKEF z8G}IH7w>{NrEcXlbk=#z zz?p1jxdU2 z1pt<>o}ZjRu^4`n5{yA?&rv$x0SaY-I%f_6Y&c3IrL5ME3CAGFs#r8d!@@8v`M`P| z5)oI@{P1w(w)>KVZE((E+UNI5^<#f%Y5P{Sx$?dr{3qM}UuiEq6`4}XR3lVByz$<6 zXadE$cytA#OvhG2`ndA$(d@wBSLVVsEA44xF@81XLNG2o4$m})*q^-rbHO>9hX$T8 zj(`5v5<>hI>9FA&!suP1mTXEczG%kCz zeCkOYD^`w%rn)lPE!CXw19s-&$@TVDr}R1^SAq)`RN>@Wzx%{y604-b!>wHs?&8*( zhzW!&EZaG(5RlE8PT}unzHX5DpcnB!y{umc7VR3RwAG9%>F1}P3B(=xXr_{nP26W8 z^a|~*BZ^4Ja`)E%xP{%76E4b3K$9D^WY~xcfzVwCYdtv+3v0vuGXXOocs^V4SX}f6!4FpK@rwf*0Qz}lT0U@-) zw>z7cX^wtB=g>9-uc^V3T#(c;cw`ULvB$J`ji&HzzJ}PIeSI#u4j@>d4_jC{xwVzj*CyBg&V=sN{~tD}Atz z{bgidG20doa*suSsoHqy1QEQVK1<&zCVvJ9GsW{WX)`|6&^}?Nlhs@@=&iBUchRO< z$`zBNM%_I+f%wkw|9yK)LQ>YuDcBJDkURNPREiYTft}QP^lks;MoLO_;(zKN#H(Rk!)*^{JgJeN);qEX$@BN3SWWohMl z26%(Mf5@Xy=Fe6p^&Y)G4sYOpZ3mLQ2y2Ki1;SW|lhK}_gk`yUpMFW+yI1P0S}&;V zSim0D+YvI@fA|;TR~<@SNF=B`>SUMsBbbd5xnsPu>Tzp{?ey}kz(9E>hs_P8p;Lz6 z8*oV=)>VV_Y1V26!>2Q=oFpI}`v~yt{9EU&3Oiz%Ld=rTe5gQ3%s3f}mNUSG%#Arj zX?4E4YHadFM@Q7Sda;H(li@uV73qjL#G@b_cg&Z91qq@iB4Fm6;%vC0B>Ug;*3xX8 zmhww*+q01nNr|U_8)vI5qz#)WDK9W58Dw5KZ46vQ2R(-K9$S!(wuA;;F7?nu55Kq` zkCK)VyOM?`QHn*+NA*(>Ue!o!7)uNqEncN-l%PH}UIT+h#_8@nJ%h=-^47;28N?RB zF~k3@Vi2t*eYa<9l%6jBnhWRN>k_<6z#1~TQMC0%UE>cmiwY>j(c6bqmtq^Rp)E8P zGauz>BlR#|BegM2LggIx0RcKij-9MjU>NT_h`#yR)k!9#W`7yWuBcN@nf#7We<5(e zMqWAYxCq@@bvZR|%L*t;B+lRg(W{kHTYQ zDutNCHR=L*Gy)m0QWo|%z~)rt;L33Et^%iPsR$E6kJ{Yb#4ls z49-o-R1qT2u9zkQ7U;X_54=X}Z=De*!){g$X`Qpr@iQa8Jz{!|N*nzPIz1%?L0&v+ zZHu)_3hpb)YUvxa0Ht&#${(CvHWw=Pg9W7Fz*_gOjPhEr8`{d~1WqMR@z>=GY1t>h zU+9AD610NKDHjg-Pp+|Bz0q2=UOrVm3^Elp@d|_t$v>h0#8%6^Rt@=Kdy`Rf8_|4Q zSJTbnMn2&(wfk2>nLKbT&E~mes`Ix+8a+^g-J&<19`M?KyQ)b-@582)Nz-i@sK_~K zfgExN%hHD)sRquCejX{ZrB!-jHhVSlK|XP3Q$Fi{@Xb;k1ul+@@Lov(Fg>opbd2=W z-qai&0ncHI+cux(*b!J19qGB&$88M$8kAB_MdFrmnubVxvF3N=N5!83?**#r@6rgG zJKnXS34Q!gLB9vU5Xs>1%7`UIoK^A?%L#PAMc#}eisszxpVCQD!&{7ttX@|gyknbE zO{GI$P3V^(^Zp6P;90~XZu9h6FqP4Q6rAD>UANtx^Mb9$v)X)|(t1vhY^9*d<1x*u z!MnfXlXe^~T+Rge^ASYWEnD62%mBN}{H-C(mt>7yBTPj1k|1fDRYpt9p@?l0woaDp zBSI>tzIM~%e)2zyxiVendT9&p?|h~nhj-1E1<&it*p<1@JlNTR?GDNA0Tkh;#wFiyR{4n*=g#nS;aTyo(>-C{ ziNBjxZ5YuXDNVeqHoE|e(fE$b66)bB!bqfiMfmfha&uHgm^IqRC)n|7E9}~%)fI!D z_&#VI9`R^gYi3Dw1c1A*Qa*m`>F*$oj!#ZqE=} z`7-30c%W=X|BjcoeRW_Vg3m~VM)|9|HxhF~=Kk37AR5ygwXTwKSZuPfPfx$>w&%B3 zG2nu66<4Dme0h6U%Po#pIlJBpe_+wkVd!I!b z6HMT%@n30Hii1w1uhN5+DyA6g!xcy1PN}?S0gG-F4`QtyzasMk6FFu(*=65Lx4o10 zEVY*39?k))sH1-lz^UXiLfO@)NPc(M9mf(H4P*B!o(}{aFNZtP6Y0XTd1Tz+KVya# z!=b(1BL$2tVU#f_wlCMD2jpzXh9;7gCA3^n0}N5WQ?ea+kmZ1HI7Ga&Ty~bt`>nV% zKMYvYxTvTL`Kg1a$kN{Z=_N3VNrr~;{A=qdmr9lXj2%l9wt-Rl_XaNK>N1?-imd-? zd;)4$*H~Pg)*5pTj^78rmf@Vwu%iNtm(;l96<16BX;-?ulN$ z6>|DnJZ9SX=a-4ImhI#VK|+63!wjAS)qNvBB5om~7#bhA%IIlfdvPR|Q@X+^BHtBy zl*WBSD{#|MCEMS}?`Zjs{1x*7-zn>1llq=sk(KXE5z!#_tY!h{1*vrh3PVr?V@Btb zK=F1RoHsX5#C3X3z!z+ybMDO&bl;@SZ}6C|3By70J^IG2abf$xlflGwl}w!7cb7ni zIdwCdkHM9V&J*T-Nya35^%&TtU>^#HzLJwRmT&B(gnX^6YR}DS(d^WxlN0%@quAT_ zWwA4Lyh-!{@g`dn$j%b5QuYH6w5mE(X`LZXE+>DnfGner&{pGmSWD z2!RubCCt2}69ePJ5#Q7;dvUMf^u_kxEy8_r5r0gy|Be-ts~M$$n-Qa?0rFTYA1RWJ zs_^0rS>2eS3M~1YQ)P!NNj)}1xU=HUtUN!e2He=Rrd?fIy~F&GYWWZtrOJ+pIH^Q` zp-Kw8Cdpn3<(01T&X()~R9p038&W%&?9f#`*ZYd=d&^j-(rvcB{E98kdyWDXGk@qT z90ggKF>nQjjhGhP#t#$4knh| zVby~=qf;E^d_en1plL`^vJ-*kosWu{DECjEeMVy^@E%f^pz-3{U@{sq&v?Jkl9?(P zq4jb;YCWID zlktgzNV0(6QV$^zG39FzlpI56-7B7&gqB{ad584=2-cottY}p?flqYir$2bWP))^KL&H<5LIFCvxQ>x0poG@mKFX3 z7cIEfbI+}sb(xpqdKl6HL{a4@Q|EM$G6gchwot!%XXTi{k3pLngQ~gcv>{0%!PrT8DMoSKGnsoha+< z=s6D~?rQEq5E=^p+akEoP(8)7gLWxLL~}`PTT7AW#exoQPt0h{W2_TAqSUgPc$uLu=%F@MBPUW$m5?VIl9^$y3N$R4*gb*H|P`8^1pG!6JC4q`jB z2pBgcO@2ny(VN3yHD6Tz+$G@QJ@a$w2NYvUAc+ycfbRq0wAHpOK>kaZXvyqxObdP7 z)szVRJ)!<_^Fn`n;B;vfaO+WCk*0r~JiCH?fi|m5J-J}nUzoPRTjv>YZ)90e;=fc< z?ADbTJC6Uo+I-43o?j$=`?2w)|u~nDtuI z$SCsy3j@Ps@XdY2zo~w0UidK% z=ZAI*>2cJQWX})~CdMa^_6d&`;n)+&TwMy7?(7aSh*qg9=vuxf z435_>p=cYnMI=^HE}bGqCBD1(WX}xYKTJ{+-)HP!aW3M_#5=Dc4untHPWnil!*FqH zNQ;{FNFpN~9!X0=ejSoXerH=7MkmkUdYb7j*=f5~WxEu=>5=v9e#OuugXuXrdxCXCa4w65_1l0Y7;SDC`A8@Lj4*+_hb(}T#Y(=OSFFYt z?z8(H>&g-Z&(Ikjg4RMYuOF3sY~3##C3@{wV+~LD7rN1=u#L0F2cn|!Csn)81Xx$T z&}kDDjy>O=pd*WE4iV=0Jmn-l=@@7d?NL}G_FU!=45s~o;iclMe3-eqF5n0VCp9@Q z^HWSQwx9Ha0l>@nS`?c^JtDNbVz_x@lrs_`Yf5LIv864e@MJI_bIS2`7xb zvbKZmqLMbPO)e@}s8$SP7CH|+-Ihi=qWLU#jRjia4C>HOj6aIW-jzD*Ah#c)I|hZe z`++!MH;5T={ADh({Lo4aW+x5|#)dr&O851S9>VBMTXIJWZ{od%``HrmK zU;%S+MtbI~d0WtXRWEd=LzTxN95}P58KS(ak!Lm#kE+WBbBTS88mOI~C{&SVm}2{b z$M??9WO0s3RZbyWUv((ptg2~xntKw=%Zy!Z(AZCbNj{o;zBvi#XWb2bKOpnCUzn0) zz5M}?@WH}3J`Ez$!xN;Emq@Wcf(J`k;6gNKhn3spiPe}`oFprtNWFMGdBeNzs9~+{QCvpeN1eZ(~`Y3$P>o`TqEDs8`2^enczaw0M#vtMx8_RK4J zA;hrs@ciNrbR&3)bNVA<5lSV?azPb=DCtT|BRSRQP#EBnwgTlpG>$Zk%pNa~6-eSU zAI?0rcUU2W9W7iyG4y-3)#}H$`K89wb=#@)g9E=;Pk*1|Y)_%Y+)m zAed!>Ap|GrWZVvZ1$GRH6jKV+f87`=b-VJ-oyr^57sUllGweJG#Ux#Sdov zuvbjsBnWGlenpg~%0J^{(MH)gA+#$W#N4tbu7$$~qgqC*nVB z&{E5nfj-M8HWgHDv4?;L;5pjr=;fH| zqP`Xb8(!;*>}`^zDr<%YK@lU-IlOq%3IzQF=eaZ>`xfADJ@W7{ZPCF28`z1h#~tCB zQnH2%%RwNBkNjv&Ky_aR)~KYPAb2RQN~loiWMatMmJsYz+ai!cz0@X`p^+42b81p< z^J)Q^3N*hJLZ+P3x^rb0q&H2 z&c91#p~CQ|jLyJI0U2jgzqydkU_VVfi6AEK1U;|ls|WpklRVVaB>gz<=!czVcvqE* zQN*#-jon><4i-x%tniPhix(B$#cxt+7ct2P-xsZVr!~9&Pam7lBonqA>;7`Ak-{B# zAzY(h-j065b=glk+yV~?Vh^Bdm=;wPsBy9Cf2&ZLQfgd-M0$SfLAz6})tN5UAWmM* zcr{_b9hIn(1slWWAi?_Ws|2m#C7Hw;acz!w5}b7(eLCB*K=x>MO~t{EGtQ5a38T{= zwMUew93L)~4(pezB!7jGs+PiNT9?~>so9Yh-MqSYC+617xtv0MMZh%@qU{Nw|ABF} ze^uMQeHKbbY{2+Iu5Y}Q`VF>N}c3!Yv9rhCGo_9s7a1p}rh?mvw z?r<8~P}-YZA{}EA zZ1?4ZXC$|>r)@xE-;GVm#B24Pas_|#CG2_Z`#M9I5s^9(NK97tZZ1Jf8y7W`E% z8s20uyb2n2oo@u=@8$zRP&I=wf!~kP-q8Hppg$pe?`M=<)qp)?{z&$SPO{9H`Wp9RD??JZgW&N ziieyd0WB~)*RPbWEM0t;na^w+nB-jZk?KPe0^L!%ep_%+s?@b;qXreAM{GXLy_tga zouh&Qd4YIt;%wVQ1&dsk#dRClF%!Tf|1;1ghRDW$*ViGV6r3G|!B8J^_}3vOnqGJa zbjU4jfVARrxpG#RNk4DQQ#IaDo#_*^8nY<9FFEL46G7@{de+f`0_d^v^XWpLL6Pd& zT+~rBV(s&rN7tC7ewXwgO|X%#1X-Y5ee7!4IW)}hw{bit71{?CyvuE|;+2YMPL1N# zOIVk5{+h%&f3hbvnkSK?UjEuGvU{>{y)T`kIA=rHmumd1DisGNH?Q=6B|Ej;7aFt= z-3}H%#jDeE_0m&XG;MYgVJ&u`ivU+rMVuUOpF`%oy0i(@P;ZsDef#e9PR<@yzrh}d zP&bKt73ZPG3->{jB^^z=Byc*rIhaHxrxq;G8S;zN*uROJ*D*YuXEk(o3o;q@Z)>aN zsDDNWime%KR_M-(q=D79;jl_Rr%b>MqTJo;Hn5Zr@%pU%fSV1nt&Zwp1`+r4GzC?R zIorqOE9)aSJ6|?P6Fs+b7}IfhgzZo}?Grm&LZ8I!^@`Hu)TWLCu1$e!4a16I92kEO zw#yo_;$uV5Eka;%m$Ln6?nh26 zd?~wC3onC?;SMqAaE%ygVA!{@+o_O|1J};jx4Og^G5!DGz=l z((+n79Y}R--DAV3F%m%Sr zSa)^wIUpF2TL@Bvgl4xQ&U}=GH2##$rO@vw_GQ`n4gOhZ+*L_?TM$anemVo}%7QRK zKF)8k9!e&_TDWI^_A&;G=D`VMdd7B0k!t6gAHorp4T2g#EN`Iv>8Az^3Iny)o2vQi zVLZy{*Dd$)(bBA}JIKfBHjnDYPnlw^))=;KpjMlGz-k>Gi3Ib1@2U3Rdrqc?59;*M zL;xor$1xw-gF_3pZ&fsWb_lB>jqwaIY?++K+-bwlyr3Hkz+G!?ZvR)OJfp&5M2XqY zK+G88>i=tjx9gd@7yeg^F-*6uZvHQzCGFIvN@&a+r=J`AUTnUO{=ZIPz}9t$jl1QC z%r(od=Xz=Kn{s5*VUohYYckS^_M_k-Epb&Oy0eM%=|#F}8#*+@2mD68P3@ujiVK|% z%Un!y2b4M;#8GfCT-9^#GMR}iQ5_pZ(V_dm87P*Ghs7(nQ@v^eNm@9>rrrv}okz0}ViKt`3wVz7{slD0QS<}|My5K>3(TO=aG<8H zZazFD>P1=_vj6cgkPOydqT>j{{Zb<`oj-86q6GaS2#zEk$_b*xwo_1;vH7XD8cw=Y z^Oq!uLAJiy__e!O=O?bjzd%QP`I1i+>exgj0A0l=XlK-4SG6!lC(@HK1)ygNWdvDc zdT&)>^%HQeWn1Krj-x4L9JP|O6`G#XZo0eM$S#0ZhjwRkQWPn-+3s`_1F~siwm&Oc zn75GA$N$Zcg{OcXC0yxwC-6xnBw8^-M;eHk*BxKE=;5?l2KZ=)cWpj_=GU7?@ri(; zTE)TCq!PN+EK4UE__;!^rLd!RMacexINBl8E?#V9^kq8Z=j>>xJ1l`P1&*{&EV$x> zxE-VkC$-^=D{hob!+Ucv;T@VV+E<>dE<(ZVpI9+Ct=vQ}{YKaZ%?{^#VwjVQU)Cg5 z>91P0?fNq4mR1kuS%W;`<+|G2IU1Ob9o4|=`YBPJ=5phrp{h*iCxLy^MxEhHE{`kI zdVsjxiD(d2i%ODU(#I)U9|`yI{c3;Ba1pA{UtRU|Y)4>uke4pDcj<8zQ7qC}g`N>p zO0VHd?)vlGzS`_0C3aT>IlD-A>rw`Nw%Uj(+scyG>c5W~lMk;$UBaV45Sg~4)`N&&Y~j?N4r zPT|3^FRSTctL5cfhNaonHNhmpVKj$q+_z#A%EEhXm_adu*jR=p?P)pM4t2$;xbbFf z-+tDFO7?Pjw_IYKQSYV6-bY_y4Y#F9ABTwxvvLI_l=h+kBRtH2ucbd{*9H@sbMka6 zj%=U*It16iVP4#p2=9F>ZtTKNv(KYBicLb5*}iRI0uOm7<@dQ#jej`ufka&uPEkv4 z86^vD!*)zd=qq^QJ(5&gK#X-ZtCkCeR!N)k#()S2pNgW!BniHfYfGshEfxvg}@Pm)`vB zRLV)j=m$6|@>>`GhVhY3-Mri?RG3Hu_6?$CG18KsP_wo2?;leX(I1BA(&2B);9s!6 zRl!tj{2ZUt?;R(S8@)uL`Q(JB{ggBX7qmlHH`7glqf6j9PR)>+?6INAI0DkG>pr?% z*0ZW99VuMN`iB#c`j@b5e2lfx;i(EE$YjsHvV%N0!MuaSkJGhck~lBtU#K5zAm25* zWv_cA&%+E_aEU^wwGawmdRkX8;c)acqOpIOb7dVNr$i%2Yga&93%v^$Ac2MoH9egX zAAqg@m;^f~R3Bs&--RjCU%^i6X!dz!lK{BO`f4*;EEQZQ>#r)QOAVa?!WPAVB1Ry(p(7w9q9NZxU(4CuLYNJGkOcU>X?a`o%izQ9LkZ1yy9T zSV%Tq6+$$g*t~hH3DbSqD|l9kE}#Ee?UBUCszTPTEcGq8@4@+p9Un!iafBch{PAhS zym9;_W%43`%8ipYhOOQVs>%^7?xo4!;)2^2KNyxL^W9X)^9>hzOLaIXxX?(9Nem)$ zci|>eal=h)dG+%aq_}cyxkZ$zknWd^1=@;$`(9pEjQ@kODX1n1sm2H#1}g5itb*Gr z=vT=*7@$9Q^u=y;5tFVZ+uMUhFMZcZ7RU2U6H52A+}4R zgSV*+ik%mN(NTKC|-wF84f?0hTO+xTS=s9YJs0I2_9C(C(w_iR(|gX^D)ZN9E*0tYVqqGAg^276 zBLq8XgOBr+S?S3%W@{%C1Ki8g_WssJre&|LvPHC{X`udIt~$nCFWu>ENASYyT-2ZH z@GQVFBD2c9s6%iQAn)x5f2w*MHo3qtMmyLG48HP}iQzLg1D2cx9W{|+MSRtarqnZW zmC5@(6AGfl>nhCRJnqP(9_+v(ik$5nchmF?NZ^nHOE3K2@Or}jYZy3Kq-jDg5!KE^tkIha@XbYl}GduwgnI3c{nRd+#$8=UPL;6Fp&ndcP5FeXUT zBH@&2nWsCs=T>RrT@QJJj51uEI*S9PnS&*eWKD~|1yxjV+0ii4ZAJS#q(g|{GqlRB zAlrSD|88z>WP=NYYBDoZ9fo4dqwXHLBnNx@V<&-kxwA({51I0R$&gCr7F>C(g7OJ3 zRH^$pMe3V{1)KO3byB$_Jf_2|gQ$nY#SQF5%mGLz5i~tFLo&aarMSX@mCQ-p5U#7P zVbMn@hxpMBYT`Ua1uK}7OTr_9Y%9;n>8}Ce3V=^0=% zX?T4^)EFqqo?K^16YoA^&zV#bpbZkMIK$!nLpvF#&t$5jl_ket)YaVP+0-;iNo3!i zlMOi&FJhhK;&Y78QXdUN?$@!5yD*~gSW!a<$%sXIrkSmh*~m_tk(EEJx&I->t#U%a z>8E3n9Ind>KJXV;*M(9_>MOz~icgwV?sDZ*3_32Uanajgz^RD^fX;-wRr*G%^gbom zdZ75y#QJ55#uu5k_yJ6BQQVkNpnl4rnGGxPP^Qr;JK{t(+delGCgkmd0@}pzBH*3{ zFHIS%KVlwevaPi#XY#xlv)6rjm}|Ph^{^P5pjXCSU-e9P_ww2?YQSCq z9;^pS7OLvOF6-Awr_V*o6c}cUKD8@=W9Q8UoroU9ufHyn!RfMg!xHMCPJBR{=%1F# z-K;v{?(D#%O9uN7kba2t-8rTCkaDyyKykFd8pnVt%Obj*x^X{6SGFWJ29leQ(ooWr zD*C{1iv})PcS~9zJDZ+y|5>ezD+&E5+*eQHrwmug`c@6tx6BXKkOvIb5@##eDbwD*uu6FZstw z!&jx&6iVN@Q5)>;{@=jcYpWr&7*;_T_O zNkWJUox@sGCY@bqUr67P6ZXzMz+3+eI8AaHIABBmbs^DkDd^f&v3T-S#fT$B}ztfA09t`i5%}BSFn6RO=+~0=2Pa8jHUs@k;}*fI_y=zH7g(5XT>oF~)J|SN$^>~j_xsbGD$ICHhwze)0SUaihGt|!C={q=%hriU zM(#N?f_HsP#rpkNmZK692>qO)$FXJqj7 z=!uN`3iS!c?sDYEFWDbhUhV^P(vAy`;@a3qbYr$mEN*;tJnEGu92vbBUpq?D(^WG{2FNM0|K_D-H~a4FeL6f%kBAvF9fPHeg_nQcG7Egx!JW5{w!nI0CQ`{8EFP8(OALrlB2AkA%;N{{qj z=%7gcs59JYy{ZBEZ-O{Q%AUsH-a_QP((_XKBTunHSb$OOf7Oaek}M%%Ca^EM!DhhQ zt^|ab_M1@3bGXz-fgXUKIXyG~V;|~tS47C0%|4DM)g<*IM32JerHa%?lcLwTm9J0b zu!F3Ugo_hbkYu@)2OTcE!UE;4YHwpuzXU#OwZ>2fG7AS*ew}xAlwIH^A|IFXNW#c; zFYKV*%q9`}89{`xE1vipQH~~`Q6eltYIQ7+94=EzbUHwD-~ofOE*9l4g4J3+u=k<- zYKn_+8a&uHvBOLZGJ;N%qZNsTTr~w(mnEeFV7^>u80K|!!~Pf zWL?AmXZ~~}OO9z*>`IB!-hGN_+#`|q>2hcHH`^o4!>*>$fdp%}QQc1cPmQFEi4uN0 zAH$*9pDmTqu@)%xAGo>TVLyO=sRDON%<~tbC$8r@2rRqxZr0jt`clUEmEdH zIHn8V@K~)|48dG_ShKC8cYLH<^u^KeOel&Kpn2Z+4`!*;)Ea=k`ZSN>7)v&vDCDc` z#YaF7Kp+SU;=ryl7Sb%huf@;_uDBsW5C0Yp8z=*?P5m(JD!qbWoM8qfg{kD?6cWhb zA}hd4wt--QGA{gYaN=ajh>^)I$1FqUbm*-`!VR(Yk(%_3UnW3UICj`AraWuxUWTrO z?`t4E{IkvgG4V~x_}>}b0BY_cK>xJ5(A<;G*8radF56$Ng1)K@1BB3b!r_L|K7HaG zSJ1gX;ij?vy^`p2ZhIz%*_S=_Xouq*668~D@bnhTqER#soI#R zl1y9Ei3}S2LwOym{;LhnY_q;(yT2Yha3qTuxXSUYSUrLaOT` zPoKJnAQl69iVCzT?vz@7SSm42HG?QN5g3bN7+JOx_<+Ckw71M2W);YKIVMh~jRKUx z>V0F$>qTG#AJfxt9%B014p&1CI`GdnGe{|@dI*GtQT%bZGj{+9VA~&PX2Mi2hL0yZ zFo4kgg(~+p6J}_e?kX~eDViCYml|$bjhmG#pY96x?r!~1Ptv#;Nk&(3uvrc;g5Fe> zk~rZJU$JLTP7re3XJ^dM*^AL4(g5@t;Ad~)*qw5F7{)I3+Yyfsk<&~JdLZ<_>WmN; z7v@!|OlA1YAX0t+JwYximZ0WytRlXMPrzp6GTj zBlMgC(eOYq*=D`{xHFGB2&u*n{MghVDhTT5OyDe>gKeOs3d30cp9C%Sk{2;tqaNDo zcK&}GF1Utb}G8y42;yd-hO34S9rRSxeMpBmwO+M9ne3`i;yj zs#@$!RT-G`>^WX+Syv|0>}9cy3heyLIs3qTXyUj(vLIqq0T6jKPmnnDzu;1|e-t2l zxb~Uv;!w{6g(>ndKY+(VcL%o8{dLm%_hO^?vf{~3(d@3ZNCc1-r14o`TYz1nHC~%1?$-E>+ za=_KEb&TouM3C7kJM$CrZgxCx%ZxUed5~eqof9#F4HqL|HGxNhQ?kUby=0-2_zW@$ z{&K0my@h2lnkZfKiIjY#6I{{e#SRz^d}Z2SfajM5@Z+@6y7R@Jvz?|3PCv{NQ0Cfu z2r&RVpu0C=enq6XwrGR-YQ-9r0^Dh;=>&0xVT+muUC=3K`407c?#~X}Ate=UdMn1w zr>jSk{K8L{bPkUKtI97)V5Ysev)?H`VAm5Y5=6aQBf4hqm93Db}AO;(3^U5Yj zeZy-!SXKeBcD1m&cwNqL-e&wV|H)Fk^B;f8+7#Ifb~XYIg_wy055AG#ruD=QTJ(hS zq>Qvv$bXNAJKNcCFSkrsvHKKnPn4~%>X#4>sTq-{5+SxRqR!zpqpr5G9+k)IclGzM z%zJhEtVKpAv3`vxS|yT$kA{yVwm_M+0gw2~F^@Isx9)klJlR1>qc@NC;qHnr&{)Pw z34txz`GNP=VBwiK#T+ht_Y=c8#dNqL5!_Uq;Gs)F*aw}!qtkjLPho+=4McnWo|c36 z?%HN$R+Ezeoo+I|N;hD_MI$v}!V^RJpl4JpjDJh;p;BC#1bz9?H!2&>{@u95UAl zOy$|!jqB&52GfNbxT6rfx9!KdBSUHpr^U#E?WI@mRX+a3ubiw^;X`|oes^#8X#_1^ z>Z&b78Id8ps@hJN|Gg{PPx_Zx=yp3S_T6N?llhFsF*l{c8K$t#Eys}pE<3=kI6wlt z`WLv^K+(zyNqHCH?-8wW1LeldcU4vr4K?;WIPSH=TFNe5zl8pgH+8&{OzcOJG|*pM z^pl-4Z=<%J8@g!vI%e$M;9t7YBgzz?;?H zr-Bmaz~D<}x#AZxo|lj4b4~N+FihMg({d&YP-6pSktNSFDXo4;ZzU?|B`^M*c)I8G0&5)dBLk$& zbnwQ%an)akxU`D=EOGsV#~?(3eUdZ<4lRs5prD!&HP$ipc56n3M5vY91Vev5?KAjT zp|Gsq#k{*gr@dp?G&WbN!-5N8J+0v5tGlWEI*+E(_@NPh8W1Z9Z18(R5?d}AbZ;{% zIIqV8Q%8d+|KnbI=ZTzQ%JAL|6&~McD4>KLE#6Czx&T$O4s>m?znbFelzL{!W?BLq zH(>t2n(Y1oK|zfyTM2BrM$tE{wlf{*xDyV5Jg@WVZc;T(fkKb3-!SW+wx>dUo^|Sr zY=<$Jw+=AZr#D`jf{s(7T*ZHT_+1VhvsvfR&{^s0yl@Rj+O>isUx=kPn5v{h=!4l{ zmqO>~bT>t00wu6KlpNC5U*EAc2beKHofT=@otEZ{r73{Gr?cF$^pAqHQ?@MjT>&=KTtCw z=#BLoOje-?gC0QzTyr}Id-%0&T10p;^Z*|2(hpusg1n7I`&}9^n7;~;Sw2-psalb% z7_jyz5Xy;6YceU}d*RxmCp-Dim>mbAwqLTe(9`Bo{IQMw>{~dQRL%i$r^qYr?ct7_O7g^l(859ZP`U{3uAsxDu85>Bci8I5p*kSAeK` zK2yfIRl&p>BKX8lW*CbLt9fPHxeQUjq)52al6nL6N82rEKikY9ahqoX%d;J>Rxgzq zhhx(Cu_gNcuD99ip9UwmIv@NUupng__;?(f&6Af47$MyV4X$wM8sj0kZPTYXj>gid zI2v6?$U0Gt&VoOCf&r_+8}r&H=JhJL%10y4hRB1qn9RM8NRDT?u;(9y$pcF(f>~uM z4ryQ&n>ZSCUvIkz$>)Rd7wHmLzL5<9%+7EEDxM5s#37I#P75yFG^CffV}EFeKg_Ih zsGS-qfg@X)erz9BZLUsfUnRd7F|Yjg?gr-0g}lTSJUBTEZQ`fBr&$S$sQIn;jIH;W z(i9Qkw>Adz==P99AnY9S(+9j`CK{~v03XU2URVi=4Y0W9C~| z&cjB~5QHr&a3c<58PB&su^Qb`+?3D;CkdPleI(-&kjr1rqMoy_%8unr#Eqhm0_+sp zf75I8La!r^xr8_g@=iyd#Kn($gU%xxyLLch%u@Pg&l`Kf`gR!#Qy zl^)y?Y`m0}BpOOM1_QSfgm|k*+gJcUwR8NAF%8P?EwESTVu3fjrhQC}C%&HkMjaF#pp4VchMV_gvy2Mk98vO5p8O3z*zB&3t_EdX zZU6^Om|wBkUc`A1kmTl8LE^>_%(`MQOE2)@P3^wb+k-~^H!G;}QYOA3q9=(AvWrpd z&gxxxVa@@CV5kQTb)|?=>~+8A@9oZ6RA(t;F_rp!YQoXYxeR9S(v1vZ4S(u9F07n|c}pXj}2@-Gs>MasNg=%EhCxdzy@`l-ia{1ar+jG7Gy1&3P$ZkZ#%U5V_w~31PGITSD~6_ z)(Wi!R!Xq0zj+mUMG?6N-5-!WRw0L_(#7STxuf%MAYWsU`y+<^$bhu&;Aky;Du$$@`fsQoPR`#!wRyLQBNY9BhE;tRdFkfx-0DzhTLf zdWpC*B1fN8!5)%qi8G;OluXK{Rg!h0Ru;ADH9=I$&gj* zy}8ghkoOvL>Y*@$bzkOa24-N^$>oP%5uD$cuWeyd&rba^egT{j_0jPX%QEs}4*Jtzq>q#;Ucxn`) zY+nc1qh<=$<&<+%&Hp_VeC{)>!Y4ILQ-5z8yT1uS`#hhUky$#R{|W&*&k}|icpZZ7 z5@OrEyaL=^$be5-9K~P(E-vi)5g8y{?pCp->y>Ix*q0}9gB@Ue$i;UIxGmuJU$G0~ z3f8=IhYB4i8}oRkWw*9gqMsHiR_AG=)d>%a<1La0MPs8OypJtAV-KH0+rZ9#>X1S6 zbe3JGkFzH*Igf&*O{F#s|ExY^Tms!;usy)5$xuzW0rx#{sutsu(lkI+VnLKsaA+uU z=dIUjaUye-RTx{*qo)xBs$!y;UH{8;XwMp&Hf46VcxlOF2;Z3|{lxYNu5wBo^}9u4 z)G>v<7xc!2mkkRIvn=oD4&QOxYqjjRmxQ}-HQET=bDMNacC}(6#Ez?^E&6l`1|Z+5 zOW5Hf`!ZkvDo;NSH7le;QQ|r{X@dA1d}{TCo(2qob&rV7(?QwF>(AC@)>GJ&-j0?a znyruonK6g0E1h&x>XdN8mLNZHQE zt_#;=%g(@LPZgAzAF%k92nvESpN!nB`rjaUasVBx|6OBGY?+cqL=AC9#lT$A>OY1! zvl5et3h@pMvH)B|eKQXdkLub{JF9USRt;K=3lG6gctAf#9S4jLCqn9^qN0IMMP2TY z$R>*qBM`81Ed&^gk!2f!H+Cxs_HAKoG3*sFIz@N#6({M5VwF#kQ_cIh}YpLWdt;Ru+a5*CSESaf+XREvQF|7`t+mm1ZB!L^7U-$jclIU@qubC zEZAHP-J3XKFtUK`9DPQ9r}UlaZgEnTjBP+Xx)XuXa8r=N3dk=+r=2h~WX?~9-~#E^ z2KuV9X(pZQBP_441NYcRBwN5 zmPbx$lhlmkm)@wWH+Jo;Ul2D%$WmC8aP!{&qE;fJBiEJK%+c4qTgAgGJG8O$)Rt^V~ax)n+o`y~okwA@=rr7cRq z7EsQy_MF(Vt}u^^?OP&sQ46t+>JyG}qS_6}Il@&vN!e0`A>?vketeq<+$i+lW} zExZw=`^ibGg-j}@QdtXS4)ZM{wS2!kNkX04DA>=Z>Gin*>+dS#Q2k&;a29|9+N-uk zlzXW_xf4kbmsDABI8+0*pPXM|vf#z&T1f^DBX$j- z1%rO=?YU+aBO*KMfmuI6gvyr`Sb{Xp0KqyCkCM1?0{T2*Esh|ol8Pm;h%d)`5`C)_ z#?jf}p+k*wJ)La-XjWEECXrV@WL`ozm*E>mZeY48+9%IxhWoVZ^2_&m23&fvsOna& zF*N;;S*R%y@G2@pA=VaB01~-lshS1`)SdS>E6d_!1AM?0NPwgw6B8>LOjzEgdn(j| zKQ}`vJZF2*UYTxyNPoq>7qZoFD{dl^Pi=8xbW9ikYf$8j8t>O(DAwFvOb=iz6+qo-SA@6P z>6`ITtu&Fb+Q7K&wNhQIhMcQtiA)h1}iF(V;TDK4oYgkSt6U_TqVvEtD+?K+oq4=kv@nfHhB zItEBAC9kE>CR)G^1lMR(AKbKuC}Dy?$S-e9v+4Mc=@xJ#sDcy3*6CfpZE0iKW24SC zY{O@SrTz^s5=e^@9u=6ZNqCLF^5GPpa{(irWuw?+fi=V#Sh6gURuG)FT$UjGqz&$8 zE{fjeJApgEO@guVuTHlXKkdtaIl$2ZN|dd~pvVfiDQB_Vu~;cwgKOUT0*K~c8;9Fq zTc|dVywf%)V@&}no{$e9u}*pOC4&F9zo}=j%)s1(aVEp<4Y}jBn~XJ%bKDV}EM!Rr z!2PXPr0CD9GI@8EVq~u=VOKh!?>RS=_riZF?gu;GwK#$M+Y^zHPLa^=QZfZgF!C7T zsXRQxq>^kNr?;vykw%Z_1Sq9lp26t1XGcEsSBexA#S_FKsL5Y5)UJlU8v+jAQ3sRu z+(vQbEI~}=fG`m}{X`eH&qpD?^nj*eqkQ9YE3_xKgQ#Z8yq3Znd!6*pVv8=d1?&l# zD|w@@Ep?`IO8rHyd8eyTB%OgTSP?xDSI@PB3vq~%zZ?o(VY@fv!bqjtb+ZMGL}3Ke zvo!C4%twy*z)jWmZ6ge&@8CIp7fu3WKD#u?kcVIkwXq3s-5JWj3^CK8PQB`|zlZ=6 zhUr<54l|Lb-KYQT2h38+%`Ot+6=bnZL56buw!K<}PXBfJqrnM0s+;bBlk$G6-!;E)^ekVd z^Xg89-?);Fp8CJG;`S7Ci2%=n^v=4 zLVlZkgG5o|8n*Z~@UYTN-U2)cdE6(u%E3he%7~WFtvBgBS=cxP#VRy-2U$K0inOU$ zOc!r(Ag7Yys3~pbP*hi(3?RSeMXVAqZrXx-{#Bi|(-9uYthYhio&F5`--0*G_|lLAUQRfqS&s=jbX+)hWIVbOH|Xjs!Fi~OT`A>X|*hieQZ(EiEGg+20I@8BN=csk-k=w4awsijad zl>0?Iha$)_C@>BGitOsAjdzm{!r#}lzTbf@3vywORJH=WZ41S;jf}4TZomGm;va*E z7tV*uUO``GxMc_shO1B29rRdL+uL9j3+N^0XHiT$kvzVujgB~#+*$-)sZRg^;D_K) z0*0w*qDv9y?lxl9A>$O1FrQ#B^$Z{i=PByCl@Vmo=xH~GT(f?LMw9CgrX zo9bMymTtLvgxQAyz!Sp^;s6*$-Sq7`qXvKp!RN9X-fa|=<2wz0?xEaMn%ZWD=ogMy zXHb6ORMo-AYbA6YC9*~v)Bc&3UgkH66tcbOT(h4y4QBswY8r~Hhs!J?& zsDa{Rf2X^gViwm%b!J)U9`5`T8rIxN>FMI)sqtItWQW1HUsFTdREk3@jQ&w{Tx#_n zEi$bHoY13`&+fi z^Q2MnE8raiW`&o3>gS<3_tMcT7W-K_RUIK^zUC}Zzt&-+gV`R%SyJzZn8?HCQicsc zy}C_&8)-PS9B6PHw7{Cp;H?L4!dpORT$!torY?3-481_LwjF3E*x&0S4W*Inx`&g z4Axd+Hfa&0IIon>A{e2Z;C%S39C1uQ^2o8|AB51u~;B^0Ny_4;3G}x0q!b} zvRZ>h=Lhnnv@ata)%(gvp#16855nK`EU_gjmHve?a~mPP)rn`)=5H?=Qj{_)sFWN1 zjbQi{X4(3SR{|R(ycYyJq^|zllo4|<&DX$#XAfF@dM=NCWl%2mXf7U_r(@oQ;>kVx zWe&`OESw!D?yX{#p0FHE!yeAhcI68Z}T6*^#) zab|IgCSUS|oumtjqvXxv>kw?=w+YtVnkD!inZt#mdIpj~$@ABFd1I_!8lgOc>`&aF z4u}1NdHL?3-45cyKb`-LGc~Kx3g9!&hk;1}*}N<$#b_s$^B#arkI_Z(-v=q>DFxY| zNbbagg_eRTi`G5oEi}<_ByYRdT}|@N-BvF(MULdZlOFGC53J~O5&IXx&iM%uDa-<) z6iWQD0V7^Q8qzU$7;(6IyHt>94Mh9>!#WQKl zj7<05#w)_%g8gviOZ#iy=9x|Pj{&?VDD%V~>X3KtHEA^qoAc(kg2fpe{tbnJK7FyU zV*O>E$Cu^(&w!mUOaWpLKl=wbb*{6E4D>-pptN8e>sMQyN#$SVGNxAir;mb@XvV7r zS!hk}X$8rHrS`?oAhL;L7p>Gwif-~aQ5*{H?LU${tWNvmKeZ~AJTDNKbY6YO1NHWL z(WDbXwqF@Lf4@cPuG)gKy8t#Oxsp+OKXA&J4cc=GyL1en*fl&0zOxqkUYh&d*!#>| z8w;{50bG&okB1P9&%?HvGMQMlknA(k7as{-lms-acV2MBbsRD+|0TG7Hpj{+0B7JH zdEt(CmwR8KmW}Y;D9_j)XnJiOPd%aaN2{#csujW2F$6f+5z|dYUVy!BDO>#9a1r60 zYPvytT&qKG@83P+_k%v;#(~TM& zb2r4OR2F1w#2;eZOe|rV2lB_n`w|l^lQp>sUsQ9Q8sBEx)I~DQQ>nsWqaj<=6eIGsWG0$m z{{0LBAFUm}Q;X5>4fk z=3`95wiC1cy`YJ1Vd8gdEWi9VXvor5J`%=cAXFtSicnX&}JEate_HOS;%2FuemO^OA1h~%{b)b?^=7K ziovEOILN!b=CMUgNXh|G!H=J_p@d!6DH+svgHE@cZYNoIMw2kkcN!gaj@#DwGBs|^8go*UyFA2_nCy(I&11;>z zI5-AC{R54>`#ZAM>t08XVU03}$Sf0^bm<4-9~xCT6g$>$rRF*mNEuo(ufO-?E%{m9 zocZUSc?DLB!+6_asVn3Eozj}5VAh;AVM>de6A{fo`@e*_;`G;`uH8|4t`tNOsQToEovQL7$q580dv#_a%jy_rm&Bq$@|?o_h}HR3G4* zxsg`HGLcXVuyPnSR(IPA&G`?}Q62AF+SjUz>N7zr*tk)_e?Kpt)e!p0o8%pxXOx>{ zc|e$qweu_mz|#uXPzGKkfCeGB>LlvR_miW>QV)qPDgW5HRse*z@`nqzYegKf=Y@q=}HUhnDjYk1ZZkfX7&c8j)*^Yc%UM;*wl zPUN5p@{_E~$95@u_eg35E9##5xRPxz3`mFzQIS=wnQXSpYlaG|1dA#s`~4*1-o(1F zO4w#eq(BywPqP^cEsMSPJ3LA-Sjgnk6uC8&lCGOYv6$9!{y!Mqc4I8@c5MDt#ZphB zswuN4Hu2mW%MDTqry|70gw~J44!Q)c(blF%hIzKMYUsB(Gj8Zl?eXpMNVng$I%`N3py1N;2T8`hgfw9!7yQ8u!S^3DaB*s<0 zVa(j=L`UGOa;yZh#D}e$@hc`}$hrRt&x*F!u;w3(ES(ky!7py`qPTvOYVnmy7Ejx? zWsuBT15Ees?@R|5Nxle%KAI#y!RiK58wATZ>ni{m1) z7PZl1m)*f5=BX_P!@f&t!HR7x%9*3FQ-%;C4XbGognL^v(iGSDUS3o$n!IO1tK@NZa#&>YjTo$a=ov9mYT?0jNj*Rs#exCAgmd! z6USt&e)?7XnJLY*)Um}ggR67~<&4i~AP^2O3Q9!L(M4Z3m3{l783aDaii*0 zG*}7Mt)t|tA-N4WRDGgn_*Si2BwG(+-w_uOc{ZQH^LFSFXAy)`6GU<)k}bgoDBI$+ zxt6IsE#zW12Ku4asFiTW+eIU~e_ebt(h8hc$aVd_ve3Nl|C3c_zI$J4+UrW$D|Nv- z92=hrckDUPm@nQf8FjcB)PJtPF~UI0|N0UB-H&zf6O)OL-Gk0q#WSpT;ZtsHPdWA- zVhWdwFh-63z)}ZbS5ri^W%T#_+wOon0YM6GfGotK22>l9o_JL!$M@CFA+_PSD|%Y7pRcvA#F^rTavWsrnWcPy4orTQ;{#lmU^OpbIHGw>+$Sc{!~c-*GRe zN$xIa6ALIG>{El&U=UIu{@|8PvRRfPx=nf=XDWTAM>ot)B^&5b2yJS?+w&L6+(HKa zuVG47?!iP8AuEk+^=Xi{b`+WJQs{_Or-G<%&urWZWZ1k0E^QL>B5jK1m&lL~)pz{j z0^+arT=m<1iy$}6{)90nouK@tkyQxKi~5JUDKH*ue*V^r`M^SoQ_xoFqc83BHgKd4 zc*Ri(&={!1U=#qHd7$o%UjW)$ye0LTExkrTQ(P|6dg=h$F z6Q%+eb)S7jrREi$EUBDsxb8`SF3tU8C{r1V4YikysK)RvgtoE^;y^xVZ*3CRMwl{x zAzNI8L!aFFREFZ9Xi@&l?KFJz216%SBp%&mq-d;SDUBsHB3j3A9T27Qo@xe@o zM%FQQPw6qwHCIY5^L6qhgk6f2)O3nMZvf;3Ik0PdabXteBgPeSP|+PpHG$QzN#WMB zgFU{rgBUeRHaCSLemGTJPrM2$@@vZ9fcU&>=qP=LQ>uct4Cjcnwg^C!1RZ-c; zepA9Rlipn-xomG$;g3Z>G;@Ff;FFVrb7qy2N9z=A3svk%J+E|hKb9BC2Jh_nTt&~- z2}uUevM0a)Y(0lXjQu{L@i0h$GgYZrR4e&`2irfPE>M9mNzrD>xSSz?14+&Xosv+R zJOb?yF5AUx_pY>Fb=Ud+?V|ZmdpwN=y+|7b$ zC1Z;gEu>u%MH$~NqtE#`BZ>NZtwAFM;d!P8s9d3+-MuA6slH+4!4g7ljykrT^wkr9 zC!jTK>4m{6+?kU#a>e=+YIy=DqYC*XQr%2M4Hm`~SBd2%+;ck=cI>`mjKzgAv#f|^ z=XpH`e$ox@$6e{0!`*Xo=#G&I7qi$v){pa0hd7fYH$Lqw?Z=hJ9NdN7yO}sHfv6cc>-|i?vq_4D_(C80Nv@hkPi1)=2I+zJbF=VCUE`t$>xb~?J+|0-k%X*tZDG=(zqXAt*I>N1 zAdZx%`U3(!|My;6Q`?GPxIY^}XNJB(V>}JN!ov5lKkg&~S;YpX*C42mz0aKm-*%*6tV(FnYH@GohLG7w|vKY`EIqZO0!gRoUO)9Ygud&+V zJG|BTVd~Uh3g+%6(14&@i>r0ltl33$?cspaPlr8p13i=l#2_ct$ZFEIy{3vpIVb~m zh-`g)QBJiO2r@IMG-S74w!lfHRR)U_h{1^YU4Tr@k^ZZ6I5+(s85%vDMEJA9op=Tu z?6DUWO@d->x85`a>!@vg7j@%<9!>`7V$(mf>tZ)RWoZSo`m8}9GlG1b_yCyzN{SoK z-~=NNVX*P@yGkTiZGU}+2jROA7Pa1fcr+}C0{V2jKwjBQhjuKDB7OvhwJEVmkat~) z&)6uPIWJ$@QpZn9PW+2qQci{Ja_s{7N|mfIlx=djF+JWM`*I{G8%}0Jdb(V0Mr;Cx zy0oHeeUqmoIb%8&?y`okFx7K~kF~>pjo!ekBNgi%$`9-~6>@t( zoldn3s`?OD=dufWBnnikLnMilwe`Q`Yfd1c{rnI12itEmd>@*+%XLEbY4#%^5qsnz zEPmF$Usx zkJ%6#fggR57pZ4e%aJ*8%3QI%|C5%vocR~A1FB%EALaZXG?1Y@S+!JC7YHzgb&REmeVIQ^d`*G$W~VPp z8!GPQ&*AP7OTf@rk{4E{*8 z&=nIv7!+qZ#8`S*`Oi&OGFKZ|ul$vX5PYlkR^qZF_9#t&!3woLBe^c877f4hDHdQX?Ln^n*d2J zv&gv_@gXAA=c$E|c8X_J3jP_k%-@JBkp&QWNMPEaQ7pI|K9-A(xq5I$oxd| z@28o*#Vb_Y&%Mk5+&sHBtRso)heFqg)A=)b^V~zs=a0*{k-Fs2ix0kYZ7w6QGcv%a zDrXCK5P1+sSeV!u*?_%IKlS;WHg?$@TvFZ5>^P)T=>vgLUFP@-_M7J_v1AyzH_k@m zhIf7nX4pQGat%>VX56b4#qB|4z|wbh{)M*75QdbF9is+c8SaT>aY4O88D3#zLL-%0^#ZOmu-HM{Cb>af zA)}K!K(WvV*!!>btd+sOgiv^G^~~c+_^3E&_4$6~;!Q2R6Cf+BXlJ%St=a;2+vwG{ zwa$Ky)EAG>fH=_MtZJ?R#W1$@{GEE0`~-&Eq(9;OEYxnmCDBwG6Zo7ZK#QplU6sG% z7PeS=e^0~5yOl15mW~c|Wtt0N^~5!@Njvqp;+v8~OzgB^cuNTMZl7&9L?`1L7yR_< zKV7Qass^x-2Rf2S55)_3$i62??G)CQ6AkcpLloyD_lJQfRa{FvH0HcXqZKa-h>u#< zp4&*4;^i(6KM6*xBlrNS!ax_VFVJ0c=xXGK#`3172~Fpa=pK;Y-u2UdWaDjWq0cq$ zw3;WKP&xZ|C)%^2mt*Y~*_E-YUpek_=dy3L^AO_U2HgIz@;b?HjK$%6_pR|&T#Izr z^XR(UzH~-wi(S*L1OVA+<$!hC+Q(P}6W1IX& z$!8DwiqW6cE`4+9pOai%$PlrYvz9J>HjY(lg(2k+;XofU0l@lWs}wZ$!;|Ln4J>xg zpeQ{a)QfCsZY@nNu-gg7Z6!wEC$*14LO(D#0Gg*L)Yp?z=)SQA^CfEYqu;3^@M}f| z?94F{1-)Htr1xO(E?YIiny^B;$+%*c-8|exgo%-|8Nc3q$Y0na+;*3pk8I-c0MOy!Qsoad076`Se5Hgx~ zw0pe#V~~kDi!TY>In&G~g2LCetnicvcOl!=yAWCVWONRt!=bZ9b1rQvh(4 zeOtQGo%BhL^d1ZD!eyR`P*n3;3uq{GE(BTC`+NGOv>>!UQ=X-&s-vt+`nw(c zW&Shko1IA5)v|&iMKt;|(T;t!iuqJ5w^dDMaMBWuX%TW11z{@$Vv;(^%ynp@DGL;d zc<5_kxR)n5yR8eWOYBp#uyL7i;Iadw zdz=2?2e(DIu?qC9QIY=q^pL?b^M&ZnJkjdjsrCs(pz2z`i`B7Zd z<<0A00Af5}g#;8I8)f2bx8HGUoPk;$)!Y+pweghmpJihytdSFz=v824>hToEVZqpt z>U+?31H`RE1{#Fuvovo3HG;V#C33WG!tm#=e02SeS~vGu*!Hw{luAfvo_?V2HTtLS zG=%XHVQ-UME72x)`3rkL&<-A)Z|EtH#guHaTT$ml|1lG;@4H`8rQv1;w z+D*uQxK~mWUnlTNgXumDZFySa@4x)X4?~DO7#^@4dQt!@A|GDI@3>4mLvn-t7s-$~ zd)_p~vhWNwB$&W~GRB-#oakz(MbxI1jH+EKVb<$uqy~El2&T44M@X-}RU=}1TrpOS zb_Qu9xfPkC$^a-eKvwBuPuS#+OpwNiGw#-ryj$vvXs<|(9nhx_7un1jeE+**ttQ`L zqW~Pq1(fO+^0Lo9v^K=h zul>WlP(~zgazcw$#xy#+TApB2UyESmyX6|fgG^OL$5z!$=pccpKHXI6_S zHxZy^qJo2L5pcN@d;nQBL!qCo@SYO%j3=s~Yf|qGDdxb6SN=x+Er?_{nXIpezw7de zAd4wdpWkf)A7Lquc6~(uxOD29=@_Ba6fdPZXiaW!HCu6&Mpi-+LN7A5GRjnr7u=UD z_SMxBxyiPfI=*1z*%6|9g-fO_s+k7*UV_^RGcq1e+ft8WjqET)0TRnoWnZ=m9DisZ z2&+W9692`<--(8nZ~FBv0YhFq#mZXwNCin|4$Un+mHT`L1GVUF3|-E=FzE;7S3h0D zWv5J@P%t4LhM~2ghbLHpjQNq}a-ryPqD~wkf#^6Cllq5XtYlKolq$8LJK#40@}Xsf zpSXxgM}QEL41Jzu7KfsMIaJ}0OZcb!t1Z06qZ#+598-cpS2^iyK5P(o9;h~!`0j-|oabolHMF{62b?pS>98yv{ z3sjhX7D~YI|0O1BrkEatG!DiPcnW2wHTLiN5gat0<8ejU@f(e~Wrh>}^jRRT-~G&Z zoRB#}yQD;%t85((^r@8mznng|JWPTsj64FeUP=*-wlD&jvD(vd_`>vE4hlFH_4;u5EczI*-i#@a0SPhF*hGqbb zM;K1cN~}TLm`lD}ct!W@0wruTY(_D5Y7aExJQLZ|iuz!)r1ky7E{cPFXON)#jE;aB z^mkaDZdG`)rBK07!gRxF>-{3XP7fRFwsX&$%;Ml~%9YQpo1URH_$V&(lx?3yP*WAR z$<7;U{=k2{3Y=_HN3k&>)bQC9~M0LJlWuPX@wRk5^J% z!|)8CyXTFO4hcOY#l9iO6W#lyi-A<&S!);B^P(R-X7tlSkUC_bgev*>1W*7w{6o)9 zC2P3;ahYX-p9y>@u6d^4ou7<2{Iqyr3uTh5SrU4nC~IlIooy`#W(F*ZXjy%~HJc1X zSVoND4rh5oy_&t(ar_l1%koL2?H)7g@?l2FB^+BOAL1&R(tZS4(jsO_LXouiT-}}2 zOO~5tsQAJ ztL&zSG3G+eOjY%6h@P(19&F0Mmc<_9L+rRwI5CO01$4o%VdbbdgSDJq-TA~ zuZsqmXF_?QzY5QW^f5D4_#5+}eew6prN=0Yi8H!p5y9M# zB$US4me)}JC&2P0SkMGBjx(BqQkjeEA9TX=j-@&Wn8@NAI64-rO)5d@h|5JB6CJsY zGJ+T@jS8k0nR}^T{V@J3^KT{KIG5ioI!gOmPZWNE%(+iPJ? z0Xy6m;RQ9q`VbWyTV=!a^Zmua#*TQsh0NhM{lDb@E`edFaPQdFzR9X1n@46W4I*%}iL*8sK-zrMf>_Z0+a8j%-m+Zp4$tr28rBeXWv#<%{~N9ax4 z^o+hKhP&j&u}nKPj7sE0XU~@*@a_baUieFXHDMCowLaskwwy#8{}y0vtl40II#IG$ z=SUY9flB(f@!P1~0pDrQE>$<=G@MG#CsJ=k8ob!7sZS2jqsB?~yMst`gq|MDx@nJ+!2p)vk)T3;1MQIvJh1~jOSW2_3Q1W?@oi>leDCI7aDHjw$KM6eoZ+Ah>4|) zq^c-lIJZu5Hp6uK*7tyflJWBfEstIXtF?zX?g_G6Jt;nV2mfp3?)LzBzjpDwmTerJ z1upW*H?7@2dV#fHAH`bknHsL`Asu<0w11bIHw%Y!ZW#vj{<*%)-TnTD6p3dh)QFOI zkNNRMO8e%wKK!C7+Qq+gkMHNypl)z$tkQK~5P3&Rr3RqN20`DcQpLy!j0=g}yL^^D zK86y51FZJpX_8JL8;jBIc{sDO8Tl=LLw{r(3tCH@vIz}WU(MIIk{-!?$PJezb$c4= z5ltD}NsSG6W2G;(ifleWnmL<(mdl&xe_%tViQq%-%^ABc-mlb5&ihKZHI%R*P5(hL z6FqsU^BI|}>8Nr@)5tBgPuOyf+49NpD;Wh{-9Cavy9}+c#;G3uutmG3XlD4yMi5eX zecv?_3+R%G$sLs5DKh63kGh9h+^s+}&p90!We_;)m-Hq{3MRL2l29r;h5I7sKrD5W z-?wfPTwJT>CmsX)MdBPd{EPSLrpvoB=BDQ`X_Buv!_Zml?AGZX%?&dl_C$>F&1#|Q z4Z%b0#r$Au07C*iDSs1L_T z{dF4*^>3BQ?`nOxB;Z#|GfX=W`~k6qwC>e+kkYt-=u5w3g6PWU-%!H@=2iDz5)bld z8z1VXhd1S(9I&9z)dM+47^Zw+Bj`h)K@b0%#Z!yJmc$pAWh0Z5 z2-I)Rzhn#ohdYuEGIH@aZP?hRRk}(i$E=yE4#T9GYHloCVVKgPy?SKPG7ub8mekBb ziuuTAH5)EzBOFC9PKPt>$*z8bibbT`Zo^69lK$ol|Z;gGh5wJt0(Ukt@rD{sYWL%x{T4p z0l2o;EE?H8-6%L}@Wv-4W@e#1QPyX4e*12z^kmwl0I zi2N4T)6_d;B%**1G<=;as2(1<8Q_1EC@@s6%%PNlNES4k!aUX4E~EVBavw&*foZd4 zl(MIiai1&n)qg|Z4~f}CojEO3e}dTJ6ZddP+=`_(&ExA8=b*Tjpi;5KGPM*iktY9O z<4SMKtAsbnFG5DiC##t+yamoVs6?m;MUZi)fvk~Hr!+V@ja(`he60}Ax`5qBIFDOs zCR&75f8KBG$_4-(Kp1W0)c(;sJB$G{KX3==kKGq;!t2_rft)V48DBFe+pU)GJ&M`Q zm@It>>J2QO>ok9lLV)wTPMVz6#}KEB9$Kk-*48~p>Cp|E&OH8`+u$NX7t*W_yLx)U z`Gy+dbvs9mWE%gdS$tO`0lFFWkW1@pA_BW2lrmVtC^(6w|KrX%-GF25*4q06LEs#? z71jc897&=AvyLKJlMd85@9o`CVA%t_U)*vN+Z9g%(-WlQH`DK_n-}p*HTs*QbX>vS za#e9;Gk{eIbV*0?E(7(Cxd1$~3T!&|uL#jXdeUF1xty4buyg5oYg4ENU~nvh+j`ag z#B~unG|z$6g)m4o=(vSgh=D=BCr#ai^A+L0038(5KCm-!&|LP3{PC+MaYq)mhv|_| zB+M+mIBC!eRYe$Q&LQ2nla1KUkQOiq!xhqkO?yZh4XoBgVOY8Cz>JxSw_i~mjhKLA$o zQSB#odva`?8J*R7cgLI1Q~hnh+Iv#PUmNLm7KXw?1y9#&Yxsd5V`7aN$)K<02*uk1L%aMqDSFLy&4lYmDWG&kS;6QRkP|fA$43VDBH!-~ddIC_F z%H66|d`5kEqF1bMZnp-bc?5e{`udIKEvUpr?BGXJluTJRbU@Vd9f6Aoud`kUg^(mp z2NkY7G7W51A+hSsXSwGMWJivgpJAe^Hbn@TaIi(MB@VGrx0Oe0`{k%@Unv2Wx$8F~@VW`=_~*piA(-sF@9!9DubvThz2J=F4UV;% z$$)B%2$4|pk*1k&$TYW z@9h7v&p<&E&9Q-YAzztED+CwMeR!VKaYx>vZWbA_WMB^+U`gL)tH0}h#+dv3uH`QN*MO_oHuVW;=QOH|}Z{r1Lcr1j+&kq8BYY%-JS*DlD1 zUkj;1cz%4!zsn<6FCrJ?uK)e153AVwm+;z6<^A^>Ra&P{S{Js1m%UeW5KE9)yv$Pc z*ww620jfv(|AM5`?trTXx5-%DW%4Zix6!{f%Z4ubSwzSg`7rfPco*)drEBWIOT3QGK%gD?=5|yRf)l%N3UJQQn;vg&DDM@wg5&0@FXGLF`Fo4U0NC(_H{v> zS_OG33qgq_88?w%X^2W$f4|NikF|yB8K@X-V`RjB8~-5C>`(i`mixl+aFK~pjI@Gc z5XkO&N2nwvXL7(Hb|*vPrl-uA0?!kE+6-=$-K{gKfHv0kMgD`f0$j}tsu!2@?W_?9 zs1-jWV^J}FS;KV>8!p)>5+Y0ZghBMkCCSIKN8z79CTLi!y03ElG?9U4#k$2y#0(4i zyBmj_^VmnSy2)sghWJV zOXBXB_;(>)mYL3L9FMYH+z1KQUXxE_$#$X1NSv&@P)Z03J>=?_68H@z#9?AOTAZL- zd4=LM;B&gpq+wv{)20#DxN|ltQQYO70@R-Dm$qzL=#gvrx~2j%W{ac`y>l8ouQ9M2 zLU%IJji04c9mPjyZo(f+iMO7%_^G7JoGdh7ozi~db_#c=ni^up(i7q=ijQwrD@m6> zAsl~LEHzqI8TpLk$`ntLd{PAL85Tu?-*lO4I7Bb-W8thiepKb}h z-m9phpDo30nLZcuRpi0%FjQ$kF+(7{wlzyx= z?=&`p?N>8U<+D{y!b$IpZ(X##zqS;GsyBS`n4WWuTq)0vNVH9jO8t8u?ryd?!590{ zU6QYJRKhEHP60R8pn~Q9E6oGFz#jD-D8mqDV-?-!+y-fsKhN%(k5GDJ4MD2~KQt%p zJq162f?fwNwKyDc%)P3M(5SFF$J36}-qBjf;dWJE=5^bu?J95@sXkPtE^I8~)U1|K zBQ3~n?z1gLNcFZTmf?6kJi8E@S5QYCTQZVcbM$6)kM39Ljm!jWm_rHJIHne}FzkVuK}|W48};Z1h#9KAV6f0XZ^BGtN0{4Gx9G#{50#x@N0`h! zH^_O6ic<}@wD=)~j*6I@D7=exhuUO(y{_(@-~ZbA90O804a;4EbN}Jf1oRH1A8p>w zaUu=|KmED)ZoZT(Gv-n)eWMF}?TeDsc5{Gs=;Q69>Xqsx{k*hDk}nMD=54meepMS? zv(JyrZcX%xFX-U>iI4(>D3-^}iw+x_}vP)7Y&vS?7gdkU#)t-=G&p%sXCG_2O4(C zAXNv)>mxLIdy!rY(hf%z?b${2nv$(6@X3)DsFK0GC6B@SCj}%3IK;0f zepY?($YKf+h5F~SC;bS!c@brYXeXY(vCeTud2=nluF2m=d4ow4&?7GTLT&SZnjsJR zknRBZ>@oN8m0zLN*i-B+3ESA?8X`AwWYX9~dyQKBmUb%nwdt_)92HCkzlZqy84?%= zKGaCug{@vY31CLx&g5K6Mcr8t58PUc2}f|_JK#Y9ggls*Y{tNttW9TS=Wb$1rPQ`R z>Fpr6@+kShN#Oj^J)q38qKyf5pSDiL2q;GGu4)7FA4K)!J$6tni=>+DQi$rF(@1%l z*CG@B9<<&U|DwDen@HYmP*w70PKBU11#ceSEbSr~Dv zL`z~0$b!%SQ(~~(JrblMNfz#)M}rp$GlSwe!fRG`q-El~R+$7f+W(YB0e$#05dNMK zSF{X3@P+AlxFQMIPe*g4RSZG26xaiq1%6c*yDY?s+BC#TY}S8k+sj@)PEjq&!CHc? zyggKBKhwoBBUO)`n!<^dd?7mmItZv26*X5MfGhTbh(s-cOnGxJj% z4LXP$!K(e@Or)MXpmb77!w@j4($FO<*S^3PFNXOj-99rKm!3y|L>0$?0@uT(gRVz) zx`xQ0sJlruP>M%8qAg`oC5O85qi?ku8h*D$H_j%jG9{wu!21lcGna%Pe%tFY+a$Gk zVa(4yW)3lKH>5wQV(nj}I4%XtA5#W&M}(W$CCEYeb2v0;EZg7y=zRXAk2CL`@L?n% zj}B580%|d~_aQsaZ8iC%6D?$dUGNcJ)6~q-2`_u8;_!n-xLPk@A&FCS^0i5KfV)Ma zO}sefCp+0#*gz4L0Xckz?(bR=sHXxGdPm{`Z*c}?&e_Q* zo*{>9p5v&l}vKE`uz3(u=f_s zb&~xOl8Vic37(_xKI8dBys)E|9qaw20K{JcoA0xEAFbAwi5|Y-0bv3Vu?%%ZFrW&A z00KEFmNtgiF(=5VBJJ5epg68gz5|C@hHbs}hJun@=Qyn!hsI(*zlLd34B@b)+61^?^D&gXOQy6ceFIV}uz~0!uC1f|omHNLOqT1vX z1Gsordl)T}Y!T6T_wE1m*%wgE8x#9d7}s{8@mgf-hoNQhE}BS)Xeib8M@}{G^K?>> zm3L7or*U9$+Hjv(X^LAXRcl1Fb2s~i@O*5Gz+g|FGf z{KsoY!(6y+EF_KQpB)lY`IVfY%(YI1Z{Lx-g|w7qO~^R=GEshO$=sFXK_ss+E<<1> zx0kt8xhP2TTWNe2#=RMO@q%99 zUw^CpdzHxL(V2bKpZ?j!=r(p`rN;M3d$^Qqt+YR#=wB_G-^r+=6vOr2LReL22aH^D ztCy{U|3XcE3-lo8>th^*I$#6cE#QvW2C|8K4)rL6s5MgW8~<}98vpukiVjeK&&Hk% zBLxj+cHcS2ah@}CPi%aSD-lRQ|I6|pD7pXkIl9YO{_cD+OYUkpb~DGSDhr~mkcu<+@zEp)@cJP=ys88Nf zY`pC*^mAJao4V4cug=}V3bzop5PZ&_bQOnDx1YluOliBB7LYAvx=q=g_>M=>Vq11J zGZqocaNjkN(uc~~S5_M14i<-4`jgfN-FR*f>X2=NWOgiS~8v<$6v#qJ&^`MqhR=N8K}*hN|?pbCyyM6aV%UB!$UWHEZG8=|wY2~SLt@V+-}3NfBpCN}N2Pe#Z^33vEDO(~ zhNQtK6bo5U`W&TuS56w@`1SvGudjmY#xSQP2*+k_@AtCY5unPC#8ySfHT|*%YmIL< zd=hz{s&=ItL3#Unc_^7+ofb~R?vI+yn_pzfQUn9|<)-NFl+N43rjLb5Z3EX&(eL z9InWJ%^C;pZf~ZT$z1Ixt@sL-F+-gilx3)ZTSW*DZ(1_^q%iSJ36tS4!>L>ktSOLoW3JVI4{H*me$g?dPdP|X(e z?TYT+wn^&to-`u+E*Co`XVOA!!lqVcCfd4+U=zrReCI~Q=kU_4JJu&k=l8n8g%Hjb z4McFs=JB|L(c*@U^-kMQ+B!eI&%<-_1$Gl~()@#Dlytcr3FQy7k+f1yNpbO<$advx zLY)&Fon+K!fK{fw{Io%!&(#ywTa*B`h)PG&948+Y3SUUNt`<(QhNC(-US=ua4Oh3W zi+2|i{;-_~U<;M)>?F^=F485$fXrox-=|}bBIZT|rhA)9Vs-W%_ziZ#;h4_hhOPY5 z_kB0wy#e?@Zp(*474Wo_VWdNqt_Wk2it%AA^~JjyG1s4)+ofY}ooYUa!Qtg+p|BE1 zn+zo;-bQ0dufNtO{Y$i|4}JX6X=cCHYQYJyU7fgTiP&j#`s4a6mvznm$JJX##qm60 zqqw_Ua9P|fxVyVcSlr!%OK^g_yF+ky776Z7AZYL)f#jXv|DJR2d+rBdnKRqdT~l59 zbd~P3yt&Gjd5s0-wWRMF)ho)Zpdm&vAJA-05o{GPx=iWZF?t`O?yEB5m>BP2#VTg0 zku&>665-4x-KtEWThziOOnl@QliCz+7Ajf}y!og@;^4DYF{>vlY7 zP&0oJYy)zMBJMt%_Kc4E>|f)WOhwXhpd;8qLttjW>jxb71Jz-5uSR?yb^EGBK}#Eb z7g+CSm!C|vP{_SX_(8Pan zn0w?_6_~zgQpbUAjb&O|F)%sSs?Il8ZH!#!ih!5=?IJU6xQDZ(t;M%n z?GlcD1WJ%c#n5oNL5~}izKvyOD$G+-5GQQ{T>vM~TeTIA{R5fhy=pnGJ~X;ICdcxO z)ACD9&2>r*s{^f*)b8ygl}prZhRI5X9Y7W_({w6KoUh&aVzVQ^Br5!7Vbl@h6ZSh9 z5))SJ$RRl4n{ag%=<}n2iRuaH4~1z-;|PE47U~Uqj!QWTreo@)k(HaFAquKlvMfju z$CQYXuxIHh*o$gqjWckODI#YF4|79zTG{ZB;=}baF;VvY2uxB_x>9Ie_3+@x6_8SB z);1?3Y$;*3ye}DHZ?WOlQW7zgfMd`Ya~kSZcG|cxI}&*}sPMwVX3H4UN%u3ZTpzW`VwZ#9wH{O64+C*koHz(L>W*-PRKTgQ9XWBJ zh(Qb9x*i(n#)&SH34!!2=hS&`jrV1)PKb~T0eAsLA$!s%5>4M5E#fCiDjhZ9%iS`q8VPoR`YYoe@Y;4Ru>n^rpy^mp9#o7c=bO(b}+S+;nv8E2s9u8 zoM@9^&zpC`>GvOg{D~k%r-7MKMyKgz^FIoYB*%4ifSJ%{3t$6|JwHuHd1&2y{ZV#$ zYe@r((^!_?>JQ3In?mU5^kWtd72GPSPB2Py6?pc82$E5pA!4cy6@_1y|83@|C`2NM zabZf8aK{Cjq!Eo{n-23lNKvvx2ZN00+U{^+V`KYvS=tc8aH&+Dx;#tfA|Zy|z^`8p zGK^)7(*=u~AhgbESHVapIbTj;!l-_Cg;4CjElFrtu?MJ|8-R&xm@!j0z^f5I;L zbHF)f{WAh!0eTUa@#0yzJyY%+<=s?8%A{t<`trZU@q9b5?M4#N^IvEgVkGi(ZEx2k z3?0l3u}a>;(U;;FB(9AxJC!p|J(b0qENYD6f3ChlQ(Mm@`-KffrW+uyq@^Vc|i z=k5;>f6iO)Vbh?eLp3hI-qXWP&rs>Dup*d@dtg##FMFruli_ZbG^`erq9bC&P#If_ zod1=Mu0!4i{-~v{2&e*`28pE^8-=5$T%=&HoBhBwI**qzQffpLQ3HL~u;?3U;uw%N zY{f1VZl^ii&~CoC=3pvma->-S1#_qmy9P@r9X}aT;@+zTq+ z^n2zLHs4sw*!R=o^_`Z8!5y?`>8S>1)5!w(Z8IB-t?PaLo>G%VX7zO{q7UDHA4mu^ADk9#@9wwbmhME|;#xWfSpwtT6;u{^lmuINa({c!*HG$Qp znD^8#u=-@{1X2S{Co}P6EmN5|h7gbtZ81F@NH8^+sh0^bPrr^?$05F*l^Ah52P_=w zJX+7xeu{zp8PsD@TjxAE_<{g;He^;aEZ6O{g8VsqSpGT+EpMz{5fPGtnHui#huzav zv=8VF=AvdOcl6cr#)sbD&HTd~Y{|4=QLh*7x8IW8b7_RjW%v(!bdf*y#hm7crbh%L zdG{}2<%L0Jm2$$*$me3WYo49L#BKgu2p#2!9GS|chn7O8g{PYlSYf9l(o6%SE zOs_cz0apG{BG3fhc2PVay-9bY!0D*ZAk|XW_pQ+3j~l*IHYC&kQ+VK*W)q-}+Z!nh7SDn`3CI;XlnR z*L0)Mp#MGLSlPbr5HV~ZR@=EsQ)hd$=o%$0W_>G|6f98KbQrflBNYnzh@)X9&bb_<>Mvttj9 z`Qy&45phFg zikPmuCC~BAUu2Ss+MoZGQRbgCTjHHKNSC$-4Y`gIL4Vv6G366eE?_uv(pSI= z%Aff1k8ht5mxFWpLbO@7mVGcH!Ivk8UmM1!Y^;lOE1*aQ|(0T4{@CD^Mk?zaB zFD?#}p&^?AP!rkyfd6~?fWvW6lOfHMi=PkK!W|RaFLMR+gzx6(-yRD|cjt*#rMbaa z`sCrP7w0dcRQ*2rktFDa4f6;&t>U7zu_;J*oY+R*0lBa3bU`K!n-)GR-T|?tL$;%0 z1#OR?YxY1NjFi$pn9FZt=9Pai2jv0y)Zxze^Sir6ifK-o47!0EmLrKHVW668p-+a1 z9$}X{qhvm6dRThJqylo?30ltai1zP*%t^@y>-O@z0cS2>&?%YQi{RJdeTfl_GP*~Y z)=6bSFccyFCG=Gkg7EJcnK}W7Z zpeCc&H^8AHXG)i1+Z)Gph52d`lIL|dCv|L?S1-Oias$q3F3qa@zLbOCD z1!o-xJ&d{hEg-@W97;~lCpGBYUHwZu(v4eiAQ-?>V0?|1GwvT_n($rBA4KCAjG^(I z-c3QdYHwG-8Ya2DQam$>KEASjLy>!`v4`uR`gsaAnd>=hw(fu87%IY?l2U(u;9M&B`!g zY=i2tE;~tFw5dACPI0QOYrPONOZxha)u|#o@CC?$iIx^X;CSp@ ztKzDx?G9EouOBpzgADVYsp)*lcx)F!+<m8C{*@EjEO1g{FeIS$+sH?NEgU1$(eSbo5LARToVb&Z!rmn$eDgxH`kyhGIur@HlSiZ81b9_;bn>6) zlP*W1=QKMT$e51nJ#-e~bd6!ZDF6Dd&;iIW{x4Px&|1NO5D-Tb32immO~4ImBzb_z zyiex)-$n5!JK~-kgQg;IV={}f!(R3H(ayRC6Z0?q{X2}?FBGr87^z8~d#PXFq01BF zdj+kE(9~srMbrt($Fig#&$uCM?Wt4XJ;{%qW0}-^Yzj3OL7JAj{B z%I2d!E^zgvp+r`9C4i6UUHeiC>Nz+YutS>~keN)YJ&F%&7ZaD!;8tV^jy z4`Qajn@|M)t#}-g3aDbC$9$%Ub$-HW!05Lln*wV9ZSJ9#p806c4>NQXS)0%htX_*p z?@n~41LIiQ2)M9T2R0EFMospc_ ztPZ-gI8U?z<$;$sd`&sex1-Nayur{}P7^jHW3aQ%lSOwQO2G-aK1CjRRa0^w%@Zb} zu7rnP(r^GD7eb)9B_TiRN*yw>>P~nXKqt~4wcsv=e%Of;s~*RxzRO@?jgg37(MQ^X zSo`&ctFvq}1MUPPJpCu37t+nWZkOMe>&v#TGRBI)^fIM3YHM=`{d--60Qs1u3HvLr z#0(wNCDAet(@+|((PN5^uN-S_#zG;=bMtq6B|tbh#v%W?3c;35OkHOks570`E}JtWJ__Li|>W?1A*99k~Qmv6WzCs@AOL?-y+p@n-$RwZJny_J`x%t z>*VwK=E%kW%~i;1x?h4DRg5$4a_s0Zjy4%1MahY@YG3@|nl4iu!$K|ypnPeRvarU~Ico1vneO&by8XQqc^0;a-MuiA)U+A*=o6=0b zIQ@1`14U00cIH_!G*Oeh>3%Wj>M}*Fd#r+WEf`7ayi*dL*VokboA1Q1(oZ@bdNCL0 z#pIElV#3@!OTgw`NgZT@6dAB((4`|I(Ml(lVZuI&^~C6Znd8L+2<9Y$1WuAB$59sm zc!g0*nc)wvJ{4NKv34V6h4HSJZS{89H6Ty}S?iB^Kw*AEsp>~0plei&T9~0OYUBLW zzNN-$DC)xU^H(zznO&&?&H!dSKkd^9$rL)S(5|r%oT9JlbWmU&N#w!lBseceewJ9m zEQIh10w(Paxe)i<@57yEd#Gpr6!u+je>?DKIam>F4H+(Gy1*Y;OXe( zsB!eO(Q~?!_jd#|B3NAo)kJZ#kYGnS{F_c58kEv9ZTl{E>%0eY4ch?L&a@2%V=~A5 zD+NTGi{A27T!y2x+ofZ+#S{0^YU%paRRN%;Eo10t{xTX^Iw%o0WlAc^_VS>-AkVlU z5REDjiG$(h%n<(&U*se^OY+33J)jq;V*Az47$h^Y|OLYh7Z0XN;6JpR=aRX)cOF-u=w{FkG7 zij>YUo}6s>&x%OfbERv_K9tybUONsCcz4*HgU5M%^5)cNSR;63HZSgkNedf2zZ!p> ziYd%p;q)~-!sCwG0c)dRl_Rg4@20j%XlgCDc;H_8h)I8+`@XE8Adi@sqhdlu}?C zT(yC(98?0(0Co0AU=2TF zRdZcZ9#)&<4D_t(>2uYe+%Wk6#4W|y-eHgJi3_)(LSxm>5J1MX*)8(Y zFdm^2OXB1>-#Ux4;Z0yWL(91_flej3^TP{K30!^UkuH8_I~#fNpAb-juL>gT4D@~= z^=c!&{x;UP0`Qy<$|;UN|15_Yg$b@h2|9}0oq1o6$KKHw<|hl|m%X7aKi^`qjW*~I zErqHV$+Ik`n_>Glwiuv(V>uPdwbS?$!rs>5+uney<|jGan*AX( zjtmrW7L0?`Q@wIHVme95iU+_x`3<;xhjR{AwImUaih_~NBY+=c4f=I!ruI5?gMKHc zN%KHSWF|4{WTa^`IM7pta%r)uM>LX0`tnc4TGnekz{F&Qm2=yp zhWb}RC;zWLY+_<|u8gpV!c}6?#l@J2&k9_<=;;cbvre_T0eQ8w5onotW(2g3*AOh+ zZm#5;{RT8z9`gEjGv*chrU^)hoI@poFeKjgwh4tpZf6Bm+wR zL5kJ)rHGtQ@b4w5#8}~Oc~i zz`j!jEg{|tsow9v-*(Sr9$Sil)t=J@8~biNxR)vmRuJs-r~{0^e{^C=QpLKZkXUOV&L8$-wz5AzOa5?K*bOXk9hi zI7nt5V*0e9v4CwZCa2#;I7EbIzF8fOe!cZo_|9hXr_Lfj9%QFT45!O=q~nUw2@d7> zgTK7DHsi>3zS!oDi|$t0>_#TPXtoT;S2T_b^z$dN>iHgn66H&);9{D{1!Nj@K%V=N zX7dGz@76pe`ScZ|1h>_&{(wD5$Bv=wrFDdeLbuL9^_i9z4}Mk`K$sp_0i8>sbae0h zhDOJ0Md9y#GmF$>FEZZ(NZHv^$+Am#uRAiyc&C2PJVDdfFJxvgxf}5iOoJR!o zoNs;Jym@yXcM}a!IJ7c9B+N#hVass3nHxKP2&$s7%KwQu&vj%)gc31F8feC)cL=;- zia5M1iCxx1BK#LHc!wI5e%tjQc`|pdbn?&GtZcL4VHYKVI{LTc1qv9CSZL)ZP555p zVsEU9@3}!lb31CaFEt)3e#Vva1t}?g>k8+3r)KoqHwbervF0C1)fWrDoCTpgo*;np z2A?S*|1(xo3e^wAiA^an-ms!cV`z-c7%#}%Zk+8f41Xjco#4Tec}Sbh#dD~xVVYlC z$Ih*lRn-nI^NJsT)3i>$I|P-B44kie+bls|ts=AStWfALl;m1j8rty9oduSn%UA-Z zAVC=#j6U43`Eee#sKYuy>%PTd5Ixe=R;S#w1?PQ@LYY^h$DCFrn_n^}; za**u!Pomdu9Qq?D(`iH#786}&?uU7~&)U&^3KU4*#e(c}G zcdTUJ_|Pds?6TLXY}hax+5uJT1IuH6`?2_=j=C=Ff>*f5T}R&r0$5o0*7%Hy5f4Rw z2mx;{oe0fy{Dz1nf(be8R_Ha%LpAf^*m3$vfjgy3{sDZH-TYkb&3ZRm$4P-2%MGG; zYD`}-HW0V`CPRa~h*>U2qksbRHzq0TZi=mKJ}1EWNf5D-v(cnYfHVC{Vw|ksF0-gi ztmp2=FK6N4K9Y$6B11q~3JfAY#kDf}BmTMSyRLmW_M$`DvUP-ixh83R@{M&ar@yB8 z9M52}CwE=OgL4!&L6dVFX@LqEYI=t6`NkcNc$FC{yE5PnS`)8`y1GFs<>Ah{e z8bnqEYH*>=?!e=!p*A@EA?8&kEpp#5RGF)>BMsg${}u5`P^@!viF!_=kauUX#zMXI6>JEj>N(t8vH|~ga;mQv3l{U~8CZV$A94Ld(iqAf%V=S#2fK4w zDba6TNWVvk%IK)sdsD@cj7DSi4?}EAM;+uckZ>!lefcRjlb3>0@Nz~*{mrlagQ~~j z(Ji*2-6L^eu_MqQ<*p2j_HcVNW(kU38q`S5gER>S)_+aw-)(1cgpTG{Jbp(38O!j^ zmC0+8@5%J$_Q+-c4U#9OLbst#O$zV-5aWV_h1Cfv_nK}wp0-|*YC2xa+bvK!Xw%BSl-Yq7g;_neAKV#*Gz}G2^YH0Vq;)=ygnh<2qy9EkZu#bYgjrwZfy6m zK-#~c!j@CE+Wl6I*8qLzES|PR-rjk@9n+dZf3&N8r}cy9`c*omeGEN`!PMpE(}f0H ztxdQ#7u%h4B4`n~Q`l`+uj{)I>EY7Y`&EuX8ho}c%(MdJ^%~FmP3ZlbH)Ew7K_1pn zo^^6d)ATWxB5^qQn^ALd@KCUJv5%58`_d`plCIVe=0Yxa>0g8#r zu9*(lPgFuLZ@BR03=T$1?)I$ub+#)O>l`-)4u zi9*LulO#3f-iQ@&YqtpQ7kMKU-I0XIFt&fb{X(7k#+U%Eh(=1zI@KvnjKq3ED zG7$#ofraw0U-lw*UTrt|zom3OBcEf7_<7o-DIPrhRW|E}W&xe@8?B{Zx95*m23-4Z zw@$L@U1!9&2X+9H+AvHf-Y)}l&d+vofx9BBJD&U6p9Gf2ddTnh^C-`Ea26WloxQ5} z$EU131;rot-|f+-7nZ>Xf1C#1`qLg8CZZ30q!)1(2;+Y%F+Ho5q^S;+vB+s*jmtN@l8Tf^o~k*b_8AvZ@*+RglFr0){_r}&_hKT6e9SlR!br@%r*KkOq&^J(9I=e;=oHYz(!QiTV!($* zUIQnTWKCZt?pLQ74<1i^4{@Mi+u&O&k6a-&&V`TCEY)^u)3 z$gso+D9hk0hnMo7GaEDgPhamP=4SQ|X13B-G*F=-EDWg|fRszJ?c;Ka1tG>A?~=vt zx9Yf#R3%+x{R{5U#euQ8a||zAEm)021D51 zX+}5K4S1Uan2x0%#oI$=%8(c_Ge7hAel$BtyN6eBxM_O%C~1hHRJuPkpqJE$26LLs z^+6JHhjnXRVM_Q_vx!Pe5pwrqp}cde-RZ#ZsX;ESpZ5NWK3x;D0Z}@|GLuEI9%*@8 zv1Dc>eFWeae{}bsAIG#IG^J_K8f8}LT_(rbTBCoVB8{#Fw_2cNnw@0lgdLVTD3rGU zHEPPn8g)t0VF>7?D2IPUBPhF{rCvhFyk6IJjK?HrL}kw7Y9Ac_>t#>H9Ul_OFJx~> zA*e;*DU+98YM)_5Gp}8F4fh%TP1&LMfa)@qOX1I>$Bduqx8RGdPV{&*7(*RzVKC&;s#w5 zSXeud2%6Qm){kpFzC*2thQp_IKv(@lvehQU0UQ@FM4U5QJ_|al!-w z@!NlV2?c}1fyy6yI6uyq0oB42Xyxk~q(}sE`!6lNdoF4*v^zY9a($Ulu!VE<^0B*b zUSV9~GCxR{20eu=ZgYYNSmk+(e*9rH;l=o}u789DvhnOI5un3XbW`6X`Vub2!<5k% z?EKo`l%yF-oYW9~{Od|nz`A-NPH6{8Adt>t>{oo4){|`}AHuZda99`(=?{@DnS`z6 z%*xHc-VrX{a+d9hpGTy8F#X|?&Co%iBKh3lOA;c)2$OwoF!Y>A(8mV0FN9^~P`M7M z!99j!$5Ha`TtVkX)TkXxvN7%3s4w_|EhsIIsZBS!b1QNB&(*gA=_UTqLG_c~_3bOD z&os9|wUa1|=PTqe@Rk+@s%HyW#mxL&+l@9_k9)2;Ohv2j*anmC;`d zlLk|X6ZZr!Emo;r!c(*cS6+Ke{;psl>Ja>0QEsvK@yhE-#4125WA+lMe9iJ<5I z^^b75$pD#D)>)$_fpfP@n~l8jhek|p50lKP?_Py$Uo*ykLT_>lSjV3>5(LM^e?BHk&&-^g+F#ycXT$fK7`H~5;d5iJ%2{iNgjfs5doW$i?jBmoX z&f<8Cf?$GQYrk7n)w#sv#^6r}vYKw}?;GR*V6)YOT6qzI7}_9b$zON$NXc_N(8M`! z49iV)Y{Lfiyqt`C=a5vl+&WoLm-Vv<69dKtB?m@hw3qsMxS93vR8kMO8dy`$7yo<6 z(b8t7`i)&a416OsDp^Ov_vv5Ir`kiPwS$I)3)fZsT=l4o0$;CH_

    zQXlg;0C4A z8u1<4#GRP@Q^O1D7@lFr#&d;yX;c1;u2j?d7DGE6p$xq|exc2g`*pGaDq%~c>FW0@ z(Ed^Fz?d(~BY-+`M8B7mBV}6Q^C}~@T+0H^`zmO1<~k`|V_-%6nx%C_t!D>dK;!`k z21F&<%4XL;D@MZtn{UGDqAkJYa|+O;zlOkWJqZ88+q-!# zLbt+r+0v;WZ@$1zemHI<9W%e}`&bj=*C|R_FpL7k(LtNT!3)vxQ z+IrI)BK1z0YcvagYtaJHBG+*n(gU;I^m-e8$3fWAYR%I}^mI~fA_VDa_>N%2CfrP| z4?m#PNnSO42E{HUKFZAU-5(l=_U%A(wO#-!E~rA`XA5>&uZGU-hG!QYJgMf*;k9=S zyAJi}$x||)(mP$X+{5x|hiY8Pa0;|>a1L=M1p=xW@_Ene_gHUaz6oKBo$YFZ@<-pI z%Geoy;hR=zJ@0BFXcI#6)drMb$dhlH2CDjrDf4L4io?TUWI$BM;4as%xKh)Wc^5r~ z8XQNu$U<$-Wl3I%XTRDbx*$~hxPg`WoMxMS5^04HMxlqi`zSCOQ@al&xZWLB(tP^N z7`tgQ#^z}x?Zw7 zT#g*K{afxPy@yzWZ-A`^wij4+P56eqP@Qji2qQJB+<7pT|A#wyM3G_mYGpB|B}81G z!V)dA^qqu(Lh8`Hz+?r6WGjfncvsIX??EFwqe5z+UO1&f>L>gXh-9&J)bIlJxLL8e zy56oxFdR|W3L&$1CIg<9XQvvS=pJnGIoXBXgd{JyGiHze!Dd9~m5EMrlVI^W z_BQ)Cs+GUWFDl)v?_|}H;efikfw#EeaWihqyWr41_{l!Hm)d#jjIZjVcuZp-Cmg9cQ!HdL;Y2STN zdFk5v%<;8}GQV^r@Ci8j7^+iG_OPjV)v1h~*KvwL*nN0_9x(lE9n`kHq#XX6s60~7 zY(LDsLi2Kk5Qnl?h1-o2dRQpEX|{V^!XSh_&Uw0pE6$)t1k1G87s|~21zo^!{p#qq z?B+m6d`_Pp$si4b?7rQ(E)~!1H>NyXL*E+7QXz?2!|*S3|7mFRooTPdz_@8gTFu+{2nPw)NP?eO1^G1zWk4IKySxYIckP**o2M6G3jhxEx8ugds5is zszt{tqHWHNsrc1Z9cW_~zBI~LazGJE-*)%xjk*17F7eQ@OwBz|(Ot%Ynf0Y+z((!~ zwF;h=D^jTngXp2$vh*vgjm&_EXL!r=HDvrZMv6>AGQr=0^x=)m>@}R%VaY0FO?B^y zBO-h(s+Eu=`v@+Iv}=bf%(=_bORK+k{^>L=O-ObJ+d9MPJfE^KQHy5~-viQl8(#9f zZ?#4CKiNW|7V|*WyU;a?N+=W~RbxUKHu+rmv8}iN^J$S%484m;aE}YH{9^%z|1ath zc>m}e3t~vH%F9Ht4kbkiZPlJ7Q6GpW)c>qvnrbjiy|1Nc(TW$4Ij)XIAej#L`Y}DS ze}872xyM~bym@7`@l)N1yPCZo`~`4~4m+q8GWC#Kjdudw1e@nIPEto^x|0b*&MTvhJ zj{2x`yoQmjg#y1xkx&pj))>{ZQltq4+G`*G6<>}A+tJEUn@>UvoWzniT?TTRlof2p zN0!v=GPz{6Oy%|0@d258$_}=#VDwS2WAT+C8F<>#E0O|Ju9!!R4$V5r0(B)9RU;u` znNj-k?5SRlF#aHRJ;iN~CYIqs#x_n@eX1Km>Og6WA0ao4bZy_lzl3j9*Ze}_p$mKu zNR7?eoy7_2O9jFqUt`uVL0hymWvSVH;~l`|;}6bjN;p5W@0>Hfhdl29D5~X0XM#p^ zp9+~zEaJ=`M^9dse|rr5${R1Y7Z?NR08~yh=@pGBodn_+hSzMDmt);=6h+A3%`Ys6 z?5PX8=%Bh_JMTFkPeOw0cLUL#heZ3P?2LI<-;n*aX^Ru- z!@$%V=cbw;*UW8>qZ*^Oqc8B;*~5~I^ui0HJ;b83&9@@0l<17&tl*_U@2oJrIp;O^ zBO=@qcH*PxPtka$eKCiyxlw}m;BEgmn65h2(BW$MNtjBJWis{W9~zb7FAU#QtwR4P zd-nagri)Y4tV$U^lcZ=+?~Z5zLoV75m(7~KE(3Ijfxk&o9jtF2h#8sD6jt-cT9J)5?#QPL=*B_j+dag2?7cA!tH!Q!1;|_nsz#rk2tz9YOA={${N0 z@f7~;Z*HCDB|L!$z5ItKr0hwJlmikstT(Kf0d>_G3?LUGb5WpxHzFmPPEMs04xvt) zDiXt{=`$WJ|N1BaNF9p*PUC5gl2Nhd+5cs32K!^zAQ4FRIRM)&)i-6L1il&pO6_0D zDN?Wr#4y{zrvmNJu{{3`@=FYed+l1ZC{91*A)TB^5}5oq#q^vY{pqF}+=33rMrlOq z$$tzbK7EY5(TE_l7p4pnTdHcDykzXpFH-yFs6h*;OYrmSFyFM^haUq*m`S;=caBJ= z4ldY{1)Nk6aBfC&&N;$)pD{N}!^X=n+VY;8Rn`apx0CNSEIx>*b43G2P zd0!(avSs)q!t{OlAv50QpE@%FpH0JTPxeTQbJypTATabXZMm|pQZx(l;-^)5iEd?u z-h#nQ8NFK~$*N2;&~K{p#cxq<3FBTidnQYowPW?{9Mt-kuaCuMttp1nn zxnenM3Zz^1I9T>G<7DW}v0X>c?>{Xbx!~o9-h-iEl~N3rVCJ4?75I(YC|1;%P~~mT zMbJ^7xn=Z_^-;(;o?CKHBi&paZ4h}GOXA5uj zokq{0t>0L`=dv}rU%if(5!O`pYZu$&J~YZy+zkz|ykZa%$VQeI&IeZjU-EORiBY^D zNnGc4N9^mru9<(xW<;GQP8s1@Q8oxEWOywj-EHe&akL{WV@`tus(!)C&F~=PM08YO zpPqYciVX;iH3!{8YbVy%T7Rw?g+4|gRsm};3V_0Gkf-v-PH5(>JL^=jOl18UWsCa zs{k)~`3v^T5k@1g=zIG5Up2Jy&mPfqkF`9uf!4rDy+d60ujnLkGbE15!Nr?SEfQNL z2&?AdZBhy6Y^H!=s2@2Q}lf_WwW?N8O{q%SAJK!5v}lm`5e^Q z`!%~up`4=_QWGB>1dngjmWZB9Tc_15Rzw3+Au!anOiPZdqkPYb_TESav?@Dh3#0Mq=*#vhp5=g8jt zxvwQ;uAzhH!$;gXyN{kxuL&hoPD|>$=cSrVnrWJkimhPi10Fh_GKs^2(xdI0S5%0l zZ}@ww*%~d!*#JE(^7oV*UgCm!Is-x`W55lnO*_a^jD~<>u0`~zrR}|14%;^Bx(%66 zYmEDuqcrw^aRu9KGkc)$3zxG*VKT)Dsyy~;TjawWC#7*2+-`eH0DSrWYV}QQI+fDI z#6zT-MG~j%I|%uhycnA7Q=cI`$hSnbdZw{>8v79?%Oi%`F^<&zlYE4>@+R82@A_H` zT0bSM+RAdVih>E0q!99G&^g9DXKO~pPd_KWclO%erSm%sW2i;YwK&VQWqL00y*hdQ zy;$v8;sK6+gFw4`8(_m?st@5hKlh=E&*8bD0q+Bhx5My-Czms!L@lXg%f#c;1z!}5 z$#)ztp5W5J@&eHU$!lv>4IL2~3+pNA8p8a47X666EN`y`$ucU^#%1$~VVVz2k)PU< z*BF`Wb{}I^PZ6((RPMzTAvXAl2Q#%iXb0eyF?1oZOHJq>$E^3cgh@j3?4yPeNTq*P z%^DMN1ZIAEI{n)Xi2N7_)P3u7z%$V}-9cOUhpRwSYn9ZZ8RByh5njHaL^Tt7lCv`q$@^w+JFZPw3o_PXY$rSpIcuji-07}LD zm7q zd4O^G(e?ji>~@a!aW$3KO*RCj79f^cQ5k3NqdoWo6InRCfHES5$Cl!}32+$vo?J!@ zsHT_A&g|bh%=r+|(ehvU*#$L_UA!p?f#fxU^mR~=;ytJ7Zq>hVeODjETgdN5Eo;&L zyxv554R_q=d`*Pvv~!jWI7{Y>ZXMbdYW6b_gDXF$?KCCcdBF{o4N*CiwJ^+ zv*>8^d2eLOm+2QJ&!C{Eu14)5tQo(a^MVxOn4Ugp=j+d&1F*eTCIz zINs~8^rc$Dwp@{?{{QmC5;{Py-%3pZS3=UE7aR+-BJPUH!*!ow1Lu3NaC4Xzlhd6) z9}7psa6Qe+53iHAvg1A{!W*ik|ANZHQDe{8w!77Mzv_-*C;!Xa%fy@+=a->J_C=-7 zWut;Co}41)s`2o)$@2AZ^RMYB0DTY9_|tVyti{Qope$u4Pj;^(M1sN)l;HVrXt}k3 zxUmD7r4cOG;yhDH+CSwzgjN`H)3!T;4jrWvISD_94jsNXd7-=yQ68wcg0;WEVrIja zVs%m-t54L;3Fmjm&-^0DrMQG9fTq61DNa#JKOj)=5X92hj8+lZKaRd`4GLW!72jr_XBb^SoY8Vk?bWDR<1Kn~XkENpr zhsUi7)LgySR^`GZ4#)`wN~mBi-CS&$`J+UZTpU|DFi>lYYQDKJ(ZZD1)7Fu-O(Aqn zQWA}=JulKGA~mt~Rxkc8P_!^8=;l#Zwb-=&BQ|$I{!D`*s%iq{2_D{=>;OTDpbpoT z)8Dp;VtyJ82 z2*OVY)BRNu3tL)9AyXZ^!UR(3jwbq;8|rRh9R__1K1=eAJ`FO?fkdjki!OZVC%16; z#n_fFX7Bq?1Uq>gdIUuR#Z-(r?DBmfIP4nTfam~m9z;=8(9@K;SIvKCl(TkD@m6r4 zUjA;S?u=F91N}K&aX!Gjo294;p%d@|&4edm{#BfwOav42UoBMGOQ_$t=2IhMcaw#O zKTyMg1;n`#Z45H)_&})bpISUMf9ThkdmbD(>ZAO7vi#%^m$wA<7|5&_(T10ZewbI! zc~1U0SR36BEyGi;+&F|*@{M_j>`%n!p{_&)%@U`uW$AV=F%8ROVnr(D$u@#F<^$|S z%~N4tkl*EyA2sQBep-J7{lPPmnK`fDcrJDWvI0kFNn!W3n)p!u33YTrzB_{>(D(mT zHaaJ#A7;sd<2AQ^pWvDU_?6OdWx1EYI{?r}6LZZv#y#dg*=?|qll`GE*kLQ-t!9{g zA1!ZX2%ni8yJt{N%GnP;BZFCYx43wW@ zgUEvYFMF|<6icQZ{1qKr^HWuZmgNV}zqVstSvNupHRKBnacyJh6#qoW3<`y1za=nc zYZ7RO`SeZWm(P1Ki8BnDLRu+H zY7_H|aEjpe3f`|XV>5u?gOG7u-O~%$d3^DE8Q7XT&?E%2uzBA2ThMUv3CLKs`tmS) zRZ-(SACAG_<4e4P6?7iZBeNTSH?h=y+W~U>f+ajn$oy~ij!yq%cn^2TG)VL(qboz( z=-Jk~yMa1qWZ0elIz5@4(N>4<#n>SGzQCpF3uc$Tz-a|P~vCz1_LeeZW(YrF<4yo=&J+aSmN+EYaR4Qi>`&bXu0%Qz`a&m$Q@SE#=@24NqH2 zdn`sF)wFiN(Qt+$k>WTP5vW<~^Hn1dF@@*Se`uHxRL?v5KO9|id|XWzj%_;|+g4-S zwr$(C)o5cjY}jODr?HzfY>cLH^6mTmw|jqccjwOBIe5-<&asLmWYle(mKze)VetU^ z9QUYuZPclJxAE_clG@t{hb>ij*o#=S>fCgzc@>iEYQLebTI}pL|IS3I_u+eboM6uHH4qx5xy*!wGjj``QE8t@dRhntzLIbfBr}gt?f|`Qp29)Dp1`D z*|v!Nv0F4FRJ3>BMEO}ygDA{tc1hiO zI-UQHTI9`p+$~P1JK)B`zcD1hCpi{&=bU-5=bCOXg%%J!K@s?ac~HO_l=Y{%pIXq0 zd^uJ*$iRX*@R$ju$*;9_IOiFq^(nmb@o6psZjU6i!WJXTQB?}AUkM2yZ3lCfviNKh zy*|T7sRyBV=%>d0M@^|46ABnWk*wxadJzj!a;rj>)zWo98rZc#zb)Oi`lV{T)a1`f z>B9Uce1y?GFkLq>xb&u=ji!D-!reyd*~=NR%ynoKqDcm|DSo6YpSGpIPR00u&rL-x z7H#gLJHV#b1$VJ|`JN}kq?DZ0RcBo;!iz7NfJi>ADk}Y_#3GV7wHSsJ6m!|=EGH}S_COc0 zU?xN(27o#WVt<&QoF#@PD9TNwVUMUo9ASUh&g>RZSR#gv5XM?;2QY2X24$l^1NW2W z>Eibn*W%CSIRWq2<$e(n!kEEV;T`R3!-s)~RYUTwI+b8KG;6}S1?C)gr1Ab=3quTc z#f^}o+MVJh4MbR+9Q4RHJLv;BS0`{k#JuF;gH5Po_mNMnDaUIWU|2;~-j@DFfN>IU zcUfOjNay`f#)q#1XAsqwQTa&{B6c@DQM!@oJAA+@4F*=3#07apx%%a`; z=ECwfB_RE!Qdjam2RzM!|3=Wk%_tu7-6hE+9`e%!$d<*s1wDRbqu^Em*o<5f1_!Hz zFOD;KXQFzBYQK!-W){Vt??K zkzB1hbR%UozcQ0VR+Lt@>fyb)>?t6fMmwy^LH^M5lK%9rokNeGI76la1~b*}OXjhyVSa9&;ye-RU&n+cU(AR zs{S%5DonSYr}!A!P^rgEXtK`X`o(66BF!zE@AjXnl4W= z#|W4cnv5^HIFT~wbB%Qm_}KK+nz3?HQBCc6KmEGGa?$N~S@xtu{K6TgaJ=GU{A1ri zUkx{1d8iLbuVZ*MzU?e^j;cX{k#zHu8!%0|PY&f^n_et!Y9D*w5a-I6+*NYU+w#bW zDa0q)hDg*JWm?g)c^Ez(p|-Q71)Z6znN9-!a6t@pM(`pPDIyI320f`eN^s5S(+a$ z-R>~Ti0ehIfmwIWlMgN-^w$p_T%zAjp^%$=Mf#Gt@M5XcXu7vmFO*m2G4maT0~7`z zUw#jp3#e5>xi!kV=VH6PktC=Ohp3CWxi!aFNI@+L4ri&JkDVljr}^z3)}O8 zd+Q-@h=%ji)7bV@vGm3um=7cZB%Z6o@R50YKLw5pj404O$F22>A(Q!)6U*Ev#7`=( z+Hfm0r^w8VxrFLJaU`S2i&`dhFYreJYva>}Ej|@U9|7MQQy-^!s)H~WN7g5YEHaQ_ zva*40Ubbb-a{G9QQLNlhlO#`em5_muUn>dnS>C6~>-EB7Co*fRTiEmWzO=LdHAEse z1H9(|XQPU$B|S5;5DvYs zu${l)1#2DHQv7V@6xzr8nke)v0SEvOspmx_{x+re*Rn} zhMrc;@VACH`K@vsv$68nVULz#Bwt6KfZLjU2-uzK&4xpvioLrreKcxjdj3v{4|~I2 zd8XD^ufkL+@#I;VR!JC?)}ofLbp-j}Kxbq6Hlj;9ZV_5N`UG=Q0JeI0M(=%}lzp_w z(f5s*`_@+X9B9PE)mM+B)|{4YO}Hr>8fGbLMS~dYtNE>sSZ`=%Q9Rsp)+y?2#MV%N zdA=BjUR*$Pjh=0E{=1XVEB8+&_|}4!W&8+lTT$~`_^Hd~LRTbG2Y6-nh?3Xs82ud4 zA72zJ&S}hJkUAT`31+}XlV>|TS{&;Yz9v3sP7?&unC~-oTni<>PWzbn5zO?GnYbuT z2b1OCC`}>(eeeBhdw46y=V^3zXAh2Sh!SId=$P%+>0qB)ssogrt2Qxg=%RC`BD_lI zFooKk?FX0vW#jI6R>J?_G1p8&d3xT(13Rq9Y$a8ZTSVgyfsJTdRU)X~fb<96ij0Ib zgYZep=MLnv8&OlE-G|%qSn1(;uH^gWls6Sq3A>5}AiK1l&!o4slT$ zSP84o5<+J79CyV%q1A)PCsx>$8Yzf1!elAHo~JPu!go1THz_E{TzUy6ON@=b#38O$ zn09QqmQ+h=H6T2oLir0ZMdL)O_R+I{x8^^79E9dII7$R<&NfDsT#w8s4am##%znU9 z9se%sjRuv3a2o#9ay};ZpJLkdmQ9shhsM3!V&2` z;^qdB$R&W&GLLUQi>4@B@#4pHF?M^T@N7RQLjAKvk1U$V3x1jUceTxa-efveZObRm zx9MtWZ0mGwso+IWx)-LOj5Dc@eLLax4bd;s#cQ~^=LxC*ISrM?R3Fc3O=<$VBitD-+S6ShWQH`Jk-3*em7_={}d`yO%t-Y#jC`}CDmONGc7g4f)6b|P53aB_{FGum}f0s zaLrg{IAMQLSv0ktLW4Y92d!S^I?xjy*QEQDk`vT{t;{Bp%57Un49;- z5w=G(r`)!KM*w<`Z>BKW@FST^F8eb{AfRgufCfiWG+47>+dXl7`X00>+`jkxUZb;o#2~M|?IV>0h{!3Xu zMi*va21HA*G`Pf-u&VOg+wNPKuqPZnv<2AK-`o{$w^3l<36Zp>&?z z1i8am43*LVzSP`rTHhzp4sB|Wciu){PzCAvlD5P?s^nqzWn`}d{JLF5*&~Hb4_L1Q zx+WCoB!vH9Q1DxDWA)%G(z#%`gMmX9HN+kH=_s-xup z#{<=}a$Jw)c1S%Smu=Tx}wK@Zpn!m=-4PbBmg^hqT#80d96tZIo^kz^ z^UG39w=AVv+KiCbA)Y930C1q;`l2=a%h|gX>MQ73@}>-L0u%@V+PKBzcKgz-ZPFjI#8_{ZP-EF zK#GJL*&$hWhbLBC)t;DkocaXXx)hs0Z8|q+VbF^(XJ&hFWoMo z^94(AD}V63mP=v+(rUzXL>WiR%*2?E)od_o3_1u))jE=B2q-oU(h7o{vOxh`jmLT` zVK=>JpFUc+;}L+LGS&5^G{}Kn0o(=@-p8|L1LC75mufYKqG#nw(sG`$O&4@=xJXb1 zS8l_67hF8kzgaZ0=7Oq;cU`v7RvYMgtX1_f#C(OZ!XdWj5JIbg5{)$jQ4$~kRUgd4 zWGYzI9G%q>fhdfd04pWYtzmaW(NdD)r3f+^iJkaB>6UVWwdvUl;P3HMu1&Z>RD<2( z#7E{ow!Sb|-6j*UM_`466gW4`~hr?$>2IbPCd%9ib)~v?v(Lsf@SdpDr+zH0l zV`3XVg3Q5Far4oIfnvQ%5F0#7Sdb&da+yJf*%o9|+ZAL)UF^lt;u7DlyUCl=#eFFB zaKxkktVx^j(0yMoV$pq-`4@$TLdjz`QUr6M!9oy!;{yAZzMYN$qvkC`iE-mDZ?{g2 zwbD4}(%=$t+rcVara#u>opLcEd5CNc8INSv__J;$n|Hf26sD!3YDiJCPp4qC!qam~ zdpOLw3}&H?JBra2b5ZHzYrg%B_4=?ENj5!{lt^l(jhj$$P>d(KTn8xd>?O{c2(FU;MP zOtT2~zwsHzkdG2jv#?mV-KqxEfsa2Tg8y$i}DUBq6nc{^VzghWf9dzZB3#)!UulZ_5D z^i5GC(BlozlG9R-$q;=xy<_{tqO&wyPVkx7nG-~f!p2q86C-#QGuIA-&728OI|_9Q z1s&z!gT-q}mA?5u3X{W@)5$NbGp&wOQ1w^BP)C1Uzbr+1hOKl;KTQ8F?I~29#?{w@ zX=@p}_^iE~wf-H{>KxR6)RO3|I`m0~IAt{*T%CcUrt11cQ3(ByO5w zAC-a;zF~7emCzf=h+pYyX0*Hj4!`pvZ<8bl zWO&})nxc9!aaW9d2gsEAi?BPhM_!h+@B>Cc`d+1Uw3PbO(%5p&l{;eort-)T2AO7= zygiZ{H60FGGdP|>2?A_QMqD*AZ;2ZA zU^v3mqr%xwk!zz|zxZKxkD{t-*@24~rzPy~mH8(65nHUQ5e-QZ0Aj{}f3_LqfB}gg zY>QdJ4zS`rV7U&3?G$$Ns0bQAQt94r3>4@8g&l{k`S^;|4bD>+G5lpDDU6}A643Qj zh~#SL<9Omj%6;H@R}I`y(RB{#nf>y%v1SRi-~pDG=s9EiyGbVN+mP`}$v0RxShp!) zVRc6x5zK*fhI!K?2=dlJw1k0*F~&sr4z?sA`4}ahCiqNs{z$&HK*@TD4UYGMrNU$r z0*u?46Ez|f{Zl$ZT{dQe1CbgcJ=``wZ)})h>TH?Yb~OiYY`ZC8U4E$=Emsq317{A- zKbKgE(XSm^^aP7Jx1fX>0SAojSkpE!{~ime96QQz{YeN#$iIoQKe~ip7&3n=PX*b; zlG?lg%NJ|MkZ1y6+8QB~AnbQ<{~5oUJQSh{8I~Pj!dM?O7D>S+BA{kX zUFnze!Ra@}Q_Hs@HQo8JD%(fWVvzfqX%;QRj!ZN&ilRG6-K?(p^59%8Ea4N8U4S&l z`=HaulV=4D6jczHdvxJ5kvdM1r-->+fL{Ug>V^aPyhXYlnK6d_GVg`mDbd64{U4;r zkPNueO{apsn|VNf)+*2rd(RpS$be-LOQNh&UoC$dbN zC=h_7)8x8h2RV9j^gj_YZV+_l;0|*)Zs@3amVOL@8j|md!(ayuWIG4Qc8KoAr%;-z zl1p*Ud70*Bjv%gB{~F_}-R?pEs*WJs8umeMxH^@CO%VkqOYwI{&-dnijS- zMc!tROu%vmPet6cd_->;>ST_9sW`-!PqeqVPiruFm~gbHHS{xKSVZe8-CAFrad7(Z zwkg&(kx-ZmD}-wWvt zSe|Jn(V)lLZT;62i_fq@_$_NcJFl63dOz7H?Q;d({6lKlJ?zm|8fgY_p)=R+oV9Lc zvc0nzvvRnrRE{FmqB3E|Yo1@43}mKP)`mG5KFt%1f*f$vnt+xqxb9+DgBKG9eN${mm{CC2f3_ms4zJqJg^uGN^xCuI-h1F|`IJ0Q$G>369k;jW7X6ckrO$pEJ>*Y@OZn7yb zdd2E6lXPaI>Zqt*$;Y5U5n(-R#%gX(vDHhqt9xE3L%Xkqv;(k#uSQ>ncr~rRD`EAW zF^kpG+x(&KMA!@BtgiX)P+6*~al>mEP67^pSC%uq^jpWjPVxkEG3`^QaO=>Iz`ZEY zV0FsJ2Kts3m3virr`GRGVk@edMcav4Xl0%#oUPVL!b^MYgFc!nJ^Dvm}l>8YrgRH^wRl*fuq&4mLUD*zi9remI0vjFk%dB-57K_1*9AcKW7+7YV ze0l?}g_Ym_N@xw16Ayx>bVYRk1l^p7Wgty=flsSPvv-xNT;+{i)_?H+#_yOcB^w=c@3f$6c`U3UhtV*YNVtwwlb(6E`> zrpbX|E~L>nr?$4c-f5_!*J+2*QX|$BL4SIJAIIuslzGpnEp$~UCgn5eFwE;jzDv?! zG_-4iEOAMzOplITpJVV!eMz!hENzBUfNU_|Z$9-HFK-mJXXK`gGn)t8qdZsY8c)N# z+x1&qcabqd{mwPIsk67M?~Ojk)1WI@aZ4nhDNY*lt$1+S0=Hy&vA-svQitIgWJ37Jhd$**upq z@Xn(TYE||?&dFsU@#P-frD&Q!|9P<3?$TLRbgq_%GVI}1fsp3xiszNsVe(yfjz?sXNa+MXd8M#*@NuaCX#1U^ zU^5v~s2q|z^*t&y-K&-GNkjjwX~B2mKie4mIx0symh}tavk9u|TSA-bX8AJLO0j=~ zGcF&d{NryO9%RHK7v=%7DO_b66m5=Twv6O-8Iqy^MzT#V)(wOCxF9_ew8>;Me|EY1 zTkTOfA&k>sI!|-#(e_S9G-1&_K2gTj;t)M+n8#BfN(?c)|9m>(Bf%9+L9Q%r62VUS z;j$&MMK^1ah>dx(tD(!WIUR7uoZm*KeKM(NiJ@n*Ncs#S9XLqzUzHBq+h4S}p7lcU zhja{zrgq(h6N)7qTYimw+zXWT3i5e_Rl3}kP1a7=G zSOB%L1eeN-&Fwbqa$s)w#f2oAnGv1}G-{~Uk$w7G0ehi7(txl_Y$_~-L1rpU1pfL8 zbIB8q^<|`mZ!Sb=#U}zwZb!@!*o3`9(gHBcpG%*HWrwV+`2k>LMuyBVC34xp(bM8J-BfDRx zipj(CqX=>Q*M<{?g}lhI@%3Kd;vg}6sqejIC#YRzmvorWox5;Do{2;wy6RgznT+Cb zjvv9WF(pk`Xs4l4C@Dv=ZDH>ya}!le^a}#GombE32;DJJenIjZ6u7|&P0VJTf|CJ5 zQSys(G%V7uj6F3dOlI83rmViLVp@xnrpM~L;O(z?LnB09iC@rvu3Jn6#N#N%Kza;R zm!RyPwkf0U_qZW&os|xcRdobcvbacEW)7hh+8FBTiv@UC39XqVqUi=o2BxF%9e}b4 zf0I=InSEK0sxN~-bw;u|g$(IE^|`MLK5A1oTu@mXud`X_=V`)1Z(4@v*BPpT4Cy~z za`EdWz36OYUHGsmZgF=YSx$cX?w*MQvn{~|ZIufAsWK9Uf90SdI0#%QIX%xA`Y=9pZG&*6VtEtnks)N-fh@e z05*~*qbe&aud-Q2-pfb&bX;r{pr%7J#O*qgN7rSb=bSEdRX??~qfVw~XY|dwm7Kp` zIYBvx8*B}q4P94Z)hX7!SFAndbl;sa#?hVl(J*@kvN6A<32z=AUE766*LX7)D{8j5 z9?g9L6F^GKDpz z9xcl1hq6$ro}gx=4f&Ey?JRBysClhda30oMexocg5^wq`iA3|9aGZYa>$g~iHb?d` zBP8YuIN;=mo6*Bl=>>1aIK1s^Nx7mQjN*{l)kSBp-sFFJ-|!`PBI#9wfrQk~3LA@Q z$cL-S`+EOmf=r1v>`;bMY6rGzK)irI0t`4ODj8a1`htDRusmt&M|}^jY~&nU$M&J% z|6&0HN*bVgcUR0i-tKUOyE$482Re3GRJmKl@&kudFR7K$yPq&YI$nkdU3=hQ$Ex%L&HV8M@p~y#p0t9CHUfteH@`LmlWXZk z`p#SjAqH9LlQcq$wGMq=1zLO#Mji*s_5o9*+rR90sQ&_g?Xy|L1K}F+W}GN#k>a&Q zJyQ@k`O-YE=PSfGa?$?gF4$*hO$zoh#*dkT`D1M_$hgRZ>Na2zs~ByKM8;6mWoU~M zi}NZ*6^=Qh1{YTr?|~-DWu5=}==@H|$|p1TAd@`zlS+e~pa~4dCmn-9{N(CiJ2ydZ z56(@?PY5}Z&{&qbOx|Lz8RF;O)6q8?DEth6w#GesLua?KH#^N`Wi7kTV2SXpr+BkL zA%kNs+Q3619t*Q(-z^^%pcw^YEaNhIm_?pnARUZJ*M|DeuK&&l=NG?Wlxj?vctkNA z`0&l8z3>rtpbQ33b_$dXkjraSVDKD*i4mhM$>M}I)g!AIaO+*35b;Hw=df_~=w-n% z6|hi0Jul?)L<$eO+rOmTpnsDC2V9<1r)`qU6O;ALE;k_3*W{P0!DJY_qxj3!=RmA( z$Q&lB={-z^w9F0O#i39CMmHkV&@u+`Do5!d-zk)mv~y!}wnfk+Cj<7-g+&<2mG7HI z78f|?p1wT%iokHWBfMKC2gbukL((4O^9ai;APjzyXgcPKdAc(&6jfN-cYd}+PW67- z{dC+Eu=T$lz=ml|k1TwCkBvrIWwvy_$I}*I4Hh|OY|<4dp^uU`ip6mXwV7nACOuLp+*w5@u~A>oKf%n0 zF){8;)Hwz?i*`5 z_!Emf5e!ag36>b6P{{n~Ya4G|Z5bH}mTCBC2D(CVfNx~Zj|5s2YU?C+iL~ZR>dOXZ z3BsRM~hoRrI=HIY>rlCbU&z)Y85O&!*Wvm4I>Tz|D- zhx3aC!bh{zS`rY<^Y~s5L<b`3p*R7=cIS zN=AtN;sF69V3wu;D;Ku7R7+EucGRb2kW&|$bq;VhiBgzh zZ4_n~*3rgLzU!Pm4{3gkp4BdhrX8uQ|Gq;^LFk;Lq|Kt02F$DuCw|rZ*Us}6HpwoA z*0xTJJJbsaW|wS@Pd%qSZD9TRKP?9-@eET5Kk{hjQsTP;2R)3NgA_9i0y(B6O4wjF zj@)nFxy%*Mjns`&=C6RPwna)s2biT5z)CL5w`9(kC`zH78)Tin*o%^2O)3af;=cRE z7|q*%uX-y*HSvR49H$x+y)-x*G-Y6xQB^PixVN)d$jv?=;}Qq&@fh&;zUo`0T*?4| zW@R#5MKK)|{Z0i=cBE4ek(O80rPx0UvU^=cjEwP7{!&Rg)L<1>`Ozz(hqTbjY$qxI ziqxZr_sL8{uFhmZF)X?b&VMuMQz2-N$w*fflmg3RwL8B_%e(T_uu>-(lt6W#T-eHJ zFlM<#6mma{@#golaq)55Li!ZdBe}0P@GY`QtI{;Pm^0V~42%4QJz9W#iTGi{kZ1AU z`qZN4(uF5Lq;2NI1Gwd~GMrLLY$;vuZ0T0B$Av(eHwVvk1Fdj`KBBR;7Hr4IA(IzX zI>Kmz3jm+GWoPLwLDA%cA5A~9M3l}TI!GaM=aUyI)(1ARDuWnhaRy&KxPh&dE z21ao`Y(zDq@`^!M09M5K5ELyE0WM9oI8l4af|A-lq6L$aHZ--g^+O0lsL?8DMLDWttsG99w}Ps{ zL4s$YgE*(wIv@vuB--VTfD`h9(+W28gB0uRRy)BTNe}_O%1!R+>`dZxl@j4!=4?bnh^e*7PtO0 z0FGc)bV$;$M-a}2H3)0{uub~ODTHeFjEq>(zHSJULYbMnTRiyH^T)c&SrGC3Um^zN zKy}V~c`)HcRa@N;Y(GA5^~*3uqtE`W*$X;sx^{?^p!ANzi8u3}0VpRXPSkMk&Ewbx zZ^35C7*uCPlSb%(y^R#{0-bmBPKWE>bM&?%+0MDro=r*x>^w2(C{Q@@mN3``o7S;L z**{RQtPleFGV$;j2yG64k8raoAI=%y8ftU^8_$JIdD{A*MSio37r4zchqj3Mu_lL( zxlLdvLBAyjPXysl2)r-@AK6vGq@l{OWx*R+1!v+>TOY=9LFuH|VPp85l8vi7f}m|l z)Y1TIo3iC*mLV@KUtjYd@>q$Rkb1Kma@dkcC%=b2#b|nlH&x!KS8#g9{kXfgZ1@ZiUs7L^LSZYLs|jjLz0dJIQ=K>Ny|o zO>p0tgcLsd=GN$p5blwyCxN`*vsKv|CdJ3CNs8OjCa-9HQ4}J%v~X~?a1{-8hn&_O zkNQCBUJfS8_t9qvQHj3@WgGgtl%Pq!xG z;V1M`*v)OMIfg8K)+5i3L}^%9p^}*3K(;hc zU$zWWDGJg8VkBLdzZK1NzguyuYQI7MAP*myda4^JNEXS2Y!_PI0!Q2fox=vLA$9Qz zmfB<{z+)&LE5x1_`v&F7+=pjhg>7f5AzN4*iUy+f9M>@B$K)i-s%?mDp+zT%Y?if}!qmIMG39m? z9@JI6|CCtPIdj66uMxI*r{}ujU2hs&>TPt2Vt~pd})iE?eA+8E{UX~#y$NU+TDBGl+o??XQRCgt^?9kBt3GOGr{bB)*6L!U z*<8FbDXP3ll)ZynUtTM#)Mh767O&xzE}MmE;302gIbyPz1M&C%OXejLJK1z`Ghw(J z^;$n}w!$Ojs%V$*Q=Ig{kKdWe<(AE`xI42RJCwcI@?kW?+c*|qre|EojVM!o#jz{Z zzXZ}?457F}Fg+ws^LmcO!t*B`nhj;Yiwk7%&V6{kZutP;XbA@rvkiRJx+iUnga^&3 z;gOp-(FE;B3yo_zLt?bd$8D?7O);l$E%HmZL;*Rn2}elX`BbvgKMWXr3d%j){bQ_^ znGd7u@+POZnd-DArh~J<6v2lzM!c}yNr z8F4=or6Kr@xzr8bmlW!#$gcfNh_V}U#tiOsFkQ7S5_~6SJ{OS%gqCQ5zPql@@wV8j zKHjvnE7hhicWs}%R?R|!vMoP)BAv7A;vx#IOdo$Zg5tR#%HD{Pa&vChhyThax-@; z+UigjeH8P1%^Fcpl{g^N+O|~41cISEr?jdlh)(PXDm6oB)juBvLVQl=bK96Z;LbA5 zcNV#*=-NpP&D^*qEV8a{IjDaF{S<-`GRVIP!XUXS1CaZ4Se#x{I&ty@P}P!eF+^wc z!^xN-3F-a6&zidwBZV%BQZ0hSm=?NKC~zfJWj@j7s#gQ{36W}- zDXj4Rb3`kTj7zMZW-fMwO%`um$gU%^zx_w15uM1C`s?yx;r}>|dMl zRN(P*G7z7AKBaZ;he~R`faf#{01meUw|t1W{M7XDxiBXYPWo|;uUNj7eM~Vz9TVq> zBmXO24u*Qk;R&R?nT{+@GD5*LWjc(Vm>Eo)R1;*feY%*Bx*0`jBH%UXJV@00tmv!e zPPY=?&ZB=%{n_i+fb+)l<||x@uVK2y^pNAt3^b64eOoQOLkcc+EVRTW1sXB_lTuT7 zm>Hj-qOMIX;`VJ|;Zx7B$*qB95zG_|6^v54K;`>3CpLo_W_X)?YcI9=U%KE^*k%_J zcazK2ue5l46!Za!%I|C+C`%e{R~|1Euzd59hEo)wG8Zf~(rZA1#5ky)zEK4&^9Wp6 z1z*^mX^X4(@{SL~_n4gccZn{y(`cSB(BYpl{C|=gN6V~Ht%5h8y6G>Ep!H?lp*`MO z&DX*YMmH18jlz4v3}4_3KIR9h&9`#B=;wDFL4(Bsa>;B7ZyJRa{&K*Dc*A>%Pzl(OBnYHt`7Gpd5XePY6D;{N_ z-I~H8h+1085!(8DE^BXj%BvvqRFa~;6hJpq+Z=R1^k$%AEp?MD#;wH{>aVQ7m#>7M#$7b)KSR}`GGw1ic&@NtsC>_>8k@KOP9Qe?>|7deZ;$P7ebNMm+*`h zlS5TLM#K}E4~xhQ_NH5SNt&T%uFz88Jze^prj(1?gq%BW^fRsX;PfSji*kO*o112& z@bJF7G0^XWKOG9|-4yYHOD9sOpOmY}Db&f*XMDd3Zqfp;xe{-_6^lWK(!!?%&Sza- z71C?Q&BWD*xb0zB8Py|Q^_vHyZXXU!rUeb9&7-_o+mBza#QeqLLNTvD-{H=2eM}rR z5x=c3n;yaV)hG{>{0g;=e^Q?LwD0682ZWMi7+F zR|=Llrv~E{HXSHFgG%16=szs@`%h7c;xO*QUbe(exOh#S-a|WAjLiMZtNp#t4u8@b$DMV| z|6q51w9PUyn+LCx3A6T1trCMTBAydtwcqF%x^@v}kKSTN8ctLh7DbV_>PI8$XmlYd z>is$bHh^Hx5wTwAG$d3__Fx7;$DQoPKM>&UiN#4|i+Z&4jBFiq7KY?=Y5tMwKA-ntc>10I`o&uD9Rqz>7r!|c zbXeAOWq5GVDdJwHB;25}3kku4(Vq*oz>pT9oXLDL(banx{C`Z&txewbJ66h#?_Ns> z_&hua1=mPR+B7wOXq@Q^v2j>;D7MTtxOm?_`tEz!gGdy*XBO*P{z4gkPT1h)G<7`C z7HaDSq&DJIfLu600XhBLyvU+veq~zbFWSgO&F+}iU9?wRMFAhem1Xji^psif-{*wE zw;tOz9GDbFlk)?E>P1D&+R|Rmn=d{KZnp@!D7u(Vos`QU7gVNmph0)`y-OZtwcV{H znLHhvN#8MvqD%q>o6lh6fm)c2pZcal!5@^G7;)qO1YzHuDG_m^bswTzbMg>jEoyx{ z%RHgWF7~IQpo05(68^N-+!7;Dxzku%we*3$_bow3NlM*eEvUR>XFrfo#^ow%|U_7CU=M#5p6p+ z!0wAjDf6vj5pf|Fv9Vl84I&qU>5dutuFAltxErYSw95QBaUYBd2`b*d5>+@vF=hA~ zoeMp`qtPygi-&L5Y{8Q1UavEk8u@iFeZtvFE-o_=UWNWvEpRaFZ&cQ5d57rrTF`M~ zYikm|+^*Dt$yV%zMU5#IYtN>HO~46fq@bl z##s0<4$nvsib=bqyENZUKlm&cIJ-jr4*bjqkx znI|I6VKdjZX9jwdG<9|anpJFn&h~6vbd8rlLs^0P+uO_knWx2#h&H8Cw6_uwsHN4@|;nL@%HIdBNNxrgf|0n}%A9 z0?~t0d<6ii;o#MyOjI;fU{P{js8DxEw>AGc!4YXt@&^3<^A}?O$+H?BfmncV=D!Eu<^n(0U<>#Cie7TcvPbB+f zu7XhSmHx{`Uzm}_rKT4oE1%{4X}O>=#lMW)^4^!tko0}BZSb_b<^`q2zT|2pE!86{ zqqZKRC0O7lvif>)xm-o*%TQXE+W9m#Q`DB&BS_u()*>$^mz2jS&sI1!(0H4OnOG?U z1DHc0ez=aUYM-Q$<4a|6S_NYmuR6D#LZ!2UpHu0ccBj#UlBU7#>cP)G-fKz%+G5@Z z-}x#$pn$7;3HmVlm|6rPrQj!`oxcvQlatg)3 zBX#=Hh8Nid%EMvXMtjo<^p^P@l)6uPOZj!Q3hs%RE6DpduvUD47WZNn&Ul~grFLGA zu6|q$1)*mX3KRy=X2*ipfQlcJU_z;lH9=@&|MHb|B!0`TjUUo|-o`21VhaK!@{d7f z-owi77<<@{Qd+D1i(2H8Q$CT{&a#Q7DqCCt#Cy#V}7%|v;ja7vhR;x7awUwO4LiQ>Q!#Z)Qt{k`&SiW zI2a_WgBSK)+n}Un!2lzVf z){s`}XAaeS&)HMq?vjSmkZ(H)F;aEXv;w;y9D`H+dHCzQbz%JN&PRM;!z^pCnBP|l ze|bbpjm@})qGH#g^VIqZTfRU0us&JskKC$jIt4_hLG`itv1xKcaR>?SWa79wDL0_% zyjmXUr#Q*PS|WHd011hz$(uE0EiGk3Zy6awSUw2qiI7gcnrwn=M&2aDgtnGeqW^IN z+U5?ytx)t71oa%~nSl?VF1H_ta6WA`z@8}^rXRWx4J*OM>@Odlhm&G=>GuP+>}yf! z*}|XHve6VMgm*0Ms7`!Hk8SrWen1~W0W8elxkCoDApC-Y6KH=d>ED~3{L_a=;=^;JI_*AMk33 zk*Ve`Ti1GlE2Xmg#>ij~{Dv~0+M?dI+48qsDgZh9BP(xC{*$te78x@-p};y*o2S|v z{rA0E+a^HgFVd7D4c3;Fjb`NgK=8j2sE@Mz&9CI+__iHfCwpwf`;nfiR|}&2%~dGR zds(|*J;JiKLexE?6@dnH<$yT@YjEG32H(SiT$_|!KiDqNUj%MwqE%;q2m$GpU+TsIXVkqZf-{% z3a=WN`_pT~rQqm@yD)3xeGUSII;v#+Q-}U_SjCqK_cz$adr=H;R(>&LlUOih*M=7L zbmPBEtXy>Rug1{VUHS6RFIoD<+-aJ9G~8g++7(-1=f6=~vuD6?;oTzYOIeh+m{}#F z1@eLwdFbvr@D&GFzzcF=e!Fb=X}aodj|X%>5Noj*zhmZNJa(j)C#Stwu5%jPorPxxw=8w~qKeeZPOtaDiIKjE zHP_khs$r>b;YuaU#N{#d|A@NA=t`Ps8{4++Ol;e>ZQHgcww+9DI}_WstqI@#-uvQJmAIFDbJ*r?ogusnIVmU# ztamZ&O({U$z5hLh^sMBPQZgoLbWxkzv!6kIJAc4Qn$7kry>tBGZB>52-ss4q0HS2pM8)N; zPGIk$sptM*LhbJC#}gWz$UY_0RJCfrk&9_b%Mf70+vR$KL|Z;tAX(gjw07cFr^6=% zk>DZY)}SBS)gAfT6zaTyxTb?J0`lN0aO1yoJw=*Mmx@kxX;w- zvr4<*pdF(X`(tlk{aZm5(C^&Li<2SHk7loiG0(ARaazF-UGb*9KzSA$gADyY6T}Jk zLOfWAxF0|e=)^D%#n7Vn2{r5ix^pO%dofg>PXUz&YMha&@QrGmkTz|RtO=qpBDqj4FsH`HO5HR$(^f(kXRSEZd!V}Qlyff<`zS%m7&V?e-pB1+xI_mWfQ} zl5!!IDcK+@qH}pkprghQ8AJ3E+KD%FfmteX6dTuaH}mS7UQkE)+zN}v*pWzHMIpVf z33+@;OV;1#V!Pd&VmoKfgU#I&>FuFZz7hqSX4$oMj`i{?P$ESbrhmbPjofU^nU<03 z6u7*_H_irJ^=z}G!ygXmtKdP}w?SUa7H5%_z+#y0nr!_2Jg6ij#|Gi}snb&2?7qc9Hs z#qLtPgvD3xL1NYz8Eft-`^O%3F+g)*z|KM~W9;2ig4#bKM3kO2BD8HRQ|e^&$i4|G zaw{$=5*xUYxKE{7HaatMu3a5eOa>iYfRgy3I$*PI&ems|h81ZN+$Z=YP?inXM<^L% z^R4#QMQGM#=c%JWftdpq?M%2yRc}KLC^4U{yw)hJIw|U4=z1TTokNdtfOIz5DTCDO zGvyJ(B}K^xY=w+*_joW(3_DVzsi>SY)xTBXn=3n$vVhclWM4OjQ{U2BuoJzZ(MGvL zN(75yktIoRs`%FK)nPn;!@*F#6LGEo6AEFizpkwpl%1*V&deIvuB&=|ObK%#Rmx*4 z^jyk=53mPBt|XeaNc4_Ycob7Ry<_toJ@(_himA|Mdpp|$?Q)mvY_OC;WWeR+x1KNj zFt^P$u2VKnXpEkFWU*6b7@2a7Sg5#O|5K%SPWn12C8#4R;k6T0E}Z5qB?juJ7Bi4> z-Nm0)w&*@8!yJ)uFT*X(#K-=#ineM3NaJl#6AM9AvF+l0&h2@L#`j zmUESiZc6R4rofKEaQoP77^tupPlKKH^x#xy@AxaEG}gW>${mihXs}MAJdYFCos8w(5i@N)kp&LKm5(4@ioG=dbhDDhtE> z>?O@Np7ZfU_ftsqiL%mY=!{E;D>NcE>x20P`_6kKk++0PED9yWo&g<&+Y)9{( z6xrUEmkv$zB0dXYWWR^lhxQKdW8WAr{XQTgah$+aSW-P?De(-NyX9Ygt;Xl}#(d&? z+V>wl1ov~=&7>HPXMb+4{|g%Ac{Dl%;23&l8e7B8PZ1A2a|eWRV=a&Fc8t*}5Z%L_ zjRCQgKxaS*3E6dlOqo9hDSjt|L6NgVBIRk|ixu_>Vy0Rn3ny}q1!ImD->PK4cjt}b z*hTjg{P}V|)9S|aaL8HZ&>V7h#=YKSSvr~hxxjD~#Jj~!1m^}fPUiIZUQY0kd+dgn zJ9%sqoY2;K%eLz=DN}-Tmzj@sz^iZ_PR@}fVQ)77(yQupoz-`k`5iqwdR&-1XXtk> zED82?CyBiaN|VkP23&d2abB$6Dg`^gS;+VeE(e_vIC&F%{6ABV^Oi-=xkxHit+Y8poL!Vcv0O0UZsLBuE~NHzpx( zh-~g>0VvPnp(8WN6u9YF&wo*HTE#=}wc$r_>SrcIgD_XjF|`~A8kS``0Zmm1>Y9Rd z(1azsSAh0R)|^pW_dB0kpq4j45M@Y#24a_+pkc59{UdStou0BlLEah(W^oc<5?yD$ zXJ})FPN6AaXm{wr$!}iIq#@*)BFO;lXgB(|=hwL;JJ4(M+upOT$1dwg`yppl6q*4t zH_>I=SD0J>KZK!kR%RgL4i2p>JA)s~zI8(liN5$C=Lg5W2|3-u&VtJF0Oyj-prL>B ze%#;OR)}@Oh=!j@sXKSTu>p<*c5grsm@)RMATt6w!=sFQzM}?PyO`fcS%V+G`?#Kn zPR#sCc%BIl9Jnn(Lz}d?MQ|Y&zaGq0DiP!be8wRII@BcPa(F?%D>J|7AbVDHz2v58 z_GqW4veoJ#%XU54s5gfg2+lujR7e@AU{a3t~-~j|>>nb_%Y0&-Fu)M^hp$e!`G`fPmovD=ZCYT2R zRg{`f>R7VVDQuY776hzc=-D@&BHwvTT@ez2^o;689Rnd_F;+hfgE%({aqqFLdP7>^ zcmp~e0ZQ;NQ28Xn|K^Ta<*x+1ZD)^L+lr+`?-eL9uN`gCj=;{gN9secxd0?ytJYd& z3Gf~w*@m1$!3^cn>E)Tt9Fb%idWXVF;D9w*pI9yg@sGJjs5g_BH3b~SmkCMREj6Ed zsSgWFb~N}gBq$ZS|9((5HCdy^zyuYP`cE~Ld}5iwc&znjNr}wM;E>A9MtdQ#;0+Wg zh^EyAmba?Nl&i^$j=ghYn03H4e@5k;p8FkX`^LA%glU!I6oSJQo&ttD@T+%=LK+QB z1Mt>HRRZ48e+tbZ5IEHAK0y#L32i??W(;_0+5L^gNlJ?&H62ATe^)UjpciTfNPo+r z5aXaOy0@No#jqh&5xDu}l0#kYHmK}22A-X`5f5C9I|L$hUlJ5 z&(X-PvAgCi76HO^Z+VEVOvw@oJh)4-G+x+nYNYF5X%82ZO-xH`BnDJT8xCr$WMLF! z9G2&d^0TpCDOk8Od<|~cbpJnojRr3r*VP6uLbLV1e3pakikZIF%^@;|My=VF?xHLR zqtGCcfe$fR;w*ufx`dFRG?<5j=dD4X4iV}e!JPdMh6!uK${>V%QlHlL{!NN1>x5n; zut!`{N@wp&{O*96ETJEm4W({+ibAV8o6G&$Ixudak*)Wi%d2ukqdirH8EP#wWM48f z!-`b5SD5RJR!42o14?1~&{b?LH#4raClON#6^9yqB0`{iJ!Q^~%D!Y_t?l95p+bVu zs4l9&7)h3s0Qx2Qv?9`OnD%TOq(20x7Jm_>a8FZn@26zykv;#x|3xR*no zKy~5v@6-FxHmr;#VL%QEDG8d4#cC^D~?*za<1>MR{9>$$%g2;BdO zoe)tYetm_6CU0tafW;kSX1nUqVv5|v#-5``WaFGIGe}~`ya`S?Bd^Ox{iV5=;WK&C z&(^6}t$Qiw*w_;8377X57NHa<*^cK&%;uDF@=slNizHR(Ni{!m&F<2kd0GGjix(Nn zJ!Eo8E*cVz!em0Tv!jS7@Of!}A*zPm+K&+1&WwHEiv7-9RRddVBm~%7Yp%sfM2>SH zW&v!jgsCvqVbPzYnDt@&0#NqccFuq;M{Rxx&uDCYet!4%%AiJuAa}+Xv1nmwwfTUf zlrP{{Jxn`pGp9TYPCG*&&RsYM!}beD70~VWr2i|_5OA5G=$Ts~pbBL6!N})t_vCb2 zLmGunjH6)7MC)p6F0i{Ap8fK%5vYI2G*9v80BFbBoc|l>Fw{L~bwPIGzq#m|+i69l z+x$dlJK#+}yF;>`P?C3+2U8qy0#ol|)y)!~N*5f^FmH0%wKf8jMb^?+oQ*7yrK*hf zQDA||!+|3z^{ObB0lT?0uoY zw07^-e3=4^R>J2+oW$Dus#2%^_N}SFo?*b&6E4?|Okm^m0RGqa5P9tDq~WMe6iMSAHdzyrN;5hA=iQf-hP08wt(tYB9nXS%VQ@-l>^cSX|J16X6`$}>Qe(R^eDr*sXNWWAcD<&2dhKi-2Ma<+GRd;4|!DE~?s2*P+K z0FcNfY&dlS;NQ!?=V$OQ`f`VS*yv11823|Xzu=uC>BJAP;>MRDurG@byb_{2i)nRT z6&MhPCz|33X_XMCYy$z+xu)wT)aq?Ih!3}J^lX|osb?Kge9Fu(-FYXG`yFCZk5Y(fi_+cf`-dojCe?c_438-m~UZ(pgs;}&`x3r=K zK8#D`!%oCG+sW*{yCTb%IMWH!ej1leLjh$p3`Ex=LYs*tzQy&+Wwc9N|UVPqUz*P?#V@eMaY z@RR~U2;Wqe*{@uZs1!PqC1N^R1(p3HIQ~nMcI+*OMx{W--m(2+ORHiae|-l5M8^^s zT=2UGj+bC9tjs?*7pqkEuqEovq!55(CG)_m1?JO6008xlon@0|(VI0zQi=h_=Y7Du z{Ip@g8Y6xJv6OdyU)2biRvD1;G{e=vrxb>bMC~&gJ{QNIC8KV< ze{IZt2T)EY+oehCzx`f8baiIa<*9{_^HQbYhG}wojY}6nv_=o0!~=`3%xPZ=CSzK5A2LA(;8S zO>ZCjrpy8=SvK~;b$}5fPovenBuyj~FIs8!)Sy4>uhuPO7T;?Wp19|h zgi4qzn;gYyn%r>#V%di{=X_jmlImY6CDgde(r}Z75}SP`IX7SL$^Coo_-;mzF{p&i z!KcGwCv6|C{M1yQ8i9Q{8du(MWy|!&cu3`Fd_>xzV_pTPMm3{gHdK*5o+JRBjrEWz zZ&k>!e~c{OC9%m%K2@FC-(lFk9pAjP1eDKOjIdE&VwPEwDis|C6_p>uP)VWL#MxNL zmn0gAgo<}p$qwrww_ob+?~Euv08l+`EDZP@Uvbn7as`|Mbs)L{@u^KChQh0-|DM8<=Grb!U~3Up%b~OHBTDSD;u9 zH~^}!5<|p+%^ib6nLm1blF(HasexX$j{A2n``-}Dn~PRgA=ZNbR2LmBb1!hE_1pRW z*!H6TZaTgW;mYZ zZHeeuLao$UHAQEWu9xX^mIPrE2wiv2Dan+yN8LRbx_DME;r@0aiNbqXjUtl{<&v4O zM0=kNjmK4T%L*jbmE;C=o(>A7ifJI4iLWfyLy|-^vXJsoDL`>N`EJ5LZ|?Vh$^sVp zQnX*j?Q%Dl*QY5jt&};Dwhn%p_R5qQOj{cmGgGzNMv?a}fY`DQraL}Zh=!6!H!Mef z-iQ<`$c=y_G=Yq4?4%kd}B8i{Fl zDZrf4!)T0oL^%0oRG%Y2BZFWunX9u2Hx}xcw+Muqo1`ezKo-%?@y0EkxC$WaXvem` zg1P@&+1`K~+cX7`6)b~#wL7r>QKib^5V47r<88x(CiMk7adC^uKAZMa3T?od)aV4Ot90XaJ)tavzhGx#N*L5QKJ-YlG zmHI=>QcUUqvIfSgmMUh;Qc4&uHNi+5z>_;iB|rXSht(gn+59ZAD*MpVv>t(l9L&E( zs~ALCNq>J88k$u17ndeQc4lBkoc+%M@D$k={F&^d(_jTTxU>dy&(?b;hls3Ox9&odemte3t;k*OIl!_?}7wX)F#45lig>VQTDT;WJ6Gr4x}e5r>;gu^xt! zrwq&#!C?a)^qXFkd#$S041};7=uUcL?oIn7SIH;<(Z{TI+pyQs7E6JfwNOoCdYX|^ zvw&E7ZFN~@55vv6lbOf2qml5h7+^w;J;en(7lP4>$juC{yRm&0$9q5w5m zdL3&7_Uqv7(UrkV@mPv<;T%Fw{TPvqbws}8M3g#Yq0_uHakGfSHSM^9?2FA%7k=0i zp|p{usMt_k#q`*%2}*T6FPi$rN?eqYzXw${Lbm#nP%yEP1?Sq51;;bjG(@4#(34J< z_j|4!pC0U?8t`AqVOLBv%3{sVg7)){>VT%TB?tHOJ#VZban#DS$WhSMq$;#G!c7xA zZUC`*a~VsUGPwO<<8YbIu3t%wHpk3}Mh}@InS>1grBvVH56Y1pU+T4wTvOPd?;5BZ zkdQrQ?-7=2eY^uZO-z}IXB_sS9rQ0Qd4grL@h0bHFm!OP2TJ}Ona&iS715ttBC>_J0xYBIh0|^EVpUzyO-aYu z;KlIZ^!1;MI*m<3vxPN=9n73&$YbWz$rLuX5gnX_V}&V4PF~4`R zFe-aXEL+=TT3#Q2QoTbCN6*)3rdamMCv^dl@aE5o<}DP$&1xNBapwTF&jl( zu-rj9is>CTA$?X8t4iGnm{xnlrszwH1e{hFp)KH^tdNC(GGV<{2OXnp)ehR$qDxIE zc|kBVzd`wq!iq>3c7vkv4udhP9rEecn6f4{U&&4V9|RRTm9-HBS0kUIW2J zd+P3lQ|7h9F|?`uyANlIRF>WOE7B}j?D<7P@?qC!_SCldDB}D+C^E8yvu*VW4a@%8>k_^)8{>u-cjQWNBnl(P2_I|pOm!!r zTsSQ%#0=h4z6`YZg}S(mPpPtf#C9W4&#sq`724}C2E6}U!F2z--pp>HB-REm8=mzf zS56xHrn*tFRdM1CZ}B`hd7b7U_@j(2McBdXrss=h#AGsTW@Zl7CaA~nmW}Ea=k_%| zSSG>q(FZ;Px)zWT?2G@XuwYv&ynXTK%HfaFZI3Cx zwpI}xw?2U^A;WIgmzK2*PyZ>E<(!^TC}%|~-eTe*w1IlUg3g>~;a6{zR5}@$Z{;77 zsaKtb!45%x;{0eDaoaiWn6g`ieCUm$PZ+Dra&06uSaFK2muSYA_e75#JaJ?j0DNSn zQ~GjXj1I!s5-^XctLwv-no@-!%K{X3jrW4tWc9myim)-YmxO2O#y7VN%>qq?S3dhQ zxd6Mp@#sx2a{VY%ZnwN-kTi0^wga;lwJRjYItvR0EEI`pTHS?Ued5V#F%M)#VedBm z6#CQnc~OqGiqbR}ts}nn)blC=nhZ|~3)RDyJohF>t+8dT9#pDf6$o2kL7Upb;0ni0 z(u)sr)S~5ge4I(Aao*!iR!P9TKyS*`xf@I}v5%}CJevQ5m(Wm&4=v$% z$DjjNt3_f~2jwRpfA=$=mLI{TS>_<)^)8^ph~$C;nESp+Bw7LdpubhH_~e5kQ-pBS z2qjU;3+AhkRpPG%!ES}3LX9p1pirA+R@Jy%iUUY$M$t>c^RXYj?*f2Z=D*OVhtY7P z47R*{u(qsQuP~es8eWc7z7x@`J>YwjR8rwU1pc(EFEL;O7vAK#*IFiPp@A73tDgFZ{V+534swNI5yzjN%2_KMg)&J<=G@-&S-8myw!@O$p-CstEbveho0b8Tb655UWUBMik z_mPqNzrY~7Xl3g(w6_}t6*c$P3uSXX}t06pLxWAby1$da5#pZ>NHkT`SIFbZzr8RFqaWlb3@sQOP}RkZK$ze;TrW8=*n zd{JR_{N_o)&0{*Mq>`vXi;wxuYepEq`p$>Zi#nurx z+FN-HYe;1noxe%SS(rj_$t^mZDS?>gZ5`81bGiq|b-K7a4o!RHzPM3Xltk&Dr!v!6=O$cgV$l$9e01(>pf-xmL zKp^c^Sd3G?yqTkIZ>&U= zeN^)ddkcN^*}!rso*h;tICq4r@W*~&a`W@!u8qBI@7P5?b?6*3>syf|)ekv3_duZu ztlf7pl=p<;g^eAyYWn(0#$-qWFu!}*Q~^9R@5WpA4H*mOgj?8O-pK{6J{t^_xIP}# zSpYJDZfk41uu#m%8*ce~p)wC&p6R!w7V#i#lv_{Vn()N0kdcuCaK`s!|Jb>vYarG?bsv*D-pY$}E&tZ`P zXSDJ8kQ(0*a=*&A&}hQc^cv|)423$e2p+APTR02@-Mj*(f?Ga$d0svh^%80*#ANVY zrxO_cL~r$s^NLd8hJ;yU57BgTu?LK)PS);Osb=>^8?ZFJGKs>vVTTvKoSHd5Z79NM z(G_|F2YbJhd0Yljgs73-^32H+mEGe2GJKtU-|!psqCYSZt!sheA4P49bB8hoQl#lb z4;Mh-L@p-!ot^_+Wq^`%);Ein1$H#sf5@is+*+&6T5$s**B3dM|=qJVk zFr%*O=v(ESJegK=NV@%3lU-TlLm8V z`#=d7frW}%q{=p(#c)tN$g=QIVP(|7=5Ao7)&<`Ml;&CVuoxBB#_hOqZ54DD{X#&84J>%jD7J9;itK?MIN1|J0feh|Q z5!BX*{H2?{y{}ty*3|+fumA9oD2?y3Hmw!#1oJO)*elc&Na4j4od8GX?p?5wc+?}e zLp^sv*2g+^63C-`a3ry6LO?zsI(YvPe~)0i#Js$9{sq{N@@xf-W0xDD+{y0W>_~tM zHkDUs`!VOj3&qe}CAmL0N~#z8Uml)fXU&Y4DoUeJL_cn{>6Q`_;*!Q)(ilt%>+~5c zChQySX7qL`!|udCd8N%l9k;SB2xX=*8I_&?|f^q%+^IajP9xFmuwB) z|1wnn_PL@2slOD}m|5ObjsZTc%A-=hZ}y#znx849H*EI4dQOdtQlM#Cyc;g@d2`F+e`rWlgziW5iaDmo^|`L$fij2HC- z#fU*D$yvOWnB#Zo2Xixh+Hc7s(a6IOi;et^JSmk!-&{*1!( zsFEhAp7S|poH{0s==4)VaHg_AO5S! zbkZ8OIHj0&Pp)cx_fsbr&`}%0ExlcApJ5D~XaxWO`;bw_&ZZxG*!11|1p0W_`|{~& zHvp@_OjG~^tEm;50e!fNf%MCT48Z;TT9KVPE7KTeau^iCb(kED8rOc6ABN2of-<$3 z%*~? zd^Cl6{H*@zyExvtdDZTONP6R)?NK{j(mBoHZgF*UTdo|P%0pbvYP|yfSAZinr*XN1 zNU?bn#*fa_F(oYYBvQ$4An}wXs?BP`Pt8mfH00cp&c~6$RidB+qeTO6GdD+409Rk* zaKae*hpoDu2*^1A6>+gSM8D;qVeGTyEEO+XeNp1}z-vQU;$^9OCMdKV#8JBbFfO!hsO&hJvaX zFh%uCf1wUqU~_hyoNm6aCqzJ|fph3RtM6nW_Hzk>m4%geh`zuj4|qV}8kywK^hI_D zjfPTPH2YMr>!+%nd>eP>B9X-3f~Zj%*Z7CyBEO-aqiZH|mxg_ndjDDX<5T`#3kIL8 z+4+pz387zZ`3wD~;KhsQ8AJ(d0i>0tC7Q;V`O$`FUP!c|m{utP!Uh5S8!>r$2U3kb zV{A|ggOw?p5>{g8lCI~=w67G1l5^p%XGS79Xj!)Xj!3JYk4rcF9mtm7nEa0ur=rCN zp{^EmdmSlgGJGS`)x8{1wE$v{34@a^q*qWBXwB=lzYZ?M86BFa(`8cFDss=b$aG-P z2i7B85KqmhfXLoBxpRVaoFA>yr?^$73F5ff^Q~AQy%Kz~{Ws_g!lhLh_8+G@^OcPWHxs-@@fiCdE)$qBUef#KB|VfsWzP z3ZvyOu}PW$YkTy`nim$Bd@gAnWyEu4(HH$?7OQEhCuRvkLoR^Rf%Lc6F)Q55>wmWY z?R|lA`lZ`Eyhzj3bI$>=0{vJ>Zsl}X+?I36y?Vg1&Rr#VTC92w*6Si# zGxPltny=hbfQ=u^tt~ku8r7dV_^-801xh~lMfOM%6KsoK75)9aS zifsJ_%c~fW1-II@2*v$}?`yHB&@z_#y*If{P;%%o-d-^!{pe zKxJqZwOX7TQ5;Vyh6!AP{(`Ot9>UBy`%E)Ji!=8u7scw}Pdxvi5e7x1ao~V_U^C-7 z6$j_kAeldBSiAl;+b?r>xNhJAUC z-qfHR*C-TbCmx|{1P0Au@y73aF4no<;|qQr0-rbBA7`z<&`brf8}F8k2vWj=sfMCP z5e__u@b~cKZD@xmPO}rk0Jw?8kzIQ|eK-7WGRE>byfRzR1{R}!HZs7ojVCWW0Q6rOWJAFu9`On^+HNHpux|o**Ka4gI0+V)hAA)< zx(pc}eVRR9g~KJf5+C(GOP}V@aXZZz7Z0xaKPEXH4UM2PfhRJW55FP?kw3UcCdd`{ z!Ny4_?f>8s)ESjom`pez!4BxYJ1YbGBthZ`XvNn$haTd0776Y*D?bJYi3H)6Z-^fT z?*N>mgUh18q(5wA_q|3-2#q16?jODxrz@W!LSucSk_B;^AOxmumOW-B;A>5*!v`Q1 z1><@QQ&a#$)a^QBZz-HAtgp+!+nWm4EtU!hi6#;Z0uY?7LI0SvJjL`c<@poM9Nwuk zfIW`kRHZmz`S@T}M7h8!;lI##aa7rXZ4)K`>jSQ>W{eaO2FTi+iW6;87<3Uldk>%6 z=HW(MxW%Vk%XAvc(YkA<+RliSxxTY(7UERAz3CT0N5G{HxVbVD6=KQ?`cc&tY zbSZnq9!T>jDgkd}eJT|t@-k!8YD~kF4oYM-(2Va$m>z~aB@73A;BcRVxE8lvhM+FE zWA8s#eeW5U1cx>R^_C_@q_1o?H7UsO6n+LcBt7-R)rWUZb0Y}zt!(1-^x=86X6Z{D zRk2|H6`PjQ-V3nu^hZ^G3RMJ$my6Jaxc4>>g&z+O(*oLrB|5b3%vu?dH83Szi;)l* zqG$h0=%O(%Vj&+=kB}V8gMMLA4O)A=s0fooJ#s}w<&QXH5HQv0p_Q|zUchtJu(ZRv zUKLmC=%QUjC_>cka*JDeFJUv9TqakZ1^5v#eMQ%rbCH34lxaM&Yk}5g;klw&^I# z>3VLvO$(1vHY5u?-1nJK-t=TwSzW897#&gjwhI3i?6PTzY+Jf}WQr7EzP+|E(*WrPKvabc9krI<)u zmL9msd@yI--XVKgDVi*(d z&=K$+wzI$Nm^t4scqT!EVw&;Lf z%<=KM`9z8UrBwy+hkEX5UXTn z+({8=ittWQoNv|8@Jy?Gf3HoitFFOT)q} zH2SpL7zX2@TXG1IjZC-boYPHBN0BM>Xc%T=f8l4!h#qnRCcV}iBJ86XrD^P~+=6FG z#8<%;R^w#Ooy*QHk|+7#ru0|DyM6f|n-cjHuA^7(j$G^u1Nsb@=O)-PVRBoTJZcr^ zI~!xWJOL+0@5UiDwd`9$@k(b+WbaSVFFP6IVUSa?WzrRn&!$^WRxUQykd3SY1Hjvb z5}4RJsBF*t1=-hi&M!KKO_-McU>)RMrmx4n2WL~2;%N-NVb!Y1GJQdjI0N!jCa^dU z!4H1LSH}mkV_628@M4eQJ=qTyOm|g&5|XU&JLo$mOrkC!*$km~aN91`H`kIZs2}1n z1t_St7{jm^+LUgf%%WLl7IOsfS{%~VgS^Ln7%&m;m{u$m8!Yiy{?xvNuP1@2nzpFq zvIU`Gx{fs7cR3;9qJSL8)j91cYylSh*WCR#Nm{$<4h$&fX2E@Uv~I2q;8+X4a_M}P z3CB?wENNRKC%a!f8Xapw20(IV*Yfyo^wd8{`s#elN&lA05TQaPhS#q9q%7Zn?zh_R zQDNJzwU6bs{%=h8rUhrW6gj&`MI&dHqDd73NA16%v_}jzhkUp3x9&&y+%NOl0zalM zmoRpPfZS)h-aX_w5X`p4N0n3(>T7g*6JIww8NGv#XSAf|Q91dU6yVu&Ol?2=!~v@+ zcEX^oG)+_oVI8uf4j&g5LPNDI=eYOKc@lgLe9Zn@7gauPpSF9{W8lX$*t}#f%_2m#$HqbdEFNL-&sQ03N^$ zXN94$dFGO|^zUpD;Mqkdb4vVcpH1NP^WFsp;XSEAH@9?K z);WOq)xkcuH&6Ule;bAy2O%$+9F_}^hybz@`1vnF{{5yYZ)m0YCJ#1+`Z~P#br!;d&y??wxqjkK^C-8nn z*Eo=k=?O~VhM=KL>8YY4Sn_^E0d^#Sw%$4yTCy5DYR2u#v3(3mGfwCkwDL$j#pUf= zO7*Uu-F0k)?fw3wL-X(uIOVQC7V0XI9p0BC<8}bSmIr#YkMkBRT%yW}(9}~gLkJ@Q zL~U_MNQSblr=nJZr^z7ZuIyuZ2H<57d4m;E55u2_tC$TO-{q@D02qMnqkwNtWx$-F zneq|;9k}`ADO9arc=&FaDe}|2tf@gyo&@*rHn*Fd;n#2PIn^98*IztrLDo8f4|Ps3 zlb2d+gTOjRW=|X@7SUu6aV6x(<}3 zxA>qgPL0Ms)?#qaWq0a&O0qFLhfK~vIIc0(kv*-WDw=P>5$$!a{yUv*+2O&9$JRia zNmChYW`_$}WhXdKe$L+dY4KZCW8iwql?h0^Jvf<@3inl@T)kXUYTc# zfwH;XUysf0qw85xtGb&(vsj#az1_H?n(4BD+$K-al>@z$0;WgJT0RQTk|^(Fo=WXM zy@y2_pR61lkRcch1{H#8ba8_OW#W;r>0IcTBy^a8LZ*-Qd|q;KYt_`uR=F-@WKO(X zjQ8^^XbIz~(jJqsA_8IFYsNLRZ#LHROVv*HHK1jU$J)bwM+K)eY`FDjrGqw7XFEhY zN}W6?n*0nV4B8AR!ivCwB}Ha`c!J12*gt+beGHs)r)SD-z5|;ai31q#Z&XBKjXS$* zk5AePg0g>zCY0fjnN(<=SI~pAlm=)y`ZoMA zG?5DQdkLIwYwK(3b)zHKqM%l%mZM5)7pD@UIU+*ceLB>u)6}4A`g$YN zfrtr+mg3y3`6Gz!P2L0Uu<+a%#k)@3i?-`}Ej$j#;qDhCcYAg0R$a>;Ag&W$c+?*o zJ&p1aQD(PCR(<7d>J7Dw-}}SecaXrcP-ZU#Gp%eHf=HrrS zVk)d4AlSf{U{4b`wOIz|k^-TvP9( z!;U;b++LYiGHnu(4hk}mGzlNJE5`)+8r|@dYq;;N^VO8TVV)o?alij@IQL=^WvcoBiFkt2S1FKjWEngu)?rF zE*Iz5&0&7nbfoaHS>cZnST@(C!dVm=m5rxtNxxRKHvW@1zQC-AcQRxw0Cn{W48i9t zL%~ykE*|^m9=c-Z-v62D2L2?}QVu*!5>rhL+r6ul@x{0q#rDB+`GNO9Yr(lxv2^7Ov~4=OdC_QKGeY7{A4tP`8EkF%&1&B1@VJB2lwBn$Fk zJGGEF>UDS1%|0QOoQp7xw4K8QHS3auI|j)u>4b&7)00=!EvV#ca~egCWpsGZX=da% zD-{(UftHbAq9*;GUeszIg$I6HSvGn@oB9jot9=fa9r=esZ)3KAvqW!*Wp-9Tu3#5-9JIjVa7RaVp$ge)30G4m zkOkAcXJCVlWRjer{}SIjou6t<(-oo$pV->--MWQdDYp{Mo!fq7cb<8OY zte4w`L1Agpi1dM&2p-CFwA+FY7Z+=lzapGlR9qZe*Me>AQC9zO`DcA|E*JP?`&Z<%vk{2`YX0vDpyLMQ}mxZHI?Y?}$PXu(}0l0j;Hau%0Xxj|o zn(H~~Pl`Ayuqhfac&8Y$mPnvj{YegeE`WA{AlORpSn}0B(e^79;Xt38l>5Wrnn~jV z<=`=RVT~{315C_JY)v-L52Ph3Xk|ZtaQYV`ZL zEDDLd?Xtw4^L~ZG&g4OF&j@P4oZ5lqj08H>;pfs~-tL97*9*>1556n}b-eAwr-*TG z-k2L{s9=;uIv4mjLPn9hloNAEtak{U-FB_bw>c=C>_z@Yhm?o3^OfitU8mmi#0?)l z4_{FyjI;%{BG+yKyZ8?N!Y{NvDkBeU5?Ggj!Qq)(cho2+BZl~kOa!YRagp;c*N&$_ zl67ulyis)~b9Z^gFv!Kiz-b+F#ba;K&)ZczSDj?0_k>OsMXcFh{BuMKM@JTA{0^j~ zAt9p%6hEF0R<|y54VO&le`xyV@VdU|>)5u@rm>C2jcqr!ZL4Y0*t~Jl*p1cLwryL# z)6e&P|H*Tcdvcz=_t~>%)|%OKs?XLgE5Iy~B`9^PSY7r@MqmJyQ>?zbsHuCbqqt%$ zB1w5V><|~T)Ey}lkuEgRQVWm&*W(RlMi6yM)Uo+rYs+?=)sGb0EK;NKUrJyYFYXH# zd*XUdwWGOuhXV^%)6Y#2WO3!IV>!TsS%p!s?mp1$B%I)xB^sH6$st_nvss-+BxS@l z?oE@>QM~u;pK@!FeGyn1shV;#$U>ocTwdP{FD(q%CIq9|Bm(IcBrd$ng{1V*kD~eh zF3ub2wb;VxhkY{w%YMVl&)JsWS%CILtY<5zy!hv{cgEAy{u(YSDiD z{LVN7(|^WzAgIO{f%_nj9-1)^5wVcTbC@a=oCq564ELW}gg}Ouvewzy&iz!Eg@7$b zV8cKiSdR`ukAmk{gM7*^CJ3Ohlhe9 zlg!aj8<&dzR{>0+<5#Q(D)R?>pdS+%Dr%#6_IjN23aq6E_Sa^F*^VCq3;Ek!D$OH% z6PPJ9c@9bm&Q=gKOozt3`@xJ=Uk^9`aC%ax!#HAgUGc^gGPzNW0VdK1qYpF><=YQN z4GfF`(|TY1q`$@NbqM1rlK^*Zi&@7kg(cz2!Zs+58YHSOtk*8cAybRu(?>aCpZa3Y zqe~(V>lSQdg&{o7$^vMgS_Khl!UEqv#^;iRTq%VjWZqP28Aa@06{j?T(6oKlX}bq! zPyjPrTvZ1hWNxyh$P0gyb^^4ZF$fWgEJwLNc1ZD06QabhdDd)wxUNhB*aD($ci=iA zZY{GFAj2czHgsl5AqTUgcZJJct}3U6TIMmieJFY3jf7h_3Rv;H@53QXaF5C-9x2P3 zl*8u}x+gy!it@eW^puR!hARB~zR*3~5s+&ebfP$LtNyex!GmA^V2uwWl+ znR(HjHK#j#`nHNx@b`^xglN0m`53QOcV(g!1c+4{w{HPZjDqO{fl#mIVoyp!N|XoI zr(Bj_L`-6J^Nsp4O;LUg#}Q}!we9^QqeCk0t&(OUi}9Gqasf+WLb8{qzKFS9#lvD{ zsw1k?AVg4)nMwI83wc_eO3YJ5KIGAfYJ4UcYCny|yUgfB59_?m{vwKlB{oYz9YsOcV zKsCfE*#?Haegu@cjY5>+!rwZBYdx+zC)Jh1U2SVm`g3{~4rYuH5y=ceXV$Mb)yd9# z2O!IkIFz@1`i3s`CAc2rG{+is?w3wkM6IExLCN~Z6=%vuV;Mwp@RTQN%Jp)#X^E6s*@MqWQ+GU7{uyjO^_t_qGyo zm#c?A(kOWczl}gCOM{J6c|!Sy5&8kx>7c_XF%=Og{1xhwXYFiX>z}e^d&#rt{Xpzv zcfu)i*rYjmCSSC>*(#R;3$+HyYb61-n*_33+>$-&9c)xOu-tm_U8+aTAG{od*cpKe z6EvRtkX~758fs*<^&0`N!STvo#BO2!tOxD4xgwh~59#gu(h!}IH}!lsAN>#y@9dw~ z`}HrOB|!3qdE}=uzd=UY^#qF3Srj!hd{GR>0FimZ+p16A(4(*gTyXftnf;k>O*z+U zJ)wNIOSqk{_wFH1ivMOby+(EijTIOp>@o$c7om^Y!1WXIg9=JKYTG9=0t1kxZuQSY zu_zw@Z4zPo;pym6DB3EpZZ2-bEQ`&%IQp)wqi0`@SNmr189rF3V`o>qv9ozPiH}VD zvHj7LIuu-`RR3EA|5FEaSJ%2m;myk^@2r=eomJZeM?=&S8o26Bl#gvO6kNmZk++#9 zJ|ZvcH`zINkBXg0Z6Jfu(UXo`Nt=dz?!ditwB`fi*7#v;^v|bE$Ff}#qtdL-49)&k z;8FaerV@X|+N=wr$o9yb+3<<`OWd9mxBWAvB2LKl3*1NDGdiU~AUopBH^Uhr1hz20k@CouEG;b%Eo1?$Nq#O2Wo3UUg-IlLAuS)$ccS-*I4FYi7Xk72G39#+nJH!lyPrTx?ugX7%|a*+ug**TCGaJ1 z5Lh1Jn8#cWFmq7P%>nef@6VziJ)AIot=?ZV*)CUuiLa@hfZO1)R%+{LLzGekpw?}@ zd^zdm3G`!3ee-EWk)V+gz7_VH!Y}D%OpzHYbQ~EmNfY(`rNY!`&!h09N{l1nAmHTSzZG396x(YAB8l2Wv9 zsC)e!*u!<*QVp+a1pe&Py&W3|_+s5T2iiSCG7^YKFjZeS$%;*CrsUU#-Yb=@361nO zd-KP%UV8p2Oi7*YcP2G0ur?uca-NX))L*QVcCEUL4GVTniiRHbue6VvMcNhblaR5| z5EPrjkul@TmS-D1ZVr)yrwzsagKK#xY^|sR z3u*I2xY}bn)Fu+kg~$fvbrvs@h0+0{oI!eFOrU#fy!1%K8!Z?%+3kVyh`OJUy`TCdVamDLU4OOA0OdiWxmYQ zC<+{Kf-&Ke1xnK#9(RGy0Fg>)A)^Zw%1aj=YBty?TD)9gJh zQoUHnGfrg_I(pu!4^jn%ecg<6!r{*k5r{>bqfv>^U9EX3fkNnqET(y~5+O9VpZc*7 z+< z-k;veMx_{x7P|*6Zy3jgsPm)NEin|{hk|Wmya#G3eBsMQ7CU(qzvbh}cn`bIu$5s( z#HW8~gq|Kc_Kom5ZTX9$F!W$?bLZbqJWbH25uYKh(%qLT>jk8`i+R))=OYf&h zcNNz9Qs`-r-XZ(r+Omv!NH#){!0^y${l(73nhr5%pQ!gegym#On^}jdAo|C{+6@Rnf|M|M7?{aCv_7&QKsWa&T=%+gVI zhflDUf~;jZ+_R3z_($>l0Dm)dU6Hb^FRRPkr$l&mO4vI$b8njlLx8bGsQrR5NCc4x z<*`q+zY|`3MlRryMz&@1-MIf-TJW`tCjR&jwczUj1WJ%YCNAGNWcxye(1od!Pn$v_ z&m(DCWqPzbt8l6#1b)|3t&yt|Y^*fItoF7tD+sgb94xS!gb8#xY88bW>tQjs1Dz-e zH0mfB^^S_G9?Oa+{R=MU{X>$w^*!+Q>zp82V6NqQfCz->OdDxz*CabI^~t{dw}2KH z)eVT_O!RbSH4LbpmUs|z5YXBgL)1f0O3@B~);?R9STpY`9^JOI_{7DbXLgkgZGH?H z0a7TxS=b1wB!e(fln|4k-O?>ae(~_CgfS)w{Eh;={RsD#>_hmaBAyuj*BHF+4%ejs zVoLto^ z%Di-Zs`h-w3~gXAudE3uD))5=9~KVtqmyfL{U-1M$)Y*C4Innb?6)jUP_)ekJ9lTp zTZjg;O-{=2@Eb%7IYem9S)ioU0(=TZ<^}ZO9?~krO?tax4JEk8czJl7SRrL7J*jfr zKHE4pQxy4=l8d!~pc39M@GO$iAiBsi9j#PKgt}aXmNy$O!HxLPEN^bxsZr}l0$QkZ z4xNf#mgN@JqOx(tD|I#NRU-2+v?*^n>C+Dg9{1|CJWX!fdTL2}=_Uf?znyiSIuU4{ zM}J{dBxMCprsg{3K*Ja=9AZv5W3%!?n&Y^Nr?X$C7uFMf}|(qGg+(>w3AwJ?xl#P z_Wu}mq%Y2$Ym6~+H=LsRk~G$nsLX?;*;6tQ7*PU&k@pR*jV86Zx7_gxnuDC;-I>bV z89Dic@5}6B6M0_9i`%HhXUfEK64ecNrGp<>GT+Vow)36 z;KKo**IWxN4I-w#+wA~KokPFiYKwIH%QNk$NX@X!Iu*}o&tK!1QstZz;9`xn#!tR; zK-tUs#ZVs=k=a(%#NyWU0+E?zf*6FB?qmaR%)|XUbqQUYx&Ia4{qv)_VbO@{j=}T< z88-BrO%bj^uW%@o5&5BcohLYFJD2iZ-BK+WVdFSeEG5L^r7-cyaG!lE6MNf7tmU+v zMM^KQKR5jAS)s0)Q*8y{DKx=yURrqsR}FD~su1({8sao!_}0nMVGq>$RlkU&5%>w; zZrOD@u}*puVPH?xUz_vHUb5%1z(G)1?kh~B+#ld%LR@Xi% z;k@!fMOvcb;X^LVWQT_LV>?o(6kCfLNsd-nHlRyesBPwS^id8D!+7C&xT@=L7_sm) z)KtD_hyM@9wFvLLaZg)YqX|R<9JuM%?txc%mp^%4hTy&hLsKUzKpb71QMo5qN)rw} zIqpQ@$;jN%OYU-6<$AcekhY!({%e0pR>qXQBo*SPSC=S1?7Xh(q|OUG+FS;s^W_GI z9^%g#(~dExaW_13&KXmb_h=O2SG}T>(Mo!^9e@kYQ_D#^lVg-nKu8DQRZFfWb~Nh_ ziqypyW4-_s{1xibrVjDhX7Tg`4U>;-j!8CW7Aqml!_Pfw=R;MqSKpDwo8XzM{52X@N6V&$q&J)K0`X z1G3d7L)OlBn5Gymi&P8z=Mvm+Z=9!dzY<=68TJrIG~KAa*n}_Fxu^U*0xB)ouP_cC`C1<=_UmYVWMbIBXi?%m(t9*A3p0@n?kNW_h}wDuJhn}+Bu&0~Wg5_glV z^ACjSL|p?pxDm&#JamR%DL$f>lt{!=Y?+cELZv3tX-!>*qOTH|%_Kq?Sq>B4wk3+e z1Q%{O3|%UayoZ1X&j}2afGHj*+Oy0U=B;kWonc|}?kN5jfmL44D08_-XKCr5zK*=* z@*qM3${6a|YhLlmD5UG73H?pN*y|LEt+wKDZ1~idl^skJguFdC$^Lc^iL?(c>i|k1 zHn3QbbzYGH!BBU_)9GH{p}^vd4k|wu10>U+iC9a(;!JScAvE19E%+Tb!5Ec#m?$%- zR1GOpLwMM}<@n-EaS5Qzw}2|L%*46e+CG}g9#&6yC#$Yqn<^}hNp@PA-P8fp&mrU$ z^VDg>kMm>x2nQ4R*d+B|$W6?qcb?qgmx)OL-s}h4nQ)XXnr(cm8%`-Wb67{5o|(uZ zNea%(Zz-2_`8E7B0P=%wrtsv*v}63DNrI2Pd0Q!%0xtHNNP!P-O;AXG+awI((mj=t zCK8W!|Ml^`2*4CUms^yk(!>#<3|BTm)wNY<-NXnO3as4EPDrhs`IJYKIH5fpMYsCr zY&HB#G9looO4j5)#G4$IG2^8~dWWPle~*mB$1XFlvM*l!`Ejl`b$%Ireq;Y8Br6R= zOrU&xl9?l`MO}HlyBi>SgHN z1cAaN*p8uV%a6p#ETEyHe9=wd$Eu6k>8F0$Fc5 zN1p5*fTAOdgo)^;wNfjS3kT|bJ|VjUd}#{x&NAUKB_ZSH^JukY6zAdpYLS1|_>4RI zv3j$Ei*dF8($%yIg4#15FKI#_Gp}6b@H@Ec=O&<*j=CzRN^0S%m}zqH!HvJ73T<~kUsd$R+wgg*QI*IQ%RqnupSEqjLS8fk>X zcgaPN;H(eWk<1SZXLv`SP@{lb`7IUzU-PLS*}h+Cp}grr@(-9~TW{iKR0dk2PjCcG zfQ3KK9U;G;do=fAZ^`=lfxSfy(TVx>JW?VO6{&Z{b?<9zSDj3a$x%gb!WK+3e%qpK5KTo#qoChcx8>8afKp!}XGWq7C;tSc9HURVBe| zh2K2MhWX3`&=*1s^MUc3!H^cN&i&#)rz$A?bKv|7CUW8K{c9?U9h+Ek;dd?G2I%@= z_7`76o;f*NjJ(qXyWnG7OYmn+(tsQ_KEc~;AUxg#q1M^SF-*1BTfogBg zM_m@T5DH9bqTd4c&YqQShmNSXY?LP>4jkvgo}d)$yHJgt^=`2!@7A$j%qYAXc1$;& z4n1lp{O5t6>IfeGH-0sSInX;LXo5VQ+4OaRu@=HOvmS6uFxsJ+I~jZt{Z?hg>%|h`GfuX=>3pRrK!md$cA{ojmMk?)1o2+B z+hd~O6G`K2v5~Zk*2CLc*KX#%8VZ{><9yivH!LB->Hb( zPYLxhrl{{4)ov6&4KaaQ_!~a2Ri5tL18@*kI*}j~wkb+9{gS7_4vuoNRToc4P36kh z!mDp*Cz0cItY691RcF*8mZXKG8lN%eIm6w0A%M5Qwfzoo?lsADJ6%&LqNCba83KEk znyIK%wG2|l0L^2hIF%lsI6RH6by#)jUPOg=14`9fEpo%xD8@3sRj@QkFjD!cgnv8D zey5V%gLd_JQ#2jm0^|r8drn{GCMkkc(Ys*X9Zbgm6+;Qs89#kxcS1!L7{dMR102_2 ziYW=Ey1=i~LEk?61uDT|@?O>6-<%B~{hc4&IzqIpq04vGr6n8KqZU*nL5&!)^5>Is zP=gd1B7&lKr>W0MF6XH=+QQi0;Q&EspT=)ZJT|t&G z0)nDbar4@eCm_0quEqKbEz&E=k&+|ZfAqV}2(TAZIA}Q)Q!wA>2KbxHOEqRqRuc8g z-y_Q>a|Nr!JESx!X2vp4Kn}o4UHgLtE_p~h_{)OiX%3~0B$(b&yF80a+KGgORkPwl z@F*lElR_n8G7b|9a^yM*p;vBxI7nlhFIVb*jb+!yqFA-4e~lLUnf$POOVg5&3r^!UyMfn5k z#V8k>^}Mc#hL(6OtUdPrkNdwK434nB?Srn2aFWs4?lpg18F4awHao2$_^}0t>;%%F zvA{R!04o~su748?SF`w$y<1axAD4;PGd0|zv3SJqyW@VHdx1^D{qaK|_4g#&+0fEJ zq6y3rz0mkU)-`sx*O+8o2--Za=!pySiNS%}7@3Ii_!BilVzlisK1)twAUUDekfn2u zt7)t-MAY`>seXg`D=ow`F6DwDh;Q1=7%eoTxh5=(=H@d*bJWejCO&Nap&qc`(#;Grg|a6 zUxHV&8ICuVMdpy?xAmvTweQa9%OlO2!Gepou7=h6h>QB3cICP4UTN$W8hpr}n_Ow< zOH2p+!9-+TZC#isdU8UfrmS;NuPjB@&)Rzqy}(57TTG`xzQdM-kRM@3PF99acx9xU z{7I|3-$TO=6)Nm+e$V*!`%#FGPiT${{9E|@-8LsN9#WPMR}@4(PbJ^-2S<{N>gojC zWJteTv+&AlP*Zv)tqrF2rSU2HQzJ8ZRI>ByBWJi#MhwSc*Dmkbu3Rx%>a;Zpqbg!~ zeIq@u;v6RERM6+R-|;(tSu?JL;Fg0c-l<;AiAQcq?DtJY@rl0#x6%m-)@DY?@8mOc zC?h6ki-DXwZ^m!z7CM<>ZH&PT)R7Ri_-&Urn&G9-z~!$dGq!GY1&|RKWYP1nNw%ST zM%AnP?U|^D>Z$y*Q_e)k<3ti02h0qeU{7rkz@+@vTJ5Kuv)UO3jk-(VH*)r()}CQU z?!JrN!JL$eh}IW-P5hkO@ww?7%=PC1b(%WSj)!UncMiE=k3h-2Nqu*^R{OU$*DI6Z zIoK6%f1avbEv$tvF;FhBE%Ld3m|! zKN7d{k%$i3x-6mT+AyXm$nOcFbP^71&cEozrxOqrGgcAaTt} z=UFBCHf?T<{PU2vef@L|Jw>HaV>of1U_Ovn8GKm4-C&z+9jSTx_orkDygikKxzq%rl9cooWOh$YC;M2+i+15`qWS2*^_za?-8OmG?`q zTs*Sh(5!SmnW@28VuH|jCUrx3^7wzjs{7yuz&l^~j4-*aGdUjO^G(vpR<7jx6a$vu z?f0R%P=w@$8{O3_$5hSU!|wC7nqi*Fy(fd{H!HB=u(Dj2kEvj&HRHZC2e6hTLWS4B z^BSqD^bc!12XhUY5Kkj4rHwxo6zmqqw%D=1X`i#HcG&SxkhFxwQAfYZr=g$T;b*c((Pz7h&WaO8AfDHkNQd zx1zYZjYr#N%Xv2UeuFw1D?Zhq62uGNrya#Svutzin@6S`ZNFjgkGc^!nXDi@WRsh( z2mlU+RhpiB&!rf2}YK(oYJ| z$N3GxSI>;c}qW6mEc$6_KV6pIiD{W|pb*cvA zDYpr2M$iF}CQ4s0iYQsXM>iBYkDn){$^!L-scF&djh$< zq8UDZq9eGt{#lTB2i1_vczS;3cv)ew|F%=}Xs*RyB|7bS<5*hoW52%F3CBYz^~n!g zr*xAwBI`?w7Cpl)`~sj~Yh-4SG2lB2^OBRlem2YSb4mHHGT&P>~UFE%dHoYvSRZse4UwM1zMDL^@@V3VK%jh44tod zpUauk_oEq1Hn&1lBZG~U3d`?j>F;*o+LU#0*P5-o=)xrSMq8Lf&vrGFu%0{e*qoTY zHBv3oW>;+QKYY3jKLvrf&}}_np0oq{A9Qwn={peWzIhXDRKwL4dozx(OO}I8oqk%A`M7kef}86;_9@woxsT@F*e6 zL?{hCcTqxaD+NVxU|ETo1qzLIwaMTbBO`A-%z%`B02r%UGLA&e{W&8}&ma~T%42(n z@%@D8chtVIZ=DitPVtIRDUu5LS=djG5ISAH*R~|HSTpeDn1=-z%}Y~TysD66;&Y~A)IyZMFRdu?HrZFR+`RWt*9xE+j_`@O9` z32zwQY;u^w^+_A&fi-I=C^-6@r23A%FIwhtU>k zWk*asgpp{Hi8rkWytB`RIIOT|YFyuf>yP;D3}|fx+q0(!{7?tAHiKW1C47wOxSD0R z(r)IQ)|bybEWGR#Z;GF_GGXJutcY1xY?!vHZuPtxVdh(0-rS_|!SC1`xSL+xP%U5! zw`wFhC+ztw<+ch>uE@%dFacoeKj-r1hNz!dlkD18<^J;BqSN5Xm+J(OTAO$$M`Y&_ z_J}Q)@rJ>REkZMj>RnjW@xWcBAQJVqZ_kaq+>A{pcOWz?9TD7}HFC+9=>o12Y6m0k zcTb4rHwglc-3P2b;a+@Qc&DXazhOI5=weg$)Hh1vDl&?2Q8#)}FY~CENptxk%977oU3#Gjh@-~;U zt`gE7%;^u9V+zj}LU^cC(4Mp3E$2U1xNRWk^UGEt_NMNBj*S?{3Y(s^zVnZb6-4qx z%lP_sbyw}j?bgr1_IK!Uhcg=6`+O<1-;TJYp<4^_t0FzQ36N4^UV^A}=P z6WME^d;LIucA!$R?Q(1>8;fⅇA!NtoHZzvJdV-XI%Er?E?-6!kwkOnoTOagjt4s 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 y-0qdTN9DgcYphwFg|+%XYrv9HlK2qm5tN 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� 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�D2R>rQmRO#pn2L+uWnCdA{ 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

    gK#iN_m$w1;L!DhbjxTxek|iyu$eR>=ed`>q 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

    <10n@ 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%0D_w;dS8 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

    N(nDtmuq1xOupSyQUQ! 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 GbjB9`_vP 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≫qwoT^&j&0Y`?AeVc}WDUt#sP#Nq##@Oj1W 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 PWdvSE;AI5*9D)A@9#ks` literal 0 HcmV?d00001 diff --git a/ecs-agent/daemon_images/csi-driver/update-gomock b/ecs-agent/daemon_images/csi-driver/update-gomock new file mode 100755 index 0000000000..9b99c933d9 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/update-gomock @@ -0,0 +1,11 @@ +#!/bin/bash + +set -euo pipefail + +mockgen -package driver -destination=./driver/mock_mount.go -source ./driver/mount.go +mockgen -package mounter -destination=./mounter/mock_mount_windows.go -source ./mounter/safe_mounter_windows.go + +# Fixes "Mounter Type cannot implement 'Mounter' as it has a non-exported method and is defined in a different package" +# See https://github.com/kubernetes/mount-utils/commit/a20fcfb15a701977d086330b47b7efad51eb608e for context. +sed -i '/type MockMounter struct {/a \\tmount_utils.Interface' ./driver/mock_mount.go +sed -i '/type MockProxyMounter struct {/a \\tmount.Interface' ./mounter/mock_mount_windows.go \ No newline at end of file diff --git a/ecs-agent/daemon_images/csi-driver/util/fs/fs.go b/ecs-agent/daemon_images/csi-driver/util/fs/fs.go new file mode 100644 index 0000000000..bcb5bf39dc --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/util/fs/fs.go @@ -0,0 +1,51 @@ +//go:build linux || darwin +// +build linux darwin + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package fs + +import ( + "golang.org/x/sys/unix" +) + +type UsageInfo struct { + Bytes int64 + Inodes int64 +} + +// Info linux returns (available bytes, byte capacity, byte usage, total inodes, inodes free, inode usage, error) +// for the filesystem that path resides upon. +func Info(path string) (int64, int64, int64, int64, int64, int64, error) { + statfs := &unix.Statfs_t{} + err := unix.Statfs(path, statfs) + if err != nil { + return 0, 0, 0, 0, 0, 0, err + } + + // Available is blocks available * fragment size + available := int64(statfs.Bavail) * int64(statfs.Bsize) + + // Capacity is total block count * fragment size + capacity := int64(statfs.Blocks) * int64(statfs.Bsize) + + // Usage is block being used * fragment size (aka block size). + usage := (int64(statfs.Blocks) - int64(statfs.Bfree)) * int64(statfs.Bsize) + + inodes := int64(statfs.Files) + inodesFree := int64(statfs.Ffree) + inodesUsed := inodes - inodesFree + + return available, capacity, usage, inodes, inodesFree, inodesUsed, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/util/fs/fs_unsupported.go b/ecs-agent/daemon_images/csi-driver/util/fs/fs_unsupported.go new file mode 100644 index 0000000000..bf9d877842 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/util/fs/fs_unsupported.go @@ -0,0 +1,31 @@ +//go:build !linux && !darwin && !windows +// +build !linux,!darwin,!windows + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package fs + +import ( + "fmt" +) + +type UsageInfo struct { + Bytes int64 + Inodes int64 +} + +// Info unsupported returns 0 values for available and capacity and an error. +func Info(path string) (int64, int64, int64, int64, int64, int64, error) { + return 0, 0, 0, 0, 0, 0, fmt.Errorf("fsinfo not supported for this build") +} diff --git a/ecs-agent/daemon_images/csi-driver/util/fs/fs_windows.go b/ecs-agent/daemon_images/csi-driver/util/fs/fs_windows.go new file mode 100644 index 0000000000..1748a92514 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/util/fs/fs_windows.go @@ -0,0 +1,63 @@ +//go:build windows +// +build windows + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package fs + +import ( + "path/filepath" + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +var ( + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + procGetDiskFreeSpaceEx = modkernel32.NewProc("GetDiskFreeSpaceExW") +) + +type UsageInfo struct { + Bytes int64 + Inodes int64 +} + +// Info returns (available bytes, byte capacity, byte usage, total inodes, inodes free, inode usage, error) +// for the filesystem that path resides upon. +func Info(path string) (int64, int64, int64, int64, int64, int64, error) { + var freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes int64 + var err error + + // The equivalent linux call supports calls against files but the syscall for windows + // fails for files with error code: The directory name is invalid. (#99173) + // https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499- + // By always ensuring the directory path we meet all uses cases of this function + path = filepath.Dir(path) + ret, _, err := syscall.Syscall6( + procGetDiskFreeSpaceEx.Addr(), + 4, + uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), + uintptr(unsafe.Pointer(&freeBytesAvailable)), + uintptr(unsafe.Pointer(&totalNumberOfBytes)), + uintptr(unsafe.Pointer(&totalNumberOfFreeBytes)), + 0, + 0, + ) + if ret == 0 { + return 0, 0, 0, 0, 0, 0, err + } + + return freeBytesAvailable, totalNumberOfBytes, totalNumberOfBytes - freeBytesAvailable, 0, 0, 0, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/util/utils.go b/ecs-agent/daemon_images/csi-driver/util/utils.go new file mode 100644 index 0000000000..f8fa7dbca2 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/util/utils.go @@ -0,0 +1,45 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package util + +import ( + "fmt" + "net/url" + "os" + "path/filepath" + "strings" +) + +func ParseEndpoint(endpoint string) (string, string, error) { + u, err := url.Parse(endpoint) + if err != nil { + return "", "", fmt.Errorf("could not parse endpoint: %w", err) + } + + addr := filepath.Join(u.Host, filepath.FromSlash(u.Path)) + + scheme := strings.ToLower(u.Scheme) + switch scheme { + case "tcp": + case "unix": + addr = filepath.Join("/", addr) + if err := os.Remove(addr); err != nil && !os.IsNotExist(err) { + return "", "", fmt.Errorf("could not remove unix domain socket %q: %w", addr, err) + } + default: + return "", "", fmt.Errorf("unsupported protocol: %s", scheme) + } + + return scheme, addr, nil +} diff --git a/ecs-agent/daemon_images/csi-driver/version/version.go b/ecs-agent/daemon_images/csi-driver/version/version.go new file mode 100644 index 0000000000..3ea74addb7 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/version/version.go @@ -0,0 +1,43 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package version + +import ( + "fmt" + "runtime" +) + +// These are set during build time via -ldflags +var ( + version string + buildDate string +) + +type VersionInfo struct { + Version string `json:"driverVersion"` + BuildDate string `json:"buildDate"` + GoVersion string `json:"goVersion"` + Compiler string `json:"compiler"` + Platform string `json:"platform"` +} + +func GetVersionInfo() VersionInfo { + return VersionInfo{ + Version: version, + BuildDate: buildDate, + GoVersion: runtime.Version(), + Compiler: runtime.Compiler, + Platform: fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH), + } +} diff --git a/ecs-agent/daemon_images/csi-driver/volume/metrics.go b/ecs-agent/daemon_images/csi-driver/volume/metrics.go new file mode 100644 index 0000000000..b19025850b --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/volume/metrics.go @@ -0,0 +1,117 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package volume + +import ( + "k8s.io/apimachinery/pkg/api/resource" + + "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/util/fs" +) + +// MetricsProvider exposes metrics (e.g. used,available space) related to a +// Volume. +type MetricsProvider interface { + // GetMetrics returns the Metrics for the Volume. Maybe expensive for + // some implementations. + GetMetrics() (*Metrics, error) +} + +// metricsStatFS represents a MetricsProvider that calculates the used and available +// Volume space by stat'ing and gathering filesystem info for the Volume path. +type metricsStatFS struct { + // the directory path the volume is mounted to. + path string +} + +// NewMetricsStatfs creates a new metricsStatFS with the Volume path. +func NewMetricsStatFS(path string) MetricsProvider { + return &metricsStatFS{path} +} + +// See MetricsProvider.GetMetrics +// GetMetrics calculates the volume usage and device free space by executing "du" +// and gathering filesystem info for the Volume path. +func (md *metricsStatFS) GetMetrics() (*Metrics, error) { + metrics := &Metrics{} + if md.path == "" { + return metrics, NewNoPathDefinedError() + } + + err := md.getFsInfo(metrics) + if err != nil { + return metrics, err + } + + return metrics, nil +} + +// getFsInfo writes metrics.Capacity, metrics.Used and metrics.Available from the filesystem info +func (md *metricsStatFS) getFsInfo(metrics *Metrics) error { + available, capacity, usage, inodes, inodesFree, inodesUsed, err := fs.Info(md.path) + if err != nil { + return NewFsInfoFailedError(err) + } + + metrics.Available = resource.NewQuantity(available, resource.BinarySI) + metrics.Capacity = resource.NewQuantity(capacity, resource.BinarySI) + metrics.Used = resource.NewQuantity(usage, resource.BinarySI) + metrics.Inodes = resource.NewQuantity(inodes, resource.BinarySI) + metrics.InodesFree = resource.NewQuantity(inodesFree, resource.BinarySI) + metrics.InodesUsed = resource.NewQuantity(inodesUsed, resource.BinarySI) + return nil +} + +// Metrics represents the used and available bytes of the Volume. +type Metrics struct { + // Used represents the total bytes used by the Volume. + // Note: For block devices this maybe more than the total size of the files. + Used *resource.Quantity + + // Capacity represents the total capacity (bytes) of the volume's + // underlying storage. For Volumes that share a filesystem with the host + // (e.g. emptydir, hostpath) this is the size of the underlying storage, + // and will not equal Used + Available as the fs is shared. + Capacity *resource.Quantity + + // Available represents the storage space available (bytes) for the + // Volume. For Volumes that share a filesystem with the host (e.g. + // emptydir, hostpath), this is the available space on the underlying + // storage, and is shared with host processes and other Volumes. + Available *resource.Quantity + + // InodesUsed represents the total inodes used by the Volume. + InodesUsed *resource.Quantity + + // Inodes represents the total number of inodes available in the volume. + // For volumes that share a filesystem with the host (e.g. emptydir, hostpath), + // this is the inodes available in the underlying storage, + // and will not equal InodesUsed + InodesFree as the fs is shared. + Inodes *resource.Quantity + + // InodesFree represent the inodes available for the volume. For Volumes that share + // a filesystem with the host (e.g. emptydir, hostpath), this is the free inodes + // on the underlying storage, and is shared with host processes and other volumes + InodesFree *resource.Quantity + + // Normal volumes are available for use and operating optimally. + // An abnormal volume does not meet these criteria. + // This field is OPTIONAL. Only some csi drivers which support NodeServiceCapability_RPC_VOLUME_CONDITION + // need to fill it. + Abnormal *bool + + // The message describing the condition of the volume. + // This field is OPTIONAL. Only some csi drivers which support capability_RPC_VOLUME_CONDITION + // need to fill it. + Message *string +} diff --git a/ecs-agent/daemon_images/csi-driver/volume/metrics_errors.go b/ecs-agent/daemon_images/csi-driver/volume/metrics_errors.go new file mode 100644 index 0000000000..7719af4161 --- /dev/null +++ b/ecs-agent/daemon_images/csi-driver/volume/metrics_errors.go @@ -0,0 +1,49 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package volume + +import "fmt" + +const ( + // ErrCodeNotSupported code for NotSupported Errors. + ErrCodeNotSupported int = iota + 1 + ErrCodeNoPathDefined + ErrCodeFsInfoFailed +) + +// MetricsError to distinguish different Metrics Errors. +type MetricsError struct { + Code int + Msg string +} + +// NewNoPathDefinedError creates a new MetricsError with code NoPathDefined. +func NewNoPathDefinedError() *MetricsError { + return &MetricsError{ + Code: ErrCodeNoPathDefined, + Msg: "no path defined for disk usage metrics.", + } +} + +// NewFsInfoFailedError creates a new MetricsError with code FsInfoFailed. +func NewFsInfoFailedError(err error) *MetricsError { + return &MetricsError{ + Code: ErrCodeFsInfoFailed, + Msg: fmt.Sprintf("failed to get FsInfo due to error %v", err), + } +} + +func (e *MetricsError) Error() string { + return e.Msg +} diff --git a/ecs-agent/go.mod b/ecs-agent/go.mod index 422bf17b67..7ab515098a 100644 --- a/ecs-agent/go.mod +++ b/ecs-agent/go.mod @@ -5,11 +5,13 @@ go 1.19 require ( github.com/aws/aws-sdk-go v1.36.0 github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 + github.com/container-storage-interface/spec v1.8.0 github.com/didip/tollbooth v4.0.2+incompatible github.com/docker/docker v20.10.24+incompatible github.com/golang/mock v1.4.1 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 + github.com/kubernetes-csi/csi-proxy/client v1.1.2 github.com/pborman/uuid v1.2.1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_model v0.2.0 @@ -18,24 +20,33 @@ require ( golang.org/x/net v0.8.0 golang.org/x/sys v0.6.0 golang.org/x/tools v0.6.0 + google.golang.org/grpc v1.52.0 + k8s.io/apimachinery v0.26.0-alpha.0 + k8s.io/klog/v2 v2.100.1 + k8s.io/mount-utils v0.26.0-alpha.0 + k8s.io/utils v0.0.0-20230505201702-9f6742963106 ) require ( + github.com/Microsoft/go-winio v0.6.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/go-connections v0.4.0 // indirect - github.com/docker/go-units v0.4.0 // indirect - github.com/golang/protobuf v1.4.2 // indirect - github.com/google/go-cmp v0.5.5 // indirect - github.com/google/uuid v1.0.0 // indirect + github.com/docker/go-units v0.5.0 // indirect + github.com/go-logr/logr v1.2.4 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect - github.com/matttproud/golang_protobuf_extensions v1.0.1 // indirect + github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect + github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - golang.org/x/mod v0.8.0 // indirect - golang.org/x/text v0.8.0 // indirect - golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/protobuf v1.23.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect + golang.org/x/mod v0.10.0 // indirect + golang.org/x/text v0.9.0 // indirect + golang.org/x/time v0.3.0 // indirect + google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 // indirect + google.golang.org/protobuf v1.30.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/ecs-agent/go.sum b/ecs-agent/go.sum index 7a9782df64..1887e65d1e 100644 --- a/ecs-agent/go.sum +++ b/ecs-agent/go.sum @@ -1,4 +1,9 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= +github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -9,9 +14,14 @@ github.com/aws/aws-sdk-go v1.36.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zK github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/container-storage-interface/spec v1.8.0 h1:D0vhF3PLIZwlwZEf2eNbpujGCNwspwTYf2idJRJx4xI= +github.com/container-storage-interface/spec v1.8.0/go.mod h1:ROLik+GhPslwwWRNFF1KasPzroNARibH2rfz1rkg4H0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -21,16 +31,27 @@ github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPa github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= +github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= +github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= +github.com/go-logr/logr v1.2.4/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.4.1 h1:ocYkMQY5RrXTYgXl7ICpV0IXwlEQGwKIsery4gyXa1U= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -41,16 +62,26 @@ github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:x github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2 h1:+Z5KGCizgyZCbGh1KZqA0fcLLkwbsjIzS4aV2v7wJX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= @@ -64,22 +95,29 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kubernetes-csi/csi-proxy/client v1.1.2 h1:zRZOv9RXAd9d/46RIiVkzyssIw5tAK7IJlYIk3gn9FU= +github.com/kubernetes-csi/csi-proxy/client v1.1.2/go.mod h1:SfK4HVKQdMH5KrffivddAWgX5hl3P5KmnuOTBbDNboU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= +github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc= github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= github.com/pborman/uuid v1.2.1 h1:+ZZIw58t/ozdjRaXh/3awHfmWRbzYxJoAdNJxe/3pvw= @@ -95,6 +133,7 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -105,73 +144,126 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c= +google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.52.0 h1:kd48UiU7EHsV4rnLyOJRuP/Il/UHE7gdDAQ+SZI7nZk= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0 h1:4MY060fB1DLGMB/7MBTLnwQUY6+F09GEiz6SsrNqyzM= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= +google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -179,9 +271,18 @@ gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +k8s.io/apimachinery v0.26.0-alpha.0 h1:cnXW2EigxCOrD+s52R9r5AZOcu1Nbv508gOCgSQkbo4= +k8s.io/apimachinery v0.26.0-alpha.0/go.mod h1:qMx9eAk0sZQGsXGu86fab8tZdffHbwUfsvzqKn4mfB0= +k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= +k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/mount-utils v0.26.0-alpha.0 h1:OOqJgwTHRsCoeWHYa7VWMIQrQWJuDeBGK9an8CfBanA= +k8s.io/mount-utils v0.26.0-alpha.0/go.mod h1:WTYq8Ev/JrnkqK2h1jFUnC8qWGuqzMb9XDC+Lu3WNU0= +k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= +k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes b/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes new file mode 100644 index 0000000000..94f480de94 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes @@ -0,0 +1 @@ +* text=auto eol=lf \ No newline at end of file diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore b/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore new file mode 100644 index 0000000000..815e20660e --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore @@ -0,0 +1,10 @@ +.vscode/ + +*.exe + +# testing +testdata + +# go workspaces +go.work +go.work.sum diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml b/ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml new file mode 100644 index 0000000000..7b503d26a3 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml @@ -0,0 +1,149 @@ +run: + skip-dirs: + - pkg/etw/sample + +linters: + enable: + # style + - containedctx # struct contains a context + - dupl # duplicate code + - errname # erorrs are named correctly + - nolintlint # "//nolint" directives are properly explained + - revive # golint replacement + - unconvert # unnecessary conversions + - wastedassign + + # bugs, performance, unused, etc ... + - contextcheck # function uses a non-inherited context + - errorlint # errors not wrapped for 1.13 + - exhaustive # check exhaustiveness of enum switch statements + - gofmt # files are gofmt'ed + - gosec # security + - nilerr # returns nil even with non-nil error + - unparam # unused function params + +issues: + exclude-rules: + # err is very often shadowed in nested scopes + - linters: + - govet + text: '^shadow: declaration of "err" shadows declaration' + + # ignore long lines for skip autogen directives + - linters: + - revive + text: "^line-length-limit: " + source: "^//(go:generate|sys) " + + #TODO: remove after upgrading to go1.18 + # ignore comment spacing for nolint and sys directives + - linters: + - revive + text: "^comment-spacings: no space between comment delimiter and comment text" + source: "//(cspell:|nolint:|sys |todo)" + + # not on go 1.18 yet, so no any + - linters: + - revive + text: "^use-any: since GO 1.18 'interface{}' can be replaced by 'any'" + + # allow unjustified ignores of error checks in defer statements + - linters: + - nolintlint + text: "^directive `//nolint:errcheck` should provide explanation" + source: '^\s*defer ' + + # allow unjustified ignores of error lints for io.EOF + - linters: + - nolintlint + text: "^directive `//nolint:errorlint` should provide explanation" + source: '[=|!]= io.EOF' + + +linters-settings: + exhaustive: + default-signifies-exhaustive: true + govet: + enable-all: true + disable: + # struct order is often for Win32 compat + # also, ignore pointer bytes/GC issues for now until performance becomes an issue + - fieldalignment + check-shadowing: true + nolintlint: + allow-leading-space: false + require-explanation: true + require-specific: true + revive: + # revive is more configurable than static check, so likely the preferred alternative to static-check + # (once the perf issue is solved: https://github.com/golangci/golangci-lint/issues/2997) + enable-all-rules: + true + # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md + rules: + # rules with required arguments + - name: argument-limit + disabled: true + - name: banned-characters + disabled: true + - name: cognitive-complexity + disabled: true + - name: cyclomatic + disabled: true + - name: file-header + disabled: true + - name: function-length + disabled: true + - name: function-result-limit + disabled: true + - name: max-public-structs + disabled: true + # geneally annoying rules + - name: add-constant # complains about any and all strings and integers + disabled: true + - name: confusing-naming # we frequently use "Foo()" and "foo()" together + disabled: true + - name: flag-parameter # excessive, and a common idiom we use + disabled: true + - name: unhandled-error # warns over common fmt.Print* and io.Close; rely on errcheck instead + disabled: true + # general config + - name: line-length-limit + arguments: + - 140 + - name: var-naming + arguments: + - [] + - - CID + - CRI + - CTRD + - DACL + - DLL + - DOS + - ETW + - FSCTL + - GCS + - GMSA + - HCS + - HV + - IO + - LCOW + - LDAP + - LPAC + - LTSC + - MMIO + - NT + - OCI + - PMEM + - PWSH + - RX + - SACl + - SID + - SMB + - TX + - VHD + - VHDX + - VMID + - VPCI + - WCOW + - WIM diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS b/ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS new file mode 100644 index 0000000000..ae1b4942b9 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS @@ -0,0 +1 @@ + * @microsoft/containerplat diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE b/ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE new file mode 100644 index 0000000000..b8b569d774 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2015 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/README.md b/ecs-agent/vendor/github.com/Microsoft/go-winio/README.md new file mode 100644 index 0000000000..7474b4f0b6 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/README.md @@ -0,0 +1,89 @@ +# go-winio [![Build Status](https://github.com/microsoft/go-winio/actions/workflows/ci.yml/badge.svg)](https://github.com/microsoft/go-winio/actions/workflows/ci.yml) + +This repository contains utilities for efficiently performing Win32 IO operations in +Go. Currently, this is focused on accessing named pipes and other file handles, and +for using named pipes as a net transport. + +This code relies on IO completion ports to avoid blocking IO on system threads, allowing Go +to reuse the thread to schedule another goroutine. This limits support to Windows Vista and +newer operating systems. This is similar to the implementation of network sockets in Go's net +package. + +Please see the LICENSE file for licensing information. + +## Contributing + +This project welcomes contributions and suggestions. +Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that +you have the right to, and actually do, grant us the rights to use your contribution. +For details, visit [Microsoft CLA](https://cla.microsoft.com). + +When you submit a pull request, a CLA-bot will automatically determine whether you need to +provide a CLA and decorate the PR appropriately (e.g., label, comment). +Simply follow the instructions provided by the bot. +You will only need to do this once across all repos using our CLA. + +Additionally, the pull request pipeline requires the following steps to be performed before +mergining. + +### Code Sign-Off + +We require that contributors sign their commits using [`git commit --signoff`][git-commit-s] +to certify they either authored the work themselves or otherwise have permission to use it in this project. + +A range of commits can be signed off using [`git rebase --signoff`][git-rebase-s]. + +Please see [the developer certificate](https://developercertificate.org) for more info, +as well as to make sure that you can attest to the rules listed. +Our CI uses the DCO Github app to ensure that all commits in a given PR are signed-off. + +### Linting + +Code must pass a linting stage, which uses [`golangci-lint`][lint]. +The linting settings are stored in [`.golangci.yaml`](./.golangci.yaml), and can be run +automatically with VSCode by adding the following to your workspace or folder settings: + +```json + "go.lintTool": "golangci-lint", + "go.lintOnSave": "package", +``` + +Additional editor [integrations options are also available][lint-ide]. + +Alternatively, `golangci-lint` can be [installed locally][lint-install] and run from the repo root: + +```shell +# use . or specify a path to only lint a package +# to show all lint errors, use flags "--max-issues-per-linter=0 --max-same-issues=0" +> golangci-lint run ./... +``` + +### Go Generate + +The pipeline checks that auto-generated code, via `go generate`, are up to date. + +This can be done for the entire repo: + +```shell +> go generate ./... +``` + +## Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +## Special Thanks + +Thanks to [natefinch][natefinch] for the inspiration for this library. +See [npipe](https://github.com/natefinch/npipe) for another named pipe implementation. + +[lint]: https://golangci-lint.run/ +[lint-ide]: https://golangci-lint.run/usage/integrations/#editor-integration +[lint-install]: https://golangci-lint.run/usage/install/#local-installation + +[git-commit-s]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt--s +[git-rebase-s]: https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---signoff + +[natefinch]: https://github.com/natefinch diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md b/ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md new file mode 100644 index 0000000000..869fdfe2b2 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md @@ -0,0 +1,41 @@ + + +## Security + +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). + +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). + +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. + +## Preferred Languages + +We prefer all communications to be in English. + +## Policy + +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). + + diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go new file mode 100644 index 0000000000..09621c8846 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go @@ -0,0 +1,290 @@ +//go:build windows +// +build windows + +package winio + +import ( + "encoding/binary" + "errors" + "fmt" + "io" + "os" + "runtime" + "syscall" + "unicode/utf16" + + "golang.org/x/sys/windows" +) + +//sys backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupRead +//sys backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupWrite + +const ( + BackupData = uint32(iota + 1) + BackupEaData + BackupSecurity + BackupAlternateData + BackupLink + BackupPropertyData + BackupObjectId //revive:disable-line:var-naming ID, not Id + BackupReparseData + BackupSparseBlock + BackupTxfsData +) + +const ( + StreamSparseAttributes = uint32(8) +) + +//nolint:revive // var-naming: ALL_CAPS +const ( + WRITE_DAC = windows.WRITE_DAC + WRITE_OWNER = windows.WRITE_OWNER + ACCESS_SYSTEM_SECURITY = windows.ACCESS_SYSTEM_SECURITY +) + +// BackupHeader represents a backup stream of a file. +type BackupHeader struct { + //revive:disable-next-line:var-naming ID, not Id + Id uint32 // The backup stream ID + Attributes uint32 // Stream attributes + Size int64 // The size of the stream in bytes + Name string // The name of the stream (for BackupAlternateData only). + Offset int64 // The offset of the stream in the file (for BackupSparseBlock only). +} + +type win32StreamID struct { + StreamID uint32 + Attributes uint32 + Size uint64 + NameSize uint32 +} + +// BackupStreamReader reads from a stream produced by the BackupRead Win32 API and produces a series +// of BackupHeader values. +type BackupStreamReader struct { + r io.Reader + bytesLeft int64 +} + +// NewBackupStreamReader produces a BackupStreamReader from any io.Reader. +func NewBackupStreamReader(r io.Reader) *BackupStreamReader { + return &BackupStreamReader{r, 0} +} + +// Next returns the next backup stream and prepares for calls to Read(). It skips the remainder of the current stream if +// it was not completely read. +func (r *BackupStreamReader) Next() (*BackupHeader, error) { + if r.bytesLeft > 0 { //nolint:nestif // todo: flatten this + if s, ok := r.r.(io.Seeker); ok { + // Make sure Seek on io.SeekCurrent sometimes succeeds + // before trying the actual seek. + if _, err := s.Seek(0, io.SeekCurrent); err == nil { + if _, err = s.Seek(r.bytesLeft, io.SeekCurrent); err != nil { + return nil, err + } + r.bytesLeft = 0 + } + } + if _, err := io.Copy(io.Discard, r); err != nil { + return nil, err + } + } + var wsi win32StreamID + if err := binary.Read(r.r, binary.LittleEndian, &wsi); err != nil { + return nil, err + } + hdr := &BackupHeader{ + Id: wsi.StreamID, + Attributes: wsi.Attributes, + Size: int64(wsi.Size), + } + if wsi.NameSize != 0 { + name := make([]uint16, int(wsi.NameSize/2)) + if err := binary.Read(r.r, binary.LittleEndian, name); err != nil { + return nil, err + } + hdr.Name = syscall.UTF16ToString(name) + } + if wsi.StreamID == BackupSparseBlock { + if err := binary.Read(r.r, binary.LittleEndian, &hdr.Offset); err != nil { + return nil, err + } + hdr.Size -= 8 + } + r.bytesLeft = hdr.Size + return hdr, nil +} + +// Read reads from the current backup stream. +func (r *BackupStreamReader) Read(b []byte) (int, error) { + if r.bytesLeft == 0 { + return 0, io.EOF + } + if int64(len(b)) > r.bytesLeft { + b = b[:r.bytesLeft] + } + n, err := r.r.Read(b) + r.bytesLeft -= int64(n) + if err == io.EOF { + err = io.ErrUnexpectedEOF + } else if r.bytesLeft == 0 && err == nil { + err = io.EOF + } + return n, err +} + +// BackupStreamWriter writes a stream compatible with the BackupWrite Win32 API. +type BackupStreamWriter struct { + w io.Writer + bytesLeft int64 +} + +// NewBackupStreamWriter produces a BackupStreamWriter on top of an io.Writer. +func NewBackupStreamWriter(w io.Writer) *BackupStreamWriter { + return &BackupStreamWriter{w, 0} +} + +// WriteHeader writes the next backup stream header and prepares for calls to Write(). +func (w *BackupStreamWriter) WriteHeader(hdr *BackupHeader) error { + if w.bytesLeft != 0 { + return fmt.Errorf("missing %d bytes", w.bytesLeft) + } + name := utf16.Encode([]rune(hdr.Name)) + wsi := win32StreamID{ + StreamID: hdr.Id, + Attributes: hdr.Attributes, + Size: uint64(hdr.Size), + NameSize: uint32(len(name) * 2), + } + if hdr.Id == BackupSparseBlock { + // Include space for the int64 block offset + wsi.Size += 8 + } + if err := binary.Write(w.w, binary.LittleEndian, &wsi); err != nil { + return err + } + if len(name) != 0 { + if err := binary.Write(w.w, binary.LittleEndian, name); err != nil { + return err + } + } + if hdr.Id == BackupSparseBlock { + if err := binary.Write(w.w, binary.LittleEndian, hdr.Offset); err != nil { + return err + } + } + w.bytesLeft = hdr.Size + return nil +} + +// Write writes to the current backup stream. +func (w *BackupStreamWriter) Write(b []byte) (int, error) { + if w.bytesLeft < int64(len(b)) { + return 0, fmt.Errorf("too many bytes by %d", int64(len(b))-w.bytesLeft) + } + n, err := w.w.Write(b) + w.bytesLeft -= int64(n) + return n, err +} + +// BackupFileReader provides an io.ReadCloser interface on top of the BackupRead Win32 API. +type BackupFileReader struct { + f *os.File + includeSecurity bool + ctx uintptr +} + +// NewBackupFileReader returns a new BackupFileReader from a file handle. If includeSecurity is true, +// Read will attempt to read the security descriptor of the file. +func NewBackupFileReader(f *os.File, includeSecurity bool) *BackupFileReader { + r := &BackupFileReader{f, includeSecurity, 0} + return r +} + +// Read reads a backup stream from the file by calling the Win32 API BackupRead(). +func (r *BackupFileReader) Read(b []byte) (int, error) { + var bytesRead uint32 + err := backupRead(syscall.Handle(r.f.Fd()), b, &bytesRead, false, r.includeSecurity, &r.ctx) + if err != nil { + return 0, &os.PathError{Op: "BackupRead", Path: r.f.Name(), Err: err} + } + runtime.KeepAlive(r.f) + if bytesRead == 0 { + return 0, io.EOF + } + return int(bytesRead), nil +} + +// Close frees Win32 resources associated with the BackupFileReader. It does not close +// the underlying file. +func (r *BackupFileReader) Close() error { + if r.ctx != 0 { + _ = backupRead(syscall.Handle(r.f.Fd()), nil, nil, true, false, &r.ctx) + runtime.KeepAlive(r.f) + r.ctx = 0 + } + return nil +} + +// BackupFileWriter provides an io.WriteCloser interface on top of the BackupWrite Win32 API. +type BackupFileWriter struct { + f *os.File + includeSecurity bool + ctx uintptr +} + +// NewBackupFileWriter returns a new BackupFileWriter from a file handle. If includeSecurity is true, +// Write() will attempt to restore the security descriptor from the stream. +func NewBackupFileWriter(f *os.File, includeSecurity bool) *BackupFileWriter { + w := &BackupFileWriter{f, includeSecurity, 0} + return w +} + +// Write restores a portion of the file using the provided backup stream. +func (w *BackupFileWriter) Write(b []byte) (int, error) { + var bytesWritten uint32 + err := backupWrite(syscall.Handle(w.f.Fd()), b, &bytesWritten, false, w.includeSecurity, &w.ctx) + if err != nil { + return 0, &os.PathError{Op: "BackupWrite", Path: w.f.Name(), Err: err} + } + runtime.KeepAlive(w.f) + if int(bytesWritten) != len(b) { + return int(bytesWritten), errors.New("not all bytes could be written") + } + return len(b), nil +} + +// Close frees Win32 resources associated with the BackupFileWriter. It does not +// close the underlying file. +func (w *BackupFileWriter) Close() error { + if w.ctx != 0 { + _ = backupWrite(syscall.Handle(w.f.Fd()), nil, nil, true, false, &w.ctx) + runtime.KeepAlive(w.f) + w.ctx = 0 + } + return nil +} + +// OpenForBackup opens a file or directory, potentially skipping access checks if the backup +// or restore privileges have been acquired. +// +// If the file opened was a directory, it cannot be used with Readdir(). +func OpenForBackup(path string, access uint32, share uint32, createmode uint32) (*os.File, error) { + winPath, err := syscall.UTF16FromString(path) + if err != nil { + return nil, err + } + h, err := syscall.CreateFile(&winPath[0], + access, + share, + nil, + createmode, + syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OPEN_REPARSE_POINT, + 0) + if err != nil { + err = &os.PathError{Op: "open", Path: path, Err: err} + return nil, err + } + return os.NewFile(uintptr(h), path), nil +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go new file mode 100644 index 0000000000..1f5bfe2d54 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go @@ -0,0 +1,22 @@ +// This package provides utilities for efficiently performing Win32 IO operations in Go. +// Currently, this package is provides support for genreal IO and management of +// - named pipes +// - files +// - [Hyper-V sockets] +// +// This code is similar to Go's [net] package, and uses IO completion ports to avoid +// blocking IO on system threads, allowing Go to reuse the thread to schedule other goroutines. +// +// This limits support to Windows Vista and newer operating systems. +// +// Additionally, this package provides support for: +// - creating and managing GUIDs +// - writing to [ETW] +// - opening and manageing VHDs +// - parsing [Windows Image files] +// - auto-generating Win32 API code +// +// [Hyper-V sockets]: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service +// [ETW]: https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/event-tracing-for-windows--etw- +// [Windows Image files]: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/work-with-windows-images +package winio diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go new file mode 100644 index 0000000000..e104dbdfdf --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go @@ -0,0 +1,137 @@ +package winio + +import ( + "bytes" + "encoding/binary" + "errors" +) + +type fileFullEaInformation struct { + NextEntryOffset uint32 + Flags uint8 + NameLength uint8 + ValueLength uint16 +} + +var ( + fileFullEaInformationSize = binary.Size(&fileFullEaInformation{}) + + errInvalidEaBuffer = errors.New("invalid extended attribute buffer") + errEaNameTooLarge = errors.New("extended attribute name too large") + errEaValueTooLarge = errors.New("extended attribute value too large") +) + +// ExtendedAttribute represents a single Windows EA. +type ExtendedAttribute struct { + Name string + Value []byte + Flags uint8 +} + +func parseEa(b []byte) (ea ExtendedAttribute, nb []byte, err error) { + var info fileFullEaInformation + err = binary.Read(bytes.NewReader(b), binary.LittleEndian, &info) + if err != nil { + err = errInvalidEaBuffer + return ea, nb, err + } + + nameOffset := fileFullEaInformationSize + nameLen := int(info.NameLength) + valueOffset := nameOffset + int(info.NameLength) + 1 + valueLen := int(info.ValueLength) + nextOffset := int(info.NextEntryOffset) + if valueLen+valueOffset > len(b) || nextOffset < 0 || nextOffset > len(b) { + err = errInvalidEaBuffer + return ea, nb, err + } + + ea.Name = string(b[nameOffset : nameOffset+nameLen]) + ea.Value = b[valueOffset : valueOffset+valueLen] + ea.Flags = info.Flags + if info.NextEntryOffset != 0 { + nb = b[info.NextEntryOffset:] + } + return ea, nb, err +} + +// DecodeExtendedAttributes decodes a list of EAs from a FILE_FULL_EA_INFORMATION +// buffer retrieved from BackupRead, ZwQueryEaFile, etc. +func DecodeExtendedAttributes(b []byte) (eas []ExtendedAttribute, err error) { + for len(b) != 0 { + ea, nb, err := parseEa(b) + if err != nil { + return nil, err + } + + eas = append(eas, ea) + b = nb + } + return eas, err +} + +func writeEa(buf *bytes.Buffer, ea *ExtendedAttribute, last bool) error { + if int(uint8(len(ea.Name))) != len(ea.Name) { + return errEaNameTooLarge + } + if int(uint16(len(ea.Value))) != len(ea.Value) { + return errEaValueTooLarge + } + entrySize := uint32(fileFullEaInformationSize + len(ea.Name) + 1 + len(ea.Value)) + withPadding := (entrySize + 3) &^ 3 + nextOffset := uint32(0) + if !last { + nextOffset = withPadding + } + info := fileFullEaInformation{ + NextEntryOffset: nextOffset, + Flags: ea.Flags, + NameLength: uint8(len(ea.Name)), + ValueLength: uint16(len(ea.Value)), + } + + err := binary.Write(buf, binary.LittleEndian, &info) + if err != nil { + return err + } + + _, err = buf.Write([]byte(ea.Name)) + if err != nil { + return err + } + + err = buf.WriteByte(0) + if err != nil { + return err + } + + _, err = buf.Write(ea.Value) + if err != nil { + return err + } + + _, err = buf.Write([]byte{0, 0, 0}[0 : withPadding-entrySize]) + if err != nil { + return err + } + + return nil +} + +// EncodeExtendedAttributes encodes a list of EAs into a FILE_FULL_EA_INFORMATION +// buffer for use with BackupWrite, ZwSetEaFile, etc. +func EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error) { + var buf bytes.Buffer + for i := range eas { + last := false + if i == len(eas)-1 { + last = true + } + + err := writeEa(&buf, &eas[i], last) + if err != nil { + return nil, err + } + } + return buf.Bytes(), nil +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/file.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/file.go new file mode 100644 index 0000000000..175a99d3f4 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/file.go @@ -0,0 +1,331 @@ +//go:build windows +// +build windows + +package winio + +import ( + "errors" + "io" + "runtime" + "sync" + "sync/atomic" + "syscall" + "time" + + "golang.org/x/sys/windows" +) + +//sys cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) = CancelIoEx +//sys createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) = CreateIoCompletionPort +//sys getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) = GetQueuedCompletionStatus +//sys setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) = SetFileCompletionNotificationModes +//sys wsaGetOverlappedResult(h syscall.Handle, o *syscall.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult + +type atomicBool int32 + +func (b *atomicBool) isSet() bool { return atomic.LoadInt32((*int32)(b)) != 0 } +func (b *atomicBool) setFalse() { atomic.StoreInt32((*int32)(b), 0) } +func (b *atomicBool) setTrue() { atomic.StoreInt32((*int32)(b), 1) } + +//revive:disable-next-line:predeclared Keep "new" to maintain consistency with "atomic" pkg +func (b *atomicBool) swap(new bool) bool { + var newInt int32 + if new { + newInt = 1 + } + return atomic.SwapInt32((*int32)(b), newInt) == 1 +} + +var ( + ErrFileClosed = errors.New("file has already been closed") + ErrTimeout = &timeoutError{} +) + +type timeoutError struct{} + +func (*timeoutError) Error() string { return "i/o timeout" } +func (*timeoutError) Timeout() bool { return true } +func (*timeoutError) Temporary() bool { return true } + +type timeoutChan chan struct{} + +var ioInitOnce sync.Once +var ioCompletionPort syscall.Handle + +// ioResult contains the result of an asynchronous IO operation. +type ioResult struct { + bytes uint32 + err error +} + +// ioOperation represents an outstanding asynchronous Win32 IO. +type ioOperation struct { + o syscall.Overlapped + ch chan ioResult +} + +func initIO() { + h, err := createIoCompletionPort(syscall.InvalidHandle, 0, 0, 0xffffffff) + if err != nil { + panic(err) + } + ioCompletionPort = h + go ioCompletionProcessor(h) +} + +// win32File implements Reader, Writer, and Closer on a Win32 handle without blocking in a syscall. +// It takes ownership of this handle and will close it if it is garbage collected. +type win32File struct { + handle syscall.Handle + wg sync.WaitGroup + wgLock sync.RWMutex + closing atomicBool + socket bool + readDeadline deadlineHandler + writeDeadline deadlineHandler +} + +type deadlineHandler struct { + setLock sync.Mutex + channel timeoutChan + channelLock sync.RWMutex + timer *time.Timer + timedout atomicBool +} + +// makeWin32File makes a new win32File from an existing file handle. +func makeWin32File(h syscall.Handle) (*win32File, error) { + f := &win32File{handle: h} + ioInitOnce.Do(initIO) + _, err := createIoCompletionPort(h, ioCompletionPort, 0, 0xffffffff) + if err != nil { + return nil, err + } + err = setFileCompletionNotificationModes(h, windows.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS|windows.FILE_SKIP_SET_EVENT_ON_HANDLE) + if err != nil { + return nil, err + } + f.readDeadline.channel = make(timeoutChan) + f.writeDeadline.channel = make(timeoutChan) + return f, nil +} + +func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error) { + // If we return the result of makeWin32File directly, it can result in an + // interface-wrapped nil, rather than a nil interface value. + f, err := makeWin32File(h) + if err != nil { + return nil, err + } + return f, nil +} + +// closeHandle closes the resources associated with a Win32 handle. +func (f *win32File) closeHandle() { + f.wgLock.Lock() + // Atomically set that we are closing, releasing the resources only once. + if !f.closing.swap(true) { + f.wgLock.Unlock() + // cancel all IO and wait for it to complete + _ = cancelIoEx(f.handle, nil) + f.wg.Wait() + // at this point, no new IO can start + syscall.Close(f.handle) + f.handle = 0 + } else { + f.wgLock.Unlock() + } +} + +// Close closes a win32File. +func (f *win32File) Close() error { + f.closeHandle() + return nil +} + +// IsClosed checks if the file has been closed. +func (f *win32File) IsClosed() bool { + return f.closing.isSet() +} + +// prepareIO prepares for a new IO operation. +// The caller must call f.wg.Done() when the IO is finished, prior to Close() returning. +func (f *win32File) prepareIO() (*ioOperation, error) { + f.wgLock.RLock() + if f.closing.isSet() { + f.wgLock.RUnlock() + return nil, ErrFileClosed + } + f.wg.Add(1) + f.wgLock.RUnlock() + c := &ioOperation{} + c.ch = make(chan ioResult) + return c, nil +} + +// ioCompletionProcessor processes completed async IOs forever. +func ioCompletionProcessor(h syscall.Handle) { + for { + var bytes uint32 + var key uintptr + var op *ioOperation + err := getQueuedCompletionStatus(h, &bytes, &key, &op, syscall.INFINITE) + if op == nil { + panic(err) + } + op.ch <- ioResult{bytes, err} + } +} + +// todo: helsaawy - create an asyncIO version that takes a context + +// asyncIO processes the return value from ReadFile or WriteFile, blocking until +// the operation has actually completed. +func (f *win32File) asyncIO(c *ioOperation, d *deadlineHandler, bytes uint32, err error) (int, error) { + if err != syscall.ERROR_IO_PENDING { //nolint:errorlint // err is Errno + return int(bytes), err + } + + if f.closing.isSet() { + _ = cancelIoEx(f.handle, &c.o) + } + + var timeout timeoutChan + if d != nil { + d.channelLock.Lock() + timeout = d.channel + d.channelLock.Unlock() + } + + var r ioResult + select { + case r = <-c.ch: + err = r.err + if err == syscall.ERROR_OPERATION_ABORTED { //nolint:errorlint // err is Errno + if f.closing.isSet() { + err = ErrFileClosed + } + } else if err != nil && f.socket { + // err is from Win32. Query the overlapped structure to get the winsock error. + var bytes, flags uint32 + err = wsaGetOverlappedResult(f.handle, &c.o, &bytes, false, &flags) + } + case <-timeout: + _ = cancelIoEx(f.handle, &c.o) + r = <-c.ch + err = r.err + if err == syscall.ERROR_OPERATION_ABORTED { //nolint:errorlint // err is Errno + err = ErrTimeout + } + } + + // runtime.KeepAlive is needed, as c is passed via native + // code to ioCompletionProcessor, c must remain alive + // until the channel read is complete. + // todo: (de)allocate *ioOperation via win32 heap functions, instead of needing to KeepAlive? + runtime.KeepAlive(c) + return int(r.bytes), err +} + +// Read reads from a file handle. +func (f *win32File) Read(b []byte) (int, error) { + c, err := f.prepareIO() + if err != nil { + return 0, err + } + defer f.wg.Done() + + if f.readDeadline.timedout.isSet() { + return 0, ErrTimeout + } + + var bytes uint32 + err = syscall.ReadFile(f.handle, b, &bytes, &c.o) + n, err := f.asyncIO(c, &f.readDeadline, bytes, err) + runtime.KeepAlive(b) + + // Handle EOF conditions. + if err == nil && n == 0 && len(b) != 0 { + return 0, io.EOF + } else if err == syscall.ERROR_BROKEN_PIPE { //nolint:errorlint // err is Errno + return 0, io.EOF + } else { + return n, err + } +} + +// Write writes to a file handle. +func (f *win32File) Write(b []byte) (int, error) { + c, err := f.prepareIO() + if err != nil { + return 0, err + } + defer f.wg.Done() + + if f.writeDeadline.timedout.isSet() { + return 0, ErrTimeout + } + + var bytes uint32 + err = syscall.WriteFile(f.handle, b, &bytes, &c.o) + n, err := f.asyncIO(c, &f.writeDeadline, bytes, err) + runtime.KeepAlive(b) + return n, err +} + +func (f *win32File) SetReadDeadline(deadline time.Time) error { + return f.readDeadline.set(deadline) +} + +func (f *win32File) SetWriteDeadline(deadline time.Time) error { + return f.writeDeadline.set(deadline) +} + +func (f *win32File) Flush() error { + return syscall.FlushFileBuffers(f.handle) +} + +func (f *win32File) Fd() uintptr { + return uintptr(f.handle) +} + +func (d *deadlineHandler) set(deadline time.Time) error { + d.setLock.Lock() + defer d.setLock.Unlock() + + if d.timer != nil { + if !d.timer.Stop() { + <-d.channel + } + d.timer = nil + } + d.timedout.setFalse() + + select { + case <-d.channel: + d.channelLock.Lock() + d.channel = make(chan struct{}) + d.channelLock.Unlock() + default: + } + + if deadline.IsZero() { + return nil + } + + timeoutIO := func() { + d.timedout.setTrue() + close(d.channel) + } + + now := time.Now() + duration := deadline.Sub(now) + if deadline.After(now) { + // Deadline is in the future, set a timer to wait + d.timer = time.AfterFunc(duration, timeoutIO) + } else { + // Deadline is in the past. Cancel all pending IO now. + timeoutIO() + } + return nil +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go new file mode 100644 index 0000000000..702950e72a --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go @@ -0,0 +1,92 @@ +//go:build windows +// +build windows + +package winio + +import ( + "os" + "runtime" + "unsafe" + + "golang.org/x/sys/windows" +) + +// FileBasicInfo contains file access time and file attributes information. +type FileBasicInfo struct { + CreationTime, LastAccessTime, LastWriteTime, ChangeTime windows.Filetime + FileAttributes uint32 + _ uint32 // padding +} + +// GetFileBasicInfo retrieves times and attributes for a file. +func GetFileBasicInfo(f *os.File) (*FileBasicInfo, error) { + bi := &FileBasicInfo{} + if err := windows.GetFileInformationByHandleEx( + windows.Handle(f.Fd()), + windows.FileBasicInfo, + (*byte)(unsafe.Pointer(bi)), + uint32(unsafe.Sizeof(*bi)), + ); err != nil { + return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return bi, nil +} + +// SetFileBasicInfo sets times and attributes for a file. +func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error { + if err := windows.SetFileInformationByHandle( + windows.Handle(f.Fd()), + windows.FileBasicInfo, + (*byte)(unsafe.Pointer(bi)), + uint32(unsafe.Sizeof(*bi)), + ); err != nil { + return &os.PathError{Op: "SetFileInformationByHandle", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return nil +} + +// FileStandardInfo contains extended information for the file. +// FILE_STANDARD_INFO in WinBase.h +// https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_standard_info +type FileStandardInfo struct { + AllocationSize, EndOfFile int64 + NumberOfLinks uint32 + DeletePending, Directory bool +} + +// GetFileStandardInfo retrieves ended information for the file. +func GetFileStandardInfo(f *os.File) (*FileStandardInfo, error) { + si := &FileStandardInfo{} + if err := windows.GetFileInformationByHandleEx(windows.Handle(f.Fd()), + windows.FileStandardInfo, + (*byte)(unsafe.Pointer(si)), + uint32(unsafe.Sizeof(*si))); err != nil { + return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return si, nil +} + +// FileIDInfo contains the volume serial number and file ID for a file. This pair should be +// unique on a system. +type FileIDInfo struct { + VolumeSerialNumber uint64 + FileID [16]byte +} + +// GetFileID retrieves the unique (volume, file ID) pair for a file. +func GetFileID(f *os.File) (*FileIDInfo, error) { + fileID := &FileIDInfo{} + if err := windows.GetFileInformationByHandleEx( + windows.Handle(f.Fd()), + windows.FileIdInfo, + (*byte)(unsafe.Pointer(fileID)), + uint32(unsafe.Sizeof(*fileID)), + ); err != nil { + return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} + } + runtime.KeepAlive(f) + return fileID, nil +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go new file mode 100644 index 0000000000..c881916583 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go @@ -0,0 +1,575 @@ +//go:build windows +// +build windows + +package winio + +import ( + "context" + "errors" + "fmt" + "io" + "net" + "os" + "syscall" + "time" + "unsafe" + + "golang.org/x/sys/windows" + + "github.com/Microsoft/go-winio/internal/socket" + "github.com/Microsoft/go-winio/pkg/guid" +) + +const afHVSock = 34 // AF_HYPERV + +// Well known Service and VM IDs +// https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards + +// HvsockGUIDWildcard is the wildcard VmId for accepting connections from all partitions. +func HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000 + return guid.GUID{} +} + +// HvsockGUIDBroadcast is the wildcard VmId for broadcasting sends to all partitions. +func HvsockGUIDBroadcast() guid.GUID { // ffffffff-ffff-ffff-ffff-ffffffffffff + return guid.GUID{ + Data1: 0xffffffff, + Data2: 0xffff, + Data3: 0xffff, + Data4: [8]uint8{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, + } +} + +// HvsockGUIDLoopback is the Loopback VmId for accepting connections to the same partition as the connector. +func HvsockGUIDLoopback() guid.GUID { // e0e16197-dd56-4a10-9195-5ee7a155a838 + return guid.GUID{ + Data1: 0xe0e16197, + Data2: 0xdd56, + Data3: 0x4a10, + Data4: [8]uint8{0x91, 0x95, 0x5e, 0xe7, 0xa1, 0x55, 0xa8, 0x38}, + } +} + +// HvsockGUIDSiloHost is the address of a silo's host partition: +// - The silo host of a hosted silo is the utility VM. +// - The silo host of a silo on a physical host is the physical host. +func HvsockGUIDSiloHost() guid.GUID { // 36bd0c5c-7276-4223-88ba-7d03b654c568 + return guid.GUID{ + Data1: 0x36bd0c5c, + Data2: 0x7276, + Data3: 0x4223, + Data4: [8]byte{0x88, 0xba, 0x7d, 0x03, 0xb6, 0x54, 0xc5, 0x68}, + } +} + +// HvsockGUIDChildren is the wildcard VmId for accepting connections from the connector's child partitions. +func HvsockGUIDChildren() guid.GUID { // 90db8b89-0d35-4f79-8ce9-49ea0ac8b7cd + return guid.GUID{ + Data1: 0x90db8b89, + Data2: 0xd35, + Data3: 0x4f79, + Data4: [8]uint8{0x8c, 0xe9, 0x49, 0xea, 0xa, 0xc8, 0xb7, 0xcd}, + } +} + +// HvsockGUIDParent is the wildcard VmId for accepting connections from the connector's parent partition. +// Listening on this VmId accepts connection from: +// - Inside silos: silo host partition. +// - Inside hosted silo: host of the VM. +// - Inside VM: VM host. +// - Physical host: Not supported. +func HvsockGUIDParent() guid.GUID { // a42e7cda-d03f-480c-9cc2-a4de20abb878 + return guid.GUID{ + Data1: 0xa42e7cda, + Data2: 0xd03f, + Data3: 0x480c, + Data4: [8]uint8{0x9c, 0xc2, 0xa4, 0xde, 0x20, 0xab, 0xb8, 0x78}, + } +} + +// hvsockVsockServiceTemplate is the Service GUID used for the VSOCK protocol. +func hvsockVsockServiceTemplate() guid.GUID { // 00000000-facb-11e6-bd58-64006a7986d3 + return guid.GUID{ + Data2: 0xfacb, + Data3: 0x11e6, + Data4: [8]uint8{0xbd, 0x58, 0x64, 0x00, 0x6a, 0x79, 0x86, 0xd3}, + } +} + +// An HvsockAddr is an address for a AF_HYPERV socket. +type HvsockAddr struct { + VMID guid.GUID + ServiceID guid.GUID +} + +type rawHvsockAddr struct { + Family uint16 + _ uint16 + VMID guid.GUID + ServiceID guid.GUID +} + +var _ socket.RawSockaddr = &rawHvsockAddr{} + +// Network returns the address's network name, "hvsock". +func (*HvsockAddr) Network() string { + return "hvsock" +} + +func (addr *HvsockAddr) String() string { + return fmt.Sprintf("%s:%s", &addr.VMID, &addr.ServiceID) +} + +// VsockServiceID returns an hvsock service ID corresponding to the specified AF_VSOCK port. +func VsockServiceID(port uint32) guid.GUID { + g := hvsockVsockServiceTemplate() // make a copy + g.Data1 = port + return g +} + +func (addr *HvsockAddr) raw() rawHvsockAddr { + return rawHvsockAddr{ + Family: afHVSock, + VMID: addr.VMID, + ServiceID: addr.ServiceID, + } +} + +func (addr *HvsockAddr) fromRaw(raw *rawHvsockAddr) { + addr.VMID = raw.VMID + addr.ServiceID = raw.ServiceID +} + +// Sockaddr returns a pointer to and the size of this struct. +// +// Implements the [socket.RawSockaddr] interface, and allows use in +// [socket.Bind] and [socket.ConnectEx]. +func (r *rawHvsockAddr) Sockaddr() (unsafe.Pointer, int32, error) { + return unsafe.Pointer(r), int32(unsafe.Sizeof(rawHvsockAddr{})), nil +} + +// Sockaddr interface allows use with `sockets.Bind()` and `.ConnectEx()`. +func (r *rawHvsockAddr) FromBytes(b []byte) error { + n := int(unsafe.Sizeof(rawHvsockAddr{})) + + if len(b) < n { + return fmt.Errorf("got %d, want %d: %w", len(b), n, socket.ErrBufferSize) + } + + copy(unsafe.Slice((*byte)(unsafe.Pointer(r)), n), b[:n]) + if r.Family != afHVSock { + return fmt.Errorf("got %d, want %d: %w", r.Family, afHVSock, socket.ErrAddrFamily) + } + + return nil +} + +// HvsockListener is a socket listener for the AF_HYPERV address family. +type HvsockListener struct { + sock *win32File + addr HvsockAddr +} + +var _ net.Listener = &HvsockListener{} + +// HvsockConn is a connected socket of the AF_HYPERV address family. +type HvsockConn struct { + sock *win32File + local, remote HvsockAddr +} + +var _ net.Conn = &HvsockConn{} + +func newHVSocket() (*win32File, error) { + fd, err := syscall.Socket(afHVSock, syscall.SOCK_STREAM, 1) + if err != nil { + return nil, os.NewSyscallError("socket", err) + } + f, err := makeWin32File(fd) + if err != nil { + syscall.Close(fd) + return nil, err + } + f.socket = true + return f, nil +} + +// ListenHvsock listens for connections on the specified hvsock address. +func ListenHvsock(addr *HvsockAddr) (_ *HvsockListener, err error) { + l := &HvsockListener{addr: *addr} + sock, err := newHVSocket() + if err != nil { + return nil, l.opErr("listen", err) + } + sa := addr.raw() + err = socket.Bind(windows.Handle(sock.handle), &sa) + if err != nil { + return nil, l.opErr("listen", os.NewSyscallError("socket", err)) + } + err = syscall.Listen(sock.handle, 16) + if err != nil { + return nil, l.opErr("listen", os.NewSyscallError("listen", err)) + } + return &HvsockListener{sock: sock, addr: *addr}, nil +} + +func (l *HvsockListener) opErr(op string, err error) error { + return &net.OpError{Op: op, Net: "hvsock", Addr: &l.addr, Err: err} +} + +// Addr returns the listener's network address. +func (l *HvsockListener) Addr() net.Addr { + return &l.addr +} + +// Accept waits for the next connection and returns it. +func (l *HvsockListener) Accept() (_ net.Conn, err error) { + sock, err := newHVSocket() + if err != nil { + return nil, l.opErr("accept", err) + } + defer func() { + if sock != nil { + sock.Close() + } + }() + c, err := l.sock.prepareIO() + if err != nil { + return nil, l.opErr("accept", err) + } + defer l.sock.wg.Done() + + // AcceptEx, per documentation, requires an extra 16 bytes per address. + // + // https://docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex + const addrlen = uint32(16 + unsafe.Sizeof(rawHvsockAddr{})) + var addrbuf [addrlen * 2]byte + + var bytes uint32 + err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /* rxdatalen */, addrlen, addrlen, &bytes, &c.o) + if _, err = l.sock.asyncIO(c, nil, bytes, err); err != nil { + return nil, l.opErr("accept", os.NewSyscallError("acceptex", err)) + } + + conn := &HvsockConn{ + sock: sock, + } + // The local address returned in the AcceptEx buffer is the same as the Listener socket's + // address. However, the service GUID reported by GetSockName is different from the Listeners + // socket, and is sometimes the same as the local address of the socket that dialed the + // address, with the service GUID.Data1 incremented, but othertimes is different. + // todo: does the local address matter? is the listener's address or the actual address appropriate? + conn.local.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[0]))) + conn.remote.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[addrlen]))) + + // initialize the accepted socket and update its properties with those of the listening socket + if err = windows.Setsockopt(windows.Handle(sock.handle), + windows.SOL_SOCKET, windows.SO_UPDATE_ACCEPT_CONTEXT, + (*byte)(unsafe.Pointer(&l.sock.handle)), int32(unsafe.Sizeof(l.sock.handle))); err != nil { + return nil, conn.opErr("accept", os.NewSyscallError("setsockopt", err)) + } + + sock = nil + return conn, nil +} + +// Close closes the listener, causing any pending Accept calls to fail. +func (l *HvsockListener) Close() error { + return l.sock.Close() +} + +// HvsockDialer configures and dials a Hyper-V Socket (ie, [HvsockConn]). +type HvsockDialer struct { + // Deadline is the time the Dial operation must connect before erroring. + Deadline time.Time + + // Retries is the number of additional connects to try if the connection times out, is refused, + // or the host is unreachable + Retries uint + + // RetryWait is the time to wait after a connection error to retry + RetryWait time.Duration + + rt *time.Timer // redial wait timer +} + +// Dial the Hyper-V socket at addr. +// +// See [HvsockDialer.Dial] for more information. +func Dial(ctx context.Context, addr *HvsockAddr) (conn *HvsockConn, err error) { + return (&HvsockDialer{}).Dial(ctx, addr) +} + +// Dial attempts to connect to the Hyper-V socket at addr, and returns a connection if successful. +// Will attempt (HvsockDialer).Retries if dialing fails, waiting (HvsockDialer).RetryWait between +// retries. +// +// Dialing can be cancelled either by providing (HvsockDialer).Deadline, or cancelling ctx. +func (d *HvsockDialer) Dial(ctx context.Context, addr *HvsockAddr) (conn *HvsockConn, err error) { + op := "dial" + // create the conn early to use opErr() + conn = &HvsockConn{ + remote: *addr, + } + + if !d.Deadline.IsZero() { + var cancel context.CancelFunc + ctx, cancel = context.WithDeadline(ctx, d.Deadline) + defer cancel() + } + + // preemptive timeout/cancellation check + if err = ctx.Err(); err != nil { + return nil, conn.opErr(op, err) + } + + sock, err := newHVSocket() + if err != nil { + return nil, conn.opErr(op, err) + } + defer func() { + if sock != nil { + sock.Close() + } + }() + + sa := addr.raw() + err = socket.Bind(windows.Handle(sock.handle), &sa) + if err != nil { + return nil, conn.opErr(op, os.NewSyscallError("bind", err)) + } + + c, err := sock.prepareIO() + if err != nil { + return nil, conn.opErr(op, err) + } + defer sock.wg.Done() + var bytes uint32 + for i := uint(0); i <= d.Retries; i++ { + err = socket.ConnectEx( + windows.Handle(sock.handle), + &sa, + nil, // sendBuf + 0, // sendDataLen + &bytes, + (*windows.Overlapped)(unsafe.Pointer(&c.o))) + _, err = sock.asyncIO(c, nil, bytes, err) + if i < d.Retries && canRedial(err) { + if err = d.redialWait(ctx); err == nil { + continue + } + } + break + } + if err != nil { + return nil, conn.opErr(op, os.NewSyscallError("connectex", err)) + } + + // update the connection properties, so shutdown can be used + if err = windows.Setsockopt( + windows.Handle(sock.handle), + windows.SOL_SOCKET, + windows.SO_UPDATE_CONNECT_CONTEXT, + nil, // optvalue + 0, // optlen + ); err != nil { + return nil, conn.opErr(op, os.NewSyscallError("setsockopt", err)) + } + + // get the local name + var sal rawHvsockAddr + err = socket.GetSockName(windows.Handle(sock.handle), &sal) + if err != nil { + return nil, conn.opErr(op, os.NewSyscallError("getsockname", err)) + } + conn.local.fromRaw(&sal) + + // one last check for timeout, since asyncIO doesn't check the context + if err = ctx.Err(); err != nil { + return nil, conn.opErr(op, err) + } + + conn.sock = sock + sock = nil + + return conn, nil +} + +// redialWait waits before attempting to redial, resetting the timer as appropriate. +func (d *HvsockDialer) redialWait(ctx context.Context) (err error) { + if d.RetryWait == 0 { + return nil + } + + if d.rt == nil { + d.rt = time.NewTimer(d.RetryWait) + } else { + // should already be stopped and drained + d.rt.Reset(d.RetryWait) + } + + select { + case <-ctx.Done(): + case <-d.rt.C: + return nil + } + + // stop and drain the timer + if !d.rt.Stop() { + <-d.rt.C + } + return ctx.Err() +} + +// assumes error is a plain, unwrapped syscall.Errno provided by direct syscall. +func canRedial(err error) bool { + //nolint:errorlint // guaranteed to be an Errno + switch err { + case windows.WSAECONNREFUSED, windows.WSAENETUNREACH, windows.WSAETIMEDOUT, + windows.ERROR_CONNECTION_REFUSED, windows.ERROR_CONNECTION_UNAVAIL: + return true + default: + return false + } +} + +func (conn *HvsockConn) opErr(op string, err error) error { + // translate from "file closed" to "socket closed" + if errors.Is(err, ErrFileClosed) { + err = socket.ErrSocketClosed + } + return &net.OpError{Op: op, Net: "hvsock", Source: &conn.local, Addr: &conn.remote, Err: err} +} + +func (conn *HvsockConn) Read(b []byte) (int, error) { + c, err := conn.sock.prepareIO() + if err != nil { + return 0, conn.opErr("read", err) + } + defer conn.sock.wg.Done() + buf := syscall.WSABuf{Buf: &b[0], Len: uint32(len(b))} + var flags, bytes uint32 + err = syscall.WSARecv(conn.sock.handle, &buf, 1, &bytes, &flags, &c.o, nil) + n, err := conn.sock.asyncIO(c, &conn.sock.readDeadline, bytes, err) + if err != nil { + var eno windows.Errno + if errors.As(err, &eno) { + err = os.NewSyscallError("wsarecv", eno) + } + return 0, conn.opErr("read", err) + } else if n == 0 { + err = io.EOF + } + return n, err +} + +func (conn *HvsockConn) Write(b []byte) (int, error) { + t := 0 + for len(b) != 0 { + n, err := conn.write(b) + if err != nil { + return t + n, err + } + t += n + b = b[n:] + } + return t, nil +} + +func (conn *HvsockConn) write(b []byte) (int, error) { + c, err := conn.sock.prepareIO() + if err != nil { + return 0, conn.opErr("write", err) + } + defer conn.sock.wg.Done() + buf := syscall.WSABuf{Buf: &b[0], Len: uint32(len(b))} + var bytes uint32 + err = syscall.WSASend(conn.sock.handle, &buf, 1, &bytes, 0, &c.o, nil) + n, err := conn.sock.asyncIO(c, &conn.sock.writeDeadline, bytes, err) + if err != nil { + var eno windows.Errno + if errors.As(err, &eno) { + err = os.NewSyscallError("wsasend", eno) + } + return 0, conn.opErr("write", err) + } + return n, err +} + +// Close closes the socket connection, failing any pending read or write calls. +func (conn *HvsockConn) Close() error { + return conn.sock.Close() +} + +func (conn *HvsockConn) IsClosed() bool { + return conn.sock.IsClosed() +} + +// shutdown disables sending or receiving on a socket. +func (conn *HvsockConn) shutdown(how int) error { + if conn.IsClosed() { + return socket.ErrSocketClosed + } + + err := syscall.Shutdown(conn.sock.handle, how) + if err != nil { + // If the connection was closed, shutdowns fail with "not connected" + if errors.Is(err, windows.WSAENOTCONN) || + errors.Is(err, windows.WSAESHUTDOWN) { + err = socket.ErrSocketClosed + } + return os.NewSyscallError("shutdown", err) + } + return nil +} + +// CloseRead shuts down the read end of the socket, preventing future read operations. +func (conn *HvsockConn) CloseRead() error { + err := conn.shutdown(syscall.SHUT_RD) + if err != nil { + return conn.opErr("closeread", err) + } + return nil +} + +// CloseWrite shuts down the write end of the socket, preventing future write operations and +// notifying the other endpoint that no more data will be written. +func (conn *HvsockConn) CloseWrite() error { + err := conn.shutdown(syscall.SHUT_WR) + if err != nil { + return conn.opErr("closewrite", err) + } + return nil +} + +// LocalAddr returns the local address of the connection. +func (conn *HvsockConn) LocalAddr() net.Addr { + return &conn.local +} + +// RemoteAddr returns the remote address of the connection. +func (conn *HvsockConn) RemoteAddr() net.Addr { + return &conn.remote +} + +// SetDeadline implements the net.Conn SetDeadline method. +func (conn *HvsockConn) SetDeadline(t time.Time) error { + // todo: implement `SetDeadline` for `win32File` + if err := conn.SetReadDeadline(t); err != nil { + return fmt.Errorf("set read deadline: %w", err) + } + if err := conn.SetWriteDeadline(t); err != nil { + return fmt.Errorf("set write deadline: %w", err) + } + return nil +} + +// SetReadDeadline implements the net.Conn SetReadDeadline method. +func (conn *HvsockConn) SetReadDeadline(t time.Time) error { + return conn.sock.SetReadDeadline(t) +} + +// SetWriteDeadline implements the net.Conn SetWriteDeadline method. +func (conn *HvsockConn) SetWriteDeadline(t time.Time) error { + return conn.sock.SetWriteDeadline(t) +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go new file mode 100644 index 0000000000..1f65388178 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go @@ -0,0 +1,2 @@ +// This package contains Win32 filesystem functionality. +package fs diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go new file mode 100644 index 0000000000..509b3ec641 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go @@ -0,0 +1,202 @@ +//go:build windows + +package fs + +import ( + "golang.org/x/sys/windows" + + "github.com/Microsoft/go-winio/internal/stringbuffer" +) + +//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go fs.go + +// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew +//sys CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) [failretval==windows.InvalidHandle] = CreateFileW + +const NullHandle windows.Handle = 0 + +// AccessMask defines standard, specific, and generic rights. +// +// Bitmask: +// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 +// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 +// +---------------+---------------+-------------------------------+ +// |G|G|G|G|Resvd|A| StandardRights| SpecificRights | +// |R|W|E|A| |S| | | +// +-+-------------+---------------+-------------------------------+ +// +// GR Generic Read +// GW Generic Write +// GE Generic Exectue +// GA Generic All +// Resvd Reserved +// AS Access Security System +// +// https://learn.microsoft.com/en-us/windows/win32/secauthz/access-mask +// +// https://learn.microsoft.com/en-us/windows/win32/secauthz/generic-access-rights +// +// https://learn.microsoft.com/en-us/windows/win32/fileio/file-access-rights-constants +type AccessMask = windows.ACCESS_MASK + +//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. +const ( + // Not actually any. + // + // For CreateFile: "query certain metadata such as file, directory, or device attributes without accessing that file or device" + // https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#parameters + FILE_ANY_ACCESS AccessMask = 0 + + // Specific Object Access + // from ntioapi.h + + FILE_READ_DATA AccessMask = (0x0001) // file & pipe + FILE_LIST_DIRECTORY AccessMask = (0x0001) // directory + + FILE_WRITE_DATA AccessMask = (0x0002) // file & pipe + FILE_ADD_FILE AccessMask = (0x0002) // directory + + FILE_APPEND_DATA AccessMask = (0x0004) // file + FILE_ADD_SUBDIRECTORY AccessMask = (0x0004) // directory + FILE_CREATE_PIPE_INSTANCE AccessMask = (0x0004) // named pipe + + FILE_READ_EA AccessMask = (0x0008) // file & directory + FILE_READ_PROPERTIES AccessMask = FILE_READ_EA + + FILE_WRITE_EA AccessMask = (0x0010) // file & directory + FILE_WRITE_PROPERTIES AccessMask = FILE_WRITE_EA + + FILE_EXECUTE AccessMask = (0x0020) // file + FILE_TRAVERSE AccessMask = (0x0020) // directory + + FILE_DELETE_CHILD AccessMask = (0x0040) // directory + + FILE_READ_ATTRIBUTES AccessMask = (0x0080) // all + + FILE_WRITE_ATTRIBUTES AccessMask = (0x0100) // all + + FILE_ALL_ACCESS AccessMask = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) + FILE_GENERIC_READ AccessMask = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE) + FILE_GENERIC_WRITE AccessMask = (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) + FILE_GENERIC_EXECUTE AccessMask = (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) + + SPECIFIC_RIGHTS_ALL AccessMask = 0x0000FFFF + + // Standard Access + // from ntseapi.h + + DELETE AccessMask = 0x0001_0000 + READ_CONTROL AccessMask = 0x0002_0000 + WRITE_DAC AccessMask = 0x0004_0000 + WRITE_OWNER AccessMask = 0x0008_0000 + SYNCHRONIZE AccessMask = 0x0010_0000 + + STANDARD_RIGHTS_REQUIRED AccessMask = 0x000F_0000 + + STANDARD_RIGHTS_READ AccessMask = READ_CONTROL + STANDARD_RIGHTS_WRITE AccessMask = READ_CONTROL + STANDARD_RIGHTS_EXECUTE AccessMask = READ_CONTROL + + STANDARD_RIGHTS_ALL AccessMask = 0x001F_0000 +) + +type FileShareMode uint32 + +//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. +const ( + FILE_SHARE_NONE FileShareMode = 0x00 + FILE_SHARE_READ FileShareMode = 0x01 + FILE_SHARE_WRITE FileShareMode = 0x02 + FILE_SHARE_DELETE FileShareMode = 0x04 + FILE_SHARE_VALID_FLAGS FileShareMode = 0x07 +) + +type FileCreationDisposition uint32 + +//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. +const ( + // from winbase.h + + CREATE_NEW FileCreationDisposition = 0x01 + CREATE_ALWAYS FileCreationDisposition = 0x02 + OPEN_EXISTING FileCreationDisposition = 0x03 + OPEN_ALWAYS FileCreationDisposition = 0x04 + TRUNCATE_EXISTING FileCreationDisposition = 0x05 +) + +// CreateFile and co. take flags or attributes together as one parameter. +// Define alias until we can use generics to allow both + +// https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants +type FileFlagOrAttribute uint32 + +//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. +const ( // from winnt.h + FILE_FLAG_WRITE_THROUGH FileFlagOrAttribute = 0x8000_0000 + FILE_FLAG_OVERLAPPED FileFlagOrAttribute = 0x4000_0000 + FILE_FLAG_NO_BUFFERING FileFlagOrAttribute = 0x2000_0000 + FILE_FLAG_RANDOM_ACCESS FileFlagOrAttribute = 0x1000_0000 + FILE_FLAG_SEQUENTIAL_SCAN FileFlagOrAttribute = 0x0800_0000 + FILE_FLAG_DELETE_ON_CLOSE FileFlagOrAttribute = 0x0400_0000 + FILE_FLAG_BACKUP_SEMANTICS FileFlagOrAttribute = 0x0200_0000 + FILE_FLAG_POSIX_SEMANTICS FileFlagOrAttribute = 0x0100_0000 + FILE_FLAG_OPEN_REPARSE_POINT FileFlagOrAttribute = 0x0020_0000 + FILE_FLAG_OPEN_NO_RECALL FileFlagOrAttribute = 0x0010_0000 + FILE_FLAG_FIRST_PIPE_INSTANCE FileFlagOrAttribute = 0x0008_0000 +) + +type FileSQSFlag = FileFlagOrAttribute + +//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. +const ( // from winbase.h + SECURITY_ANONYMOUS FileSQSFlag = FileSQSFlag(SecurityAnonymous << 16) + SECURITY_IDENTIFICATION FileSQSFlag = FileSQSFlag(SecurityIdentification << 16) + SECURITY_IMPERSONATION FileSQSFlag = FileSQSFlag(SecurityImpersonation << 16) + SECURITY_DELEGATION FileSQSFlag = FileSQSFlag(SecurityDelegation << 16) + + SECURITY_SQOS_PRESENT FileSQSFlag = 0x00100000 + SECURITY_VALID_SQOS_FLAGS FileSQSFlag = 0x001F0000 +) + +// GetFinalPathNameByHandle flags +// +// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew#parameters +type GetFinalPathFlag uint32 + +//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. +const ( + GetFinalPathDefaultFlag GetFinalPathFlag = 0x0 + + FILE_NAME_NORMALIZED GetFinalPathFlag = 0x0 + FILE_NAME_OPENED GetFinalPathFlag = 0x8 + + VOLUME_NAME_DOS GetFinalPathFlag = 0x0 + VOLUME_NAME_GUID GetFinalPathFlag = 0x1 + VOLUME_NAME_NT GetFinalPathFlag = 0x2 + VOLUME_NAME_NONE GetFinalPathFlag = 0x4 +) + +// getFinalPathNameByHandle facilitates calling the Windows API GetFinalPathNameByHandle +// with the given handle and flags. It transparently takes care of creating a buffer of the +// correct size for the call. +// +// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew +func GetFinalPathNameByHandle(h windows.Handle, flags GetFinalPathFlag) (string, error) { + b := stringbuffer.NewWString() + //TODO: can loop infinitely if Win32 keeps returning the same (or a larger) n? + for { + n, err := windows.GetFinalPathNameByHandle(h, b.Pointer(), b.Cap(), uint32(flags)) + if err != nil { + return "", err + } + // If the buffer wasn't large enough, n will be the total size needed (including null terminator). + // Resize and try again. + if n > b.Cap() { + b.ResizeTo(n) + continue + } + // If the buffer is large enough, n will be the size not including the null terminator. + // Convert to a Go string and return. + return b.String(), nil + } +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go new file mode 100644 index 0000000000..81760ac67e --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go @@ -0,0 +1,12 @@ +package fs + +// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ne-winnt-security_impersonation_level +type SecurityImpersonationLevel int32 // C default enums underlying type is `int`, which is Go `int32` + +// Impersonation levels +const ( + SecurityAnonymous SecurityImpersonationLevel = 0 + SecurityIdentification SecurityImpersonationLevel = 1 + SecurityImpersonation SecurityImpersonationLevel = 2 + SecurityDelegation SecurityImpersonationLevel = 3 +) diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go new file mode 100644 index 0000000000..e2f7bb24e5 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go @@ -0,0 +1,64 @@ +//go:build windows + +// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. + +package fs + +import ( + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return errERROR_EINVAL + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + + procCreateFileW = modkernel32.NewProc("CreateFileW") +) + +func CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _CreateFile(_p0, access, mode, sa, createmode, attrs, templatefile) +} + +func _CreateFile(name *uint16, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) + handle = windows.Handle(r0) + if handle == windows.InvalidHandle { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go new file mode 100644 index 0000000000..7e82f9afa9 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go @@ -0,0 +1,20 @@ +package socket + +import ( + "unsafe" +) + +// RawSockaddr allows structs to be used with [Bind] and [ConnectEx]. The +// struct must meet the Win32 sockaddr requirements specified here: +// https://docs.microsoft.com/en-us/windows/win32/winsock/sockaddr-2 +// +// Specifically, the struct size must be least larger than an int16 (unsigned short) +// for the address family. +type RawSockaddr interface { + // Sockaddr returns a pointer to the RawSockaddr and its struct size, allowing + // for the RawSockaddr's data to be overwritten by syscalls (if necessary). + // + // It is the callers responsibility to validate that the values are valid; invalid + // pointers or size can cause a panic. + Sockaddr() (unsafe.Pointer, int32, error) +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go new file mode 100644 index 0000000000..aeb7b7250f --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go @@ -0,0 +1,179 @@ +//go:build windows + +package socket + +import ( + "errors" + "fmt" + "net" + "sync" + "syscall" + "unsafe" + + "github.com/Microsoft/go-winio/pkg/guid" + "golang.org/x/sys/windows" +) + +//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go socket.go + +//sys getsockname(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) [failretval==socketError] = ws2_32.getsockname +//sys getpeername(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) [failretval==socketError] = ws2_32.getpeername +//sys bind(s windows.Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socketError] = ws2_32.bind + +const socketError = uintptr(^uint32(0)) + +var ( + // todo(helsaawy): create custom error types to store the desired vs actual size and addr family? + + ErrBufferSize = errors.New("buffer size") + ErrAddrFamily = errors.New("address family") + ErrInvalidPointer = errors.New("invalid pointer") + ErrSocketClosed = fmt.Errorf("socket closed: %w", net.ErrClosed) +) + +// todo(helsaawy): replace these with generics, ie: GetSockName[S RawSockaddr](s windows.Handle) (S, error) + +// GetSockName writes the local address of socket s to the [RawSockaddr] rsa. +// If rsa is not large enough, the [windows.WSAEFAULT] is returned. +func GetSockName(s windows.Handle, rsa RawSockaddr) error { + ptr, l, err := rsa.Sockaddr() + if err != nil { + return fmt.Errorf("could not retrieve socket pointer and size: %w", err) + } + + // although getsockname returns WSAEFAULT if the buffer is too small, it does not set + // &l to the correct size, so--apart from doubling the buffer repeatedly--there is no remedy + return getsockname(s, ptr, &l) +} + +// GetPeerName returns the remote address the socket is connected to. +// +// See [GetSockName] for more information. +func GetPeerName(s windows.Handle, rsa RawSockaddr) error { + ptr, l, err := rsa.Sockaddr() + if err != nil { + return fmt.Errorf("could not retrieve socket pointer and size: %w", err) + } + + return getpeername(s, ptr, &l) +} + +func Bind(s windows.Handle, rsa RawSockaddr) (err error) { + ptr, l, err := rsa.Sockaddr() + if err != nil { + return fmt.Errorf("could not retrieve socket pointer and size: %w", err) + } + + return bind(s, ptr, l) +} + +// "golang.org/x/sys/windows".ConnectEx and .Bind only accept internal implementations of the +// their sockaddr interface, so they cannot be used with HvsockAddr +// Replicate functionality here from +// https://cs.opensource.google/go/x/sys/+/master:windows/syscall_windows.go + +// The function pointers to `AcceptEx`, `ConnectEx` and `GetAcceptExSockaddrs` must be loaded at +// runtime via a WSAIoctl call: +// https://docs.microsoft.com/en-us/windows/win32/api/Mswsock/nc-mswsock-lpfn_connectex#remarks + +type runtimeFunc struct { + id guid.GUID + once sync.Once + addr uintptr + err error +} + +func (f *runtimeFunc) Load() error { + f.once.Do(func() { + var s windows.Handle + s, f.err = windows.Socket(windows.AF_INET, windows.SOCK_STREAM, windows.IPPROTO_TCP) + if f.err != nil { + return + } + defer windows.CloseHandle(s) //nolint:errcheck + + var n uint32 + f.err = windows.WSAIoctl(s, + windows.SIO_GET_EXTENSION_FUNCTION_POINTER, + (*byte)(unsafe.Pointer(&f.id)), + uint32(unsafe.Sizeof(f.id)), + (*byte)(unsafe.Pointer(&f.addr)), + uint32(unsafe.Sizeof(f.addr)), + &n, + nil, // overlapped + 0, // completionRoutine + ) + }) + return f.err +} + +var ( + // todo: add `AcceptEx` and `GetAcceptExSockaddrs` + WSAID_CONNECTEX = guid.GUID{ //revive:disable-line:var-naming ALL_CAPS + Data1: 0x25a207b9, + Data2: 0xddf3, + Data3: 0x4660, + Data4: [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, + } + + connectExFunc = runtimeFunc{id: WSAID_CONNECTEX} +) + +func ConnectEx( + fd windows.Handle, + rsa RawSockaddr, + sendBuf *byte, + sendDataLen uint32, + bytesSent *uint32, + overlapped *windows.Overlapped, +) error { + if err := connectExFunc.Load(); err != nil { + return fmt.Errorf("failed to load ConnectEx function pointer: %w", err) + } + ptr, n, err := rsa.Sockaddr() + if err != nil { + return err + } + return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) +} + +// BOOL LpfnConnectex( +// [in] SOCKET s, +// [in] const sockaddr *name, +// [in] int namelen, +// [in, optional] PVOID lpSendBuffer, +// [in] DWORD dwSendDataLength, +// [out] LPDWORD lpdwBytesSent, +// [in] LPOVERLAPPED lpOverlapped +// ) + +func connectEx( + s windows.Handle, + name unsafe.Pointer, + namelen int32, + sendBuf *byte, + sendDataLen uint32, + bytesSent *uint32, + overlapped *windows.Overlapped, +) (err error) { + // todo: after upgrading to 1.18, switch from syscall.Syscall9 to syscall.SyscallN + r1, _, e1 := syscall.Syscall9(connectExFunc.addr, + 7, + uintptr(s), + uintptr(name), + uintptr(namelen), + uintptr(unsafe.Pointer(sendBuf)), + uintptr(sendDataLen), + uintptr(unsafe.Pointer(bytesSent)), + uintptr(unsafe.Pointer(overlapped)), + 0, + 0) + if r1 == 0 { + if e1 != 0 { + err = error(e1) + } else { + err = syscall.EINVAL + } + } + return err +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go new file mode 100644 index 0000000000..6d2e1a9e44 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go @@ -0,0 +1,72 @@ +//go:build windows + +// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. + +package socket + +import ( + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return errERROR_EINVAL + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modws2_32 = windows.NewLazySystemDLL("ws2_32.dll") + + procbind = modws2_32.NewProc("bind") + procgetpeername = modws2_32.NewProc("getpeername") + procgetsockname = modws2_32.NewProc("getsockname") +) + +func bind(s windows.Handle, name unsafe.Pointer, namelen int32) (err error) { + r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) + if r1 == socketError { + err = errnoErr(e1) + } + return +} + +func getpeername(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(name), uintptr(unsafe.Pointer(namelen))) + if r1 == socketError { + err = errnoErr(e1) + } + return +} + +func getsockname(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) { + r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(name), uintptr(unsafe.Pointer(namelen))) + if r1 == socketError { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go new file mode 100644 index 0000000000..7ad5057024 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go @@ -0,0 +1,132 @@ +package stringbuffer + +import ( + "sync" + "unicode/utf16" +) + +// TODO: worth exporting and using in mkwinsyscall? + +// Uint16BufferSize is the buffer size in the pool, chosen somewhat arbitrarily to accommodate +// large path strings: +// MAX_PATH (260) + size of volume GUID prefix (49) + null terminator = 310. +const MinWStringCap = 310 + +// use *[]uint16 since []uint16 creates an extra allocation where the slice header +// is copied to heap and then referenced via pointer in the interface header that sync.Pool +// stores. +var pathPool = sync.Pool{ // if go1.18+ adds Pool[T], use that to store []uint16 directly + New: func() interface{} { + b := make([]uint16, MinWStringCap) + return &b + }, +} + +func newBuffer() []uint16 { return *(pathPool.Get().(*[]uint16)) } + +// freeBuffer copies the slice header data, and puts a pointer to that in the pool. +// This avoids taking a pointer to the slice header in WString, which can be set to nil. +func freeBuffer(b []uint16) { pathPool.Put(&b) } + +// WString is a wide string buffer ([]uint16) meant for storing UTF-16 encoded strings +// for interacting with Win32 APIs. +// Sizes are specified as uint32 and not int. +// +// It is not thread safe. +type WString struct { + // type-def allows casting to []uint16 directly, use struct to prevent that and allow adding fields in the future. + + // raw buffer + b []uint16 +} + +// NewWString returns a [WString] allocated from a shared pool with an +// initial capacity of at least [MinWStringCap]. +// Since the buffer may have been previously used, its contents are not guaranteed to be empty. +// +// The buffer should be freed via [WString.Free] +func NewWString() *WString { + return &WString{ + b: newBuffer(), + } +} + +func (b *WString) Free() { + if b.empty() { + return + } + freeBuffer(b.b) + b.b = nil +} + +// ResizeTo grows the buffer to at least c and returns the new capacity, freeing the +// previous buffer back into pool. +func (b *WString) ResizeTo(c uint32) uint32 { + // allready sufficient (or n is 0) + if c <= b.Cap() { + return b.Cap() + } + + if c <= MinWStringCap { + c = MinWStringCap + } + // allocate at-least double buffer size, as is done in [bytes.Buffer] and other places + if c <= 2*b.Cap() { + c = 2 * b.Cap() + } + + b2 := make([]uint16, c) + if !b.empty() { + copy(b2, b.b) + freeBuffer(b.b) + } + b.b = b2 + return c +} + +// Buffer returns the underlying []uint16 buffer. +func (b *WString) Buffer() []uint16 { + if b.empty() { + return nil + } + return b.b +} + +// Pointer returns a pointer to the first uint16 in the buffer. +// If the [WString.Free] has already been called, the pointer will be nil. +func (b *WString) Pointer() *uint16 { + if b.empty() { + return nil + } + return &b.b[0] +} + +// String returns the returns the UTF-8 encoding of the UTF-16 string in the buffer. +// +// It assumes that the data is null-terminated. +func (b *WString) String() string { + // Using [windows.UTF16ToString] would require importing "golang.org/x/sys/windows" + // and would make this code Windows-only, which makes no sense. + // So copy UTF16ToString code into here. + // If other windows-specific code is added, switch to [windows.UTF16ToString] + + s := b.b + for i, v := range s { + if v == 0 { + s = s[:i] + break + } + } + return string(utf16.Decode(s)) +} + +// Cap returns the underlying buffer capacity. +func (b *WString) Cap() uint32 { + if b.empty() { + return 0 + } + return b.cap() +} + +func (b *WString) cap() uint32 { return uint32(cap(b.b)) } +func (b *WString) empty() bool { return b == nil || b.cap() == 0 } diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go new file mode 100644 index 0000000000..25cc811031 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go @@ -0,0 +1,525 @@ +//go:build windows +// +build windows + +package winio + +import ( + "context" + "errors" + "fmt" + "io" + "net" + "os" + "runtime" + "syscall" + "time" + "unsafe" + + "golang.org/x/sys/windows" + + "github.com/Microsoft/go-winio/internal/fs" +) + +//sys connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) = ConnectNamedPipe +//sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateNamedPipeW +//sys getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo +//sys getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW +//sys localAlloc(uFlags uint32, length uint32) (ptr uintptr) = LocalAlloc +//sys ntCreateNamedPipeFile(pipe *syscall.Handle, access uint32, oa *objectAttributes, iosb *ioStatusBlock, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntStatus) = ntdll.NtCreateNamedPipeFile +//sys rtlNtStatusToDosError(status ntStatus) (winerr error) = ntdll.RtlNtStatusToDosErrorNoTeb +//sys rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntStatus) = ntdll.RtlDosPathNameToNtPathName_U +//sys rtlDefaultNpAcl(dacl *uintptr) (status ntStatus) = ntdll.RtlDefaultNpAcl + +type ioStatusBlock struct { + Status, Information uintptr +} + +type objectAttributes struct { + Length uintptr + RootDirectory uintptr + ObjectName *unicodeString + Attributes uintptr + SecurityDescriptor *securityDescriptor + SecurityQoS uintptr +} + +type unicodeString struct { + Length uint16 + MaximumLength uint16 + Buffer uintptr +} + +type securityDescriptor struct { + Revision byte + Sbz1 byte + Control uint16 + Owner uintptr + Group uintptr + Sacl uintptr //revive:disable-line:var-naming SACL, not Sacl + Dacl uintptr //revive:disable-line:var-naming DACL, not Dacl +} + +type ntStatus int32 + +func (status ntStatus) Err() error { + if status >= 0 { + return nil + } + return rtlNtStatusToDosError(status) +} + +var ( + // ErrPipeListenerClosed is returned for pipe operations on listeners that have been closed. + ErrPipeListenerClosed = net.ErrClosed + + errPipeWriteClosed = errors.New("pipe has been closed for write") +) + +type win32Pipe struct { + *win32File + path string +} + +type win32MessageBytePipe struct { + win32Pipe + writeClosed bool + readEOF bool +} + +type pipeAddress string + +func (f *win32Pipe) LocalAddr() net.Addr { + return pipeAddress(f.path) +} + +func (f *win32Pipe) RemoteAddr() net.Addr { + return pipeAddress(f.path) +} + +func (f *win32Pipe) SetDeadline(t time.Time) error { + if err := f.SetReadDeadline(t); err != nil { + return err + } + return f.SetWriteDeadline(t) +} + +// CloseWrite closes the write side of a message pipe in byte mode. +func (f *win32MessageBytePipe) CloseWrite() error { + if f.writeClosed { + return errPipeWriteClosed + } + err := f.win32File.Flush() + if err != nil { + return err + } + _, err = f.win32File.Write(nil) + if err != nil { + return err + } + f.writeClosed = true + return nil +} + +// Write writes bytes to a message pipe in byte mode. Zero-byte writes are ignored, since +// they are used to implement CloseWrite(). +func (f *win32MessageBytePipe) Write(b []byte) (int, error) { + if f.writeClosed { + return 0, errPipeWriteClosed + } + if len(b) == 0 { + return 0, nil + } + return f.win32File.Write(b) +} + +// Read reads bytes from a message pipe in byte mode. A read of a zero-byte message on a message +// mode pipe will return io.EOF, as will all subsequent reads. +func (f *win32MessageBytePipe) Read(b []byte) (int, error) { + if f.readEOF { + return 0, io.EOF + } + n, err := f.win32File.Read(b) + if err == io.EOF { //nolint:errorlint + // If this was the result of a zero-byte read, then + // it is possible that the read was due to a zero-size + // message. Since we are simulating CloseWrite with a + // zero-byte message, ensure that all future Read() calls + // also return EOF. + f.readEOF = true + } else if err == syscall.ERROR_MORE_DATA { //nolint:errorlint // err is Errno + // ERROR_MORE_DATA indicates that the pipe's read mode is message mode + // and the message still has more bytes. Treat this as a success, since + // this package presents all named pipes as byte streams. + err = nil + } + return n, err +} + +func (pipeAddress) Network() string { + return "pipe" +} + +func (s pipeAddress) String() string { + return string(s) +} + +// tryDialPipe attempts to dial the pipe at `path` until `ctx` cancellation or timeout. +func tryDialPipe(ctx context.Context, path *string, access fs.AccessMask) (syscall.Handle, error) { + for { + select { + case <-ctx.Done(): + return syscall.Handle(0), ctx.Err() + default: + wh, err := fs.CreateFile(*path, + access, + 0, // mode + nil, // security attributes + fs.OPEN_EXISTING, + fs.FILE_FLAG_OVERLAPPED|fs.SECURITY_SQOS_PRESENT|fs.SECURITY_ANONYMOUS, + 0, // template file handle + ) + h := syscall.Handle(wh) + if err == nil { + return h, nil + } + if err != windows.ERROR_PIPE_BUSY { //nolint:errorlint // err is Errno + return h, &os.PathError{Err: err, Op: "open", Path: *path} + } + // Wait 10 msec and try again. This is a rather simplistic + // view, as we always try each 10 milliseconds. + time.Sleep(10 * time.Millisecond) + } + } +} + +// DialPipe connects to a named pipe by path, timing out if the connection +// takes longer than the specified duration. If timeout is nil, then we use +// a default timeout of 2 seconds. (We do not use WaitNamedPipe.) +func DialPipe(path string, timeout *time.Duration) (net.Conn, error) { + var absTimeout time.Time + if timeout != nil { + absTimeout = time.Now().Add(*timeout) + } else { + absTimeout = time.Now().Add(2 * time.Second) + } + ctx, cancel := context.WithDeadline(context.Background(), absTimeout) + defer cancel() + conn, err := DialPipeContext(ctx, path) + if errors.Is(err, context.DeadlineExceeded) { + return nil, ErrTimeout + } + return conn, err +} + +// DialPipeContext attempts to connect to a named pipe by `path` until `ctx` +// cancellation or timeout. +func DialPipeContext(ctx context.Context, path string) (net.Conn, error) { + return DialPipeAccess(ctx, path, syscall.GENERIC_READ|syscall.GENERIC_WRITE) +} + +// DialPipeAccess attempts to connect to a named pipe by `path` with `access` until `ctx` +// cancellation or timeout. +func DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error) { + var err error + var h syscall.Handle + h, err = tryDialPipe(ctx, &path, fs.AccessMask(access)) + if err != nil { + return nil, err + } + + var flags uint32 + err = getNamedPipeInfo(h, &flags, nil, nil, nil) + if err != nil { + return nil, err + } + + f, err := makeWin32File(h) + if err != nil { + syscall.Close(h) + return nil, err + } + + // If the pipe is in message mode, return a message byte pipe, which + // supports CloseWrite(). + if flags&windows.PIPE_TYPE_MESSAGE != 0 { + return &win32MessageBytePipe{ + win32Pipe: win32Pipe{win32File: f, path: path}, + }, nil + } + return &win32Pipe{win32File: f, path: path}, nil +} + +type acceptResponse struct { + f *win32File + err error +} + +type win32PipeListener struct { + firstHandle syscall.Handle + path string + config PipeConfig + acceptCh chan (chan acceptResponse) + closeCh chan int + doneCh chan int +} + +func makeServerPipeHandle(path string, sd []byte, c *PipeConfig, first bool) (syscall.Handle, error) { + path16, err := syscall.UTF16FromString(path) + if err != nil { + return 0, &os.PathError{Op: "open", Path: path, Err: err} + } + + var oa objectAttributes + oa.Length = unsafe.Sizeof(oa) + + var ntPath unicodeString + if err := rtlDosPathNameToNtPathName(&path16[0], + &ntPath, + 0, + 0, + ).Err(); err != nil { + return 0, &os.PathError{Op: "open", Path: path, Err: err} + } + defer localFree(ntPath.Buffer) + oa.ObjectName = &ntPath + oa.Attributes = windows.OBJ_CASE_INSENSITIVE + + // The security descriptor is only needed for the first pipe. + if first { + if sd != nil { + l := uint32(len(sd)) + sdb := localAlloc(0, l) + defer localFree(sdb) + copy((*[0xffff]byte)(unsafe.Pointer(sdb))[:], sd) + oa.SecurityDescriptor = (*securityDescriptor)(unsafe.Pointer(sdb)) + } else { + // Construct the default named pipe security descriptor. + var dacl uintptr + if err := rtlDefaultNpAcl(&dacl).Err(); err != nil { + return 0, fmt.Errorf("getting default named pipe ACL: %w", err) + } + defer localFree(dacl) + + sdb := &securityDescriptor{ + Revision: 1, + Control: windows.SE_DACL_PRESENT, + Dacl: dacl, + } + oa.SecurityDescriptor = sdb + } + } + + typ := uint32(windows.FILE_PIPE_REJECT_REMOTE_CLIENTS) + if c.MessageMode { + typ |= windows.FILE_PIPE_MESSAGE_TYPE + } + + disposition := uint32(windows.FILE_OPEN) + access := uint32(syscall.GENERIC_READ | syscall.GENERIC_WRITE | syscall.SYNCHRONIZE) + if first { + disposition = windows.FILE_CREATE + // By not asking for read or write access, the named pipe file system + // will put this pipe into an initially disconnected state, blocking + // client connections until the next call with first == false. + access = syscall.SYNCHRONIZE + } + + timeout := int64(-50 * 10000) // 50ms + + var ( + h syscall.Handle + iosb ioStatusBlock + ) + err = ntCreateNamedPipeFile(&h, + access, + &oa, + &iosb, + syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE, + disposition, + 0, + typ, + 0, + 0, + 0xffffffff, + uint32(c.InputBufferSize), + uint32(c.OutputBufferSize), + &timeout).Err() + if err != nil { + return 0, &os.PathError{Op: "open", Path: path, Err: err} + } + + runtime.KeepAlive(ntPath) + return h, nil +} + +func (l *win32PipeListener) makeServerPipe() (*win32File, error) { + h, err := makeServerPipeHandle(l.path, nil, &l.config, false) + if err != nil { + return nil, err + } + f, err := makeWin32File(h) + if err != nil { + syscall.Close(h) + return nil, err + } + return f, nil +} + +func (l *win32PipeListener) makeConnectedServerPipe() (*win32File, error) { + p, err := l.makeServerPipe() + if err != nil { + return nil, err + } + + // Wait for the client to connect. + ch := make(chan error) + go func(p *win32File) { + ch <- connectPipe(p) + }(p) + + select { + case err = <-ch: + if err != nil { + p.Close() + p = nil + } + case <-l.closeCh: + // Abort the connect request by closing the handle. + p.Close() + p = nil + err = <-ch + if err == nil || err == ErrFileClosed { //nolint:errorlint // err is Errno + err = ErrPipeListenerClosed + } + } + return p, err +} + +func (l *win32PipeListener) listenerRoutine() { + closed := false + for !closed { + select { + case <-l.closeCh: + closed = true + case responseCh := <-l.acceptCh: + var ( + p *win32File + err error + ) + for { + p, err = l.makeConnectedServerPipe() + // If the connection was immediately closed by the client, try + // again. + if err != windows.ERROR_NO_DATA { //nolint:errorlint // err is Errno + break + } + } + responseCh <- acceptResponse{p, err} + closed = err == ErrPipeListenerClosed //nolint:errorlint // err is Errno + } + } + syscall.Close(l.firstHandle) + l.firstHandle = 0 + // Notify Close() and Accept() callers that the handle has been closed. + close(l.doneCh) +} + +// PipeConfig contain configuration for the pipe listener. +type PipeConfig struct { + // SecurityDescriptor contains a Windows security descriptor in SDDL format. + SecurityDescriptor string + + // MessageMode determines whether the pipe is in byte or message mode. In either + // case the pipe is read in byte mode by default. The only practical difference in + // this implementation is that CloseWrite() is only supported for message mode pipes; + // CloseWrite() is implemented as a zero-byte write, but zero-byte writes are only + // transferred to the reader (and returned as io.EOF in this implementation) + // when the pipe is in message mode. + MessageMode bool + + // InputBufferSize specifies the size of the input buffer, in bytes. + InputBufferSize int32 + + // OutputBufferSize specifies the size of the output buffer, in bytes. + OutputBufferSize int32 +} + +// ListenPipe creates a listener on a Windows named pipe path, e.g. \\.\pipe\mypipe. +// The pipe must not already exist. +func ListenPipe(path string, c *PipeConfig) (net.Listener, error) { + var ( + sd []byte + err error + ) + if c == nil { + c = &PipeConfig{} + } + if c.SecurityDescriptor != "" { + sd, err = SddlToSecurityDescriptor(c.SecurityDescriptor) + if err != nil { + return nil, err + } + } + h, err := makeServerPipeHandle(path, sd, c, true) + if err != nil { + return nil, err + } + l := &win32PipeListener{ + firstHandle: h, + path: path, + config: *c, + acceptCh: make(chan (chan acceptResponse)), + closeCh: make(chan int), + doneCh: make(chan int), + } + go l.listenerRoutine() + return l, nil +} + +func connectPipe(p *win32File) error { + c, err := p.prepareIO() + if err != nil { + return err + } + defer p.wg.Done() + + err = connectNamedPipe(p.handle, &c.o) + _, err = p.asyncIO(c, nil, 0, err) + if err != nil && err != windows.ERROR_PIPE_CONNECTED { //nolint:errorlint // err is Errno + return err + } + return nil +} + +func (l *win32PipeListener) Accept() (net.Conn, error) { + ch := make(chan acceptResponse) + select { + case l.acceptCh <- ch: + response := <-ch + err := response.err + if err != nil { + return nil, err + } + if l.config.MessageMode { + return &win32MessageBytePipe{ + win32Pipe: win32Pipe{win32File: response.f, path: l.path}, + }, nil + } + return &win32Pipe{win32File: response.f, path: l.path}, nil + case <-l.doneCh: + return nil, ErrPipeListenerClosed + } +} + +func (l *win32PipeListener) Close() error { + select { + case l.closeCh <- 1: + <-l.doneCh + case <-l.doneCh: + } + return nil +} + +func (l *win32PipeListener) Addr() net.Addr { + return pipeAddress(l.path) +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go new file mode 100644 index 0000000000..48ce4e9243 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go @@ -0,0 +1,232 @@ +// Package guid provides a GUID type. The backing structure for a GUID is +// identical to that used by the golang.org/x/sys/windows GUID type. +// There are two main binary encodings used for a GUID, the big-endian encoding, +// and the Windows (mixed-endian) encoding. See here for details: +// https://en.wikipedia.org/wiki/Universally_unique_identifier#Encoding +package guid + +import ( + "crypto/rand" + "crypto/sha1" //nolint:gosec // not used for secure application + "encoding" + "encoding/binary" + "fmt" + "strconv" +) + +//go:generate go run golang.org/x/tools/cmd/stringer -type=Variant -trimprefix=Variant -linecomment + +// Variant specifies which GUID variant (or "type") of the GUID. It determines +// how the entirety of the rest of the GUID is interpreted. +type Variant uint8 + +// The variants specified by RFC 4122 section 4.1.1. +const ( + // VariantUnknown specifies a GUID variant which does not conform to one of + // the variant encodings specified in RFC 4122. + VariantUnknown Variant = iota + VariantNCS + VariantRFC4122 // RFC 4122 + VariantMicrosoft + VariantFuture +) + +// Version specifies how the bits in the GUID were generated. For instance, a +// version 4 GUID is randomly generated, and a version 5 is generated from the +// hash of an input string. +type Version uint8 + +func (v Version) String() string { + return strconv.FormatUint(uint64(v), 10) +} + +var _ = (encoding.TextMarshaler)(GUID{}) +var _ = (encoding.TextUnmarshaler)(&GUID{}) + +// NewV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122. +func NewV4() (GUID, error) { + var b [16]byte + if _, err := rand.Read(b[:]); err != nil { + return GUID{}, err + } + + g := FromArray(b) + g.setVersion(4) // Version 4 means randomly generated. + g.setVariant(VariantRFC4122) + + return g, nil +} + +// NewV5 returns a new version 5 (generated from a string via SHA-1 hashing) +// GUID, as defined by RFC 4122. The RFC is unclear on the encoding of the name, +// and the sample code treats it as a series of bytes, so we do the same here. +// +// Some implementations, such as those found on Windows, treat the name as a +// big-endian UTF16 stream of bytes. If that is desired, the string can be +// encoded as such before being passed to this function. +func NewV5(namespace GUID, name []byte) (GUID, error) { + b := sha1.New() //nolint:gosec // not used for secure application + namespaceBytes := namespace.ToArray() + b.Write(namespaceBytes[:]) + b.Write(name) + + a := [16]byte{} + copy(a[:], b.Sum(nil)) + + g := FromArray(a) + g.setVersion(5) // Version 5 means generated from a string. + g.setVariant(VariantRFC4122) + + return g, nil +} + +func fromArray(b [16]byte, order binary.ByteOrder) GUID { + var g GUID + g.Data1 = order.Uint32(b[0:4]) + g.Data2 = order.Uint16(b[4:6]) + g.Data3 = order.Uint16(b[6:8]) + copy(g.Data4[:], b[8:16]) + return g +} + +func (g GUID) toArray(order binary.ByteOrder) [16]byte { + b := [16]byte{} + order.PutUint32(b[0:4], g.Data1) + order.PutUint16(b[4:6], g.Data2) + order.PutUint16(b[6:8], g.Data3) + copy(b[8:16], g.Data4[:]) + return b +} + +// FromArray constructs a GUID from a big-endian encoding array of 16 bytes. +func FromArray(b [16]byte) GUID { + return fromArray(b, binary.BigEndian) +} + +// ToArray returns an array of 16 bytes representing the GUID in big-endian +// encoding. +func (g GUID) ToArray() [16]byte { + return g.toArray(binary.BigEndian) +} + +// FromWindowsArray constructs a GUID from a Windows encoding array of bytes. +func FromWindowsArray(b [16]byte) GUID { + return fromArray(b, binary.LittleEndian) +} + +// ToWindowsArray returns an array of 16 bytes representing the GUID in Windows +// encoding. +func (g GUID) ToWindowsArray() [16]byte { + return g.toArray(binary.LittleEndian) +} + +func (g GUID) String() string { + return fmt.Sprintf( + "%08x-%04x-%04x-%04x-%012x", + g.Data1, + g.Data2, + g.Data3, + g.Data4[:2], + g.Data4[2:]) +} + +// FromString parses a string containing a GUID and returns the GUID. The only +// format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` +// format. +func FromString(s string) (GUID, error) { + if len(s) != 36 { + return GUID{}, fmt.Errorf("invalid GUID %q", s) + } + if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { + return GUID{}, fmt.Errorf("invalid GUID %q", s) + } + + var g GUID + + data1, err := strconv.ParseUint(s[0:8], 16, 32) + if err != nil { + return GUID{}, fmt.Errorf("invalid GUID %q", s) + } + g.Data1 = uint32(data1) + + data2, err := strconv.ParseUint(s[9:13], 16, 16) + if err != nil { + return GUID{}, fmt.Errorf("invalid GUID %q", s) + } + g.Data2 = uint16(data2) + + data3, err := strconv.ParseUint(s[14:18], 16, 16) + if err != nil { + return GUID{}, fmt.Errorf("invalid GUID %q", s) + } + g.Data3 = uint16(data3) + + for i, x := range []int{19, 21, 24, 26, 28, 30, 32, 34} { + v, err := strconv.ParseUint(s[x:x+2], 16, 8) + if err != nil { + return GUID{}, fmt.Errorf("invalid GUID %q", s) + } + g.Data4[i] = uint8(v) + } + + return g, nil +} + +func (g *GUID) setVariant(v Variant) { + d := g.Data4[0] + switch v { + case VariantNCS: + d = (d & 0x7f) + case VariantRFC4122: + d = (d & 0x3f) | 0x80 + case VariantMicrosoft: + d = (d & 0x1f) | 0xc0 + case VariantFuture: + d = (d & 0x0f) | 0xe0 + case VariantUnknown: + fallthrough + default: + panic(fmt.Sprintf("invalid variant: %d", v)) + } + g.Data4[0] = d +} + +// Variant returns the GUID variant, as defined in RFC 4122. +func (g GUID) Variant() Variant { + b := g.Data4[0] + if b&0x80 == 0 { + return VariantNCS + } else if b&0xc0 == 0x80 { + return VariantRFC4122 + } else if b&0xe0 == 0xc0 { + return VariantMicrosoft + } else if b&0xe0 == 0xe0 { + return VariantFuture + } + return VariantUnknown +} + +func (g *GUID) setVersion(v Version) { + g.Data3 = (g.Data3 & 0x0fff) | (uint16(v) << 12) +} + +// Version returns the GUID version, as defined in RFC 4122. +func (g GUID) Version() Version { + return Version((g.Data3 & 0xF000) >> 12) +} + +// MarshalText returns the textual representation of the GUID. +func (g GUID) MarshalText() ([]byte, error) { + return []byte(g.String()), nil +} + +// UnmarshalText takes the textual representation of a GUID, and unmarhals it +// into this GUID. +func (g *GUID) UnmarshalText(text []byte) error { + g2, err := FromString(string(text)) + if err != nil { + return err + } + *g = g2 + return nil +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go new file mode 100644 index 0000000000..805bd35484 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go @@ -0,0 +1,16 @@ +//go:build !windows +// +build !windows + +package guid + +// GUID represents a GUID/UUID. It has the same structure as +// golang.org/x/sys/windows.GUID so that it can be used with functions expecting +// that type. It is defined as its own type as that is only available to builds +// targeted at `windows`. The representation matches that used by native Windows +// code. +type GUID struct { + Data1 uint32 + Data2 uint16 + Data3 uint16 + Data4 [8]byte +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go new file mode 100644 index 0000000000..27e45ee5cc --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go @@ -0,0 +1,13 @@ +//go:build windows +// +build windows + +package guid + +import "golang.org/x/sys/windows" + +// GUID represents a GUID/UUID. It has the same structure as +// golang.org/x/sys/windows.GUID so that it can be used with functions expecting +// that type. It is defined as its own type so that stringification and +// marshaling can be supported. The representation matches that used by native +// Windows code. +type GUID windows.GUID diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go new file mode 100644 index 0000000000..4076d3132f --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go @@ -0,0 +1,27 @@ +// Code generated by "stringer -type=Variant -trimprefix=Variant -linecomment"; DO NOT EDIT. + +package guid + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[VariantUnknown-0] + _ = x[VariantNCS-1] + _ = x[VariantRFC4122-2] + _ = x[VariantMicrosoft-3] + _ = x[VariantFuture-4] +} + +const _Variant_name = "UnknownNCSRFC 4122MicrosoftFuture" + +var _Variant_index = [...]uint8{0, 7, 10, 18, 27, 33} + +func (i Variant) String() string { + if i >= Variant(len(_Variant_index)-1) { + return "Variant(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _Variant_name[_Variant_index[i]:_Variant_index[i+1]] +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go new file mode 100644 index 0000000000..0ff9dac906 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go @@ -0,0 +1,197 @@ +//go:build windows +// +build windows + +package winio + +import ( + "bytes" + "encoding/binary" + "fmt" + "runtime" + "sync" + "syscall" + "unicode/utf16" + + "golang.org/x/sys/windows" +) + +//sys adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) [true] = advapi32.AdjustTokenPrivileges +//sys impersonateSelf(level uint32) (err error) = advapi32.ImpersonateSelf +//sys revertToSelf() (err error) = advapi32.RevertToSelf +//sys openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) = advapi32.OpenThreadToken +//sys getCurrentThread() (h syscall.Handle) = GetCurrentThread +//sys lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) = advapi32.LookupPrivilegeValueW +//sys lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) = advapi32.LookupPrivilegeNameW +//sys lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) = advapi32.LookupPrivilegeDisplayNameW + +const ( + //revive:disable-next-line:var-naming ALL_CAPS + SE_PRIVILEGE_ENABLED = windows.SE_PRIVILEGE_ENABLED + + //revive:disable-next-line:var-naming ALL_CAPS + ERROR_NOT_ALL_ASSIGNED syscall.Errno = windows.ERROR_NOT_ALL_ASSIGNED + + SeBackupPrivilege = "SeBackupPrivilege" + SeRestorePrivilege = "SeRestorePrivilege" + SeSecurityPrivilege = "SeSecurityPrivilege" +) + +var ( + privNames = make(map[string]uint64) + privNameMutex sync.Mutex +) + +// PrivilegeError represents an error enabling privileges. +type PrivilegeError struct { + privileges []uint64 +} + +func (e *PrivilegeError) Error() string { + s := "Could not enable privilege " + if len(e.privileges) > 1 { + s = "Could not enable privileges " + } + for i, p := range e.privileges { + if i != 0 { + s += ", " + } + s += `"` + s += getPrivilegeName(p) + s += `"` + } + return s +} + +// RunWithPrivilege enables a single privilege for a function call. +func RunWithPrivilege(name string, fn func() error) error { + return RunWithPrivileges([]string{name}, fn) +} + +// RunWithPrivileges enables privileges for a function call. +func RunWithPrivileges(names []string, fn func() error) error { + privileges, err := mapPrivileges(names) + if err != nil { + return err + } + runtime.LockOSThread() + defer runtime.UnlockOSThread() + token, err := newThreadToken() + if err != nil { + return err + } + defer releaseThreadToken(token) + err = adjustPrivileges(token, privileges, SE_PRIVILEGE_ENABLED) + if err != nil { + return err + } + return fn() +} + +func mapPrivileges(names []string) ([]uint64, error) { + privileges := make([]uint64, 0, len(names)) + privNameMutex.Lock() + defer privNameMutex.Unlock() + for _, name := range names { + p, ok := privNames[name] + if !ok { + err := lookupPrivilegeValue("", name, &p) + if err != nil { + return nil, err + } + privNames[name] = p + } + privileges = append(privileges, p) + } + return privileges, nil +} + +// EnableProcessPrivileges enables privileges globally for the process. +func EnableProcessPrivileges(names []string) error { + return enableDisableProcessPrivilege(names, SE_PRIVILEGE_ENABLED) +} + +// DisableProcessPrivileges disables privileges globally for the process. +func DisableProcessPrivileges(names []string) error { + return enableDisableProcessPrivilege(names, 0) +} + +func enableDisableProcessPrivilege(names []string, action uint32) error { + privileges, err := mapPrivileges(names) + if err != nil { + return err + } + + p := windows.CurrentProcess() + var token windows.Token + err = windows.OpenProcessToken(p, windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, &token) + if err != nil { + return err + } + + defer token.Close() + return adjustPrivileges(token, privileges, action) +} + +func adjustPrivileges(token windows.Token, privileges []uint64, action uint32) error { + var b bytes.Buffer + _ = binary.Write(&b, binary.LittleEndian, uint32(len(privileges))) + for _, p := range privileges { + _ = binary.Write(&b, binary.LittleEndian, p) + _ = binary.Write(&b, binary.LittleEndian, action) + } + prevState := make([]byte, b.Len()) + reqSize := uint32(0) + success, err := adjustTokenPrivileges(token, false, &b.Bytes()[0], uint32(len(prevState)), &prevState[0], &reqSize) + if !success { + return err + } + if err == ERROR_NOT_ALL_ASSIGNED { //nolint:errorlint // err is Errno + return &PrivilegeError{privileges} + } + return nil +} + +func getPrivilegeName(luid uint64) string { + var nameBuffer [256]uint16 + bufSize := uint32(len(nameBuffer)) + err := lookupPrivilegeName("", &luid, &nameBuffer[0], &bufSize) + if err != nil { + return fmt.Sprintf("", luid) + } + + var displayNameBuffer [256]uint16 + displayBufSize := uint32(len(displayNameBuffer)) + var langID uint32 + err = lookupPrivilegeDisplayName("", &nameBuffer[0], &displayNameBuffer[0], &displayBufSize, &langID) + if err != nil { + return fmt.Sprintf("", string(utf16.Decode(nameBuffer[:bufSize]))) + } + + return string(utf16.Decode(displayNameBuffer[:displayBufSize])) +} + +func newThreadToken() (windows.Token, error) { + err := impersonateSelf(windows.SecurityImpersonation) + if err != nil { + return 0, err + } + + var token windows.Token + err = openThreadToken(getCurrentThread(), syscall.TOKEN_ADJUST_PRIVILEGES|syscall.TOKEN_QUERY, false, &token) + if err != nil { + rerr := revertToSelf() + if rerr != nil { + panic(rerr) + } + return 0, err + } + return token, nil +} + +func releaseThreadToken(h windows.Token) { + err := revertToSelf() + if err != nil { + panic(err) + } + h.Close() +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go new file mode 100644 index 0000000000..67d1a104a6 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go @@ -0,0 +1,131 @@ +//go:build windows +// +build windows + +package winio + +import ( + "bytes" + "encoding/binary" + "fmt" + "strings" + "unicode/utf16" + "unsafe" +) + +const ( + reparseTagMountPoint = 0xA0000003 + reparseTagSymlink = 0xA000000C +) + +type reparseDataBuffer struct { + ReparseTag uint32 + ReparseDataLength uint16 + Reserved uint16 + SubstituteNameOffset uint16 + SubstituteNameLength uint16 + PrintNameOffset uint16 + PrintNameLength uint16 +} + +// ReparsePoint describes a Win32 symlink or mount point. +type ReparsePoint struct { + Target string + IsMountPoint bool +} + +// UnsupportedReparsePointError is returned when trying to decode a non-symlink or +// mount point reparse point. +type UnsupportedReparsePointError struct { + Tag uint32 +} + +func (e *UnsupportedReparsePointError) Error() string { + return fmt.Sprintf("unsupported reparse point %x", e.Tag) +} + +// DecodeReparsePoint decodes a Win32 REPARSE_DATA_BUFFER structure containing either a symlink +// or a mount point. +func DecodeReparsePoint(b []byte) (*ReparsePoint, error) { + tag := binary.LittleEndian.Uint32(b[0:4]) + return DecodeReparsePointData(tag, b[8:]) +} + +func DecodeReparsePointData(tag uint32, b []byte) (*ReparsePoint, error) { + isMountPoint := false + switch tag { + case reparseTagMountPoint: + isMountPoint = true + case reparseTagSymlink: + default: + return nil, &UnsupportedReparsePointError{tag} + } + nameOffset := 8 + binary.LittleEndian.Uint16(b[4:6]) + if !isMountPoint { + nameOffset += 4 + } + nameLength := binary.LittleEndian.Uint16(b[6:8]) + name := make([]uint16, nameLength/2) + err := binary.Read(bytes.NewReader(b[nameOffset:nameOffset+nameLength]), binary.LittleEndian, &name) + if err != nil { + return nil, err + } + return &ReparsePoint{string(utf16.Decode(name)), isMountPoint}, nil +} + +func isDriveLetter(c byte) bool { + return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') +} + +// EncodeReparsePoint encodes a Win32 REPARSE_DATA_BUFFER structure describing a symlink or +// mount point. +func EncodeReparsePoint(rp *ReparsePoint) []byte { + // Generate an NT path and determine if this is a relative path. + var ntTarget string + relative := false + if strings.HasPrefix(rp.Target, `\\?\`) { + ntTarget = `\??\` + rp.Target[4:] + } else if strings.HasPrefix(rp.Target, `\\`) { + ntTarget = `\??\UNC\` + rp.Target[2:] + } else if len(rp.Target) >= 2 && isDriveLetter(rp.Target[0]) && rp.Target[1] == ':' { + ntTarget = `\??\` + rp.Target + } else { + ntTarget = rp.Target + relative = true + } + + // The paths must be NUL-terminated even though they are counted strings. + target16 := utf16.Encode([]rune(rp.Target + "\x00")) + ntTarget16 := utf16.Encode([]rune(ntTarget + "\x00")) + + size := int(unsafe.Sizeof(reparseDataBuffer{})) - 8 + size += len(ntTarget16)*2 + len(target16)*2 + + tag := uint32(reparseTagMountPoint) + if !rp.IsMountPoint { + tag = reparseTagSymlink + size += 4 // Add room for symlink flags + } + + data := reparseDataBuffer{ + ReparseTag: tag, + ReparseDataLength: uint16(size), + SubstituteNameOffset: 0, + SubstituteNameLength: uint16((len(ntTarget16) - 1) * 2), + PrintNameOffset: uint16(len(ntTarget16) * 2), + PrintNameLength: uint16((len(target16) - 1) * 2), + } + + var b bytes.Buffer + _ = binary.Write(&b, binary.LittleEndian, &data) + if !rp.IsMountPoint { + flags := uint32(0) + if relative { + flags |= 1 + } + _ = binary.Write(&b, binary.LittleEndian, flags) + } + + _ = binary.Write(&b, binary.LittleEndian, ntTarget16) + _ = binary.Write(&b, binary.LittleEndian, target16) + return b.Bytes() +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go new file mode 100644 index 0000000000..5550ef6b61 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go @@ -0,0 +1,144 @@ +//go:build windows +// +build windows + +package winio + +import ( + "errors" + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +//sys lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountNameW +//sys lookupAccountSid(systemName *uint16, sid *byte, name *uint16, nameSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountSidW +//sys convertSidToStringSid(sid *byte, str **uint16) (err error) = advapi32.ConvertSidToStringSidW +//sys convertStringSidToSid(str *uint16, sid **byte) (err error) = advapi32.ConvertStringSidToSidW +//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW +//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW +//sys localFree(mem uintptr) = LocalFree +//sys getSecurityDescriptorLength(sd uintptr) (len uint32) = advapi32.GetSecurityDescriptorLength + +type AccountLookupError struct { + Name string + Err error +} + +func (e *AccountLookupError) Error() string { + if e.Name == "" { + return "lookup account: empty account name specified" + } + var s string + switch { + case errors.Is(e.Err, windows.ERROR_INVALID_SID): + s = "the security ID structure is invalid" + case errors.Is(e.Err, windows.ERROR_NONE_MAPPED): + s = "not found" + default: + s = e.Err.Error() + } + return "lookup account " + e.Name + ": " + s +} + +func (e *AccountLookupError) Unwrap() error { return e.Err } + +type SddlConversionError struct { + Sddl string + Err error +} + +func (e *SddlConversionError) Error() string { + return "convert " + e.Sddl + ": " + e.Err.Error() +} + +func (e *SddlConversionError) Unwrap() error { return e.Err } + +// LookupSidByName looks up the SID of an account by name +// +//revive:disable-next-line:var-naming SID, not Sid +func LookupSidByName(name string) (sid string, err error) { + if name == "" { + return "", &AccountLookupError{name, windows.ERROR_NONE_MAPPED} + } + + var sidSize, sidNameUse, refDomainSize uint32 + err = lookupAccountName(nil, name, nil, &sidSize, nil, &refDomainSize, &sidNameUse) + if err != nil && err != syscall.ERROR_INSUFFICIENT_BUFFER { //nolint:errorlint // err is Errno + return "", &AccountLookupError{name, err} + } + sidBuffer := make([]byte, sidSize) + refDomainBuffer := make([]uint16, refDomainSize) + err = lookupAccountName(nil, name, &sidBuffer[0], &sidSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse) + if err != nil { + return "", &AccountLookupError{name, err} + } + var strBuffer *uint16 + err = convertSidToStringSid(&sidBuffer[0], &strBuffer) + if err != nil { + return "", &AccountLookupError{name, err} + } + sid = syscall.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(strBuffer))[:]) + localFree(uintptr(unsafe.Pointer(strBuffer))) + return sid, nil +} + +// LookupNameBySid looks up the name of an account by SID +// +//revive:disable-next-line:var-naming SID, not Sid +func LookupNameBySid(sid string) (name string, err error) { + if sid == "" { + return "", &AccountLookupError{sid, windows.ERROR_NONE_MAPPED} + } + + sidBuffer, err := windows.UTF16PtrFromString(sid) + if err != nil { + return "", &AccountLookupError{sid, err} + } + + var sidPtr *byte + if err = convertStringSidToSid(sidBuffer, &sidPtr); err != nil { + return "", &AccountLookupError{sid, err} + } + defer localFree(uintptr(unsafe.Pointer(sidPtr))) + + var nameSize, refDomainSize, sidNameUse uint32 + err = lookupAccountSid(nil, sidPtr, nil, &nameSize, nil, &refDomainSize, &sidNameUse) + if err != nil && err != windows.ERROR_INSUFFICIENT_BUFFER { //nolint:errorlint // err is Errno + return "", &AccountLookupError{sid, err} + } + + nameBuffer := make([]uint16, nameSize) + refDomainBuffer := make([]uint16, refDomainSize) + err = lookupAccountSid(nil, sidPtr, &nameBuffer[0], &nameSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse) + if err != nil { + return "", &AccountLookupError{sid, err} + } + + name = windows.UTF16ToString(nameBuffer) + return name, nil +} + +func SddlToSecurityDescriptor(sddl string) ([]byte, error) { + var sdBuffer uintptr + err := convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &sdBuffer, nil) + if err != nil { + return nil, &SddlConversionError{sddl, err} + } + defer localFree(sdBuffer) + sd := make([]byte, getSecurityDescriptorLength(sdBuffer)) + copy(sd, (*[0xffff]byte)(unsafe.Pointer(sdBuffer))[:len(sd)]) + return sd, nil +} + +func SecurityDescriptorToSddl(sd []byte) (string, error) { + var sddl *uint16 + // The returned string length seems to include an arbitrary number of terminating NULs. + // Don't use it. + err := convertSecurityDescriptorToStringSecurityDescriptor(&sd[0], 1, 0xff, &sddl, nil) + if err != nil { + return "", err + } + defer localFree(uintptr(unsafe.Pointer(sddl))) + return syscall.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(sddl))[:]), nil +} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go new file mode 100644 index 0000000000..a6ca111b39 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go @@ -0,0 +1,5 @@ +//go:build windows + +package winio + +//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go new file mode 100644 index 0000000000..2aa045843e --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go @@ -0,0 +1,5 @@ +//go:build tools + +package winio + +import _ "golang.org/x/tools/cmd/stringer" diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go new file mode 100644 index 0000000000..469b16f639 --- /dev/null +++ b/ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go @@ -0,0 +1,419 @@ +//go:build windows + +// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. + +package winio + +import ( + "syscall" + "unsafe" + + "golang.org/x/sys/windows" +) + +var _ unsafe.Pointer + +// Do the interface allocations only once for common +// Errno values. +const ( + errnoERROR_IO_PENDING = 997 +) + +var ( + errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) + errERROR_EINVAL error = syscall.EINVAL +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return errERROR_EINVAL + case errnoERROR_IO_PENDING: + return errERROR_IO_PENDING + } + // TODO: add more here, after collecting data on the common + // error values see on Windows. (perhaps when running + // all.bat?) + return e +} + +var ( + modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") + modkernel32 = windows.NewLazySystemDLL("kernel32.dll") + modntdll = windows.NewLazySystemDLL("ntdll.dll") + modws2_32 = windows.NewLazySystemDLL("ws2_32.dll") + + procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") + procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") + procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") + procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") + procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") + procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") + procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") + procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") + procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") + procLookupPrivilegeDisplayNameW = modadvapi32.NewProc("LookupPrivilegeDisplayNameW") + procLookupPrivilegeNameW = modadvapi32.NewProc("LookupPrivilegeNameW") + procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") + procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") + procRevertToSelf = modadvapi32.NewProc("RevertToSelf") + procBackupRead = modkernel32.NewProc("BackupRead") + procBackupWrite = modkernel32.NewProc("BackupWrite") + procCancelIoEx = modkernel32.NewProc("CancelIoEx") + procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") + procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") + procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") + procGetCurrentThread = modkernel32.NewProc("GetCurrentThread") + procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") + procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") + procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") + procLocalAlloc = modkernel32.NewProc("LocalAlloc") + procLocalFree = modkernel32.NewProc("LocalFree") + procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") + procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") + procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") + procRtlDosPathNameToNtPathName_U = modntdll.NewProc("RtlDosPathNameToNtPathName_U") + procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") + procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") +) + +func adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) { + var _p0 uint32 + if releaseAll { + _p0 = 1 + } + r0, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(input)), uintptr(outputSize), uintptr(unsafe.Pointer(output)), uintptr(unsafe.Pointer(requiredSize))) + success = r0 != 0 + if true { + err = errnoErr(e1) + } + return +} + +func convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(secInfo), uintptr(unsafe.Pointer(sddl)), uintptr(unsafe.Pointer(sddlSize)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertSidToStringSid(sid *byte, str **uint16) (err error) { + r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(str)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, size *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(str) + if err != nil { + return + } + return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) +} + +func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd *uintptr, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func convertStringSidToSid(str *uint16, sid **byte) (err error) { + r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(sid)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getSecurityDescriptorLength(sd uintptr) (len uint32) { + r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(sd), 0, 0) + len = uint32(r0) + return +} + +func impersonateSelf(level uint32) (err error) { + r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(level), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(accountName) + if err != nil { + return + } + return _lookupAccountName(systemName, _p0, sid, sidSize, refDomain, refDomainSize, sidNameUse) +} + +func _lookupAccountName(systemName *uint16, accountName *uint16, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func lookupAccountSid(systemName *uint16, sid *byte, name *uint16, nameSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(systemName) + if err != nil { + return + } + return _lookupPrivilegeDisplayName(_p0, name, buffer, size, languageId) +} + +func _lookupPrivilegeDisplayName(systemName *uint16, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procLookupPrivilegeDisplayNameW.Addr(), 5, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(languageId)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(systemName) + if err != nil { + return + } + return _lookupPrivilegeName(_p0, luid, buffer, size) +} + +func _lookupPrivilegeName(systemName *uint16, luid *uint64, buffer *uint16, size *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procLookupPrivilegeNameW.Addr(), 4, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(luid)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(systemName) + if err != nil { + return + } + var _p1 *uint16 + _p1, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _lookupPrivilegeValue(_p0, _p1, luid) +} + +func _lookupPrivilegeValue(systemName *uint16, name *uint16, luid *uint64) (err error) { + r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) { + var _p0 uint32 + if openAsSelf { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(accessMask), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func revertToSelf() (err error) { + r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 uint32 + if abort { + _p1 = 1 + } + var _p2 uint32 + if processSecurity { + _p2 = 1 + } + r1, _, e1 := syscall.Syscall9(procBackupRead.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesRead)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 uint32 + if abort { + _p1 = 1 + } + var _p2 uint32 + if processSecurity { + _p2 = 1 + } + r1, _, e1 := syscall.Syscall9(procBackupWrite.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesWritten)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(file), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) { + r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(o)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) { + r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount), 0, 0) + newport = syscall.Handle(r0) + if newport == 0 { + err = errnoErr(e1) + } + return +} + +func createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { + var _p0 *uint16 + _p0, err = syscall.UTF16PtrFromString(name) + if err != nil { + return + } + return _createNamedPipe(_p0, flags, pipeMode, maxInstances, outSize, inSize, defaultTimeout, sa) +} + +func _createNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { + r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) + handle = syscall.Handle(r0) + if handle == syscall.InvalidHandle { + err = errnoErr(e1) + } + return +} + +func getCurrentThread() (h syscall.Handle) { + r0, _, _ := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0) + h = syscall.Handle(r0) + return +} + +func getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { + r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) { + r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(port), uintptr(unsafe.Pointer(bytes)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(o)), uintptr(timeout), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func localAlloc(uFlags uint32, length uint32) (ptr uintptr) { + r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(uFlags), uintptr(length), 0) + ptr = uintptr(r0) + return +} + +func localFree(mem uintptr) { + syscall.Syscall(procLocalFree.Addr(), 1, uintptr(mem), 0, 0) + return +} + +func setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) { + r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(h), uintptr(flags), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} + +func ntCreateNamedPipeFile(pipe *syscall.Handle, access uint32, oa *objectAttributes, iosb *ioStatusBlock, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntStatus) { + r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) + status = ntStatus(r0) + return +} + +func rtlDefaultNpAcl(dacl *uintptr) (status ntStatus) { + r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(dacl)), 0, 0) + status = ntStatus(r0) + return +} + +func rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntStatus) { + r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(ntName)), uintptr(filePart), uintptr(reserved), 0, 0) + status = ntStatus(r0) + return +} + +func rtlNtStatusToDosError(status ntStatus) (winerr error) { + r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(status), 0, 0) + if r0 != 0 { + winerr = syscall.Errno(r0) + } + return +} + +func wsaGetOverlappedResult(h syscall.Handle, o *syscall.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { + var _p0 uint32 + if wait { + _p0 = 1 + } + r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) + if r1 == 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/github.com/container-storage-interface/spec/LICENSE b/ecs-agent/vendor/github.com/container-storage-interface/spec/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/ecs-agent/vendor/github.com/container-storage-interface/spec/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go b/ecs-agent/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go new file mode 100644 index 0000000000..fa010c376b --- /dev/null +++ b/ecs-agent/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go @@ -0,0 +1,7204 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: github.com/container-storage-interface/spec/csi.proto + +package csi + +import ( + context "context" + fmt "fmt" + proto "github.com/golang/protobuf/proto" + descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor" + timestamp "github.com/golang/protobuf/ptypes/timestamp" + wrappers "github.com/golang/protobuf/ptypes/wrappers" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + math "math" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package + +type PluginCapability_Service_Type int32 + +const ( + PluginCapability_Service_UNKNOWN PluginCapability_Service_Type = 0 + // CONTROLLER_SERVICE indicates that the Plugin provides RPCs for + // the ControllerService. Plugins SHOULD provide this capability. + // In rare cases certain plugins MAY wish to omit the + // ControllerService entirely from their implementation, but such + // SHOULD NOT be the common case. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED ControllerService RPCs, as well + // as specific RPCs as indicated by ControllerGetCapabilities. + PluginCapability_Service_CONTROLLER_SERVICE PluginCapability_Service_Type = 1 + // VOLUME_ACCESSIBILITY_CONSTRAINTS indicates that the volumes for + // this plugin MAY NOT be equally accessible by all nodes in the + // cluster. The CO MUST use the topology information returned by + // CreateVolumeRequest along with the topology information + // returned by NodeGetInfo to ensure that a given volume is + // accessible from a given node when scheduling workloads. + PluginCapability_Service_VOLUME_ACCESSIBILITY_CONSTRAINTS PluginCapability_Service_Type = 2 + // GROUP_CONTROLLER_SERVICE indicates that the Plugin provides + // RPCs for operating on groups of volumes. Plugins MAY provide + // this capability. + // The presence of this capability determines whether the CO will + // attempt to invoke the REQUIRED GroupController service RPCs, as + // well as specific RPCs as indicated by + // GroupControllerGetCapabilities. + PluginCapability_Service_GROUP_CONTROLLER_SERVICE PluginCapability_Service_Type = 3 +) + +var PluginCapability_Service_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CONTROLLER_SERVICE", + 2: "VOLUME_ACCESSIBILITY_CONSTRAINTS", + 3: "GROUP_CONTROLLER_SERVICE", +} + +var PluginCapability_Service_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CONTROLLER_SERVICE": 1, + "VOLUME_ACCESSIBILITY_CONSTRAINTS": 2, + "GROUP_CONTROLLER_SERVICE": 3, +} + +func (x PluginCapability_Service_Type) String() string { + return proto.EnumName(PluginCapability_Service_Type_name, int32(x)) +} + +func (PluginCapability_Service_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{4, 0, 0} +} + +type PluginCapability_VolumeExpansion_Type int32 + +const ( + PluginCapability_VolumeExpansion_UNKNOWN PluginCapability_VolumeExpansion_Type = 0 + // ONLINE indicates that volumes may be expanded when published to + // a node. When a Plugin implements this capability it MUST + // implement either the EXPAND_VOLUME controller capability or the + // EXPAND_VOLUME node capability or both. When a plugin supports + // ONLINE volume expansion and also has the EXPAND_VOLUME + // controller capability then the plugin MUST support expansion of + // volumes currently published and available on a node. When a + // plugin supports ONLINE volume expansion and also has the + // EXPAND_VOLUME node capability then the plugin MAY support + // expansion of node-published volume via NodeExpandVolume. + // + // Example 1: Given a shared filesystem volume (e.g. GlusterFs), + // + // the Plugin may set the ONLINE volume expansion capability and + // implement ControllerExpandVolume but not NodeExpandVolume. + // + // Example 2: Given a block storage volume type (e.g. EBS), the + // + // Plugin may set the ONLINE volume expansion capability and + // implement both ControllerExpandVolume and NodeExpandVolume. + // + // Example 3: Given a Plugin that supports volume expansion only + // + // upon a node, the Plugin may set the ONLINE volume + // expansion capability and implement NodeExpandVolume but not + // ControllerExpandVolume. + PluginCapability_VolumeExpansion_ONLINE PluginCapability_VolumeExpansion_Type = 1 + // OFFLINE indicates that volumes currently published and + // available on a node SHALL NOT be expanded via + // ControllerExpandVolume. When a plugin supports OFFLINE volume + // expansion it MUST implement either the EXPAND_VOLUME controller + // capability or both the EXPAND_VOLUME controller capability and + // the EXPAND_VOLUME node capability. + // + // Example 1: Given a block storage volume type (e.g. Azure Disk) + // + // that does not support expansion of "node-attached" (i.e. + // controller-published) volumes, the Plugin may indicate + // OFFLINE volume expansion support and implement both + // ControllerExpandVolume and NodeExpandVolume. + PluginCapability_VolumeExpansion_OFFLINE PluginCapability_VolumeExpansion_Type = 2 +) + +var PluginCapability_VolumeExpansion_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "ONLINE", + 2: "OFFLINE", +} + +var PluginCapability_VolumeExpansion_Type_value = map[string]int32{ + "UNKNOWN": 0, + "ONLINE": 1, + "OFFLINE": 2, +} + +func (x PluginCapability_VolumeExpansion_Type) String() string { + return proto.EnumName(PluginCapability_VolumeExpansion_Type_name, int32(x)) +} + +func (PluginCapability_VolumeExpansion_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{4, 1, 0} +} + +type VolumeCapability_AccessMode_Mode int32 + +const ( + VolumeCapability_AccessMode_UNKNOWN VolumeCapability_AccessMode_Mode = 0 + // Can only be published once as read/write on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_WRITER VolumeCapability_AccessMode_Mode = 1 + // Can only be published once as readonly on a single node, at + // any given time. + VolumeCapability_AccessMode_SINGLE_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 2 + // Can be published as readonly at multiple nodes simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_READER_ONLY VolumeCapability_AccessMode_Mode = 3 + // Can be published at multiple nodes simultaneously. Only one of + // the node can be used as read/write. The rest will be readonly. + VolumeCapability_AccessMode_MULTI_NODE_SINGLE_WRITER VolumeCapability_AccessMode_Mode = 4 + // Can be published as read/write at multiple nodes + // simultaneously. + VolumeCapability_AccessMode_MULTI_NODE_MULTI_WRITER VolumeCapability_AccessMode_Mode = 5 + // Can only be published once as read/write at a single workload + // on a single node, at any given time. SHOULD be used instead of + // SINGLE_NODE_WRITER for COs using the experimental + // SINGLE_NODE_MULTI_WRITER capability. + VolumeCapability_AccessMode_SINGLE_NODE_SINGLE_WRITER VolumeCapability_AccessMode_Mode = 6 + // Can be published as read/write at multiple workloads on a + // single node simultaneously. SHOULD be used instead of + // SINGLE_NODE_WRITER for COs using the experimental + // SINGLE_NODE_MULTI_WRITER capability. + VolumeCapability_AccessMode_SINGLE_NODE_MULTI_WRITER VolumeCapability_AccessMode_Mode = 7 +) + +var VolumeCapability_AccessMode_Mode_name = map[int32]string{ + 0: "UNKNOWN", + 1: "SINGLE_NODE_WRITER", + 2: "SINGLE_NODE_READER_ONLY", + 3: "MULTI_NODE_READER_ONLY", + 4: "MULTI_NODE_SINGLE_WRITER", + 5: "MULTI_NODE_MULTI_WRITER", + 6: "SINGLE_NODE_SINGLE_WRITER", + 7: "SINGLE_NODE_MULTI_WRITER", +} + +var VolumeCapability_AccessMode_Mode_value = map[string]int32{ + "UNKNOWN": 0, + "SINGLE_NODE_WRITER": 1, + "SINGLE_NODE_READER_ONLY": 2, + "MULTI_NODE_READER_ONLY": 3, + "MULTI_NODE_SINGLE_WRITER": 4, + "MULTI_NODE_MULTI_WRITER": 5, + "SINGLE_NODE_SINGLE_WRITER": 6, + "SINGLE_NODE_MULTI_WRITER": 7, +} + +func (x VolumeCapability_AccessMode_Mode) String() string { + return proto.EnumName(VolumeCapability_AccessMode_Mode_name, int32(x)) +} + +func (VolumeCapability_AccessMode_Mode) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{10, 2, 0} +} + +type ControllerServiceCapability_RPC_Type int32 + +const ( + ControllerServiceCapability_RPC_UNKNOWN ControllerServiceCapability_RPC_Type = 0 + ControllerServiceCapability_RPC_CREATE_DELETE_VOLUME ControllerServiceCapability_RPC_Type = 1 + ControllerServiceCapability_RPC_PUBLISH_UNPUBLISH_VOLUME ControllerServiceCapability_RPC_Type = 2 + ControllerServiceCapability_RPC_LIST_VOLUMES ControllerServiceCapability_RPC_Type = 3 + ControllerServiceCapability_RPC_GET_CAPACITY ControllerServiceCapability_RPC_Type = 4 + // Currently the only way to consume a snapshot is to create + // a volume from it. Therefore plugins supporting + // CREATE_DELETE_SNAPSHOT MUST support creating volume from + // snapshot. + ControllerServiceCapability_RPC_CREATE_DELETE_SNAPSHOT ControllerServiceCapability_RPC_Type = 5 + ControllerServiceCapability_RPC_LIST_SNAPSHOTS ControllerServiceCapability_RPC_Type = 6 + // Plugins supporting volume cloning at the storage level MAY + // report this capability. The source volume MUST be managed by + // the same plugin. Not all volume sources and parameters + // combinations MAY work. + ControllerServiceCapability_RPC_CLONE_VOLUME ControllerServiceCapability_RPC_Type = 7 + // Indicates the SP supports ControllerPublishVolume.readonly + // field. + ControllerServiceCapability_RPC_PUBLISH_READONLY ControllerServiceCapability_RPC_Type = 8 + // See VolumeExpansion for details. + ControllerServiceCapability_RPC_EXPAND_VOLUME ControllerServiceCapability_RPC_Type = 9 + // Indicates the SP supports the + // ListVolumesResponse.entry.published_node_ids field and the + // ControllerGetVolumeResponse.published_node_ids field. + // The SP MUST also support PUBLISH_UNPUBLISH_VOLUME. + ControllerServiceCapability_RPC_LIST_VOLUMES_PUBLISHED_NODES ControllerServiceCapability_RPC_Type = 10 + // Indicates that the Controller service can report volume + // conditions. + // An SP MAY implement `VolumeCondition` in only the Controller + // Plugin, only the Node Plugin, or both. + // If `VolumeCondition` is implemented in both the Controller and + // Node Plugins, it SHALL report from different perspectives. + // If for some reason Controller and Node Plugins report + // misaligned volume conditions, CO SHALL assume the worst case + // is the truth. + // Note that, for alpha, `VolumeCondition` is intended be + // informative for humans only, not for automation. + ControllerServiceCapability_RPC_VOLUME_CONDITION ControllerServiceCapability_RPC_Type = 11 + // Indicates the SP supports the ControllerGetVolume RPC. + // This enables COs to, for example, fetch per volume + // condition after a volume is provisioned. + ControllerServiceCapability_RPC_GET_VOLUME ControllerServiceCapability_RPC_Type = 12 + // Indicates the SP supports the SINGLE_NODE_SINGLE_WRITER and/or + // SINGLE_NODE_MULTI_WRITER access modes. + // These access modes are intended to replace the + // SINGLE_NODE_WRITER access mode to clarify the number of writers + // for a volume on a single node. Plugins MUST accept and allow + // use of the SINGLE_NODE_WRITER access mode when either + // SINGLE_NODE_SINGLE_WRITER and/or SINGLE_NODE_MULTI_WRITER are + // supported, in order to permit older COs to continue working. + ControllerServiceCapability_RPC_SINGLE_NODE_MULTI_WRITER ControllerServiceCapability_RPC_Type = 13 +) + +var ControllerServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CREATE_DELETE_VOLUME", + 2: "PUBLISH_UNPUBLISH_VOLUME", + 3: "LIST_VOLUMES", + 4: "GET_CAPACITY", + 5: "CREATE_DELETE_SNAPSHOT", + 6: "LIST_SNAPSHOTS", + 7: "CLONE_VOLUME", + 8: "PUBLISH_READONLY", + 9: "EXPAND_VOLUME", + 10: "LIST_VOLUMES_PUBLISHED_NODES", + 11: "VOLUME_CONDITION", + 12: "GET_VOLUME", + 13: "SINGLE_NODE_MULTI_WRITER", +} + +var ControllerServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CREATE_DELETE_VOLUME": 1, + "PUBLISH_UNPUBLISH_VOLUME": 2, + "LIST_VOLUMES": 3, + "GET_CAPACITY": 4, + "CREATE_DELETE_SNAPSHOT": 5, + "LIST_SNAPSHOTS": 6, + "CLONE_VOLUME": 7, + "PUBLISH_READONLY": 8, + "EXPAND_VOLUME": 9, + "LIST_VOLUMES_PUBLISHED_NODES": 10, + "VOLUME_CONDITION": 11, + "GET_VOLUME": 12, + "SINGLE_NODE_MULTI_WRITER": 13, +} + +func (x ControllerServiceCapability_RPC_Type) String() string { + return proto.EnumName(ControllerServiceCapability_RPC_Type_name, int32(x)) +} + +func (ControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{31, 0, 0} +} + +type VolumeUsage_Unit int32 + +const ( + VolumeUsage_UNKNOWN VolumeUsage_Unit = 0 + VolumeUsage_BYTES VolumeUsage_Unit = 1 + VolumeUsage_INODES VolumeUsage_Unit = 2 +) + +var VolumeUsage_Unit_name = map[int32]string{ + 0: "UNKNOWN", + 1: "BYTES", + 2: "INODES", +} + +var VolumeUsage_Unit_value = map[string]int32{ + "UNKNOWN": 0, + "BYTES": 1, + "INODES": 2, +} + +func (x VolumeUsage_Unit) String() string { + return proto.EnumName(VolumeUsage_Unit_name, int32(x)) +} + +func (VolumeUsage_Unit) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{51, 0} +} + +type NodeServiceCapability_RPC_Type int32 + +const ( + NodeServiceCapability_RPC_UNKNOWN NodeServiceCapability_RPC_Type = 0 + NodeServiceCapability_RPC_STAGE_UNSTAGE_VOLUME NodeServiceCapability_RPC_Type = 1 + // If Plugin implements GET_VOLUME_STATS capability + // then it MUST implement NodeGetVolumeStats RPC + // call for fetching volume statistics. + NodeServiceCapability_RPC_GET_VOLUME_STATS NodeServiceCapability_RPC_Type = 2 + // See VolumeExpansion for details. + NodeServiceCapability_RPC_EXPAND_VOLUME NodeServiceCapability_RPC_Type = 3 + // Indicates that the Node service can report volume conditions. + // An SP MAY implement `VolumeCondition` in only the Node + // Plugin, only the Controller Plugin, or both. + // If `VolumeCondition` is implemented in both the Node and + // Controller Plugins, it SHALL report from different + // perspectives. + // If for some reason Node and Controller Plugins report + // misaligned volume conditions, CO SHALL assume the worst case + // is the truth. + // Note that, for alpha, `VolumeCondition` is intended to be + // informative for humans only, not for automation. + NodeServiceCapability_RPC_VOLUME_CONDITION NodeServiceCapability_RPC_Type = 4 + // Indicates the SP supports the SINGLE_NODE_SINGLE_WRITER and/or + // SINGLE_NODE_MULTI_WRITER access modes. + // These access modes are intended to replace the + // SINGLE_NODE_WRITER access mode to clarify the number of writers + // for a volume on a single node. Plugins MUST accept and allow + // use of the SINGLE_NODE_WRITER access mode (subject to the + // processing rules for NodePublishVolume), when either + // SINGLE_NODE_SINGLE_WRITER and/or SINGLE_NODE_MULTI_WRITER are + // supported, in order to permit older COs to continue working. + NodeServiceCapability_RPC_SINGLE_NODE_MULTI_WRITER NodeServiceCapability_RPC_Type = 5 + // Indicates that Node service supports mounting volumes + // with provided volume group identifier during node stage + // or node publish RPC calls. + NodeServiceCapability_RPC_VOLUME_MOUNT_GROUP NodeServiceCapability_RPC_Type = 6 +) + +var NodeServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "STAGE_UNSTAGE_VOLUME", + 2: "GET_VOLUME_STATS", + 3: "EXPAND_VOLUME", + 4: "VOLUME_CONDITION", + 5: "SINGLE_NODE_MULTI_WRITER", + 6: "VOLUME_MOUNT_GROUP", +} + +var NodeServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "STAGE_UNSTAGE_VOLUME": 1, + "GET_VOLUME_STATS": 2, + "EXPAND_VOLUME": 3, + "VOLUME_CONDITION": 4, + "SINGLE_NODE_MULTI_WRITER": 5, + "VOLUME_MOUNT_GROUP": 6, +} + +func (x NodeServiceCapability_RPC_Type) String() string { + return proto.EnumName(NodeServiceCapability_RPC_Type_name, int32(x)) +} + +func (NodeServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{55, 0, 0} +} + +type GroupControllerServiceCapability_RPC_Type int32 + +const ( + GroupControllerServiceCapability_RPC_UNKNOWN GroupControllerServiceCapability_RPC_Type = 0 + // Indicates that the group controller plugin supports + // creating, deleting, and getting details of a volume + // group snapshot. + GroupControllerServiceCapability_RPC_CREATE_DELETE_GET_VOLUME_GROUP_SNAPSHOT GroupControllerServiceCapability_RPC_Type = 1 +) + +var GroupControllerServiceCapability_RPC_Type_name = map[int32]string{ + 0: "UNKNOWN", + 1: "CREATE_DELETE_GET_VOLUME_GROUP_SNAPSHOT", +} + +var GroupControllerServiceCapability_RPC_Type_value = map[string]int32{ + "UNKNOWN": 0, + "CREATE_DELETE_GET_VOLUME_GROUP_SNAPSHOT": 1, +} + +func (x GroupControllerServiceCapability_RPC_Type) String() string { + return proto.EnumName(GroupControllerServiceCapability_RPC_Type_name, int32(x)) +} + +func (GroupControllerServiceCapability_RPC_Type) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{62, 0, 0} +} + +type GetPluginInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoRequest) Reset() { *m = GetPluginInfoRequest{} } +func (m *GetPluginInfoRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoRequest) ProtoMessage() {} +func (*GetPluginInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{0} +} + +func (m *GetPluginInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoRequest.Unmarshal(m, b) +} +func (m *GetPluginInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoRequest.Marshal(b, m, deterministic) +} +func (m *GetPluginInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoRequest.Merge(m, src) +} +func (m *GetPluginInfoRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoRequest.Size(m) +} +func (m *GetPluginInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoRequest proto.InternalMessageInfo + +type GetPluginInfoResponse struct { + // The name MUST follow domain name notation format + // (https://tools.ietf.org/html/rfc1035#section-2.3.1). It SHOULD + // include the plugin's host company name and the plugin name, + // to minimize the possibility of collisions. It MUST be 63 + // characters or less, beginning and ending with an alphanumeric + // character ([a-z0-9A-Z]) with dashes (-), dots (.), and + // alphanumerics between. This field is REQUIRED. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is REQUIRED. Value of this field is opaque to the CO. + VendorVersion string `protobuf:"bytes,2,opt,name=vendor_version,json=vendorVersion,proto3" json:"vendor_version,omitempty"` + // This field is OPTIONAL. Values are opaque to the CO. + Manifest map[string]string `protobuf:"bytes,3,rep,name=manifest,proto3" json:"manifest,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginInfoResponse) Reset() { *m = GetPluginInfoResponse{} } +func (m *GetPluginInfoResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginInfoResponse) ProtoMessage() {} +func (*GetPluginInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{1} +} + +func (m *GetPluginInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginInfoResponse.Unmarshal(m, b) +} +func (m *GetPluginInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginInfoResponse.Marshal(b, m, deterministic) +} +func (m *GetPluginInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginInfoResponse.Merge(m, src) +} +func (m *GetPluginInfoResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginInfoResponse.Size(m) +} +func (m *GetPluginInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginInfoResponse proto.InternalMessageInfo + +func (m *GetPluginInfoResponse) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *GetPluginInfoResponse) GetVendorVersion() string { + if m != nil { + return m.VendorVersion + } + return "" +} + +func (m *GetPluginInfoResponse) GetManifest() map[string]string { + if m != nil { + return m.Manifest + } + return nil +} + +type GetPluginCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesRequest) Reset() { *m = GetPluginCapabilitiesRequest{} } +func (m *GetPluginCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesRequest) ProtoMessage() {} +func (*GetPluginCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{2} +} + +func (m *GetPluginCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (m *GetPluginCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesRequest.Merge(m, src) +} +func (m *GetPluginCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesRequest.Size(m) +} +func (m *GetPluginCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesRequest proto.InternalMessageInfo + +type GetPluginCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*PluginCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetPluginCapabilitiesResponse) Reset() { *m = GetPluginCapabilitiesResponse{} } +func (m *GetPluginCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*GetPluginCapabilitiesResponse) ProtoMessage() {} +func (*GetPluginCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{3} +} + +func (m *GetPluginCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Unmarshal(m, b) +} +func (m *GetPluginCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (m *GetPluginCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetPluginCapabilitiesResponse.Merge(m, src) +} +func (m *GetPluginCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_GetPluginCapabilitiesResponse.Size(m) +} +func (m *GetPluginCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetPluginCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetPluginCapabilitiesResponse proto.InternalMessageInfo + +func (m *GetPluginCapabilitiesResponse) GetCapabilities() []*PluginCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the plugin. +type PluginCapability struct { + // Types that are valid to be assigned to Type: + // + // *PluginCapability_Service_ + // *PluginCapability_VolumeExpansion_ + Type isPluginCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability) Reset() { *m = PluginCapability{} } +func (m *PluginCapability) String() string { return proto.CompactTextString(m) } +func (*PluginCapability) ProtoMessage() {} +func (*PluginCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{4} +} + +func (m *PluginCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability.Unmarshal(m, b) +} +func (m *PluginCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability.Marshal(b, m, deterministic) +} +func (m *PluginCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability.Merge(m, src) +} +func (m *PluginCapability) XXX_Size() int { + return xxx_messageInfo_PluginCapability.Size(m) +} +func (m *PluginCapability) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability proto.InternalMessageInfo + +type isPluginCapability_Type interface { + isPluginCapability_Type() +} + +type PluginCapability_Service_ struct { + Service *PluginCapability_Service `protobuf:"bytes,1,opt,name=service,proto3,oneof"` +} + +type PluginCapability_VolumeExpansion_ struct { + VolumeExpansion *PluginCapability_VolumeExpansion `protobuf:"bytes,2,opt,name=volume_expansion,json=volumeExpansion,proto3,oneof"` +} + +func (*PluginCapability_Service_) isPluginCapability_Type() {} + +func (*PluginCapability_VolumeExpansion_) isPluginCapability_Type() {} + +func (m *PluginCapability) GetType() isPluginCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *PluginCapability) GetService() *PluginCapability_Service { + if x, ok := m.GetType().(*PluginCapability_Service_); ok { + return x.Service + } + return nil +} + +func (m *PluginCapability) GetVolumeExpansion() *PluginCapability_VolumeExpansion { + if x, ok := m.GetType().(*PluginCapability_VolumeExpansion_); ok { + return x.VolumeExpansion + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*PluginCapability) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*PluginCapability_Service_)(nil), + (*PluginCapability_VolumeExpansion_)(nil), + } +} + +type PluginCapability_Service struct { + Type PluginCapability_Service_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.PluginCapability_Service_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability_Service) Reset() { *m = PluginCapability_Service{} } +func (m *PluginCapability_Service) String() string { return proto.CompactTextString(m) } +func (*PluginCapability_Service) ProtoMessage() {} +func (*PluginCapability_Service) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{4, 0} +} + +func (m *PluginCapability_Service) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability_Service.Unmarshal(m, b) +} +func (m *PluginCapability_Service) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability_Service.Marshal(b, m, deterministic) +} +func (m *PluginCapability_Service) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability_Service.Merge(m, src) +} +func (m *PluginCapability_Service) XXX_Size() int { + return xxx_messageInfo_PluginCapability_Service.Size(m) +} +func (m *PluginCapability_Service) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability_Service.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability_Service proto.InternalMessageInfo + +func (m *PluginCapability_Service) GetType() PluginCapability_Service_Type { + if m != nil { + return m.Type + } + return PluginCapability_Service_UNKNOWN +} + +type PluginCapability_VolumeExpansion struct { + Type PluginCapability_VolumeExpansion_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.PluginCapability_VolumeExpansion_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PluginCapability_VolumeExpansion) Reset() { *m = PluginCapability_VolumeExpansion{} } +func (m *PluginCapability_VolumeExpansion) String() string { return proto.CompactTextString(m) } +func (*PluginCapability_VolumeExpansion) ProtoMessage() {} +func (*PluginCapability_VolumeExpansion) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{4, 1} +} + +func (m *PluginCapability_VolumeExpansion) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PluginCapability_VolumeExpansion.Unmarshal(m, b) +} +func (m *PluginCapability_VolumeExpansion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PluginCapability_VolumeExpansion.Marshal(b, m, deterministic) +} +func (m *PluginCapability_VolumeExpansion) XXX_Merge(src proto.Message) { + xxx_messageInfo_PluginCapability_VolumeExpansion.Merge(m, src) +} +func (m *PluginCapability_VolumeExpansion) XXX_Size() int { + return xxx_messageInfo_PluginCapability_VolumeExpansion.Size(m) +} +func (m *PluginCapability_VolumeExpansion) XXX_DiscardUnknown() { + xxx_messageInfo_PluginCapability_VolumeExpansion.DiscardUnknown(m) +} + +var xxx_messageInfo_PluginCapability_VolumeExpansion proto.InternalMessageInfo + +func (m *PluginCapability_VolumeExpansion) GetType() PluginCapability_VolumeExpansion_Type { + if m != nil { + return m.Type + } + return PluginCapability_VolumeExpansion_UNKNOWN +} + +type ProbeRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeRequest) Reset() { *m = ProbeRequest{} } +func (m *ProbeRequest) String() string { return proto.CompactTextString(m) } +func (*ProbeRequest) ProtoMessage() {} +func (*ProbeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{5} +} + +func (m *ProbeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeRequest.Unmarshal(m, b) +} +func (m *ProbeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeRequest.Marshal(b, m, deterministic) +} +func (m *ProbeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeRequest.Merge(m, src) +} +func (m *ProbeRequest) XXX_Size() int { + return xxx_messageInfo_ProbeRequest.Size(m) +} +func (m *ProbeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeRequest proto.InternalMessageInfo + +type ProbeResponse struct { + // Readiness allows a plugin to report its initialization status back + // to the CO. Initialization for some plugins MAY be time consuming + // and it is important for a CO to distinguish between the following + // cases: + // + // 1. The plugin is in an unhealthy state and MAY need restarting. In + // this case a gRPC error code SHALL be returned. + // 2. The plugin is still initializing, but is otherwise perfectly + // healthy. In this case a successful response SHALL be returned + // with a readiness value of `false`. Calls to the plugin's + // Controller and/or Node services MAY fail due to an incomplete + // initialization state. + // 3. The plugin has finished initializing and is ready to service + // calls to its Controller and/or Node services. A successful + // response is returned with a readiness value of `true`. + // + // This field is OPTIONAL. If not present, the caller SHALL assume + // that the plugin is in a ready state and is accepting calls to its + // Controller and/or Node services (according to the plugin's reported + // capabilities). + Ready *wrappers.BoolValue `protobuf:"bytes,1,opt,name=ready,proto3" json:"ready,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ProbeResponse) Reset() { *m = ProbeResponse{} } +func (m *ProbeResponse) String() string { return proto.CompactTextString(m) } +func (*ProbeResponse) ProtoMessage() {} +func (*ProbeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{6} +} + +func (m *ProbeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ProbeResponse.Unmarshal(m, b) +} +func (m *ProbeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ProbeResponse.Marshal(b, m, deterministic) +} +func (m *ProbeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProbeResponse.Merge(m, src) +} +func (m *ProbeResponse) XXX_Size() int { + return xxx_messageInfo_ProbeResponse.Size(m) +} +func (m *ProbeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ProbeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ProbeResponse proto.InternalMessageInfo + +func (m *ProbeResponse) GetReady() *wrappers.BoolValue { + if m != nil { + return m.Ready + } + return nil +} + +type CreateVolumeRequest struct { + // The suggested name for the storage space. This field is REQUIRED. + // It serves two purposes: + // 1. Idempotency - This name is generated by the CO to achieve + // idempotency. The Plugin SHOULD ensure that multiple + // `CreateVolume` calls for the same name do not result in more + // than one piece of storage provisioned corresponding to that + // name. If a Plugin is unable to enforce idempotency, the CO's + // error recovery logic could result in multiple (unused) volumes + // being provisioned. + // In the case of error, the CO MUST handle the gRPC error codes + // per the recovery behavior defined in the "CreateVolume Errors" + // section below. + // The CO is responsible for cleaning up volumes it provisioned + // that it no longer needs. If the CO is uncertain whether a volume + // was provisioned or not when a `CreateVolume` call fails, the CO + // MAY call `CreateVolume` again, with the same name, to ensure the + // volume exists and to retrieve the volume's `volume_id` (unless + // otherwise prohibited by "CreateVolume Errors"). + // 2. Suggested name - Some storage systems allow callers to specify + // an identifier by which to refer to the newly provisioned + // storage. If a storage system supports this, it can optionally + // use this name as the identifier for the new volume. + // + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // This field is OPTIONAL. This allows the CO to specify the capacity + // requirement of the volume to be provisioned. If not specified, the + // Plugin MAY choose an implementation-defined capacity range. If + // specified it MUST always be honored, even when creating volumes + // from a source; which MAY force some backends to internally extend + // the volume after creating it. + CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"` + // The capabilities that the provisioned volume MUST have. SP MUST + // provision a volume that will satisfy ALL of the capabilities + // specified in this list. Otherwise SP MUST return the appropriate + // gRPC error code. + // The Plugin MUST assume that the CO MAY use the provisioned volume + // with ANY of the capabilities specified in this list. + // For example, a CO MAY specify two volume capabilities: one with + // access mode SINGLE_NODE_WRITER and another with access mode + // MULTI_NODE_READER_ONLY. In this case, the SP MUST verify that the + // provisioned volume can be used in either mode. + // This also enables the CO to do early validation: If ANY of the + // specified volume capabilities are not supported by the SP, the call + // MUST return the appropriate gRPC error code. + // This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by plugin to complete volume creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, the new volume will be pre-populated with data from + // this source. This field is OPTIONAL. + VolumeContentSource *VolumeContentSource `protobuf:"bytes,6,opt,name=volume_content_source,json=volumeContentSource,proto3" json:"volume_content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume MUST be accessible from. + // An SP SHALL advertise the requirements for topological + // accessibility information in documentation. COs SHALL only specify + // topological accessibility information supported by the SP. + // This field is OPTIONAL. + // This field SHALL NOT be specified unless the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // If this field is not specified and the SP has the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability, the SP MAY + // choose where the provisioned volume is accessible from. + AccessibilityRequirements *TopologyRequirement `protobuf:"bytes,7,opt,name=accessibility_requirements,json=accessibilityRequirements,proto3" json:"accessibility_requirements,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeRequest) Reset() { *m = CreateVolumeRequest{} } +func (m *CreateVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeRequest) ProtoMessage() {} +func (*CreateVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{7} +} + +func (m *CreateVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeRequest.Unmarshal(m, b) +} +func (m *CreateVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeRequest.Marshal(b, m, deterministic) +} +func (m *CreateVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeRequest.Merge(m, src) +} +func (m *CreateVolumeRequest) XXX_Size() int { + return xxx_messageInfo_CreateVolumeRequest.Size(m) +} +func (m *CreateVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeRequest proto.InternalMessageInfo + +func (m *CreateVolumeRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateVolumeRequest) GetCapacityRange() *CapacityRange { + if m != nil { + return m.CapacityRange + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *CreateVolumeRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *CreateVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *CreateVolumeRequest) GetVolumeContentSource() *VolumeContentSource { + if m != nil { + return m.VolumeContentSource + } + return nil +} + +func (m *CreateVolumeRequest) GetAccessibilityRequirements() *TopologyRequirement { + if m != nil { + return m.AccessibilityRequirements + } + return nil +} + +// Specifies what source the volume will be created from. One of the +// type fields MUST be specified. +type VolumeContentSource struct { + // Types that are valid to be assigned to Type: + // + // *VolumeContentSource_Snapshot + // *VolumeContentSource_Volume + Type isVolumeContentSource_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource) Reset() { *m = VolumeContentSource{} } +func (m *VolumeContentSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource) ProtoMessage() {} +func (*VolumeContentSource) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{8} +} + +func (m *VolumeContentSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource.Unmarshal(m, b) +} +func (m *VolumeContentSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource.Marshal(b, m, deterministic) +} +func (m *VolumeContentSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource.Merge(m, src) +} +func (m *VolumeContentSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource.Size(m) +} +func (m *VolumeContentSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource proto.InternalMessageInfo + +type isVolumeContentSource_Type interface { + isVolumeContentSource_Type() +} + +type VolumeContentSource_Snapshot struct { + Snapshot *VolumeContentSource_SnapshotSource `protobuf:"bytes,1,opt,name=snapshot,proto3,oneof"` +} + +type VolumeContentSource_Volume struct { + Volume *VolumeContentSource_VolumeSource `protobuf:"bytes,2,opt,name=volume,proto3,oneof"` +} + +func (*VolumeContentSource_Snapshot) isVolumeContentSource_Type() {} + +func (*VolumeContentSource_Volume) isVolumeContentSource_Type() {} + +func (m *VolumeContentSource) GetType() isVolumeContentSource_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *VolumeContentSource) GetSnapshot() *VolumeContentSource_SnapshotSource { + if x, ok := m.GetType().(*VolumeContentSource_Snapshot); ok { + return x.Snapshot + } + return nil +} + +func (m *VolumeContentSource) GetVolume() *VolumeContentSource_VolumeSource { + if x, ok := m.GetType().(*VolumeContentSource_Volume); ok { + return x.Volume + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*VolumeContentSource) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*VolumeContentSource_Snapshot)(nil), + (*VolumeContentSource_Volume)(nil), + } +} + +type VolumeContentSource_SnapshotSource struct { + // Contains identity information for the existing source snapshot. + // This field is REQUIRED. Plugin is REQUIRED to support creating + // volume from snapshot if it supports the capability + // CREATE_DELETE_SNAPSHOT. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_SnapshotSource) Reset() { *m = VolumeContentSource_SnapshotSource{} } +func (m *VolumeContentSource_SnapshotSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_SnapshotSource) ProtoMessage() {} +func (*VolumeContentSource_SnapshotSource) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{8, 0} +} + +func (m *VolumeContentSource_SnapshotSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Marshal(b, m, deterministic) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_SnapshotSource.Merge(m, src) +} +func (m *VolumeContentSource_SnapshotSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_SnapshotSource.Size(m) +} +func (m *VolumeContentSource_SnapshotSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_SnapshotSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_SnapshotSource proto.InternalMessageInfo + +func (m *VolumeContentSource_SnapshotSource) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +type VolumeContentSource_VolumeSource struct { + // Contains identity information for the existing source volume. + // This field is REQUIRED. Plugins reporting CLONE_VOLUME + // capability MUST support creating a volume from another volume. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeContentSource_VolumeSource) Reset() { *m = VolumeContentSource_VolumeSource{} } +func (m *VolumeContentSource_VolumeSource) String() string { return proto.CompactTextString(m) } +func (*VolumeContentSource_VolumeSource) ProtoMessage() {} +func (*VolumeContentSource_VolumeSource) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{8, 1} +} + +func (m *VolumeContentSource_VolumeSource) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Unmarshal(m, b) +} +func (m *VolumeContentSource_VolumeSource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Marshal(b, m, deterministic) +} +func (m *VolumeContentSource_VolumeSource) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeContentSource_VolumeSource.Merge(m, src) +} +func (m *VolumeContentSource_VolumeSource) XXX_Size() int { + return xxx_messageInfo_VolumeContentSource_VolumeSource.Size(m) +} +func (m *VolumeContentSource_VolumeSource) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeContentSource_VolumeSource.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeContentSource_VolumeSource proto.InternalMessageInfo + +func (m *VolumeContentSource_VolumeSource) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +type CreateVolumeResponse struct { + // Contains all attributes of the newly created volume that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the volume. This field is REQUIRED. + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeResponse) Reset() { *m = CreateVolumeResponse{} } +func (m *CreateVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeResponse) ProtoMessage() {} +func (*CreateVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{9} +} + +func (m *CreateVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeResponse.Unmarshal(m, b) +} +func (m *CreateVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeResponse.Marshal(b, m, deterministic) +} +func (m *CreateVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeResponse.Merge(m, src) +} +func (m *CreateVolumeResponse) XXX_Size() int { + return xxx_messageInfo_CreateVolumeResponse.Size(m) +} +func (m *CreateVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeResponse proto.InternalMessageInfo + +func (m *CreateVolumeResponse) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +// Specify a capability of a volume. +type VolumeCapability struct { + // Specifies what API the volume will be accessed using. One of the + // following fields MUST be specified. + // + // Types that are valid to be assigned to AccessType: + // + // *VolumeCapability_Block + // *VolumeCapability_Mount + AccessType isVolumeCapability_AccessType `protobuf_oneof:"access_type"` + // This is a REQUIRED field. + AccessMode *VolumeCapability_AccessMode `protobuf:"bytes,3,opt,name=access_mode,json=accessMode,proto3" json:"access_mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability) Reset() { *m = VolumeCapability{} } +func (m *VolumeCapability) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability) ProtoMessage() {} +func (*VolumeCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{10} +} + +func (m *VolumeCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability.Unmarshal(m, b) +} +func (m *VolumeCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability.Marshal(b, m, deterministic) +} +func (m *VolumeCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability.Merge(m, src) +} +func (m *VolumeCapability) XXX_Size() int { + return xxx_messageInfo_VolumeCapability.Size(m) +} +func (m *VolumeCapability) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability proto.InternalMessageInfo + +type isVolumeCapability_AccessType interface { + isVolumeCapability_AccessType() +} + +type VolumeCapability_Block struct { + Block *VolumeCapability_BlockVolume `protobuf:"bytes,1,opt,name=block,proto3,oneof"` +} + +type VolumeCapability_Mount struct { + Mount *VolumeCapability_MountVolume `protobuf:"bytes,2,opt,name=mount,proto3,oneof"` +} + +func (*VolumeCapability_Block) isVolumeCapability_AccessType() {} + +func (*VolumeCapability_Mount) isVolumeCapability_AccessType() {} + +func (m *VolumeCapability) GetAccessType() isVolumeCapability_AccessType { + if m != nil { + return m.AccessType + } + return nil +} + +func (m *VolumeCapability) GetBlock() *VolumeCapability_BlockVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Block); ok { + return x.Block + } + return nil +} + +func (m *VolumeCapability) GetMount() *VolumeCapability_MountVolume { + if x, ok := m.GetAccessType().(*VolumeCapability_Mount); ok { + return x.Mount + } + return nil +} + +func (m *VolumeCapability) GetAccessMode() *VolumeCapability_AccessMode { + if m != nil { + return m.AccessMode + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*VolumeCapability) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*VolumeCapability_Block)(nil), + (*VolumeCapability_Mount)(nil), + } +} + +// Indicate that the volume will be accessed via the block device API. +type VolumeCapability_BlockVolume struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_BlockVolume) Reset() { *m = VolumeCapability_BlockVolume{} } +func (m *VolumeCapability_BlockVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_BlockVolume) ProtoMessage() {} +func (*VolumeCapability_BlockVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{10, 0} +} + +func (m *VolumeCapability_BlockVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_BlockVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_BlockVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_BlockVolume.Marshal(b, m, deterministic) +} +func (m *VolumeCapability_BlockVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_BlockVolume.Merge(m, src) +} +func (m *VolumeCapability_BlockVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_BlockVolume.Size(m) +} +func (m *VolumeCapability_BlockVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_BlockVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_BlockVolume proto.InternalMessageInfo + +// Indicate that the volume will be accessed via the filesystem API. +type VolumeCapability_MountVolume struct { + // The filesystem type. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + FsType string `protobuf:"bytes,1,opt,name=fs_type,json=fsType,proto3" json:"fs_type,omitempty"` + // The mount options that can be used for the volume. This field is + // OPTIONAL. `mount_flags` MAY contain sensitive information. + // Therefore, the CO and the Plugin MUST NOT leak this information + // to untrusted entities. The total size of this repeated field + // SHALL NOT exceed 4 KiB. + MountFlags []string `protobuf:"bytes,2,rep,name=mount_flags,json=mountFlags,proto3" json:"mount_flags,omitempty"` + // If SP has VOLUME_MOUNT_GROUP node capability and CO provides + // this field then SP MUST ensure that the volume_mount_group + // parameter is passed as the group identifier to the underlying + // operating system mount system call, with the understanding + // that the set of available mount call parameters and/or + // mount implementations may vary across operating systems. + // Additionally, new file and/or directory entries written to + // the underlying filesystem SHOULD be permission-labeled in such a + // manner, unless otherwise modified by a workload, that they are + // both readable and writable by said mount group identifier. + // This is an OPTIONAL field. + VolumeMountGroup string `protobuf:"bytes,3,opt,name=volume_mount_group,json=volumeMountGroup,proto3" json:"volume_mount_group,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_MountVolume) Reset() { *m = VolumeCapability_MountVolume{} } +func (m *VolumeCapability_MountVolume) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_MountVolume) ProtoMessage() {} +func (*VolumeCapability_MountVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{10, 1} +} + +func (m *VolumeCapability_MountVolume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_MountVolume.Unmarshal(m, b) +} +func (m *VolumeCapability_MountVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_MountVolume.Marshal(b, m, deterministic) +} +func (m *VolumeCapability_MountVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_MountVolume.Merge(m, src) +} +func (m *VolumeCapability_MountVolume) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_MountVolume.Size(m) +} +func (m *VolumeCapability_MountVolume) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_MountVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_MountVolume proto.InternalMessageInfo + +func (m *VolumeCapability_MountVolume) GetFsType() string { + if m != nil { + return m.FsType + } + return "" +} + +func (m *VolumeCapability_MountVolume) GetMountFlags() []string { + if m != nil { + return m.MountFlags + } + return nil +} + +func (m *VolumeCapability_MountVolume) GetVolumeMountGroup() string { + if m != nil { + return m.VolumeMountGroup + } + return "" +} + +// Specify how a volume can be accessed. +type VolumeCapability_AccessMode struct { + // This field is REQUIRED. + Mode VolumeCapability_AccessMode_Mode `protobuf:"varint,1,opt,name=mode,proto3,enum=csi.v1.VolumeCapability_AccessMode_Mode" json:"mode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCapability_AccessMode) Reset() { *m = VolumeCapability_AccessMode{} } +func (m *VolumeCapability_AccessMode) String() string { return proto.CompactTextString(m) } +func (*VolumeCapability_AccessMode) ProtoMessage() {} +func (*VolumeCapability_AccessMode) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{10, 2} +} + +func (m *VolumeCapability_AccessMode) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCapability_AccessMode.Unmarshal(m, b) +} +func (m *VolumeCapability_AccessMode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCapability_AccessMode.Marshal(b, m, deterministic) +} +func (m *VolumeCapability_AccessMode) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCapability_AccessMode.Merge(m, src) +} +func (m *VolumeCapability_AccessMode) XXX_Size() int { + return xxx_messageInfo_VolumeCapability_AccessMode.Size(m) +} +func (m *VolumeCapability_AccessMode) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCapability_AccessMode.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCapability_AccessMode proto.InternalMessageInfo + +func (m *VolumeCapability_AccessMode) GetMode() VolumeCapability_AccessMode_Mode { + if m != nil { + return m.Mode + } + return VolumeCapability_AccessMode_UNKNOWN +} + +// The capacity of the storage space in bytes. To specify an exact size, +// `required_bytes` and `limit_bytes` SHALL be set to the same value. At +// least one of the these fields MUST be specified. +type CapacityRange struct { + // Volume MUST be at least this big. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + RequiredBytes int64 `protobuf:"varint,1,opt,name=required_bytes,json=requiredBytes,proto3" json:"required_bytes,omitempty"` + // Volume MUST not be bigger than this. This field is OPTIONAL. + // A value of 0 is equal to an unspecified field value. + // The value of this field MUST NOT be negative. + LimitBytes int64 `protobuf:"varint,2,opt,name=limit_bytes,json=limitBytes,proto3" json:"limit_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CapacityRange) Reset() { *m = CapacityRange{} } +func (m *CapacityRange) String() string { return proto.CompactTextString(m) } +func (*CapacityRange) ProtoMessage() {} +func (*CapacityRange) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{11} +} + +func (m *CapacityRange) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CapacityRange.Unmarshal(m, b) +} +func (m *CapacityRange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CapacityRange.Marshal(b, m, deterministic) +} +func (m *CapacityRange) XXX_Merge(src proto.Message) { + xxx_messageInfo_CapacityRange.Merge(m, src) +} +func (m *CapacityRange) XXX_Size() int { + return xxx_messageInfo_CapacityRange.Size(m) +} +func (m *CapacityRange) XXX_DiscardUnknown() { + xxx_messageInfo_CapacityRange.DiscardUnknown(m) +} + +var xxx_messageInfo_CapacityRange proto.InternalMessageInfo + +func (m *CapacityRange) GetRequiredBytes() int64 { + if m != nil { + return m.RequiredBytes + } + return 0 +} + +func (m *CapacityRange) GetLimitBytes() int64 { + if m != nil { + return m.LimitBytes + } + return 0 +} + +// Information about a specific volume. +type Volume struct { + // The capacity of the volume in bytes. This field is OPTIONAL. If not + // set (value of 0), it indicates that the capacity of the volume is + // unknown (e.g., NFS share). + // The value of this field MUST NOT be negative. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` + // The identifier for this volume, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific volume vs all other volumes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this volume. + // The SP is NOT responsible for global uniqueness of volume_id across + // multiple SPs. + VolumeId string `protobuf:"bytes,2,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Opaque static properties of the volume. SP MAY use this field to + // ensure subsequent volume validation and publishing calls have + // contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // A volume uniquely identified by `volume_id` SHALL always report the + // same volume_context. + // This field is OPTIONAL and when present MUST be passed to volume + // validation and publishing calls. + VolumeContext map[string]string `protobuf:"bytes,3,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, indicates that the volume is not empty and is + // pre-populated with data from the specified source. + // This field is OPTIONAL. + ContentSource *VolumeContentSource `protobuf:"bytes,4,opt,name=content_source,json=contentSource,proto3" json:"content_source,omitempty"` + // Specifies where (regions, zones, racks, etc.) the provisioned + // volume is accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // An SP MAY specify multiple topologies to indicate the volume is + // accessible from multiple locations. + // COs MAY use this information along with the topology information + // returned by NodeGetInfo to ensure that a given volume is accessible + // from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the volume is equally accessible from all nodes in the cluster and + // MAY schedule workloads referencing the volume on any available + // node. + // + // Example 1: + // + // accessible_topology = {"region": "R1", "zone": "Z2"} + // + // Indicates a volume accessible only from the "region" "R1" and the + // "zone" "Z2". + // + // Example 2: + // + // accessible_topology = + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // + // Indicates a volume accessible from both "zone" "Z2" and "zone" "Z3" + // in the "region" "R1". + AccessibleTopology []*Topology `protobuf:"bytes,5,rep,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Volume) Reset() { *m = Volume{} } +func (m *Volume) String() string { return proto.CompactTextString(m) } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{12} +} + +func (m *Volume) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Volume.Unmarshal(m, b) +} +func (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Volume.Marshal(b, m, deterministic) +} +func (m *Volume) XXX_Merge(src proto.Message) { + xxx_messageInfo_Volume.Merge(m, src) +} +func (m *Volume) XXX_Size() int { + return xxx_messageInfo_Volume.Size(m) +} +func (m *Volume) XXX_DiscardUnknown() { + xxx_messageInfo_Volume.DiscardUnknown(m) +} + +var xxx_messageInfo_Volume proto.InternalMessageInfo + +func (m *Volume) GetCapacityBytes() int64 { + if m != nil { + return m.CapacityBytes + } + return 0 +} + +func (m *Volume) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *Volume) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *Volume) GetContentSource() *VolumeContentSource { + if m != nil { + return m.ContentSource + } + return nil +} + +func (m *Volume) GetAccessibleTopology() []*Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type TopologyRequirement struct { + // Specifies the list of topologies the provisioned volume MUST be + // accessible from. + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // If requisite is specified, the provisioned volume MUST be + // accessible from at least one of the requisite topologies. + // + // Given + // + // x = number of topologies provisioned volume is accessible from + // n = number of requisite topologies + // + // The CO MUST ensure n >= 1. The SP MUST ensure x >= 1 + // If x==n, then the SP MUST make the provisioned volume available to + // all topologies from the list of requisite topologies. If it is + // unable to do so, the SP MUST fail the CreateVolume call. + // For example, if a volume should be accessible from a single zone, + // and requisite = + // + // {"region": "R1", "zone": "Z2"} + // + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2". + // Similarly, if a volume should be accessible from two zones, and + // requisite = + // + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // + // then the provisioned volume MUST be accessible from the "region" + // "R1" and both "zone" "Z2" and "zone" "Z3". + // + // If xn, then the SP MUST make the provisioned volume available from + // all topologies from the list of requisite topologies and MAY choose + // the remaining x-n unique topologies from the list of all possible + // topologies. If it is unable to do so, the SP MUST fail the + // CreateVolume call. + // For example, if a volume should be accessible from two zones, and + // requisite = + // + // {"region": "R1", "zone": "Z2"} + // + // then the provisioned volume MUST be accessible from the "region" + // "R1" and the "zone" "Z2" and the SP may select the second zone + // independently, e.g. "R1/Z4". + Requisite []*Topology `protobuf:"bytes,1,rep,name=requisite,proto3" json:"requisite,omitempty"` + // Specifies the list of topologies the CO would prefer the volume to + // be provisioned in. + // + // This field is OPTIONAL. If TopologyRequirement is specified either + // requisite or preferred or both MUST be specified. + // + // An SP MUST attempt to make the provisioned volume available using + // the preferred topologies in order from first to last. + // + // If requisite is specified, all topologies in preferred list MUST + // also be present in the list of requisite topologies. + // + // If the SP is unable to to make the provisioned volume available + // from any of the preferred topologies, the SP MAY choose a topology + // from the list of requisite topologies. + // If the list of requisite topologies is not specified, then the SP + // MAY choose from the list of all possible topologies. + // If the list of requisite topologies is specified and the SP is + // unable to to make the provisioned volume available from any of the + // requisite topologies it MUST fail the CreateVolume call. + // + // Example 1: + // Given a volume should be accessible from a single zone, and + // requisite = + // + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"} + // + // preferred = + // + // {"region": "R1", "zone": "Z3"} + // + // then the SP SHOULD first attempt to make the provisioned volume + // available from "zone" "Z3" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. + // + // Example 2: + // Given a volume should be accessible from a single zone, and + // requisite = + // + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // + // preferred = + // + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z2"} + // + // then the SP SHOULD first attempt to make the provisioned volume + // accessible from "zone" "Z4" in the "region" "R1" and fall back to + // "zone" "Z2" in the "region" "R1" if that is not possible. If that + // is not possible, the SP may choose between either the "zone" + // "Z3" or "Z5" in the "region" "R1". + // + // Example 3: + // Given a volume should be accessible from TWO zones (because an + // opaque parameter in CreateVolumeRequest, for example, specifies + // the volume is accessible from two zones, aka synchronously + // replicated), and + // requisite = + // + // {"region": "R1", "zone": "Z2"}, + // {"region": "R1", "zone": "Z3"}, + // {"region": "R1", "zone": "Z4"}, + // {"region": "R1", "zone": "Z5"} + // + // preferred = + // + // {"region": "R1", "zone": "Z5"}, + // {"region": "R1", "zone": "Z3"} + // + // then the SP SHOULD first attempt to make the provisioned volume + // accessible from the combination of the two "zones" "Z5" and "Z3" in + // the "region" "R1". If that's not possible, it should fall back to + // a combination of "Z5" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of "Z3" and other possibilities from the list of + // requisite. If that's not possible, it should fall back to a + // combination of other possibilities from the list of requisite. + Preferred []*Topology `protobuf:"bytes,2,rep,name=preferred,proto3" json:"preferred,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TopologyRequirement) Reset() { *m = TopologyRequirement{} } +func (m *TopologyRequirement) String() string { return proto.CompactTextString(m) } +func (*TopologyRequirement) ProtoMessage() {} +func (*TopologyRequirement) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{13} +} + +func (m *TopologyRequirement) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TopologyRequirement.Unmarshal(m, b) +} +func (m *TopologyRequirement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TopologyRequirement.Marshal(b, m, deterministic) +} +func (m *TopologyRequirement) XXX_Merge(src proto.Message) { + xxx_messageInfo_TopologyRequirement.Merge(m, src) +} +func (m *TopologyRequirement) XXX_Size() int { + return xxx_messageInfo_TopologyRequirement.Size(m) +} +func (m *TopologyRequirement) XXX_DiscardUnknown() { + xxx_messageInfo_TopologyRequirement.DiscardUnknown(m) +} + +var xxx_messageInfo_TopologyRequirement proto.InternalMessageInfo + +func (m *TopologyRequirement) GetRequisite() []*Topology { + if m != nil { + return m.Requisite + } + return nil +} + +func (m *TopologyRequirement) GetPreferred() []*Topology { + if m != nil { + return m.Preferred + } + return nil +} + +// Topology is a map of topological domains to topological segments. +// A topological domain is a sub-division of a cluster, like "region", +// "zone", "rack", etc. +// A topological segment is a specific instance of a topological domain, +// like "zone3", "rack3", etc. +// For example {"com.company/zone": "Z1", "com.company/rack": "R3"} +// Valid keys have two segments: an OPTIONAL prefix and name, separated +// by a slash (/), for example: "com.company.example/zone". +// The key name segment is REQUIRED. The prefix is OPTIONAL. +// The key name MUST be 63 characters or less, begin and end with an +// alphanumeric character ([a-z0-9A-Z]), and contain only dashes (-), +// underscores (_), dots (.), or alphanumerics in between, for example +// "zone". +// The key prefix MUST be 63 characters or less, begin and end with a +// lower-case alphanumeric character ([a-z0-9]), contain only +// dashes (-), dots (.), or lower-case alphanumerics in between, and +// follow domain name notation format +// (https://tools.ietf.org/html/rfc1035#section-2.3.1). +// The key prefix SHOULD include the plugin's host company name and/or +// the plugin name, to minimize the possibility of collisions with keys +// from other plugins. +// If a key prefix is specified, it MUST be identical across all +// topology keys returned by the SP (across all RPCs). +// Keys MUST be case-insensitive. Meaning the keys "Zone" and "zone" +// MUST not both exist. +// Each value (topological segment) MUST contain 1 or more strings. +// Each string MUST be 63 characters or less and begin and end with an +// alphanumeric character with '-', '_', '.', or alphanumerics in +// between. +type Topology struct { + Segments map[string]string `protobuf:"bytes,1,rep,name=segments,proto3" json:"segments,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Topology) Reset() { *m = Topology{} } +func (m *Topology) String() string { return proto.CompactTextString(m) } +func (*Topology) ProtoMessage() {} +func (*Topology) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{14} +} + +func (m *Topology) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Topology.Unmarshal(m, b) +} +func (m *Topology) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Topology.Marshal(b, m, deterministic) +} +func (m *Topology) XXX_Merge(src proto.Message) { + xxx_messageInfo_Topology.Merge(m, src) +} +func (m *Topology) XXX_Size() int { + return xxx_messageInfo_Topology.Size(m) +} +func (m *Topology) XXX_DiscardUnknown() { + xxx_messageInfo_Topology.DiscardUnknown(m) +} + +var xxx_messageInfo_Topology proto.InternalMessageInfo + +func (m *Topology) GetSegments() map[string]string { + if m != nil { + return m.Segments + } + return nil +} + +type DeleteVolumeRequest struct { + // The ID of the volume to be deprovisioned. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Secrets required by plugin to complete volume deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeRequest) Reset() { *m = DeleteVolumeRequest{} } +func (m *DeleteVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeRequest) ProtoMessage() {} +func (*DeleteVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{15} +} + +func (m *DeleteVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeRequest.Unmarshal(m, b) +} +func (m *DeleteVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeRequest.Marshal(b, m, deterministic) +} +func (m *DeleteVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeRequest.Merge(m, src) +} +func (m *DeleteVolumeRequest) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeRequest.Size(m) +} +func (m *DeleteVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeRequest proto.InternalMessageInfo + +func (m *DeleteVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *DeleteVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeResponse) Reset() { *m = DeleteVolumeResponse{} } +func (m *DeleteVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeResponse) ProtoMessage() {} +func (*DeleteVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{16} +} + +func (m *DeleteVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeResponse.Unmarshal(m, b) +} +func (m *DeleteVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeResponse.Marshal(b, m, deterministic) +} +func (m *DeleteVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeResponse.Merge(m, src) +} +func (m *DeleteVolumeResponse) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeResponse.Size(m) +} +func (m *DeleteVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeResponse proto.InternalMessageInfo + +type ControllerPublishVolumeRequest struct { + // The ID of the volume to be used on a node. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The ID of the node. This field is REQUIRED. The CO SHALL set this + // field to match the node ID returned by `NodeGetInfo`. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,3,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Indicates SP MUST publish the volume in readonly mode. + // CO MUST set this field to false if SP does not have the + // PUBLISH_READONLY controller capability. + // This is a REQUIRED field. + Readonly bool `protobuf:"varint,4,opt,name=readonly,proto3" json:"readonly,omitempty"` + // Secrets required by plugin to complete controller publish volume + // request. This field is OPTIONAL. Refer to the + // `Secrets Requirements` section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by SP in + // CreateVolumeResponse.Volume.volume_context. + // This field is OPTIONAL and MUST match the volume_context of the + // volume identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,6,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeRequest) Reset() { *m = ControllerPublishVolumeRequest{} } +func (m *ControllerPublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeRequest) ProtoMessage() {} +func (*ControllerPublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{17} +} + +func (m *ControllerPublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeRequest.Marshal(b, m, deterministic) +} +func (m *ControllerPublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeRequest.Merge(m, src) +} +func (m *ControllerPublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeRequest.Size(m) +} +func (m *ControllerPublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerPublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerPublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *ControllerPublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *ControllerPublishVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type ControllerPublishVolumeResponse struct { + // Opaque static publish properties of the volume. SP MAY use this + // field to ensure subsequent `NodeStageVolume` or `NodePublishVolume` + // calls calls have contextual information. + // The contents of this field SHALL be opaque to a CO. + // The contents of this field SHALL NOT be mutable. + // The contents of this field SHALL be safe for the CO to cache. + // The contents of this field SHOULD NOT contain sensitive + // information. + // The contents of this field SHOULD NOT be used for uniquely + // identifying a volume. The `volume_id` alone SHOULD be sufficient to + // identify the volume. + // This field is OPTIONAL and when present MUST be passed to + // subsequent `NodeStageVolume` or `NodePublishVolume` calls + PublishContext map[string]string `protobuf:"bytes,1,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerPublishVolumeResponse) Reset() { *m = ControllerPublishVolumeResponse{} } +func (m *ControllerPublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerPublishVolumeResponse) ProtoMessage() {} +func (*ControllerPublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{18} +} + +func (m *ControllerPublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerPublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerPublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerPublishVolumeResponse.Marshal(b, m, deterministic) +} +func (m *ControllerPublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerPublishVolumeResponse.Merge(m, src) +} +func (m *ControllerPublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerPublishVolumeResponse.Size(m) +} +func (m *ControllerPublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerPublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerPublishVolumeResponse proto.InternalMessageInfo + +func (m *ControllerPublishVolumeResponse) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +type ControllerUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The ID of the node. This field is OPTIONAL. The CO SHOULD set this + // field to match the node ID returned by `NodeGetInfo` or leave it + // unset. If the value is set, the SP MUST unpublish the volume from + // the specified node. If the value is unset, the SP MUST unpublish + // the volume from all nodes it is published to. + NodeId string `protobuf:"bytes,2,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Secrets required by plugin to complete controller unpublish volume + // request. This SHOULD be the same secrets passed to the + // ControllerPublishVolume call for the specified volume. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeRequest) Reset() { *m = ControllerUnpublishVolumeRequest{} } +func (m *ControllerUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeRequest) ProtoMessage() {} +func (*ControllerUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{19} +} + +func (m *ControllerUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeRequest.Merge(m, src) +} +func (m *ControllerUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeRequest.Size(m) +} +func (m *ControllerUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *ControllerUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *ControllerUnpublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ControllerUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerUnpublishVolumeResponse) Reset() { *m = ControllerUnpublishVolumeResponse{} } +func (m *ControllerUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerUnpublishVolumeResponse) ProtoMessage() {} +func (*ControllerUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{20} +} + +func (m *ControllerUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerUnpublishVolumeResponse.Merge(m, src) +} +func (m *ControllerUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerUnpublishVolumeResponse.Size(m) +} +func (m *ControllerUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerUnpublishVolumeResponse proto.InternalMessageInfo + +type ValidateVolumeCapabilitiesRequest struct { + // The ID of the volume to check. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Volume context as returned by SP in + // CreateVolumeResponse.Volume.volume_context. + // This field is OPTIONAL and MUST match the volume_context of the + // volume identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,2,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The capabilities that the CO wants to check for the volume. This + // call SHALL return "confirmed" only if all the volume capabilities + // specified below are supported. This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,3,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // See CreateVolumeRequest.parameters. + // This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Secrets required by plugin to complete volume validation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesRequest) Reset() { *m = ValidateVolumeCapabilitiesRequest{} } +func (m *ValidateVolumeCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesRequest) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{21} +} + +func (m *ValidateVolumeCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Merge(m, src) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesRequest.Size(m) +} +func (m *ValidateVolumeCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesRequest proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *ValidateVolumeCapabilitiesRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ValidateVolumeCapabilitiesResponse struct { + // Confirmed indicates to the CO the set of capabilities that the + // plugin has validated. This field SHALL only be set to a non-empty + // value for successful validation responses. + // For successful validation responses, the CO SHALL compare the + // fields of this message to the originally requested capabilities in + // order to guard against an older plugin reporting "valid" for newer + // capability fields that it does not yet understand. + // This field is OPTIONAL. + Confirmed *ValidateVolumeCapabilitiesResponse_Confirmed `protobuf:"bytes,1,opt,name=confirmed,proto3" json:"confirmed,omitempty"` + // Message to the CO if `confirmed` above is empty. This field is + // OPTIONAL. + // An empty string is equal to an unspecified field value. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse) Reset() { *m = ValidateVolumeCapabilitiesResponse{} } +func (m *ValidateVolumeCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ValidateVolumeCapabilitiesResponse) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{22} +} + +func (m *ValidateVolumeCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Merge(m, src) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse) GetConfirmed() *ValidateVolumeCapabilitiesResponse_Confirmed { + if m != nil { + return m.Confirmed + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type ValidateVolumeCapabilitiesResponse_Confirmed struct { + // Volume context validated by the plugin. + // This field is OPTIONAL. + VolumeContext map[string]string `protobuf:"bytes,1,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume capabilities supported by the plugin. + // This field is REQUIRED. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,2,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // The volume creation parameters validated by the plugin. + // This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,3,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) Reset() { + *m = ValidateVolumeCapabilitiesResponse_Confirmed{} +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) String() string { + return proto.CompactTextString(m) +} +func (*ValidateVolumeCapabilitiesResponse_Confirmed) ProtoMessage() {} +func (*ValidateVolumeCapabilitiesResponse_Confirmed) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{22, 0} +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Unmarshal(m, b) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Marshal(b, m, deterministic) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Merge(src proto.Message) { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Merge(m, src) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_Size() int { + return xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.Size(m) +} +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) XXX_DiscardUnknown() { + xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed.DiscardUnknown(m) +} + +var xxx_messageInfo_ValidateVolumeCapabilitiesResponse_Confirmed proto.InternalMessageInfo + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *ValidateVolumeCapabilitiesResponse_Confirmed) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type ListVolumesRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListVolumes` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListVolumes` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesRequest) Reset() { *m = ListVolumesRequest{} } +func (m *ListVolumesRequest) String() string { return proto.CompactTextString(m) } +func (*ListVolumesRequest) ProtoMessage() {} +func (*ListVolumesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{23} +} + +func (m *ListVolumesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesRequest.Unmarshal(m, b) +} +func (m *ListVolumesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesRequest.Marshal(b, m, deterministic) +} +func (m *ListVolumesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesRequest.Merge(m, src) +} +func (m *ListVolumesRequest) XXX_Size() int { + return xxx_messageInfo_ListVolumesRequest.Size(m) +} +func (m *ListVolumesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesRequest proto.InternalMessageInfo + +func (m *ListVolumesRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListVolumesRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +type ListVolumesResponse struct { + Entries []*ListVolumesResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListVolumes` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListVolumes` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse) Reset() { *m = ListVolumesResponse{} } +func (m *ListVolumesResponse) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse) ProtoMessage() {} +func (*ListVolumesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{24} +} + +func (m *ListVolumesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse.Unmarshal(m, b) +} +func (m *ListVolumesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse.Marshal(b, m, deterministic) +} +func (m *ListVolumesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse.Merge(m, src) +} +func (m *ListVolumesResponse) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse.Size(m) +} +func (m *ListVolumesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse proto.InternalMessageInfo + +func (m *ListVolumesResponse) GetEntries() []*ListVolumesResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListVolumesResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListVolumesResponse_VolumeStatus struct { + // A list of all `node_id` of nodes that the volume in this entry + // is controller published on. + // This field is OPTIONAL. If it is not specified and the SP has + // the LIST_VOLUMES_PUBLISHED_NODES controller capability, the CO + // MAY assume the volume is not controller published to any nodes. + // If the field is not specified and the SP does not have the + // LIST_VOLUMES_PUBLISHED_NODES controller capability, the CO MUST + // not interpret this field. + // published_node_ids MAY include nodes not published to or + // reported by the SP. The CO MUST be resilient to that. + PublishedNodeIds []string `protobuf:"bytes,1,rep,name=published_node_ids,json=publishedNodeIds,proto3" json:"published_node_ids,omitempty"` + // Information about the current condition of the volume. + // This field is OPTIONAL. + // This field MUST be specified if the + // VOLUME_CONDITION controller capability is supported. + VolumeCondition *VolumeCondition `protobuf:"bytes,2,opt,name=volume_condition,json=volumeCondition,proto3" json:"volume_condition,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse_VolumeStatus) Reset() { *m = ListVolumesResponse_VolumeStatus{} } +func (m *ListVolumesResponse_VolumeStatus) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse_VolumeStatus) ProtoMessage() {} +func (*ListVolumesResponse_VolumeStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{24, 0} +} + +func (m *ListVolumesResponse_VolumeStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse_VolumeStatus.Unmarshal(m, b) +} +func (m *ListVolumesResponse_VolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse_VolumeStatus.Marshal(b, m, deterministic) +} +func (m *ListVolumesResponse_VolumeStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse_VolumeStatus.Merge(m, src) +} +func (m *ListVolumesResponse_VolumeStatus) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse_VolumeStatus.Size(m) +} +func (m *ListVolumesResponse_VolumeStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse_VolumeStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse_VolumeStatus proto.InternalMessageInfo + +func (m *ListVolumesResponse_VolumeStatus) GetPublishedNodeIds() []string { + if m != nil { + return m.PublishedNodeIds + } + return nil +} + +func (m *ListVolumesResponse_VolumeStatus) GetVolumeCondition() *VolumeCondition { + if m != nil { + return m.VolumeCondition + } + return nil +} + +type ListVolumesResponse_Entry struct { + // This field is REQUIRED + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + // This field is OPTIONAL. This field MUST be specified if the + // LIST_VOLUMES_PUBLISHED_NODES controller capability is + // supported. + Status *ListVolumesResponse_VolumeStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListVolumesResponse_Entry) Reset() { *m = ListVolumesResponse_Entry{} } +func (m *ListVolumesResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListVolumesResponse_Entry) ProtoMessage() {} +func (*ListVolumesResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{24, 1} +} + +func (m *ListVolumesResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListVolumesResponse_Entry.Unmarshal(m, b) +} +func (m *ListVolumesResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListVolumesResponse_Entry.Marshal(b, m, deterministic) +} +func (m *ListVolumesResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListVolumesResponse_Entry.Merge(m, src) +} +func (m *ListVolumesResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListVolumesResponse_Entry.Size(m) +} +func (m *ListVolumesResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListVolumesResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListVolumesResponse_Entry proto.InternalMessageInfo + +func (m *ListVolumesResponse_Entry) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +func (m *ListVolumesResponse_Entry) GetStatus() *ListVolumesResponse_VolumeStatus { + if m != nil { + return m.Status + } + return nil +} + +type ControllerGetVolumeRequest struct { + // The ID of the volume to fetch current volume information for. + // This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetVolumeRequest) Reset() { *m = ControllerGetVolumeRequest{} } +func (m *ControllerGetVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerGetVolumeRequest) ProtoMessage() {} +func (*ControllerGetVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{25} +} + +func (m *ControllerGetVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerGetVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetVolumeRequest.Marshal(b, m, deterministic) +} +func (m *ControllerGetVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetVolumeRequest.Merge(m, src) +} +func (m *ControllerGetVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerGetVolumeRequest.Size(m) +} +func (m *ControllerGetVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetVolumeRequest proto.InternalMessageInfo + +func (m *ControllerGetVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +type ControllerGetVolumeResponse struct { + // This field is REQUIRED + Volume *Volume `protobuf:"bytes,1,opt,name=volume,proto3" json:"volume,omitempty"` + // This field is REQUIRED. + Status *ControllerGetVolumeResponse_VolumeStatus `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetVolumeResponse) Reset() { *m = ControllerGetVolumeResponse{} } +func (m *ControllerGetVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerGetVolumeResponse) ProtoMessage() {} +func (*ControllerGetVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{26} +} + +func (m *ControllerGetVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerGetVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetVolumeResponse.Marshal(b, m, deterministic) +} +func (m *ControllerGetVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetVolumeResponse.Merge(m, src) +} +func (m *ControllerGetVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerGetVolumeResponse.Size(m) +} +func (m *ControllerGetVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetVolumeResponse proto.InternalMessageInfo + +func (m *ControllerGetVolumeResponse) GetVolume() *Volume { + if m != nil { + return m.Volume + } + return nil +} + +func (m *ControllerGetVolumeResponse) GetStatus() *ControllerGetVolumeResponse_VolumeStatus { + if m != nil { + return m.Status + } + return nil +} + +type ControllerGetVolumeResponse_VolumeStatus struct { + // A list of all the `node_id` of nodes that this volume is + // controller published on. + // This field is OPTIONAL. + // This field MUST be specified if the LIST_VOLUMES_PUBLISHED_NODES + // controller capability is supported. + // published_node_ids MAY include nodes not published to or + // reported by the SP. The CO MUST be resilient to that. + PublishedNodeIds []string `protobuf:"bytes,1,rep,name=published_node_ids,json=publishedNodeIds,proto3" json:"published_node_ids,omitempty"` + // Information about the current condition of the volume. + // This field is OPTIONAL. + // This field MUST be specified if the + // VOLUME_CONDITION controller capability is supported. + VolumeCondition *VolumeCondition `protobuf:"bytes,2,opt,name=volume_condition,json=volumeCondition,proto3" json:"volume_condition,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetVolumeResponse_VolumeStatus) Reset() { + *m = ControllerGetVolumeResponse_VolumeStatus{} +} +func (m *ControllerGetVolumeResponse_VolumeStatus) String() string { return proto.CompactTextString(m) } +func (*ControllerGetVolumeResponse_VolumeStatus) ProtoMessage() {} +func (*ControllerGetVolumeResponse_VolumeStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{26, 0} +} + +func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetVolumeResponse_VolumeStatus.Unmarshal(m, b) +} +func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetVolumeResponse_VolumeStatus.Marshal(b, m, deterministic) +} +func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetVolumeResponse_VolumeStatus.Merge(m, src) +} +func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_Size() int { + return xxx_messageInfo_ControllerGetVolumeResponse_VolumeStatus.Size(m) +} +func (m *ControllerGetVolumeResponse_VolumeStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetVolumeResponse_VolumeStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetVolumeResponse_VolumeStatus proto.InternalMessageInfo + +func (m *ControllerGetVolumeResponse_VolumeStatus) GetPublishedNodeIds() []string { + if m != nil { + return m.PublishedNodeIds + } + return nil +} + +func (m *ControllerGetVolumeResponse_VolumeStatus) GetVolumeCondition() *VolumeCondition { + if m != nil { + return m.VolumeCondition + } + return nil +} + +type GetCapacityRequest struct { + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that satisfy ALL of the + // specified `volume_capabilities`. These are the same + // `volume_capabilities` the CO will use in `CreateVolumeRequest`. + // This field is OPTIONAL. + VolumeCapabilities []*VolumeCapability `protobuf:"bytes,1,rep,name=volume_capabilities,json=volumeCapabilities,proto3" json:"volume_capabilities,omitempty"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes with the given Plugin + // specific `parameters`. These are the same `parameters` the CO will + // use in `CreateVolumeRequest`. This field is OPTIONAL. + Parameters map[string]string `protobuf:"bytes,2,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If specified, the Plugin SHALL report the capacity of the storage + // that can be used to provision volumes that in the specified + // `accessible_topology`. This is the same as the + // `accessible_topology` the CO returns in a `CreateVolumeResponse`. + // This field is OPTIONAL. This field SHALL NOT be set unless the + // plugin advertises the VOLUME_ACCESSIBILITY_CONSTRAINTS capability. + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityRequest) Reset() { *m = GetCapacityRequest{} } +func (m *GetCapacityRequest) String() string { return proto.CompactTextString(m) } +func (*GetCapacityRequest) ProtoMessage() {} +func (*GetCapacityRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{27} +} + +func (m *GetCapacityRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityRequest.Unmarshal(m, b) +} +func (m *GetCapacityRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityRequest.Marshal(b, m, deterministic) +} +func (m *GetCapacityRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityRequest.Merge(m, src) +} +func (m *GetCapacityRequest) XXX_Size() int { + return xxx_messageInfo_GetCapacityRequest.Size(m) +} +func (m *GetCapacityRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityRequest proto.InternalMessageInfo + +func (m *GetCapacityRequest) GetVolumeCapabilities() []*VolumeCapability { + if m != nil { + return m.VolumeCapabilities + } + return nil +} + +func (m *GetCapacityRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +func (m *GetCapacityRequest) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type GetCapacityResponse struct { + // The available capacity, in bytes, of the storage that can be used + // to provision volumes. If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the available capacity of the + // storage. This field is REQUIRED. + // The value of this field MUST NOT be negative. + AvailableCapacity int64 `protobuf:"varint,1,opt,name=available_capacity,json=availableCapacity,proto3" json:"available_capacity,omitempty"` + // The largest size that may be used in a + // CreateVolumeRequest.capacity_range.required_bytes field + // to create a volume with the same parameters as those in + // GetCapacityRequest. + // + // If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the minimum volume size of the + // storage. + // + // This field is OPTIONAL. MUST NOT be negative. + // The Plugin SHOULD provide a value for this field if it has + // a maximum size for individual volumes and leave it unset + // otherwise. COs MAY use it to make decision about + // where to create volumes. + MaximumVolumeSize *wrappers.Int64Value `protobuf:"bytes,2,opt,name=maximum_volume_size,json=maximumVolumeSize,proto3" json:"maximum_volume_size,omitempty"` + // The smallest size that may be used in a + // CreateVolumeRequest.capacity_range.limit_bytes field + // to create a volume with the same parameters as those in + // GetCapacityRequest. + // + // If `volume_capabilities` or `parameters` is + // specified in the request, the Plugin SHALL take those into + // consideration when calculating the maximum volume size of the + // storage. + // + // This field is OPTIONAL. MUST NOT be negative. + // The Plugin SHOULD provide a value for this field if it has + // a minimum size for individual volumes and leave it unset + // otherwise. COs MAY use it to make decision about + // where to create volumes. + MinimumVolumeSize *wrappers.Int64Value `protobuf:"bytes,3,opt,name=minimum_volume_size,json=minimumVolumeSize,proto3" json:"minimum_volume_size,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetCapacityResponse) Reset() { *m = GetCapacityResponse{} } +func (m *GetCapacityResponse) String() string { return proto.CompactTextString(m) } +func (*GetCapacityResponse) ProtoMessage() {} +func (*GetCapacityResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{28} +} + +func (m *GetCapacityResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetCapacityResponse.Unmarshal(m, b) +} +func (m *GetCapacityResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetCapacityResponse.Marshal(b, m, deterministic) +} +func (m *GetCapacityResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetCapacityResponse.Merge(m, src) +} +func (m *GetCapacityResponse) XXX_Size() int { + return xxx_messageInfo_GetCapacityResponse.Size(m) +} +func (m *GetCapacityResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetCapacityResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetCapacityResponse proto.InternalMessageInfo + +func (m *GetCapacityResponse) GetAvailableCapacity() int64 { + if m != nil { + return m.AvailableCapacity + } + return 0 +} + +func (m *GetCapacityResponse) GetMaximumVolumeSize() *wrappers.Int64Value { + if m != nil { + return m.MaximumVolumeSize + } + return nil +} + +func (m *GetCapacityResponse) GetMinimumVolumeSize() *wrappers.Int64Value { + if m != nil { + return m.MinimumVolumeSize + } + return nil +} + +type ControllerGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesRequest) Reset() { *m = ControllerGetCapabilitiesRequest{} } +func (m *ControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesRequest) ProtoMessage() {} +func (*ControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{29} +} + +func (m *ControllerGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesRequest.Merge(m, src) +} +func (m *ControllerGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesRequest.Size(m) +} +func (m *ControllerGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesRequest proto.InternalMessageInfo + +type ControllerGetCapabilitiesResponse struct { + // All the capabilities that the controller service supports. This + // field is OPTIONAL. + Capabilities []*ControllerServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerGetCapabilitiesResponse) Reset() { *m = ControllerGetCapabilitiesResponse{} } +func (m *ControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerGetCapabilitiesResponse) ProtoMessage() {} +func (*ControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{30} +} + +func (m *ControllerGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerGetCapabilitiesResponse.Merge(m, src) +} +func (m *ControllerGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_ControllerGetCapabilitiesResponse.Size(m) +} +func (m *ControllerGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *ControllerGetCapabilitiesResponse) GetCapabilities() []*ControllerServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the controller service. +type ControllerServiceCapability struct { + // Types that are valid to be assigned to Type: + // + // *ControllerServiceCapability_Rpc + Type isControllerServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability) Reset() { *m = ControllerServiceCapability{} } +func (m *ControllerServiceCapability) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability) ProtoMessage() {} +func (*ControllerServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{31} +} + +func (m *ControllerServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability.Unmarshal(m, b) +} +func (m *ControllerServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability.Marshal(b, m, deterministic) +} +func (m *ControllerServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability.Merge(m, src) +} +func (m *ControllerServiceCapability) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability.Size(m) +} +func (m *ControllerServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability proto.InternalMessageInfo + +type isControllerServiceCapability_Type interface { + isControllerServiceCapability_Type() +} + +type ControllerServiceCapability_Rpc struct { + Rpc *ControllerServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*ControllerServiceCapability_Rpc) isControllerServiceCapability_Type() {} + +func (m *ControllerServiceCapability) GetType() isControllerServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *ControllerServiceCapability) GetRpc() *ControllerServiceCapability_RPC { + if x, ok := m.GetType().(*ControllerServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*ControllerServiceCapability) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*ControllerServiceCapability_Rpc)(nil), + } +} + +type ControllerServiceCapability_RPC struct { + Type ControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.ControllerServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerServiceCapability_RPC) Reset() { *m = ControllerServiceCapability_RPC{} } +func (m *ControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*ControllerServiceCapability_RPC) ProtoMessage() {} +func (*ControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{31, 0} +} + +func (m *ControllerServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerServiceCapability_RPC.Unmarshal(m, b) +} +func (m *ControllerServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (m *ControllerServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerServiceCapability_RPC.Merge(m, src) +} +func (m *ControllerServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_ControllerServiceCapability_RPC.Size(m) +} +func (m *ControllerServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerServiceCapability_RPC proto.InternalMessageInfo + +func (m *ControllerServiceCapability_RPC) GetType() ControllerServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return ControllerServiceCapability_RPC_UNKNOWN +} + +type CreateSnapshotRequest struct { + // The ID of the source volume to be snapshotted. + // This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,1,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // The suggested name for the snapshot. This field is REQUIRED for + // idempotency. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + // Secrets required by plugin to complete snapshot creation request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + // Use cases for opaque parameters: + // - Specify a policy to automatically clean up the snapshot. + // - Specify an expiration date for the snapshot. + // - Specify whether the snapshot is readonly or read/write. + // - Specify if the snapshot should be replicated to some place. + // - Specify primary or secondary for replication systems that + // support snapshotting only on primary. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotRequest) Reset() { *m = CreateSnapshotRequest{} } +func (m *CreateSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotRequest) ProtoMessage() {} +func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{32} +} + +func (m *CreateSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotRequest.Unmarshal(m, b) +} +func (m *CreateSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *CreateSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotRequest.Merge(m, src) +} +func (m *CreateSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotRequest.Size(m) +} +func (m *CreateSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotRequest proto.InternalMessageInfo + +func (m *CreateSnapshotRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *CreateSnapshotRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *CreateSnapshotRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type CreateSnapshotResponse struct { + // Contains all attributes of the newly created snapshot that are + // relevant to the CO along with information required by the Plugin + // to uniquely identify the snapshot. This field is REQUIRED. + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateSnapshotResponse) Reset() { *m = CreateSnapshotResponse{} } +func (m *CreateSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*CreateSnapshotResponse) ProtoMessage() {} +func (*CreateSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{33} +} + +func (m *CreateSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateSnapshotResponse.Unmarshal(m, b) +} +func (m *CreateSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateSnapshotResponse.Marshal(b, m, deterministic) +} +func (m *CreateSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateSnapshotResponse.Merge(m, src) +} +func (m *CreateSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_CreateSnapshotResponse.Size(m) +} +func (m *CreateSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateSnapshotResponse proto.InternalMessageInfo + +func (m *CreateSnapshotResponse) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +// Information about a specific snapshot. +type Snapshot struct { + // This is the complete size of the snapshot in bytes. The purpose of + // this field is to give CO guidance on how much space is needed to + // create a volume from this snapshot. The size of the volume MUST NOT + // be less than the size of the source snapshot. This field is + // OPTIONAL. If this field is not set, it indicates that this size is + // unknown. The value of this field MUST NOT be negative and a size of + // zero means it is unspecified. + SizeBytes int64 `protobuf:"varint,1,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` + // The identifier for this snapshot, generated by the plugin. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific snapshot vs all other snapshots supported by this + // plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this snapshot. + // The SP is NOT responsible for global uniqueness of snapshot_id + // across multiple SPs. + SnapshotId string `protobuf:"bytes,2,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Identity information for the source volume. Note that creating a + // snapshot from a snapshot is not supported here so the source has to + // be a volume. This field is REQUIRED. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // Timestamp when the point-in-time snapshot is taken on the storage + // system. This field is REQUIRED. + CreationTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` + // Indicates if a snapshot is ready to use as a + // `volume_content_source` in a `CreateVolumeRequest`. The default + // value is false. This field is REQUIRED. + ReadyToUse bool `protobuf:"varint,5,opt,name=ready_to_use,json=readyToUse,proto3" json:"ready_to_use,omitempty"` + // The ID of the volume group snapshot that this snapshot is part of. + // It uniquely identifies the group snapshot on the storage system. + // This field is OPTIONAL. + // If this snapshot is a member of a volume group snapshot, and it + // MUST NOT be deleted as a stand alone snapshot, then the SP + // MUST provide the ID of the volume group snapshot in this field. + // If provided, CO MUST use this field in subsequent volume group + // snapshot operations to indicate that this snapshot is part of the + // specified group snapshot. + // If not provided, CO SHALL treat the snapshot as independent, + // and SP SHALL allow it to be deleted separately. + // If this message is inside a VolumeGroupSnapshot message, the value + // MUST be the same as the group_snapshot_id in that message. + GroupSnapshotId string `protobuf:"bytes,6,opt,name=group_snapshot_id,json=groupSnapshotId,proto3" json:"group_snapshot_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *Snapshot) Reset() { *m = Snapshot{} } +func (m *Snapshot) String() string { return proto.CompactTextString(m) } +func (*Snapshot) ProtoMessage() {} +func (*Snapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{34} +} + +func (m *Snapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Snapshot.Unmarshal(m, b) +} +func (m *Snapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Snapshot.Marshal(b, m, deterministic) +} +func (m *Snapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Snapshot.Merge(m, src) +} +func (m *Snapshot) XXX_Size() int { + return xxx_messageInfo_Snapshot.Size(m) +} +func (m *Snapshot) XXX_DiscardUnknown() { + xxx_messageInfo_Snapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_Snapshot proto.InternalMessageInfo + +func (m *Snapshot) GetSizeBytes() int64 { + if m != nil { + return m.SizeBytes + } + return 0 +} + +func (m *Snapshot) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *Snapshot) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *Snapshot) GetCreationTime() *timestamp.Timestamp { + if m != nil { + return m.CreationTime + } + return nil +} + +func (m *Snapshot) GetReadyToUse() bool { + if m != nil { + return m.ReadyToUse + } + return false +} + +func (m *Snapshot) GetGroupSnapshotId() string { + if m != nil { + return m.GroupSnapshotId + } + return "" +} + +type DeleteSnapshotRequest struct { + // The ID of the snapshot to be deleted. + // This field is REQUIRED. + SnapshotId string `protobuf:"bytes,1,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Secrets required by plugin to complete snapshot deletion request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,2,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotRequest) Reset() { *m = DeleteSnapshotRequest{} } +func (m *DeleteSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotRequest) ProtoMessage() {} +func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{35} +} + +func (m *DeleteSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotRequest.Unmarshal(m, b) +} +func (m *DeleteSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *DeleteSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotRequest.Merge(m, src) +} +func (m *DeleteSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotRequest.Size(m) +} +func (m *DeleteSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotRequest proto.InternalMessageInfo + +func (m *DeleteSnapshotRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *DeleteSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteSnapshotResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteSnapshotResponse) Reset() { *m = DeleteSnapshotResponse{} } +func (m *DeleteSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteSnapshotResponse) ProtoMessage() {} +func (*DeleteSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{36} +} + +func (m *DeleteSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteSnapshotResponse.Unmarshal(m, b) +} +func (m *DeleteSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteSnapshotResponse.Marshal(b, m, deterministic) +} +func (m *DeleteSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteSnapshotResponse.Merge(m, src) +} +func (m *DeleteSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_DeleteSnapshotResponse.Size(m) +} +func (m *DeleteSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteSnapshotResponse proto.InternalMessageInfo + +// List all snapshots on the storage system regardless of how they were +// created. +type ListSnapshotsRequest struct { + // If specified (non-zero value), the Plugin MUST NOT return more + // entries than this number in the response. If the actual number of + // entries is more than this number, the Plugin MUST set `next_token` + // in the response which can be used to get the next page of entries + // in the subsequent `ListSnapshots` call. This field is OPTIONAL. If + // not specified (zero value), it means there is no restriction on the + // number of entries that can be returned. + // The value of this field MUST NOT be negative. + MaxEntries int32 `protobuf:"varint,1,opt,name=max_entries,json=maxEntries,proto3" json:"max_entries,omitempty"` + // A token to specify where to start paginating. Set this field to + // `next_token` returned by a previous `ListSnapshots` call to get the + // next page of entries. This field is OPTIONAL. + // An empty string is equal to an unspecified field value. + StartingToken string `protobuf:"bytes,2,opt,name=starting_token,json=startingToken,proto3" json:"starting_token,omitempty"` + // Identity information for the source volume. This field is OPTIONAL. + // It can be used to list snapshots by volume. + SourceVolumeId string `protobuf:"bytes,3,opt,name=source_volume_id,json=sourceVolumeId,proto3" json:"source_volume_id,omitempty"` + // Identity information for a specific snapshot. This field is + // OPTIONAL. It can be used to list only a specific snapshot. + // ListSnapshots will return with current snapshot information + // and will not block if the snapshot is being processed after + // it is cut. + SnapshotId string `protobuf:"bytes,4,opt,name=snapshot_id,json=snapshotId,proto3" json:"snapshot_id,omitempty"` + // Secrets required by plugin to complete ListSnapshot request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsRequest) Reset() { *m = ListSnapshotsRequest{} } +func (m *ListSnapshotsRequest) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsRequest) ProtoMessage() {} +func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{37} +} + +func (m *ListSnapshotsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsRequest.Unmarshal(m, b) +} +func (m *ListSnapshotsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsRequest.Marshal(b, m, deterministic) +} +func (m *ListSnapshotsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsRequest.Merge(m, src) +} +func (m *ListSnapshotsRequest) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsRequest.Size(m) +} +func (m *ListSnapshotsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsRequest proto.InternalMessageInfo + +func (m *ListSnapshotsRequest) GetMaxEntries() int32 { + if m != nil { + return m.MaxEntries + } + return 0 +} + +func (m *ListSnapshotsRequest) GetStartingToken() string { + if m != nil { + return m.StartingToken + } + return "" +} + +func (m *ListSnapshotsRequest) GetSourceVolumeId() string { + if m != nil { + return m.SourceVolumeId + } + return "" +} + +func (m *ListSnapshotsRequest) GetSnapshotId() string { + if m != nil { + return m.SnapshotId + } + return "" +} + +func (m *ListSnapshotsRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type ListSnapshotsResponse struct { + Entries []*ListSnapshotsResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + // This token allows you to get the next page of entries for + // `ListSnapshots` request. If the number of entries is larger than + // `max_entries`, use the `next_token` as a value for the + // `starting_token` field in the next `ListSnapshots` request. This + // field is OPTIONAL. + // An empty string is equal to an unspecified field value. + NextToken string `protobuf:"bytes,2,opt,name=next_token,json=nextToken,proto3" json:"next_token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse) Reset() { *m = ListSnapshotsResponse{} } +func (m *ListSnapshotsResponse) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse) ProtoMessage() {} +func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{38} +} + +func (m *ListSnapshotsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse.Marshal(b, m, deterministic) +} +func (m *ListSnapshotsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse.Merge(m, src) +} +func (m *ListSnapshotsResponse) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse.Size(m) +} +func (m *ListSnapshotsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse proto.InternalMessageInfo + +func (m *ListSnapshotsResponse) GetEntries() []*ListSnapshotsResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +func (m *ListSnapshotsResponse) GetNextToken() string { + if m != nil { + return m.NextToken + } + return "" +} + +type ListSnapshotsResponse_Entry struct { + Snapshot *Snapshot `protobuf:"bytes,1,opt,name=snapshot,proto3" json:"snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ListSnapshotsResponse_Entry) Reset() { *m = ListSnapshotsResponse_Entry{} } +func (m *ListSnapshotsResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ListSnapshotsResponse_Entry) ProtoMessage() {} +func (*ListSnapshotsResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{38, 0} +} + +func (m *ListSnapshotsResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Unmarshal(m, b) +} +func (m *ListSnapshotsResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Marshal(b, m, deterministic) +} +func (m *ListSnapshotsResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ListSnapshotsResponse_Entry.Merge(m, src) +} +func (m *ListSnapshotsResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ListSnapshotsResponse_Entry.Size(m) +} +func (m *ListSnapshotsResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ListSnapshotsResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ListSnapshotsResponse_Entry proto.InternalMessageInfo + +func (m *ListSnapshotsResponse_Entry) GetSnapshot() *Snapshot { + if m != nil { + return m.Snapshot + } + return nil +} + +type ControllerExpandVolumeRequest struct { + // The ID of the volume to expand. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // This allows CO to specify the capacity requirements of the volume + // after expansion. This field is REQUIRED. + CapacityRange *CapacityRange `protobuf:"bytes,2,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"` + // Secrets required by the plugin for expanding the volume. + // This field is OPTIONAL. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is + // being used as a block device - the SP MAY set + // node_expansion_required to false in ControllerExpandVolumeResponse + // to skip invocation of NodeExpandVolume on the node by the CO. + // This is an OPTIONAL field. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerExpandVolumeRequest) Reset() { *m = ControllerExpandVolumeRequest{} } +func (m *ControllerExpandVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*ControllerExpandVolumeRequest) ProtoMessage() {} +func (*ControllerExpandVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{39} +} + +func (m *ControllerExpandVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerExpandVolumeRequest.Unmarshal(m, b) +} +func (m *ControllerExpandVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerExpandVolumeRequest.Marshal(b, m, deterministic) +} +func (m *ControllerExpandVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerExpandVolumeRequest.Merge(m, src) +} +func (m *ControllerExpandVolumeRequest) XXX_Size() int { + return xxx_messageInfo_ControllerExpandVolumeRequest.Size(m) +} +func (m *ControllerExpandVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerExpandVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerExpandVolumeRequest proto.InternalMessageInfo + +func (m *ControllerExpandVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *ControllerExpandVolumeRequest) GetCapacityRange() *CapacityRange { + if m != nil { + return m.CapacityRange + } + return nil +} + +func (m *ControllerExpandVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *ControllerExpandVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +type ControllerExpandVolumeResponse struct { + // Capacity of volume after expansion. This field is REQUIRED. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` + // Whether node expansion is required for the volume. When true + // the CO MUST make NodeExpandVolume RPC call on the node. This field + // is REQUIRED. + NodeExpansionRequired bool `protobuf:"varint,2,opt,name=node_expansion_required,json=nodeExpansionRequired,proto3" json:"node_expansion_required,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ControllerExpandVolumeResponse) Reset() { *m = ControllerExpandVolumeResponse{} } +func (m *ControllerExpandVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*ControllerExpandVolumeResponse) ProtoMessage() {} +func (*ControllerExpandVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{40} +} + +func (m *ControllerExpandVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ControllerExpandVolumeResponse.Unmarshal(m, b) +} +func (m *ControllerExpandVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ControllerExpandVolumeResponse.Marshal(b, m, deterministic) +} +func (m *ControllerExpandVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerExpandVolumeResponse.Merge(m, src) +} +func (m *ControllerExpandVolumeResponse) XXX_Size() int { + return xxx_messageInfo_ControllerExpandVolumeResponse.Size(m) +} +func (m *ControllerExpandVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerExpandVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerExpandVolumeResponse proto.InternalMessageInfo + +func (m *ControllerExpandVolumeResponse) GetCapacityBytes() int64 { + if m != nil { + return m.CapacityBytes + } + return 0 +} + +func (m *ControllerExpandVolumeResponse) GetNodeExpansionRequired() bool { + if m != nil { + return m.NodeExpansionRequired + } + return false +} + +type NodeStageVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishContext map[string]string `protobuf:"bytes,2,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The path to which the volume MAY be staged. It MUST be an + // absolute path in the root filesystem of the process serving this + // request, and MUST be a directory. The CO SHALL ensure that there + // is only one `staging_target_path` per volume. The CO SHALL ensure + // that the path is directory and that the process serving the + // request has `read` and `write` permission to that directory. The + // CO SHALL be responsible for creating the directory if it does not + // exist. + // This is a REQUIRED field. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the staged volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,4,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Secrets required by plugin to complete node stage volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,5,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by SP in + // CreateVolumeResponse.Volume.volume_context. + // This field is OPTIONAL and MUST match the volume_context of the + // volume identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,6,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeRequest) Reset() { *m = NodeStageVolumeRequest{} } +func (m *NodeStageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeRequest) ProtoMessage() {} +func (*NodeStageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{41} +} + +func (m *NodeStageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeStageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeRequest.Marshal(b, m, deterministic) +} +func (m *NodeStageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeRequest.Merge(m, src) +} +func (m *NodeStageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeRequest.Size(m) +} +func (m *NodeStageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeRequest proto.InternalMessageInfo + +func (m *NodeStageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeStageVolumeRequest) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +func (m *NodeStageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodeStageVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodeStageVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *NodeStageVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type NodeStageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeStageVolumeResponse) Reset() { *m = NodeStageVolumeResponse{} } +func (m *NodeStageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeStageVolumeResponse) ProtoMessage() {} +func (*NodeStageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{42} +} + +func (m *NodeStageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeStageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeStageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeStageVolumeResponse.Marshal(b, m, deterministic) +} +func (m *NodeStageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeStageVolumeResponse.Merge(m, src) +} +func (m *NodeStageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeStageVolumeResponse.Size(m) +} +func (m *NodeStageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeStageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeStageVolumeResponse proto.InternalMessageInfo + +type NodeUnstageVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path at which the volume was staged. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // This is a REQUIRED field. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + StagingTargetPath string `protobuf:"bytes,2,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeRequest) Reset() { *m = NodeUnstageVolumeRequest{} } +func (m *NodeUnstageVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeRequest) ProtoMessage() {} +func (*NodeUnstageVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{43} +} + +func (m *NodeUnstageVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeRequest.Marshal(b, m, deterministic) +} +func (m *NodeUnstageVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeRequest.Merge(m, src) +} +func (m *NodeUnstageVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeRequest.Size(m) +} +func (m *NodeUnstageVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnstageVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnstageVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +type NodeUnstageVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnstageVolumeResponse) Reset() { *m = NodeUnstageVolumeResponse{} } +func (m *NodeUnstageVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnstageVolumeResponse) ProtoMessage() {} +func (*NodeUnstageVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{44} +} + +func (m *NodeUnstageVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnstageVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnstageVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnstageVolumeResponse.Marshal(b, m, deterministic) +} +func (m *NodeUnstageVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnstageVolumeResponse.Merge(m, src) +} +func (m *NodeUnstageVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnstageVolumeResponse.Size(m) +} +func (m *NodeUnstageVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnstageVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnstageVolumeResponse proto.InternalMessageInfo + +type NodePublishVolumeRequest struct { + // The ID of the volume to publish. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The CO SHALL set this field to the value returned by + // `ControllerPublishVolume` if the corresponding Controller Plugin + // has `PUBLISH_UNPUBLISH_VOLUME` controller capability, and SHALL be + // left unset if the corresponding Controller Plugin does not have + // this capability. This is an OPTIONAL field. + PublishContext map[string]string `protobuf:"bytes,2,rep,name=publish_context,json=publishContext,proto3" json:"publish_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The path to which the volume was staged by `NodeStageVolume`. + // It MUST be an absolute path in the root filesystem of the process + // serving this request. + // It MUST be set if the Node Plugin implements the + // `STAGE_UNSTAGE_VOLUME` node capability. + // This is an OPTIONAL field. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // The path to which the volume will be published. It MUST be an + // absolute path in the root filesystem of the process serving this + // request. The CO SHALL ensure uniqueness of target_path per volume. + // The CO SHALL ensure that the parent directory of this path exists + // and that the process serving the request has `read` and `write` + // permissions to that parent directory. + // For volumes with an access type of block, the SP SHALL place the + // block device at target_path. + // For volumes with an access type of mount, the SP SHALL place the + // mounted directory at target_path. + // Creation of target_path is the responsibility of the SP. + // This is a REQUIRED field. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + TargetPath string `protobuf:"bytes,4,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // SP MUST ensure the CO can use the published volume as described. + // Otherwise SP MUST return the appropriate gRPC error code. + // This is a REQUIRED field. + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Indicates SP MUST publish the volume in readonly mode. + // This field is REQUIRED. + Readonly bool `protobuf:"varint,6,opt,name=readonly,proto3" json:"readonly,omitempty"` + // Secrets required by plugin to complete node publish volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,7,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Volume context as returned by SP in + // CreateVolumeResponse.Volume.volume_context. + // This field is OPTIONAL and MUST match the volume_context of the + // volume identified by `volume_id`. + VolumeContext map[string]string `protobuf:"bytes,8,rep,name=volume_context,json=volumeContext,proto3" json:"volume_context,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeRequest) Reset() { *m = NodePublishVolumeRequest{} } +func (m *NodePublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeRequest) ProtoMessage() {} +func (*NodePublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{45} +} + +func (m *NodePublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodePublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeRequest.Marshal(b, m, deterministic) +} +func (m *NodePublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeRequest.Merge(m, src) +} +func (m *NodePublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeRequest.Size(m) +} +func (m *NodePublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeRequest proto.InternalMessageInfo + +func (m *NodePublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodePublishVolumeRequest) GetPublishContext() map[string]string { + if m != nil { + return m.PublishContext + } + return nil +} + +func (m *NodePublishVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +func (m *NodePublishVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodePublishVolumeRequest) GetReadonly() bool { + if m != nil { + return m.Readonly + } + return false +} + +func (m *NodePublishVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *NodePublishVolumeRequest) GetVolumeContext() map[string]string { + if m != nil { + return m.VolumeContext + } + return nil +} + +type NodePublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodePublishVolumeResponse) Reset() { *m = NodePublishVolumeResponse{} } +func (m *NodePublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodePublishVolumeResponse) ProtoMessage() {} +func (*NodePublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{46} +} + +func (m *NodePublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodePublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodePublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodePublishVolumeResponse.Marshal(b, m, deterministic) +} +func (m *NodePublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodePublishVolumeResponse.Merge(m, src) +} +func (m *NodePublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodePublishVolumeResponse.Size(m) +} +func (m *NodePublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodePublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodePublishVolumeResponse proto.InternalMessageInfo + +type NodeUnpublishVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path at which the volume was published. It MUST be an absolute + // path in the root filesystem of the process serving this request. + // The SP MUST delete the file or directory it created at this path. + // This is a REQUIRED field. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeRequest) Reset() { *m = NodeUnpublishVolumeRequest{} } +func (m *NodeUnpublishVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeRequest) ProtoMessage() {} +func (*NodeUnpublishVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{47} +} + +func (m *NodeUnpublishVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Marshal(b, m, deterministic) +} +func (m *NodeUnpublishVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeRequest.Merge(m, src) +} +func (m *NodeUnpublishVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeRequest.Size(m) +} +func (m *NodeUnpublishVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeRequest proto.InternalMessageInfo + +func (m *NodeUnpublishVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeUnpublishVolumeRequest) GetTargetPath() string { + if m != nil { + return m.TargetPath + } + return "" +} + +type NodeUnpublishVolumeResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeUnpublishVolumeResponse) Reset() { *m = NodeUnpublishVolumeResponse{} } +func (m *NodeUnpublishVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeUnpublishVolumeResponse) ProtoMessage() {} +func (*NodeUnpublishVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{48} +} + +func (m *NodeUnpublishVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Unmarshal(m, b) +} +func (m *NodeUnpublishVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Marshal(b, m, deterministic) +} +func (m *NodeUnpublishVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeUnpublishVolumeResponse.Merge(m, src) +} +func (m *NodeUnpublishVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeUnpublishVolumeResponse.Size(m) +} +func (m *NodeUnpublishVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeUnpublishVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeUnpublishVolumeResponse proto.InternalMessageInfo + +type NodeGetVolumeStatsRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // It can be any valid path where volume was previously + // staged or published. + // It MUST be an absolute path in the root filesystem of + // the process serving this request. + // This is a REQUIRED field. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"` + // The path where the volume is staged, if the plugin has the + // STAGE_UNSTAGE_VOLUME capability, otherwise empty. + // If not empty, it MUST be an absolute path in the root + // filesystem of the process serving this request. + // This field is OPTIONAL. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + StagingTargetPath string `protobuf:"bytes,3,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetVolumeStatsRequest) Reset() { *m = NodeGetVolumeStatsRequest{} } +func (m *NodeGetVolumeStatsRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetVolumeStatsRequest) ProtoMessage() {} +func (*NodeGetVolumeStatsRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{49} +} + +func (m *NodeGetVolumeStatsRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Unmarshal(m, b) +} +func (m *NodeGetVolumeStatsRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Marshal(b, m, deterministic) +} +func (m *NodeGetVolumeStatsRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetVolumeStatsRequest.Merge(m, src) +} +func (m *NodeGetVolumeStatsRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetVolumeStatsRequest.Size(m) +} +func (m *NodeGetVolumeStatsRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetVolumeStatsRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetVolumeStatsRequest proto.InternalMessageInfo + +func (m *NodeGetVolumeStatsRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeGetVolumeStatsRequest) GetVolumePath() string { + if m != nil { + return m.VolumePath + } + return "" +} + +func (m *NodeGetVolumeStatsRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +type NodeGetVolumeStatsResponse struct { + // This field is OPTIONAL. + Usage []*VolumeUsage `protobuf:"bytes,1,rep,name=usage,proto3" json:"usage,omitempty"` + // Information about the current condition of the volume. + // This field is OPTIONAL. + // This field MUST be specified if the VOLUME_CONDITION node + // capability is supported. + VolumeCondition *VolumeCondition `protobuf:"bytes,2,opt,name=volume_condition,json=volumeCondition,proto3" json:"volume_condition,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetVolumeStatsResponse) Reset() { *m = NodeGetVolumeStatsResponse{} } +func (m *NodeGetVolumeStatsResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetVolumeStatsResponse) ProtoMessage() {} +func (*NodeGetVolumeStatsResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{50} +} + +func (m *NodeGetVolumeStatsResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Unmarshal(m, b) +} +func (m *NodeGetVolumeStatsResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Marshal(b, m, deterministic) +} +func (m *NodeGetVolumeStatsResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetVolumeStatsResponse.Merge(m, src) +} +func (m *NodeGetVolumeStatsResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetVolumeStatsResponse.Size(m) +} +func (m *NodeGetVolumeStatsResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetVolumeStatsResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetVolumeStatsResponse proto.InternalMessageInfo + +func (m *NodeGetVolumeStatsResponse) GetUsage() []*VolumeUsage { + if m != nil { + return m.Usage + } + return nil +} + +func (m *NodeGetVolumeStatsResponse) GetVolumeCondition() *VolumeCondition { + if m != nil { + return m.VolumeCondition + } + return nil +} + +type VolumeUsage struct { + // The available capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + Available int64 `protobuf:"varint,1,opt,name=available,proto3" json:"available,omitempty"` + // The total capacity in specified Unit. This field is REQUIRED. + // The value of this field MUST NOT be negative. + Total int64 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"` + // The used capacity in specified Unit. This field is OPTIONAL. + // The value of this field MUST NOT be negative. + Used int64 `protobuf:"varint,3,opt,name=used,proto3" json:"used,omitempty"` + // Units by which values are measured. This field is REQUIRED. + Unit VolumeUsage_Unit `protobuf:"varint,4,opt,name=unit,proto3,enum=csi.v1.VolumeUsage_Unit" json:"unit,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeUsage) Reset() { *m = VolumeUsage{} } +func (m *VolumeUsage) String() string { return proto.CompactTextString(m) } +func (*VolumeUsage) ProtoMessage() {} +func (*VolumeUsage) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{51} +} + +func (m *VolumeUsage) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeUsage.Unmarshal(m, b) +} +func (m *VolumeUsage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeUsage.Marshal(b, m, deterministic) +} +func (m *VolumeUsage) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeUsage.Merge(m, src) +} +func (m *VolumeUsage) XXX_Size() int { + return xxx_messageInfo_VolumeUsage.Size(m) +} +func (m *VolumeUsage) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeUsage.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeUsage proto.InternalMessageInfo + +func (m *VolumeUsage) GetAvailable() int64 { + if m != nil { + return m.Available + } + return 0 +} + +func (m *VolumeUsage) GetTotal() int64 { + if m != nil { + return m.Total + } + return 0 +} + +func (m *VolumeUsage) GetUsed() int64 { + if m != nil { + return m.Used + } + return 0 +} + +func (m *VolumeUsage) GetUnit() VolumeUsage_Unit { + if m != nil { + return m.Unit + } + return VolumeUsage_UNKNOWN +} + +// VolumeCondition represents the current condition of a volume. +type VolumeCondition struct { + // Normal volumes are available for use and operating optimally. + // An abnormal volume does not meet these criteria. + // This field is REQUIRED. + Abnormal bool `protobuf:"varint,1,opt,name=abnormal,proto3" json:"abnormal,omitempty"` + // The message describing the condition of the volume. + // This field is REQUIRED. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeCondition) Reset() { *m = VolumeCondition{} } +func (m *VolumeCondition) String() string { return proto.CompactTextString(m) } +func (*VolumeCondition) ProtoMessage() {} +func (*VolumeCondition) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{52} +} + +func (m *VolumeCondition) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeCondition.Unmarshal(m, b) +} +func (m *VolumeCondition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeCondition.Marshal(b, m, deterministic) +} +func (m *VolumeCondition) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeCondition.Merge(m, src) +} +func (m *VolumeCondition) XXX_Size() int { + return xxx_messageInfo_VolumeCondition.Size(m) +} +func (m *VolumeCondition) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeCondition.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeCondition proto.InternalMessageInfo + +func (m *VolumeCondition) GetAbnormal() bool { + if m != nil { + return m.Abnormal + } + return false +} + +func (m *VolumeCondition) GetMessage() string { + if m != nil { + return m.Message + } + return "" +} + +type NodeGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesRequest) Reset() { *m = NodeGetCapabilitiesRequest{} } +func (m *NodeGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesRequest) ProtoMessage() {} +func (*NodeGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{53} +} + +func (m *NodeGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (m *NodeGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesRequest.Merge(m, src) +} +func (m *NodeGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesRequest.Size(m) +} +func (m *NodeGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesRequest proto.InternalMessageInfo + +type NodeGetCapabilitiesResponse struct { + // All the capabilities that the node service supports. This field + // is OPTIONAL. + Capabilities []*NodeServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetCapabilitiesResponse) Reset() { *m = NodeGetCapabilitiesResponse{} } +func (m *NodeGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetCapabilitiesResponse) ProtoMessage() {} +func (*NodeGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{54} +} + +func (m *NodeGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *NodeGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (m *NodeGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetCapabilitiesResponse.Merge(m, src) +} +func (m *NodeGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetCapabilitiesResponse.Size(m) +} +func (m *NodeGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *NodeGetCapabilitiesResponse) GetCapabilities() []*NodeServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the node service. +type NodeServiceCapability struct { + // Types that are valid to be assigned to Type: + // + // *NodeServiceCapability_Rpc + Type isNodeServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability) Reset() { *m = NodeServiceCapability{} } +func (m *NodeServiceCapability) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability) ProtoMessage() {} +func (*NodeServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{55} +} + +func (m *NodeServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability.Unmarshal(m, b) +} +func (m *NodeServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability.Marshal(b, m, deterministic) +} +func (m *NodeServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability.Merge(m, src) +} +func (m *NodeServiceCapability) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability.Size(m) +} +func (m *NodeServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability proto.InternalMessageInfo + +type isNodeServiceCapability_Type interface { + isNodeServiceCapability_Type() +} + +type NodeServiceCapability_Rpc struct { + Rpc *NodeServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*NodeServiceCapability_Rpc) isNodeServiceCapability_Type() {} + +func (m *NodeServiceCapability) GetType() isNodeServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *NodeServiceCapability) GetRpc() *NodeServiceCapability_RPC { + if x, ok := m.GetType().(*NodeServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*NodeServiceCapability) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*NodeServiceCapability_Rpc)(nil), + } +} + +type NodeServiceCapability_RPC struct { + Type NodeServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.NodeServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeServiceCapability_RPC) Reset() { *m = NodeServiceCapability_RPC{} } +func (m *NodeServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*NodeServiceCapability_RPC) ProtoMessage() {} +func (*NodeServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{55, 0} +} + +func (m *NodeServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeServiceCapability_RPC.Unmarshal(m, b) +} +func (m *NodeServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (m *NodeServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeServiceCapability_RPC.Merge(m, src) +} +func (m *NodeServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_NodeServiceCapability_RPC.Size(m) +} +func (m *NodeServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_NodeServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeServiceCapability_RPC proto.InternalMessageInfo + +func (m *NodeServiceCapability_RPC) GetType() NodeServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return NodeServiceCapability_RPC_UNKNOWN +} + +type NodeGetInfoRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoRequest) Reset() { *m = NodeGetInfoRequest{} } +func (m *NodeGetInfoRequest) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoRequest) ProtoMessage() {} +func (*NodeGetInfoRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{56} +} + +func (m *NodeGetInfoRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoRequest.Unmarshal(m, b) +} +func (m *NodeGetInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoRequest.Marshal(b, m, deterministic) +} +func (m *NodeGetInfoRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoRequest.Merge(m, src) +} +func (m *NodeGetInfoRequest) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoRequest.Size(m) +} +func (m *NodeGetInfoRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoRequest proto.InternalMessageInfo + +type NodeGetInfoResponse struct { + // The identifier of the node as understood by the SP. + // This field is REQUIRED. + // This field MUST contain enough information to uniquely identify + // this specific node vs all other nodes supported by this plugin. + // This field SHALL be used by the CO in subsequent calls, including + // `ControllerPublishVolume`, to refer to this node. + // The SP is NOT responsible for global uniqueness of node_id across + // multiple SPs. + // This field overrides the general CSI size limit. + // The size of this field SHALL NOT exceed 256 bytes. The general + // CSI size limit, 128 byte, is RECOMMENDED for best backwards + // compatibility. + NodeId string `protobuf:"bytes,1,opt,name=node_id,json=nodeId,proto3" json:"node_id,omitempty"` + // Maximum number of volumes that controller can publish to the node. + // If value is not set or zero CO SHALL decide how many volumes of + // this type can be published by the controller to the node. The + // plugin MUST NOT set negative values here. + // This field is OPTIONAL. + MaxVolumesPerNode int64 `protobuf:"varint,2,opt,name=max_volumes_per_node,json=maxVolumesPerNode,proto3" json:"max_volumes_per_node,omitempty"` + // Specifies where (regions, zones, racks, etc.) the node is + // accessible from. + // A plugin that returns this field MUST also set the + // VOLUME_ACCESSIBILITY_CONSTRAINTS plugin capability. + // COs MAY use this information along with the topology information + // returned in CreateVolumeResponse to ensure that a given volume is + // accessible from a given node when scheduling workloads. + // This field is OPTIONAL. If it is not specified, the CO MAY assume + // the node is not subject to any topological constraint, and MAY + // schedule workloads that reference any volume V, such that there are + // no topological constraints declared for V. + // + // Example 1: + // + // accessible_topology = + // {"region": "R1", "zone": "Z2"} + // + // Indicates the node exists within the "region" "R1" and the "zone" + // "Z2". + AccessibleTopology *Topology `protobuf:"bytes,3,opt,name=accessible_topology,json=accessibleTopology,proto3" json:"accessible_topology,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeGetInfoResponse) Reset() { *m = NodeGetInfoResponse{} } +func (m *NodeGetInfoResponse) String() string { return proto.CompactTextString(m) } +func (*NodeGetInfoResponse) ProtoMessage() {} +func (*NodeGetInfoResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{57} +} + +func (m *NodeGetInfoResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeGetInfoResponse.Unmarshal(m, b) +} +func (m *NodeGetInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeGetInfoResponse.Marshal(b, m, deterministic) +} +func (m *NodeGetInfoResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeGetInfoResponse.Merge(m, src) +} +func (m *NodeGetInfoResponse) XXX_Size() int { + return xxx_messageInfo_NodeGetInfoResponse.Size(m) +} +func (m *NodeGetInfoResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeGetInfoResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeGetInfoResponse proto.InternalMessageInfo + +func (m *NodeGetInfoResponse) GetNodeId() string { + if m != nil { + return m.NodeId + } + return "" +} + +func (m *NodeGetInfoResponse) GetMaxVolumesPerNode() int64 { + if m != nil { + return m.MaxVolumesPerNode + } + return 0 +} + +func (m *NodeGetInfoResponse) GetAccessibleTopology() *Topology { + if m != nil { + return m.AccessibleTopology + } + return nil +} + +type NodeExpandVolumeRequest struct { + // The ID of the volume. This field is REQUIRED. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // The path on which volume is available. This field is REQUIRED. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + VolumePath string `protobuf:"bytes,2,opt,name=volume_path,json=volumePath,proto3" json:"volume_path,omitempty"` + // This allows CO to specify the capacity requirements of the volume + // after expansion. If capacity_range is omitted then a plugin MAY + // inspect the file system of the volume to determine the maximum + // capacity to which the volume can be expanded. In such cases a + // plugin MAY expand the volume to its maximum capacity. + // This field is OPTIONAL. + CapacityRange *CapacityRange `protobuf:"bytes,3,opt,name=capacity_range,json=capacityRange,proto3" json:"capacity_range,omitempty"` + // The path where the volume is staged, if the plugin has the + // STAGE_UNSTAGE_VOLUME capability, otherwise empty. + // If not empty, it MUST be an absolute path in the root + // filesystem of the process serving this request. + // This field is OPTIONAL. + // This field overrides the general CSI size limit. + // SP SHOULD support the maximum path length allowed by the operating + // system/filesystem, but, at a minimum, SP MUST accept a max path + // length of at least 128 bytes. + StagingTargetPath string `protobuf:"bytes,4,opt,name=staging_target_path,json=stagingTargetPath,proto3" json:"staging_target_path,omitempty"` + // Volume capability describing how the CO intends to use this volume. + // This allows SP to determine if volume is being used as a block + // device or mounted file system. For example - if volume is being + // used as a block device the SP MAY choose to skip expanding the + // filesystem in NodeExpandVolume implementation but still perform + // rest of the housekeeping needed for expanding the volume. If + // volume_capability is omitted the SP MAY determine + // access_type from given volume_path for the volume and perform + // node expansion. This is an OPTIONAL field. + VolumeCapability *VolumeCapability `protobuf:"bytes,5,opt,name=volume_capability,json=volumeCapability,proto3" json:"volume_capability,omitempty"` + // Secrets required by plugin to complete node expand volume request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + Secrets map[string]string `protobuf:"bytes,6,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeExpandVolumeRequest) Reset() { *m = NodeExpandVolumeRequest{} } +func (m *NodeExpandVolumeRequest) String() string { return proto.CompactTextString(m) } +func (*NodeExpandVolumeRequest) ProtoMessage() {} +func (*NodeExpandVolumeRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{58} +} + +func (m *NodeExpandVolumeRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeExpandVolumeRequest.Unmarshal(m, b) +} +func (m *NodeExpandVolumeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeExpandVolumeRequest.Marshal(b, m, deterministic) +} +func (m *NodeExpandVolumeRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeExpandVolumeRequest.Merge(m, src) +} +func (m *NodeExpandVolumeRequest) XXX_Size() int { + return xxx_messageInfo_NodeExpandVolumeRequest.Size(m) +} +func (m *NodeExpandVolumeRequest) XXX_DiscardUnknown() { + xxx_messageInfo_NodeExpandVolumeRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeExpandVolumeRequest proto.InternalMessageInfo + +func (m *NodeExpandVolumeRequest) GetVolumeId() string { + if m != nil { + return m.VolumeId + } + return "" +} + +func (m *NodeExpandVolumeRequest) GetVolumePath() string { + if m != nil { + return m.VolumePath + } + return "" +} + +func (m *NodeExpandVolumeRequest) GetCapacityRange() *CapacityRange { + if m != nil { + return m.CapacityRange + } + return nil +} + +func (m *NodeExpandVolumeRequest) GetStagingTargetPath() string { + if m != nil { + return m.StagingTargetPath + } + return "" +} + +func (m *NodeExpandVolumeRequest) GetVolumeCapability() *VolumeCapability { + if m != nil { + return m.VolumeCapability + } + return nil +} + +func (m *NodeExpandVolumeRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type NodeExpandVolumeResponse struct { + // The capacity of the volume in bytes. This field is OPTIONAL. + CapacityBytes int64 `protobuf:"varint,1,opt,name=capacity_bytes,json=capacityBytes,proto3" json:"capacity_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *NodeExpandVolumeResponse) Reset() { *m = NodeExpandVolumeResponse{} } +func (m *NodeExpandVolumeResponse) String() string { return proto.CompactTextString(m) } +func (*NodeExpandVolumeResponse) ProtoMessage() {} +func (*NodeExpandVolumeResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{59} +} + +func (m *NodeExpandVolumeResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_NodeExpandVolumeResponse.Unmarshal(m, b) +} +func (m *NodeExpandVolumeResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_NodeExpandVolumeResponse.Marshal(b, m, deterministic) +} +func (m *NodeExpandVolumeResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_NodeExpandVolumeResponse.Merge(m, src) +} +func (m *NodeExpandVolumeResponse) XXX_Size() int { + return xxx_messageInfo_NodeExpandVolumeResponse.Size(m) +} +func (m *NodeExpandVolumeResponse) XXX_DiscardUnknown() { + xxx_messageInfo_NodeExpandVolumeResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_NodeExpandVolumeResponse proto.InternalMessageInfo + +func (m *NodeExpandVolumeResponse) GetCapacityBytes() int64 { + if m != nil { + return m.CapacityBytes + } + return 0 +} + +type GroupControllerGetCapabilitiesRequest struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupControllerGetCapabilitiesRequest) Reset() { *m = GroupControllerGetCapabilitiesRequest{} } +func (m *GroupControllerGetCapabilitiesRequest) String() string { return proto.CompactTextString(m) } +func (*GroupControllerGetCapabilitiesRequest) ProtoMessage() {} +func (*GroupControllerGetCapabilitiesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{60} +} + +func (m *GroupControllerGetCapabilitiesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupControllerGetCapabilitiesRequest.Unmarshal(m, b) +} +func (m *GroupControllerGetCapabilitiesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupControllerGetCapabilitiesRequest.Marshal(b, m, deterministic) +} +func (m *GroupControllerGetCapabilitiesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupControllerGetCapabilitiesRequest.Merge(m, src) +} +func (m *GroupControllerGetCapabilitiesRequest) XXX_Size() int { + return xxx_messageInfo_GroupControllerGetCapabilitiesRequest.Size(m) +} +func (m *GroupControllerGetCapabilitiesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GroupControllerGetCapabilitiesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupControllerGetCapabilitiesRequest proto.InternalMessageInfo + +type GroupControllerGetCapabilitiesResponse struct { + // All the capabilities that the group controller service supports. + // This field is OPTIONAL. + Capabilities []*GroupControllerServiceCapability `protobuf:"bytes,1,rep,name=capabilities,proto3" json:"capabilities,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupControllerGetCapabilitiesResponse) Reset() { + *m = GroupControllerGetCapabilitiesResponse{} +} +func (m *GroupControllerGetCapabilitiesResponse) String() string { return proto.CompactTextString(m) } +func (*GroupControllerGetCapabilitiesResponse) ProtoMessage() {} +func (*GroupControllerGetCapabilitiesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{61} +} + +func (m *GroupControllerGetCapabilitiesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupControllerGetCapabilitiesResponse.Unmarshal(m, b) +} +func (m *GroupControllerGetCapabilitiesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupControllerGetCapabilitiesResponse.Marshal(b, m, deterministic) +} +func (m *GroupControllerGetCapabilitiesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupControllerGetCapabilitiesResponse.Merge(m, src) +} +func (m *GroupControllerGetCapabilitiesResponse) XXX_Size() int { + return xxx_messageInfo_GroupControllerGetCapabilitiesResponse.Size(m) +} +func (m *GroupControllerGetCapabilitiesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GroupControllerGetCapabilitiesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupControllerGetCapabilitiesResponse proto.InternalMessageInfo + +func (m *GroupControllerGetCapabilitiesResponse) GetCapabilities() []*GroupControllerServiceCapability { + if m != nil { + return m.Capabilities + } + return nil +} + +// Specifies a capability of the group controller service. +type GroupControllerServiceCapability struct { + // Types that are valid to be assigned to Type: + // + // *GroupControllerServiceCapability_Rpc + Type isGroupControllerServiceCapability_Type `protobuf_oneof:"type"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupControllerServiceCapability) Reset() { *m = GroupControllerServiceCapability{} } +func (m *GroupControllerServiceCapability) String() string { return proto.CompactTextString(m) } +func (*GroupControllerServiceCapability) ProtoMessage() {} +func (*GroupControllerServiceCapability) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{62} +} + +func (m *GroupControllerServiceCapability) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupControllerServiceCapability.Unmarshal(m, b) +} +func (m *GroupControllerServiceCapability) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupControllerServiceCapability.Marshal(b, m, deterministic) +} +func (m *GroupControllerServiceCapability) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupControllerServiceCapability.Merge(m, src) +} +func (m *GroupControllerServiceCapability) XXX_Size() int { + return xxx_messageInfo_GroupControllerServiceCapability.Size(m) +} +func (m *GroupControllerServiceCapability) XXX_DiscardUnknown() { + xxx_messageInfo_GroupControllerServiceCapability.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupControllerServiceCapability proto.InternalMessageInfo + +type isGroupControllerServiceCapability_Type interface { + isGroupControllerServiceCapability_Type() +} + +type GroupControllerServiceCapability_Rpc struct { + Rpc *GroupControllerServiceCapability_RPC `protobuf:"bytes,1,opt,name=rpc,proto3,oneof"` +} + +func (*GroupControllerServiceCapability_Rpc) isGroupControllerServiceCapability_Type() {} + +func (m *GroupControllerServiceCapability) GetType() isGroupControllerServiceCapability_Type { + if m != nil { + return m.Type + } + return nil +} + +func (m *GroupControllerServiceCapability) GetRpc() *GroupControllerServiceCapability_RPC { + if x, ok := m.GetType().(*GroupControllerServiceCapability_Rpc); ok { + return x.Rpc + } + return nil +} + +// XXX_OneofWrappers is for the internal use of the proto package. +func (*GroupControllerServiceCapability) XXX_OneofWrappers() []interface{} { + return []interface{}{ + (*GroupControllerServiceCapability_Rpc)(nil), + } +} + +type GroupControllerServiceCapability_RPC struct { + Type GroupControllerServiceCapability_RPC_Type `protobuf:"varint,1,opt,name=type,proto3,enum=csi.v1.GroupControllerServiceCapability_RPC_Type" json:"type,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupControllerServiceCapability_RPC) Reset() { *m = GroupControllerServiceCapability_RPC{} } +func (m *GroupControllerServiceCapability_RPC) String() string { return proto.CompactTextString(m) } +func (*GroupControllerServiceCapability_RPC) ProtoMessage() {} +func (*GroupControllerServiceCapability_RPC) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{62, 0} +} + +func (m *GroupControllerServiceCapability_RPC) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupControllerServiceCapability_RPC.Unmarshal(m, b) +} +func (m *GroupControllerServiceCapability_RPC) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupControllerServiceCapability_RPC.Marshal(b, m, deterministic) +} +func (m *GroupControllerServiceCapability_RPC) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupControllerServiceCapability_RPC.Merge(m, src) +} +func (m *GroupControllerServiceCapability_RPC) XXX_Size() int { + return xxx_messageInfo_GroupControllerServiceCapability_RPC.Size(m) +} +func (m *GroupControllerServiceCapability_RPC) XXX_DiscardUnknown() { + xxx_messageInfo_GroupControllerServiceCapability_RPC.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupControllerServiceCapability_RPC proto.InternalMessageInfo + +func (m *GroupControllerServiceCapability_RPC) GetType() GroupControllerServiceCapability_RPC_Type { + if m != nil { + return m.Type + } + return GroupControllerServiceCapability_RPC_UNKNOWN +} + +type CreateVolumeGroupSnapshotRequest struct { + // The suggested name for the group snapshot. This field is REQUIRED + // for idempotency. + // Any Unicode string that conforms to the length limit is allowed + // except those containing the following banned characters: + // U+0000-U+0008, U+000B, U+000C, U+000E-U+001F, U+007F-U+009F. + // (These are control characters other than commonly used whitespace.) + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // volume IDs of the source volumes to be snapshotted together. + // This field is REQUIRED. + SourceVolumeIds []string `protobuf:"bytes,2,rep,name=source_volume_ids,json=sourceVolumeIds,proto3" json:"source_volume_ids,omitempty"` + // Secrets required by plugin to complete + // ControllerCreateVolumeGroupSnapshot request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + // The secrets provided in this field SHOULD be the same for + // all group snapshot operations on the same group snapshot. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Plugin specific parameters passed in as opaque key-value pairs. + // This field is OPTIONAL. The Plugin is responsible for parsing and + // validating these parameters. COs will treat these as opaque. + Parameters map[string]string `protobuf:"bytes,4,rep,name=parameters,proto3" json:"parameters,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeGroupSnapshotRequest) Reset() { *m = CreateVolumeGroupSnapshotRequest{} } +func (m *CreateVolumeGroupSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeGroupSnapshotRequest) ProtoMessage() {} +func (*CreateVolumeGroupSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{63} +} + +func (m *CreateVolumeGroupSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeGroupSnapshotRequest.Unmarshal(m, b) +} +func (m *CreateVolumeGroupSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeGroupSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *CreateVolumeGroupSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeGroupSnapshotRequest.Merge(m, src) +} +func (m *CreateVolumeGroupSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_CreateVolumeGroupSnapshotRequest.Size(m) +} +func (m *CreateVolumeGroupSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeGroupSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeGroupSnapshotRequest proto.InternalMessageInfo + +func (m *CreateVolumeGroupSnapshotRequest) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *CreateVolumeGroupSnapshotRequest) GetSourceVolumeIds() []string { + if m != nil { + return m.SourceVolumeIds + } + return nil +} + +func (m *CreateVolumeGroupSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +func (m *CreateVolumeGroupSnapshotRequest) GetParameters() map[string]string { + if m != nil { + return m.Parameters + } + return nil +} + +type CreateVolumeGroupSnapshotResponse struct { + // Contains all attributes of the newly created group snapshot. + // This field is REQUIRED. + GroupSnapshot *VolumeGroupSnapshot `protobuf:"bytes,1,opt,name=group_snapshot,json=groupSnapshot,proto3" json:"group_snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateVolumeGroupSnapshotResponse) Reset() { *m = CreateVolumeGroupSnapshotResponse{} } +func (m *CreateVolumeGroupSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*CreateVolumeGroupSnapshotResponse) ProtoMessage() {} +func (*CreateVolumeGroupSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{64} +} + +func (m *CreateVolumeGroupSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateVolumeGroupSnapshotResponse.Unmarshal(m, b) +} +func (m *CreateVolumeGroupSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateVolumeGroupSnapshotResponse.Marshal(b, m, deterministic) +} +func (m *CreateVolumeGroupSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateVolumeGroupSnapshotResponse.Merge(m, src) +} +func (m *CreateVolumeGroupSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_CreateVolumeGroupSnapshotResponse.Size(m) +} +func (m *CreateVolumeGroupSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CreateVolumeGroupSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateVolumeGroupSnapshotResponse proto.InternalMessageInfo + +func (m *CreateVolumeGroupSnapshotResponse) GetGroupSnapshot() *VolumeGroupSnapshot { + if m != nil { + return m.GroupSnapshot + } + return nil +} + +type VolumeGroupSnapshot struct { + // The identifier for this group snapshot, generated by the plugin. + // This field MUST contain enough information to uniquely identify + // this specific snapshot vs all other group snapshots supported by + // this plugin. + // This field SHALL be used by the CO in subsequent calls to refer to + // this group snapshot. + // The SP is NOT responsible for global uniqueness of + // group_snapshot_id across multiple SPs. + // This field is REQUIRED. + GroupSnapshotId string `protobuf:"bytes,1,opt,name=group_snapshot_id,json=groupSnapshotId,proto3" json:"group_snapshot_id,omitempty"` + // A list of snapshots belonging to this group. + // This field is REQUIRED. + Snapshots []*Snapshot `protobuf:"bytes,2,rep,name=snapshots,proto3" json:"snapshots,omitempty"` + // Timestamp of when the volume group snapshot was taken. + // This field is REQUIRED. + CreationTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=creation_time,json=creationTime,proto3" json:"creation_time,omitempty"` + // Indicates if all individual snapshots in the group snapshot + // are ready to use as a `volume_content_source` in a + // `CreateVolumeRequest`. The default value is false. + // If any snapshot in the list of snapshots in this message have + // ready_to_use set to false, the SP MUST set this field to false. + // If all of the snapshots in the list of snapshots in this message + // have ready_to_use set to true, the SP SHOULD set this field to + // true. + // This field is REQUIRED. + ReadyToUse bool `protobuf:"varint,4,opt,name=ready_to_use,json=readyToUse,proto3" json:"ready_to_use,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *VolumeGroupSnapshot) Reset() { *m = VolumeGroupSnapshot{} } +func (m *VolumeGroupSnapshot) String() string { return proto.CompactTextString(m) } +func (*VolumeGroupSnapshot) ProtoMessage() {} +func (*VolumeGroupSnapshot) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{65} +} + +func (m *VolumeGroupSnapshot) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_VolumeGroupSnapshot.Unmarshal(m, b) +} +func (m *VolumeGroupSnapshot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_VolumeGroupSnapshot.Marshal(b, m, deterministic) +} +func (m *VolumeGroupSnapshot) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeGroupSnapshot.Merge(m, src) +} +func (m *VolumeGroupSnapshot) XXX_Size() int { + return xxx_messageInfo_VolumeGroupSnapshot.Size(m) +} +func (m *VolumeGroupSnapshot) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeGroupSnapshot.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeGroupSnapshot proto.InternalMessageInfo + +func (m *VolumeGroupSnapshot) GetGroupSnapshotId() string { + if m != nil { + return m.GroupSnapshotId + } + return "" +} + +func (m *VolumeGroupSnapshot) GetSnapshots() []*Snapshot { + if m != nil { + return m.Snapshots + } + return nil +} + +func (m *VolumeGroupSnapshot) GetCreationTime() *timestamp.Timestamp { + if m != nil { + return m.CreationTime + } + return nil +} + +func (m *VolumeGroupSnapshot) GetReadyToUse() bool { + if m != nil { + return m.ReadyToUse + } + return false +} + +type DeleteVolumeGroupSnapshotRequest struct { + // The ID of the group snapshot to be deleted. + // This field is REQUIRED. + GroupSnapshotId string `protobuf:"bytes,1,opt,name=group_snapshot_id,json=groupSnapshotId,proto3" json:"group_snapshot_id,omitempty"` + // A list of snapshot IDs that are part of this group snapshot. + // If SP does not need to rely on this field to delete the snapshots + // in the group, it SHOULD check this field and report an error + // if it has the ability to detect a mismatch. + // Some SPs require this list to delete the snapshots in the group. + // If SP needs to use this field to delete the snapshots in the + // group, it MUST report an error if it has the ability to detect + // a mismatch. + // This field is REQUIRED. + SnapshotIds []string `protobuf:"bytes,2,rep,name=snapshot_ids,json=snapshotIds,proto3" json:"snapshot_ids,omitempty"` + // Secrets required by plugin to complete group snapshot deletion + // request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + // The secrets provided in this field SHOULD be the same for + // all group snapshot operations on the same group snapshot. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeGroupSnapshotRequest) Reset() { *m = DeleteVolumeGroupSnapshotRequest{} } +func (m *DeleteVolumeGroupSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeGroupSnapshotRequest) ProtoMessage() {} +func (*DeleteVolumeGroupSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{66} +} + +func (m *DeleteVolumeGroupSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeGroupSnapshotRequest.Unmarshal(m, b) +} +func (m *DeleteVolumeGroupSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeGroupSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *DeleteVolumeGroupSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeGroupSnapshotRequest.Merge(m, src) +} +func (m *DeleteVolumeGroupSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeGroupSnapshotRequest.Size(m) +} +func (m *DeleteVolumeGroupSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeGroupSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeGroupSnapshotRequest proto.InternalMessageInfo + +func (m *DeleteVolumeGroupSnapshotRequest) GetGroupSnapshotId() string { + if m != nil { + return m.GroupSnapshotId + } + return "" +} + +func (m *DeleteVolumeGroupSnapshotRequest) GetSnapshotIds() []string { + if m != nil { + return m.SnapshotIds + } + return nil +} + +func (m *DeleteVolumeGroupSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type DeleteVolumeGroupSnapshotResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteVolumeGroupSnapshotResponse) Reset() { *m = DeleteVolumeGroupSnapshotResponse{} } +func (m *DeleteVolumeGroupSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*DeleteVolumeGroupSnapshotResponse) ProtoMessage() {} +func (*DeleteVolumeGroupSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{67} +} + +func (m *DeleteVolumeGroupSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteVolumeGroupSnapshotResponse.Unmarshal(m, b) +} +func (m *DeleteVolumeGroupSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteVolumeGroupSnapshotResponse.Marshal(b, m, deterministic) +} +func (m *DeleteVolumeGroupSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteVolumeGroupSnapshotResponse.Merge(m, src) +} +func (m *DeleteVolumeGroupSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_DeleteVolumeGroupSnapshotResponse.Size(m) +} +func (m *DeleteVolumeGroupSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteVolumeGroupSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteVolumeGroupSnapshotResponse proto.InternalMessageInfo + +type GetVolumeGroupSnapshotRequest struct { + // The ID of the group snapshot to fetch current group snapshot + // information for. + // This field is REQUIRED. + GroupSnapshotId string `protobuf:"bytes,1,opt,name=group_snapshot_id,json=groupSnapshotId,proto3" json:"group_snapshot_id,omitempty"` + // A list of snapshot IDs that are part of this group snapshot. + // If SP does not need to rely on this field to get the snapshots + // in the group, it SHOULD check this field and report an error + // if it has the ability to detect a mismatch. + // Some SPs require this list to get the snapshots in the group. + // If SP needs to use this field to get the snapshots in the + // group, it MUST report an error if it has the ability to detect + // a mismatch. + // This field is REQUIRED. + SnapshotIds []string `protobuf:"bytes,2,rep,name=snapshot_ids,json=snapshotIds,proto3" json:"snapshot_ids,omitempty"` + // Secrets required by plugin to complete + // GetVolumeGroupSnapshot request. + // This field is OPTIONAL. Refer to the `Secrets Requirements` + // section on how to use this field. + // The secrets provided in this field SHOULD be the same for + // all group snapshot operations on the same group snapshot. + Secrets map[string]string `protobuf:"bytes,3,rep,name=secrets,proto3" json:"secrets,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetVolumeGroupSnapshotRequest) Reset() { *m = GetVolumeGroupSnapshotRequest{} } +func (m *GetVolumeGroupSnapshotRequest) String() string { return proto.CompactTextString(m) } +func (*GetVolumeGroupSnapshotRequest) ProtoMessage() {} +func (*GetVolumeGroupSnapshotRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{68} +} + +func (m *GetVolumeGroupSnapshotRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetVolumeGroupSnapshotRequest.Unmarshal(m, b) +} +func (m *GetVolumeGroupSnapshotRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetVolumeGroupSnapshotRequest.Marshal(b, m, deterministic) +} +func (m *GetVolumeGroupSnapshotRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetVolumeGroupSnapshotRequest.Merge(m, src) +} +func (m *GetVolumeGroupSnapshotRequest) XXX_Size() int { + return xxx_messageInfo_GetVolumeGroupSnapshotRequest.Size(m) +} +func (m *GetVolumeGroupSnapshotRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GetVolumeGroupSnapshotRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GetVolumeGroupSnapshotRequest proto.InternalMessageInfo + +func (m *GetVolumeGroupSnapshotRequest) GetGroupSnapshotId() string { + if m != nil { + return m.GroupSnapshotId + } + return "" +} + +func (m *GetVolumeGroupSnapshotRequest) GetSnapshotIds() []string { + if m != nil { + return m.SnapshotIds + } + return nil +} + +func (m *GetVolumeGroupSnapshotRequest) GetSecrets() map[string]string { + if m != nil { + return m.Secrets + } + return nil +} + +type GetVolumeGroupSnapshotResponse struct { + // This field is REQUIRED + GroupSnapshot *VolumeGroupSnapshot `protobuf:"bytes,1,opt,name=group_snapshot,json=groupSnapshot,proto3" json:"group_snapshot,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetVolumeGroupSnapshotResponse) Reset() { *m = GetVolumeGroupSnapshotResponse{} } +func (m *GetVolumeGroupSnapshotResponse) String() string { return proto.CompactTextString(m) } +func (*GetVolumeGroupSnapshotResponse) ProtoMessage() {} +func (*GetVolumeGroupSnapshotResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_9cdb00adce470e01, []int{69} +} + +func (m *GetVolumeGroupSnapshotResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetVolumeGroupSnapshotResponse.Unmarshal(m, b) +} +func (m *GetVolumeGroupSnapshotResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetVolumeGroupSnapshotResponse.Marshal(b, m, deterministic) +} +func (m *GetVolumeGroupSnapshotResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetVolumeGroupSnapshotResponse.Merge(m, src) +} +func (m *GetVolumeGroupSnapshotResponse) XXX_Size() int { + return xxx_messageInfo_GetVolumeGroupSnapshotResponse.Size(m) +} +func (m *GetVolumeGroupSnapshotResponse) XXX_DiscardUnknown() { + xxx_messageInfo_GetVolumeGroupSnapshotResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_GetVolumeGroupSnapshotResponse proto.InternalMessageInfo + +func (m *GetVolumeGroupSnapshotResponse) GetGroupSnapshot() *VolumeGroupSnapshot { + if m != nil { + return m.GroupSnapshot + } + return nil +} + +var E_AlphaEnum = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1060, + Name: "csi.v1.alpha_enum", + Tag: "varint,1060,opt,name=alpha_enum", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +var E_AlphaEnumValue = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.EnumValueOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1060, + Name: "csi.v1.alpha_enum_value", + Tag: "varint,1060,opt,name=alpha_enum_value", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +var E_CsiSecret = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1059, + Name: "csi.v1.csi_secret", + Tag: "varint,1059,opt,name=csi_secret", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +var E_AlphaField = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1060, + Name: "csi.v1.alpha_field", + Tag: "varint,1060,opt,name=alpha_field", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +var E_AlphaMessage = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MessageOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1060, + Name: "csi.v1.alpha_message", + Tag: "varint,1060,opt,name=alpha_message", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +var E_AlphaMethod = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.MethodOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1060, + Name: "csi.v1.alpha_method", + Tag: "varint,1060,opt,name=alpha_method", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +var E_AlphaService = &proto.ExtensionDesc{ + ExtendedType: (*descriptor.ServiceOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 1060, + Name: "csi.v1.alpha_service", + Tag: "varint,1060,opt,name=alpha_service", + Filename: "github.com/container-storage-interface/spec/csi.proto", +} + +func init() { + proto.RegisterEnum("csi.v1.PluginCapability_Service_Type", PluginCapability_Service_Type_name, PluginCapability_Service_Type_value) + proto.RegisterEnum("csi.v1.PluginCapability_VolumeExpansion_Type", PluginCapability_VolumeExpansion_Type_name, PluginCapability_VolumeExpansion_Type_value) + proto.RegisterEnum("csi.v1.VolumeCapability_AccessMode_Mode", VolumeCapability_AccessMode_Mode_name, VolumeCapability_AccessMode_Mode_value) + proto.RegisterEnum("csi.v1.ControllerServiceCapability_RPC_Type", ControllerServiceCapability_RPC_Type_name, ControllerServiceCapability_RPC_Type_value) + proto.RegisterEnum("csi.v1.VolumeUsage_Unit", VolumeUsage_Unit_name, VolumeUsage_Unit_value) + proto.RegisterEnum("csi.v1.NodeServiceCapability_RPC_Type", NodeServiceCapability_RPC_Type_name, NodeServiceCapability_RPC_Type_value) + proto.RegisterEnum("csi.v1.GroupControllerServiceCapability_RPC_Type", GroupControllerServiceCapability_RPC_Type_name, GroupControllerServiceCapability_RPC_Type_value) + proto.RegisterType((*GetPluginInfoRequest)(nil), "csi.v1.GetPluginInfoRequest") + proto.RegisterType((*GetPluginInfoResponse)(nil), "csi.v1.GetPluginInfoResponse") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.GetPluginInfoResponse.ManifestEntry") + proto.RegisterType((*GetPluginCapabilitiesRequest)(nil), "csi.v1.GetPluginCapabilitiesRequest") + proto.RegisterType((*GetPluginCapabilitiesResponse)(nil), "csi.v1.GetPluginCapabilitiesResponse") + proto.RegisterType((*PluginCapability)(nil), "csi.v1.PluginCapability") + proto.RegisterType((*PluginCapability_Service)(nil), "csi.v1.PluginCapability.Service") + proto.RegisterType((*PluginCapability_VolumeExpansion)(nil), "csi.v1.PluginCapability.VolumeExpansion") + proto.RegisterType((*ProbeRequest)(nil), "csi.v1.ProbeRequest") + proto.RegisterType((*ProbeResponse)(nil), "csi.v1.ProbeResponse") + proto.RegisterType((*CreateVolumeRequest)(nil), "csi.v1.CreateVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateVolumeRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateVolumeRequest.SecretsEntry") + proto.RegisterType((*VolumeContentSource)(nil), "csi.v1.VolumeContentSource") + proto.RegisterType((*VolumeContentSource_SnapshotSource)(nil), "csi.v1.VolumeContentSource.SnapshotSource") + proto.RegisterType((*VolumeContentSource_VolumeSource)(nil), "csi.v1.VolumeContentSource.VolumeSource") + proto.RegisterType((*CreateVolumeResponse)(nil), "csi.v1.CreateVolumeResponse") + proto.RegisterType((*VolumeCapability)(nil), "csi.v1.VolumeCapability") + proto.RegisterType((*VolumeCapability_BlockVolume)(nil), "csi.v1.VolumeCapability.BlockVolume") + proto.RegisterType((*VolumeCapability_MountVolume)(nil), "csi.v1.VolumeCapability.MountVolume") + proto.RegisterType((*VolumeCapability_AccessMode)(nil), "csi.v1.VolumeCapability.AccessMode") + proto.RegisterType((*CapacityRange)(nil), "csi.v1.CapacityRange") + proto.RegisterType((*Volume)(nil), "csi.v1.Volume") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.Volume.VolumeContextEntry") + proto.RegisterType((*TopologyRequirement)(nil), "csi.v1.TopologyRequirement") + proto.RegisterType((*Topology)(nil), "csi.v1.Topology") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.Topology.SegmentsEntry") + proto.RegisterType((*DeleteVolumeRequest)(nil), "csi.v1.DeleteVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.DeleteVolumeRequest.SecretsEntry") + proto.RegisterType((*DeleteVolumeResponse)(nil), "csi.v1.DeleteVolumeResponse") + proto.RegisterType((*ControllerPublishVolumeRequest)(nil), "csi.v1.ControllerPublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerPublishVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerPublishVolumeRequest.VolumeContextEntry") + proto.RegisterType((*ControllerPublishVolumeResponse)(nil), "csi.v1.ControllerPublishVolumeResponse") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerPublishVolumeResponse.PublishContextEntry") + proto.RegisterType((*ControllerUnpublishVolumeRequest)(nil), "csi.v1.ControllerUnpublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerUnpublishVolumeRequest.SecretsEntry") + proto.RegisterType((*ControllerUnpublishVolumeResponse)(nil), "csi.v1.ControllerUnpublishVolumeResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesRequest)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesRequest.VolumeContextEntry") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse") + proto.RegisterType((*ValidateVolumeCapabilitiesResponse_Confirmed)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse.Confirmed") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse.Confirmed.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ValidateVolumeCapabilitiesResponse.Confirmed.VolumeContextEntry") + proto.RegisterType((*ListVolumesRequest)(nil), "csi.v1.ListVolumesRequest") + proto.RegisterType((*ListVolumesResponse)(nil), "csi.v1.ListVolumesResponse") + proto.RegisterType((*ListVolumesResponse_VolumeStatus)(nil), "csi.v1.ListVolumesResponse.VolumeStatus") + proto.RegisterType((*ListVolumesResponse_Entry)(nil), "csi.v1.ListVolumesResponse.Entry") + proto.RegisterType((*ControllerGetVolumeRequest)(nil), "csi.v1.ControllerGetVolumeRequest") + proto.RegisterType((*ControllerGetVolumeResponse)(nil), "csi.v1.ControllerGetVolumeResponse") + proto.RegisterType((*ControllerGetVolumeResponse_VolumeStatus)(nil), "csi.v1.ControllerGetVolumeResponse.VolumeStatus") + proto.RegisterType((*GetCapacityRequest)(nil), "csi.v1.GetCapacityRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.GetCapacityRequest.ParametersEntry") + proto.RegisterType((*GetCapacityResponse)(nil), "csi.v1.GetCapacityResponse") + proto.RegisterType((*ControllerGetCapabilitiesRequest)(nil), "csi.v1.ControllerGetCapabilitiesRequest") + proto.RegisterType((*ControllerGetCapabilitiesResponse)(nil), "csi.v1.ControllerGetCapabilitiesResponse") + proto.RegisterType((*ControllerServiceCapability)(nil), "csi.v1.ControllerServiceCapability") + proto.RegisterType((*ControllerServiceCapability_RPC)(nil), "csi.v1.ControllerServiceCapability.RPC") + proto.RegisterType((*CreateSnapshotRequest)(nil), "csi.v1.CreateSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateSnapshotRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateSnapshotRequest.SecretsEntry") + proto.RegisterType((*CreateSnapshotResponse)(nil), "csi.v1.CreateSnapshotResponse") + proto.RegisterType((*Snapshot)(nil), "csi.v1.Snapshot") + proto.RegisterType((*DeleteSnapshotRequest)(nil), "csi.v1.DeleteSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.DeleteSnapshotRequest.SecretsEntry") + proto.RegisterType((*DeleteSnapshotResponse)(nil), "csi.v1.DeleteSnapshotResponse") + proto.RegisterType((*ListSnapshotsRequest)(nil), "csi.v1.ListSnapshotsRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ListSnapshotsRequest.SecretsEntry") + proto.RegisterType((*ListSnapshotsResponse)(nil), "csi.v1.ListSnapshotsResponse") + proto.RegisterType((*ListSnapshotsResponse_Entry)(nil), "csi.v1.ListSnapshotsResponse.Entry") + proto.RegisterType((*ControllerExpandVolumeRequest)(nil), "csi.v1.ControllerExpandVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.ControllerExpandVolumeRequest.SecretsEntry") + proto.RegisterType((*ControllerExpandVolumeResponse)(nil), "csi.v1.ControllerExpandVolumeResponse") + proto.RegisterType((*NodeStageVolumeRequest)(nil), "csi.v1.NodeStageVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeStageVolumeRequest.PublishContextEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeStageVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeStageVolumeRequest.VolumeContextEntry") + proto.RegisterType((*NodeStageVolumeResponse)(nil), "csi.v1.NodeStageVolumeResponse") + proto.RegisterType((*NodeUnstageVolumeRequest)(nil), "csi.v1.NodeUnstageVolumeRequest") + proto.RegisterType((*NodeUnstageVolumeResponse)(nil), "csi.v1.NodeUnstageVolumeResponse") + proto.RegisterType((*NodePublishVolumeRequest)(nil), "csi.v1.NodePublishVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodePublishVolumeRequest.PublishContextEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodePublishVolumeRequest.SecretsEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodePublishVolumeRequest.VolumeContextEntry") + proto.RegisterType((*NodePublishVolumeResponse)(nil), "csi.v1.NodePublishVolumeResponse") + proto.RegisterType((*NodeUnpublishVolumeRequest)(nil), "csi.v1.NodeUnpublishVolumeRequest") + proto.RegisterType((*NodeUnpublishVolumeResponse)(nil), "csi.v1.NodeUnpublishVolumeResponse") + proto.RegisterType((*NodeGetVolumeStatsRequest)(nil), "csi.v1.NodeGetVolumeStatsRequest") + proto.RegisterType((*NodeGetVolumeStatsResponse)(nil), "csi.v1.NodeGetVolumeStatsResponse") + proto.RegisterType((*VolumeUsage)(nil), "csi.v1.VolumeUsage") + proto.RegisterType((*VolumeCondition)(nil), "csi.v1.VolumeCondition") + proto.RegisterType((*NodeGetCapabilitiesRequest)(nil), "csi.v1.NodeGetCapabilitiesRequest") + proto.RegisterType((*NodeGetCapabilitiesResponse)(nil), "csi.v1.NodeGetCapabilitiesResponse") + proto.RegisterType((*NodeServiceCapability)(nil), "csi.v1.NodeServiceCapability") + proto.RegisterType((*NodeServiceCapability_RPC)(nil), "csi.v1.NodeServiceCapability.RPC") + proto.RegisterType((*NodeGetInfoRequest)(nil), "csi.v1.NodeGetInfoRequest") + proto.RegisterType((*NodeGetInfoResponse)(nil), "csi.v1.NodeGetInfoResponse") + proto.RegisterType((*NodeExpandVolumeRequest)(nil), "csi.v1.NodeExpandVolumeRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.NodeExpandVolumeRequest.SecretsEntry") + proto.RegisterType((*NodeExpandVolumeResponse)(nil), "csi.v1.NodeExpandVolumeResponse") + proto.RegisterType((*GroupControllerGetCapabilitiesRequest)(nil), "csi.v1.GroupControllerGetCapabilitiesRequest") + proto.RegisterType((*GroupControllerGetCapabilitiesResponse)(nil), "csi.v1.GroupControllerGetCapabilitiesResponse") + proto.RegisterType((*GroupControllerServiceCapability)(nil), "csi.v1.GroupControllerServiceCapability") + proto.RegisterType((*GroupControllerServiceCapability_RPC)(nil), "csi.v1.GroupControllerServiceCapability.RPC") + proto.RegisterType((*CreateVolumeGroupSnapshotRequest)(nil), "csi.v1.CreateVolumeGroupSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateVolumeGroupSnapshotRequest.ParametersEntry") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.CreateVolumeGroupSnapshotRequest.SecretsEntry") + proto.RegisterType((*CreateVolumeGroupSnapshotResponse)(nil), "csi.v1.CreateVolumeGroupSnapshotResponse") + proto.RegisterType((*VolumeGroupSnapshot)(nil), "csi.v1.VolumeGroupSnapshot") + proto.RegisterType((*DeleteVolumeGroupSnapshotRequest)(nil), "csi.v1.DeleteVolumeGroupSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.DeleteVolumeGroupSnapshotRequest.SecretsEntry") + proto.RegisterType((*DeleteVolumeGroupSnapshotResponse)(nil), "csi.v1.DeleteVolumeGroupSnapshotResponse") + proto.RegisterType((*GetVolumeGroupSnapshotRequest)(nil), "csi.v1.GetVolumeGroupSnapshotRequest") + proto.RegisterMapType((map[string]string)(nil), "csi.v1.GetVolumeGroupSnapshotRequest.SecretsEntry") + proto.RegisterType((*GetVolumeGroupSnapshotResponse)(nil), "csi.v1.GetVolumeGroupSnapshotResponse") + proto.RegisterExtension(E_AlphaEnum) + proto.RegisterExtension(E_AlphaEnumValue) + proto.RegisterExtension(E_CsiSecret) + proto.RegisterExtension(E_AlphaField) + proto.RegisterExtension(E_AlphaMessage) + proto.RegisterExtension(E_AlphaMethod) + proto.RegisterExtension(E_AlphaService) +} + +func init() { + proto.RegisterFile("github.com/container-storage-interface/spec/csi.proto", fileDescriptor_9cdb00adce470e01) +} + +var fileDescriptor_9cdb00adce470e01 = []byte{ + // 4182 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5c, 0x4d, 0x6c, 0x1b, 0x49, + 0x76, 0x56, 0xf3, 0x4f, 0xd2, 0xa3, 0x24, 0x53, 0xa5, 0x1f, 0xd3, 0x2d, 0x59, 0x96, 0xda, 0xe3, + 0x19, 0x8d, 0xc7, 0xa6, 0x67, 0xbc, 0x33, 0x83, 0x1d, 0x8d, 0x67, 0x77, 0x48, 0x89, 0x96, 0xb8, + 0xa6, 0x49, 0x6d, 0x93, 0xf2, 0xac, 0x9d, 0x0c, 0x7a, 0x5a, 0x64, 0x49, 0x6e, 0x0c, 0xd9, 0xcd, + 0xe9, 0x6e, 0x2a, 0xd6, 0xe6, 0x90, 0x64, 0x83, 0x20, 0x1b, 0xe4, 0x12, 0x24, 0x87, 0x4c, 0x4e, + 0x59, 0x24, 0x39, 0xee, 0x62, 0x0f, 0x41, 0x10, 0x20, 0x97, 0x00, 0xb9, 0x25, 0x40, 0x90, 0x1c, + 0x93, 0x5c, 0xf6, 0x10, 0x20, 0x87, 0x45, 0x02, 0x4c, 0x2e, 0x39, 0xe4, 0x10, 0x04, 0x5d, 0x55, + 0xfd, 0xff, 0x43, 0xd2, 0x92, 0x33, 0x01, 0xf6, 0x64, 0x75, 0xd5, 0xab, 0x57, 0xaf, 0xaa, 0xde, + 0x7b, 0xf5, 0xde, 0xf7, 0x8a, 0x86, 0xf7, 0x4e, 0x15, 0xf3, 0xf9, 0xf0, 0xb8, 0xd4, 0xd1, 0xfa, + 0xf7, 0x3a, 0x9a, 0x6a, 0xca, 0x8a, 0x8a, 0xf5, 0xbb, 0x86, 0xa9, 0xe9, 0xf2, 0x29, 0xbe, 0xab, + 0xa8, 0x26, 0xd6, 0x4f, 0xe4, 0x0e, 0xbe, 0x67, 0x0c, 0x70, 0xe7, 0x5e, 0xc7, 0x50, 0x4a, 0x03, + 0x5d, 0x33, 0x35, 0x94, 0xb3, 0xfe, 0x3c, 0x7b, 0x87, 0xdf, 0x3c, 0xd5, 0xb4, 0xd3, 0x1e, 0xbe, + 0x47, 0x5a, 0x8f, 0x87, 0x27, 0xf7, 0xba, 0xd8, 0xe8, 0xe8, 0xca, 0xc0, 0xd4, 0x74, 0x4a, 0xc9, + 0xdf, 0x08, 0x52, 0x98, 0x4a, 0x1f, 0x1b, 0xa6, 0xdc, 0x1f, 0x30, 0x82, 0x8d, 0x20, 0xc1, 0xaf, + 0xe8, 0xf2, 0x60, 0x80, 0x75, 0x83, 0xf6, 0x0b, 0xab, 0xb0, 0xbc, 0x8f, 0xcd, 0xc3, 0xde, 0xf0, + 0x54, 0x51, 0x6b, 0xea, 0x89, 0x26, 0xe2, 0x2f, 0x86, 0xd8, 0x30, 0x85, 0x7f, 0xe2, 0x60, 0x25, + 0xd0, 0x61, 0x0c, 0x34, 0xd5, 0xc0, 0x08, 0x41, 0x46, 0x95, 0xfb, 0xb8, 0xc8, 0x6d, 0x72, 0xdb, + 0xb3, 0x22, 0xf9, 0x1b, 0xdd, 0x82, 0x85, 0x33, 0xac, 0x76, 0x35, 0x5d, 0x3a, 0xc3, 0xba, 0xa1, + 0x68, 0x6a, 0x31, 0x45, 0x7a, 0xe7, 0x69, 0xeb, 0x13, 0xda, 0x88, 0xf6, 0x61, 0xa6, 0x2f, 0xab, + 0xca, 0x09, 0x36, 0xcc, 0x62, 0x7a, 0x33, 0xbd, 0x9d, 0xbf, 0xff, 0x56, 0x89, 0x2e, 0xb5, 0x14, + 0x39, 0x57, 0xe9, 0x31, 0xa3, 0xae, 0xaa, 0xa6, 0x7e, 0x2e, 0x3a, 0x83, 0xf9, 0x0f, 0x61, 0xde, + 0xd7, 0x85, 0x0a, 0x90, 0xfe, 0x1c, 0x9f, 0x33, 0x99, 0xac, 0x3f, 0xd1, 0x32, 0x64, 0xcf, 0xe4, + 0xde, 0x10, 0x33, 0x49, 0xe8, 0xc7, 0x4e, 0xea, 0x9b, 0x9c, 0xb0, 0x01, 0xeb, 0xce, 0x6c, 0xbb, + 0xf2, 0x40, 0x3e, 0x56, 0x7a, 0x8a, 0xa9, 0x60, 0xc3, 0x5e, 0xfa, 0xa7, 0x70, 0x3d, 0xa6, 0x9f, + 0xed, 0xc0, 0x03, 0x98, 0xeb, 0x78, 0xda, 0x8b, 0x1c, 0x59, 0x4a, 0xd1, 0x5e, 0x4a, 0x60, 0xe4, + 0xb9, 0xe8, 0xa3, 0x16, 0xfe, 0x33, 0x0d, 0x85, 0x20, 0x09, 0x7a, 0x00, 0xd3, 0x06, 0xd6, 0xcf, + 0x94, 0x0e, 0xdd, 0xd7, 0xfc, 0xfd, 0xcd, 0x38, 0x6e, 0xa5, 0x16, 0xa5, 0x3b, 0x98, 0x12, 0xed, + 0x21, 0xe8, 0x08, 0x0a, 0x67, 0x5a, 0x6f, 0xd8, 0xc7, 0x12, 0x7e, 0x31, 0x90, 0x55, 0xe7, 0x00, + 0xf2, 0xf7, 0xb7, 0x63, 0xd9, 0x3c, 0x21, 0x03, 0xaa, 0x36, 0xfd, 0xc1, 0x94, 0x78, 0xe5, 0xcc, + 0xdf, 0xc4, 0xff, 0x15, 0x07, 0xd3, 0x6c, 0x36, 0xf4, 0x01, 0x64, 0xcc, 0xf3, 0x01, 0x95, 0x6e, + 0xe1, 0xfe, 0xad, 0x51, 0xd2, 0x95, 0xda, 0xe7, 0x03, 0x2c, 0x92, 0x21, 0x82, 0x09, 0x19, 0xeb, + 0x0b, 0xe5, 0x61, 0xfa, 0xa8, 0xf1, 0xa8, 0xd1, 0xfc, 0xa4, 0x51, 0x98, 0x42, 0xab, 0x80, 0x76, + 0x9b, 0x8d, 0xb6, 0xd8, 0xac, 0xd7, 0xab, 0xa2, 0xd4, 0xaa, 0x8a, 0x4f, 0x6a, 0xbb, 0xd5, 0x02, + 0x87, 0x5e, 0x83, 0xcd, 0x27, 0xcd, 0xfa, 0xd1, 0xe3, 0xaa, 0x54, 0xde, 0xdd, 0xad, 0xb6, 0x5a, + 0xb5, 0x4a, 0xad, 0x5e, 0x6b, 0x3f, 0x95, 0x76, 0x9b, 0x8d, 0x56, 0x5b, 0x2c, 0xd7, 0x1a, 0xed, + 0x56, 0x21, 0x85, 0xb6, 0xa0, 0xb8, 0x2f, 0x36, 0x8f, 0x0e, 0xa5, 0x08, 0x1e, 0x69, 0x3e, 0xfd, + 0xa3, 0x0a, 0xc7, 0xff, 0x80, 0x83, 0x2b, 0x81, 0x35, 0xa2, 0xb2, 0x6f, 0x11, 0x77, 0xc7, 0xdd, + 0x1b, 0xef, 0x62, 0xee, 0x44, 0x2d, 0x06, 0x20, 0xd7, 0x6c, 0xd4, 0x6b, 0x0d, 0x6b, 0x01, 0x79, + 0x98, 0x6e, 0x3e, 0x7c, 0x48, 0x3e, 0x52, 0x95, 0x1c, 0x9d, 0x50, 0x58, 0x80, 0xb9, 0x43, 0x5d, + 0x3b, 0xc6, 0xb6, 0x8a, 0x95, 0x61, 0x9e, 0x7d, 0x33, 0x95, 0x7a, 0x1b, 0xb2, 0x3a, 0x96, 0xbb, + 0xe7, 0xec, 0xf4, 0xf9, 0x12, 0x35, 0xdb, 0x92, 0x6d, 0xb6, 0xa5, 0x8a, 0xa6, 0xf5, 0x9e, 0x58, + 0x2a, 0x2c, 0x52, 0x42, 0xe1, 0xab, 0x0c, 0x2c, 0xed, 0xea, 0x58, 0x36, 0x31, 0x95, 0x96, 0xb1, + 0x8e, 0x34, 0xcf, 0x07, 0xb0, 0x60, 0xa9, 0x60, 0x47, 0x31, 0xcf, 0x25, 0x5d, 0x56, 0x4f, 0x31, + 0xd3, 0x8e, 0x15, 0x7b, 0x07, 0x76, 0x59, 0xaf, 0x68, 0x75, 0x8a, 0xf3, 0x1d, 0xef, 0x27, 0xaa, + 0xc1, 0x12, 0xd3, 0x2e, 0x9f, 0xd6, 0xa7, 0xfd, 0x5a, 0x4f, 0xa5, 0xf0, 0x68, 0x3d, 0x3a, 0xf3, + 0xb7, 0x28, 0xd8, 0x40, 0x8f, 0x00, 0x06, 0xb2, 0x2e, 0xf7, 0xb1, 0x89, 0x75, 0xa3, 0x98, 0xf1, + 0xbb, 0x80, 0x88, 0xd5, 0x94, 0x0e, 0x1d, 0x6a, 0xea, 0x02, 0x3c, 0xc3, 0xd1, 0xbe, 0x65, 0x33, + 0x1d, 0x1d, 0x9b, 0x46, 0x31, 0x4b, 0x38, 0x6d, 0x27, 0x71, 0x6a, 0x51, 0x52, 0xc2, 0xa6, 0x92, + 0xfe, 0xb2, 0xc2, 0x89, 0xf6, 0x68, 0xd4, 0x84, 0x15, 0x7b, 0x81, 0x9a, 0x6a, 0x62, 0xd5, 0x94, + 0x0c, 0x6d, 0xa8, 0x77, 0x70, 0x31, 0x47, 0x76, 0x69, 0x2d, 0xb0, 0x44, 0x4a, 0xd3, 0x22, 0x24, + 0x22, 0xdb, 0x1a, 0x5f, 0x23, 0x7a, 0x06, 0xbc, 0xdc, 0xe9, 0x60, 0xc3, 0x50, 0xe8, 0x5e, 0x48, + 0x3a, 0xfe, 0x62, 0xa8, 0xe8, 0xb8, 0x8f, 0x55, 0xd3, 0x28, 0x4e, 0xfb, 0xb9, 0xb6, 0xb5, 0x81, + 0xd6, 0xd3, 0x4e, 0xcf, 0x45, 0x97, 0x46, 0xbc, 0xe6, 0x1b, 0xee, 0xe9, 0x31, 0xf8, 0x8f, 0xe0, + 0x4a, 0x60, 0x53, 0x26, 0x71, 0x7e, 0xfc, 0x0e, 0xcc, 0x79, 0x77, 0x62, 0x22, 0xc7, 0xf9, 0xbb, + 0x29, 0x58, 0x8a, 0xd8, 0x03, 0x74, 0x00, 0x33, 0x86, 0x2a, 0x0f, 0x8c, 0xe7, 0x9a, 0xc9, 0xf4, + 0xf7, 0x76, 0xc2, 0x96, 0x95, 0x5a, 0x8c, 0x96, 0x7e, 0x1e, 0x4c, 0x89, 0xce, 0x68, 0x54, 0x81, + 0x1c, 0xdd, 0xcf, 0xa0, 0xfb, 0x8a, 0xe2, 0x43, 0xdb, 0x1c, 0x2e, 0x6c, 0x24, 0xff, 0x0e, 0x2c, + 0xf8, 0x67, 0x40, 0x37, 0x20, 0x6f, 0xcf, 0x20, 0x29, 0x5d, 0xb6, 0x56, 0xb0, 0x9b, 0x6a, 0x5d, + 0xfe, 0x2d, 0x98, 0xf3, 0x32, 0x43, 0x6b, 0x30, 0xcb, 0x14, 0xc2, 0x21, 0x9f, 0xa1, 0x0d, 0xb5, + 0xae, 0x63, 0xd3, 0xdf, 0x82, 0x65, 0xbf, 0x9e, 0x31, 0x53, 0x7e, 0xdd, 0x59, 0x03, 0xdd, 0x8b, + 0x05, 0xff, 0x1a, 0x6c, 0x39, 0x85, 0x3f, 0xce, 0x42, 0x21, 0x68, 0x34, 0xe8, 0x01, 0x64, 0x8f, + 0x7b, 0x5a, 0xe7, 0x73, 0x36, 0xf6, 0xb5, 0x38, 0xeb, 0x2a, 0x55, 0x2c, 0x2a, 0xda, 0x7a, 0x30, + 0x25, 0xd2, 0x41, 0xd6, 0xe8, 0xbe, 0x36, 0x54, 0x4d, 0xb6, 0x7b, 0xf1, 0xa3, 0x1f, 0x5b, 0x54, + 0xee, 0x68, 0x32, 0x08, 0xed, 0x41, 0x9e, 0xaa, 0x9d, 0xd4, 0xd7, 0xba, 0xb8, 0x98, 0x26, 0x3c, + 0x6e, 0xc6, 0xf2, 0x28, 0x13, 0xda, 0xc7, 0x5a, 0x17, 0x8b, 0x20, 0x3b, 0x7f, 0xf3, 0xf3, 0x90, + 0xf7, 0xc8, 0xc6, 0x0f, 0x21, 0xef, 0x99, 0x0c, 0x5d, 0x85, 0xe9, 0x13, 0x43, 0x72, 0x9c, 0xf0, + 0xac, 0x98, 0x3b, 0x31, 0x88, 0x3f, 0xbd, 0x01, 0x79, 0x22, 0x85, 0x74, 0xd2, 0x93, 0x4f, 0x8d, + 0x62, 0x6a, 0x33, 0x6d, 0x9d, 0x11, 0x69, 0x7a, 0x68, 0xb5, 0xa0, 0x3b, 0xc0, 0x1c, 0x8a, 0x44, + 0xe9, 0x4e, 0x75, 0x6d, 0x38, 0x20, 0x42, 0xce, 0x8a, 0xec, 0xf6, 0x23, 0x13, 0xed, 0x5b, 0xed, + 0xfc, 0x9f, 0xa7, 0x00, 0x5c, 0x01, 0xd1, 0x03, 0xc8, 0x90, 0x35, 0x51, 0xc7, 0xbf, 0x3d, 0xc6, + 0x9a, 0x4a, 0x64, 0x61, 0x64, 0x94, 0xf0, 0x6f, 0x1c, 0x64, 0x08, 0x9b, 0xe0, 0x0d, 0xd6, 0xaa, + 0x35, 0xf6, 0xeb, 0x55, 0xa9, 0xd1, 0xdc, 0xab, 0x4a, 0x9f, 0x88, 0xb5, 0x76, 0x55, 0x2c, 0x70, + 0x68, 0x0d, 0xae, 0x7a, 0xdb, 0xc5, 0x6a, 0x79, 0xaf, 0x2a, 0x4a, 0xcd, 0x46, 0xfd, 0x69, 0x21, + 0x85, 0x78, 0x58, 0x7d, 0x7c, 0x54, 0x6f, 0xd7, 0xc2, 0x7d, 0x69, 0xb4, 0x0e, 0x45, 0x4f, 0x1f, + 0xe3, 0xc1, 0xd8, 0x66, 0x2c, 0xb6, 0x9e, 0x5e, 0xfa, 0x27, 0xeb, 0xcc, 0x22, 0x01, 0xae, 0x79, + 0xe7, 0xf4, 0x8f, 0xcd, 0x91, 0x0b, 0xd1, 0xba, 0x33, 0xbd, 0x34, 0x3e, 0x0e, 0xd3, 0x84, 0xa4, + 0x32, 0xef, 0x68, 0x00, 0xd1, 0xf0, 0x4f, 0x60, 0xde, 0x77, 0x31, 0x58, 0x61, 0x1e, 0xf3, 0x64, + 0x5d, 0xe9, 0xf8, 0xdc, 0x24, 0xa1, 0x0f, 0xb7, 0x9d, 0x16, 0xe7, 0xed, 0xd6, 0x8a, 0xd5, 0x68, + 0x9d, 0x65, 0x4f, 0xe9, 0x2b, 0x26, 0xa3, 0x49, 0x11, 0x1a, 0x20, 0x4d, 0x84, 0x40, 0xf8, 0x59, + 0x0a, 0x72, 0x4c, 0x21, 0x6e, 0x79, 0xae, 0x26, 0x1f, 0x4b, 0xbb, 0x95, 0xb2, 0xf4, 0x59, 0x64, + 0xca, 0x6f, 0x91, 0xe8, 0x00, 0x16, 0xbc, 0xfe, 0xfb, 0x85, 0x1d, 0x5c, 0x6e, 0xf9, 0xcf, 0xd9, + 0xeb, 0x44, 0x5e, 0xb0, 0x90, 0x72, 0xfe, 0xcc, 0xdb, 0x86, 0x2a, 0xb0, 0x10, 0xb8, 0x02, 0x32, + 0xa3, 0xaf, 0x80, 0xf9, 0x8e, 0xcf, 0x1b, 0x96, 0x61, 0xc9, 0xf6, 0xde, 0x3d, 0x2c, 0x99, 0xcc, + 0xbb, 0xb3, 0x2b, 0xaa, 0x10, 0xf2, 0xfa, 0xc8, 0x25, 0xb6, 0xdb, 0xf8, 0x8f, 0x01, 0x85, 0x65, + 0x9d, 0xc8, 0x55, 0x0f, 0x61, 0x29, 0xe2, 0x5e, 0x41, 0x25, 0x98, 0x25, 0x47, 0x65, 0x28, 0x26, + 0x66, 0x61, 0x6b, 0x58, 0x22, 0x97, 0xc4, 0xa2, 0x1f, 0xe8, 0xf8, 0x04, 0xeb, 0x3a, 0xee, 0x12, + 0x9b, 0x8c, 0xa4, 0x77, 0x48, 0x84, 0xdf, 0xe4, 0x60, 0xc6, 0x6e, 0x47, 0x3b, 0x30, 0x63, 0xe0, + 0x53, 0x7a, 0xe7, 0xd1, 0xb9, 0x36, 0x82, 0x63, 0x4b, 0x2d, 0x46, 0xc0, 0x02, 0x7c, 0x9b, 0xde, + 0x0a, 0xf0, 0x7d, 0x5d, 0x13, 0x2d, 0xfe, 0x2f, 0x39, 0x58, 0xda, 0xc3, 0x3d, 0x1c, 0x0c, 0x8d, + 0x92, 0xdc, 0xba, 0x37, 0x9a, 0x48, 0xf9, 0xa3, 0x89, 0x08, 0x56, 0x09, 0xd1, 0xc4, 0x85, 0x6e, + 0xd8, 0x55, 0x58, 0xf6, 0xcf, 0x46, 0xef, 0x14, 0xe1, 0x3f, 0xd2, 0xb0, 0x61, 0xe9, 0x82, 0xae, + 0xf5, 0x7a, 0x58, 0x3f, 0x1c, 0x1e, 0xf7, 0x14, 0xe3, 0xf9, 0x04, 0x8b, 0xbb, 0x0a, 0xd3, 0xaa, + 0xd6, 0xf5, 0x18, 0x4f, 0xce, 0xfa, 0xac, 0x75, 0x51, 0x15, 0x16, 0x83, 0xb1, 0xdd, 0x39, 0xf3, + 0xfc, 0xf1, 0x91, 0x5d, 0xe1, 0x2c, 0x78, 0x6d, 0xf1, 0x30, 0x63, 0x45, 0xa5, 0x9a, 0xda, 0x3b, + 0x27, 0x16, 0x33, 0x23, 0x3a, 0xdf, 0x48, 0x0c, 0x86, 0x69, 0xdf, 0x70, 0xc2, 0xb4, 0xc4, 0x15, + 0x25, 0x45, 0x6c, 0x9f, 0x85, 0x2c, 0x3e, 0x47, 0x58, 0x7f, 0x30, 0x26, 0xeb, 0x91, 0x9e, 0xe0, + 0x22, 0xa7, 0x78, 0x09, 0xe6, 0xfb, 0x77, 0x1c, 0xdc, 0x88, 0x5d, 0x02, 0x8b, 0x33, 0xba, 0x70, + 0x65, 0x40, 0x3b, 0x9c, 0x4d, 0xa0, 0x56, 0xf6, 0xe1, 0xc8, 0x4d, 0x60, 0xd9, 0x35, 0x6b, 0xf5, + 0x6d, 0xc3, 0xc2, 0xc0, 0xd7, 0xc8, 0x97, 0x61, 0x29, 0x82, 0x6c, 0xa2, 0xc5, 0xfc, 0x9c, 0x83, + 0x4d, 0x57, 0x94, 0x23, 0x75, 0x70, 0x79, 0xea, 0xdb, 0x76, 0x75, 0x8b, 0xba, 0xfc, 0xf7, 0xc2, + 0x6b, 0x8f, 0x9e, 0xf0, 0x55, 0x59, 0xf0, 0x4d, 0xd8, 0x4a, 0x98, 0x9a, 0x99, 0xf3, 0xcf, 0x32, + 0xb0, 0xf5, 0x44, 0xee, 0x29, 0x5d, 0x27, 0x7a, 0x8c, 0xc0, 0x21, 0x92, 0xb7, 0xa4, 0x13, 0xb2, + 0x00, 0xea, 0xb5, 0x1e, 0x38, 0x56, 0x3b, 0x8a, 0xff, 0x18, 0xd7, 0xe1, 0x25, 0x66, 0x7e, 0x4f, + 0x23, 0x32, 0xbf, 0x0f, 0xc6, 0x97, 0x35, 0x29, 0x0f, 0x3c, 0x0a, 0x3a, 0x98, 0xf7, 0xc7, 0xe7, + 0x9b, 0xa0, 0x05, 0x17, 0xb6, 0xe2, 0xaf, 0x33, 0x55, 0xfb, 0x9b, 0x0c, 0x08, 0x49, 0xab, 0x67, + 0x3e, 0x44, 0x84, 0xd9, 0x8e, 0xa6, 0x9e, 0x28, 0x7a, 0x1f, 0x77, 0x59, 0xca, 0xf1, 0xee, 0x38, + 0x9b, 0xc7, 0x1c, 0xc8, 0xae, 0x3d, 0x56, 0x74, 0xd9, 0xa0, 0x22, 0x4c, 0xf7, 0xb1, 0x61, 0xc8, + 0xa7, 0xb6, 0x58, 0xf6, 0x27, 0xff, 0x93, 0x34, 0xcc, 0x3a, 0x43, 0x90, 0x1a, 0xd2, 0x60, 0xea, + 0xbe, 0xf6, 0x5f, 0x46, 0x80, 0x97, 0x57, 0xe6, 0xd4, 0x4b, 0x28, 0x73, 0xd7, 0xa7, 0xcc, 0xd4, + 0x1c, 0xf6, 0x5e, 0x4a, 0xec, 0x04, 0xbd, 0xfe, 0xda, 0x15, 0x50, 0xf8, 0x65, 0x40, 0x75, 0xc5, + 0x60, 0xa9, 0x9b, 0xe3, 0x96, 0xac, 0x4c, 0x4d, 0x7e, 0x21, 0x61, 0xd5, 0xd4, 0x15, 0x16, 0xae, + 0x67, 0x45, 0xe8, 0xcb, 0x2f, 0xaa, 0xb4, 0xc5, 0x0a, 0xe9, 0x0d, 0x53, 0xd6, 0x4d, 0x45, 0x3d, + 0x95, 0x4c, 0xed, 0x73, 0xec, 0x80, 0xc1, 0x76, 0x6b, 0xdb, 0x6a, 0x14, 0xfe, 0x3d, 0x05, 0x4b, + 0x3e, 0xf6, 0x4c, 0x27, 0x3f, 0x84, 0x69, 0x97, 0xb7, 0x2f, 0x8c, 0x8f, 0xa0, 0x2e, 0xd1, 0x6d, + 0xb3, 0x47, 0xa0, 0xeb, 0x00, 0x2a, 0x7e, 0x61, 0xfa, 0xe6, 0x9d, 0xb5, 0x5a, 0xc8, 0x9c, 0xfc, + 0x6f, 0x71, 0x4e, 0xa6, 0x6f, 0xca, 0xe6, 0x90, 0x64, 0x95, 0xcc, 0x45, 0xe3, 0xae, 0xc4, 0xee, + 0x18, 0x3a, 0xef, 0xac, 0x58, 0x70, 0x7a, 0x1a, 0xe4, 0xb6, 0x31, 0xd0, 0xbe, 0x83, 0xb3, 0x76, + 0x34, 0xb5, 0xab, 0x98, 0x2e, 0xce, 0x7a, 0x35, 0x94, 0x20, 0xd0, 0xee, 0x8a, 0x95, 0x57, 0xd9, + 0xc8, 0xaa, 0xd3, 0xca, 0x7f, 0x01, 0x59, 0x7a, 0x1c, 0x63, 0x82, 0x05, 0xe8, 0x63, 0xc8, 0x19, + 0x44, 0xe2, 0x20, 0x30, 0x12, 0xb5, 0x27, 0xde, 0x15, 0x8a, 0x6c, 0x9c, 0xf0, 0x2d, 0xe0, 0xdd, + 0x8b, 0x69, 0x1f, 0x9b, 0xe3, 0x5f, 0xbf, 0x3b, 0xd6, 0x1a, 0x84, 0x3f, 0x4c, 0xc1, 0x5a, 0x24, + 0x83, 0xc9, 0x60, 0x0f, 0x74, 0x10, 0x58, 0xc9, 0xdb, 0xe1, 0x1b, 0x3b, 0xc4, 0x3c, 0x72, 0x45, + 0xfc, 0xaf, 0x5f, 0xec, 0x30, 0x2b, 0x13, 0x1f, 0x66, 0xe8, 0x1c, 0xe9, 0xce, 0xfc, 0x24, 0x05, + 0x68, 0x1f, 0x9b, 0x4e, 0xaa, 0xcc, 0xb6, 0x34, 0xc6, 0xdf, 0x70, 0x2f, 0xe1, 0x6f, 0xbe, 0xe3, + 0xf3, 0x37, 0xd4, 0x63, 0xdd, 0xf6, 0x54, 0x4e, 0x02, 0x53, 0x27, 0xde, 0x96, 0x31, 0xe9, 0x29, + 0x8d, 0xf9, 0xc7, 0x4b, 0x4f, 0x2f, 0xe8, 0x56, 0xfe, 0x95, 0x83, 0x25, 0x9f, 0xd0, 0x4c, 0x83, + 0xee, 0x02, 0x92, 0xcf, 0x64, 0xa5, 0x27, 0x5b, 0x82, 0xd9, 0xe9, 0x3f, 0x83, 0x03, 0x16, 0x9d, + 0x1e, 0x7b, 0x18, 0x7a, 0x04, 0x4b, 0x7d, 0xf9, 0x85, 0xd2, 0x1f, 0xf6, 0x25, 0xb6, 0xcf, 0x86, + 0xf2, 0x7d, 0x1b, 0x38, 0x5c, 0x0b, 0x01, 0xe8, 0x35, 0xd5, 0x7c, 0xff, 0x5d, 0x8a, 0xa0, 0x2f, + 0xb2, 0x71, 0x4c, 0x79, 0x94, 0xef, 0x63, 0x74, 0x08, 0x4b, 0x7d, 0x45, 0x0d, 0x31, 0x4b, 0x8f, + 0x64, 0x46, 0x0d, 0x7c, 0x91, 0x0d, 0x76, 0x39, 0x0a, 0x82, 0x37, 0xe8, 0x65, 0xcb, 0x0d, 0x56, + 0x9a, 0x7a, 0xde, 0x60, 0x31, 0x44, 0xc3, 0xb6, 0x65, 0x3f, 0xb2, 0xda, 0x74, 0x33, 0x6c, 0x36, + 0xac, 0xf4, 0x12, 0x5b, 0x78, 0xfa, 0x9f, 0xb4, 0xd7, 0x82, 0x43, 0xd4, 0xe8, 0x43, 0x48, 0xeb, + 0x83, 0x0e, 0x33, 0xdf, 0x37, 0xc6, 0xe0, 0x5f, 0x12, 0x0f, 0x77, 0x0f, 0xa6, 0x44, 0x6b, 0x14, + 0xff, 0x47, 0x69, 0x48, 0x8b, 0x87, 0xbb, 0xe8, 0x63, 0x5f, 0x89, 0xe5, 0xce, 0x98, 0x5c, 0xbc, + 0x15, 0x96, 0x7f, 0x48, 0x45, 0x95, 0x58, 0x8a, 0xb0, 0xbc, 0x2b, 0x56, 0xcb, 0xed, 0xaa, 0xb4, + 0x57, 0xad, 0x57, 0xdb, 0x55, 0x89, 0x56, 0x89, 0x0a, 0x1c, 0x5a, 0x87, 0xe2, 0xe1, 0x51, 0xa5, + 0x5e, 0x6b, 0x1d, 0x48, 0x47, 0x0d, 0xfb, 0x2f, 0xd6, 0x9b, 0x42, 0x05, 0x98, 0xab, 0xd7, 0x5a, + 0x6d, 0xd6, 0xd0, 0x2a, 0xa4, 0xad, 0x96, 0xfd, 0x6a, 0x5b, 0xda, 0x2d, 0x1f, 0x96, 0x77, 0x6b, + 0xed, 0xa7, 0x85, 0x0c, 0xe2, 0x61, 0xd5, 0xcf, 0xbb, 0xd5, 0x28, 0x1f, 0xb6, 0x0e, 0x9a, 0xed, + 0x42, 0x16, 0x21, 0x58, 0x20, 0xe3, 0xed, 0xa6, 0x56, 0x21, 0x67, 0x71, 0xd8, 0xad, 0x37, 0x1b, + 0x8e, 0x0c, 0xd3, 0x68, 0x19, 0x0a, 0xf6, 0xcc, 0x62, 0xb5, 0xbc, 0x47, 0x00, 0xbd, 0x19, 0xb4, + 0x08, 0xf3, 0xd5, 0xef, 0x1d, 0x96, 0x1b, 0x7b, 0x36, 0xe1, 0x2c, 0xda, 0x84, 0x75, 0xaf, 0x38, + 0x12, 0x1b, 0x55, 0xdd, 0x23, 0xa0, 0x5c, 0xab, 0x00, 0xe8, 0x1a, 0x14, 0x58, 0x01, 0x6c, 0xb7, + 0xd9, 0xd8, 0xab, 0xb5, 0x6b, 0xcd, 0x46, 0x21, 0x4f, 0x11, 0xbc, 0x25, 0x00, 0x4b, 0x72, 0xc6, + 0x6c, 0x6e, 0x34, 0xac, 0x37, 0x4f, 0x61, 0x3d, 0x1b, 0xb1, 0xfe, 0x79, 0x0a, 0x56, 0x28, 0x64, + 0x6d, 0x03, 0xe4, 0xb6, 0xaf, 0xda, 0x86, 0x02, 0xc5, 0xbb, 0xa4, 0xe0, 0x2d, 0xb0, 0x40, 0xdb, + 0x9f, 0xd8, 0x79, 0x87, 0x5d, 0x5e, 0x4a, 0x79, 0xca, 0x4b, 0xb5, 0x60, 0x16, 0x76, 0xdb, 0x5f, + 0x88, 0x09, 0xcc, 0x96, 0x94, 0xd8, 0x3f, 0x8e, 0x48, 0x13, 0xee, 0x26, 0x73, 0x4b, 0x0a, 0xa1, + 0x2e, 0x92, 0xc5, 0x5f, 0xd0, 0xcb, 0x3d, 0x84, 0xd5, 0xa0, 0xbc, 0xcc, 0xa0, 0xef, 0x84, 0xca, + 0x25, 0x8e, 0xdb, 0x75, 0x68, 0x1d, 0x0a, 0xe1, 0x87, 0x29, 0x98, 0xb1, 0x9b, 0xad, 0xf0, 0xc6, + 0xf2, 0x4b, 0x3e, 0xa4, 0x74, 0xd6, 0x6a, 0x71, 0x80, 0x57, 0x6f, 0xa1, 0x23, 0x15, 0x2c, 0x74, + 0x44, 0x9e, 0x73, 0x3a, 0xf2, 0x9c, 0xbf, 0x0d, 0xf3, 0x1d, 0x4b, 0x7c, 0x45, 0x53, 0x25, 0x53, + 0xe9, 0xdb, 0x40, 0x68, 0xb8, 0x30, 0xd9, 0xb6, 0x1f, 0x1c, 0x88, 0x73, 0xf6, 0x00, 0xab, 0x09, + 0x6d, 0xc2, 0x1c, 0x29, 0x54, 0x4a, 0xa6, 0x26, 0x0d, 0x0d, 0x5c, 0xcc, 0x12, 0x58, 0x08, 0x48, + 0x5b, 0x5b, 0x3b, 0x32, 0x30, 0xba, 0x07, 0x8b, 0x04, 0xc4, 0x97, 0xbc, 0x32, 0xe7, 0x2c, 0x69, + 0x58, 0xd4, 0x44, 0x7a, 0x5b, 0x8e, 0xf4, 0xc2, 0x5f, 0x73, 0xb0, 0x42, 0xe1, 0xb1, 0xa0, 0xfe, + 0x8e, 0xaa, 0xf0, 0x78, 0x55, 0x34, 0x70, 0x7d, 0x46, 0x32, 0x7c, 0x55, 0xe8, 0x40, 0x11, 0x56, + 0x83, 0xf3, 0x31, 0x48, 0xe0, 0xa7, 0x29, 0x58, 0xb6, 0x62, 0x39, 0xbb, 0xe3, 0xb2, 0xc3, 0xed, + 0x09, 0x8e, 0x3e, 0xb0, 0x99, 0x99, 0xd0, 0x66, 0x1e, 0x04, 0x13, 0xee, 0x37, 0xbd, 0xd1, 0x68, + 0x70, 0x05, 0xaf, 0x6a, 0x2f, 0x7f, 0xcc, 0xc1, 0x4a, 0x60, 0x3e, 0x66, 0x60, 0x1f, 0x05, 0x33, + 0x88, 0x9b, 0x31, 0xf2, 0xbd, 0x54, 0x0e, 0xf1, 0x9e, 0x1d, 0xbb, 0x4f, 0x66, 0xc7, 0xff, 0x98, + 0x82, 0xeb, 0xee, 0x2d, 0x48, 0xde, 0x16, 0x74, 0x27, 0x80, 0xc0, 0x2e, 0x56, 0xc2, 0xff, 0x6e, + 0xd0, 0x43, 0xdf, 0x0f, 0x5f, 0xcc, 0x11, 0x22, 0x25, 0x79, 0xea, 0x48, 0xe4, 0x38, 0x33, 0x29, + 0x72, 0x7c, 0x21, 0x0d, 0xf8, 0x35, 0x2f, 0x28, 0xee, 0x17, 0x9f, 0x69, 0xc2, 0x98, 0xd5, 0xa5, + 0xf7, 0xe1, 0x2a, 0x49, 0x17, 0x9c, 0xd7, 0x33, 0x76, 0xc1, 0x9e, 0xfa, 0xd0, 0x19, 0x71, 0xc5, + 0xea, 0x76, 0xde, 0x83, 0xb0, 0x8a, 0x4a, 0x57, 0xf8, 0x2a, 0x03, 0xab, 0x56, 0x3a, 0xd1, 0x32, + 0xe5, 0xd3, 0x49, 0x6a, 0x0d, 0xbf, 0x14, 0x86, 0x6e, 0x53, 0xfe, 0x63, 0x89, 0xe6, 0x3a, 0x0e, + 0x62, 0x8b, 0x4a, 0xb0, 0x64, 0x98, 0xf2, 0x29, 0x71, 0x07, 0xb2, 0x7e, 0x8a, 0x4d, 0x69, 0x20, + 0x9b, 0xcf, 0x99, 0xad, 0x2f, 0xb2, 0xae, 0x36, 0xe9, 0x39, 0x94, 0xcd, 0xe7, 0x97, 0x74, 0x90, + 0xe8, 0x3b, 0x41, 0xa7, 0xf0, 0xd6, 0x88, 0xb5, 0x24, 0xe8, 0xd6, 0xf7, 0x62, 0xe0, 0xfd, 0x77, + 0x46, 0xb0, 0x1c, 0x0d, 0xeb, 0x5f, 0x1c, 0xce, 0xfe, 0x9a, 0x2b, 0x03, 0xd7, 0xe0, 0x6a, 0x68, + 0xf1, 0xec, 0x0a, 0x39, 0x85, 0xa2, 0xd5, 0x75, 0xa4, 0x1a, 0x13, 0xaa, 0x63, 0x8c, 0xc6, 0xa4, + 0x62, 0x34, 0x46, 0x58, 0x83, 0x6b, 0x11, 0x13, 0x31, 0x29, 0xfe, 0x22, 0x4b, 0xc5, 0x98, 0xbc, + 0x48, 0xf5, 0x69, 0x9c, 0x55, 0xbc, 0xeb, 0x3d, 0xf6, 0xc8, 0x7a, 0xce, 0xab, 0xb0, 0x8b, 0x1b, + 0x90, 0xf7, 0xd2, 0xb1, 0x6b, 0xd0, 0x1c, 0x61, 0x38, 0xd9, 0x0b, 0xd5, 0xce, 0x72, 0x81, 0xda, + 0x59, 0xdd, 0x35, 0xaa, 0x69, 0x7f, 0x2c, 0x1c, 0xbb, 0x15, 0x09, 0x66, 0xf5, 0x2c, 0x64, 0x56, + 0x33, 0xfe, 0x82, 0x5c, 0x2c, 0xd3, 0x5f, 0x00, 0xc3, 0x62, 0x4a, 0x1d, 0x59, 0x29, 0x13, 0x9e, + 0x01, 0x4f, 0x35, 0x7e, 0xf2, 0xda, 0x55, 0x40, 0x8d, 0x52, 0x41, 0x35, 0x12, 0xae, 0xc3, 0x5a, + 0x24, 0x6f, 0x36, 0xf5, 0xef, 0x70, 0x54, 0x30, 0x07, 0x14, 0x6b, 0x99, 0xb2, 0x69, 0x8c, 0x3b, + 0x35, 0xeb, 0xf4, 0x4e, 0x4d, 0x9b, 0x88, 0x06, 0x4f, 0x68, 0x12, 0xc2, 0xef, 0x71, 0x74, 0x1f, + 0x82, 0xb2, 0xb0, 0xdb, 0xf6, 0x4d, 0xc8, 0x0e, 0x09, 0xee, 0x4f, 0xa3, 0xae, 0x25, 0xbf, 0x11, + 0x1c, 0x59, 0x5d, 0x22, 0xa5, 0xb8, 0x34, 0x24, 0x55, 0xf8, 0x29, 0x07, 0x79, 0x0f, 0x7f, 0xb4, + 0x0e, 0xb3, 0x0e, 0x54, 0x64, 0x27, 0x48, 0x4e, 0x83, 0x75, 0xfc, 0xa6, 0x66, 0xca, 0x3d, 0xf6, + 0x26, 0x85, 0x7e, 0x58, 0x39, 0xed, 0xd0, 0xc0, 0x34, 0x1c, 0x4e, 0x8b, 0xe4, 0x6f, 0x74, 0x07, + 0x32, 0x43, 0x55, 0x31, 0x89, 0xd9, 0x2f, 0x04, 0xed, 0x99, 0x4c, 0x55, 0x3a, 0x52, 0x15, 0x53, + 0x24, 0x54, 0xc2, 0x6d, 0xc8, 0x58, 0x5f, 0x7e, 0xc8, 0x62, 0x16, 0xb2, 0x95, 0xa7, 0xed, 0x6a, + 0xab, 0xc0, 0x21, 0x80, 0x5c, 0x8d, 0x26, 0xf8, 0x29, 0xa1, 0x6e, 0xbf, 0x4b, 0x75, 0x16, 0x61, + 0xb9, 0x00, 0xf9, 0x58, 0xd5, 0xf4, 0xbe, 0xdc, 0x23, 0x32, 0xcf, 0x88, 0xce, 0x77, 0x7c, 0x39, + 0x85, 0x82, 0x8f, 0xeb, 0xce, 0x89, 0x44, 0x01, 0x4c, 0x9f, 0x51, 0xdd, 0x8a, 0x83, 0x96, 0xca, + 0x91, 0xd0, 0xd2, 0x75, 0xdf, 0x2d, 0x3b, 0x02, 0x54, 0xfa, 0xdb, 0x14, 0xac, 0x44, 0xd2, 0xa1, + 0xf7, 0xbc, 0x70, 0xd2, 0x56, 0x22, 0x4f, 0x2f, 0x90, 0xf4, 0x15, 0x47, 0x81, 0xa4, 0x1d, 0x1f, + 0x90, 0xf4, 0xfa, 0xc8, 0xf1, 0x5e, 0x08, 0xe9, 0xc7, 0x5c, 0x0c, 0x84, 0xd4, 0x6a, 0x97, 0xf7, + 0xab, 0xd2, 0x51, 0x83, 0xfe, 0xeb, 0x40, 0x48, 0xcb, 0x50, 0x70, 0x81, 0x15, 0xa9, 0xd5, 0x2e, + 0x93, 0x47, 0xc6, 0x21, 0xf8, 0x26, 0x1d, 0x09, 0xce, 0x64, 0x46, 0xe3, 0x30, 0x59, 0x4a, 0xb2, + 0x0a, 0x88, 0x8d, 0x7e, 0xdc, 0x3c, 0x6a, 0xb4, 0x25, 0xf2, 0x84, 0xb9, 0x90, 0x73, 0xf0, 0x99, + 0x65, 0x40, 0xec, 0xb4, 0xbc, 0x2f, 0xf1, 0xff, 0x84, 0x83, 0x25, 0x5f, 0x33, 0x3b, 0x3c, 0x4f, + 0x51, 0x9c, 0xf3, 0x15, 0xc5, 0xef, 0xc1, 0xb2, 0x95, 0x31, 0x52, 0x4b, 0x31, 0xa4, 0x01, 0xd6, + 0x09, 0x18, 0xce, 0x74, 0x7e, 0xb1, 0x2f, 0xbf, 0x60, 0x05, 0x83, 0x43, 0xac, 0x5b, 0x8c, 0x2f, + 0x01, 0x12, 0x16, 0xbe, 0x4c, 0xd3, 0xb8, 0x64, 0xe2, 0xbc, 0x66, 0xa4, 0x8f, 0x0a, 0x27, 0x3e, + 0xe9, 0x09, 0x12, 0x9f, 0x18, 0x0f, 0x97, 0x99, 0x28, 0x18, 0x9e, 0xfc, 0x4e, 0x6f, 0xb8, 0xf7, + 0x36, 0x8d, 0x5c, 0xef, 0x78, 0xf5, 0x77, 0x64, 0xa6, 0x95, 0xfb, 0xb2, 0xc2, 0xfd, 0xe8, 0xb2, + 0xf2, 0xe4, 0x32, 0x8d, 0xc7, 0x2e, 0x90, 0x1f, 0x09, 0x77, 0xe0, 0x16, 0x79, 0x56, 0x39, 0x0a, + 0xd0, 0xa6, 0x2e, 0xe9, 0x57, 0xe1, 0xf5, 0x51, 0xd4, 0x6c, 0xfa, 0x7a, 0xa4, 0xff, 0x71, 0x6a, + 0x5b, 0x01, 0x2e, 0x23, 0x5c, 0x11, 0x9d, 0xfc, 0xb7, 0x53, 0xb0, 0x39, 0x6a, 0x1c, 0xfa, 0xd8, + 0xeb, 0x9a, 0xee, 0x8c, 0x3b, 0x9d, 0xd7, 0x4b, 0xfd, 0x01, 0xf3, 0x52, 0x55, 0x9f, 0x97, 0x7a, + 0x67, 0x12, 0x56, 0x5e, 0x87, 0x55, 0x8d, 0xf2, 0x57, 0x6f, 0xc3, 0x1b, 0x7e, 0x58, 0xda, 0xe3, + 0xa3, 0xe8, 0xaf, 0x1f, 0x1c, 0x9c, 0x9a, 0x23, 0x0e, 0x66, 0xc7, 0x87, 0xf6, 0xfe, 0x7e, 0x1a, + 0x36, 0xbd, 0x0f, 0x94, 0xf7, 0xbd, 0x68, 0x5a, 0xd2, 0xaf, 0x05, 0x6e, 0xc3, 0x62, 0x10, 0x29, + 0xb2, 0x1f, 0xe4, 0x5e, 0xf1, 0x43, 0x45, 0x46, 0xd2, 0x03, 0x9c, 0x11, 0x53, 0x27, 0xe7, 0x7f, + 0x61, 0x14, 0xf8, 0x9b, 0x63, 0x33, 0xfe, 0xff, 0x09, 0x08, 0x53, 0xf5, 0xec, 0xc1, 0x56, 0x82, + 0xfc, 0xcc, 0x2c, 0x2a, 0xb0, 0xe0, 0x07, 0x46, 0x99, 0xa6, 0x06, 0x5e, 0xa1, 0xfa, 0x07, 0xcf, + 0xfb, 0xd0, 0x52, 0x3a, 0xdb, 0x3f, 0x73, 0xf6, 0x83, 0x7d, 0x1f, 0xad, 0x75, 0xc2, 0x61, 0xe4, + 0x95, 0x2e, 0x22, 0x08, 0xba, 0xa2, 0x12, 0xcc, 0xda, 0x54, 0x46, 0xf0, 0x09, 0xa8, 0x33, 0xb9, + 0x4b, 0x12, 0x06, 0x8e, 0xd3, 0x17, 0x04, 0x8e, 0x33, 0x41, 0xe0, 0x98, 0xae, 0xed, 0x87, 0x29, + 0xd8, 0xf4, 0xbe, 0x95, 0x8c, 0x54, 0xef, 0x49, 0x16, 0xba, 0x05, 0x73, 0x1e, 0x2a, 0x5b, 0xe3, + 0xf3, 0x2e, 0xee, 0x99, 0xa4, 0xed, 0xa3, 0x24, 0x79, 0x45, 0x20, 0x28, 0xdd, 0x8a, 0x6d, 0xd8, + 0x4a, 0x98, 0x9f, 0x2a, 0x15, 0xa5, 0xfc, 0x41, 0x8a, 0xfc, 0xb6, 0xed, 0xff, 0x6e, 0xc7, 0xe2, + 0x81, 0xc7, 0x44, 0x31, 0x5e, 0xe9, 0x76, 0x29, 0xb0, 0x11, 0x37, 0xf9, 0x25, 0x1b, 0xe0, 0xfd, + 0xff, 0xe6, 0x60, 0xa6, 0xd6, 0xc5, 0xaa, 0x49, 0x83, 0x82, 0x79, 0xdf, 0xaf, 0x1c, 0xd1, 0x7a, + 0xcc, 0x8f, 0x1f, 0xc9, 0x16, 0xf0, 0xd7, 0x13, 0x7f, 0x1a, 0x29, 0x4c, 0xa1, 0x13, 0xcf, 0x2f, + 0x34, 0x7d, 0xcf, 0x05, 0x5e, 0x0b, 0x8d, 0x8c, 0xb8, 0xab, 0xf9, 0x5b, 0x23, 0xa8, 0x9c, 0x79, + 0xde, 0x87, 0x2c, 0xf9, 0xb1, 0x1a, 0x5a, 0x76, 0x7e, 0x30, 0xe7, 0xf9, 0x2d, 0x1b, 0xbf, 0x12, + 0x68, 0xb5, 0xc7, 0xdd, 0xff, 0xfb, 0x59, 0x00, 0xf7, 0x0e, 0x44, 0x8f, 0x60, 0xce, 0xeb, 0xfa, + 0xd0, 0x5a, 0xc2, 0xaf, 0xb5, 0xf8, 0xf5, 0xe8, 0x4e, 0x47, 0xa6, 0x47, 0x30, 0xe7, 0x55, 0x79, + 0x97, 0x59, 0xc4, 0x63, 0x6d, 0x97, 0x59, 0xe4, 0xdb, 0xea, 0x29, 0xd4, 0x83, 0xab, 0x31, 0x4f, + 0x65, 0xd1, 0xeb, 0xe3, 0x3d, 0x28, 0xe6, 0xdf, 0x18, 0xf3, 0xcd, 0xad, 0x30, 0x85, 0x74, 0xb8, + 0x16, 0xfb, 0x42, 0x14, 0x6d, 0x8f, 0xfb, 0x7e, 0x95, 0x7f, 0x73, 0x0c, 0x4a, 0x67, 0xce, 0x21, + 0xf0, 0xf1, 0xcf, 0xd2, 0xd0, 0x9b, 0x63, 0xbf, 0x97, 0xe4, 0x6f, 0x8f, 0xff, 0xca, 0x4d, 0x98, + 0x42, 0x07, 0x90, 0xf7, 0xbc, 0x4f, 0x42, 0x7c, 0xe4, 0xa3, 0x25, 0xca, 0x78, 0x2d, 0xe1, 0x41, + 0x13, 0xe5, 0xe4, 0x79, 0x32, 0xe2, 0x72, 0x0a, 0x3f, 0x7e, 0x71, 0x39, 0x45, 0xbc, 0x31, 0x09, + 0x6e, 0x7f, 0x20, 0x30, 0x8d, 0xda, 0xfe, 0xe8, 0x48, 0x37, 0x6a, 0xfb, 0x63, 0xa2, 0x5c, 0x61, + 0x0a, 0x7d, 0x17, 0x16, 0xfc, 0xb5, 0x60, 0x74, 0x3d, 0xb1, 0xa6, 0xcd, 0x6f, 0xc4, 0x75, 0x7b, + 0x59, 0xfa, 0x2b, 0x89, 0x2e, 0xcb, 0xc8, 0x8a, 0xa6, 0xcb, 0x32, 0xa6, 0x00, 0x39, 0x65, 0xf9, + 0x27, 0x5f, 0x7d, 0xcc, 0xf5, 0x4f, 0x51, 0x65, 0x3d, 0xd7, 0x3f, 0x45, 0x16, 0xd5, 0x84, 0x29, + 0xa4, 0xc0, 0x6a, 0x74, 0x79, 0x06, 0xdd, 0x1a, 0xab, 0xfa, 0xc4, 0xbf, 0x3e, 0x8a, 0xcc, 0x99, + 0xaa, 0x03, 0x4b, 0x11, 0xcf, 0xc7, 0x90, 0x90, 0xf8, 0xb6, 0x8c, 0x4e, 0x72, 0x73, 0x8c, 0xf7, + 0x67, 0x02, 0x71, 0xe6, 0xff, 0x95, 0x86, 0x2b, 0x81, 0xc0, 0x1e, 0xfd, 0x06, 0x07, 0x1b, 0xc9, + 0xc9, 0x0e, 0xba, 0x1b, 0x93, 0x14, 0xc4, 0x28, 0x56, 0x69, 0x5c, 0x72, 0x8f, 0x71, 0x5f, 0x8b, + 0x8d, 0x29, 0xd1, 0xf6, 0xb8, 0x61, 0xb3, 0x47, 0xa3, 0x47, 0x05, 0xa8, 0x64, 0x3b, 0xac, 0x69, + 0x63, 0xa3, 0x0e, 0xb4, 0x3d, 0x6e, 0x60, 0xe4, 0x4e, 0x3b, 0x32, 0x84, 0xa1, 0xd3, 0xf6, 0x60, + 0x35, 0xfa, 0xf6, 0x46, 0xb7, 0xc6, 0x0a, 0x2d, 0x5c, 0xad, 0x4a, 0x0e, 0x02, 0xc8, 0x6c, 0x24, + 0xad, 0xba, 0xff, 0x2f, 0x59, 0xc8, 0x10, 0xa0, 0xa4, 0x0d, 0x57, 0x02, 0xc5, 0x17, 0xb4, 0x91, + 0x5c, 0x92, 0xe2, 0x6f, 0xc4, 0xf6, 0x3b, 0xe7, 0xf7, 0x0c, 0x16, 0x43, 0xe5, 0x14, 0xb4, 0xe9, + 0x1d, 0x17, 0x55, 0xd2, 0xe1, 0xb7, 0x12, 0x28, 0x82, 0xbc, 0xfd, 0x97, 0xda, 0xe6, 0x28, 0xbc, + 0xdf, 0xcf, 0x3b, 0xee, 0x22, 0xfb, 0x8c, 0xe2, 0x52, 0xc1, 0x2b, 0x4c, 0xf0, 0xcb, 0x15, 0x79, + 0x79, 0xdd, 0x4c, 0xa4, 0x71, 0x66, 0xf8, 0xd4, 0x01, 0xc4, 0x3c, 0x70, 0x33, 0xf2, 0x09, 0x17, + 0x09, 0x8b, 0xf3, 0x42, 0x12, 0x89, 0xc3, 0xfe, 0x13, 0x28, 0x04, 0x91, 0x11, 0x74, 0x63, 0x04, + 0x50, 0xc3, 0x6f, 0xc6, 0x13, 0x04, 0x77, 0x26, 0xe8, 0x09, 0x82, 0x52, 0x45, 0x99, 0xff, 0xcd, + 0x44, 0x1a, 0xef, 0x7d, 0xe8, 0xc1, 0x04, 0xdd, 0xfb, 0x30, 0x8c, 0x1f, 0xba, 0xf7, 0x61, 0x04, + 0x88, 0x28, 0x4c, 0xed, 0x3c, 0x00, 0x90, 0x7b, 0x83, 0xe7, 0xb2, 0x84, 0xd5, 0x61, 0x1f, 0xad, + 0x87, 0xd2, 0xb4, 0xaa, 0x3a, 0xec, 0x37, 0x07, 0x56, 0x76, 0x66, 0x14, 0xff, 0x6c, 0x86, 0xe4, + 0x62, 0xb3, 0x64, 0x80, 0xd5, 0xb1, 0x53, 0x87, 0x82, 0x3b, 0x5a, 0x22, 0x81, 0x36, 0xda, 0x8a, + 0xe4, 0x41, 0x5e, 0x4b, 0x06, 0x18, 0x2d, 0x38, 0x8c, 0x48, 0xef, 0xce, 0x47, 0x00, 0x1d, 0x43, + 0x91, 0x68, 0xa4, 0x8f, 0xae, 0x87, 0xf8, 0x3c, 0x54, 0x70, 0xaf, 0x6b, 0xf3, 0xf8, 0x53, 0x26, + 0x4c, 0xc7, 0x50, 0x68, 0x3e, 0xb0, 0xf3, 0x6d, 0xc8, 0x53, 0x61, 0x4e, 0x2c, 0xba, 0x51, 0xe3, + 0x99, 0x0c, 0x74, 0xf5, 0xa4, 0x67, 0xa7, 0x0a, 0xf3, 0x94, 0x01, 0x83, 0xd8, 0xd1, 0x8d, 0x10, + 0x8b, 0xc7, 0xb4, 0x27, 0xc0, 0x64, 0x8e, 0x0c, 0x63, 0x7d, 0x3b, 0x15, 0x98, 0xb3, 0xd9, 0x98, + 0xcf, 0xb5, 0x2e, 0xda, 0x88, 0xe0, 0x62, 0x75, 0x04, 0x98, 0xe4, 0x19, 0x13, 0xab, 0xcb, 0x15, + 0xc5, 0xfe, 0x3f, 0x3e, 0xc2, 0xa2, 0x30, 0x54, 0x29, 0x52, 0x14, 0xd6, 0x57, 0xc9, 0x3e, 0x4b, + 0x77, 0x0c, 0xe5, 0x38, 0x47, 0x06, 0x7d, 0xe3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x0c, 0x79, + 0xd8, 0xd8, 0x90, 0x46, 0x00, 0x00, +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConn + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion4 + +// IdentityClient is the client API for Identity service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type IdentityClient interface { + GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) + GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) + Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) +} + +type identityClient struct { + cc *grpc.ClientConn +} + +func NewIdentityClient(cc *grpc.ClientConn) IdentityClient { + return &identityClient{cc} +} + +func (c *identityClient) GetPluginInfo(ctx context.Context, in *GetPluginInfoRequest, opts ...grpc.CallOption) (*GetPluginInfoResponse, error) { + out := new(GetPluginInfoResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Identity/GetPluginInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) GetPluginCapabilities(ctx context.Context, in *GetPluginCapabilitiesRequest, opts ...grpc.CallOption) (*GetPluginCapabilitiesResponse, error) { + out := new(GetPluginCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Identity/GetPluginCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *identityClient) Probe(ctx context.Context, in *ProbeRequest, opts ...grpc.CallOption) (*ProbeResponse, error) { + out := new(ProbeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Identity/Probe", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// IdentityServer is the server API for Identity service. +type IdentityServer interface { + GetPluginInfo(context.Context, *GetPluginInfoRequest) (*GetPluginInfoResponse, error) + GetPluginCapabilities(context.Context, *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) + Probe(context.Context, *ProbeRequest) (*ProbeResponse, error) +} + +// UnimplementedIdentityServer can be embedded to have forward compatible implementations. +type UnimplementedIdentityServer struct { +} + +func (*UnimplementedIdentityServer) GetPluginInfo(ctx context.Context, req *GetPluginInfoRequest) (*GetPluginInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPluginInfo not implemented") +} +func (*UnimplementedIdentityServer) GetPluginCapabilities(ctx context.Context, req *GetPluginCapabilitiesRequest) (*GetPluginCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPluginCapabilities not implemented") +} +func (*UnimplementedIdentityServer) Probe(ctx context.Context, req *ProbeRequest) (*ProbeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Probe not implemented") +} + +func RegisterIdentityServer(s *grpc.Server, srv IdentityServer) { + s.RegisterService(&_Identity_serviceDesc, srv) +} + +func _Identity_GetPluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Identity/GetPluginInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginInfo(ctx, req.(*GetPluginInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_GetPluginCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetPluginCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).GetPluginCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Identity/GetPluginCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).GetPluginCapabilities(ctx, req.(*GetPluginCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Identity_Probe_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ProbeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(IdentityServer).Probe(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Identity/Probe", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(IdentityServer).Probe(ctx, req.(*ProbeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Identity_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.Identity", + HandlerType: (*IdentityServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetPluginInfo", + Handler: _Identity_GetPluginInfo_Handler, + }, + { + MethodName: "GetPluginCapabilities", + Handler: _Identity_GetPluginCapabilities_Handler, + }, + { + MethodName: "Probe", + Handler: _Identity_Probe_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} + +// ControllerClient is the client API for Controller service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type ControllerClient interface { + CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) + DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) + ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) + GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) + ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) + DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) + ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) + ControllerExpandVolume(ctx context.Context, in *ControllerExpandVolumeRequest, opts ...grpc.CallOption) (*ControllerExpandVolumeResponse, error) + ControllerGetVolume(ctx context.Context, in *ControllerGetVolumeRequest, opts ...grpc.CallOption) (*ControllerGetVolumeResponse, error) +} + +type controllerClient struct { + cc *grpc.ClientConn +} + +func NewControllerClient(cc *grpc.ClientConn) ControllerClient { + return &controllerClient{cc} +} + +func (c *controllerClient) CreateVolume(ctx context.Context, in *CreateVolumeRequest, opts ...grpc.CallOption) (*CreateVolumeResponse, error) { + out := new(CreateVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/CreateVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteVolume(ctx context.Context, in *DeleteVolumeRequest, opts ...grpc.CallOption) (*DeleteVolumeResponse, error) { + out := new(DeleteVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/DeleteVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerPublishVolume(ctx context.Context, in *ControllerPublishVolumeRequest, opts ...grpc.CallOption) (*ControllerPublishVolumeResponse, error) { + out := new(ControllerPublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerPublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerUnpublishVolume(ctx context.Context, in *ControllerUnpublishVolumeRequest, opts ...grpc.CallOption) (*ControllerUnpublishVolumeResponse, error) { + out := new(ControllerUnpublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerUnpublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ValidateVolumeCapabilities(ctx context.Context, in *ValidateVolumeCapabilitiesRequest, opts ...grpc.CallOption) (*ValidateVolumeCapabilitiesResponse, error) { + out := new(ValidateVolumeCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ValidateVolumeCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListVolumes(ctx context.Context, in *ListVolumesRequest, opts ...grpc.CallOption) (*ListVolumesResponse, error) { + out := new(ListVolumesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ListVolumes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) GetCapacity(ctx context.Context, in *GetCapacityRequest, opts ...grpc.CallOption) (*GetCapacityResponse, error) { + out := new(GetCapacityResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/GetCapacity", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerGetCapabilities(ctx context.Context, in *ControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*ControllerGetCapabilitiesResponse, error) { + out := new(ControllerGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) CreateSnapshot(ctx context.Context, in *CreateSnapshotRequest, opts ...grpc.CallOption) (*CreateSnapshotResponse, error) { + out := new(CreateSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/CreateSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) DeleteSnapshot(ctx context.Context, in *DeleteSnapshotRequest, opts ...grpc.CallOption) (*DeleteSnapshotResponse, error) { + out := new(DeleteSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/DeleteSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ListSnapshots(ctx context.Context, in *ListSnapshotsRequest, opts ...grpc.CallOption) (*ListSnapshotsResponse, error) { + out := new(ListSnapshotsResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ListSnapshots", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerExpandVolume(ctx context.Context, in *ControllerExpandVolumeRequest, opts ...grpc.CallOption) (*ControllerExpandVolumeResponse, error) { + out := new(ControllerExpandVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerExpandVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *controllerClient) ControllerGetVolume(ctx context.Context, in *ControllerGetVolumeRequest, opts ...grpc.CallOption) (*ControllerGetVolumeResponse, error) { + out := new(ControllerGetVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Controller/ControllerGetVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ControllerServer is the server API for Controller service. +type ControllerServer interface { + CreateVolume(context.Context, *CreateVolumeRequest) (*CreateVolumeResponse, error) + DeleteVolume(context.Context, *DeleteVolumeRequest) (*DeleteVolumeResponse, error) + ControllerPublishVolume(context.Context, *ControllerPublishVolumeRequest) (*ControllerPublishVolumeResponse, error) + ControllerUnpublishVolume(context.Context, *ControllerUnpublishVolumeRequest) (*ControllerUnpublishVolumeResponse, error) + ValidateVolumeCapabilities(context.Context, *ValidateVolumeCapabilitiesRequest) (*ValidateVolumeCapabilitiesResponse, error) + ListVolumes(context.Context, *ListVolumesRequest) (*ListVolumesResponse, error) + GetCapacity(context.Context, *GetCapacityRequest) (*GetCapacityResponse, error) + ControllerGetCapabilities(context.Context, *ControllerGetCapabilitiesRequest) (*ControllerGetCapabilitiesResponse, error) + CreateSnapshot(context.Context, *CreateSnapshotRequest) (*CreateSnapshotResponse, error) + DeleteSnapshot(context.Context, *DeleteSnapshotRequest) (*DeleteSnapshotResponse, error) + ListSnapshots(context.Context, *ListSnapshotsRequest) (*ListSnapshotsResponse, error) + ControllerExpandVolume(context.Context, *ControllerExpandVolumeRequest) (*ControllerExpandVolumeResponse, error) + ControllerGetVolume(context.Context, *ControllerGetVolumeRequest) (*ControllerGetVolumeResponse, error) +} + +// UnimplementedControllerServer can be embedded to have forward compatible implementations. +type UnimplementedControllerServer struct { +} + +func (*UnimplementedControllerServer) CreateVolume(ctx context.Context, req *CreateVolumeRequest) (*CreateVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateVolume not implemented") +} +func (*UnimplementedControllerServer) DeleteVolume(ctx context.Context, req *DeleteVolumeRequest) (*DeleteVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteVolume not implemented") +} +func (*UnimplementedControllerServer) ControllerPublishVolume(ctx context.Context, req *ControllerPublishVolumeRequest) (*ControllerPublishVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ControllerPublishVolume not implemented") +} +func (*UnimplementedControllerServer) ControllerUnpublishVolume(ctx context.Context, req *ControllerUnpublishVolumeRequest) (*ControllerUnpublishVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ControllerUnpublishVolume not implemented") +} +func (*UnimplementedControllerServer) ValidateVolumeCapabilities(ctx context.Context, req *ValidateVolumeCapabilitiesRequest) (*ValidateVolumeCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ValidateVolumeCapabilities not implemented") +} +func (*UnimplementedControllerServer) ListVolumes(ctx context.Context, req *ListVolumesRequest) (*ListVolumesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListVolumes not implemented") +} +func (*UnimplementedControllerServer) GetCapacity(ctx context.Context, req *GetCapacityRequest) (*GetCapacityResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCapacity not implemented") +} +func (*UnimplementedControllerServer) ControllerGetCapabilities(ctx context.Context, req *ControllerGetCapabilitiesRequest) (*ControllerGetCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ControllerGetCapabilities not implemented") +} +func (*UnimplementedControllerServer) CreateSnapshot(ctx context.Context, req *CreateSnapshotRequest) (*CreateSnapshotResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSnapshot not implemented") +} +func (*UnimplementedControllerServer) DeleteSnapshot(ctx context.Context, req *DeleteSnapshotRequest) (*DeleteSnapshotResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSnapshot not implemented") +} +func (*UnimplementedControllerServer) ListSnapshots(ctx context.Context, req *ListSnapshotsRequest) (*ListSnapshotsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSnapshots not implemented") +} +func (*UnimplementedControllerServer) ControllerExpandVolume(ctx context.Context, req *ControllerExpandVolumeRequest) (*ControllerExpandVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ControllerExpandVolume not implemented") +} +func (*UnimplementedControllerServer) ControllerGetVolume(ctx context.Context, req *ControllerGetVolumeRequest) (*ControllerGetVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ControllerGetVolume not implemented") +} + +func RegisterControllerServer(s *grpc.Server, srv ControllerServer) { + s.RegisterService(&_Controller_serviceDesc, srv) +} + +func _Controller_CreateVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/CreateVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateVolume(ctx, req.(*CreateVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/DeleteVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteVolume(ctx, req.(*DeleteVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerPublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerPublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerPublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerPublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerPublishVolume(ctx, req.(*ControllerPublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerUnpublishVolume(ctx, req.(*ControllerUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ValidateVolumeCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ValidateVolumeCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ValidateVolumeCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ValidateVolumeCapabilities(ctx, req.(*ValidateVolumeCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListVolumes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListVolumes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ListVolumes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListVolumes(ctx, req.(*ListVolumesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_GetCapacity_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCapacityRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).GetCapacity(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/GetCapacity", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).GetCapacity(ctx, req.(*GetCapacityRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerGetCapabilities(ctx, req.(*ControllerGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_CreateSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).CreateSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/CreateSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).CreateSnapshot(ctx, req.(*CreateSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_DeleteSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).DeleteSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/DeleteSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).DeleteSnapshot(ctx, req.(*DeleteSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ListSnapshots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSnapshotsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ListSnapshots(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ListSnapshots", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ListSnapshots(ctx, req.(*ListSnapshotsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerExpandVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerExpandVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerExpandVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerExpandVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerExpandVolume(ctx, req.(*ControllerExpandVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Controller_ControllerGetVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ControllerGetVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ControllerServer).ControllerGetVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Controller/ControllerGetVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ControllerServer).ControllerGetVolume(ctx, req.(*ControllerGetVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Controller_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.Controller", + HandlerType: (*ControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateVolume", + Handler: _Controller_CreateVolume_Handler, + }, + { + MethodName: "DeleteVolume", + Handler: _Controller_DeleteVolume_Handler, + }, + { + MethodName: "ControllerPublishVolume", + Handler: _Controller_ControllerPublishVolume_Handler, + }, + { + MethodName: "ControllerUnpublishVolume", + Handler: _Controller_ControllerUnpublishVolume_Handler, + }, + { + MethodName: "ValidateVolumeCapabilities", + Handler: _Controller_ValidateVolumeCapabilities_Handler, + }, + { + MethodName: "ListVolumes", + Handler: _Controller_ListVolumes_Handler, + }, + { + MethodName: "GetCapacity", + Handler: _Controller_GetCapacity_Handler, + }, + { + MethodName: "ControllerGetCapabilities", + Handler: _Controller_ControllerGetCapabilities_Handler, + }, + { + MethodName: "CreateSnapshot", + Handler: _Controller_CreateSnapshot_Handler, + }, + { + MethodName: "DeleteSnapshot", + Handler: _Controller_DeleteSnapshot_Handler, + }, + { + MethodName: "ListSnapshots", + Handler: _Controller_ListSnapshots_Handler, + }, + { + MethodName: "ControllerExpandVolume", + Handler: _Controller_ControllerExpandVolume_Handler, + }, + { + MethodName: "ControllerGetVolume", + Handler: _Controller_ControllerGetVolume_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} + +// GroupControllerClient is the client API for GroupController service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type GroupControllerClient interface { + GroupControllerGetCapabilities(ctx context.Context, in *GroupControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*GroupControllerGetCapabilitiesResponse, error) + CreateVolumeGroupSnapshot(ctx context.Context, in *CreateVolumeGroupSnapshotRequest, opts ...grpc.CallOption) (*CreateVolumeGroupSnapshotResponse, error) + DeleteVolumeGroupSnapshot(ctx context.Context, in *DeleteVolumeGroupSnapshotRequest, opts ...grpc.CallOption) (*DeleteVolumeGroupSnapshotResponse, error) + GetVolumeGroupSnapshot(ctx context.Context, in *GetVolumeGroupSnapshotRequest, opts ...grpc.CallOption) (*GetVolumeGroupSnapshotResponse, error) +} + +type groupControllerClient struct { + cc *grpc.ClientConn +} + +func NewGroupControllerClient(cc *grpc.ClientConn) GroupControllerClient { + return &groupControllerClient{cc} +} + +func (c *groupControllerClient) GroupControllerGetCapabilities(ctx context.Context, in *GroupControllerGetCapabilitiesRequest, opts ...grpc.CallOption) (*GroupControllerGetCapabilitiesResponse, error) { + out := new(GroupControllerGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.GroupController/GroupControllerGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupControllerClient) CreateVolumeGroupSnapshot(ctx context.Context, in *CreateVolumeGroupSnapshotRequest, opts ...grpc.CallOption) (*CreateVolumeGroupSnapshotResponse, error) { + out := new(CreateVolumeGroupSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.GroupController/CreateVolumeGroupSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupControllerClient) DeleteVolumeGroupSnapshot(ctx context.Context, in *DeleteVolumeGroupSnapshotRequest, opts ...grpc.CallOption) (*DeleteVolumeGroupSnapshotResponse, error) { + out := new(DeleteVolumeGroupSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.GroupController/DeleteVolumeGroupSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupControllerClient) GetVolumeGroupSnapshot(ctx context.Context, in *GetVolumeGroupSnapshotRequest, opts ...grpc.CallOption) (*GetVolumeGroupSnapshotResponse, error) { + out := new(GetVolumeGroupSnapshotResponse) + err := c.cc.Invoke(ctx, "/csi.v1.GroupController/GetVolumeGroupSnapshot", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// GroupControllerServer is the server API for GroupController service. +type GroupControllerServer interface { + GroupControllerGetCapabilities(context.Context, *GroupControllerGetCapabilitiesRequest) (*GroupControllerGetCapabilitiesResponse, error) + CreateVolumeGroupSnapshot(context.Context, *CreateVolumeGroupSnapshotRequest) (*CreateVolumeGroupSnapshotResponse, error) + DeleteVolumeGroupSnapshot(context.Context, *DeleteVolumeGroupSnapshotRequest) (*DeleteVolumeGroupSnapshotResponse, error) + GetVolumeGroupSnapshot(context.Context, *GetVolumeGroupSnapshotRequest) (*GetVolumeGroupSnapshotResponse, error) +} + +// UnimplementedGroupControllerServer can be embedded to have forward compatible implementations. +type UnimplementedGroupControllerServer struct { +} + +func (*UnimplementedGroupControllerServer) GroupControllerGetCapabilities(ctx context.Context, req *GroupControllerGetCapabilitiesRequest) (*GroupControllerGetCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GroupControllerGetCapabilities not implemented") +} +func (*UnimplementedGroupControllerServer) CreateVolumeGroupSnapshot(ctx context.Context, req *CreateVolumeGroupSnapshotRequest) (*CreateVolumeGroupSnapshotResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateVolumeGroupSnapshot not implemented") +} +func (*UnimplementedGroupControllerServer) DeleteVolumeGroupSnapshot(ctx context.Context, req *DeleteVolumeGroupSnapshotRequest) (*DeleteVolumeGroupSnapshotResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteVolumeGroupSnapshot not implemented") +} +func (*UnimplementedGroupControllerServer) GetVolumeGroupSnapshot(ctx context.Context, req *GetVolumeGroupSnapshotRequest) (*GetVolumeGroupSnapshotResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVolumeGroupSnapshot not implemented") +} + +func RegisterGroupControllerServer(s *grpc.Server, srv GroupControllerServer) { + s.RegisterService(&_GroupController_serviceDesc, srv) +} + +func _GroupController_GroupControllerGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GroupControllerGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupControllerServer).GroupControllerGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.GroupController/GroupControllerGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupControllerServer).GroupControllerGetCapabilities(ctx, req.(*GroupControllerGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupController_CreateVolumeGroupSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateVolumeGroupSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupControllerServer).CreateVolumeGroupSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.GroupController/CreateVolumeGroupSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupControllerServer).CreateVolumeGroupSnapshot(ctx, req.(*CreateVolumeGroupSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupController_DeleteVolumeGroupSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteVolumeGroupSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupControllerServer).DeleteVolumeGroupSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.GroupController/DeleteVolumeGroupSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupControllerServer).DeleteVolumeGroupSnapshot(ctx, req.(*DeleteVolumeGroupSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _GroupController_GetVolumeGroupSnapshot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVolumeGroupSnapshotRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupControllerServer).GetVolumeGroupSnapshot(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.GroupController/GetVolumeGroupSnapshot", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupControllerServer).GetVolumeGroupSnapshot(ctx, req.(*GetVolumeGroupSnapshotRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _GroupController_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.GroupController", + HandlerType: (*GroupControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GroupControllerGetCapabilities", + Handler: _GroupController_GroupControllerGetCapabilities_Handler, + }, + { + MethodName: "CreateVolumeGroupSnapshot", + Handler: _GroupController_CreateVolumeGroupSnapshot_Handler, + }, + { + MethodName: "DeleteVolumeGroupSnapshot", + Handler: _GroupController_DeleteVolumeGroupSnapshot_Handler, + }, + { + MethodName: "GetVolumeGroupSnapshot", + Handler: _GroupController_GetVolumeGroupSnapshot_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} + +// NodeClient is the client API for Node service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type NodeClient interface { + NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) + NodeGetVolumeStats(ctx context.Context, in *NodeGetVolumeStatsRequest, opts ...grpc.CallOption) (*NodeGetVolumeStatsResponse, error) + NodeExpandVolume(ctx context.Context, in *NodeExpandVolumeRequest, opts ...grpc.CallOption) (*NodeExpandVolumeResponse, error) + NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) + NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) +} + +type nodeClient struct { + cc *grpc.ClientConn +} + +func NewNodeClient(cc *grpc.ClientConn) NodeClient { + return &nodeClient{cc} +} + +func (c *nodeClient) NodeStageVolume(ctx context.Context, in *NodeStageVolumeRequest, opts ...grpc.CallOption) (*NodeStageVolumeResponse, error) { + out := new(NodeStageVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeStageVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnstageVolume(ctx context.Context, in *NodeUnstageVolumeRequest, opts ...grpc.CallOption) (*NodeUnstageVolumeResponse, error) { + out := new(NodeUnstageVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeUnstageVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodePublishVolume(ctx context.Context, in *NodePublishVolumeRequest, opts ...grpc.CallOption) (*NodePublishVolumeResponse, error) { + out := new(NodePublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodePublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeUnpublishVolume(ctx context.Context, in *NodeUnpublishVolumeRequest, opts ...grpc.CallOption) (*NodeUnpublishVolumeResponse, error) { + out := new(NodeUnpublishVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeUnpublishVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetVolumeStats(ctx context.Context, in *NodeGetVolumeStatsRequest, opts ...grpc.CallOption) (*NodeGetVolumeStatsResponse, error) { + out := new(NodeGetVolumeStatsResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeGetVolumeStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeExpandVolume(ctx context.Context, in *NodeExpandVolumeRequest, opts ...grpc.CallOption) (*NodeExpandVolumeResponse, error) { + out := new(NodeExpandVolumeResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeExpandVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetCapabilities(ctx context.Context, in *NodeGetCapabilitiesRequest, opts ...grpc.CallOption) (*NodeGetCapabilitiesResponse, error) { + out := new(NodeGetCapabilitiesResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeGetCapabilities", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *nodeClient) NodeGetInfo(ctx context.Context, in *NodeGetInfoRequest, opts ...grpc.CallOption) (*NodeGetInfoResponse, error) { + out := new(NodeGetInfoResponse) + err := c.cc.Invoke(ctx, "/csi.v1.Node/NodeGetInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// NodeServer is the server API for Node service. +type NodeServer interface { + NodeStageVolume(context.Context, *NodeStageVolumeRequest) (*NodeStageVolumeResponse, error) + NodeUnstageVolume(context.Context, *NodeUnstageVolumeRequest) (*NodeUnstageVolumeResponse, error) + NodePublishVolume(context.Context, *NodePublishVolumeRequest) (*NodePublishVolumeResponse, error) + NodeUnpublishVolume(context.Context, *NodeUnpublishVolumeRequest) (*NodeUnpublishVolumeResponse, error) + NodeGetVolumeStats(context.Context, *NodeGetVolumeStatsRequest) (*NodeGetVolumeStatsResponse, error) + NodeExpandVolume(context.Context, *NodeExpandVolumeRequest) (*NodeExpandVolumeResponse, error) + NodeGetCapabilities(context.Context, *NodeGetCapabilitiesRequest) (*NodeGetCapabilitiesResponse, error) + NodeGetInfo(context.Context, *NodeGetInfoRequest) (*NodeGetInfoResponse, error) +} + +// UnimplementedNodeServer can be embedded to have forward compatible implementations. +type UnimplementedNodeServer struct { +} + +func (*UnimplementedNodeServer) NodeStageVolume(ctx context.Context, req *NodeStageVolumeRequest) (*NodeStageVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeStageVolume not implemented") +} +func (*UnimplementedNodeServer) NodeUnstageVolume(ctx context.Context, req *NodeUnstageVolumeRequest) (*NodeUnstageVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeUnstageVolume not implemented") +} +func (*UnimplementedNodeServer) NodePublishVolume(ctx context.Context, req *NodePublishVolumeRequest) (*NodePublishVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodePublishVolume not implemented") +} +func (*UnimplementedNodeServer) NodeUnpublishVolume(ctx context.Context, req *NodeUnpublishVolumeRequest) (*NodeUnpublishVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeUnpublishVolume not implemented") +} +func (*UnimplementedNodeServer) NodeGetVolumeStats(ctx context.Context, req *NodeGetVolumeStatsRequest) (*NodeGetVolumeStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeGetVolumeStats not implemented") +} +func (*UnimplementedNodeServer) NodeExpandVolume(ctx context.Context, req *NodeExpandVolumeRequest) (*NodeExpandVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeExpandVolume not implemented") +} +func (*UnimplementedNodeServer) NodeGetCapabilities(ctx context.Context, req *NodeGetCapabilitiesRequest) (*NodeGetCapabilitiesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeGetCapabilities not implemented") +} +func (*UnimplementedNodeServer) NodeGetInfo(ctx context.Context, req *NodeGetInfoRequest) (*NodeGetInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method NodeGetInfo not implemented") +} + +func RegisterNodeServer(s *grpc.Server, srv NodeServer) { + s.RegisterService(&_Node_serviceDesc, srv) +} + +func _Node_NodeStageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeStageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeStageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeStageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeStageVolume(ctx, req.(*NodeStageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnstageVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnstageVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnstageVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeUnstageVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnstageVolume(ctx, req.(*NodeUnstageVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodePublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodePublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodePublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodePublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodePublishVolume(ctx, req.(*NodePublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeUnpublishVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeUnpublishVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeUnpublishVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeUnpublishVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeUnpublishVolume(ctx, req.(*NodeUnpublishVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetVolumeStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetVolumeStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetVolumeStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeGetVolumeStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetVolumeStats(ctx, req.(*NodeGetVolumeStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeExpandVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeExpandVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeExpandVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeExpandVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeExpandVolume(ctx, req.(*NodeExpandVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetCapabilities_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetCapabilitiesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetCapabilities(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeGetCapabilities", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetCapabilities(ctx, req.(*NodeGetCapabilitiesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Node_NodeGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeGetInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(NodeServer).NodeGetInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/csi.v1.Node/NodeGetInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(NodeServer).NodeGetInfo(ctx, req.(*NodeGetInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Node_serviceDesc = grpc.ServiceDesc{ + ServiceName: "csi.v1.Node", + HandlerType: (*NodeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "NodeStageVolume", + Handler: _Node_NodeStageVolume_Handler, + }, + { + MethodName: "NodeUnstageVolume", + Handler: _Node_NodeUnstageVolume_Handler, + }, + { + MethodName: "NodePublishVolume", + Handler: _Node_NodePublishVolume_Handler, + }, + { + MethodName: "NodeUnpublishVolume", + Handler: _Node_NodeUnpublishVolume_Handler, + }, + { + MethodName: "NodeGetVolumeStats", + Handler: _Node_NodeGetVolumeStats_Handler, + }, + { + MethodName: "NodeExpandVolume", + Handler: _Node_NodeExpandVolume_Handler, + }, + { + MethodName: "NodeGetCapabilities", + Handler: _Node_NodeGetCapabilities_Handler, + }, + { + MethodName: "NodeGetInfo", + Handler: _Node_NodeGetInfo_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/container-storage-interface/spec/csi.proto", +} diff --git a/ecs-agent/vendor/github.com/docker/go-units/size.go b/ecs-agent/vendor/github.com/docker/go-units/size.go index 85f6ab0715..c245a89513 100644 --- a/ecs-agent/vendor/github.com/docker/go-units/size.go +++ b/ecs-agent/vendor/github.com/docker/go-units/size.go @@ -2,7 +2,6 @@ package units import ( "fmt" - "regexp" "strconv" "strings" ) @@ -26,16 +25,17 @@ const ( PiB = 1024 * TiB ) -type unitMap map[string]int64 +type unitMap map[byte]int64 var ( - decimalMap = unitMap{"k": KB, "m": MB, "g": GB, "t": TB, "p": PB} - binaryMap = unitMap{"k": KiB, "m": MiB, "g": GiB, "t": TiB, "p": PiB} - sizeRegex = regexp.MustCompile(`^(\d+(\.\d+)*) ?([kKmMgGtTpP])?[iI]?[bB]?$`) + decimalMap = unitMap{'k': KB, 'm': MB, 'g': GB, 't': TB, 'p': PB} + binaryMap = unitMap{'k': KiB, 'm': MiB, 'g': GiB, 't': TiB, 'p': PiB} ) -var decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} -var binaryAbbrs = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} +var ( + decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} + binaryAbbrs = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} +) func getSizeAndUnit(size float64, base float64, _map []string) (float64, string) { i := 0 @@ -89,20 +89,66 @@ func RAMInBytes(size string) (int64, error) { // Parses the human-readable size string into the amount it represents. func parseSize(sizeStr string, uMap unitMap) (int64, error) { - matches := sizeRegex.FindStringSubmatch(sizeStr) - if len(matches) != 4 { + // TODO: rewrite to use strings.Cut if there's a space + // once Go < 1.18 is deprecated. + sep := strings.LastIndexAny(sizeStr, "01234567890. ") + if sep == -1 { + // There should be at least a digit. return -1, fmt.Errorf("invalid size: '%s'", sizeStr) } + var num, sfx string + if sizeStr[sep] != ' ' { + num = sizeStr[:sep+1] + sfx = sizeStr[sep+1:] + } else { + // Omit the space separator. + num = sizeStr[:sep] + sfx = sizeStr[sep+1:] + } - size, err := strconv.ParseFloat(matches[1], 64) + size, err := strconv.ParseFloat(num, 64) if err != nil { return -1, err } + // Backward compatibility: reject negative sizes. + if size < 0 { + return -1, fmt.Errorf("invalid size: '%s'", sizeStr) + } + + if len(sfx) == 0 { + return int64(size), nil + } - unitPrefix := strings.ToLower(matches[3]) - if mul, ok := uMap[unitPrefix]; ok { + // Process the suffix. + + if len(sfx) > 3 { // Too long. + goto badSuffix + } + sfx = strings.ToLower(sfx) + // Trivial case: b suffix. + if sfx[0] == 'b' { + if len(sfx) > 1 { // no extra characters allowed after b. + goto badSuffix + } + return int64(size), nil + } + // A suffix from the map. + if mul, ok := uMap[sfx[0]]; ok { size *= float64(mul) + } else { + goto badSuffix + } + + // The suffix may have extra "b" or "ib" (e.g. KiB or MB). + switch { + case len(sfx) == 2 && sfx[1] != 'b': + goto badSuffix + case len(sfx) == 3 && sfx[1:] != "ib": + goto badSuffix } return int64(size), nil + +badSuffix: + return -1, fmt.Errorf("invalid suffix: '%s'", sfx) } diff --git a/ecs-agent/vendor/github.com/go-logr/logr/.golangci.yaml b/ecs-agent/vendor/github.com/go-logr/logr/.golangci.yaml new file mode 100644 index 0000000000..0cffafa7bf --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/.golangci.yaml @@ -0,0 +1,26 @@ +run: + timeout: 1m + tests: true + +linters: + disable-all: true + enable: + - asciicheck + - errcheck + - forcetypeassert + - gocritic + - gofmt + - goimports + - gosimple + - govet + - ineffassign + - misspell + - revive + - staticcheck + - typecheck + - unused + +issues: + exclude-use-default: false + max-issues-per-linter: 0 + max-same-issues: 10 diff --git a/ecs-agent/vendor/github.com/go-logr/logr/CHANGELOG.md b/ecs-agent/vendor/github.com/go-logr/logr/CHANGELOG.md new file mode 100644 index 0000000000..c356960046 --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/CHANGELOG.md @@ -0,0 +1,6 @@ +# CHANGELOG + +## v1.0.0-rc1 + +This is the first logged release. Major changes (including breaking changes) +have occurred since earlier tags. diff --git a/ecs-agent/vendor/github.com/go-logr/logr/CONTRIBUTING.md b/ecs-agent/vendor/github.com/go-logr/logr/CONTRIBUTING.md new file mode 100644 index 0000000000..5d37e294c5 --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/CONTRIBUTING.md @@ -0,0 +1,17 @@ +# Contributing + +Logr is open to pull-requests, provided they fit within the intended scope of +the project. Specifically, this library aims to be VERY small and minimalist, +with no external dependencies. + +## Compatibility + +This project intends to follow [semantic versioning](http://semver.org) and +is very strict about compatibility. Any proposed changes MUST follow those +rules. + +## Performance + +As a logging library, logr must be as light-weight as possible. Any proposed +code change must include results of running the [benchmark](./benchmark) +before and after the change. diff --git a/ecs-agent/vendor/github.com/go-logr/logr/LICENSE b/ecs-agent/vendor/github.com/go-logr/logr/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/github.com/go-logr/logr/README.md b/ecs-agent/vendor/github.com/go-logr/logr/README.md new file mode 100644 index 0000000000..ab59311813 --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/README.md @@ -0,0 +1,282 @@ +# A minimal logging API for Go + +[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.dev/github.com/go-logr/logr) + +logr offers an(other) opinion on how Go programs and libraries can do logging +without becoming coupled to a particular logging implementation. This is not +an implementation of logging - it is an API. In fact it is two APIs with two +different sets of users. + +The `Logger` type is intended for application and library authors. It provides +a relatively small API which can be used everywhere you want to emit logs. It +defers the actual act of writing logs (to files, to stdout, or whatever) to the +`LogSink` interface. + +The `LogSink` interface is intended for logging library implementers. It is a +pure interface which can be implemented by logging frameworks to provide the actual logging +functionality. + +This decoupling allows application and library developers to write code in +terms of `logr.Logger` (which has very low dependency fan-out) while the +implementation of logging is managed "up stack" (e.g. in or near `main()`.) +Application developers can then switch out implementations as necessary. + +Many people assert that libraries should not be logging, and as such efforts +like this are pointless. Those people are welcome to convince the authors of +the tens-of-thousands of libraries that *DO* write logs that they are all +wrong. In the meantime, logr takes a more practical approach. + +## Typical usage + +Somewhere, early in an application's life, it will make a decision about which +logging library (implementation) it actually wants to use. Something like: + +``` + func main() { + // ... other setup code ... + + // Create the "root" logger. We have chosen the "logimpl" implementation, + // which takes some initial parameters and returns a logr.Logger. + logger := logimpl.New(param1, param2) + + // ... other setup code ... +``` + +Most apps will call into other libraries, create structures to govern the flow, +etc. The `logr.Logger` object can be passed to these other libraries, stored +in structs, or even used as a package-global variable, if needed. For example: + +``` + app := createTheAppObject(logger) + app.Run() +``` + +Outside of this early setup, no other packages need to know about the choice of +implementation. They write logs in terms of the `logr.Logger` that they +received: + +``` + type appObject struct { + // ... other fields ... + logger logr.Logger + // ... other fields ... + } + + func (app *appObject) Run() { + app.logger.Info("starting up", "timestamp", time.Now()) + + // ... app code ... +``` + +## Background + +If the Go standard library had defined an interface for logging, this project +probably would not be needed. Alas, here we are. + +### Inspiration + +Before you consider this package, please read [this blog post by the +inimitable Dave Cheney][warning-makes-no-sense]. We really appreciate what +he has to say, and it largely aligns with our own experiences. + +### Differences from Dave's ideas + +The main differences are: + +1. Dave basically proposes doing away with the notion of a logging API in favor +of `fmt.Printf()`. We disagree, especially when you consider things like output +locations, timestamps, file and line decorations, and structured logging. This +package restricts the logging API to just 2 types of logs: info and error. + +Info logs are things you want to tell the user which are not errors. Error +logs are, well, errors. If your code receives an `error` from a subordinate +function call and is logging that `error` *and not returning it*, use error +logs. + +2. Verbosity-levels on info logs. This gives developers a chance to indicate +arbitrary grades of importance for info logs, without assigning names with +semantic meaning such as "warning", "trace", and "debug." Superficially this +may feel very similar, but the primary difference is the lack of semantics. +Because verbosity is a numerical value, it's safe to assume that an app running +with higher verbosity means more (and less important) logs will be generated. + +## Implementations (non-exhaustive) + +There are implementations for the following logging libraries: + +- **a function** (can bridge to non-structured libraries): [funcr](https://github.com/go-logr/logr/tree/master/funcr) +- **a testing.T** (for use in Go tests, with JSON-like output): [testr](https://github.com/go-logr/logr/tree/master/testr) +- **github.com/google/glog**: [glogr](https://github.com/go-logr/glogr) +- **k8s.io/klog** (for Kubernetes): [klogr](https://git.k8s.io/klog/klogr) +- **a testing.T** (with klog-like text output): [ktesting](https://git.k8s.io/klog/ktesting) +- **go.uber.org/zap**: [zapr](https://github.com/go-logr/zapr) +- **log** (the Go standard library logger): [stdr](https://github.com/go-logr/stdr) +- **github.com/sirupsen/logrus**: [logrusr](https://github.com/bombsimon/logrusr) +- **github.com/wojas/genericr**: [genericr](https://github.com/wojas/genericr) (makes it easy to implement your own backend) +- **logfmt** (Heroku style [logging](https://www.brandur.org/logfmt)): [logfmtr](https://github.com/iand/logfmtr) +- **github.com/rs/zerolog**: [zerologr](https://github.com/go-logr/zerologr) +- **github.com/go-kit/log**: [gokitlogr](https://github.com/tonglil/gokitlogr) (also compatible with github.com/go-kit/kit/log since v0.12.0) +- **bytes.Buffer** (writing to a buffer): [bufrlogr](https://github.com/tonglil/buflogr) (useful for ensuring values were logged, like during testing) + +## FAQ + +### Conceptual + +#### Why structured logging? + +- **Structured logs are more easily queryable**: Since you've got + key-value pairs, it's much easier to query your structured logs for + particular values by filtering on the contents of a particular key -- + think searching request logs for error codes, Kubernetes reconcilers for + the name and namespace of the reconciled object, etc. + +- **Structured logging makes it easier to have cross-referenceable logs**: + Similarly to searchability, if you maintain conventions around your + keys, it becomes easy to gather all log lines related to a particular + concept. + +- **Structured logs allow better dimensions of filtering**: if you have + structure to your logs, you've got more precise control over how much + information is logged -- you might choose in a particular configuration + to log certain keys but not others, only log lines where a certain key + matches a certain value, etc., instead of just having v-levels and names + to key off of. + +- **Structured logs better represent structured data**: sometimes, the + data that you want to log is inherently structured (think tuple-link + objects.) Structured logs allow you to preserve that structure when + outputting. + +#### Why V-levels? + +**V-levels give operators an easy way to control the chattiness of log +operations**. V-levels provide a way for a given package to distinguish +the relative importance or verbosity of a given log message. Then, if +a particular logger or package is logging too many messages, the user +of the package can simply change the v-levels for that library. + +#### Why not named levels, like Info/Warning/Error? + +Read [Dave Cheney's post][warning-makes-no-sense]. Then read [Differences +from Dave's ideas](#differences-from-daves-ideas). + +#### Why not allow format strings, too? + +**Format strings negate many of the benefits of structured logs**: + +- They're not easily searchable without resorting to fuzzy searching, + regular expressions, etc. + +- They don't store structured data well, since contents are flattened into + a string. + +- They're not cross-referenceable. + +- They don't compress easily, since the message is not constant. + +(Unless you turn positional parameters into key-value pairs with numerical +keys, at which point you've gotten key-value logging with meaningless +keys.) + +### Practical + +#### Why key-value pairs, and not a map? + +Key-value pairs are *much* easier to optimize, especially around +allocations. Zap (a structured logger that inspired logr's interface) has +[performance measurements](https://github.com/uber-go/zap#performance) +that show this quite nicely. + +While the interface ends up being a little less obvious, you get +potentially better performance, plus avoid making users type +`map[string]string{}` every time they want to log. + +#### What if my V-levels differ between libraries? + +That's fine. Control your V-levels on a per-logger basis, and use the +`WithName` method to pass different loggers to different libraries. + +Generally, you should take care to ensure that you have relatively +consistent V-levels within a given logger, however, as this makes deciding +on what verbosity of logs to request easier. + +#### But I really want to use a format string! + +That's not actually a question. Assuming your question is "how do +I convert my mental model of logging with format strings to logging with +constant messages": + +1. Figure out what the error actually is, as you'd write in a TL;DR style, + and use that as a message. + +2. For every place you'd write a format specifier, look to the word before + it, and add that as a key value pair. + +For instance, consider the following examples (all taken from spots in the +Kubernetes codebase): + +- `klog.V(4).Infof("Client is returning errors: code %v, error %v", + responseCode, err)` becomes `logger.Error(err, "client returned an + error", "code", responseCode)` + +- `klog.V(4).Infof("Got a Retry-After %ds response for attempt %d to %v", + seconds, retries, url)` becomes `logger.V(4).Info("got a retry-after + response when requesting url", "attempt", retries, "after + seconds", seconds, "url", url)` + +If you *really* must use a format string, use it in a key's value, and +call `fmt.Sprintf` yourself. For instance: `log.Printf("unable to +reflect over type %T")` becomes `logger.Info("unable to reflect over +type", "type", fmt.Sprintf("%T"))`. In general though, the cases where +this is necessary should be few and far between. + +#### How do I choose my V-levels? + +This is basically the only hard constraint: increase V-levels to denote +more verbose or more debug-y logs. + +Otherwise, you can start out with `0` as "you always want to see this", +`1` as "common logging that you might *possibly* want to turn off", and +`10` as "I would like to performance-test your log collection stack." + +Then gradually choose levels in between as you need them, working your way +down from 10 (for debug and trace style logs) and up from 1 (for chattier +info-type logs.) + +#### How do I choose my keys? + +Keys are fairly flexible, and can hold more or less any string +value. For best compatibility with implementations and consistency +with existing code in other projects, there are a few conventions you +should consider. + +- Make your keys human-readable. +- Constant keys are generally a good idea. +- Be consistent across your codebase. +- Keys should naturally match parts of the message string. +- Use lower case for simple keys and + [lowerCamelCase](https://en.wiktionary.org/wiki/lowerCamelCase) for + more complex ones. Kubernetes is one example of a project that has + [adopted that + convention](https://github.com/kubernetes/community/blob/HEAD/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments). + +While key names are mostly unrestricted (and spaces are acceptable), +it's generally a good idea to stick to printable ascii characters, or at +least match the general character set of your log lines. + +#### Why should keys be constant values? + +The point of structured logging is to make later log processing easier. Your +keys are, effectively, the schema of each log message. If you use different +keys across instances of the same log line, you will make your structured logs +much harder to use. `Sprintf()` is for values, not for keys! + +#### Why is this not a pure interface? + +The Logger type is implemented as a struct in order to allow the Go compiler to +optimize things like high-V `Info` logs that are not triggered. Not all of +these implementations are implemented yet, but this structure was suggested as +a way to ensure they *can* be implemented. All of the real work is behind the +`LogSink` interface. + +[warning-makes-no-sense]: http://dave.cheney.net/2015/11/05/lets-talk-about-logging diff --git a/ecs-agent/vendor/github.com/go-logr/logr/discard.go b/ecs-agent/vendor/github.com/go-logr/logr/discard.go new file mode 100644 index 0000000000..99fe8be93c --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/discard.go @@ -0,0 +1,24 @@ +/* +Copyright 2020 The logr Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package logr + +// Discard returns a Logger that discards all messages logged to it. It can be +// used whenever the caller is not interested in the logs. Logger instances +// produced by this function always compare as equal. +func Discard() Logger { + return New(nil) +} diff --git a/ecs-agent/vendor/github.com/go-logr/logr/logr.go b/ecs-agent/vendor/github.com/go-logr/logr/logr.go new file mode 100644 index 0000000000..e027aea3fd --- /dev/null +++ b/ecs-agent/vendor/github.com/go-logr/logr/logr.go @@ -0,0 +1,550 @@ +/* +Copyright 2019 The logr Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// This design derives from Dave Cheney's blog: +// http://dave.cheney.net/2015/11/05/lets-talk-about-logging + +// Package logr defines a general-purpose logging API and abstract interfaces +// to back that API. Packages in the Go ecosystem can depend on this package, +// while callers can implement logging with whatever backend is appropriate. +// +// # Usage +// +// Logging is done using a Logger instance. Logger is a concrete type with +// methods, which defers the actual logging to a LogSink interface. The main +// methods of Logger are Info() and Error(). Arguments to Info() and Error() +// are key/value pairs rather than printf-style formatted strings, emphasizing +// "structured logging". +// +// With Go's standard log package, we might write: +// +// log.Printf("setting target value %s", targetValue) +// +// With logr's structured logging, we'd write: +// +// logger.Info("setting target", "value", targetValue) +// +// Errors are much the same. Instead of: +// +// log.Printf("failed to open the pod bay door for user %s: %v", user, err) +// +// We'd write: +// +// logger.Error(err, "failed to open the pod bay door", "user", user) +// +// Info() and Error() are very similar, but they are separate methods so that +// LogSink implementations can choose to do things like attach additional +// information (such as stack traces) on calls to Error(). Error() messages are +// always logged, regardless of the current verbosity. If there is no error +// instance available, passing nil is valid. +// +// # Verbosity +// +// Often we want to log information only when the application in "verbose +// mode". To write log lines that are more verbose, Logger has a V() method. +// The higher the V-level of a log line, the less critical it is considered. +// Log-lines with V-levels that are not enabled (as per the LogSink) will not +// be written. Level V(0) is the default, and logger.V(0).Info() has the same +// meaning as logger.Info(). Negative V-levels have the same meaning as V(0). +// Error messages do not have a verbosity level and are always logged. +// +// Where we might have written: +// +// if flVerbose >= 2 { +// log.Printf("an unusual thing happened") +// } +// +// We can write: +// +// logger.V(2).Info("an unusual thing happened") +// +// # Logger Names +// +// Logger instances can have name strings so that all messages logged through +// that instance have additional context. For example, you might want to add +// a subsystem name: +// +// logger.WithName("compactor").Info("started", "time", time.Now()) +// +// The WithName() method returns a new Logger, which can be passed to +// constructors or other functions for further use. Repeated use of WithName() +// will accumulate name "segments". These name segments will be joined in some +// way by the LogSink implementation. It is strongly recommended that name +// segments contain simple identifiers (letters, digits, and hyphen), and do +// not contain characters that could muddle the log output or confuse the +// joining operation (e.g. whitespace, commas, periods, slashes, brackets, +// quotes, etc). +// +// # Saved Values +// +// Logger instances can store any number of key/value pairs, which will be +// logged alongside all messages logged through that instance. For example, +// you might want to create a Logger instance per managed object: +// +// With the standard log package, we might write: +// +// log.Printf("decided to set field foo to value %q for object %s/%s", +// targetValue, object.Namespace, object.Name) +// +// With logr we'd write: +// +// // Elsewhere: set up the logger to log the object name. +// obj.logger = mainLogger.WithValues( +// "name", obj.name, "namespace", obj.namespace) +// +// // later on... +// obj.logger.Info("setting foo", "value", targetValue) +// +// # Best Practices +// +// Logger has very few hard rules, with the goal that LogSink implementations +// might have a lot of freedom to differentiate. There are, however, some +// things to consider. +// +// The log message consists of a constant message attached to the log line. +// This should generally be a simple description of what's occurring, and should +// never be a format string. Variable information can then be attached using +// named values. +// +// Keys are arbitrary strings, but should generally be constant values. Values +// may be any Go value, but how the value is formatted is determined by the +// LogSink implementation. +// +// Logger instances are meant to be passed around by value. Code that receives +// such a value can call its methods without having to check whether the +// instance is ready for use. +// +// Calling methods with the null logger (Logger{}) as instance will crash +// because it has no LogSink. Therefore this null logger should never be passed +// around. For cases where passing a logger is optional, a pointer to Logger +// should be used. +// +// # Key Naming Conventions +// +// Keys are not strictly required to conform to any specification or regex, but +// it is recommended that they: +// - be human-readable and meaningful (not auto-generated or simple ordinals) +// - be constant (not dependent on input data) +// - contain only printable characters +// - not contain whitespace or punctuation +// - use lower case for simple keys and lowerCamelCase for more complex ones +// +// These guidelines help ensure that log data is processed properly regardless +// of the log implementation. For example, log implementations will try to +// output JSON data or will store data for later database (e.g. SQL) queries. +// +// While users are generally free to use key names of their choice, it's +// generally best to avoid using the following keys, as they're frequently used +// by implementations: +// - "caller": the calling information (file/line) of a particular log line +// - "error": the underlying error value in the `Error` method +// - "level": the log level +// - "logger": the name of the associated logger +// - "msg": the log message +// - "stacktrace": the stack trace associated with a particular log line or +// error (often from the `Error` message) +// - "ts": the timestamp for a log line +// +// Implementations are encouraged to make use of these keys to represent the +// above concepts, when necessary (for example, in a pure-JSON output form, it +// would be necessary to represent at least message and timestamp as ordinary +// named values). +// +// # Break Glass +// +// Implementations may choose to give callers access to the underlying +// logging implementation. The recommended pattern for this is: +// +// // Underlier exposes access to the underlying logging implementation. +// // Since callers only have a logr.Logger, they have to know which +// // implementation is in use, so this interface is less of an abstraction +// // and more of way to test type conversion. +// type Underlier interface { +// GetUnderlying() +// } +// +// Logger grants access to the sink to enable type assertions like this: +// +// func DoSomethingWithImpl(log logr.Logger) { +// if underlier, ok := log.GetSink().(impl.Underlier); ok { +// implLogger := underlier.GetUnderlying() +// ... +// } +// } +// +// Custom `With*` functions can be implemented by copying the complete +// Logger struct and replacing the sink in the copy: +// +// // WithFooBar changes the foobar parameter in the log sink and returns a +// // new logger with that modified sink. It does nothing for loggers where +// // the sink doesn't support that parameter. +// func WithFoobar(log logr.Logger, foobar int) logr.Logger { +// if foobarLogSink, ok := log.GetSink().(FoobarSink); ok { +// log = log.WithSink(foobarLogSink.WithFooBar(foobar)) +// } +// return log +// } +// +// Don't use New to construct a new Logger with a LogSink retrieved from an +// existing Logger. Source code attribution might not work correctly and +// unexported fields in Logger get lost. +// +// Beware that the same LogSink instance may be shared by different logger +// instances. Calling functions that modify the LogSink will affect all of +// those. +package logr + +import ( + "context" +) + +// New returns a new Logger instance. This is primarily used by libraries +// implementing LogSink, rather than end users. Passing a nil sink will create +// a Logger which discards all log lines. +func New(sink LogSink) Logger { + logger := Logger{} + logger.setSink(sink) + if sink != nil { + sink.Init(runtimeInfo) + } + return logger +} + +// setSink stores the sink and updates any related fields. It mutates the +// logger and thus is only safe to use for loggers that are not currently being +// used concurrently. +func (l *Logger) setSink(sink LogSink) { + l.sink = sink +} + +// GetSink returns the stored sink. +func (l Logger) GetSink() LogSink { + return l.sink +} + +// WithSink returns a copy of the logger with the new sink. +func (l Logger) WithSink(sink LogSink) Logger { + l.setSink(sink) + return l +} + +// Logger is an interface to an abstract logging implementation. This is a +// concrete type for performance reasons, but all the real work is passed on to +// a LogSink. Implementations of LogSink should provide their own constructors +// that return Logger, not LogSink. +// +// The underlying sink can be accessed through GetSink and be modified through +// WithSink. This enables the implementation of custom extensions (see "Break +// Glass" in the package documentation). Normally the sink should be used only +// indirectly. +type Logger struct { + sink LogSink + level int +} + +// Enabled tests whether this Logger is enabled. For example, commandline +// flags might be used to set the logging verbosity and disable some info logs. +func (l Logger) Enabled() bool { + return l.sink != nil && l.sink.Enabled(l.level) +} + +// Info logs a non-error message with the given key/value pairs as context. +// +// The msg argument should be used to add some constant description to the log +// line. The key/value pairs can then be used to add additional variable +// information. The key/value pairs must alternate string keys and arbitrary +// values. +func (l Logger) Info(msg string, keysAndValues ...interface{}) { + if l.sink == nil { + return + } + if l.Enabled() { + if withHelper, ok := l.sink.(CallStackHelperLogSink); ok { + withHelper.GetCallStackHelper()() + } + l.sink.Info(l.level, msg, keysAndValues...) + } +} + +// Error logs an error, with the given message and key/value pairs as context. +// It functions similarly to Info, but may have unique behavior, and should be +// preferred for logging errors (see the package documentations for more +// information). The log message will always be emitted, regardless of +// verbosity level. +// +// The msg argument should be used to add context to any underlying error, +// while the err argument should be used to attach the actual error that +// triggered this log line, if present. The err parameter is optional +// and nil may be passed instead of an error instance. +func (l Logger) Error(err error, msg string, keysAndValues ...interface{}) { + if l.sink == nil { + return + } + if withHelper, ok := l.sink.(CallStackHelperLogSink); ok { + withHelper.GetCallStackHelper()() + } + l.sink.Error(err, msg, keysAndValues...) +} + +// V returns a new Logger instance for a specific verbosity level, relative to +// this Logger. In other words, V-levels are additive. A higher verbosity +// level means a log message is less important. Negative V-levels are treated +// as 0. +func (l Logger) V(level int) Logger { + if l.sink == nil { + return l + } + if level < 0 { + level = 0 + } + l.level += level + return l +} + +// WithValues returns a new Logger instance with additional key/value pairs. +// See Info for documentation on how key/value pairs work. +func (l Logger) WithValues(keysAndValues ...interface{}) Logger { + if l.sink == nil { + return l + } + l.setSink(l.sink.WithValues(keysAndValues...)) + return l +} + +// WithName returns a new Logger instance with the specified name element added +// to the Logger's name. Successive calls with WithName append additional +// suffixes to the Logger's name. It's strongly recommended that name segments +// contain only letters, digits, and hyphens (see the package documentation for +// more information). +func (l Logger) WithName(name string) Logger { + if l.sink == nil { + return l + } + l.setSink(l.sink.WithName(name)) + return l +} + +// WithCallDepth returns a Logger instance that offsets the call stack by the +// specified number of frames when logging call site information, if possible. +// This is useful for users who have helper functions between the "real" call +// site and the actual calls to Logger methods. If depth is 0 the attribution +// should be to the direct caller of this function. If depth is 1 the +// attribution should skip 1 call frame, and so on. Successive calls to this +// are additive. +// +// If the underlying log implementation supports a WithCallDepth(int) method, +// it will be called and the result returned. If the implementation does not +// support CallDepthLogSink, the original Logger will be returned. +// +// To skip one level, WithCallStackHelper() should be used instead of +// WithCallDepth(1) because it works with implementions that support the +// CallDepthLogSink and/or CallStackHelperLogSink interfaces. +func (l Logger) WithCallDepth(depth int) Logger { + if l.sink == nil { + return l + } + if withCallDepth, ok := l.sink.(CallDepthLogSink); ok { + l.setSink(withCallDepth.WithCallDepth(depth)) + } + return l +} + +// WithCallStackHelper returns a new Logger instance that skips the direct +// caller when logging call site information, if possible. This is useful for +// users who have helper functions between the "real" call site and the actual +// calls to Logger methods and want to support loggers which depend on marking +// each individual helper function, like loggers based on testing.T. +// +// In addition to using that new logger instance, callers also must call the +// returned function. +// +// If the underlying log implementation supports a WithCallDepth(int) method, +// WithCallDepth(1) will be called to produce a new logger. If it supports a +// WithCallStackHelper() method, that will be also called. If the +// implementation does not support either of these, the original Logger will be +// returned. +func (l Logger) WithCallStackHelper() (func(), Logger) { + if l.sink == nil { + return func() {}, l + } + var helper func() + if withCallDepth, ok := l.sink.(CallDepthLogSink); ok { + l.setSink(withCallDepth.WithCallDepth(1)) + } + if withHelper, ok := l.sink.(CallStackHelperLogSink); ok { + helper = withHelper.GetCallStackHelper() + } else { + helper = func() {} + } + return helper, l +} + +// IsZero returns true if this logger is an uninitialized zero value +func (l Logger) IsZero() bool { + return l.sink == nil +} + +// contextKey is how we find Loggers in a context.Context. +type contextKey struct{} + +// FromContext returns a Logger from ctx or an error if no Logger is found. +func FromContext(ctx context.Context) (Logger, error) { + if v, ok := ctx.Value(contextKey{}).(Logger); ok { + return v, nil + } + + return Logger{}, notFoundError{} +} + +// notFoundError exists to carry an IsNotFound method. +type notFoundError struct{} + +func (notFoundError) Error() string { + return "no logr.Logger was present" +} + +func (notFoundError) IsNotFound() bool { + return true +} + +// FromContextOrDiscard returns a Logger from ctx. If no Logger is found, this +// returns a Logger that discards all log messages. +func FromContextOrDiscard(ctx context.Context) Logger { + if v, ok := ctx.Value(contextKey{}).(Logger); ok { + return v + } + + return Discard() +} + +// NewContext returns a new Context, derived from ctx, which carries the +// provided Logger. +func NewContext(ctx context.Context, logger Logger) context.Context { + return context.WithValue(ctx, contextKey{}, logger) +} + +// RuntimeInfo holds information that the logr "core" library knows which +// LogSinks might want to know. +type RuntimeInfo struct { + // CallDepth is the number of call frames the logr library adds between the + // end-user and the LogSink. LogSink implementations which choose to print + // the original logging site (e.g. file & line) should climb this many + // additional frames to find it. + CallDepth int +} + +// runtimeInfo is a static global. It must not be changed at run time. +var runtimeInfo = RuntimeInfo{ + CallDepth: 1, +} + +// LogSink represents a logging implementation. End-users will generally not +// interact with this type. +type LogSink interface { + // Init receives optional information about the logr library for LogSink + // implementations that need it. + Init(info RuntimeInfo) + + // Enabled tests whether this LogSink is enabled at the specified V-level. + // For example, commandline flags might be used to set the logging + // verbosity and disable some info logs. + Enabled(level int) bool + + // Info logs a non-error message with the given key/value pairs as context. + // The level argument is provided for optional logging. This method will + // only be called when Enabled(level) is true. See Logger.Info for more + // details. + Info(level int, msg string, keysAndValues ...interface{}) + + // Error logs an error, with the given message and key/value pairs as + // context. See Logger.Error for more details. + Error(err error, msg string, keysAndValues ...interface{}) + + // WithValues returns a new LogSink with additional key/value pairs. See + // Logger.WithValues for more details. + WithValues(keysAndValues ...interface{}) LogSink + + // WithName returns a new LogSink with the specified name appended. See + // Logger.WithName for more details. + WithName(name string) LogSink +} + +// CallDepthLogSink represents a LogSink that knows how to climb the call stack +// to identify the original call site and can offset the depth by a specified +// number of frames. This is useful for users who have helper functions +// between the "real" call site and the actual calls to Logger methods. +// Implementations that log information about the call site (such as file, +// function, or line) would otherwise log information about the intermediate +// helper functions. +// +// This is an optional interface and implementations are not required to +// support it. +type CallDepthLogSink interface { + // WithCallDepth returns a LogSink that will offset the call + // stack by the specified number of frames when logging call + // site information. + // + // If depth is 0, the LogSink should skip exactly the number + // of call frames defined in RuntimeInfo.CallDepth when Info + // or Error are called, i.e. the attribution should be to the + // direct caller of Logger.Info or Logger.Error. + // + // If depth is 1 the attribution should skip 1 call frame, and so on. + // Successive calls to this are additive. + WithCallDepth(depth int) LogSink +} + +// CallStackHelperLogSink represents a LogSink that knows how to climb +// the call stack to identify the original call site and can skip +// intermediate helper functions if they mark themselves as +// helper. Go's testing package uses that approach. +// +// This is useful for users who have helper functions between the +// "real" call site and the actual calls to Logger methods. +// Implementations that log information about the call site (such as +// file, function, or line) would otherwise log information about the +// intermediate helper functions. +// +// This is an optional interface and implementations are not required +// to support it. Implementations that choose to support this must not +// simply implement it as WithCallDepth(1), because +// Logger.WithCallStackHelper will call both methods if they are +// present. This should only be implemented for LogSinks that actually +// need it, as with testing.T. +type CallStackHelperLogSink interface { + // GetCallStackHelper returns a function that must be called + // to mark the direct caller as helper function when logging + // call site information. + GetCallStackHelper() func() +} + +// Marshaler is an optional interface that logged values may choose to +// implement. Loggers with structured output, such as JSON, should +// log the object return by the MarshalLog method instead of the +// original value. +type Marshaler interface { + // MarshalLog can be used to: + // - ensure that structs are not logged as strings when the original + // value has a String method: return a different type without a + // String method + // - select which fields of a complex type should get logged: + // return a simpler struct with fewer fields + // - log unexported fields: return a different struct + // with exported fields + // + // It may return any value of any type. + MarshalLog() interface{} +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/AUTHORS b/ecs-agent/vendor/github.com/gogo/protobuf/AUTHORS new file mode 100644 index 0000000000..3d97fc7a29 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/AUTHORS @@ -0,0 +1,15 @@ +# This is the official list of GoGo authors for copyright purposes. +# This file is distinct from the CONTRIBUTORS file, which +# lists people. For example, employees are listed in CONTRIBUTORS, +# but not in AUTHORS, because the employer holds the copyright. + +# Names should be added to this file as one of +# Organization's name +# Individual's name +# Individual's name + +# Please keep the list sorted. + +Sendgrid, Inc +Vastech SA (PTY) LTD +Walter Schulze diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/CONTRIBUTORS b/ecs-agent/vendor/github.com/gogo/protobuf/CONTRIBUTORS new file mode 100644 index 0000000000..1b4f6c208a --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/CONTRIBUTORS @@ -0,0 +1,23 @@ +Anton Povarov +Brian Goff +Clayton Coleman +Denis Smirnov +DongYun Kang +Dwayne Schultz +Georg Apitz +Gustav Paul +Johan Brandhorst +John Shahid +John Tuley +Laurent +Patrick Lee +Peter Edge +Roger Johansson +Sam Nguyen +Sergio Arbeo +Stephen J Day +Tamir Duberstein +Todd Eisenberger +Tormod Erevik Lea +Vyacheslav Kim +Walter Schulze diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/LICENSE b/ecs-agent/vendor/github.com/gogo/protobuf/LICENSE new file mode 100644 index 0000000000..f57de90da8 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/LICENSE @@ -0,0 +1,35 @@ +Copyright (c) 2013, The GoGo Authors. All rights reserved. + +Protocol Buffers for Go with Gadgets + +Go support for Protocol Buffers - Google's data interchange format + +Copyright 2010 The Go Authors. All rights reserved. +https://github.com/golang/protobuf + +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. + diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/Makefile b/ecs-agent/vendor/github.com/gogo/protobuf/proto/Makefile new file mode 100644 index 0000000000..00d65f3277 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/Makefile @@ -0,0 +1,43 @@ +# Go support for Protocol Buffers - Google's data interchange format +# +# Copyright 2010 The Go Authors. All rights reserved. +# https://github.com/golang/protobuf +# +# 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. + +install: + go install + +test: install generate-test-pbs + go test + + +generate-test-pbs: + make install + make -C test_proto + make -C proto3_proto + make diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/clone.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/clone.go new file mode 100644 index 0000000000..a26b046d94 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/clone.go @@ -0,0 +1,258 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// Protocol buffer deep copy and merge. +// TODO: RawMessage. + +package proto + +import ( + "fmt" + "log" + "reflect" + "strings" +) + +// Clone returns a deep copy of a protocol buffer. +func Clone(src Message) Message { + in := reflect.ValueOf(src) + if in.IsNil() { + return src + } + out := reflect.New(in.Type().Elem()) + dst := out.Interface().(Message) + Merge(dst, src) + return dst +} + +// Merger is the interface representing objects that can merge messages of the same type. +type Merger interface { + // Merge merges src into this message. + // Required and optional fields that are set in src will be set to that value in dst. + // Elements of repeated fields will be appended. + // + // Merge may panic if called with a different argument type than the receiver. + Merge(src Message) +} + +// generatedMerger is the custom merge method that generated protos will have. +// We must add this method since a generate Merge method will conflict with +// many existing protos that have a Merge data field already defined. +type generatedMerger interface { + XXX_Merge(src Message) +} + +// Merge merges src into dst. +// Required and optional fields that are set in src will be set to that value in dst. +// Elements of repeated fields will be appended. +// Merge panics if src and dst are not the same type, or if dst is nil. +func Merge(dst, src Message) { + if m, ok := dst.(Merger); ok { + m.Merge(src) + return + } + + in := reflect.ValueOf(src) + out := reflect.ValueOf(dst) + if out.IsNil() { + panic("proto: nil destination") + } + if in.Type() != out.Type() { + panic(fmt.Sprintf("proto.Merge(%T, %T) type mismatch", dst, src)) + } + if in.IsNil() { + return // Merge from nil src is a noop + } + if m, ok := dst.(generatedMerger); ok { + m.XXX_Merge(src) + return + } + mergeStruct(out.Elem(), in.Elem()) +} + +func mergeStruct(out, in reflect.Value) { + sprop := GetProperties(in.Type()) + for i := 0; i < in.NumField(); i++ { + f := in.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + mergeAny(out.Field(i), in.Field(i), false, sprop.Prop[i]) + } + + if emIn, ok := in.Addr().Interface().(extensionsBytes); ok { + emOut := out.Addr().Interface().(extensionsBytes) + bIn := emIn.GetExtensions() + bOut := emOut.GetExtensions() + *bOut = append(*bOut, *bIn...) + } else if emIn, err := extendable(in.Addr().Interface()); err == nil { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } + } + + uf := in.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return + } + uin := uf.Bytes() + if len(uin) > 0 { + out.FieldByName("XXX_unrecognized").SetBytes(append([]byte(nil), uin...)) + } +} + +// mergeAny performs a merge between two values of the same type. +// viaPtr indicates whether the values were indirected through a pointer (implying proto2). +// prop is set if this is a struct field (it may be nil). +func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) { + if in.Type() == protoMessageType { + if !in.IsNil() { + if out.IsNil() { + out.Set(reflect.ValueOf(Clone(in.Interface().(Message)))) + } else { + Merge(out.Interface().(Message), in.Interface().(Message)) + } + } + return + } + switch in.Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + if !viaPtr && isProto3Zero(in) { + return + } + out.Set(in) + case reflect.Interface: + // Probably a oneof field; copy non-nil values. + if in.IsNil() { + return + } + // Allocate destination if it is not set, or set to a different type. + // Otherwise we will merge as normal. + if out.IsNil() || out.Elem().Type() != in.Elem().Type() { + out.Set(reflect.New(in.Elem().Elem().Type())) // interface -> *T -> T -> new(T) + } + mergeAny(out.Elem(), in.Elem(), false, nil) + case reflect.Map: + if in.Len() == 0 { + return + } + if out.IsNil() { + out.Set(reflect.MakeMap(in.Type())) + } + // For maps with value types of *T or []byte we need to deep copy each value. + elemKind := in.Type().Elem().Kind() + for _, key := range in.MapKeys() { + var val reflect.Value + switch elemKind { + case reflect.Ptr: + val = reflect.New(in.Type().Elem().Elem()) + mergeAny(val, in.MapIndex(key), false, nil) + case reflect.Slice: + val = in.MapIndex(key) + val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) + default: + val = in.MapIndex(key) + } + out.SetMapIndex(key, val) + } + case reflect.Ptr: + if in.IsNil() { + return + } + if out.IsNil() { + out.Set(reflect.New(in.Elem().Type())) + } + mergeAny(out.Elem(), in.Elem(), true, nil) + case reflect.Slice: + if in.IsNil() { + return + } + if in.Type().Elem().Kind() == reflect.Uint8 { + // []byte is a scalar bytes field, not a repeated field. + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value, and should not + // be merged. + if prop != nil && prop.proto3 && in.Len() == 0 { + return + } + + // Make a deep copy. + // Append to []byte{} instead of []byte(nil) so that we never end up + // with a nil result. + out.SetBytes(append([]byte{}, in.Bytes()...)) + return + } + n := in.Len() + if out.IsNil() { + out.Set(reflect.MakeSlice(in.Type(), 0, n)) + } + switch in.Type().Elem().Kind() { + case reflect.Bool, reflect.Float32, reflect.Float64, reflect.Int32, reflect.Int64, + reflect.String, reflect.Uint32, reflect.Uint64: + out.Set(reflect.AppendSlice(out, in)) + default: + for i := 0; i < n; i++ { + x := reflect.Indirect(reflect.New(in.Type().Elem())) + mergeAny(x, in.Index(i), false, nil) + out.Set(reflect.Append(out, x)) + } + } + case reflect.Struct: + mergeStruct(out, in) + default: + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to copy %v", in) + } +} + +func mergeExtension(out, in map[int32]Extension) { + for extNum, eIn := range in { + eOut := Extension{desc: eIn.desc} + if eIn.value != nil { + v := reflect.New(reflect.TypeOf(eIn.value)).Elem() + mergeAny(v, reflect.ValueOf(eIn.value), false, nil) + eOut.value = v.Interface() + } + if eIn.enc != nil { + eOut.enc = make([]byte, len(eIn.enc)) + copy(eOut.enc, eIn.enc) + } + + out[extNum] = eOut + } +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/custom_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/custom_gogo.go new file mode 100644 index 0000000000..24552483c6 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/custom_gogo.go @@ -0,0 +1,39 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import "reflect" + +type custom interface { + Marshal() ([]byte, error) + Unmarshal(data []byte) error + Size() int +} + +var customType = reflect.TypeOf((*custom)(nil)).Elem() diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/decode.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/decode.go new file mode 100644 index 0000000000..63b0f08bef --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/decode.go @@ -0,0 +1,427 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +/* + * Routines for decoding protocol buffer data to construct in-memory representations. + */ + +import ( + "errors" + "fmt" + "io" +) + +// errOverflow is returned when an integer is too large to be represented. +var errOverflow = errors.New("proto: integer overflow") + +// ErrInternalBadWireType is returned by generated code when an incorrect +// wire type is encountered. It does not get returned to user code. +var ErrInternalBadWireType = errors.New("proto: internal error: bad wiretype for oneof") + +// DecodeVarint reads a varint-encoded integer from the slice. +// It returns the integer and the number of bytes consumed, or +// zero if there is not enough. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func DecodeVarint(buf []byte) (x uint64, n int) { + for shift := uint(0); shift < 64; shift += 7 { + if n >= len(buf) { + return 0, 0 + } + b := uint64(buf[n]) + n++ + x |= (b & 0x7F) << shift + if (b & 0x80) == 0 { + return x, n + } + } + + // The number is too large to represent in a 64-bit value. + return 0, 0 +} + +func (p *Buffer) decodeVarintSlow() (x uint64, err error) { + i := p.index + l := len(p.buf) + + for shift := uint(0); shift < 64; shift += 7 { + if i >= l { + err = io.ErrUnexpectedEOF + return + } + b := p.buf[i] + i++ + x |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + p.index = i + return + } + } + + // The number is too large to represent in a 64-bit value. + err = errOverflow + return +} + +// DecodeVarint reads a varint-encoded integer from the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) DecodeVarint() (x uint64, err error) { + i := p.index + buf := p.buf + + if i >= len(buf) { + return 0, io.ErrUnexpectedEOF + } else if buf[i] < 0x80 { + p.index++ + return uint64(buf[i]), nil + } else if len(buf)-i < 10 { + return p.decodeVarintSlow() + } + + var b uint64 + // we already checked the first byte + x = uint64(buf[i]) - 0x80 + i++ + + b = uint64(buf[i]) + i++ + x += b << 7 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 7 + + b = uint64(buf[i]) + i++ + x += b << 14 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 14 + + b = uint64(buf[i]) + i++ + x += b << 21 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 21 + + b = uint64(buf[i]) + i++ + x += b << 28 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 28 + + b = uint64(buf[i]) + i++ + x += b << 35 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 35 + + b = uint64(buf[i]) + i++ + x += b << 42 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 42 + + b = uint64(buf[i]) + i++ + x += b << 49 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 49 + + b = uint64(buf[i]) + i++ + x += b << 56 + if b&0x80 == 0 { + goto done + } + x -= 0x80 << 56 + + b = uint64(buf[i]) + i++ + x += b << 63 + if b&0x80 == 0 { + goto done + } + + return 0, errOverflow + +done: + p.index = i + return x, nil +} + +// DecodeFixed64 reads a 64-bit integer from the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) DecodeFixed64() (x uint64, err error) { + // x, err already 0 + i := p.index + 8 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-8]) + x |= uint64(p.buf[i-7]) << 8 + x |= uint64(p.buf[i-6]) << 16 + x |= uint64(p.buf[i-5]) << 24 + x |= uint64(p.buf[i-4]) << 32 + x |= uint64(p.buf[i-3]) << 40 + x |= uint64(p.buf[i-2]) << 48 + x |= uint64(p.buf[i-1]) << 56 + return +} + +// DecodeFixed32 reads a 32-bit integer from the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) DecodeFixed32() (x uint64, err error) { + // x, err already 0 + i := p.index + 4 + if i < 0 || i > len(p.buf) { + err = io.ErrUnexpectedEOF + return + } + p.index = i + + x = uint64(p.buf[i-4]) + x |= uint64(p.buf[i-3]) << 8 + x |= uint64(p.buf[i-2]) << 16 + x |= uint64(p.buf[i-1]) << 24 + return +} + +// DecodeZigzag64 reads a zigzag-encoded 64-bit integer +// from the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) DecodeZigzag64() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = (x >> 1) ^ uint64((int64(x&1)<<63)>>63) + return +} + +// DecodeZigzag32 reads a zigzag-encoded 32-bit integer +// from the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) DecodeZigzag32() (x uint64, err error) { + x, err = p.DecodeVarint() + if err != nil { + return + } + x = uint64((uint32(x) >> 1) ^ uint32((int32(x&1)<<31)>>31)) + return +} + +// DecodeRawBytes reads a count-delimited byte buffer from the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) { + n, err := p.DecodeVarint() + if err != nil { + return nil, err + } + + nb := int(n) + if nb < 0 { + return nil, fmt.Errorf("proto: bad byte length %d", nb) + } + end := p.index + nb + if end < p.index || end > len(p.buf) { + return nil, io.ErrUnexpectedEOF + } + + if !alloc { + // todo: check if can get more uses of alloc=false + buf = p.buf[p.index:end] + p.index += nb + return + } + + buf = make([]byte, nb) + copy(buf, p.buf[p.index:]) + p.index += nb + return +} + +// DecodeStringBytes reads an encoded string from the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) DecodeStringBytes() (s string, err error) { + buf, err := p.DecodeRawBytes(false) + if err != nil { + return + } + return string(buf), nil +} + +// Unmarshaler is the interface representing objects that can +// unmarshal themselves. The argument points to data that may be +// overwritten, so implementations should not keep references to the +// buffer. +// Unmarshal implementations should not clear the receiver. +// Any unmarshaled data should be merged into the receiver. +// Callers of Unmarshal that do not want to retain existing data +// should Reset the receiver before calling Unmarshal. +type Unmarshaler interface { + Unmarshal([]byte) error +} + +// newUnmarshaler is the interface representing objects that can +// unmarshal themselves. The semantics are identical to Unmarshaler. +// +// This exists to support protoc-gen-go generated messages. +// The proto package will stop type-asserting to this interface in the future. +// +// DO NOT DEPEND ON THIS. +type newUnmarshaler interface { + XXX_Unmarshal([]byte) error +} + +// Unmarshal parses the protocol buffer representation in buf and places the +// decoded result in pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// Unmarshal resets pb before starting to unmarshal, so any +// existing data in pb is always removed. Use UnmarshalMerge +// to preserve and append to existing data. +func Unmarshal(buf []byte, pb Message) error { + pb.Reset() + if u, ok := pb.(newUnmarshaler); ok { + return u.XXX_Unmarshal(buf) + } + if u, ok := pb.(Unmarshaler); ok { + return u.Unmarshal(buf) + } + return NewBuffer(buf).Unmarshal(pb) +} + +// UnmarshalMerge parses the protocol buffer representation in buf and +// writes the decoded result to pb. If the struct underlying pb does not match +// the data in buf, the results can be unpredictable. +// +// UnmarshalMerge merges into existing data in pb. +// Most code should use Unmarshal instead. +func UnmarshalMerge(buf []byte, pb Message) error { + if u, ok := pb.(newUnmarshaler); ok { + return u.XXX_Unmarshal(buf) + } + if u, ok := pb.(Unmarshaler); ok { + // NOTE: The history of proto have unfortunately been inconsistent + // whether Unmarshaler should or should not implicitly clear itself. + // Some implementations do, most do not. + // Thus, calling this here may or may not do what people want. + // + // See https://github.com/golang/protobuf/issues/424 + return u.Unmarshal(buf) + } + return NewBuffer(buf).Unmarshal(pb) +} + +// DecodeMessage reads a count-delimited message from the Buffer. +func (p *Buffer) DecodeMessage(pb Message) error { + enc, err := p.DecodeRawBytes(false) + if err != nil { + return err + } + return NewBuffer(enc).Unmarshal(pb) +} + +// DecodeGroup reads a tag-delimited group from the Buffer. +// StartGroup tag is already consumed. This function consumes +// EndGroup tag. +func (p *Buffer) DecodeGroup(pb Message) error { + b := p.buf[p.index:] + x, y := findEndGroup(b) + if x < 0 { + return io.ErrUnexpectedEOF + } + err := Unmarshal(b[:x], pb) + p.index += y + return err +} + +// Unmarshal parses the protocol buffer representation in the +// Buffer and places the decoded result in pb. If the struct +// underlying pb does not match the data in the buffer, the results can be +// unpredictable. +// +// Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal. +func (p *Buffer) Unmarshal(pb Message) error { + // If the object can unmarshal itself, let it. + if u, ok := pb.(newUnmarshaler); ok { + err := u.XXX_Unmarshal(p.buf[p.index:]) + p.index = len(p.buf) + return err + } + if u, ok := pb.(Unmarshaler); ok { + // NOTE: The history of proto have unfortunately been inconsistent + // whether Unmarshaler should or should not implicitly clear itself. + // Some implementations do, most do not. + // Thus, calling this here may or may not do what people want. + // + // See https://github.com/golang/protobuf/issues/424 + err := u.Unmarshal(p.buf[p.index:]) + p.index = len(p.buf) + return err + } + + // Slow workaround for messages that aren't Unmarshalers. + // This includes some hand-coded .pb.go files and + // bootstrap protos. + // TODO: fix all of those and then add Unmarshal to + // the Message interface. Then: + // The cast above and code below can be deleted. + // The old unmarshaler can be deleted. + // Clients can call Unmarshal directly (can already do that, actually). + var info InternalMessageInfo + err := info.Unmarshal(pb, p.buf[p.index:]) + p.index = len(p.buf) + return err +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/deprecated.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/deprecated.go new file mode 100644 index 0000000000..35b882c09a --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/deprecated.go @@ -0,0 +1,63 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2018 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +import "errors" + +// Deprecated: do not use. +type Stats struct{ Emalloc, Dmalloc, Encode, Decode, Chit, Cmiss, Size uint64 } + +// Deprecated: do not use. +func GetStats() Stats { return Stats{} } + +// Deprecated: do not use. +func MarshalMessageSet(interface{}) ([]byte, error) { + return nil, errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func UnmarshalMessageSet([]byte, interface{}) error { + return errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func MarshalMessageSetJSON(interface{}) ([]byte, error) { + return nil, errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func UnmarshalMessageSetJSON([]byte, interface{}) error { + return errors.New("proto: not implemented") +} + +// Deprecated: do not use. +func RegisterMessageSetType(Message, int32, string) {} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/discard.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/discard.go new file mode 100644 index 0000000000..fe1bd7d904 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/discard.go @@ -0,0 +1,350 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2017 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +import ( + "fmt" + "reflect" + "strings" + "sync" + "sync/atomic" +) + +type generatedDiscarder interface { + XXX_DiscardUnknown() +} + +// DiscardUnknown recursively discards all unknown fields from this message +// and all embedded messages. +// +// When unmarshaling a message with unrecognized fields, the tags and values +// of such fields are preserved in the Message. This allows a later call to +// marshal to be able to produce a message that continues to have those +// unrecognized fields. To avoid this, DiscardUnknown is used to +// explicitly clear the unknown fields after unmarshaling. +// +// For proto2 messages, the unknown fields of message extensions are only +// discarded from messages that have been accessed via GetExtension. +func DiscardUnknown(m Message) { + if m, ok := m.(generatedDiscarder); ok { + m.XXX_DiscardUnknown() + return + } + // TODO: Dynamically populate a InternalMessageInfo for legacy messages, + // but the master branch has no implementation for InternalMessageInfo, + // so it would be more work to replicate that approach. + discardLegacy(m) +} + +// DiscardUnknown recursively discards all unknown fields. +func (a *InternalMessageInfo) DiscardUnknown(m Message) { + di := atomicLoadDiscardInfo(&a.discard) + if di == nil { + di = getDiscardInfo(reflect.TypeOf(m).Elem()) + atomicStoreDiscardInfo(&a.discard, di) + } + di.discard(toPointer(&m)) +} + +type discardInfo struct { + typ reflect.Type + + initialized int32 // 0: only typ is valid, 1: everything is valid + lock sync.Mutex + + fields []discardFieldInfo + unrecognized field +} + +type discardFieldInfo struct { + field field // Offset of field, guaranteed to be valid + discard func(src pointer) +} + +var ( + discardInfoMap = map[reflect.Type]*discardInfo{} + discardInfoLock sync.Mutex +) + +func getDiscardInfo(t reflect.Type) *discardInfo { + discardInfoLock.Lock() + defer discardInfoLock.Unlock() + di := discardInfoMap[t] + if di == nil { + di = &discardInfo{typ: t} + discardInfoMap[t] = di + } + return di +} + +func (di *discardInfo) discard(src pointer) { + if src.isNil() { + return // Nothing to do. + } + + if atomic.LoadInt32(&di.initialized) == 0 { + di.computeDiscardInfo() + } + + for _, fi := range di.fields { + sfp := src.offset(fi.field) + fi.discard(sfp) + } + + // For proto2 messages, only discard unknown fields in message extensions + // that have been accessed via GetExtension. + if em, err := extendable(src.asPointerTo(di.typ).Interface()); err == nil { + // Ignore lock since DiscardUnknown is not concurrency safe. + emm, _ := em.extensionsRead() + for _, mx := range emm { + if m, ok := mx.value.(Message); ok { + DiscardUnknown(m) + } + } + } + + if di.unrecognized.IsValid() { + *src.offset(di.unrecognized).toBytes() = nil + } +} + +func (di *discardInfo) computeDiscardInfo() { + di.lock.Lock() + defer di.lock.Unlock() + if di.initialized != 0 { + return + } + t := di.typ + n := t.NumField() + + for i := 0; i < n; i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + + dfi := discardFieldInfo{field: toField(&f)} + tf := f.Type + + // Unwrap tf to get its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic(fmt.Sprintf("%v.%s cannot be a slice of pointers to primitive types", t, f.Name)) + } + + switch tf.Kind() { + case reflect.Struct: + switch { + case !isPointer: + panic(fmt.Sprintf("%v.%s cannot be a direct struct value", t, f.Name)) + case isSlice: // E.g., []*pb.T + discardInfo := getDiscardInfo(tf) + dfi.discard = func(src pointer) { + sps := src.getPointerSlice() + for _, sp := range sps { + if !sp.isNil() { + discardInfo.discard(sp) + } + } + } + default: // E.g., *pb.T + discardInfo := getDiscardInfo(tf) + dfi.discard = func(src pointer) { + sp := src.getPointer() + if !sp.isNil() { + discardInfo.discard(sp) + } + } + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%v.%s cannot be a pointer to a map or a slice of map values", t, f.Name)) + default: // E.g., map[K]V + if tf.Elem().Kind() == reflect.Ptr { // Proto struct (e.g., *T) + dfi.discard = func(src pointer) { + sm := src.asPointerTo(tf).Elem() + if sm.Len() == 0 { + return + } + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + DiscardUnknown(val.Interface().(Message)) + } + } + } else { + dfi.discard = func(pointer) {} // Noop + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%v.%s cannot be a pointer to a interface or a slice of interface values", t, f.Name)) + default: // E.g., interface{} + // TODO: Make this faster? + dfi.discard = func(src pointer) { + su := src.asPointerTo(tf).Elem() + if !su.IsNil() { + sv := su.Elem().Elem().Field(0) + if sv.Kind() == reflect.Ptr && sv.IsNil() { + return + } + switch sv.Type().Kind() { + case reflect.Ptr: // Proto struct (e.g., *T) + DiscardUnknown(sv.Interface().(Message)) + } + } + } + } + default: + continue + } + di.fields = append(di.fields, dfi) + } + + di.unrecognized = invalidField + if f, ok := t.FieldByName("XXX_unrecognized"); ok { + if f.Type != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + di.unrecognized = toField(&f) + } + + atomic.StoreInt32(&di.initialized, 1) +} + +func discardLegacy(m Message) { + v := reflect.ValueOf(m) + if v.Kind() != reflect.Ptr || v.IsNil() { + return + } + v = v.Elem() + if v.Kind() != reflect.Struct { + return + } + t := v.Type() + + for i := 0; i < v.NumField(); i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + vf := v.Field(i) + tf := f.Type + + // Unwrap tf to get its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic(fmt.Sprintf("%T.%s cannot be a slice of pointers to primitive types", m, f.Name)) + } + + switch tf.Kind() { + case reflect.Struct: + switch { + case !isPointer: + panic(fmt.Sprintf("%T.%s cannot be a direct struct value", m, f.Name)) + case isSlice: // E.g., []*pb.T + for j := 0; j < vf.Len(); j++ { + discardLegacy(vf.Index(j).Interface().(Message)) + } + default: // E.g., *pb.T + discardLegacy(vf.Interface().(Message)) + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%T.%s cannot be a pointer to a map or a slice of map values", m, f.Name)) + default: // E.g., map[K]V + tv := vf.Type().Elem() + if tv.Kind() == reflect.Ptr && tv.Implements(protoMessageType) { // Proto struct (e.g., *T) + for _, key := range vf.MapKeys() { + val := vf.MapIndex(key) + discardLegacy(val.Interface().(Message)) + } + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic(fmt.Sprintf("%T.%s cannot be a pointer to a interface or a slice of interface values", m, f.Name)) + default: // E.g., test_proto.isCommunique_Union interface + if !vf.IsNil() && f.Tag.Get("protobuf_oneof") != "" { + vf = vf.Elem() // E.g., *test_proto.Communique_Msg + if !vf.IsNil() { + vf = vf.Elem() // E.g., test_proto.Communique_Msg + vf = vf.Field(0) // E.g., Proto struct (e.g., *T) or primitive value + if vf.Kind() == reflect.Ptr { + discardLegacy(vf.Interface().(Message)) + } + } + } + } + } + } + + if vf := v.FieldByName("XXX_unrecognized"); vf.IsValid() { + if vf.Type() != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + vf.Set(reflect.ValueOf([]byte(nil))) + } + + // For proto2 messages, only discard unknown fields in message extensions + // that have been accessed via GetExtension. + if em, err := extendable(m); err == nil { + // Ignore lock since discardLegacy is not concurrency safe. + emm, _ := em.extensionsRead() + for _, mx := range emm { + if m, ok := mx.value.(Message); ok { + discardLegacy(m) + } + } + } +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/duration.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/duration.go new file mode 100644 index 0000000000..93464c91cf --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/duration.go @@ -0,0 +1,100 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +// This file implements conversions between google.protobuf.Duration +// and time.Duration. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Range of a Duration in seconds, as specified in + // google/protobuf/duration.proto. This is about 10,000 years in seconds. + maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60) + minSeconds = -maxSeconds +) + +// validateDuration determines whether the Duration is valid according to the +// definition in google/protobuf/duration.proto. A valid Duration +// may still be too large to fit into a time.Duration (the range of Duration +// is about 10,000 years, and the range of time.Duration is about 290). +func validateDuration(d *duration) error { + if d == nil { + return errors.New("duration: nil Duration") + } + if d.Seconds < minSeconds || d.Seconds > maxSeconds { + return fmt.Errorf("duration: %#v: seconds out of range", d) + } + if d.Nanos <= -1e9 || d.Nanos >= 1e9 { + return fmt.Errorf("duration: %#v: nanos out of range", d) + } + // Seconds and Nanos must have the same sign, unless d.Nanos is zero. + if (d.Seconds < 0 && d.Nanos > 0) || (d.Seconds > 0 && d.Nanos < 0) { + return fmt.Errorf("duration: %#v: seconds and nanos have different signs", d) + } + return nil +} + +// DurationFromProto converts a Duration to a time.Duration. DurationFromProto +// returns an error if the Duration is invalid or is too large to be +// represented in a time.Duration. +func durationFromProto(p *duration) (time.Duration, error) { + if err := validateDuration(p); err != nil { + return 0, err + } + d := time.Duration(p.Seconds) * time.Second + if int64(d/time.Second) != p.Seconds { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + if p.Nanos != 0 { + d += time.Duration(p.Nanos) + if (d < 0) != (p.Nanos < 0) { + return 0, fmt.Errorf("duration: %#v is out of range for time.Duration", p) + } + } + return d, nil +} + +// DurationProto converts a time.Duration to a Duration. +func durationProto(d time.Duration) *duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &duration{ + Seconds: secs, + Nanos: int32(nanos), + } +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/duration_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/duration_gogo.go new file mode 100644 index 0000000000..e748e1730e --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/duration_gogo.go @@ -0,0 +1,49 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "reflect" + "time" +) + +var durationType = reflect.TypeOf((*time.Duration)(nil)).Elem() + +type duration struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *duration) Reset() { *m = duration{} } +func (*duration) ProtoMessage() {} +func (*duration) String() string { return "duration" } + +func init() { + RegisterType((*duration)(nil), "gogo.protobuf.proto.duration") +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/encode.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/encode.go new file mode 100644 index 0000000000..9581ccd304 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/encode.go @@ -0,0 +1,205 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "errors" + "reflect" +) + +var ( + // errRepeatedHasNil is the error returned if Marshal is called with + // a struct with a repeated field containing a nil element. + errRepeatedHasNil = errors.New("proto: repeated field has nil element") + + // errOneofHasNil is the error returned if Marshal is called with + // a struct with a oneof field containing a nil element. + errOneofHasNil = errors.New("proto: oneof field has nil value") + + // ErrNil is the error returned if Marshal is called with nil. + ErrNil = errors.New("proto: Marshal called with nil") + + // ErrTooLarge is the error returned if Marshal is called with a + // message that encodes to >2GB. + ErrTooLarge = errors.New("proto: message encodes to over 2 GB") +) + +// The fundamental encoders that put bytes on the wire. +// Those that take integer types all accept uint64 and are +// therefore of type valueEncoder. + +const maxVarintBytes = 10 // maximum length of a varint + +// EncodeVarint returns the varint encoding of x. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +// Not used by the package itself, but helpful to clients +// wishing to use the same encoding. +func EncodeVarint(x uint64) []byte { + var buf [maxVarintBytes]byte + var n int + for n = 0; x > 127; n++ { + buf[n] = 0x80 | uint8(x&0x7F) + x >>= 7 + } + buf[n] = uint8(x) + n++ + return buf[0:n] +} + +// EncodeVarint writes a varint-encoded integer to the Buffer. +// This is the format for the +// int32, int64, uint32, uint64, bool, and enum +// protocol buffer types. +func (p *Buffer) EncodeVarint(x uint64) error { + for x >= 1<<7 { + p.buf = append(p.buf, uint8(x&0x7f|0x80)) + x >>= 7 + } + p.buf = append(p.buf, uint8(x)) + return nil +} + +// SizeVarint returns the varint encoding size of an integer. +func SizeVarint(x uint64) int { + switch { + case x < 1<<7: + return 1 + case x < 1<<14: + return 2 + case x < 1<<21: + return 3 + case x < 1<<28: + return 4 + case x < 1<<35: + return 5 + case x < 1<<42: + return 6 + case x < 1<<49: + return 7 + case x < 1<<56: + return 8 + case x < 1<<63: + return 9 + } + return 10 +} + +// EncodeFixed64 writes a 64-bit integer to the Buffer. +// This is the format for the +// fixed64, sfixed64, and double protocol buffer types. +func (p *Buffer) EncodeFixed64(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24), + uint8(x>>32), + uint8(x>>40), + uint8(x>>48), + uint8(x>>56)) + return nil +} + +// EncodeFixed32 writes a 32-bit integer to the Buffer. +// This is the format for the +// fixed32, sfixed32, and float protocol buffer types. +func (p *Buffer) EncodeFixed32(x uint64) error { + p.buf = append(p.buf, + uint8(x), + uint8(x>>8), + uint8(x>>16), + uint8(x>>24)) + return nil +} + +// EncodeZigzag64 writes a zigzag-encoded 64-bit integer +// to the Buffer. +// This is the format used for the sint64 protocol buffer type. +func (p *Buffer) EncodeZigzag64(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} + +// EncodeZigzag32 writes a zigzag-encoded 32-bit integer +// to the Buffer. +// This is the format used for the sint32 protocol buffer type. +func (p *Buffer) EncodeZigzag32(x uint64) error { + // use signed number to get arithmetic right shift. + return p.EncodeVarint(uint64((uint32(x) << 1) ^ uint32((int32(x) >> 31)))) +} + +// EncodeRawBytes writes a count-delimited byte buffer to the Buffer. +// This is the format used for the bytes protocol buffer +// type and for embedded messages. +func (p *Buffer) EncodeRawBytes(b []byte) error { + p.EncodeVarint(uint64(len(b))) + p.buf = append(p.buf, b...) + return nil +} + +// EncodeStringBytes writes an encoded string to the Buffer. +// This is the format used for the proto2 string type. +func (p *Buffer) EncodeStringBytes(s string) error { + p.EncodeVarint(uint64(len(s))) + p.buf = append(p.buf, s...) + return nil +} + +// Marshaler is the interface representing objects that can marshal themselves. +type Marshaler interface { + Marshal() ([]byte, error) +} + +// EncodeMessage writes the protocol buffer to the Buffer, +// prefixed by a varint-encoded length. +func (p *Buffer) EncodeMessage(pb Message) error { + siz := Size(pb) + sizVar := SizeVarint(uint64(siz)) + p.grow(siz + sizVar) + p.EncodeVarint(uint64(siz)) + return p.Marshal(pb) +} + +// All protocol buffer fields are nillable, but be careful. +func isNil(v reflect.Value) bool { + switch v.Kind() { + case reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: + return v.IsNil() + } + return false +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/encode_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/encode_gogo.go new file mode 100644 index 0000000000..0f5fb173e9 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/encode_gogo.go @@ -0,0 +1,33 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +func NewRequiredNotSetError(field string) *RequiredNotSetError { + return &RequiredNotSetError{field} +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/equal.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/equal.go new file mode 100644 index 0000000000..d4db5a1c14 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/equal.go @@ -0,0 +1,300 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2011 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// Protocol buffer comparison. + +package proto + +import ( + "bytes" + "log" + "reflect" + "strings" +) + +/* +Equal returns true iff protocol buffers a and b are equal. +The arguments must both be pointers to protocol buffer structs. + +Equality is defined in this way: + - Two messages are equal iff they are the same type, + corresponding fields are equal, unknown field sets + are equal, and extensions sets are equal. + - Two set scalar fields are equal iff their values are equal. + If the fields are of a floating-point type, remember that + NaN != x for all x, including NaN. If the message is defined + in a proto3 .proto file, fields are not "set"; specifically, + zero length proto3 "bytes" fields are equal (nil == {}). + - Two repeated fields are equal iff their lengths are the same, + and their corresponding elements are equal. Note a "bytes" field, + although represented by []byte, is not a repeated field and the + rule for the scalar fields described above applies. + - Two unset fields are equal. + - Two unknown field sets are equal if their current + encoded state is equal. + - Two extension sets are equal iff they have corresponding + elements that are pairwise equal. + - Two map fields are equal iff their lengths are the same, + and they contain the same set of elements. Zero-length map + fields are equal. + - Every other combination of things are not equal. + +The return value is undefined if a and b are not protocol buffers. +*/ +func Equal(a, b Message) bool { + if a == nil || b == nil { + return a == b + } + v1, v2 := reflect.ValueOf(a), reflect.ValueOf(b) + if v1.Type() != v2.Type() { + return false + } + if v1.Kind() == reflect.Ptr { + if v1.IsNil() { + return v2.IsNil() + } + if v2.IsNil() { + return false + } + v1, v2 = v1.Elem(), v2.Elem() + } + if v1.Kind() != reflect.Struct { + return false + } + return equalStruct(v1, v2) +} + +// v1 and v2 are known to have the same type. +func equalStruct(v1, v2 reflect.Value) bool { + sprop := GetProperties(v1.Type()) + for i := 0; i < v1.NumField(); i++ { + f := v1.Type().Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + f1, f2 := v1.Field(i), v2.Field(i) + if f.Type.Kind() == reflect.Ptr { + if n1, n2 := f1.IsNil(), f2.IsNil(); n1 && n2 { + // both unset + continue + } else if n1 != n2 { + // set/unset mismatch + return false + } + f1, f2 = f1.Elem(), f2.Elem() + } + if !equalAny(f1, f2, sprop.Prop[i]) { + return false + } + } + + if em1 := v1.FieldByName("XXX_InternalExtensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_InternalExtensions") + if !equalExtensions(v1.Type(), em1.Interface().(XXX_InternalExtensions), em2.Interface().(XXX_InternalExtensions)) { + return false + } + } + + if em1 := v1.FieldByName("XXX_extensions"); em1.IsValid() { + em2 := v2.FieldByName("XXX_extensions") + if !equalExtMap(v1.Type(), em1.Interface().(map[int32]Extension), em2.Interface().(map[int32]Extension)) { + return false + } + } + + uf := v1.FieldByName("XXX_unrecognized") + if !uf.IsValid() { + return true + } + + u1 := uf.Bytes() + u2 := v2.FieldByName("XXX_unrecognized").Bytes() + return bytes.Equal(u1, u2) +} + +// v1 and v2 are known to have the same type. +// prop may be nil. +func equalAny(v1, v2 reflect.Value, prop *Properties) bool { + if v1.Type() == protoMessageType { + m1, _ := v1.Interface().(Message) + m2, _ := v2.Interface().(Message) + return Equal(m1, m2) + } + switch v1.Kind() { + case reflect.Bool: + return v1.Bool() == v2.Bool() + case reflect.Float32, reflect.Float64: + return v1.Float() == v2.Float() + case reflect.Int32, reflect.Int64: + return v1.Int() == v2.Int() + case reflect.Interface: + // Probably a oneof field; compare the inner values. + n1, n2 := v1.IsNil(), v2.IsNil() + if n1 || n2 { + return n1 == n2 + } + e1, e2 := v1.Elem(), v2.Elem() + if e1.Type() != e2.Type() { + return false + } + return equalAny(e1, e2, nil) + case reflect.Map: + if v1.Len() != v2.Len() { + return false + } + for _, key := range v1.MapKeys() { + val2 := v2.MapIndex(key) + if !val2.IsValid() { + // This key was not found in the second map. + return false + } + if !equalAny(v1.MapIndex(key), val2, nil) { + return false + } + } + return true + case reflect.Ptr: + // Maps may have nil values in them, so check for nil. + if v1.IsNil() && v2.IsNil() { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return equalAny(v1.Elem(), v2.Elem(), prop) + case reflect.Slice: + if v1.Type().Elem().Kind() == reflect.Uint8 { + // short circuit: []byte + + // Edge case: if this is in a proto3 message, a zero length + // bytes field is considered the zero value. + if prop != nil && prop.proto3 && v1.Len() == 0 && v2.Len() == 0 { + return true + } + if v1.IsNil() != v2.IsNil() { + return false + } + return bytes.Equal(v1.Interface().([]byte), v2.Interface().([]byte)) + } + + if v1.Len() != v2.Len() { + return false + } + for i := 0; i < v1.Len(); i++ { + if !equalAny(v1.Index(i), v2.Index(i), prop) { + return false + } + } + return true + case reflect.String: + return v1.Interface().(string) == v2.Interface().(string) + case reflect.Struct: + return equalStruct(v1, v2) + case reflect.Uint32, reflect.Uint64: + return v1.Uint() == v2.Uint() + } + + // unknown type, so not a protocol buffer + log.Printf("proto: don't know how to compare %v", v1) + return false +} + +// base is the struct type that the extensions are based on. +// x1 and x2 are InternalExtensions. +func equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) bool { + em1, _ := x1.extensionsRead() + em2, _ := x2.extensionsRead() + return equalExtMap(base, em1, em2) +} + +func equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool { + if len(em1) != len(em2) { + return false + } + + for extNum, e1 := range em1 { + e2, ok := em2[extNum] + if !ok { + return false + } + + m1, m2 := e1.value, e2.value + + if m1 == nil && m2 == nil { + // Both have only encoded form. + if bytes.Equal(e1.enc, e2.enc) { + continue + } + // The bytes are different, but the extensions might still be + // equal. We need to decode them to compare. + } + + if m1 != nil && m2 != nil { + // Both are unencoded. + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + continue + } + + // At least one is encoded. To do a semantically correct comparison + // we need to unmarshal them first. + var desc *ExtensionDesc + if m := extensionMaps[base]; m != nil { + desc = m[extNum] + } + if desc == nil { + // If both have only encoded form and the bytes are the same, + // it is handled above. We get here when the bytes are different. + // We don't know how to decode it, so just compare them as byte + // slices. + log.Printf("proto: don't know how to compare extension %d of %v", extNum, base) + return false + } + var err error + if m1 == nil { + m1, err = decodeExtension(e1.enc, desc) + } + if m2 == nil && err == nil { + m2, err = decodeExtension(e2.enc, desc) + } + if err != nil { + // The encoded form is invalid. + log.Printf("proto: badly encoded extension %d of %v: %v", extNum, base, err) + return false + } + if !equalAny(reflect.ValueOf(m1), reflect.ValueOf(m2), nil) { + return false + } + } + + return true +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions.go new file mode 100644 index 0000000000..341c6f57f5 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions.go @@ -0,0 +1,605 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +/* + * Types and routines for supporting protocol buffer extensions. + */ + +import ( + "errors" + "fmt" + "io" + "reflect" + "strconv" + "sync" +) + +// ErrMissingExtension is the error returned by GetExtension if the named extension is not in the message. +var ErrMissingExtension = errors.New("proto: missing extension") + +// ExtensionRange represents a range of message extensions for a protocol buffer. +// Used in code generated by the protocol compiler. +type ExtensionRange struct { + Start, End int32 // both inclusive +} + +// extendableProto is an interface implemented by any protocol buffer generated by the current +// proto compiler that may be extended. +type extendableProto interface { + Message + ExtensionRangeArray() []ExtensionRange + extensionsWrite() map[int32]Extension + extensionsRead() (map[int32]Extension, sync.Locker) +} + +// extendableProtoV1 is an interface implemented by a protocol buffer generated by the previous +// version of the proto compiler that may be extended. +type extendableProtoV1 interface { + Message + ExtensionRangeArray() []ExtensionRange + ExtensionMap() map[int32]Extension +} + +// extensionAdapter is a wrapper around extendableProtoV1 that implements extendableProto. +type extensionAdapter struct { + extendableProtoV1 +} + +func (e extensionAdapter) extensionsWrite() map[int32]Extension { + return e.ExtensionMap() +} + +func (e extensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) { + return e.ExtensionMap(), notLocker{} +} + +// notLocker is a sync.Locker whose Lock and Unlock methods are nops. +type notLocker struct{} + +func (n notLocker) Lock() {} +func (n notLocker) Unlock() {} + +// extendable returns the extendableProto interface for the given generated proto message. +// If the proto message has the old extension format, it returns a wrapper that implements +// the extendableProto interface. +func extendable(p interface{}) (extendableProto, error) { + switch p := p.(type) { + case extendableProto: + if isNilPtr(p) { + return nil, fmt.Errorf("proto: nil %T is not extendable", p) + } + return p, nil + case extendableProtoV1: + if isNilPtr(p) { + return nil, fmt.Errorf("proto: nil %T is not extendable", p) + } + return extensionAdapter{p}, nil + case extensionsBytes: + return slowExtensionAdapter{p}, nil + } + // Don't allocate a specific error containing %T: + // this is the hot path for Clone and MarshalText. + return nil, errNotExtendable +} + +var errNotExtendable = errors.New("proto: not an extendable proto.Message") + +func isNilPtr(x interface{}) bool { + v := reflect.ValueOf(x) + return v.Kind() == reflect.Ptr && v.IsNil() +} + +// XXX_InternalExtensions is an internal representation of proto extensions. +// +// Each generated message struct type embeds an anonymous XXX_InternalExtensions field, +// thus gaining the unexported 'extensions' method, which can be called only from the proto package. +// +// The methods of XXX_InternalExtensions are not concurrency safe in general, +// but calls to logically read-only methods such as has and get may be executed concurrently. +type XXX_InternalExtensions struct { + // The struct must be indirect so that if a user inadvertently copies a + // generated message and its embedded XXX_InternalExtensions, they + // avoid the mayhem of a copied mutex. + // + // The mutex serializes all logically read-only operations to p.extensionMap. + // It is up to the client to ensure that write operations to p.extensionMap are + // mutually exclusive with other accesses. + p *struct { + mu sync.Mutex + extensionMap map[int32]Extension + } +} + +// extensionsWrite returns the extension map, creating it on first use. +func (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension { + if e.p == nil { + e.p = new(struct { + mu sync.Mutex + extensionMap map[int32]Extension + }) + e.p.extensionMap = make(map[int32]Extension) + } + return e.p.extensionMap +} + +// extensionsRead returns the extensions map for read-only use. It may be nil. +// The caller must hold the returned mutex's lock when accessing Elements within the map. +func (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension, sync.Locker) { + if e.p == nil { + return nil, nil + } + return e.p.extensionMap, &e.p.mu +} + +// ExtensionDesc represents an extension specification. +// Used in generated code from the protocol compiler. +type ExtensionDesc struct { + ExtendedType Message // nil pointer to the type that is being extended + ExtensionType interface{} // nil pointer to the extension type + Field int32 // field number + Name string // fully-qualified name of extension, for text formatting + Tag string // protobuf tag style + Filename string // name of the file in which the extension is defined +} + +func (ed *ExtensionDesc) repeated() bool { + t := reflect.TypeOf(ed.ExtensionType) + return t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 +} + +// Extension represents an extension in a message. +type Extension struct { + // When an extension is stored in a message using SetExtension + // only desc and value are set. When the message is marshaled + // enc will be set to the encoded form of the message. + // + // When a message is unmarshaled and contains extensions, each + // extension will have only enc set. When such an extension is + // accessed using GetExtension (or GetExtensions) desc and value + // will be set. + desc *ExtensionDesc + value interface{} + enc []byte +} + +// SetRawExtension is for testing only. +func SetRawExtension(base Message, id int32, b []byte) { + if ebase, ok := base.(extensionsBytes); ok { + clearExtension(base, id) + ext := ebase.GetExtensions() + *ext = append(*ext, b...) + return + } + epb, err := extendable(base) + if err != nil { + return + } + extmap := epb.extensionsWrite() + extmap[id] = Extension{enc: b} +} + +// isExtensionField returns true iff the given field number is in an extension range. +func isExtensionField(pb extendableProto, field int32) bool { + for _, er := range pb.ExtensionRangeArray() { + if er.Start <= field && field <= er.End { + return true + } + } + return false +} + +// checkExtensionTypes checks that the given extension is valid for pb. +func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) error { + var pbi interface{} = pb + // Check the extended type. + if ea, ok := pbi.(extensionAdapter); ok { + pbi = ea.extendableProtoV1 + } + if ea, ok := pbi.(slowExtensionAdapter); ok { + pbi = ea.extensionsBytes + } + if a, b := reflect.TypeOf(pbi), reflect.TypeOf(extension.ExtendedType); a != b { + return fmt.Errorf("proto: bad extended type; %v does not extend %v", b, a) + } + // Check the range. + if !isExtensionField(pb, extension.Field) { + return errors.New("proto: bad extension number; not in declared ranges") + } + return nil +} + +// extPropKey is sufficient to uniquely identify an extension. +type extPropKey struct { + base reflect.Type + field int32 +} + +var extProp = struct { + sync.RWMutex + m map[extPropKey]*Properties +}{ + m: make(map[extPropKey]*Properties), +} + +func extensionProperties(ed *ExtensionDesc) *Properties { + key := extPropKey{base: reflect.TypeOf(ed.ExtendedType), field: ed.Field} + + extProp.RLock() + if prop, ok := extProp.m[key]; ok { + extProp.RUnlock() + return prop + } + extProp.RUnlock() + + extProp.Lock() + defer extProp.Unlock() + // Check again. + if prop, ok := extProp.m[key]; ok { + return prop + } + + prop := new(Properties) + prop.Init(reflect.TypeOf(ed.ExtensionType), "unknown_name", ed.Tag, nil) + extProp.m[key] = prop + return prop +} + +// HasExtension returns whether the given extension is present in pb. +func HasExtension(pb Message, extension *ExtensionDesc) bool { + if epb, doki := pb.(extensionsBytes); doki { + ext := epb.GetExtensions() + buf := *ext + o := 0 + for o < len(buf) { + tag, n := DecodeVarint(buf[o:]) + fieldNum := int32(tag >> 3) + if int32(fieldNum) == extension.Field { + return true + } + wireType := int(tag & 0x7) + o += n + l, err := size(buf[o:], wireType) + if err != nil { + return false + } + o += l + } + return false + } + // TODO: Check types, field numbers, etc.? + epb, err := extendable(pb) + if err != nil { + return false + } + extmap, mu := epb.extensionsRead() + if extmap == nil { + return false + } + mu.Lock() + _, ok := extmap[extension.Field] + mu.Unlock() + return ok +} + +// ClearExtension removes the given extension from pb. +func ClearExtension(pb Message, extension *ExtensionDesc) { + clearExtension(pb, extension.Field) +} + +func clearExtension(pb Message, fieldNum int32) { + if epb, ok := pb.(extensionsBytes); ok { + offset := 0 + for offset != -1 { + offset = deleteExtension(epb, fieldNum, offset) + } + return + } + epb, err := extendable(pb) + if err != nil { + return + } + // TODO: Check types, field numbers, etc.? + extmap := epb.extensionsWrite() + delete(extmap, fieldNum) +} + +// GetExtension retrieves a proto2 extended field from pb. +// +// If the descriptor is type complete (i.e., ExtensionDesc.ExtensionType is non-nil), +// then GetExtension parses the encoded field and returns a Go value of the specified type. +// If the field is not present, then the default value is returned (if one is specified), +// otherwise ErrMissingExtension is reported. +// +// If the descriptor is not type complete (i.e., ExtensionDesc.ExtensionType is nil), +// then GetExtension returns the raw encoded bytes of the field extension. +func GetExtension(pb Message, extension *ExtensionDesc) (interface{}, error) { + if epb, doki := pb.(extensionsBytes); doki { + ext := epb.GetExtensions() + return decodeExtensionFromBytes(extension, *ext) + } + + epb, err := extendable(pb) + if err != nil { + return nil, err + } + + if extension.ExtendedType != nil { + // can only check type if this is a complete descriptor + if cerr := checkExtensionTypes(epb, extension); cerr != nil { + return nil, cerr + } + } + + emap, mu := epb.extensionsRead() + if emap == nil { + return defaultExtensionValue(extension) + } + mu.Lock() + defer mu.Unlock() + e, ok := emap[extension.Field] + if !ok { + // defaultExtensionValue returns the default value or + // ErrMissingExtension if there is no default. + return defaultExtensionValue(extension) + } + + if e.value != nil { + // Already decoded. Check the descriptor, though. + if e.desc != extension { + // This shouldn't happen. If it does, it means that + // GetExtension was called twice with two different + // descriptors with the same field number. + return nil, errors.New("proto: descriptor conflict") + } + return e.value, nil + } + + if extension.ExtensionType == nil { + // incomplete descriptor + return e.enc, nil + } + + v, err := decodeExtension(e.enc, extension) + if err != nil { + return nil, err + } + + // Remember the decoded version and drop the encoded version. + // That way it is safe to mutate what we return. + e.value = v + e.desc = extension + e.enc = nil + emap[extension.Field] = e + return e.value, nil +} + +// defaultExtensionValue returns the default value for extension. +// If no default for an extension is defined ErrMissingExtension is returned. +func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) { + if extension.ExtensionType == nil { + // incomplete descriptor, so no default + return nil, ErrMissingExtension + } + + t := reflect.TypeOf(extension.ExtensionType) + props := extensionProperties(extension) + + sf, _, err := fieldDefault(t, props) + if err != nil { + return nil, err + } + + if sf == nil || sf.value == nil { + // There is no default value. + return nil, ErrMissingExtension + } + + if t.Kind() != reflect.Ptr { + // We do not need to return a Ptr, we can directly return sf.value. + return sf.value, nil + } + + // We need to return an interface{} that is a pointer to sf.value. + value := reflect.New(t).Elem() + value.Set(reflect.New(value.Type().Elem())) + if sf.kind == reflect.Int32 { + // We may have an int32 or an enum, but the underlying data is int32. + // Since we can't set an int32 into a non int32 reflect.value directly + // set it as a int32. + value.Elem().SetInt(int64(sf.value.(int32))) + } else { + value.Elem().Set(reflect.ValueOf(sf.value)) + } + return value.Interface(), nil +} + +// decodeExtension decodes an extension encoded in b. +func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, error) { + t := reflect.TypeOf(extension.ExtensionType) + unmarshal := typeUnmarshaler(t, extension.Tag) + + // t is a pointer to a struct, pointer to basic type or a slice. + // Allocate space to store the pointer/slice. + value := reflect.New(t).Elem() + + var err error + for { + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + wire := int(x) & 7 + + b, err = unmarshal(b, valToPointer(value.Addr()), wire) + if err != nil { + return nil, err + } + + if len(b) == 0 { + break + } + } + return value.Interface(), nil +} + +// GetExtensions returns a slice of the extensions present in pb that are also listed in es. +// The returned slice has the same length as es; missing extensions will appear as nil elements. +func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interface{}, err error) { + epb, err := extendable(pb) + if err != nil { + return nil, err + } + extensions = make([]interface{}, len(es)) + for i, e := range es { + extensions[i], err = GetExtension(epb, e) + if err == ErrMissingExtension { + err = nil + } + if err != nil { + return + } + } + return +} + +// ExtensionDescs returns a new slice containing pb's extension descriptors, in undefined order. +// For non-registered extensions, ExtensionDescs returns an incomplete descriptor containing +// just the Field field, which defines the extension's field number. +func ExtensionDescs(pb Message) ([]*ExtensionDesc, error) { + epb, err := extendable(pb) + if err != nil { + return nil, err + } + registeredExtensions := RegisteredExtensions(pb) + + emap, mu := epb.extensionsRead() + if emap == nil { + return nil, nil + } + mu.Lock() + defer mu.Unlock() + extensions := make([]*ExtensionDesc, 0, len(emap)) + for extid, e := range emap { + desc := e.desc + if desc == nil { + desc = registeredExtensions[extid] + if desc == nil { + desc = &ExtensionDesc{Field: extid} + } + } + + extensions = append(extensions, desc) + } + return extensions, nil +} + +// SetExtension sets the specified extension of pb to the specified value. +func SetExtension(pb Message, extension *ExtensionDesc, value interface{}) error { + if epb, ok := pb.(extensionsBytes); ok { + ClearExtension(pb, extension) + newb, err := encodeExtension(extension, value) + if err != nil { + return err + } + bb := epb.GetExtensions() + *bb = append(*bb, newb...) + return nil + } + epb, err := extendable(pb) + if err != nil { + return err + } + if err := checkExtensionTypes(epb, extension); err != nil { + return err + } + typ := reflect.TypeOf(extension.ExtensionType) + if typ != reflect.TypeOf(value) { + return fmt.Errorf("proto: bad extension value type. got: %T, want: %T", value, extension.ExtensionType) + } + // nil extension values need to be caught early, because the + // encoder can't distinguish an ErrNil due to a nil extension + // from an ErrNil due to a missing field. Extensions are + // always optional, so the encoder would just swallow the error + // and drop all the extensions from the encoded message. + if reflect.ValueOf(value).IsNil() { + return fmt.Errorf("proto: SetExtension called with nil value of type %T", value) + } + + extmap := epb.extensionsWrite() + extmap[extension.Field] = Extension{desc: extension, value: value} + return nil +} + +// ClearAllExtensions clears all extensions from pb. +func ClearAllExtensions(pb Message) { + if epb, doki := pb.(extensionsBytes); doki { + ext := epb.GetExtensions() + *ext = []byte{} + return + } + epb, err := extendable(pb) + if err != nil { + return + } + m := epb.extensionsWrite() + for k := range m { + delete(m, k) + } +} + +// A global registry of extensions. +// The generated code will register the generated descriptors by calling RegisterExtension. + +var extensionMaps = make(map[reflect.Type]map[int32]*ExtensionDesc) + +// RegisterExtension is called from the generated code. +func RegisterExtension(desc *ExtensionDesc) { + st := reflect.TypeOf(desc.ExtendedType).Elem() + m := extensionMaps[st] + if m == nil { + m = make(map[int32]*ExtensionDesc) + extensionMaps[st] = m + } + if _, ok := m[desc.Field]; ok { + panic("proto: duplicate extension registered: " + st.String() + " " + strconv.Itoa(int(desc.Field))) + } + m[desc.Field] = desc +} + +// RegisteredExtensions returns a map of the registered extensions of a +// protocol buffer struct, indexed by the extension number. +// The argument pb should be a nil pointer to the struct type. +func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc { + return extensionMaps[reflect.TypeOf(pb).Elem()] +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go new file mode 100644 index 0000000000..6f1ae120ec --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/extensions_gogo.go @@ -0,0 +1,389 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "bytes" + "errors" + "fmt" + "io" + "reflect" + "sort" + "strings" + "sync" +) + +type extensionsBytes interface { + Message + ExtensionRangeArray() []ExtensionRange + GetExtensions() *[]byte +} + +type slowExtensionAdapter struct { + extensionsBytes +} + +func (s slowExtensionAdapter) extensionsWrite() map[int32]Extension { + panic("Please report a bug to github.com/gogo/protobuf if you see this message: Writing extensions is not supported for extensions stored in a byte slice field.") +} + +func (s slowExtensionAdapter) extensionsRead() (map[int32]Extension, sync.Locker) { + b := s.GetExtensions() + m, err := BytesToExtensionsMap(*b) + if err != nil { + panic(err) + } + return m, notLocker{} +} + +func GetBoolExtension(pb Message, extension *ExtensionDesc, ifnotset bool) bool { + if reflect.ValueOf(pb).IsNil() { + return ifnotset + } + value, err := GetExtension(pb, extension) + if err != nil { + return ifnotset + } + if value == nil { + return ifnotset + } + if value.(*bool) == nil { + return ifnotset + } + return *(value.(*bool)) +} + +func (this *Extension) Equal(that *Extension) bool { + if err := this.Encode(); err != nil { + return false + } + if err := that.Encode(); err != nil { + return false + } + return bytes.Equal(this.enc, that.enc) +} + +func (this *Extension) Compare(that *Extension) int { + if err := this.Encode(); err != nil { + return 1 + } + if err := that.Encode(); err != nil { + return -1 + } + return bytes.Compare(this.enc, that.enc) +} + +func SizeOfInternalExtension(m extendableProto) (n int) { + info := getMarshalInfo(reflect.TypeOf(m)) + return info.sizeV1Extensions(m.extensionsWrite()) +} + +type sortableMapElem struct { + field int32 + ext Extension +} + +func newSortableExtensionsFromMap(m map[int32]Extension) sortableExtensions { + s := make(sortableExtensions, 0, len(m)) + for k, v := range m { + s = append(s, &sortableMapElem{field: k, ext: v}) + } + return s +} + +type sortableExtensions []*sortableMapElem + +func (this sortableExtensions) Len() int { return len(this) } + +func (this sortableExtensions) Swap(i, j int) { this[i], this[j] = this[j], this[i] } + +func (this sortableExtensions) Less(i, j int) bool { return this[i].field < this[j].field } + +func (this sortableExtensions) String() string { + sort.Sort(this) + ss := make([]string, len(this)) + for i := range this { + ss[i] = fmt.Sprintf("%d: %v", this[i].field, this[i].ext) + } + return "map[" + strings.Join(ss, ",") + "]" +} + +func StringFromInternalExtension(m extendableProto) string { + return StringFromExtensionsMap(m.extensionsWrite()) +} + +func StringFromExtensionsMap(m map[int32]Extension) string { + return newSortableExtensionsFromMap(m).String() +} + +func StringFromExtensionsBytes(ext []byte) string { + m, err := BytesToExtensionsMap(ext) + if err != nil { + panic(err) + } + return StringFromExtensionsMap(m) +} + +func EncodeInternalExtension(m extendableProto, data []byte) (n int, err error) { + return EncodeExtensionMap(m.extensionsWrite(), data) +} + +func EncodeInternalExtensionBackwards(m extendableProto, data []byte) (n int, err error) { + return EncodeExtensionMapBackwards(m.extensionsWrite(), data) +} + +func EncodeExtensionMap(m map[int32]Extension, data []byte) (n int, err error) { + o := 0 + for _, e := range m { + if err := e.Encode(); err != nil { + return 0, err + } + n := copy(data[o:], e.enc) + if n != len(e.enc) { + return 0, io.ErrShortBuffer + } + o += n + } + return o, nil +} + +func EncodeExtensionMapBackwards(m map[int32]Extension, data []byte) (n int, err error) { + o := 0 + end := len(data) + for _, e := range m { + if err := e.Encode(); err != nil { + return 0, err + } + n := copy(data[end-len(e.enc):], e.enc) + if n != len(e.enc) { + return 0, io.ErrShortBuffer + } + end -= n + o += n + } + return o, nil +} + +func GetRawExtension(m map[int32]Extension, id int32) ([]byte, error) { + e := m[id] + if err := e.Encode(); err != nil { + return nil, err + } + return e.enc, nil +} + +func size(buf []byte, wire int) (int, error) { + switch wire { + case WireVarint: + _, n := DecodeVarint(buf) + return n, nil + case WireFixed64: + return 8, nil + case WireBytes: + v, n := DecodeVarint(buf) + return int(v) + n, nil + case WireFixed32: + return 4, nil + case WireStartGroup: + offset := 0 + for { + u, n := DecodeVarint(buf[offset:]) + fwire := int(u & 0x7) + offset += n + if fwire == WireEndGroup { + return offset, nil + } + s, err := size(buf[offset:], wire) + if err != nil { + return 0, err + } + offset += s + } + } + return 0, fmt.Errorf("proto: can't get size for unknown wire type %d", wire) +} + +func BytesToExtensionsMap(buf []byte) (map[int32]Extension, error) { + m := make(map[int32]Extension) + i := 0 + for i < len(buf) { + tag, n := DecodeVarint(buf[i:]) + if n <= 0 { + return nil, fmt.Errorf("unable to decode varint") + } + fieldNum := int32(tag >> 3) + wireType := int(tag & 0x7) + l, err := size(buf[i+n:], wireType) + if err != nil { + return nil, err + } + end := i + int(l) + n + m[int32(fieldNum)] = Extension{enc: buf[i:end]} + i = end + } + return m, nil +} + +func NewExtension(e []byte) Extension { + ee := Extension{enc: make([]byte, len(e))} + copy(ee.enc, e) + return ee +} + +func AppendExtension(e Message, tag int32, buf []byte) { + if ee, eok := e.(extensionsBytes); eok { + ext := ee.GetExtensions() + *ext = append(*ext, buf...) + return + } + if ee, eok := e.(extendableProto); eok { + m := ee.extensionsWrite() + ext := m[int32(tag)] // may be missing + ext.enc = append(ext.enc, buf...) + m[int32(tag)] = ext + } +} + +func encodeExtension(extension *ExtensionDesc, value interface{}) ([]byte, error) { + u := getMarshalInfo(reflect.TypeOf(extension.ExtendedType)) + ei := u.getExtElemInfo(extension) + v := value + p := toAddrPointer(&v, ei.isptr) + siz := ei.sizer(p, SizeVarint(ei.wiretag)) + buf := make([]byte, 0, siz) + return ei.marshaler(buf, p, ei.wiretag, false) +} + +func decodeExtensionFromBytes(extension *ExtensionDesc, buf []byte) (interface{}, error) { + o := 0 + for o < len(buf) { + tag, n := DecodeVarint((buf)[o:]) + fieldNum := int32(tag >> 3) + wireType := int(tag & 0x7) + if o+n > len(buf) { + return nil, fmt.Errorf("unable to decode extension") + } + l, err := size((buf)[o+n:], wireType) + if err != nil { + return nil, err + } + if int32(fieldNum) == extension.Field { + if o+n+l > len(buf) { + return nil, fmt.Errorf("unable to decode extension") + } + v, err := decodeExtension((buf)[o:o+n+l], extension) + if err != nil { + return nil, err + } + return v, nil + } + o += n + l + } + return defaultExtensionValue(extension) +} + +func (this *Extension) Encode() error { + if this.enc == nil { + var err error + this.enc, err = encodeExtension(this.desc, this.value) + if err != nil { + return err + } + } + return nil +} + +func (this Extension) GoString() string { + if err := this.Encode(); err != nil { + return fmt.Sprintf("error encoding extension: %v", err) + } + return fmt.Sprintf("proto.NewExtension(%#v)", this.enc) +} + +func SetUnsafeExtension(pb Message, fieldNum int32, value interface{}) error { + typ := reflect.TypeOf(pb).Elem() + ext, ok := extensionMaps[typ] + if !ok { + return fmt.Errorf("proto: bad extended type; %s is not extendable", typ.String()) + } + desc, ok := ext[fieldNum] + if !ok { + return errors.New("proto: bad extension number; not in declared ranges") + } + return SetExtension(pb, desc, value) +} + +func GetUnsafeExtension(pb Message, fieldNum int32) (interface{}, error) { + typ := reflect.TypeOf(pb).Elem() + ext, ok := extensionMaps[typ] + if !ok { + return nil, fmt.Errorf("proto: bad extended type; %s is not extendable", typ.String()) + } + desc, ok := ext[fieldNum] + if !ok { + return nil, fmt.Errorf("unregistered field number %d", fieldNum) + } + return GetExtension(pb, desc) +} + +func NewUnsafeXXX_InternalExtensions(m map[int32]Extension) XXX_InternalExtensions { + x := &XXX_InternalExtensions{ + p: new(struct { + mu sync.Mutex + extensionMap map[int32]Extension + }), + } + x.p.extensionMap = m + return *x +} + +func GetUnsafeExtensionsMap(extendable Message) map[int32]Extension { + pb := extendable.(extendableProto) + return pb.extensionsWrite() +} + +func deleteExtension(pb extensionsBytes, theFieldNum int32, offset int) int { + ext := pb.GetExtensions() + for offset < len(*ext) { + tag, n1 := DecodeVarint((*ext)[offset:]) + fieldNum := int32(tag >> 3) + wireType := int(tag & 0x7) + n2, err := size((*ext)[offset+n1:], wireType) + if err != nil { + panic(err) + } + newOffset := offset + n1 + n2 + if fieldNum == theFieldNum { + *ext = append((*ext)[:offset], (*ext)[newOffset:]...) + return offset + } + offset = newOffset + } + return -1 +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/lib.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/lib.go new file mode 100644 index 0000000000..80db1c155b --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/lib.go @@ -0,0 +1,973 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +/* +Package proto converts data structures to and from the wire format of +protocol buffers. It works in concert with the Go source code generated +for .proto files by the protocol compiler. + +A summary of the properties of the protocol buffer interface +for a protocol buffer variable v: + + - Names are turned from camel_case to CamelCase for export. + - There are no methods on v to set fields; just treat + them as structure fields. + - There are getters that return a field's value if set, + and return the field's default value if unset. + The getters work even if the receiver is a nil message. + - The zero value for a struct is its correct initialization state. + All desired fields must be set before marshaling. + - A Reset() method will restore a protobuf struct to its zero state. + - Non-repeated fields are pointers to the values; nil means unset. + That is, optional or required field int32 f becomes F *int32. + - Repeated fields are slices. + - Helper functions are available to aid the setting of fields. + msg.Foo = proto.String("hello") // set field + - Constants are defined to hold the default values of all fields that + have them. They have the form Default_StructName_FieldName. + Because the getter methods handle defaulted values, + direct use of these constants should be rare. + - Enums are given type names and maps from names to values. + Enum values are prefixed by the enclosing message's name, or by the + enum's type name if it is a top-level enum. Enum types have a String + method, and a Enum method to assist in message construction. + - Nested messages, groups and enums have type names prefixed with the name of + the surrounding message type. + - Extensions are given descriptor names that start with E_, + followed by an underscore-delimited list of the nested messages + that contain it (if any) followed by the CamelCased name of the + extension field itself. HasExtension, ClearExtension, GetExtension + and SetExtension are functions for manipulating extensions. + - Oneof field sets are given a single field in their message, + with distinguished wrapper types for each possible field value. + - Marshal and Unmarshal are functions to encode and decode the wire format. + +When the .proto file specifies `syntax="proto3"`, there are some differences: + + - Non-repeated fields of non-message type are values instead of pointers. + - Enum types do not get an Enum method. + +The simplest way to describe this is to see an example. +Given file test.proto, containing + + package example; + + enum FOO { X = 17; } + + message Test { + required string label = 1; + optional int32 type = 2 [default=77]; + repeated int64 reps = 3; + optional group OptionalGroup = 4 { + required string RequiredField = 5; + } + oneof union { + int32 number = 6; + string name = 7; + } + } + +The resulting file, test.pb.go, is: + + package example + + import proto "github.com/gogo/protobuf/proto" + import math "math" + + type FOO int32 + const ( + FOO_X FOO = 17 + ) + var FOO_name = map[int32]string{ + 17: "X", + } + var FOO_value = map[string]int32{ + "X": 17, + } + + func (x FOO) Enum() *FOO { + p := new(FOO) + *p = x + return p + } + func (x FOO) String() string { + return proto.EnumName(FOO_name, int32(x)) + } + func (x *FOO) UnmarshalJSON(data []byte) error { + value, err := proto.UnmarshalJSONEnum(FOO_value, data) + if err != nil { + return err + } + *x = FOO(value) + return nil + } + + type Test struct { + Label *string `protobuf:"bytes,1,req,name=label" json:"label,omitempty"` + Type *int32 `protobuf:"varint,2,opt,name=type,def=77" json:"type,omitempty"` + Reps []int64 `protobuf:"varint,3,rep,name=reps" json:"reps,omitempty"` + Optionalgroup *Test_OptionalGroup `protobuf:"group,4,opt,name=OptionalGroup" json:"optionalgroup,omitempty"` + // Types that are valid to be assigned to Union: + // *Test_Number + // *Test_Name + Union isTest_Union `protobuf_oneof:"union"` + XXX_unrecognized []byte `json:"-"` + } + func (m *Test) Reset() { *m = Test{} } + func (m *Test) String() string { return proto.CompactTextString(m) } + func (*Test) ProtoMessage() {} + + type isTest_Union interface { + isTest_Union() + } + + type Test_Number struct { + Number int32 `protobuf:"varint,6,opt,name=number"` + } + type Test_Name struct { + Name string `protobuf:"bytes,7,opt,name=name"` + } + + func (*Test_Number) isTest_Union() {} + func (*Test_Name) isTest_Union() {} + + func (m *Test) GetUnion() isTest_Union { + if m != nil { + return m.Union + } + return nil + } + const Default_Test_Type int32 = 77 + + func (m *Test) GetLabel() string { + if m != nil && m.Label != nil { + return *m.Label + } + return "" + } + + func (m *Test) GetType() int32 { + if m != nil && m.Type != nil { + return *m.Type + } + return Default_Test_Type + } + + func (m *Test) GetOptionalgroup() *Test_OptionalGroup { + if m != nil { + return m.Optionalgroup + } + return nil + } + + type Test_OptionalGroup struct { + RequiredField *string `protobuf:"bytes,5,req" json:"RequiredField,omitempty"` + } + func (m *Test_OptionalGroup) Reset() { *m = Test_OptionalGroup{} } + func (m *Test_OptionalGroup) String() string { return proto.CompactTextString(m) } + + func (m *Test_OptionalGroup) GetRequiredField() string { + if m != nil && m.RequiredField != nil { + return *m.RequiredField + } + return "" + } + + func (m *Test) GetNumber() int32 { + if x, ok := m.GetUnion().(*Test_Number); ok { + return x.Number + } + return 0 + } + + func (m *Test) GetName() string { + if x, ok := m.GetUnion().(*Test_Name); ok { + return x.Name + } + return "" + } + + func init() { + proto.RegisterEnum("example.FOO", FOO_name, FOO_value) + } + +To create and play with a Test object: + + package main + + import ( + "log" + + "github.com/gogo/protobuf/proto" + pb "./example.pb" + ) + + func main() { + test := &pb.Test{ + Label: proto.String("hello"), + Type: proto.Int32(17), + Reps: []int64{1, 2, 3}, + Optionalgroup: &pb.Test_OptionalGroup{ + RequiredField: proto.String("good bye"), + }, + Union: &pb.Test_Name{"fred"}, + } + data, err := proto.Marshal(test) + if err != nil { + log.Fatal("marshaling error: ", err) + } + newTest := &pb.Test{} + err = proto.Unmarshal(data, newTest) + if err != nil { + log.Fatal("unmarshaling error: ", err) + } + // Now test and newTest contain the same data. + if test.GetLabel() != newTest.GetLabel() { + log.Fatalf("data mismatch %q != %q", test.GetLabel(), newTest.GetLabel()) + } + // Use a type switch to determine which oneof was set. + switch u := test.Union.(type) { + case *pb.Test_Number: // u.Number contains the number. + case *pb.Test_Name: // u.Name contains the string. + } + // etc. + } +*/ +package proto + +import ( + "encoding/json" + "fmt" + "log" + "reflect" + "sort" + "strconv" + "sync" +) + +// RequiredNotSetError is an error type returned by either Marshal or Unmarshal. +// Marshal reports this when a required field is not initialized. +// Unmarshal reports this when a required field is missing from the wire data. +type RequiredNotSetError struct{ field string } + +func (e *RequiredNotSetError) Error() string { + if e.field == "" { + return fmt.Sprintf("proto: required field not set") + } + return fmt.Sprintf("proto: required field %q not set", e.field) +} +func (e *RequiredNotSetError) RequiredNotSet() bool { + return true +} + +type invalidUTF8Error struct{ field string } + +func (e *invalidUTF8Error) Error() string { + if e.field == "" { + return "proto: invalid UTF-8 detected" + } + return fmt.Sprintf("proto: field %q contains invalid UTF-8", e.field) +} +func (e *invalidUTF8Error) InvalidUTF8() bool { + return true +} + +// errInvalidUTF8 is a sentinel error to identify fields with invalid UTF-8. +// This error should not be exposed to the external API as such errors should +// be recreated with the field information. +var errInvalidUTF8 = &invalidUTF8Error{} + +// isNonFatal reports whether the error is either a RequiredNotSet error +// or a InvalidUTF8 error. +func isNonFatal(err error) bool { + if re, ok := err.(interface{ RequiredNotSet() bool }); ok && re.RequiredNotSet() { + return true + } + if re, ok := err.(interface{ InvalidUTF8() bool }); ok && re.InvalidUTF8() { + return true + } + return false +} + +type nonFatal struct{ E error } + +// Merge merges err into nf and reports whether it was successful. +// Otherwise it returns false for any fatal non-nil errors. +func (nf *nonFatal) Merge(err error) (ok bool) { + if err == nil { + return true // not an error + } + if !isNonFatal(err) { + return false // fatal error + } + if nf.E == nil { + nf.E = err // store first instance of non-fatal error + } + return true +} + +// Message is implemented by generated protocol buffer messages. +type Message interface { + Reset() + String() string + ProtoMessage() +} + +// A Buffer is a buffer manager for marshaling and unmarshaling +// protocol buffers. It may be reused between invocations to +// reduce memory usage. It is not necessary to use a Buffer; +// the global functions Marshal and Unmarshal create a +// temporary Buffer and are fine for most applications. +type Buffer struct { + buf []byte // encode/decode byte stream + index int // read point + + deterministic bool +} + +// NewBuffer allocates a new Buffer and initializes its internal data to +// the contents of the argument slice. +func NewBuffer(e []byte) *Buffer { + return &Buffer{buf: e} +} + +// Reset resets the Buffer, ready for marshaling a new protocol buffer. +func (p *Buffer) Reset() { + p.buf = p.buf[0:0] // for reading/writing + p.index = 0 // for reading +} + +// SetBuf replaces the internal buffer with the slice, +// ready for unmarshaling the contents of the slice. +func (p *Buffer) SetBuf(s []byte) { + p.buf = s + p.index = 0 +} + +// Bytes returns the contents of the Buffer. +func (p *Buffer) Bytes() []byte { return p.buf } + +// SetDeterministic sets whether to use deterministic serialization. +// +// Deterministic serialization guarantees that for a given binary, equal +// messages will always be serialized to the same bytes. This implies: +// +// - Repeated serialization of a message will return the same bytes. +// - Different processes of the same binary (which may be executing on +// different machines) will serialize equal messages to the same bytes. +// +// Note that the deterministic serialization is NOT canonical across +// languages. It is not guaranteed to remain stable over time. It is unstable +// across different builds with schema changes due to unknown fields. +// Users who need canonical serialization (e.g., persistent storage in a +// canonical form, fingerprinting, etc.) should define their own +// canonicalization specification and implement their own serializer rather +// than relying on this API. +// +// If deterministic serialization is requested, map entries will be sorted +// by keys in lexographical order. This is an implementation detail and +// subject to change. +func (p *Buffer) SetDeterministic(deterministic bool) { + p.deterministic = deterministic +} + +/* + * Helper routines for simplifying the creation of optional fields of basic type. + */ + +// Bool is a helper routine that allocates a new bool value +// to store v and returns a pointer to it. +func Bool(v bool) *bool { + return &v +} + +// Int32 is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it. +func Int32(v int32) *int32 { + return &v +} + +// Int is a helper routine that allocates a new int32 value +// to store v and returns a pointer to it, but unlike Int32 +// its argument value is an int. +func Int(v int) *int32 { + p := new(int32) + *p = int32(v) + return p +} + +// Int64 is a helper routine that allocates a new int64 value +// to store v and returns a pointer to it. +func Int64(v int64) *int64 { + return &v +} + +// Float32 is a helper routine that allocates a new float32 value +// to store v and returns a pointer to it. +func Float32(v float32) *float32 { + return &v +} + +// Float64 is a helper routine that allocates a new float64 value +// to store v and returns a pointer to it. +func Float64(v float64) *float64 { + return &v +} + +// Uint32 is a helper routine that allocates a new uint32 value +// to store v and returns a pointer to it. +func Uint32(v uint32) *uint32 { + return &v +} + +// Uint64 is a helper routine that allocates a new uint64 value +// to store v and returns a pointer to it. +func Uint64(v uint64) *uint64 { + return &v +} + +// String is a helper routine that allocates a new string value +// to store v and returns a pointer to it. +func String(v string) *string { + return &v +} + +// EnumName is a helper function to simplify printing protocol buffer enums +// by name. Given an enum map and a value, it returns a useful string. +func EnumName(m map[int32]string, v int32) string { + s, ok := m[v] + if ok { + return s + } + return strconv.Itoa(int(v)) +} + +// UnmarshalJSONEnum is a helper function to simplify recovering enum int values +// from their JSON-encoded representation. Given a map from the enum's symbolic +// names to its int values, and a byte buffer containing the JSON-encoded +// value, it returns an int32 that can be cast to the enum type by the caller. +// +// The function can deal with both JSON representations, numeric and symbolic. +func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string) (int32, error) { + if data[0] == '"' { + // New style: enums are strings. + var repr string + if err := json.Unmarshal(data, &repr); err != nil { + return -1, err + } + val, ok := m[repr] + if !ok { + return 0, fmt.Errorf("unrecognized enum %s value %q", enumName, repr) + } + return val, nil + } + // Old style: enums are ints. + var val int32 + if err := json.Unmarshal(data, &val); err != nil { + return 0, fmt.Errorf("cannot unmarshal %#q into enum %s", data, enumName) + } + return val, nil +} + +// DebugPrint dumps the encoded data in b in a debugging format with a header +// including the string s. Used in testing but made available for general debugging. +func (p *Buffer) DebugPrint(s string, b []byte) { + var u uint64 + + obuf := p.buf + sindex := p.index + p.buf = b + p.index = 0 + depth := 0 + + fmt.Printf("\n--- %s ---\n", s) + +out: + for { + for i := 0; i < depth; i++ { + fmt.Print(" ") + } + + index := p.index + if index == len(p.buf) { + break + } + + op, err := p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: fetching op err %v\n", index, err) + break out + } + tag := op >> 3 + wire := op & 7 + + switch wire { + default: + fmt.Printf("%3d: t=%3d unknown wire=%d\n", + index, tag, wire) + break out + + case WireBytes: + var r []byte + + r, err = p.DecodeRawBytes(false) + if err != nil { + break out + } + fmt.Printf("%3d: t=%3d bytes [%d]", index, tag, len(r)) + if len(r) <= 6 { + for i := 0; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } else { + for i := 0; i < 3; i++ { + fmt.Printf(" %.2x", r[i]) + } + fmt.Printf(" ..") + for i := len(r) - 3; i < len(r); i++ { + fmt.Printf(" %.2x", r[i]) + } + } + fmt.Printf("\n") + + case WireFixed32: + u, err = p.DecodeFixed32() + if err != nil { + fmt.Printf("%3d: t=%3d fix32 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix32 %d\n", index, tag, u) + + case WireFixed64: + u, err = p.DecodeFixed64() + if err != nil { + fmt.Printf("%3d: t=%3d fix64 err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d fix64 %d\n", index, tag, u) + + case WireVarint: + u, err = p.DecodeVarint() + if err != nil { + fmt.Printf("%3d: t=%3d varint err %v\n", index, tag, err) + break out + } + fmt.Printf("%3d: t=%3d varint %d\n", index, tag, u) + + case WireStartGroup: + fmt.Printf("%3d: t=%3d start\n", index, tag) + depth++ + + case WireEndGroup: + depth-- + fmt.Printf("%3d: t=%3d end\n", index, tag) + } + } + + if depth != 0 { + fmt.Printf("%3d: start-end not balanced %d\n", p.index, depth) + } + fmt.Printf("\n") + + p.buf = obuf + p.index = sindex +} + +// SetDefaults sets unset protocol buffer fields to their default values. +// It only modifies fields that are both unset and have defined defaults. +// It recursively sets default values in any non-nil sub-messages. +func SetDefaults(pb Message) { + setDefaults(reflect.ValueOf(pb), true, false) +} + +// v is a struct. +func setDefaults(v reflect.Value, recur, zeros bool) { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + + defaultMu.RLock() + dm, ok := defaults[v.Type()] + defaultMu.RUnlock() + if !ok { + dm = buildDefaultMessage(v.Type()) + defaultMu.Lock() + defaults[v.Type()] = dm + defaultMu.Unlock() + } + + for _, sf := range dm.scalars { + f := v.Field(sf.index) + if !f.IsNil() { + // field already set + continue + } + dv := sf.value + if dv == nil && !zeros { + // no explicit default, and don't want to set zeros + continue + } + fptr := f.Addr().Interface() // **T + // TODO: Consider batching the allocations we do here. + switch sf.kind { + case reflect.Bool: + b := new(bool) + if dv != nil { + *b = dv.(bool) + } + *(fptr.(**bool)) = b + case reflect.Float32: + f := new(float32) + if dv != nil { + *f = dv.(float32) + } + *(fptr.(**float32)) = f + case reflect.Float64: + f := new(float64) + if dv != nil { + *f = dv.(float64) + } + *(fptr.(**float64)) = f + case reflect.Int32: + // might be an enum + if ft := f.Type(); ft != int32PtrType { + // enum + f.Set(reflect.New(ft.Elem())) + if dv != nil { + f.Elem().SetInt(int64(dv.(int32))) + } + } else { + // int32 field + i := new(int32) + if dv != nil { + *i = dv.(int32) + } + *(fptr.(**int32)) = i + } + case reflect.Int64: + i := new(int64) + if dv != nil { + *i = dv.(int64) + } + *(fptr.(**int64)) = i + case reflect.String: + s := new(string) + if dv != nil { + *s = dv.(string) + } + *(fptr.(**string)) = s + case reflect.Uint8: + // exceptional case: []byte + var b []byte + if dv != nil { + db := dv.([]byte) + b = make([]byte, len(db)) + copy(b, db) + } else { + b = []byte{} + } + *(fptr.(*[]byte)) = b + case reflect.Uint32: + u := new(uint32) + if dv != nil { + *u = dv.(uint32) + } + *(fptr.(**uint32)) = u + case reflect.Uint64: + u := new(uint64) + if dv != nil { + *u = dv.(uint64) + } + *(fptr.(**uint64)) = u + default: + log.Printf("proto: can't set default for field %v (sf.kind=%v)", f, sf.kind) + } + } + + for _, ni := range dm.nested { + f := v.Field(ni) + // f is *T or T or []*T or []T + switch f.Kind() { + case reflect.Struct: + setDefaults(f, recur, zeros) + + case reflect.Ptr: + if f.IsNil() { + continue + } + setDefaults(f, recur, zeros) + + case reflect.Slice: + for i := 0; i < f.Len(); i++ { + e := f.Index(i) + if e.Kind() == reflect.Ptr && e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + + case reflect.Map: + for _, k := range f.MapKeys() { + e := f.MapIndex(k) + if e.IsNil() { + continue + } + setDefaults(e, recur, zeros) + } + } + } +} + +var ( + // defaults maps a protocol buffer struct type to a slice of the fields, + // with its scalar fields set to their proto-declared non-zero default values. + defaultMu sync.RWMutex + defaults = make(map[reflect.Type]defaultMessage) + + int32PtrType = reflect.TypeOf((*int32)(nil)) +) + +// defaultMessage represents information about the default values of a message. +type defaultMessage struct { + scalars []scalarField + nested []int // struct field index of nested messages +} + +type scalarField struct { + index int // struct field index + kind reflect.Kind // element type (the T in *T or []T) + value interface{} // the proto-declared default value, or nil +} + +// t is a struct type. +func buildDefaultMessage(t reflect.Type) (dm defaultMessage) { + sprop := GetProperties(t) + for _, prop := range sprop.Prop { + fi, ok := sprop.decoderTags.get(prop.Tag) + if !ok { + // XXX_unrecognized + continue + } + ft := t.Field(fi).Type + + sf, nested, err := fieldDefault(ft, prop) + switch { + case err != nil: + log.Print(err) + case nested: + dm.nested = append(dm.nested, fi) + case sf != nil: + sf.index = fi + dm.scalars = append(dm.scalars, *sf) + } + } + + return dm +} + +// fieldDefault returns the scalarField for field type ft. +// sf will be nil if the field can not have a default. +// nestedMessage will be true if this is a nested message. +// Note that sf.index is not set on return. +func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, nestedMessage bool, err error) { + var canHaveDefault bool + switch ft.Kind() { + case reflect.Struct: + nestedMessage = true // non-nullable + + case reflect.Ptr: + if ft.Elem().Kind() == reflect.Struct { + nestedMessage = true + } else { + canHaveDefault = true // proto2 scalar field + } + + case reflect.Slice: + switch ft.Elem().Kind() { + case reflect.Ptr, reflect.Struct: + nestedMessage = true // repeated message + case reflect.Uint8: + canHaveDefault = true // bytes field + } + + case reflect.Map: + if ft.Elem().Kind() == reflect.Ptr { + nestedMessage = true // map with message values + } + } + + if !canHaveDefault { + if nestedMessage { + return nil, true, nil + } + return nil, false, nil + } + + // We now know that ft is a pointer or slice. + sf = &scalarField{kind: ft.Elem().Kind()} + + // scalar fields without defaults + if !prop.HasDefault { + return sf, false, nil + } + + // a scalar field: either *T or []byte + switch ft.Elem().Kind() { + case reflect.Bool: + x, err := strconv.ParseBool(prop.Default) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default bool %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Float32: + x, err := strconv.ParseFloat(prop.Default, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float32 %q: %v", prop.Default, err) + } + sf.value = float32(x) + case reflect.Float64: + x, err := strconv.ParseFloat(prop.Default, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default float64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.Int32: + x, err := strconv.ParseInt(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int32 %q: %v", prop.Default, err) + } + sf.value = int32(x) + case reflect.Int64: + x, err := strconv.ParseInt(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default int64 %q: %v", prop.Default, err) + } + sf.value = x + case reflect.String: + sf.value = prop.Default + case reflect.Uint8: + // []byte (not *uint8) + sf.value = []byte(prop.Default) + case reflect.Uint32: + x, err := strconv.ParseUint(prop.Default, 10, 32) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint32 %q: %v", prop.Default, err) + } + sf.value = uint32(x) + case reflect.Uint64: + x, err := strconv.ParseUint(prop.Default, 10, 64) + if err != nil { + return nil, false, fmt.Errorf("proto: bad default uint64 %q: %v", prop.Default, err) + } + sf.value = x + default: + return nil, false, fmt.Errorf("proto: unhandled def kind %v", ft.Elem().Kind()) + } + + return sf, false, nil +} + +// mapKeys returns a sort.Interface to be used for sorting the map keys. +// Map fields may have key types of non-float scalars, strings and enums. +func mapKeys(vs []reflect.Value) sort.Interface { + s := mapKeySorter{vs: vs} + + // Type specialization per https://developers.google.com/protocol-buffers/docs/proto#maps. + if len(vs) == 0 { + return s + } + switch vs[0].Kind() { + case reflect.Int32, reflect.Int64: + s.less = func(a, b reflect.Value) bool { return a.Int() < b.Int() } + case reflect.Uint32, reflect.Uint64: + s.less = func(a, b reflect.Value) bool { return a.Uint() < b.Uint() } + case reflect.Bool: + s.less = func(a, b reflect.Value) bool { return !a.Bool() && b.Bool() } // false < true + case reflect.String: + s.less = func(a, b reflect.Value) bool { return a.String() < b.String() } + default: + panic(fmt.Sprintf("unsupported map key type: %v", vs[0].Kind())) + } + + return s +} + +type mapKeySorter struct { + vs []reflect.Value + less func(a, b reflect.Value) bool +} + +func (s mapKeySorter) Len() int { return len(s.vs) } +func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.vs[i] } +func (s mapKeySorter) Less(i, j int) bool { + return s.less(s.vs[i], s.vs[j]) +} + +// isProto3Zero reports whether v is a zero proto3 value. +func isProto3Zero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return !v.Bool() + case reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint32, reflect.Uint64: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return v.Float() == 0 + case reflect.String: + return v.String() == "" + } + return false +} + +const ( + // ProtoPackageIsVersion3 is referenced from generated protocol buffer files + // to assert that that code is compatible with this version of the proto package. + GoGoProtoPackageIsVersion3 = true + + // ProtoPackageIsVersion2 is referenced from generated protocol buffer files + // to assert that that code is compatible with this version of the proto package. + GoGoProtoPackageIsVersion2 = true + + // ProtoPackageIsVersion1 is referenced from generated protocol buffer files + // to assert that that code is compatible with this version of the proto package. + GoGoProtoPackageIsVersion1 = true +) + +// InternalMessageInfo is a type used internally by generated .pb.go files. +// This type is not intended to be used by non-generated code. +// This type is not subject to any compatibility guarantee. +type InternalMessageInfo struct { + marshal *marshalInfo + unmarshal *unmarshalInfo + merge *mergeInfo + discard *discardInfo +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/lib_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/lib_gogo.go new file mode 100644 index 0000000000..b3aa39190a --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/lib_gogo.go @@ -0,0 +1,50 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "encoding/json" + "strconv" +) + +type Sizer interface { + Size() int +} + +type ProtoSizer interface { + ProtoSize() int +} + +func MarshalJSONEnum(m map[int32]string, value int32) ([]byte, error) { + s, ok := m[value] + if !ok { + s = strconv.Itoa(int(value)) + } + return json.Marshal(s) +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/message_set.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/message_set.go new file mode 100644 index 0000000000..f48a756761 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/message_set.go @@ -0,0 +1,181 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +/* + * Support for message sets. + */ + +import ( + "errors" +) + +// errNoMessageTypeID occurs when a protocol buffer does not have a message type ID. +// A message type ID is required for storing a protocol buffer in a message set. +var errNoMessageTypeID = errors.New("proto does not have a message type ID") + +// The first two types (_MessageSet_Item and messageSet) +// model what the protocol compiler produces for the following protocol message: +// message MessageSet { +// repeated group Item = 1 { +// required int32 type_id = 2; +// required string message = 3; +// }; +// } +// That is the MessageSet wire format. We can't use a proto to generate these +// because that would introduce a circular dependency between it and this package. + +type _MessageSet_Item struct { + TypeId *int32 `protobuf:"varint,2,req,name=type_id"` + Message []byte `protobuf:"bytes,3,req,name=message"` +} + +type messageSet struct { + Item []*_MessageSet_Item `protobuf:"group,1,rep"` + XXX_unrecognized []byte + // TODO: caching? +} + +// Make sure messageSet is a Message. +var _ Message = (*messageSet)(nil) + +// messageTypeIder is an interface satisfied by a protocol buffer type +// that may be stored in a MessageSet. +type messageTypeIder interface { + MessageTypeId() int32 +} + +func (ms *messageSet) find(pb Message) *_MessageSet_Item { + mti, ok := pb.(messageTypeIder) + if !ok { + return nil + } + id := mti.MessageTypeId() + for _, item := range ms.Item { + if *item.TypeId == id { + return item + } + } + return nil +} + +func (ms *messageSet) Has(pb Message) bool { + return ms.find(pb) != nil +} + +func (ms *messageSet) Unmarshal(pb Message) error { + if item := ms.find(pb); item != nil { + return Unmarshal(item.Message, pb) + } + if _, ok := pb.(messageTypeIder); !ok { + return errNoMessageTypeID + } + return nil // TODO: return error instead? +} + +func (ms *messageSet) Marshal(pb Message) error { + msg, err := Marshal(pb) + if err != nil { + return err + } + if item := ms.find(pb); item != nil { + // reuse existing item + item.Message = msg + return nil + } + + mti, ok := pb.(messageTypeIder) + if !ok { + return errNoMessageTypeID + } + + mtid := mti.MessageTypeId() + ms.Item = append(ms.Item, &_MessageSet_Item{ + TypeId: &mtid, + Message: msg, + }) + return nil +} + +func (ms *messageSet) Reset() { *ms = messageSet{} } +func (ms *messageSet) String() string { return CompactTextString(ms) } +func (*messageSet) ProtoMessage() {} + +// Support for the message_set_wire_format message option. + +func skipVarint(buf []byte) []byte { + i := 0 + for ; buf[i]&0x80 != 0; i++ { + } + return buf[i+1:] +} + +// unmarshalMessageSet decodes the extension map encoded in buf in the message set wire format. +// It is called by Unmarshal methods on protocol buffer messages with the message_set_wire_format option. +func unmarshalMessageSet(buf []byte, exts interface{}) error { + var m map[int32]Extension + switch exts := exts.(type) { + case *XXX_InternalExtensions: + m = exts.extensionsWrite() + case map[int32]Extension: + m = exts + default: + return errors.New("proto: not an extension map") + } + + ms := new(messageSet) + if err := Unmarshal(buf, ms); err != nil { + return err + } + for _, item := range ms.Item { + id := *item.TypeId + msg := item.Message + + // Restore wire type and field number varint, plus length varint. + // Be careful to preserve duplicate items. + b := EncodeVarint(uint64(id)<<3 | WireBytes) + if ext, ok := m[id]; ok { + // Existing data; rip off the tag and length varint + // so we join the new data correctly. + // We can assume that ext.enc is set because we are unmarshaling. + o := ext.enc[len(b):] // skip wire type and field number + _, n := DecodeVarint(o) // calculate length of length varint + o = o[n:] // skip length varint + msg = append(o, msg...) // join old data and new data + } + b = append(b, EncodeVarint(uint64(len(msg)))...) + b = append(b, msg...) + + m[id] = Extension{enc: b} + } + return nil +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go new file mode 100644 index 0000000000..b6cad90834 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect.go @@ -0,0 +1,357 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// +build purego appengine js + +// This file contains an implementation of proto field accesses using package reflect. +// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can +// be used on App Engine. + +package proto + +import ( + "reflect" + "sync" +) + +const unsafeAllowed = false + +// A field identifies a field in a struct, accessible from a pointer. +// In this implementation, a field is identified by the sequence of field indices +// passed to reflect's FieldByIndex. +type field []int + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return f.Index +} + +// invalidField is an invalid field identifier. +var invalidField = field(nil) + +// zeroField is a noop when calling pointer.offset. +var zeroField = field([]int{}) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { return f != nil } + +// The pointer type is for the table-driven decoder. +// The implementation here uses a reflect.Value of pointer type to +// create a generic pointer. In pointer_unsafe.go we use unsafe +// instead of reflect to implement the same (but faster) interface. +type pointer struct { + v reflect.Value +} + +// toPointer converts an interface of pointer type to a pointer +// that points to the same target. +func toPointer(i *Message) pointer { + return pointer{v: reflect.ValueOf(*i)} +} + +// toAddrPointer converts an interface to a pointer that points to +// the interface data. +func toAddrPointer(i *interface{}, isptr bool) pointer { + v := reflect.ValueOf(*i) + u := reflect.New(v.Type()) + u.Elem().Set(v) + return pointer{v: u} +} + +// valToPointer converts v to a pointer. v must be of pointer type. +func valToPointer(v reflect.Value) pointer { + return pointer{v: v} +} + +// offset converts from a pointer to a structure to a pointer to +// one of its fields. +func (p pointer) offset(f field) pointer { + return pointer{v: p.v.Elem().FieldByIndex(f).Addr()} +} + +func (p pointer) isNil() bool { + return p.v.IsNil() +} + +// grow updates the slice s in place to make it one element longer. +// s must be addressable. +// Returns the (addressable) new element. +func grow(s reflect.Value) reflect.Value { + n, m := s.Len(), s.Cap() + if n < m { + s.SetLen(n + 1) + } else { + s.Set(reflect.Append(s, reflect.Zero(s.Type().Elem()))) + } + return s.Index(n) +} + +func (p pointer) toInt64() *int64 { + return p.v.Interface().(*int64) +} +func (p pointer) toInt64Ptr() **int64 { + return p.v.Interface().(**int64) +} +func (p pointer) toInt64Slice() *[]int64 { + return p.v.Interface().(*[]int64) +} + +var int32ptr = reflect.TypeOf((*int32)(nil)) + +func (p pointer) toInt32() *int32 { + return p.v.Convert(int32ptr).Interface().(*int32) +} + +// The toInt32Ptr/Slice methods don't work because of enums. +// Instead, we must use set/get methods for the int32ptr/slice case. +/* + func (p pointer) toInt32Ptr() **int32 { + return p.v.Interface().(**int32) +} + func (p pointer) toInt32Slice() *[]int32 { + return p.v.Interface().(*[]int32) +} +*/ +func (p pointer) getInt32Ptr() *int32 { + if p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) { + // raw int32 type + return p.v.Elem().Interface().(*int32) + } + // an enum + return p.v.Elem().Convert(int32PtrType).Interface().(*int32) +} +func (p pointer) setInt32Ptr(v int32) { + // Allocate value in a *int32. Possibly convert that to a *enum. + // Then assign it to a **int32 or **enum. + // Note: we can convert *int32 to *enum, but we can't convert + // **int32 to **enum! + p.v.Elem().Set(reflect.ValueOf(&v).Convert(p.v.Type().Elem())) +} + +// getInt32Slice copies []int32 from p as a new slice. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) getInt32Slice() []int32 { + if p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) { + // raw int32 type + return p.v.Elem().Interface().([]int32) + } + // an enum + // Allocate a []int32, then assign []enum's values into it. + // Note: we can't convert []enum to []int32. + slice := p.v.Elem() + s := make([]int32, slice.Len()) + for i := 0; i < slice.Len(); i++ { + s[i] = int32(slice.Index(i).Int()) + } + return s +} + +// setInt32Slice copies []int32 into p as a new slice. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) setInt32Slice(v []int32) { + if p.v.Type().Elem().Elem() == reflect.TypeOf(int32(0)) { + // raw int32 type + p.v.Elem().Set(reflect.ValueOf(v)) + return + } + // an enum + // Allocate a []enum, then assign []int32's values into it. + // Note: we can't convert []enum to []int32. + slice := reflect.MakeSlice(p.v.Type().Elem(), len(v), cap(v)) + for i, x := range v { + slice.Index(i).SetInt(int64(x)) + } + p.v.Elem().Set(slice) +} +func (p pointer) appendInt32Slice(v int32) { + grow(p.v.Elem()).SetInt(int64(v)) +} + +func (p pointer) toUint64() *uint64 { + return p.v.Interface().(*uint64) +} +func (p pointer) toUint64Ptr() **uint64 { + return p.v.Interface().(**uint64) +} +func (p pointer) toUint64Slice() *[]uint64 { + return p.v.Interface().(*[]uint64) +} +func (p pointer) toUint32() *uint32 { + return p.v.Interface().(*uint32) +} +func (p pointer) toUint32Ptr() **uint32 { + return p.v.Interface().(**uint32) +} +func (p pointer) toUint32Slice() *[]uint32 { + return p.v.Interface().(*[]uint32) +} +func (p pointer) toBool() *bool { + return p.v.Interface().(*bool) +} +func (p pointer) toBoolPtr() **bool { + return p.v.Interface().(**bool) +} +func (p pointer) toBoolSlice() *[]bool { + return p.v.Interface().(*[]bool) +} +func (p pointer) toFloat64() *float64 { + return p.v.Interface().(*float64) +} +func (p pointer) toFloat64Ptr() **float64 { + return p.v.Interface().(**float64) +} +func (p pointer) toFloat64Slice() *[]float64 { + return p.v.Interface().(*[]float64) +} +func (p pointer) toFloat32() *float32 { + return p.v.Interface().(*float32) +} +func (p pointer) toFloat32Ptr() **float32 { + return p.v.Interface().(**float32) +} +func (p pointer) toFloat32Slice() *[]float32 { + return p.v.Interface().(*[]float32) +} +func (p pointer) toString() *string { + return p.v.Interface().(*string) +} +func (p pointer) toStringPtr() **string { + return p.v.Interface().(**string) +} +func (p pointer) toStringSlice() *[]string { + return p.v.Interface().(*[]string) +} +func (p pointer) toBytes() *[]byte { + return p.v.Interface().(*[]byte) +} +func (p pointer) toBytesSlice() *[][]byte { + return p.v.Interface().(*[][]byte) +} +func (p pointer) toExtensions() *XXX_InternalExtensions { + return p.v.Interface().(*XXX_InternalExtensions) +} +func (p pointer) toOldExtensions() *map[int32]Extension { + return p.v.Interface().(*map[int32]Extension) +} +func (p pointer) getPointer() pointer { + return pointer{v: p.v.Elem()} +} +func (p pointer) setPointer(q pointer) { + p.v.Elem().Set(q.v) +} +func (p pointer) appendPointer(q pointer) { + grow(p.v.Elem()).Set(q.v) +} + +// getPointerSlice copies []*T from p as a new []pointer. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) getPointerSlice() []pointer { + if p.v.IsNil() { + return nil + } + n := p.v.Elem().Len() + s := make([]pointer, n) + for i := 0; i < n; i++ { + s[i] = pointer{v: p.v.Elem().Index(i)} + } + return s +} + +// setPointerSlice copies []pointer into p as a new []*T. +// This behavior differs from the implementation in pointer_unsafe.go. +func (p pointer) setPointerSlice(v []pointer) { + if v == nil { + p.v.Elem().Set(reflect.New(p.v.Elem().Type()).Elem()) + return + } + s := reflect.MakeSlice(p.v.Elem().Type(), 0, len(v)) + for _, p := range v { + s = reflect.Append(s, p.v) + } + p.v.Elem().Set(s) +} + +// getInterfacePointer returns a pointer that points to the +// interface data of the interface pointed by p. +func (p pointer) getInterfacePointer() pointer { + if p.v.Elem().IsNil() { + return pointer{v: p.v.Elem()} + } + return pointer{v: p.v.Elem().Elem().Elem().Field(0).Addr()} // *interface -> interface -> *struct -> struct +} + +func (p pointer) asPointerTo(t reflect.Type) reflect.Value { + // TODO: check that p.v.Type().Elem() == t? + return p.v +} + +func atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} +func atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} +func atomicLoadMergeInfo(p **mergeInfo) *mergeInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} +func atomicLoadDiscardInfo(p **discardInfo) *discardInfo { + atomicLock.Lock() + defer atomicLock.Unlock() + return *p +} +func atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) { + atomicLock.Lock() + defer atomicLock.Unlock() + *p = v +} + +var atomicLock sync.Mutex diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go new file mode 100644 index 0000000000..7ffd3c29d9 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go @@ -0,0 +1,59 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +// +build purego appengine js + +// This file contains an implementation of proto field accesses using package reflect. +// It is slower than the code in pointer_unsafe.go but it avoids package unsafe and can +// be used on App Engine. + +package proto + +import ( + "reflect" +) + +// TODO: untested, so probably incorrect. + +func (p pointer) getRef() pointer { + return pointer{v: p.v.Addr()} +} + +func (p pointer) appendRef(v pointer, typ reflect.Type) { + slice := p.getSlice(typ) + elem := v.asPointerTo(typ).Elem() + newSlice := reflect.Append(slice, elem) + slice.Set(newSlice) +} + +func (p pointer) getSlice(typ reflect.Type) reflect.Value { + sliceTyp := reflect.SliceOf(typ) + slice := p.asPointerTo(sliceTyp) + slice = slice.Elem() + return slice +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go new file mode 100644 index 0000000000..d55a335d94 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go @@ -0,0 +1,308 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2012 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +// +build !purego,!appengine,!js + +// This file contains the implementation of the proto field accesses using package unsafe. + +package proto + +import ( + "reflect" + "sync/atomic" + "unsafe" +) + +const unsafeAllowed = true + +// A field identifies a field in a struct, accessible from a pointer. +// In this implementation, a field is identified by its byte offset from the start of the struct. +type field uintptr + +// toField returns a field equivalent to the given reflect field. +func toField(f *reflect.StructField) field { + return field(f.Offset) +} + +// invalidField is an invalid field identifier. +const invalidField = ^field(0) + +// zeroField is a noop when calling pointer.offset. +const zeroField = field(0) + +// IsValid reports whether the field identifier is valid. +func (f field) IsValid() bool { + return f != invalidField +} + +// The pointer type below is for the new table-driven encoder/decoder. +// The implementation here uses unsafe.Pointer to create a generic pointer. +// In pointer_reflect.go we use reflect instead of unsafe to implement +// the same (but slower) interface. +type pointer struct { + p unsafe.Pointer +} + +// size of pointer +var ptrSize = unsafe.Sizeof(uintptr(0)) + +// toPointer converts an interface of pointer type to a pointer +// that points to the same target. +func toPointer(i *Message) pointer { + // Super-tricky - read pointer out of data word of interface value. + // Saves ~25ns over the equivalent: + // return valToPointer(reflect.ValueOf(*i)) + return pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]} +} + +// toAddrPointer converts an interface to a pointer that points to +// the interface data. +func toAddrPointer(i *interface{}, isptr bool) pointer { + // Super-tricky - read or get the address of data word of interface value. + if isptr { + // The interface is of pointer type, thus it is a direct interface. + // The data word is the pointer data itself. We take its address. + return pointer{p: unsafe.Pointer(uintptr(unsafe.Pointer(i)) + ptrSize)} + } + // The interface is not of pointer type. The data word is the pointer + // to the data. + return pointer{p: (*[2]unsafe.Pointer)(unsafe.Pointer(i))[1]} +} + +// valToPointer converts v to a pointer. v must be of pointer type. +func valToPointer(v reflect.Value) pointer { + return pointer{p: unsafe.Pointer(v.Pointer())} +} + +// offset converts from a pointer to a structure to a pointer to +// one of its fields. +func (p pointer) offset(f field) pointer { + // For safety, we should panic if !f.IsValid, however calling panic causes + // this to no longer be inlineable, which is a serious performance cost. + /* + if !f.IsValid() { + panic("invalid field") + } + */ + return pointer{p: unsafe.Pointer(uintptr(p.p) + uintptr(f))} +} + +func (p pointer) isNil() bool { + return p.p == nil +} + +func (p pointer) toInt64() *int64 { + return (*int64)(p.p) +} +func (p pointer) toInt64Ptr() **int64 { + return (**int64)(p.p) +} +func (p pointer) toInt64Slice() *[]int64 { + return (*[]int64)(p.p) +} +func (p pointer) toInt32() *int32 { + return (*int32)(p.p) +} + +// See pointer_reflect.go for why toInt32Ptr/Slice doesn't exist. +/* + func (p pointer) toInt32Ptr() **int32 { + return (**int32)(p.p) + } + func (p pointer) toInt32Slice() *[]int32 { + return (*[]int32)(p.p) + } +*/ +func (p pointer) getInt32Ptr() *int32 { + return *(**int32)(p.p) +} +func (p pointer) setInt32Ptr(v int32) { + *(**int32)(p.p) = &v +} + +// getInt32Slice loads a []int32 from p. +// The value returned is aliased with the original slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) getInt32Slice() []int32 { + return *(*[]int32)(p.p) +} + +// setInt32Slice stores a []int32 to p. +// The value set is aliased with the input slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) setInt32Slice(v []int32) { + *(*[]int32)(p.p) = v +} + +// TODO: Can we get rid of appendInt32Slice and use setInt32Slice instead? +func (p pointer) appendInt32Slice(v int32) { + s := (*[]int32)(p.p) + *s = append(*s, v) +} + +func (p pointer) toUint64() *uint64 { + return (*uint64)(p.p) +} +func (p pointer) toUint64Ptr() **uint64 { + return (**uint64)(p.p) +} +func (p pointer) toUint64Slice() *[]uint64 { + return (*[]uint64)(p.p) +} +func (p pointer) toUint32() *uint32 { + return (*uint32)(p.p) +} +func (p pointer) toUint32Ptr() **uint32 { + return (**uint32)(p.p) +} +func (p pointer) toUint32Slice() *[]uint32 { + return (*[]uint32)(p.p) +} +func (p pointer) toBool() *bool { + return (*bool)(p.p) +} +func (p pointer) toBoolPtr() **bool { + return (**bool)(p.p) +} +func (p pointer) toBoolSlice() *[]bool { + return (*[]bool)(p.p) +} +func (p pointer) toFloat64() *float64 { + return (*float64)(p.p) +} +func (p pointer) toFloat64Ptr() **float64 { + return (**float64)(p.p) +} +func (p pointer) toFloat64Slice() *[]float64 { + return (*[]float64)(p.p) +} +func (p pointer) toFloat32() *float32 { + return (*float32)(p.p) +} +func (p pointer) toFloat32Ptr() **float32 { + return (**float32)(p.p) +} +func (p pointer) toFloat32Slice() *[]float32 { + return (*[]float32)(p.p) +} +func (p pointer) toString() *string { + return (*string)(p.p) +} +func (p pointer) toStringPtr() **string { + return (**string)(p.p) +} +func (p pointer) toStringSlice() *[]string { + return (*[]string)(p.p) +} +func (p pointer) toBytes() *[]byte { + return (*[]byte)(p.p) +} +func (p pointer) toBytesSlice() *[][]byte { + return (*[][]byte)(p.p) +} +func (p pointer) toExtensions() *XXX_InternalExtensions { + return (*XXX_InternalExtensions)(p.p) +} +func (p pointer) toOldExtensions() *map[int32]Extension { + return (*map[int32]Extension)(p.p) +} + +// getPointerSlice loads []*T from p as a []pointer. +// The value returned is aliased with the original slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) getPointerSlice() []pointer { + // Super-tricky - p should point to a []*T where T is a + // message type. We load it as []pointer. + return *(*[]pointer)(p.p) +} + +// setPointerSlice stores []pointer into p as a []*T. +// The value set is aliased with the input slice. +// This behavior differs from the implementation in pointer_reflect.go. +func (p pointer) setPointerSlice(v []pointer) { + // Super-tricky - p should point to a []*T where T is a + // message type. We store it as []pointer. + *(*[]pointer)(p.p) = v +} + +// getPointer loads the pointer at p and returns it. +func (p pointer) getPointer() pointer { + return pointer{p: *(*unsafe.Pointer)(p.p)} +} + +// setPointer stores the pointer q at p. +func (p pointer) setPointer(q pointer) { + *(*unsafe.Pointer)(p.p) = q.p +} + +// append q to the slice pointed to by p. +func (p pointer) appendPointer(q pointer) { + s := (*[]unsafe.Pointer)(p.p) + *s = append(*s, q.p) +} + +// getInterfacePointer returns a pointer that points to the +// interface data of the interface pointed by p. +func (p pointer) getInterfacePointer() pointer { + // Super-tricky - read pointer out of data word of interface value. + return pointer{p: (*(*[2]unsafe.Pointer)(p.p))[1]} +} + +// asPointerTo returns a reflect.Value that is a pointer to an +// object of type t stored at p. +func (p pointer) asPointerTo(t reflect.Type) reflect.Value { + return reflect.NewAt(t, p.p) +} + +func atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo { + return (*unmarshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} +func atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo { + return (*marshalInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} +func atomicLoadMergeInfo(p **mergeInfo) *mergeInfo { + return (*mergeInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} +func atomicLoadDiscardInfo(p **discardInfo) *discardInfo { + return (*discardInfo)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(p)))) +} +func atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) { + atomic.StorePointer((*unsafe.Pointer)(unsafe.Pointer(p)), unsafe.Pointer(v)) +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go new file mode 100644 index 0000000000..aca8eed02a --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go @@ -0,0 +1,56 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +// +build !purego,!appengine,!js + +// This file contains the implementation of the proto field accesses using package unsafe. + +package proto + +import ( + "reflect" + "unsafe" +) + +func (p pointer) getRef() pointer { + return pointer{p: (unsafe.Pointer)(&p.p)} +} + +func (p pointer) appendRef(v pointer, typ reflect.Type) { + slice := p.getSlice(typ) + elem := v.asPointerTo(typ).Elem() + newSlice := reflect.Append(slice, elem) + slice.Set(newSlice) +} + +func (p pointer) getSlice(typ reflect.Type) reflect.Value { + sliceTyp := reflect.SliceOf(typ) + slice := p.asPointerTo(sliceTyp) + slice = slice.Elem() + return slice +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/properties.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/properties.go new file mode 100644 index 0000000000..28da1475fb --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/properties.go @@ -0,0 +1,610 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +/* + * Routines for encoding data into the wire format for protocol buffers. + */ + +import ( + "fmt" + "log" + "reflect" + "sort" + "strconv" + "strings" + "sync" +) + +const debug bool = false + +// Constants that identify the encoding of a value on the wire. +const ( + WireVarint = 0 + WireFixed64 = 1 + WireBytes = 2 + WireStartGroup = 3 + WireEndGroup = 4 + WireFixed32 = 5 +) + +// tagMap is an optimization over map[int]int for typical protocol buffer +// use-cases. Encoded protocol buffers are often in tag order with small tag +// numbers. +type tagMap struct { + fastTags []int + slowTags map[int]int +} + +// tagMapFastLimit is the upper bound on the tag number that will be stored in +// the tagMap slice rather than its map. +const tagMapFastLimit = 1024 + +func (p *tagMap) get(t int) (int, bool) { + if t > 0 && t < tagMapFastLimit { + if t >= len(p.fastTags) { + return 0, false + } + fi := p.fastTags[t] + return fi, fi >= 0 + } + fi, ok := p.slowTags[t] + return fi, ok +} + +func (p *tagMap) put(t int, fi int) { + if t > 0 && t < tagMapFastLimit { + for len(p.fastTags) < t+1 { + p.fastTags = append(p.fastTags, -1) + } + p.fastTags[t] = fi + return + } + if p.slowTags == nil { + p.slowTags = make(map[int]int) + } + p.slowTags[t] = fi +} + +// StructProperties represents properties for all the fields of a struct. +// decoderTags and decoderOrigNames should only be used by the decoder. +type StructProperties struct { + Prop []*Properties // properties for each field + reqCount int // required count + decoderTags tagMap // map from proto tag to struct field number + decoderOrigNames map[string]int // map from original name to struct field number + order []int // list of struct field numbers in tag order + + // OneofTypes contains information about the oneof fields in this message. + // It is keyed by the original name of a field. + OneofTypes map[string]*OneofProperties +} + +// OneofProperties represents information about a specific field in a oneof. +type OneofProperties struct { + Type reflect.Type // pointer to generated struct type for this oneof field + Field int // struct field number of the containing oneof in the message + Prop *Properties +} + +// Implement the sorting interface so we can sort the fields in tag order, as recommended by the spec. +// See encode.go, (*Buffer).enc_struct. + +func (sp *StructProperties) Len() int { return len(sp.order) } +func (sp *StructProperties) Less(i, j int) bool { + return sp.Prop[sp.order[i]].Tag < sp.Prop[sp.order[j]].Tag +} +func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] = sp.order[j], sp.order[i] } + +// Properties represents the protocol-specific behavior of a single struct field. +type Properties struct { + Name string // name of the field, for error messages + OrigName string // original name before protocol compiler (always set) + JSONName string // name to use for JSON; determined by protoc + Wire string + WireType int + Tag int + Required bool + Optional bool + Repeated bool + Packed bool // relevant for repeated primitives only + Enum string // set for enum types only + proto3 bool // whether this is known to be a proto3 field + oneof bool // whether this is a oneof field + + Default string // default value + HasDefault bool // whether an explicit default was provided + CustomType string + CastType string + StdTime bool + StdDuration bool + WktPointer bool + + stype reflect.Type // set for struct types only + ctype reflect.Type // set for custom types only + sprop *StructProperties // set for struct types only + + mtype reflect.Type // set for map types only + MapKeyProp *Properties // set for map types only + MapValProp *Properties // set for map types only +} + +// String formats the properties in the protobuf struct field tag style. +func (p *Properties) String() string { + s := p.Wire + s += "," + s += strconv.Itoa(p.Tag) + if p.Required { + s += ",req" + } + if p.Optional { + s += ",opt" + } + if p.Repeated { + s += ",rep" + } + if p.Packed { + s += ",packed" + } + s += ",name=" + p.OrigName + if p.JSONName != p.OrigName { + s += ",json=" + p.JSONName + } + if p.proto3 { + s += ",proto3" + } + if p.oneof { + s += ",oneof" + } + if len(p.Enum) > 0 { + s += ",enum=" + p.Enum + } + if p.HasDefault { + s += ",def=" + p.Default + } + return s +} + +// Parse populates p by parsing a string in the protobuf struct field tag style. +func (p *Properties) Parse(s string) { + // "bytes,49,opt,name=foo,def=hello!" + fields := strings.Split(s, ",") // breaks def=, but handled below. + if len(fields) < 2 { + log.Printf("proto: tag has too few fields: %q", s) + return + } + + p.Wire = fields[0] + switch p.Wire { + case "varint": + p.WireType = WireVarint + case "fixed32": + p.WireType = WireFixed32 + case "fixed64": + p.WireType = WireFixed64 + case "zigzag32": + p.WireType = WireVarint + case "zigzag64": + p.WireType = WireVarint + case "bytes", "group": + p.WireType = WireBytes + // no numeric converter for non-numeric types + default: + log.Printf("proto: tag has unknown wire type: %q", s) + return + } + + var err error + p.Tag, err = strconv.Atoi(fields[1]) + if err != nil { + return + } + +outer: + for i := 2; i < len(fields); i++ { + f := fields[i] + switch { + case f == "req": + p.Required = true + case f == "opt": + p.Optional = true + case f == "rep": + p.Repeated = true + case f == "packed": + p.Packed = true + case strings.HasPrefix(f, "name="): + p.OrigName = f[5:] + case strings.HasPrefix(f, "json="): + p.JSONName = f[5:] + case strings.HasPrefix(f, "enum="): + p.Enum = f[5:] + case f == "proto3": + p.proto3 = true + case f == "oneof": + p.oneof = true + case strings.HasPrefix(f, "def="): + p.HasDefault = true + p.Default = f[4:] // rest of string + if i+1 < len(fields) { + // Commas aren't escaped, and def is always last. + p.Default += "," + strings.Join(fields[i+1:], ",") + break outer + } + case strings.HasPrefix(f, "embedded="): + p.OrigName = strings.Split(f, "=")[1] + case strings.HasPrefix(f, "customtype="): + p.CustomType = strings.Split(f, "=")[1] + case strings.HasPrefix(f, "casttype="): + p.CastType = strings.Split(f, "=")[1] + case f == "stdtime": + p.StdTime = true + case f == "stdduration": + p.StdDuration = true + case f == "wktptr": + p.WktPointer = true + } + } +} + +var protoMessageType = reflect.TypeOf((*Message)(nil)).Elem() + +// setFieldProps initializes the field properties for submessages and maps. +func (p *Properties) setFieldProps(typ reflect.Type, f *reflect.StructField, lockGetProp bool) { + isMap := typ.Kind() == reflect.Map + if len(p.CustomType) > 0 && !isMap { + p.ctype = typ + p.setTag(lockGetProp) + return + } + if p.StdTime && !isMap { + p.setTag(lockGetProp) + return + } + if p.StdDuration && !isMap { + p.setTag(lockGetProp) + return + } + if p.WktPointer && !isMap { + p.setTag(lockGetProp) + return + } + switch t1 := typ; t1.Kind() { + case reflect.Struct: + p.stype = typ + case reflect.Ptr: + if t1.Elem().Kind() == reflect.Struct { + p.stype = t1.Elem() + } + case reflect.Slice: + switch t2 := t1.Elem(); t2.Kind() { + case reflect.Ptr: + switch t3 := t2.Elem(); t3.Kind() { + case reflect.Struct: + p.stype = t3 + } + case reflect.Struct: + p.stype = t2 + } + + case reflect.Map: + + p.mtype = t1 + p.MapKeyProp = &Properties{} + p.MapKeyProp.init(reflect.PtrTo(p.mtype.Key()), "Key", f.Tag.Get("protobuf_key"), nil, lockGetProp) + p.MapValProp = &Properties{} + vtype := p.mtype.Elem() + if vtype.Kind() != reflect.Ptr && vtype.Kind() != reflect.Slice { + // The value type is not a message (*T) or bytes ([]byte), + // so we need encoders for the pointer to this type. + vtype = reflect.PtrTo(vtype) + } + + p.MapValProp.CustomType = p.CustomType + p.MapValProp.StdDuration = p.StdDuration + p.MapValProp.StdTime = p.StdTime + p.MapValProp.WktPointer = p.WktPointer + p.MapValProp.init(vtype, "Value", f.Tag.Get("protobuf_val"), nil, lockGetProp) + } + p.setTag(lockGetProp) +} + +func (p *Properties) setTag(lockGetProp bool) { + if p.stype != nil { + if lockGetProp { + p.sprop = GetProperties(p.stype) + } else { + p.sprop = getPropertiesLocked(p.stype) + } + } +} + +var ( + marshalerType = reflect.TypeOf((*Marshaler)(nil)).Elem() +) + +// Init populates the properties from a protocol buffer struct tag. +func (p *Properties) Init(typ reflect.Type, name, tag string, f *reflect.StructField) { + p.init(typ, name, tag, f, true) +} + +func (p *Properties) init(typ reflect.Type, name, tag string, f *reflect.StructField, lockGetProp bool) { + // "bytes,49,opt,def=hello!" + p.Name = name + p.OrigName = name + if tag == "" { + return + } + p.Parse(tag) + p.setFieldProps(typ, f, lockGetProp) +} + +var ( + propertiesMu sync.RWMutex + propertiesMap = make(map[reflect.Type]*StructProperties) +) + +// GetProperties returns the list of properties for the type represented by t. +// t must represent a generated struct type of a protocol message. +func GetProperties(t reflect.Type) *StructProperties { + if t.Kind() != reflect.Struct { + panic("proto: type must have kind struct") + } + + // Most calls to GetProperties in a long-running program will be + // retrieving details for types we have seen before. + propertiesMu.RLock() + sprop, ok := propertiesMap[t] + propertiesMu.RUnlock() + if ok { + return sprop + } + + propertiesMu.Lock() + sprop = getPropertiesLocked(t) + propertiesMu.Unlock() + return sprop +} + +type ( + oneofFuncsIface interface { + XXX_OneofFuncs() (func(Message, *Buffer) error, func(Message, int, int, *Buffer) (bool, error), func(Message) int, []interface{}) + } + oneofWrappersIface interface { + XXX_OneofWrappers() []interface{} + } +) + +// getPropertiesLocked requires that propertiesMu is held. +func getPropertiesLocked(t reflect.Type) *StructProperties { + if prop, ok := propertiesMap[t]; ok { + return prop + } + + prop := new(StructProperties) + // in case of recursive protos, fill this in now. + propertiesMap[t] = prop + + // build properties + prop.Prop = make([]*Properties, t.NumField()) + prop.order = make([]int, t.NumField()) + + isOneofMessage := false + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + p := new(Properties) + name := f.Name + p.init(f.Type, name, f.Tag.Get("protobuf"), &f, false) + + oneof := f.Tag.Get("protobuf_oneof") // special case + if oneof != "" { + isOneofMessage = true + // Oneof fields don't use the traditional protobuf tag. + p.OrigName = oneof + } + prop.Prop[i] = p + prop.order[i] = i + if debug { + print(i, " ", f.Name, " ", t.String(), " ") + if p.Tag > 0 { + print(p.String()) + } + print("\n") + } + } + + // Re-order prop.order. + sort.Sort(prop) + + if isOneofMessage { + var oots []interface{} + switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) { + case oneofFuncsIface: + _, _, _, oots = m.XXX_OneofFuncs() + case oneofWrappersIface: + oots = m.XXX_OneofWrappers() + } + if len(oots) > 0 { + // Interpret oneof metadata. + prop.OneofTypes = make(map[string]*OneofProperties) + for _, oot := range oots { + oop := &OneofProperties{ + Type: reflect.ValueOf(oot).Type(), // *T + Prop: new(Properties), + } + sft := oop.Type.Elem().Field(0) + oop.Prop.Name = sft.Name + oop.Prop.Parse(sft.Tag.Get("protobuf")) + // There will be exactly one interface field that + // this new value is assignable to. + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Type.Kind() != reflect.Interface { + continue + } + if !oop.Type.AssignableTo(f.Type) { + continue + } + oop.Field = i + break + } + prop.OneofTypes[oop.Prop.OrigName] = oop + } + } + } + + // build required counts + // build tags + reqCount := 0 + prop.decoderOrigNames = make(map[string]int) + for i, p := range prop.Prop { + if strings.HasPrefix(p.Name, "XXX_") { + // Internal fields should not appear in tags/origNames maps. + // They are handled specially when encoding and decoding. + continue + } + if p.Required { + reqCount++ + } + prop.decoderTags.put(p.Tag, i) + prop.decoderOrigNames[p.OrigName] = i + } + prop.reqCount = reqCount + + return prop +} + +// A global registry of enum types. +// The generated code will register the generated maps by calling RegisterEnum. + +var enumValueMaps = make(map[string]map[string]int32) +var enumStringMaps = make(map[string]map[int32]string) + +// RegisterEnum is called from the generated code to install the enum descriptor +// maps into the global table to aid parsing text format protocol buffers. +func RegisterEnum(typeName string, unusedNameMap map[int32]string, valueMap map[string]int32) { + if _, ok := enumValueMaps[typeName]; ok { + panic("proto: duplicate enum registered: " + typeName) + } + enumValueMaps[typeName] = valueMap + if _, ok := enumStringMaps[typeName]; ok { + panic("proto: duplicate enum registered: " + typeName) + } + enumStringMaps[typeName] = unusedNameMap +} + +// EnumValueMap returns the mapping from names to integers of the +// enum type enumType, or a nil if not found. +func EnumValueMap(enumType string) map[string]int32 { + return enumValueMaps[enumType] +} + +// A registry of all linked message types. +// The string is a fully-qualified proto name ("pkg.Message"). +var ( + protoTypedNils = make(map[string]Message) // a map from proto names to typed nil pointers + protoMapTypes = make(map[string]reflect.Type) // a map from proto names to map types + revProtoTypes = make(map[reflect.Type]string) +) + +// RegisterType is called from generated code and maps from the fully qualified +// proto name to the type (pointer to struct) of the protocol buffer. +func RegisterType(x Message, name string) { + if _, ok := protoTypedNils[name]; ok { + // TODO: Some day, make this a panic. + log.Printf("proto: duplicate proto type registered: %s", name) + return + } + t := reflect.TypeOf(x) + if v := reflect.ValueOf(x); v.Kind() == reflect.Ptr && v.Pointer() == 0 { + // Generated code always calls RegisterType with nil x. + // This check is just for extra safety. + protoTypedNils[name] = x + } else { + protoTypedNils[name] = reflect.Zero(t).Interface().(Message) + } + revProtoTypes[t] = name +} + +// RegisterMapType is called from generated code and maps from the fully qualified +// proto name to the native map type of the proto map definition. +func RegisterMapType(x interface{}, name string) { + if reflect.TypeOf(x).Kind() != reflect.Map { + panic(fmt.Sprintf("RegisterMapType(%T, %q); want map", x, name)) + } + if _, ok := protoMapTypes[name]; ok { + log.Printf("proto: duplicate proto type registered: %s", name) + return + } + t := reflect.TypeOf(x) + protoMapTypes[name] = t + revProtoTypes[t] = name +} + +// MessageName returns the fully-qualified proto name for the given message type. +func MessageName(x Message) string { + type xname interface { + XXX_MessageName() string + } + if m, ok := x.(xname); ok { + return m.XXX_MessageName() + } + return revProtoTypes[reflect.TypeOf(x)] +} + +// MessageType returns the message type (pointer to struct) for a named message. +// The type is not guaranteed to implement proto.Message if the name refers to a +// map entry. +func MessageType(name string) reflect.Type { + if t, ok := protoTypedNils[name]; ok { + return reflect.TypeOf(t) + } + return protoMapTypes[name] +} + +// A registry of all linked proto files. +var ( + protoFiles = make(map[string][]byte) // file name => fileDescriptor +) + +// RegisterFile is called from generated code and maps from the +// full file name of a .proto file to its compressed FileDescriptorProto. +func RegisterFile(filename string, fileDescriptor []byte) { + protoFiles[filename] = fileDescriptor +} + +// FileDescriptor returns the compressed FileDescriptorProto for a .proto file. +func FileDescriptor(filename string) []byte { return protoFiles[filename] } diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/properties_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/properties_gogo.go new file mode 100644 index 0000000000..40ea3dd935 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/properties_gogo.go @@ -0,0 +1,36 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "reflect" +) + +var sizerType = reflect.TypeOf((*Sizer)(nil)).Elem() +var protosizerType = reflect.TypeOf((*ProtoSizer)(nil)).Elem() diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/skip_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/skip_gogo.go new file mode 100644 index 0000000000..5a5fd93f7c --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/skip_gogo.go @@ -0,0 +1,119 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "fmt" + "io" +) + +func Skip(data []byte) (n int, err error) { + l := len(data) + index := 0 + for index < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[index] + index++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + index++ + if data[index-1] < 0x80 { + break + } + } + return index, nil + case 1: + index += 8 + return index, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[index] + index++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + index += length + return index, nil + case 3: + for { + var innerWire uint64 + var start int = index + for shift := uint(0); ; shift += 7 { + if index >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[index] + index++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := Skip(data[start:]) + if err != nil { + return 0, err + } + index = start + next + } + return index, nil + case 4: + return index, nil + case 5: + index += 4 + return index, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal.go new file mode 100644 index 0000000000..f8babdefab --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal.go @@ -0,0 +1,3009 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +import ( + "errors" + "fmt" + "math" + "reflect" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "unicode/utf8" +) + +// a sizer takes a pointer to a field and the size of its tag, computes the size of +// the encoded data. +type sizer func(pointer, int) int + +// a marshaler takes a byte slice, a pointer to a field, and its tag (in wire format), +// marshals the field to the end of the slice, returns the slice and error (if any). +type marshaler func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) + +// marshalInfo is the information used for marshaling a message. +type marshalInfo struct { + typ reflect.Type + fields []*marshalFieldInfo + unrecognized field // offset of XXX_unrecognized + extensions field // offset of XXX_InternalExtensions + v1extensions field // offset of XXX_extensions + sizecache field // offset of XXX_sizecache + initialized int32 // 0 -- only typ is set, 1 -- fully initialized + messageset bool // uses message set wire format + hasmarshaler bool // has custom marshaler + sync.RWMutex // protect extElems map, also for initialization + extElems map[int32]*marshalElemInfo // info of extension elements + + hassizer bool // has custom sizer + hasprotosizer bool // has custom protosizer + + bytesExtensions field // offset of XXX_extensions where the field type is []byte +} + +// marshalFieldInfo is the information used for marshaling a field of a message. +type marshalFieldInfo struct { + field field + wiretag uint64 // tag in wire format + tagsize int // size of tag in wire format + sizer sizer + marshaler marshaler + isPointer bool + required bool // field is required + name string // name of the field, for error reporting + oneofElems map[reflect.Type]*marshalElemInfo // info of oneof elements +} + +// marshalElemInfo is the information used for marshaling an extension or oneof element. +type marshalElemInfo struct { + wiretag uint64 // tag in wire format + tagsize int // size of tag in wire format + sizer sizer + marshaler marshaler + isptr bool // elem is pointer typed, thus interface of this type is a direct interface (extension only) +} + +var ( + marshalInfoMap = map[reflect.Type]*marshalInfo{} + marshalInfoLock sync.Mutex + + uint8SliceType = reflect.TypeOf(([]uint8)(nil)).Kind() +) + +// getMarshalInfo returns the information to marshal a given type of message. +// The info it returns may not necessarily initialized. +// t is the type of the message (NOT the pointer to it). +func getMarshalInfo(t reflect.Type) *marshalInfo { + marshalInfoLock.Lock() + u, ok := marshalInfoMap[t] + if !ok { + u = &marshalInfo{typ: t} + marshalInfoMap[t] = u + } + marshalInfoLock.Unlock() + return u +} + +// Size is the entry point from generated code, +// and should be ONLY called by generated code. +// It computes the size of encoded data of msg. +// a is a pointer to a place to store cached marshal info. +func (a *InternalMessageInfo) Size(msg Message) int { + u := getMessageMarshalInfo(msg, a) + ptr := toPointer(&msg) + if ptr.isNil() { + // We get here if msg is a typed nil ((*SomeMessage)(nil)), + // so it satisfies the interface, and msg == nil wouldn't + // catch it. We don't want crash in this case. + return 0 + } + return u.size(ptr) +} + +// Marshal is the entry point from generated code, +// and should be ONLY called by generated code. +// It marshals msg to the end of b. +// a is a pointer to a place to store cached marshal info. +func (a *InternalMessageInfo) Marshal(b []byte, msg Message, deterministic bool) ([]byte, error) { + u := getMessageMarshalInfo(msg, a) + ptr := toPointer(&msg) + if ptr.isNil() { + // We get here if msg is a typed nil ((*SomeMessage)(nil)), + // so it satisfies the interface, and msg == nil wouldn't + // catch it. We don't want crash in this case. + return b, ErrNil + } + return u.marshal(b, ptr, deterministic) +} + +func getMessageMarshalInfo(msg interface{}, a *InternalMessageInfo) *marshalInfo { + // u := a.marshal, but atomically. + // We use an atomic here to ensure memory consistency. + u := atomicLoadMarshalInfo(&a.marshal) + if u == nil { + // Get marshal information from type of message. + t := reflect.ValueOf(msg).Type() + if t.Kind() != reflect.Ptr { + panic(fmt.Sprintf("cannot handle non-pointer message type %v", t)) + } + u = getMarshalInfo(t.Elem()) + // Store it in the cache for later users. + // a.marshal = u, but atomically. + atomicStoreMarshalInfo(&a.marshal, u) + } + return u +} + +// size is the main function to compute the size of the encoded data of a message. +// ptr is the pointer to the message. +func (u *marshalInfo) size(ptr pointer) int { + if atomic.LoadInt32(&u.initialized) == 0 { + u.computeMarshalInfo() + } + + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + if u.hasmarshaler { + // Uses the message's Size method if available + if u.hassizer { + s := ptr.asPointerTo(u.typ).Interface().(Sizer) + return s.Size() + } + // Uses the message's ProtoSize method if available + if u.hasprotosizer { + s := ptr.asPointerTo(u.typ).Interface().(ProtoSizer) + return s.ProtoSize() + } + + m := ptr.asPointerTo(u.typ).Interface().(Marshaler) + b, _ := m.Marshal() + return len(b) + } + + n := 0 + for _, f := range u.fields { + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { + // nil pointer always marshals to nothing + continue + } + n += f.sizer(ptr.offset(f.field), f.tagsize) + } + if u.extensions.IsValid() { + e := ptr.offset(u.extensions).toExtensions() + if u.messageset { + n += u.sizeMessageSet(e) + } else { + n += u.sizeExtensions(e) + } + } + if u.v1extensions.IsValid() { + m := *ptr.offset(u.v1extensions).toOldExtensions() + n += u.sizeV1Extensions(m) + } + if u.bytesExtensions.IsValid() { + s := *ptr.offset(u.bytesExtensions).toBytes() + n += len(s) + } + if u.unrecognized.IsValid() { + s := *ptr.offset(u.unrecognized).toBytes() + n += len(s) + } + + // cache the result for use in marshal + if u.sizecache.IsValid() { + atomic.StoreInt32(ptr.offset(u.sizecache).toInt32(), int32(n)) + } + return n +} + +// cachedsize gets the size from cache. If there is no cache (i.e. message is not generated), +// fall back to compute the size. +func (u *marshalInfo) cachedsize(ptr pointer) int { + if u.sizecache.IsValid() { + return int(atomic.LoadInt32(ptr.offset(u.sizecache).toInt32())) + } + return u.size(ptr) +} + +// marshal is the main function to marshal a message. It takes a byte slice and appends +// the encoded data to the end of the slice, returns the slice and error (if any). +// ptr is the pointer to the message. +// If deterministic is true, map is marshaled in deterministic order. +func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic bool) ([]byte, error) { + if atomic.LoadInt32(&u.initialized) == 0 { + u.computeMarshalInfo() + } + + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + if u.hasmarshaler { + m := ptr.asPointerTo(u.typ).Interface().(Marshaler) + b1, err := m.Marshal() + b = append(b, b1...) + return b, err + } + + var err, errLater error + // The old marshaler encodes extensions at beginning. + if u.extensions.IsValid() { + e := ptr.offset(u.extensions).toExtensions() + if u.messageset { + b, err = u.appendMessageSet(b, e, deterministic) + } else { + b, err = u.appendExtensions(b, e, deterministic) + } + if err != nil { + return b, err + } + } + if u.v1extensions.IsValid() { + m := *ptr.offset(u.v1extensions).toOldExtensions() + b, err = u.appendV1Extensions(b, m, deterministic) + if err != nil { + return b, err + } + } + if u.bytesExtensions.IsValid() { + s := *ptr.offset(u.bytesExtensions).toBytes() + b = append(b, s...) + } + for _, f := range u.fields { + if f.required { + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { + // Required field is not set. + // We record the error but keep going, to give a complete marshaling. + if errLater == nil { + errLater = &RequiredNotSetError{f.name} + } + continue + } + } + if f.isPointer && ptr.offset(f.field).getPointer().isNil() { + // nil pointer always marshals to nothing + continue + } + b, err = f.marshaler(b, ptr.offset(f.field), f.wiretag, deterministic) + if err != nil { + if err1, ok := err.(*RequiredNotSetError); ok { + // Required field in submessage is not set. + // We record the error but keep going, to give a complete marshaling. + if errLater == nil { + errLater = &RequiredNotSetError{f.name + "." + err1.field} + } + continue + } + if err == errRepeatedHasNil { + err = errors.New("proto: repeated field " + f.name + " has nil element") + } + if err == errInvalidUTF8 { + if errLater == nil { + fullName := revProtoTypes[reflect.PtrTo(u.typ)] + "." + f.name + errLater = &invalidUTF8Error{fullName} + } + continue + } + return b, err + } + } + if u.unrecognized.IsValid() { + s := *ptr.offset(u.unrecognized).toBytes() + b = append(b, s...) + } + return b, errLater +} + +// computeMarshalInfo initializes the marshal info. +func (u *marshalInfo) computeMarshalInfo() { + u.Lock() + defer u.Unlock() + if u.initialized != 0 { // non-atomic read is ok as it is protected by the lock + return + } + + t := u.typ + u.unrecognized = invalidField + u.extensions = invalidField + u.v1extensions = invalidField + u.bytesExtensions = invalidField + u.sizecache = invalidField + isOneofMessage := false + + if reflect.PtrTo(t).Implements(sizerType) { + u.hassizer = true + } + if reflect.PtrTo(t).Implements(protosizerType) { + u.hasprotosizer = true + } + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + if reflect.PtrTo(t).Implements(marshalerType) { + u.hasmarshaler = true + atomic.StoreInt32(&u.initialized, 1) + return + } + + n := t.NumField() + + // deal with XXX fields first + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + if f.Tag.Get("protobuf_oneof") != "" { + isOneofMessage = true + } + if !strings.HasPrefix(f.Name, "XXX_") { + continue + } + switch f.Name { + case "XXX_sizecache": + u.sizecache = toField(&f) + case "XXX_unrecognized": + u.unrecognized = toField(&f) + case "XXX_InternalExtensions": + u.extensions = toField(&f) + u.messageset = f.Tag.Get("protobuf_messageset") == "1" + case "XXX_extensions": + if f.Type.Kind() == reflect.Map { + u.v1extensions = toField(&f) + } else { + u.bytesExtensions = toField(&f) + } + case "XXX_NoUnkeyedLiteral": + // nothing to do + default: + panic("unknown XXX field: " + f.Name) + } + n-- + } + + // get oneof implementers + var oneofImplementers []interface{} + // gogo: isOneofMessage is needed for embedded oneof messages, without a marshaler and unmarshaler + if isOneofMessage { + switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) { + case oneofFuncsIface: + _, _, _, oneofImplementers = m.XXX_OneofFuncs() + case oneofWrappersIface: + oneofImplementers = m.XXX_OneofWrappers() + } + } + + // normal fields + fields := make([]marshalFieldInfo, n) // batch allocation + u.fields = make([]*marshalFieldInfo, 0, n) + for i, j := 0, 0; i < t.NumField(); i++ { + f := t.Field(i) + + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + field := &fields[j] + j++ + field.name = f.Name + u.fields = append(u.fields, field) + if f.Tag.Get("protobuf_oneof") != "" { + field.computeOneofFieldInfo(&f, oneofImplementers) + continue + } + if f.Tag.Get("protobuf") == "" { + // field has no tag (not in generated message), ignore it + u.fields = u.fields[:len(u.fields)-1] + j-- + continue + } + field.computeMarshalFieldInfo(&f) + } + + // fields are marshaled in tag order on the wire. + sort.Sort(byTag(u.fields)) + + atomic.StoreInt32(&u.initialized, 1) +} + +// helper for sorting fields by tag +type byTag []*marshalFieldInfo + +func (a byTag) Len() int { return len(a) } +func (a byTag) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byTag) Less(i, j int) bool { return a[i].wiretag < a[j].wiretag } + +// getExtElemInfo returns the information to marshal an extension element. +// The info it returns is initialized. +func (u *marshalInfo) getExtElemInfo(desc *ExtensionDesc) *marshalElemInfo { + // get from cache first + u.RLock() + e, ok := u.extElems[desc.Field] + u.RUnlock() + if ok { + return e + } + + t := reflect.TypeOf(desc.ExtensionType) // pointer or slice to basic type or struct + tags := strings.Split(desc.Tag, ",") + tag, err := strconv.Atoi(tags[1]) + if err != nil { + panic("tag is not an integer") + } + wt := wiretype(tags[0]) + sizr, marshalr := typeMarshaler(t, tags, false, false) + e = &marshalElemInfo{ + wiretag: uint64(tag)<<3 | wt, + tagsize: SizeVarint(uint64(tag) << 3), + sizer: sizr, + marshaler: marshalr, + isptr: t.Kind() == reflect.Ptr, + } + + // update cache + u.Lock() + if u.extElems == nil { + u.extElems = make(map[int32]*marshalElemInfo) + } + u.extElems[desc.Field] = e + u.Unlock() + return e +} + +// computeMarshalFieldInfo fills up the information to marshal a field. +func (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructField) { + // parse protobuf tag of the field. + // tag has format of "bytes,49,opt,name=foo,def=hello!" + tags := strings.Split(f.Tag.Get("protobuf"), ",") + if tags[0] == "" { + return + } + tag, err := strconv.Atoi(tags[1]) + if err != nil { + panic("tag is not an integer") + } + wt := wiretype(tags[0]) + if tags[2] == "req" { + fi.required = true + } + fi.setTag(f, tag, wt) + fi.setMarshaler(f, tags) +} + +func (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructField, oneofImplementers []interface{}) { + fi.field = toField(f) + fi.wiretag = math.MaxInt32 // Use a large tag number, make oneofs sorted at the end. This tag will not appear on the wire. + fi.isPointer = true + fi.sizer, fi.marshaler = makeOneOfMarshaler(fi, f) + fi.oneofElems = make(map[reflect.Type]*marshalElemInfo) + + ityp := f.Type // interface type + for _, o := range oneofImplementers { + t := reflect.TypeOf(o) + if !t.Implements(ityp) { + continue + } + sf := t.Elem().Field(0) // oneof implementer is a struct with a single field + tags := strings.Split(sf.Tag.Get("protobuf"), ",") + tag, err := strconv.Atoi(tags[1]) + if err != nil { + panic("tag is not an integer") + } + wt := wiretype(tags[0]) + sizr, marshalr := typeMarshaler(sf.Type, tags, false, true) // oneof should not omit any zero value + fi.oneofElems[t.Elem()] = &marshalElemInfo{ + wiretag: uint64(tag)<<3 | wt, + tagsize: SizeVarint(uint64(tag) << 3), + sizer: sizr, + marshaler: marshalr, + } + } +} + +// wiretype returns the wire encoding of the type. +func wiretype(encoding string) uint64 { + switch encoding { + case "fixed32": + return WireFixed32 + case "fixed64": + return WireFixed64 + case "varint", "zigzag32", "zigzag64": + return WireVarint + case "bytes": + return WireBytes + case "group": + return WireStartGroup + } + panic("unknown wire type " + encoding) +} + +// setTag fills up the tag (in wire format) and its size in the info of a field. +func (fi *marshalFieldInfo) setTag(f *reflect.StructField, tag int, wt uint64) { + fi.field = toField(f) + fi.wiretag = uint64(tag)<<3 | wt + fi.tagsize = SizeVarint(uint64(tag) << 3) +} + +// setMarshaler fills up the sizer and marshaler in the info of a field. +func (fi *marshalFieldInfo) setMarshaler(f *reflect.StructField, tags []string) { + switch f.Type.Kind() { + case reflect.Map: + // map field + fi.isPointer = true + fi.sizer, fi.marshaler = makeMapMarshaler(f) + return + case reflect.Ptr, reflect.Slice: + fi.isPointer = true + } + fi.sizer, fi.marshaler = typeMarshaler(f.Type, tags, true, false) +} + +// typeMarshaler returns the sizer and marshaler of a given field. +// t is the type of the field. +// tags is the generated "protobuf" tag of the field. +// If nozero is true, zero value is not marshaled to the wire. +// If oneof is true, it is a oneof field. +func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (sizer, marshaler) { + encoding := tags[0] + + pointer := false + slice := false + if t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 { + slice = true + t = t.Elem() + } + if t.Kind() == reflect.Ptr { + pointer = true + t = t.Elem() + } + + packed := false + proto3 := false + ctype := false + isTime := false + isDuration := false + isWktPointer := false + validateUTF8 := true + for i := 2; i < len(tags); i++ { + if tags[i] == "packed" { + packed = true + } + if tags[i] == "proto3" { + proto3 = true + } + if strings.HasPrefix(tags[i], "customtype=") { + ctype = true + } + if tags[i] == "stdtime" { + isTime = true + } + if tags[i] == "stdduration" { + isDuration = true + } + if tags[i] == "wktptr" { + isWktPointer = true + } + } + validateUTF8 = validateUTF8 && proto3 + if !proto3 && !pointer && !slice { + nozero = false + } + + if ctype { + if reflect.PtrTo(t).Implements(customType) { + if slice { + return makeMessageRefSliceMarshaler(getMarshalInfo(t)) + } + if pointer { + return makeCustomPtrMarshaler(getMarshalInfo(t)) + } + return makeCustomMarshaler(getMarshalInfo(t)) + } else { + panic(fmt.Sprintf("custom type: type: %v, does not implement the proto.custom interface", t)) + } + } + + if isTime { + if pointer { + if slice { + return makeTimePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeTimePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeTimeSliceMarshaler(getMarshalInfo(t)) + } + return makeTimeMarshaler(getMarshalInfo(t)) + } + + if isDuration { + if pointer { + if slice { + return makeDurationPtrSliceMarshaler(getMarshalInfo(t)) + } + return makeDurationPtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeDurationSliceMarshaler(getMarshalInfo(t)) + } + return makeDurationMarshaler(getMarshalInfo(t)) + } + + if isWktPointer { + switch t.Kind() { + case reflect.Float64: + if pointer { + if slice { + return makeStdDoubleValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdDoubleValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdDoubleValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdDoubleValueMarshaler(getMarshalInfo(t)) + case reflect.Float32: + if pointer { + if slice { + return makeStdFloatValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdFloatValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdFloatValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdFloatValueMarshaler(getMarshalInfo(t)) + case reflect.Int64: + if pointer { + if slice { + return makeStdInt64ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt64ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdInt64ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt64ValueMarshaler(getMarshalInfo(t)) + case reflect.Uint64: + if pointer { + if slice { + return makeStdUInt64ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt64ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdUInt64ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt64ValueMarshaler(getMarshalInfo(t)) + case reflect.Int32: + if pointer { + if slice { + return makeStdInt32ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt32ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdInt32ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdInt32ValueMarshaler(getMarshalInfo(t)) + case reflect.Uint32: + if pointer { + if slice { + return makeStdUInt32ValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt32ValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdUInt32ValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdUInt32ValueMarshaler(getMarshalInfo(t)) + case reflect.Bool: + if pointer { + if slice { + return makeStdBoolValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBoolValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdBoolValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBoolValueMarshaler(getMarshalInfo(t)) + case reflect.String: + if pointer { + if slice { + return makeStdStringValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdStringValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdStringValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdStringValueMarshaler(getMarshalInfo(t)) + case uint8SliceType: + if pointer { + if slice { + return makeStdBytesValuePtrSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBytesValuePtrMarshaler(getMarshalInfo(t)) + } + if slice { + return makeStdBytesValueSliceMarshaler(getMarshalInfo(t)) + } + return makeStdBytesValueMarshaler(getMarshalInfo(t)) + default: + panic(fmt.Sprintf("unknown wktpointer type %#v", t)) + } + } + + switch t.Kind() { + case reflect.Bool: + if pointer { + return sizeBoolPtr, appendBoolPtr + } + if slice { + if packed { + return sizeBoolPackedSlice, appendBoolPackedSlice + } + return sizeBoolSlice, appendBoolSlice + } + if nozero { + return sizeBoolValueNoZero, appendBoolValueNoZero + } + return sizeBoolValue, appendBoolValue + case reflect.Uint32: + switch encoding { + case "fixed32": + if pointer { + return sizeFixed32Ptr, appendFixed32Ptr + } + if slice { + if packed { + return sizeFixed32PackedSlice, appendFixed32PackedSlice + } + return sizeFixed32Slice, appendFixed32Slice + } + if nozero { + return sizeFixed32ValueNoZero, appendFixed32ValueNoZero + } + return sizeFixed32Value, appendFixed32Value + case "varint": + if pointer { + return sizeVarint32Ptr, appendVarint32Ptr + } + if slice { + if packed { + return sizeVarint32PackedSlice, appendVarint32PackedSlice + } + return sizeVarint32Slice, appendVarint32Slice + } + if nozero { + return sizeVarint32ValueNoZero, appendVarint32ValueNoZero + } + return sizeVarint32Value, appendVarint32Value + } + case reflect.Int32: + switch encoding { + case "fixed32": + if pointer { + return sizeFixedS32Ptr, appendFixedS32Ptr + } + if slice { + if packed { + return sizeFixedS32PackedSlice, appendFixedS32PackedSlice + } + return sizeFixedS32Slice, appendFixedS32Slice + } + if nozero { + return sizeFixedS32ValueNoZero, appendFixedS32ValueNoZero + } + return sizeFixedS32Value, appendFixedS32Value + case "varint": + if pointer { + return sizeVarintS32Ptr, appendVarintS32Ptr + } + if slice { + if packed { + return sizeVarintS32PackedSlice, appendVarintS32PackedSlice + } + return sizeVarintS32Slice, appendVarintS32Slice + } + if nozero { + return sizeVarintS32ValueNoZero, appendVarintS32ValueNoZero + } + return sizeVarintS32Value, appendVarintS32Value + case "zigzag32": + if pointer { + return sizeZigzag32Ptr, appendZigzag32Ptr + } + if slice { + if packed { + return sizeZigzag32PackedSlice, appendZigzag32PackedSlice + } + return sizeZigzag32Slice, appendZigzag32Slice + } + if nozero { + return sizeZigzag32ValueNoZero, appendZigzag32ValueNoZero + } + return sizeZigzag32Value, appendZigzag32Value + } + case reflect.Uint64: + switch encoding { + case "fixed64": + if pointer { + return sizeFixed64Ptr, appendFixed64Ptr + } + if slice { + if packed { + return sizeFixed64PackedSlice, appendFixed64PackedSlice + } + return sizeFixed64Slice, appendFixed64Slice + } + if nozero { + return sizeFixed64ValueNoZero, appendFixed64ValueNoZero + } + return sizeFixed64Value, appendFixed64Value + case "varint": + if pointer { + return sizeVarint64Ptr, appendVarint64Ptr + } + if slice { + if packed { + return sizeVarint64PackedSlice, appendVarint64PackedSlice + } + return sizeVarint64Slice, appendVarint64Slice + } + if nozero { + return sizeVarint64ValueNoZero, appendVarint64ValueNoZero + } + return sizeVarint64Value, appendVarint64Value + } + case reflect.Int64: + switch encoding { + case "fixed64": + if pointer { + return sizeFixedS64Ptr, appendFixedS64Ptr + } + if slice { + if packed { + return sizeFixedS64PackedSlice, appendFixedS64PackedSlice + } + return sizeFixedS64Slice, appendFixedS64Slice + } + if nozero { + return sizeFixedS64ValueNoZero, appendFixedS64ValueNoZero + } + return sizeFixedS64Value, appendFixedS64Value + case "varint": + if pointer { + return sizeVarintS64Ptr, appendVarintS64Ptr + } + if slice { + if packed { + return sizeVarintS64PackedSlice, appendVarintS64PackedSlice + } + return sizeVarintS64Slice, appendVarintS64Slice + } + if nozero { + return sizeVarintS64ValueNoZero, appendVarintS64ValueNoZero + } + return sizeVarintS64Value, appendVarintS64Value + case "zigzag64": + if pointer { + return sizeZigzag64Ptr, appendZigzag64Ptr + } + if slice { + if packed { + return sizeZigzag64PackedSlice, appendZigzag64PackedSlice + } + return sizeZigzag64Slice, appendZigzag64Slice + } + if nozero { + return sizeZigzag64ValueNoZero, appendZigzag64ValueNoZero + } + return sizeZigzag64Value, appendZigzag64Value + } + case reflect.Float32: + if pointer { + return sizeFloat32Ptr, appendFloat32Ptr + } + if slice { + if packed { + return sizeFloat32PackedSlice, appendFloat32PackedSlice + } + return sizeFloat32Slice, appendFloat32Slice + } + if nozero { + return sizeFloat32ValueNoZero, appendFloat32ValueNoZero + } + return sizeFloat32Value, appendFloat32Value + case reflect.Float64: + if pointer { + return sizeFloat64Ptr, appendFloat64Ptr + } + if slice { + if packed { + return sizeFloat64PackedSlice, appendFloat64PackedSlice + } + return sizeFloat64Slice, appendFloat64Slice + } + if nozero { + return sizeFloat64ValueNoZero, appendFloat64ValueNoZero + } + return sizeFloat64Value, appendFloat64Value + case reflect.String: + if validateUTF8 { + if pointer { + return sizeStringPtr, appendUTF8StringPtr + } + if slice { + return sizeStringSlice, appendUTF8StringSlice + } + if nozero { + return sizeStringValueNoZero, appendUTF8StringValueNoZero + } + return sizeStringValue, appendUTF8StringValue + } + if pointer { + return sizeStringPtr, appendStringPtr + } + if slice { + return sizeStringSlice, appendStringSlice + } + if nozero { + return sizeStringValueNoZero, appendStringValueNoZero + } + return sizeStringValue, appendStringValue + case reflect.Slice: + if slice { + return sizeBytesSlice, appendBytesSlice + } + if oneof { + // Oneof bytes field may also have "proto3" tag. + // We want to marshal it as a oneof field. Do this + // check before the proto3 check. + return sizeBytesOneof, appendBytesOneof + } + if proto3 { + return sizeBytes3, appendBytes3 + } + return sizeBytes, appendBytes + case reflect.Struct: + switch encoding { + case "group": + if slice { + return makeGroupSliceMarshaler(getMarshalInfo(t)) + } + return makeGroupMarshaler(getMarshalInfo(t)) + case "bytes": + if pointer { + if slice { + return makeMessageSliceMarshaler(getMarshalInfo(t)) + } + return makeMessageMarshaler(getMarshalInfo(t)) + } else { + if slice { + return makeMessageRefSliceMarshaler(getMarshalInfo(t)) + } + return makeMessageRefMarshaler(getMarshalInfo(t)) + } + } + } + panic(fmt.Sprintf("unknown or mismatched type: type: %v, wire type: %v", t, encoding)) +} + +// Below are functions to size/marshal a specific type of a field. +// They are stored in the field's info, and called by function pointers. +// They have type sizer or marshaler. + +func sizeFixed32Value(_ pointer, tagsize int) int { + return 4 + tagsize +} +func sizeFixed32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint32() + if v == 0 { + return 0 + } + return 4 + tagsize +} +func sizeFixed32Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint32Ptr() + if p == nil { + return 0 + } + return 4 + tagsize +} +func sizeFixed32Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + return (4 + tagsize) * len(s) +} +func sizeFixed32PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return 0 + } + return 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize +} +func sizeFixedS32Value(_ pointer, tagsize int) int { + return 4 + tagsize +} +func sizeFixedS32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + if v == 0 { + return 0 + } + return 4 + tagsize +} +func sizeFixedS32Ptr(ptr pointer, tagsize int) int { + p := ptr.getInt32Ptr() + if p == nil { + return 0 + } + return 4 + tagsize +} +func sizeFixedS32Slice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + return (4 + tagsize) * len(s) +} +func sizeFixedS32PackedSlice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + if len(s) == 0 { + return 0 + } + return 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize +} +func sizeFloat32Value(_ pointer, tagsize int) int { + return 4 + tagsize +} +func sizeFloat32ValueNoZero(ptr pointer, tagsize int) int { + v := math.Float32bits(*ptr.toFloat32()) + if v == 0 { + return 0 + } + return 4 + tagsize +} +func sizeFloat32Ptr(ptr pointer, tagsize int) int { + p := *ptr.toFloat32Ptr() + if p == nil { + return 0 + } + return 4 + tagsize +} +func sizeFloat32Slice(ptr pointer, tagsize int) int { + s := *ptr.toFloat32Slice() + return (4 + tagsize) * len(s) +} +func sizeFloat32PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toFloat32Slice() + if len(s) == 0 { + return 0 + } + return 4*len(s) + SizeVarint(uint64(4*len(s))) + tagsize +} +func sizeFixed64Value(_ pointer, tagsize int) int { + return 8 + tagsize +} +func sizeFixed64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint64() + if v == 0 { + return 0 + } + return 8 + tagsize +} +func sizeFixed64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint64Ptr() + if p == nil { + return 0 + } + return 8 + tagsize +} +func sizeFixed64Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + return (8 + tagsize) * len(s) +} +func sizeFixed64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return 0 + } + return 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize +} +func sizeFixedS64Value(_ pointer, tagsize int) int { + return 8 + tagsize +} +func sizeFixedS64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + if v == 0 { + return 0 + } + return 8 + tagsize +} +func sizeFixedS64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toInt64Ptr() + if p == nil { + return 0 + } + return 8 + tagsize +} +func sizeFixedS64Slice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + return (8 + tagsize) * len(s) +} +func sizeFixedS64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return 0 + } + return 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize +} +func sizeFloat64Value(_ pointer, tagsize int) int { + return 8 + tagsize +} +func sizeFloat64ValueNoZero(ptr pointer, tagsize int) int { + v := math.Float64bits(*ptr.toFloat64()) + if v == 0 { + return 0 + } + return 8 + tagsize +} +func sizeFloat64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toFloat64Ptr() + if p == nil { + return 0 + } + return 8 + tagsize +} +func sizeFloat64Slice(ptr pointer, tagsize int) int { + s := *ptr.toFloat64Slice() + return (8 + tagsize) * len(s) +} +func sizeFloat64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toFloat64Slice() + if len(s) == 0 { + return 0 + } + return 8*len(s) + SizeVarint(uint64(8*len(s))) + tagsize +} +func sizeVarint32Value(ptr pointer, tagsize int) int { + v := *ptr.toUint32() + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarint32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint32() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarint32Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint32Ptr() + if p == nil { + return 0 + } + return SizeVarint(uint64(*p)) + tagsize +} +func sizeVarint32Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + tagsize + } + return n +} +func sizeVarint32PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeVarintS32Value(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS32Ptr(ptr pointer, tagsize int) int { + p := ptr.getInt32Ptr() + if p == nil { + return 0 + } + return SizeVarint(uint64(*p)) + tagsize +} +func sizeVarintS32Slice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + tagsize + } + return n +} +func sizeVarintS32PackedSlice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeVarint64Value(ptr pointer, tagsize int) int { + v := *ptr.toUint64() + return SizeVarint(v) + tagsize +} +func sizeVarint64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toUint64() + if v == 0 { + return 0 + } + return SizeVarint(v) + tagsize +} +func sizeVarint64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toUint64Ptr() + if p == nil { + return 0 + } + return SizeVarint(*p) + tagsize +} +func sizeVarint64Slice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + n := 0 + for _, v := range s { + n += SizeVarint(v) + tagsize + } + return n +} +func sizeVarint64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(v) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeVarintS64Value(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v)) + tagsize +} +func sizeVarintS64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toInt64Ptr() + if p == nil { + return 0 + } + return SizeVarint(uint64(*p)) + tagsize +} +func sizeVarintS64Slice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + tagsize + } + return n +} +func sizeVarintS64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeZigzag32Value(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + return SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize +} +func sizeZigzag32ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt32() + if v == 0 { + return 0 + } + return SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize +} +func sizeZigzag32Ptr(ptr pointer, tagsize int) int { + p := ptr.getInt32Ptr() + if p == nil { + return 0 + } + v := *p + return SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize +} +func sizeZigzag32Slice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + tagsize + } + return n +} +func sizeZigzag32PackedSlice(ptr pointer, tagsize int) int { + s := ptr.getInt32Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeZigzag64Value(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + return SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize +} +func sizeZigzag64ValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toInt64() + if v == 0 { + return 0 + } + return SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize +} +func sizeZigzag64Ptr(ptr pointer, tagsize int) int { + p := *ptr.toInt64Ptr() + if p == nil { + return 0 + } + v := *p + return SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize +} +func sizeZigzag64Slice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v<<1)^uint64((int64(v)>>63))) + tagsize + } + return n +} +func sizeZigzag64PackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return 0 + } + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63))) + } + return n + SizeVarint(uint64(n)) + tagsize +} +func sizeBoolValue(_ pointer, tagsize int) int { + return 1 + tagsize +} +func sizeBoolValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toBool() + if !v { + return 0 + } + return 1 + tagsize +} +func sizeBoolPtr(ptr pointer, tagsize int) int { + p := *ptr.toBoolPtr() + if p == nil { + return 0 + } + return 1 + tagsize +} +func sizeBoolSlice(ptr pointer, tagsize int) int { + s := *ptr.toBoolSlice() + return (1 + tagsize) * len(s) +} +func sizeBoolPackedSlice(ptr pointer, tagsize int) int { + s := *ptr.toBoolSlice() + if len(s) == 0 { + return 0 + } + return len(s) + SizeVarint(uint64(len(s))) + tagsize +} +func sizeStringValue(ptr pointer, tagsize int) int { + v := *ptr.toString() + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeStringValueNoZero(ptr pointer, tagsize int) int { + v := *ptr.toString() + if v == "" { + return 0 + } + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeStringPtr(ptr pointer, tagsize int) int { + p := *ptr.toStringPtr() + if p == nil { + return 0 + } + v := *p + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeStringSlice(ptr pointer, tagsize int) int { + s := *ptr.toStringSlice() + n := 0 + for _, v := range s { + n += len(v) + SizeVarint(uint64(len(v))) + tagsize + } + return n +} +func sizeBytes(ptr pointer, tagsize int) int { + v := *ptr.toBytes() + if v == nil { + return 0 + } + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeBytes3(ptr pointer, tagsize int) int { + v := *ptr.toBytes() + if len(v) == 0 { + return 0 + } + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeBytesOneof(ptr pointer, tagsize int) int { + v := *ptr.toBytes() + return len(v) + SizeVarint(uint64(len(v))) + tagsize +} +func sizeBytesSlice(ptr pointer, tagsize int) int { + s := *ptr.toBytesSlice() + n := 0 + for _, v := range s { + n += len(v) + SizeVarint(uint64(len(v))) + tagsize + } + return n +} + +// appendFixed32 appends an encoded fixed32 to b. +func appendFixed32(b []byte, v uint32) []byte { + b = append(b, + byte(v), + byte(v>>8), + byte(v>>16), + byte(v>>24)) + return b +} + +// appendFixed64 appends an encoded fixed64 to b. +func appendFixed64(b []byte, v uint64) []byte { + b = append(b, + byte(v), + byte(v>>8), + byte(v>>16), + byte(v>>24), + byte(v>>32), + byte(v>>40), + byte(v>>48), + byte(v>>56)) + return b +} + +// appendVarint appends an encoded varint to b. +func appendVarint(b []byte, v uint64) []byte { + // TODO: make 1-byte (maybe 2-byte) case inline-able, once we + // have non-leaf inliner. + switch { + case v < 1<<7: + b = append(b, byte(v)) + case v < 1<<14: + b = append(b, + byte(v&0x7f|0x80), + byte(v>>7)) + case v < 1<<21: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte(v>>14)) + case v < 1<<28: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte(v>>21)) + case v < 1<<35: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte(v>>28)) + case v < 1<<42: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte(v>>35)) + case v < 1<<49: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte(v>>42)) + case v < 1<<56: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte((v>>42)&0x7f|0x80), + byte(v>>49)) + case v < 1<<63: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte((v>>42)&0x7f|0x80), + byte((v>>49)&0x7f|0x80), + byte(v>>56)) + default: + b = append(b, + byte(v&0x7f|0x80), + byte((v>>7)&0x7f|0x80), + byte((v>>14)&0x7f|0x80), + byte((v>>21)&0x7f|0x80), + byte((v>>28)&0x7f|0x80), + byte((v>>35)&0x7f|0x80), + byte((v>>42)&0x7f|0x80), + byte((v>>49)&0x7f|0x80), + byte((v>>56)&0x7f|0x80), + 1) + } + return b +} + +func appendFixed32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFixed32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFixed32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, *p) + return b, nil +} +func appendFixed32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + } + return b, nil +} +func appendFixed32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(4*len(s))) + for _, v := range s { + b = appendFixed32(b, v) + } + return b, nil +} +func appendFixedS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(v)) + return b, nil +} +func appendFixedS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(v)) + return b, nil +} +func appendFixedS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := ptr.getInt32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(*p)) + return b, nil +} +func appendFixedS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed32(b, uint32(v)) + } + return b, nil +} +func appendFixedS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(4*len(s))) + for _, v := range s { + b = appendFixed32(b, uint32(v)) + } + return b, nil +} +func appendFloat32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float32bits(*ptr.toFloat32()) + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFloat32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float32bits(*ptr.toFloat32()) + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, v) + return b, nil +} +func appendFloat32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toFloat32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed32(b, math.Float32bits(*p)) + return b, nil +} +func appendFloat32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed32(b, math.Float32bits(v)) + } + return b, nil +} +func appendFloat32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(4*len(s))) + for _, v := range s { + b = appendFixed32(b, math.Float32bits(v)) + } + return b, nil +} +func appendFixed64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFixed64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFixed64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, *p) + return b, nil +} +func appendFixed64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + } + return b, nil +} +func appendFixed64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(8*len(s))) + for _, v := range s { + b = appendFixed64(b, v) + } + return b, nil +} +func appendFixedS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(v)) + return b, nil +} +func appendFixedS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(v)) + return b, nil +} +func appendFixedS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toInt64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(*p)) + return b, nil +} +func appendFixedS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed64(b, uint64(v)) + } + return b, nil +} +func appendFixedS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(8*len(s))) + for _, v := range s { + b = appendFixed64(b, uint64(v)) + } + return b, nil +} +func appendFloat64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float64bits(*ptr.toFloat64()) + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFloat64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := math.Float64bits(*ptr.toFloat64()) + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, v) + return b, nil +} +func appendFloat64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toFloat64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendFixed64(b, math.Float64bits(*p)) + return b, nil +} +func appendFloat64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendFixed64(b, math.Float64bits(v)) + } + return b, nil +} +func appendFloat64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toFloat64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(8*len(s))) + for _, v := range s { + b = appendFixed64(b, math.Float64bits(v)) + } + return b, nil +} +func appendVarint32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarint32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarint32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(*p)) + return b, nil +} +func appendVarint32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarint32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarintS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := ptr.getInt32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(*p)) + return b, nil +} +func appendVarintS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarintS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarint64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + b = appendVarint(b, wiretag) + b = appendVarint(b, v) + return b, nil +} +func appendVarint64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toUint64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, v) + return b, nil +} +func appendVarint64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toUint64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, *p) + return b, nil +} +func appendVarint64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, v) + } + return b, nil +} +func appendVarint64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toUint64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(v) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, v) + } + return b, nil +} +func appendVarintS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + return b, nil +} +func appendVarintS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toInt64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(*p)) + return b, nil +} +func appendVarintS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendVarintS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v)) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v)) + } + return b, nil +} +func appendZigzag32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + return b, nil +} +func appendZigzag32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt32() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + return b, nil +} +func appendZigzag32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := ptr.getInt32Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + v := *p + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + return b, nil +} +func appendZigzag32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + } + return b, nil +} +func appendZigzag32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := ptr.getInt32Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64((uint32(v) << 1) ^ uint32((int32(v) >> 31)))) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64((uint32(v)<<1)^uint32((int32(v)>>31)))) + } + return b, nil +} +func appendZigzag64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + return b, nil +} +func appendZigzag64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toInt64() + if v == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + return b, nil +} +func appendZigzag64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toInt64Ptr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + v := *p + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + return b, nil +} +func appendZigzag64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + } + return b, nil +} +func appendZigzag64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toInt64Slice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + // compute size + n := 0 + for _, v := range s { + n += SizeVarint(uint64(v<<1) ^ uint64((int64(v) >> 63))) + } + b = appendVarint(b, uint64(n)) + for _, v := range s { + b = appendVarint(b, uint64(v<<1)^uint64((int64(v)>>63))) + } + return b, nil +} +func appendBoolValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBool() + b = appendVarint(b, wiretag) + if v { + b = append(b, 1) + } else { + b = append(b, 0) + } + return b, nil +} +func appendBoolValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBool() + if !v { + return b, nil + } + b = appendVarint(b, wiretag) + b = append(b, 1) + return b, nil +} + +func appendBoolPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toBoolPtr() + if p == nil { + return b, nil + } + b = appendVarint(b, wiretag) + if *p { + b = append(b, 1) + } else { + b = append(b, 0) + } + return b, nil +} +func appendBoolSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toBoolSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + if v { + b = append(b, 1) + } else { + b = append(b, 0) + } + } + return b, nil +} +func appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toBoolSlice() + if len(s) == 0 { + return b, nil + } + b = appendVarint(b, wiretag&^7|WireBytes) + b = appendVarint(b, uint64(len(s))) + for _, v := range s { + if v { + b = append(b, 1) + } else { + b = append(b, 0) + } + } + return b, nil +} +func appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toString() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toString() + if v == "" { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + p := *ptr.toStringPtr() + if p == nil { + return b, nil + } + v := *p + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toStringSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + return b, nil +} +func appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + v := *ptr.toString() + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + v := *ptr.toString() + if v == "" { + return b, nil + } + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + p := *ptr.toStringPtr() + if p == nil { + return b, nil + } + v := *p + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + var invalidUTF8 bool + s := *ptr.toStringSlice() + for _, v := range s { + if !utf8.ValidString(v) { + invalidUTF8 = true + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + if invalidUTF8 { + return b, errInvalidUTF8 + } + return b, nil +} +func appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBytes() + if v == nil { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendBytes3(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBytes() + if len(v) == 0 { + return b, nil + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendBytesOneof(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + v := *ptr.toBytes() + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + return b, nil +} +func appendBytesSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte, error) { + s := *ptr.toBytesSlice() + for _, v := range s { + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(v))) + b = append(b, v...) + } + return b, nil +} + +// makeGroupMarshaler returns the sizer and marshaler for a group. +// u is the marshal info of the underlying message. +func makeGroupMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + p := ptr.getPointer() + if p.isNil() { + return 0 + } + return u.size(p) + 2*tagsize + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + p := ptr.getPointer() + if p.isNil() { + return b, nil + } + var err error + b = appendVarint(b, wiretag) // start group + b, err = u.marshal(b, p, deterministic) + b = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group + return b, err + } +} + +// makeGroupSliceMarshaler returns the sizer and marshaler for a group slice. +// u is the marshal info of the underlying message. +func makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getPointerSlice() + n := 0 + for _, v := range s { + if v.isNil() { + continue + } + n += u.size(v) + 2*tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getPointerSlice() + var err error + var nerr nonFatal + for _, v := range s { + if v.isNil() { + return b, errRepeatedHasNil + } + b = appendVarint(b, wiretag) // start group + b, err = u.marshal(b, v, deterministic) + b = appendVarint(b, wiretag+(WireEndGroup-WireStartGroup)) // end group + if !nerr.Merge(err) { + if err == ErrNil { + err = errRepeatedHasNil + } + return b, err + } + } + return b, nerr.E + } +} + +// makeMessageMarshaler returns the sizer and marshaler for a message field. +// u is the marshal info of the message. +func makeMessageMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + p := ptr.getPointer() + if p.isNil() { + return 0 + } + siz := u.size(p) + return siz + SizeVarint(uint64(siz)) + tagsize + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + p := ptr.getPointer() + if p.isNil() { + return b, nil + } + b = appendVarint(b, wiretag) + siz := u.cachedsize(p) + b = appendVarint(b, uint64(siz)) + return u.marshal(b, p, deterministic) + } +} + +// makeMessageSliceMarshaler returns the sizer and marshaler for a message slice. +// u is the marshal info of the message. +func makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getPointerSlice() + n := 0 + for _, v := range s { + if v.isNil() { + continue + } + siz := u.size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getPointerSlice() + var err error + var nerr nonFatal + for _, v := range s { + if v.isNil() { + return b, errRepeatedHasNil + } + b = appendVarint(b, wiretag) + siz := u.cachedsize(v) + b = appendVarint(b, uint64(siz)) + b, err = u.marshal(b, v, deterministic) + + if !nerr.Merge(err) { + if err == ErrNil { + err = errRepeatedHasNil + } + return b, err + } + } + return b, nerr.E + } +} + +// makeMapMarshaler returns the sizer and marshaler for a map field. +// f is the pointer to the reflect data structure of the field. +func makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) { + // figure out key and value type + t := f.Type + keyType := t.Key() + valType := t.Elem() + tags := strings.Split(f.Tag.Get("protobuf"), ",") + keyTags := strings.Split(f.Tag.Get("protobuf_key"), ",") + valTags := strings.Split(f.Tag.Get("protobuf_val"), ",") + stdOptions := false + for _, t := range tags { + if strings.HasPrefix(t, "customtype=") { + valTags = append(valTags, t) + } + if t == "stdtime" { + valTags = append(valTags, t) + stdOptions = true + } + if t == "stdduration" { + valTags = append(valTags, t) + stdOptions = true + } + if t == "wktptr" { + valTags = append(valTags, t) + } + } + keySizer, keyMarshaler := typeMarshaler(keyType, keyTags, false, false) // don't omit zero value in map + valSizer, valMarshaler := typeMarshaler(valType, valTags, false, false) // don't omit zero value in map + keyWireTag := 1<<3 | wiretype(keyTags[0]) + valWireTag := 2<<3 | wiretype(valTags[0]) + + // We create an interface to get the addresses of the map key and value. + // If value is pointer-typed, the interface is a direct interface, the + // idata itself is the value. Otherwise, the idata is the pointer to the + // value. + // Key cannot be pointer-typed. + valIsPtr := valType.Kind() == reflect.Ptr + + // If value is a message with nested maps, calling + // valSizer in marshal may be quadratic. We should use + // cached version in marshal (but not in size). + // If value is not message type, we don't have size cache, + // but it cannot be nested either. Just use valSizer. + valCachedSizer := valSizer + if valIsPtr && !stdOptions && valType.Elem().Kind() == reflect.Struct { + u := getMarshalInfo(valType.Elem()) + valCachedSizer = func(ptr pointer, tagsize int) int { + // Same as message sizer, but use cache. + p := ptr.getPointer() + if p.isNil() { + return 0 + } + siz := u.cachedsize(p) + return siz + SizeVarint(uint64(siz)) + tagsize + } + } + return func(ptr pointer, tagsize int) int { + m := ptr.asPointerTo(t).Elem() // the map + n := 0 + for _, k := range m.MapKeys() { + ki := k.Interface() + vi := m.MapIndex(k).Interface() + kaddr := toAddrPointer(&ki, false) // pointer to key + vaddr := toAddrPointer(&vi, valIsPtr) // pointer to value + siz := keySizer(kaddr, 1) + valSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, tag uint64, deterministic bool) ([]byte, error) { + m := ptr.asPointerTo(t).Elem() // the map + var err error + keys := m.MapKeys() + if len(keys) > 1 && deterministic { + sort.Sort(mapKeys(keys)) + } + + var nerr nonFatal + for _, k := range keys { + ki := k.Interface() + vi := m.MapIndex(k).Interface() + kaddr := toAddrPointer(&ki, false) // pointer to key + vaddr := toAddrPointer(&vi, valIsPtr) // pointer to value + b = appendVarint(b, tag) + siz := keySizer(kaddr, 1) + valCachedSizer(vaddr, 1) // tag of key = 1 (size=1), tag of val = 2 (size=1) + b = appendVarint(b, uint64(siz)) + b, err = keyMarshaler(b, kaddr, keyWireTag, deterministic) + if !nerr.Merge(err) { + return b, err + } + b, err = valMarshaler(b, vaddr, valWireTag, deterministic) + if err != ErrNil && !nerr.Merge(err) { // allow nil value in map + return b, err + } + } + return b, nerr.E + } +} + +// makeOneOfMarshaler returns the sizer and marshaler for a oneof field. +// fi is the marshal info of the field. +// f is the pointer to the reflect data structure of the field. +func makeOneOfMarshaler(fi *marshalFieldInfo, f *reflect.StructField) (sizer, marshaler) { + // Oneof field is an interface. We need to get the actual data type on the fly. + t := f.Type + return func(ptr pointer, _ int) int { + p := ptr.getInterfacePointer() + if p.isNil() { + return 0 + } + v := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct + telem := v.Type() + e := fi.oneofElems[telem] + return e.sizer(p, e.tagsize) + }, + func(b []byte, ptr pointer, _ uint64, deterministic bool) ([]byte, error) { + p := ptr.getInterfacePointer() + if p.isNil() { + return b, nil + } + v := ptr.asPointerTo(t).Elem().Elem().Elem() // *interface -> interface -> *struct -> struct + telem := v.Type() + if telem.Field(0).Type.Kind() == reflect.Ptr && p.getPointer().isNil() { + return b, errOneofHasNil + } + e := fi.oneofElems[telem] + return e.marshaler(b, p, e.wiretag, deterministic) + } +} + +// sizeExtensions computes the size of encoded data for a XXX_InternalExtensions field. +func (u *marshalInfo) sizeExtensions(ext *XXX_InternalExtensions) int { + m, mu := ext.extensionsRead() + if m == nil { + return 0 + } + mu.Lock() + + n := 0 + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + n += len(e.enc) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + n += ei.sizer(p, ei.tagsize) + } + mu.Unlock() + return n +} + +// appendExtensions marshals a XXX_InternalExtensions field to the end of byte slice b. +func (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) { + m, mu := ext.extensionsRead() + if m == nil { + return b, nil + } + mu.Lock() + defer mu.Unlock() + + var err error + var nerr nonFatal + + // Fast-path for common cases: zero or one extensions. + // Don't bother sorting the keys. + if len(m) <= 1 { + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + b = append(b, e.enc...) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, ei.wiretag, deterministic) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E + } + + // Sort the keys to provide a deterministic encoding. + // Not sure this is required, but the old code does it. + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, k := range keys { + e := m[int32(k)] + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + b = append(b, e.enc...) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, ei.wiretag, deterministic) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E +} + +// message set format is: +// message MessageSet { +// repeated group Item = 1 { +// required int32 type_id = 2; +// required string message = 3; +// }; +// } + +// sizeMessageSet computes the size of encoded data for a XXX_InternalExtensions field +// in message set format (above). +func (u *marshalInfo) sizeMessageSet(ext *XXX_InternalExtensions) int { + m, mu := ext.extensionsRead() + if m == nil { + return 0 + } + mu.Lock() + + n := 0 + for id, e := range m { + n += 2 // start group, end group. tag = 1 (size=1) + n += SizeVarint(uint64(id)) + 1 // type_id, tag = 2 (size=1) + + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + msgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint + siz := len(msgWithLen) + n += siz + 1 // message, tag = 3 (size=1) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + n += ei.sizer(p, 1) // message, tag = 3 (size=1) + } + mu.Unlock() + return n +} + +// appendMessageSet marshals a XXX_InternalExtensions field in message set format (above) +// to the end of byte slice b. +func (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExtensions, deterministic bool) ([]byte, error) { + m, mu := ext.extensionsRead() + if m == nil { + return b, nil + } + mu.Lock() + defer mu.Unlock() + + var err error + var nerr nonFatal + + // Fast-path for common cases: zero or one extensions. + // Don't bother sorting the keys. + if len(m) <= 1 { + for id, e := range m { + b = append(b, 1<<3|WireStartGroup) + b = append(b, 2<<3|WireVarint) + b = appendVarint(b, uint64(id)) + + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + msgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint + b = append(b, 3<<3|WireBytes) + b = append(b, msgWithLen...) + b = append(b, 1<<3|WireEndGroup) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic) + if !nerr.Merge(err) { + return b, err + } + b = append(b, 1<<3|WireEndGroup) + } + return b, nerr.E + } + + // Sort the keys to provide a deterministic encoding. + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + for _, id := range keys { + e := m[int32(id)] + b = append(b, 1<<3|WireStartGroup) + b = append(b, 2<<3|WireVarint) + b = appendVarint(b, uint64(id)) + + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + msgWithLen := skipVarint(e.enc) // skip old tag, but leave the length varint + b = append(b, 3<<3|WireBytes) + b = append(b, msgWithLen...) + b = append(b, 1<<3|WireEndGroup) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, 3<<3|WireBytes, deterministic) + b = append(b, 1<<3|WireEndGroup) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E +} + +// sizeV1Extensions computes the size of encoded data for a V1-API extension field. +func (u *marshalInfo) sizeV1Extensions(m map[int32]Extension) int { + if m == nil { + return 0 + } + + n := 0 + for _, e := range m { + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + n += len(e.enc) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + n += ei.sizer(p, ei.tagsize) + } + return n +} + +// appendV1Extensions marshals a V1-API extension field to the end of byte slice b. +func (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extension, deterministic bool) ([]byte, error) { + if m == nil { + return b, nil + } + + // Sort the keys to provide a deterministic encoding. + keys := make([]int, 0, len(m)) + for k := range m { + keys = append(keys, int(k)) + } + sort.Ints(keys) + + var err error + var nerr nonFatal + for _, k := range keys { + e := m[int32(k)] + if e.value == nil || e.desc == nil { + // Extension is only in its encoded form. + b = append(b, e.enc...) + continue + } + + // We don't skip extensions that have an encoded form set, + // because the extension value may have been mutated after + // the last time this function was called. + + ei := u.getExtElemInfo(e.desc) + v := e.value + p := toAddrPointer(&v, ei.isptr) + b, err = ei.marshaler(b, p, ei.wiretag, deterministic) + if !nerr.Merge(err) { + return b, err + } + } + return b, nerr.E +} + +// newMarshaler is the interface representing objects that can marshal themselves. +// +// This exists to support protoc-gen-go generated messages. +// The proto package will stop type-asserting to this interface in the future. +// +// DO NOT DEPEND ON THIS. +type newMarshaler interface { + XXX_Size() int + XXX_Marshal(b []byte, deterministic bool) ([]byte, error) +} + +// Size returns the encoded size of a protocol buffer message. +// This is the main entry point. +func Size(pb Message) int { + if m, ok := pb.(newMarshaler); ok { + return m.XXX_Size() + } + if m, ok := pb.(Marshaler); ok { + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + b, _ := m.Marshal() + return len(b) + } + // in case somehow we didn't generate the wrapper + if pb == nil { + return 0 + } + var info InternalMessageInfo + return info.Size(pb) +} + +// Marshal takes a protocol buffer message +// and encodes it into the wire format, returning the data. +// This is the main entry point. +func Marshal(pb Message) ([]byte, error) { + if m, ok := pb.(newMarshaler); ok { + siz := m.XXX_Size() + b := make([]byte, 0, siz) + return m.XXX_Marshal(b, false) + } + if m, ok := pb.(Marshaler); ok { + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + return m.Marshal() + } + // in case somehow we didn't generate the wrapper + if pb == nil { + return nil, ErrNil + } + var info InternalMessageInfo + siz := info.Size(pb) + b := make([]byte, 0, siz) + return info.Marshal(b, pb, false) +} + +// Marshal takes a protocol buffer message +// and encodes it into the wire format, writing the result to the +// Buffer. +// This is an alternative entry point. It is not necessary to use +// a Buffer for most applications. +func (p *Buffer) Marshal(pb Message) error { + var err error + if p.deterministic { + if _, ok := pb.(Marshaler); ok { + return fmt.Errorf("proto: deterministic not supported by the Marshal method of %T", pb) + } + } + if m, ok := pb.(newMarshaler); ok { + siz := m.XXX_Size() + p.grow(siz) // make sure buf has enough capacity + pp := p.buf[len(p.buf) : len(p.buf) : len(p.buf)+siz] + pp, err = m.XXX_Marshal(pp, p.deterministic) + p.buf = append(p.buf, pp...) + return err + } + if m, ok := pb.(Marshaler); ok { + // If the message can marshal itself, let it do it, for compatibility. + // NOTE: This is not efficient. + var b []byte + b, err = m.Marshal() + p.buf = append(p.buf, b...) + return err + } + // in case somehow we didn't generate the wrapper + if pb == nil { + return ErrNil + } + var info InternalMessageInfo + siz := info.Size(pb) + p.grow(siz) // make sure buf has enough capacity + p.buf, err = info.Marshal(p.buf, pb, p.deterministic) + return err +} + +// grow grows the buffer's capacity, if necessary, to guarantee space for +// another n bytes. After grow(n), at least n bytes can be written to the +// buffer without another allocation. +func (p *Buffer) grow(n int) { + need := len(p.buf) + n + if need <= cap(p.buf) { + return + } + newCap := len(p.buf) * 2 + if newCap < need { + newCap = need + } + p.buf = append(make([]byte, 0, newCap), p.buf...) +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go new file mode 100644 index 0000000000..997f57c1e1 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go @@ -0,0 +1,388 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "reflect" + "time" +) + +// makeMessageRefMarshaler differs a bit from makeMessageMarshaler +// It marshal a message T instead of a *T +func makeMessageRefMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + siz := u.size(ptr) + return siz + SizeVarint(uint64(siz)) + tagsize + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + b = appendVarint(b, wiretag) + siz := u.cachedsize(ptr) + b = appendVarint(b, uint64(siz)) + return u.marshal(b, ptr, deterministic) + } +} + +// makeMessageRefSliceMarshaler differs quite a lot from makeMessageSliceMarshaler +// It marshals a slice of messages []T instead of []*T +func makeMessageRefSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + e := elem.Interface() + v := toAddrPointer(&e, false) + siz := u.size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + var err, errreq error + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + e := elem.Interface() + v := toAddrPointer(&e, false) + b = appendVarint(b, wiretag) + siz := u.size(v) + b = appendVarint(b, uint64(siz)) + b, err = u.marshal(b, v, deterministic) + + if err != nil { + if _, ok := err.(*RequiredNotSetError); ok { + // Required field in submessage is not set. + // We record the error but keep going, to give a complete marshaling. + if errreq == nil { + errreq = err + } + continue + } + if err == ErrNil { + err = errRepeatedHasNil + } + return b, err + } + } + + return b, errreq + } +} + +func makeCustomPtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + m := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom) + siz := m.Size() + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + m := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(custom) + siz := m.Size() + buf, err := m.Marshal() + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + return b, nil + } +} + +func makeCustomMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + m := ptr.asPointerTo(u.typ).Interface().(custom) + siz := m.Size() + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + m := ptr.asPointerTo(u.typ).Interface().(custom) + siz := m.Size() + buf, err := m.Marshal() + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + return b, nil + } +} + +func makeTimeMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return 0 + } + siz := Size(ts) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return nil, err + } + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeTimePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return 0 + } + siz := Size(ts) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return nil, err + } + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeTimeSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(time.Time) + ts, err := timestampProto(t) + if err != nil { + return 0 + } + siz := Size(ts) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(time.Time) + ts, err := timestampProto(t) + if err != nil { + return nil, err + } + siz := Size(ts) + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeTimePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return 0 + } + siz := Size(ts) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*time.Time) + ts, err := timestampProto(*t) + if err != nil { + return nil, err + } + siz := Size(ts) + buf, err := Marshal(ts) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeDurationMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + d := ptr.asPointerTo(u.typ).Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + d := ptr.asPointerTo(u.typ).Interface().(*time.Duration) + dur := durationProto(*d) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeDurationPtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + d := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + d := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*time.Duration) + dur := durationProto(*d) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeDurationSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(time.Duration) + dur := durationProto(d) + siz := Size(dur) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(time.Duration) + dur := durationProto(d) + siz := Size(dur) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeDurationPtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + d := elem.Interface().(*time.Duration) + dur := durationProto(*d) + siz := Size(dur) + buf, err := Marshal(dur) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_merge.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_merge.go new file mode 100644 index 0000000000..60dcf70d1e --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_merge.go @@ -0,0 +1,676 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +import ( + "fmt" + "reflect" + "strings" + "sync" + "sync/atomic" +) + +// Merge merges the src message into dst. +// This assumes that dst and src of the same type and are non-nil. +func (a *InternalMessageInfo) Merge(dst, src Message) { + mi := atomicLoadMergeInfo(&a.merge) + if mi == nil { + mi = getMergeInfo(reflect.TypeOf(dst).Elem()) + atomicStoreMergeInfo(&a.merge, mi) + } + mi.merge(toPointer(&dst), toPointer(&src)) +} + +type mergeInfo struct { + typ reflect.Type + + initialized int32 // 0: only typ is valid, 1: everything is valid + lock sync.Mutex + + fields []mergeFieldInfo + unrecognized field // Offset of XXX_unrecognized +} + +type mergeFieldInfo struct { + field field // Offset of field, guaranteed to be valid + + // isPointer reports whether the value in the field is a pointer. + // This is true for the following situations: + // * Pointer to struct + // * Pointer to basic type (proto2 only) + // * Slice (first value in slice header is a pointer) + // * String (first value in string header is a pointer) + isPointer bool + + // basicWidth reports the width of the field assuming that it is directly + // embedded in the struct (as is the case for basic types in proto3). + // The possible values are: + // 0: invalid + // 1: bool + // 4: int32, uint32, float32 + // 8: int64, uint64, float64 + basicWidth int + + // Where dst and src are pointers to the types being merged. + merge func(dst, src pointer) +} + +var ( + mergeInfoMap = map[reflect.Type]*mergeInfo{} + mergeInfoLock sync.Mutex +) + +func getMergeInfo(t reflect.Type) *mergeInfo { + mergeInfoLock.Lock() + defer mergeInfoLock.Unlock() + mi := mergeInfoMap[t] + if mi == nil { + mi = &mergeInfo{typ: t} + mergeInfoMap[t] = mi + } + return mi +} + +// merge merges src into dst assuming they are both of type *mi.typ. +func (mi *mergeInfo) merge(dst, src pointer) { + if dst.isNil() { + panic("proto: nil destination") + } + if src.isNil() { + return // Nothing to do. + } + + if atomic.LoadInt32(&mi.initialized) == 0 { + mi.computeMergeInfo() + } + + for _, fi := range mi.fields { + sfp := src.offset(fi.field) + + // As an optimization, we can avoid the merge function call cost + // if we know for sure that the source will have no effect + // by checking if it is the zero value. + if unsafeAllowed { + if fi.isPointer && sfp.getPointer().isNil() { // Could be slice or string + continue + } + if fi.basicWidth > 0 { + switch { + case fi.basicWidth == 1 && !*sfp.toBool(): + continue + case fi.basicWidth == 4 && *sfp.toUint32() == 0: + continue + case fi.basicWidth == 8 && *sfp.toUint64() == 0: + continue + } + } + } + + dfp := dst.offset(fi.field) + fi.merge(dfp, sfp) + } + + // TODO: Make this faster? + out := dst.asPointerTo(mi.typ).Elem() + in := src.asPointerTo(mi.typ).Elem() + if emIn, err := extendable(in.Addr().Interface()); err == nil { + emOut, _ := extendable(out.Addr().Interface()) + mIn, muIn := emIn.extensionsRead() + if mIn != nil { + mOut := emOut.extensionsWrite() + muIn.Lock() + mergeExtension(mOut, mIn) + muIn.Unlock() + } + } + + if mi.unrecognized.IsValid() { + if b := *src.offset(mi.unrecognized).toBytes(); len(b) > 0 { + *dst.offset(mi.unrecognized).toBytes() = append([]byte(nil), b...) + } + } +} + +func (mi *mergeInfo) computeMergeInfo() { + mi.lock.Lock() + defer mi.lock.Unlock() + if mi.initialized != 0 { + return + } + t := mi.typ + n := t.NumField() + + props := GetProperties(t) + for i := 0; i < n; i++ { + f := t.Field(i) + if strings.HasPrefix(f.Name, "XXX_") { + continue + } + + mfi := mergeFieldInfo{field: toField(&f)} + tf := f.Type + + // As an optimization, we can avoid the merge function call cost + // if we know for sure that the source will have no effect + // by checking if it is the zero value. + if unsafeAllowed { + switch tf.Kind() { + case reflect.Ptr, reflect.Slice, reflect.String: + // As a special case, we assume slices and strings are pointers + // since we know that the first field in the SliceSlice or + // StringHeader is a data pointer. + mfi.isPointer = true + case reflect.Bool: + mfi.basicWidth = 1 + case reflect.Int32, reflect.Uint32, reflect.Float32: + mfi.basicWidth = 4 + case reflect.Int64, reflect.Uint64, reflect.Float64: + mfi.basicWidth = 8 + } + } + + // Unwrap tf to get at its most basic type. + var isPointer, isSlice bool + if tf.Kind() == reflect.Slice && tf.Elem().Kind() != reflect.Uint8 { + isSlice = true + tf = tf.Elem() + } + if tf.Kind() == reflect.Ptr { + isPointer = true + tf = tf.Elem() + } + if isPointer && isSlice && tf.Kind() != reflect.Struct { + panic("both pointer and slice for basic type in " + tf.Name()) + } + + switch tf.Kind() { + case reflect.Int32: + switch { + case isSlice: // E.g., []int32 + mfi.merge = func(dst, src pointer) { + // NOTE: toInt32Slice is not defined (see pointer_reflect.go). + /* + sfsp := src.toInt32Slice() + if *sfsp != nil { + dfsp := dst.toInt32Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []int64{} + } + } + */ + sfs := src.getInt32Slice() + if sfs != nil { + dfs := dst.getInt32Slice() + dfs = append(dfs, sfs...) + if dfs == nil { + dfs = []int32{} + } + dst.setInt32Slice(dfs) + } + } + case isPointer: // E.g., *int32 + mfi.merge = func(dst, src pointer) { + // NOTE: toInt32Ptr is not defined (see pointer_reflect.go). + /* + sfpp := src.toInt32Ptr() + if *sfpp != nil { + dfpp := dst.toInt32Ptr() + if *dfpp == nil { + *dfpp = Int32(**sfpp) + } else { + **dfpp = **sfpp + } + } + */ + sfp := src.getInt32Ptr() + if sfp != nil { + dfp := dst.getInt32Ptr() + if dfp == nil { + dst.setInt32Ptr(*sfp) + } else { + *dfp = *sfp + } + } + } + default: // E.g., int32 + mfi.merge = func(dst, src pointer) { + if v := *src.toInt32(); v != 0 { + *dst.toInt32() = v + } + } + } + case reflect.Int64: + switch { + case isSlice: // E.g., []int64 + mfi.merge = func(dst, src pointer) { + sfsp := src.toInt64Slice() + if *sfsp != nil { + dfsp := dst.toInt64Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []int64{} + } + } + } + case isPointer: // E.g., *int64 + mfi.merge = func(dst, src pointer) { + sfpp := src.toInt64Ptr() + if *sfpp != nil { + dfpp := dst.toInt64Ptr() + if *dfpp == nil { + *dfpp = Int64(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., int64 + mfi.merge = func(dst, src pointer) { + if v := *src.toInt64(); v != 0 { + *dst.toInt64() = v + } + } + } + case reflect.Uint32: + switch { + case isSlice: // E.g., []uint32 + mfi.merge = func(dst, src pointer) { + sfsp := src.toUint32Slice() + if *sfsp != nil { + dfsp := dst.toUint32Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []uint32{} + } + } + } + case isPointer: // E.g., *uint32 + mfi.merge = func(dst, src pointer) { + sfpp := src.toUint32Ptr() + if *sfpp != nil { + dfpp := dst.toUint32Ptr() + if *dfpp == nil { + *dfpp = Uint32(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., uint32 + mfi.merge = func(dst, src pointer) { + if v := *src.toUint32(); v != 0 { + *dst.toUint32() = v + } + } + } + case reflect.Uint64: + switch { + case isSlice: // E.g., []uint64 + mfi.merge = func(dst, src pointer) { + sfsp := src.toUint64Slice() + if *sfsp != nil { + dfsp := dst.toUint64Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []uint64{} + } + } + } + case isPointer: // E.g., *uint64 + mfi.merge = func(dst, src pointer) { + sfpp := src.toUint64Ptr() + if *sfpp != nil { + dfpp := dst.toUint64Ptr() + if *dfpp == nil { + *dfpp = Uint64(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., uint64 + mfi.merge = func(dst, src pointer) { + if v := *src.toUint64(); v != 0 { + *dst.toUint64() = v + } + } + } + case reflect.Float32: + switch { + case isSlice: // E.g., []float32 + mfi.merge = func(dst, src pointer) { + sfsp := src.toFloat32Slice() + if *sfsp != nil { + dfsp := dst.toFloat32Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []float32{} + } + } + } + case isPointer: // E.g., *float32 + mfi.merge = func(dst, src pointer) { + sfpp := src.toFloat32Ptr() + if *sfpp != nil { + dfpp := dst.toFloat32Ptr() + if *dfpp == nil { + *dfpp = Float32(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., float32 + mfi.merge = func(dst, src pointer) { + if v := *src.toFloat32(); v != 0 { + *dst.toFloat32() = v + } + } + } + case reflect.Float64: + switch { + case isSlice: // E.g., []float64 + mfi.merge = func(dst, src pointer) { + sfsp := src.toFloat64Slice() + if *sfsp != nil { + dfsp := dst.toFloat64Slice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []float64{} + } + } + } + case isPointer: // E.g., *float64 + mfi.merge = func(dst, src pointer) { + sfpp := src.toFloat64Ptr() + if *sfpp != nil { + dfpp := dst.toFloat64Ptr() + if *dfpp == nil { + *dfpp = Float64(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., float64 + mfi.merge = func(dst, src pointer) { + if v := *src.toFloat64(); v != 0 { + *dst.toFloat64() = v + } + } + } + case reflect.Bool: + switch { + case isSlice: // E.g., []bool + mfi.merge = func(dst, src pointer) { + sfsp := src.toBoolSlice() + if *sfsp != nil { + dfsp := dst.toBoolSlice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []bool{} + } + } + } + case isPointer: // E.g., *bool + mfi.merge = func(dst, src pointer) { + sfpp := src.toBoolPtr() + if *sfpp != nil { + dfpp := dst.toBoolPtr() + if *dfpp == nil { + *dfpp = Bool(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., bool + mfi.merge = func(dst, src pointer) { + if v := *src.toBool(); v { + *dst.toBool() = v + } + } + } + case reflect.String: + switch { + case isSlice: // E.g., []string + mfi.merge = func(dst, src pointer) { + sfsp := src.toStringSlice() + if *sfsp != nil { + dfsp := dst.toStringSlice() + *dfsp = append(*dfsp, *sfsp...) + if *dfsp == nil { + *dfsp = []string{} + } + } + } + case isPointer: // E.g., *string + mfi.merge = func(dst, src pointer) { + sfpp := src.toStringPtr() + if *sfpp != nil { + dfpp := dst.toStringPtr() + if *dfpp == nil { + *dfpp = String(**sfpp) + } else { + **dfpp = **sfpp + } + } + } + default: // E.g., string + mfi.merge = func(dst, src pointer) { + if v := *src.toString(); v != "" { + *dst.toString() = v + } + } + } + case reflect.Slice: + isProto3 := props.Prop[i].proto3 + switch { + case isPointer: + panic("bad pointer in byte slice case in " + tf.Name()) + case tf.Elem().Kind() != reflect.Uint8: + panic("bad element kind in byte slice case in " + tf.Name()) + case isSlice: // E.g., [][]byte + mfi.merge = func(dst, src pointer) { + sbsp := src.toBytesSlice() + if *sbsp != nil { + dbsp := dst.toBytesSlice() + for _, sb := range *sbsp { + if sb == nil { + *dbsp = append(*dbsp, nil) + } else { + *dbsp = append(*dbsp, append([]byte{}, sb...)) + } + } + if *dbsp == nil { + *dbsp = [][]byte{} + } + } + } + default: // E.g., []byte + mfi.merge = func(dst, src pointer) { + sbp := src.toBytes() + if *sbp != nil { + dbp := dst.toBytes() + if !isProto3 || len(*sbp) > 0 { + *dbp = append([]byte{}, *sbp...) + } + } + } + } + case reflect.Struct: + switch { + case isSlice && !isPointer: // E.g. []pb.T + mergeInfo := getMergeInfo(tf) + zero := reflect.Zero(tf) + mfi.merge = func(dst, src pointer) { + // TODO: Make this faster? + dstsp := dst.asPointerTo(f.Type) + dsts := dstsp.Elem() + srcs := src.asPointerTo(f.Type).Elem() + for i := 0; i < srcs.Len(); i++ { + dsts = reflect.Append(dsts, zero) + srcElement := srcs.Index(i).Addr() + dstElement := dsts.Index(dsts.Len() - 1).Addr() + mergeInfo.merge(valToPointer(dstElement), valToPointer(srcElement)) + } + if dsts.IsNil() { + dsts = reflect.MakeSlice(f.Type, 0, 0) + } + dstsp.Elem().Set(dsts) + } + case !isPointer: + mergeInfo := getMergeInfo(tf) + mfi.merge = func(dst, src pointer) { + mergeInfo.merge(dst, src) + } + case isSlice: // E.g., []*pb.T + mergeInfo := getMergeInfo(tf) + mfi.merge = func(dst, src pointer) { + sps := src.getPointerSlice() + if sps != nil { + dps := dst.getPointerSlice() + for _, sp := range sps { + var dp pointer + if !sp.isNil() { + dp = valToPointer(reflect.New(tf)) + mergeInfo.merge(dp, sp) + } + dps = append(dps, dp) + } + if dps == nil { + dps = []pointer{} + } + dst.setPointerSlice(dps) + } + } + default: // E.g., *pb.T + mergeInfo := getMergeInfo(tf) + mfi.merge = func(dst, src pointer) { + sp := src.getPointer() + if !sp.isNil() { + dp := dst.getPointer() + if dp.isNil() { + dp = valToPointer(reflect.New(tf)) + dst.setPointer(dp) + } + mergeInfo.merge(dp, sp) + } + } + } + case reflect.Map: + switch { + case isPointer || isSlice: + panic("bad pointer or slice in map case in " + tf.Name()) + default: // E.g., map[K]V + mfi.merge = func(dst, src pointer) { + sm := src.asPointerTo(tf).Elem() + if sm.Len() == 0 { + return + } + dm := dst.asPointerTo(tf).Elem() + if dm.IsNil() { + dm.Set(reflect.MakeMap(tf)) + } + + switch tf.Elem().Kind() { + case reflect.Ptr: // Proto struct (e.g., *T) + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + val = reflect.ValueOf(Clone(val.Interface().(Message))) + dm.SetMapIndex(key, val) + } + case reflect.Slice: // E.g. Bytes type (e.g., []byte) + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + val = reflect.ValueOf(append([]byte{}, val.Bytes()...)) + dm.SetMapIndex(key, val) + } + default: // Basic type (e.g., string) + for _, key := range sm.MapKeys() { + val := sm.MapIndex(key) + dm.SetMapIndex(key, val) + } + } + } + } + case reflect.Interface: + // Must be oneof field. + switch { + case isPointer || isSlice: + panic("bad pointer or slice in interface case in " + tf.Name()) + default: // E.g., interface{} + // TODO: Make this faster? + mfi.merge = func(dst, src pointer) { + su := src.asPointerTo(tf).Elem() + if !su.IsNil() { + du := dst.asPointerTo(tf).Elem() + typ := su.Elem().Type() + if du.IsNil() || du.Elem().Type() != typ { + du.Set(reflect.New(typ.Elem())) // Initialize interface if empty + } + sv := su.Elem().Elem().Field(0) + if sv.Kind() == reflect.Ptr && sv.IsNil() { + return + } + dv := du.Elem().Elem().Field(0) + if dv.Kind() == reflect.Ptr && dv.IsNil() { + dv.Set(reflect.New(sv.Type().Elem())) // Initialize proto message if empty + } + switch sv.Type().Kind() { + case reflect.Ptr: // Proto struct (e.g., *T) + Merge(dv.Interface().(Message), sv.Interface().(Message)) + case reflect.Slice: // E.g. Bytes type (e.g., []byte) + dv.Set(reflect.ValueOf(append([]byte{}, sv.Bytes()...))) + default: // Basic type (e.g., string) + dv.Set(sv) + } + } + } + } + default: + panic(fmt.Sprintf("merger not found for type:%s", tf)) + } + mi.fields = append(mi.fields, mfi) + } + + mi.unrecognized = invalidField + if f, ok := t.FieldByName("XXX_unrecognized"); ok { + if f.Type != reflect.TypeOf([]byte{}) { + panic("expected XXX_unrecognized to be of type []byte") + } + mi.unrecognized = toField(&f) + } + + atomic.StoreInt32(&mi.initialized, 1) +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go new file mode 100644 index 0000000000..937229386a --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal.go @@ -0,0 +1,2249 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +import ( + "errors" + "fmt" + "io" + "math" + "reflect" + "strconv" + "strings" + "sync" + "sync/atomic" + "unicode/utf8" +) + +// Unmarshal is the entry point from the generated .pb.go files. +// This function is not intended to be used by non-generated code. +// This function is not subject to any compatibility guarantee. +// msg contains a pointer to a protocol buffer struct. +// b is the data to be unmarshaled into the protocol buffer. +// a is a pointer to a place to store cached unmarshal information. +func (a *InternalMessageInfo) Unmarshal(msg Message, b []byte) error { + // Load the unmarshal information for this message type. + // The atomic load ensures memory consistency. + u := atomicLoadUnmarshalInfo(&a.unmarshal) + if u == nil { + // Slow path: find unmarshal info for msg, update a with it. + u = getUnmarshalInfo(reflect.TypeOf(msg).Elem()) + atomicStoreUnmarshalInfo(&a.unmarshal, u) + } + // Then do the unmarshaling. + err := u.unmarshal(toPointer(&msg), b) + return err +} + +type unmarshalInfo struct { + typ reflect.Type // type of the protobuf struct + + // 0 = only typ field is initialized + // 1 = completely initialized + initialized int32 + lock sync.Mutex // prevents double initialization + dense []unmarshalFieldInfo // fields indexed by tag # + sparse map[uint64]unmarshalFieldInfo // fields indexed by tag # + reqFields []string // names of required fields + reqMask uint64 // 1< 0 { + // Read tag and wire type. + // Special case 1 and 2 byte varints. + var x uint64 + if b[0] < 128 { + x = uint64(b[0]) + b = b[1:] + } else if len(b) >= 2 && b[1] < 128 { + x = uint64(b[0]&0x7f) + uint64(b[1])<<7 + b = b[2:] + } else { + var n int + x, n = decodeVarint(b) + if n == 0 { + return io.ErrUnexpectedEOF + } + b = b[n:] + } + tag := x >> 3 + wire := int(x) & 7 + + // Dispatch on the tag to one of the unmarshal* functions below. + var f unmarshalFieldInfo + if tag < uint64(len(u.dense)) { + f = u.dense[tag] + } else { + f = u.sparse[tag] + } + if fn := f.unmarshal; fn != nil { + var err error + b, err = fn(b, m.offset(f.field), wire) + if err == nil { + reqMask |= f.reqMask + continue + } + if r, ok := err.(*RequiredNotSetError); ok { + // Remember this error, but keep parsing. We need to produce + // a full parse even if a required field is missing. + if errLater == nil { + errLater = r + } + reqMask |= f.reqMask + continue + } + if err != errInternalBadWireType { + if err == errInvalidUTF8 { + if errLater == nil { + fullName := revProtoTypes[reflect.PtrTo(u.typ)] + "." + f.name + errLater = &invalidUTF8Error{fullName} + } + continue + } + return err + } + // Fragments with bad wire type are treated as unknown fields. + } + + // Unknown tag. + if !u.unrecognized.IsValid() { + // Don't keep unrecognized data; just skip it. + var err error + b, err = skipField(b, wire) + if err != nil { + return err + } + continue + } + // Keep unrecognized data around. + // maybe in extensions, maybe in the unrecognized field. + z := m.offset(u.unrecognized).toBytes() + var emap map[int32]Extension + var e Extension + for _, r := range u.extensionRanges { + if uint64(r.Start) <= tag && tag <= uint64(r.End) { + if u.extensions.IsValid() { + mp := m.offset(u.extensions).toExtensions() + emap = mp.extensionsWrite() + e = emap[int32(tag)] + z = &e.enc + break + } + if u.oldExtensions.IsValid() { + p := m.offset(u.oldExtensions).toOldExtensions() + emap = *p + if emap == nil { + emap = map[int32]Extension{} + *p = emap + } + e = emap[int32(tag)] + z = &e.enc + break + } + if u.bytesExtensions.IsValid() { + z = m.offset(u.bytesExtensions).toBytes() + break + } + panic("no extensions field available") + } + } + // Use wire type to skip data. + var err error + b0 := b + b, err = skipField(b, wire) + if err != nil { + return err + } + *z = encodeVarint(*z, tag<<3|uint64(wire)) + *z = append(*z, b0[:len(b0)-len(b)]...) + + if emap != nil { + emap[int32(tag)] = e + } + } + if reqMask != u.reqMask && errLater == nil { + // A required field of this message is missing. + for _, n := range u.reqFields { + if reqMask&1 == 0 { + errLater = &RequiredNotSetError{n} + } + reqMask >>= 1 + } + } + return errLater +} + +// computeUnmarshalInfo fills in u with information for use +// in unmarshaling protocol buffers of type u.typ. +func (u *unmarshalInfo) computeUnmarshalInfo() { + u.lock.Lock() + defer u.lock.Unlock() + if u.initialized != 0 { + return + } + t := u.typ + n := t.NumField() + + // Set up the "not found" value for the unrecognized byte buffer. + // This is the default for proto3. + u.unrecognized = invalidField + u.extensions = invalidField + u.oldExtensions = invalidField + u.bytesExtensions = invalidField + + // List of the generated type and offset for each oneof field. + type oneofField struct { + ityp reflect.Type // interface type of oneof field + field field // offset in containing message + } + var oneofFields []oneofField + + for i := 0; i < n; i++ { + f := t.Field(i) + if f.Name == "XXX_unrecognized" { + // The byte slice used to hold unrecognized input is special. + if f.Type != reflect.TypeOf(([]byte)(nil)) { + panic("bad type for XXX_unrecognized field: " + f.Type.Name()) + } + u.unrecognized = toField(&f) + continue + } + if f.Name == "XXX_InternalExtensions" { + // Ditto here. + if f.Type != reflect.TypeOf(XXX_InternalExtensions{}) { + panic("bad type for XXX_InternalExtensions field: " + f.Type.Name()) + } + u.extensions = toField(&f) + if f.Tag.Get("protobuf_messageset") == "1" { + u.isMessageSet = true + } + continue + } + if f.Name == "XXX_extensions" { + // An older form of the extensions field. + if f.Type == reflect.TypeOf((map[int32]Extension)(nil)) { + u.oldExtensions = toField(&f) + continue + } else if f.Type == reflect.TypeOf(([]byte)(nil)) { + u.bytesExtensions = toField(&f) + continue + } + panic("bad type for XXX_extensions field: " + f.Type.Name()) + } + if f.Name == "XXX_NoUnkeyedLiteral" || f.Name == "XXX_sizecache" { + continue + } + + oneof := f.Tag.Get("protobuf_oneof") + if oneof != "" { + oneofFields = append(oneofFields, oneofField{f.Type, toField(&f)}) + // The rest of oneof processing happens below. + continue + } + + tags := f.Tag.Get("protobuf") + tagArray := strings.Split(tags, ",") + if len(tagArray) < 2 { + panic("protobuf tag not enough fields in " + t.Name() + "." + f.Name + ": " + tags) + } + tag, err := strconv.Atoi(tagArray[1]) + if err != nil { + panic("protobuf tag field not an integer: " + tagArray[1]) + } + + name := "" + for _, tag := range tagArray[3:] { + if strings.HasPrefix(tag, "name=") { + name = tag[5:] + } + } + + // Extract unmarshaling function from the field (its type and tags). + unmarshal := fieldUnmarshaler(&f) + + // Required field? + var reqMask uint64 + if tagArray[2] == "req" { + bit := len(u.reqFields) + u.reqFields = append(u.reqFields, name) + reqMask = uint64(1) << uint(bit) + // TODO: if we have more than 64 required fields, we end up + // not verifying that all required fields are present. + // Fix this, perhaps using a count of required fields? + } + + // Store the info in the correct slot in the message. + u.setTag(tag, toField(&f), unmarshal, reqMask, name) + } + + // Find any types associated with oneof fields. + // gogo: len(oneofFields) > 0 is needed for embedded oneof messages, without a marshaler and unmarshaler + if len(oneofFields) > 0 { + var oneofImplementers []interface{} + switch m := reflect.Zero(reflect.PtrTo(t)).Interface().(type) { + case oneofFuncsIface: + _, _, _, oneofImplementers = m.XXX_OneofFuncs() + case oneofWrappersIface: + oneofImplementers = m.XXX_OneofWrappers() + } + for _, v := range oneofImplementers { + tptr := reflect.TypeOf(v) // *Msg_X + typ := tptr.Elem() // Msg_X + + f := typ.Field(0) // oneof implementers have one field + baseUnmarshal := fieldUnmarshaler(&f) + tags := strings.Split(f.Tag.Get("protobuf"), ",") + fieldNum, err := strconv.Atoi(tags[1]) + if err != nil { + panic("protobuf tag field not an integer: " + tags[1]) + } + var name string + for _, tag := range tags { + if strings.HasPrefix(tag, "name=") { + name = strings.TrimPrefix(tag, "name=") + break + } + } + + // Find the oneof field that this struct implements. + // Might take O(n^2) to process all of the oneofs, but who cares. + for _, of := range oneofFields { + if tptr.Implements(of.ityp) { + // We have found the corresponding interface for this struct. + // That lets us know where this struct should be stored + // when we encounter it during unmarshaling. + unmarshal := makeUnmarshalOneof(typ, of.ityp, baseUnmarshal) + u.setTag(fieldNum, of.field, unmarshal, 0, name) + } + } + + } + } + + // Get extension ranges, if any. + fn := reflect.Zero(reflect.PtrTo(t)).MethodByName("ExtensionRangeArray") + if fn.IsValid() { + if !u.extensions.IsValid() && !u.oldExtensions.IsValid() && !u.bytesExtensions.IsValid() { + panic("a message with extensions, but no extensions field in " + t.Name()) + } + u.extensionRanges = fn.Call(nil)[0].Interface().([]ExtensionRange) + } + + // Explicitly disallow tag 0. This will ensure we flag an error + // when decoding a buffer of all zeros. Without this code, we + // would decode and skip an all-zero buffer of even length. + // [0 0] is [tag=0/wiretype=varint varint-encoded-0]. + u.setTag(0, zeroField, func(b []byte, f pointer, w int) ([]byte, error) { + return nil, fmt.Errorf("proto: %s: illegal tag 0 (wire type %d)", t, w) + }, 0, "") + + // Set mask for required field check. + u.reqMask = uint64(1)<= 0 && (tag < 16 || tag < 2*n) { // TODO: what are the right numbers here? + for len(u.dense) <= tag { + u.dense = append(u.dense, unmarshalFieldInfo{}) + } + u.dense[tag] = i + return + } + if u.sparse == nil { + u.sparse = map[uint64]unmarshalFieldInfo{} + } + u.sparse[uint64(tag)] = i +} + +// fieldUnmarshaler returns an unmarshaler for the given field. +func fieldUnmarshaler(f *reflect.StructField) unmarshaler { + if f.Type.Kind() == reflect.Map { + return makeUnmarshalMap(f) + } + return typeUnmarshaler(f.Type, f.Tag.Get("protobuf")) +} + +// typeUnmarshaler returns an unmarshaler for the given field type / field tag pair. +func typeUnmarshaler(t reflect.Type, tags string) unmarshaler { + tagArray := strings.Split(tags, ",") + encoding := tagArray[0] + name := "unknown" + ctype := false + isTime := false + isDuration := false + isWktPointer := false + proto3 := false + validateUTF8 := true + for _, tag := range tagArray[3:] { + if strings.HasPrefix(tag, "name=") { + name = tag[5:] + } + if tag == "proto3" { + proto3 = true + } + if strings.HasPrefix(tag, "customtype=") { + ctype = true + } + if tag == "stdtime" { + isTime = true + } + if tag == "stdduration" { + isDuration = true + } + if tag == "wktptr" { + isWktPointer = true + } + } + validateUTF8 = validateUTF8 && proto3 + + // Figure out packaging (pointer, slice, or both) + slice := false + pointer := false + if t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 { + slice = true + t = t.Elem() + } + if t.Kind() == reflect.Ptr { + pointer = true + t = t.Elem() + } + + if ctype { + if reflect.PtrTo(t).Implements(customType) { + if slice { + return makeUnmarshalCustomSlice(getUnmarshalInfo(t), name) + } + if pointer { + return makeUnmarshalCustomPtr(getUnmarshalInfo(t), name) + } + return makeUnmarshalCustom(getUnmarshalInfo(t), name) + } else { + panic(fmt.Sprintf("custom type: type: %v, does not implement the proto.custom interface", t)) + } + } + + if isTime { + if pointer { + if slice { + return makeUnmarshalTimePtrSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalTimePtr(getUnmarshalInfo(t), name) + } + if slice { + return makeUnmarshalTimeSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalTime(getUnmarshalInfo(t), name) + } + + if isDuration { + if pointer { + if slice { + return makeUnmarshalDurationPtrSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalDurationPtr(getUnmarshalInfo(t), name) + } + if slice { + return makeUnmarshalDurationSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalDuration(getUnmarshalInfo(t), name) + } + + if isWktPointer { + switch t.Kind() { + case reflect.Float64: + if pointer { + if slice { + return makeStdDoubleValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdDoubleValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdDoubleValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdDoubleValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Float32: + if pointer { + if slice { + return makeStdFloatValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdFloatValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdFloatValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdFloatValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Int64: + if pointer { + if slice { + return makeStdInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt64ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Uint64: + if pointer { + if slice { + return makeStdUInt64ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt64ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdUInt64ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt64ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Int32: + if pointer { + if slice { + return makeStdInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdInt32ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Uint32: + if pointer { + if slice { + return makeStdUInt32ValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt32ValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdUInt32ValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdUInt32ValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.Bool: + if pointer { + if slice { + return makeStdBoolValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBoolValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdBoolValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBoolValueUnmarshaler(getUnmarshalInfo(t), name) + case reflect.String: + if pointer { + if slice { + return makeStdStringValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdStringValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdStringValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdStringValueUnmarshaler(getUnmarshalInfo(t), name) + case uint8SliceType: + if pointer { + if slice { + return makeStdBytesValuePtrSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBytesValuePtrUnmarshaler(getUnmarshalInfo(t), name) + } + if slice { + return makeStdBytesValueSliceUnmarshaler(getUnmarshalInfo(t), name) + } + return makeStdBytesValueUnmarshaler(getUnmarshalInfo(t), name) + default: + panic(fmt.Sprintf("unknown wktpointer type %#v", t)) + } + } + + // We'll never have both pointer and slice for basic types. + if pointer && slice && t.Kind() != reflect.Struct { + panic("both pointer and slice for basic type in " + t.Name()) + } + + switch t.Kind() { + case reflect.Bool: + if pointer { + return unmarshalBoolPtr + } + if slice { + return unmarshalBoolSlice + } + return unmarshalBoolValue + case reflect.Int32: + switch encoding { + case "fixed32": + if pointer { + return unmarshalFixedS32Ptr + } + if slice { + return unmarshalFixedS32Slice + } + return unmarshalFixedS32Value + case "varint": + // this could be int32 or enum + if pointer { + return unmarshalInt32Ptr + } + if slice { + return unmarshalInt32Slice + } + return unmarshalInt32Value + case "zigzag32": + if pointer { + return unmarshalSint32Ptr + } + if slice { + return unmarshalSint32Slice + } + return unmarshalSint32Value + } + case reflect.Int64: + switch encoding { + case "fixed64": + if pointer { + return unmarshalFixedS64Ptr + } + if slice { + return unmarshalFixedS64Slice + } + return unmarshalFixedS64Value + case "varint": + if pointer { + return unmarshalInt64Ptr + } + if slice { + return unmarshalInt64Slice + } + return unmarshalInt64Value + case "zigzag64": + if pointer { + return unmarshalSint64Ptr + } + if slice { + return unmarshalSint64Slice + } + return unmarshalSint64Value + } + case reflect.Uint32: + switch encoding { + case "fixed32": + if pointer { + return unmarshalFixed32Ptr + } + if slice { + return unmarshalFixed32Slice + } + return unmarshalFixed32Value + case "varint": + if pointer { + return unmarshalUint32Ptr + } + if slice { + return unmarshalUint32Slice + } + return unmarshalUint32Value + } + case reflect.Uint64: + switch encoding { + case "fixed64": + if pointer { + return unmarshalFixed64Ptr + } + if slice { + return unmarshalFixed64Slice + } + return unmarshalFixed64Value + case "varint": + if pointer { + return unmarshalUint64Ptr + } + if slice { + return unmarshalUint64Slice + } + return unmarshalUint64Value + } + case reflect.Float32: + if pointer { + return unmarshalFloat32Ptr + } + if slice { + return unmarshalFloat32Slice + } + return unmarshalFloat32Value + case reflect.Float64: + if pointer { + return unmarshalFloat64Ptr + } + if slice { + return unmarshalFloat64Slice + } + return unmarshalFloat64Value + case reflect.Map: + panic("map type in typeUnmarshaler in " + t.Name()) + case reflect.Slice: + if pointer { + panic("bad pointer in slice case in " + t.Name()) + } + if slice { + return unmarshalBytesSlice + } + return unmarshalBytesValue + case reflect.String: + if validateUTF8 { + if pointer { + return unmarshalUTF8StringPtr + } + if slice { + return unmarshalUTF8StringSlice + } + return unmarshalUTF8StringValue + } + if pointer { + return unmarshalStringPtr + } + if slice { + return unmarshalStringSlice + } + return unmarshalStringValue + case reflect.Struct: + // message or group field + if !pointer { + switch encoding { + case "bytes": + if slice { + return makeUnmarshalMessageSlice(getUnmarshalInfo(t), name) + } + return makeUnmarshalMessage(getUnmarshalInfo(t), name) + } + } + switch encoding { + case "bytes": + if slice { + return makeUnmarshalMessageSlicePtr(getUnmarshalInfo(t), name) + } + return makeUnmarshalMessagePtr(getUnmarshalInfo(t), name) + case "group": + if slice { + return makeUnmarshalGroupSlicePtr(getUnmarshalInfo(t), name) + } + return makeUnmarshalGroupPtr(getUnmarshalInfo(t), name) + } + } + panic(fmt.Sprintf("unmarshaler not found type:%s encoding:%s", t, encoding)) +} + +// Below are all the unmarshalers for individual fields of various types. + +func unmarshalInt64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + *f.toInt64() = v + return b, nil +} + +func unmarshalInt64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + *f.toInt64Ptr() = &v + return b, nil +} + +func unmarshalInt64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + s := f.toInt64Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x) + s := f.toInt64Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalSint64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + *f.toInt64() = v + return b, nil +} + +func unmarshalSint64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + *f.toInt64Ptr() = &v + return b, nil +} + +func unmarshalSint64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + s := f.toInt64Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int64(x>>1) ^ int64(x)<<63>>63 + s := f.toInt64Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalUint64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + *f.toUint64() = v + return b, nil +} + +func unmarshalUint64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + *f.toUint64Ptr() = &v + return b, nil +} + +func unmarshalUint64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + s := f.toUint64Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint64(x) + s := f.toUint64Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalInt32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + *f.toInt32() = v + return b, nil +} + +func unmarshalInt32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + f.setInt32Ptr(v) + return b, nil +} + +func unmarshalInt32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + f.appendInt32Slice(v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x) + f.appendInt32Slice(v) + return b, nil +} + +func unmarshalSint32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + *f.toInt32() = v + return b, nil +} + +func unmarshalSint32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + f.setInt32Ptr(v) + return b, nil +} + +func unmarshalSint32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + f.appendInt32Slice(v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := int32(x>>1) ^ int32(x)<<31>>31 + f.appendInt32Slice(v) + return b, nil +} + +func unmarshalUint32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + *f.toUint32() = v + return b, nil +} + +func unmarshalUint32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + *f.toUint32Ptr() = &v + return b, nil +} + +func unmarshalUint32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + s := f.toUint32Slice() + *s = append(*s, v) + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + v := uint32(x) + s := f.toUint32Slice() + *s = append(*s, v) + return b, nil +} + +func unmarshalFixed64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + *f.toUint64() = v + return b[8:], nil +} + +func unmarshalFixed64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + *f.toUint64Ptr() = &v + return b[8:], nil +} + +func unmarshalFixed64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + s := f.toUint64Slice() + *s = append(*s, v) + b = b[8:] + } + return res, nil + } + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + s := f.toUint64Slice() + *s = append(*s, v) + return b[8:], nil +} + +func unmarshalFixedS64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + *f.toInt64() = v + return b[8:], nil +} + +func unmarshalFixedS64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + *f.toInt64Ptr() = &v + return b[8:], nil +} + +func unmarshalFixedS64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + s := f.toInt64Slice() + *s = append(*s, v) + b = b[8:] + } + return res, nil + } + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := int64(b[0]) | int64(b[1])<<8 | int64(b[2])<<16 | int64(b[3])<<24 | int64(b[4])<<32 | int64(b[5])<<40 | int64(b[6])<<48 | int64(b[7])<<56 + s := f.toInt64Slice() + *s = append(*s, v) + return b[8:], nil +} + +func unmarshalFixed32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + *f.toUint32() = v + return b[4:], nil +} + +func unmarshalFixed32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + *f.toUint32Ptr() = &v + return b[4:], nil +} + +func unmarshalFixed32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + s := f.toUint32Slice() + *s = append(*s, v) + b = b[4:] + } + return res, nil + } + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24 + s := f.toUint32Slice() + *s = append(*s, v) + return b[4:], nil +} + +func unmarshalFixedS32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + *f.toInt32() = v + return b[4:], nil +} + +func unmarshalFixedS32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + f.setInt32Ptr(v) + return b[4:], nil +} + +func unmarshalFixedS32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + f.appendInt32Slice(v) + b = b[4:] + } + return res, nil + } + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := int32(b[0]) | int32(b[1])<<8 | int32(b[2])<<16 | int32(b[3])<<24 + f.appendInt32Slice(v) + return b[4:], nil +} + +func unmarshalBoolValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + // Note: any length varint is allowed, even though any sane + // encoder will use one byte. + // See https://github.com/golang/protobuf/issues/76 + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + // TODO: check if x>1? Tests seem to indicate no. + v := x != 0 + *f.toBool() = v + return b[n:], nil +} + +func unmarshalBoolPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + v := x != 0 + *f.toBoolPtr() = &v + return b[n:], nil +} + +func unmarshalBoolSlice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + x, n = decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + v := x != 0 + s := f.toBoolSlice() + *s = append(*s, v) + b = b[n:] + } + return res, nil + } + if w != WireVarint { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + v := x != 0 + s := f.toBoolSlice() + *s = append(*s, v) + return b[n:], nil +} + +func unmarshalFloat64Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + *f.toFloat64() = v + return b[8:], nil +} + +func unmarshalFloat64Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + *f.toFloat64Ptr() = &v + return b[8:], nil +} + +func unmarshalFloat64Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + s := f.toFloat64Slice() + *s = append(*s, v) + b = b[8:] + } + return res, nil + } + if w != WireFixed64 { + return b, errInternalBadWireType + } + if len(b) < 8 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float64frombits(uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56) + s := f.toFloat64Slice() + *s = append(*s, v) + return b[8:], nil +} + +func unmarshalFloat32Value(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + *f.toFloat32() = v + return b[4:], nil +} + +func unmarshalFloat32Ptr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + *f.toFloat32Ptr() = &v + return b[4:], nil +} + +func unmarshalFloat32Slice(b []byte, f pointer, w int) ([]byte, error) { + if w == WireBytes { // packed + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + res := b[x:] + b = b[:x] + for len(b) > 0 { + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + s := f.toFloat32Slice() + *s = append(*s, v) + b = b[4:] + } + return res, nil + } + if w != WireFixed32 { + return b, errInternalBadWireType + } + if len(b) < 4 { + return nil, io.ErrUnexpectedEOF + } + v := math.Float32frombits(uint32(b[0]) | uint32(b[1])<<8 | uint32(b[2])<<16 | uint32(b[3])<<24) + s := f.toFloat32Slice() + *s = append(*s, v) + return b[4:], nil +} + +func unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toString() = v + return b[x:], nil +} + +func unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toStringPtr() = &v + return b[x:], nil +} + +func unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + s := f.toStringSlice() + *s = append(*s, v) + return b[x:], nil +} + +func unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toString() = v + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +func unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + *f.toStringPtr() = &v + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +func unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := string(b[:x]) + s := f.toStringSlice() + *s = append(*s, v) + if !utf8.ValidString(v) { + return b[x:], errInvalidUTF8 + } + return b[x:], nil +} + +var emptyBuf [0]byte + +func unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + // The use of append here is a trick which avoids the zeroing + // that would be required if we used a make/copy pair. + // We append to emptyBuf instead of nil because we want + // a non-nil result even when the length is 0. + v := append(emptyBuf[:], b[:x]...) + *f.toBytes() = v + return b[x:], nil +} + +func unmarshalBytesSlice(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := append(emptyBuf[:], b[:x]...) + s := f.toBytesSlice() + *s = append(*s, v) + return b[x:], nil +} + +func makeUnmarshalMessagePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + // First read the message field to see if something is there. + // The semantics of multiple submessages are weird. Instead of + // the last one winning (as it is for all other fields), multiple + // submessages are merged. + v := f.getPointer() + if v.isNil() { + v = valToPointer(reflect.New(sub.typ)) + f.setPointer(v) + } + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + return b[x:], err + } +} + +func makeUnmarshalMessageSlicePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return b, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := valToPointer(reflect.New(sub.typ)) + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + f.appendPointer(v) + return b[x:], err + } +} + +func makeUnmarshalGroupPtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireStartGroup { + return b, errInternalBadWireType + } + x, y := findEndGroup(b) + if x < 0 { + return nil, io.ErrUnexpectedEOF + } + v := f.getPointer() + if v.isNil() { + v = valToPointer(reflect.New(sub.typ)) + f.setPointer(v) + } + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + return b[y:], err + } +} + +func makeUnmarshalGroupSlicePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireStartGroup { + return b, errInternalBadWireType + } + x, y := findEndGroup(b) + if x < 0 { + return nil, io.ErrUnexpectedEOF + } + v := valToPointer(reflect.New(sub.typ)) + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + f.appendPointer(v) + return b[y:], err + } +} + +func makeUnmarshalMap(f *reflect.StructField) unmarshaler { + t := f.Type + kt := t.Key() + vt := t.Elem() + tagArray := strings.Split(f.Tag.Get("protobuf"), ",") + valTags := strings.Split(f.Tag.Get("protobuf_val"), ",") + for _, t := range tagArray { + if strings.HasPrefix(t, "customtype=") { + valTags = append(valTags, t) + } + if t == "stdtime" { + valTags = append(valTags, t) + } + if t == "stdduration" { + valTags = append(valTags, t) + } + if t == "wktptr" { + valTags = append(valTags, t) + } + } + unmarshalKey := typeUnmarshaler(kt, f.Tag.Get("protobuf_key")) + unmarshalVal := typeUnmarshaler(vt, strings.Join(valTags, ",")) + return func(b []byte, f pointer, w int) ([]byte, error) { + // The map entry is a submessage. Figure out how big it is. + if w != WireBytes { + return nil, fmt.Errorf("proto: bad wiretype for map field: got %d want %d", w, WireBytes) + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + r := b[x:] // unused data to return + b = b[:x] // data for map entry + + // Note: we could use #keys * #values ~= 200 functions + // to do map decoding without reflection. Probably not worth it. + // Maps will be somewhat slow. Oh well. + + // Read key and value from data. + var nerr nonFatal + k := reflect.New(kt) + v := reflect.New(vt) + for len(b) > 0 { + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + wire := int(x) & 7 + b = b[n:] + + var err error + switch x >> 3 { + case 1: + b, err = unmarshalKey(b, valToPointer(k), wire) + case 2: + b, err = unmarshalVal(b, valToPointer(v), wire) + default: + err = errInternalBadWireType // skip unknown tag + } + + if nerr.Merge(err) { + continue + } + if err != errInternalBadWireType { + return nil, err + } + + // Skip past unknown fields. + b, err = skipField(b, wire) + if err != nil { + return nil, err + } + } + + // Get map, allocate if needed. + m := f.asPointerTo(t).Elem() // an addressable map[K]T + if m.IsNil() { + m.Set(reflect.MakeMap(t)) + } + + // Insert into map. + m.SetMapIndex(k.Elem(), v.Elem()) + + return r, nerr.E + } +} + +// makeUnmarshalOneof makes an unmarshaler for oneof fields. +// for: +// message Msg { +// oneof F { +// int64 X = 1; +// float64 Y = 2; +// } +// } +// typ is the type of the concrete entry for a oneof case (e.g. Msg_X). +// ityp is the interface type of the oneof field (e.g. isMsg_F). +// unmarshal is the unmarshaler for the base type of the oneof case (e.g. int64). +// Note that this function will be called once for each case in the oneof. +func makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) unmarshaler { + sf := typ.Field(0) + field0 := toField(&sf) + return func(b []byte, f pointer, w int) ([]byte, error) { + // Allocate holder for value. + v := reflect.New(typ) + + // Unmarshal data into holder. + // We unmarshal into the first field of the holder object. + var err error + var nerr nonFatal + b, err = unmarshal(b, valToPointer(v).offset(field0), w) + if !nerr.Merge(err) { + return nil, err + } + + // Write pointer to holder into target field. + f.asPointerTo(ityp).Elem().Set(v) + + return b, nerr.E + } +} + +// Error used by decode internally. +var errInternalBadWireType = errors.New("proto: internal error: bad wiretype") + +// skipField skips past a field of type wire and returns the remaining bytes. +func skipField(b []byte, wire int) ([]byte, error) { + switch wire { + case WireVarint: + _, k := decodeVarint(b) + if k == 0 { + return b, io.ErrUnexpectedEOF + } + b = b[k:] + case WireFixed32: + if len(b) < 4 { + return b, io.ErrUnexpectedEOF + } + b = b[4:] + case WireFixed64: + if len(b) < 8 { + return b, io.ErrUnexpectedEOF + } + b = b[8:] + case WireBytes: + m, k := decodeVarint(b) + if k == 0 || uint64(len(b)-k) < m { + return b, io.ErrUnexpectedEOF + } + b = b[uint64(k)+m:] + case WireStartGroup: + _, i := findEndGroup(b) + if i == -1 { + return b, io.ErrUnexpectedEOF + } + b = b[i:] + default: + return b, fmt.Errorf("proto: can't skip unknown wire type %d", wire) + } + return b, nil +} + +// findEndGroup finds the index of the next EndGroup tag. +// Groups may be nested, so the "next" EndGroup tag is the first +// unpaired EndGroup. +// findEndGroup returns the indexes of the start and end of the EndGroup tag. +// Returns (-1,-1) if it can't find one. +func findEndGroup(b []byte) (int, int) { + depth := 1 + i := 0 + for { + x, n := decodeVarint(b[i:]) + if n == 0 { + return -1, -1 + } + j := i + i += n + switch x & 7 { + case WireVarint: + _, k := decodeVarint(b[i:]) + if k == 0 { + return -1, -1 + } + i += k + case WireFixed32: + if len(b)-4 < i { + return -1, -1 + } + i += 4 + case WireFixed64: + if len(b)-8 < i { + return -1, -1 + } + i += 8 + case WireBytes: + m, k := decodeVarint(b[i:]) + if k == 0 { + return -1, -1 + } + i += k + if uint64(len(b)-i) < m { + return -1, -1 + } + i += int(m) + case WireStartGroup: + depth++ + case WireEndGroup: + depth-- + if depth == 0 { + return j, i + } + default: + return -1, -1 + } + } +} + +// encodeVarint appends a varint-encoded integer to b and returns the result. +func encodeVarint(b []byte, x uint64) []byte { + for x >= 1<<7 { + b = append(b, byte(x&0x7f|0x80)) + x >>= 7 + } + return append(b, byte(x)) +} + +// decodeVarint reads a varint-encoded integer from b. +// Returns the decoded integer and the number of bytes read. +// If there is an error, it returns 0,0. +func decodeVarint(b []byte) (uint64, int) { + var x, y uint64 + if len(b) == 0 { + goto bad + } + x = uint64(b[0]) + if x < 0x80 { + return x, 1 + } + x -= 0x80 + + if len(b) <= 1 { + goto bad + } + y = uint64(b[1]) + x += y << 7 + if y < 0x80 { + return x, 2 + } + x -= 0x80 << 7 + + if len(b) <= 2 { + goto bad + } + y = uint64(b[2]) + x += y << 14 + if y < 0x80 { + return x, 3 + } + x -= 0x80 << 14 + + if len(b) <= 3 { + goto bad + } + y = uint64(b[3]) + x += y << 21 + if y < 0x80 { + return x, 4 + } + x -= 0x80 << 21 + + if len(b) <= 4 { + goto bad + } + y = uint64(b[4]) + x += y << 28 + if y < 0x80 { + return x, 5 + } + x -= 0x80 << 28 + + if len(b) <= 5 { + goto bad + } + y = uint64(b[5]) + x += y << 35 + if y < 0x80 { + return x, 6 + } + x -= 0x80 << 35 + + if len(b) <= 6 { + goto bad + } + y = uint64(b[6]) + x += y << 42 + if y < 0x80 { + return x, 7 + } + x -= 0x80 << 42 + + if len(b) <= 7 { + goto bad + } + y = uint64(b[7]) + x += y << 49 + if y < 0x80 { + return x, 8 + } + x -= 0x80 << 49 + + if len(b) <= 8 { + goto bad + } + y = uint64(b[8]) + x += y << 56 + if y < 0x80 { + return x, 9 + } + x -= 0x80 << 56 + + if len(b) <= 9 { + goto bad + } + y = uint64(b[9]) + x += y << 63 + if y < 2 { + return x, 10 + } + +bad: + return 0, 0 +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go new file mode 100644 index 0000000000..00d6c7ad93 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go @@ -0,0 +1,385 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "io" + "reflect" +) + +func makeUnmarshalMessage(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + // First read the message field to see if something is there. + // The semantics of multiple submessages are weird. Instead of + // the last one winning (as it is for all other fields), multiple + // submessages are merged. + v := f // gogo: changed from v := f.getPointer() + if v.isNil() { + v = valToPointer(reflect.New(sub.typ)) + f.setPointer(v) + } + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + return b[x:], err + } +} + +func makeUnmarshalMessageSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + v := valToPointer(reflect.New(sub.typ)) + err := sub.unmarshal(v, b[:x]) + if err != nil { + if r, ok := err.(*RequiredNotSetError); ok { + r.field = name + "." + r.field + } else { + return nil, err + } + } + f.appendRef(v, sub.typ) // gogo: changed from f.appendPointer(v) + return b[x:], err + } +} + +func makeUnmarshalCustomPtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.New(sub.typ)) + m := s.Interface().(custom) + if err := m.Unmarshal(b[:x]); err != nil { + return nil, err + } + return b[x:], nil + } +} + +func makeUnmarshalCustomSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := reflect.New(sub.typ) + c := m.Interface().(custom) + if err := c.Unmarshal(b[:x]); err != nil { + return nil, err + } + v := valToPointer(m) + f.appendRef(v, sub.typ) + return b[x:], nil + } +} + +func makeUnmarshalCustom(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + + m := f.asPointerTo(sub.typ).Interface().(custom) + if err := m.Unmarshal(b[:x]); err != nil { + return nil, err + } + return b[x:], nil + } +} + +func makeUnmarshalTime(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(t)) + return b[x:], nil + } +} + +func makeUnmarshalTimePtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&t)) + return b[x:], nil + } +} + +func makeUnmarshalTimePtrSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&t)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeUnmarshalTimeSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := ×tamp{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + t, err := timestampFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(t)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeUnmarshalDurationPtr(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&d)) + return b[x:], nil + } +} + +func makeUnmarshalDuration(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(d)) + return b[x:], nil + } +} + +func makeUnmarshalDurationPtrSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&d)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeUnmarshalDurationSlice(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &duration{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + d, err := durationFromProto(m) + if err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(d)) + slice.Set(newSlice) + return b[x:], nil + } +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/text.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/text.go new file mode 100644 index 0000000000..87416afe95 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/text.go @@ -0,0 +1,930 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +// Functions for writing the text protocol buffer format. + +import ( + "bufio" + "bytes" + "encoding" + "errors" + "fmt" + "io" + "log" + "math" + "reflect" + "sort" + "strings" + "sync" + "time" +) + +var ( + newline = []byte("\n") + spaces = []byte(" ") + endBraceNewline = []byte("}\n") + backslashN = []byte{'\\', 'n'} + backslashR = []byte{'\\', 'r'} + backslashT = []byte{'\\', 't'} + backslashDQ = []byte{'\\', '"'} + backslashBS = []byte{'\\', '\\'} + posInf = []byte("inf") + negInf = []byte("-inf") + nan = []byte("nan") +) + +type writer interface { + io.Writer + WriteByte(byte) error +} + +// textWriter is an io.Writer that tracks its indentation level. +type textWriter struct { + ind int + complete bool // if the current position is a complete line + compact bool // whether to write out as a one-liner + w writer +} + +func (w *textWriter) WriteString(s string) (n int, err error) { + if !strings.Contains(s, "\n") { + if !w.compact && w.complete { + w.writeIndent() + } + w.complete = false + return io.WriteString(w.w, s) + } + // WriteString is typically called without newlines, so this + // codepath and its copy are rare. We copy to avoid + // duplicating all of Write's logic here. + return w.Write([]byte(s)) +} + +func (w *textWriter) Write(p []byte) (n int, err error) { + newlines := bytes.Count(p, newline) + if newlines == 0 { + if !w.compact && w.complete { + w.writeIndent() + } + n, err = w.w.Write(p) + w.complete = false + return n, err + } + + frags := bytes.SplitN(p, newline, newlines+1) + if w.compact { + for i, frag := range frags { + if i > 0 { + if err := w.w.WriteByte(' '); err != nil { + return n, err + } + n++ + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + } + return n, nil + } + + for i, frag := range frags { + if w.complete { + w.writeIndent() + } + nn, err := w.w.Write(frag) + n += nn + if err != nil { + return n, err + } + if i+1 < len(frags) { + if err := w.w.WriteByte('\n'); err != nil { + return n, err + } + n++ + } + } + w.complete = len(frags[len(frags)-1]) == 0 + return n, nil +} + +func (w *textWriter) WriteByte(c byte) error { + if w.compact && c == '\n' { + c = ' ' + } + if !w.compact && w.complete { + w.writeIndent() + } + err := w.w.WriteByte(c) + w.complete = c == '\n' + return err +} + +func (w *textWriter) indent() { w.ind++ } + +func (w *textWriter) unindent() { + if w.ind == 0 { + log.Print("proto: textWriter unindented too far") + return + } + w.ind-- +} + +func writeName(w *textWriter, props *Properties) error { + if _, err := w.WriteString(props.OrigName); err != nil { + return err + } + if props.Wire != "group" { + return w.WriteByte(':') + } + return nil +} + +func requiresQuotes(u string) bool { + // When type URL contains any characters except [0-9A-Za-z./\-]*, it must be quoted. + for _, ch := range u { + switch { + case ch == '.' || ch == '/' || ch == '_': + continue + case '0' <= ch && ch <= '9': + continue + case 'A' <= ch && ch <= 'Z': + continue + case 'a' <= ch && ch <= 'z': + continue + default: + return true + } + } + return false +} + +// isAny reports whether sv is a google.protobuf.Any message +func isAny(sv reflect.Value) bool { + type wkt interface { + XXX_WellKnownType() string + } + t, ok := sv.Addr().Interface().(wkt) + return ok && t.XXX_WellKnownType() == "Any" +} + +// writeProto3Any writes an expanded google.protobuf.Any message. +// +// It returns (false, nil) if sv value can't be unmarshaled (e.g. because +// required messages are not linked in). +// +// It returns (true, error) when sv was written in expanded format or an error +// was encountered. +func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Value) (bool, error) { + turl := sv.FieldByName("TypeUrl") + val := sv.FieldByName("Value") + if !turl.IsValid() || !val.IsValid() { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + b, ok := val.Interface().([]byte) + if !ok { + return true, errors.New("proto: invalid google.protobuf.Any message") + } + + parts := strings.Split(turl.String(), "/") + mt := MessageType(parts[len(parts)-1]) + if mt == nil { + return false, nil + } + m := reflect.New(mt.Elem()) + if err := Unmarshal(b, m.Interface().(Message)); err != nil { + return false, nil + } + w.Write([]byte("[")) + u := turl.String() + if requiresQuotes(u) { + writeString(w, u) + } else { + w.Write([]byte(u)) + } + if w.compact { + w.Write([]byte("]:<")) + } else { + w.Write([]byte("]: <\n")) + w.ind++ + } + if err := tm.writeStruct(w, m.Elem()); err != nil { + return true, err + } + if w.compact { + w.Write([]byte("> ")) + } else { + w.ind-- + w.Write([]byte(">\n")) + } + return true, nil +} + +func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) error { + if tm.ExpandAny && isAny(sv) { + if canExpand, err := tm.writeProto3Any(w, sv); canExpand { + return err + } + } + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < sv.NumField(); i++ { + fv := sv.Field(i) + props := sprops.Prop[i] + name := st.Field(i).Name + + if name == "XXX_NoUnkeyedLiteral" { + continue + } + + if strings.HasPrefix(name, "XXX_") { + // There are two XXX_ fields: + // XXX_unrecognized []byte + // XXX_extensions map[int32]proto.Extension + // The first is handled here; + // the second is handled at the bottom of this function. + if name == "XXX_unrecognized" && !fv.IsNil() { + if err := writeUnknownStruct(w, fv.Interface().([]byte)); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Field not filled in. This could be an optional field or + // a required field that wasn't filled in. Either way, there + // isn't anything we can show for it. + continue + } + if fv.Kind() == reflect.Slice && fv.IsNil() { + // Repeated field that is empty, or a bytes field that is unused. + continue + } + + if props.Repeated && fv.Kind() == reflect.Slice { + // Repeated field. + for j := 0; j < fv.Len(); j++ { + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + v := fv.Index(j) + if v.Kind() == reflect.Ptr && v.IsNil() { + // A nil message in a repeated field is not valid, + // but we can handle that more gracefully than panicking. + if _, err := w.Write([]byte("\n")); err != nil { + return err + } + continue + } + if len(props.Enum) > 0 { + if err := tm.writeEnum(w, v, props); err != nil { + return err + } + } else if err := tm.writeAny(w, v, props); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if fv.Kind() == reflect.Map { + // Map fields are rendered as a repeated struct with key/value fields. + keys := fv.MapKeys() + sort.Sort(mapKeys(keys)) + for _, key := range keys { + val := fv.MapIndex(key) + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + // open struct + if err := w.WriteByte('<'); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + // key + if _, err := w.WriteString("key:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, key, props.MapKeyProp); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + // nil values aren't legal, but we can avoid panicking because of them. + if val.Kind() != reflect.Ptr || !val.IsNil() { + // value + if _, err := w.WriteString("value:"); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, val, props.MapValProp); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + // close struct + w.unindent() + if err := w.WriteByte('>'); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + continue + } + if props.proto3 && fv.Kind() == reflect.Slice && fv.Len() == 0 { + // empty bytes field + continue + } + if props.proto3 && fv.Kind() != reflect.Ptr && fv.Kind() != reflect.Slice { + // proto3 non-repeated scalar field; skip if zero value + if isProto3Zero(fv) { + continue + } + } + + if fv.Kind() == reflect.Interface { + // Check if it is a oneof. + if st.Field(i).Tag.Get("protobuf_oneof") != "" { + // fv is nil, or holds a pointer to generated struct. + // That generated struct has exactly one field, + // which has a protobuf struct tag. + if fv.IsNil() { + continue + } + inner := fv.Elem().Elem() // interface -> *T -> T + tag := inner.Type().Field(0).Tag.Get("protobuf") + props = new(Properties) // Overwrite the outer props var, but not its pointee. + props.Parse(tag) + // Write the value in the oneof, not the oneof itself. + fv = inner.Field(0) + + // Special case to cope with malformed messages gracefully: + // If the value in the oneof is a nil pointer, don't panic + // in writeAny. + if fv.Kind() == reflect.Ptr && fv.IsNil() { + // Use errors.New so writeAny won't render quotes. + msg := errors.New("/* nil */") + fv = reflect.ValueOf(&msg).Elem() + } + } + } + + if err := writeName(w, props); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + + if len(props.Enum) > 0 { + if err := tm.writeEnum(w, fv, props); err != nil { + return err + } + } else if err := tm.writeAny(w, fv, props); err != nil { + return err + } + + if err := w.WriteByte('\n'); err != nil { + return err + } + } + + // Extensions (the XXX_extensions field). + pv := sv + if pv.CanAddr() { + pv = sv.Addr() + } else { + pv = reflect.New(sv.Type()) + pv.Elem().Set(sv) + } + if _, err := extendable(pv.Interface()); err == nil { + if err := tm.writeExtensions(w, pv); err != nil { + return err + } + } + + return nil +} + +var textMarshalerType = reflect.TypeOf((*encoding.TextMarshaler)(nil)).Elem() + +// writeAny writes an arbitrary field. +func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, props *Properties) error { + v = reflect.Indirect(v) + + if props != nil { + if len(props.CustomType) > 0 { + custom, ok := v.Interface().(Marshaler) + if ok { + data, err := custom.Marshal() + if err != nil { + return err + } + if err := writeString(w, string(data)); err != nil { + return err + } + return nil + } + } else if len(props.CastType) > 0 { + if _, ok := v.Interface().(interface { + String() string + }); ok { + switch v.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + _, err := fmt.Fprintf(w, "%d", v.Interface()) + return err + } + } + } else if props.StdTime { + t, ok := v.Interface().(time.Time) + if !ok { + return fmt.Errorf("stdtime is not time.Time, but %T", v.Interface()) + } + tproto, err := timestampProto(t) + if err != nil { + return err + } + propsCopy := *props // Make a copy so that this is goroutine-safe + propsCopy.StdTime = false + err = tm.writeAny(w, reflect.ValueOf(tproto), &propsCopy) + return err + } else if props.StdDuration { + d, ok := v.Interface().(time.Duration) + if !ok { + return fmt.Errorf("stdtime is not time.Duration, but %T", v.Interface()) + } + dproto := durationProto(d) + propsCopy := *props // Make a copy so that this is goroutine-safe + propsCopy.StdDuration = false + err := tm.writeAny(w, reflect.ValueOf(dproto), &propsCopy) + return err + } + } + + // Floats have special cases. + if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { + x := v.Float() + var b []byte + switch { + case math.IsInf(x, 1): + b = posInf + case math.IsInf(x, -1): + b = negInf + case math.IsNaN(x): + b = nan + } + if b != nil { + _, err := w.Write(b) + return err + } + // Other values are handled below. + } + + // We don't attempt to serialise every possible value type; only those + // that can occur in protocol buffers. + switch v.Kind() { + case reflect.Slice: + // Should only be a []byte; repeated fields are handled in writeStruct. + if err := writeString(w, string(v.Bytes())); err != nil { + return err + } + case reflect.String: + if err := writeString(w, v.String()); err != nil { + return err + } + case reflect.Struct: + // Required/optional group/message. + var bra, ket byte = '<', '>' + if props != nil && props.Wire == "group" { + bra, ket = '{', '}' + } + if err := w.WriteByte(bra); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte('\n'); err != nil { + return err + } + } + w.indent() + if v.CanAddr() { + // Calling v.Interface on a struct causes the reflect package to + // copy the entire struct. This is racy with the new Marshaler + // since we atomically update the XXX_sizecache. + // + // Thus, we retrieve a pointer to the struct if possible to avoid + // a race since v.Interface on the pointer doesn't copy the struct. + // + // If v is not addressable, then we are not worried about a race + // since it implies that the binary Marshaler cannot possibly be + // mutating this value. + v = v.Addr() + } + if v.Type().Implements(textMarshalerType) { + text, err := v.Interface().(encoding.TextMarshaler).MarshalText() + if err != nil { + return err + } + if _, err = w.Write(text); err != nil { + return err + } + } else { + if v.Kind() == reflect.Ptr { + v = v.Elem() + } + if err := tm.writeStruct(w, v); err != nil { + return err + } + } + w.unindent() + if err := w.WriteByte(ket); err != nil { + return err + } + default: + _, err := fmt.Fprint(w, v.Interface()) + return err + } + return nil +} + +// equivalent to C's isprint. +func isprint(c byte) bool { + return c >= 0x20 && c < 0x7f +} + +// writeString writes a string in the protocol buffer text format. +// It is similar to strconv.Quote except we don't use Go escape sequences, +// we treat the string as a byte sequence, and we use octal escapes. +// These differences are to maintain interoperability with the other +// languages' implementations of the text format. +func writeString(w *textWriter, s string) error { + // use WriteByte here to get any needed indent + if err := w.WriteByte('"'); err != nil { + return err + } + // Loop over the bytes, not the runes. + for i := 0; i < len(s); i++ { + var err error + // Divergence from C++: we don't escape apostrophes. + // There's no need to escape them, and the C++ parser + // copes with a naked apostrophe. + switch c := s[i]; c { + case '\n': + _, err = w.w.Write(backslashN) + case '\r': + _, err = w.w.Write(backslashR) + case '\t': + _, err = w.w.Write(backslashT) + case '"': + _, err = w.w.Write(backslashDQ) + case '\\': + _, err = w.w.Write(backslashBS) + default: + if isprint(c) { + err = w.w.WriteByte(c) + } else { + _, err = fmt.Fprintf(w.w, "\\%03o", c) + } + } + if err != nil { + return err + } + } + return w.WriteByte('"') +} + +func writeUnknownStruct(w *textWriter, data []byte) (err error) { + if !w.compact { + if _, err := fmt.Fprintf(w, "/* %d unknown bytes */\n", len(data)); err != nil { + return err + } + } + b := NewBuffer(data) + for b.index < len(b.buf) { + x, err := b.DecodeVarint() + if err != nil { + _, ferr := fmt.Fprintf(w, "/* %v */\n", err) + return ferr + } + wire, tag := x&7, x>>3 + if wire == WireEndGroup { + w.unindent() + if _, werr := w.Write(endBraceNewline); werr != nil { + return werr + } + continue + } + if _, ferr := fmt.Fprint(w, tag); ferr != nil { + return ferr + } + if wire != WireStartGroup { + if err = w.WriteByte(':'); err != nil { + return err + } + } + if !w.compact || wire == WireStartGroup { + if err = w.WriteByte(' '); err != nil { + return err + } + } + switch wire { + case WireBytes: + buf, e := b.DecodeRawBytes(false) + if e == nil { + _, err = fmt.Fprintf(w, "%q", buf) + } else { + _, err = fmt.Fprintf(w, "/* %v */", e) + } + case WireFixed32: + x, err = b.DecodeFixed32() + err = writeUnknownInt(w, x, err) + case WireFixed64: + x, err = b.DecodeFixed64() + err = writeUnknownInt(w, x, err) + case WireStartGroup: + err = w.WriteByte('{') + w.indent() + case WireVarint: + x, err = b.DecodeVarint() + err = writeUnknownInt(w, x, err) + default: + _, err = fmt.Fprintf(w, "/* unknown wire type %d */", wire) + } + if err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + } + return nil +} + +func writeUnknownInt(w *textWriter, x uint64, err error) error { + if err == nil { + _, err = fmt.Fprint(w, x) + } else { + _, err = fmt.Fprintf(w, "/* %v */", err) + } + return err +} + +type int32Slice []int32 + +func (s int32Slice) Len() int { return len(s) } +func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } +func (s int32Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } + +// writeExtensions writes all the extensions in pv. +// pv is assumed to be a pointer to a protocol message struct that is extendable. +func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Value) error { + emap := extensionMaps[pv.Type().Elem()] + e := pv.Interface().(Message) + + var m map[int32]Extension + var mu sync.Locker + if em, ok := e.(extensionsBytes); ok { + eb := em.GetExtensions() + var err error + m, err = BytesToExtensionsMap(*eb) + if err != nil { + return err + } + mu = notLocker{} + } else if _, ok := e.(extendableProto); ok { + ep, _ := extendable(e) + m, mu = ep.extensionsRead() + if m == nil { + return nil + } + } + + // Order the extensions by ID. + // This isn't strictly necessary, but it will give us + // canonical output, which will also make testing easier. + + mu.Lock() + ids := make([]int32, 0, len(m)) + for id := range m { + ids = append(ids, id) + } + sort.Sort(int32Slice(ids)) + mu.Unlock() + + for _, extNum := range ids { + ext := m[extNum] + var desc *ExtensionDesc + if emap != nil { + desc = emap[extNum] + } + if desc == nil { + // Unknown extension. + if err := writeUnknownStruct(w, ext.enc); err != nil { + return err + } + continue + } + + pb, err := GetExtension(e, desc) + if err != nil { + return fmt.Errorf("failed getting extension: %v", err) + } + + // Repeated extensions will appear as a slice. + if !desc.repeated() { + if err := tm.writeExtension(w, desc.Name, pb); err != nil { + return err + } + } else { + v := reflect.ValueOf(pb) + for i := 0; i < v.Len(); i++ { + if err := tm.writeExtension(w, desc.Name, v.Index(i).Interface()); err != nil { + return err + } + } + } + } + return nil +} + +func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb interface{}) error { + if _, err := fmt.Fprintf(w, "[%s]:", name); err != nil { + return err + } + if !w.compact { + if err := w.WriteByte(' '); err != nil { + return err + } + } + if err := tm.writeAny(w, reflect.ValueOf(pb), nil); err != nil { + return err + } + if err := w.WriteByte('\n'); err != nil { + return err + } + return nil +} + +func (w *textWriter) writeIndent() { + if !w.complete { + return + } + remain := w.ind * 2 + for remain > 0 { + n := remain + if n > len(spaces) { + n = len(spaces) + } + w.w.Write(spaces[:n]) + remain -= n + } + w.complete = false +} + +// TextMarshaler is a configurable text format marshaler. +type TextMarshaler struct { + Compact bool // use compact text format (one line). + ExpandAny bool // expand google.protobuf.Any messages of known types +} + +// Marshal writes a given protocol buffer in text format. +// The only errors returned are from w. +func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error { + val := reflect.ValueOf(pb) + if pb == nil || val.IsNil() { + w.Write([]byte("")) + return nil + } + var bw *bufio.Writer + ww, ok := w.(writer) + if !ok { + bw = bufio.NewWriter(w) + ww = bw + } + aw := &textWriter{ + w: ww, + complete: true, + compact: tm.Compact, + } + + if etm, ok := pb.(encoding.TextMarshaler); ok { + text, err := etm.MarshalText() + if err != nil { + return err + } + if _, err = aw.Write(text); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil + } + // Dereference the received pointer so we don't have outer < and >. + v := reflect.Indirect(val) + if err := tm.writeStruct(aw, v); err != nil { + return err + } + if bw != nil { + return bw.Flush() + } + return nil +} + +// Text is the same as Marshal, but returns the string directly. +func (tm *TextMarshaler) Text(pb Message) string { + var buf bytes.Buffer + tm.Marshal(&buf, pb) + return buf.String() +} + +var ( + defaultTextMarshaler = TextMarshaler{} + compactTextMarshaler = TextMarshaler{Compact: true} +) + +// TODO: consider removing some of the Marshal functions below. + +// MarshalText writes a given protocol buffer in text format. +// The only errors returned are from w. +func MarshalText(w io.Writer, pb Message) error { return defaultTextMarshaler.Marshal(w, pb) } + +// MarshalTextString is the same as MarshalText, but returns the string directly. +func MarshalTextString(pb Message) string { return defaultTextMarshaler.Text(pb) } + +// CompactText writes a given protocol buffer in compact text format (one line). +func CompactText(w io.Writer, pb Message) error { return compactTextMarshaler.Marshal(w, pb) } + +// CompactTextString is the same as CompactText, but returns the string directly. +func CompactTextString(pb Message) string { return compactTextMarshaler.Text(pb) } diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/text_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/text_gogo.go new file mode 100644 index 0000000000..1d6c6aa0e4 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/text_gogo.go @@ -0,0 +1,57 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "fmt" + "reflect" +) + +func (tm *TextMarshaler) writeEnum(w *textWriter, v reflect.Value, props *Properties) error { + m, ok := enumStringMaps[props.Enum] + if !ok { + if err := tm.writeAny(w, v, props); err != nil { + return err + } + } + key := int32(0) + if v.Kind() == reflect.Ptr { + key = int32(v.Elem().Int()) + } else { + key = int32(v.Int()) + } + s, ok := m[key] + if !ok { + if err := tm.writeAny(w, v, props); err != nil { + return err + } + } + _, err := fmt.Fprint(w, s) + return err +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/text_parser.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/text_parser.go new file mode 100644 index 0000000000..f85c0cc81a --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/text_parser.go @@ -0,0 +1,1018 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2013, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2010 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +// Functions for parsing the Text protocol buffer format. +// TODO: message sets. + +import ( + "encoding" + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "time" + "unicode/utf8" +) + +// Error string emitted when deserializing Any and fields are already set +const anyRepeatedlyUnpacked = "Any message unpacked multiple times, or %q already set" + +type ParseError struct { + Message string + Line int // 1-based line number + Offset int // 0-based byte offset from start of input +} + +func (p *ParseError) Error() string { + if p.Line == 1 { + // show offset only for first line + return fmt.Sprintf("line 1.%d: %v", p.Offset, p.Message) + } + return fmt.Sprintf("line %d: %v", p.Line, p.Message) +} + +type token struct { + value string + err *ParseError + line int // line number + offset int // byte number from start of input, not start of line + unquoted string // the unquoted version of value, if it was a quoted string +} + +func (t *token) String() string { + if t.err == nil { + return fmt.Sprintf("%q (line=%d, offset=%d)", t.value, t.line, t.offset) + } + return fmt.Sprintf("parse error: %v", t.err) +} + +type textParser struct { + s string // remaining input + done bool // whether the parsing is finished (success or error) + backed bool // whether back() was called + offset, line int + cur token +} + +func newTextParser(s string) *textParser { + p := new(textParser) + p.s = s + p.line = 1 + p.cur.line = 1 + return p +} + +func (p *textParser) errorf(format string, a ...interface{}) *ParseError { + pe := &ParseError{fmt.Sprintf(format, a...), p.cur.line, p.cur.offset} + p.cur.err = pe + p.done = true + return pe +} + +// Numbers and identifiers are matched by [-+._A-Za-z0-9] +func isIdentOrNumberChar(c byte) bool { + switch { + case 'A' <= c && c <= 'Z', 'a' <= c && c <= 'z': + return true + case '0' <= c && c <= '9': + return true + } + switch c { + case '-', '+', '.', '_': + return true + } + return false +} + +func isWhitespace(c byte) bool { + switch c { + case ' ', '\t', '\n', '\r': + return true + } + return false +} + +func isQuote(c byte) bool { + switch c { + case '"', '\'': + return true + } + return false +} + +func (p *textParser) skipWhitespace() { + i := 0 + for i < len(p.s) && (isWhitespace(p.s[i]) || p.s[i] == '#') { + if p.s[i] == '#' { + // comment; skip to end of line or input + for i < len(p.s) && p.s[i] != '\n' { + i++ + } + if i == len(p.s) { + break + } + } + if p.s[i] == '\n' { + p.line++ + } + i++ + } + p.offset += i + p.s = p.s[i:len(p.s)] + if len(p.s) == 0 { + p.done = true + } +} + +func (p *textParser) advance() { + // Skip whitespace + p.skipWhitespace() + if p.done { + return + } + + // Start of non-whitespace + p.cur.err = nil + p.cur.offset, p.cur.line = p.offset, p.line + p.cur.unquoted = "" + switch p.s[0] { + case '<', '>', '{', '}', ':', '[', ']', ';', ',', '/': + // Single symbol + p.cur.value, p.s = p.s[0:1], p.s[1:len(p.s)] + case '"', '\'': + // Quoted string + i := 1 + for i < len(p.s) && p.s[i] != p.s[0] && p.s[i] != '\n' { + if p.s[i] == '\\' && i+1 < len(p.s) { + // skip escaped char + i++ + } + i++ + } + if i >= len(p.s) || p.s[i] != p.s[0] { + p.errorf("unmatched quote") + return + } + unq, err := unquoteC(p.s[1:i], rune(p.s[0])) + if err != nil { + p.errorf("invalid quoted string %s: %v", p.s[0:i+1], err) + return + } + p.cur.value, p.s = p.s[0:i+1], p.s[i+1:len(p.s)] + p.cur.unquoted = unq + default: + i := 0 + for i < len(p.s) && isIdentOrNumberChar(p.s[i]) { + i++ + } + if i == 0 { + p.errorf("unexpected byte %#x", p.s[0]) + return + } + p.cur.value, p.s = p.s[0:i], p.s[i:len(p.s)] + } + p.offset += len(p.cur.value) +} + +var ( + errBadUTF8 = errors.New("proto: bad UTF-8") +) + +func unquoteC(s string, quote rune) (string, error) { + // This is based on C++'s tokenizer.cc. + // Despite its name, this is *not* parsing C syntax. + // For instance, "\0" is an invalid quoted string. + + // Avoid allocation in trivial cases. + simple := true + for _, r := range s { + if r == '\\' || r == quote { + simple = false + break + } + } + if simple { + return s, nil + } + + buf := make([]byte, 0, 3*len(s)/2) + for len(s) > 0 { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", errBadUTF8 + } + s = s[n:] + if r != '\\' { + if r < utf8.RuneSelf { + buf = append(buf, byte(r)) + } else { + buf = append(buf, string(r)...) + } + continue + } + + ch, tail, err := unescape(s) + if err != nil { + return "", err + } + buf = append(buf, ch...) + s = tail + } + return string(buf), nil +} + +func unescape(s string) (ch string, tail string, err error) { + r, n := utf8.DecodeRuneInString(s) + if r == utf8.RuneError && n == 1 { + return "", "", errBadUTF8 + } + s = s[n:] + switch r { + case 'a': + return "\a", s, nil + case 'b': + return "\b", s, nil + case 'f': + return "\f", s, nil + case 'n': + return "\n", s, nil + case 'r': + return "\r", s, nil + case 't': + return "\t", s, nil + case 'v': + return "\v", s, nil + case '?': + return "?", s, nil // trigraph workaround + case '\'', '"', '\\': + return string(r), s, nil + case '0', '1', '2', '3', '4', '5', '6', '7': + if len(s) < 2 { + return "", "", fmt.Errorf(`\%c requires 2 following digits`, r) + } + ss := string(r) + s[:2] + s = s[2:] + i, err := strconv.ParseUint(ss, 8, 8) + if err != nil { + return "", "", fmt.Errorf(`\%s contains non-octal digits`, ss) + } + return string([]byte{byte(i)}), s, nil + case 'x', 'X', 'u', 'U': + var n int + switch r { + case 'x', 'X': + n = 2 + case 'u': + n = 4 + case 'U': + n = 8 + } + if len(s) < n { + return "", "", fmt.Errorf(`\%c requires %d following digits`, r, n) + } + ss := s[:n] + s = s[n:] + i, err := strconv.ParseUint(ss, 16, 64) + if err != nil { + return "", "", fmt.Errorf(`\%c%s contains non-hexadecimal digits`, r, ss) + } + if r == 'x' || r == 'X' { + return string([]byte{byte(i)}), s, nil + } + if i > utf8.MaxRune { + return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) + } + return string(rune(i)), s, nil + } + return "", "", fmt.Errorf(`unknown escape \%c`, r) +} + +// Back off the parser by one token. Can only be done between calls to next(). +// It makes the next advance() a no-op. +func (p *textParser) back() { p.backed = true } + +// Advances the parser and returns the new current token. +func (p *textParser) next() *token { + if p.backed || p.done { + p.backed = false + return &p.cur + } + p.advance() + if p.done { + p.cur.value = "" + } else if len(p.cur.value) > 0 && isQuote(p.cur.value[0]) { + // Look for multiple quoted strings separated by whitespace, + // and concatenate them. + cat := p.cur + for { + p.skipWhitespace() + if p.done || !isQuote(p.s[0]) { + break + } + p.advance() + if p.cur.err != nil { + return &p.cur + } + cat.value += " " + p.cur.value + cat.unquoted += p.cur.unquoted + } + p.done = false // parser may have seen EOF, but we want to return cat + p.cur = cat + } + return &p.cur +} + +func (p *textParser) consumeToken(s string) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != s { + p.back() + return p.errorf("expected %q, found %q", s, tok.value) + } + return nil +} + +// Return a RequiredNotSetError indicating which required field was not set. +func (p *textParser) missingRequiredFieldError(sv reflect.Value) *RequiredNotSetError { + st := sv.Type() + sprops := GetProperties(st) + for i := 0; i < st.NumField(); i++ { + if !isNil(sv.Field(i)) { + continue + } + + props := sprops.Prop[i] + if props.Required { + return &RequiredNotSetError{fmt.Sprintf("%v.%v", st, props.OrigName)} + } + } + return &RequiredNotSetError{fmt.Sprintf("%v.", st)} // should not happen +} + +// Returns the index in the struct for the named field, as well as the parsed tag properties. +func structFieldByName(sprops *StructProperties, name string) (int, *Properties, bool) { + i, ok := sprops.decoderOrigNames[name] + if ok { + return i, sprops.Prop[i], true + } + return -1, nil, false +} + +// Consume a ':' from the input stream (if the next token is a colon), +// returning an error if a colon is needed but not present. +func (p *textParser) checkForColon(props *Properties, typ reflect.Type) *ParseError { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ":" { + // Colon is optional when the field is a group or message. + needColon := true + switch props.Wire { + case "group": + needColon = false + case "bytes": + // A "bytes" field is either a message, a string, or a repeated field; + // those three become *T, *string and []T respectively, so we can check for + // this field being a pointer to a non-string. + if typ.Kind() == reflect.Ptr { + // *T or *string + if typ.Elem().Kind() == reflect.String { + break + } + } else if typ.Kind() == reflect.Slice { + // []T or []*T + if typ.Elem().Kind() != reflect.Ptr { + break + } + } else if typ.Kind() == reflect.String { + // The proto3 exception is for a string field, + // which requires a colon. + break + } + needColon = false + } + if needColon { + return p.errorf("expected ':', found %q", tok.value) + } + p.back() + } + return nil +} + +func (p *textParser) readStruct(sv reflect.Value, terminator string) error { + st := sv.Type() + sprops := GetProperties(st) + reqCount := sprops.reqCount + var reqFieldErr error + fieldSet := make(map[string]bool) + // A struct is a sequence of "name: value", terminated by one of + // '>' or '}', or the end of the input. A name may also be + // "[extension]" or "[type/url]". + // + // The whole struct can also be an expanded Any message, like: + // [type/url] < ... struct contents ... > + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + if tok.value == "[" { + // Looks like an extension or an Any. + // + // TODO: Check whether we need to handle + // namespace rooted names (e.g. ".something.Foo"). + extName, err := p.consumeExtName() + if err != nil { + return err + } + + if s := strings.LastIndex(extName, "/"); s >= 0 { + // If it contains a slash, it's an Any type URL. + messageName := extName[s+1:] + mt := MessageType(messageName) + if mt == nil { + return p.errorf("unrecognized message %q in google.protobuf.Any", messageName) + } + tok = p.next() + if tok.err != nil { + return tok.err + } + // consume an optional colon + if tok.value == ":" { + tok = p.next() + if tok.err != nil { + return tok.err + } + } + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + v := reflect.New(mt.Elem()) + if pe := p.readStruct(v.Elem(), terminator); pe != nil { + return pe + } + b, err := Marshal(v.Interface().(Message)) + if err != nil { + return p.errorf("failed to marshal message of type %q: %v", messageName, err) + } + if fieldSet["type_url"] { + return p.errorf(anyRepeatedlyUnpacked, "type_url") + } + if fieldSet["value"] { + return p.errorf(anyRepeatedlyUnpacked, "value") + } + sv.FieldByName("TypeUrl").SetString(extName) + sv.FieldByName("Value").SetBytes(b) + fieldSet["type_url"] = true + fieldSet["value"] = true + continue + } + + var desc *ExtensionDesc + // This could be faster, but it's functional. + // TODO: Do something smarter than a linear scan. + for _, d := range RegisteredExtensions(reflect.New(st).Interface().(Message)) { + if d.Name == extName { + desc = d + break + } + } + if desc == nil { + return p.errorf("unrecognized extension %q", extName) + } + + props := &Properties{} + props.Parse(desc.Tag) + + typ := reflect.TypeOf(desc.ExtensionType) + if err := p.checkForColon(props, typ); err != nil { + return err + } + + rep := desc.repeated() + + // Read the extension structure, and set it in + // the value we're constructing. + var ext reflect.Value + if !rep { + ext = reflect.New(typ).Elem() + } else { + ext = reflect.New(typ.Elem()).Elem() + } + if err := p.readAny(ext, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + ep := sv.Addr().Interface().(Message) + if !rep { + SetExtension(ep, desc, ext.Interface()) + } else { + old, err := GetExtension(ep, desc) + var sl reflect.Value + if err == nil { + sl = reflect.ValueOf(old) // existing slice + } else { + sl = reflect.MakeSlice(typ, 0, 1) + } + sl = reflect.Append(sl, ext) + SetExtension(ep, desc, sl.Interface()) + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + continue + } + + // This is a normal, non-extension field. + name := tok.value + var dst reflect.Value + fi, props, ok := structFieldByName(sprops, name) + if ok { + dst = sv.Field(fi) + } else if oop, ok := sprops.OneofTypes[name]; ok { + // It is a oneof. + props = oop.Prop + nv := reflect.New(oop.Type.Elem()) + dst = nv.Elem().Field(0) + field := sv.Field(oop.Field) + if !field.IsNil() { + return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name) + } + field.Set(nv) + } + if !dst.IsValid() { + return p.errorf("unknown field name %q in %v", name, st) + } + + if dst.Kind() == reflect.Map { + // Consume any colon. + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Construct the map if it doesn't already exist. + if dst.IsNil() { + dst.Set(reflect.MakeMap(dst.Type())) + } + key := reflect.New(dst.Type().Key()).Elem() + val := reflect.New(dst.Type().Elem()).Elem() + + // The map entry should be this sequence of tokens: + // < key : KEY value : VALUE > + // However, implementations may omit key or value, and technically + // we should support them in any order. See b/28924776 for a time + // this went wrong. + + tok := p.next() + var terminator string + switch tok.value { + case "<": + terminator = ">" + case "{": + terminator = "}" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + for { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == terminator { + break + } + switch tok.value { + case "key": + if err := p.consumeToken(":"); err != nil { + return err + } + if err := p.readAny(key, props.MapKeyProp); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + case "value": + if err := p.checkForColon(props.MapValProp, dst.Type().Elem()); err != nil { + return err + } + if err := p.readAny(val, props.MapValProp); err != nil { + return err + } + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + default: + p.back() + return p.errorf(`expected "key", "value", or %q, found %q`, terminator, tok.value) + } + } + + dst.SetMapIndex(key, val) + continue + } + + // Check that it's not already set if it's not a repeated field. + if !props.Repeated && fieldSet[name] { + return p.errorf("non-repeated field %q was repeated", name) + } + + if err := p.checkForColon(props, dst.Type()); err != nil { + return err + } + + // Parse into the field. + fieldSet[name] = true + if err := p.readAny(dst, props); err != nil { + if _, ok := err.(*RequiredNotSetError); !ok { + return err + } + reqFieldErr = err + } + if props.Required { + reqCount-- + } + + if err := p.consumeOptionalSeparator(); err != nil { + return err + } + + } + + if reqCount > 0 { + return p.missingRequiredFieldError(sv) + } + return reqFieldErr +} + +// consumeExtName consumes extension name or expanded Any type URL and the +// following ']'. It returns the name or URL consumed. +func (p *textParser) consumeExtName() (string, error) { + tok := p.next() + if tok.err != nil { + return "", tok.err + } + + // If extension name or type url is quoted, it's a single token. + if len(tok.value) > 2 && isQuote(tok.value[0]) && tok.value[len(tok.value)-1] == tok.value[0] { + name, err := unquoteC(tok.value[1:len(tok.value)-1], rune(tok.value[0])) + if err != nil { + return "", err + } + return name, p.consumeToken("]") + } + + // Consume everything up to "]" + var parts []string + for tok.value != "]" { + parts = append(parts, tok.value) + tok = p.next() + if tok.err != nil { + return "", p.errorf("unrecognized type_url or extension name: %s", tok.err) + } + if p.done && tok.value != "]" { + return "", p.errorf("unclosed type_url or extension name") + } + } + return strings.Join(parts, ""), nil +} + +// consumeOptionalSeparator consumes an optional semicolon or comma. +// It is used in readStruct to provide backward compatibility. +func (p *textParser) consumeOptionalSeparator() error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value != ";" && tok.value != "," { + p.back() + } + return nil +} + +func (p *textParser) readAny(v reflect.Value, props *Properties) error { + tok := p.next() + if tok.err != nil { + return tok.err + } + if tok.value == "" { + return p.errorf("unexpected EOF") + } + if len(props.CustomType) > 0 { + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + tc := reflect.TypeOf(new(Marshaler)) + ok := t.Elem().Implements(tc.Elem()) + if ok { + fv := v + flen := fv.Len() + if flen == fv.Cap() { + nav := reflect.MakeSlice(v.Type(), flen, 2*flen+1) + reflect.Copy(nav, fv) + fv.Set(nav) + } + fv.SetLen(flen + 1) + + // Read one. + p.back() + return p.readAny(fv.Index(flen), props) + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + custom := reflect.New(props.ctype.Elem()).Interface().(Unmarshaler) + err := custom.Unmarshal([]byte(tok.unquoted)) + if err != nil { + return p.errorf("%v %v: %v", err, v.Type(), tok.value) + } + v.Set(reflect.ValueOf(custom)) + } else { + custom := reflect.New(reflect.TypeOf(v.Interface())).Interface().(Unmarshaler) + err := custom.Unmarshal([]byte(tok.unquoted)) + if err != nil { + return p.errorf("%v %v: %v", err, v.Type(), tok.value) + } + v.Set(reflect.Indirect(reflect.ValueOf(custom))) + } + return nil + } + if props.StdTime { + fv := v + p.back() + props.StdTime = false + tproto := ×tamp{} + err := p.readAny(reflect.ValueOf(tproto).Elem(), props) + props.StdTime = true + if err != nil { + return err + } + tim, err := timestampFromProto(tproto) + if err != nil { + return err + } + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + if t.Elem().Kind() == reflect.Ptr { + ts := fv.Interface().([]*time.Time) + ts = append(ts, &tim) + fv.Set(reflect.ValueOf(ts)) + return nil + } else { + ts := fv.Interface().([]time.Time) + ts = append(ts, tim) + fv.Set(reflect.ValueOf(ts)) + return nil + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + v.Set(reflect.ValueOf(&tim)) + } else { + v.Set(reflect.Indirect(reflect.ValueOf(&tim))) + } + return nil + } + if props.StdDuration { + fv := v + p.back() + props.StdDuration = false + dproto := &duration{} + err := p.readAny(reflect.ValueOf(dproto).Elem(), props) + props.StdDuration = true + if err != nil { + return err + } + dur, err := durationFromProto(dproto) + if err != nil { + return err + } + if props.Repeated { + t := reflect.TypeOf(v.Interface()) + if t.Kind() == reflect.Slice { + if t.Elem().Kind() == reflect.Ptr { + ds := fv.Interface().([]*time.Duration) + ds = append(ds, &dur) + fv.Set(reflect.ValueOf(ds)) + return nil + } else { + ds := fv.Interface().([]time.Duration) + ds = append(ds, dur) + fv.Set(reflect.ValueOf(ds)) + return nil + } + } + } + if reflect.TypeOf(v.Interface()).Kind() == reflect.Ptr { + v.Set(reflect.ValueOf(&dur)) + } else { + v.Set(reflect.Indirect(reflect.ValueOf(&dur))) + } + return nil + } + switch fv := v; fv.Kind() { + case reflect.Slice: + at := v.Type() + if at.Elem().Kind() == reflect.Uint8 { + // Special case for []byte + if tok.value[0] != '"' && tok.value[0] != '\'' { + // Deliberately written out here, as the error after + // this switch statement would write "invalid []byte: ...", + // which is not as user-friendly. + return p.errorf("invalid string: %v", tok.value) + } + bytes := []byte(tok.unquoted) + fv.Set(reflect.ValueOf(bytes)) + return nil + } + // Repeated field. + if tok.value == "[" { + // Repeated field with list notation, like [1,2,3]. + for { + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + err := p.readAny(fv.Index(fv.Len()-1), props) + if err != nil { + return err + } + ntok := p.next() + if ntok.err != nil { + return ntok.err + } + if ntok.value == "]" { + break + } + if ntok.value != "," { + return p.errorf("Expected ']' or ',' found %q", ntok.value) + } + } + return nil + } + // One value of the repeated field. + p.back() + fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) + return p.readAny(fv.Index(fv.Len()-1), props) + case reflect.Bool: + // true/1/t/True or false/f/0/False. + switch tok.value { + case "true", "1", "t", "True": + fv.SetBool(true) + return nil + case "false", "0", "f", "False": + fv.SetBool(false) + return nil + } + case reflect.Float32, reflect.Float64: + v := tok.value + // Ignore 'f' for compatibility with output generated by C++, but don't + // remove 'f' when the value is "-inf" or "inf". + if strings.HasSuffix(v, "f") && tok.value != "-inf" && tok.value != "inf" { + v = v[:len(v)-1] + } + if f, err := strconv.ParseFloat(v, fv.Type().Bits()); err == nil { + fv.SetFloat(f) + return nil + } + case reflect.Int8: + if x, err := strconv.ParseInt(tok.value, 0, 8); err == nil { + fv.SetInt(x) + return nil + } + case reflect.Int16: + if x, err := strconv.ParseInt(tok.value, 0, 16); err == nil { + fv.SetInt(x) + return nil + } + case reflect.Int32: + if x, err := strconv.ParseInt(tok.value, 0, 32); err == nil { + fv.SetInt(x) + return nil + } + + if len(props.Enum) == 0 { + break + } + m, ok := enumValueMaps[props.Enum] + if !ok { + break + } + x, ok := m[tok.value] + if !ok { + break + } + fv.SetInt(int64(x)) + return nil + case reflect.Int64: + if x, err := strconv.ParseInt(tok.value, 0, 64); err == nil { + fv.SetInt(x) + return nil + } + + case reflect.Ptr: + // A basic field (indirected through pointer), or a repeated message/group + p.back() + fv.Set(reflect.New(fv.Type().Elem())) + return p.readAny(fv.Elem(), props) + case reflect.String: + if tok.value[0] == '"' || tok.value[0] == '\'' { + fv.SetString(tok.unquoted) + return nil + } + case reflect.Struct: + var terminator string + switch tok.value { + case "{": + terminator = "}" + case "<": + terminator = ">" + default: + return p.errorf("expected '{' or '<', found %q", tok.value) + } + // TODO: Handle nested messages which implement encoding.TextUnmarshaler. + return p.readStruct(fv, terminator) + case reflect.Uint8: + if x, err := strconv.ParseUint(tok.value, 0, 8); err == nil { + fv.SetUint(x) + return nil + } + case reflect.Uint16: + if x, err := strconv.ParseUint(tok.value, 0, 16); err == nil { + fv.SetUint(x) + return nil + } + case reflect.Uint32: + if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { + fv.SetUint(uint64(x)) + return nil + } + case reflect.Uint64: + if x, err := strconv.ParseUint(tok.value, 0, 64); err == nil { + fv.SetUint(x) + return nil + } + } + return p.errorf("invalid %v: %v", v.Type(), tok.value) +} + +// UnmarshalText reads a protocol buffer in Text format. UnmarshalText resets pb +// before starting to unmarshal, so any existing data in pb is always removed. +// If a required field is not set and no other error occurs, +// UnmarshalText returns *RequiredNotSetError. +func UnmarshalText(s string, pb Message) error { + if um, ok := pb.(encoding.TextUnmarshaler); ok { + return um.UnmarshalText([]byte(s)) + } + pb.Reset() + v := reflect.ValueOf(pb) + return newTextParser(s).readStruct(v.Elem(), "") +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp.go new file mode 100644 index 0000000000..9324f6542b --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp.go @@ -0,0 +1,113 @@ +// Go support for Protocol Buffers - Google's data interchange format +// +// Copyright 2016 The Go Authors. All rights reserved. +// https://github.com/golang/protobuf +// +// 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. + +package proto + +// This file implements operations on google.protobuf.Timestamp. + +import ( + "errors" + "fmt" + "time" +) + +const ( + // Seconds field of the earliest valid Timestamp. + // This is time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + minValidSeconds = -62135596800 + // Seconds field just after the latest valid Timestamp. + // This is time.Date(10000, 1, 1, 0, 0, 0, 0, time.UTC).Unix(). + maxValidSeconds = 253402300800 +) + +// validateTimestamp determines whether a Timestamp is valid. +// A valid timestamp represents a time in the range +// [0001-01-01, 10000-01-01) and has a Nanos field +// in the range [0, 1e9). +// +// If the Timestamp is valid, validateTimestamp returns nil. +// Otherwise, it returns an error that describes +// the problem. +// +// Every valid Timestamp can be represented by a time.Time, but the converse is not true. +func validateTimestamp(ts *timestamp) error { + if ts == nil { + return errors.New("timestamp: nil Timestamp") + } + if ts.Seconds < minValidSeconds { + return fmt.Errorf("timestamp: %#v before 0001-01-01", ts) + } + if ts.Seconds >= maxValidSeconds { + return fmt.Errorf("timestamp: %#v after 10000-01-01", ts) + } + if ts.Nanos < 0 || ts.Nanos >= 1e9 { + return fmt.Errorf("timestamp: %#v: nanos not in range [0, 1e9)", ts) + } + return nil +} + +// TimestampFromProto converts a google.protobuf.Timestamp proto to a time.Time. +// It returns an error if the argument is invalid. +// +// Unlike most Go functions, if Timestamp returns an error, the first return value +// is not the zero time.Time. Instead, it is the value obtained from the +// time.Unix function when passed the contents of the Timestamp, in the UTC +// locale. This may or may not be a meaningful time; many invalid Timestamps +// do map to valid time.Times. +// +// A nil Timestamp returns an error. The first return value in that case is +// undefined. +func timestampFromProto(ts *timestamp) (time.Time, error) { + // Don't return the zero value on error, because corresponds to a valid + // timestamp. Instead return whatever time.Unix gives us. + var t time.Time + if ts == nil { + t = time.Unix(0, 0).UTC() // treat nil like the empty Timestamp + } else { + t = time.Unix(ts.Seconds, int64(ts.Nanos)).UTC() + } + return t, validateTimestamp(ts) +} + +// TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. +// It returns an error if the resulting Timestamp is invalid. +func timestampProto(t time.Time) (*timestamp, error) { + seconds := t.Unix() + nanos := int32(t.Sub(time.Unix(seconds, 0))) + ts := ×tamp{ + Seconds: seconds, + Nanos: nanos, + } + if err := validateTimestamp(ts); err != nil { + return nil, err + } + return ts, nil +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go new file mode 100644 index 0000000000..38439fa990 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go @@ -0,0 +1,49 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2016, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "reflect" + "time" +) + +var timeType = reflect.TypeOf((*time.Time)(nil)).Elem() + +type timestamp struct { + Seconds int64 `protobuf:"varint,1,opt,name=seconds,proto3" json:"seconds,omitempty"` + Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` +} + +func (m *timestamp) Reset() { *m = timestamp{} } +func (*timestamp) ProtoMessage() {} +func (*timestamp) String() string { return "timestamp" } + +func init() { + RegisterType((*timestamp)(nil), "gogo.protobuf.proto.timestamp") +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers.go new file mode 100644 index 0000000000..b175d1b642 --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers.go @@ -0,0 +1,1888 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +import ( + "io" + "reflect" +) + +func makeStdDoubleValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*float64) + v := &float64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdDoubleValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float64) + v := &float64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdDoubleValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float64) + v := &float64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float64) + v := &float64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdDoubleValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float64) + v := &float64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdDoubleValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdDoubleValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdDoubleValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdDoubleValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdFloatValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*float32) + v := &float32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdFloatValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*float32) + v := &float32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdFloatValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float32) + v := &float32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(float32) + v := &float32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdFloatValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*float32) + v := &float32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdFloatValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdFloatValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdFloatValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdFloatValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &float32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*int64) + v := &int64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int64) + v := &int64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int64) + v := &int64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int64) + v := &int64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int64) + v := &int64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*uint64) + v := &uint64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint64) + v := &uint64Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint64) + v := &uint64Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint64) + v := &uint64Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint64) + v := &uint64Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdUInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdUInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint64Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*int32) + v := &int32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*int32) + v := &int32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int32) + v := &int32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(int32) + v := &int32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*int32) + v := &int32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &int32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*uint32) + v := &uint32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*uint32) + v := &uint32Value{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdUInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint32) + v := &uint32Value{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(uint32) + v := &uint32Value{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*uint32) + v := &uint32Value{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdUInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdUInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdUInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdUInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &uint32Value{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBoolValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*bool) + v := &boolValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBoolValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*bool) + v := &boolValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBoolValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(bool) + v := &boolValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(bool) + v := &boolValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBoolValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*bool) + v := &boolValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBoolValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdBoolValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdBoolValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBoolValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &boolValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdStringValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*string) + v := &stringValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdStringValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*string) + v := &stringValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdStringValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(string) + v := &stringValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(string) + v := &stringValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdStringValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*string) + v := &stringValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdStringValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdStringValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdStringValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdStringValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &stringValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBytesValueMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + t := ptr.asPointerTo(u.typ).Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + t := ptr.asPointerTo(u.typ).Interface().(*[]byte) + v := &bytesValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBytesValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + if ptr.isNil() { + return 0 + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + return tagsize + SizeVarint(uint64(siz)) + siz + }, func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + if ptr.isNil() { + return b, nil + } + t := ptr.asPointerTo(reflect.PtrTo(u.typ)).Elem().Interface().(*[]byte) + v := &bytesValue{*t} + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(len(buf))) + b = append(b, buf...) + return b, nil + } +} + +func makeStdBytesValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(u.typ) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().([]byte) + v := &bytesValue{t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(u.typ) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().([]byte) + v := &bytesValue{t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBytesValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) { + return func(ptr pointer, tagsize int) int { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + n := 0 + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + n += siz + SizeVarint(uint64(siz)) + tagsize + } + return n + }, + func(b []byte, ptr pointer, wiretag uint64, deterministic bool) ([]byte, error) { + s := ptr.getSlice(reflect.PtrTo(u.typ)) + for i := 0; i < s.Len(); i++ { + elem := s.Index(i) + t := elem.Interface().(*[]byte) + v := &bytesValue{*t} + siz := Size(v) + buf, err := Marshal(v) + if err != nil { + return nil, err + } + b = appendVarint(b, wiretag) + b = appendVarint(b, uint64(siz)) + b = append(b, buf...) + } + + return b, nil + } +} + +func makeStdBytesValueUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(sub.typ).Elem() + s.Set(reflect.ValueOf(m.Value)) + return b[x:], nil + } +} + +func makeStdBytesValuePtrUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + s := f.asPointerTo(reflect.PtrTo(sub.typ)).Elem() + s.Set(reflect.ValueOf(&m.Value)) + return b[x:], nil + } +} + +func makeStdBytesValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(reflect.PtrTo(sub.typ)) + newSlice := reflect.Append(slice, reflect.ValueOf(&m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} + +func makeStdBytesValueSliceUnmarshaler(sub *unmarshalInfo, name string) unmarshaler { + return func(b []byte, f pointer, w int) ([]byte, error) { + if w != WireBytes { + return nil, errInternalBadWireType + } + x, n := decodeVarint(b) + if n == 0 { + return nil, io.ErrUnexpectedEOF + } + b = b[n:] + if x > uint64(len(b)) { + return nil, io.ErrUnexpectedEOF + } + m := &bytesValue{} + if err := Unmarshal(b[:x], m); err != nil { + return nil, err + } + slice := f.getSlice(sub.typ) + newSlice := reflect.Append(slice, reflect.ValueOf(m.Value)) + slice.Set(newSlice) + return b[x:], nil + } +} diff --git a/ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go b/ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go new file mode 100644 index 0000000000..c1cf7bf85e --- /dev/null +++ b/ecs-agent/vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go @@ -0,0 +1,113 @@ +// Protocol Buffers for Go with Gadgets +// +// Copyright (c) 2018, The GoGo Authors. All rights reserved. +// http://github.com/gogo/protobuf +// +// 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. +// +// 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. + +package proto + +type float64Value struct { + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *float64Value) Reset() { *m = float64Value{} } +func (*float64Value) ProtoMessage() {} +func (*float64Value) String() string { return "float64" } + +type float32Value struct { + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *float32Value) Reset() { *m = float32Value{} } +func (*float32Value) ProtoMessage() {} +func (*float32Value) String() string { return "float32" } + +type int64Value struct { + Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *int64Value) Reset() { *m = int64Value{} } +func (*int64Value) ProtoMessage() {} +func (*int64Value) String() string { return "int64" } + +type uint64Value struct { + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *uint64Value) Reset() { *m = uint64Value{} } +func (*uint64Value) ProtoMessage() {} +func (*uint64Value) String() string { return "uint64" } + +type int32Value struct { + Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *int32Value) Reset() { *m = int32Value{} } +func (*int32Value) ProtoMessage() {} +func (*int32Value) String() string { return "int32" } + +type uint32Value struct { + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *uint32Value) Reset() { *m = uint32Value{} } +func (*uint32Value) ProtoMessage() {} +func (*uint32Value) String() string { return "uint32" } + +type boolValue struct { + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *boolValue) Reset() { *m = boolValue{} } +func (*boolValue) ProtoMessage() {} +func (*boolValue) String() string { return "bool" } + +type stringValue struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *stringValue) Reset() { *m = stringValue{} } +func (*stringValue) ProtoMessage() {} +func (*stringValue) String() string { return "string" } + +type bytesValue struct { + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *bytesValue) Reset() { *m = bytesValue{} } +func (*bytesValue) ProtoMessage() {} +func (*bytesValue) String() string { return "[]byte" } + +func init() { + RegisterType((*float64Value)(nil), "gogo.protobuf.proto.DoubleValue") + RegisterType((*float32Value)(nil), "gogo.protobuf.proto.FloatValue") + RegisterType((*int64Value)(nil), "gogo.protobuf.proto.Int64Value") + RegisterType((*uint64Value)(nil), "gogo.protobuf.proto.UInt64Value") + RegisterType((*int32Value)(nil), "gogo.protobuf.proto.Int32Value") + RegisterType((*uint32Value)(nil), "gogo.protobuf.proto.UInt32Value") + RegisterType((*boolValue)(nil), "gogo.protobuf.proto.BoolValue") + RegisterType((*stringValue)(nil), "gogo.protobuf.proto.StringValue") + RegisterType((*bytesValue)(nil), "gogo.protobuf.proto.BytesValue") +} diff --git a/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/decode.go b/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/decode.go new file mode 100644 index 0000000000..6c16c255ff --- /dev/null +++ b/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/decode.go @@ -0,0 +1,530 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package jsonpb + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "math" + "reflect" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/encoding/protojson" + protoV2 "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" +) + +const wrapJSONUnmarshalV2 = false + +// UnmarshalNext unmarshals the next JSON object from d into m. +func UnmarshalNext(d *json.Decoder, m proto.Message) error { + return new(Unmarshaler).UnmarshalNext(d, m) +} + +// Unmarshal unmarshals a JSON object from r into m. +func Unmarshal(r io.Reader, m proto.Message) error { + return new(Unmarshaler).Unmarshal(r, m) +} + +// UnmarshalString unmarshals a JSON object from s into m. +func UnmarshalString(s string, m proto.Message) error { + return new(Unmarshaler).Unmarshal(strings.NewReader(s), m) +} + +// Unmarshaler is a configurable object for converting from a JSON +// representation to a protocol buffer object. +type Unmarshaler struct { + // AllowUnknownFields specifies whether to allow messages to contain + // unknown JSON fields, as opposed to failing to unmarshal. + AllowUnknownFields bool + + // AnyResolver is used to resolve the google.protobuf.Any well-known type. + // If unset, the global registry is used by default. + AnyResolver AnyResolver +} + +// JSONPBUnmarshaler is implemented by protobuf messages that customize the way +// they are unmarshaled from JSON. Messages that implement this should also +// implement JSONPBMarshaler so that the custom format can be produced. +// +// The JSON unmarshaling must follow the JSON to proto specification: +// https://developers.google.com/protocol-buffers/docs/proto3#json +// +// Deprecated: Custom types should implement protobuf reflection instead. +type JSONPBUnmarshaler interface { + UnmarshalJSONPB(*Unmarshaler, []byte) error +} + +// Unmarshal unmarshals a JSON object from r into m. +func (u *Unmarshaler) Unmarshal(r io.Reader, m proto.Message) error { + return u.UnmarshalNext(json.NewDecoder(r), m) +} + +// UnmarshalNext unmarshals the next JSON object from d into m. +func (u *Unmarshaler) UnmarshalNext(d *json.Decoder, m proto.Message) error { + if m == nil { + return errors.New("invalid nil message") + } + + // Parse the next JSON object from the stream. + raw := json.RawMessage{} + if err := d.Decode(&raw); err != nil { + return err + } + + // Check for custom unmarshalers first since they may not properly + // implement protobuf reflection that the logic below relies on. + if jsu, ok := m.(JSONPBUnmarshaler); ok { + return jsu.UnmarshalJSONPB(u, raw) + } + + mr := proto.MessageReflect(m) + + // NOTE: For historical reasons, a top-level null is treated as a noop. + // This is incorrect, but kept for compatibility. + if string(raw) == "null" && mr.Descriptor().FullName() != "google.protobuf.Value" { + return nil + } + + if wrapJSONUnmarshalV2 { + // NOTE: If input message is non-empty, we need to preserve merge semantics + // of the old jsonpb implementation. These semantics are not supported by + // the protobuf JSON specification. + isEmpty := true + mr.Range(func(protoreflect.FieldDescriptor, protoreflect.Value) bool { + isEmpty = false // at least one iteration implies non-empty + return false + }) + if !isEmpty { + // Perform unmarshaling into a newly allocated, empty message. + mr = mr.New() + + // Use a defer to copy all unmarshaled fields into the original message. + dst := proto.MessageReflect(m) + defer mr.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + dst.Set(fd, v) + return true + }) + } + + // Unmarshal using the v2 JSON unmarshaler. + opts := protojson.UnmarshalOptions{ + DiscardUnknown: u.AllowUnknownFields, + } + if u.AnyResolver != nil { + opts.Resolver = anyResolver{u.AnyResolver} + } + return opts.Unmarshal(raw, mr.Interface()) + } else { + if err := u.unmarshalMessage(mr, raw); err != nil { + return err + } + return protoV2.CheckInitialized(mr.Interface()) + } +} + +func (u *Unmarshaler) unmarshalMessage(m protoreflect.Message, in []byte) error { + md := m.Descriptor() + fds := md.Fields() + + if jsu, ok := proto.MessageV1(m.Interface()).(JSONPBUnmarshaler); ok { + return jsu.UnmarshalJSONPB(u, in) + } + + if string(in) == "null" && md.FullName() != "google.protobuf.Value" { + return nil + } + + switch wellKnownType(md.FullName()) { + case "Any": + var jsonObject map[string]json.RawMessage + if err := json.Unmarshal(in, &jsonObject); err != nil { + return err + } + + rawTypeURL, ok := jsonObject["@type"] + if !ok { + return errors.New("Any JSON doesn't have '@type'") + } + typeURL, err := unquoteString(string(rawTypeURL)) + if err != nil { + return fmt.Errorf("can't unmarshal Any's '@type': %q", rawTypeURL) + } + m.Set(fds.ByNumber(1), protoreflect.ValueOfString(typeURL)) + + var m2 protoreflect.Message + if u.AnyResolver != nil { + mi, err := u.AnyResolver.Resolve(typeURL) + if err != nil { + return err + } + m2 = proto.MessageReflect(mi) + } else { + mt, err := protoregistry.GlobalTypes.FindMessageByURL(typeURL) + if err != nil { + if err == protoregistry.NotFound { + return fmt.Errorf("could not resolve Any message type: %v", typeURL) + } + return err + } + m2 = mt.New() + } + + if wellKnownType(m2.Descriptor().FullName()) != "" { + rawValue, ok := jsonObject["value"] + if !ok { + return errors.New("Any JSON doesn't have 'value'") + } + if err := u.unmarshalMessage(m2, rawValue); err != nil { + return fmt.Errorf("can't unmarshal Any nested proto %v: %v", typeURL, err) + } + } else { + delete(jsonObject, "@type") + rawJSON, err := json.Marshal(jsonObject) + if err != nil { + return fmt.Errorf("can't generate JSON for Any's nested proto to be unmarshaled: %v", err) + } + if err = u.unmarshalMessage(m2, rawJSON); err != nil { + return fmt.Errorf("can't unmarshal Any nested proto %v: %v", typeURL, err) + } + } + + rawWire, err := protoV2.Marshal(m2.Interface()) + if err != nil { + return fmt.Errorf("can't marshal proto %v into Any.Value: %v", typeURL, err) + } + m.Set(fds.ByNumber(2), protoreflect.ValueOfBytes(rawWire)) + return nil + case "BoolValue", "BytesValue", "StringValue", + "Int32Value", "UInt32Value", "FloatValue", + "Int64Value", "UInt64Value", "DoubleValue": + fd := fds.ByNumber(1) + v, err := u.unmarshalValue(m.NewField(fd), in, fd) + if err != nil { + return err + } + m.Set(fd, v) + return nil + case "Duration": + v, err := unquoteString(string(in)) + if err != nil { + return err + } + d, err := time.ParseDuration(v) + if err != nil { + return fmt.Errorf("bad Duration: %v", err) + } + + sec := d.Nanoseconds() / 1e9 + nsec := d.Nanoseconds() % 1e9 + m.Set(fds.ByNumber(1), protoreflect.ValueOfInt64(int64(sec))) + m.Set(fds.ByNumber(2), protoreflect.ValueOfInt32(int32(nsec))) + return nil + case "Timestamp": + v, err := unquoteString(string(in)) + if err != nil { + return err + } + t, err := time.Parse(time.RFC3339Nano, v) + if err != nil { + return fmt.Errorf("bad Timestamp: %v", err) + } + + sec := t.Unix() + nsec := t.Nanosecond() + m.Set(fds.ByNumber(1), protoreflect.ValueOfInt64(int64(sec))) + m.Set(fds.ByNumber(2), protoreflect.ValueOfInt32(int32(nsec))) + return nil + case "Value": + switch { + case string(in) == "null": + m.Set(fds.ByNumber(1), protoreflect.ValueOfEnum(0)) + case string(in) == "true": + m.Set(fds.ByNumber(4), protoreflect.ValueOfBool(true)) + case string(in) == "false": + m.Set(fds.ByNumber(4), protoreflect.ValueOfBool(false)) + case hasPrefixAndSuffix('"', in, '"'): + s, err := unquoteString(string(in)) + if err != nil { + return fmt.Errorf("unrecognized type for Value %q", in) + } + m.Set(fds.ByNumber(3), protoreflect.ValueOfString(s)) + case hasPrefixAndSuffix('[', in, ']'): + v := m.Mutable(fds.ByNumber(6)) + return u.unmarshalMessage(v.Message(), in) + case hasPrefixAndSuffix('{', in, '}'): + v := m.Mutable(fds.ByNumber(5)) + return u.unmarshalMessage(v.Message(), in) + default: + f, err := strconv.ParseFloat(string(in), 0) + if err != nil { + return fmt.Errorf("unrecognized type for Value %q", in) + } + m.Set(fds.ByNumber(2), protoreflect.ValueOfFloat64(f)) + } + return nil + case "ListValue": + var jsonArray []json.RawMessage + if err := json.Unmarshal(in, &jsonArray); err != nil { + return fmt.Errorf("bad ListValue: %v", err) + } + + lv := m.Mutable(fds.ByNumber(1)).List() + for _, raw := range jsonArray { + ve := lv.NewElement() + if err := u.unmarshalMessage(ve.Message(), raw); err != nil { + return err + } + lv.Append(ve) + } + return nil + case "Struct": + var jsonObject map[string]json.RawMessage + if err := json.Unmarshal(in, &jsonObject); err != nil { + return fmt.Errorf("bad StructValue: %v", err) + } + + mv := m.Mutable(fds.ByNumber(1)).Map() + for key, raw := range jsonObject { + kv := protoreflect.ValueOf(key).MapKey() + vv := mv.NewValue() + if err := u.unmarshalMessage(vv.Message(), raw); err != nil { + return fmt.Errorf("bad value in StructValue for key %q: %v", key, err) + } + mv.Set(kv, vv) + } + return nil + } + + var jsonObject map[string]json.RawMessage + if err := json.Unmarshal(in, &jsonObject); err != nil { + return err + } + + // Handle known fields. + for i := 0; i < fds.Len(); i++ { + fd := fds.Get(i) + if fd.IsWeak() && fd.Message().IsPlaceholder() { + continue // weak reference is not linked in + } + + // Search for any raw JSON value associated with this field. + var raw json.RawMessage + name := string(fd.Name()) + if fd.Kind() == protoreflect.GroupKind { + name = string(fd.Message().Name()) + } + if v, ok := jsonObject[name]; ok { + delete(jsonObject, name) + raw = v + } + name = string(fd.JSONName()) + if v, ok := jsonObject[name]; ok { + delete(jsonObject, name) + raw = v + } + + field := m.NewField(fd) + // Unmarshal the field value. + if raw == nil || (string(raw) == "null" && !isSingularWellKnownValue(fd) && !isSingularJSONPBUnmarshaler(field, fd)) { + continue + } + v, err := u.unmarshalValue(field, raw, fd) + if err != nil { + return err + } + m.Set(fd, v) + } + + // Handle extension fields. + for name, raw := range jsonObject { + if !strings.HasPrefix(name, "[") || !strings.HasSuffix(name, "]") { + continue + } + + // Resolve the extension field by name. + xname := protoreflect.FullName(name[len("[") : len(name)-len("]")]) + xt, _ := protoregistry.GlobalTypes.FindExtensionByName(xname) + if xt == nil && isMessageSet(md) { + xt, _ = protoregistry.GlobalTypes.FindExtensionByName(xname.Append("message_set_extension")) + } + if xt == nil { + continue + } + delete(jsonObject, name) + fd := xt.TypeDescriptor() + if fd.ContainingMessage().FullName() != m.Descriptor().FullName() { + return fmt.Errorf("extension field %q does not extend message %q", xname, m.Descriptor().FullName()) + } + + field := m.NewField(fd) + // Unmarshal the field value. + if raw == nil || (string(raw) == "null" && !isSingularWellKnownValue(fd) && !isSingularJSONPBUnmarshaler(field, fd)) { + continue + } + v, err := u.unmarshalValue(field, raw, fd) + if err != nil { + return err + } + m.Set(fd, v) + } + + if !u.AllowUnknownFields && len(jsonObject) > 0 { + for name := range jsonObject { + return fmt.Errorf("unknown field %q in %v", name, md.FullName()) + } + } + return nil +} + +func isSingularWellKnownValue(fd protoreflect.FieldDescriptor) bool { + if fd.Cardinality() == protoreflect.Repeated { + return false + } + if md := fd.Message(); md != nil { + return md.FullName() == "google.protobuf.Value" + } + if ed := fd.Enum(); ed != nil { + return ed.FullName() == "google.protobuf.NullValue" + } + return false +} + +func isSingularJSONPBUnmarshaler(v protoreflect.Value, fd protoreflect.FieldDescriptor) bool { + if fd.Message() != nil && fd.Cardinality() != protoreflect.Repeated { + _, ok := proto.MessageV1(v.Interface()).(JSONPBUnmarshaler) + return ok + } + return false +} + +func (u *Unmarshaler) unmarshalValue(v protoreflect.Value, in []byte, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { + switch { + case fd.IsList(): + var jsonArray []json.RawMessage + if err := json.Unmarshal(in, &jsonArray); err != nil { + return v, err + } + lv := v.List() + for _, raw := range jsonArray { + ve, err := u.unmarshalSingularValue(lv.NewElement(), raw, fd) + if err != nil { + return v, err + } + lv.Append(ve) + } + return v, nil + case fd.IsMap(): + var jsonObject map[string]json.RawMessage + if err := json.Unmarshal(in, &jsonObject); err != nil { + return v, err + } + kfd := fd.MapKey() + vfd := fd.MapValue() + mv := v.Map() + for key, raw := range jsonObject { + var kv protoreflect.MapKey + if kfd.Kind() == protoreflect.StringKind { + kv = protoreflect.ValueOf(key).MapKey() + } else { + v, err := u.unmarshalSingularValue(kfd.Default(), []byte(key), kfd) + if err != nil { + return v, err + } + kv = v.MapKey() + } + + vv, err := u.unmarshalSingularValue(mv.NewValue(), raw, vfd) + if err != nil { + return v, err + } + mv.Set(kv, vv) + } + return v, nil + default: + return u.unmarshalSingularValue(v, in, fd) + } +} + +var nonFinite = map[string]float64{ + `"NaN"`: math.NaN(), + `"Infinity"`: math.Inf(+1), + `"-Infinity"`: math.Inf(-1), +} + +func (u *Unmarshaler) unmarshalSingularValue(v protoreflect.Value, in []byte, fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { + switch fd.Kind() { + case protoreflect.BoolKind: + return unmarshalValue(in, new(bool)) + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + return unmarshalValue(trimQuote(in), new(int32)) + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + return unmarshalValue(trimQuote(in), new(int64)) + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + return unmarshalValue(trimQuote(in), new(uint32)) + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + return unmarshalValue(trimQuote(in), new(uint64)) + case protoreflect.FloatKind: + if f, ok := nonFinite[string(in)]; ok { + return protoreflect.ValueOfFloat32(float32(f)), nil + } + return unmarshalValue(trimQuote(in), new(float32)) + case protoreflect.DoubleKind: + if f, ok := nonFinite[string(in)]; ok { + return protoreflect.ValueOfFloat64(float64(f)), nil + } + return unmarshalValue(trimQuote(in), new(float64)) + case protoreflect.StringKind: + return unmarshalValue(in, new(string)) + case protoreflect.BytesKind: + return unmarshalValue(in, new([]byte)) + case protoreflect.EnumKind: + if hasPrefixAndSuffix('"', in, '"') { + vd := fd.Enum().Values().ByName(protoreflect.Name(trimQuote(in))) + if vd == nil { + return v, fmt.Errorf("unknown value %q for enum %s", in, fd.Enum().FullName()) + } + return protoreflect.ValueOfEnum(vd.Number()), nil + } + return unmarshalValue(in, new(protoreflect.EnumNumber)) + case protoreflect.MessageKind, protoreflect.GroupKind: + err := u.unmarshalMessage(v.Message(), in) + return v, err + default: + panic(fmt.Sprintf("invalid kind %v", fd.Kind())) + } +} + +func unmarshalValue(in []byte, v interface{}) (protoreflect.Value, error) { + err := json.Unmarshal(in, v) + return protoreflect.ValueOf(reflect.ValueOf(v).Elem().Interface()), err +} + +func unquoteString(in string) (out string, err error) { + err = json.Unmarshal([]byte(in), &out) + return out, err +} + +func hasPrefixAndSuffix(prefix byte, in []byte, suffix byte) bool { + if len(in) >= 2 && in[0] == prefix && in[len(in)-1] == suffix { + return true + } + return false +} + +// trimQuote is like unquoteString but simply strips surrounding quotes. +// This is incorrect, but is behavior done by the legacy implementation. +func trimQuote(in []byte) []byte { + if len(in) >= 2 && in[0] == '"' && in[len(in)-1] == '"' { + in = in[1 : len(in)-1] + } + return in +} diff --git a/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/encode.go b/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/encode.go new file mode 100644 index 0000000000..685c80a62b --- /dev/null +++ b/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/encode.go @@ -0,0 +1,559 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package jsonpb + +import ( + "encoding/json" + "errors" + "fmt" + "io" + "math" + "reflect" + "sort" + "strconv" + "strings" + "time" + + "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/encoding/protojson" + protoV2 "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" +) + +const wrapJSONMarshalV2 = false + +// Marshaler is a configurable object for marshaling protocol buffer messages +// to the specified JSON representation. +type Marshaler struct { + // OrigName specifies whether to use the original protobuf name for fields. + OrigName bool + + // EnumsAsInts specifies whether to render enum values as integers, + // as opposed to string values. + EnumsAsInts bool + + // EmitDefaults specifies whether to render fields with zero values. + EmitDefaults bool + + // Indent controls whether the output is compact or not. + // If empty, the output is compact JSON. Otherwise, every JSON object + // entry and JSON array value will be on its own line. + // Each line will be preceded by repeated copies of Indent, where the + // number of copies is the current indentation depth. + Indent string + + // AnyResolver is used to resolve the google.protobuf.Any well-known type. + // If unset, the global registry is used by default. + AnyResolver AnyResolver +} + +// JSONPBMarshaler is implemented by protobuf messages that customize the +// way they are marshaled to JSON. Messages that implement this should also +// implement JSONPBUnmarshaler so that the custom format can be parsed. +// +// The JSON marshaling must follow the proto to JSON specification: +// https://developers.google.com/protocol-buffers/docs/proto3#json +// +// Deprecated: Custom types should implement protobuf reflection instead. +type JSONPBMarshaler interface { + MarshalJSONPB(*Marshaler) ([]byte, error) +} + +// Marshal serializes a protobuf message as JSON into w. +func (jm *Marshaler) Marshal(w io.Writer, m proto.Message) error { + b, err := jm.marshal(m) + if len(b) > 0 { + if _, err := w.Write(b); err != nil { + return err + } + } + return err +} + +// MarshalToString serializes a protobuf message as JSON in string form. +func (jm *Marshaler) MarshalToString(m proto.Message) (string, error) { + b, err := jm.marshal(m) + if err != nil { + return "", err + } + return string(b), nil +} + +func (jm *Marshaler) marshal(m proto.Message) ([]byte, error) { + v := reflect.ValueOf(m) + if m == nil || (v.Kind() == reflect.Ptr && v.IsNil()) { + return nil, errors.New("Marshal called with nil") + } + + // Check for custom marshalers first since they may not properly + // implement protobuf reflection that the logic below relies on. + if jsm, ok := m.(JSONPBMarshaler); ok { + return jsm.MarshalJSONPB(jm) + } + + if wrapJSONMarshalV2 { + opts := protojson.MarshalOptions{ + UseProtoNames: jm.OrigName, + UseEnumNumbers: jm.EnumsAsInts, + EmitUnpopulated: jm.EmitDefaults, + Indent: jm.Indent, + } + if jm.AnyResolver != nil { + opts.Resolver = anyResolver{jm.AnyResolver} + } + return opts.Marshal(proto.MessageReflect(m).Interface()) + } else { + // Check for unpopulated required fields first. + m2 := proto.MessageReflect(m) + if err := protoV2.CheckInitialized(m2.Interface()); err != nil { + return nil, err + } + + w := jsonWriter{Marshaler: jm} + err := w.marshalMessage(m2, "", "") + return w.buf, err + } +} + +type jsonWriter struct { + *Marshaler + buf []byte +} + +func (w *jsonWriter) write(s string) { + w.buf = append(w.buf, s...) +} + +func (w *jsonWriter) marshalMessage(m protoreflect.Message, indent, typeURL string) error { + if jsm, ok := proto.MessageV1(m.Interface()).(JSONPBMarshaler); ok { + b, err := jsm.MarshalJSONPB(w.Marshaler) + if err != nil { + return err + } + if typeURL != "" { + // we are marshaling this object to an Any type + var js map[string]*json.RawMessage + if err = json.Unmarshal(b, &js); err != nil { + return fmt.Errorf("type %T produced invalid JSON: %v", m.Interface(), err) + } + turl, err := json.Marshal(typeURL) + if err != nil { + return fmt.Errorf("failed to marshal type URL %q to JSON: %v", typeURL, err) + } + js["@type"] = (*json.RawMessage)(&turl) + if b, err = json.Marshal(js); err != nil { + return err + } + } + w.write(string(b)) + return nil + } + + md := m.Descriptor() + fds := md.Fields() + + // Handle well-known types. + const secondInNanos = int64(time.Second / time.Nanosecond) + switch wellKnownType(md.FullName()) { + case "Any": + return w.marshalAny(m, indent) + case "BoolValue", "BytesValue", "StringValue", + "Int32Value", "UInt32Value", "FloatValue", + "Int64Value", "UInt64Value", "DoubleValue": + fd := fds.ByNumber(1) + return w.marshalValue(fd, m.Get(fd), indent) + case "Duration": + const maxSecondsInDuration = 315576000000 + // "Generated output always contains 0, 3, 6, or 9 fractional digits, + // depending on required precision." + s := m.Get(fds.ByNumber(1)).Int() + ns := m.Get(fds.ByNumber(2)).Int() + if s < -maxSecondsInDuration || s > maxSecondsInDuration { + return fmt.Errorf("seconds out of range %v", s) + } + if ns <= -secondInNanos || ns >= secondInNanos { + return fmt.Errorf("ns out of range (%v, %v)", -secondInNanos, secondInNanos) + } + if (s > 0 && ns < 0) || (s < 0 && ns > 0) { + return errors.New("signs of seconds and nanos do not match") + } + var sign string + if s < 0 || ns < 0 { + sign, s, ns = "-", -1*s, -1*ns + } + x := fmt.Sprintf("%s%d.%09d", sign, s, ns) + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, ".000") + w.write(fmt.Sprintf(`"%vs"`, x)) + return nil + case "Timestamp": + // "RFC 3339, where generated output will always be Z-normalized + // and uses 0, 3, 6 or 9 fractional digits." + s := m.Get(fds.ByNumber(1)).Int() + ns := m.Get(fds.ByNumber(2)).Int() + if ns < 0 || ns >= secondInNanos { + return fmt.Errorf("ns out of range [0, %v)", secondInNanos) + } + t := time.Unix(s, ns).UTC() + // time.RFC3339Nano isn't exactly right (we need to get 3/6/9 fractional digits). + x := t.Format("2006-01-02T15:04:05.000000000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, ".000") + w.write(fmt.Sprintf(`"%vZ"`, x)) + return nil + case "Value": + // JSON value; which is a null, number, string, bool, object, or array. + od := md.Oneofs().Get(0) + fd := m.WhichOneof(od) + if fd == nil { + return errors.New("nil Value") + } + return w.marshalValue(fd, m.Get(fd), indent) + case "Struct", "ListValue": + // JSON object or array. + fd := fds.ByNumber(1) + return w.marshalValue(fd, m.Get(fd), indent) + } + + w.write("{") + if w.Indent != "" { + w.write("\n") + } + + firstField := true + if typeURL != "" { + if err := w.marshalTypeURL(indent, typeURL); err != nil { + return err + } + firstField = false + } + + for i := 0; i < fds.Len(); { + fd := fds.Get(i) + if od := fd.ContainingOneof(); od != nil { + fd = m.WhichOneof(od) + i += od.Fields().Len() + if fd == nil { + continue + } + } else { + i++ + } + + v := m.Get(fd) + + if !m.Has(fd) { + if !w.EmitDefaults || fd.ContainingOneof() != nil { + continue + } + if fd.Cardinality() != protoreflect.Repeated && (fd.Message() != nil || fd.Syntax() == protoreflect.Proto2) { + v = protoreflect.Value{} // use "null" for singular messages or proto2 scalars + } + } + + if !firstField { + w.writeComma() + } + if err := w.marshalField(fd, v, indent); err != nil { + return err + } + firstField = false + } + + // Handle proto2 extensions. + if md.ExtensionRanges().Len() > 0 { + // Collect a sorted list of all extension descriptor and values. + type ext struct { + desc protoreflect.FieldDescriptor + val protoreflect.Value + } + var exts []ext + m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + if fd.IsExtension() { + exts = append(exts, ext{fd, v}) + } + return true + }) + sort.Slice(exts, func(i, j int) bool { + return exts[i].desc.Number() < exts[j].desc.Number() + }) + + for _, ext := range exts { + if !firstField { + w.writeComma() + } + if err := w.marshalField(ext.desc, ext.val, indent); err != nil { + return err + } + firstField = false + } + } + + if w.Indent != "" { + w.write("\n") + w.write(indent) + } + w.write("}") + return nil +} + +func (w *jsonWriter) writeComma() { + if w.Indent != "" { + w.write(",\n") + } else { + w.write(",") + } +} + +func (w *jsonWriter) marshalAny(m protoreflect.Message, indent string) error { + // "If the Any contains a value that has a special JSON mapping, + // it will be converted as follows: {"@type": xxx, "value": yyy}. + // Otherwise, the value will be converted into a JSON object, + // and the "@type" field will be inserted to indicate the actual data type." + md := m.Descriptor() + typeURL := m.Get(md.Fields().ByNumber(1)).String() + rawVal := m.Get(md.Fields().ByNumber(2)).Bytes() + + var m2 protoreflect.Message + if w.AnyResolver != nil { + mi, err := w.AnyResolver.Resolve(typeURL) + if err != nil { + return err + } + m2 = proto.MessageReflect(mi) + } else { + mt, err := protoregistry.GlobalTypes.FindMessageByURL(typeURL) + if err != nil { + return err + } + m2 = mt.New() + } + + if err := protoV2.Unmarshal(rawVal, m2.Interface()); err != nil { + return err + } + + if wellKnownType(m2.Descriptor().FullName()) == "" { + return w.marshalMessage(m2, indent, typeURL) + } + + w.write("{") + if w.Indent != "" { + w.write("\n") + } + if err := w.marshalTypeURL(indent, typeURL); err != nil { + return err + } + w.writeComma() + if w.Indent != "" { + w.write(indent) + w.write(w.Indent) + w.write(`"value": `) + } else { + w.write(`"value":`) + } + if err := w.marshalMessage(m2, indent+w.Indent, ""); err != nil { + return err + } + if w.Indent != "" { + w.write("\n") + w.write(indent) + } + w.write("}") + return nil +} + +func (w *jsonWriter) marshalTypeURL(indent, typeURL string) error { + if w.Indent != "" { + w.write(indent) + w.write(w.Indent) + } + w.write(`"@type":`) + if w.Indent != "" { + w.write(" ") + } + b, err := json.Marshal(typeURL) + if err != nil { + return err + } + w.write(string(b)) + return nil +} + +// marshalField writes field description and value to the Writer. +func (w *jsonWriter) marshalField(fd protoreflect.FieldDescriptor, v protoreflect.Value, indent string) error { + if w.Indent != "" { + w.write(indent) + w.write(w.Indent) + } + w.write(`"`) + switch { + case fd.IsExtension(): + // For message set, use the fname of the message as the extension name. + name := string(fd.FullName()) + if isMessageSet(fd.ContainingMessage()) { + name = strings.TrimSuffix(name, ".message_set_extension") + } + + w.write("[" + name + "]") + case w.OrigName: + name := string(fd.Name()) + if fd.Kind() == protoreflect.GroupKind { + name = string(fd.Message().Name()) + } + w.write(name) + default: + w.write(string(fd.JSONName())) + } + w.write(`":`) + if w.Indent != "" { + w.write(" ") + } + return w.marshalValue(fd, v, indent) +} + +func (w *jsonWriter) marshalValue(fd protoreflect.FieldDescriptor, v protoreflect.Value, indent string) error { + switch { + case fd.IsList(): + w.write("[") + comma := "" + lv := v.List() + for i := 0; i < lv.Len(); i++ { + w.write(comma) + if w.Indent != "" { + w.write("\n") + w.write(indent) + w.write(w.Indent) + w.write(w.Indent) + } + if err := w.marshalSingularValue(fd, lv.Get(i), indent+w.Indent); err != nil { + return err + } + comma = "," + } + if w.Indent != "" { + w.write("\n") + w.write(indent) + w.write(w.Indent) + } + w.write("]") + return nil + case fd.IsMap(): + kfd := fd.MapKey() + vfd := fd.MapValue() + mv := v.Map() + + // Collect a sorted list of all map keys and values. + type entry struct{ key, val protoreflect.Value } + var entries []entry + mv.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { + entries = append(entries, entry{k.Value(), v}) + return true + }) + sort.Slice(entries, func(i, j int) bool { + switch kfd.Kind() { + case protoreflect.BoolKind: + return !entries[i].key.Bool() && entries[j].key.Bool() + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + return entries[i].key.Int() < entries[j].key.Int() + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + return entries[i].key.Uint() < entries[j].key.Uint() + case protoreflect.StringKind: + return entries[i].key.String() < entries[j].key.String() + default: + panic("invalid kind") + } + }) + + w.write(`{`) + comma := "" + for _, entry := range entries { + w.write(comma) + if w.Indent != "" { + w.write("\n") + w.write(indent) + w.write(w.Indent) + w.write(w.Indent) + } + + s := fmt.Sprint(entry.key.Interface()) + b, err := json.Marshal(s) + if err != nil { + return err + } + w.write(string(b)) + + w.write(`:`) + if w.Indent != "" { + w.write(` `) + } + + if err := w.marshalSingularValue(vfd, entry.val, indent+w.Indent); err != nil { + return err + } + comma = "," + } + if w.Indent != "" { + w.write("\n") + w.write(indent) + w.write(w.Indent) + } + w.write(`}`) + return nil + default: + return w.marshalSingularValue(fd, v, indent) + } +} + +func (w *jsonWriter) marshalSingularValue(fd protoreflect.FieldDescriptor, v protoreflect.Value, indent string) error { + switch { + case !v.IsValid(): + w.write("null") + return nil + case fd.Message() != nil: + return w.marshalMessage(v.Message(), indent+w.Indent, "") + case fd.Enum() != nil: + if fd.Enum().FullName() == "google.protobuf.NullValue" { + w.write("null") + return nil + } + + vd := fd.Enum().Values().ByNumber(v.Enum()) + if vd == nil || w.EnumsAsInts { + w.write(strconv.Itoa(int(v.Enum()))) + } else { + w.write(`"` + string(vd.Name()) + `"`) + } + return nil + default: + switch v.Interface().(type) { + case float32, float64: + switch { + case math.IsInf(v.Float(), +1): + w.write(`"Infinity"`) + return nil + case math.IsInf(v.Float(), -1): + w.write(`"-Infinity"`) + return nil + case math.IsNaN(v.Float()): + w.write(`"NaN"`) + return nil + } + case int64, uint64: + w.write(fmt.Sprintf(`"%d"`, v.Interface())) + return nil + } + + b, err := json.Marshal(v.Interface()) + if err != nil { + return err + } + w.write(string(b)) + return nil + } +} diff --git a/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/json.go b/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/json.go new file mode 100644 index 0000000000..480e2448de --- /dev/null +++ b/ecs-agent/vendor/github.com/golang/protobuf/jsonpb/json.go @@ -0,0 +1,69 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package jsonpb provides functionality to marshal and unmarshal between a +// protocol buffer message and JSON. It follows the specification at +// https://developers.google.com/protocol-buffers/docs/proto3#json. +// +// Do not rely on the default behavior of the standard encoding/json package +// when called on generated message types as it does not operate correctly. +// +// Deprecated: Use the "google.golang.org/protobuf/encoding/protojson" +// package instead. +package jsonpb + +import ( + "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/runtime/protoimpl" +) + +// AnyResolver takes a type URL, present in an Any message, +// and resolves it into an instance of the associated message. +type AnyResolver interface { + Resolve(typeURL string) (proto.Message, error) +} + +type anyResolver struct{ AnyResolver } + +func (r anyResolver) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { + return r.FindMessageByURL(string(message)) +} + +func (r anyResolver) FindMessageByURL(url string) (protoreflect.MessageType, error) { + m, err := r.Resolve(url) + if err != nil { + return nil, err + } + return protoimpl.X.MessageTypeOf(m), nil +} + +func (r anyResolver) FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) { + return protoregistry.GlobalTypes.FindExtensionByName(field) +} + +func (r anyResolver) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) { + return protoregistry.GlobalTypes.FindExtensionByNumber(message, field) +} + +func wellKnownType(s protoreflect.FullName) string { + if s.Parent() == "google.protobuf" { + switch s.Name() { + case "Empty", "Any", + "BoolValue", "BytesValue", "StringValue", + "Int32Value", "UInt32Value", "FloatValue", + "Int64Value", "UInt64Value", "DoubleValue", + "Duration", "Timestamp", + "NullValue", "Struct", "Value", "ListValue": + return string(s.Name()) + } + } + return "" +} + +func isMessageSet(md protoreflect.MessageDescriptor) bool { + ms, ok := md.(interface{ IsMessageSet() bool }) + return ok && ms.IsMessageSet() +} diff --git a/ecs-agent/vendor/github.com/golang/protobuf/proto/registry.go b/ecs-agent/vendor/github.com/golang/protobuf/proto/registry.go index 1e7ff64205..066b4323b4 100644 --- a/ecs-agent/vendor/github.com/golang/protobuf/proto/registry.go +++ b/ecs-agent/vendor/github.com/golang/protobuf/proto/registry.go @@ -13,6 +13,7 @@ import ( "strings" "sync" + "google.golang.org/protobuf/reflect/protodesc" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoimpl" @@ -62,14 +63,7 @@ func FileDescriptor(s filePath) fileDescGZIP { // Find the descriptor in the v2 registry. var b []byte if fd, _ := protoregistry.GlobalFiles.FindFileByPath(s); fd != nil { - if fd, ok := fd.(interface{ ProtoLegacyRawDesc() []byte }); ok { - b = fd.ProtoLegacyRawDesc() - } else { - // TODO: Use protodesc.ToFileDescriptorProto to construct - // a descriptorpb.FileDescriptorProto and marshal it. - // However, doing so causes the proto package to have a dependency - // on descriptorpb, leading to cyclic dependency issues. - } + b, _ = Marshal(protodesc.ToFileDescriptorProto(fd)) } // Locally cache the raw descriptor form for the file. diff --git a/ecs-agent/vendor/github.com/golang/protobuf/proto/text_decode.go b/ecs-agent/vendor/github.com/golang/protobuf/proto/text_decode.go index 4a59310098..47eb3e4450 100644 --- a/ecs-agent/vendor/github.com/golang/protobuf/proto/text_decode.go +++ b/ecs-agent/vendor/github.com/golang/protobuf/proto/text_decode.go @@ -765,7 +765,7 @@ func unescape(s string) (ch string, tail string, err error) { if i > utf8.MaxRune { return "", "", fmt.Errorf(`\%c%s is not a valid Unicode code point`, r, ss) } - return string(i), s, nil + return string(rune(i)), s, nil } return "", "", fmt.Errorf(`unknown escape \%c`, r) } diff --git a/ecs-agent/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go b/ecs-agent/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go new file mode 100644 index 0000000000..63dc057851 --- /dev/null +++ b/ecs-agent/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go @@ -0,0 +1,200 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.proto + +package descriptor + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + descriptorpb "google.golang.org/protobuf/types/descriptorpb" + reflect "reflect" +) + +// Symbols defined in public import of google/protobuf/descriptor.proto. + +type FieldDescriptorProto_Type = descriptorpb.FieldDescriptorProto_Type + +const FieldDescriptorProto_TYPE_DOUBLE = descriptorpb.FieldDescriptorProto_TYPE_DOUBLE +const FieldDescriptorProto_TYPE_FLOAT = descriptorpb.FieldDescriptorProto_TYPE_FLOAT +const FieldDescriptorProto_TYPE_INT64 = descriptorpb.FieldDescriptorProto_TYPE_INT64 +const FieldDescriptorProto_TYPE_UINT64 = descriptorpb.FieldDescriptorProto_TYPE_UINT64 +const FieldDescriptorProto_TYPE_INT32 = descriptorpb.FieldDescriptorProto_TYPE_INT32 +const FieldDescriptorProto_TYPE_FIXED64 = descriptorpb.FieldDescriptorProto_TYPE_FIXED64 +const FieldDescriptorProto_TYPE_FIXED32 = descriptorpb.FieldDescriptorProto_TYPE_FIXED32 +const FieldDescriptorProto_TYPE_BOOL = descriptorpb.FieldDescriptorProto_TYPE_BOOL +const FieldDescriptorProto_TYPE_STRING = descriptorpb.FieldDescriptorProto_TYPE_STRING +const FieldDescriptorProto_TYPE_GROUP = descriptorpb.FieldDescriptorProto_TYPE_GROUP +const FieldDescriptorProto_TYPE_MESSAGE = descriptorpb.FieldDescriptorProto_TYPE_MESSAGE +const FieldDescriptorProto_TYPE_BYTES = descriptorpb.FieldDescriptorProto_TYPE_BYTES +const FieldDescriptorProto_TYPE_UINT32 = descriptorpb.FieldDescriptorProto_TYPE_UINT32 +const FieldDescriptorProto_TYPE_ENUM = descriptorpb.FieldDescriptorProto_TYPE_ENUM +const FieldDescriptorProto_TYPE_SFIXED32 = descriptorpb.FieldDescriptorProto_TYPE_SFIXED32 +const FieldDescriptorProto_TYPE_SFIXED64 = descriptorpb.FieldDescriptorProto_TYPE_SFIXED64 +const FieldDescriptorProto_TYPE_SINT32 = descriptorpb.FieldDescriptorProto_TYPE_SINT32 +const FieldDescriptorProto_TYPE_SINT64 = descriptorpb.FieldDescriptorProto_TYPE_SINT64 + +var FieldDescriptorProto_Type_name = descriptorpb.FieldDescriptorProto_Type_name +var FieldDescriptorProto_Type_value = descriptorpb.FieldDescriptorProto_Type_value + +type FieldDescriptorProto_Label = descriptorpb.FieldDescriptorProto_Label + +const FieldDescriptorProto_LABEL_OPTIONAL = descriptorpb.FieldDescriptorProto_LABEL_OPTIONAL +const FieldDescriptorProto_LABEL_REQUIRED = descriptorpb.FieldDescriptorProto_LABEL_REQUIRED +const FieldDescriptorProto_LABEL_REPEATED = descriptorpb.FieldDescriptorProto_LABEL_REPEATED + +var FieldDescriptorProto_Label_name = descriptorpb.FieldDescriptorProto_Label_name +var FieldDescriptorProto_Label_value = descriptorpb.FieldDescriptorProto_Label_value + +type FileOptions_OptimizeMode = descriptorpb.FileOptions_OptimizeMode + +const FileOptions_SPEED = descriptorpb.FileOptions_SPEED +const FileOptions_CODE_SIZE = descriptorpb.FileOptions_CODE_SIZE +const FileOptions_LITE_RUNTIME = descriptorpb.FileOptions_LITE_RUNTIME + +var FileOptions_OptimizeMode_name = descriptorpb.FileOptions_OptimizeMode_name +var FileOptions_OptimizeMode_value = descriptorpb.FileOptions_OptimizeMode_value + +type FieldOptions_CType = descriptorpb.FieldOptions_CType + +const FieldOptions_STRING = descriptorpb.FieldOptions_STRING +const FieldOptions_CORD = descriptorpb.FieldOptions_CORD +const FieldOptions_STRING_PIECE = descriptorpb.FieldOptions_STRING_PIECE + +var FieldOptions_CType_name = descriptorpb.FieldOptions_CType_name +var FieldOptions_CType_value = descriptorpb.FieldOptions_CType_value + +type FieldOptions_JSType = descriptorpb.FieldOptions_JSType + +const FieldOptions_JS_NORMAL = descriptorpb.FieldOptions_JS_NORMAL +const FieldOptions_JS_STRING = descriptorpb.FieldOptions_JS_STRING +const FieldOptions_JS_NUMBER = descriptorpb.FieldOptions_JS_NUMBER + +var FieldOptions_JSType_name = descriptorpb.FieldOptions_JSType_name +var FieldOptions_JSType_value = descriptorpb.FieldOptions_JSType_value + +type MethodOptions_IdempotencyLevel = descriptorpb.MethodOptions_IdempotencyLevel + +const MethodOptions_IDEMPOTENCY_UNKNOWN = descriptorpb.MethodOptions_IDEMPOTENCY_UNKNOWN +const MethodOptions_NO_SIDE_EFFECTS = descriptorpb.MethodOptions_NO_SIDE_EFFECTS +const MethodOptions_IDEMPOTENT = descriptorpb.MethodOptions_IDEMPOTENT + +var MethodOptions_IdempotencyLevel_name = descriptorpb.MethodOptions_IdempotencyLevel_name +var MethodOptions_IdempotencyLevel_value = descriptorpb.MethodOptions_IdempotencyLevel_value + +type FileDescriptorSet = descriptorpb.FileDescriptorSet +type FileDescriptorProto = descriptorpb.FileDescriptorProto +type DescriptorProto = descriptorpb.DescriptorProto +type ExtensionRangeOptions = descriptorpb.ExtensionRangeOptions +type FieldDescriptorProto = descriptorpb.FieldDescriptorProto +type OneofDescriptorProto = descriptorpb.OneofDescriptorProto +type EnumDescriptorProto = descriptorpb.EnumDescriptorProto +type EnumValueDescriptorProto = descriptorpb.EnumValueDescriptorProto +type ServiceDescriptorProto = descriptorpb.ServiceDescriptorProto +type MethodDescriptorProto = descriptorpb.MethodDescriptorProto + +const Default_MethodDescriptorProto_ClientStreaming = descriptorpb.Default_MethodDescriptorProto_ClientStreaming +const Default_MethodDescriptorProto_ServerStreaming = descriptorpb.Default_MethodDescriptorProto_ServerStreaming + +type FileOptions = descriptorpb.FileOptions + +const Default_FileOptions_JavaMultipleFiles = descriptorpb.Default_FileOptions_JavaMultipleFiles +const Default_FileOptions_JavaStringCheckUtf8 = descriptorpb.Default_FileOptions_JavaStringCheckUtf8 +const Default_FileOptions_OptimizeFor = descriptorpb.Default_FileOptions_OptimizeFor +const Default_FileOptions_CcGenericServices = descriptorpb.Default_FileOptions_CcGenericServices +const Default_FileOptions_JavaGenericServices = descriptorpb.Default_FileOptions_JavaGenericServices +const Default_FileOptions_PyGenericServices = descriptorpb.Default_FileOptions_PyGenericServices +const Default_FileOptions_PhpGenericServices = descriptorpb.Default_FileOptions_PhpGenericServices +const Default_FileOptions_Deprecated = descriptorpb.Default_FileOptions_Deprecated +const Default_FileOptions_CcEnableArenas = descriptorpb.Default_FileOptions_CcEnableArenas + +type MessageOptions = descriptorpb.MessageOptions + +const Default_MessageOptions_MessageSetWireFormat = descriptorpb.Default_MessageOptions_MessageSetWireFormat +const Default_MessageOptions_NoStandardDescriptorAccessor = descriptorpb.Default_MessageOptions_NoStandardDescriptorAccessor +const Default_MessageOptions_Deprecated = descriptorpb.Default_MessageOptions_Deprecated + +type FieldOptions = descriptorpb.FieldOptions + +const Default_FieldOptions_Ctype = descriptorpb.Default_FieldOptions_Ctype +const Default_FieldOptions_Jstype = descriptorpb.Default_FieldOptions_Jstype +const Default_FieldOptions_Lazy = descriptorpb.Default_FieldOptions_Lazy +const Default_FieldOptions_Deprecated = descriptorpb.Default_FieldOptions_Deprecated +const Default_FieldOptions_Weak = descriptorpb.Default_FieldOptions_Weak + +type OneofOptions = descriptorpb.OneofOptions +type EnumOptions = descriptorpb.EnumOptions + +const Default_EnumOptions_Deprecated = descriptorpb.Default_EnumOptions_Deprecated + +type EnumValueOptions = descriptorpb.EnumValueOptions + +const Default_EnumValueOptions_Deprecated = descriptorpb.Default_EnumValueOptions_Deprecated + +type ServiceOptions = descriptorpb.ServiceOptions + +const Default_ServiceOptions_Deprecated = descriptorpb.Default_ServiceOptions_Deprecated + +type MethodOptions = descriptorpb.MethodOptions + +const Default_MethodOptions_Deprecated = descriptorpb.Default_MethodOptions_Deprecated +const Default_MethodOptions_IdempotencyLevel = descriptorpb.Default_MethodOptions_IdempotencyLevel + +type UninterpretedOption = descriptorpb.UninterpretedOption +type SourceCodeInfo = descriptorpb.SourceCodeInfo +type GeneratedCodeInfo = descriptorpb.GeneratedCodeInfo +type DescriptorProto_ExtensionRange = descriptorpb.DescriptorProto_ExtensionRange +type DescriptorProto_ReservedRange = descriptorpb.DescriptorProto_ReservedRange +type EnumDescriptorProto_EnumReservedRange = descriptorpb.EnumDescriptorProto_EnumReservedRange +type UninterpretedOption_NamePart = descriptorpb.UninterpretedOption_NamePart +type SourceCodeInfo_Location = descriptorpb.SourceCodeInfo_Location +type GeneratedCodeInfo_Annotation = descriptorpb.GeneratedCodeInfo_Annotation + +var File_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto protoreflect.FileDescriptor + +var file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_rawDesc = []byte{ + 0x0a, 0x44, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x40, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, + 0x6e, 0x2d, 0x67, 0x6f, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x3b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x32, +} + +var file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_goTypes = []interface{}{} +var file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_init() } +func file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_init() { + if File_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_goTypes, + DependencyIndexes: file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_depIdxs, + }.Build() + File_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto = out.File + file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_rawDesc = nil + file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_goTypes = nil + file_github_com_golang_protobuf_protoc_gen_go_descriptor_descriptor_proto_depIdxs = nil +} diff --git a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/any.go b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/any.go index e729dcff13..85f9f57365 100644 --- a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/any.go +++ b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/any.go @@ -19,6 +19,8 @@ const urlPrefix = "type.googleapis.com/" // AnyMessageName returns the message name contained in an anypb.Any message. // Most type assertions should use the Is function instead. +// +// Deprecated: Call the any.MessageName method instead. func AnyMessageName(any *anypb.Any) (string, error) { name, err := anyMessageName(any) return string(name), err @@ -38,6 +40,8 @@ func anyMessageName(any *anypb.Any) (protoreflect.FullName, error) { } // MarshalAny marshals the given message m into an anypb.Any message. +// +// Deprecated: Call the anypb.New function instead. func MarshalAny(m proto.Message) (*anypb.Any, error) { switch dm := m.(type) { case DynamicAny: @@ -58,6 +62,9 @@ func MarshalAny(m proto.Message) (*anypb.Any, error) { // Empty returns a new message of the type specified in an anypb.Any message. // It returns protoregistry.NotFound if the corresponding message type could not // be resolved in the global registry. +// +// Deprecated: Use protoregistry.GlobalTypes.FindMessageByName instead +// to resolve the message name and create a new instance of it. func Empty(any *anypb.Any) (proto.Message, error) { name, err := anyMessageName(any) if err != nil { @@ -76,6 +83,8 @@ func Empty(any *anypb.Any) (proto.Message, error) { // // The target message m may be a *DynamicAny message. If the underlying message // type could not be resolved, then this returns protoregistry.NotFound. +// +// Deprecated: Call the any.UnmarshalTo method instead. func UnmarshalAny(any *anypb.Any, m proto.Message) error { if dm, ok := m.(*DynamicAny); ok { if dm.Message == nil { @@ -100,6 +109,8 @@ func UnmarshalAny(any *anypb.Any, m proto.Message) error { } // Is reports whether the Any message contains a message of the specified type. +// +// Deprecated: Call the any.MessageIs method instead. func Is(any *anypb.Any, m proto.Message) bool { if any == nil || m == nil { return false @@ -119,6 +130,9 @@ func Is(any *anypb.Any, m proto.Message) bool { // var x ptypes.DynamicAny // if err := ptypes.UnmarshalAny(a, &x); err != nil { ... } // fmt.Printf("unmarshaled message: %v", x.Message) +// +// Deprecated: Use the any.UnmarshalNew method instead to unmarshal +// the any message contents into a new instance of the underlying message. type DynamicAny struct{ proto.Message } func (m DynamicAny) String() string { diff --git a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/doc.go b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/doc.go index fb9edd5c62..d3c33259d2 100644 --- a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/doc.go +++ b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/doc.go @@ -3,4 +3,8 @@ // license that can be found in the LICENSE file. // Package ptypes provides functionality for interacting with well-known types. +// +// Deprecated: Well-known types have specialized functionality directly +// injected into the generated packages for each message type. +// See the deprecation notice for each function for the suggested alternative. package ptypes diff --git a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/duration.go b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/duration.go index 6110ae8a41..b2b55dd851 100644 --- a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/duration.go +++ b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/duration.go @@ -21,6 +21,8 @@ const ( // Duration converts a durationpb.Duration to a time.Duration. // Duration returns an error if dur is invalid or overflows a time.Duration. +// +// Deprecated: Call the dur.AsDuration and dur.CheckValid methods instead. func Duration(dur *durationpb.Duration) (time.Duration, error) { if err := validateDuration(dur); err != nil { return 0, err @@ -39,6 +41,8 @@ func Duration(dur *durationpb.Duration) (time.Duration, error) { } // DurationProto converts a time.Duration to a durationpb.Duration. +// +// Deprecated: Call the durationpb.New function instead. func DurationProto(d time.Duration) *durationpb.Duration { nanos := d.Nanoseconds() secs := nanos / 1e9 diff --git a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/timestamp.go b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/timestamp.go index 026d0d4915..8368a3f70d 100644 --- a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/timestamp.go +++ b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/timestamp.go @@ -33,6 +33,8 @@ const ( // // A nil Timestamp returns an error. The first return value in that case is // undefined. +// +// Deprecated: Call the ts.AsTime and ts.CheckValid methods instead. func Timestamp(ts *timestamppb.Timestamp) (time.Time, error) { // Don't return the zero value on error, because corresponds to a valid // timestamp. Instead return whatever time.Unix gives us. @@ -46,6 +48,8 @@ func Timestamp(ts *timestamppb.Timestamp) (time.Time, error) { } // TimestampNow returns a google.protobuf.Timestamp for the current time. +// +// Deprecated: Call the timestamppb.Now function instead. func TimestampNow() *timestamppb.Timestamp { ts, err := TimestampProto(time.Now()) if err != nil { @@ -56,6 +60,8 @@ func TimestampNow() *timestamppb.Timestamp { // TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. // It returns an error if the resulting Timestamp is invalid. +// +// Deprecated: Call the timestamppb.New function instead. func TimestampProto(t time.Time) (*timestamppb.Timestamp, error) { ts := ×tamppb.Timestamp{ Seconds: t.Unix(), @@ -69,6 +75,9 @@ func TimestampProto(t time.Time) (*timestamppb.Timestamp, error) { // TimestampString returns the RFC 3339 string for valid Timestamps. // For invalid Timestamps, it returns an error message in parentheses. +// +// Deprecated: Call the ts.AsTime method instead, +// followed by a call to the Format method on the time.Time value. func TimestampString(ts *timestamppb.Timestamp) string { t, err := Timestamp(ts) if err != nil { diff --git a/ecs-agent/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go new file mode 100644 index 0000000000..cc40f27ad3 --- /dev/null +++ b/ecs-agent/vendor/github.com/golang/protobuf/ptypes/wrappers/wrappers.pb.go @@ -0,0 +1,71 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: github.com/golang/protobuf/ptypes/wrappers/wrappers.proto + +package wrappers + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" +) + +// Symbols defined in public import of google/protobuf/wrappers.proto. + +type DoubleValue = wrapperspb.DoubleValue +type FloatValue = wrapperspb.FloatValue +type Int64Value = wrapperspb.Int64Value +type UInt64Value = wrapperspb.UInt64Value +type Int32Value = wrapperspb.Int32Value +type UInt32Value = wrapperspb.UInt32Value +type BoolValue = wrapperspb.BoolValue +type StringValue = wrapperspb.StringValue +type BytesValue = wrapperspb.BytesValue + +var File_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto protoreflect.FileDescriptor + +var file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_rawDesc = []byte{ + 0x0a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, + 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x42, 0x35, 0x5a, 0x33, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x3b, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_goTypes = []interface{}{} +var file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_init() } +func file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_init() { + if File_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_rawDesc, + NumEnums: 0, + NumMessages: 0, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_goTypes, + DependencyIndexes: file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_depIdxs, + }.Build() + File_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto = out.File + file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_rawDesc = nil + file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_goTypes = nil + file_github_com_golang_protobuf_ptypes_wrappers_wrappers_proto_depIdxs = nil +} diff --git a/ecs-agent/vendor/github.com/google/uuid/README.md b/ecs-agent/vendor/github.com/google/uuid/README.md index 9d92c11f16..f765a46f91 100644 --- a/ecs-agent/vendor/github.com/google/uuid/README.md +++ b/ecs-agent/vendor/github.com/google/uuid/README.md @@ -16,4 +16,4 @@ change is the ability to represent an invalid UUID (vs a NIL UUID). Full `go doc` style documentation for the package can be viewed online without installing this package by using the GoDoc site here: -http://godoc.org/github.com/google/uuid +http://pkg.go.dev/github.com/google/uuid diff --git a/ecs-agent/vendor/github.com/google/uuid/hash.go b/ecs-agent/vendor/github.com/google/uuid/hash.go index b174616315..b404f4bec2 100644 --- a/ecs-agent/vendor/github.com/google/uuid/hash.go +++ b/ecs-agent/vendor/github.com/google/uuid/hash.go @@ -26,8 +26,8 @@ var ( // NewMD5 and NewSHA1. func NewHash(h hash.Hash, space UUID, data []byte, version int) UUID { h.Reset() - h.Write(space[:]) - h.Write(data) + h.Write(space[:]) //nolint:errcheck + h.Write(data) //nolint:errcheck s := h.Sum(nil) var uuid UUID copy(uuid[:], s) diff --git a/ecs-agent/vendor/github.com/google/uuid/marshal.go b/ecs-agent/vendor/github.com/google/uuid/marshal.go index 7f9e0c6c0e..14bd34072b 100644 --- a/ecs-agent/vendor/github.com/google/uuid/marshal.go +++ b/ecs-agent/vendor/github.com/google/uuid/marshal.go @@ -16,10 +16,11 @@ func (uuid UUID) MarshalText() ([]byte, error) { // UnmarshalText implements encoding.TextUnmarshaler. func (uuid *UUID) UnmarshalText(data []byte) error { id, err := ParseBytes(data) - if err == nil { - *uuid = id + if err != nil { + return err } - return err + *uuid = id + return nil } // MarshalBinary implements encoding.BinaryMarshaler. diff --git a/ecs-agent/vendor/github.com/google/uuid/node.go b/ecs-agent/vendor/github.com/google/uuid/node.go index 3e4e90dc44..d651a2b061 100644 --- a/ecs-agent/vendor/github.com/google/uuid/node.go +++ b/ecs-agent/vendor/github.com/google/uuid/node.go @@ -48,6 +48,7 @@ func setNodeInterface(name string) bool { // does not specify a specific interface generate a random Node ID // (section 4.1.6) if name == "" { + ifname = "random" randomBits(nodeID[:]) return true } diff --git a/ecs-agent/vendor/github.com/google/uuid/null.go b/ecs-agent/vendor/github.com/google/uuid/null.go new file mode 100644 index 0000000000..d7fcbf2865 --- /dev/null +++ b/ecs-agent/vendor/github.com/google/uuid/null.go @@ -0,0 +1,118 @@ +// Copyright 2021 Google Inc. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package uuid + +import ( + "bytes" + "database/sql/driver" + "encoding/json" + "fmt" +) + +var jsonNull = []byte("null") + +// NullUUID represents a UUID that may be null. +// NullUUID implements the SQL driver.Scanner interface so +// it can be used as a scan destination: +// +// var u uuid.NullUUID +// err := db.QueryRow("SELECT name FROM foo WHERE id=?", id).Scan(&u) +// ... +// if u.Valid { +// // use u.UUID +// } else { +// // NULL value +// } +// +type NullUUID struct { + UUID UUID + Valid bool // Valid is true if UUID is not NULL +} + +// Scan implements the SQL driver.Scanner interface. +func (nu *NullUUID) Scan(value interface{}) error { + if value == nil { + nu.UUID, nu.Valid = Nil, false + return nil + } + + err := nu.UUID.Scan(value) + if err != nil { + nu.Valid = false + return err + } + + nu.Valid = true + return nil +} + +// Value implements the driver Valuer interface. +func (nu NullUUID) Value() (driver.Value, error) { + if !nu.Valid { + return nil, nil + } + // Delegate to UUID Value function + return nu.UUID.Value() +} + +// MarshalBinary implements encoding.BinaryMarshaler. +func (nu NullUUID) MarshalBinary() ([]byte, error) { + if nu.Valid { + return nu.UUID[:], nil + } + + return []byte(nil), nil +} + +// UnmarshalBinary implements encoding.BinaryUnmarshaler. +func (nu *NullUUID) UnmarshalBinary(data []byte) error { + if len(data) != 16 { + return fmt.Errorf("invalid UUID (got %d bytes)", len(data)) + } + copy(nu.UUID[:], data) + nu.Valid = true + return nil +} + +// MarshalText implements encoding.TextMarshaler. +func (nu NullUUID) MarshalText() ([]byte, error) { + if nu.Valid { + return nu.UUID.MarshalText() + } + + return jsonNull, nil +} + +// UnmarshalText implements encoding.TextUnmarshaler. +func (nu *NullUUID) UnmarshalText(data []byte) error { + id, err := ParseBytes(data) + if err != nil { + nu.Valid = false + return err + } + nu.UUID = id + nu.Valid = true + return nil +} + +// MarshalJSON implements json.Marshaler. +func (nu NullUUID) MarshalJSON() ([]byte, error) { + if nu.Valid { + return json.Marshal(nu.UUID) + } + + return jsonNull, nil +} + +// UnmarshalJSON implements json.Unmarshaler. +func (nu *NullUUID) UnmarshalJSON(data []byte) error { + if bytes.Equal(data, jsonNull) { + *nu = NullUUID{} + return nil // valid null UUID + } + err := json.Unmarshal(data, &nu.UUID) + nu.Valid = err == nil + return err +} diff --git a/ecs-agent/vendor/github.com/google/uuid/sql.go b/ecs-agent/vendor/github.com/google/uuid/sql.go index f326b54db3..2e02ec06c0 100644 --- a/ecs-agent/vendor/github.com/google/uuid/sql.go +++ b/ecs-agent/vendor/github.com/google/uuid/sql.go @@ -9,7 +9,7 @@ import ( "fmt" ) -// Scan implements sql.Scanner so UUIDs can be read from databases transparently +// Scan implements sql.Scanner so UUIDs can be read from databases transparently. // Currently, database types that map to string and []byte are supported. Please // consult database-specific driver documentation for matching types. func (uuid *UUID) Scan(src interface{}) error { diff --git a/ecs-agent/vendor/github.com/google/uuid/uuid.go b/ecs-agent/vendor/github.com/google/uuid/uuid.go index 7f3643fe9a..a57207aeb6 100644 --- a/ecs-agent/vendor/github.com/google/uuid/uuid.go +++ b/ecs-agent/vendor/github.com/google/uuid/uuid.go @@ -1,4 +1,4 @@ -// Copyright 2016 Google Inc. All rights reserved. +// Copyright 2018 Google Inc. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -12,6 +12,7 @@ import ( "fmt" "io" "strings" + "sync" ) // A UUID is a 128 bit (16 byte) Universal Unique IDentifier as defined in RFC @@ -33,22 +34,65 @@ const ( Future // Reserved for future definition. ) -var rander = rand.Reader // random function +const randPoolSize = 16 * 16 -// Parse decodes s into a UUID or returns an error. Both the UUID form of -// xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and -// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded. +var ( + rander = rand.Reader // random function + poolEnabled = false + poolMu sync.Mutex + poolPos = randPoolSize // protected with poolMu + pool [randPoolSize]byte // protected with poolMu +) + +type invalidLengthError struct{ len int } + +func (err invalidLengthError) Error() string { + return fmt.Sprintf("invalid UUID length: %d", err.len) +} + +// IsInvalidLengthError is matcher function for custom error invalidLengthError +func IsInvalidLengthError(err error) bool { + _, ok := err.(invalidLengthError) + return ok +} + +// Parse decodes s into a UUID or returns an error. Both the standard UUID +// forms of xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx and +// urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx are decoded as well as the +// Microsoft encoding {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} and the raw hex +// encoding: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. func Parse(s string) (UUID, error) { var uuid UUID - if len(s) != 36 { - if len(s) != 36+9 { - return uuid, fmt.Errorf("invalid UUID length: %d", len(s)) - } + switch len(s) { + // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 36: + + // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 36 + 9: if strings.ToLower(s[:9]) != "urn:uuid:" { return uuid, fmt.Errorf("invalid urn prefix: %q", s[:9]) } s = s[9:] + + // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} + case 36 + 2: + s = s[1:] + + // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + case 32: + var ok bool + for i := range uuid { + uuid[i], ok = xtob(s[i*2], s[i*2+1]) + if !ok { + return uuid, errors.New("invalid UUID format") + } + } + return uuid, nil + default: + return uuid, invalidLengthError{len(s)} } + // s is now at least 36 bytes long + // it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { return uuid, errors.New("invalid UUID format") } @@ -70,15 +114,29 @@ func Parse(s string) (UUID, error) { // ParseBytes is like Parse, except it parses a byte slice instead of a string. func ParseBytes(b []byte) (UUID, error) { var uuid UUID - if len(b) != 36 { - if len(b) != 36+9 { - return uuid, fmt.Errorf("invalid UUID length: %d", len(b)) - } + switch len(b) { + case 36: // xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + case 36 + 9: // urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx if !bytes.Equal(bytes.ToLower(b[:9]), []byte("urn:uuid:")) { return uuid, fmt.Errorf("invalid urn prefix: %q", b[:9]) } b = b[9:] + case 36 + 2: // {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} + b = b[1:] + case 32: // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx + var ok bool + for i := 0; i < 32; i += 2 { + uuid[i/2], ok = xtob(b[i], b[i+1]) + if !ok { + return uuid, errors.New("invalid UUID format") + } + } + return uuid, nil + default: + return uuid, invalidLengthError{len(b)} } + // s is now at least 36 bytes long + // it must be of the form xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx if b[8] != '-' || b[13] != '-' || b[18] != '-' || b[23] != '-' { return uuid, errors.New("invalid UUID format") } @@ -97,6 +155,16 @@ func ParseBytes(b []byte) (UUID, error) { return uuid, nil } +// MustParse is like Parse but panics if the string cannot be parsed. +// It simplifies safe initialization of global variables holding compiled UUIDs. +func MustParse(s string) UUID { + uuid, err := Parse(s) + if err != nil { + panic(`uuid: Parse(` + s + `): ` + err.Error()) + } + return uuid +} + // FromBytes creates a new UUID from a byte slice. Returns an error if the slice // does not have a length of 16. The bytes are copied from the slice. func FromBytes(b []byte) (uuid UUID, err error) { @@ -130,7 +198,7 @@ func (uuid UUID) URN() string { } func encodeHex(dst []byte, uuid UUID) { - hex.Encode(dst[:], uuid[:4]) + hex.Encode(dst, uuid[:4]) dst[8] = '-' hex.Encode(dst[9:13], uuid[4:6]) dst[13] = '-' @@ -196,3 +264,31 @@ func SetRand(r io.Reader) { } rander = r } + +// EnableRandPool enables internal randomness pool used for Random +// (Version 4) UUID generation. The pool contains random bytes read from +// the random number generator on demand in batches. Enabling the pool +// may improve the UUID generation throughput significantly. +// +// Since the pool is stored on the Go heap, this feature may be a bad fit +// for security sensitive applications. +// +// Both EnableRandPool and DisableRandPool are not thread-safe and should +// only be called when there is no possibility that New or any other +// UUID Version 4 generation function will be called concurrently. +func EnableRandPool() { + poolEnabled = true +} + +// DisableRandPool disables the randomness pool if it was previously +// enabled with EnableRandPool. +// +// Both EnableRandPool and DisableRandPool are not thread-safe and should +// only be called when there is no possibility that New or any other +// UUID Version 4 generation function will be called concurrently. +func DisableRandPool() { + poolEnabled = false + defer poolMu.Unlock() + poolMu.Lock() + poolPos = randPoolSize +} diff --git a/ecs-agent/vendor/github.com/google/uuid/version1.go b/ecs-agent/vendor/github.com/google/uuid/version1.go index 199a1ac654..463109629e 100644 --- a/ecs-agent/vendor/github.com/google/uuid/version1.go +++ b/ecs-agent/vendor/github.com/google/uuid/version1.go @@ -17,12 +17,6 @@ import ( // // In most cases, New should be used. func NewUUID() (UUID, error) { - nodeMu.Lock() - if nodeID == zeroID { - setNodeInterface("") - } - nodeMu.Unlock() - var uuid UUID now, seq, err := GetTime() if err != nil { @@ -38,7 +32,13 @@ func NewUUID() (UUID, error) { binary.BigEndian.PutUint16(uuid[4:], timeMid) binary.BigEndian.PutUint16(uuid[6:], timeHi) binary.BigEndian.PutUint16(uuid[8:], seq) + + nodeMu.Lock() + if nodeID == zeroID { + setNodeInterface("") + } copy(uuid[10:], nodeID[:]) + nodeMu.Unlock() return uuid, nil } diff --git a/ecs-agent/vendor/github.com/google/uuid/version4.go b/ecs-agent/vendor/github.com/google/uuid/version4.go index 84af91c9f5..7697802e4d 100644 --- a/ecs-agent/vendor/github.com/google/uuid/version4.go +++ b/ecs-agent/vendor/github.com/google/uuid/version4.go @@ -14,11 +14,21 @@ func New() UUID { return Must(NewRandom()) } +// NewString creates a new random UUID and returns it as a string or panics. +// NewString is equivalent to the expression +// +// uuid.New().String() +func NewString() string { + return Must(NewRandom()).String() +} + // NewRandom returns a Random (Version 4) UUID. // // The strength of the UUIDs is based on the strength of the crypto/rand // package. // +// Uses the randomness pool if it was enabled with EnableRandPool. +// // A note about uniqueness derived from the UUID Wikipedia entry: // // Randomly generated UUIDs have 122 random bits. One's annual risk of being @@ -27,8 +37,16 @@ func New() UUID { // equivalent to the odds of creating a few tens of trillions of UUIDs in a // year and having one duplicate. func NewRandom() (UUID, error) { + if !poolEnabled { + return NewRandomFromReader(rander) + } + return newRandomFromPool() +} + +// NewRandomFromReader returns a UUID based on bytes read from a given io.Reader. +func NewRandomFromReader(r io.Reader) (UUID, error) { var uuid UUID - _, err := io.ReadFull(rander, uuid[:]) + _, err := io.ReadFull(r, uuid[:]) if err != nil { return Nil, err } @@ -36,3 +54,23 @@ func NewRandom() (UUID, error) { uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10 return uuid, nil } + +func newRandomFromPool() (UUID, error) { + var uuid UUID + poolMu.Lock() + if poolPos == randPoolSize { + _, err := io.ReadFull(rander, pool[:]) + if err != nil { + poolMu.Unlock() + return Nil, err + } + poolPos = 0 + } + copy(uuid[:], pool[poolPos:(poolPos+16)]) + poolPos += 16 + poolMu.Unlock() + + uuid[6] = (uuid[6] & 0x0f) | 0x40 // Version 4 + uuid[8] = (uuid[8] & 0x3f) | 0x80 // Variant is 10 + return uuid, nil +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE new file mode 100644 index 0000000000..8f71f43fee --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md new file mode 100644 index 0000000000..147ae4ba9b --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md @@ -0,0 +1,5 @@ +# Client go module + +This separate go module is intended to be imported by clients that want to use the CSI-proxy. + +It should strive to keep as few dependencies as possible, to make it easy to import in other repositories. diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go new file mode 100644 index 0000000000..70bb981e9b --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go @@ -0,0 +1,1476 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.12.4 +// source: github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto + +package v1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ListDiskLocationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListDiskLocationsRequest) Reset() { + *x = ListDiskLocationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDiskLocationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDiskLocationsRequest) ProtoMessage() {} + +func (x *ListDiskLocationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListDiskLocationsRequest.ProtoReflect.Descriptor instead. +func (*ListDiskLocationsRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{0} +} + +type DiskLocation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Adapter string `protobuf:"bytes,1,opt,name=Adapter,proto3" json:"Adapter,omitempty"` + Bus string `protobuf:"bytes,2,opt,name=Bus,proto3" json:"Bus,omitempty"` + Target string `protobuf:"bytes,3,opt,name=Target,proto3" json:"Target,omitempty"` + LUNID string `protobuf:"bytes,4,opt,name=LUNID,proto3" json:"LUNID,omitempty"` +} + +func (x *DiskLocation) Reset() { + *x = DiskLocation{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiskLocation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiskLocation) ProtoMessage() {} + +func (x *DiskLocation) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiskLocation.ProtoReflect.Descriptor instead. +func (*DiskLocation) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{1} +} + +func (x *DiskLocation) GetAdapter() string { + if x != nil { + return x.Adapter + } + return "" +} + +func (x *DiskLocation) GetBus() string { + if x != nil { + return x.Bus + } + return "" +} + +func (x *DiskLocation) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *DiskLocation) GetLUNID() string { + if x != nil { + return x.LUNID + } + return "" +} + +type ListDiskLocationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Map of disk number and associated with each disk device. + DiskLocations map[uint32]*DiskLocation `protobuf:"bytes,1,rep,name=disk_locations,json=diskLocations,proto3" json:"disk_locations,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *ListDiskLocationsResponse) Reset() { + *x = ListDiskLocationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDiskLocationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDiskLocationsResponse) ProtoMessage() {} + +func (x *ListDiskLocationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListDiskLocationsResponse.ProtoReflect.Descriptor instead. +func (*ListDiskLocationsResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{2} +} + +func (x *ListDiskLocationsResponse) GetDiskLocations() map[uint32]*DiskLocation { + if x != nil { + return x.DiskLocations + } + return nil +} + +type PartitionDiskRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Disk device number of the disk to partition. + DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` +} + +func (x *PartitionDiskRequest) Reset() { + *x = PartitionDiskRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PartitionDiskRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PartitionDiskRequest) ProtoMessage() {} + +func (x *PartitionDiskRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PartitionDiskRequest.ProtoReflect.Descriptor instead. +func (*PartitionDiskRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{3} +} + +func (x *PartitionDiskRequest) GetDiskNumber() uint32 { + if x != nil { + return x.DiskNumber + } + return 0 +} + +type PartitionDiskResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PartitionDiskResponse) Reset() { + *x = PartitionDiskResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PartitionDiskResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PartitionDiskResponse) ProtoMessage() {} + +func (x *PartitionDiskResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PartitionDiskResponse.ProtoReflect.Descriptor instead. +func (*PartitionDiskResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{4} +} + +type RescanRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RescanRequest) Reset() { + *x = RescanRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RescanRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RescanRequest) ProtoMessage() {} + +func (x *RescanRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RescanRequest.ProtoReflect.Descriptor instead. +func (*RescanRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{5} +} + +type RescanResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RescanResponse) Reset() { + *x = RescanResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RescanResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RescanResponse) ProtoMessage() {} + +func (x *RescanResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RescanResponse.ProtoReflect.Descriptor instead. +func (*RescanResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{6} +} + +type ListDiskIDsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ListDiskIDsRequest) Reset() { + *x = ListDiskIDsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDiskIDsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDiskIDsRequest) ProtoMessage() {} + +func (x *ListDiskIDsRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListDiskIDsRequest.ProtoReflect.Descriptor instead. +func (*ListDiskIDsRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{7} +} + +type DiskIDs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The disk page83 id. + Page83 string `protobuf:"bytes,1,opt,name=page83,proto3" json:"page83,omitempty"` + // The disk serial number. + SerialNumber string `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"` +} + +func (x *DiskIDs) Reset() { + *x = DiskIDs{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DiskIDs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DiskIDs) ProtoMessage() {} + +func (x *DiskIDs) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DiskIDs.ProtoReflect.Descriptor instead. +func (*DiskIDs) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{8} +} + +func (x *DiskIDs) GetPage83() string { + if x != nil { + return x.Page83 + } + return "" +} + +func (x *DiskIDs) GetSerialNumber() string { + if x != nil { + return x.SerialNumber + } + return "" +} + +type ListDiskIDsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Map of disk numbers and disk identifiers associated with each disk device. + DiskIDs map[uint32]*DiskIDs `protobuf:"bytes,1,rep,name=diskIDs,proto3" json:"diskIDs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // the case is intentional for protoc to generate the field as DiskIDs +} + +func (x *ListDiskIDsResponse) Reset() { + *x = ListDiskIDsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDiskIDsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDiskIDsResponse) ProtoMessage() {} + +func (x *ListDiskIDsResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListDiskIDsResponse.ProtoReflect.Descriptor instead. +func (*ListDiskIDsResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{9} +} + +func (x *ListDiskIDsResponse) GetDiskIDs() map[uint32]*DiskIDs { + if x != nil { + return x.DiskIDs + } + return nil +} + +type GetDiskStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Disk device number of the disk to get the stats from. + DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` +} + +func (x *GetDiskStatsRequest) Reset() { + *x = GetDiskStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDiskStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiskStatsRequest) ProtoMessage() {} + +func (x *GetDiskStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiskStatsRequest.ProtoReflect.Descriptor instead. +func (*GetDiskStatsRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{10} +} + +func (x *GetDiskStatsRequest) GetDiskNumber() uint32 { + if x != nil { + return x.DiskNumber + } + return 0 +} + +type GetDiskStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total size of the volume. + TotalBytes int64 `protobuf:"varint,1,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` +} + +func (x *GetDiskStatsResponse) Reset() { + *x = GetDiskStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDiskStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiskStatsResponse) ProtoMessage() {} + +func (x *GetDiskStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiskStatsResponse.ProtoReflect.Descriptor instead. +func (*GetDiskStatsResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{11} +} + +func (x *GetDiskStatsResponse) GetTotalBytes() int64 { + if x != nil { + return x.TotalBytes + } + return 0 +} + +type SetDiskStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Disk device number of the disk. + DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` + // Online state to set for the disk. true for online, false for offline. + IsOnline bool `protobuf:"varint,2,opt,name=is_online,json=isOnline,proto3" json:"is_online,omitempty"` +} + +func (x *SetDiskStateRequest) Reset() { + *x = SetDiskStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDiskStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDiskStateRequest) ProtoMessage() {} + +func (x *SetDiskStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDiskStateRequest.ProtoReflect.Descriptor instead. +func (*SetDiskStateRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{12} +} + +func (x *SetDiskStateRequest) GetDiskNumber() uint32 { + if x != nil { + return x.DiskNumber + } + return 0 +} + +func (x *SetDiskStateRequest) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +type SetDiskStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetDiskStateResponse) Reset() { + *x = SetDiskStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDiskStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDiskStateResponse) ProtoMessage() {} + +func (x *SetDiskStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDiskStateResponse.ProtoReflect.Descriptor instead. +func (*SetDiskStateResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{13} +} + +type GetDiskStateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Disk device number of the disk. + DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` +} + +func (x *GetDiskStateRequest) Reset() { + *x = GetDiskStateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDiskStateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiskStateRequest) ProtoMessage() {} + +func (x *GetDiskStateRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiskStateRequest.ProtoReflect.Descriptor instead. +func (*GetDiskStateRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{14} +} + +func (x *GetDiskStateRequest) GetDiskNumber() uint32 { + if x != nil { + return x.DiskNumber + } + return 0 +} + +type GetDiskStateResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Online state of the disk. true for online, false for offline. + IsOnline bool `protobuf:"varint,1,opt,name=is_online,json=isOnline,proto3" json:"is_online,omitempty"` +} + +func (x *GetDiskStateResponse) Reset() { + *x = GetDiskStateResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDiskStateResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiskStateResponse) ProtoMessage() {} + +func (x *GetDiskStateResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiskStateResponse.ProtoReflect.Descriptor instead. +func (*GetDiskStateResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{15} +} + +func (x *GetDiskStateResponse) GetIsOnline() bool { + if x != nil { + return x.IsOnline + } + return false +} + +var File_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto protoreflect.FileDescriptor + +var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x64, 0x69, 0x73, 0x6b, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x1a, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, + 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x68, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x42, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x42, 0x75, 0x73, 0x12, 0x16, + 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x55, 0x4e, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x55, 0x4e, 0x49, 0x44, 0x22, 0xc8, 0x01, 0x0a, + 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x64, 0x69, + 0x73, 0x6b, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x1a, 0x52, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x17, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x73, + 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, + 0x73, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x46, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x61, 0x67, 0x65, 0x38, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x61, 0x67, 0x65, 0x38, 0x33, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, + 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x69, 0x73, + 0x6b, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x69, 0x73, 0x6b, 0x49, + 0x44, 0x73, 0x1a, 0x47, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x36, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x37, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x53, 0x0a, 0x13, + 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x22, 0x33, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, + 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x32, 0xe6, 0x03, 0x0a, 0x04, 0x44, 0x69, 0x73, 0x6b, 0x12, + 0x52, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, + 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x44, 0x69, 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x06, 0x52, + 0x65, 0x73, 0x63, 0x61, 0x6e, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x61, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x73, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, + 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x12, 0x16, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, + 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x69, + 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, + 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, + 0x2d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x64, 0x69, 0x73, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescOnce sync.Once + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData = file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc +) + +func file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP() []byte { + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescOnce.Do(func() { + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData) + }) + return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData +} + +var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_goTypes = []interface{}{ + (*ListDiskLocationsRequest)(nil), // 0: v1.ListDiskLocationsRequest + (*DiskLocation)(nil), // 1: v1.DiskLocation + (*ListDiskLocationsResponse)(nil), // 2: v1.ListDiskLocationsResponse + (*PartitionDiskRequest)(nil), // 3: v1.PartitionDiskRequest + (*PartitionDiskResponse)(nil), // 4: v1.PartitionDiskResponse + (*RescanRequest)(nil), // 5: v1.RescanRequest + (*RescanResponse)(nil), // 6: v1.RescanResponse + (*ListDiskIDsRequest)(nil), // 7: v1.ListDiskIDsRequest + (*DiskIDs)(nil), // 8: v1.DiskIDs + (*ListDiskIDsResponse)(nil), // 9: v1.ListDiskIDsResponse + (*GetDiskStatsRequest)(nil), // 10: v1.GetDiskStatsRequest + (*GetDiskStatsResponse)(nil), // 11: v1.GetDiskStatsResponse + (*SetDiskStateRequest)(nil), // 12: v1.SetDiskStateRequest + (*SetDiskStateResponse)(nil), // 13: v1.SetDiskStateResponse + (*GetDiskStateRequest)(nil), // 14: v1.GetDiskStateRequest + (*GetDiskStateResponse)(nil), // 15: v1.GetDiskStateResponse + nil, // 16: v1.ListDiskLocationsResponse.DiskLocationsEntry + nil, // 17: v1.ListDiskIDsResponse.DiskIDsEntry +} +var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_depIdxs = []int32{ + 16, // 0: v1.ListDiskLocationsResponse.disk_locations:type_name -> v1.ListDiskLocationsResponse.DiskLocationsEntry + 17, // 1: v1.ListDiskIDsResponse.diskIDs:type_name -> v1.ListDiskIDsResponse.DiskIDsEntry + 1, // 2: v1.ListDiskLocationsResponse.DiskLocationsEntry.value:type_name -> v1.DiskLocation + 8, // 3: v1.ListDiskIDsResponse.DiskIDsEntry.value:type_name -> v1.DiskIDs + 0, // 4: v1.Disk.ListDiskLocations:input_type -> v1.ListDiskLocationsRequest + 3, // 5: v1.Disk.PartitionDisk:input_type -> v1.PartitionDiskRequest + 5, // 6: v1.Disk.Rescan:input_type -> v1.RescanRequest + 7, // 7: v1.Disk.ListDiskIDs:input_type -> v1.ListDiskIDsRequest + 10, // 8: v1.Disk.GetDiskStats:input_type -> v1.GetDiskStatsRequest + 12, // 9: v1.Disk.SetDiskState:input_type -> v1.SetDiskStateRequest + 14, // 10: v1.Disk.GetDiskState:input_type -> v1.GetDiskStateRequest + 2, // 11: v1.Disk.ListDiskLocations:output_type -> v1.ListDiskLocationsResponse + 4, // 12: v1.Disk.PartitionDisk:output_type -> v1.PartitionDiskResponse + 6, // 13: v1.Disk.Rescan:output_type -> v1.RescanResponse + 9, // 14: v1.Disk.ListDiskIDs:output_type -> v1.ListDiskIDsResponse + 11, // 15: v1.Disk.GetDiskStats:output_type -> v1.GetDiskStatsResponse + 13, // 16: v1.Disk.SetDiskState:output_type -> v1.SetDiskStateResponse + 15, // 17: v1.Disk.GetDiskState:output_type -> v1.GetDiskStateResponse + 11, // [11:18] is the sub-list for method output_type + 4, // [4:11] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_init() } +func file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_init() { + if File_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDiskLocationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiskLocation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDiskLocationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PartitionDiskRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PartitionDiskResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RescanRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RescanResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDiskIDsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DiskIDs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDiskIDsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDiskStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDiskStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDiskStateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDiskStateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDiskStateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDiskStateResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 18, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_goTypes, + DependencyIndexes: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_depIdxs, + MessageInfos: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes, + }.Build() + File_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto = out.File + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc = nil + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_goTypes = nil + file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// DiskClient is the client API for Disk service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type DiskClient interface { + // ListDiskLocations returns locations of all + // disk devices enumerated by the host. + ListDiskLocations(ctx context.Context, in *ListDiskLocationsRequest, opts ...grpc.CallOption) (*ListDiskLocationsResponse, error) + // PartitionDisk initializes and partitions a disk device with the GPT partition style + // (if the disk has not been partitioned already) and returns the resulting volume device ID. + PartitionDisk(ctx context.Context, in *PartitionDiskRequest, opts ...grpc.CallOption) (*PartitionDiskResponse, error) + // Rescan refreshes the host's storage cache. + Rescan(ctx context.Context, in *RescanRequest, opts ...grpc.CallOption) (*RescanResponse, error) + // ListDiskIDs returns a map of DiskID objects where the key is the disk number. + ListDiskIDs(ctx context.Context, in *ListDiskIDsRequest, opts ...grpc.CallOption) (*ListDiskIDsResponse, error) + // GetDiskStats returns the stats of a disk (currently it returns the disk size). + GetDiskStats(ctx context.Context, in *GetDiskStatsRequest, opts ...grpc.CallOption) (*GetDiskStatsResponse, error) + // SetDiskState sets the offline/online state of a disk. + SetDiskState(ctx context.Context, in *SetDiskStateRequest, opts ...grpc.CallOption) (*SetDiskStateResponse, error) + // GetDiskState gets the offline/online state of a disk. + GetDiskState(ctx context.Context, in *GetDiskStateRequest, opts ...grpc.CallOption) (*GetDiskStateResponse, error) +} + +type diskClient struct { + cc grpc.ClientConnInterface +} + +func NewDiskClient(cc grpc.ClientConnInterface) DiskClient { + return &diskClient{cc} +} + +func (c *diskClient) ListDiskLocations(ctx context.Context, in *ListDiskLocationsRequest, opts ...grpc.CallOption) (*ListDiskLocationsResponse, error) { + out := new(ListDiskLocationsResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/ListDiskLocations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *diskClient) PartitionDisk(ctx context.Context, in *PartitionDiskRequest, opts ...grpc.CallOption) (*PartitionDiskResponse, error) { + out := new(PartitionDiskResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/PartitionDisk", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *diskClient) Rescan(ctx context.Context, in *RescanRequest, opts ...grpc.CallOption) (*RescanResponse, error) { + out := new(RescanResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/Rescan", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *diskClient) ListDiskIDs(ctx context.Context, in *ListDiskIDsRequest, opts ...grpc.CallOption) (*ListDiskIDsResponse, error) { + out := new(ListDiskIDsResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/ListDiskIDs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *diskClient) GetDiskStats(ctx context.Context, in *GetDiskStatsRequest, opts ...grpc.CallOption) (*GetDiskStatsResponse, error) { + out := new(GetDiskStatsResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/GetDiskStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *diskClient) SetDiskState(ctx context.Context, in *SetDiskStateRequest, opts ...grpc.CallOption) (*SetDiskStateResponse, error) { + out := new(SetDiskStateResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/SetDiskState", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *diskClient) GetDiskState(ctx context.Context, in *GetDiskStateRequest, opts ...grpc.CallOption) (*GetDiskStateResponse, error) { + out := new(GetDiskStateResponse) + err := c.cc.Invoke(ctx, "/v1.Disk/GetDiskState", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// DiskServer is the server API for Disk service. +type DiskServer interface { + // ListDiskLocations returns locations of all + // disk devices enumerated by the host. + ListDiskLocations(context.Context, *ListDiskLocationsRequest) (*ListDiskLocationsResponse, error) + // PartitionDisk initializes and partitions a disk device with the GPT partition style + // (if the disk has not been partitioned already) and returns the resulting volume device ID. + PartitionDisk(context.Context, *PartitionDiskRequest) (*PartitionDiskResponse, error) + // Rescan refreshes the host's storage cache. + Rescan(context.Context, *RescanRequest) (*RescanResponse, error) + // ListDiskIDs returns a map of DiskID objects where the key is the disk number. + ListDiskIDs(context.Context, *ListDiskIDsRequest) (*ListDiskIDsResponse, error) + // GetDiskStats returns the stats of a disk (currently it returns the disk size). + GetDiskStats(context.Context, *GetDiskStatsRequest) (*GetDiskStatsResponse, error) + // SetDiskState sets the offline/online state of a disk. + SetDiskState(context.Context, *SetDiskStateRequest) (*SetDiskStateResponse, error) + // GetDiskState gets the offline/online state of a disk. + GetDiskState(context.Context, *GetDiskStateRequest) (*GetDiskStateResponse, error) +} + +// UnimplementedDiskServer can be embedded to have forward compatible implementations. +type UnimplementedDiskServer struct { +} + +func (*UnimplementedDiskServer) ListDiskLocations(context.Context, *ListDiskLocationsRequest) (*ListDiskLocationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDiskLocations not implemented") +} +func (*UnimplementedDiskServer) PartitionDisk(context.Context, *PartitionDiskRequest) (*PartitionDiskResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PartitionDisk not implemented") +} +func (*UnimplementedDiskServer) Rescan(context.Context, *RescanRequest) (*RescanResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Rescan not implemented") +} +func (*UnimplementedDiskServer) ListDiskIDs(context.Context, *ListDiskIDsRequest) (*ListDiskIDsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDiskIDs not implemented") +} +func (*UnimplementedDiskServer) GetDiskStats(context.Context, *GetDiskStatsRequest) (*GetDiskStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDiskStats not implemented") +} +func (*UnimplementedDiskServer) SetDiskState(context.Context, *SetDiskStateRequest) (*SetDiskStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetDiskState not implemented") +} +func (*UnimplementedDiskServer) GetDiskState(context.Context, *GetDiskStateRequest) (*GetDiskStateResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDiskState not implemented") +} + +func RegisterDiskServer(s *grpc.Server, srv DiskServer) { + s.RegisterService(&_Disk_serviceDesc, srv) +} + +func _Disk_ListDiskLocations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDiskLocationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).ListDiskLocations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/ListDiskLocations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).ListDiskLocations(ctx, req.(*ListDiskLocationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Disk_PartitionDisk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PartitionDiskRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).PartitionDisk(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/PartitionDisk", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).PartitionDisk(ctx, req.(*PartitionDiskRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Disk_Rescan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RescanRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).Rescan(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/Rescan", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).Rescan(ctx, req.(*RescanRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Disk_ListDiskIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDiskIDsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).ListDiskIDs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/ListDiskIDs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).ListDiskIDs(ctx, req.(*ListDiskIDsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Disk_GetDiskStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDiskStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).GetDiskStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/GetDiskStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).GetDiskStats(ctx, req.(*GetDiskStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Disk_SetDiskState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetDiskStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).SetDiskState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/SetDiskState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).SetDiskState(ctx, req.(*SetDiskStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Disk_GetDiskState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDiskStateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(DiskServer).GetDiskState(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Disk/GetDiskState", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(DiskServer).GetDiskState(ctx, req.(*GetDiskStateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Disk_serviceDesc = grpc.ServiceDesc{ + ServiceName: "v1.Disk", + HandlerType: (*DiskServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListDiskLocations", + Handler: _Disk_ListDiskLocations_Handler, + }, + { + MethodName: "PartitionDisk", + Handler: _Disk_PartitionDisk_Handler, + }, + { + MethodName: "Rescan", + Handler: _Disk_Rescan_Handler, + }, + { + MethodName: "ListDiskIDs", + Handler: _Disk_ListDiskIDs_Handler, + }, + { + MethodName: "GetDiskStats", + Handler: _Disk_GetDiskStats_Handler, + }, + { + MethodName: "SetDiskState", + Handler: _Disk_SetDiskState_Handler, + }, + { + MethodName: "GetDiskState", + Handler: _Disk_GetDiskState_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto", +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto new file mode 100644 index 0000000000..f73f412d6e --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto @@ -0,0 +1,111 @@ +syntax = "proto3"; + +package v1; + +option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1"; + +service Disk { + // ListDiskLocations returns locations of all + // disk devices enumerated by the host. + rpc ListDiskLocations(ListDiskLocationsRequest) returns (ListDiskLocationsResponse) {} + + // PartitionDisk initializes and partitions a disk device with the GPT partition style + // (if the disk has not been partitioned already) and returns the resulting volume device ID. + rpc PartitionDisk(PartitionDiskRequest) returns (PartitionDiskResponse) {} + + // Rescan refreshes the host's storage cache. + rpc Rescan(RescanRequest) returns (RescanResponse) {} + + // ListDiskIDs returns a map of DiskID objects where the key is the disk number. + rpc ListDiskIDs(ListDiskIDsRequest) returns (ListDiskIDsResponse) {} + + // GetDiskStats returns the stats of a disk (currently it returns the disk size). + rpc GetDiskStats(GetDiskStatsRequest) returns (GetDiskStatsResponse) {} + + // SetDiskState sets the offline/online state of a disk. + rpc SetDiskState(SetDiskStateRequest) returns (SetDiskStateResponse) {} + + // GetDiskState gets the offline/online state of a disk. + rpc GetDiskState(GetDiskStateRequest) returns (GetDiskStateResponse) {} +} + +message ListDiskLocationsRequest { + // Intentionally empty. +} + +message DiskLocation { + string Adapter = 1; + string Bus = 2; + string Target = 3; + string LUNID = 4; +} + +message ListDiskLocationsResponse { + // Map of disk number and associated with each disk device. + map disk_locations = 1; +} + +message PartitionDiskRequest { + // Disk device number of the disk to partition. + uint32 disk_number = 1; +} + +message PartitionDiskResponse { + // Intentionally empty. +} + +message RescanRequest { + // Intentionally empty. +} + +message RescanResponse { + // Intentionally empty. +} + +message ListDiskIDsRequest { + // Intentionally empty. +} + +message DiskIDs { + // The disk page83 id. + string page83 = 1; + // The disk serial number. + string serial_number = 2; +} + +message ListDiskIDsResponse { + // Map of disk numbers and disk identifiers associated with each disk device. + map diskIDs = 1; // the case is intentional for protoc to generate the field as DiskIDs +} + +message GetDiskStatsRequest { + // Disk device number of the disk to get the stats from. + uint32 disk_number = 1; +} + +message GetDiskStatsResponse { + // Total size of the volume. + int64 total_bytes = 1; +} + +message SetDiskStateRequest { + // Disk device number of the disk. + uint32 disk_number = 1; + + // Online state to set for the disk. true for online, false for offline. + bool is_online = 2; +} + +message SetDiskStateResponse { + // Intentionally empty. +} + +message GetDiskStateRequest { + // Disk device number of the disk. + uint32 disk_number = 1; +} + +message GetDiskStateResponse { + // Online state of the disk. true for online, false for offline. + bool is_online = 1; +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go new file mode 100644 index 0000000000..8bf9cd6548 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go @@ -0,0 +1,1041 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.12.4 +// source: github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto + +package v1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type PathExistsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path whose existence we want to check in the host's filesystem + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *PathExistsRequest) Reset() { + *x = PathExistsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathExistsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathExistsRequest) ProtoMessage() {} + +func (x *PathExistsRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PathExistsRequest.ProtoReflect.Descriptor instead. +func (*PathExistsRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{0} +} + +func (x *PathExistsRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type PathExistsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicates whether the path in PathExistsRequest exists in the host's filesystem + Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"` +} + +func (x *PathExistsResponse) Reset() { + *x = PathExistsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PathExistsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PathExistsResponse) ProtoMessage() {} + +func (x *PathExistsResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PathExistsResponse.ProtoReflect.Descriptor instead. +func (*PathExistsResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{1} +} + +func (x *PathExistsResponse) GetExists() bool { + if x != nil { + return x.Exists + } + return false +} + +type MkdirRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path to create in the host's filesystem. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // Non-existent parent directories in the path will be automatically created. + // Directories will be created with Read and Write privileges of the Windows + // User account under which csi-proxy is started (typically LocalSystem). + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // Depending on the context parameter of this function, the path prefix needs + // to match the paths specified either as kubelet-csi-plugins-path + // or as kubelet-pod-path parameters of csi-proxy. + // The path parameter cannot already exist in the host's filesystem. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // Maximum path length will be capped to 260 characters. + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *MkdirRequest) Reset() { + *x = MkdirRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MkdirRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MkdirRequest) ProtoMessage() {} + +func (x *MkdirRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MkdirRequest.ProtoReflect.Descriptor instead. +func (*MkdirRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{2} +} + +func (x *MkdirRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type MkdirResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MkdirResponse) Reset() { + *x = MkdirResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MkdirResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MkdirResponse) ProtoMessage() {} + +func (x *MkdirResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MkdirResponse.ProtoReflect.Descriptor instead. +func (*MkdirResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{3} +} + +type RmdirRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path to remove in the host's filesystem. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // Depending on the context parameter of this function, the path prefix needs + // to match the paths specified either as kubelet-csi-plugins-path + // or as kubelet-pod-path parameters of csi-proxy. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // Path cannot be a file of type symlink. + // Maximum path length will be capped to 260 characters. + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` + // Force remove all contents under path (if any). + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *RmdirRequest) Reset() { + *x = RmdirRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RmdirRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RmdirRequest) ProtoMessage() {} + +func (x *RmdirRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RmdirRequest.ProtoReflect.Descriptor instead. +func (*RmdirRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{4} +} + +func (x *RmdirRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +func (x *RmdirRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +type RmdirResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RmdirResponse) Reset() { + *x = RmdirResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RmdirResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RmdirResponse) ProtoMessage() {} + +func (x *RmdirResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RmdirResponse.ProtoReflect.Descriptor instead. +func (*RmdirResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{5} +} + +type CreateSymlinkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path of the existing directory to be linked. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // The path prefix needs needs to match the paths specified as + // kubelet-csi-plugins-path parameter of csi-proxy. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // source_path cannot already exist in the host filesystem. + // Maximum path length will be capped to 260 characters. + SourcePath string `protobuf:"bytes,1,opt,name=source_path,json=sourcePath,proto3" json:"source_path,omitempty"` + // Target path is the location of the new directory entry to be created in the host's filesystem. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // The path prefix needs to match the paths specified as + // kubelet-pod-path parameter of csi-proxy. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // target_path needs to exist as a directory in the host that is empty. + // target_path cannot be a symbolic link. + // Maximum path length will be capped to 260 characters. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` +} + +func (x *CreateSymlinkRequest) Reset() { + *x = CreateSymlinkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSymlinkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSymlinkRequest) ProtoMessage() {} + +func (x *CreateSymlinkRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSymlinkRequest.ProtoReflect.Descriptor instead. +func (*CreateSymlinkRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{6} +} + +func (x *CreateSymlinkRequest) GetSourcePath() string { + if x != nil { + return x.SourcePath + } + return "" +} + +func (x *CreateSymlinkRequest) GetTargetPath() string { + if x != nil { + return x.TargetPath + } + return "" +} + +type CreateSymlinkResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateSymlinkResponse) Reset() { + *x = CreateSymlinkResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSymlinkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSymlinkResponse) ProtoMessage() {} + +func (x *CreateSymlinkResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateSymlinkResponse.ProtoReflect.Descriptor instead. +func (*CreateSymlinkResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{7} +} + +type IsSymlinkRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path whose existence as a symlink we want to check in the host's filesystem. + Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` +} + +func (x *IsSymlinkRequest) Reset() { + *x = IsSymlinkRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsSymlinkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsSymlinkRequest) ProtoMessage() {} + +func (x *IsSymlinkRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsSymlinkRequest.ProtoReflect.Descriptor instead. +func (*IsSymlinkRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{8} +} + +func (x *IsSymlinkRequest) GetPath() string { + if x != nil { + return x.Path + } + return "" +} + +type IsSymlinkResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicates whether the path in IsSymlinkRequest is a symlink. + IsSymlink bool `protobuf:"varint,1,opt,name=is_symlink,json=isSymlink,proto3" json:"is_symlink,omitempty"` +} + +func (x *IsSymlinkResponse) Reset() { + *x = IsSymlinkResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsSymlinkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsSymlinkResponse) ProtoMessage() {} + +func (x *IsSymlinkResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsSymlinkResponse.ProtoReflect.Descriptor instead. +func (*IsSymlinkResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{9} +} + +func (x *IsSymlinkResponse) GetIsSymlink() bool { + if x != nil { + return x.IsSymlink + } + return false +} + +var File_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto protoreflect.FileDescriptor + +var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x61, + 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x27, 0x0a, 0x11, + 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, + 0x73, 0x74, 0x73, 0x22, 0x22, 0x0a, 0x0c, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x0f, 0x0a, 0x0d, 0x4d, 0x6b, 0x64, 0x69, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x52, 0x6d, 0x64, 0x69, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, + 0x63, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x6d, 0x64, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, + 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x17, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x10, 0x49, 0x73, 0x53, 0x79, 0x6d, 0x6c, + 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x32, + 0x0a, 0x11, 0x49, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, + 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, + 0x6e, 0x6b, 0x32, 0xaf, 0x02, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x12, 0x3d, 0x0a, 0x0a, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, + 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x2e, 0x0a, 0x05, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x2e, 0x0a, 0x05, 0x52, 0x6d, 0x64, 0x69, 0x72, 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x6d, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x6d, 0x64, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x46, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, + 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, + 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x09, 0x49, 0x73, 0x53, 0x79, + 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x53, 0x79, 0x6d, + 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, + 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescOnce sync.Once + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData = file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc +) + +func file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP() []byte { + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescOnce.Do(func() { + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData) + }) + return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData +} + +var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_goTypes = []interface{}{ + (*PathExistsRequest)(nil), // 0: v1.PathExistsRequest + (*PathExistsResponse)(nil), // 1: v1.PathExistsResponse + (*MkdirRequest)(nil), // 2: v1.MkdirRequest + (*MkdirResponse)(nil), // 3: v1.MkdirResponse + (*RmdirRequest)(nil), // 4: v1.RmdirRequest + (*RmdirResponse)(nil), // 5: v1.RmdirResponse + (*CreateSymlinkRequest)(nil), // 6: v1.CreateSymlinkRequest + (*CreateSymlinkResponse)(nil), // 7: v1.CreateSymlinkResponse + (*IsSymlinkRequest)(nil), // 8: v1.IsSymlinkRequest + (*IsSymlinkResponse)(nil), // 9: v1.IsSymlinkResponse +} +var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_depIdxs = []int32{ + 0, // 0: v1.Filesystem.PathExists:input_type -> v1.PathExistsRequest + 2, // 1: v1.Filesystem.Mkdir:input_type -> v1.MkdirRequest + 4, // 2: v1.Filesystem.Rmdir:input_type -> v1.RmdirRequest + 6, // 3: v1.Filesystem.CreateSymlink:input_type -> v1.CreateSymlinkRequest + 8, // 4: v1.Filesystem.IsSymlink:input_type -> v1.IsSymlinkRequest + 1, // 5: v1.Filesystem.PathExists:output_type -> v1.PathExistsResponse + 3, // 6: v1.Filesystem.Mkdir:output_type -> v1.MkdirResponse + 5, // 7: v1.Filesystem.Rmdir:output_type -> v1.RmdirResponse + 7, // 8: v1.Filesystem.CreateSymlink:output_type -> v1.CreateSymlinkResponse + 9, // 9: v1.Filesystem.IsSymlink:output_type -> v1.IsSymlinkResponse + 5, // [5:10] is the sub-list for method output_type + 0, // [0:5] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_init() } +func file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_init() { + if File_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathExistsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PathExistsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MkdirRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MkdirResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RmdirRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RmdirResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSymlinkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSymlinkResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsSymlinkRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsSymlinkResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_goTypes, + DependencyIndexes: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_depIdxs, + MessageInfos: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes, + }.Build() + File_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto = out.File + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc = nil + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_goTypes = nil + file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// FilesystemClient is the client API for Filesystem service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FilesystemClient interface { + // PathExists checks if the requested path exists in the host filesystem. + PathExists(ctx context.Context, in *PathExistsRequest, opts ...grpc.CallOption) (*PathExistsResponse, error) + // Mkdir creates a directory at the requested path in the host filesystem. + Mkdir(ctx context.Context, in *MkdirRequest, opts ...grpc.CallOption) (*MkdirResponse, error) + // Rmdir removes the directory at the requested path in the host filesystem. + // This may be used for unlinking a symlink created through CreateSymlink. + Rmdir(ctx context.Context, in *RmdirRequest, opts ...grpc.CallOption) (*RmdirResponse, error) + // CreateSymlink creates a symbolic link called target_path that points to source_path + // in the host filesystem (target_path is the name of the symbolic link created, + // source_path is the existing path). + CreateSymlink(ctx context.Context, in *CreateSymlinkRequest, opts ...grpc.CallOption) (*CreateSymlinkResponse, error) + // IsSymlink checks if a given path is a symlink. + IsSymlink(ctx context.Context, in *IsSymlinkRequest, opts ...grpc.CallOption) (*IsSymlinkResponse, error) +} + +type filesystemClient struct { + cc grpc.ClientConnInterface +} + +func NewFilesystemClient(cc grpc.ClientConnInterface) FilesystemClient { + return &filesystemClient{cc} +} + +func (c *filesystemClient) PathExists(ctx context.Context, in *PathExistsRequest, opts ...grpc.CallOption) (*PathExistsResponse, error) { + out := new(PathExistsResponse) + err := c.cc.Invoke(ctx, "/v1.Filesystem/PathExists", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *filesystemClient) Mkdir(ctx context.Context, in *MkdirRequest, opts ...grpc.CallOption) (*MkdirResponse, error) { + out := new(MkdirResponse) + err := c.cc.Invoke(ctx, "/v1.Filesystem/Mkdir", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *filesystemClient) Rmdir(ctx context.Context, in *RmdirRequest, opts ...grpc.CallOption) (*RmdirResponse, error) { + out := new(RmdirResponse) + err := c.cc.Invoke(ctx, "/v1.Filesystem/Rmdir", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *filesystemClient) CreateSymlink(ctx context.Context, in *CreateSymlinkRequest, opts ...grpc.CallOption) (*CreateSymlinkResponse, error) { + out := new(CreateSymlinkResponse) + err := c.cc.Invoke(ctx, "/v1.Filesystem/CreateSymlink", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *filesystemClient) IsSymlink(ctx context.Context, in *IsSymlinkRequest, opts ...grpc.CallOption) (*IsSymlinkResponse, error) { + out := new(IsSymlinkResponse) + err := c.cc.Invoke(ctx, "/v1.Filesystem/IsSymlink", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FilesystemServer is the server API for Filesystem service. +type FilesystemServer interface { + // PathExists checks if the requested path exists in the host filesystem. + PathExists(context.Context, *PathExistsRequest) (*PathExistsResponse, error) + // Mkdir creates a directory at the requested path in the host filesystem. + Mkdir(context.Context, *MkdirRequest) (*MkdirResponse, error) + // Rmdir removes the directory at the requested path in the host filesystem. + // This may be used for unlinking a symlink created through CreateSymlink. + Rmdir(context.Context, *RmdirRequest) (*RmdirResponse, error) + // CreateSymlink creates a symbolic link called target_path that points to source_path + // in the host filesystem (target_path is the name of the symbolic link created, + // source_path is the existing path). + CreateSymlink(context.Context, *CreateSymlinkRequest) (*CreateSymlinkResponse, error) + // IsSymlink checks if a given path is a symlink. + IsSymlink(context.Context, *IsSymlinkRequest) (*IsSymlinkResponse, error) +} + +// UnimplementedFilesystemServer can be embedded to have forward compatible implementations. +type UnimplementedFilesystemServer struct { +} + +func (*UnimplementedFilesystemServer) PathExists(context.Context, *PathExistsRequest) (*PathExistsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PathExists not implemented") +} +func (*UnimplementedFilesystemServer) Mkdir(context.Context, *MkdirRequest) (*MkdirResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Mkdir not implemented") +} +func (*UnimplementedFilesystemServer) Rmdir(context.Context, *RmdirRequest) (*RmdirResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method Rmdir not implemented") +} +func (*UnimplementedFilesystemServer) CreateSymlink(context.Context, *CreateSymlinkRequest) (*CreateSymlinkResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSymlink not implemented") +} +func (*UnimplementedFilesystemServer) IsSymlink(context.Context, *IsSymlinkRequest) (*IsSymlinkResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsSymlink not implemented") +} + +func RegisterFilesystemServer(s *grpc.Server, srv FilesystemServer) { + s.RegisterService(&_Filesystem_serviceDesc, srv) +} + +func _Filesystem_PathExists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PathExistsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FilesystemServer).PathExists(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Filesystem/PathExists", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FilesystemServer).PathExists(ctx, req.(*PathExistsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Filesystem_Mkdir_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MkdirRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FilesystemServer).Mkdir(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Filesystem/Mkdir", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FilesystemServer).Mkdir(ctx, req.(*MkdirRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Filesystem_Rmdir_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RmdirRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FilesystemServer).Rmdir(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Filesystem/Rmdir", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FilesystemServer).Rmdir(ctx, req.(*RmdirRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Filesystem_CreateSymlink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSymlinkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FilesystemServer).CreateSymlink(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Filesystem/CreateSymlink", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FilesystemServer).CreateSymlink(ctx, req.(*CreateSymlinkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Filesystem_IsSymlink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IsSymlinkRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FilesystemServer).IsSymlink(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Filesystem/IsSymlink", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FilesystemServer).IsSymlink(ctx, req.(*IsSymlinkRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Filesystem_serviceDesc = grpc.ServiceDesc{ + ServiceName: "v1.Filesystem", + HandlerType: (*FilesystemServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "PathExists", + Handler: _Filesystem_PathExists_Handler, + }, + { + MethodName: "Mkdir", + Handler: _Filesystem_Mkdir_Handler, + }, + { + MethodName: "Rmdir", + Handler: _Filesystem_Rmdir_Handler, + }, + { + MethodName: "CreateSymlink", + Handler: _Filesystem_CreateSymlink_Handler, + }, + { + MethodName: "IsSymlink", + Handler: _Filesystem_IsSymlink_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto", +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto new file mode 100644 index 0000000000..151a1ffd41 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto @@ -0,0 +1,136 @@ +syntax = "proto3"; + +package v1; + +option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1"; + +service Filesystem { + // PathExists checks if the requested path exists in the host filesystem. + rpc PathExists(PathExistsRequest) returns (PathExistsResponse) {} + + // Mkdir creates a directory at the requested path in the host filesystem. + rpc Mkdir(MkdirRequest) returns (MkdirResponse) {} + + // Rmdir removes the directory at the requested path in the host filesystem. + // This may be used for unlinking a symlink created through CreateSymlink. + rpc Rmdir(RmdirRequest) returns (RmdirResponse) {} + + // CreateSymlink creates a symbolic link called target_path that points to source_path + // in the host filesystem (target_path is the name of the symbolic link created, + // source_path is the existing path). + rpc CreateSymlink(CreateSymlinkRequest) returns (CreateSymlinkResponse) {} + + // IsSymlink checks if a given path is a symlink. + rpc IsSymlink(IsSymlinkRequest) returns (IsSymlinkResponse) {} +} + +message PathExistsRequest { + // The path whose existence we want to check in the host's filesystem + string path = 1; +} + +message PathExistsResponse { + // Indicates whether the path in PathExistsRequest exists in the host's filesystem + bool exists = 1; +} + +message MkdirRequest { + // The path to create in the host's filesystem. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // Non-existent parent directories in the path will be automatically created. + // Directories will be created with Read and Write privileges of the Windows + // User account under which csi-proxy is started (typically LocalSystem). + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // Depending on the context parameter of this function, the path prefix needs + // to match the paths specified either as kubelet-csi-plugins-path + // or as kubelet-pod-path parameters of csi-proxy. + // The path parameter cannot already exist in the host's filesystem. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // Maximum path length will be capped to 260 characters. + string path = 1; +} + +message MkdirResponse { + // Intentionally empty. +} + +message RmdirRequest { + // The path to remove in the host's filesystem. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // Depending on the context parameter of this function, the path prefix needs + // to match the paths specified either as kubelet-csi-plugins-path + // or as kubelet-pod-path parameters of csi-proxy. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // Path cannot be a file of type symlink. + // Maximum path length will be capped to 260 characters. + string path = 1; + + // Force remove all contents under path (if any). + bool force = 2; +} + +message RmdirResponse { + // Intentionally empty. +} + +message CreateSymlinkRequest { + // The path of the existing directory to be linked. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // The path prefix needs needs to match the paths specified as + // kubelet-csi-plugins-path parameter of csi-proxy. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // source_path cannot already exist in the host filesystem. + // Maximum path length will be capped to 260 characters. + string source_path = 1; + + // Target path is the location of the new directory entry to be created in the host's filesystem. + // All special characters allowed by Windows in path names will be allowed + // except for restrictions noted below. For details, please check: + // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file + // + // Restrictions: + // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. + // The path prefix needs to match the paths specified as + // kubelet-pod-path parameter of csi-proxy. + // UNC paths of the form "\\server\share\path\file" are not allowed. + // All directory separators need to be backslash character: "\". + // Characters: .. / : | ? * in the path are not allowed. + // target_path needs to exist as a directory in the host that is empty. + // target_path cannot be a symbolic link. + // Maximum path length will be capped to 260 characters. + string target_path = 2; +} + +message CreateSymlinkResponse { + // Intentionally empty. +} + +message IsSymlinkRequest { + // The path whose existence as a symlink we want to check in the host's filesystem. + string path = 1; +} + +message IsSymlinkResponse { + // Indicates whether the path in IsSymlinkRequest is a symlink. + bool is_symlink = 1; +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go new file mode 100644 index 0000000000..2a7a9be184 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go @@ -0,0 +1,1876 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.12.4 +// source: github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto + +package v1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ListVolumesOnDiskRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Disk device number of the disk to query for volumes. + DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` + // The partition number (optional), by default it uses the first partition of the disk. + PartitionNumber uint32 `protobuf:"varint,2,opt,name=partition_number,json=partitionNumber,proto3" json:"partition_number,omitempty"` +} + +func (x *ListVolumesOnDiskRequest) Reset() { + *x = ListVolumesOnDiskRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListVolumesOnDiskRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesOnDiskRequest) ProtoMessage() {} + +func (x *ListVolumesOnDiskRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListVolumesOnDiskRequest.ProtoReflect.Descriptor instead. +func (*ListVolumesOnDiskRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{0} +} + +func (x *ListVolumesOnDiskRequest) GetDiskNumber() uint32 { + if x != nil { + return x.DiskNumber + } + return 0 +} + +func (x *ListVolumesOnDiskRequest) GetPartitionNumber() uint32 { + if x != nil { + return x.PartitionNumber + } + return 0 +} + +type ListVolumesOnDiskResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device IDs of volumes on the specified disk. + VolumeIds []string `protobuf:"bytes,1,rep,name=volume_ids,json=volumeIds,proto3" json:"volume_ids,omitempty"` +} + +func (x *ListVolumesOnDiskResponse) Reset() { + *x = ListVolumesOnDiskResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListVolumesOnDiskResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListVolumesOnDiskResponse) ProtoMessage() {} + +func (x *ListVolumesOnDiskResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListVolumesOnDiskResponse.ProtoReflect.Descriptor instead. +func (*ListVolumesOnDiskResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{1} +} + +func (x *ListVolumesOnDiskResponse) GetVolumeIds() []string { + if x != nil { + return x.VolumeIds + } + return nil +} + +type MountVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to mount. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Path in the host's file system where the volume needs to be mounted. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` +} + +func (x *MountVolumeRequest) Reset() { + *x = MountVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountVolumeRequest) ProtoMessage() {} + +func (x *MountVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MountVolumeRequest.ProtoReflect.Descriptor instead. +func (*MountVolumeRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{2} +} + +func (x *MountVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *MountVolumeRequest) GetTargetPath() string { + if x != nil { + return x.TargetPath + } + return "" +} + +type MountVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MountVolumeResponse) Reset() { + *x = MountVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MountVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MountVolumeResponse) ProtoMessage() {} + +func (x *MountVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MountVolumeResponse.ProtoReflect.Descriptor instead. +func (*MountVolumeResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{3} +} + +type UnmountVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to dismount. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // Path where the volume has been mounted. + TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` +} + +func (x *UnmountVolumeRequest) Reset() { + *x = UnmountVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnmountVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnmountVolumeRequest) ProtoMessage() {} + +func (x *UnmountVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnmountVolumeRequest.ProtoReflect.Descriptor instead. +func (*UnmountVolumeRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{4} +} + +func (x *UnmountVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *UnmountVolumeRequest) GetTargetPath() string { + if x != nil { + return x.TargetPath + } + return "" +} + +type UnmountVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UnmountVolumeResponse) Reset() { + *x = UnmountVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnmountVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnmountVolumeResponse) ProtoMessage() {} + +func (x *UnmountVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UnmountVolumeResponse.ProtoReflect.Descriptor instead. +func (*UnmountVolumeResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{5} +} + +type IsVolumeFormattedRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to check. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *IsVolumeFormattedRequest) Reset() { + *x = IsVolumeFormattedRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsVolumeFormattedRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsVolumeFormattedRequest) ProtoMessage() {} + +func (x *IsVolumeFormattedRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsVolumeFormattedRequest.ProtoReflect.Descriptor instead. +func (*IsVolumeFormattedRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{6} +} + +func (x *IsVolumeFormattedRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +type IsVolumeFormattedResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Is the volume formatted with NTFS. + Formatted bool `protobuf:"varint,1,opt,name=formatted,proto3" json:"formatted,omitempty"` +} + +func (x *IsVolumeFormattedResponse) Reset() { + *x = IsVolumeFormattedResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IsVolumeFormattedResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IsVolumeFormattedResponse) ProtoMessage() {} + +func (x *IsVolumeFormattedResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IsVolumeFormattedResponse.ProtoReflect.Descriptor instead. +func (*IsVolumeFormattedResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{7} +} + +func (x *IsVolumeFormattedResponse) GetFormatted() bool { + if x != nil { + return x.Formatted + } + return false +} + +type FormatVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to format. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *FormatVolumeRequest) Reset() { + *x = FormatVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FormatVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FormatVolumeRequest) ProtoMessage() {} + +func (x *FormatVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FormatVolumeRequest.ProtoReflect.Descriptor instead. +func (*FormatVolumeRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{8} +} + +func (x *FormatVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +type FormatVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *FormatVolumeResponse) Reset() { + *x = FormatVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FormatVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FormatVolumeResponse) ProtoMessage() {} + +func (x *FormatVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FormatVolumeResponse.ProtoReflect.Descriptor instead. +func (*FormatVolumeResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{9} +} + +type ResizeVolumeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to resize. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` + // New size in bytes of the volume. + SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` +} + +func (x *ResizeVolumeRequest) Reset() { + *x = ResizeVolumeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResizeVolumeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResizeVolumeRequest) ProtoMessage() {} + +func (x *ResizeVolumeRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResizeVolumeRequest.ProtoReflect.Descriptor instead. +func (*ResizeVolumeRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{10} +} + +func (x *ResizeVolumeRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +func (x *ResizeVolumeRequest) GetSizeBytes() int64 { + if x != nil { + return x.SizeBytes + } + return 0 +} + +type ResizeVolumeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ResizeVolumeResponse) Reset() { + *x = ResizeVolumeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResizeVolumeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResizeVolumeResponse) ProtoMessage() {} + +func (x *ResizeVolumeResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResizeVolumeResponse.ProtoReflect.Descriptor instead. +func (*ResizeVolumeResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{11} +} + +type GetVolumeStatsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device Id of the volume to get the stats for. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *GetVolumeStatsRequest) Reset() { + *x = GetVolumeStatsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVolumeStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeStatsRequest) ProtoMessage() {} + +func (x *GetVolumeStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVolumeStatsRequest.ProtoReflect.Descriptor instead. +func (*GetVolumeStatsRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{12} +} + +func (x *GetVolumeStatsRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +type GetVolumeStatsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Total bytes + TotalBytes int64 `protobuf:"varint,1,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` + // Used bytes + UsedBytes int64 `protobuf:"varint,2,opt,name=used_bytes,json=usedBytes,proto3" json:"used_bytes,omitempty"` +} + +func (x *GetVolumeStatsResponse) Reset() { + *x = GetVolumeStatsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVolumeStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeStatsResponse) ProtoMessage() {} + +func (x *GetVolumeStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVolumeStatsResponse.ProtoReflect.Descriptor instead. +func (*GetVolumeStatsResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{13} +} + +func (x *GetVolumeStatsResponse) GetTotalBytes() int64 { + if x != nil { + return x.TotalBytes + } + return 0 +} + +func (x *GetVolumeStatsResponse) GetUsedBytes() int64 { + if x != nil { + return x.UsedBytes + } + return 0 +} + +type GetDiskNumberFromVolumeIDRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to get the disk number for. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *GetDiskNumberFromVolumeIDRequest) Reset() { + *x = GetDiskNumberFromVolumeIDRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDiskNumberFromVolumeIDRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiskNumberFromVolumeIDRequest) ProtoMessage() {} + +func (x *GetDiskNumberFromVolumeIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiskNumberFromVolumeIDRequest.ProtoReflect.Descriptor instead. +func (*GetDiskNumberFromVolumeIDRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{14} +} + +func (x *GetDiskNumberFromVolumeIDRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +type GetDiskNumberFromVolumeIDResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Corresponding disk number. + DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` +} + +func (x *GetDiskNumberFromVolumeIDResponse) Reset() { + *x = GetDiskNumberFromVolumeIDResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDiskNumberFromVolumeIDResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDiskNumberFromVolumeIDResponse) ProtoMessage() {} + +func (x *GetDiskNumberFromVolumeIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDiskNumberFromVolumeIDResponse.ProtoReflect.Descriptor instead. +func (*GetDiskNumberFromVolumeIDResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{15} +} + +func (x *GetDiskNumberFromVolumeIDResponse) GetDiskNumber() uint32 { + if x != nil { + return x.DiskNumber + } + return 0 +} + +type GetVolumeIDFromTargetPathRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The target path. + TargetPath string `protobuf:"bytes,1,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` +} + +func (x *GetVolumeIDFromTargetPathRequest) Reset() { + *x = GetVolumeIDFromTargetPathRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVolumeIDFromTargetPathRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeIDFromTargetPathRequest) ProtoMessage() {} + +func (x *GetVolumeIDFromTargetPathRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVolumeIDFromTargetPathRequest.ProtoReflect.Descriptor instead. +func (*GetVolumeIDFromTargetPathRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{16} +} + +func (x *GetVolumeIDFromTargetPathRequest) GetTargetPath() string { + if x != nil { + return x.TargetPath + } + return "" +} + +type GetVolumeIDFromTargetPathResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The volume device ID. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *GetVolumeIDFromTargetPathResponse) Reset() { + *x = GetVolumeIDFromTargetPathResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVolumeIDFromTargetPathResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVolumeIDFromTargetPathResponse) ProtoMessage() {} + +func (x *GetVolumeIDFromTargetPathResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVolumeIDFromTargetPathResponse.ProtoReflect.Descriptor instead. +func (*GetVolumeIDFromTargetPathResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{17} +} + +func (x *GetVolumeIDFromTargetPathResponse) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +type WriteVolumeCacheRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Volume device ID of the volume to flush the cache. + VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` +} + +func (x *WriteVolumeCacheRequest) Reset() { + *x = WriteVolumeCacheRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteVolumeCacheRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteVolumeCacheRequest) ProtoMessage() {} + +func (x *WriteVolumeCacheRequest) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WriteVolumeCacheRequest.ProtoReflect.Descriptor instead. +func (*WriteVolumeCacheRequest) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{18} +} + +func (x *WriteVolumeCacheRequest) GetVolumeId() string { + if x != nil { + return x.VolumeId + } + return "" +} + +type WriteVolumeCacheResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *WriteVolumeCacheResponse) Reset() { + *x = WriteVolumeCacheResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WriteVolumeCacheResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WriteVolumeCacheResponse) ProtoMessage() {} + +func (x *WriteVolumeCacheResponse) ProtoReflect() protoreflect.Message { + mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WriteVolumeCacheResponse.ProtoReflect.Descriptor instead. +func (*WriteVolumeCacheResponse) Descriptor() ([]byte, []int) { + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{19} +} + +var File_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto protoreflect.FileDescriptor + +var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc = []byte{ + 0x0a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x66, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x3a, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4f, + 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x12, + 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, + 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, + 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x14, 0x55, 0x6e, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x17, 0x0a, + 0x15, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x0a, 0x18, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, + 0x39, 0x0a, 0x19, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x22, 0x32, 0x0a, 0x13, 0x46, 0x6f, + 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x16, + 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, + 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x73, + 0x69, 0x7a, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x34, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, + 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x22, 0x3f, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x49, 0x64, 0x22, 0x44, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, + 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x43, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x40, 0x0a, + 0x21, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, 0x72, 0x6f, 0x6d, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, + 0x36, 0x0a, 0x17, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, + 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x57, 0x72, 0x69, 0x74, 0x65, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x06, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x52, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4f, 0x6e, 0x44, + 0x69, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x73, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x73, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, + 0x65, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, + 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, + 0x64, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x43, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x7a, + 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, + 0x49, 0x44, 0x12, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, + 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, + 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, + 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, + 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, + 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x10, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, + 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, + 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, + 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, + 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, + 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescOnce sync.Once + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData = file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc +) + +func file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP() []byte { + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescOnce.Do(func() { + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData) + }) + return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData +} + +var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_goTypes = []interface{}{ + (*ListVolumesOnDiskRequest)(nil), // 0: v1.ListVolumesOnDiskRequest + (*ListVolumesOnDiskResponse)(nil), // 1: v1.ListVolumesOnDiskResponse + (*MountVolumeRequest)(nil), // 2: v1.MountVolumeRequest + (*MountVolumeResponse)(nil), // 3: v1.MountVolumeResponse + (*UnmountVolumeRequest)(nil), // 4: v1.UnmountVolumeRequest + (*UnmountVolumeResponse)(nil), // 5: v1.UnmountVolumeResponse + (*IsVolumeFormattedRequest)(nil), // 6: v1.IsVolumeFormattedRequest + (*IsVolumeFormattedResponse)(nil), // 7: v1.IsVolumeFormattedResponse + (*FormatVolumeRequest)(nil), // 8: v1.FormatVolumeRequest + (*FormatVolumeResponse)(nil), // 9: v1.FormatVolumeResponse + (*ResizeVolumeRequest)(nil), // 10: v1.ResizeVolumeRequest + (*ResizeVolumeResponse)(nil), // 11: v1.ResizeVolumeResponse + (*GetVolumeStatsRequest)(nil), // 12: v1.GetVolumeStatsRequest + (*GetVolumeStatsResponse)(nil), // 13: v1.GetVolumeStatsResponse + (*GetDiskNumberFromVolumeIDRequest)(nil), // 14: v1.GetDiskNumberFromVolumeIDRequest + (*GetDiskNumberFromVolumeIDResponse)(nil), // 15: v1.GetDiskNumberFromVolumeIDResponse + (*GetVolumeIDFromTargetPathRequest)(nil), // 16: v1.GetVolumeIDFromTargetPathRequest + (*GetVolumeIDFromTargetPathResponse)(nil), // 17: v1.GetVolumeIDFromTargetPathResponse + (*WriteVolumeCacheRequest)(nil), // 18: v1.WriteVolumeCacheRequest + (*WriteVolumeCacheResponse)(nil), // 19: v1.WriteVolumeCacheResponse +} +var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_depIdxs = []int32{ + 0, // 0: v1.Volume.ListVolumesOnDisk:input_type -> v1.ListVolumesOnDiskRequest + 2, // 1: v1.Volume.MountVolume:input_type -> v1.MountVolumeRequest + 4, // 2: v1.Volume.UnmountVolume:input_type -> v1.UnmountVolumeRequest + 6, // 3: v1.Volume.IsVolumeFormatted:input_type -> v1.IsVolumeFormattedRequest + 8, // 4: v1.Volume.FormatVolume:input_type -> v1.FormatVolumeRequest + 10, // 5: v1.Volume.ResizeVolume:input_type -> v1.ResizeVolumeRequest + 12, // 6: v1.Volume.GetVolumeStats:input_type -> v1.GetVolumeStatsRequest + 14, // 7: v1.Volume.GetDiskNumberFromVolumeID:input_type -> v1.GetDiskNumberFromVolumeIDRequest + 16, // 8: v1.Volume.GetVolumeIDFromTargetPath:input_type -> v1.GetVolumeIDFromTargetPathRequest + 18, // 9: v1.Volume.WriteVolumeCache:input_type -> v1.WriteVolumeCacheRequest + 1, // 10: v1.Volume.ListVolumesOnDisk:output_type -> v1.ListVolumesOnDiskResponse + 3, // 11: v1.Volume.MountVolume:output_type -> v1.MountVolumeResponse + 5, // 12: v1.Volume.UnmountVolume:output_type -> v1.UnmountVolumeResponse + 7, // 13: v1.Volume.IsVolumeFormatted:output_type -> v1.IsVolumeFormattedResponse + 9, // 14: v1.Volume.FormatVolume:output_type -> v1.FormatVolumeResponse + 11, // 15: v1.Volume.ResizeVolume:output_type -> v1.ResizeVolumeResponse + 13, // 16: v1.Volume.GetVolumeStats:output_type -> v1.GetVolumeStatsResponse + 15, // 17: v1.Volume.GetDiskNumberFromVolumeID:output_type -> v1.GetDiskNumberFromVolumeIDResponse + 17, // 18: v1.Volume.GetVolumeIDFromTargetPath:output_type -> v1.GetVolumeIDFromTargetPathResponse + 19, // 19: v1.Volume.WriteVolumeCache:output_type -> v1.WriteVolumeCacheResponse + 10, // [10:20] is the sub-list for method output_type + 0, // [0:10] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_init() } +func file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_init() { + if File_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListVolumesOnDiskRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListVolumesOnDiskResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MountVolumeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnmountVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnmountVolumeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsVolumeFormattedRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsVolumeFormattedResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FormatVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FormatVolumeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResizeVolumeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResizeVolumeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVolumeStatsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVolumeStatsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDiskNumberFromVolumeIDRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDiskNumberFromVolumeIDResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVolumeIDFromTargetPathRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVolumeIDFromTargetPathResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteVolumeCacheRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WriteVolumeCacheResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 20, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_goTypes, + DependencyIndexes: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_depIdxs, + MessageInfos: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes, + }.Build() + File_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto = out.File + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc = nil + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_goTypes = nil + file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// VolumeClient is the client API for Volume service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type VolumeClient interface { + // ListVolumesOnDisk returns the volume IDs (in \\.\Volume{GUID} format) for all volumes from a + // given disk number and partition number (optional) + ListVolumesOnDisk(ctx context.Context, in *ListVolumesOnDiskRequest, opts ...grpc.CallOption) (*ListVolumesOnDiskResponse, error) + // MountVolume mounts the volume at the requested global staging path. + MountVolume(ctx context.Context, in *MountVolumeRequest, opts ...grpc.CallOption) (*MountVolumeResponse, error) + // UnmountVolume flushes data cache to disk and removes the global staging path. + UnmountVolume(ctx context.Context, in *UnmountVolumeRequest, opts ...grpc.CallOption) (*UnmountVolumeResponse, error) + // IsVolumeFormatted checks if a volume is formatted. + IsVolumeFormatted(ctx context.Context, in *IsVolumeFormattedRequest, opts ...grpc.CallOption) (*IsVolumeFormattedResponse, error) + // FormatVolume formats a volume with NTFS. + FormatVolume(ctx context.Context, in *FormatVolumeRequest, opts ...grpc.CallOption) (*FormatVolumeResponse, error) + // ResizeVolume performs resizing of the partition and file system for a block based volume. + ResizeVolume(ctx context.Context, in *ResizeVolumeRequest, opts ...grpc.CallOption) (*ResizeVolumeResponse, error) + // GetVolumeStats gathers total bytes and used bytes for a volume. + GetVolumeStats(ctx context.Context, in *GetVolumeStatsRequest, opts ...grpc.CallOption) (*GetVolumeStatsResponse, error) + // GetDiskNumberFromVolumeID gets the disk number of the disk where the volume is located. + GetDiskNumberFromVolumeID(ctx context.Context, in *GetDiskNumberFromVolumeIDRequest, opts ...grpc.CallOption) (*GetDiskNumberFromVolumeIDResponse, error) + // GetVolumeIDFromTargetPath gets the volume id for a given target path. + GetVolumeIDFromTargetPath(ctx context.Context, in *GetVolumeIDFromTargetPathRequest, opts ...grpc.CallOption) (*GetVolumeIDFromTargetPathResponse, error) + // WriteVolumeCache write volume cache to disk. + WriteVolumeCache(ctx context.Context, in *WriteVolumeCacheRequest, opts ...grpc.CallOption) (*WriteVolumeCacheResponse, error) +} + +type volumeClient struct { + cc grpc.ClientConnInterface +} + +func NewVolumeClient(cc grpc.ClientConnInterface) VolumeClient { + return &volumeClient{cc} +} + +func (c *volumeClient) ListVolumesOnDisk(ctx context.Context, in *ListVolumesOnDiskRequest, opts ...grpc.CallOption) (*ListVolumesOnDiskResponse, error) { + out := new(ListVolumesOnDiskResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/ListVolumesOnDisk", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) MountVolume(ctx context.Context, in *MountVolumeRequest, opts ...grpc.CallOption) (*MountVolumeResponse, error) { + out := new(MountVolumeResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/MountVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) UnmountVolume(ctx context.Context, in *UnmountVolumeRequest, opts ...grpc.CallOption) (*UnmountVolumeResponse, error) { + out := new(UnmountVolumeResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/UnmountVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) IsVolumeFormatted(ctx context.Context, in *IsVolumeFormattedRequest, opts ...grpc.CallOption) (*IsVolumeFormattedResponse, error) { + out := new(IsVolumeFormattedResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/IsVolumeFormatted", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) FormatVolume(ctx context.Context, in *FormatVolumeRequest, opts ...grpc.CallOption) (*FormatVolumeResponse, error) { + out := new(FormatVolumeResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/FormatVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) ResizeVolume(ctx context.Context, in *ResizeVolumeRequest, opts ...grpc.CallOption) (*ResizeVolumeResponse, error) { + out := new(ResizeVolumeResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/ResizeVolume", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) GetVolumeStats(ctx context.Context, in *GetVolumeStatsRequest, opts ...grpc.CallOption) (*GetVolumeStatsResponse, error) { + out := new(GetVolumeStatsResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/GetVolumeStats", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) GetDiskNumberFromVolumeID(ctx context.Context, in *GetDiskNumberFromVolumeIDRequest, opts ...grpc.CallOption) (*GetDiskNumberFromVolumeIDResponse, error) { + out := new(GetDiskNumberFromVolumeIDResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/GetDiskNumberFromVolumeID", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) GetVolumeIDFromTargetPath(ctx context.Context, in *GetVolumeIDFromTargetPathRequest, opts ...grpc.CallOption) (*GetVolumeIDFromTargetPathResponse, error) { + out := new(GetVolumeIDFromTargetPathResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/GetVolumeIDFromTargetPath", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *volumeClient) WriteVolumeCache(ctx context.Context, in *WriteVolumeCacheRequest, opts ...grpc.CallOption) (*WriteVolumeCacheResponse, error) { + out := new(WriteVolumeCacheResponse) + err := c.cc.Invoke(ctx, "/v1.Volume/WriteVolumeCache", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// VolumeServer is the server API for Volume service. +type VolumeServer interface { + // ListVolumesOnDisk returns the volume IDs (in \\.\Volume{GUID} format) for all volumes from a + // given disk number and partition number (optional) + ListVolumesOnDisk(context.Context, *ListVolumesOnDiskRequest) (*ListVolumesOnDiskResponse, error) + // MountVolume mounts the volume at the requested global staging path. + MountVolume(context.Context, *MountVolumeRequest) (*MountVolumeResponse, error) + // UnmountVolume flushes data cache to disk and removes the global staging path. + UnmountVolume(context.Context, *UnmountVolumeRequest) (*UnmountVolumeResponse, error) + // IsVolumeFormatted checks if a volume is formatted. + IsVolumeFormatted(context.Context, *IsVolumeFormattedRequest) (*IsVolumeFormattedResponse, error) + // FormatVolume formats a volume with NTFS. + FormatVolume(context.Context, *FormatVolumeRequest) (*FormatVolumeResponse, error) + // ResizeVolume performs resizing of the partition and file system for a block based volume. + ResizeVolume(context.Context, *ResizeVolumeRequest) (*ResizeVolumeResponse, error) + // GetVolumeStats gathers total bytes and used bytes for a volume. + GetVolumeStats(context.Context, *GetVolumeStatsRequest) (*GetVolumeStatsResponse, error) + // GetDiskNumberFromVolumeID gets the disk number of the disk where the volume is located. + GetDiskNumberFromVolumeID(context.Context, *GetDiskNumberFromVolumeIDRequest) (*GetDiskNumberFromVolumeIDResponse, error) + // GetVolumeIDFromTargetPath gets the volume id for a given target path. + GetVolumeIDFromTargetPath(context.Context, *GetVolumeIDFromTargetPathRequest) (*GetVolumeIDFromTargetPathResponse, error) + // WriteVolumeCache write volume cache to disk. + WriteVolumeCache(context.Context, *WriteVolumeCacheRequest) (*WriteVolumeCacheResponse, error) +} + +// UnimplementedVolumeServer can be embedded to have forward compatible implementations. +type UnimplementedVolumeServer struct { +} + +func (*UnimplementedVolumeServer) ListVolumesOnDisk(context.Context, *ListVolumesOnDiskRequest) (*ListVolumesOnDiskResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListVolumesOnDisk not implemented") +} +func (*UnimplementedVolumeServer) MountVolume(context.Context, *MountVolumeRequest) (*MountVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method MountVolume not implemented") +} +func (*UnimplementedVolumeServer) UnmountVolume(context.Context, *UnmountVolumeRequest) (*UnmountVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnmountVolume not implemented") +} +func (*UnimplementedVolumeServer) IsVolumeFormatted(context.Context, *IsVolumeFormattedRequest) (*IsVolumeFormattedResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method IsVolumeFormatted not implemented") +} +func (*UnimplementedVolumeServer) FormatVolume(context.Context, *FormatVolumeRequest) (*FormatVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FormatVolume not implemented") +} +func (*UnimplementedVolumeServer) ResizeVolume(context.Context, *ResizeVolumeRequest) (*ResizeVolumeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResizeVolume not implemented") +} +func (*UnimplementedVolumeServer) GetVolumeStats(context.Context, *GetVolumeStatsRequest) (*GetVolumeStatsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVolumeStats not implemented") +} +func (*UnimplementedVolumeServer) GetDiskNumberFromVolumeID(context.Context, *GetDiskNumberFromVolumeIDRequest) (*GetDiskNumberFromVolumeIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDiskNumberFromVolumeID not implemented") +} +func (*UnimplementedVolumeServer) GetVolumeIDFromTargetPath(context.Context, *GetVolumeIDFromTargetPathRequest) (*GetVolumeIDFromTargetPathResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetVolumeIDFromTargetPath not implemented") +} +func (*UnimplementedVolumeServer) WriteVolumeCache(context.Context, *WriteVolumeCacheRequest) (*WriteVolumeCacheResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method WriteVolumeCache not implemented") +} + +func RegisterVolumeServer(s *grpc.Server, srv VolumeServer) { + s.RegisterService(&_Volume_serviceDesc, srv) +} + +func _Volume_ListVolumesOnDisk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListVolumesOnDiskRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).ListVolumesOnDisk(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/ListVolumesOnDisk", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).ListVolumesOnDisk(ctx, req.(*ListVolumesOnDiskRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_MountVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MountVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).MountVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/MountVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).MountVolume(ctx, req.(*MountVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_UnmountVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnmountVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).UnmountVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/UnmountVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).UnmountVolume(ctx, req.(*UnmountVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_IsVolumeFormatted_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IsVolumeFormattedRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).IsVolumeFormatted(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/IsVolumeFormatted", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).IsVolumeFormatted(ctx, req.(*IsVolumeFormattedRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_FormatVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FormatVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).FormatVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/FormatVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).FormatVolume(ctx, req.(*FormatVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_ResizeVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResizeVolumeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).ResizeVolume(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/ResizeVolume", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).ResizeVolume(ctx, req.(*ResizeVolumeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_GetVolumeStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVolumeStatsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).GetVolumeStats(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/GetVolumeStats", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).GetVolumeStats(ctx, req.(*GetVolumeStatsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_GetDiskNumberFromVolumeID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDiskNumberFromVolumeIDRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).GetDiskNumberFromVolumeID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/GetDiskNumberFromVolumeID", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).GetDiskNumberFromVolumeID(ctx, req.(*GetDiskNumberFromVolumeIDRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_GetVolumeIDFromTargetPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetVolumeIDFromTargetPathRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).GetVolumeIDFromTargetPath(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/GetVolumeIDFromTargetPath", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).GetVolumeIDFromTargetPath(ctx, req.(*GetVolumeIDFromTargetPathRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Volume_WriteVolumeCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WriteVolumeCacheRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(VolumeServer).WriteVolumeCache(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/v1.Volume/WriteVolumeCache", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(VolumeServer).WriteVolumeCache(ctx, req.(*WriteVolumeCacheRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Volume_serviceDesc = grpc.ServiceDesc{ + ServiceName: "v1.Volume", + HandlerType: (*VolumeServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListVolumesOnDisk", + Handler: _Volume_ListVolumesOnDisk_Handler, + }, + { + MethodName: "MountVolume", + Handler: _Volume_MountVolume_Handler, + }, + { + MethodName: "UnmountVolume", + Handler: _Volume_UnmountVolume_Handler, + }, + { + MethodName: "IsVolumeFormatted", + Handler: _Volume_IsVolumeFormatted_Handler, + }, + { + MethodName: "FormatVolume", + Handler: _Volume_FormatVolume_Handler, + }, + { + MethodName: "ResizeVolume", + Handler: _Volume_ResizeVolume_Handler, + }, + { + MethodName: "GetVolumeStats", + Handler: _Volume_GetVolumeStats_Handler, + }, + { + MethodName: "GetDiskNumberFromVolumeID", + Handler: _Volume_GetDiskNumberFromVolumeID_Handler, + }, + { + MethodName: "GetVolumeIDFromTargetPath", + Handler: _Volume_GetVolumeIDFromTargetPath_Handler, + }, + { + MethodName: "WriteVolumeCache", + Handler: _Volume_WriteVolumeCache_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto", +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto new file mode 100644 index 0000000000..a065381041 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto @@ -0,0 +1,143 @@ +syntax = "proto3"; + +package v1; + +option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1"; + +service Volume { + // ListVolumesOnDisk returns the volume IDs (in \\.\Volume{GUID} format) for all volumes from a + // given disk number and partition number (optional) + rpc ListVolumesOnDisk(ListVolumesOnDiskRequest) returns (ListVolumesOnDiskResponse) {} + + // MountVolume mounts the volume at the requested global staging path. + rpc MountVolume(MountVolumeRequest) returns (MountVolumeResponse) {} + + // UnmountVolume flushes data cache to disk and removes the global staging path. + rpc UnmountVolume(UnmountVolumeRequest) returns (UnmountVolumeResponse) {} + + // IsVolumeFormatted checks if a volume is formatted. + rpc IsVolumeFormatted(IsVolumeFormattedRequest) returns (IsVolumeFormattedResponse) {} + + // FormatVolume formats a volume with NTFS. + rpc FormatVolume(FormatVolumeRequest) returns (FormatVolumeResponse) {} + + // ResizeVolume performs resizing of the partition and file system for a block based volume. + rpc ResizeVolume(ResizeVolumeRequest) returns (ResizeVolumeResponse) {} + + // GetVolumeStats gathers total bytes and used bytes for a volume. + rpc GetVolumeStats(GetVolumeStatsRequest) returns (GetVolumeStatsResponse) {} + + // GetDiskNumberFromVolumeID gets the disk number of the disk where the volume is located. + rpc GetDiskNumberFromVolumeID(GetDiskNumberFromVolumeIDRequest) returns (GetDiskNumberFromVolumeIDResponse ) {} + + // GetVolumeIDFromTargetPath gets the volume id for a given target path. + rpc GetVolumeIDFromTargetPath(GetVolumeIDFromTargetPathRequest) returns (GetVolumeIDFromTargetPathResponse) {} + + // WriteVolumeCache write volume cache to disk. + rpc WriteVolumeCache(WriteVolumeCacheRequest) returns (WriteVolumeCacheResponse) {} +} + +message ListVolumesOnDiskRequest { + // Disk device number of the disk to query for volumes. + uint32 disk_number = 1; + // The partition number (optional), by default it uses the first partition of the disk. + uint32 partition_number = 2; +} + +message ListVolumesOnDiskResponse { + // Volume device IDs of volumes on the specified disk. + repeated string volume_ids = 1; +} + +message MountVolumeRequest { + // Volume device ID of the volume to mount. + string volume_id = 1; + // Path in the host's file system where the volume needs to be mounted. + string target_path = 2; +} + +message MountVolumeResponse { + // Intentionally empty. +} + +message UnmountVolumeRequest { + // Volume device ID of the volume to dismount. + string volume_id = 1; + // Path where the volume has been mounted. + string target_path = 2; +} + +message UnmountVolumeResponse { + // Intentionally empty. +} + +message IsVolumeFormattedRequest { + // Volume device ID of the volume to check. + string volume_id = 1; +} + +message IsVolumeFormattedResponse { + // Is the volume formatted with NTFS. + bool formatted = 1; +} + +message FormatVolumeRequest { + // Volume device ID of the volume to format. + string volume_id = 1; +} + +message FormatVolumeResponse { + // Intentionally empty. +} + +message ResizeVolumeRequest { + // Volume device ID of the volume to resize. + string volume_id = 1; + // New size in bytes of the volume. + int64 size_bytes = 2; +} + +message ResizeVolumeResponse { + // Intentionally empty. +} + +message GetVolumeStatsRequest{ + // Volume device Id of the volume to get the stats for. + string volume_id = 1; +} + +message GetVolumeStatsResponse{ + // Total bytes + int64 total_bytes = 1; + // Used bytes + int64 used_bytes = 2; +} + +message GetDiskNumberFromVolumeIDRequest { + // Volume device ID of the volume to get the disk number for. + string volume_id = 1; +} + +message GetDiskNumberFromVolumeIDResponse { + // Corresponding disk number. + uint32 disk_number = 1; +} + +message GetVolumeIDFromTargetPathRequest { + // The target path. + string target_path = 1; +} + +message GetVolumeIDFromTargetPathResponse { + // The volume device ID. + string volume_id = 1; +} + +message WriteVolumeCacheRequest { + // Volume device ID of the volume to flush the cache. + string volume_id = 1; +} + +message WriteVolumeCacheResponse { + // Intentionally empty. +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go new file mode 100644 index 0000000000..e4f0cd0426 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go @@ -0,0 +1,143 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ +package apiversion + +import ( + "fmt" + "regexp" + "strconv" + + "github.com/pkg/errors" +) + +// API version names follow k8s style version names: +// valid API version names examples: "v1", "v1alpha2", "v2beta3", etc... +var nameRegex = regexp.MustCompile("^v([1-9][0-9]*)(?:(alpha|beta)([1-9][0-9]*))?$") + +type qualifier uint + +const ( + alpha qualifier = iota + beta + stable +) + +type Version struct { + // major version number, eg 1 for "v1", 2 for "v2beta3" + major uint + + // qualifier is "alpha" or "beta" + qualifier qualifier + + // the qualifier's version, eg 2 for "v1alpha2" or 3 for "v2beta3" + qualifierVersion uint + + rawName string +} + +// NewVersion builds a Version from a version string, eg "v1alpha2" +func NewVersion(name string) (version Version, err error) { + matches := nameRegex.FindStringSubmatch(name) + if len(matches) < 2 || matches[1] == "" { + err = fmt.Errorf("invalid version name: %q", name) + return + } + + major, err := toUint(matches[1], name) + if err != nil { + return + } + + qualifier := stable + var qualifierVersion uint + if len(matches) >= 4 && matches[2] != "" { + switch matches[2] { + case "alpha": + qualifier = alpha + case "beta": + qualifier = beta + } + + qualifierVersion, err = toUint(matches[3], name) + if err != nil { + return + } + } + + version.major = major + version.qualifier = qualifier + version.qualifierVersion = qualifierVersion + version.rawName = name + + return +} + +// NewVersionOrPanic is the same as NewVersion, but panics if +// passed an invalid version name. +func NewVersionOrPanic(name string) Version { + version, err := NewVersion(name) + if err != nil { + panic(err) + } + return version +} + +// IsValidVersion returns true iff the input is a valid version name. +func IsValidVersion(name string) bool { + return nameRegex.MatchString(name) +} + +func toUint(s, name string) (uint, error) { + i, err := strconv.ParseUint(s, 10, 0) + if err != nil { + return 0, errors.Wrapf(err, "unable to convert %q from version name %q to int", s, name) + } + return uint(i), nil +} + +type Comparison int + +const ( + Lesser Comparison = -1 + Equal Comparison = 0 + Greater Comparison = 1 +) + +// Compare return Lesser if v < other (ie other is more recent), Equal if v == other, +// and Greater if v > other (ie v is more recent) +func (v Version) Compare(other Version) Comparison { + if cmp := compareUints(v.major, other.major); cmp != Equal { + return cmp + } + if cmp := compareUints(uint(v.qualifier), uint(other.qualifier)); cmp != Equal { + return cmp + } + return compareUints(v.qualifierVersion, other.qualifierVersion) +} + +func compareUints(a, b uint) Comparison { + if a < b { + return Lesser + } + if a > b { + return Greater + } + return Equal +} + +func (v Version) String() string { + return v.rawName +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go new file mode 100644 index 0000000000..9c932a77f1 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go @@ -0,0 +1,94 @@ +// Code generated by csi-proxy-api-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + "net" + + "github.com/Microsoft/go-winio" + "github.com/kubernetes-csi/csi-proxy/client" + "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1" + "github.com/kubernetes-csi/csi-proxy/client/apiversion" + "google.golang.org/grpc" +) + +// GroupName is the group name of this API. +const GroupName = "disk" + +// Version is the api version. +var Version = apiversion.NewVersionOrPanic("v1") + +type Client struct { + client v1.DiskClient + connection *grpc.ClientConn +} + +// NewClient returns a client to make calls to the disk API group version v1. +// It's the caller's responsibility to Close the client when done. +func NewClient() (*Client, error) { + pipePath := client.PipePath(GroupName, Version) + return NewClientWithPipePath(pipePath) +} + +// NewClientWithPipePath returns a client to make calls to the named pipe located at "pipePath". +// It's the caller's responsibility to Close the client when done. +func NewClientWithPipePath(pipePath string) (*Client, error) { + + // verify that the pipe exists + _, err := winio.DialPipe(pipePath, nil) + if err != nil { + return nil, err + } + + connection, err := grpc.Dial(pipePath, + grpc.WithContextDialer(func(context context.Context, s string) (net.Conn, error) { + return winio.DialPipeContext(context, s) + }), + grpc.WithInsecure()) + if err != nil { + return nil, err + } + + client := v1.NewDiskClient(connection) + return &Client{ + client: client, + connection: connection, + }, nil +} + +// Close closes the client. It must be called before the client gets GC-ed. +func (w *Client) Close() error { + return w.connection.Close() +} + +// ensures we implement all the required methods +var _ v1.DiskClient = &Client{} + +func (w *Client) GetDiskState(context context.Context, request *v1.GetDiskStateRequest, opts ...grpc.CallOption) (*v1.GetDiskStateResponse, error) { + return w.client.GetDiskState(context, request, opts...) +} + +func (w *Client) GetDiskStats(context context.Context, request *v1.GetDiskStatsRequest, opts ...grpc.CallOption) (*v1.GetDiskStatsResponse, error) { + return w.client.GetDiskStats(context, request, opts...) +} + +func (w *Client) ListDiskIDs(context context.Context, request *v1.ListDiskIDsRequest, opts ...grpc.CallOption) (*v1.ListDiskIDsResponse, error) { + return w.client.ListDiskIDs(context, request, opts...) +} + +func (w *Client) ListDiskLocations(context context.Context, request *v1.ListDiskLocationsRequest, opts ...grpc.CallOption) (*v1.ListDiskLocationsResponse, error) { + return w.client.ListDiskLocations(context, request, opts...) +} + +func (w *Client) PartitionDisk(context context.Context, request *v1.PartitionDiskRequest, opts ...grpc.CallOption) (*v1.PartitionDiskResponse, error) { + return w.client.PartitionDisk(context, request, opts...) +} + +func (w *Client) Rescan(context context.Context, request *v1.RescanRequest, opts ...grpc.CallOption) (*v1.RescanResponse, error) { + return w.client.Rescan(context, request, opts...) +} + +func (w *Client) SetDiskState(context context.Context, request *v1.SetDiskStateRequest, opts ...grpc.CallOption) (*v1.SetDiskStateResponse, error) { + return w.client.SetDiskState(context, request, opts...) +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go new file mode 100644 index 0000000000..cf136c9d71 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go @@ -0,0 +1,86 @@ +// Code generated by csi-proxy-api-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + "net" + + "github.com/Microsoft/go-winio" + "github.com/kubernetes-csi/csi-proxy/client" + "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1" + "github.com/kubernetes-csi/csi-proxy/client/apiversion" + "google.golang.org/grpc" +) + +// GroupName is the group name of this API. +const GroupName = "filesystem" + +// Version is the api version. +var Version = apiversion.NewVersionOrPanic("v1") + +type Client struct { + client v1.FilesystemClient + connection *grpc.ClientConn +} + +// NewClient returns a client to make calls to the filesystem API group version v1. +// It's the caller's responsibility to Close the client when done. +func NewClient() (*Client, error) { + pipePath := client.PipePath(GroupName, Version) + return NewClientWithPipePath(pipePath) +} + +// NewClientWithPipePath returns a client to make calls to the named pipe located at "pipePath". +// It's the caller's responsibility to Close the client when done. +func NewClientWithPipePath(pipePath string) (*Client, error) { + + // verify that the pipe exists + _, err := winio.DialPipe(pipePath, nil) + if err != nil { + return nil, err + } + + connection, err := grpc.Dial(pipePath, + grpc.WithContextDialer(func(context context.Context, s string) (net.Conn, error) { + return winio.DialPipeContext(context, s) + }), + grpc.WithInsecure()) + if err != nil { + return nil, err + } + + client := v1.NewFilesystemClient(connection) + return &Client{ + client: client, + connection: connection, + }, nil +} + +// Close closes the client. It must be called before the client gets GC-ed. +func (w *Client) Close() error { + return w.connection.Close() +} + +// ensures we implement all the required methods +var _ v1.FilesystemClient = &Client{} + +func (w *Client) CreateSymlink(context context.Context, request *v1.CreateSymlinkRequest, opts ...grpc.CallOption) (*v1.CreateSymlinkResponse, error) { + return w.client.CreateSymlink(context, request, opts...) +} + +func (w *Client) IsSymlink(context context.Context, request *v1.IsSymlinkRequest, opts ...grpc.CallOption) (*v1.IsSymlinkResponse, error) { + return w.client.IsSymlink(context, request, opts...) +} + +func (w *Client) Mkdir(context context.Context, request *v1.MkdirRequest, opts ...grpc.CallOption) (*v1.MkdirResponse, error) { + return w.client.Mkdir(context, request, opts...) +} + +func (w *Client) PathExists(context context.Context, request *v1.PathExistsRequest, opts ...grpc.CallOption) (*v1.PathExistsResponse, error) { + return w.client.PathExists(context, request, opts...) +} + +func (w *Client) Rmdir(context context.Context, request *v1.RmdirRequest, opts ...grpc.CallOption) (*v1.RmdirResponse, error) { + return w.client.Rmdir(context, request, opts...) +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go new file mode 100644 index 0000000000..8c9a3cd773 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go @@ -0,0 +1,106 @@ +// Code generated by csi-proxy-api-gen. DO NOT EDIT. + +package v1 + +import ( + "context" + "net" + + "github.com/Microsoft/go-winio" + "github.com/kubernetes-csi/csi-proxy/client" + "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1" + "github.com/kubernetes-csi/csi-proxy/client/apiversion" + "google.golang.org/grpc" +) + +// GroupName is the group name of this API. +const GroupName = "volume" + +// Version is the api version. +var Version = apiversion.NewVersionOrPanic("v1") + +type Client struct { + client v1.VolumeClient + connection *grpc.ClientConn +} + +// NewClient returns a client to make calls to the volume API group version v1. +// It's the caller's responsibility to Close the client when done. +func NewClient() (*Client, error) { + pipePath := client.PipePath(GroupName, Version) + return NewClientWithPipePath(pipePath) +} + +// NewClientWithPipePath returns a client to make calls to the named pipe located at "pipePath". +// It's the caller's responsibility to Close the client when done. +func NewClientWithPipePath(pipePath string) (*Client, error) { + + // verify that the pipe exists + _, err := winio.DialPipe(pipePath, nil) + if err != nil { + return nil, err + } + + connection, err := grpc.Dial(pipePath, + grpc.WithContextDialer(func(context context.Context, s string) (net.Conn, error) { + return winio.DialPipeContext(context, s) + }), + grpc.WithInsecure()) + if err != nil { + return nil, err + } + + client := v1.NewVolumeClient(connection) + return &Client{ + client: client, + connection: connection, + }, nil +} + +// Close closes the client. It must be called before the client gets GC-ed. +func (w *Client) Close() error { + return w.connection.Close() +} + +// ensures we implement all the required methods +var _ v1.VolumeClient = &Client{} + +func (w *Client) FormatVolume(context context.Context, request *v1.FormatVolumeRequest, opts ...grpc.CallOption) (*v1.FormatVolumeResponse, error) { + return w.client.FormatVolume(context, request, opts...) +} + +func (w *Client) GetDiskNumberFromVolumeID(context context.Context, request *v1.GetDiskNumberFromVolumeIDRequest, opts ...grpc.CallOption) (*v1.GetDiskNumberFromVolumeIDResponse, error) { + return w.client.GetDiskNumberFromVolumeID(context, request, opts...) +} + +func (w *Client) GetVolumeIDFromTargetPath(context context.Context, request *v1.GetVolumeIDFromTargetPathRequest, opts ...grpc.CallOption) (*v1.GetVolumeIDFromTargetPathResponse, error) { + return w.client.GetVolumeIDFromTargetPath(context, request, opts...) +} + +func (w *Client) GetVolumeStats(context context.Context, request *v1.GetVolumeStatsRequest, opts ...grpc.CallOption) (*v1.GetVolumeStatsResponse, error) { + return w.client.GetVolumeStats(context, request, opts...) +} + +func (w *Client) IsVolumeFormatted(context context.Context, request *v1.IsVolumeFormattedRequest, opts ...grpc.CallOption) (*v1.IsVolumeFormattedResponse, error) { + return w.client.IsVolumeFormatted(context, request, opts...) +} + +func (w *Client) ListVolumesOnDisk(context context.Context, request *v1.ListVolumesOnDiskRequest, opts ...grpc.CallOption) (*v1.ListVolumesOnDiskResponse, error) { + return w.client.ListVolumesOnDisk(context, request, opts...) +} + +func (w *Client) MountVolume(context context.Context, request *v1.MountVolumeRequest, opts ...grpc.CallOption) (*v1.MountVolumeResponse, error) { + return w.client.MountVolume(context, request, opts...) +} + +func (w *Client) ResizeVolume(context context.Context, request *v1.ResizeVolumeRequest, opts ...grpc.CallOption) (*v1.ResizeVolumeResponse, error) { + return w.client.ResizeVolume(context, request, opts...) +} + +func (w *Client) UnmountVolume(context context.Context, request *v1.UnmountVolumeRequest, opts ...grpc.CallOption) (*v1.UnmountVolumeResponse, error) { + return w.client.UnmountVolume(context, request, opts...) +} + +func (w *Client) WriteVolumeCache(context context.Context, request *v1.WriteVolumeCacheRequest, opts ...grpc.CallOption) (*v1.WriteVolumeCacheResponse, error) { + return w.client.WriteVolumeCache(context, request, opts...) +} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go new file mode 100644 index 0000000000..5b4afc2819 --- /dev/null +++ b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go @@ -0,0 +1,35 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package client + +import ( + "github.com/kubernetes-csi/csi-proxy/client/apiversion" +) + +const ( + // pipePrefix is the prefix for Windows named pipes' names + pipePrefix = `\\.\\pipe\\` + + // CsiProxyNamedPipePrefix is the prefix for the named pipes the proxy creates. + // The suffix will be the API group and version, + // e.g. "\\.\\pipe\\csi-proxy-iscsi-v1", "\\.\\pipe\\csi-proxy-filesystem-v2alpha1", etc. + csiProxyNamedPipePrefix = "csi-proxy-" +) + +func PipePath(apiGroupName string, apiVersion apiversion.Version) string { + return pipePrefix + csiProxyNamedPipePrefix + apiGroupName + "-" + apiVersion.String() +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE b/ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go new file mode 100644 index 0000000000..b80e05efd0 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go @@ -0,0 +1,44 @@ +// Package mountinfo provides a set of functions to retrieve information about OS mounts. +// +// Currently it supports Linux. For historical reasons, there is also some support for FreeBSD and OpenBSD, +// and a shallow implementation for Windows, but in general this is Linux-only package, so +// the rest of the document only applies to Linux, unless explicitly specified otherwise. +// +// In Linux, information about mounts seen by the current process is available from +// /proc/self/mountinfo. Note that due to mount namespaces, different processes can +// see different mounts. A per-process mountinfo table is available from /proc//mountinfo, +// where is a numerical process identifier. +// +// In general, /proc is not a very efficient interface, and mountinfo is not an exception. +// For example, there is no way to get information about a specific mount point (i.e. it +// is all-or-nothing). This package tries to hide the /proc ineffectiveness by using +// parse filters while reading mountinfo. A filter can skip some entries, or stop +// processing the rest of the file once the needed information is found. +// +// For mountinfo filters that accept path as an argument, the path must be absolute, +// having all symlinks resolved, and being cleaned (i.e. no extra slashes or dots). +// One way to achieve all of the above is to employ filepath.Abs followed by +// filepath.EvalSymlinks (the latter calls filepath.Clean on the result so +// there is no need to explicitly call filepath.Clean). +// +// NOTE that in many cases there is no need to consult mountinfo at all. Here are some +// of the cases where mountinfo should not be parsed: +// +// 1. Before performing a mount. Usually, this is not needed, but if required (say to +// prevent over-mounts), to check whether a directory is mounted, call os.Lstat +// on it and its parent directory, and compare their st.Sys().(*syscall.Stat_t).Dev +// fields -- if they differ, then the directory is the mount point. NOTE this does +// not work for bind mounts. Optionally, the filesystem type can also be checked +// by calling unix.Statfs and checking the Type field (i.e. filesystem type). +// +// 2. After performing a mount. If there is no error returned, the mount succeeded; +// checking the mount table for a new mount is redundant and expensive. +// +// 3. Before performing an unmount. It is more efficient to do an unmount and ignore +// a specific error (EINVAL) which tells the directory is not mounted. +// +// 4. After performing an unmount. If there is no error returned, the unmount succeeded. +// +// 5. To find the mount point root of a specific directory. You can perform os.Stat() +// on the directory and traverse up until the Dev field of a parent directory differs. +package mountinfo diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go new file mode 100644 index 0000000000..e78e726196 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go @@ -0,0 +1,101 @@ +package mountinfo + +import ( + "os" + "path/filepath" + + "golang.org/x/sys/unix" +) + +// MountedFast is a method of detecting a mount point without reading +// mountinfo from procfs. A caller can only trust the result if no error +// and sure == true are returned. Otherwise, other methods (e.g. parsing +// /proc/mounts) have to be used. If unsure, use Mounted instead (which +// uses MountedFast, but falls back to parsing mountinfo if needed). +// +// If a non-existent path is specified, an appropriate error is returned. +// In case the caller is not interested in this particular error, it should +// be handled separately using e.g. errors.Is(err, fs.ErrNotExist). +// +// This function is only available on Linux. When available (since kernel +// v5.6), openat2(2) syscall is used to reliably detect all mounts. Otherwise, +// the implementation falls back to using stat(2), which can reliably detect +// normal (but not bind) mounts. +func MountedFast(path string) (mounted, sure bool, err error) { + // Root is always mounted. + if path == string(os.PathSeparator) { + return true, true, nil + } + + path, err = normalizePath(path) + if err != nil { + return false, false, err + } + mounted, sure, err = mountedFast(path) + return +} + +// mountedByOpenat2 is a method of detecting a mount that works for all kinds +// of mounts (incl. bind mounts), but requires a recent (v5.6+) linux kernel. +func mountedByOpenat2(path string) (bool, error) { + dir, last := filepath.Split(path) + + dirfd, err := unix.Openat2(unix.AT_FDCWD, dir, &unix.OpenHow{ + Flags: unix.O_PATH | unix.O_CLOEXEC, + }) + if err != nil { + return false, &os.PathError{Op: "openat2", Path: dir, Err: err} + } + fd, err := unix.Openat2(dirfd, last, &unix.OpenHow{ + Flags: unix.O_PATH | unix.O_CLOEXEC | unix.O_NOFOLLOW, + Resolve: unix.RESOLVE_NO_XDEV, + }) + _ = unix.Close(dirfd) + switch err { //nolint:errorlint // unix errors are bare + case nil: // definitely not a mount + _ = unix.Close(fd) + return false, nil + case unix.EXDEV: // definitely a mount + return true, nil + } + // not sure + return false, &os.PathError{Op: "openat2", Path: path, Err: err} +} + +// mountedFast is similar to MountedFast, except it expects a normalized path. +func mountedFast(path string) (mounted, sure bool, err error) { + // Root is always mounted. + if path == string(os.PathSeparator) { + return true, true, nil + } + + // Try a fast path, using openat2() with RESOLVE_NO_XDEV. + mounted, err = mountedByOpenat2(path) + if err == nil { + return mounted, true, nil + } + + // Another fast path: compare st.st_dev fields. + mounted, err = mountedByStat(path) + // This does not work for bind mounts, so false negative + // is possible, therefore only trust if return is true. + if mounted && err == nil { + return true, true, nil + } + + return +} + +func mounted(path string) (bool, error) { + path, err := normalizePath(path) + if err != nil { + return false, err + } + mounted, sure, err := mountedFast(path) + if sure && err == nil { + return mounted, nil + } + + // Fallback to parsing mountinfo. + return mountedByMountinfo(path) +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go new file mode 100644 index 0000000000..c7b7678f9a --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go @@ -0,0 +1,53 @@ +//go:build linux || freebsd || openbsd || darwin +// +build linux freebsd openbsd darwin + +package mountinfo + +import ( + "os" + "path/filepath" + + "golang.org/x/sys/unix" +) + +func mountedByStat(path string) (bool, error) { + var st unix.Stat_t + + if err := unix.Lstat(path, &st); err != nil { + return false, &os.PathError{Op: "stat", Path: path, Err: err} + } + dev := st.Dev + parent := filepath.Dir(path) + if err := unix.Lstat(parent, &st); err != nil { + return false, &os.PathError{Op: "stat", Path: parent, Err: err} + } + if dev != st.Dev { + // Device differs from that of parent, + // so definitely a mount point. + return true, nil + } + // NB: this does not detect bind mounts on Linux. + return false, nil +} + +func normalizePath(path string) (realPath string, err error) { + if realPath, err = filepath.Abs(path); err != nil { + return "", err + } + if realPath, err = filepath.EvalSymlinks(realPath); err != nil { + return "", err + } + if _, err := os.Stat(realPath); err != nil { + return "", err + } + return realPath, nil +} + +func mountedByMountinfo(path string) (bool, error) { + entries, err := GetMounts(SingleEntryFilter(path)) + if err != nil { + return false, err + } + + return len(entries) > 0, nil +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go new file mode 100644 index 0000000000..574aeb8767 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go @@ -0,0 +1,67 @@ +package mountinfo + +import ( + "os" +) + +// GetMounts retrieves a list of mounts for the current running process, +// with an optional filter applied (use nil for no filter). +func GetMounts(f FilterFunc) ([]*Info, error) { + return parseMountTable(f) +} + +// Mounted determines if a specified path is a mount point. In case of any +// error, false (and an error) is returned. +// +// If a non-existent path is specified, an appropriate error is returned. +// In case the caller is not interested in this particular error, it should +// be handled separately using e.g. errors.Is(err, fs.ErrNotExist). +func Mounted(path string) (bool, error) { + // root is always mounted + if path == string(os.PathSeparator) { + return true, nil + } + return mounted(path) +} + +// Info reveals information about a particular mounted filesystem. This +// struct is populated from the content in the /proc//mountinfo file. +type Info struct { + // ID is a unique identifier of the mount (may be reused after umount). + ID int + + // Parent is the ID of the parent mount (or of self for the root + // of this mount namespace's mount tree). + Parent int + + // Major and Minor are the major and the minor components of the Dev + // field of unix.Stat_t structure returned by unix.*Stat calls for + // files on this filesystem. + Major, Minor int + + // Root is the pathname of the directory in the filesystem which forms + // the root of this mount. + Root string + + // Mountpoint is the pathname of the mount point relative to the + // process's root directory. + Mountpoint string + + // Options is a comma-separated list of mount options. + Options string + + // Optional are zero or more fields of the form "tag[:value]", + // separated by a space. Currently, the possible optional fields are + // "shared", "master", "propagate_from", and "unbindable". For more + // information, see mount_namespaces(7) Linux man page. + Optional string + + // FSType is the filesystem type in the form "type[.subtype]". + FSType string + + // Source is filesystem-specific information, or "none". + Source string + + // VFSOptions is a comma-separated list of superblock options. + VFSOptions string +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go new file mode 100644 index 0000000000..8420f58c7a --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go @@ -0,0 +1,56 @@ +//go:build freebsd || openbsd || darwin +// +build freebsd openbsd darwin + +package mountinfo + +import "golang.org/x/sys/unix" + +// parseMountTable returns information about mounted filesystems +func parseMountTable(filter FilterFunc) ([]*Info, error) { + count, err := unix.Getfsstat(nil, unix.MNT_WAIT) + if err != nil { + return nil, err + } + + entries := make([]unix.Statfs_t, count) + _, err = unix.Getfsstat(entries, unix.MNT_WAIT) + if err != nil { + return nil, err + } + + var out []*Info + for _, entry := range entries { + var skip, stop bool + mountinfo := getMountinfo(&entry) + + if filter != nil { + // filter out entries we're not interested in + skip, stop = filter(mountinfo) + if skip { + continue + } + } + + out = append(out, mountinfo) + if stop { + break + } + } + return out, nil +} + +func mounted(path string) (bool, error) { + path, err := normalizePath(path) + if err != nil { + return false, err + } + // Fast path: compare st.st_dev fields. + // This should always work for FreeBSD and OpenBSD. + mounted, err := mountedByStat(path) + if err == nil { + return mounted, nil + } + + // Fallback to parsing mountinfo + return mountedByMountinfo(path) +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go new file mode 100644 index 0000000000..16079c3c54 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go @@ -0,0 +1,63 @@ +package mountinfo + +import "strings" + +// FilterFunc is a type defining a callback function for GetMount(), +// used to filter out mountinfo entries we're not interested in, +// and/or stop further processing if we found what we wanted. +// +// It takes a pointer to the Info struct (fully populated with all available +// fields on the GOOS platform), and returns two booleans: +// +// skip: true if the entry should be skipped; +// +// stop: true if parsing should be stopped after the entry. +type FilterFunc func(*Info) (skip, stop bool) + +// PrefixFilter discards all entries whose mount points do not start with, or +// are equal to the path specified in prefix. The prefix path must be absolute, +// have all symlinks resolved, and cleaned (i.e. no extra slashes or dots). +// +// PrefixFilter treats prefix as a path, not a partial prefix, which means that +// given "/foo", "/foo/bar" and "/foobar" entries, PrefixFilter("/foo") returns +// "/foo" and "/foo/bar", and discards "/foobar". +func PrefixFilter(prefix string) FilterFunc { + return func(m *Info) (bool, bool) { + skip := !strings.HasPrefix(m.Mountpoint+"/", prefix+"/") + return skip, false + } +} + +// SingleEntryFilter looks for a specific entry. +func SingleEntryFilter(mp string) FilterFunc { + return func(m *Info) (bool, bool) { + if m.Mountpoint == mp { + return false, true // don't skip, stop now + } + return true, false // skip, keep going + } +} + +// ParentsFilter returns all entries whose mount points +// can be parents of a path specified, discarding others. +// +// For example, given /var/lib/docker/something, entries +// like /var/lib/docker, /var and / are returned. +func ParentsFilter(path string) FilterFunc { + return func(m *Info) (bool, bool) { + skip := !strings.HasPrefix(path, m.Mountpoint) + return skip, false + } +} + +// FSTypeFilter returns all entries that match provided fstype(s). +func FSTypeFilter(fstype ...string) FilterFunc { + return func(m *Info) (bool, bool) { + for _, t := range fstype { + if m.FSType == t { + return false, false // don't skip, keep going + } + } + return true, false // skip, keep going + } +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go new file mode 100644 index 0000000000..ecaaa7a9c1 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go @@ -0,0 +1,14 @@ +//go:build freebsd || darwin +// +build freebsd darwin + +package mountinfo + +import "golang.org/x/sys/unix" + +func getMountinfo(entry *unix.Statfs_t) *Info { + return &Info{ + Mountpoint: unix.ByteSliceToString(entry.Mntonname[:]), + FSType: unix.ByteSliceToString(entry.Fstypename[:]), + Source: unix.ByteSliceToString(entry.Mntfromname[:]), + } +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go new file mode 100644 index 0000000000..59332b07bf --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go @@ -0,0 +1,214 @@ +package mountinfo + +import ( + "bufio" + "fmt" + "io" + "os" + "strconv" + "strings" +) + +// GetMountsFromReader retrieves a list of mounts from the +// reader provided, with an optional filter applied (use nil +// for no filter). This can be useful in tests or benchmarks +// that provide fake mountinfo data, or when a source other +// than /proc/self/mountinfo needs to be read from. +// +// This function is Linux-specific. +func GetMountsFromReader(r io.Reader, filter FilterFunc) ([]*Info, error) { + s := bufio.NewScanner(r) + out := []*Info{} + for s.Scan() { + var err error + + /* + See http://man7.org/linux/man-pages/man5/proc.5.html + + 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue + (1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11) + + (1) mount ID: unique identifier of the mount (may be reused after umount) + (2) parent ID: ID of parent (or of self for the top of the mount tree) + (3) major:minor: value of st_dev for files on filesystem + (4) root: root of the mount within the filesystem + (5) mount point: mount point relative to the process's root + (6) mount options: per mount options + (7) optional fields: zero or more fields of the form "tag[:value]" + (8) separator: marks the end of the optional fields + (9) filesystem type: name of filesystem of the form "type[.subtype]" + (10) mount source: filesystem specific information or "none" + (11) super options: per super block options + + In other words, we have: + * 6 mandatory fields (1)..(6) + * 0 or more optional fields (7) + * a separator field (8) + * 3 mandatory fields (9)..(11) + */ + + text := s.Text() + fields := strings.Split(text, " ") + numFields := len(fields) + if numFields < 10 { + // should be at least 10 fields + return nil, fmt.Errorf("parsing '%s' failed: not enough fields (%d)", text, numFields) + } + + // separator field + sepIdx := numFields - 4 + // In Linux <= 3.9 mounting a cifs with spaces in a share + // name (like "//srv/My Docs") _may_ end up having a space + // in the last field of mountinfo (like "unc=//serv/My Docs"). + // Since kernel 3.10-rc1, cifs option "unc=" is ignored, + // so spaces should not appear. + // + // Check for a separator, and work around the spaces bug + for fields[sepIdx] != "-" { + sepIdx-- + if sepIdx == 5 { + return nil, fmt.Errorf("parsing '%s' failed: missing - separator", text) + } + } + + p := &Info{} + + p.Mountpoint, err = unescape(fields[4]) + if err != nil { + return nil, fmt.Errorf("parsing '%s' failed: mount point: %w", fields[4], err) + } + p.FSType, err = unescape(fields[sepIdx+1]) + if err != nil { + return nil, fmt.Errorf("parsing '%s' failed: fstype: %w", fields[sepIdx+1], err) + } + p.Source, err = unescape(fields[sepIdx+2]) + if err != nil { + return nil, fmt.Errorf("parsing '%s' failed: source: %w", fields[sepIdx+2], err) + } + p.VFSOptions = fields[sepIdx+3] + + // ignore any numbers parsing errors, as there should not be any + p.ID, _ = strconv.Atoi(fields[0]) + p.Parent, _ = strconv.Atoi(fields[1]) + mm := strings.SplitN(fields[2], ":", 3) + if len(mm) != 2 { + return nil, fmt.Errorf("parsing '%s' failed: unexpected major:minor pair %s", text, mm) + } + p.Major, _ = strconv.Atoi(mm[0]) + p.Minor, _ = strconv.Atoi(mm[1]) + + p.Root, err = unescape(fields[3]) + if err != nil { + return nil, fmt.Errorf("parsing '%s' failed: root: %w", fields[3], err) + } + + p.Options = fields[5] + + // zero or more optional fields + p.Optional = strings.Join(fields[6:sepIdx], " ") + + // Run the filter after parsing all fields. + var skip, stop bool + if filter != nil { + skip, stop = filter(p) + if skip { + continue + } + } + + out = append(out, p) + if stop { + break + } + } + if err := s.Err(); err != nil { + return nil, err + } + return out, nil +} + +func parseMountTable(filter FilterFunc) ([]*Info, error) { + f, err := os.Open("/proc/self/mountinfo") + if err != nil { + return nil, err + } + defer f.Close() + + return GetMountsFromReader(f, filter) +} + +// PidMountInfo retrieves the list of mounts from a given process' mount +// namespace. Unless there is a need to get mounts from a mount namespace +// different from that of a calling process, use GetMounts. +// +// This function is Linux-specific. +// +// Deprecated: this will be removed before v1; use GetMountsFromReader with +// opened /proc//mountinfo as an argument instead. +func PidMountInfo(pid int) ([]*Info, error) { + f, err := os.Open(fmt.Sprintf("/proc/%d/mountinfo", pid)) + if err != nil { + return nil, err + } + defer f.Close() + + return GetMountsFromReader(f, nil) +} + +// A few specific characters in mountinfo path entries (root and mountpoint) +// are escaped using a backslash followed by a character's ascii code in octal. +// +// space -- as \040 +// tab (aka \t) -- as \011 +// newline (aka \n) -- as \012 +// backslash (aka \\) -- as \134 +// +// This function converts path from mountinfo back, i.e. it unescapes the above sequences. +func unescape(path string) (string, error) { + // try to avoid copying + if strings.IndexByte(path, '\\') == -1 { + return path, nil + } + + // The following code is UTF-8 transparent as it only looks for some + // specific characters (backslash and 0..7) with values < utf8.RuneSelf, + // and everything else is passed through as is. + buf := make([]byte, len(path)) + bufLen := 0 + for i := 0; i < len(path); i++ { + if path[i] != '\\' { + buf[bufLen] = path[i] + bufLen++ + continue + } + s := path[i:] + if len(s) < 4 { + // too short + return "", fmt.Errorf("bad escape sequence %q: too short", s) + } + c := s[1] + switch c { + case '0', '1', '2', '3', '4', '5', '6', '7': + v := c - '0' + for j := 2; j < 4; j++ { // one digit already; two more + if s[j] < '0' || s[j] > '7' { + return "", fmt.Errorf("bad escape sequence %q: not a digit", s[:3]) + } + x := s[j] - '0' + v = (v << 3) | x + } + if v > 255 { + return "", fmt.Errorf("bad escape sequence %q: out of range" + s[:3]) + } + buf[bufLen] = v + bufLen++ + i += 3 + continue + default: + return "", fmt.Errorf("bad escape sequence %q: not a digit" + s[:3]) + + } + } + + return string(buf[:bufLen]), nil +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go new file mode 100644 index 0000000000..f682c2d3b5 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go @@ -0,0 +1,11 @@ +package mountinfo + +import "golang.org/x/sys/unix" + +func getMountinfo(entry *unix.Statfs_t) *Info { + return &Info{ + Mountpoint: unix.ByteSliceToString(entry.F_mntonname[:]), + FSType: unix.ByteSliceToString(entry.F_fstypename[:]), + Source: unix.ByteSliceToString(entry.F_mntfromname[:]), + } +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go new file mode 100644 index 0000000000..c2e64bc81c --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go @@ -0,0 +1,19 @@ +//go:build !windows && !linux && !freebsd && !openbsd && !darwin +// +build !windows,!linux,!freebsd,!openbsd,!darwin + +package mountinfo + +import ( + "fmt" + "runtime" +) + +var errNotImplemented = fmt.Errorf("not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) + +func parseMountTable(_ FilterFunc) ([]*Info, error) { + return nil, errNotImplemented +} + +func mounted(path string) (bool, error) { + return false, errNotImplemented +} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go new file mode 100644 index 0000000000..13fad165e5 --- /dev/null +++ b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go @@ -0,0 +1,10 @@ +package mountinfo + +func parseMountTable(_ FilterFunc) ([]*Info, error) { + // Do NOT return an error! + return nil, nil +} + +func mounted(_ string) (bool, error) { + return false, nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http/httpguts/guts.go b/ecs-agent/vendor/golang.org/x/net/http/httpguts/guts.go new file mode 100644 index 0000000000..e6cd0ced39 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http/httpguts/guts.go @@ -0,0 +1,50 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package httpguts provides functions implementing various details +// of the HTTP specification. +// +// This package is shared by the standard library (which vendors it) +// and x/net/http2. It comes with no API stability promise. +package httpguts + +import ( + "net/textproto" + "strings" +) + +// ValidTrailerHeader reports whether name is a valid header field name to appear +// in trailers. +// See RFC 7230, Section 4.1.2 +func ValidTrailerHeader(name string) bool { + name = textproto.CanonicalMIMEHeaderKey(name) + if strings.HasPrefix(name, "If-") || badTrailer[name] { + return false + } + return true +} + +var badTrailer = map[string]bool{ + "Authorization": true, + "Cache-Control": true, + "Connection": true, + "Content-Encoding": true, + "Content-Length": true, + "Content-Range": true, + "Content-Type": true, + "Expect": true, + "Host": true, + "Keep-Alive": true, + "Max-Forwards": true, + "Pragma": true, + "Proxy-Authenticate": true, + "Proxy-Authorization": true, + "Proxy-Connection": true, + "Range": true, + "Realm": true, + "Te": true, + "Trailer": true, + "Transfer-Encoding": true, + "Www-Authenticate": true, +} diff --git a/ecs-agent/vendor/golang.org/x/net/http/httpguts/httplex.go b/ecs-agent/vendor/golang.org/x/net/http/httpguts/httplex.go new file mode 100644 index 0000000000..6e071e8524 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http/httpguts/httplex.go @@ -0,0 +1,352 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package httpguts + +import ( + "net" + "strings" + "unicode/utf8" + + "golang.org/x/net/idna" +) + +var isTokenTable = [127]bool{ + '!': true, + '#': true, + '$': true, + '%': true, + '&': true, + '\'': true, + '*': true, + '+': true, + '-': true, + '.': true, + '0': true, + '1': true, + '2': true, + '3': true, + '4': true, + '5': true, + '6': true, + '7': true, + '8': true, + '9': true, + 'A': true, + 'B': true, + 'C': true, + 'D': true, + 'E': true, + 'F': true, + 'G': true, + 'H': true, + 'I': true, + 'J': true, + 'K': true, + 'L': true, + 'M': true, + 'N': true, + 'O': true, + 'P': true, + 'Q': true, + 'R': true, + 'S': true, + 'T': true, + 'U': true, + 'W': true, + 'V': true, + 'X': true, + 'Y': true, + 'Z': true, + '^': true, + '_': true, + '`': true, + 'a': true, + 'b': true, + 'c': true, + 'd': true, + 'e': true, + 'f': true, + 'g': true, + 'h': true, + 'i': true, + 'j': true, + 'k': true, + 'l': true, + 'm': true, + 'n': true, + 'o': true, + 'p': true, + 'q': true, + 'r': true, + 's': true, + 't': true, + 'u': true, + 'v': true, + 'w': true, + 'x': true, + 'y': true, + 'z': true, + '|': true, + '~': true, +} + +func IsTokenRune(r rune) bool { + i := int(r) + return i < len(isTokenTable) && isTokenTable[i] +} + +func isNotToken(r rune) bool { + return !IsTokenRune(r) +} + +// HeaderValuesContainsToken reports whether any string in values +// contains the provided token, ASCII case-insensitively. +func HeaderValuesContainsToken(values []string, token string) bool { + for _, v := range values { + if headerValueContainsToken(v, token) { + return true + } + } + return false +} + +// isOWS reports whether b is an optional whitespace byte, as defined +// by RFC 7230 section 3.2.3. +func isOWS(b byte) bool { return b == ' ' || b == '\t' } + +// trimOWS returns x with all optional whitespace removes from the +// beginning and end. +func trimOWS(x string) string { + // TODO: consider using strings.Trim(x, " \t") instead, + // if and when it's fast enough. See issue 10292. + // But this ASCII-only code will probably always beat UTF-8 + // aware code. + for len(x) > 0 && isOWS(x[0]) { + x = x[1:] + } + for len(x) > 0 && isOWS(x[len(x)-1]) { + x = x[:len(x)-1] + } + return x +} + +// headerValueContainsToken reports whether v (assumed to be a +// 0#element, in the ABNF extension described in RFC 7230 section 7) +// contains token amongst its comma-separated tokens, ASCII +// case-insensitively. +func headerValueContainsToken(v string, token string) bool { + for comma := strings.IndexByte(v, ','); comma != -1; comma = strings.IndexByte(v, ',') { + if tokenEqual(trimOWS(v[:comma]), token) { + return true + } + v = v[comma+1:] + } + return tokenEqual(trimOWS(v), token) +} + +// lowerASCII returns the ASCII lowercase version of b. +func lowerASCII(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b +} + +// tokenEqual reports whether t1 and t2 are equal, ASCII case-insensitively. +func tokenEqual(t1, t2 string) bool { + if len(t1) != len(t2) { + return false + } + for i, b := range t1 { + if b >= utf8.RuneSelf { + // No UTF-8 or non-ASCII allowed in tokens. + return false + } + if lowerASCII(byte(b)) != lowerASCII(t2[i]) { + return false + } + } + return true +} + +// isLWS reports whether b is linear white space, according +// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 +// +// LWS = [CRLF] 1*( SP | HT ) +func isLWS(b byte) bool { return b == ' ' || b == '\t' } + +// isCTL reports whether b is a control byte, according +// to http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 +// +// CTL = +func isCTL(b byte) bool { + const del = 0x7f // a CTL + return b < ' ' || b == del +} + +// ValidHeaderFieldName reports whether v is a valid HTTP/1.x header name. +// HTTP/2 imposes the additional restriction that uppercase ASCII +// letters are not allowed. +// +// RFC 7230 says: +// +// header-field = field-name ":" OWS field-value OWS +// field-name = token +// token = 1*tchar +// tchar = "!" / "#" / "$" / "%" / "&" / "'" / "*" / "+" / "-" / "." / +// "^" / "_" / "`" / "|" / "~" / DIGIT / ALPHA +func ValidHeaderFieldName(v string) bool { + if len(v) == 0 { + return false + } + for _, r := range v { + if !IsTokenRune(r) { + return false + } + } + return true +} + +// ValidHostHeader reports whether h is a valid host header. +func ValidHostHeader(h string) bool { + // The latest spec is actually this: + // + // http://tools.ietf.org/html/rfc7230#section-5.4 + // Host = uri-host [ ":" port ] + // + // Where uri-host is: + // http://tools.ietf.org/html/rfc3986#section-3.2.2 + // + // But we're going to be much more lenient for now and just + // search for any byte that's not a valid byte in any of those + // expressions. + for i := 0; i < len(h); i++ { + if !validHostByte[h[i]] { + return false + } + } + return true +} + +// See the validHostHeader comment. +var validHostByte = [256]bool{ + '0': true, '1': true, '2': true, '3': true, '4': true, '5': true, '6': true, '7': true, + '8': true, '9': true, + + 'a': true, 'b': true, 'c': true, 'd': true, 'e': true, 'f': true, 'g': true, 'h': true, + 'i': true, 'j': true, 'k': true, 'l': true, 'm': true, 'n': true, 'o': true, 'p': true, + 'q': true, 'r': true, 's': true, 't': true, 'u': true, 'v': true, 'w': true, 'x': true, + 'y': true, 'z': true, + + 'A': true, 'B': true, 'C': true, 'D': true, 'E': true, 'F': true, 'G': true, 'H': true, + 'I': true, 'J': true, 'K': true, 'L': true, 'M': true, 'N': true, 'O': true, 'P': true, + 'Q': true, 'R': true, 'S': true, 'T': true, 'U': true, 'V': true, 'W': true, 'X': true, + 'Y': true, 'Z': true, + + '!': true, // sub-delims + '$': true, // sub-delims + '%': true, // pct-encoded (and used in IPv6 zones) + '&': true, // sub-delims + '(': true, // sub-delims + ')': true, // sub-delims + '*': true, // sub-delims + '+': true, // sub-delims + ',': true, // sub-delims + '-': true, // unreserved + '.': true, // unreserved + ':': true, // IPv6address + Host expression's optional port + ';': true, // sub-delims + '=': true, // sub-delims + '[': true, + '\'': true, // sub-delims + ']': true, + '_': true, // unreserved + '~': true, // unreserved +} + +// ValidHeaderFieldValue reports whether v is a valid "field-value" according to +// http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2 : +// +// message-header = field-name ":" [ field-value ] +// field-value = *( field-content | LWS ) +// field-content = +// +// http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.2 : +// +// TEXT = +// LWS = [CRLF] 1*( SP | HT ) +// CTL = +// +// RFC 7230 says: +// +// field-value = *( field-content / obs-fold ) +// obj-fold = N/A to http2, and deprecated +// field-content = field-vchar [ 1*( SP / HTAB ) field-vchar ] +// field-vchar = VCHAR / obs-text +// obs-text = %x80-FF +// VCHAR = "any visible [USASCII] character" +// +// http2 further says: "Similarly, HTTP/2 allows header field values +// that are not valid. While most of the values that can be encoded +// will not alter header field parsing, carriage return (CR, ASCII +// 0xd), line feed (LF, ASCII 0xa), and the zero character (NUL, ASCII +// 0x0) might be exploited by an attacker if they are translated +// verbatim. Any request or response that contains a character not +// permitted in a header field value MUST be treated as malformed +// (Section 8.1.2.6). Valid characters are defined by the +// field-content ABNF rule in Section 3.2 of [RFC7230]." +// +// This function does not (yet?) properly handle the rejection of +// strings that begin or end with SP or HTAB. +func ValidHeaderFieldValue(v string) bool { + for i := 0; i < len(v); i++ { + b := v[i] + if isCTL(b) && !isLWS(b) { + return false + } + } + return true +} + +func isASCII(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] >= utf8.RuneSelf { + return false + } + } + return true +} + +// PunycodeHostPort returns the IDNA Punycode version +// of the provided "host" or "host:port" string. +func PunycodeHostPort(v string) (string, error) { + if isASCII(v) { + return v, nil + } + + host, port, err := net.SplitHostPort(v) + if err != nil { + // The input 'v' argument was just a "host" argument, + // without a port. This error should not be returned + // to the caller. + host = v + port = "" + } + host, err = idna.ToASCII(host) + if err != nil { + // Non-UTF-8? Not representable in Punycode, in any + // case. + return "", err + } + if port == "" { + return host, nil + } + return net.JoinHostPort(host, port), nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/.gitignore b/ecs-agent/vendor/golang.org/x/net/http2/.gitignore new file mode 100644 index 0000000000..190f12234a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/.gitignore @@ -0,0 +1,2 @@ +*~ +h2i/h2i diff --git a/ecs-agent/vendor/golang.org/x/net/http2/Dockerfile b/ecs-agent/vendor/golang.org/x/net/http2/Dockerfile new file mode 100644 index 0000000000..8512245952 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/Dockerfile @@ -0,0 +1,51 @@ +# +# This Dockerfile builds a recent curl with HTTP/2 client support, using +# a recent nghttp2 build. +# +# See the Makefile for how to tag it. If Docker and that image is found, the +# Go tests use this curl binary for integration tests. +# + +FROM ubuntu:trusty + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y git-core build-essential wget + +RUN apt-get install -y --no-install-recommends \ + autotools-dev libtool pkg-config zlib1g-dev \ + libcunit1-dev libssl-dev libxml2-dev libevent-dev \ + automake autoconf + +# The list of packages nghttp2 recommends for h2load: +RUN apt-get install -y --no-install-recommends make binutils \ + autoconf automake autotools-dev \ + libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \ + libev-dev libevent-dev libjansson-dev libjemalloc-dev \ + cython python3.4-dev python-setuptools + +# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached: +ENV NGHTTP2_VER 895da9a +RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git + +WORKDIR /root/nghttp2 +RUN git reset --hard $NGHTTP2_VER +RUN autoreconf -i +RUN automake +RUN autoconf +RUN ./configure +RUN make +RUN make install + +WORKDIR /root +RUN wget https://curl.se/download/curl-7.45.0.tar.gz +RUN tar -zxvf curl-7.45.0.tar.gz +WORKDIR /root/curl-7.45.0 +RUN ./configure --with-ssl --with-nghttp2=/usr/local +RUN make +RUN make install +RUN ldconfig + +CMD ["-h"] +ENTRYPOINT ["/usr/local/bin/curl"] + diff --git a/ecs-agent/vendor/golang.org/x/net/http2/Makefile b/ecs-agent/vendor/golang.org/x/net/http2/Makefile new file mode 100644 index 0000000000..55fd826f77 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/Makefile @@ -0,0 +1,3 @@ +curlimage: + docker build -t gohttp2/curl . + diff --git a/ecs-agent/vendor/golang.org/x/net/http2/ascii.go b/ecs-agent/vendor/golang.org/x/net/http2/ascii.go new file mode 100644 index 0000000000..17caa20586 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/ascii.go @@ -0,0 +1,53 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "strings" + +// The HTTP protocols are defined in terms of ASCII, not Unicode. This file +// contains helper functions which may use Unicode-aware functions which would +// otherwise be unsafe and could introduce vulnerabilities if used improperly. + +// asciiEqualFold is strings.EqualFold, ASCII only. It reports whether s and t +// are equal, ASCII-case-insensitively. +func asciiEqualFold(s, t string) bool { + if len(s) != len(t) { + return false + } + for i := 0; i < len(s); i++ { + if lower(s[i]) != lower(t[i]) { + return false + } + } + return true +} + +// lower returns the ASCII lowercase version of b. +func lower(b byte) byte { + if 'A' <= b && b <= 'Z' { + return b + ('a' - 'A') + } + return b +} + +// isASCIIPrint returns whether s is ASCII and printable according to +// https://tools.ietf.org/html/rfc20#section-4.2. +func isASCIIPrint(s string) bool { + for i := 0; i < len(s); i++ { + if s[i] < ' ' || s[i] > '~' { + return false + } + } + return true +} + +// asciiToLower returns the lowercase version of s if s is ASCII and printable, +// and whether or not it was. +func asciiToLower(s string) (lower string, ok bool) { + if !isASCIIPrint(s) { + return "", false + } + return strings.ToLower(s), true +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/ciphers.go b/ecs-agent/vendor/golang.org/x/net/http2/ciphers.go new file mode 100644 index 0000000000..c9a0cf3b42 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/ciphers.go @@ -0,0 +1,641 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +// A list of the possible cipher suite ids. Taken from +// https://www.iana.org/assignments/tls-parameters/tls-parameters.txt + +const ( + cipher_TLS_NULL_WITH_NULL_NULL uint16 = 0x0000 + cipher_TLS_RSA_WITH_NULL_MD5 uint16 = 0x0001 + cipher_TLS_RSA_WITH_NULL_SHA uint16 = 0x0002 + cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5 uint16 = 0x0003 + cipher_TLS_RSA_WITH_RC4_128_MD5 uint16 = 0x0004 + cipher_TLS_RSA_WITH_RC4_128_SHA uint16 = 0x0005 + cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 uint16 = 0x0006 + cipher_TLS_RSA_WITH_IDEA_CBC_SHA uint16 = 0x0007 + cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0008 + cipher_TLS_RSA_WITH_DES_CBC_SHA uint16 = 0x0009 + cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x000A + cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x000B + cipher_TLS_DH_DSS_WITH_DES_CBC_SHA uint16 = 0x000C + cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0x000D + cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x000E + cipher_TLS_DH_RSA_WITH_DES_CBC_SHA uint16 = 0x000F + cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x0010 + cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0011 + cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA uint16 = 0x0012 + cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0x0013 + cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0014 + cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA uint16 = 0x0015 + cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x0016 + cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 uint16 = 0x0017 + cipher_TLS_DH_anon_WITH_RC4_128_MD5 uint16 = 0x0018 + cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA uint16 = 0x0019 + cipher_TLS_DH_anon_WITH_DES_CBC_SHA uint16 = 0x001A + cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA uint16 = 0x001B + // Reserved uint16 = 0x001C-1D + cipher_TLS_KRB5_WITH_DES_CBC_SHA uint16 = 0x001E + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA uint16 = 0x001F + cipher_TLS_KRB5_WITH_RC4_128_SHA uint16 = 0x0020 + cipher_TLS_KRB5_WITH_IDEA_CBC_SHA uint16 = 0x0021 + cipher_TLS_KRB5_WITH_DES_CBC_MD5 uint16 = 0x0022 + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5 uint16 = 0x0023 + cipher_TLS_KRB5_WITH_RC4_128_MD5 uint16 = 0x0024 + cipher_TLS_KRB5_WITH_IDEA_CBC_MD5 uint16 = 0x0025 + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA uint16 = 0x0026 + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA uint16 = 0x0027 + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA uint16 = 0x0028 + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 uint16 = 0x0029 + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 uint16 = 0x002A + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5 uint16 = 0x002B + cipher_TLS_PSK_WITH_NULL_SHA uint16 = 0x002C + cipher_TLS_DHE_PSK_WITH_NULL_SHA uint16 = 0x002D + cipher_TLS_RSA_PSK_WITH_NULL_SHA uint16 = 0x002E + cipher_TLS_RSA_WITH_AES_128_CBC_SHA uint16 = 0x002F + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA uint16 = 0x0030 + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA uint16 = 0x0031 + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA uint16 = 0x0032 + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0x0033 + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA uint16 = 0x0034 + cipher_TLS_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0035 + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA uint16 = 0x0036 + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0037 + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA uint16 = 0x0038 + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0039 + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA uint16 = 0x003A + cipher_TLS_RSA_WITH_NULL_SHA256 uint16 = 0x003B + cipher_TLS_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003C + cipher_TLS_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x003D + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256 uint16 = 0x003E + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003F + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 uint16 = 0x0040 + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0041 + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0042 + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0043 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0044 + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0045 + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA uint16 = 0x0046 + // Reserved uint16 = 0x0047-4F + // Reserved uint16 = 0x0050-58 + // Reserved uint16 = 0x0059-5C + // Unassigned uint16 = 0x005D-5F + // Reserved uint16 = 0x0060-66 + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x0067 + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x0068 + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x0069 + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 uint16 = 0x006A + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 uint16 = 0x006B + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256 uint16 = 0x006C + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256 uint16 = 0x006D + // Unassigned uint16 = 0x006E-83 + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0084 + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0085 + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0086 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0087 + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0088 + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA uint16 = 0x0089 + cipher_TLS_PSK_WITH_RC4_128_SHA uint16 = 0x008A + cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x008B + cipher_TLS_PSK_WITH_AES_128_CBC_SHA uint16 = 0x008C + cipher_TLS_PSK_WITH_AES_256_CBC_SHA uint16 = 0x008D + cipher_TLS_DHE_PSK_WITH_RC4_128_SHA uint16 = 0x008E + cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x008F + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA uint16 = 0x0090 + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA uint16 = 0x0091 + cipher_TLS_RSA_PSK_WITH_RC4_128_SHA uint16 = 0x0092 + cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0x0093 + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA uint16 = 0x0094 + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA uint16 = 0x0095 + cipher_TLS_RSA_WITH_SEED_CBC_SHA uint16 = 0x0096 + cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA uint16 = 0x0097 + cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA uint16 = 0x0098 + cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA uint16 = 0x0099 + cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA uint16 = 0x009A + cipher_TLS_DH_anon_WITH_SEED_CBC_SHA uint16 = 0x009B + cipher_TLS_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009C + cipher_TLS_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009D + cipher_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009E + cipher_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009F + cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x00A0 + cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x00A1 + cipher_TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 uint16 = 0x00A2 + cipher_TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 uint16 = 0x00A3 + cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256 uint16 = 0x00A4 + cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384 uint16 = 0x00A5 + cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256 uint16 = 0x00A6 + cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384 uint16 = 0x00A7 + cipher_TLS_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00A8 + cipher_TLS_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00A9 + cipher_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00AA + cipher_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00AB + cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 uint16 = 0x00AC + cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 uint16 = 0x00AD + cipher_TLS_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00AE + cipher_TLS_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00AF + cipher_TLS_PSK_WITH_NULL_SHA256 uint16 = 0x00B0 + cipher_TLS_PSK_WITH_NULL_SHA384 uint16 = 0x00B1 + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00B2 + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00B3 + cipher_TLS_DHE_PSK_WITH_NULL_SHA256 uint16 = 0x00B4 + cipher_TLS_DHE_PSK_WITH_NULL_SHA384 uint16 = 0x00B5 + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0x00B6 + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0x00B7 + cipher_TLS_RSA_PSK_WITH_NULL_SHA256 uint16 = 0x00B8 + cipher_TLS_RSA_PSK_WITH_NULL_SHA384 uint16 = 0x00B9 + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BA + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BB + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BC + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BD + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BE + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0x00BF + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C0 + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C1 + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C2 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C3 + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C4 + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 uint16 = 0x00C5 + // Unassigned uint16 = 0x00C6-FE + cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV uint16 = 0x00FF + // Unassigned uint16 = 0x01-55,* + cipher_TLS_FALLBACK_SCSV uint16 = 0x5600 + // Unassigned uint16 = 0x5601 - 0xC000 + cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA uint16 = 0xC001 + cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA uint16 = 0xC002 + cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC003 + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xC004 + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xC005 + cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA uint16 = 0xC006 + cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA uint16 = 0xC007 + cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC008 + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xC009 + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xC00A + cipher_TLS_ECDH_RSA_WITH_NULL_SHA uint16 = 0xC00B + cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA uint16 = 0xC00C + cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC00D + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC00E + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC00F + cipher_TLS_ECDHE_RSA_WITH_NULL_SHA uint16 = 0xC010 + cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA uint16 = 0xC011 + cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC012 + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC013 + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC014 + cipher_TLS_ECDH_anon_WITH_NULL_SHA uint16 = 0xC015 + cipher_TLS_ECDH_anon_WITH_RC4_128_SHA uint16 = 0xC016 + cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA uint16 = 0xC017 + cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA uint16 = 0xC018 + cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA uint16 = 0xC019 + cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01A + cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01B + cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA uint16 = 0xC01C + cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA uint16 = 0xC01D + cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA uint16 = 0xC01E + cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA uint16 = 0xC01F + cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA uint16 = 0xC020 + cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA uint16 = 0xC021 + cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA uint16 = 0xC022 + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC023 + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC024 + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC025 + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC026 + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC027 + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC028 + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xC029 + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 uint16 = 0xC02A + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02B + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC02C + cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02D + cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC02E + cipher_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC02F + cipher_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC030 + cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xC031 + cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xC032 + cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA uint16 = 0xC033 + cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA uint16 = 0xC034 + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA uint16 = 0xC035 + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA uint16 = 0xC036 + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 uint16 = 0xC037 + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 uint16 = 0xC038 + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA uint16 = 0xC039 + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256 uint16 = 0xC03A + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384 uint16 = 0xC03B + cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC03C + cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC03D + cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC03E + cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC03F + cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC040 + cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC041 + cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC042 + cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC043 + cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC044 + cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC045 + cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC046 + cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC047 + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC048 + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC049 + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04A + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04B + cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04C + cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04D + cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC04E + cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC04F + cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC050 + cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC051 + cipher_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC052 + cipher_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC053 + cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC054 + cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC055 + cipher_TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC056 + cipher_TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC057 + cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC058 + cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC059 + cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05A + cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05B + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05C + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05D + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC05E + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC05F + cipher_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC060 + cipher_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC061 + cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC062 + cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC063 + cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC064 + cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC065 + cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC066 + cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC067 + cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC068 + cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC069 + cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06A + cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06B + cipher_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06C + cipher_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06D + cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 uint16 = 0xC06E + cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 uint16 = 0xC06F + cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 uint16 = 0xC070 + cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 uint16 = 0xC071 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC072 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC073 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC074 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC075 + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC076 + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC077 + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC078 + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC079 + cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07A + cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07B + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07C + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07D + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC07E + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC07F + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC080 + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC081 + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC082 + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC083 + cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC084 + cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC085 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC086 + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC087 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC088 + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC089 + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08A + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08B + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08C + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08D + cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC08E + cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC08F + cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC090 + cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC091 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 uint16 = 0xC092 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 uint16 = 0xC093 + cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC094 + cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC095 + cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC096 + cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC097 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC098 + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC099 + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 uint16 = 0xC09A + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 uint16 = 0xC09B + cipher_TLS_RSA_WITH_AES_128_CCM uint16 = 0xC09C + cipher_TLS_RSA_WITH_AES_256_CCM uint16 = 0xC09D + cipher_TLS_DHE_RSA_WITH_AES_128_CCM uint16 = 0xC09E + cipher_TLS_DHE_RSA_WITH_AES_256_CCM uint16 = 0xC09F + cipher_TLS_RSA_WITH_AES_128_CCM_8 uint16 = 0xC0A0 + cipher_TLS_RSA_WITH_AES_256_CCM_8 uint16 = 0xC0A1 + cipher_TLS_DHE_RSA_WITH_AES_128_CCM_8 uint16 = 0xC0A2 + cipher_TLS_DHE_RSA_WITH_AES_256_CCM_8 uint16 = 0xC0A3 + cipher_TLS_PSK_WITH_AES_128_CCM uint16 = 0xC0A4 + cipher_TLS_PSK_WITH_AES_256_CCM uint16 = 0xC0A5 + cipher_TLS_DHE_PSK_WITH_AES_128_CCM uint16 = 0xC0A6 + cipher_TLS_DHE_PSK_WITH_AES_256_CCM uint16 = 0xC0A7 + cipher_TLS_PSK_WITH_AES_128_CCM_8 uint16 = 0xC0A8 + cipher_TLS_PSK_WITH_AES_256_CCM_8 uint16 = 0xC0A9 + cipher_TLS_PSK_DHE_WITH_AES_128_CCM_8 uint16 = 0xC0AA + cipher_TLS_PSK_DHE_WITH_AES_256_CCM_8 uint16 = 0xC0AB + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM uint16 = 0xC0AC + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM uint16 = 0xC0AD + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 uint16 = 0xC0AE + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 uint16 = 0xC0AF + // Unassigned uint16 = 0xC0B0-FF + // Unassigned uint16 = 0xC1-CB,* + // Unassigned uint16 = 0xCC00-A7 + cipher_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA8 + cipher_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCA9 + cipher_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAA + cipher_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAB + cipher_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAC + cipher_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAD + cipher_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xCCAE +) + +// isBadCipher reports whether the cipher is blacklisted by the HTTP/2 spec. +// References: +// https://tools.ietf.org/html/rfc7540#appendix-A +// Reject cipher suites from Appendix A. +// "This list includes those cipher suites that do not +// offer an ephemeral key exchange and those that are +// based on the TLS null, stream or block cipher type" +func isBadCipher(cipher uint16) bool { + switch cipher { + case cipher_TLS_NULL_WITH_NULL_NULL, + cipher_TLS_RSA_WITH_NULL_MD5, + cipher_TLS_RSA_WITH_NULL_SHA, + cipher_TLS_RSA_EXPORT_WITH_RC4_40_MD5, + cipher_TLS_RSA_WITH_RC4_128_MD5, + cipher_TLS_RSA_WITH_RC4_128_SHA, + cipher_TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, + cipher_TLS_RSA_WITH_IDEA_CBC_SHA, + cipher_TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_RSA_WITH_DES_CBC_SHA, + cipher_TLS_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DH_DSS_WITH_DES_CBC_SHA, + cipher_TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DH_RSA_WITH_DES_CBC_SHA, + cipher_TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_DES_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_DES_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DH_anon_EXPORT_WITH_RC4_40_MD5, + cipher_TLS_DH_anon_WITH_RC4_128_MD5, + cipher_TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA, + cipher_TLS_DH_anon_WITH_DES_CBC_SHA, + cipher_TLS_DH_anon_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_KRB5_WITH_DES_CBC_SHA, + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_KRB5_WITH_RC4_128_SHA, + cipher_TLS_KRB5_WITH_IDEA_CBC_SHA, + cipher_TLS_KRB5_WITH_DES_CBC_MD5, + cipher_TLS_KRB5_WITH_3DES_EDE_CBC_MD5, + cipher_TLS_KRB5_WITH_RC4_128_MD5, + cipher_TLS_KRB5_WITH_IDEA_CBC_MD5, + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA, + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA, + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_SHA, + cipher_TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5, + cipher_TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5, + cipher_TLS_KRB5_EXPORT_WITH_RC4_40_MD5, + cipher_TLS_PSK_WITH_NULL_SHA, + cipher_TLS_DHE_PSK_WITH_NULL_SHA, + cipher_TLS_RSA_PSK_WITH_NULL_SHA, + cipher_TLS_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA, + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA, + cipher_TLS_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA, + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA, + cipher_TLS_RSA_WITH_NULL_SHA256, + cipher_TLS_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_RSA_WITH_AES_256_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_AES_128_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_AES_256_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_AES_256_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, + cipher_TLS_DH_anon_WITH_AES_128_CBC_SHA256, + cipher_TLS_DH_anon_WITH_AES_256_CBC_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA, + cipher_TLS_PSK_WITH_RC4_128_SHA, + cipher_TLS_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_DHE_PSK_WITH_RC4_128_SHA, + cipher_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_RSA_PSK_WITH_RC4_128_SHA, + cipher_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_RSA_WITH_SEED_CBC_SHA, + cipher_TLS_DH_DSS_WITH_SEED_CBC_SHA, + cipher_TLS_DH_RSA_WITH_SEED_CBC_SHA, + cipher_TLS_DHE_DSS_WITH_SEED_CBC_SHA, + cipher_TLS_DHE_RSA_WITH_SEED_CBC_SHA, + cipher_TLS_DH_anon_WITH_SEED_CBC_SHA, + cipher_TLS_RSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_RSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_DH_RSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_DH_RSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_DH_DSS_WITH_AES_128_GCM_SHA256, + cipher_TLS_DH_DSS_WITH_AES_256_GCM_SHA384, + cipher_TLS_DH_anon_WITH_AES_128_GCM_SHA256, + cipher_TLS_DH_anon_WITH_AES_256_GCM_SHA384, + cipher_TLS_PSK_WITH_AES_128_GCM_SHA256, + cipher_TLS_PSK_WITH_AES_256_GCM_SHA384, + cipher_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, + cipher_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, + cipher_TLS_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_PSK_WITH_NULL_SHA256, + cipher_TLS_PSK_WITH_NULL_SHA384, + cipher_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_DHE_PSK_WITH_NULL_SHA256, + cipher_TLS_DHE_PSK_WITH_NULL_SHA384, + cipher_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_RSA_PSK_WITH_NULL_SHA256, + cipher_TLS_RSA_PSK_WITH_NULL_SHA384, + cipher_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256, + cipher_TLS_EMPTY_RENEGOTIATION_INFO_SCSV, + cipher_TLS_ECDH_ECDSA_WITH_NULL_SHA, + cipher_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, + cipher_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_NULL_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDH_RSA_WITH_NULL_SHA, + cipher_TLS_ECDH_RSA_WITH_RC4_128_SHA, + cipher_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_RSA_WITH_NULL_SHA, + cipher_TLS_ECDHE_RSA_WITH_RC4_128_SHA, + cipher_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDH_anon_WITH_NULL_SHA, + cipher_TLS_ECDH_anon_WITH_RC4_128_SHA, + cipher_TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDH_anon_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDH_anon_WITH_AES_256_CBC_SHA, + cipher_TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_SRP_SHA_WITH_AES_128_CBC_SHA, + cipher_TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA, + cipher_TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA, + cipher_TLS_SRP_SHA_WITH_AES_256_CBC_SHA, + cipher_TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA, + cipher_TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, + cipher_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, + cipher_TLS_ECDHE_PSK_WITH_RC4_128_SHA, + cipher_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, + cipher_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, + cipher_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA, + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA256, + cipher_TLS_ECDHE_PSK_WITH_NULL_SHA384, + cipher_TLS_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DH_anon_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DH_anon_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_RSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_RSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_DH_anon_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_DH_anon_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_PSK_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_PSK_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256, + cipher_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384, + cipher_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256, + cipher_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384, + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, + cipher_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, + cipher_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, + cipher_TLS_RSA_WITH_AES_128_CCM, + cipher_TLS_RSA_WITH_AES_256_CCM, + cipher_TLS_RSA_WITH_AES_128_CCM_8, + cipher_TLS_RSA_WITH_AES_256_CCM_8, + cipher_TLS_PSK_WITH_AES_128_CCM, + cipher_TLS_PSK_WITH_AES_256_CCM, + cipher_TLS_PSK_WITH_AES_128_CCM_8, + cipher_TLS_PSK_WITH_AES_256_CCM_8: + return true + default: + return false + } +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/client_conn_pool.go b/ecs-agent/vendor/golang.org/x/net/http2/client_conn_pool.go new file mode 100644 index 0000000000..780968d6c1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/client_conn_pool.go @@ -0,0 +1,311 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Transport code's client connection pooling. + +package http2 + +import ( + "context" + "crypto/tls" + "errors" + "net/http" + "sync" +) + +// ClientConnPool manages a pool of HTTP/2 client connections. +type ClientConnPool interface { + // GetClientConn returns a specific HTTP/2 connection (usually + // a TLS-TCP connection) to an HTTP/2 server. On success, the + // returned ClientConn accounts for the upcoming RoundTrip + // call, so the caller should not omit it. If the caller needs + // to, ClientConn.RoundTrip can be called with a bogus + // new(http.Request) to release the stream reservation. + GetClientConn(req *http.Request, addr string) (*ClientConn, error) + MarkDead(*ClientConn) +} + +// clientConnPoolIdleCloser is the interface implemented by ClientConnPool +// implementations which can close their idle connections. +type clientConnPoolIdleCloser interface { + ClientConnPool + closeIdleConnections() +} + +var ( + _ clientConnPoolIdleCloser = (*clientConnPool)(nil) + _ clientConnPoolIdleCloser = noDialClientConnPool{} +) + +// TODO: use singleflight for dialing and addConnCalls? +type clientConnPool struct { + t *Transport + + mu sync.Mutex // TODO: maybe switch to RWMutex + // TODO: add support for sharing conns based on cert names + // (e.g. share conn for googleapis.com and appspot.com) + conns map[string][]*ClientConn // key is host:port + dialing map[string]*dialCall // currently in-flight dials + keys map[*ClientConn][]string + addConnCalls map[string]*addConnCall // in-flight addConnIfNeeded calls +} + +func (p *clientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) { + return p.getClientConn(req, addr, dialOnMiss) +} + +const ( + dialOnMiss = true + noDialOnMiss = false +) + +func (p *clientConnPool) getClientConn(req *http.Request, addr string, dialOnMiss bool) (*ClientConn, error) { + // TODO(dneil): Dial a new connection when t.DisableKeepAlives is set? + if isConnectionCloseRequest(req) && dialOnMiss { + // It gets its own connection. + traceGetConn(req, addr) + const singleUse = true + cc, err := p.t.dialClientConn(req.Context(), addr, singleUse) + if err != nil { + return nil, err + } + return cc, nil + } + for { + p.mu.Lock() + for _, cc := range p.conns[addr] { + if cc.ReserveNewRequest() { + // When a connection is presented to us by the net/http package, + // the GetConn hook has already been called. + // Don't call it a second time here. + if !cc.getConnCalled { + traceGetConn(req, addr) + } + cc.getConnCalled = false + p.mu.Unlock() + return cc, nil + } + } + if !dialOnMiss { + p.mu.Unlock() + return nil, ErrNoCachedConn + } + traceGetConn(req, addr) + call := p.getStartDialLocked(req.Context(), addr) + p.mu.Unlock() + <-call.done + if shouldRetryDial(call, req) { + continue + } + cc, err := call.res, call.err + if err != nil { + return nil, err + } + if cc.ReserveNewRequest() { + return cc, nil + } + } +} + +// dialCall is an in-flight Transport dial call to a host. +type dialCall struct { + _ incomparable + p *clientConnPool + // the context associated with the request + // that created this dialCall + ctx context.Context + done chan struct{} // closed when done + res *ClientConn // valid after done is closed + err error // valid after done is closed +} + +// requires p.mu is held. +func (p *clientConnPool) getStartDialLocked(ctx context.Context, addr string) *dialCall { + if call, ok := p.dialing[addr]; ok { + // A dial is already in-flight. Don't start another. + return call + } + call := &dialCall{p: p, done: make(chan struct{}), ctx: ctx} + if p.dialing == nil { + p.dialing = make(map[string]*dialCall) + } + p.dialing[addr] = call + go call.dial(call.ctx, addr) + return call +} + +// run in its own goroutine. +func (c *dialCall) dial(ctx context.Context, addr string) { + const singleUse = false // shared conn + c.res, c.err = c.p.t.dialClientConn(ctx, addr, singleUse) + + c.p.mu.Lock() + delete(c.p.dialing, addr) + if c.err == nil { + c.p.addConnLocked(addr, c.res) + } + c.p.mu.Unlock() + + close(c.done) +} + +// addConnIfNeeded makes a NewClientConn out of c if a connection for key doesn't +// already exist. It coalesces concurrent calls with the same key. +// This is used by the http1 Transport code when it creates a new connection. Because +// the http1 Transport doesn't de-dup TCP dials to outbound hosts (because it doesn't know +// the protocol), it can get into a situation where it has multiple TLS connections. +// This code decides which ones live or die. +// The return value used is whether c was used. +// c is never closed. +func (p *clientConnPool) addConnIfNeeded(key string, t *Transport, c *tls.Conn) (used bool, err error) { + p.mu.Lock() + for _, cc := range p.conns[key] { + if cc.CanTakeNewRequest() { + p.mu.Unlock() + return false, nil + } + } + call, dup := p.addConnCalls[key] + if !dup { + if p.addConnCalls == nil { + p.addConnCalls = make(map[string]*addConnCall) + } + call = &addConnCall{ + p: p, + done: make(chan struct{}), + } + p.addConnCalls[key] = call + go call.run(t, key, c) + } + p.mu.Unlock() + + <-call.done + if call.err != nil { + return false, call.err + } + return !dup, nil +} + +type addConnCall struct { + _ incomparable + p *clientConnPool + done chan struct{} // closed when done + err error +} + +func (c *addConnCall) run(t *Transport, key string, tc *tls.Conn) { + cc, err := t.NewClientConn(tc) + + p := c.p + p.mu.Lock() + if err != nil { + c.err = err + } else { + cc.getConnCalled = true // already called by the net/http package + p.addConnLocked(key, cc) + } + delete(p.addConnCalls, key) + p.mu.Unlock() + close(c.done) +} + +// p.mu must be held +func (p *clientConnPool) addConnLocked(key string, cc *ClientConn) { + for _, v := range p.conns[key] { + if v == cc { + return + } + } + if p.conns == nil { + p.conns = make(map[string][]*ClientConn) + } + if p.keys == nil { + p.keys = make(map[*ClientConn][]string) + } + p.conns[key] = append(p.conns[key], cc) + p.keys[cc] = append(p.keys[cc], key) +} + +func (p *clientConnPool) MarkDead(cc *ClientConn) { + p.mu.Lock() + defer p.mu.Unlock() + for _, key := range p.keys[cc] { + vv, ok := p.conns[key] + if !ok { + continue + } + newList := filterOutClientConn(vv, cc) + if len(newList) > 0 { + p.conns[key] = newList + } else { + delete(p.conns, key) + } + } + delete(p.keys, cc) +} + +func (p *clientConnPool) closeIdleConnections() { + p.mu.Lock() + defer p.mu.Unlock() + // TODO: don't close a cc if it was just added to the pool + // milliseconds ago and has never been used. There's currently + // a small race window with the HTTP/1 Transport's integration + // where it can add an idle conn just before using it, and + // somebody else can concurrently call CloseIdleConns and + // break some caller's RoundTrip. + for _, vv := range p.conns { + for _, cc := range vv { + cc.closeIfIdle() + } + } +} + +func filterOutClientConn(in []*ClientConn, exclude *ClientConn) []*ClientConn { + out := in[:0] + for _, v := range in { + if v != exclude { + out = append(out, v) + } + } + // If we filtered it out, zero out the last item to prevent + // the GC from seeing it. + if len(in) != len(out) { + in[len(in)-1] = nil + } + return out +} + +// noDialClientConnPool is an implementation of http2.ClientConnPool +// which never dials. We let the HTTP/1.1 client dial and use its TLS +// connection instead. +type noDialClientConnPool struct{ *clientConnPool } + +func (p noDialClientConnPool) GetClientConn(req *http.Request, addr string) (*ClientConn, error) { + return p.getClientConn(req, addr, noDialOnMiss) +} + +// shouldRetryDial reports whether the current request should +// retry dialing after the call finished unsuccessfully, for example +// if the dial was canceled because of a context cancellation or +// deadline expiry. +func shouldRetryDial(call *dialCall, req *http.Request) bool { + if call.err == nil { + // No error, no need to retry + return false + } + if call.ctx == req.Context() { + // If the call has the same context as the request, the dial + // should not be retried, since any cancellation will have come + // from this request. + return false + } + if !errors.Is(call.err, context.Canceled) && !errors.Is(call.err, context.DeadlineExceeded) { + // If the call error is not because of a context cancellation or a deadline expiry, + // the dial should not be retried. + return false + } + // Only retry if the error is a context cancellation error or deadline expiry + // and the context associated with the call was canceled or expired. + return call.ctx.Err() != nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/databuffer.go b/ecs-agent/vendor/golang.org/x/net/http2/databuffer.go new file mode 100644 index 0000000000..a3067f8de7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/databuffer.go @@ -0,0 +1,146 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "errors" + "fmt" + "sync" +) + +// Buffer chunks are allocated from a pool to reduce pressure on GC. +// The maximum wasted space per dataBuffer is 2x the largest size class, +// which happens when the dataBuffer has multiple chunks and there is +// one unread byte in both the first and last chunks. We use a few size +// classes to minimize overheads for servers that typically receive very +// small request bodies. +// +// TODO: Benchmark to determine if the pools are necessary. The GC may have +// improved enough that we can instead allocate chunks like this: +// make([]byte, max(16<<10, expectedBytesRemaining)) +var ( + dataChunkSizeClasses = []int{ + 1 << 10, + 2 << 10, + 4 << 10, + 8 << 10, + 16 << 10, + } + dataChunkPools = [...]sync.Pool{ + {New: func() interface{} { return make([]byte, 1<<10) }}, + {New: func() interface{} { return make([]byte, 2<<10) }}, + {New: func() interface{} { return make([]byte, 4<<10) }}, + {New: func() interface{} { return make([]byte, 8<<10) }}, + {New: func() interface{} { return make([]byte, 16<<10) }}, + } +) + +func getDataBufferChunk(size int64) []byte { + i := 0 + for ; i < len(dataChunkSizeClasses)-1; i++ { + if size <= int64(dataChunkSizeClasses[i]) { + break + } + } + return dataChunkPools[i].Get().([]byte) +} + +func putDataBufferChunk(p []byte) { + for i, n := range dataChunkSizeClasses { + if len(p) == n { + dataChunkPools[i].Put(p) + return + } + } + panic(fmt.Sprintf("unexpected buffer len=%v", len(p))) +} + +// dataBuffer is an io.ReadWriter backed by a list of data chunks. +// Each dataBuffer is used to read DATA frames on a single stream. +// The buffer is divided into chunks so the server can limit the +// total memory used by a single connection without limiting the +// request body size on any single stream. +type dataBuffer struct { + chunks [][]byte + r int // next byte to read is chunks[0][r] + w int // next byte to write is chunks[len(chunks)-1][w] + size int // total buffered bytes + expected int64 // we expect at least this many bytes in future Write calls (ignored if <= 0) +} + +var errReadEmpty = errors.New("read from empty dataBuffer") + +// Read copies bytes from the buffer into p. +// It is an error to read when no data is available. +func (b *dataBuffer) Read(p []byte) (int, error) { + if b.size == 0 { + return 0, errReadEmpty + } + var ntotal int + for len(p) > 0 && b.size > 0 { + readFrom := b.bytesFromFirstChunk() + n := copy(p, readFrom) + p = p[n:] + ntotal += n + b.r += n + b.size -= n + // If the first chunk has been consumed, advance to the next chunk. + if b.r == len(b.chunks[0]) { + putDataBufferChunk(b.chunks[0]) + end := len(b.chunks) - 1 + copy(b.chunks[:end], b.chunks[1:]) + b.chunks[end] = nil + b.chunks = b.chunks[:end] + b.r = 0 + } + } + return ntotal, nil +} + +func (b *dataBuffer) bytesFromFirstChunk() []byte { + if len(b.chunks) == 1 { + return b.chunks[0][b.r:b.w] + } + return b.chunks[0][b.r:] +} + +// Len returns the number of bytes of the unread portion of the buffer. +func (b *dataBuffer) Len() int { + return b.size +} + +// Write appends p to the buffer. +func (b *dataBuffer) Write(p []byte) (int, error) { + ntotal := len(p) + for len(p) > 0 { + // If the last chunk is empty, allocate a new chunk. Try to allocate + // enough to fully copy p plus any additional bytes we expect to + // receive. However, this may allocate less than len(p). + want := int64(len(p)) + if b.expected > want { + want = b.expected + } + chunk := b.lastChunkOrAlloc(want) + n := copy(chunk[b.w:], p) + p = p[n:] + b.w += n + b.size += n + b.expected -= int64(n) + } + return ntotal, nil +} + +func (b *dataBuffer) lastChunkOrAlloc(want int64) []byte { + if len(b.chunks) != 0 { + last := b.chunks[len(b.chunks)-1] + if b.w < len(last) { + return last + } + } + chunk := getDataBufferChunk(want) + b.chunks = append(b.chunks, chunk) + b.w = 0 + return chunk +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/errors.go b/ecs-agent/vendor/golang.org/x/net/http2/errors.go new file mode 100644 index 0000000000..f2067dabc5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/errors.go @@ -0,0 +1,145 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "errors" + "fmt" +) + +// An ErrCode is an unsigned 32-bit error code as defined in the HTTP/2 spec. +type ErrCode uint32 + +const ( + ErrCodeNo ErrCode = 0x0 + ErrCodeProtocol ErrCode = 0x1 + ErrCodeInternal ErrCode = 0x2 + ErrCodeFlowControl ErrCode = 0x3 + ErrCodeSettingsTimeout ErrCode = 0x4 + ErrCodeStreamClosed ErrCode = 0x5 + ErrCodeFrameSize ErrCode = 0x6 + ErrCodeRefusedStream ErrCode = 0x7 + ErrCodeCancel ErrCode = 0x8 + ErrCodeCompression ErrCode = 0x9 + ErrCodeConnect ErrCode = 0xa + ErrCodeEnhanceYourCalm ErrCode = 0xb + ErrCodeInadequateSecurity ErrCode = 0xc + ErrCodeHTTP11Required ErrCode = 0xd +) + +var errCodeName = map[ErrCode]string{ + ErrCodeNo: "NO_ERROR", + ErrCodeProtocol: "PROTOCOL_ERROR", + ErrCodeInternal: "INTERNAL_ERROR", + ErrCodeFlowControl: "FLOW_CONTROL_ERROR", + ErrCodeSettingsTimeout: "SETTINGS_TIMEOUT", + ErrCodeStreamClosed: "STREAM_CLOSED", + ErrCodeFrameSize: "FRAME_SIZE_ERROR", + ErrCodeRefusedStream: "REFUSED_STREAM", + ErrCodeCancel: "CANCEL", + ErrCodeCompression: "COMPRESSION_ERROR", + ErrCodeConnect: "CONNECT_ERROR", + ErrCodeEnhanceYourCalm: "ENHANCE_YOUR_CALM", + ErrCodeInadequateSecurity: "INADEQUATE_SECURITY", + ErrCodeHTTP11Required: "HTTP_1_1_REQUIRED", +} + +func (e ErrCode) String() string { + if s, ok := errCodeName[e]; ok { + return s + } + return fmt.Sprintf("unknown error code 0x%x", uint32(e)) +} + +func (e ErrCode) stringToken() string { + if s, ok := errCodeName[e]; ok { + return s + } + return fmt.Sprintf("ERR_UNKNOWN_%d", uint32(e)) +} + +// ConnectionError is an error that results in the termination of the +// entire connection. +type ConnectionError ErrCode + +func (e ConnectionError) Error() string { return fmt.Sprintf("connection error: %s", ErrCode(e)) } + +// StreamError is an error that only affects one stream within an +// HTTP/2 connection. +type StreamError struct { + StreamID uint32 + Code ErrCode + Cause error // optional additional detail +} + +// errFromPeer is a sentinel error value for StreamError.Cause to +// indicate that the StreamError was sent from the peer over the wire +// and wasn't locally generated in the Transport. +var errFromPeer = errors.New("received from peer") + +func streamError(id uint32, code ErrCode) StreamError { + return StreamError{StreamID: id, Code: code} +} + +func (e StreamError) Error() string { + if e.Cause != nil { + return fmt.Sprintf("stream error: stream ID %d; %v; %v", e.StreamID, e.Code, e.Cause) + } + return fmt.Sprintf("stream error: stream ID %d; %v", e.StreamID, e.Code) +} + +// 6.9.1 The Flow Control Window +// "If a sender receives a WINDOW_UPDATE that causes a flow control +// window to exceed this maximum it MUST terminate either the stream +// or the connection, as appropriate. For streams, [...]; for the +// connection, a GOAWAY frame with a FLOW_CONTROL_ERROR code." +type goAwayFlowError struct{} + +func (goAwayFlowError) Error() string { return "connection exceeded flow control window size" } + +// connError represents an HTTP/2 ConnectionError error code, along +// with a string (for debugging) explaining why. +// +// Errors of this type are only returned by the frame parser functions +// and converted into ConnectionError(Code), after stashing away +// the Reason into the Framer's errDetail field, accessible via +// the (*Framer).ErrorDetail method. +type connError struct { + Code ErrCode // the ConnectionError error code + Reason string // additional reason +} + +func (e connError) Error() string { + return fmt.Sprintf("http2: connection error: %v: %v", e.Code, e.Reason) +} + +type pseudoHeaderError string + +func (e pseudoHeaderError) Error() string { + return fmt.Sprintf("invalid pseudo-header %q", string(e)) +} + +type duplicatePseudoHeaderError string + +func (e duplicatePseudoHeaderError) Error() string { + return fmt.Sprintf("duplicate pseudo-header %q", string(e)) +} + +type headerFieldNameError string + +func (e headerFieldNameError) Error() string { + return fmt.Sprintf("invalid header field name %q", string(e)) +} + +type headerFieldValueError string + +func (e headerFieldValueError) Error() string { + return fmt.Sprintf("invalid header field value for %q", string(e)) +} + +var ( + errMixPseudoHeaderTypes = errors.New("mix of request and response pseudo headers") + errPseudoAfterRegular = errors.New("pseudo header field after regular") +) diff --git a/ecs-agent/vendor/golang.org/x/net/http2/flow.go b/ecs-agent/vendor/golang.org/x/net/http2/flow.go new file mode 100644 index 0000000000..b7dbd18695 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/flow.go @@ -0,0 +1,120 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Flow control + +package http2 + +// inflowMinRefresh is the minimum number of bytes we'll send for a +// flow control window update. +const inflowMinRefresh = 4 << 10 + +// inflow accounts for an inbound flow control window. +// It tracks both the latest window sent to the peer (used for enforcement) +// and the accumulated unsent window. +type inflow struct { + avail int32 + unsent int32 +} + +// init sets the initial window. +func (f *inflow) init(n int32) { + f.avail = n +} + +// add adds n bytes to the window, with a maximum window size of max, +// indicating that the peer can now send us more data. +// For example, the user read from a {Request,Response} body and consumed +// some of the buffered data, so the peer can now send more. +// It returns the number of bytes to send in a WINDOW_UPDATE frame to the peer. +// Window updates are accumulated and sent when the unsent capacity +// is at least inflowMinRefresh or will at least double the peer's available window. +func (f *inflow) add(n int) (connAdd int32) { + if n < 0 { + panic("negative update") + } + unsent := int64(f.unsent) + int64(n) + // "A sender MUST NOT allow a flow-control window to exceed 2^31-1 octets." + // RFC 7540 Section 6.9.1. + const maxWindow = 1<<31 - 1 + if unsent+int64(f.avail) > maxWindow { + panic("flow control update exceeds maximum window size") + } + f.unsent = int32(unsent) + if f.unsent < inflowMinRefresh && f.unsent < f.avail { + // If there aren't at least inflowMinRefresh bytes of window to send, + // and this update won't at least double the window, buffer the update for later. + return 0 + } + f.avail += f.unsent + f.unsent = 0 + return int32(unsent) +} + +// take attempts to take n bytes from the peer's flow control window. +// It reports whether the window has available capacity. +func (f *inflow) take(n uint32) bool { + if n > uint32(f.avail) { + return false + } + f.avail -= int32(n) + return true +} + +// takeInflows attempts to take n bytes from two inflows, +// typically connection-level and stream-level flows. +// It reports whether both windows have available capacity. +func takeInflows(f1, f2 *inflow, n uint32) bool { + if n > uint32(f1.avail) || n > uint32(f2.avail) { + return false + } + f1.avail -= int32(n) + f2.avail -= int32(n) + return true +} + +// outflow is the outbound flow control window's size. +type outflow struct { + _ incomparable + + // n is the number of DATA bytes we're allowed to send. + // An outflow is kept both on a conn and a per-stream. + n int32 + + // conn points to the shared connection-level outflow that is + // shared by all streams on that conn. It is nil for the outflow + // that's on the conn directly. + conn *outflow +} + +func (f *outflow) setConnFlow(cf *outflow) { f.conn = cf } + +func (f *outflow) available() int32 { + n := f.n + if f.conn != nil && f.conn.n < n { + n = f.conn.n + } + return n +} + +func (f *outflow) take(n int32) { + if n > f.available() { + panic("internal error: took too much") + } + f.n -= n + if f.conn != nil { + f.conn.n -= n + } +} + +// add adds n bytes (positive or negative) to the flow control window. +// It returns false if the sum would exceed 2^31-1. +func (f *outflow) add(n int32) bool { + sum := f.n + n + if (sum > n) == (f.n > 0) { + f.n = sum + return true + } + return false +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/frame.go b/ecs-agent/vendor/golang.org/x/net/http2/frame.go new file mode 100644 index 0000000000..c1f6b90dc3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/frame.go @@ -0,0 +1,1658 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "bytes" + "encoding/binary" + "errors" + "fmt" + "io" + "log" + "strings" + "sync" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +const frameHeaderLen = 9 + +var padZeros = make([]byte, 255) // zeros for padding + +// A FrameType is a registered frame type as defined in +// https://httpwg.org/specs/rfc7540.html#rfc.section.11.2 +type FrameType uint8 + +const ( + FrameData FrameType = 0x0 + FrameHeaders FrameType = 0x1 + FramePriority FrameType = 0x2 + FrameRSTStream FrameType = 0x3 + FrameSettings FrameType = 0x4 + FramePushPromise FrameType = 0x5 + FramePing FrameType = 0x6 + FrameGoAway FrameType = 0x7 + FrameWindowUpdate FrameType = 0x8 + FrameContinuation FrameType = 0x9 +) + +var frameName = map[FrameType]string{ + FrameData: "DATA", + FrameHeaders: "HEADERS", + FramePriority: "PRIORITY", + FrameRSTStream: "RST_STREAM", + FrameSettings: "SETTINGS", + FramePushPromise: "PUSH_PROMISE", + FramePing: "PING", + FrameGoAway: "GOAWAY", + FrameWindowUpdate: "WINDOW_UPDATE", + FrameContinuation: "CONTINUATION", +} + +func (t FrameType) String() string { + if s, ok := frameName[t]; ok { + return s + } + return fmt.Sprintf("UNKNOWN_FRAME_TYPE_%d", uint8(t)) +} + +// Flags is a bitmask of HTTP/2 flags. +// The meaning of flags varies depending on the frame type. +type Flags uint8 + +// Has reports whether f contains all (0 or more) flags in v. +func (f Flags) Has(v Flags) bool { + return (f & v) == v +} + +// Frame-specific FrameHeader flag bits. +const ( + // Data Frame + FlagDataEndStream Flags = 0x1 + FlagDataPadded Flags = 0x8 + + // Headers Frame + FlagHeadersEndStream Flags = 0x1 + FlagHeadersEndHeaders Flags = 0x4 + FlagHeadersPadded Flags = 0x8 + FlagHeadersPriority Flags = 0x20 + + // Settings Frame + FlagSettingsAck Flags = 0x1 + + // Ping Frame + FlagPingAck Flags = 0x1 + + // Continuation Frame + FlagContinuationEndHeaders Flags = 0x4 + + FlagPushPromiseEndHeaders Flags = 0x4 + FlagPushPromisePadded Flags = 0x8 +) + +var flagName = map[FrameType]map[Flags]string{ + FrameData: { + FlagDataEndStream: "END_STREAM", + FlagDataPadded: "PADDED", + }, + FrameHeaders: { + FlagHeadersEndStream: "END_STREAM", + FlagHeadersEndHeaders: "END_HEADERS", + FlagHeadersPadded: "PADDED", + FlagHeadersPriority: "PRIORITY", + }, + FrameSettings: { + FlagSettingsAck: "ACK", + }, + FramePing: { + FlagPingAck: "ACK", + }, + FrameContinuation: { + FlagContinuationEndHeaders: "END_HEADERS", + }, + FramePushPromise: { + FlagPushPromiseEndHeaders: "END_HEADERS", + FlagPushPromisePadded: "PADDED", + }, +} + +// a frameParser parses a frame given its FrameHeader and payload +// bytes. The length of payload will always equal fh.Length (which +// might be 0). +type frameParser func(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) + +var frameParsers = map[FrameType]frameParser{ + FrameData: parseDataFrame, + FrameHeaders: parseHeadersFrame, + FramePriority: parsePriorityFrame, + FrameRSTStream: parseRSTStreamFrame, + FrameSettings: parseSettingsFrame, + FramePushPromise: parsePushPromise, + FramePing: parsePingFrame, + FrameGoAway: parseGoAwayFrame, + FrameWindowUpdate: parseWindowUpdateFrame, + FrameContinuation: parseContinuationFrame, +} + +func typeFrameParser(t FrameType) frameParser { + if f := frameParsers[t]; f != nil { + return f + } + return parseUnknownFrame +} + +// A FrameHeader is the 9 byte header of all HTTP/2 frames. +// +// See https://httpwg.org/specs/rfc7540.html#FrameHeader +type FrameHeader struct { + valid bool // caller can access []byte fields in the Frame + + // Type is the 1 byte frame type. There are ten standard frame + // types, but extension frame types may be written by WriteRawFrame + // and will be returned by ReadFrame (as UnknownFrame). + Type FrameType + + // Flags are the 1 byte of 8 potential bit flags per frame. + // They are specific to the frame type. + Flags Flags + + // Length is the length of the frame, not including the 9 byte header. + // The maximum size is one byte less than 16MB (uint24), but only + // frames up to 16KB are allowed without peer agreement. + Length uint32 + + // StreamID is which stream this frame is for. Certain frames + // are not stream-specific, in which case this field is 0. + StreamID uint32 +} + +// Header returns h. It exists so FrameHeaders can be embedded in other +// specific frame types and implement the Frame interface. +func (h FrameHeader) Header() FrameHeader { return h } + +func (h FrameHeader) String() string { + var buf bytes.Buffer + buf.WriteString("[FrameHeader ") + h.writeDebug(&buf) + buf.WriteByte(']') + return buf.String() +} + +func (h FrameHeader) writeDebug(buf *bytes.Buffer) { + buf.WriteString(h.Type.String()) + if h.Flags != 0 { + buf.WriteString(" flags=") + set := 0 + for i := uint8(0); i < 8; i++ { + if h.Flags&(1< 1 { + buf.WriteByte('|') + } + name := flagName[h.Type][Flags(1<>24), + byte(streamID>>16), + byte(streamID>>8), + byte(streamID)) +} + +func (f *Framer) endWrite() error { + // Now that we know the final size, fill in the FrameHeader in + // the space previously reserved for it. Abuse append. + length := len(f.wbuf) - frameHeaderLen + if length >= (1 << 24) { + return ErrFrameTooLarge + } + _ = append(f.wbuf[:0], + byte(length>>16), + byte(length>>8), + byte(length)) + if f.logWrites { + f.logWrite() + } + + n, err := f.w.Write(f.wbuf) + if err == nil && n != len(f.wbuf) { + err = io.ErrShortWrite + } + return err +} + +func (f *Framer) logWrite() { + if f.debugFramer == nil { + f.debugFramerBuf = new(bytes.Buffer) + f.debugFramer = NewFramer(nil, f.debugFramerBuf) + f.debugFramer.logReads = false // we log it ourselves, saying "wrote" below + // Let us read anything, even if we accidentally wrote it + // in the wrong order: + f.debugFramer.AllowIllegalReads = true + } + f.debugFramerBuf.Write(f.wbuf) + fr, err := f.debugFramer.ReadFrame() + if err != nil { + f.debugWriteLoggerf("http2: Framer %p: failed to decode just-written frame", f) + return + } + f.debugWriteLoggerf("http2: Framer %p: wrote %v", f, summarizeFrame(fr)) +} + +func (f *Framer) writeByte(v byte) { f.wbuf = append(f.wbuf, v) } +func (f *Framer) writeBytes(v []byte) { f.wbuf = append(f.wbuf, v...) } +func (f *Framer) writeUint16(v uint16) { f.wbuf = append(f.wbuf, byte(v>>8), byte(v)) } +func (f *Framer) writeUint32(v uint32) { + f.wbuf = append(f.wbuf, byte(v>>24), byte(v>>16), byte(v>>8), byte(v)) +} + +const ( + minMaxFrameSize = 1 << 14 + maxFrameSize = 1<<24 - 1 +) + +// SetReuseFrames allows the Framer to reuse Frames. +// If called on a Framer, Frames returned by calls to ReadFrame are only +// valid until the next call to ReadFrame. +func (fr *Framer) SetReuseFrames() { + if fr.frameCache != nil { + return + } + fr.frameCache = &frameCache{} +} + +type frameCache struct { + dataFrame DataFrame +} + +func (fc *frameCache) getDataFrame() *DataFrame { + if fc == nil { + return &DataFrame{} + } + return &fc.dataFrame +} + +// NewFramer returns a Framer that writes frames to w and reads them from r. +func NewFramer(w io.Writer, r io.Reader) *Framer { + fr := &Framer{ + w: w, + r: r, + countError: func(string) {}, + logReads: logFrameReads, + logWrites: logFrameWrites, + debugReadLoggerf: log.Printf, + debugWriteLoggerf: log.Printf, + } + fr.getReadBuf = func(size uint32) []byte { + if cap(fr.readBuf) >= int(size) { + return fr.readBuf[:size] + } + fr.readBuf = make([]byte, size) + return fr.readBuf + } + fr.SetMaxReadFrameSize(maxFrameSize) + return fr +} + +// SetMaxReadFrameSize sets the maximum size of a frame +// that will be read by a subsequent call to ReadFrame. +// It is the caller's responsibility to advertise this +// limit with a SETTINGS frame. +func (fr *Framer) SetMaxReadFrameSize(v uint32) { + if v > maxFrameSize { + v = maxFrameSize + } + fr.maxReadSize = v +} + +// ErrorDetail returns a more detailed error of the last error +// returned by Framer.ReadFrame. For instance, if ReadFrame +// returns a StreamError with code PROTOCOL_ERROR, ErrorDetail +// will say exactly what was invalid. ErrorDetail is not guaranteed +// to return a non-nil value and like the rest of the http2 package, +// its return value is not protected by an API compatibility promise. +// ErrorDetail is reset after the next call to ReadFrame. +func (fr *Framer) ErrorDetail() error { + return fr.errDetail +} + +// ErrFrameTooLarge is returned from Framer.ReadFrame when the peer +// sends a frame that is larger than declared with SetMaxReadFrameSize. +var ErrFrameTooLarge = errors.New("http2: frame too large") + +// terminalReadFrameError reports whether err is an unrecoverable +// error from ReadFrame and no other frames should be read. +func terminalReadFrameError(err error) bool { + if _, ok := err.(StreamError); ok { + return false + } + return err != nil +} + +// ReadFrame reads a single frame. The returned Frame is only valid +// until the next call to ReadFrame. +// +// If the frame is larger than previously set with SetMaxReadFrameSize, the +// returned error is ErrFrameTooLarge. Other errors may be of type +// ConnectionError, StreamError, or anything else from the underlying +// reader. +func (fr *Framer) ReadFrame() (Frame, error) { + fr.errDetail = nil + if fr.lastFrame != nil { + fr.lastFrame.invalidate() + } + fh, err := readFrameHeader(fr.headerBuf[:], fr.r) + if err != nil { + return nil, err + } + if fh.Length > fr.maxReadSize { + return nil, ErrFrameTooLarge + } + payload := fr.getReadBuf(fh.Length) + if _, err := io.ReadFull(fr.r, payload); err != nil { + return nil, err + } + f, err := typeFrameParser(fh.Type)(fr.frameCache, fh, fr.countError, payload) + if err != nil { + if ce, ok := err.(connError); ok { + return nil, fr.connError(ce.Code, ce.Reason) + } + return nil, err + } + if err := fr.checkFrameOrder(f); err != nil { + return nil, err + } + if fr.logReads { + fr.debugReadLoggerf("http2: Framer %p: read %v", fr, summarizeFrame(f)) + } + if fh.Type == FrameHeaders && fr.ReadMetaHeaders != nil { + return fr.readMetaFrame(f.(*HeadersFrame)) + } + return f, nil +} + +// connError returns ConnectionError(code) but first +// stashes away a public reason to the caller can optionally relay it +// to the peer before hanging up on them. This might help others debug +// their implementations. +func (fr *Framer) connError(code ErrCode, reason string) error { + fr.errDetail = errors.New(reason) + return ConnectionError(code) +} + +// checkFrameOrder reports an error if f is an invalid frame to return +// next from ReadFrame. Mostly it checks whether HEADERS and +// CONTINUATION frames are contiguous. +func (fr *Framer) checkFrameOrder(f Frame) error { + last := fr.lastFrame + fr.lastFrame = f + if fr.AllowIllegalReads { + return nil + } + + fh := f.Header() + if fr.lastHeaderStream != 0 { + if fh.Type != FrameContinuation { + return fr.connError(ErrCodeProtocol, + fmt.Sprintf("got %s for stream %d; expected CONTINUATION following %s for stream %d", + fh.Type, fh.StreamID, + last.Header().Type, fr.lastHeaderStream)) + } + if fh.StreamID != fr.lastHeaderStream { + return fr.connError(ErrCodeProtocol, + fmt.Sprintf("got CONTINUATION for stream %d; expected stream %d", + fh.StreamID, fr.lastHeaderStream)) + } + } else if fh.Type == FrameContinuation { + return fr.connError(ErrCodeProtocol, fmt.Sprintf("unexpected CONTINUATION for stream %d", fh.StreamID)) + } + + switch fh.Type { + case FrameHeaders, FrameContinuation: + if fh.Flags.Has(FlagHeadersEndHeaders) { + fr.lastHeaderStream = 0 + } else { + fr.lastHeaderStream = fh.StreamID + } + } + + return nil +} + +// A DataFrame conveys arbitrary, variable-length sequences of octets +// associated with a stream. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.1 +type DataFrame struct { + FrameHeader + data []byte +} + +func (f *DataFrame) StreamEnded() bool { + return f.FrameHeader.Flags.Has(FlagDataEndStream) +} + +// Data returns the frame's data octets, not including any padding +// size byte or padding suffix bytes. +// The caller must not retain the returned memory past the next +// call to ReadFrame. +func (f *DataFrame) Data() []byte { + f.checkValid() + return f.data +} + +func parseDataFrame(fc *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { + if fh.StreamID == 0 { + // DATA frames MUST be associated with a stream. If a + // DATA frame is received whose stream identifier + // field is 0x0, the recipient MUST respond with a + // connection error (Section 5.4.1) of type + // PROTOCOL_ERROR. + countError("frame_data_stream_0") + return nil, connError{ErrCodeProtocol, "DATA frame with stream ID 0"} + } + f := fc.getDataFrame() + f.FrameHeader = fh + + var padSize byte + if fh.Flags.Has(FlagDataPadded) { + var err error + payload, padSize, err = readByte(payload) + if err != nil { + countError("frame_data_pad_byte_short") + return nil, err + } + } + if int(padSize) > len(payload) { + // If the length of the padding is greater than the + // length of the frame payload, the recipient MUST + // treat this as a connection error. + // Filed: https://github.com/http2/http2-spec/issues/610 + countError("frame_data_pad_too_big") + return nil, connError{ErrCodeProtocol, "pad size larger than data payload"} + } + f.data = payload[:len(payload)-int(padSize)] + return f, nil +} + +var ( + errStreamID = errors.New("invalid stream ID") + errDepStreamID = errors.New("invalid dependent stream ID") + errPadLength = errors.New("pad length too large") + errPadBytes = errors.New("padding bytes must all be zeros unless AllowIllegalWrites is enabled") +) + +func validStreamIDOrZero(streamID uint32) bool { + return streamID&(1<<31) == 0 +} + +func validStreamID(streamID uint32) bool { + return streamID != 0 && streamID&(1<<31) == 0 +} + +// WriteData writes a DATA frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility not to violate the maximum frame size +// and to not call other Write methods concurrently. +func (f *Framer) WriteData(streamID uint32, endStream bool, data []byte) error { + return f.WriteDataPadded(streamID, endStream, data, nil) +} + +// WriteDataPadded writes a DATA frame with optional padding. +// +// If pad is nil, the padding bit is not sent. +// The length of pad must not exceed 255 bytes. +// The bytes of pad must all be zero, unless f.AllowIllegalWrites is set. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility not to violate the maximum frame size +// and to not call other Write methods concurrently. +func (f *Framer) WriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { + if err := f.startWriteDataPadded(streamID, endStream, data, pad); err != nil { + return err + } + return f.endWrite() +} + +// startWriteDataPadded is WriteDataPadded, but only writes the frame to the Framer's internal buffer. +// The caller should call endWrite to flush the frame to the underlying writer. +func (f *Framer) startWriteDataPadded(streamID uint32, endStream bool, data, pad []byte) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + if len(pad) > 0 { + if len(pad) > 255 { + return errPadLength + } + if !f.AllowIllegalWrites { + for _, b := range pad { + if b != 0 { + // "Padding octets MUST be set to zero when sending." + return errPadBytes + } + } + } + } + var flags Flags + if endStream { + flags |= FlagDataEndStream + } + if pad != nil { + flags |= FlagDataPadded + } + f.startWrite(FrameData, flags, streamID) + if pad != nil { + f.wbuf = append(f.wbuf, byte(len(pad))) + } + f.wbuf = append(f.wbuf, data...) + f.wbuf = append(f.wbuf, pad...) + return nil +} + +// A SettingsFrame conveys configuration parameters that affect how +// endpoints communicate, such as preferences and constraints on peer +// behavior. +// +// See https://httpwg.org/specs/rfc7540.html#SETTINGS +type SettingsFrame struct { + FrameHeader + p []byte +} + +func parseSettingsFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { + if fh.Flags.Has(FlagSettingsAck) && fh.Length > 0 { + // When this (ACK 0x1) bit is set, the payload of the + // SETTINGS frame MUST be empty. Receipt of a + // SETTINGS frame with the ACK flag set and a length + // field value other than 0 MUST be treated as a + // connection error (Section 5.4.1) of type + // FRAME_SIZE_ERROR. + countError("frame_settings_ack_with_length") + return nil, ConnectionError(ErrCodeFrameSize) + } + if fh.StreamID != 0 { + // SETTINGS frames always apply to a connection, + // never a single stream. The stream identifier for a + // SETTINGS frame MUST be zero (0x0). If an endpoint + // receives a SETTINGS frame whose stream identifier + // field is anything other than 0x0, the endpoint MUST + // respond with a connection error (Section 5.4.1) of + // type PROTOCOL_ERROR. + countError("frame_settings_has_stream") + return nil, ConnectionError(ErrCodeProtocol) + } + if len(p)%6 != 0 { + countError("frame_settings_mod_6") + // Expecting even number of 6 byte settings. + return nil, ConnectionError(ErrCodeFrameSize) + } + f := &SettingsFrame{FrameHeader: fh, p: p} + if v, ok := f.Value(SettingInitialWindowSize); ok && v > (1<<31)-1 { + countError("frame_settings_window_size_too_big") + // Values above the maximum flow control window size of 2^31 - 1 MUST + // be treated as a connection error (Section 5.4.1) of type + // FLOW_CONTROL_ERROR. + return nil, ConnectionError(ErrCodeFlowControl) + } + return f, nil +} + +func (f *SettingsFrame) IsAck() bool { + return f.FrameHeader.Flags.Has(FlagSettingsAck) +} + +func (f *SettingsFrame) Value(id SettingID) (v uint32, ok bool) { + f.checkValid() + for i := 0; i < f.NumSettings(); i++ { + if s := f.Setting(i); s.ID == id { + return s.Val, true + } + } + return 0, false +} + +// Setting returns the setting from the frame at the given 0-based index. +// The index must be >= 0 and less than f.NumSettings(). +func (f *SettingsFrame) Setting(i int) Setting { + buf := f.p + return Setting{ + ID: SettingID(binary.BigEndian.Uint16(buf[i*6 : i*6+2])), + Val: binary.BigEndian.Uint32(buf[i*6+2 : i*6+6]), + } +} + +func (f *SettingsFrame) NumSettings() int { return len(f.p) / 6 } + +// HasDuplicates reports whether f contains any duplicate setting IDs. +func (f *SettingsFrame) HasDuplicates() bool { + num := f.NumSettings() + if num == 0 { + return false + } + // If it's small enough (the common case), just do the n^2 + // thing and avoid a map allocation. + if num < 10 { + for i := 0; i < num; i++ { + idi := f.Setting(i).ID + for j := i + 1; j < num; j++ { + idj := f.Setting(j).ID + if idi == idj { + return true + } + } + } + return false + } + seen := map[SettingID]bool{} + for i := 0; i < num; i++ { + id := f.Setting(i).ID + if seen[id] { + return true + } + seen[id] = true + } + return false +} + +// ForeachSetting runs fn for each setting. +// It stops and returns the first error. +func (f *SettingsFrame) ForeachSetting(fn func(Setting) error) error { + f.checkValid() + for i := 0; i < f.NumSettings(); i++ { + if err := fn(f.Setting(i)); err != nil { + return err + } + } + return nil +} + +// WriteSettings writes a SETTINGS frame with zero or more settings +// specified and the ACK bit not set. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteSettings(settings ...Setting) error { + f.startWrite(FrameSettings, 0, 0) + for _, s := range settings { + f.writeUint16(uint16(s.ID)) + f.writeUint32(s.Val) + } + return f.endWrite() +} + +// WriteSettingsAck writes an empty SETTINGS frame with the ACK bit set. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteSettingsAck() error { + f.startWrite(FrameSettings, FlagSettingsAck, 0) + return f.endWrite() +} + +// A PingFrame is a mechanism for measuring a minimal round trip time +// from the sender, as well as determining whether an idle connection +// is still functional. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.7 +type PingFrame struct { + FrameHeader + Data [8]byte +} + +func (f *PingFrame) IsAck() bool { return f.Flags.Has(FlagPingAck) } + +func parsePingFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { + if len(payload) != 8 { + countError("frame_ping_length") + return nil, ConnectionError(ErrCodeFrameSize) + } + if fh.StreamID != 0 { + countError("frame_ping_has_stream") + return nil, ConnectionError(ErrCodeProtocol) + } + f := &PingFrame{FrameHeader: fh} + copy(f.Data[:], payload) + return f, nil +} + +func (f *Framer) WritePing(ack bool, data [8]byte) error { + var flags Flags + if ack { + flags = FlagPingAck + } + f.startWrite(FramePing, flags, 0) + f.writeBytes(data[:]) + return f.endWrite() +} + +// A GoAwayFrame informs the remote peer to stop creating streams on this connection. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.8 +type GoAwayFrame struct { + FrameHeader + LastStreamID uint32 + ErrCode ErrCode + debugData []byte +} + +// DebugData returns any debug data in the GOAWAY frame. Its contents +// are not defined. +// The caller must not retain the returned memory past the next +// call to ReadFrame. +func (f *GoAwayFrame) DebugData() []byte { + f.checkValid() + return f.debugData +} + +func parseGoAwayFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { + if fh.StreamID != 0 { + countError("frame_goaway_has_stream") + return nil, ConnectionError(ErrCodeProtocol) + } + if len(p) < 8 { + countError("frame_goaway_short") + return nil, ConnectionError(ErrCodeFrameSize) + } + return &GoAwayFrame{ + FrameHeader: fh, + LastStreamID: binary.BigEndian.Uint32(p[:4]) & (1<<31 - 1), + ErrCode: ErrCode(binary.BigEndian.Uint32(p[4:8])), + debugData: p[8:], + }, nil +} + +func (f *Framer) WriteGoAway(maxStreamID uint32, code ErrCode, debugData []byte) error { + f.startWrite(FrameGoAway, 0, 0) + f.writeUint32(maxStreamID & (1<<31 - 1)) + f.writeUint32(uint32(code)) + f.writeBytes(debugData) + return f.endWrite() +} + +// An UnknownFrame is the frame type returned when the frame type is unknown +// or no specific frame type parser exists. +type UnknownFrame struct { + FrameHeader + p []byte +} + +// Payload returns the frame's payload (after the header). It is not +// valid to call this method after a subsequent call to +// Framer.ReadFrame, nor is it valid to retain the returned slice. +// The memory is owned by the Framer and is invalidated when the next +// frame is read. +func (f *UnknownFrame) Payload() []byte { + f.checkValid() + return f.p +} + +func parseUnknownFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { + return &UnknownFrame{fh, p}, nil +} + +// A WindowUpdateFrame is used to implement flow control. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.9 +type WindowUpdateFrame struct { + FrameHeader + Increment uint32 // never read with high bit set +} + +func parseWindowUpdateFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { + if len(p) != 4 { + countError("frame_windowupdate_bad_len") + return nil, ConnectionError(ErrCodeFrameSize) + } + inc := binary.BigEndian.Uint32(p[:4]) & 0x7fffffff // mask off high reserved bit + if inc == 0 { + // A receiver MUST treat the receipt of a + // WINDOW_UPDATE frame with an flow control window + // increment of 0 as a stream error (Section 5.4.2) of + // type PROTOCOL_ERROR; errors on the connection flow + // control window MUST be treated as a connection + // error (Section 5.4.1). + if fh.StreamID == 0 { + countError("frame_windowupdate_zero_inc_conn") + return nil, ConnectionError(ErrCodeProtocol) + } + countError("frame_windowupdate_zero_inc_stream") + return nil, streamError(fh.StreamID, ErrCodeProtocol) + } + return &WindowUpdateFrame{ + FrameHeader: fh, + Increment: inc, + }, nil +} + +// WriteWindowUpdate writes a WINDOW_UPDATE frame. +// The increment value must be between 1 and 2,147,483,647, inclusive. +// If the Stream ID is zero, the window update applies to the +// connection as a whole. +func (f *Framer) WriteWindowUpdate(streamID, incr uint32) error { + // "The legal range for the increment to the flow control window is 1 to 2^31-1 (2,147,483,647) octets." + if (incr < 1 || incr > 2147483647) && !f.AllowIllegalWrites { + return errors.New("illegal window increment value") + } + f.startWrite(FrameWindowUpdate, 0, streamID) + f.writeUint32(incr) + return f.endWrite() +} + +// A HeadersFrame is used to open a stream and additionally carries a +// header block fragment. +type HeadersFrame struct { + FrameHeader + + // Priority is set if FlagHeadersPriority is set in the FrameHeader. + Priority PriorityParam + + headerFragBuf []byte // not owned +} + +func (f *HeadersFrame) HeaderBlockFragment() []byte { + f.checkValid() + return f.headerFragBuf +} + +func (f *HeadersFrame) HeadersEnded() bool { + return f.FrameHeader.Flags.Has(FlagHeadersEndHeaders) +} + +func (f *HeadersFrame) StreamEnded() bool { + return f.FrameHeader.Flags.Has(FlagHeadersEndStream) +} + +func (f *HeadersFrame) HasPriority() bool { + return f.FrameHeader.Flags.Has(FlagHeadersPriority) +} + +func parseHeadersFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) { + hf := &HeadersFrame{ + FrameHeader: fh, + } + if fh.StreamID == 0 { + // HEADERS frames MUST be associated with a stream. If a HEADERS frame + // is received whose stream identifier field is 0x0, the recipient MUST + // respond with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR. + countError("frame_headers_zero_stream") + return nil, connError{ErrCodeProtocol, "HEADERS frame with stream ID 0"} + } + var padLength uint8 + if fh.Flags.Has(FlagHeadersPadded) { + if p, padLength, err = readByte(p); err != nil { + countError("frame_headers_pad_short") + return + } + } + if fh.Flags.Has(FlagHeadersPriority) { + var v uint32 + p, v, err = readUint32(p) + if err != nil { + countError("frame_headers_prio_short") + return nil, err + } + hf.Priority.StreamDep = v & 0x7fffffff + hf.Priority.Exclusive = (v != hf.Priority.StreamDep) // high bit was set + p, hf.Priority.Weight, err = readByte(p) + if err != nil { + countError("frame_headers_prio_weight_short") + return nil, err + } + } + if len(p)-int(padLength) < 0 { + countError("frame_headers_pad_too_big") + return nil, streamError(fh.StreamID, ErrCodeProtocol) + } + hf.headerFragBuf = p[:len(p)-int(padLength)] + return hf, nil +} + +// HeadersFrameParam are the parameters for writing a HEADERS frame. +type HeadersFrameParam struct { + // StreamID is the required Stream ID to initiate. + StreamID uint32 + // BlockFragment is part (or all) of a Header Block. + BlockFragment []byte + + // EndStream indicates that the header block is the last that + // the endpoint will send for the identified stream. Setting + // this flag causes the stream to enter one of "half closed" + // states. + EndStream bool + + // EndHeaders indicates that this frame contains an entire + // header block and is not followed by any + // CONTINUATION frames. + EndHeaders bool + + // PadLength is the optional number of bytes of zeros to add + // to this frame. + PadLength uint8 + + // Priority, if non-zero, includes stream priority information + // in the HEADER frame. + Priority PriorityParam +} + +// WriteHeaders writes a single HEADERS frame. +// +// This is a low-level header writing method. Encoding headers and +// splitting them into any necessary CONTINUATION frames is handled +// elsewhere. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteHeaders(p HeadersFrameParam) error { + if !validStreamID(p.StreamID) && !f.AllowIllegalWrites { + return errStreamID + } + var flags Flags + if p.PadLength != 0 { + flags |= FlagHeadersPadded + } + if p.EndStream { + flags |= FlagHeadersEndStream + } + if p.EndHeaders { + flags |= FlagHeadersEndHeaders + } + if !p.Priority.IsZero() { + flags |= FlagHeadersPriority + } + f.startWrite(FrameHeaders, flags, p.StreamID) + if p.PadLength != 0 { + f.writeByte(p.PadLength) + } + if !p.Priority.IsZero() { + v := p.Priority.StreamDep + if !validStreamIDOrZero(v) && !f.AllowIllegalWrites { + return errDepStreamID + } + if p.Priority.Exclusive { + v |= 1 << 31 + } + f.writeUint32(v) + f.writeByte(p.Priority.Weight) + } + f.wbuf = append(f.wbuf, p.BlockFragment...) + f.wbuf = append(f.wbuf, padZeros[:p.PadLength]...) + return f.endWrite() +} + +// A PriorityFrame specifies the sender-advised priority of a stream. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.3 +type PriorityFrame struct { + FrameHeader + PriorityParam +} + +// PriorityParam are the stream prioritzation parameters. +type PriorityParam struct { + // StreamDep is a 31-bit stream identifier for the + // stream that this stream depends on. Zero means no + // dependency. + StreamDep uint32 + + // Exclusive is whether the dependency is exclusive. + Exclusive bool + + // Weight is the stream's zero-indexed weight. It should be + // set together with StreamDep, or neither should be set. Per + // the spec, "Add one to the value to obtain a weight between + // 1 and 256." + Weight uint8 +} + +func (p PriorityParam) IsZero() bool { + return p == PriorityParam{} +} + +func parsePriorityFrame(_ *frameCache, fh FrameHeader, countError func(string), payload []byte) (Frame, error) { + if fh.StreamID == 0 { + countError("frame_priority_zero_stream") + return nil, connError{ErrCodeProtocol, "PRIORITY frame with stream ID 0"} + } + if len(payload) != 5 { + countError("frame_priority_bad_length") + return nil, connError{ErrCodeFrameSize, fmt.Sprintf("PRIORITY frame payload size was %d; want 5", len(payload))} + } + v := binary.BigEndian.Uint32(payload[:4]) + streamID := v & 0x7fffffff // mask off high bit + return &PriorityFrame{ + FrameHeader: fh, + PriorityParam: PriorityParam{ + Weight: payload[4], + StreamDep: streamID, + Exclusive: streamID != v, // was high bit set? + }, + }, nil +} + +// WritePriority writes a PRIORITY frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WritePriority(streamID uint32, p PriorityParam) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + if !validStreamIDOrZero(p.StreamDep) { + return errDepStreamID + } + f.startWrite(FramePriority, 0, streamID) + v := p.StreamDep + if p.Exclusive { + v |= 1 << 31 + } + f.writeUint32(v) + f.writeByte(p.Weight) + return f.endWrite() +} + +// A RSTStreamFrame allows for abnormal termination of a stream. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.4 +type RSTStreamFrame struct { + FrameHeader + ErrCode ErrCode +} + +func parseRSTStreamFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { + if len(p) != 4 { + countError("frame_rststream_bad_len") + return nil, ConnectionError(ErrCodeFrameSize) + } + if fh.StreamID == 0 { + countError("frame_rststream_zero_stream") + return nil, ConnectionError(ErrCodeProtocol) + } + return &RSTStreamFrame{fh, ErrCode(binary.BigEndian.Uint32(p[:4]))}, nil +} + +// WriteRSTStream writes a RST_STREAM frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteRSTStream(streamID uint32, code ErrCode) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + f.startWrite(FrameRSTStream, 0, streamID) + f.writeUint32(uint32(code)) + return f.endWrite() +} + +// A ContinuationFrame is used to continue a sequence of header block fragments. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.10 +type ContinuationFrame struct { + FrameHeader + headerFragBuf []byte +} + +func parseContinuationFrame(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (Frame, error) { + if fh.StreamID == 0 { + countError("frame_continuation_zero_stream") + return nil, connError{ErrCodeProtocol, "CONTINUATION frame with stream ID 0"} + } + return &ContinuationFrame{fh, p}, nil +} + +func (f *ContinuationFrame) HeaderBlockFragment() []byte { + f.checkValid() + return f.headerFragBuf +} + +func (f *ContinuationFrame) HeadersEnded() bool { + return f.FrameHeader.Flags.Has(FlagContinuationEndHeaders) +} + +// WriteContinuation writes a CONTINUATION frame. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WriteContinuation(streamID uint32, endHeaders bool, headerBlockFragment []byte) error { + if !validStreamID(streamID) && !f.AllowIllegalWrites { + return errStreamID + } + var flags Flags + if endHeaders { + flags |= FlagContinuationEndHeaders + } + f.startWrite(FrameContinuation, flags, streamID) + f.wbuf = append(f.wbuf, headerBlockFragment...) + return f.endWrite() +} + +// A PushPromiseFrame is used to initiate a server stream. +// See https://httpwg.org/specs/rfc7540.html#rfc.section.6.6 +type PushPromiseFrame struct { + FrameHeader + PromiseID uint32 + headerFragBuf []byte // not owned +} + +func (f *PushPromiseFrame) HeaderBlockFragment() []byte { + f.checkValid() + return f.headerFragBuf +} + +func (f *PushPromiseFrame) HeadersEnded() bool { + return f.FrameHeader.Flags.Has(FlagPushPromiseEndHeaders) +} + +func parsePushPromise(_ *frameCache, fh FrameHeader, countError func(string), p []byte) (_ Frame, err error) { + pp := &PushPromiseFrame{ + FrameHeader: fh, + } + if pp.StreamID == 0 { + // PUSH_PROMISE frames MUST be associated with an existing, + // peer-initiated stream. The stream identifier of a + // PUSH_PROMISE frame indicates the stream it is associated + // with. If the stream identifier field specifies the value + // 0x0, a recipient MUST respond with a connection error + // (Section 5.4.1) of type PROTOCOL_ERROR. + countError("frame_pushpromise_zero_stream") + return nil, ConnectionError(ErrCodeProtocol) + } + // The PUSH_PROMISE frame includes optional padding. + // Padding fields and flags are identical to those defined for DATA frames + var padLength uint8 + if fh.Flags.Has(FlagPushPromisePadded) { + if p, padLength, err = readByte(p); err != nil { + countError("frame_pushpromise_pad_short") + return + } + } + + p, pp.PromiseID, err = readUint32(p) + if err != nil { + countError("frame_pushpromise_promiseid_short") + return + } + pp.PromiseID = pp.PromiseID & (1<<31 - 1) + + if int(padLength) > len(p) { + // like the DATA frame, error out if padding is longer than the body. + countError("frame_pushpromise_pad_too_big") + return nil, ConnectionError(ErrCodeProtocol) + } + pp.headerFragBuf = p[:len(p)-int(padLength)] + return pp, nil +} + +// PushPromiseParam are the parameters for writing a PUSH_PROMISE frame. +type PushPromiseParam struct { + // StreamID is the required Stream ID to initiate. + StreamID uint32 + + // PromiseID is the required Stream ID which this + // Push Promises + PromiseID uint32 + + // BlockFragment is part (or all) of a Header Block. + BlockFragment []byte + + // EndHeaders indicates that this frame contains an entire + // header block and is not followed by any + // CONTINUATION frames. + EndHeaders bool + + // PadLength is the optional number of bytes of zeros to add + // to this frame. + PadLength uint8 +} + +// WritePushPromise writes a single PushPromise Frame. +// +// As with Header Frames, This is the low level call for writing +// individual frames. Continuation frames are handled elsewhere. +// +// It will perform exactly one Write to the underlying Writer. +// It is the caller's responsibility to not call other Write methods concurrently. +func (f *Framer) WritePushPromise(p PushPromiseParam) error { + if !validStreamID(p.StreamID) && !f.AllowIllegalWrites { + return errStreamID + } + var flags Flags + if p.PadLength != 0 { + flags |= FlagPushPromisePadded + } + if p.EndHeaders { + flags |= FlagPushPromiseEndHeaders + } + f.startWrite(FramePushPromise, flags, p.StreamID) + if p.PadLength != 0 { + f.writeByte(p.PadLength) + } + if !validStreamID(p.PromiseID) && !f.AllowIllegalWrites { + return errStreamID + } + f.writeUint32(p.PromiseID) + f.wbuf = append(f.wbuf, p.BlockFragment...) + f.wbuf = append(f.wbuf, padZeros[:p.PadLength]...) + return f.endWrite() +} + +// WriteRawFrame writes a raw frame. This can be used to write +// extension frames unknown to this package. +func (f *Framer) WriteRawFrame(t FrameType, flags Flags, streamID uint32, payload []byte) error { + f.startWrite(t, flags, streamID) + f.writeBytes(payload) + return f.endWrite() +} + +func readByte(p []byte) (remain []byte, b byte, err error) { + if len(p) == 0 { + return nil, 0, io.ErrUnexpectedEOF + } + return p[1:], p[0], nil +} + +func readUint32(p []byte) (remain []byte, v uint32, err error) { + if len(p) < 4 { + return nil, 0, io.ErrUnexpectedEOF + } + return p[4:], binary.BigEndian.Uint32(p[:4]), nil +} + +type streamEnder interface { + StreamEnded() bool +} + +type headersEnder interface { + HeadersEnded() bool +} + +type headersOrContinuation interface { + headersEnder + HeaderBlockFragment() []byte +} + +// A MetaHeadersFrame is the representation of one HEADERS frame and +// zero or more contiguous CONTINUATION frames and the decoding of +// their HPACK-encoded contents. +// +// This type of frame does not appear on the wire and is only returned +// by the Framer when Framer.ReadMetaHeaders is set. +type MetaHeadersFrame struct { + *HeadersFrame + + // Fields are the fields contained in the HEADERS and + // CONTINUATION frames. The underlying slice is owned by the + // Framer and must not be retained after the next call to + // ReadFrame. + // + // Fields are guaranteed to be in the correct http2 order and + // not have unknown pseudo header fields or invalid header + // field names or values. Required pseudo header fields may be + // missing, however. Use the MetaHeadersFrame.Pseudo accessor + // method access pseudo headers. + Fields []hpack.HeaderField + + // Truncated is whether the max header list size limit was hit + // and Fields is incomplete. The hpack decoder state is still + // valid, however. + Truncated bool +} + +// PseudoValue returns the given pseudo header field's value. +// The provided pseudo field should not contain the leading colon. +func (mh *MetaHeadersFrame) PseudoValue(pseudo string) string { + for _, hf := range mh.Fields { + if !hf.IsPseudo() { + return "" + } + if hf.Name[1:] == pseudo { + return hf.Value + } + } + return "" +} + +// RegularFields returns the regular (non-pseudo) header fields of mh. +// The caller does not own the returned slice. +func (mh *MetaHeadersFrame) RegularFields() []hpack.HeaderField { + for i, hf := range mh.Fields { + if !hf.IsPseudo() { + return mh.Fields[i:] + } + } + return nil +} + +// PseudoFields returns the pseudo header fields of mh. +// The caller does not own the returned slice. +func (mh *MetaHeadersFrame) PseudoFields() []hpack.HeaderField { + for i, hf := range mh.Fields { + if !hf.IsPseudo() { + return mh.Fields[:i] + } + } + return mh.Fields +} + +func (mh *MetaHeadersFrame) checkPseudos() error { + var isRequest, isResponse bool + pf := mh.PseudoFields() + for i, hf := range pf { + switch hf.Name { + case ":method", ":path", ":scheme", ":authority": + isRequest = true + case ":status": + isResponse = true + default: + return pseudoHeaderError(hf.Name) + } + // Check for duplicates. + // This would be a bad algorithm, but N is 4. + // And this doesn't allocate. + for _, hf2 := range pf[:i] { + if hf.Name == hf2.Name { + return duplicatePseudoHeaderError(hf.Name) + } + } + } + if isRequest && isResponse { + return errMixPseudoHeaderTypes + } + return nil +} + +func (fr *Framer) maxHeaderStringLen() int { + v := fr.maxHeaderListSize() + if uint32(int(v)) == v { + return int(v) + } + // They had a crazy big number for MaxHeaderBytes anyway, + // so give them unlimited header lengths: + return 0 +} + +// readMetaFrame returns 0 or more CONTINUATION frames from fr and +// merge them into the provided hf and returns a MetaHeadersFrame +// with the decoded hpack values. +func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { + if fr.AllowIllegalReads { + return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders") + } + mh := &MetaHeadersFrame{ + HeadersFrame: hf, + } + var remainSize = fr.maxHeaderListSize() + var sawRegular bool + + var invalid error // pseudo header field errors + hdec := fr.ReadMetaHeaders + hdec.SetEmitEnabled(true) + hdec.SetMaxStringLength(fr.maxHeaderStringLen()) + hdec.SetEmitFunc(func(hf hpack.HeaderField) { + if VerboseLogs && fr.logReads { + fr.debugReadLoggerf("http2: decoded hpack field %+v", hf) + } + if !httpguts.ValidHeaderFieldValue(hf.Value) { + // Don't include the value in the error, because it may be sensitive. + invalid = headerFieldValueError(hf.Name) + } + isPseudo := strings.HasPrefix(hf.Name, ":") + if isPseudo { + if sawRegular { + invalid = errPseudoAfterRegular + } + } else { + sawRegular = true + if !validWireHeaderFieldName(hf.Name) { + invalid = headerFieldNameError(hf.Name) + } + } + + if invalid != nil { + hdec.SetEmitEnabled(false) + return + } + + size := hf.Size() + if size > remainSize { + hdec.SetEmitEnabled(false) + mh.Truncated = true + return + } + remainSize -= size + + mh.Fields = append(mh.Fields, hf) + }) + // Lose reference to MetaHeadersFrame: + defer hdec.SetEmitFunc(func(hf hpack.HeaderField) {}) + + var hc headersOrContinuation = hf + for { + frag := hc.HeaderBlockFragment() + if _, err := hdec.Write(frag); err != nil { + return nil, ConnectionError(ErrCodeCompression) + } + + if hc.HeadersEnded() { + break + } + if f, err := fr.ReadFrame(); err != nil { + return nil, err + } else { + hc = f.(*ContinuationFrame) // guaranteed by checkFrameOrder + } + } + + mh.HeadersFrame.headerFragBuf = nil + mh.HeadersFrame.invalidate() + + if err := hdec.Close(); err != nil { + return nil, ConnectionError(ErrCodeCompression) + } + if invalid != nil { + fr.errDetail = invalid + if VerboseLogs { + log.Printf("http2: invalid header: %v", invalid) + } + return nil, StreamError{mh.StreamID, ErrCodeProtocol, invalid} + } + if err := mh.checkPseudos(); err != nil { + fr.errDetail = err + if VerboseLogs { + log.Printf("http2: invalid pseudo headers: %v", err) + } + return nil, StreamError{mh.StreamID, ErrCodeProtocol, err} + } + return mh, nil +} + +func summarizeFrame(f Frame) string { + var buf bytes.Buffer + f.Header().writeDebug(&buf) + switch f := f.(type) { + case *SettingsFrame: + n := 0 + f.ForeachSetting(func(s Setting) error { + n++ + if n == 1 { + buf.WriteString(", settings:") + } + fmt.Fprintf(&buf, " %v=%v,", s.ID, s.Val) + return nil + }) + if n > 0 { + buf.Truncate(buf.Len() - 1) // remove trailing comma + } + case *DataFrame: + data := f.Data() + const max = 256 + if len(data) > max { + data = data[:max] + } + fmt.Fprintf(&buf, " data=%q", data) + if len(f.Data()) > max { + fmt.Fprintf(&buf, " (%d bytes omitted)", len(f.Data())-max) + } + case *WindowUpdateFrame: + if f.StreamID == 0 { + buf.WriteString(" (conn)") + } + fmt.Fprintf(&buf, " incr=%v", f.Increment) + case *PingFrame: + fmt.Fprintf(&buf, " ping=%q", f.Data[:]) + case *GoAwayFrame: + fmt.Fprintf(&buf, " LastStreamID=%v ErrCode=%v Debug=%q", + f.LastStreamID, f.ErrCode, f.debugData) + case *RSTStreamFrame: + fmt.Fprintf(&buf, " ErrCode=%v", f.ErrCode) + } + return buf.String() +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/go111.go b/ecs-agent/vendor/golang.org/x/net/http2/go111.go new file mode 100644 index 0000000000..5bf62b032e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/go111.go @@ -0,0 +1,30 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.11 +// +build go1.11 + +package http2 + +import ( + "net/http/httptrace" + "net/textproto" +) + +func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { + return trace != nil && trace.WroteHeaderField != nil +} + +func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { + if trace != nil && trace.WroteHeaderField != nil { + trace.WroteHeaderField(k, []string{v}) + } +} + +func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { + if trace != nil { + return trace.Got1xxResponse + } + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/go115.go b/ecs-agent/vendor/golang.org/x/net/http2/go115.go new file mode 100644 index 0000000000..908af1ab93 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/go115.go @@ -0,0 +1,27 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.15 +// +build go1.15 + +package http2 + +import ( + "context" + "crypto/tls" +) + +// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS +// connection. +func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { + dialer := &tls.Dialer{ + Config: cfg, + } + cn, err := dialer.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + tlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed + return tlsCn, nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/go118.go b/ecs-agent/vendor/golang.org/x/net/http2/go118.go new file mode 100644 index 0000000000..aca4b2b31a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/go118.go @@ -0,0 +1,17 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.18 +// +build go1.18 + +package http2 + +import ( + "crypto/tls" + "net" +) + +func tlsUnderlyingConn(tc *tls.Conn) net.Conn { + return tc.NetConn() +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/gotrack.go b/ecs-agent/vendor/golang.org/x/net/http2/gotrack.go new file mode 100644 index 0000000000..9933c9f8c7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/gotrack.go @@ -0,0 +1,170 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Defensive debug-only utility to track that functions run on the +// goroutine that they're supposed to. + +package http2 + +import ( + "bytes" + "errors" + "fmt" + "os" + "runtime" + "strconv" + "sync" +) + +var DebugGoroutines = os.Getenv("DEBUG_HTTP2_GOROUTINES") == "1" + +type goroutineLock uint64 + +func newGoroutineLock() goroutineLock { + if !DebugGoroutines { + return 0 + } + return goroutineLock(curGoroutineID()) +} + +func (g goroutineLock) check() { + if !DebugGoroutines { + return + } + if curGoroutineID() != uint64(g) { + panic("running on the wrong goroutine") + } +} + +func (g goroutineLock) checkNotOn() { + if !DebugGoroutines { + return + } + if curGoroutineID() == uint64(g) { + panic("running on the wrong goroutine") + } +} + +var goroutineSpace = []byte("goroutine ") + +func curGoroutineID() uint64 { + bp := littleBuf.Get().(*[]byte) + defer littleBuf.Put(bp) + b := *bp + b = b[:runtime.Stack(b, false)] + // Parse the 4707 out of "goroutine 4707 [" + b = bytes.TrimPrefix(b, goroutineSpace) + i := bytes.IndexByte(b, ' ') + if i < 0 { + panic(fmt.Sprintf("No space found in %q", b)) + } + b = b[:i] + n, err := parseUintBytes(b, 10, 64) + if err != nil { + panic(fmt.Sprintf("Failed to parse goroutine ID out of %q: %v", b, err)) + } + return n +} + +var littleBuf = sync.Pool{ + New: func() interface{} { + buf := make([]byte, 64) + return &buf + }, +} + +// parseUintBytes is like strconv.ParseUint, but using a []byte. +func parseUintBytes(s []byte, base int, bitSize int) (n uint64, err error) { + var cutoff, maxVal uint64 + + if bitSize == 0 { + bitSize = int(strconv.IntSize) + } + + s0 := s + switch { + case len(s) < 1: + err = strconv.ErrSyntax + goto Error + + case 2 <= base && base <= 36: + // valid base; nothing to do + + case base == 0: + // Look for octal, hex prefix. + switch { + case s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X'): + base = 16 + s = s[2:] + if len(s) < 1 { + err = strconv.ErrSyntax + goto Error + } + case s[0] == '0': + base = 8 + default: + base = 10 + } + + default: + err = errors.New("invalid base " + strconv.Itoa(base)) + goto Error + } + + n = 0 + cutoff = cutoff64(base) + maxVal = 1<= base { + n = 0 + err = strconv.ErrSyntax + goto Error + } + + if n >= cutoff { + // n*base overflows + n = 1<<64 - 1 + err = strconv.ErrRange + goto Error + } + n *= uint64(base) + + n1 := n + uint64(v) + if n1 < n || n1 > maxVal { + // n+v overflows + n = 1<<64 - 1 + err = strconv.ErrRange + goto Error + } + n = n1 + } + + return n, nil + +Error: + return n, &strconv.NumError{Func: "ParseUint", Num: string(s0), Err: err} +} + +// Return the first number n such that n*base >= 1<<64. +func cutoff64(base int) uint64 { + if base < 2 { + return 0 + } + return (1<<64-1)/uint64(base) + 1 +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/headermap.go b/ecs-agent/vendor/golang.org/x/net/http2/headermap.go new file mode 100644 index 0000000000..149b3dd20e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/headermap.go @@ -0,0 +1,105 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "net/http" + "sync" +) + +var ( + commonBuildOnce sync.Once + commonLowerHeader map[string]string // Go-Canonical-Case -> lower-case + commonCanonHeader map[string]string // lower-case -> Go-Canonical-Case +) + +func buildCommonHeaderMapsOnce() { + commonBuildOnce.Do(buildCommonHeaderMaps) +} + +func buildCommonHeaderMaps() { + common := []string{ + "accept", + "accept-charset", + "accept-encoding", + "accept-language", + "accept-ranges", + "age", + "access-control-allow-credentials", + "access-control-allow-headers", + "access-control-allow-methods", + "access-control-allow-origin", + "access-control-expose-headers", + "access-control-max-age", + "access-control-request-headers", + "access-control-request-method", + "allow", + "authorization", + "cache-control", + "content-disposition", + "content-encoding", + "content-language", + "content-length", + "content-location", + "content-range", + "content-type", + "cookie", + "date", + "etag", + "expect", + "expires", + "from", + "host", + "if-match", + "if-modified-since", + "if-none-match", + "if-unmodified-since", + "last-modified", + "link", + "location", + "max-forwards", + "origin", + "proxy-authenticate", + "proxy-authorization", + "range", + "referer", + "refresh", + "retry-after", + "server", + "set-cookie", + "strict-transport-security", + "trailer", + "transfer-encoding", + "user-agent", + "vary", + "via", + "www-authenticate", + "x-forwarded-for", + "x-forwarded-proto", + } + commonLowerHeader = make(map[string]string, len(common)) + commonCanonHeader = make(map[string]string, len(common)) + for _, v := range common { + chk := http.CanonicalHeaderKey(v) + commonLowerHeader[chk] = v + commonCanonHeader[v] = chk + } +} + +func lowerHeader(v string) (lower string, ascii bool) { + buildCommonHeaderMapsOnce() + if s, ok := commonLowerHeader[v]; ok { + return s, true + } + return asciiToLower(v) +} + +func canonicalHeader(v string) string { + buildCommonHeaderMapsOnce() + if s, ok := commonCanonHeader[v]; ok { + return s + } + return http.CanonicalHeaderKey(v) +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/hpack/encode.go b/ecs-agent/vendor/golang.org/x/net/http2/hpack/encode.go new file mode 100644 index 0000000000..46219da2b0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/hpack/encode.go @@ -0,0 +1,245 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hpack + +import ( + "io" +) + +const ( + uint32Max = ^uint32(0) + initialHeaderTableSize = 4096 +) + +type Encoder struct { + dynTab dynamicTable + // minSize is the minimum table size set by + // SetMaxDynamicTableSize after the previous Header Table Size + // Update. + minSize uint32 + // maxSizeLimit is the maximum table size this encoder + // supports. This will protect the encoder from too large + // size. + maxSizeLimit uint32 + // tableSizeUpdate indicates whether "Header Table Size + // Update" is required. + tableSizeUpdate bool + w io.Writer + buf []byte +} + +// NewEncoder returns a new Encoder which performs HPACK encoding. An +// encoded data is written to w. +func NewEncoder(w io.Writer) *Encoder { + e := &Encoder{ + minSize: uint32Max, + maxSizeLimit: initialHeaderTableSize, + tableSizeUpdate: false, + w: w, + } + e.dynTab.table.init() + e.dynTab.setMaxSize(initialHeaderTableSize) + return e +} + +// WriteField encodes f into a single Write to e's underlying Writer. +// This function may also produce bytes for "Header Table Size Update" +// if necessary. If produced, it is done before encoding f. +func (e *Encoder) WriteField(f HeaderField) error { + e.buf = e.buf[:0] + + if e.tableSizeUpdate { + e.tableSizeUpdate = false + if e.minSize < e.dynTab.maxSize { + e.buf = appendTableSize(e.buf, e.minSize) + } + e.minSize = uint32Max + e.buf = appendTableSize(e.buf, e.dynTab.maxSize) + } + + idx, nameValueMatch := e.searchTable(f) + if nameValueMatch { + e.buf = appendIndexed(e.buf, idx) + } else { + indexing := e.shouldIndex(f) + if indexing { + e.dynTab.add(f) + } + + if idx == 0 { + e.buf = appendNewName(e.buf, f, indexing) + } else { + e.buf = appendIndexedName(e.buf, f, idx, indexing) + } + } + n, err := e.w.Write(e.buf) + if err == nil && n != len(e.buf) { + err = io.ErrShortWrite + } + return err +} + +// searchTable searches f in both stable and dynamic header tables. +// The static header table is searched first. Only when there is no +// exact match for both name and value, the dynamic header table is +// then searched. If there is no match, i is 0. If both name and value +// match, i is the matched index and nameValueMatch becomes true. If +// only name matches, i points to that index and nameValueMatch +// becomes false. +func (e *Encoder) searchTable(f HeaderField) (i uint64, nameValueMatch bool) { + i, nameValueMatch = staticTable.search(f) + if nameValueMatch { + return i, true + } + + j, nameValueMatch := e.dynTab.table.search(f) + if nameValueMatch || (i == 0 && j != 0) { + return j + uint64(staticTable.len()), nameValueMatch + } + + return i, false +} + +// SetMaxDynamicTableSize changes the dynamic header table size to v. +// The actual size is bounded by the value passed to +// SetMaxDynamicTableSizeLimit. +func (e *Encoder) SetMaxDynamicTableSize(v uint32) { + if v > e.maxSizeLimit { + v = e.maxSizeLimit + } + if v < e.minSize { + e.minSize = v + } + e.tableSizeUpdate = true + e.dynTab.setMaxSize(v) +} + +// MaxDynamicTableSize returns the current dynamic header table size. +func (e *Encoder) MaxDynamicTableSize() (v uint32) { + return e.dynTab.maxSize +} + +// SetMaxDynamicTableSizeLimit changes the maximum value that can be +// specified in SetMaxDynamicTableSize to v. By default, it is set to +// 4096, which is the same size of the default dynamic header table +// size described in HPACK specification. If the current maximum +// dynamic header table size is strictly greater than v, "Header Table +// Size Update" will be done in the next WriteField call and the +// maximum dynamic header table size is truncated to v. +func (e *Encoder) SetMaxDynamicTableSizeLimit(v uint32) { + e.maxSizeLimit = v + if e.dynTab.maxSize > v { + e.tableSizeUpdate = true + e.dynTab.setMaxSize(v) + } +} + +// shouldIndex reports whether f should be indexed. +func (e *Encoder) shouldIndex(f HeaderField) bool { + return !f.Sensitive && f.Size() <= e.dynTab.maxSize +} + +// appendIndexed appends index i, as encoded in "Indexed Header Field" +// representation, to dst and returns the extended buffer. +func appendIndexed(dst []byte, i uint64) []byte { + first := len(dst) + dst = appendVarInt(dst, 7, i) + dst[first] |= 0x80 + return dst +} + +// appendNewName appends f, as encoded in one of "Literal Header field +// - New Name" representation variants, to dst and returns the +// extended buffer. +// +// If f.Sensitive is true, "Never Indexed" representation is used. If +// f.Sensitive is false and indexing is true, "Incremental Indexing" +// representation is used. +func appendNewName(dst []byte, f HeaderField, indexing bool) []byte { + dst = append(dst, encodeTypeByte(indexing, f.Sensitive)) + dst = appendHpackString(dst, f.Name) + return appendHpackString(dst, f.Value) +} + +// appendIndexedName appends f and index i referring indexed name +// entry, as encoded in one of "Literal Header field - Indexed Name" +// representation variants, to dst and returns the extended buffer. +// +// If f.Sensitive is true, "Never Indexed" representation is used. If +// f.Sensitive is false and indexing is true, "Incremental Indexing" +// representation is used. +func appendIndexedName(dst []byte, f HeaderField, i uint64, indexing bool) []byte { + first := len(dst) + var n byte + if indexing { + n = 6 + } else { + n = 4 + } + dst = appendVarInt(dst, n, i) + dst[first] |= encodeTypeByte(indexing, f.Sensitive) + return appendHpackString(dst, f.Value) +} + +// appendTableSize appends v, as encoded in "Header Table Size Update" +// representation, to dst and returns the extended buffer. +func appendTableSize(dst []byte, v uint32) []byte { + first := len(dst) + dst = appendVarInt(dst, 5, uint64(v)) + dst[first] |= 0x20 + return dst +} + +// appendVarInt appends i, as encoded in variable integer form using n +// bit prefix, to dst and returns the extended buffer. +// +// See +// https://httpwg.org/specs/rfc7541.html#integer.representation +func appendVarInt(dst []byte, n byte, i uint64) []byte { + k := uint64((1 << n) - 1) + if i < k { + return append(dst, byte(i)) + } + dst = append(dst, byte(k)) + i -= k + for ; i >= 128; i >>= 7 { + dst = append(dst, byte(0x80|(i&0x7f))) + } + return append(dst, byte(i)) +} + +// appendHpackString appends s, as encoded in "String Literal" +// representation, to dst and returns the extended buffer. +// +// s will be encoded in Huffman codes only when it produces strictly +// shorter byte string. +func appendHpackString(dst []byte, s string) []byte { + huffmanLength := HuffmanEncodeLength(s) + if huffmanLength < uint64(len(s)) { + first := len(dst) + dst = appendVarInt(dst, 7, huffmanLength) + dst = AppendHuffmanString(dst, s) + dst[first] |= 0x80 + } else { + dst = appendVarInt(dst, 7, uint64(len(s))) + dst = append(dst, s...) + } + return dst +} + +// encodeTypeByte returns type byte. If sensitive is true, type byte +// for "Never Indexed" representation is returned. If sensitive is +// false and indexing is true, type byte for "Incremental Indexing" +// representation is returned. Otherwise, type byte for "Without +// Indexing" is returned. +func encodeTypeByte(indexing, sensitive bool) byte { + if sensitive { + return 0x10 + } + if indexing { + return 0x40 + } + return 0 +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/hpack/hpack.go b/ecs-agent/vendor/golang.org/x/net/http2/hpack/hpack.go new file mode 100644 index 0000000000..7a1d976696 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/hpack/hpack.go @@ -0,0 +1,523 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package hpack implements HPACK, a compression format for +// efficiently representing HTTP header fields in the context of HTTP/2. +// +// See http://tools.ietf.org/html/draft-ietf-httpbis-header-compression-09 +package hpack + +import ( + "bytes" + "errors" + "fmt" +) + +// A DecodingError is something the spec defines as a decoding error. +type DecodingError struct { + Err error +} + +func (de DecodingError) Error() string { + return fmt.Sprintf("decoding error: %v", de.Err) +} + +// An InvalidIndexError is returned when an encoder references a table +// entry before the static table or after the end of the dynamic table. +type InvalidIndexError int + +func (e InvalidIndexError) Error() string { + return fmt.Sprintf("invalid indexed representation index %d", int(e)) +} + +// A HeaderField is a name-value pair. Both the name and value are +// treated as opaque sequences of octets. +type HeaderField struct { + Name, Value string + + // Sensitive means that this header field should never be + // indexed. + Sensitive bool +} + +// IsPseudo reports whether the header field is an http2 pseudo header. +// That is, it reports whether it starts with a colon. +// It is not otherwise guaranteed to be a valid pseudo header field, +// though. +func (hf HeaderField) IsPseudo() bool { + return len(hf.Name) != 0 && hf.Name[0] == ':' +} + +func (hf HeaderField) String() string { + var suffix string + if hf.Sensitive { + suffix = " (sensitive)" + } + return fmt.Sprintf("header field %q = %q%s", hf.Name, hf.Value, suffix) +} + +// Size returns the size of an entry per RFC 7541 section 4.1. +func (hf HeaderField) Size() uint32 { + // https://httpwg.org/specs/rfc7541.html#rfc.section.4.1 + // "The size of the dynamic table is the sum of the size of + // its entries. The size of an entry is the sum of its name's + // length in octets (as defined in Section 5.2), its value's + // length in octets (see Section 5.2), plus 32. The size of + // an entry is calculated using the length of the name and + // value without any Huffman encoding applied." + + // This can overflow if somebody makes a large HeaderField + // Name and/or Value by hand, but we don't care, because that + // won't happen on the wire because the encoding doesn't allow + // it. + return uint32(len(hf.Name) + len(hf.Value) + 32) +} + +// A Decoder is the decoding context for incremental processing of +// header blocks. +type Decoder struct { + dynTab dynamicTable + emit func(f HeaderField) + + emitEnabled bool // whether calls to emit are enabled + maxStrLen int // 0 means unlimited + + // buf is the unparsed buffer. It's only written to + // saveBuf if it was truncated in the middle of a header + // block. Because it's usually not owned, we can only + // process it under Write. + buf []byte // not owned; only valid during Write + + // saveBuf is previous data passed to Write which we weren't able + // to fully parse before. Unlike buf, we own this data. + saveBuf bytes.Buffer + + firstField bool // processing the first field of the header block +} + +// NewDecoder returns a new decoder with the provided maximum dynamic +// table size. The emitFunc will be called for each valid field +// parsed, in the same goroutine as calls to Write, before Write returns. +func NewDecoder(maxDynamicTableSize uint32, emitFunc func(f HeaderField)) *Decoder { + d := &Decoder{ + emit: emitFunc, + emitEnabled: true, + firstField: true, + } + d.dynTab.table.init() + d.dynTab.allowedMaxSize = maxDynamicTableSize + d.dynTab.setMaxSize(maxDynamicTableSize) + return d +} + +// ErrStringLength is returned by Decoder.Write when the max string length +// (as configured by Decoder.SetMaxStringLength) would be violated. +var ErrStringLength = errors.New("hpack: string too long") + +// SetMaxStringLength sets the maximum size of a HeaderField name or +// value string. If a string exceeds this length (even after any +// decompression), Write will return ErrStringLength. +// A value of 0 means unlimited and is the default from NewDecoder. +func (d *Decoder) SetMaxStringLength(n int) { + d.maxStrLen = n +} + +// SetEmitFunc changes the callback used when new header fields +// are decoded. +// It must be non-nil. It does not affect EmitEnabled. +func (d *Decoder) SetEmitFunc(emitFunc func(f HeaderField)) { + d.emit = emitFunc +} + +// SetEmitEnabled controls whether the emitFunc provided to NewDecoder +// should be called. The default is true. +// +// This facility exists to let servers enforce MAX_HEADER_LIST_SIZE +// while still decoding and keeping in-sync with decoder state, but +// without doing unnecessary decompression or generating unnecessary +// garbage for header fields past the limit. +func (d *Decoder) SetEmitEnabled(v bool) { d.emitEnabled = v } + +// EmitEnabled reports whether calls to the emitFunc provided to NewDecoder +// are currently enabled. The default is true. +func (d *Decoder) EmitEnabled() bool { return d.emitEnabled } + +// TODO: add method *Decoder.Reset(maxSize, emitFunc) to let callers re-use Decoders and their +// underlying buffers for garbage reasons. + +func (d *Decoder) SetMaxDynamicTableSize(v uint32) { + d.dynTab.setMaxSize(v) +} + +// SetAllowedMaxDynamicTableSize sets the upper bound that the encoded +// stream (via dynamic table size updates) may set the maximum size +// to. +func (d *Decoder) SetAllowedMaxDynamicTableSize(v uint32) { + d.dynTab.allowedMaxSize = v +} + +type dynamicTable struct { + // https://httpwg.org/specs/rfc7541.html#rfc.section.2.3.2 + table headerFieldTable + size uint32 // in bytes + maxSize uint32 // current maxSize + allowedMaxSize uint32 // maxSize may go up to this, inclusive +} + +func (dt *dynamicTable) setMaxSize(v uint32) { + dt.maxSize = v + dt.evict() +} + +func (dt *dynamicTable) add(f HeaderField) { + dt.table.addEntry(f) + dt.size += f.Size() + dt.evict() +} + +// If we're too big, evict old stuff. +func (dt *dynamicTable) evict() { + var n int + for dt.size > dt.maxSize && n < dt.table.len() { + dt.size -= dt.table.ents[n].Size() + n++ + } + dt.table.evictOldest(n) +} + +func (d *Decoder) maxTableIndex() int { + // This should never overflow. RFC 7540 Section 6.5.2 limits the size of + // the dynamic table to 2^32 bytes, where each entry will occupy more than + // one byte. Further, the staticTable has a fixed, small length. + return d.dynTab.table.len() + staticTable.len() +} + +func (d *Decoder) at(i uint64) (hf HeaderField, ok bool) { + // See Section 2.3.3. + if i == 0 { + return + } + if i <= uint64(staticTable.len()) { + return staticTable.ents[i-1], true + } + if i > uint64(d.maxTableIndex()) { + return + } + // In the dynamic table, newer entries have lower indices. + // However, dt.ents[0] is the oldest entry. Hence, dt.ents is + // the reversed dynamic table. + dt := d.dynTab.table + return dt.ents[dt.len()-(int(i)-staticTable.len())], true +} + +// DecodeFull decodes an entire block. +// +// TODO: remove this method and make it incremental later? This is +// easier for debugging now. +func (d *Decoder) DecodeFull(p []byte) ([]HeaderField, error) { + var hf []HeaderField + saveFunc := d.emit + defer func() { d.emit = saveFunc }() + d.emit = func(f HeaderField) { hf = append(hf, f) } + if _, err := d.Write(p); err != nil { + return nil, err + } + if err := d.Close(); err != nil { + return nil, err + } + return hf, nil +} + +// Close declares that the decoding is complete and resets the Decoder +// to be reused again for a new header block. If there is any remaining +// data in the decoder's buffer, Close returns an error. +func (d *Decoder) Close() error { + if d.saveBuf.Len() > 0 { + d.saveBuf.Reset() + return DecodingError{errors.New("truncated headers")} + } + d.firstField = true + return nil +} + +func (d *Decoder) Write(p []byte) (n int, err error) { + if len(p) == 0 { + // Prevent state machine CPU attacks (making us redo + // work up to the point of finding out we don't have + // enough data) + return + } + // Only copy the data if we have to. Optimistically assume + // that p will contain a complete header block. + if d.saveBuf.Len() == 0 { + d.buf = p + } else { + d.saveBuf.Write(p) + d.buf = d.saveBuf.Bytes() + d.saveBuf.Reset() + } + + for len(d.buf) > 0 { + err = d.parseHeaderFieldRepr() + if err == errNeedMore { + // Extra paranoia, making sure saveBuf won't + // get too large. All the varint and string + // reading code earlier should already catch + // overlong things and return ErrStringLength, + // but keep this as a last resort. + const varIntOverhead = 8 // conservative + if d.maxStrLen != 0 && int64(len(d.buf)) > 2*(int64(d.maxStrLen)+varIntOverhead) { + return 0, ErrStringLength + } + d.saveBuf.Write(d.buf) + return len(p), nil + } + d.firstField = false + if err != nil { + break + } + } + return len(p), err +} + +// errNeedMore is an internal sentinel error value that means the +// buffer is truncated and we need to read more data before we can +// continue parsing. +var errNeedMore = errors.New("need more data") + +type indexType int + +const ( + indexedTrue indexType = iota + indexedFalse + indexedNever +) + +func (v indexType) indexed() bool { return v == indexedTrue } +func (v indexType) sensitive() bool { return v == indexedNever } + +// returns errNeedMore if there isn't enough data available. +// any other error is fatal. +// consumes d.buf iff it returns nil. +// precondition: must be called with len(d.buf) > 0 +func (d *Decoder) parseHeaderFieldRepr() error { + b := d.buf[0] + switch { + case b&128 != 0: + // Indexed representation. + // High bit set? + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.1 + return d.parseFieldIndexed() + case b&192 == 64: + // 6.2.1 Literal Header Field with Incremental Indexing + // 0b10xxxxxx: top two bits are 10 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.1 + return d.parseFieldLiteral(6, indexedTrue) + case b&240 == 0: + // 6.2.2 Literal Header Field without Indexing + // 0b0000xxxx: top four bits are 0000 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.2 + return d.parseFieldLiteral(4, indexedFalse) + case b&240 == 16: + // 6.2.3 Literal Header Field never Indexed + // 0b0001xxxx: top four bits are 0001 + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.2.3 + return d.parseFieldLiteral(4, indexedNever) + case b&224 == 32: + // 6.3 Dynamic Table Size Update + // Top three bits are '001'. + // https://httpwg.org/specs/rfc7541.html#rfc.section.6.3 + return d.parseDynamicTableSizeUpdate() + } + + return DecodingError{errors.New("invalid encoding")} +} + +// (same invariants and behavior as parseHeaderFieldRepr) +func (d *Decoder) parseFieldIndexed() error { + buf := d.buf + idx, buf, err := readVarInt(7, buf) + if err != nil { + return err + } + hf, ok := d.at(idx) + if !ok { + return DecodingError{InvalidIndexError(idx)} + } + d.buf = buf + return d.callEmit(HeaderField{Name: hf.Name, Value: hf.Value}) +} + +// (same invariants and behavior as parseHeaderFieldRepr) +func (d *Decoder) parseFieldLiteral(n uint8, it indexType) error { + buf := d.buf + nameIdx, buf, err := readVarInt(n, buf) + if err != nil { + return err + } + + var hf HeaderField + wantStr := d.emitEnabled || it.indexed() + var undecodedName undecodedString + if nameIdx > 0 { + ihf, ok := d.at(nameIdx) + if !ok { + return DecodingError{InvalidIndexError(nameIdx)} + } + hf.Name = ihf.Name + } else { + undecodedName, buf, err = d.readString(buf) + if err != nil { + return err + } + } + undecodedValue, buf, err := d.readString(buf) + if err != nil { + return err + } + if wantStr { + if nameIdx <= 0 { + hf.Name, err = d.decodeString(undecodedName) + if err != nil { + return err + } + } + hf.Value, err = d.decodeString(undecodedValue) + if err != nil { + return err + } + } + d.buf = buf + if it.indexed() { + d.dynTab.add(hf) + } + hf.Sensitive = it.sensitive() + return d.callEmit(hf) +} + +func (d *Decoder) callEmit(hf HeaderField) error { + if d.maxStrLen != 0 { + if len(hf.Name) > d.maxStrLen || len(hf.Value) > d.maxStrLen { + return ErrStringLength + } + } + if d.emitEnabled { + d.emit(hf) + } + return nil +} + +// (same invariants and behavior as parseHeaderFieldRepr) +func (d *Decoder) parseDynamicTableSizeUpdate() error { + // RFC 7541, sec 4.2: This dynamic table size update MUST occur at the + // beginning of the first header block following the change to the dynamic table size. + if !d.firstField && d.dynTab.size > 0 { + return DecodingError{errors.New("dynamic table size update MUST occur at the beginning of a header block")} + } + + buf := d.buf + size, buf, err := readVarInt(5, buf) + if err != nil { + return err + } + if size > uint64(d.dynTab.allowedMaxSize) { + return DecodingError{errors.New("dynamic table size update too large")} + } + d.dynTab.setMaxSize(uint32(size)) + d.buf = buf + return nil +} + +var errVarintOverflow = DecodingError{errors.New("varint integer overflow")} + +// readVarInt reads an unsigned variable length integer off the +// beginning of p. n is the parameter as described in +// https://httpwg.org/specs/rfc7541.html#rfc.section.5.1. +// +// n must always be between 1 and 8. +// +// The returned remain buffer is either a smaller suffix of p, or err != nil. +// The error is errNeedMore if p doesn't contain a complete integer. +func readVarInt(n byte, p []byte) (i uint64, remain []byte, err error) { + if n < 1 || n > 8 { + panic("bad n") + } + if len(p) == 0 { + return 0, p, errNeedMore + } + i = uint64(p[0]) + if n < 8 { + i &= (1 << uint64(n)) - 1 + } + if i < (1< 0 { + b := p[0] + p = p[1:] + i += uint64(b&127) << m + if b&128 == 0 { + return i, p, nil + } + m += 7 + if m >= 63 { // TODO: proper overflow check. making this up. + return 0, origP, errVarintOverflow + } + } + return 0, origP, errNeedMore +} + +// readString reads an hpack string from p. +// +// It returns a reference to the encoded string data to permit deferring decode costs +// until after the caller verifies all data is present. +func (d *Decoder) readString(p []byte) (u undecodedString, remain []byte, err error) { + if len(p) == 0 { + return u, p, errNeedMore + } + isHuff := p[0]&128 != 0 + strLen, p, err := readVarInt(7, p) + if err != nil { + return u, p, err + } + if d.maxStrLen != 0 && strLen > uint64(d.maxStrLen) { + // Returning an error here means Huffman decoding errors + // for non-indexed strings past the maximum string length + // are ignored, but the server is returning an error anyway + // and because the string is not indexed the error will not + // affect the decoding state. + return u, nil, ErrStringLength + } + if uint64(len(p)) < strLen { + return u, p, errNeedMore + } + u.isHuff = isHuff + u.b = p[:strLen] + return u, p[strLen:], nil +} + +type undecodedString struct { + isHuff bool + b []byte +} + +func (d *Decoder) decodeString(u undecodedString) (string, error) { + if !u.isHuff { + return string(u.b), nil + } + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() // don't trust others + var s string + err := huffmanDecode(buf, d.maxStrLen, u.b) + if err == nil { + s = buf.String() + } + buf.Reset() // be nice to GC + bufPool.Put(buf) + return s, err +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/hpack/huffman.go b/ecs-agent/vendor/golang.org/x/net/http2/hpack/huffman.go new file mode 100644 index 0000000000..20d083a716 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/hpack/huffman.go @@ -0,0 +1,226 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hpack + +import ( + "bytes" + "errors" + "io" + "sync" +) + +var bufPool = sync.Pool{ + New: func() interface{} { return new(bytes.Buffer) }, +} + +// HuffmanDecode decodes the string in v and writes the expanded +// result to w, returning the number of bytes written to w and the +// Write call's return value. At most one Write call is made. +func HuffmanDecode(w io.Writer, v []byte) (int, error) { + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() + defer bufPool.Put(buf) + if err := huffmanDecode(buf, 0, v); err != nil { + return 0, err + } + return w.Write(buf.Bytes()) +} + +// HuffmanDecodeToString decodes the string in v. +func HuffmanDecodeToString(v []byte) (string, error) { + buf := bufPool.Get().(*bytes.Buffer) + buf.Reset() + defer bufPool.Put(buf) + if err := huffmanDecode(buf, 0, v); err != nil { + return "", err + } + return buf.String(), nil +} + +// ErrInvalidHuffman is returned for errors found decoding +// Huffman-encoded strings. +var ErrInvalidHuffman = errors.New("hpack: invalid Huffman-encoded data") + +// huffmanDecode decodes v to buf. +// If maxLen is greater than 0, attempts to write more to buf than +// maxLen bytes will return ErrStringLength. +func huffmanDecode(buf *bytes.Buffer, maxLen int, v []byte) error { + rootHuffmanNode := getRootHuffmanNode() + n := rootHuffmanNode + // cur is the bit buffer that has not been fed into n. + // cbits is the number of low order bits in cur that are valid. + // sbits is the number of bits of the symbol prefix being decoded. + cur, cbits, sbits := uint(0), uint8(0), uint8(0) + for _, b := range v { + cur = cur<<8 | uint(b) + cbits += 8 + sbits += 8 + for cbits >= 8 { + idx := byte(cur >> (cbits - 8)) + n = n.children[idx] + if n == nil { + return ErrInvalidHuffman + } + if n.children == nil { + if maxLen != 0 && buf.Len() == maxLen { + return ErrStringLength + } + buf.WriteByte(n.sym) + cbits -= n.codeLen + n = rootHuffmanNode + sbits = cbits + } else { + cbits -= 8 + } + } + } + for cbits > 0 { + n = n.children[byte(cur<<(8-cbits))] + if n == nil { + return ErrInvalidHuffman + } + if n.children != nil || n.codeLen > cbits { + break + } + if maxLen != 0 && buf.Len() == maxLen { + return ErrStringLength + } + buf.WriteByte(n.sym) + cbits -= n.codeLen + n = rootHuffmanNode + sbits = cbits + } + if sbits > 7 { + // Either there was an incomplete symbol, or overlong padding. + // Both are decoding errors per RFC 7541 section 5.2. + return ErrInvalidHuffman + } + if mask := uint(1< 8 { + codeLen -= 8 + i := uint8(code >> codeLen) + if cur.children[i] == nil { + cur.children[i] = newInternalNode() + } + cur = cur.children[i] + } + shift := 8 - codeLen + start, end := int(uint8(code<= 32 { + n %= 32 // Normally would be -= 32 but %= 32 informs compiler 0 <= n <= 31 for upcoming shift + y := uint32(x >> n) // Compiler doesn't combine memory writes if y isn't uint32 + dst = append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y)) + } + } + // Add padding bits if necessary + if over := n % 8; over > 0 { + const ( + eosCode = 0x3fffffff + eosNBits = 30 + eosPadByte = eosCode >> (eosNBits - 8) + ) + pad := 8 - over + x = (x << pad) | (eosPadByte >> over) + n += pad // 8 now divides into n exactly + } + // n in (0, 8, 16, 24, 32) + switch n / 8 { + case 0: + return dst + case 1: + return append(dst, byte(x)) + case 2: + y := uint16(x) + return append(dst, byte(y>>8), byte(y)) + case 3: + y := uint16(x >> 8) + return append(dst, byte(y>>8), byte(y), byte(x)) + } + // case 4: + y := uint32(x) + return append(dst, byte(y>>24), byte(y>>16), byte(y>>8), byte(y)) +} + +// HuffmanEncodeLength returns the number of bytes required to encode +// s in Huffman codes. The result is round up to byte boundary. +func HuffmanEncodeLength(s string) uint64 { + n := uint64(0) + for i := 0; i < len(s); i++ { + n += uint64(huffmanCodeLen[s[i]]) + } + return (n + 7) / 8 +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/hpack/static_table.go b/ecs-agent/vendor/golang.org/x/net/http2/hpack/static_table.go new file mode 100644 index 0000000000..754a1eb919 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/hpack/static_table.go @@ -0,0 +1,188 @@ +// go generate gen.go +// Code generated by the command above; DO NOT EDIT. + +package hpack + +var staticTable = &headerFieldTable{ + evictCount: 0, + byName: map[string]uint64{ + ":authority": 1, + ":method": 3, + ":path": 5, + ":scheme": 7, + ":status": 14, + "accept-charset": 15, + "accept-encoding": 16, + "accept-language": 17, + "accept-ranges": 18, + "accept": 19, + "access-control-allow-origin": 20, + "age": 21, + "allow": 22, + "authorization": 23, + "cache-control": 24, + "content-disposition": 25, + "content-encoding": 26, + "content-language": 27, + "content-length": 28, + "content-location": 29, + "content-range": 30, + "content-type": 31, + "cookie": 32, + "date": 33, + "etag": 34, + "expect": 35, + "expires": 36, + "from": 37, + "host": 38, + "if-match": 39, + "if-modified-since": 40, + "if-none-match": 41, + "if-range": 42, + "if-unmodified-since": 43, + "last-modified": 44, + "link": 45, + "location": 46, + "max-forwards": 47, + "proxy-authenticate": 48, + "proxy-authorization": 49, + "range": 50, + "referer": 51, + "refresh": 52, + "retry-after": 53, + "server": 54, + "set-cookie": 55, + "strict-transport-security": 56, + "transfer-encoding": 57, + "user-agent": 58, + "vary": 59, + "via": 60, + "www-authenticate": 61, + }, + byNameValue: map[pairNameValue]uint64{ + {name: ":authority", value: ""}: 1, + {name: ":method", value: "GET"}: 2, + {name: ":method", value: "POST"}: 3, + {name: ":path", value: "/"}: 4, + {name: ":path", value: "/index.html"}: 5, + {name: ":scheme", value: "http"}: 6, + {name: ":scheme", value: "https"}: 7, + {name: ":status", value: "200"}: 8, + {name: ":status", value: "204"}: 9, + {name: ":status", value: "206"}: 10, + {name: ":status", value: "304"}: 11, + {name: ":status", value: "400"}: 12, + {name: ":status", value: "404"}: 13, + {name: ":status", value: "500"}: 14, + {name: "accept-charset", value: ""}: 15, + {name: "accept-encoding", value: "gzip, deflate"}: 16, + {name: "accept-language", value: ""}: 17, + {name: "accept-ranges", value: ""}: 18, + {name: "accept", value: ""}: 19, + {name: "access-control-allow-origin", value: ""}: 20, + {name: "age", value: ""}: 21, + {name: "allow", value: ""}: 22, + {name: "authorization", value: ""}: 23, + {name: "cache-control", value: ""}: 24, + {name: "content-disposition", value: ""}: 25, + {name: "content-encoding", value: ""}: 26, + {name: "content-language", value: ""}: 27, + {name: "content-length", value: ""}: 28, + {name: "content-location", value: ""}: 29, + {name: "content-range", value: ""}: 30, + {name: "content-type", value: ""}: 31, + {name: "cookie", value: ""}: 32, + {name: "date", value: ""}: 33, + {name: "etag", value: ""}: 34, + {name: "expect", value: ""}: 35, + {name: "expires", value: ""}: 36, + {name: "from", value: ""}: 37, + {name: "host", value: ""}: 38, + {name: "if-match", value: ""}: 39, + {name: "if-modified-since", value: ""}: 40, + {name: "if-none-match", value: ""}: 41, + {name: "if-range", value: ""}: 42, + {name: "if-unmodified-since", value: ""}: 43, + {name: "last-modified", value: ""}: 44, + {name: "link", value: ""}: 45, + {name: "location", value: ""}: 46, + {name: "max-forwards", value: ""}: 47, + {name: "proxy-authenticate", value: ""}: 48, + {name: "proxy-authorization", value: ""}: 49, + {name: "range", value: ""}: 50, + {name: "referer", value: ""}: 51, + {name: "refresh", value: ""}: 52, + {name: "retry-after", value: ""}: 53, + {name: "server", value: ""}: 54, + {name: "set-cookie", value: ""}: 55, + {name: "strict-transport-security", value: ""}: 56, + {name: "transfer-encoding", value: ""}: 57, + {name: "user-agent", value: ""}: 58, + {name: "vary", value: ""}: 59, + {name: "via", value: ""}: 60, + {name: "www-authenticate", value: ""}: 61, + }, + ents: []HeaderField{ + {Name: ":authority", Value: "", Sensitive: false}, + {Name: ":method", Value: "GET", Sensitive: false}, + {Name: ":method", Value: "POST", Sensitive: false}, + {Name: ":path", Value: "/", Sensitive: false}, + {Name: ":path", Value: "/index.html", Sensitive: false}, + {Name: ":scheme", Value: "http", Sensitive: false}, + {Name: ":scheme", Value: "https", Sensitive: false}, + {Name: ":status", Value: "200", Sensitive: false}, + {Name: ":status", Value: "204", Sensitive: false}, + {Name: ":status", Value: "206", Sensitive: false}, + {Name: ":status", Value: "304", Sensitive: false}, + {Name: ":status", Value: "400", Sensitive: false}, + {Name: ":status", Value: "404", Sensitive: false}, + {Name: ":status", Value: "500", Sensitive: false}, + {Name: "accept-charset", Value: "", Sensitive: false}, + {Name: "accept-encoding", Value: "gzip, deflate", Sensitive: false}, + {Name: "accept-language", Value: "", Sensitive: false}, + {Name: "accept-ranges", Value: "", Sensitive: false}, + {Name: "accept", Value: "", Sensitive: false}, + {Name: "access-control-allow-origin", Value: "", Sensitive: false}, + {Name: "age", Value: "", Sensitive: false}, + {Name: "allow", Value: "", Sensitive: false}, + {Name: "authorization", Value: "", Sensitive: false}, + {Name: "cache-control", Value: "", Sensitive: false}, + {Name: "content-disposition", Value: "", Sensitive: false}, + {Name: "content-encoding", Value: "", Sensitive: false}, + {Name: "content-language", Value: "", Sensitive: false}, + {Name: "content-length", Value: "", Sensitive: false}, + {Name: "content-location", Value: "", Sensitive: false}, + {Name: "content-range", Value: "", Sensitive: false}, + {Name: "content-type", Value: "", Sensitive: false}, + {Name: "cookie", Value: "", Sensitive: false}, + {Name: "date", Value: "", Sensitive: false}, + {Name: "etag", Value: "", Sensitive: false}, + {Name: "expect", Value: "", Sensitive: false}, + {Name: "expires", Value: "", Sensitive: false}, + {Name: "from", Value: "", Sensitive: false}, + {Name: "host", Value: "", Sensitive: false}, + {Name: "if-match", Value: "", Sensitive: false}, + {Name: "if-modified-since", Value: "", Sensitive: false}, + {Name: "if-none-match", Value: "", Sensitive: false}, + {Name: "if-range", Value: "", Sensitive: false}, + {Name: "if-unmodified-since", Value: "", Sensitive: false}, + {Name: "last-modified", Value: "", Sensitive: false}, + {Name: "link", Value: "", Sensitive: false}, + {Name: "location", Value: "", Sensitive: false}, + {Name: "max-forwards", Value: "", Sensitive: false}, + {Name: "proxy-authenticate", Value: "", Sensitive: false}, + {Name: "proxy-authorization", Value: "", Sensitive: false}, + {Name: "range", Value: "", Sensitive: false}, + {Name: "referer", Value: "", Sensitive: false}, + {Name: "refresh", Value: "", Sensitive: false}, + {Name: "retry-after", Value: "", Sensitive: false}, + {Name: "server", Value: "", Sensitive: false}, + {Name: "set-cookie", Value: "", Sensitive: false}, + {Name: "strict-transport-security", Value: "", Sensitive: false}, + {Name: "transfer-encoding", Value: "", Sensitive: false}, + {Name: "user-agent", Value: "", Sensitive: false}, + {Name: "vary", Value: "", Sensitive: false}, + {Name: "via", Value: "", Sensitive: false}, + {Name: "www-authenticate", Value: "", Sensitive: false}, + }, +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/hpack/tables.go b/ecs-agent/vendor/golang.org/x/net/http2/hpack/tables.go new file mode 100644 index 0000000000..8cbdf3f019 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/hpack/tables.go @@ -0,0 +1,403 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package hpack + +import ( + "fmt" +) + +// headerFieldTable implements a list of HeaderFields. +// This is used to implement the static and dynamic tables. +type headerFieldTable struct { + // For static tables, entries are never evicted. + // + // For dynamic tables, entries are evicted from ents[0] and added to the end. + // Each entry has a unique id that starts at one and increments for each + // entry that is added. This unique id is stable across evictions, meaning + // it can be used as a pointer to a specific entry. As in hpack, unique ids + // are 1-based. The unique id for ents[k] is k + evictCount + 1. + // + // Zero is not a valid unique id. + // + // evictCount should not overflow in any remotely practical situation. In + // practice, we will have one dynamic table per HTTP/2 connection. If we + // assume a very powerful server that handles 1M QPS per connection and each + // request adds (then evicts) 100 entries from the table, it would still take + // 2M years for evictCount to overflow. + ents []HeaderField + evictCount uint64 + + // byName maps a HeaderField name to the unique id of the newest entry with + // the same name. See above for a definition of "unique id". + byName map[string]uint64 + + // byNameValue maps a HeaderField name/value pair to the unique id of the newest + // entry with the same name and value. See above for a definition of "unique id". + byNameValue map[pairNameValue]uint64 +} + +type pairNameValue struct { + name, value string +} + +func (t *headerFieldTable) init() { + t.byName = make(map[string]uint64) + t.byNameValue = make(map[pairNameValue]uint64) +} + +// len reports the number of entries in the table. +func (t *headerFieldTable) len() int { + return len(t.ents) +} + +// addEntry adds a new entry. +func (t *headerFieldTable) addEntry(f HeaderField) { + id := uint64(t.len()) + t.evictCount + 1 + t.byName[f.Name] = id + t.byNameValue[pairNameValue{f.Name, f.Value}] = id + t.ents = append(t.ents, f) +} + +// evictOldest evicts the n oldest entries in the table. +func (t *headerFieldTable) evictOldest(n int) { + if n > t.len() { + panic(fmt.Sprintf("evictOldest(%v) on table with %v entries", n, t.len())) + } + for k := 0; k < n; k++ { + f := t.ents[k] + id := t.evictCount + uint64(k) + 1 + if t.byName[f.Name] == id { + delete(t.byName, f.Name) + } + if p := (pairNameValue{f.Name, f.Value}); t.byNameValue[p] == id { + delete(t.byNameValue, p) + } + } + copy(t.ents, t.ents[n:]) + for k := t.len() - n; k < t.len(); k++ { + t.ents[k] = HeaderField{} // so strings can be garbage collected + } + t.ents = t.ents[:t.len()-n] + if t.evictCount+uint64(n) < t.evictCount { + panic("evictCount overflow") + } + t.evictCount += uint64(n) +} + +// search finds f in the table. If there is no match, i is 0. +// If both name and value match, i is the matched index and nameValueMatch +// becomes true. If only name matches, i points to that index and +// nameValueMatch becomes false. +// +// The returned index is a 1-based HPACK index. For dynamic tables, HPACK says +// that index 1 should be the newest entry, but t.ents[0] is the oldest entry, +// meaning t.ents is reversed for dynamic tables. Hence, when t is a dynamic +// table, the return value i actually refers to the entry t.ents[t.len()-i]. +// +// All tables are assumed to be a dynamic tables except for the global staticTable. +// +// See Section 2.3.3. +func (t *headerFieldTable) search(f HeaderField) (i uint64, nameValueMatch bool) { + if !f.Sensitive { + if id := t.byNameValue[pairNameValue{f.Name, f.Value}]; id != 0 { + return t.idToIndex(id), true + } + } + if id := t.byName[f.Name]; id != 0 { + return t.idToIndex(id), false + } + return 0, false +} + +// idToIndex converts a unique id to an HPACK index. +// See Section 2.3.3. +func (t *headerFieldTable) idToIndex(id uint64) uint64 { + if id <= t.evictCount { + panic(fmt.Sprintf("id (%v) <= evictCount (%v)", id, t.evictCount)) + } + k := id - t.evictCount - 1 // convert id to an index t.ents[k] + if t != staticTable { + return uint64(t.len()) - k // dynamic table + } + return k + 1 +} + +var huffmanCodes = [256]uint32{ + 0x1ff8, + 0x7fffd8, + 0xfffffe2, + 0xfffffe3, + 0xfffffe4, + 0xfffffe5, + 0xfffffe6, + 0xfffffe7, + 0xfffffe8, + 0xffffea, + 0x3ffffffc, + 0xfffffe9, + 0xfffffea, + 0x3ffffffd, + 0xfffffeb, + 0xfffffec, + 0xfffffed, + 0xfffffee, + 0xfffffef, + 0xffffff0, + 0xffffff1, + 0xffffff2, + 0x3ffffffe, + 0xffffff3, + 0xffffff4, + 0xffffff5, + 0xffffff6, + 0xffffff7, + 0xffffff8, + 0xffffff9, + 0xffffffa, + 0xffffffb, + 0x14, + 0x3f8, + 0x3f9, + 0xffa, + 0x1ff9, + 0x15, + 0xf8, + 0x7fa, + 0x3fa, + 0x3fb, + 0xf9, + 0x7fb, + 0xfa, + 0x16, + 0x17, + 0x18, + 0x0, + 0x1, + 0x2, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x5c, + 0xfb, + 0x7ffc, + 0x20, + 0xffb, + 0x3fc, + 0x1ffa, + 0x21, + 0x5d, + 0x5e, + 0x5f, + 0x60, + 0x61, + 0x62, + 0x63, + 0x64, + 0x65, + 0x66, + 0x67, + 0x68, + 0x69, + 0x6a, + 0x6b, + 0x6c, + 0x6d, + 0x6e, + 0x6f, + 0x70, + 0x71, + 0x72, + 0xfc, + 0x73, + 0xfd, + 0x1ffb, + 0x7fff0, + 0x1ffc, + 0x3ffc, + 0x22, + 0x7ffd, + 0x3, + 0x23, + 0x4, + 0x24, + 0x5, + 0x25, + 0x26, + 0x27, + 0x6, + 0x74, + 0x75, + 0x28, + 0x29, + 0x2a, + 0x7, + 0x2b, + 0x76, + 0x2c, + 0x8, + 0x9, + 0x2d, + 0x77, + 0x78, + 0x79, + 0x7a, + 0x7b, + 0x7ffe, + 0x7fc, + 0x3ffd, + 0x1ffd, + 0xffffffc, + 0xfffe6, + 0x3fffd2, + 0xfffe7, + 0xfffe8, + 0x3fffd3, + 0x3fffd4, + 0x3fffd5, + 0x7fffd9, + 0x3fffd6, + 0x7fffda, + 0x7fffdb, + 0x7fffdc, + 0x7fffdd, + 0x7fffde, + 0xffffeb, + 0x7fffdf, + 0xffffec, + 0xffffed, + 0x3fffd7, + 0x7fffe0, + 0xffffee, + 0x7fffe1, + 0x7fffe2, + 0x7fffe3, + 0x7fffe4, + 0x1fffdc, + 0x3fffd8, + 0x7fffe5, + 0x3fffd9, + 0x7fffe6, + 0x7fffe7, + 0xffffef, + 0x3fffda, + 0x1fffdd, + 0xfffe9, + 0x3fffdb, + 0x3fffdc, + 0x7fffe8, + 0x7fffe9, + 0x1fffde, + 0x7fffea, + 0x3fffdd, + 0x3fffde, + 0xfffff0, + 0x1fffdf, + 0x3fffdf, + 0x7fffeb, + 0x7fffec, + 0x1fffe0, + 0x1fffe1, + 0x3fffe0, + 0x1fffe2, + 0x7fffed, + 0x3fffe1, + 0x7fffee, + 0x7fffef, + 0xfffea, + 0x3fffe2, + 0x3fffe3, + 0x3fffe4, + 0x7ffff0, + 0x3fffe5, + 0x3fffe6, + 0x7ffff1, + 0x3ffffe0, + 0x3ffffe1, + 0xfffeb, + 0x7fff1, + 0x3fffe7, + 0x7ffff2, + 0x3fffe8, + 0x1ffffec, + 0x3ffffe2, + 0x3ffffe3, + 0x3ffffe4, + 0x7ffffde, + 0x7ffffdf, + 0x3ffffe5, + 0xfffff1, + 0x1ffffed, + 0x7fff2, + 0x1fffe3, + 0x3ffffe6, + 0x7ffffe0, + 0x7ffffe1, + 0x3ffffe7, + 0x7ffffe2, + 0xfffff2, + 0x1fffe4, + 0x1fffe5, + 0x3ffffe8, + 0x3ffffe9, + 0xffffffd, + 0x7ffffe3, + 0x7ffffe4, + 0x7ffffe5, + 0xfffec, + 0xfffff3, + 0xfffed, + 0x1fffe6, + 0x3fffe9, + 0x1fffe7, + 0x1fffe8, + 0x7ffff3, + 0x3fffea, + 0x3fffeb, + 0x1ffffee, + 0x1ffffef, + 0xfffff4, + 0xfffff5, + 0x3ffffea, + 0x7ffff4, + 0x3ffffeb, + 0x7ffffe6, + 0x3ffffec, + 0x3ffffed, + 0x7ffffe7, + 0x7ffffe8, + 0x7ffffe9, + 0x7ffffea, + 0x7ffffeb, + 0xffffffe, + 0x7ffffec, + 0x7ffffed, + 0x7ffffee, + 0x7ffffef, + 0x7fffff0, + 0x3ffffee, +} + +var huffmanCodeLen = [256]uint8{ + 13, 23, 28, 28, 28, 28, 28, 28, 28, 24, 30, 28, 28, 30, 28, 28, + 28, 28, 28, 28, 28, 28, 30, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 6, 10, 10, 12, 13, 6, 8, 11, 10, 10, 8, 11, 8, 6, 6, 6, + 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 8, 15, 6, 12, 10, + 13, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 13, 19, 13, 14, 6, + 15, 5, 6, 5, 6, 5, 6, 6, 6, 5, 7, 7, 6, 6, 6, 5, + 6, 7, 6, 5, 5, 6, 7, 7, 7, 7, 7, 15, 11, 14, 13, 28, + 20, 22, 20, 20, 22, 22, 22, 23, 22, 23, 23, 23, 23, 23, 24, 23, + 24, 24, 22, 23, 24, 23, 23, 23, 23, 21, 22, 23, 22, 23, 23, 24, + 22, 21, 20, 22, 22, 23, 23, 21, 23, 22, 22, 24, 21, 22, 23, 23, + 21, 21, 22, 21, 23, 22, 23, 23, 20, 22, 22, 22, 23, 22, 22, 23, + 26, 26, 20, 19, 22, 23, 22, 25, 26, 26, 26, 27, 27, 26, 24, 25, + 19, 21, 26, 27, 27, 26, 27, 24, 21, 21, 26, 26, 28, 27, 27, 27, + 20, 24, 20, 21, 22, 21, 21, 23, 22, 22, 25, 25, 24, 24, 26, 23, + 26, 27, 26, 26, 27, 27, 27, 27, 27, 28, 27, 27, 27, 27, 27, 26, +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/http2.go b/ecs-agent/vendor/golang.org/x/net/http2/http2.go new file mode 100644 index 0000000000..6f2df28187 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/http2.go @@ -0,0 +1,385 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package http2 implements the HTTP/2 protocol. +// +// This package is low-level and intended to be used directly by very +// few people. Most users will use it indirectly through the automatic +// use by the net/http package (from Go 1.6 and later). +// For use in earlier Go versions see ConfigureServer. (Transport support +// requires Go 1.6 or later) +// +// See https://http2.github.io/ for more information on HTTP/2. +// +// See https://http2.golang.org/ for a test server running this code. +package http2 // import "golang.org/x/net/http2" + +import ( + "bufio" + "crypto/tls" + "fmt" + "io" + "net/http" + "os" + "sort" + "strconv" + "strings" + "sync" + + "golang.org/x/net/http/httpguts" +) + +var ( + VerboseLogs bool + logFrameWrites bool + logFrameReads bool + inTests bool +) + +func init() { + e := os.Getenv("GODEBUG") + if strings.Contains(e, "http2debug=1") { + VerboseLogs = true + } + if strings.Contains(e, "http2debug=2") { + VerboseLogs = true + logFrameWrites = true + logFrameReads = true + } +} + +const ( + // ClientPreface is the string that must be sent by new + // connections from clients. + ClientPreface = "PRI * HTTP/2.0\r\n\r\nSM\r\n\r\n" + + // SETTINGS_MAX_FRAME_SIZE default + // https://httpwg.org/specs/rfc7540.html#rfc.section.6.5.2 + initialMaxFrameSize = 16384 + + // NextProtoTLS is the NPN/ALPN protocol negotiated during + // HTTP/2's TLS setup. + NextProtoTLS = "h2" + + // https://httpwg.org/specs/rfc7540.html#SettingValues + initialHeaderTableSize = 4096 + + initialWindowSize = 65535 // 6.9.2 Initial Flow Control Window Size + + defaultMaxReadFrameSize = 1 << 20 +) + +var ( + clientPreface = []byte(ClientPreface) +) + +type streamState int + +// HTTP/2 stream states. +// +// See http://tools.ietf.org/html/rfc7540#section-5.1. +// +// For simplicity, the server code merges "reserved (local)" into +// "half-closed (remote)". This is one less state transition to track. +// The only downside is that we send PUSH_PROMISEs slightly less +// liberally than allowable. More discussion here: +// https://lists.w3.org/Archives/Public/ietf-http-wg/2016JulSep/0599.html +// +// "reserved (remote)" is omitted since the client code does not +// support server push. +const ( + stateIdle streamState = iota + stateOpen + stateHalfClosedLocal + stateHalfClosedRemote + stateClosed +) + +var stateName = [...]string{ + stateIdle: "Idle", + stateOpen: "Open", + stateHalfClosedLocal: "HalfClosedLocal", + stateHalfClosedRemote: "HalfClosedRemote", + stateClosed: "Closed", +} + +func (st streamState) String() string { + return stateName[st] +} + +// Setting is a setting parameter: which setting it is, and its value. +type Setting struct { + // ID is which setting is being set. + // See https://httpwg.org/specs/rfc7540.html#SettingFormat + ID SettingID + + // Val is the value. + Val uint32 +} + +func (s Setting) String() string { + return fmt.Sprintf("[%v = %d]", s.ID, s.Val) +} + +// Valid reports whether the setting is valid. +func (s Setting) Valid() error { + // Limits and error codes from 6.5.2 Defined SETTINGS Parameters + switch s.ID { + case SettingEnablePush: + if s.Val != 1 && s.Val != 0 { + return ConnectionError(ErrCodeProtocol) + } + case SettingInitialWindowSize: + if s.Val > 1<<31-1 { + return ConnectionError(ErrCodeFlowControl) + } + case SettingMaxFrameSize: + if s.Val < 16384 || s.Val > 1<<24-1 { + return ConnectionError(ErrCodeProtocol) + } + } + return nil +} + +// A SettingID is an HTTP/2 setting as defined in +// https://httpwg.org/specs/rfc7540.html#iana-settings +type SettingID uint16 + +const ( + SettingHeaderTableSize SettingID = 0x1 + SettingEnablePush SettingID = 0x2 + SettingMaxConcurrentStreams SettingID = 0x3 + SettingInitialWindowSize SettingID = 0x4 + SettingMaxFrameSize SettingID = 0x5 + SettingMaxHeaderListSize SettingID = 0x6 +) + +var settingName = map[SettingID]string{ + SettingHeaderTableSize: "HEADER_TABLE_SIZE", + SettingEnablePush: "ENABLE_PUSH", + SettingMaxConcurrentStreams: "MAX_CONCURRENT_STREAMS", + SettingInitialWindowSize: "INITIAL_WINDOW_SIZE", + SettingMaxFrameSize: "MAX_FRAME_SIZE", + SettingMaxHeaderListSize: "MAX_HEADER_LIST_SIZE", +} + +func (s SettingID) String() string { + if v, ok := settingName[s]; ok { + return v + } + return fmt.Sprintf("UNKNOWN_SETTING_%d", uint16(s)) +} + +// validWireHeaderFieldName reports whether v is a valid header field +// name (key). See httpguts.ValidHeaderName for the base rules. +// +// Further, http2 says: +// +// "Just as in HTTP/1.x, header field names are strings of ASCII +// characters that are compared in a case-insensitive +// fashion. However, header field names MUST be converted to +// lowercase prior to their encoding in HTTP/2. " +func validWireHeaderFieldName(v string) bool { + if len(v) == 0 { + return false + } + for _, r := range v { + if !httpguts.IsTokenRune(r) { + return false + } + if 'A' <= r && r <= 'Z' { + return false + } + } + return true +} + +func httpCodeString(code int) string { + switch code { + case 200: + return "200" + case 404: + return "404" + } + return strconv.Itoa(code) +} + +// from pkg io +type stringWriter interface { + WriteString(s string) (n int, err error) +} + +// A gate lets two goroutines coordinate their activities. +type gate chan struct{} + +func (g gate) Done() { g <- struct{}{} } +func (g gate) Wait() { <-g } + +// A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed). +type closeWaiter chan struct{} + +// Init makes a closeWaiter usable. +// It exists because so a closeWaiter value can be placed inside a +// larger struct and have the Mutex and Cond's memory in the same +// allocation. +func (cw *closeWaiter) Init() { + *cw = make(chan struct{}) +} + +// Close marks the closeWaiter as closed and unblocks any waiters. +func (cw closeWaiter) Close() { + close(cw) +} + +// Wait waits for the closeWaiter to become closed. +func (cw closeWaiter) Wait() { + <-cw +} + +// bufferedWriter is a buffered writer that writes to w. +// Its buffered writer is lazily allocated as needed, to minimize +// idle memory usage with many connections. +type bufferedWriter struct { + _ incomparable + w io.Writer // immutable + bw *bufio.Writer // non-nil when data is buffered +} + +func newBufferedWriter(w io.Writer) *bufferedWriter { + return &bufferedWriter{w: w} +} + +// bufWriterPoolBufferSize is the size of bufio.Writer's +// buffers created using bufWriterPool. +// +// TODO: pick a less arbitrary value? this is a bit under +// (3 x typical 1500 byte MTU) at least. Other than that, +// not much thought went into it. +const bufWriterPoolBufferSize = 4 << 10 + +var bufWriterPool = sync.Pool{ + New: func() interface{} { + return bufio.NewWriterSize(nil, bufWriterPoolBufferSize) + }, +} + +func (w *bufferedWriter) Available() int { + if w.bw == nil { + return bufWriterPoolBufferSize + } + return w.bw.Available() +} + +func (w *bufferedWriter) Write(p []byte) (n int, err error) { + if w.bw == nil { + bw := bufWriterPool.Get().(*bufio.Writer) + bw.Reset(w.w) + w.bw = bw + } + return w.bw.Write(p) +} + +func (w *bufferedWriter) Flush() error { + bw := w.bw + if bw == nil { + return nil + } + err := bw.Flush() + bw.Reset(nil) + bufWriterPool.Put(bw) + w.bw = nil + return err +} + +func mustUint31(v int32) uint32 { + if v < 0 || v > 2147483647 { + panic("out of range") + } + return uint32(v) +} + +// bodyAllowedForStatus reports whether a given response status code +// permits a body. See RFC 7230, section 3.3. +func bodyAllowedForStatus(status int) bool { + switch { + case status >= 100 && status <= 199: + return false + case status == 204: + return false + case status == 304: + return false + } + return true +} + +type httpError struct { + _ incomparable + msg string + timeout bool +} + +func (e *httpError) Error() string { return e.msg } +func (e *httpError) Timeout() bool { return e.timeout } +func (e *httpError) Temporary() bool { return true } + +var errTimeout error = &httpError{msg: "http2: timeout awaiting response headers", timeout: true} + +type connectionStater interface { + ConnectionState() tls.ConnectionState +} + +var sorterPool = sync.Pool{New: func() interface{} { return new(sorter) }} + +type sorter struct { + v []string // owned by sorter +} + +func (s *sorter) Len() int { return len(s.v) } +func (s *sorter) Swap(i, j int) { s.v[i], s.v[j] = s.v[j], s.v[i] } +func (s *sorter) Less(i, j int) bool { return s.v[i] < s.v[j] } + +// Keys returns the sorted keys of h. +// +// The returned slice is only valid until s used again or returned to +// its pool. +func (s *sorter) Keys(h http.Header) []string { + keys := s.v[:0] + for k := range h { + keys = append(keys, k) + } + s.v = keys + sort.Sort(s) + return keys +} + +func (s *sorter) SortStrings(ss []string) { + // Our sorter works on s.v, which sorter owns, so + // stash it away while we sort the user's buffer. + save := s.v + s.v = ss + sort.Sort(s) + s.v = save +} + +// validPseudoPath reports whether v is a valid :path pseudo-header +// value. It must be either: +// +// - a non-empty string starting with '/' +// - the string '*', for OPTIONS requests. +// +// For now this is only used a quick check for deciding when to clean +// up Opaque URLs before sending requests from the Transport. +// See golang.org/issue/16847 +// +// We used to enforce that the path also didn't start with "//", but +// Google's GFE accepts such paths and Chrome sends them, so ignore +// that part of the spec. See golang.org/issue/19103. +func validPseudoPath(v string) bool { + return (len(v) > 0 && v[0] == '/') || v == "*" +} + +// incomparable is a zero-width, non-comparable type. Adding it to a struct +// makes that struct also non-comparable, and generally doesn't add +// any size (as long as it's first). +type incomparable [0]func() diff --git a/ecs-agent/vendor/golang.org/x/net/http2/not_go111.go b/ecs-agent/vendor/golang.org/x/net/http2/not_go111.go new file mode 100644 index 0000000000..cc0baa8197 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/not_go111.go @@ -0,0 +1,21 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.11 +// +build !go1.11 + +package http2 + +import ( + "net/http/httptrace" + "net/textproto" +) + +func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { return false } + +func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {} + +func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/not_go115.go b/ecs-agent/vendor/golang.org/x/net/http2/not_go115.go new file mode 100644 index 0000000000..e6c04cf7ac --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/not_go115.go @@ -0,0 +1,31 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.15 +// +build !go1.15 + +package http2 + +import ( + "context" + "crypto/tls" +) + +// dialTLSWithContext opens a TLS connection. +func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { + cn, err := tls.Dial(network, addr, cfg) + if err != nil { + return nil, err + } + if err := cn.Handshake(); err != nil { + return nil, err + } + if cfg.InsecureSkipVerify { + return cn, nil + } + if err := cn.VerifyHostname(cfg.ServerName); err != nil { + return nil, err + } + return cn, nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/not_go118.go b/ecs-agent/vendor/golang.org/x/net/http2/not_go118.go new file mode 100644 index 0000000000..eab532c96b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/not_go118.go @@ -0,0 +1,17 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.18 +// +build !go1.18 + +package http2 + +import ( + "crypto/tls" + "net" +) + +func tlsUnderlyingConn(tc *tls.Conn) net.Conn { + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/pipe.go b/ecs-agent/vendor/golang.org/x/net/http2/pipe.go new file mode 100644 index 0000000000..c15b8a7719 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/pipe.go @@ -0,0 +1,179 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "errors" + "io" + "sync" +) + +// pipe is a goroutine-safe io.Reader/io.Writer pair. It's like +// io.Pipe except there are no PipeReader/PipeWriter halves, and the +// underlying buffer is an interface. (io.Pipe is always unbuffered) +type pipe struct { + mu sync.Mutex + c sync.Cond // c.L lazily initialized to &p.mu + b pipeBuffer // nil when done reading + unread int // bytes unread when done + err error // read error once empty. non-nil means closed. + breakErr error // immediate read error (caller doesn't see rest of b) + donec chan struct{} // closed on error + readFn func() // optional code to run in Read before error +} + +type pipeBuffer interface { + Len() int + io.Writer + io.Reader +} + +// setBuffer initializes the pipe buffer. +// It has no effect if the pipe is already closed. +func (p *pipe) setBuffer(b pipeBuffer) { + p.mu.Lock() + defer p.mu.Unlock() + if p.err != nil || p.breakErr != nil { + return + } + p.b = b +} + +func (p *pipe) Len() int { + p.mu.Lock() + defer p.mu.Unlock() + if p.b == nil { + return p.unread + } + return p.b.Len() +} + +// Read waits until data is available and copies bytes +// from the buffer into p. +func (p *pipe) Read(d []byte) (n int, err error) { + p.mu.Lock() + defer p.mu.Unlock() + if p.c.L == nil { + p.c.L = &p.mu + } + for { + if p.breakErr != nil { + return 0, p.breakErr + } + if p.b != nil && p.b.Len() > 0 { + return p.b.Read(d) + } + if p.err != nil { + if p.readFn != nil { + p.readFn() // e.g. copy trailers + p.readFn = nil // not sticky like p.err + } + p.b = nil + return 0, p.err + } + p.c.Wait() + } +} + +var errClosedPipeWrite = errors.New("write on closed buffer") + +// Write copies bytes from p into the buffer and wakes a reader. +// It is an error to write more data than the buffer can hold. +func (p *pipe) Write(d []byte) (n int, err error) { + p.mu.Lock() + defer p.mu.Unlock() + if p.c.L == nil { + p.c.L = &p.mu + } + defer p.c.Signal() + if p.err != nil { + return 0, errClosedPipeWrite + } + if p.breakErr != nil { + p.unread += len(d) + return len(d), nil // discard when there is no reader + } + return p.b.Write(d) +} + +// CloseWithError causes the next Read (waking up a current blocked +// Read if needed) to return the provided err after all data has been +// read. +// +// The error must be non-nil. +func (p *pipe) CloseWithError(err error) { p.closeWithError(&p.err, err, nil) } + +// BreakWithError causes the next Read (waking up a current blocked +// Read if needed) to return the provided err immediately, without +// waiting for unread data. +func (p *pipe) BreakWithError(err error) { p.closeWithError(&p.breakErr, err, nil) } + +// closeWithErrorAndCode is like CloseWithError but also sets some code to run +// in the caller's goroutine before returning the error. +func (p *pipe) closeWithErrorAndCode(err error, fn func()) { p.closeWithError(&p.err, err, fn) } + +func (p *pipe) closeWithError(dst *error, err error, fn func()) { + if err == nil { + panic("err must be non-nil") + } + p.mu.Lock() + defer p.mu.Unlock() + if p.c.L == nil { + p.c.L = &p.mu + } + defer p.c.Signal() + if *dst != nil { + // Already been done. + return + } + p.readFn = fn + if dst == &p.breakErr { + if p.b != nil { + p.unread += p.b.Len() + } + p.b = nil + } + *dst = err + p.closeDoneLocked() +} + +// requires p.mu be held. +func (p *pipe) closeDoneLocked() { + if p.donec == nil { + return + } + // Close if unclosed. This isn't racy since we always + // hold p.mu while closing. + select { + case <-p.donec: + default: + close(p.donec) + } +} + +// Err returns the error (if any) first set by BreakWithError or CloseWithError. +func (p *pipe) Err() error { + p.mu.Lock() + defer p.mu.Unlock() + if p.breakErr != nil { + return p.breakErr + } + return p.err +} + +// Done returns a channel which is closed if and when this pipe is closed +// with CloseWithError. +func (p *pipe) Done() <-chan struct{} { + p.mu.Lock() + defer p.mu.Unlock() + if p.donec == nil { + p.donec = make(chan struct{}) + if p.err != nil || p.breakErr != nil { + // Already hit an error. + p.closeDoneLocked() + } + } + return p.donec +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/server.go b/ecs-agent/vendor/golang.org/x/net/http2/server.go new file mode 100644 index 0000000000..8cb14f3c97 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/server.go @@ -0,0 +1,3238 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: turn off the serve goroutine when idle, so +// an idle conn only has the readFrames goroutine active. (which could +// also be optimized probably to pin less memory in crypto/tls). This +// would involve tracking when the serve goroutine is active (atomic +// int32 read/CAS probably?) and starting it up when frames arrive, +// and shutting it down when all handlers exit. the occasional PING +// packets could use time.AfterFunc to call sc.wakeStartServeLoop() +// (which is a no-op if already running) and then queue the PING write +// as normal. The serve loop would then exit in most cases (if no +// Handlers running) and not be woken up again until the PING packet +// returns. + +// TODO (maybe): add a mechanism for Handlers to going into +// half-closed-local mode (rw.(io.Closer) test?) but not exit their +// handler, and continue to be able to read from the +// Request.Body. This would be a somewhat semantic change from HTTP/1 +// (or at least what we expose in net/http), so I'd probably want to +// add it there too. For now, this package says that returning from +// the Handler ServeHTTP function means you're both done reading and +// done writing, without a way to stop just one or the other. + +package http2 + +import ( + "bufio" + "bytes" + "context" + "crypto/tls" + "errors" + "fmt" + "io" + "log" + "math" + "net" + "net/http" + "net/textproto" + "net/url" + "os" + "reflect" + "runtime" + "strconv" + "strings" + "sync" + "time" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +const ( + prefaceTimeout = 10 * time.Second + firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway + handlerChunkWriteSize = 4 << 10 + defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to? + maxQueuedControlFrames = 10000 +) + +var ( + errClientDisconnected = errors.New("client disconnected") + errClosedBody = errors.New("body closed by handler") + errHandlerComplete = errors.New("http2: request body closed due to handler exiting") + errStreamClosed = errors.New("http2: stream closed") +) + +var responseWriterStatePool = sync.Pool{ + New: func() interface{} { + rws := &responseWriterState{} + rws.bw = bufio.NewWriterSize(chunkWriter{rws}, handlerChunkWriteSize) + return rws + }, +} + +// Test hooks. +var ( + testHookOnConn func() + testHookGetServerConn func(*serverConn) + testHookOnPanicMu *sync.Mutex // nil except in tests + testHookOnPanic func(sc *serverConn, panicVal interface{}) (rePanic bool) +) + +// Server is an HTTP/2 server. +type Server struct { + // MaxHandlers limits the number of http.Handler ServeHTTP goroutines + // which may run at a time over all connections. + // Negative or zero no limit. + // TODO: implement + MaxHandlers int + + // MaxConcurrentStreams optionally specifies the number of + // concurrent streams that each client may have open at a + // time. This is unrelated to the number of http.Handler goroutines + // which may be active globally, which is MaxHandlers. + // If zero, MaxConcurrentStreams defaults to at least 100, per + // the HTTP/2 spec's recommendations. + MaxConcurrentStreams uint32 + + // MaxDecoderHeaderTableSize optionally specifies the http2 + // SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It + // informs the remote endpoint of the maximum size of the header compression + // table used to decode header blocks, in octets. If zero, the default value + // of 4096 is used. + MaxDecoderHeaderTableSize uint32 + + // MaxEncoderHeaderTableSize optionally specifies an upper limit for the + // header compression table used for encoding request headers. Received + // SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero, + // the default value of 4096 is used. + MaxEncoderHeaderTableSize uint32 + + // MaxReadFrameSize optionally specifies the largest frame + // this server is willing to read. A valid value is between + // 16k and 16M, inclusive. If zero or otherwise invalid, a + // default value is used. + MaxReadFrameSize uint32 + + // PermitProhibitedCipherSuites, if true, permits the use of + // cipher suites prohibited by the HTTP/2 spec. + PermitProhibitedCipherSuites bool + + // IdleTimeout specifies how long until idle clients should be + // closed with a GOAWAY frame. PING frames are not considered + // activity for the purposes of IdleTimeout. + IdleTimeout time.Duration + + // MaxUploadBufferPerConnection is the size of the initial flow + // control window for each connections. The HTTP/2 spec does not + // allow this to be smaller than 65535 or larger than 2^32-1. + // If the value is outside this range, a default value will be + // used instead. + MaxUploadBufferPerConnection int32 + + // MaxUploadBufferPerStream is the size of the initial flow control + // window for each stream. The HTTP/2 spec does not allow this to + // be larger than 2^32-1. If the value is zero or larger than the + // maximum, a default value will be used instead. + MaxUploadBufferPerStream int32 + + // NewWriteScheduler constructs a write scheduler for a connection. + // If nil, a default scheduler is chosen. + NewWriteScheduler func() WriteScheduler + + // CountError, if non-nil, is called on HTTP/2 server errors. + // It's intended to increment a metric for monitoring, such + // as an expvar or Prometheus metric. + // The errType consists of only ASCII word characters. + CountError func(errType string) + + // Internal state. This is a pointer (rather than embedded directly) + // so that we don't embed a Mutex in this struct, which will make the + // struct non-copyable, which might break some callers. + state *serverInternalState +} + +func (s *Server) initialConnRecvWindowSize() int32 { + if s.MaxUploadBufferPerConnection >= initialWindowSize { + return s.MaxUploadBufferPerConnection + } + return 1 << 20 +} + +func (s *Server) initialStreamRecvWindowSize() int32 { + if s.MaxUploadBufferPerStream > 0 { + return s.MaxUploadBufferPerStream + } + return 1 << 20 +} + +func (s *Server) maxReadFrameSize() uint32 { + if v := s.MaxReadFrameSize; v >= minMaxFrameSize && v <= maxFrameSize { + return v + } + return defaultMaxReadFrameSize +} + +func (s *Server) maxConcurrentStreams() uint32 { + if v := s.MaxConcurrentStreams; v > 0 { + return v + } + return defaultMaxStreams +} + +func (s *Server) maxDecoderHeaderTableSize() uint32 { + if v := s.MaxDecoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + +func (s *Server) maxEncoderHeaderTableSize() uint32 { + if v := s.MaxEncoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + +// maxQueuedControlFrames is the maximum number of control frames like +// SETTINGS, PING and RST_STREAM that will be queued for writing before +// the connection is closed to prevent memory exhaustion attacks. +func (s *Server) maxQueuedControlFrames() int { + // TODO: if anybody asks, add a Server field, and remember to define the + // behavior of negative values. + return maxQueuedControlFrames +} + +type serverInternalState struct { + mu sync.Mutex + activeConns map[*serverConn]struct{} +} + +func (s *serverInternalState) registerConn(sc *serverConn) { + if s == nil { + return // if the Server was used without calling ConfigureServer + } + s.mu.Lock() + s.activeConns[sc] = struct{}{} + s.mu.Unlock() +} + +func (s *serverInternalState) unregisterConn(sc *serverConn) { + if s == nil { + return // if the Server was used without calling ConfigureServer + } + s.mu.Lock() + delete(s.activeConns, sc) + s.mu.Unlock() +} + +func (s *serverInternalState) startGracefulShutdown() { + if s == nil { + return // if the Server was used without calling ConfigureServer + } + s.mu.Lock() + for sc := range s.activeConns { + sc.startGracefulShutdown() + } + s.mu.Unlock() +} + +// ConfigureServer adds HTTP/2 support to a net/http Server. +// +// The configuration conf may be nil. +// +// ConfigureServer must be called before s begins serving. +func ConfigureServer(s *http.Server, conf *Server) error { + if s == nil { + panic("nil *http.Server") + } + if conf == nil { + conf = new(Server) + } + conf.state = &serverInternalState{activeConns: make(map[*serverConn]struct{})} + if h1, h2 := s, conf; h2.IdleTimeout == 0 { + if h1.IdleTimeout != 0 { + h2.IdleTimeout = h1.IdleTimeout + } else { + h2.IdleTimeout = h1.ReadTimeout + } + } + s.RegisterOnShutdown(conf.state.startGracefulShutdown) + + if s.TLSConfig == nil { + s.TLSConfig = new(tls.Config) + } else if s.TLSConfig.CipherSuites != nil && s.TLSConfig.MinVersion < tls.VersionTLS13 { + // If they already provided a TLS 1.0–1.2 CipherSuite list, return an + // error if it is missing ECDHE_RSA_WITH_AES_128_GCM_SHA256 or + // ECDHE_ECDSA_WITH_AES_128_GCM_SHA256. + haveRequired := false + for _, cs := range s.TLSConfig.CipherSuites { + switch cs { + case tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + // Alternative MTI cipher to not discourage ECDSA-only servers. + // See http://golang.org/cl/30721 for further information. + tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: + haveRequired = true + } + } + if !haveRequired { + return fmt.Errorf("http2: TLSConfig.CipherSuites is missing an HTTP/2-required AES_128_GCM_SHA256 cipher (need at least one of TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 or TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256)") + } + } + + // Note: not setting MinVersion to tls.VersionTLS12, + // as we don't want to interfere with HTTP/1.1 traffic + // on the user's server. We enforce TLS 1.2 later once + // we accept a connection. Ideally this should be done + // during next-proto selection, but using TLS <1.2 with + // HTTP/2 is still the client's bug. + + s.TLSConfig.PreferServerCipherSuites = true + + if !strSliceContains(s.TLSConfig.NextProtos, NextProtoTLS) { + s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, NextProtoTLS) + } + if !strSliceContains(s.TLSConfig.NextProtos, "http/1.1") { + s.TLSConfig.NextProtos = append(s.TLSConfig.NextProtos, "http/1.1") + } + + if s.TLSNextProto == nil { + s.TLSNextProto = map[string]func(*http.Server, *tls.Conn, http.Handler){} + } + protoHandler := func(hs *http.Server, c *tls.Conn, h http.Handler) { + if testHookOnConn != nil { + testHookOnConn() + } + // The TLSNextProto interface predates contexts, so + // the net/http package passes down its per-connection + // base context via an exported but unadvertised + // method on the Handler. This is for internal + // net/http<=>http2 use only. + var ctx context.Context + type baseContexter interface { + BaseContext() context.Context + } + if bc, ok := h.(baseContexter); ok { + ctx = bc.BaseContext() + } + conf.ServeConn(c, &ServeConnOpts{ + Context: ctx, + Handler: h, + BaseConfig: hs, + }) + } + s.TLSNextProto[NextProtoTLS] = protoHandler + return nil +} + +// ServeConnOpts are options for the Server.ServeConn method. +type ServeConnOpts struct { + // Context is the base context to use. + // If nil, context.Background is used. + Context context.Context + + // BaseConfig optionally sets the base configuration + // for values. If nil, defaults are used. + BaseConfig *http.Server + + // Handler specifies which handler to use for processing + // requests. If nil, BaseConfig.Handler is used. If BaseConfig + // or BaseConfig.Handler is nil, http.DefaultServeMux is used. + Handler http.Handler + + // UpgradeRequest is an initial request received on a connection + // undergoing an h2c upgrade. The request body must have been + // completely read from the connection before calling ServeConn, + // and the 101 Switching Protocols response written. + UpgradeRequest *http.Request + + // Settings is the decoded contents of the HTTP2-Settings header + // in an h2c upgrade request. + Settings []byte + + // SawClientPreface is set if the HTTP/2 connection preface + // has already been read from the connection. + SawClientPreface bool +} + +func (o *ServeConnOpts) context() context.Context { + if o != nil && o.Context != nil { + return o.Context + } + return context.Background() +} + +func (o *ServeConnOpts) baseConfig() *http.Server { + if o != nil && o.BaseConfig != nil { + return o.BaseConfig + } + return new(http.Server) +} + +func (o *ServeConnOpts) handler() http.Handler { + if o != nil { + if o.Handler != nil { + return o.Handler + } + if o.BaseConfig != nil && o.BaseConfig.Handler != nil { + return o.BaseConfig.Handler + } + } + return http.DefaultServeMux +} + +// ServeConn serves HTTP/2 requests on the provided connection and +// blocks until the connection is no longer readable. +// +// ServeConn starts speaking HTTP/2 assuming that c has not had any +// reads or writes. It writes its initial settings frame and expects +// to be able to read the preface and settings frame from the +// client. If c has a ConnectionState method like a *tls.Conn, the +// ConnectionState is used to verify the TLS ciphersuite and to set +// the Request.TLS field in Handlers. +// +// ServeConn does not support h2c by itself. Any h2c support must be +// implemented in terms of providing a suitably-behaving net.Conn. +// +// The opts parameter is optional. If nil, default values are used. +func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { + baseCtx, cancel := serverConnBaseContext(c, opts) + defer cancel() + + sc := &serverConn{ + srv: s, + hs: opts.baseConfig(), + conn: c, + baseCtx: baseCtx, + remoteAddrStr: c.RemoteAddr().String(), + bw: newBufferedWriter(c), + handler: opts.handler(), + streams: make(map[uint32]*stream), + readFrameCh: make(chan readFrameResult), + wantWriteFrameCh: make(chan FrameWriteRequest, 8), + serveMsgCh: make(chan interface{}, 8), + wroteFrameCh: make(chan frameWriteResult, 1), // buffered; one send in writeFrameAsync + bodyReadCh: make(chan bodyReadMsg), // buffering doesn't matter either way + doneServing: make(chan struct{}), + clientMaxStreams: math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value" + advMaxStreams: s.maxConcurrentStreams(), + initialStreamSendWindowSize: initialWindowSize, + maxFrameSize: initialMaxFrameSize, + serveG: newGoroutineLock(), + pushEnabled: true, + sawClientPreface: opts.SawClientPreface, + } + + s.state.registerConn(sc) + defer s.state.unregisterConn(sc) + + // The net/http package sets the write deadline from the + // http.Server.WriteTimeout during the TLS handshake, but then + // passes the connection off to us with the deadline already set. + // Write deadlines are set per stream in serverConn.newStream. + // Disarm the net.Conn write deadline here. + if sc.hs.WriteTimeout != 0 { + sc.conn.SetWriteDeadline(time.Time{}) + } + + if s.NewWriteScheduler != nil { + sc.writeSched = s.NewWriteScheduler() + } else { + sc.writeSched = NewPriorityWriteScheduler(nil) + } + + // These start at the RFC-specified defaults. If there is a higher + // configured value for inflow, that will be updated when we send a + // WINDOW_UPDATE shortly after sending SETTINGS. + sc.flow.add(initialWindowSize) + sc.inflow.init(initialWindowSize) + sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) + sc.hpackEncoder.SetMaxDynamicTableSizeLimit(s.maxEncoderHeaderTableSize()) + + fr := NewFramer(sc.bw, c) + if s.CountError != nil { + fr.countError = s.CountError + } + fr.ReadMetaHeaders = hpack.NewDecoder(s.maxDecoderHeaderTableSize(), nil) + fr.MaxHeaderListSize = sc.maxHeaderListSize() + fr.SetMaxReadFrameSize(s.maxReadFrameSize()) + sc.framer = fr + + if tc, ok := c.(connectionStater); ok { + sc.tlsState = new(tls.ConnectionState) + *sc.tlsState = tc.ConnectionState() + // 9.2 Use of TLS Features + // An implementation of HTTP/2 over TLS MUST use TLS + // 1.2 or higher with the restrictions on feature set + // and cipher suite described in this section. Due to + // implementation limitations, it might not be + // possible to fail TLS negotiation. An endpoint MUST + // immediately terminate an HTTP/2 connection that + // does not meet the TLS requirements described in + // this section with a connection error (Section + // 5.4.1) of type INADEQUATE_SECURITY. + if sc.tlsState.Version < tls.VersionTLS12 { + sc.rejectConn(ErrCodeInadequateSecurity, "TLS version too low") + return + } + + if sc.tlsState.ServerName == "" { + // Client must use SNI, but we don't enforce that anymore, + // since it was causing problems when connecting to bare IP + // addresses during development. + // + // TODO: optionally enforce? Or enforce at the time we receive + // a new request, and verify the ServerName matches the :authority? + // But that precludes proxy situations, perhaps. + // + // So for now, do nothing here again. + } + + if !s.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) { + // "Endpoints MAY choose to generate a connection error + // (Section 5.4.1) of type INADEQUATE_SECURITY if one of + // the prohibited cipher suites are negotiated." + // + // We choose that. In my opinion, the spec is weak + // here. It also says both parties must support at least + // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 so there's no + // excuses here. If we really must, we could allow an + // "AllowInsecureWeakCiphers" option on the server later. + // Let's see how it plays out first. + sc.rejectConn(ErrCodeInadequateSecurity, fmt.Sprintf("Prohibited TLS 1.2 Cipher Suite: %x", sc.tlsState.CipherSuite)) + return + } + } + + if opts.Settings != nil { + fr := &SettingsFrame{ + FrameHeader: FrameHeader{valid: true}, + p: opts.Settings, + } + if err := fr.ForeachSetting(sc.processSetting); err != nil { + sc.rejectConn(ErrCodeProtocol, "invalid settings") + return + } + opts.Settings = nil + } + + if hook := testHookGetServerConn; hook != nil { + hook(sc) + } + + if opts.UpgradeRequest != nil { + sc.upgradeRequest(opts.UpgradeRequest) + opts.UpgradeRequest = nil + } + + sc.serve() +} + +func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) { + ctx, cancel = context.WithCancel(opts.context()) + ctx = context.WithValue(ctx, http.LocalAddrContextKey, c.LocalAddr()) + if hs := opts.baseConfig(); hs != nil { + ctx = context.WithValue(ctx, http.ServerContextKey, hs) + } + return +} + +func (sc *serverConn) rejectConn(err ErrCode, debug string) { + sc.vlogf("http2: server rejecting conn: %v, %s", err, debug) + // ignoring errors. hanging up anyway. + sc.framer.WriteGoAway(0, err, []byte(debug)) + sc.bw.Flush() + sc.conn.Close() +} + +type serverConn struct { + // Immutable: + srv *Server + hs *http.Server + conn net.Conn + bw *bufferedWriter // writing to conn + handler http.Handler + baseCtx context.Context + framer *Framer + doneServing chan struct{} // closed when serverConn.serve ends + readFrameCh chan readFrameResult // written by serverConn.readFrames + wantWriteFrameCh chan FrameWriteRequest // from handlers -> serve + wroteFrameCh chan frameWriteResult // from writeFrameAsync -> serve, tickles more frame writes + bodyReadCh chan bodyReadMsg // from handlers -> serve + serveMsgCh chan interface{} // misc messages & code to send to / run on the serve loop + flow outflow // conn-wide (not stream-specific) outbound flow control + inflow inflow // conn-wide inbound flow control + tlsState *tls.ConnectionState // shared by all handlers, like net/http + remoteAddrStr string + writeSched WriteScheduler + + // Everything following is owned by the serve loop; use serveG.check(): + serveG goroutineLock // used to verify funcs are on serve() + pushEnabled bool + sawClientPreface bool // preface has already been read, used in h2c upgrade + sawFirstSettings bool // got the initial SETTINGS frame after the preface + needToSendSettingsAck bool + unackedSettings int // how many SETTINGS have we sent without ACKs? + queuedControlFrames int // control frames in the writeSched queue + clientMaxStreams uint32 // SETTINGS_MAX_CONCURRENT_STREAMS from client (our PUSH_PROMISE limit) + advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client + curClientStreams uint32 // number of open streams initiated by the client + curPushedStreams uint32 // number of open streams initiated by server push + maxClientStreamID uint32 // max ever seen from client (odd), or 0 if there have been no client requests + maxPushPromiseID uint32 // ID of the last push promise (even), or 0 if there have been no pushes + streams map[uint32]*stream + initialStreamSendWindowSize int32 + maxFrameSize int32 + peerMaxHeaderListSize uint32 // zero means unknown (default) + canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case + canonHeaderKeysSize int // canonHeader keys size in bytes + writingFrame bool // started writing a frame (on serve goroutine or separate) + writingFrameAsync bool // started a frame on its own goroutine but haven't heard back on wroteFrameCh + needsFrameFlush bool // last frame write wasn't a flush + inGoAway bool // we've started to or sent GOAWAY + inFrameScheduleLoop bool // whether we're in the scheduleFrameWrite loop + needToSendGoAway bool // we need to schedule a GOAWAY frame write + goAwayCode ErrCode + shutdownTimer *time.Timer // nil until used + idleTimer *time.Timer // nil if unused + + // Owned by the writeFrameAsync goroutine: + headerWriteBuf bytes.Buffer + hpackEncoder *hpack.Encoder + + // Used by startGracefulShutdown. + shutdownOnce sync.Once +} + +func (sc *serverConn) maxHeaderListSize() uint32 { + n := sc.hs.MaxHeaderBytes + if n <= 0 { + n = http.DefaultMaxHeaderBytes + } + // http2's count is in a slightly different unit and includes 32 bytes per pair. + // So, take the net/http.Server value and pad it up a bit, assuming 10 headers. + const perFieldOverhead = 32 // per http2 spec + const typicalHeaders = 10 // conservative + return uint32(n + typicalHeaders*perFieldOverhead) +} + +func (sc *serverConn) curOpenStreams() uint32 { + sc.serveG.check() + return sc.curClientStreams + sc.curPushedStreams +} + +// stream represents a stream. This is the minimal metadata needed by +// the serve goroutine. Most of the actual stream state is owned by +// the http.Handler's goroutine in the responseWriter. Because the +// responseWriter's responseWriterState is recycled at the end of a +// handler, this struct intentionally has no pointer to the +// *responseWriter{,State} itself, as the Handler ending nils out the +// responseWriter's state field. +type stream struct { + // immutable: + sc *serverConn + id uint32 + body *pipe // non-nil if expecting DATA frames + cw closeWaiter // closed wait stream transitions to closed state + ctx context.Context + cancelCtx func() + + // owned by serverConn's serve loop: + bodyBytes int64 // body bytes seen so far + declBodyBytes int64 // or -1 if undeclared + flow outflow // limits writing from Handler to client + inflow inflow // what the client is allowed to POST/etc to us + state streamState + resetQueued bool // RST_STREAM queued for write; set by sc.resetStream + gotTrailerHeader bool // HEADER frame for trailers was seen + wroteHeaders bool // whether we wrote headers (not status 100) + readDeadline *time.Timer // nil if unused + writeDeadline *time.Timer // nil if unused + closeErr error // set before cw is closed + + trailer http.Header // accumulated trailers + reqTrailer http.Header // handler's Request.Trailer +} + +func (sc *serverConn) Framer() *Framer { return sc.framer } +func (sc *serverConn) CloseConn() error { return sc.conn.Close() } +func (sc *serverConn) Flush() error { return sc.bw.Flush() } +func (sc *serverConn) HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) { + return sc.hpackEncoder, &sc.headerWriteBuf +} + +func (sc *serverConn) state(streamID uint32) (streamState, *stream) { + sc.serveG.check() + // http://tools.ietf.org/html/rfc7540#section-5.1 + if st, ok := sc.streams[streamID]; ok { + return st.state, st + } + // "The first use of a new stream identifier implicitly closes all + // streams in the "idle" state that might have been initiated by + // that peer with a lower-valued stream identifier. For example, if + // a client sends a HEADERS frame on stream 7 without ever sending a + // frame on stream 5, then stream 5 transitions to the "closed" + // state when the first frame for stream 7 is sent or received." + if streamID%2 == 1 { + if streamID <= sc.maxClientStreamID { + return stateClosed, nil + } + } else { + if streamID <= sc.maxPushPromiseID { + return stateClosed, nil + } + } + return stateIdle, nil +} + +// setConnState calls the net/http ConnState hook for this connection, if configured. +// Note that the net/http package does StateNew and StateClosed for us. +// There is currently no plan for StateHijacked or hijacking HTTP/2 connections. +func (sc *serverConn) setConnState(state http.ConnState) { + if sc.hs.ConnState != nil { + sc.hs.ConnState(sc.conn, state) + } +} + +func (sc *serverConn) vlogf(format string, args ...interface{}) { + if VerboseLogs { + sc.logf(format, args...) + } +} + +func (sc *serverConn) logf(format string, args ...interface{}) { + if lg := sc.hs.ErrorLog; lg != nil { + lg.Printf(format, args...) + } else { + log.Printf(format, args...) + } +} + +// errno returns v's underlying uintptr, else 0. +// +// TODO: remove this helper function once http2 can use build +// tags. See comment in isClosedConnError. +func errno(v error) uintptr { + if rv := reflect.ValueOf(v); rv.Kind() == reflect.Uintptr { + return uintptr(rv.Uint()) + } + return 0 +} + +// isClosedConnError reports whether err is an error from use of a closed +// network connection. +func isClosedConnError(err error) bool { + if err == nil { + return false + } + + // TODO: remove this string search and be more like the Windows + // case below. That might involve modifying the standard library + // to return better error types. + str := err.Error() + if strings.Contains(str, "use of closed network connection") { + return true + } + + // TODO(bradfitz): x/tools/cmd/bundle doesn't really support + // build tags, so I can't make an http2_windows.go file with + // Windows-specific stuff. Fix that and move this, once we + // have a way to bundle this into std's net/http somehow. + if runtime.GOOS == "windows" { + if oe, ok := err.(*net.OpError); ok && oe.Op == "read" { + if se, ok := oe.Err.(*os.SyscallError); ok && se.Syscall == "wsarecv" { + const WSAECONNABORTED = 10053 + const WSAECONNRESET = 10054 + if n := errno(se.Err); n == WSAECONNRESET || n == WSAECONNABORTED { + return true + } + } + } + } + return false +} + +func (sc *serverConn) condlogf(err error, format string, args ...interface{}) { + if err == nil { + return + } + if err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) || err == errPrefaceTimeout { + // Boring, expected errors. + sc.vlogf(format, args...) + } else { + sc.logf(format, args...) + } +} + +// maxCachedCanonicalHeadersKeysSize is an arbitrarily-chosen limit on the size +// of the entries in the canonHeader cache. +// This should be larger than the size of unique, uncommon header keys likely to +// be sent by the peer, while not so high as to permit unreasonable memory usage +// if the peer sends an unbounded number of unique header keys. +const maxCachedCanonicalHeadersKeysSize = 2048 + +func (sc *serverConn) canonicalHeader(v string) string { + sc.serveG.check() + buildCommonHeaderMapsOnce() + cv, ok := commonCanonHeader[v] + if ok { + return cv + } + cv, ok = sc.canonHeader[v] + if ok { + return cv + } + if sc.canonHeader == nil { + sc.canonHeader = make(map[string]string) + } + cv = http.CanonicalHeaderKey(v) + size := 100 + len(v)*2 // 100 bytes of map overhead + key + value + if sc.canonHeaderKeysSize+size <= maxCachedCanonicalHeadersKeysSize { + sc.canonHeader[v] = cv + sc.canonHeaderKeysSize += size + } + return cv +} + +type readFrameResult struct { + f Frame // valid until readMore is called + err error + + // readMore should be called once the consumer no longer needs or + // retains f. After readMore, f is invalid and more frames can be + // read. + readMore func() +} + +// readFrames is the loop that reads incoming frames. +// It takes care to only read one frame at a time, blocking until the +// consumer is done with the frame. +// It's run on its own goroutine. +func (sc *serverConn) readFrames() { + gate := make(gate) + gateDone := gate.Done + for { + f, err := sc.framer.ReadFrame() + select { + case sc.readFrameCh <- readFrameResult{f, err, gateDone}: + case <-sc.doneServing: + return + } + select { + case <-gate: + case <-sc.doneServing: + return + } + if terminalReadFrameError(err) { + return + } + } +} + +// frameWriteResult is the message passed from writeFrameAsync to the serve goroutine. +type frameWriteResult struct { + _ incomparable + wr FrameWriteRequest // what was written (or attempted) + err error // result of the writeFrame call +} + +// writeFrameAsync runs in its own goroutine and writes a single frame +// and then reports when it's done. +// At most one goroutine can be running writeFrameAsync at a time per +// serverConn. +func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) { + var err error + if wd == nil { + err = wr.write.writeFrame(sc) + } else { + err = sc.framer.endWrite() + } + sc.wroteFrameCh <- frameWriteResult{wr: wr, err: err} +} + +func (sc *serverConn) closeAllStreamsOnConnClose() { + sc.serveG.check() + for _, st := range sc.streams { + sc.closeStream(st, errClientDisconnected) + } +} + +func (sc *serverConn) stopShutdownTimer() { + sc.serveG.check() + if t := sc.shutdownTimer; t != nil { + t.Stop() + } +} + +func (sc *serverConn) notePanic() { + // Note: this is for serverConn.serve panicking, not http.Handler code. + if testHookOnPanicMu != nil { + testHookOnPanicMu.Lock() + defer testHookOnPanicMu.Unlock() + } + if testHookOnPanic != nil { + if e := recover(); e != nil { + if testHookOnPanic(sc, e) { + panic(e) + } + } + } +} + +func (sc *serverConn) serve() { + sc.serveG.check() + defer sc.notePanic() + defer sc.conn.Close() + defer sc.closeAllStreamsOnConnClose() + defer sc.stopShutdownTimer() + defer close(sc.doneServing) // unblocks handlers trying to send + + if VerboseLogs { + sc.vlogf("http2: server connection from %v on %p", sc.conn.RemoteAddr(), sc.hs) + } + + sc.writeFrame(FrameWriteRequest{ + write: writeSettings{ + {SettingMaxFrameSize, sc.srv.maxReadFrameSize()}, + {SettingMaxConcurrentStreams, sc.advMaxStreams}, + {SettingMaxHeaderListSize, sc.maxHeaderListSize()}, + {SettingHeaderTableSize, sc.srv.maxDecoderHeaderTableSize()}, + {SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())}, + }, + }) + sc.unackedSettings++ + + // Each connection starts with initialWindowSize inflow tokens. + // If a higher value is configured, we add more tokens. + if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 { + sc.sendWindowUpdate(nil, int(diff)) + } + + if err := sc.readPreface(); err != nil { + sc.condlogf(err, "http2: server: error reading preface from client %v: %v", sc.conn.RemoteAddr(), err) + return + } + // Now that we've got the preface, get us out of the + // "StateNew" state. We can't go directly to idle, though. + // Active means we read some data and anticipate a request. We'll + // do another Active when we get a HEADERS frame. + sc.setConnState(http.StateActive) + sc.setConnState(http.StateIdle) + + if sc.srv.IdleTimeout != 0 { + sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) + defer sc.idleTimer.Stop() + } + + go sc.readFrames() // closed by defer sc.conn.Close above + + settingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer) + defer settingsTimer.Stop() + + loopNum := 0 + for { + loopNum++ + select { + case wr := <-sc.wantWriteFrameCh: + if se, ok := wr.write.(StreamError); ok { + sc.resetStream(se) + break + } + sc.writeFrame(wr) + case res := <-sc.wroteFrameCh: + sc.wroteFrame(res) + case res := <-sc.readFrameCh: + // Process any written frames before reading new frames from the client since a + // written frame could have triggered a new stream to be started. + if sc.writingFrameAsync { + select { + case wroteRes := <-sc.wroteFrameCh: + sc.wroteFrame(wroteRes) + default: + } + } + if !sc.processFrameFromReader(res) { + return + } + res.readMore() + if settingsTimer != nil { + settingsTimer.Stop() + settingsTimer = nil + } + case m := <-sc.bodyReadCh: + sc.noteBodyRead(m.st, m.n) + case msg := <-sc.serveMsgCh: + switch v := msg.(type) { + case func(int): + v(loopNum) // for testing + case *serverMessage: + switch v { + case settingsTimerMsg: + sc.logf("timeout waiting for SETTINGS frames from %v", sc.conn.RemoteAddr()) + return + case idleTimerMsg: + sc.vlogf("connection is idle") + sc.goAway(ErrCodeNo) + case shutdownTimerMsg: + sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr()) + return + case gracefulShutdownMsg: + sc.startGracefulShutdownInternal() + default: + panic("unknown timer") + } + case *startPushRequest: + sc.startPush(v) + case func(*serverConn): + v(sc) + default: + panic(fmt.Sprintf("unexpected type %T", v)) + } + } + + // If the peer is causing us to generate a lot of control frames, + // but not reading them from us, assume they are trying to make us + // run out of memory. + if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() { + sc.vlogf("http2: too many control frames in send queue, closing connection") + return + } + + // Start the shutdown timer after sending a GOAWAY. When sending GOAWAY + // with no error code (graceful shutdown), don't start the timer until + // all open streams have been completed. + sentGoAway := sc.inGoAway && !sc.needToSendGoAway && !sc.writingFrame + gracefulShutdownComplete := sc.goAwayCode == ErrCodeNo && sc.curOpenStreams() == 0 + if sentGoAway && sc.shutdownTimer == nil && (sc.goAwayCode != ErrCodeNo || gracefulShutdownComplete) { + sc.shutDownIn(goAwayTimeout) + } + } +} + +func (sc *serverConn) awaitGracefulShutdown(sharedCh <-chan struct{}, privateCh chan struct{}) { + select { + case <-sc.doneServing: + case <-sharedCh: + close(privateCh) + } +} + +type serverMessage int + +// Message values sent to serveMsgCh. +var ( + settingsTimerMsg = new(serverMessage) + idleTimerMsg = new(serverMessage) + shutdownTimerMsg = new(serverMessage) + gracefulShutdownMsg = new(serverMessage) +) + +func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) } +func (sc *serverConn) onIdleTimer() { sc.sendServeMsg(idleTimerMsg) } +func (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) } + +func (sc *serverConn) sendServeMsg(msg interface{}) { + sc.serveG.checkNotOn() // NOT + select { + case sc.serveMsgCh <- msg: + case <-sc.doneServing: + } +} + +var errPrefaceTimeout = errors.New("timeout waiting for client preface") + +// readPreface reads the ClientPreface greeting from the peer or +// returns errPrefaceTimeout on timeout, or an error if the greeting +// is invalid. +func (sc *serverConn) readPreface() error { + if sc.sawClientPreface { + return nil + } + errc := make(chan error, 1) + go func() { + // Read the client preface + buf := make([]byte, len(ClientPreface)) + if _, err := io.ReadFull(sc.conn, buf); err != nil { + errc <- err + } else if !bytes.Equal(buf, clientPreface) { + errc <- fmt.Errorf("bogus greeting %q", buf) + } else { + errc <- nil + } + }() + timer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server? + defer timer.Stop() + select { + case <-timer.C: + return errPrefaceTimeout + case err := <-errc: + if err == nil { + if VerboseLogs { + sc.vlogf("http2: server: client %v said hello", sc.conn.RemoteAddr()) + } + } + return err + } +} + +var errChanPool = sync.Pool{ + New: func() interface{} { return make(chan error, 1) }, +} + +var writeDataPool = sync.Pool{ + New: func() interface{} { return new(writeData) }, +} + +// writeDataFromHandler writes DATA response frames from a handler on +// the given stream. +func (sc *serverConn) writeDataFromHandler(stream *stream, data []byte, endStream bool) error { + ch := errChanPool.Get().(chan error) + writeArg := writeDataPool.Get().(*writeData) + *writeArg = writeData{stream.id, data, endStream} + err := sc.writeFrameFromHandler(FrameWriteRequest{ + write: writeArg, + stream: stream, + done: ch, + }) + if err != nil { + return err + } + var frameWriteDone bool // the frame write is done (successfully or not) + select { + case err = <-ch: + frameWriteDone = true + case <-sc.doneServing: + return errClientDisconnected + case <-stream.cw: + // If both ch and stream.cw were ready (as might + // happen on the final Write after an http.Handler + // ends), prefer the write result. Otherwise this + // might just be us successfully closing the stream. + // The writeFrameAsync and serve goroutines guarantee + // that the ch send will happen before the stream.cw + // close. + select { + case err = <-ch: + frameWriteDone = true + default: + return errStreamClosed + } + } + errChanPool.Put(ch) + if frameWriteDone { + writeDataPool.Put(writeArg) + } + return err +} + +// writeFrameFromHandler sends wr to sc.wantWriteFrameCh, but aborts +// if the connection has gone away. +// +// This must not be run from the serve goroutine itself, else it might +// deadlock writing to sc.wantWriteFrameCh (which is only mildly +// buffered and is read by serve itself). If you're on the serve +// goroutine, call writeFrame instead. +func (sc *serverConn) writeFrameFromHandler(wr FrameWriteRequest) error { + sc.serveG.checkNotOn() // NOT + select { + case sc.wantWriteFrameCh <- wr: + return nil + case <-sc.doneServing: + // Serve loop is gone. + // Client has closed their connection to the server. + return errClientDisconnected + } +} + +// writeFrame schedules a frame to write and sends it if there's nothing +// already being written. +// +// There is no pushback here (the serve goroutine never blocks). It's +// the http.Handlers that block, waiting for their previous frames to +// make it onto the wire +// +// If you're not on the serve goroutine, use writeFrameFromHandler instead. +func (sc *serverConn) writeFrame(wr FrameWriteRequest) { + sc.serveG.check() + + // If true, wr will not be written and wr.done will not be signaled. + var ignoreWrite bool + + // We are not allowed to write frames on closed streams. RFC 7540 Section + // 5.1.1 says: "An endpoint MUST NOT send frames other than PRIORITY on + // a closed stream." Our server never sends PRIORITY, so that exception + // does not apply. + // + // The serverConn might close an open stream while the stream's handler + // is still running. For example, the server might close a stream when it + // receives bad data from the client. If this happens, the handler might + // attempt to write a frame after the stream has been closed (since the + // handler hasn't yet been notified of the close). In this case, we simply + // ignore the frame. The handler will notice that the stream is closed when + // it waits for the frame to be written. + // + // As an exception to this rule, we allow sending RST_STREAM after close. + // This allows us to immediately reject new streams without tracking any + // state for those streams (except for the queued RST_STREAM frame). This + // may result in duplicate RST_STREAMs in some cases, but the client should + // ignore those. + if wr.StreamID() != 0 { + _, isReset := wr.write.(StreamError) + if state, _ := sc.state(wr.StreamID()); state == stateClosed && !isReset { + ignoreWrite = true + } + } + + // Don't send a 100-continue response if we've already sent headers. + // See golang.org/issue/14030. + switch wr.write.(type) { + case *writeResHeaders: + wr.stream.wroteHeaders = true + case write100ContinueHeadersFrame: + if wr.stream.wroteHeaders { + // We do not need to notify wr.done because this frame is + // never written with wr.done != nil. + if wr.done != nil { + panic("wr.done != nil for write100ContinueHeadersFrame") + } + ignoreWrite = true + } + } + + if !ignoreWrite { + if wr.isControl() { + sc.queuedControlFrames++ + // For extra safety, detect wraparounds, which should not happen, + // and pull the plug. + if sc.queuedControlFrames < 0 { + sc.conn.Close() + } + } + sc.writeSched.Push(wr) + } + sc.scheduleFrameWrite() +} + +// startFrameWrite starts a goroutine to write wr (in a separate +// goroutine since that might block on the network), and updates the +// serve goroutine's state about the world, updated from info in wr. +func (sc *serverConn) startFrameWrite(wr FrameWriteRequest) { + sc.serveG.check() + if sc.writingFrame { + panic("internal error: can only be writing one frame at a time") + } + + st := wr.stream + if st != nil { + switch st.state { + case stateHalfClosedLocal: + switch wr.write.(type) { + case StreamError, handlerPanicRST, writeWindowUpdate: + // RFC 7540 Section 5.1 allows sending RST_STREAM, PRIORITY, and WINDOW_UPDATE + // in this state. (We never send PRIORITY from the server, so that is not checked.) + default: + panic(fmt.Sprintf("internal error: attempt to send frame on a half-closed-local stream: %v", wr)) + } + case stateClosed: + panic(fmt.Sprintf("internal error: attempt to send frame on a closed stream: %v", wr)) + } + } + if wpp, ok := wr.write.(*writePushPromise); ok { + var err error + wpp.promisedID, err = wpp.allocatePromisedID() + if err != nil { + sc.writingFrameAsync = false + wr.replyToWriter(err) + return + } + } + + sc.writingFrame = true + sc.needsFrameFlush = true + if wr.write.staysWithinBuffer(sc.bw.Available()) { + sc.writingFrameAsync = false + err := wr.write.writeFrame(sc) + sc.wroteFrame(frameWriteResult{wr: wr, err: err}) + } else if wd, ok := wr.write.(*writeData); ok { + // Encode the frame in the serve goroutine, to ensure we don't have + // any lingering asynchronous references to data passed to Write. + // See https://go.dev/issue/58446. + sc.framer.startWriteDataPadded(wd.streamID, wd.endStream, wd.p, nil) + sc.writingFrameAsync = true + go sc.writeFrameAsync(wr, wd) + } else { + sc.writingFrameAsync = true + go sc.writeFrameAsync(wr, nil) + } +} + +// errHandlerPanicked is the error given to any callers blocked in a read from +// Request.Body when the main goroutine panics. Since most handlers read in the +// main ServeHTTP goroutine, this will show up rarely. +var errHandlerPanicked = errors.New("http2: handler panicked") + +// wroteFrame is called on the serve goroutine with the result of +// whatever happened on writeFrameAsync. +func (sc *serverConn) wroteFrame(res frameWriteResult) { + sc.serveG.check() + if !sc.writingFrame { + panic("internal error: expected to be already writing a frame") + } + sc.writingFrame = false + sc.writingFrameAsync = false + + wr := res.wr + + if writeEndsStream(wr.write) { + st := wr.stream + if st == nil { + panic("internal error: expecting non-nil stream") + } + switch st.state { + case stateOpen: + // Here we would go to stateHalfClosedLocal in + // theory, but since our handler is done and + // the net/http package provides no mechanism + // for closing a ResponseWriter while still + // reading data (see possible TODO at top of + // this file), we go into closed state here + // anyway, after telling the peer we're + // hanging up on them. We'll transition to + // stateClosed after the RST_STREAM frame is + // written. + st.state = stateHalfClosedLocal + // Section 8.1: a server MAY request that the client abort + // transmission of a request without error by sending a + // RST_STREAM with an error code of NO_ERROR after sending + // a complete response. + sc.resetStream(streamError(st.id, ErrCodeNo)) + case stateHalfClosedRemote: + sc.closeStream(st, errHandlerComplete) + } + } else { + switch v := wr.write.(type) { + case StreamError: + // st may be unknown if the RST_STREAM was generated to reject bad input. + if st, ok := sc.streams[v.StreamID]; ok { + sc.closeStream(st, v) + } + case handlerPanicRST: + sc.closeStream(wr.stream, errHandlerPanicked) + } + } + + // Reply (if requested) to unblock the ServeHTTP goroutine. + wr.replyToWriter(res.err) + + sc.scheduleFrameWrite() +} + +// scheduleFrameWrite tickles the frame writing scheduler. +// +// If a frame is already being written, nothing happens. This will be called again +// when the frame is done being written. +// +// If a frame isn't being written and we need to send one, the best frame +// to send is selected by writeSched. +// +// If a frame isn't being written and there's nothing else to send, we +// flush the write buffer. +func (sc *serverConn) scheduleFrameWrite() { + sc.serveG.check() + if sc.writingFrame || sc.inFrameScheduleLoop { + return + } + sc.inFrameScheduleLoop = true + for !sc.writingFrameAsync { + if sc.needToSendGoAway { + sc.needToSendGoAway = false + sc.startFrameWrite(FrameWriteRequest{ + write: &writeGoAway{ + maxStreamID: sc.maxClientStreamID, + code: sc.goAwayCode, + }, + }) + continue + } + if sc.needToSendSettingsAck { + sc.needToSendSettingsAck = false + sc.startFrameWrite(FrameWriteRequest{write: writeSettingsAck{}}) + continue + } + if !sc.inGoAway || sc.goAwayCode == ErrCodeNo { + if wr, ok := sc.writeSched.Pop(); ok { + if wr.isControl() { + sc.queuedControlFrames-- + } + sc.startFrameWrite(wr) + continue + } + } + if sc.needsFrameFlush { + sc.startFrameWrite(FrameWriteRequest{write: flushFrameWriter{}}) + sc.needsFrameFlush = false // after startFrameWrite, since it sets this true + continue + } + break + } + sc.inFrameScheduleLoop = false +} + +// startGracefulShutdown gracefully shuts down a connection. This +// sends GOAWAY with ErrCodeNo to tell the client we're gracefully +// shutting down. The connection isn't closed until all current +// streams are done. +// +// startGracefulShutdown returns immediately; it does not wait until +// the connection has shut down. +func (sc *serverConn) startGracefulShutdown() { + sc.serveG.checkNotOn() // NOT + sc.shutdownOnce.Do(func() { sc.sendServeMsg(gracefulShutdownMsg) }) +} + +// After sending GOAWAY with an error code (non-graceful shutdown), the +// connection will close after goAwayTimeout. +// +// If we close the connection immediately after sending GOAWAY, there may +// be unsent data in our kernel receive buffer, which will cause the kernel +// to send a TCP RST on close() instead of a FIN. This RST will abort the +// connection immediately, whether or not the client had received the GOAWAY. +// +// Ideally we should delay for at least 1 RTT + epsilon so the client has +// a chance to read the GOAWAY and stop sending messages. Measuring RTT +// is hard, so we approximate with 1 second. See golang.org/issue/18701. +// +// This is a var so it can be shorter in tests, where all requests uses the +// loopback interface making the expected RTT very small. +// +// TODO: configurable? +var goAwayTimeout = 1 * time.Second + +func (sc *serverConn) startGracefulShutdownInternal() { + sc.goAway(ErrCodeNo) +} + +func (sc *serverConn) goAway(code ErrCode) { + sc.serveG.check() + if sc.inGoAway { + if sc.goAwayCode == ErrCodeNo { + sc.goAwayCode = code + } + return + } + sc.inGoAway = true + sc.needToSendGoAway = true + sc.goAwayCode = code + sc.scheduleFrameWrite() +} + +func (sc *serverConn) shutDownIn(d time.Duration) { + sc.serveG.check() + sc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer) +} + +func (sc *serverConn) resetStream(se StreamError) { + sc.serveG.check() + sc.writeFrame(FrameWriteRequest{write: se}) + if st, ok := sc.streams[se.StreamID]; ok { + st.resetQueued = true + } +} + +// processFrameFromReader processes the serve loop's read from readFrameCh from the +// frame-reading goroutine. +// processFrameFromReader returns whether the connection should be kept open. +func (sc *serverConn) processFrameFromReader(res readFrameResult) bool { + sc.serveG.check() + err := res.err + if err != nil { + if err == ErrFrameTooLarge { + sc.goAway(ErrCodeFrameSize) + return true // goAway will close the loop + } + clientGone := err == io.EOF || err == io.ErrUnexpectedEOF || isClosedConnError(err) + if clientGone { + // TODO: could we also get into this state if + // the peer does a half close + // (e.g. CloseWrite) because they're done + // sending frames but they're still wanting + // our open replies? Investigate. + // TODO: add CloseWrite to crypto/tls.Conn first + // so we have a way to test this? I suppose + // just for testing we could have a non-TLS mode. + return false + } + } else { + f := res.f + if VerboseLogs { + sc.vlogf("http2: server read frame %v", summarizeFrame(f)) + } + err = sc.processFrame(f) + if err == nil { + return true + } + } + + switch ev := err.(type) { + case StreamError: + sc.resetStream(ev) + return true + case goAwayFlowError: + sc.goAway(ErrCodeFlowControl) + return true + case ConnectionError: + sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev) + sc.goAway(ErrCode(ev)) + return true // goAway will handle shutdown + default: + if res.err != nil { + sc.vlogf("http2: server closing client connection; error reading frame from client %s: %v", sc.conn.RemoteAddr(), err) + } else { + sc.logf("http2: server closing client connection: %v", err) + } + return false + } +} + +func (sc *serverConn) processFrame(f Frame) error { + sc.serveG.check() + + // First frame received must be SETTINGS. + if !sc.sawFirstSettings { + if _, ok := f.(*SettingsFrame); !ok { + return sc.countError("first_settings", ConnectionError(ErrCodeProtocol)) + } + sc.sawFirstSettings = true + } + + // Discard frames for streams initiated after the identified last + // stream sent in a GOAWAY, or all frames after sending an error. + // We still need to return connection-level flow control for DATA frames. + // RFC 9113 Section 6.8. + if sc.inGoAway && (sc.goAwayCode != ErrCodeNo || f.Header().StreamID > sc.maxClientStreamID) { + + if f, ok := f.(*DataFrame); ok { + if !sc.inflow.take(f.Length) { + return sc.countError("data_flow", streamError(f.Header().StreamID, ErrCodeFlowControl)) + } + sc.sendWindowUpdate(nil, int(f.Length)) // conn-level + } + return nil + } + + switch f := f.(type) { + case *SettingsFrame: + return sc.processSettings(f) + case *MetaHeadersFrame: + return sc.processHeaders(f) + case *WindowUpdateFrame: + return sc.processWindowUpdate(f) + case *PingFrame: + return sc.processPing(f) + case *DataFrame: + return sc.processData(f) + case *RSTStreamFrame: + return sc.processResetStream(f) + case *PriorityFrame: + return sc.processPriority(f) + case *GoAwayFrame: + return sc.processGoAway(f) + case *PushPromiseFrame: + // A client cannot push. Thus, servers MUST treat the receipt of a PUSH_PROMISE + // frame as a connection error (Section 5.4.1) of type PROTOCOL_ERROR. + return sc.countError("push_promise", ConnectionError(ErrCodeProtocol)) + default: + sc.vlogf("http2: server ignoring frame: %v", f.Header()) + return nil + } +} + +func (sc *serverConn) processPing(f *PingFrame) error { + sc.serveG.check() + if f.IsAck() { + // 6.7 PING: " An endpoint MUST NOT respond to PING frames + // containing this flag." + return nil + } + if f.StreamID != 0 { + // "PING frames are not associated with any individual + // stream. If a PING frame is received with a stream + // identifier field value other than 0x0, the recipient MUST + // respond with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR." + return sc.countError("ping_on_stream", ConnectionError(ErrCodeProtocol)) + } + sc.writeFrame(FrameWriteRequest{write: writePingAck{f}}) + return nil +} + +func (sc *serverConn) processWindowUpdate(f *WindowUpdateFrame) error { + sc.serveG.check() + switch { + case f.StreamID != 0: // stream-level flow control + state, st := sc.state(f.StreamID) + if state == stateIdle { + // Section 5.1: "Receiving any frame other than HEADERS + // or PRIORITY on a stream in this state MUST be + // treated as a connection error (Section 5.4.1) of + // type PROTOCOL_ERROR." + return sc.countError("stream_idle", ConnectionError(ErrCodeProtocol)) + } + if st == nil { + // "WINDOW_UPDATE can be sent by a peer that has sent a + // frame bearing the END_STREAM flag. This means that a + // receiver could receive a WINDOW_UPDATE frame on a "half + // closed (remote)" or "closed" stream. A receiver MUST + // NOT treat this as an error, see Section 5.1." + return nil + } + if !st.flow.add(int32(f.Increment)) { + return sc.countError("bad_flow", streamError(f.StreamID, ErrCodeFlowControl)) + } + default: // connection-level flow control + if !sc.flow.add(int32(f.Increment)) { + return goAwayFlowError{} + } + } + sc.scheduleFrameWrite() + return nil +} + +func (sc *serverConn) processResetStream(f *RSTStreamFrame) error { + sc.serveG.check() + + state, st := sc.state(f.StreamID) + if state == stateIdle { + // 6.4 "RST_STREAM frames MUST NOT be sent for a + // stream in the "idle" state. If a RST_STREAM frame + // identifying an idle stream is received, the + // recipient MUST treat this as a connection error + // (Section 5.4.1) of type PROTOCOL_ERROR. + return sc.countError("reset_idle_stream", ConnectionError(ErrCodeProtocol)) + } + if st != nil { + st.cancelCtx() + sc.closeStream(st, streamError(f.StreamID, f.ErrCode)) + } + return nil +} + +func (sc *serverConn) closeStream(st *stream, err error) { + sc.serveG.check() + if st.state == stateIdle || st.state == stateClosed { + panic(fmt.Sprintf("invariant; can't close stream in state %v", st.state)) + } + st.state = stateClosed + if st.readDeadline != nil { + st.readDeadline.Stop() + } + if st.writeDeadline != nil { + st.writeDeadline.Stop() + } + if st.isPushed() { + sc.curPushedStreams-- + } else { + sc.curClientStreams-- + } + delete(sc.streams, st.id) + if len(sc.streams) == 0 { + sc.setConnState(http.StateIdle) + if sc.srv.IdleTimeout != 0 { + sc.idleTimer.Reset(sc.srv.IdleTimeout) + } + if h1ServerKeepAlivesDisabled(sc.hs) { + sc.startGracefulShutdownInternal() + } + } + if p := st.body; p != nil { + // Return any buffered unread bytes worth of conn-level flow control. + // See golang.org/issue/16481 + sc.sendWindowUpdate(nil, p.Len()) + + p.CloseWithError(err) + } + if e, ok := err.(StreamError); ok { + if e.Cause != nil { + err = e.Cause + } else { + err = errStreamClosed + } + } + st.closeErr = err + st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc + sc.writeSched.CloseStream(st.id) +} + +func (sc *serverConn) processSettings(f *SettingsFrame) error { + sc.serveG.check() + if f.IsAck() { + sc.unackedSettings-- + if sc.unackedSettings < 0 { + // Why is the peer ACKing settings we never sent? + // The spec doesn't mention this case, but + // hang up on them anyway. + return sc.countError("ack_mystery", ConnectionError(ErrCodeProtocol)) + } + return nil + } + if f.NumSettings() > 100 || f.HasDuplicates() { + // This isn't actually in the spec, but hang up on + // suspiciously large settings frames or those with + // duplicate entries. + return sc.countError("settings_big_or_dups", ConnectionError(ErrCodeProtocol)) + } + if err := f.ForeachSetting(sc.processSetting); err != nil { + return err + } + // TODO: judging by RFC 7540, Section 6.5.3 each SETTINGS frame should be + // acknowledged individually, even if multiple are received before the ACK. + sc.needToSendSettingsAck = true + sc.scheduleFrameWrite() + return nil +} + +func (sc *serverConn) processSetting(s Setting) error { + sc.serveG.check() + if err := s.Valid(); err != nil { + return err + } + if VerboseLogs { + sc.vlogf("http2: server processing setting %v", s) + } + switch s.ID { + case SettingHeaderTableSize: + sc.hpackEncoder.SetMaxDynamicTableSize(s.Val) + case SettingEnablePush: + sc.pushEnabled = s.Val != 0 + case SettingMaxConcurrentStreams: + sc.clientMaxStreams = s.Val + case SettingInitialWindowSize: + return sc.processSettingInitialWindowSize(s.Val) + case SettingMaxFrameSize: + sc.maxFrameSize = int32(s.Val) // the maximum valid s.Val is < 2^31 + case SettingMaxHeaderListSize: + sc.peerMaxHeaderListSize = s.Val + default: + // Unknown setting: "An endpoint that receives a SETTINGS + // frame with any unknown or unsupported identifier MUST + // ignore that setting." + if VerboseLogs { + sc.vlogf("http2: server ignoring unknown setting %v", s) + } + } + return nil +} + +func (sc *serverConn) processSettingInitialWindowSize(val uint32) error { + sc.serveG.check() + // Note: val already validated to be within range by + // processSetting's Valid call. + + // "A SETTINGS frame can alter the initial flow control window + // size for all current streams. When the value of + // SETTINGS_INITIAL_WINDOW_SIZE changes, a receiver MUST + // adjust the size of all stream flow control windows that it + // maintains by the difference between the new value and the + // old value." + old := sc.initialStreamSendWindowSize + sc.initialStreamSendWindowSize = int32(val) + growth := int32(val) - old // may be negative + for _, st := range sc.streams { + if !st.flow.add(growth) { + // 6.9.2 Initial Flow Control Window Size + // "An endpoint MUST treat a change to + // SETTINGS_INITIAL_WINDOW_SIZE that causes any flow + // control window to exceed the maximum size as a + // connection error (Section 5.4.1) of type + // FLOW_CONTROL_ERROR." + return sc.countError("setting_win_size", ConnectionError(ErrCodeFlowControl)) + } + } + return nil +} + +func (sc *serverConn) processData(f *DataFrame) error { + sc.serveG.check() + id := f.Header().StreamID + + data := f.Data() + state, st := sc.state(id) + if id == 0 || state == stateIdle { + // Section 6.1: "DATA frames MUST be associated with a + // stream. If a DATA frame is received whose stream + // identifier field is 0x0, the recipient MUST respond + // with a connection error (Section 5.4.1) of type + // PROTOCOL_ERROR." + // + // Section 5.1: "Receiving any frame other than HEADERS + // or PRIORITY on a stream in this state MUST be + // treated as a connection error (Section 5.4.1) of + // type PROTOCOL_ERROR." + return sc.countError("data_on_idle", ConnectionError(ErrCodeProtocol)) + } + + // "If a DATA frame is received whose stream is not in "open" + // or "half closed (local)" state, the recipient MUST respond + // with a stream error (Section 5.4.2) of type STREAM_CLOSED." + if st == nil || state != stateOpen || st.gotTrailerHeader || st.resetQueued { + // This includes sending a RST_STREAM if the stream is + // in stateHalfClosedLocal (which currently means that + // the http.Handler returned, so it's done reading & + // done writing). Try to stop the client from sending + // more DATA. + + // But still enforce their connection-level flow control, + // and return any flow control bytes since we're not going + // to consume them. + if !sc.inflow.take(f.Length) { + return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) + } + sc.sendWindowUpdate(nil, int(f.Length)) // conn-level + + if st != nil && st.resetQueued { + // Already have a stream error in flight. Don't send another. + return nil + } + return sc.countError("closed", streamError(id, ErrCodeStreamClosed)) + } + if st.body == nil { + panic("internal error: should have a body in this state") + } + + // Sender sending more than they'd declared? + if st.declBodyBytes != -1 && st.bodyBytes+int64(len(data)) > st.declBodyBytes { + if !sc.inflow.take(f.Length) { + return sc.countError("data_flow", streamError(id, ErrCodeFlowControl)) + } + sc.sendWindowUpdate(nil, int(f.Length)) // conn-level + + st.body.CloseWithError(fmt.Errorf("sender tried to send more than declared Content-Length of %d bytes", st.declBodyBytes)) + // RFC 7540, sec 8.1.2.6: A request or response is also malformed if the + // value of a content-length header field does not equal the sum of the + // DATA frame payload lengths that form the body. + return sc.countError("send_too_much", streamError(id, ErrCodeProtocol)) + } + if f.Length > 0 { + // Check whether the client has flow control quota. + if !takeInflows(&sc.inflow, &st.inflow, f.Length) { + return sc.countError("flow_on_data_length", streamError(id, ErrCodeFlowControl)) + } + + if len(data) > 0 { + wrote, err := st.body.Write(data) + if err != nil { + sc.sendWindowUpdate(nil, int(f.Length)-wrote) + return sc.countError("body_write_err", streamError(id, ErrCodeStreamClosed)) + } + if wrote != len(data) { + panic("internal error: bad Writer") + } + st.bodyBytes += int64(len(data)) + } + + // Return any padded flow control now, since we won't + // refund it later on body reads. + // Call sendWindowUpdate even if there is no padding, + // to return buffered flow control credit if the sent + // window has shrunk. + pad := int32(f.Length) - int32(len(data)) + sc.sendWindowUpdate32(nil, pad) + sc.sendWindowUpdate32(st, pad) + } + if f.StreamEnded() { + st.endStream() + } + return nil +} + +func (sc *serverConn) processGoAway(f *GoAwayFrame) error { + sc.serveG.check() + if f.ErrCode != ErrCodeNo { + sc.logf("http2: received GOAWAY %+v, starting graceful shutdown", f) + } else { + sc.vlogf("http2: received GOAWAY %+v, starting graceful shutdown", f) + } + sc.startGracefulShutdownInternal() + // http://tools.ietf.org/html/rfc7540#section-6.8 + // We should not create any new streams, which means we should disable push. + sc.pushEnabled = false + return nil +} + +// isPushed reports whether the stream is server-initiated. +func (st *stream) isPushed() bool { + return st.id%2 == 0 +} + +// endStream closes a Request.Body's pipe. It is called when a DATA +// frame says a request body is over (or after trailers). +func (st *stream) endStream() { + sc := st.sc + sc.serveG.check() + + if st.declBodyBytes != -1 && st.declBodyBytes != st.bodyBytes { + st.body.CloseWithError(fmt.Errorf("request declared a Content-Length of %d but only wrote %d bytes", + st.declBodyBytes, st.bodyBytes)) + } else { + st.body.closeWithErrorAndCode(io.EOF, st.copyTrailersToHandlerRequest) + st.body.CloseWithError(io.EOF) + } + st.state = stateHalfClosedRemote +} + +// copyTrailersToHandlerRequest is run in the Handler's goroutine in +// its Request.Body.Read just before it gets io.EOF. +func (st *stream) copyTrailersToHandlerRequest() { + for k, vv := range st.trailer { + if _, ok := st.reqTrailer[k]; ok { + // Only copy it over it was pre-declared. + st.reqTrailer[k] = vv + } + } +} + +// onReadTimeout is run on its own goroutine (from time.AfterFunc) +// when the stream's ReadTimeout has fired. +func (st *stream) onReadTimeout() { + // Wrap the ErrDeadlineExceeded to avoid callers depending on us + // returning the bare error. + st.body.CloseWithError(fmt.Errorf("%w", os.ErrDeadlineExceeded)) +} + +// onWriteTimeout is run on its own goroutine (from time.AfterFunc) +// when the stream's WriteTimeout has fired. +func (st *stream) onWriteTimeout() { + st.sc.writeFrameFromHandler(FrameWriteRequest{write: StreamError{ + StreamID: st.id, + Code: ErrCodeInternal, + Cause: os.ErrDeadlineExceeded, + }}) +} + +func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { + sc.serveG.check() + id := f.StreamID + // http://tools.ietf.org/html/rfc7540#section-5.1.1 + // Streams initiated by a client MUST use odd-numbered stream + // identifiers. [...] An endpoint that receives an unexpected + // stream identifier MUST respond with a connection error + // (Section 5.4.1) of type PROTOCOL_ERROR. + if id%2 != 1 { + return sc.countError("headers_even", ConnectionError(ErrCodeProtocol)) + } + // A HEADERS frame can be used to create a new stream or + // send a trailer for an open one. If we already have a stream + // open, let it process its own HEADERS frame (trailers at this + // point, if it's valid). + if st := sc.streams[f.StreamID]; st != nil { + if st.resetQueued { + // We're sending RST_STREAM to close the stream, so don't bother + // processing this frame. + return nil + } + // RFC 7540, sec 5.1: If an endpoint receives additional frames, other than + // WINDOW_UPDATE, PRIORITY, or RST_STREAM, for a stream that is in + // this state, it MUST respond with a stream error (Section 5.4.2) of + // type STREAM_CLOSED. + if st.state == stateHalfClosedRemote { + return sc.countError("headers_half_closed", streamError(id, ErrCodeStreamClosed)) + } + return st.processTrailerHeaders(f) + } + + // [...] The identifier of a newly established stream MUST be + // numerically greater than all streams that the initiating + // endpoint has opened or reserved. [...] An endpoint that + // receives an unexpected stream identifier MUST respond with + // a connection error (Section 5.4.1) of type PROTOCOL_ERROR. + if id <= sc.maxClientStreamID { + return sc.countError("stream_went_down", ConnectionError(ErrCodeProtocol)) + } + sc.maxClientStreamID = id + + if sc.idleTimer != nil { + sc.idleTimer.Stop() + } + + // http://tools.ietf.org/html/rfc7540#section-5.1.2 + // [...] Endpoints MUST NOT exceed the limit set by their peer. An + // endpoint that receives a HEADERS frame that causes their + // advertised concurrent stream limit to be exceeded MUST treat + // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR + // or REFUSED_STREAM. + if sc.curClientStreams+1 > sc.advMaxStreams { + if sc.unackedSettings == 0 { + // They should know better. + return sc.countError("over_max_streams", streamError(id, ErrCodeProtocol)) + } + // Assume it's a network race, where they just haven't + // received our last SETTINGS update. But actually + // this can't happen yet, because we don't yet provide + // a way for users to adjust server parameters at + // runtime. + return sc.countError("over_max_streams_race", streamError(id, ErrCodeRefusedStream)) + } + + initialState := stateOpen + if f.StreamEnded() { + initialState = stateHalfClosedRemote + } + st := sc.newStream(id, 0, initialState) + + if f.HasPriority() { + if err := sc.checkPriority(f.StreamID, f.Priority); err != nil { + return err + } + sc.writeSched.AdjustStream(st.id, f.Priority) + } + + rw, req, err := sc.newWriterAndRequest(st, f) + if err != nil { + return err + } + st.reqTrailer = req.Trailer + if st.reqTrailer != nil { + st.trailer = make(http.Header) + } + st.body = req.Body.(*requestBody).pipe // may be nil + st.declBodyBytes = req.ContentLength + + handler := sc.handler.ServeHTTP + if f.Truncated { + // Their header list was too long. Send a 431 error. + handler = handleHeaderListTooLong + } else if err := checkValidHTTP2RequestHeaders(req.Header); err != nil { + handler = new400Handler(err) + } + + // The net/http package sets the read deadline from the + // http.Server.ReadTimeout during the TLS handshake, but then + // passes the connection off to us with the deadline already + // set. Disarm it here after the request headers are read, + // similar to how the http1 server works. Here it's + // technically more like the http1 Server's ReadHeaderTimeout + // (in Go 1.8), though. That's a more sane option anyway. + if sc.hs.ReadTimeout != 0 { + sc.conn.SetReadDeadline(time.Time{}) + if st.body != nil { + st.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout) + } + } + + go sc.runHandler(rw, req, handler) + return nil +} + +func (sc *serverConn) upgradeRequest(req *http.Request) { + sc.serveG.check() + id := uint32(1) + sc.maxClientStreamID = id + st := sc.newStream(id, 0, stateHalfClosedRemote) + st.reqTrailer = req.Trailer + if st.reqTrailer != nil { + st.trailer = make(http.Header) + } + rw := sc.newResponseWriter(st, req) + + // Disable any read deadline set by the net/http package + // prior to the upgrade. + if sc.hs.ReadTimeout != 0 { + sc.conn.SetReadDeadline(time.Time{}) + } + + go sc.runHandler(rw, req, sc.handler.ServeHTTP) +} + +func (st *stream) processTrailerHeaders(f *MetaHeadersFrame) error { + sc := st.sc + sc.serveG.check() + if st.gotTrailerHeader { + return sc.countError("dup_trailers", ConnectionError(ErrCodeProtocol)) + } + st.gotTrailerHeader = true + if !f.StreamEnded() { + return sc.countError("trailers_not_ended", streamError(st.id, ErrCodeProtocol)) + } + + if len(f.PseudoFields()) > 0 { + return sc.countError("trailers_pseudo", streamError(st.id, ErrCodeProtocol)) + } + if st.trailer != nil { + for _, hf := range f.RegularFields() { + key := sc.canonicalHeader(hf.Name) + if !httpguts.ValidTrailerHeader(key) { + // TODO: send more details to the peer somehow. But http2 has + // no way to send debug data at a stream level. Discuss with + // HTTP folk. + return sc.countError("trailers_bogus", streamError(st.id, ErrCodeProtocol)) + } + st.trailer[key] = append(st.trailer[key], hf.Value) + } + } + st.endStream() + return nil +} + +func (sc *serverConn) checkPriority(streamID uint32, p PriorityParam) error { + if streamID == p.StreamDep { + // Section 5.3.1: "A stream cannot depend on itself. An endpoint MUST treat + // this as a stream error (Section 5.4.2) of type PROTOCOL_ERROR." + // Section 5.3.3 says that a stream can depend on one of its dependencies, + // so it's only self-dependencies that are forbidden. + return sc.countError("priority", streamError(streamID, ErrCodeProtocol)) + } + return nil +} + +func (sc *serverConn) processPriority(f *PriorityFrame) error { + if err := sc.checkPriority(f.StreamID, f.PriorityParam); err != nil { + return err + } + sc.writeSched.AdjustStream(f.StreamID, f.PriorityParam) + return nil +} + +func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream { + sc.serveG.check() + if id == 0 { + panic("internal error: cannot create stream with id 0") + } + + ctx, cancelCtx := context.WithCancel(sc.baseCtx) + st := &stream{ + sc: sc, + id: id, + state: state, + ctx: ctx, + cancelCtx: cancelCtx, + } + st.cw.Init() + st.flow.conn = &sc.flow // link to conn-level counter + st.flow.add(sc.initialStreamSendWindowSize) + st.inflow.init(sc.srv.initialStreamRecvWindowSize()) + if sc.hs.WriteTimeout != 0 { + st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) + } + + sc.streams[id] = st + sc.writeSched.OpenStream(st.id, OpenStreamOptions{PusherID: pusherID}) + if st.isPushed() { + sc.curPushedStreams++ + } else { + sc.curClientStreams++ + } + if sc.curOpenStreams() == 1 { + sc.setConnState(http.StateActive) + } + + return st +} + +func (sc *serverConn) newWriterAndRequest(st *stream, f *MetaHeadersFrame) (*responseWriter, *http.Request, error) { + sc.serveG.check() + + rp := requestParam{ + method: f.PseudoValue("method"), + scheme: f.PseudoValue("scheme"), + authority: f.PseudoValue("authority"), + path: f.PseudoValue("path"), + } + + isConnect := rp.method == "CONNECT" + if isConnect { + if rp.path != "" || rp.scheme != "" || rp.authority == "" { + return nil, nil, sc.countError("bad_connect", streamError(f.StreamID, ErrCodeProtocol)) + } + } else if rp.method == "" || rp.path == "" || (rp.scheme != "https" && rp.scheme != "http") { + // See 8.1.2.6 Malformed Requests and Responses: + // + // Malformed requests or responses that are detected + // MUST be treated as a stream error (Section 5.4.2) + // of type PROTOCOL_ERROR." + // + // 8.1.2.3 Request Pseudo-Header Fields + // "All HTTP/2 requests MUST include exactly one valid + // value for the :method, :scheme, and :path + // pseudo-header fields" + return nil, nil, sc.countError("bad_path_method", streamError(f.StreamID, ErrCodeProtocol)) + } + + rp.header = make(http.Header) + for _, hf := range f.RegularFields() { + rp.header.Add(sc.canonicalHeader(hf.Name), hf.Value) + } + if rp.authority == "" { + rp.authority = rp.header.Get("Host") + } + + rw, req, err := sc.newWriterAndRequestNoBody(st, rp) + if err != nil { + return nil, nil, err + } + bodyOpen := !f.StreamEnded() + if bodyOpen { + if vv, ok := rp.header["Content-Length"]; ok { + if cl, err := strconv.ParseUint(vv[0], 10, 63); err == nil { + req.ContentLength = int64(cl) + } else { + req.ContentLength = 0 + } + } else { + req.ContentLength = -1 + } + req.Body.(*requestBody).pipe = &pipe{ + b: &dataBuffer{expected: req.ContentLength}, + } + } + return rw, req, nil +} + +type requestParam struct { + method string + scheme, authority, path string + header http.Header +} + +func (sc *serverConn) newWriterAndRequestNoBody(st *stream, rp requestParam) (*responseWriter, *http.Request, error) { + sc.serveG.check() + + var tlsState *tls.ConnectionState // nil if not scheme https + if rp.scheme == "https" { + tlsState = sc.tlsState + } + + needsContinue := httpguts.HeaderValuesContainsToken(rp.header["Expect"], "100-continue") + if needsContinue { + rp.header.Del("Expect") + } + // Merge Cookie headers into one "; "-delimited value. + if cookies := rp.header["Cookie"]; len(cookies) > 1 { + rp.header.Set("Cookie", strings.Join(cookies, "; ")) + } + + // Setup Trailers + var trailer http.Header + for _, v := range rp.header["Trailer"] { + for _, key := range strings.Split(v, ",") { + key = http.CanonicalHeaderKey(textproto.TrimString(key)) + switch key { + case "Transfer-Encoding", "Trailer", "Content-Length": + // Bogus. (copy of http1 rules) + // Ignore. + default: + if trailer == nil { + trailer = make(http.Header) + } + trailer[key] = nil + } + } + } + delete(rp.header, "Trailer") + + var url_ *url.URL + var requestURI string + if rp.method == "CONNECT" { + url_ = &url.URL{Host: rp.authority} + requestURI = rp.authority // mimic HTTP/1 server behavior + } else { + var err error + url_, err = url.ParseRequestURI(rp.path) + if err != nil { + return nil, nil, sc.countError("bad_path", streamError(st.id, ErrCodeProtocol)) + } + requestURI = rp.path + } + + body := &requestBody{ + conn: sc, + stream: st, + needsContinue: needsContinue, + } + req := &http.Request{ + Method: rp.method, + URL: url_, + RemoteAddr: sc.remoteAddrStr, + Header: rp.header, + RequestURI: requestURI, + Proto: "HTTP/2.0", + ProtoMajor: 2, + ProtoMinor: 0, + TLS: tlsState, + Host: rp.authority, + Body: body, + Trailer: trailer, + } + req = req.WithContext(st.ctx) + + rw := sc.newResponseWriter(st, req) + return rw, req, nil +} + +func (sc *serverConn) newResponseWriter(st *stream, req *http.Request) *responseWriter { + rws := responseWriterStatePool.Get().(*responseWriterState) + bwSave := rws.bw + *rws = responseWriterState{} // zero all the fields + rws.conn = sc + rws.bw = bwSave + rws.bw.Reset(chunkWriter{rws}) + rws.stream = st + rws.req = req + return &responseWriter{rws: rws} +} + +// Run on its own goroutine. +func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) { + didPanic := true + defer func() { + rw.rws.stream.cancelCtx() + if req.MultipartForm != nil { + req.MultipartForm.RemoveAll() + } + if didPanic { + e := recover() + sc.writeFrameFromHandler(FrameWriteRequest{ + write: handlerPanicRST{rw.rws.stream.id}, + stream: rw.rws.stream, + }) + // Same as net/http: + if e != nil && e != http.ErrAbortHandler { + const size = 64 << 10 + buf := make([]byte, size) + buf = buf[:runtime.Stack(buf, false)] + sc.logf("http2: panic serving %v: %v\n%s", sc.conn.RemoteAddr(), e, buf) + } + return + } + rw.handlerDone() + }() + handler(rw, req) + didPanic = false +} + +func handleHeaderListTooLong(w http.ResponseWriter, r *http.Request) { + // 10.5.1 Limits on Header Block Size: + // .. "A server that receives a larger header block than it is + // willing to handle can send an HTTP 431 (Request Header Fields Too + // Large) status code" + const statusRequestHeaderFieldsTooLarge = 431 // only in Go 1.6+ + w.WriteHeader(statusRequestHeaderFieldsTooLarge) + io.WriteString(w, "

    HTTP Error 431

    Request Header Field(s) Too Large

    ") +} + +// called from handler goroutines. +// h may be nil. +func (sc *serverConn) writeHeaders(st *stream, headerData *writeResHeaders) error { + sc.serveG.checkNotOn() // NOT on + var errc chan error + if headerData.h != nil { + // If there's a header map (which we don't own), so we have to block on + // waiting for this frame to be written, so an http.Flush mid-handler + // writes out the correct value of keys, before a handler later potentially + // mutates it. + errc = errChanPool.Get().(chan error) + } + if err := sc.writeFrameFromHandler(FrameWriteRequest{ + write: headerData, + stream: st, + done: errc, + }); err != nil { + return err + } + if errc != nil { + select { + case err := <-errc: + errChanPool.Put(errc) + return err + case <-sc.doneServing: + return errClientDisconnected + case <-st.cw: + return errStreamClosed + } + } + return nil +} + +// called from handler goroutines. +func (sc *serverConn) write100ContinueHeaders(st *stream) { + sc.writeFrameFromHandler(FrameWriteRequest{ + write: write100ContinueHeadersFrame{st.id}, + stream: st, + }) +} + +// A bodyReadMsg tells the server loop that the http.Handler read n +// bytes of the DATA from the client on the given stream. +type bodyReadMsg struct { + st *stream + n int +} + +// called from handler goroutines. +// Notes that the handler for the given stream ID read n bytes of its body +// and schedules flow control tokens to be sent. +func (sc *serverConn) noteBodyReadFromHandler(st *stream, n int, err error) { + sc.serveG.checkNotOn() // NOT on + if n > 0 { + select { + case sc.bodyReadCh <- bodyReadMsg{st, n}: + case <-sc.doneServing: + } + } +} + +func (sc *serverConn) noteBodyRead(st *stream, n int) { + sc.serveG.check() + sc.sendWindowUpdate(nil, n) // conn-level + if st.state != stateHalfClosedRemote && st.state != stateClosed { + // Don't send this WINDOW_UPDATE if the stream is closed + // remotely. + sc.sendWindowUpdate(st, n) + } +} + +// st may be nil for conn-level +func (sc *serverConn) sendWindowUpdate32(st *stream, n int32) { + sc.sendWindowUpdate(st, int(n)) +} + +// st may be nil for conn-level +func (sc *serverConn) sendWindowUpdate(st *stream, n int) { + sc.serveG.check() + var streamID uint32 + var send int32 + if st == nil { + send = sc.inflow.add(n) + } else { + streamID = st.id + send = st.inflow.add(n) + } + if send == 0 { + return + } + sc.writeFrame(FrameWriteRequest{ + write: writeWindowUpdate{streamID: streamID, n: uint32(send)}, + stream: st, + }) +} + +// requestBody is the Handler's Request.Body type. +// Read and Close may be called concurrently. +type requestBody struct { + _ incomparable + stream *stream + conn *serverConn + closeOnce sync.Once // for use by Close only + sawEOF bool // for use by Read only + pipe *pipe // non-nil if we have a HTTP entity message body + needsContinue bool // need to send a 100-continue +} + +func (b *requestBody) Close() error { + b.closeOnce.Do(func() { + if b.pipe != nil { + b.pipe.BreakWithError(errClosedBody) + } + }) + return nil +} + +func (b *requestBody) Read(p []byte) (n int, err error) { + if b.needsContinue { + b.needsContinue = false + b.conn.write100ContinueHeaders(b.stream) + } + if b.pipe == nil || b.sawEOF { + return 0, io.EOF + } + n, err = b.pipe.Read(p) + if err == io.EOF { + b.sawEOF = true + } + if b.conn == nil && inTests { + return + } + b.conn.noteBodyReadFromHandler(b.stream, n, err) + return +} + +// responseWriter is the http.ResponseWriter implementation. It's +// intentionally small (1 pointer wide) to minimize garbage. The +// responseWriterState pointer inside is zeroed at the end of a +// request (in handlerDone) and calls on the responseWriter thereafter +// simply crash (caller's mistake), but the much larger responseWriterState +// and buffers are reused between multiple requests. +type responseWriter struct { + rws *responseWriterState +} + +// Optional http.ResponseWriter interfaces implemented. +var ( + _ http.CloseNotifier = (*responseWriter)(nil) + _ http.Flusher = (*responseWriter)(nil) + _ stringWriter = (*responseWriter)(nil) +) + +type responseWriterState struct { + // immutable within a request: + stream *stream + req *http.Request + conn *serverConn + + // TODO: adjust buffer writing sizes based on server config, frame size updates from peer, etc + bw *bufio.Writer // writing to a chunkWriter{this *responseWriterState} + + // mutated by http.Handler goroutine: + handlerHeader http.Header // nil until called + snapHeader http.Header // snapshot of handlerHeader at WriteHeader time + trailers []string // set in writeChunk + status int // status code passed to WriteHeader + wroteHeader bool // WriteHeader called (explicitly or implicitly). Not necessarily sent to user yet. + sentHeader bool // have we sent the header frame? + handlerDone bool // handler has finished + dirty bool // a Write failed; don't reuse this responseWriterState + + sentContentLen int64 // non-zero if handler set a Content-Length header + wroteBytes int64 + + closeNotifierMu sync.Mutex // guards closeNotifierCh + closeNotifierCh chan bool // nil until first used +} + +type chunkWriter struct{ rws *responseWriterState } + +func (cw chunkWriter) Write(p []byte) (n int, err error) { + n, err = cw.rws.writeChunk(p) + if err == errStreamClosed { + // If writing failed because the stream has been closed, + // return the reason it was closed. + err = cw.rws.stream.closeErr + } + return n, err +} + +func (rws *responseWriterState) hasTrailers() bool { return len(rws.trailers) > 0 } + +func (rws *responseWriterState) hasNonemptyTrailers() bool { + for _, trailer := range rws.trailers { + if _, ok := rws.handlerHeader[trailer]; ok { + return true + } + } + return false +} + +// declareTrailer is called for each Trailer header when the +// response header is written. It notes that a header will need to be +// written in the trailers at the end of the response. +func (rws *responseWriterState) declareTrailer(k string) { + k = http.CanonicalHeaderKey(k) + if !httpguts.ValidTrailerHeader(k) { + // Forbidden by RFC 7230, section 4.1.2. + rws.conn.logf("ignoring invalid trailer %q", k) + return + } + if !strSliceContains(rws.trailers, k) { + rws.trailers = append(rws.trailers, k) + } +} + +// writeChunk writes chunks from the bufio.Writer. But because +// bufio.Writer may bypass its chunking, sometimes p may be +// arbitrarily large. +// +// writeChunk is also responsible (on the first chunk) for sending the +// HEADER response. +func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { + if !rws.wroteHeader { + rws.writeHeader(200) + } + + if rws.handlerDone { + rws.promoteUndeclaredTrailers() + } + + isHeadResp := rws.req.Method == "HEAD" + if !rws.sentHeader { + rws.sentHeader = true + var ctype, clen string + if clen = rws.snapHeader.Get("Content-Length"); clen != "" { + rws.snapHeader.Del("Content-Length") + if cl, err := strconv.ParseUint(clen, 10, 63); err == nil { + rws.sentContentLen = int64(cl) + } else { + clen = "" + } + } + if clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) { + clen = strconv.Itoa(len(p)) + } + _, hasContentType := rws.snapHeader["Content-Type"] + // If the Content-Encoding is non-blank, we shouldn't + // sniff the body. See Issue golang.org/issue/31753. + ce := rws.snapHeader.Get("Content-Encoding") + hasCE := len(ce) > 0 + if !hasCE && !hasContentType && bodyAllowedForStatus(rws.status) && len(p) > 0 { + ctype = http.DetectContentType(p) + } + var date string + if _, ok := rws.snapHeader["Date"]; !ok { + // TODO(bradfitz): be faster here, like net/http? measure. + date = time.Now().UTC().Format(http.TimeFormat) + } + + for _, v := range rws.snapHeader["Trailer"] { + foreachHeaderElement(v, rws.declareTrailer) + } + + // "Connection" headers aren't allowed in HTTP/2 (RFC 7540, 8.1.2.2), + // but respect "Connection" == "close" to mean sending a GOAWAY and tearing + // down the TCP connection when idle, like we do for HTTP/1. + // TODO: remove more Connection-specific header fields here, in addition + // to "Connection". + if _, ok := rws.snapHeader["Connection"]; ok { + v := rws.snapHeader.Get("Connection") + delete(rws.snapHeader, "Connection") + if v == "close" { + rws.conn.startGracefulShutdown() + } + } + + endStream := (rws.handlerDone && !rws.hasTrailers() && len(p) == 0) || isHeadResp + err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{ + streamID: rws.stream.id, + httpResCode: rws.status, + h: rws.snapHeader, + endStream: endStream, + contentType: ctype, + contentLength: clen, + date: date, + }) + if err != nil { + rws.dirty = true + return 0, err + } + if endStream { + return 0, nil + } + } + if isHeadResp { + return len(p), nil + } + if len(p) == 0 && !rws.handlerDone { + return 0, nil + } + + // only send trailers if they have actually been defined by the + // server handler. + hasNonemptyTrailers := rws.hasNonemptyTrailers() + endStream := rws.handlerDone && !hasNonemptyTrailers + if len(p) > 0 || endStream { + // only send a 0 byte DATA frame if we're ending the stream. + if err := rws.conn.writeDataFromHandler(rws.stream, p, endStream); err != nil { + rws.dirty = true + return 0, err + } + } + + if rws.handlerDone && hasNonemptyTrailers { + err = rws.conn.writeHeaders(rws.stream, &writeResHeaders{ + streamID: rws.stream.id, + h: rws.handlerHeader, + trailers: rws.trailers, + endStream: true, + }) + if err != nil { + rws.dirty = true + } + return len(p), err + } + return len(p), nil +} + +// TrailerPrefix is a magic prefix for ResponseWriter.Header map keys +// that, if present, signals that the map entry is actually for +// the response trailers, and not the response headers. The prefix +// is stripped after the ServeHTTP call finishes and the values are +// sent in the trailers. +// +// This mechanism is intended only for trailers that are not known +// prior to the headers being written. If the set of trailers is fixed +// or known before the header is written, the normal Go trailers mechanism +// is preferred: +// +// https://golang.org/pkg/net/http/#ResponseWriter +// https://golang.org/pkg/net/http/#example_ResponseWriter_trailers +const TrailerPrefix = "Trailer:" + +// promoteUndeclaredTrailers permits http.Handlers to set trailers +// after the header has already been flushed. Because the Go +// ResponseWriter interface has no way to set Trailers (only the +// Header), and because we didn't want to expand the ResponseWriter +// interface, and because nobody used trailers, and because RFC 7230 +// says you SHOULD (but not must) predeclare any trailers in the +// header, the official ResponseWriter rules said trailers in Go must +// be predeclared, and then we reuse the same ResponseWriter.Header() +// map to mean both Headers and Trailers. When it's time to write the +// Trailers, we pick out the fields of Headers that were declared as +// trailers. That worked for a while, until we found the first major +// user of Trailers in the wild: gRPC (using them only over http2), +// and gRPC libraries permit setting trailers mid-stream without +// predeclaring them. So: change of plans. We still permit the old +// way, but we also permit this hack: if a Header() key begins with +// "Trailer:", the suffix of that key is a Trailer. Because ':' is an +// invalid token byte anyway, there is no ambiguity. (And it's already +// filtered out) It's mildly hacky, but not terrible. +// +// This method runs after the Handler is done and promotes any Header +// fields to be trailers. +func (rws *responseWriterState) promoteUndeclaredTrailers() { + for k, vv := range rws.handlerHeader { + if !strings.HasPrefix(k, TrailerPrefix) { + continue + } + trailerKey := strings.TrimPrefix(k, TrailerPrefix) + rws.declareTrailer(trailerKey) + rws.handlerHeader[http.CanonicalHeaderKey(trailerKey)] = vv + } + + if len(rws.trailers) > 1 { + sorter := sorterPool.Get().(*sorter) + sorter.SortStrings(rws.trailers) + sorterPool.Put(sorter) + } +} + +func (w *responseWriter) SetReadDeadline(deadline time.Time) error { + st := w.rws.stream + if !deadline.IsZero() && deadline.Before(time.Now()) { + // If we're setting a deadline in the past, reset the stream immediately + // so writes after SetWriteDeadline returns will fail. + st.onReadTimeout() + return nil + } + w.rws.conn.sendServeMsg(func(sc *serverConn) { + if st.readDeadline != nil { + if !st.readDeadline.Stop() { + // Deadline already exceeded, or stream has been closed. + return + } + } + if deadline.IsZero() { + st.readDeadline = nil + } else if st.readDeadline == nil { + st.readDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onReadTimeout) + } else { + st.readDeadline.Reset(deadline.Sub(time.Now())) + } + }) + return nil +} + +func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { + st := w.rws.stream + if !deadline.IsZero() && deadline.Before(time.Now()) { + // If we're setting a deadline in the past, reset the stream immediately + // so writes after SetWriteDeadline returns will fail. + st.onWriteTimeout() + return nil + } + w.rws.conn.sendServeMsg(func(sc *serverConn) { + if st.writeDeadline != nil { + if !st.writeDeadline.Stop() { + // Deadline already exceeded, or stream has been closed. + return + } + } + if deadline.IsZero() { + st.writeDeadline = nil + } else if st.writeDeadline == nil { + st.writeDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onWriteTimeout) + } else { + st.writeDeadline.Reset(deadline.Sub(time.Now())) + } + }) + return nil +} + +func (w *responseWriter) Flush() { + w.FlushError() +} + +func (w *responseWriter) FlushError() error { + rws := w.rws + if rws == nil { + panic("Header called after Handler finished") + } + var err error + if rws.bw.Buffered() > 0 { + err = rws.bw.Flush() + } else { + // The bufio.Writer won't call chunkWriter.Write + // (writeChunk with zero bytes, so we have to do it + // ourselves to force the HTTP response header and/or + // final DATA frame (with END_STREAM) to be sent. + _, err = chunkWriter{rws}.Write(nil) + if err == nil { + select { + case <-rws.stream.cw: + err = rws.stream.closeErr + default: + } + } + } + return err +} + +func (w *responseWriter) CloseNotify() <-chan bool { + rws := w.rws + if rws == nil { + panic("CloseNotify called after Handler finished") + } + rws.closeNotifierMu.Lock() + ch := rws.closeNotifierCh + if ch == nil { + ch = make(chan bool, 1) + rws.closeNotifierCh = ch + cw := rws.stream.cw + go func() { + cw.Wait() // wait for close + ch <- true + }() + } + rws.closeNotifierMu.Unlock() + return ch +} + +func (w *responseWriter) Header() http.Header { + rws := w.rws + if rws == nil { + panic("Header called after Handler finished") + } + if rws.handlerHeader == nil { + rws.handlerHeader = make(http.Header) + } + return rws.handlerHeader +} + +// checkWriteHeaderCode is a copy of net/http's checkWriteHeaderCode. +func checkWriteHeaderCode(code int) { + // Issue 22880: require valid WriteHeader status codes. + // For now we only enforce that it's three digits. + // In the future we might block things over 599 (600 and above aren't defined + // at http://httpwg.org/specs/rfc7231.html#status.codes). + // But for now any three digits. + // + // We used to send "HTTP/1.1 000 0" on the wire in responses but there's + // no equivalent bogus thing we can realistically send in HTTP/2, + // so we'll consistently panic instead and help people find their bugs + // early. (We can't return an error from WriteHeader even if we wanted to.) + if code < 100 || code > 999 { + panic(fmt.Sprintf("invalid WriteHeader code %v", code)) + } +} + +func (w *responseWriter) WriteHeader(code int) { + rws := w.rws + if rws == nil { + panic("WriteHeader called after Handler finished") + } + rws.writeHeader(code) +} + +func (rws *responseWriterState) writeHeader(code int) { + if rws.wroteHeader { + return + } + + checkWriteHeaderCode(code) + + // Handle informational headers + if code >= 100 && code <= 199 { + // Per RFC 8297 we must not clear the current header map + h := rws.handlerHeader + + _, cl := h["Content-Length"] + _, te := h["Transfer-Encoding"] + if cl || te { + h = h.Clone() + h.Del("Content-Length") + h.Del("Transfer-Encoding") + } + + if rws.conn.writeHeaders(rws.stream, &writeResHeaders{ + streamID: rws.stream.id, + httpResCode: code, + h: h, + endStream: rws.handlerDone && !rws.hasTrailers(), + }) != nil { + rws.dirty = true + } + + return + } + + rws.wroteHeader = true + rws.status = code + if len(rws.handlerHeader) > 0 { + rws.snapHeader = cloneHeader(rws.handlerHeader) + } +} + +func cloneHeader(h http.Header) http.Header { + h2 := make(http.Header, len(h)) + for k, vv := range h { + vv2 := make([]string, len(vv)) + copy(vv2, vv) + h2[k] = vv2 + } + return h2 +} + +// The Life Of A Write is like this: +// +// * Handler calls w.Write or w.WriteString -> +// * -> rws.bw (*bufio.Writer) -> +// * (Handler might call Flush) +// * -> chunkWriter{rws} +// * -> responseWriterState.writeChunk(p []byte) +// * -> responseWriterState.writeChunk (most of the magic; see comment there) +func (w *responseWriter) Write(p []byte) (n int, err error) { + return w.write(len(p), p, "") +} + +func (w *responseWriter) WriteString(s string) (n int, err error) { + return w.write(len(s), nil, s) +} + +// either dataB or dataS is non-zero. +func (w *responseWriter) write(lenData int, dataB []byte, dataS string) (n int, err error) { + rws := w.rws + if rws == nil { + panic("Write called after Handler finished") + } + if !rws.wroteHeader { + w.WriteHeader(200) + } + if !bodyAllowedForStatus(rws.status) { + return 0, http.ErrBodyNotAllowed + } + rws.wroteBytes += int64(len(dataB)) + int64(len(dataS)) // only one can be set + if rws.sentContentLen != 0 && rws.wroteBytes > rws.sentContentLen { + // TODO: send a RST_STREAM + return 0, errors.New("http2: handler wrote more than declared Content-Length") + } + + if dataB != nil { + return rws.bw.Write(dataB) + } else { + return rws.bw.WriteString(dataS) + } +} + +func (w *responseWriter) handlerDone() { + rws := w.rws + dirty := rws.dirty + rws.handlerDone = true + w.Flush() + w.rws = nil + if !dirty { + // Only recycle the pool if all prior Write calls to + // the serverConn goroutine completed successfully. If + // they returned earlier due to resets from the peer + // there might still be write goroutines outstanding + // from the serverConn referencing the rws memory. See + // issue 20704. + responseWriterStatePool.Put(rws) + } +} + +// Push errors. +var ( + ErrRecursivePush = errors.New("http2: recursive push not allowed") + ErrPushLimitReached = errors.New("http2: push would exceed peer's SETTINGS_MAX_CONCURRENT_STREAMS") +) + +var _ http.Pusher = (*responseWriter)(nil) + +func (w *responseWriter) Push(target string, opts *http.PushOptions) error { + st := w.rws.stream + sc := st.sc + sc.serveG.checkNotOn() + + // No recursive pushes: "PUSH_PROMISE frames MUST only be sent on a peer-initiated stream." + // http://tools.ietf.org/html/rfc7540#section-6.6 + if st.isPushed() { + return ErrRecursivePush + } + + if opts == nil { + opts = new(http.PushOptions) + } + + // Default options. + if opts.Method == "" { + opts.Method = "GET" + } + if opts.Header == nil { + opts.Header = http.Header{} + } + wantScheme := "http" + if w.rws.req.TLS != nil { + wantScheme = "https" + } + + // Validate the request. + u, err := url.Parse(target) + if err != nil { + return err + } + if u.Scheme == "" { + if !strings.HasPrefix(target, "/") { + return fmt.Errorf("target must be an absolute URL or an absolute path: %q", target) + } + u.Scheme = wantScheme + u.Host = w.rws.req.Host + } else { + if u.Scheme != wantScheme { + return fmt.Errorf("cannot push URL with scheme %q from request with scheme %q", u.Scheme, wantScheme) + } + if u.Host == "" { + return errors.New("URL must have a host") + } + } + for k := range opts.Header { + if strings.HasPrefix(k, ":") { + return fmt.Errorf("promised request headers cannot include pseudo header %q", k) + } + // These headers are meaningful only if the request has a body, + // but PUSH_PROMISE requests cannot have a body. + // http://tools.ietf.org/html/rfc7540#section-8.2 + // Also disallow Host, since the promised URL must be absolute. + if asciiEqualFold(k, "content-length") || + asciiEqualFold(k, "content-encoding") || + asciiEqualFold(k, "trailer") || + asciiEqualFold(k, "te") || + asciiEqualFold(k, "expect") || + asciiEqualFold(k, "host") { + return fmt.Errorf("promised request headers cannot include %q", k) + } + } + if err := checkValidHTTP2RequestHeaders(opts.Header); err != nil { + return err + } + + // The RFC effectively limits promised requests to GET and HEAD: + // "Promised requests MUST be cacheable [GET, HEAD, or POST], and MUST be safe [GET or HEAD]" + // http://tools.ietf.org/html/rfc7540#section-8.2 + if opts.Method != "GET" && opts.Method != "HEAD" { + return fmt.Errorf("method %q must be GET or HEAD", opts.Method) + } + + msg := &startPushRequest{ + parent: st, + method: opts.Method, + url: u, + header: cloneHeader(opts.Header), + done: errChanPool.Get().(chan error), + } + + select { + case <-sc.doneServing: + return errClientDisconnected + case <-st.cw: + return errStreamClosed + case sc.serveMsgCh <- msg: + } + + select { + case <-sc.doneServing: + return errClientDisconnected + case <-st.cw: + return errStreamClosed + case err := <-msg.done: + errChanPool.Put(msg.done) + return err + } +} + +type startPushRequest struct { + parent *stream + method string + url *url.URL + header http.Header + done chan error +} + +func (sc *serverConn) startPush(msg *startPushRequest) { + sc.serveG.check() + + // http://tools.ietf.org/html/rfc7540#section-6.6. + // PUSH_PROMISE frames MUST only be sent on a peer-initiated stream that + // is in either the "open" or "half-closed (remote)" state. + if msg.parent.state != stateOpen && msg.parent.state != stateHalfClosedRemote { + // responseWriter.Push checks that the stream is peer-initiated. + msg.done <- errStreamClosed + return + } + + // http://tools.ietf.org/html/rfc7540#section-6.6. + if !sc.pushEnabled { + msg.done <- http.ErrNotSupported + return + } + + // PUSH_PROMISE frames must be sent in increasing order by stream ID, so + // we allocate an ID for the promised stream lazily, when the PUSH_PROMISE + // is written. Once the ID is allocated, we start the request handler. + allocatePromisedID := func() (uint32, error) { + sc.serveG.check() + + // Check this again, just in case. Technically, we might have received + // an updated SETTINGS by the time we got around to writing this frame. + if !sc.pushEnabled { + return 0, http.ErrNotSupported + } + // http://tools.ietf.org/html/rfc7540#section-6.5.2. + if sc.curPushedStreams+1 > sc.clientMaxStreams { + return 0, ErrPushLimitReached + } + + // http://tools.ietf.org/html/rfc7540#section-5.1.1. + // Streams initiated by the server MUST use even-numbered identifiers. + // A server that is unable to establish a new stream identifier can send a GOAWAY + // frame so that the client is forced to open a new connection for new streams. + if sc.maxPushPromiseID+2 >= 1<<31 { + sc.startGracefulShutdownInternal() + return 0, ErrPushLimitReached + } + sc.maxPushPromiseID += 2 + promisedID := sc.maxPushPromiseID + + // http://tools.ietf.org/html/rfc7540#section-8.2. + // Strictly speaking, the new stream should start in "reserved (local)", then + // transition to "half closed (remote)" after sending the initial HEADERS, but + // we start in "half closed (remote)" for simplicity. + // See further comments at the definition of stateHalfClosedRemote. + promised := sc.newStream(promisedID, msg.parent.id, stateHalfClosedRemote) + rw, req, err := sc.newWriterAndRequestNoBody(promised, requestParam{ + method: msg.method, + scheme: msg.url.Scheme, + authority: msg.url.Host, + path: msg.url.RequestURI(), + header: cloneHeader(msg.header), // clone since handler runs concurrently with writing the PUSH_PROMISE + }) + if err != nil { + // Should not happen, since we've already validated msg.url. + panic(fmt.Sprintf("newWriterAndRequestNoBody(%+v): %v", msg.url, err)) + } + + go sc.runHandler(rw, req, sc.handler.ServeHTTP) + return promisedID, nil + } + + sc.writeFrame(FrameWriteRequest{ + write: &writePushPromise{ + streamID: msg.parent.id, + method: msg.method, + url: msg.url, + h: msg.header, + allocatePromisedID: allocatePromisedID, + }, + stream: msg.parent, + done: msg.done, + }) +} + +// foreachHeaderElement splits v according to the "#rule" construction +// in RFC 7230 section 7 and calls fn for each non-empty element. +func foreachHeaderElement(v string, fn func(string)) { + v = textproto.TrimString(v) + if v == "" { + return + } + if !strings.Contains(v, ",") { + fn(v) + return + } + for _, f := range strings.Split(v, ",") { + if f = textproto.TrimString(f); f != "" { + fn(f) + } + } +} + +// From http://httpwg.org/specs/rfc7540.html#rfc.section.8.1.2.2 +var connHeaders = []string{ + "Connection", + "Keep-Alive", + "Proxy-Connection", + "Transfer-Encoding", + "Upgrade", +} + +// checkValidHTTP2RequestHeaders checks whether h is a valid HTTP/2 request, +// per RFC 7540 Section 8.1.2.2. +// The returned error is reported to users. +func checkValidHTTP2RequestHeaders(h http.Header) error { + for _, k := range connHeaders { + if _, ok := h[k]; ok { + return fmt.Errorf("request header %q is not valid in HTTP/2", k) + } + } + te := h["Te"] + if len(te) > 0 && (len(te) > 1 || (te[0] != "trailers" && te[0] != "")) { + return errors.New(`request header "TE" may only be "trailers" in HTTP/2`) + } + return nil +} + +func new400Handler(err error) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + http.Error(w, err.Error(), http.StatusBadRequest) + } +} + +// h1ServerKeepAlivesDisabled reports whether hs has its keep-alives +// disabled. See comments on h1ServerShutdownChan above for why +// the code is written this way. +func h1ServerKeepAlivesDisabled(hs *http.Server) bool { + var x interface{} = hs + type I interface { + doKeepAlives() bool + } + if hs, ok := x.(I); ok { + return !hs.doKeepAlives() + } + return false +} + +func (sc *serverConn) countError(name string, err error) error { + if sc == nil || sc.srv == nil { + return err + } + f := sc.srv.CountError + if f == nil { + return err + } + var typ string + var code ErrCode + switch e := err.(type) { + case ConnectionError: + typ = "conn" + code = ErrCode(e) + case StreamError: + typ = "stream" + code = ErrCode(e.Code) + default: + return err + } + codeStr := errCodeName[code] + if codeStr == "" { + codeStr = strconv.Itoa(int(code)) + } + f(fmt.Sprintf("%s_%s_%s", typ, codeStr, name)) + return err +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/transport.go b/ecs-agent/vendor/golang.org/x/net/http2/transport.go new file mode 100644 index 0000000000..05ba23d3d9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/transport.go @@ -0,0 +1,3152 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Transport code. + +package http2 + +import ( + "bufio" + "bytes" + "compress/gzip" + "context" + "crypto/rand" + "crypto/tls" + "errors" + "fmt" + "io" + "io/fs" + "log" + "math" + mathrand "math/rand" + "net" + "net/http" + "net/http/httptrace" + "net/textproto" + "os" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" + "golang.org/x/net/idna" +) + +const ( + // transportDefaultConnFlow is how many connection-level flow control + // tokens we give the server at start-up, past the default 64k. + transportDefaultConnFlow = 1 << 30 + + // transportDefaultStreamFlow is how many stream-level flow + // control tokens we announce to the peer, and how many bytes + // we buffer per stream. + transportDefaultStreamFlow = 4 << 20 + + defaultUserAgent = "Go-http-client/2.0" + + // initialMaxConcurrentStreams is a connections maxConcurrentStreams until + // it's received servers initial SETTINGS frame, which corresponds with the + // spec's minimum recommended value. + initialMaxConcurrentStreams = 100 + + // defaultMaxConcurrentStreams is a connections default maxConcurrentStreams + // if the server doesn't include one in its initial SETTINGS frame. + defaultMaxConcurrentStreams = 1000 +) + +// Transport is an HTTP/2 Transport. +// +// A Transport internally caches connections to servers. It is safe +// for concurrent use by multiple goroutines. +type Transport struct { + // DialTLSContext specifies an optional dial function with context for + // creating TLS connections for requests. + // + // If DialTLSContext and DialTLS is nil, tls.Dial is used. + // + // If the returned net.Conn has a ConnectionState method like tls.Conn, + // it will be used to set http.Response.TLS. + DialTLSContext func(ctx context.Context, network, addr string, cfg *tls.Config) (net.Conn, error) + + // DialTLS specifies an optional dial function for creating + // TLS connections for requests. + // + // If DialTLSContext and DialTLS is nil, tls.Dial is used. + // + // Deprecated: Use DialTLSContext instead, which allows the transport + // to cancel dials as soon as they are no longer needed. + // If both are set, DialTLSContext takes priority. + DialTLS func(network, addr string, cfg *tls.Config) (net.Conn, error) + + // TLSClientConfig specifies the TLS configuration to use with + // tls.Client. If nil, the default configuration is used. + TLSClientConfig *tls.Config + + // ConnPool optionally specifies an alternate connection pool to use. + // If nil, the default is used. + ConnPool ClientConnPool + + // DisableCompression, if true, prevents the Transport from + // requesting compression with an "Accept-Encoding: gzip" + // request header when the Request contains no existing + // Accept-Encoding value. If the Transport requests gzip on + // its own and gets a gzipped response, it's transparently + // decoded in the Response.Body. However, if the user + // explicitly requested gzip it is not automatically + // uncompressed. + DisableCompression bool + + // AllowHTTP, if true, permits HTTP/2 requests using the insecure, + // plain-text "http" scheme. Note that this does not enable h2c support. + AllowHTTP bool + + // MaxHeaderListSize is the http2 SETTINGS_MAX_HEADER_LIST_SIZE to + // send in the initial settings frame. It is how many bytes + // of response headers are allowed. Unlike the http2 spec, zero here + // means to use a default limit (currently 10MB). If you actually + // want to advertise an unlimited value to the peer, Transport + // interprets the highest possible value here (0xffffffff or 1<<32-1) + // to mean no limit. + MaxHeaderListSize uint32 + + // MaxReadFrameSize is the http2 SETTINGS_MAX_FRAME_SIZE to send in the + // initial settings frame. It is the size in bytes of the largest frame + // payload that the sender is willing to receive. If 0, no setting is + // sent, and the value is provided by the peer, which should be 16384 + // according to the spec: + // https://datatracker.ietf.org/doc/html/rfc7540#section-6.5.2. + // Values are bounded in the range 16k to 16M. + MaxReadFrameSize uint32 + + // MaxDecoderHeaderTableSize optionally specifies the http2 + // SETTINGS_HEADER_TABLE_SIZE to send in the initial settings frame. It + // informs the remote endpoint of the maximum size of the header compression + // table used to decode header blocks, in octets. If zero, the default value + // of 4096 is used. + MaxDecoderHeaderTableSize uint32 + + // MaxEncoderHeaderTableSize optionally specifies an upper limit for the + // header compression table used for encoding request headers. Received + // SETTINGS_HEADER_TABLE_SIZE settings are capped at this limit. If zero, + // the default value of 4096 is used. + MaxEncoderHeaderTableSize uint32 + + // StrictMaxConcurrentStreams controls whether the server's + // SETTINGS_MAX_CONCURRENT_STREAMS should be respected + // globally. If false, new TCP connections are created to the + // server as needed to keep each under the per-connection + // SETTINGS_MAX_CONCURRENT_STREAMS limit. If true, the + // server's SETTINGS_MAX_CONCURRENT_STREAMS is interpreted as + // a global limit and callers of RoundTrip block when needed, + // waiting for their turn. + StrictMaxConcurrentStreams bool + + // ReadIdleTimeout is the timeout after which a health check using ping + // frame will be carried out if no frame is received on the connection. + // Note that a ping response will is considered a received frame, so if + // there is no other traffic on the connection, the health check will + // be performed every ReadIdleTimeout interval. + // If zero, no health check is performed. + ReadIdleTimeout time.Duration + + // PingTimeout is the timeout after which the connection will be closed + // if a response to Ping is not received. + // Defaults to 15s. + PingTimeout time.Duration + + // WriteByteTimeout is the timeout after which the connection will be + // closed no data can be written to it. The timeout begins when data is + // available to write, and is extended whenever any bytes are written. + WriteByteTimeout time.Duration + + // CountError, if non-nil, is called on HTTP/2 transport errors. + // It's intended to increment a metric for monitoring, such + // as an expvar or Prometheus metric. + // The errType consists of only ASCII word characters. + CountError func(errType string) + + // t1, if non-nil, is the standard library Transport using + // this transport. Its settings are used (but not its + // RoundTrip method, etc). + t1 *http.Transport + + connPoolOnce sync.Once + connPoolOrDef ClientConnPool // non-nil version of ConnPool +} + +func (t *Transport) maxHeaderListSize() uint32 { + if t.MaxHeaderListSize == 0 { + return 10 << 20 + } + if t.MaxHeaderListSize == 0xffffffff { + return 0 + } + return t.MaxHeaderListSize +} + +func (t *Transport) maxFrameReadSize() uint32 { + if t.MaxReadFrameSize == 0 { + return 0 // use the default provided by the peer + } + if t.MaxReadFrameSize < minMaxFrameSize { + return minMaxFrameSize + } + if t.MaxReadFrameSize > maxFrameSize { + return maxFrameSize + } + return t.MaxReadFrameSize +} + +func (t *Transport) disableCompression() bool { + return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression) +} + +func (t *Transport) pingTimeout() time.Duration { + if t.PingTimeout == 0 { + return 15 * time.Second + } + return t.PingTimeout + +} + +// ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2. +// It returns an error if t1 has already been HTTP/2-enabled. +// +// Use ConfigureTransports instead to configure the HTTP/2 Transport. +func ConfigureTransport(t1 *http.Transport) error { + _, err := ConfigureTransports(t1) + return err +} + +// ConfigureTransports configures a net/http HTTP/1 Transport to use HTTP/2. +// It returns a new HTTP/2 Transport for further configuration. +// It returns an error if t1 has already been HTTP/2-enabled. +func ConfigureTransports(t1 *http.Transport) (*Transport, error) { + return configureTransports(t1) +} + +func configureTransports(t1 *http.Transport) (*Transport, error) { + connPool := new(clientConnPool) + t2 := &Transport{ + ConnPool: noDialClientConnPool{connPool}, + t1: t1, + } + connPool.t = t2 + if err := registerHTTPSProtocol(t1, noDialH2RoundTripper{t2}); err != nil { + return nil, err + } + if t1.TLSClientConfig == nil { + t1.TLSClientConfig = new(tls.Config) + } + if !strSliceContains(t1.TLSClientConfig.NextProtos, "h2") { + t1.TLSClientConfig.NextProtos = append([]string{"h2"}, t1.TLSClientConfig.NextProtos...) + } + if !strSliceContains(t1.TLSClientConfig.NextProtos, "http/1.1") { + t1.TLSClientConfig.NextProtos = append(t1.TLSClientConfig.NextProtos, "http/1.1") + } + upgradeFn := func(authority string, c *tls.Conn) http.RoundTripper { + addr := authorityAddr("https", authority) + if used, err := connPool.addConnIfNeeded(addr, t2, c); err != nil { + go c.Close() + return erringRoundTripper{err} + } else if !used { + // Turns out we don't need this c. + // For example, two goroutines made requests to the same host + // at the same time, both kicking off TCP dials. (since protocol + // was unknown) + go c.Close() + } + return t2 + } + if m := t1.TLSNextProto; len(m) == 0 { + t1.TLSNextProto = map[string]func(string, *tls.Conn) http.RoundTripper{ + "h2": upgradeFn, + } + } else { + m["h2"] = upgradeFn + } + return t2, nil +} + +func (t *Transport) connPool() ClientConnPool { + t.connPoolOnce.Do(t.initConnPool) + return t.connPoolOrDef +} + +func (t *Transport) initConnPool() { + if t.ConnPool != nil { + t.connPoolOrDef = t.ConnPool + } else { + t.connPoolOrDef = &clientConnPool{t: t} + } +} + +// ClientConn is the state of a single HTTP/2 client connection to an +// HTTP/2 server. +type ClientConn struct { + t *Transport + tconn net.Conn // usually *tls.Conn, except specialized impls + tconnClosed bool + tlsState *tls.ConnectionState // nil only for specialized impls + reused uint32 // whether conn is being reused; atomic + singleUse bool // whether being used for a single http.Request + getConnCalled bool // used by clientConnPool + + // readLoop goroutine fields: + readerDone chan struct{} // closed on error + readerErr error // set before readerDone is closed + + idleTimeout time.Duration // or 0 for never + idleTimer *time.Timer + + mu sync.Mutex // guards following + cond *sync.Cond // hold mu; broadcast on flow/closed changes + flow outflow // our conn-level flow control quota (cs.outflow is per stream) + inflow inflow // peer's conn-level flow control + doNotReuse bool // whether conn is marked to not be reused for any future requests + closing bool + closed bool + seenSettings bool // true if we've seen a settings frame, false otherwise + wantSettingsAck bool // we sent a SETTINGS frame and haven't heard back + goAway *GoAwayFrame // if non-nil, the GoAwayFrame we received + goAwayDebug string // goAway frame's debug data, retained as a string + streams map[uint32]*clientStream // client-initiated + streamsReserved int // incr by ReserveNewRequest; decr on RoundTrip + nextStreamID uint32 + pendingRequests int // requests blocked and waiting to be sent because len(streams) == maxConcurrentStreams + pings map[[8]byte]chan struct{} // in flight ping data to notification channel + br *bufio.Reader + lastActive time.Time + lastIdle time.Time // time last idle + // Settings from peer: (also guarded by wmu) + maxFrameSize uint32 + maxConcurrentStreams uint32 + peerMaxHeaderListSize uint64 + peerMaxHeaderTableSize uint32 + initialWindowSize uint32 + + // reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests. + // Write to reqHeaderMu to lock it, read from it to unlock. + // Lock reqmu BEFORE mu or wmu. + reqHeaderMu chan struct{} + + // wmu is held while writing. + // Acquire BEFORE mu when holding both, to avoid blocking mu on network writes. + // Only acquire both at the same time when changing peer settings. + wmu sync.Mutex + bw *bufio.Writer + fr *Framer + werr error // first write error that has occurred + hbuf bytes.Buffer // HPACK encoder writes into this + henc *hpack.Encoder +} + +// clientStream is the state for a single HTTP/2 stream. One of these +// is created for each Transport.RoundTrip call. +type clientStream struct { + cc *ClientConn + + // Fields of Request that we may access even after the response body is closed. + ctx context.Context + reqCancel <-chan struct{} + + trace *httptrace.ClientTrace // or nil + ID uint32 + bufPipe pipe // buffered pipe with the flow-controlled response payload + requestedGzip bool + isHead bool + + abortOnce sync.Once + abort chan struct{} // closed to signal stream should end immediately + abortErr error // set if abort is closed + + peerClosed chan struct{} // closed when the peer sends an END_STREAM flag + donec chan struct{} // closed after the stream is in the closed state + on100 chan struct{} // buffered; written to if a 100 is received + + respHeaderRecv chan struct{} // closed when headers are received + res *http.Response // set if respHeaderRecv is closed + + flow outflow // guarded by cc.mu + inflow inflow // guarded by cc.mu + bytesRemain int64 // -1 means unknown; owned by transportResponseBody.Read + readErr error // sticky read error; owned by transportResponseBody.Read + + reqBody io.ReadCloser + reqBodyContentLength int64 // -1 means unknown + reqBodyClosed chan struct{} // guarded by cc.mu; non-nil on Close, closed when done + + // owned by writeRequest: + sentEndStream bool // sent an END_STREAM flag to the peer + sentHeaders bool + + // owned by clientConnReadLoop: + firstByte bool // got the first response byte + pastHeaders bool // got first MetaHeadersFrame (actual headers) + pastTrailers bool // got optional second MetaHeadersFrame (trailers) + num1xx uint8 // number of 1xx responses seen + readClosed bool // peer sent an END_STREAM flag + readAborted bool // read loop reset the stream + + trailer http.Header // accumulated trailers + resTrailer *http.Header // client's Response.Trailer +} + +var got1xxFuncForTests func(int, textproto.MIMEHeader) error + +// get1xxTraceFunc returns the value of request's httptrace.ClientTrace.Got1xxResponse func, +// if any. It returns nil if not set or if the Go version is too old. +func (cs *clientStream) get1xxTraceFunc() func(int, textproto.MIMEHeader) error { + if fn := got1xxFuncForTests; fn != nil { + return fn + } + return traceGot1xxResponseFunc(cs.trace) +} + +func (cs *clientStream) abortStream(err error) { + cs.cc.mu.Lock() + defer cs.cc.mu.Unlock() + cs.abortStreamLocked(err) +} + +func (cs *clientStream) abortStreamLocked(err error) { + cs.abortOnce.Do(func() { + cs.abortErr = err + close(cs.abort) + }) + if cs.reqBody != nil { + cs.closeReqBodyLocked() + } + // TODO(dneil): Clean up tests where cs.cc.cond is nil. + if cs.cc.cond != nil { + // Wake up writeRequestBody if it is waiting on flow control. + cs.cc.cond.Broadcast() + } +} + +func (cs *clientStream) abortRequestBodyWrite() { + cc := cs.cc + cc.mu.Lock() + defer cc.mu.Unlock() + if cs.reqBody != nil && cs.reqBodyClosed == nil { + cs.closeReqBodyLocked() + cc.cond.Broadcast() + } +} + +func (cs *clientStream) closeReqBodyLocked() { + if cs.reqBodyClosed != nil { + return + } + cs.reqBodyClosed = make(chan struct{}) + reqBodyClosed := cs.reqBodyClosed + go func() { + cs.reqBody.Close() + close(reqBodyClosed) + }() +} + +type stickyErrWriter struct { + conn net.Conn + timeout time.Duration + err *error +} + +func (sew stickyErrWriter) Write(p []byte) (n int, err error) { + if *sew.err != nil { + return 0, *sew.err + } + for { + if sew.timeout != 0 { + sew.conn.SetWriteDeadline(time.Now().Add(sew.timeout)) + } + nn, err := sew.conn.Write(p[n:]) + n += nn + if n < len(p) && nn > 0 && errors.Is(err, os.ErrDeadlineExceeded) { + // Keep extending the deadline so long as we're making progress. + continue + } + if sew.timeout != 0 { + sew.conn.SetWriteDeadline(time.Time{}) + } + *sew.err = err + return n, err + } +} + +// noCachedConnError is the concrete type of ErrNoCachedConn, which +// needs to be detected by net/http regardless of whether it's its +// bundled version (in h2_bundle.go with a rewritten type name) or +// from a user's x/net/http2. As such, as it has a unique method name +// (IsHTTP2NoCachedConnError) that net/http sniffs for via func +// isNoCachedConnError. +type noCachedConnError struct{} + +func (noCachedConnError) IsHTTP2NoCachedConnError() {} +func (noCachedConnError) Error() string { return "http2: no cached connection was available" } + +// isNoCachedConnError reports whether err is of type noCachedConnError +// or its equivalent renamed type in net/http2's h2_bundle.go. Both types +// may coexist in the same running program. +func isNoCachedConnError(err error) bool { + _, ok := err.(interface{ IsHTTP2NoCachedConnError() }) + return ok +} + +var ErrNoCachedConn error = noCachedConnError{} + +// RoundTripOpt are options for the Transport.RoundTripOpt method. +type RoundTripOpt struct { + // OnlyCachedConn controls whether RoundTripOpt may + // create a new TCP connection. If set true and + // no cached connection is available, RoundTripOpt + // will return ErrNoCachedConn. + OnlyCachedConn bool +} + +func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { + return t.RoundTripOpt(req, RoundTripOpt{}) +} + +// authorityAddr returns a given authority (a host/IP, or host:port / ip:port) +// and returns a host:port. The port 443 is added if needed. +func authorityAddr(scheme string, authority string) (addr string) { + host, port, err := net.SplitHostPort(authority) + if err != nil { // authority didn't have a port + port = "443" + if scheme == "http" { + port = "80" + } + host = authority + } + if a, err := idna.ToASCII(host); err == nil { + host = a + } + // IPv6 address literal, without a port: + if strings.HasPrefix(host, "[") && strings.HasSuffix(host, "]") { + return host + ":" + port + } + return net.JoinHostPort(host, port) +} + +var retryBackoffHook func(time.Duration) *time.Timer + +func backoffNewTimer(d time.Duration) *time.Timer { + if retryBackoffHook != nil { + return retryBackoffHook(d) + } + return time.NewTimer(d) +} + +// RoundTripOpt is like RoundTrip, but takes options. +func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { + if !(req.URL.Scheme == "https" || (req.URL.Scheme == "http" && t.AllowHTTP)) { + return nil, errors.New("http2: unsupported scheme") + } + + addr := authorityAddr(req.URL.Scheme, req.URL.Host) + for retry := 0; ; retry++ { + cc, err := t.connPool().GetClientConn(req, addr) + if err != nil { + t.vlogf("http2: Transport failed to get client conn for %s: %v", addr, err) + return nil, err + } + reused := !atomic.CompareAndSwapUint32(&cc.reused, 0, 1) + traceGotConn(req, cc, reused) + res, err := cc.RoundTrip(req) + if err != nil && retry <= 6 { + if req, err = shouldRetryRequest(req, err); err == nil { + // After the first retry, do exponential backoff with 10% jitter. + if retry == 0 { + t.vlogf("RoundTrip retrying after failure: %v", err) + continue + } + backoff := float64(uint(1) << (uint(retry) - 1)) + backoff += backoff * (0.1 * mathrand.Float64()) + d := time.Second * time.Duration(backoff) + timer := backoffNewTimer(d) + select { + case <-timer.C: + t.vlogf("RoundTrip retrying after failure: %v", err) + continue + case <-req.Context().Done(): + timer.Stop() + err = req.Context().Err() + } + } + } + if err != nil { + t.vlogf("RoundTrip failure: %v", err) + return nil, err + } + return res, nil + } +} + +// CloseIdleConnections closes any connections which were previously +// connected from previous requests but are now sitting idle. +// It does not interrupt any connections currently in use. +func (t *Transport) CloseIdleConnections() { + if cp, ok := t.connPool().(clientConnPoolIdleCloser); ok { + cp.closeIdleConnections() + } +} + +var ( + errClientConnClosed = errors.New("http2: client conn is closed") + errClientConnUnusable = errors.New("http2: client conn not usable") + errClientConnGotGoAway = errors.New("http2: Transport received Server's graceful shutdown GOAWAY") +) + +// shouldRetryRequest is called by RoundTrip when a request fails to get +// response headers. It is always called with a non-nil error. +// It returns either a request to retry (either the same request, or a +// modified clone), or an error if the request can't be replayed. +func shouldRetryRequest(req *http.Request, err error) (*http.Request, error) { + if !canRetryError(err) { + return nil, err + } + // If the Body is nil (or http.NoBody), it's safe to reuse + // this request and its Body. + if req.Body == nil || req.Body == http.NoBody { + return req, nil + } + + // If the request body can be reset back to its original + // state via the optional req.GetBody, do that. + if req.GetBody != nil { + body, err := req.GetBody() + if err != nil { + return nil, err + } + newReq := *req + newReq.Body = body + return &newReq, nil + } + + // The Request.Body can't reset back to the beginning, but we + // don't seem to have started to read from it yet, so reuse + // the request directly. + if err == errClientConnUnusable { + return req, nil + } + + return nil, fmt.Errorf("http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error", err) +} + +func canRetryError(err error) bool { + if err == errClientConnUnusable || err == errClientConnGotGoAway { + return true + } + if se, ok := err.(StreamError); ok { + if se.Code == ErrCodeProtocol && se.Cause == errFromPeer { + // See golang/go#47635, golang/go#42777 + return true + } + return se.Code == ErrCodeRefusedStream + } + return false +} + +func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { + host, _, err := net.SplitHostPort(addr) + if err != nil { + return nil, err + } + tconn, err := t.dialTLS(ctx, "tcp", addr, t.newTLSConfig(host)) + if err != nil { + return nil, err + } + return t.newClientConn(tconn, singleUse) +} + +func (t *Transport) newTLSConfig(host string) *tls.Config { + cfg := new(tls.Config) + if t.TLSClientConfig != nil { + *cfg = *t.TLSClientConfig.Clone() + } + if !strSliceContains(cfg.NextProtos, NextProtoTLS) { + cfg.NextProtos = append([]string{NextProtoTLS}, cfg.NextProtos...) + } + if cfg.ServerName == "" { + cfg.ServerName = host + } + return cfg +} + +func (t *Transport) dialTLS(ctx context.Context, network, addr string, tlsCfg *tls.Config) (net.Conn, error) { + if t.DialTLSContext != nil { + return t.DialTLSContext(ctx, network, addr, tlsCfg) + } else if t.DialTLS != nil { + return t.DialTLS(network, addr, tlsCfg) + } + + tlsCn, err := t.dialTLSWithContext(ctx, network, addr, tlsCfg) + if err != nil { + return nil, err + } + state := tlsCn.ConnectionState() + if p := state.NegotiatedProtocol; p != NextProtoTLS { + return nil, fmt.Errorf("http2: unexpected ALPN protocol %q; want %q", p, NextProtoTLS) + } + if !state.NegotiatedProtocolIsMutual { + return nil, errors.New("http2: could not negotiate protocol mutually") + } + return tlsCn, nil +} + +// disableKeepAlives reports whether connections should be closed as +// soon as possible after handling the first request. +func (t *Transport) disableKeepAlives() bool { + return t.t1 != nil && t.t1.DisableKeepAlives +} + +func (t *Transport) expectContinueTimeout() time.Duration { + if t.t1 == nil { + return 0 + } + return t.t1.ExpectContinueTimeout +} + +func (t *Transport) maxDecoderHeaderTableSize() uint32 { + if v := t.MaxDecoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + +func (t *Transport) maxEncoderHeaderTableSize() uint32 { + if v := t.MaxEncoderHeaderTableSize; v > 0 { + return v + } + return initialHeaderTableSize +} + +func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { + return t.newClientConn(c, t.disableKeepAlives()) +} + +func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { + cc := &ClientConn{ + t: t, + tconn: c, + readerDone: make(chan struct{}), + nextStreamID: 1, + maxFrameSize: 16 << 10, // spec default + initialWindowSize: 65535, // spec default + maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. + peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. + streams: make(map[uint32]*clientStream), + singleUse: singleUse, + wantSettingsAck: true, + pings: make(map[[8]byte]chan struct{}), + reqHeaderMu: make(chan struct{}, 1), + } + if d := t.idleConnTimeout(); d != 0 { + cc.idleTimeout = d + cc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout) + } + if VerboseLogs { + t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) + } + + cc.cond = sync.NewCond(&cc.mu) + cc.flow.add(int32(initialWindowSize)) + + // TODO: adjust this writer size to account for frame size + + // MTU + crypto/tls record padding. + cc.bw = bufio.NewWriter(stickyErrWriter{ + conn: c, + timeout: t.WriteByteTimeout, + err: &cc.werr, + }) + cc.br = bufio.NewReader(c) + cc.fr = NewFramer(cc.bw, cc.br) + if t.maxFrameReadSize() != 0 { + cc.fr.SetMaxReadFrameSize(t.maxFrameReadSize()) + } + if t.CountError != nil { + cc.fr.countError = t.CountError + } + maxHeaderTableSize := t.maxDecoderHeaderTableSize() + cc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil) + cc.fr.MaxHeaderListSize = t.maxHeaderListSize() + + cc.henc = hpack.NewEncoder(&cc.hbuf) + cc.henc.SetMaxDynamicTableSizeLimit(t.maxEncoderHeaderTableSize()) + cc.peerMaxHeaderTableSize = initialHeaderTableSize + + if t.AllowHTTP { + cc.nextStreamID = 3 + } + + if cs, ok := c.(connectionStater); ok { + state := cs.ConnectionState() + cc.tlsState = &state + } + + initialSettings := []Setting{ + {ID: SettingEnablePush, Val: 0}, + {ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow}, + } + if max := t.maxFrameReadSize(); max != 0 { + initialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: max}) + } + if max := t.maxHeaderListSize(); max != 0 { + initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max}) + } + if maxHeaderTableSize != initialHeaderTableSize { + initialSettings = append(initialSettings, Setting{ID: SettingHeaderTableSize, Val: maxHeaderTableSize}) + } + + cc.bw.Write(clientPreface) + cc.fr.WriteSettings(initialSettings...) + cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow) + cc.inflow.init(transportDefaultConnFlow + initialWindowSize) + cc.bw.Flush() + if cc.werr != nil { + cc.Close() + return nil, cc.werr + } + + go cc.readLoop() + return cc, nil +} + +func (cc *ClientConn) healthCheck() { + pingTimeout := cc.t.pingTimeout() + // We don't need to periodically ping in the health check, because the readLoop of ClientConn will + // trigger the healthCheck again if there is no frame received. + ctx, cancel := context.WithTimeout(context.Background(), pingTimeout) + defer cancel() + cc.vlogf("http2: Transport sending health check") + err := cc.Ping(ctx) + if err != nil { + cc.vlogf("http2: Transport health check failure: %v", err) + cc.closeForLostPing() + } else { + cc.vlogf("http2: Transport health check success") + } +} + +// SetDoNotReuse marks cc as not reusable for future HTTP requests. +func (cc *ClientConn) SetDoNotReuse() { + cc.mu.Lock() + defer cc.mu.Unlock() + cc.doNotReuse = true +} + +func (cc *ClientConn) setGoAway(f *GoAwayFrame) { + cc.mu.Lock() + defer cc.mu.Unlock() + + old := cc.goAway + cc.goAway = f + + // Merge the previous and current GoAway error frames. + if cc.goAwayDebug == "" { + cc.goAwayDebug = string(f.DebugData()) + } + if old != nil && old.ErrCode != ErrCodeNo { + cc.goAway.ErrCode = old.ErrCode + } + last := f.LastStreamID + for streamID, cs := range cc.streams { + if streamID > last { + cs.abortStreamLocked(errClientConnGotGoAway) + } + } +} + +// CanTakeNewRequest reports whether the connection can take a new request, +// meaning it has not been closed or received or sent a GOAWAY. +// +// If the caller is going to immediately make a new request on this +// connection, use ReserveNewRequest instead. +func (cc *ClientConn) CanTakeNewRequest() bool { + cc.mu.Lock() + defer cc.mu.Unlock() + return cc.canTakeNewRequestLocked() +} + +// ReserveNewRequest is like CanTakeNewRequest but also reserves a +// concurrent stream in cc. The reservation is decremented on the +// next call to RoundTrip. +func (cc *ClientConn) ReserveNewRequest() bool { + cc.mu.Lock() + defer cc.mu.Unlock() + if st := cc.idleStateLocked(); !st.canTakeNewRequest { + return false + } + cc.streamsReserved++ + return true +} + +// ClientConnState describes the state of a ClientConn. +type ClientConnState struct { + // Closed is whether the connection is closed. + Closed bool + + // Closing is whether the connection is in the process of + // closing. It may be closing due to shutdown, being a + // single-use connection, being marked as DoNotReuse, or + // having received a GOAWAY frame. + Closing bool + + // StreamsActive is how many streams are active. + StreamsActive int + + // StreamsReserved is how many streams have been reserved via + // ClientConn.ReserveNewRequest. + StreamsReserved int + + // StreamsPending is how many requests have been sent in excess + // of the peer's advertised MaxConcurrentStreams setting and + // are waiting for other streams to complete. + StreamsPending int + + // MaxConcurrentStreams is how many concurrent streams the + // peer advertised as acceptable. Zero means no SETTINGS + // frame has been received yet. + MaxConcurrentStreams uint32 + + // LastIdle, if non-zero, is when the connection last + // transitioned to idle state. + LastIdle time.Time +} + +// State returns a snapshot of cc's state. +func (cc *ClientConn) State() ClientConnState { + cc.wmu.Lock() + maxConcurrent := cc.maxConcurrentStreams + if !cc.seenSettings { + maxConcurrent = 0 + } + cc.wmu.Unlock() + + cc.mu.Lock() + defer cc.mu.Unlock() + return ClientConnState{ + Closed: cc.closed, + Closing: cc.closing || cc.singleUse || cc.doNotReuse || cc.goAway != nil, + StreamsActive: len(cc.streams), + StreamsReserved: cc.streamsReserved, + StreamsPending: cc.pendingRequests, + LastIdle: cc.lastIdle, + MaxConcurrentStreams: maxConcurrent, + } +} + +// clientConnIdleState describes the suitability of a client +// connection to initiate a new RoundTrip request. +type clientConnIdleState struct { + canTakeNewRequest bool +} + +func (cc *ClientConn) idleState() clientConnIdleState { + cc.mu.Lock() + defer cc.mu.Unlock() + return cc.idleStateLocked() +} + +func (cc *ClientConn) idleStateLocked() (st clientConnIdleState) { + if cc.singleUse && cc.nextStreamID > 1 { + return + } + var maxConcurrentOkay bool + if cc.t.StrictMaxConcurrentStreams { + // We'll tell the caller we can take a new request to + // prevent the caller from dialing a new TCP + // connection, but then we'll block later before + // writing it. + maxConcurrentOkay = true + } else { + maxConcurrentOkay = int64(len(cc.streams)+cc.streamsReserved+1) <= int64(cc.maxConcurrentStreams) + } + + st.canTakeNewRequest = cc.goAway == nil && !cc.closed && !cc.closing && maxConcurrentOkay && + !cc.doNotReuse && + int64(cc.nextStreamID)+2*int64(cc.pendingRequests) < math.MaxInt32 && + !cc.tooIdleLocked() + return +} + +func (cc *ClientConn) canTakeNewRequestLocked() bool { + st := cc.idleStateLocked() + return st.canTakeNewRequest +} + +// tooIdleLocked reports whether this connection has been been sitting idle +// for too much wall time. +func (cc *ClientConn) tooIdleLocked() bool { + // The Round(0) strips the monontonic clock reading so the + // times are compared based on their wall time. We don't want + // to reuse a connection that's been sitting idle during + // VM/laptop suspend if monotonic time was also frozen. + return cc.idleTimeout != 0 && !cc.lastIdle.IsZero() && time.Since(cc.lastIdle.Round(0)) > cc.idleTimeout +} + +// onIdleTimeout is called from a time.AfterFunc goroutine. It will +// only be called when we're idle, but because we're coming from a new +// goroutine, there could be a new request coming in at the same time, +// so this simply calls the synchronized closeIfIdle to shut down this +// connection. The timer could just call closeIfIdle, but this is more +// clear. +func (cc *ClientConn) onIdleTimeout() { + cc.closeIfIdle() +} + +func (cc *ClientConn) closeConn() { + t := time.AfterFunc(250*time.Millisecond, cc.forceCloseConn) + defer t.Stop() + cc.tconn.Close() +} + +// A tls.Conn.Close can hang for a long time if the peer is unresponsive. +// Try to shut it down more aggressively. +func (cc *ClientConn) forceCloseConn() { + tc, ok := cc.tconn.(*tls.Conn) + if !ok { + return + } + if nc := tlsUnderlyingConn(tc); nc != nil { + nc.Close() + } +} + +func (cc *ClientConn) closeIfIdle() { + cc.mu.Lock() + if len(cc.streams) > 0 || cc.streamsReserved > 0 { + cc.mu.Unlock() + return + } + cc.closed = true + nextID := cc.nextStreamID + // TODO: do clients send GOAWAY too? maybe? Just Close: + cc.mu.Unlock() + + if VerboseLogs { + cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, nextID-2) + } + cc.closeConn() +} + +func (cc *ClientConn) isDoNotReuseAndIdle() bool { + cc.mu.Lock() + defer cc.mu.Unlock() + return cc.doNotReuse && len(cc.streams) == 0 +} + +var shutdownEnterWaitStateHook = func() {} + +// Shutdown gracefully closes the client connection, waiting for running streams to complete. +func (cc *ClientConn) Shutdown(ctx context.Context) error { + if err := cc.sendGoAway(); err != nil { + return err + } + // Wait for all in-flight streams to complete or connection to close + done := make(chan struct{}) + cancelled := false // guarded by cc.mu + go func() { + cc.mu.Lock() + defer cc.mu.Unlock() + for { + if len(cc.streams) == 0 || cc.closed { + cc.closed = true + close(done) + break + } + if cancelled { + break + } + cc.cond.Wait() + } + }() + shutdownEnterWaitStateHook() + select { + case <-done: + cc.closeConn() + return nil + case <-ctx.Done(): + cc.mu.Lock() + // Free the goroutine above + cancelled = true + cc.cond.Broadcast() + cc.mu.Unlock() + return ctx.Err() + } +} + +func (cc *ClientConn) sendGoAway() error { + cc.mu.Lock() + closing := cc.closing + cc.closing = true + maxStreamID := cc.nextStreamID + cc.mu.Unlock() + if closing { + // GOAWAY sent already + return nil + } + + cc.wmu.Lock() + defer cc.wmu.Unlock() + // Send a graceful shutdown frame to server + if err := cc.fr.WriteGoAway(maxStreamID, ErrCodeNo, nil); err != nil { + return err + } + if err := cc.bw.Flush(); err != nil { + return err + } + // Prevent new requests + return nil +} + +// closes the client connection immediately. In-flight requests are interrupted. +// err is sent to streams. +func (cc *ClientConn) closeForError(err error) { + cc.mu.Lock() + cc.closed = true + for _, cs := range cc.streams { + cs.abortStreamLocked(err) + } + cc.cond.Broadcast() + cc.mu.Unlock() + cc.closeConn() +} + +// Close closes the client connection immediately. +// +// In-flight requests are interrupted. For a graceful shutdown, use Shutdown instead. +func (cc *ClientConn) Close() error { + err := errors.New("http2: client connection force closed via ClientConn.Close") + cc.closeForError(err) + return nil +} + +// closes the client connection immediately. In-flight requests are interrupted. +func (cc *ClientConn) closeForLostPing() { + err := errors.New("http2: client connection lost") + if f := cc.t.CountError; f != nil { + f("conn_close_lost_ping") + } + cc.closeForError(err) +} + +// errRequestCanceled is a copy of net/http's errRequestCanceled because it's not +// exported. At least they'll be DeepEqual for h1-vs-h2 comparisons tests. +var errRequestCanceled = errors.New("net/http: request canceled") + +func commaSeparatedTrailers(req *http.Request) (string, error) { + keys := make([]string, 0, len(req.Trailer)) + for k := range req.Trailer { + k = canonicalHeader(k) + switch k { + case "Transfer-Encoding", "Trailer", "Content-Length": + return "", fmt.Errorf("invalid Trailer key %q", k) + } + keys = append(keys, k) + } + if len(keys) > 0 { + sort.Strings(keys) + return strings.Join(keys, ","), nil + } + return "", nil +} + +func (cc *ClientConn) responseHeaderTimeout() time.Duration { + if cc.t.t1 != nil { + return cc.t.t1.ResponseHeaderTimeout + } + // No way to do this (yet?) with just an http2.Transport. Probably + // no need. Request.Cancel this is the new way. We only need to support + // this for compatibility with the old http.Transport fields when + // we're doing transparent http2. + return 0 +} + +// checkConnHeaders checks whether req has any invalid connection-level headers. +// per RFC 7540 section 8.1.2.2: Connection-Specific Header Fields. +// Certain headers are special-cased as okay but not transmitted later. +func checkConnHeaders(req *http.Request) error { + if v := req.Header.Get("Upgrade"); v != "" { + return fmt.Errorf("http2: invalid Upgrade request header: %q", req.Header["Upgrade"]) + } + if vv := req.Header["Transfer-Encoding"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && vv[0] != "chunked") { + return fmt.Errorf("http2: invalid Transfer-Encoding request header: %q", vv) + } + if vv := req.Header["Connection"]; len(vv) > 0 && (len(vv) > 1 || vv[0] != "" && !asciiEqualFold(vv[0], "close") && !asciiEqualFold(vv[0], "keep-alive")) { + return fmt.Errorf("http2: invalid Connection request header: %q", vv) + } + return nil +} + +// actualContentLength returns a sanitized version of +// req.ContentLength, where 0 actually means zero (not unknown) and -1 +// means unknown. +func actualContentLength(req *http.Request) int64 { + if req.Body == nil || req.Body == http.NoBody { + return 0 + } + if req.ContentLength != 0 { + return req.ContentLength + } + return -1 +} + +func (cc *ClientConn) decrStreamReservations() { + cc.mu.Lock() + defer cc.mu.Unlock() + cc.decrStreamReservationsLocked() +} + +func (cc *ClientConn) decrStreamReservationsLocked() { + if cc.streamsReserved > 0 { + cc.streamsReserved-- + } +} + +func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { + ctx := req.Context() + cs := &clientStream{ + cc: cc, + ctx: ctx, + reqCancel: req.Cancel, + isHead: req.Method == "HEAD", + reqBody: req.Body, + reqBodyContentLength: actualContentLength(req), + trace: httptrace.ContextClientTrace(ctx), + peerClosed: make(chan struct{}), + abort: make(chan struct{}), + respHeaderRecv: make(chan struct{}), + donec: make(chan struct{}), + } + go cs.doRequest(req) + + waitDone := func() error { + select { + case <-cs.donec: + return nil + case <-ctx.Done(): + return ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled + } + } + + handleResponseHeaders := func() (*http.Response, error) { + res := cs.res + if res.StatusCode > 299 { + // On error or status code 3xx, 4xx, 5xx, etc abort any + // ongoing write, assuming that the server doesn't care + // about our request body. If the server replied with 1xx or + // 2xx, however, then assume the server DOES potentially + // want our body (e.g. full-duplex streaming: + // golang.org/issue/13444). If it turns out the server + // doesn't, they'll RST_STREAM us soon enough. This is a + // heuristic to avoid adding knobs to Transport. Hopefully + // we can keep it. + cs.abortRequestBodyWrite() + } + res.Request = req + res.TLS = cc.tlsState + if res.Body == noBody && actualContentLength(req) == 0 { + // If there isn't a request or response body still being + // written, then wait for the stream to be closed before + // RoundTrip returns. + if err := waitDone(); err != nil { + return nil, err + } + } + return res, nil + } + + for { + select { + case <-cs.respHeaderRecv: + return handleResponseHeaders() + case <-cs.abort: + select { + case <-cs.respHeaderRecv: + // If both cs.respHeaderRecv and cs.abort are signaling, + // pick respHeaderRecv. The server probably wrote the + // response and immediately reset the stream. + // golang.org/issue/49645 + return handleResponseHeaders() + default: + waitDone() + return nil, cs.abortErr + } + case <-ctx.Done(): + err := ctx.Err() + cs.abortStream(err) + return nil, err + case <-cs.reqCancel: + cs.abortStream(errRequestCanceled) + return nil, errRequestCanceled + } + } +} + +// doRequest runs for the duration of the request lifetime. +// +// It sends the request and performs post-request cleanup (closing Request.Body, etc.). +func (cs *clientStream) doRequest(req *http.Request) { + err := cs.writeRequest(req) + cs.cleanupWriteRequest(err) +} + +// writeRequest sends a request. +// +// It returns nil after the request is written, the response read, +// and the request stream is half-closed by the peer. +// +// It returns non-nil if the request ends otherwise. +// If the returned error is StreamError, the error Code may be used in resetting the stream. +func (cs *clientStream) writeRequest(req *http.Request) (err error) { + cc := cs.cc + ctx := cs.ctx + + if err := checkConnHeaders(req); err != nil { + return err + } + + // Acquire the new-request lock by writing to reqHeaderMu. + // This lock guards the critical section covering allocating a new stream ID + // (requires mu) and creating the stream (requires wmu). + if cc.reqHeaderMu == nil { + panic("RoundTrip on uninitialized ClientConn") // for tests + } + select { + case cc.reqHeaderMu <- struct{}{}: + case <-cs.reqCancel: + return errRequestCanceled + case <-ctx.Done(): + return ctx.Err() + } + + cc.mu.Lock() + if cc.idleTimer != nil { + cc.idleTimer.Stop() + } + cc.decrStreamReservationsLocked() + if err := cc.awaitOpenSlotForStreamLocked(cs); err != nil { + cc.mu.Unlock() + <-cc.reqHeaderMu + return err + } + cc.addStreamLocked(cs) // assigns stream ID + if isConnectionCloseRequest(req) { + cc.doNotReuse = true + } + cc.mu.Unlock() + + // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? + if !cc.t.disableCompression() && + req.Header.Get("Accept-Encoding") == "" && + req.Header.Get("Range") == "" && + !cs.isHead { + // Request gzip only, not deflate. Deflate is ambiguous and + // not as universally supported anyway. + // See: https://zlib.net/zlib_faq.html#faq39 + // + // Note that we don't request this for HEAD requests, + // due to a bug in nginx: + // http://trac.nginx.org/nginx/ticket/358 + // https://golang.org/issue/5522 + // + // We don't request gzip if the request is for a range, since + // auto-decoding a portion of a gzipped document will just fail + // anyway. See https://golang.org/issue/8923 + cs.requestedGzip = true + } + + continueTimeout := cc.t.expectContinueTimeout() + if continueTimeout != 0 { + if !httpguts.HeaderValuesContainsToken(req.Header["Expect"], "100-continue") { + continueTimeout = 0 + } else { + cs.on100 = make(chan struct{}, 1) + } + } + + // Past this point (where we send request headers), it is possible for + // RoundTrip to return successfully. Since the RoundTrip contract permits + // the caller to "mutate or reuse" the Request after closing the Response's Body, + // we must take care when referencing the Request from here on. + err = cs.encodeAndWriteHeaders(req) + <-cc.reqHeaderMu + if err != nil { + return err + } + + hasBody := cs.reqBodyContentLength != 0 + if !hasBody { + cs.sentEndStream = true + } else { + if continueTimeout != 0 { + traceWait100Continue(cs.trace) + timer := time.NewTimer(continueTimeout) + select { + case <-timer.C: + err = nil + case <-cs.on100: + err = nil + case <-cs.abort: + err = cs.abortErr + case <-ctx.Done(): + err = ctx.Err() + case <-cs.reqCancel: + err = errRequestCanceled + } + timer.Stop() + if err != nil { + traceWroteRequest(cs.trace, err) + return err + } + } + + if err = cs.writeRequestBody(req); err != nil { + if err != errStopReqBodyWrite { + traceWroteRequest(cs.trace, err) + return err + } + } else { + cs.sentEndStream = true + } + } + + traceWroteRequest(cs.trace, err) + + var respHeaderTimer <-chan time.Time + var respHeaderRecv chan struct{} + if d := cc.responseHeaderTimeout(); d != 0 { + timer := time.NewTimer(d) + defer timer.Stop() + respHeaderTimer = timer.C + respHeaderRecv = cs.respHeaderRecv + } + // Wait until the peer half-closes its end of the stream, + // or until the request is aborted (via context, error, or otherwise), + // whichever comes first. + for { + select { + case <-cs.peerClosed: + return nil + case <-respHeaderTimer: + return errTimeout + case <-respHeaderRecv: + respHeaderRecv = nil + respHeaderTimer = nil // keep waiting for END_STREAM + case <-cs.abort: + return cs.abortErr + case <-ctx.Done(): + return ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled + } + } +} + +func (cs *clientStream) encodeAndWriteHeaders(req *http.Request) error { + cc := cs.cc + ctx := cs.ctx + + cc.wmu.Lock() + defer cc.wmu.Unlock() + + // If the request was canceled while waiting for cc.mu, just quit. + select { + case <-cs.abort: + return cs.abortErr + case <-ctx.Done(): + return ctx.Err() + case <-cs.reqCancel: + return errRequestCanceled + default: + } + + // Encode headers. + // + // we send: HEADERS{1}, CONTINUATION{0,} + DATA{0,} (DATA is + // sent by writeRequestBody below, along with any Trailers, + // again in form HEADERS{1}, CONTINUATION{0,}) + trailers, err := commaSeparatedTrailers(req) + if err != nil { + return err + } + hasTrailers := trailers != "" + contentLen := actualContentLength(req) + hasBody := contentLen != 0 + hdrs, err := cc.encodeHeaders(req, cs.requestedGzip, trailers, contentLen) + if err != nil { + return err + } + + // Write the request. + endStream := !hasBody && !hasTrailers + cs.sentHeaders = true + err = cc.writeHeaders(cs.ID, endStream, int(cc.maxFrameSize), hdrs) + traceWroteHeaders(cs.trace) + return err +} + +// cleanupWriteRequest performs post-request tasks. +// +// If err (the result of writeRequest) is non-nil and the stream is not closed, +// cleanupWriteRequest will send a reset to the peer. +func (cs *clientStream) cleanupWriteRequest(err error) { + cc := cs.cc + + if cs.ID == 0 { + // We were canceled before creating the stream, so return our reservation. + cc.decrStreamReservations() + } + + // TODO: write h12Compare test showing whether + // Request.Body is closed by the Transport, + // and in multiple cases: server replies <=299 and >299 + // while still writing request body + cc.mu.Lock() + mustCloseBody := false + if cs.reqBody != nil && cs.reqBodyClosed == nil { + mustCloseBody = true + cs.reqBodyClosed = make(chan struct{}) + } + bodyClosed := cs.reqBodyClosed + cc.mu.Unlock() + if mustCloseBody { + cs.reqBody.Close() + close(bodyClosed) + } + if bodyClosed != nil { + <-bodyClosed + } + + if err != nil && cs.sentEndStream { + // If the connection is closed immediately after the response is read, + // we may be aborted before finishing up here. If the stream was closed + // cleanly on both sides, there is no error. + select { + case <-cs.peerClosed: + err = nil + default: + } + } + if err != nil { + cs.abortStream(err) // possibly redundant, but harmless + if cs.sentHeaders { + if se, ok := err.(StreamError); ok { + if se.Cause != errFromPeer { + cc.writeStreamReset(cs.ID, se.Code, err) + } + } else { + cc.writeStreamReset(cs.ID, ErrCodeCancel, err) + } + } + cs.bufPipe.CloseWithError(err) // no-op if already closed + } else { + if cs.sentHeaders && !cs.sentEndStream { + cc.writeStreamReset(cs.ID, ErrCodeNo, nil) + } + cs.bufPipe.CloseWithError(errRequestCanceled) + } + if cs.ID != 0 { + cc.forgetStreamID(cs.ID) + } + + cc.wmu.Lock() + werr := cc.werr + cc.wmu.Unlock() + if werr != nil { + cc.Close() + } + + close(cs.donec) +} + +// awaitOpenSlotForStreamLocked waits until len(streams) < maxConcurrentStreams. +// Must hold cc.mu. +func (cc *ClientConn) awaitOpenSlotForStreamLocked(cs *clientStream) error { + for { + cc.lastActive = time.Now() + if cc.closed || !cc.canTakeNewRequestLocked() { + return errClientConnUnusable + } + cc.lastIdle = time.Time{} + if int64(len(cc.streams)) < int64(cc.maxConcurrentStreams) { + return nil + } + cc.pendingRequests++ + cc.cond.Wait() + cc.pendingRequests-- + select { + case <-cs.abort: + return cs.abortErr + default: + } + } +} + +// requires cc.wmu be held +func (cc *ClientConn) writeHeaders(streamID uint32, endStream bool, maxFrameSize int, hdrs []byte) error { + first := true // first frame written (HEADERS is first, then CONTINUATION) + for len(hdrs) > 0 && cc.werr == nil { + chunk := hdrs + if len(chunk) > maxFrameSize { + chunk = chunk[:maxFrameSize] + } + hdrs = hdrs[len(chunk):] + endHeaders := len(hdrs) == 0 + if first { + cc.fr.WriteHeaders(HeadersFrameParam{ + StreamID: streamID, + BlockFragment: chunk, + EndStream: endStream, + EndHeaders: endHeaders, + }) + first = false + } else { + cc.fr.WriteContinuation(streamID, endHeaders, chunk) + } + } + cc.bw.Flush() + return cc.werr +} + +// internal error values; they don't escape to callers +var ( + // abort request body write; don't send cancel + errStopReqBodyWrite = errors.New("http2: aborting request body write") + + // abort request body write, but send stream reset of cancel. + errStopReqBodyWriteAndCancel = errors.New("http2: canceling request") + + errReqBodyTooLong = errors.New("http2: request body larger than specified content length") +) + +// frameScratchBufferLen returns the length of a buffer to use for +// outgoing request bodies to read/write to/from. +// +// It returns max(1, min(peer's advertised max frame size, +// Request.ContentLength+1, 512KB)). +func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int { + const max = 512 << 10 + n := int64(maxFrameSize) + if n > max { + n = max + } + if cl := cs.reqBodyContentLength; cl != -1 && cl+1 < n { + // Add an extra byte past the declared content-length to + // give the caller's Request.Body io.Reader a chance to + // give us more bytes than they declared, so we can catch it + // early. + n = cl + 1 + } + if n < 1 { + return 1 + } + return int(n) // doesn't truncate; max is 512K +} + +var bufPool sync.Pool // of *[]byte + +func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { + cc := cs.cc + body := cs.reqBody + sentEnd := false // whether we sent the final DATA frame w/ END_STREAM + + hasTrailers := req.Trailer != nil + remainLen := cs.reqBodyContentLength + hasContentLen := remainLen != -1 + + cc.mu.Lock() + maxFrameSize := int(cc.maxFrameSize) + cc.mu.Unlock() + + // Scratch buffer for reading into & writing from. + scratchLen := cs.frameScratchBufferLen(maxFrameSize) + var buf []byte + if bp, ok := bufPool.Get().(*[]byte); ok && len(*bp) >= scratchLen { + defer bufPool.Put(bp) + buf = *bp + } else { + buf = make([]byte, scratchLen) + defer bufPool.Put(&buf) + } + + var sawEOF bool + for !sawEOF { + n, err := body.Read(buf) + if hasContentLen { + remainLen -= int64(n) + if remainLen == 0 && err == nil { + // The request body's Content-Length was predeclared and + // we just finished reading it all, but the underlying io.Reader + // returned the final chunk with a nil error (which is one of + // the two valid things a Reader can do at EOF). Because we'd prefer + // to send the END_STREAM bit early, double-check that we're actually + // at EOF. Subsequent reads should return (0, EOF) at this point. + // If either value is different, we return an error in one of two ways below. + var scratch [1]byte + var n1 int + n1, err = body.Read(scratch[:]) + remainLen -= int64(n1) + } + if remainLen < 0 { + err = errReqBodyTooLong + return err + } + } + if err != nil { + cc.mu.Lock() + bodyClosed := cs.reqBodyClosed != nil + cc.mu.Unlock() + switch { + case bodyClosed: + return errStopReqBodyWrite + case err == io.EOF: + sawEOF = true + err = nil + default: + return err + } + } + + remain := buf[:n] + for len(remain) > 0 && err == nil { + var allowed int32 + allowed, err = cs.awaitFlowControl(len(remain)) + if err != nil { + return err + } + cc.wmu.Lock() + data := remain[:allowed] + remain = remain[allowed:] + sentEnd = sawEOF && len(remain) == 0 && !hasTrailers + err = cc.fr.WriteData(cs.ID, sentEnd, data) + if err == nil { + // TODO(bradfitz): this flush is for latency, not bandwidth. + // Most requests won't need this. Make this opt-in or + // opt-out? Use some heuristic on the body type? Nagel-like + // timers? Based on 'n'? Only last chunk of this for loop, + // unless flow control tokens are low? For now, always. + // If we change this, see comment below. + err = cc.bw.Flush() + } + cc.wmu.Unlock() + } + if err != nil { + return err + } + } + + if sentEnd { + // Already sent END_STREAM (which implies we have no + // trailers) and flushed, because currently all + // WriteData frames above get a flush. So we're done. + return nil + } + + // Since the RoundTrip contract permits the caller to "mutate or reuse" + // a request after the Response's Body is closed, verify that this hasn't + // happened before accessing the trailers. + cc.mu.Lock() + trailer := req.Trailer + err = cs.abortErr + cc.mu.Unlock() + if err != nil { + return err + } + + cc.wmu.Lock() + defer cc.wmu.Unlock() + var trls []byte + if len(trailer) > 0 { + trls, err = cc.encodeTrailers(trailer) + if err != nil { + return err + } + } + + // Two ways to send END_STREAM: either with trailers, or + // with an empty DATA frame. + if len(trls) > 0 { + err = cc.writeHeaders(cs.ID, true, maxFrameSize, trls) + } else { + err = cc.fr.WriteData(cs.ID, true, nil) + } + if ferr := cc.bw.Flush(); ferr != nil && err == nil { + err = ferr + } + return err +} + +// awaitFlowControl waits for [1, min(maxBytes, cc.cs.maxFrameSize)] flow +// control tokens from the server. +// It returns either the non-zero number of tokens taken or an error +// if the stream is dead. +func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) { + cc := cs.cc + ctx := cs.ctx + cc.mu.Lock() + defer cc.mu.Unlock() + for { + if cc.closed { + return 0, errClientConnClosed + } + if cs.reqBodyClosed != nil { + return 0, errStopReqBodyWrite + } + select { + case <-cs.abort: + return 0, cs.abortErr + case <-ctx.Done(): + return 0, ctx.Err() + case <-cs.reqCancel: + return 0, errRequestCanceled + default: + } + if a := cs.flow.available(); a > 0 { + take := a + if int(take) > maxBytes { + + take = int32(maxBytes) // can't truncate int; take is int32 + } + if take > int32(cc.maxFrameSize) { + take = int32(cc.maxFrameSize) + } + cs.flow.take(take) + return take, nil + } + cc.cond.Wait() + } +} + +var errNilRequestURL = errors.New("http2: Request.URI is nil") + +// requires cc.wmu be held. +func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trailers string, contentLength int64) ([]byte, error) { + cc.hbuf.Reset() + if req.URL == nil { + return nil, errNilRequestURL + } + + host := req.Host + if host == "" { + host = req.URL.Host + } + host, err := httpguts.PunycodeHostPort(host) + if err != nil { + return nil, err + } + + var path string + if req.Method != "CONNECT" { + path = req.URL.RequestURI() + if !validPseudoPath(path) { + orig := path + path = strings.TrimPrefix(path, req.URL.Scheme+"://"+host) + if !validPseudoPath(path) { + if req.URL.Opaque != "" { + return nil, fmt.Errorf("invalid request :path %q from URL.Opaque = %q", orig, req.URL.Opaque) + } else { + return nil, fmt.Errorf("invalid request :path %q", orig) + } + } + } + } + + // Check for any invalid headers and return an error before we + // potentially pollute our hpack state. (We want to be able to + // continue to reuse the hpack encoder for future requests) + for k, vv := range req.Header { + if !httpguts.ValidHeaderFieldName(k) { + return nil, fmt.Errorf("invalid HTTP header name %q", k) + } + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + // Don't include the value in the error, because it may be sensitive. + return nil, fmt.Errorf("invalid HTTP header value for header %q", k) + } + } + } + + enumerateHeaders := func(f func(name, value string)) { + // 8.1.2.3 Request Pseudo-Header Fields + // The :path pseudo-header field includes the path and query parts of the + // target URI (the path-absolute production and optionally a '?' character + // followed by the query production (see Sections 3.3 and 3.4 of + // [RFC3986]). + f(":authority", host) + m := req.Method + if m == "" { + m = http.MethodGet + } + f(":method", m) + if req.Method != "CONNECT" { + f(":path", path) + f(":scheme", req.URL.Scheme) + } + if trailers != "" { + f("trailer", trailers) + } + + var didUA bool + for k, vv := range req.Header { + if asciiEqualFold(k, "host") || asciiEqualFold(k, "content-length") { + // Host is :authority, already sent. + // Content-Length is automatic, set below. + continue + } else if asciiEqualFold(k, "connection") || + asciiEqualFold(k, "proxy-connection") || + asciiEqualFold(k, "transfer-encoding") || + asciiEqualFold(k, "upgrade") || + asciiEqualFold(k, "keep-alive") { + // Per 8.1.2.2 Connection-Specific Header + // Fields, don't send connection-specific + // fields. We have already checked if any + // are error-worthy so just ignore the rest. + continue + } else if asciiEqualFold(k, "user-agent") { + // Match Go's http1 behavior: at most one + // User-Agent. If set to nil or empty string, + // then omit it. Otherwise if not mentioned, + // include the default (below). + didUA = true + if len(vv) < 1 { + continue + } + vv = vv[:1] + if vv[0] == "" { + continue + } + } else if asciiEqualFold(k, "cookie") { + // Per 8.1.2.5 To allow for better compression efficiency, the + // Cookie header field MAY be split into separate header fields, + // each with one or more cookie-pairs. + for _, v := range vv { + for { + p := strings.IndexByte(v, ';') + if p < 0 { + break + } + f("cookie", v[:p]) + p++ + // strip space after semicolon if any. + for p+1 <= len(v) && v[p] == ' ' { + p++ + } + v = v[p:] + } + if len(v) > 0 { + f("cookie", v) + } + } + continue + } + + for _, v := range vv { + f(k, v) + } + } + if shouldSendReqContentLength(req.Method, contentLength) { + f("content-length", strconv.FormatInt(contentLength, 10)) + } + if addGzipHeader { + f("accept-encoding", "gzip") + } + if !didUA { + f("user-agent", defaultUserAgent) + } + } + + // Do a first pass over the headers counting bytes to ensure + // we don't exceed cc.peerMaxHeaderListSize. This is done as a + // separate pass before encoding the headers to prevent + // modifying the hpack state. + hlSize := uint64(0) + enumerateHeaders(func(name, value string) { + hf := hpack.HeaderField{Name: name, Value: value} + hlSize += uint64(hf.Size()) + }) + + if hlSize > cc.peerMaxHeaderListSize { + return nil, errRequestHeaderListSize + } + + trace := httptrace.ContextClientTrace(req.Context()) + traceHeaders := traceHasWroteHeaderField(trace) + + // Header list size is ok. Write the headers. + enumerateHeaders(func(name, value string) { + name, ascii := lowerHeader(name) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + return + } + cc.writeHeader(name, value) + if traceHeaders { + traceWroteHeaderField(trace, name, value) + } + }) + + return cc.hbuf.Bytes(), nil +} + +// shouldSendReqContentLength reports whether the http2.Transport should send +// a "content-length" request header. This logic is basically a copy of the net/http +// transferWriter.shouldSendContentLength. +// The contentLength is the corrected contentLength (so 0 means actually 0, not unknown). +// -1 means unknown. +func shouldSendReqContentLength(method string, contentLength int64) bool { + if contentLength > 0 { + return true + } + if contentLength < 0 { + return false + } + // For zero bodies, whether we send a content-length depends on the method. + // It also kinda doesn't matter for http2 either way, with END_STREAM. + switch method { + case "POST", "PUT", "PATCH": + return true + default: + return false + } +} + +// requires cc.wmu be held. +func (cc *ClientConn) encodeTrailers(trailer http.Header) ([]byte, error) { + cc.hbuf.Reset() + + hlSize := uint64(0) + for k, vv := range trailer { + for _, v := range vv { + hf := hpack.HeaderField{Name: k, Value: v} + hlSize += uint64(hf.Size()) + } + } + if hlSize > cc.peerMaxHeaderListSize { + return nil, errRequestHeaderListSize + } + + for k, vv := range trailer { + lowKey, ascii := lowerHeader(k) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + continue + } + // Transfer-Encoding, etc.. have already been filtered at the + // start of RoundTrip + for _, v := range vv { + cc.writeHeader(lowKey, v) + } + } + return cc.hbuf.Bytes(), nil +} + +func (cc *ClientConn) writeHeader(name, value string) { + if VerboseLogs { + log.Printf("http2: Transport encoding header %q = %q", name, value) + } + cc.henc.WriteField(hpack.HeaderField{Name: name, Value: value}) +} + +type resAndError struct { + _ incomparable + res *http.Response + err error +} + +// requires cc.mu be held. +func (cc *ClientConn) addStreamLocked(cs *clientStream) { + cs.flow.add(int32(cc.initialWindowSize)) + cs.flow.setConnFlow(&cc.flow) + cs.inflow.init(transportDefaultStreamFlow) + cs.ID = cc.nextStreamID + cc.nextStreamID += 2 + cc.streams[cs.ID] = cs + if cs.ID == 0 { + panic("assigned stream ID 0") + } +} + +func (cc *ClientConn) forgetStreamID(id uint32) { + cc.mu.Lock() + slen := len(cc.streams) + delete(cc.streams, id) + if len(cc.streams) != slen-1 { + panic("forgetting unknown stream id") + } + cc.lastActive = time.Now() + if len(cc.streams) == 0 && cc.idleTimer != nil { + cc.idleTimer.Reset(cc.idleTimeout) + cc.lastIdle = time.Now() + } + // Wake up writeRequestBody via clientStream.awaitFlowControl and + // wake up RoundTrip if there is a pending request. + cc.cond.Broadcast() + + closeOnIdle := cc.singleUse || cc.doNotReuse || cc.t.disableKeepAlives() || cc.goAway != nil + if closeOnIdle && cc.streamsReserved == 0 && len(cc.streams) == 0 { + if VerboseLogs { + cc.vlogf("http2: Transport closing idle conn %p (forSingleUse=%v, maxStream=%v)", cc, cc.singleUse, cc.nextStreamID-2) + } + cc.closed = true + defer cc.closeConn() + } + + cc.mu.Unlock() +} + +// clientConnReadLoop is the state owned by the clientConn's frame-reading readLoop. +type clientConnReadLoop struct { + _ incomparable + cc *ClientConn +} + +// readLoop runs in its own goroutine and reads and dispatches frames. +func (cc *ClientConn) readLoop() { + rl := &clientConnReadLoop{cc: cc} + defer rl.cleanup() + cc.readerErr = rl.run() + if ce, ok := cc.readerErr.(ConnectionError); ok { + cc.wmu.Lock() + cc.fr.WriteGoAway(0, ErrCode(ce), nil) + cc.wmu.Unlock() + } +} + +// GoAwayError is returned by the Transport when the server closes the +// TCP connection after sending a GOAWAY frame. +type GoAwayError struct { + LastStreamID uint32 + ErrCode ErrCode + DebugData string +} + +func (e GoAwayError) Error() string { + return fmt.Sprintf("http2: server sent GOAWAY and closed the connection; LastStreamID=%v, ErrCode=%v, debug=%q", + e.LastStreamID, e.ErrCode, e.DebugData) +} + +func isEOFOrNetReadError(err error) bool { + if err == io.EOF { + return true + } + ne, ok := err.(*net.OpError) + return ok && ne.Op == "read" +} + +func (rl *clientConnReadLoop) cleanup() { + cc := rl.cc + cc.t.connPool().MarkDead(cc) + defer cc.closeConn() + defer close(cc.readerDone) + + if cc.idleTimer != nil { + cc.idleTimer.Stop() + } + + // Close any response bodies if the server closes prematurely. + // TODO: also do this if we've written the headers but not + // gotten a response yet. + err := cc.readerErr + cc.mu.Lock() + if cc.goAway != nil && isEOFOrNetReadError(err) { + err = GoAwayError{ + LastStreamID: cc.goAway.LastStreamID, + ErrCode: cc.goAway.ErrCode, + DebugData: cc.goAwayDebug, + } + } else if err == io.EOF { + err = io.ErrUnexpectedEOF + } + cc.closed = true + + for _, cs := range cc.streams { + select { + case <-cs.peerClosed: + // The server closed the stream before closing the conn, + // so no need to interrupt it. + default: + cs.abortStreamLocked(err) + } + } + cc.cond.Broadcast() + cc.mu.Unlock() +} + +// countReadFrameError calls Transport.CountError with a string +// representing err. +func (cc *ClientConn) countReadFrameError(err error) { + f := cc.t.CountError + if f == nil || err == nil { + return + } + if ce, ok := err.(ConnectionError); ok { + errCode := ErrCode(ce) + f(fmt.Sprintf("read_frame_conn_error_%s", errCode.stringToken())) + return + } + if errors.Is(err, io.EOF) { + f("read_frame_eof") + return + } + if errors.Is(err, io.ErrUnexpectedEOF) { + f("read_frame_unexpected_eof") + return + } + if errors.Is(err, ErrFrameTooLarge) { + f("read_frame_too_large") + return + } + f("read_frame_other") +} + +func (rl *clientConnReadLoop) run() error { + cc := rl.cc + gotSettings := false + readIdleTimeout := cc.t.ReadIdleTimeout + var t *time.Timer + if readIdleTimeout != 0 { + t = time.AfterFunc(readIdleTimeout, cc.healthCheck) + defer t.Stop() + } + for { + f, err := cc.fr.ReadFrame() + if t != nil { + t.Reset(readIdleTimeout) + } + if err != nil { + cc.vlogf("http2: Transport readFrame error on conn %p: (%T) %v", cc, err, err) + } + if se, ok := err.(StreamError); ok { + if cs := rl.streamByID(se.StreamID); cs != nil { + if se.Cause == nil { + se.Cause = cc.fr.errDetail + } + rl.endStreamError(cs, se) + } + continue + } else if err != nil { + cc.countReadFrameError(err) + return err + } + if VerboseLogs { + cc.vlogf("http2: Transport received %s", summarizeFrame(f)) + } + if !gotSettings { + if _, ok := f.(*SettingsFrame); !ok { + cc.logf("protocol error: received %T before a SETTINGS frame", f) + return ConnectionError(ErrCodeProtocol) + } + gotSettings = true + } + + switch f := f.(type) { + case *MetaHeadersFrame: + err = rl.processHeaders(f) + case *DataFrame: + err = rl.processData(f) + case *GoAwayFrame: + err = rl.processGoAway(f) + case *RSTStreamFrame: + err = rl.processResetStream(f) + case *SettingsFrame: + err = rl.processSettings(f) + case *PushPromiseFrame: + err = rl.processPushPromise(f) + case *WindowUpdateFrame: + err = rl.processWindowUpdate(f) + case *PingFrame: + err = rl.processPing(f) + default: + cc.logf("Transport: unhandled response frame type %T", f) + } + if err != nil { + if VerboseLogs { + cc.vlogf("http2: Transport conn %p received error from processing frame %v: %v", cc, summarizeFrame(f), err) + } + return err + } + } +} + +func (rl *clientConnReadLoop) processHeaders(f *MetaHeadersFrame) error { + cs := rl.streamByID(f.StreamID) + if cs == nil { + // We'd get here if we canceled a request while the + // server had its response still in flight. So if this + // was just something we canceled, ignore it. + return nil + } + if cs.readClosed { + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + Cause: errors.New("protocol error: headers after END_STREAM"), + }) + return nil + } + if !cs.firstByte { + if cs.trace != nil { + // TODO(bradfitz): move first response byte earlier, + // when we first read the 9 byte header, not waiting + // until all the HEADERS+CONTINUATION frames have been + // merged. This works for now. + traceFirstResponseByte(cs.trace) + } + cs.firstByte = true + } + if !cs.pastHeaders { + cs.pastHeaders = true + } else { + return rl.processTrailers(cs, f) + } + + res, err := rl.handleResponse(cs, f) + if err != nil { + if _, ok := err.(ConnectionError); ok { + return err + } + // Any other error type is a stream error. + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + Cause: err, + }) + return nil // return nil from process* funcs to keep conn alive + } + if res == nil { + // (nil, nil) special case. See handleResponse docs. + return nil + } + cs.resTrailer = &res.Trailer + cs.res = res + close(cs.respHeaderRecv) + if f.StreamEnded() { + rl.endStream(cs) + } + return nil +} + +// may return error types nil, or ConnectionError. Any other error value +// is a StreamError of type ErrCodeProtocol. The returned error in that case +// is the detail. +// +// As a special case, handleResponse may return (nil, nil) to skip the +// frame (currently only used for 1xx responses). +func (rl *clientConnReadLoop) handleResponse(cs *clientStream, f *MetaHeadersFrame) (*http.Response, error) { + if f.Truncated { + return nil, errResponseHeaderListSize + } + + status := f.PseudoValue("status") + if status == "" { + return nil, errors.New("malformed response from server: missing status pseudo header") + } + statusCode, err := strconv.Atoi(status) + if err != nil { + return nil, errors.New("malformed response from server: malformed non-numeric status pseudo header") + } + + regularFields := f.RegularFields() + strs := make([]string, len(regularFields)) + header := make(http.Header, len(regularFields)) + res := &http.Response{ + Proto: "HTTP/2.0", + ProtoMajor: 2, + Header: header, + StatusCode: statusCode, + Status: status + " " + http.StatusText(statusCode), + } + for _, hf := range regularFields { + key := canonicalHeader(hf.Name) + if key == "Trailer" { + t := res.Trailer + if t == nil { + t = make(http.Header) + res.Trailer = t + } + foreachHeaderElement(hf.Value, func(v string) { + t[canonicalHeader(v)] = nil + }) + } else { + vv := header[key] + if vv == nil && len(strs) > 0 { + // More than likely this will be a single-element key. + // Most headers aren't multi-valued. + // Set the capacity on strs[0] to 1, so any future append + // won't extend the slice into the other strings. + vv, strs = strs[:1:1], strs[1:] + vv[0] = hf.Value + header[key] = vv + } else { + header[key] = append(vv, hf.Value) + } + } + } + + if statusCode >= 100 && statusCode <= 199 { + if f.StreamEnded() { + return nil, errors.New("1xx informational response with END_STREAM flag") + } + cs.num1xx++ + const max1xxResponses = 5 // arbitrary bound on number of informational responses, same as net/http + if cs.num1xx > max1xxResponses { + return nil, errors.New("http2: too many 1xx informational responses") + } + if fn := cs.get1xxTraceFunc(); fn != nil { + if err := fn(statusCode, textproto.MIMEHeader(header)); err != nil { + return nil, err + } + } + if statusCode == 100 { + traceGot100Continue(cs.trace) + select { + case cs.on100 <- struct{}{}: + default: + } + } + cs.pastHeaders = false // do it all again + return nil, nil + } + + res.ContentLength = -1 + if clens := res.Header["Content-Length"]; len(clens) == 1 { + if cl, err := strconv.ParseUint(clens[0], 10, 63); err == nil { + res.ContentLength = int64(cl) + } else { + // TODO: care? unlike http/1, it won't mess up our framing, so it's + // more safe smuggling-wise to ignore. + } + } else if len(clens) > 1 { + // TODO: care? unlike http/1, it won't mess up our framing, so it's + // more safe smuggling-wise to ignore. + } else if f.StreamEnded() && !cs.isHead { + res.ContentLength = 0 + } + + if cs.isHead { + res.Body = noBody + return res, nil + } + + if f.StreamEnded() { + if res.ContentLength > 0 { + res.Body = missingBody{} + } else { + res.Body = noBody + } + return res, nil + } + + cs.bufPipe.setBuffer(&dataBuffer{expected: res.ContentLength}) + cs.bytesRemain = res.ContentLength + res.Body = transportResponseBody{cs} + + if cs.requestedGzip && asciiEqualFold(res.Header.Get("Content-Encoding"), "gzip") { + res.Header.Del("Content-Encoding") + res.Header.Del("Content-Length") + res.ContentLength = -1 + res.Body = &gzipReader{body: res.Body} + res.Uncompressed = true + } + return res, nil +} + +func (rl *clientConnReadLoop) processTrailers(cs *clientStream, f *MetaHeadersFrame) error { + if cs.pastTrailers { + // Too many HEADERS frames for this stream. + return ConnectionError(ErrCodeProtocol) + } + cs.pastTrailers = true + if !f.StreamEnded() { + // We expect that any headers for trailers also + // has END_STREAM. + return ConnectionError(ErrCodeProtocol) + } + if len(f.PseudoFields()) > 0 { + // No pseudo header fields are defined for trailers. + // TODO: ConnectionError might be overly harsh? Check. + return ConnectionError(ErrCodeProtocol) + } + + trailer := make(http.Header) + for _, hf := range f.RegularFields() { + key := canonicalHeader(hf.Name) + trailer[key] = append(trailer[key], hf.Value) + } + cs.trailer = trailer + + rl.endStream(cs) + return nil +} + +// transportResponseBody is the concrete type of Transport.RoundTrip's +// Response.Body. It is an io.ReadCloser. +type transportResponseBody struct { + cs *clientStream +} + +func (b transportResponseBody) Read(p []byte) (n int, err error) { + cs := b.cs + cc := cs.cc + + if cs.readErr != nil { + return 0, cs.readErr + } + n, err = b.cs.bufPipe.Read(p) + if cs.bytesRemain != -1 { + if int64(n) > cs.bytesRemain { + n = int(cs.bytesRemain) + if err == nil { + err = errors.New("net/http: server replied with more than declared Content-Length; truncated") + cs.abortStream(err) + } + cs.readErr = err + return int(cs.bytesRemain), err + } + cs.bytesRemain -= int64(n) + if err == io.EOF && cs.bytesRemain > 0 { + err = io.ErrUnexpectedEOF + cs.readErr = err + return n, err + } + } + if n == 0 { + // No flow control tokens to send back. + return + } + + cc.mu.Lock() + connAdd := cc.inflow.add(n) + var streamAdd int32 + if err == nil { // No need to refresh if the stream is over or failed. + streamAdd = cs.inflow.add(n) + } + cc.mu.Unlock() + + if connAdd != 0 || streamAdd != 0 { + cc.wmu.Lock() + defer cc.wmu.Unlock() + if connAdd != 0 { + cc.fr.WriteWindowUpdate(0, mustUint31(connAdd)) + } + if streamAdd != 0 { + cc.fr.WriteWindowUpdate(cs.ID, mustUint31(streamAdd)) + } + cc.bw.Flush() + } + return +} + +var errClosedResponseBody = errors.New("http2: response body closed") + +func (b transportResponseBody) Close() error { + cs := b.cs + cc := cs.cc + + unread := cs.bufPipe.Len() + if unread > 0 { + cc.mu.Lock() + // Return connection-level flow control. + connAdd := cc.inflow.add(unread) + cc.mu.Unlock() + + // TODO(dneil): Acquiring this mutex can block indefinitely. + // Move flow control return to a goroutine? + cc.wmu.Lock() + // Return connection-level flow control. + if connAdd > 0 { + cc.fr.WriteWindowUpdate(0, uint32(connAdd)) + } + cc.bw.Flush() + cc.wmu.Unlock() + } + + cs.bufPipe.BreakWithError(errClosedResponseBody) + cs.abortStream(errClosedResponseBody) + + select { + case <-cs.donec: + case <-cs.ctx.Done(): + // See golang/go#49366: The net/http package can cancel the + // request context after the response body is fully read. + // Don't treat this as an error. + return nil + case <-cs.reqCancel: + return errRequestCanceled + } + return nil +} + +func (rl *clientConnReadLoop) processData(f *DataFrame) error { + cc := rl.cc + cs := rl.streamByID(f.StreamID) + data := f.Data() + if cs == nil { + cc.mu.Lock() + neverSent := cc.nextStreamID + cc.mu.Unlock() + if f.StreamID >= neverSent { + // We never asked for this. + cc.logf("http2: Transport received unsolicited DATA frame; closing connection") + return ConnectionError(ErrCodeProtocol) + } + // We probably did ask for this, but canceled. Just ignore it. + // TODO: be stricter here? only silently ignore things which + // we canceled, but not things which were closed normally + // by the peer? Tough without accumulating too much state. + + // But at least return their flow control: + if f.Length > 0 { + cc.mu.Lock() + ok := cc.inflow.take(f.Length) + connAdd := cc.inflow.add(int(f.Length)) + cc.mu.Unlock() + if !ok { + return ConnectionError(ErrCodeFlowControl) + } + if connAdd > 0 { + cc.wmu.Lock() + cc.fr.WriteWindowUpdate(0, uint32(connAdd)) + cc.bw.Flush() + cc.wmu.Unlock() + } + } + return nil + } + if cs.readClosed { + cc.logf("protocol error: received DATA after END_STREAM") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + }) + return nil + } + if !cs.firstByte { + cc.logf("protocol error: received DATA before a HEADERS frame") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + }) + return nil + } + if f.Length > 0 { + if cs.isHead && len(data) > 0 { + cc.logf("protocol error: received DATA on a HEAD request") + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeProtocol, + }) + return nil + } + // Check connection-level flow control. + cc.mu.Lock() + if !takeInflows(&cc.inflow, &cs.inflow, f.Length) { + cc.mu.Unlock() + return ConnectionError(ErrCodeFlowControl) + } + // Return any padded flow control now, since we won't + // refund it later on body reads. + var refund int + if pad := int(f.Length) - len(data); pad > 0 { + refund += pad + } + + didReset := false + var err error + if len(data) > 0 { + if _, err = cs.bufPipe.Write(data); err != nil { + // Return len(data) now if the stream is already closed, + // since data will never be read. + didReset = true + refund += len(data) + } + } + + sendConn := cc.inflow.add(refund) + var sendStream int32 + if !didReset { + sendStream = cs.inflow.add(refund) + } + cc.mu.Unlock() + + if sendConn > 0 || sendStream > 0 { + cc.wmu.Lock() + if sendConn > 0 { + cc.fr.WriteWindowUpdate(0, uint32(sendConn)) + } + if sendStream > 0 { + cc.fr.WriteWindowUpdate(cs.ID, uint32(sendStream)) + } + cc.bw.Flush() + cc.wmu.Unlock() + } + + if err != nil { + rl.endStreamError(cs, err) + return nil + } + } + + if f.StreamEnded() { + rl.endStream(cs) + } + return nil +} + +func (rl *clientConnReadLoop) endStream(cs *clientStream) { + // TODO: check that any declared content-length matches, like + // server.go's (*stream).endStream method. + if !cs.readClosed { + cs.readClosed = true + // Close cs.bufPipe and cs.peerClosed with cc.mu held to avoid a + // race condition: The caller can read io.EOF from Response.Body + // and close the body before we close cs.peerClosed, causing + // cleanupWriteRequest to send a RST_STREAM. + rl.cc.mu.Lock() + defer rl.cc.mu.Unlock() + cs.bufPipe.closeWithErrorAndCode(io.EOF, cs.copyTrailers) + close(cs.peerClosed) + } +} + +func (rl *clientConnReadLoop) endStreamError(cs *clientStream, err error) { + cs.readAborted = true + cs.abortStream(err) +} + +func (rl *clientConnReadLoop) streamByID(id uint32) *clientStream { + rl.cc.mu.Lock() + defer rl.cc.mu.Unlock() + cs := rl.cc.streams[id] + if cs != nil && !cs.readAborted { + return cs + } + return nil +} + +func (cs *clientStream) copyTrailers() { + for k, vv := range cs.trailer { + t := cs.resTrailer + if *t == nil { + *t = make(http.Header) + } + (*t)[k] = vv + } +} + +func (rl *clientConnReadLoop) processGoAway(f *GoAwayFrame) error { + cc := rl.cc + cc.t.connPool().MarkDead(cc) + if f.ErrCode != 0 { + // TODO: deal with GOAWAY more. particularly the error code + cc.vlogf("transport got GOAWAY with error code = %v", f.ErrCode) + if fn := cc.t.CountError; fn != nil { + fn("recv_goaway_" + f.ErrCode.stringToken()) + } + } + cc.setGoAway(f) + return nil +} + +func (rl *clientConnReadLoop) processSettings(f *SettingsFrame) error { + cc := rl.cc + // Locking both mu and wmu here allows frame encoding to read settings with only wmu held. + // Acquiring wmu when f.IsAck() is unnecessary, but convenient and mostly harmless. + cc.wmu.Lock() + defer cc.wmu.Unlock() + + if err := rl.processSettingsNoWrite(f); err != nil { + return err + } + if !f.IsAck() { + cc.fr.WriteSettingsAck() + cc.bw.Flush() + } + return nil +} + +func (rl *clientConnReadLoop) processSettingsNoWrite(f *SettingsFrame) error { + cc := rl.cc + cc.mu.Lock() + defer cc.mu.Unlock() + + if f.IsAck() { + if cc.wantSettingsAck { + cc.wantSettingsAck = false + return nil + } + return ConnectionError(ErrCodeProtocol) + } + + var seenMaxConcurrentStreams bool + err := f.ForeachSetting(func(s Setting) error { + switch s.ID { + case SettingMaxFrameSize: + cc.maxFrameSize = s.Val + case SettingMaxConcurrentStreams: + cc.maxConcurrentStreams = s.Val + seenMaxConcurrentStreams = true + case SettingMaxHeaderListSize: + cc.peerMaxHeaderListSize = uint64(s.Val) + case SettingInitialWindowSize: + // Values above the maximum flow-control + // window size of 2^31-1 MUST be treated as a + // connection error (Section 5.4.1) of type + // FLOW_CONTROL_ERROR. + if s.Val > math.MaxInt32 { + return ConnectionError(ErrCodeFlowControl) + } + + // Adjust flow control of currently-open + // frames by the difference of the old initial + // window size and this one. + delta := int32(s.Val) - int32(cc.initialWindowSize) + for _, cs := range cc.streams { + cs.flow.add(delta) + } + cc.cond.Broadcast() + + cc.initialWindowSize = s.Val + case SettingHeaderTableSize: + cc.henc.SetMaxDynamicTableSize(s.Val) + cc.peerMaxHeaderTableSize = s.Val + default: + cc.vlogf("Unhandled Setting: %v", s) + } + return nil + }) + if err != nil { + return err + } + + if !cc.seenSettings { + if !seenMaxConcurrentStreams { + // This was the servers initial SETTINGS frame and it + // didn't contain a MAX_CONCURRENT_STREAMS field so + // increase the number of concurrent streams this + // connection can establish to our default. + cc.maxConcurrentStreams = defaultMaxConcurrentStreams + } + cc.seenSettings = true + } + + return nil +} + +func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { + cc := rl.cc + cs := rl.streamByID(f.StreamID) + if f.StreamID != 0 && cs == nil { + return nil + } + + cc.mu.Lock() + defer cc.mu.Unlock() + + fl := &cc.flow + if cs != nil { + fl = &cs.flow + } + if !fl.add(int32(f.Increment)) { + return ConnectionError(ErrCodeFlowControl) + } + cc.cond.Broadcast() + return nil +} + +func (rl *clientConnReadLoop) processResetStream(f *RSTStreamFrame) error { + cs := rl.streamByID(f.StreamID) + if cs == nil { + // TODO: return error if server tries to RST_STREAM an idle stream + return nil + } + serr := streamError(cs.ID, f.ErrCode) + serr.Cause = errFromPeer + if f.ErrCode == ErrCodeProtocol { + rl.cc.SetDoNotReuse() + } + if fn := cs.cc.t.CountError; fn != nil { + fn("recv_rststream_" + f.ErrCode.stringToken()) + } + cs.abortStream(serr) + + cs.bufPipe.CloseWithError(serr) + return nil +} + +// Ping sends a PING frame to the server and waits for the ack. +func (cc *ClientConn) Ping(ctx context.Context) error { + c := make(chan struct{}) + // Generate a random payload + var p [8]byte + for { + if _, err := rand.Read(p[:]); err != nil { + return err + } + cc.mu.Lock() + // check for dup before insert + if _, found := cc.pings[p]; !found { + cc.pings[p] = c + cc.mu.Unlock() + break + } + cc.mu.Unlock() + } + errc := make(chan error, 1) + go func() { + cc.wmu.Lock() + defer cc.wmu.Unlock() + if err := cc.fr.WritePing(false, p); err != nil { + errc <- err + return + } + if err := cc.bw.Flush(); err != nil { + errc <- err + return + } + }() + select { + case <-c: + return nil + case err := <-errc: + return err + case <-ctx.Done(): + return ctx.Err() + case <-cc.readerDone: + // connection closed + return cc.readerErr + } +} + +func (rl *clientConnReadLoop) processPing(f *PingFrame) error { + if f.IsAck() { + cc := rl.cc + cc.mu.Lock() + defer cc.mu.Unlock() + // If ack, notify listener if any + if c, ok := cc.pings[f.Data]; ok { + close(c) + delete(cc.pings, f.Data) + } + return nil + } + cc := rl.cc + cc.wmu.Lock() + defer cc.wmu.Unlock() + if err := cc.fr.WritePing(true, f.Data); err != nil { + return err + } + return cc.bw.Flush() +} + +func (rl *clientConnReadLoop) processPushPromise(f *PushPromiseFrame) error { + // We told the peer we don't want them. + // Spec says: + // "PUSH_PROMISE MUST NOT be sent if the SETTINGS_ENABLE_PUSH + // setting of the peer endpoint is set to 0. An endpoint that + // has set this setting and has received acknowledgement MUST + // treat the receipt of a PUSH_PROMISE frame as a connection + // error (Section 5.4.1) of type PROTOCOL_ERROR." + return ConnectionError(ErrCodeProtocol) +} + +func (cc *ClientConn) writeStreamReset(streamID uint32, code ErrCode, err error) { + // TODO: map err to more interesting error codes, once the + // HTTP community comes up with some. But currently for + // RST_STREAM there's no equivalent to GOAWAY frame's debug + // data, and the error codes are all pretty vague ("cancel"). + cc.wmu.Lock() + cc.fr.WriteRSTStream(streamID, code) + cc.bw.Flush() + cc.wmu.Unlock() +} + +var ( + errResponseHeaderListSize = errors.New("http2: response header list larger than advertised limit") + errRequestHeaderListSize = errors.New("http2: request header list larger than peer's advertised limit") +) + +func (cc *ClientConn) logf(format string, args ...interface{}) { + cc.t.logf(format, args...) +} + +func (cc *ClientConn) vlogf(format string, args ...interface{}) { + cc.t.vlogf(format, args...) +} + +func (t *Transport) vlogf(format string, args ...interface{}) { + if VerboseLogs { + t.logf(format, args...) + } +} + +func (t *Transport) logf(format string, args ...interface{}) { + log.Printf(format, args...) +} + +var noBody io.ReadCloser = noBodyReader{} + +type noBodyReader struct{} + +func (noBodyReader) Close() error { return nil } +func (noBodyReader) Read([]byte) (int, error) { return 0, io.EOF } + +type missingBody struct{} + +func (missingBody) Close() error { return nil } +func (missingBody) Read([]byte) (int, error) { return 0, io.ErrUnexpectedEOF } + +func strSliceContains(ss []string, s string) bool { + for _, v := range ss { + if v == s { + return true + } + } + return false +} + +type erringRoundTripper struct{ err error } + +func (rt erringRoundTripper) RoundTripErr() error { return rt.err } +func (rt erringRoundTripper) RoundTrip(*http.Request) (*http.Response, error) { return nil, rt.err } + +// gzipReader wraps a response body so it can lazily +// call gzip.NewReader on the first call to Read +type gzipReader struct { + _ incomparable + body io.ReadCloser // underlying Response.Body + zr *gzip.Reader // lazily-initialized gzip reader + zerr error // sticky error +} + +func (gz *gzipReader) Read(p []byte) (n int, err error) { + if gz.zerr != nil { + return 0, gz.zerr + } + if gz.zr == nil { + gz.zr, err = gzip.NewReader(gz.body) + if err != nil { + gz.zerr = err + return 0, err + } + } + return gz.zr.Read(p) +} + +func (gz *gzipReader) Close() error { + if err := gz.body.Close(); err != nil { + return err + } + gz.zerr = fs.ErrClosed + return nil +} + +type errorReader struct{ err error } + +func (r errorReader) Read(p []byte) (int, error) { return 0, r.err } + +// isConnectionCloseRequest reports whether req should use its own +// connection for a single request and then close the connection. +func isConnectionCloseRequest(req *http.Request) bool { + return req.Close || httpguts.HeaderValuesContainsToken(req.Header["Connection"], "close") +} + +// registerHTTPSProtocol calls Transport.RegisterProtocol but +// converting panics into errors. +func registerHTTPSProtocol(t *http.Transport, rt noDialH2RoundTripper) (err error) { + defer func() { + if e := recover(); e != nil { + err = fmt.Errorf("%v", e) + } + }() + t.RegisterProtocol("https", rt) + return nil +} + +// noDialH2RoundTripper is a RoundTripper which only tries to complete the request +// if there's already has a cached connection to the host. +// (The field is exported so it can be accessed via reflect from net/http; tested +// by TestNoDialH2RoundTripperType) +type noDialH2RoundTripper struct{ *Transport } + +func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, error) { + res, err := rt.Transport.RoundTrip(req) + if isNoCachedConnError(err) { + return nil, http.ErrSkipAltProtocol + } + return res, err +} + +func (t *Transport) idleConnTimeout() time.Duration { + if t.t1 != nil { + return t.t1.IdleConnTimeout + } + return 0 +} + +func traceGetConn(req *http.Request, hostPort string) { + trace := httptrace.ContextClientTrace(req.Context()) + if trace == nil || trace.GetConn == nil { + return + } + trace.GetConn(hostPort) +} + +func traceGotConn(req *http.Request, cc *ClientConn, reused bool) { + trace := httptrace.ContextClientTrace(req.Context()) + if trace == nil || trace.GotConn == nil { + return + } + ci := httptrace.GotConnInfo{Conn: cc.tconn} + ci.Reused = reused + cc.mu.Lock() + ci.WasIdle = len(cc.streams) == 0 && reused + if ci.WasIdle && !cc.lastActive.IsZero() { + ci.IdleTime = time.Since(cc.lastActive) + } + cc.mu.Unlock() + + trace.GotConn(ci) +} + +func traceWroteHeaders(trace *httptrace.ClientTrace) { + if trace != nil && trace.WroteHeaders != nil { + trace.WroteHeaders() + } +} + +func traceGot100Continue(trace *httptrace.ClientTrace) { + if trace != nil && trace.Got100Continue != nil { + trace.Got100Continue() + } +} + +func traceWait100Continue(trace *httptrace.ClientTrace) { + if trace != nil && trace.Wait100Continue != nil { + trace.Wait100Continue() + } +} + +func traceWroteRequest(trace *httptrace.ClientTrace, err error) { + if trace != nil && trace.WroteRequest != nil { + trace.WroteRequest(httptrace.WroteRequestInfo{Err: err}) + } +} + +func traceFirstResponseByte(trace *httptrace.ClientTrace) { + if trace != nil && trace.GotFirstResponseByte != nil { + trace.GotFirstResponseByte() + } +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/write.go b/ecs-agent/vendor/golang.org/x/net/http2/write.go new file mode 100644 index 0000000000..33f61398a1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/write.go @@ -0,0 +1,370 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "bytes" + "fmt" + "log" + "net/http" + "net/url" + + "golang.org/x/net/http/httpguts" + "golang.org/x/net/http2/hpack" +) + +// writeFramer is implemented by any type that is used to write frames. +type writeFramer interface { + writeFrame(writeContext) error + + // staysWithinBuffer reports whether this writer promises that + // it will only write less than or equal to size bytes, and it + // won't Flush the write context. + staysWithinBuffer(size int) bool +} + +// writeContext is the interface needed by the various frame writer +// types below. All the writeFrame methods below are scheduled via the +// frame writing scheduler (see writeScheduler in writesched.go). +// +// This interface is implemented by *serverConn. +// +// TODO: decide whether to a) use this in the client code (which didn't +// end up using this yet, because it has a simpler design, not +// currently implementing priorities), or b) delete this and +// make the server code a bit more concrete. +type writeContext interface { + Framer() *Framer + Flush() error + CloseConn() error + // HeaderEncoder returns an HPACK encoder that writes to the + // returned buffer. + HeaderEncoder() (*hpack.Encoder, *bytes.Buffer) +} + +// writeEndsStream reports whether w writes a frame that will transition +// the stream to a half-closed local state. This returns false for RST_STREAM, +// which closes the entire stream (not just the local half). +func writeEndsStream(w writeFramer) bool { + switch v := w.(type) { + case *writeData: + return v.endStream + case *writeResHeaders: + return v.endStream + case nil: + // This can only happen if the caller reuses w after it's + // been intentionally nil'ed out to prevent use. Keep this + // here to catch future refactoring breaking it. + panic("writeEndsStream called on nil writeFramer") + } + return false +} + +type flushFrameWriter struct{} + +func (flushFrameWriter) writeFrame(ctx writeContext) error { + return ctx.Flush() +} + +func (flushFrameWriter) staysWithinBuffer(max int) bool { return false } + +type writeSettings []Setting + +func (s writeSettings) staysWithinBuffer(max int) bool { + const settingSize = 6 // uint16 + uint32 + return frameHeaderLen+settingSize*len(s) <= max + +} + +func (s writeSettings) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteSettings([]Setting(s)...) +} + +type writeGoAway struct { + maxStreamID uint32 + code ErrCode +} + +func (p *writeGoAway) writeFrame(ctx writeContext) error { + err := ctx.Framer().WriteGoAway(p.maxStreamID, p.code, nil) + ctx.Flush() // ignore error: we're hanging up on them anyway + return err +} + +func (*writeGoAway) staysWithinBuffer(max int) bool { return false } // flushes + +type writeData struct { + streamID uint32 + p []byte + endStream bool +} + +func (w *writeData) String() string { + return fmt.Sprintf("writeData(stream=%d, p=%d, endStream=%v)", w.streamID, len(w.p), w.endStream) +} + +func (w *writeData) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteData(w.streamID, w.endStream, w.p) +} + +func (w *writeData) staysWithinBuffer(max int) bool { + return frameHeaderLen+len(w.p) <= max +} + +// handlerPanicRST is the message sent from handler goroutines when +// the handler panics. +type handlerPanicRST struct { + StreamID uint32 +} + +func (hp handlerPanicRST) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteRSTStream(hp.StreamID, ErrCodeInternal) +} + +func (hp handlerPanicRST) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } + +func (se StreamError) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteRSTStream(se.StreamID, se.Code) +} + +func (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } + +type writePingAck struct{ pf *PingFrame } + +func (w writePingAck) writeFrame(ctx writeContext) error { + return ctx.Framer().WritePing(true, w.pf.Data) +} + +func (w writePingAck) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.pf.Data) <= max } + +type writeSettingsAck struct{} + +func (writeSettingsAck) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteSettingsAck() +} + +func (writeSettingsAck) staysWithinBuffer(max int) bool { return frameHeaderLen <= max } + +// splitHeaderBlock splits headerBlock into fragments so that each fragment fits +// in a single frame, then calls fn for each fragment. firstFrag/lastFrag are true +// for the first/last fragment, respectively. +func splitHeaderBlock(ctx writeContext, headerBlock []byte, fn func(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error) error { + // For now we're lazy and just pick the minimum MAX_FRAME_SIZE + // that all peers must support (16KB). Later we could care + // more and send larger frames if the peer advertised it, but + // there's little point. Most headers are small anyway (so we + // generally won't have CONTINUATION frames), and extra frames + // only waste 9 bytes anyway. + const maxFrameSize = 16384 + + first := true + for len(headerBlock) > 0 { + frag := headerBlock + if len(frag) > maxFrameSize { + frag = frag[:maxFrameSize] + } + headerBlock = headerBlock[len(frag):] + if err := fn(ctx, frag, first, len(headerBlock) == 0); err != nil { + return err + } + first = false + } + return nil +} + +// writeResHeaders is a request to write a HEADERS and 0+ CONTINUATION frames +// for HTTP response headers or trailers from a server handler. +type writeResHeaders struct { + streamID uint32 + httpResCode int // 0 means no ":status" line + h http.Header // may be nil + trailers []string // if non-nil, which keys of h to write. nil means all. + endStream bool + + date string + contentType string + contentLength string +} + +func encKV(enc *hpack.Encoder, k, v string) { + if VerboseLogs { + log.Printf("http2: server encoding header %q = %q", k, v) + } + enc.WriteField(hpack.HeaderField{Name: k, Value: v}) +} + +func (w *writeResHeaders) staysWithinBuffer(max int) bool { + // TODO: this is a common one. It'd be nice to return true + // here and get into the fast path if we could be clever and + // calculate the size fast enough, or at least a conservative + // upper bound that usually fires. (Maybe if w.h and + // w.trailers are nil, so we don't need to enumerate it.) + // Otherwise I'm afraid that just calculating the length to + // answer this question would be slower than the ~2µs benefit. + return false +} + +func (w *writeResHeaders) writeFrame(ctx writeContext) error { + enc, buf := ctx.HeaderEncoder() + buf.Reset() + + if w.httpResCode != 0 { + encKV(enc, ":status", httpCodeString(w.httpResCode)) + } + + encodeHeaders(enc, w.h, w.trailers) + + if w.contentType != "" { + encKV(enc, "content-type", w.contentType) + } + if w.contentLength != "" { + encKV(enc, "content-length", w.contentLength) + } + if w.date != "" { + encKV(enc, "date", w.date) + } + + headerBlock := buf.Bytes() + if len(headerBlock) == 0 && w.trailers == nil { + panic("unexpected empty hpack") + } + + return splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock) +} + +func (w *writeResHeaders) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error { + if firstFrag { + return ctx.Framer().WriteHeaders(HeadersFrameParam{ + StreamID: w.streamID, + BlockFragment: frag, + EndStream: w.endStream, + EndHeaders: lastFrag, + }) + } else { + return ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag) + } +} + +// writePushPromise is a request to write a PUSH_PROMISE and 0+ CONTINUATION frames. +type writePushPromise struct { + streamID uint32 // pusher stream + method string // for :method + url *url.URL // for :scheme, :authority, :path + h http.Header + + // Creates an ID for a pushed stream. This runs on serveG just before + // the frame is written. The returned ID is copied to promisedID. + allocatePromisedID func() (uint32, error) + promisedID uint32 +} + +func (w *writePushPromise) staysWithinBuffer(max int) bool { + // TODO: see writeResHeaders.staysWithinBuffer + return false +} + +func (w *writePushPromise) writeFrame(ctx writeContext) error { + enc, buf := ctx.HeaderEncoder() + buf.Reset() + + encKV(enc, ":method", w.method) + encKV(enc, ":scheme", w.url.Scheme) + encKV(enc, ":authority", w.url.Host) + encKV(enc, ":path", w.url.RequestURI()) + encodeHeaders(enc, w.h, nil) + + headerBlock := buf.Bytes() + if len(headerBlock) == 0 { + panic("unexpected empty hpack") + } + + return splitHeaderBlock(ctx, headerBlock, w.writeHeaderBlock) +} + +func (w *writePushPromise) writeHeaderBlock(ctx writeContext, frag []byte, firstFrag, lastFrag bool) error { + if firstFrag { + return ctx.Framer().WritePushPromise(PushPromiseParam{ + StreamID: w.streamID, + PromiseID: w.promisedID, + BlockFragment: frag, + EndHeaders: lastFrag, + }) + } else { + return ctx.Framer().WriteContinuation(w.streamID, lastFrag, frag) + } +} + +type write100ContinueHeadersFrame struct { + streamID uint32 +} + +func (w write100ContinueHeadersFrame) writeFrame(ctx writeContext) error { + enc, buf := ctx.HeaderEncoder() + buf.Reset() + encKV(enc, ":status", "100") + return ctx.Framer().WriteHeaders(HeadersFrameParam{ + StreamID: w.streamID, + BlockFragment: buf.Bytes(), + EndStream: false, + EndHeaders: true, + }) +} + +func (w write100ContinueHeadersFrame) staysWithinBuffer(max int) bool { + // Sloppy but conservative: + return 9+2*(len(":status")+len("100")) <= max +} + +type writeWindowUpdate struct { + streamID uint32 // or 0 for conn-level + n uint32 +} + +func (wu writeWindowUpdate) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } + +func (wu writeWindowUpdate) writeFrame(ctx writeContext) error { + return ctx.Framer().WriteWindowUpdate(wu.streamID, wu.n) +} + +// encodeHeaders encodes an http.Header. If keys is not nil, then (k, h[k]) +// is encoded only if k is in keys. +func encodeHeaders(enc *hpack.Encoder, h http.Header, keys []string) { + if keys == nil { + sorter := sorterPool.Get().(*sorter) + // Using defer here, since the returned keys from the + // sorter.Keys method is only valid until the sorter + // is returned: + defer sorterPool.Put(sorter) + keys = sorter.Keys(h) + } + for _, k := range keys { + vv := h[k] + k, ascii := lowerHeader(k) + if !ascii { + // Skip writing invalid headers. Per RFC 7540, Section 8.1.2, header + // field names have to be ASCII characters (just as in HTTP/1.x). + continue + } + if !validWireHeaderFieldName(k) { + // Skip it as backup paranoia. Per + // golang.org/issue/14048, these should + // already be rejected at a higher level. + continue + } + isTE := k == "transfer-encoding" + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + // TODO: return an error? golang.org/issue/14048 + // For now just omit it. + continue + } + // TODO: more of "8.1.2.2 Connection-Specific Header Fields" + if isTE && v != "trailers" { + continue + } + encKV(enc, k, v) + } + } +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/writesched.go b/ecs-agent/vendor/golang.org/x/net/http2/writesched.go new file mode 100644 index 0000000000..c7cd001739 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/writesched.go @@ -0,0 +1,250 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "fmt" + +// WriteScheduler is the interface implemented by HTTP/2 write schedulers. +// Methods are never called concurrently. +type WriteScheduler interface { + // OpenStream opens a new stream in the write scheduler. + // It is illegal to call this with streamID=0 or with a streamID that is + // already open -- the call may panic. + OpenStream(streamID uint32, options OpenStreamOptions) + + // CloseStream closes a stream in the write scheduler. Any frames queued on + // this stream should be discarded. It is illegal to call this on a stream + // that is not open -- the call may panic. + CloseStream(streamID uint32) + + // AdjustStream adjusts the priority of the given stream. This may be called + // on a stream that has not yet been opened or has been closed. Note that + // RFC 7540 allows PRIORITY frames to be sent on streams in any state. See: + // https://tools.ietf.org/html/rfc7540#section-5.1 + AdjustStream(streamID uint32, priority PriorityParam) + + // Push queues a frame in the scheduler. In most cases, this will not be + // called with wr.StreamID()!=0 unless that stream is currently open. The one + // exception is RST_STREAM frames, which may be sent on idle or closed streams. + Push(wr FrameWriteRequest) + + // Pop dequeues the next frame to write. Returns false if no frames can + // be written. Frames with a given wr.StreamID() are Pop'd in the same + // order they are Push'd, except RST_STREAM frames. No frames should be + // discarded except by CloseStream. + Pop() (wr FrameWriteRequest, ok bool) +} + +// OpenStreamOptions specifies extra options for WriteScheduler.OpenStream. +type OpenStreamOptions struct { + // PusherID is zero if the stream was initiated by the client. Otherwise, + // PusherID names the stream that pushed the newly opened stream. + PusherID uint32 +} + +// FrameWriteRequest is a request to write a frame. +type FrameWriteRequest struct { + // write is the interface value that does the writing, once the + // WriteScheduler has selected this frame to write. The write + // functions are all defined in write.go. + write writeFramer + + // stream is the stream on which this frame will be written. + // nil for non-stream frames like PING and SETTINGS. + // nil for RST_STREAM streams, which use the StreamError.StreamID field instead. + stream *stream + + // done, if non-nil, must be a buffered channel with space for + // 1 message and is sent the return value from write (or an + // earlier error) when the frame has been written. + done chan error +} + +// StreamID returns the id of the stream this frame will be written to. +// 0 is used for non-stream frames such as PING and SETTINGS. +func (wr FrameWriteRequest) StreamID() uint32 { + if wr.stream == nil { + if se, ok := wr.write.(StreamError); ok { + // (*serverConn).resetStream doesn't set + // stream because it doesn't necessarily have + // one. So special case this type of write + // message. + return se.StreamID + } + return 0 + } + return wr.stream.id +} + +// isControl reports whether wr is a control frame for MaxQueuedControlFrames +// purposes. That includes non-stream frames and RST_STREAM frames. +func (wr FrameWriteRequest) isControl() bool { + return wr.stream == nil +} + +// DataSize returns the number of flow control bytes that must be consumed +// to write this entire frame. This is 0 for non-DATA frames. +func (wr FrameWriteRequest) DataSize() int { + if wd, ok := wr.write.(*writeData); ok { + return len(wd.p) + } + return 0 +} + +// Consume consumes min(n, available) bytes from this frame, where available +// is the number of flow control bytes available on the stream. Consume returns +// 0, 1, or 2 frames, where the integer return value gives the number of frames +// returned. +// +// If flow control prevents consuming any bytes, this returns (_, _, 0). If +// the entire frame was consumed, this returns (wr, _, 1). Otherwise, this +// returns (consumed, rest, 2), where 'consumed' contains the consumed bytes and +// 'rest' contains the remaining bytes. The consumed bytes are deducted from the +// underlying stream's flow control budget. +func (wr FrameWriteRequest) Consume(n int32) (FrameWriteRequest, FrameWriteRequest, int) { + var empty FrameWriteRequest + + // Non-DATA frames are always consumed whole. + wd, ok := wr.write.(*writeData) + if !ok || len(wd.p) == 0 { + return wr, empty, 1 + } + + // Might need to split after applying limits. + allowed := wr.stream.flow.available() + if n < allowed { + allowed = n + } + if wr.stream.sc.maxFrameSize < allowed { + allowed = wr.stream.sc.maxFrameSize + } + if allowed <= 0 { + return empty, empty, 0 + } + if len(wd.p) > int(allowed) { + wr.stream.flow.take(allowed) + consumed := FrameWriteRequest{ + stream: wr.stream, + write: &writeData{ + streamID: wd.streamID, + p: wd.p[:allowed], + // Even if the original had endStream set, there + // are bytes remaining because len(wd.p) > allowed, + // so we know endStream is false. + endStream: false, + }, + // Our caller is blocking on the final DATA frame, not + // this intermediate frame, so no need to wait. + done: nil, + } + rest := FrameWriteRequest{ + stream: wr.stream, + write: &writeData{ + streamID: wd.streamID, + p: wd.p[allowed:], + endStream: wd.endStream, + }, + done: wr.done, + } + return consumed, rest, 2 + } + + // The frame is consumed whole. + // NB: This cast cannot overflow because allowed is <= math.MaxInt32. + wr.stream.flow.take(int32(len(wd.p))) + return wr, empty, 1 +} + +// String is for debugging only. +func (wr FrameWriteRequest) String() string { + var des string + if s, ok := wr.write.(fmt.Stringer); ok { + des = s.String() + } else { + des = fmt.Sprintf("%T", wr.write) + } + return fmt.Sprintf("[FrameWriteRequest stream=%d, ch=%v, writer=%v]", wr.StreamID(), wr.done != nil, des) +} + +// replyToWriter sends err to wr.done and panics if the send must block +// This does nothing if wr.done is nil. +func (wr *FrameWriteRequest) replyToWriter(err error) { + if wr.done == nil { + return + } + select { + case wr.done <- err: + default: + panic(fmt.Sprintf("unbuffered done channel passed in for type %T", wr.write)) + } + wr.write = nil // prevent use (assume it's tainted after wr.done send) +} + +// writeQueue is used by implementations of WriteScheduler. +type writeQueue struct { + s []FrameWriteRequest +} + +func (q *writeQueue) empty() bool { return len(q.s) == 0 } + +func (q *writeQueue) push(wr FrameWriteRequest) { + q.s = append(q.s, wr) +} + +func (q *writeQueue) shift() FrameWriteRequest { + if len(q.s) == 0 { + panic("invalid use of queue") + } + wr := q.s[0] + // TODO: less copy-happy queue. + copy(q.s, q.s[1:]) + q.s[len(q.s)-1] = FrameWriteRequest{} + q.s = q.s[:len(q.s)-1] + return wr +} + +// consume consumes up to n bytes from q.s[0]. If the frame is +// entirely consumed, it is removed from the queue. If the frame +// is partially consumed, the frame is kept with the consumed +// bytes removed. Returns true iff any bytes were consumed. +func (q *writeQueue) consume(n int32) (FrameWriteRequest, bool) { + if len(q.s) == 0 { + return FrameWriteRequest{}, false + } + consumed, rest, numresult := q.s[0].Consume(n) + switch numresult { + case 0: + return FrameWriteRequest{}, false + case 1: + q.shift() + case 2: + q.s[0] = rest + } + return consumed, true +} + +type writeQueuePool []*writeQueue + +// put inserts an unused writeQueue into the pool. +func (p *writeQueuePool) put(q *writeQueue) { + for i := range q.s { + q.s[i] = FrameWriteRequest{} + } + q.s = q.s[:0] + *p = append(*p, q) +} + +// get returns an empty writeQueue. +func (p *writeQueuePool) get() *writeQueue { + ln := len(*p) + if ln == 0 { + return new(writeQueue) + } + x := ln - 1 + q := (*p)[x] + (*p)[x] = nil + *p = (*p)[:x] + return q +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/writesched_priority.go b/ecs-agent/vendor/golang.org/x/net/http2/writesched_priority.go new file mode 100644 index 0000000000..0a242c669e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/writesched_priority.go @@ -0,0 +1,451 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import ( + "fmt" + "math" + "sort" +) + +// RFC 7540, Section 5.3.5: the default weight is 16. +const priorityDefaultWeight = 15 // 16 = 15 + 1 + +// PriorityWriteSchedulerConfig configures a priorityWriteScheduler. +type PriorityWriteSchedulerConfig struct { + // MaxClosedNodesInTree controls the maximum number of closed streams to + // retain in the priority tree. Setting this to zero saves a small amount + // of memory at the cost of performance. + // + // See RFC 7540, Section 5.3.4: + // "It is possible for a stream to become closed while prioritization + // information ... is in transit. ... This potentially creates suboptimal + // prioritization, since the stream could be given a priority that is + // different from what is intended. To avoid these problems, an endpoint + // SHOULD retain stream prioritization state for a period after streams + // become closed. The longer state is retained, the lower the chance that + // streams are assigned incorrect or default priority values." + MaxClosedNodesInTree int + + // MaxIdleNodesInTree controls the maximum number of idle streams to + // retain in the priority tree. Setting this to zero saves a small amount + // of memory at the cost of performance. + // + // See RFC 7540, Section 5.3.4: + // Similarly, streams that are in the "idle" state can be assigned + // priority or become a parent of other streams. This allows for the + // creation of a grouping node in the dependency tree, which enables + // more flexible expressions of priority. Idle streams begin with a + // default priority (Section 5.3.5). + MaxIdleNodesInTree int + + // ThrottleOutOfOrderWrites enables write throttling to help ensure that + // data is delivered in priority order. This works around a race where + // stream B depends on stream A and both streams are about to call Write + // to queue DATA frames. If B wins the race, a naive scheduler would eagerly + // write as much data from B as possible, but this is suboptimal because A + // is a higher-priority stream. With throttling enabled, we write a small + // amount of data from B to minimize the amount of bandwidth that B can + // steal from A. + ThrottleOutOfOrderWrites bool +} + +// NewPriorityWriteScheduler constructs a WriteScheduler that schedules +// frames by following HTTP/2 priorities as described in RFC 7540 Section 5.3. +// If cfg is nil, default options are used. +func NewPriorityWriteScheduler(cfg *PriorityWriteSchedulerConfig) WriteScheduler { + if cfg == nil { + // For justification of these defaults, see: + // https://docs.google.com/document/d/1oLhNg1skaWD4_DtaoCxdSRN5erEXrH-KnLrMwEpOtFY + cfg = &PriorityWriteSchedulerConfig{ + MaxClosedNodesInTree: 10, + MaxIdleNodesInTree: 10, + ThrottleOutOfOrderWrites: false, + } + } + + ws := &priorityWriteScheduler{ + nodes: make(map[uint32]*priorityNode), + maxClosedNodesInTree: cfg.MaxClosedNodesInTree, + maxIdleNodesInTree: cfg.MaxIdleNodesInTree, + enableWriteThrottle: cfg.ThrottleOutOfOrderWrites, + } + ws.nodes[0] = &ws.root + if cfg.ThrottleOutOfOrderWrites { + ws.writeThrottleLimit = 1024 + } else { + ws.writeThrottleLimit = math.MaxInt32 + } + return ws +} + +type priorityNodeState int + +const ( + priorityNodeOpen priorityNodeState = iota + priorityNodeClosed + priorityNodeIdle +) + +// priorityNode is a node in an HTTP/2 priority tree. +// Each node is associated with a single stream ID. +// See RFC 7540, Section 5.3. +type priorityNode struct { + q writeQueue // queue of pending frames to write + id uint32 // id of the stream, or 0 for the root of the tree + weight uint8 // the actual weight is weight+1, so the value is in [1,256] + state priorityNodeState // open | closed | idle + bytes int64 // number of bytes written by this node, or 0 if closed + subtreeBytes int64 // sum(node.bytes) of all nodes in this subtree + + // These links form the priority tree. + parent *priorityNode + kids *priorityNode // start of the kids list + prev, next *priorityNode // doubly-linked list of siblings +} + +func (n *priorityNode) setParent(parent *priorityNode) { + if n == parent { + panic("setParent to self") + } + if n.parent == parent { + return + } + // Unlink from current parent. + if parent := n.parent; parent != nil { + if n.prev == nil { + parent.kids = n.next + } else { + n.prev.next = n.next + } + if n.next != nil { + n.next.prev = n.prev + } + } + // Link to new parent. + // If parent=nil, remove n from the tree. + // Always insert at the head of parent.kids (this is assumed by walkReadyInOrder). + n.parent = parent + if parent == nil { + n.next = nil + n.prev = nil + } else { + n.next = parent.kids + n.prev = nil + if n.next != nil { + n.next.prev = n + } + parent.kids = n + } +} + +func (n *priorityNode) addBytes(b int64) { + n.bytes += b + for ; n != nil; n = n.parent { + n.subtreeBytes += b + } +} + +// walkReadyInOrder iterates over the tree in priority order, calling f for each node +// with a non-empty write queue. When f returns true, this function returns true and the +// walk halts. tmp is used as scratch space for sorting. +// +// f(n, openParent) takes two arguments: the node to visit, n, and a bool that is true +// if any ancestor p of n is still open (ignoring the root node). +func (n *priorityNode) walkReadyInOrder(openParent bool, tmp *[]*priorityNode, f func(*priorityNode, bool) bool) bool { + if !n.q.empty() && f(n, openParent) { + return true + } + if n.kids == nil { + return false + } + + // Don't consider the root "open" when updating openParent since + // we can't send data frames on the root stream (only control frames). + if n.id != 0 { + openParent = openParent || (n.state == priorityNodeOpen) + } + + // Common case: only one kid or all kids have the same weight. + // Some clients don't use weights; other clients (like web browsers) + // use mostly-linear priority trees. + w := n.kids.weight + needSort := false + for k := n.kids.next; k != nil; k = k.next { + if k.weight != w { + needSort = true + break + } + } + if !needSort { + for k := n.kids; k != nil; k = k.next { + if k.walkReadyInOrder(openParent, tmp, f) { + return true + } + } + return false + } + + // Uncommon case: sort the child nodes. We remove the kids from the parent, + // then re-insert after sorting so we can reuse tmp for future sort calls. + *tmp = (*tmp)[:0] + for n.kids != nil { + *tmp = append(*tmp, n.kids) + n.kids.setParent(nil) + } + sort.Sort(sortPriorityNodeSiblings(*tmp)) + for i := len(*tmp) - 1; i >= 0; i-- { + (*tmp)[i].setParent(n) // setParent inserts at the head of n.kids + } + for k := n.kids; k != nil; k = k.next { + if k.walkReadyInOrder(openParent, tmp, f) { + return true + } + } + return false +} + +type sortPriorityNodeSiblings []*priorityNode + +func (z sortPriorityNodeSiblings) Len() int { return len(z) } +func (z sortPriorityNodeSiblings) Swap(i, k int) { z[i], z[k] = z[k], z[i] } +func (z sortPriorityNodeSiblings) Less(i, k int) bool { + // Prefer the subtree that has sent fewer bytes relative to its weight. + // See sections 5.3.2 and 5.3.4. + wi, bi := float64(z[i].weight+1), float64(z[i].subtreeBytes) + wk, bk := float64(z[k].weight+1), float64(z[k].subtreeBytes) + if bi == 0 && bk == 0 { + return wi >= wk + } + if bk == 0 { + return false + } + return bi/bk <= wi/wk +} + +type priorityWriteScheduler struct { + // root is the root of the priority tree, where root.id = 0. + // The root queues control frames that are not associated with any stream. + root priorityNode + + // nodes maps stream ids to priority tree nodes. + nodes map[uint32]*priorityNode + + // maxID is the maximum stream id in nodes. + maxID uint32 + + // lists of nodes that have been closed or are idle, but are kept in + // the tree for improved prioritization. When the lengths exceed either + // maxClosedNodesInTree or maxIdleNodesInTree, old nodes are discarded. + closedNodes, idleNodes []*priorityNode + + // From the config. + maxClosedNodesInTree int + maxIdleNodesInTree int + writeThrottleLimit int32 + enableWriteThrottle bool + + // tmp is scratch space for priorityNode.walkReadyInOrder to reduce allocations. + tmp []*priorityNode + + // pool of empty queues for reuse. + queuePool writeQueuePool +} + +func (ws *priorityWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { + // The stream may be currently idle but cannot be opened or closed. + if curr := ws.nodes[streamID]; curr != nil { + if curr.state != priorityNodeIdle { + panic(fmt.Sprintf("stream %d already opened", streamID)) + } + curr.state = priorityNodeOpen + return + } + + // RFC 7540, Section 5.3.5: + // "All streams are initially assigned a non-exclusive dependency on stream 0x0. + // Pushed streams initially depend on their associated stream. In both cases, + // streams are assigned a default weight of 16." + parent := ws.nodes[options.PusherID] + if parent == nil { + parent = &ws.root + } + n := &priorityNode{ + q: *ws.queuePool.get(), + id: streamID, + weight: priorityDefaultWeight, + state: priorityNodeOpen, + } + n.setParent(parent) + ws.nodes[streamID] = n + if streamID > ws.maxID { + ws.maxID = streamID + } +} + +func (ws *priorityWriteScheduler) CloseStream(streamID uint32) { + if streamID == 0 { + panic("violation of WriteScheduler interface: cannot close stream 0") + } + if ws.nodes[streamID] == nil { + panic(fmt.Sprintf("violation of WriteScheduler interface: unknown stream %d", streamID)) + } + if ws.nodes[streamID].state != priorityNodeOpen { + panic(fmt.Sprintf("violation of WriteScheduler interface: stream %d already closed", streamID)) + } + + n := ws.nodes[streamID] + n.state = priorityNodeClosed + n.addBytes(-n.bytes) + + q := n.q + ws.queuePool.put(&q) + n.q.s = nil + if ws.maxClosedNodesInTree > 0 { + ws.addClosedOrIdleNode(&ws.closedNodes, ws.maxClosedNodesInTree, n) + } else { + ws.removeNode(n) + } +} + +func (ws *priorityWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) { + if streamID == 0 { + panic("adjustPriority on root") + } + + // If streamID does not exist, there are two cases: + // - A closed stream that has been removed (this will have ID <= maxID) + // - An idle stream that is being used for "grouping" (this will have ID > maxID) + n := ws.nodes[streamID] + if n == nil { + if streamID <= ws.maxID || ws.maxIdleNodesInTree == 0 { + return + } + ws.maxID = streamID + n = &priorityNode{ + q: *ws.queuePool.get(), + id: streamID, + weight: priorityDefaultWeight, + state: priorityNodeIdle, + } + n.setParent(&ws.root) + ws.nodes[streamID] = n + ws.addClosedOrIdleNode(&ws.idleNodes, ws.maxIdleNodesInTree, n) + } + + // Section 5.3.1: A dependency on a stream that is not currently in the tree + // results in that stream being given a default priority (Section 5.3.5). + parent := ws.nodes[priority.StreamDep] + if parent == nil { + n.setParent(&ws.root) + n.weight = priorityDefaultWeight + return + } + + // Ignore if the client tries to make a node its own parent. + if n == parent { + return + } + + // Section 5.3.3: + // "If a stream is made dependent on one of its own dependencies, the + // formerly dependent stream is first moved to be dependent on the + // reprioritized stream's previous parent. The moved dependency retains + // its weight." + // + // That is: if parent depends on n, move parent to depend on n.parent. + for x := parent.parent; x != nil; x = x.parent { + if x == n { + parent.setParent(n.parent) + break + } + } + + // Section 5.3.3: The exclusive flag causes the stream to become the sole + // dependency of its parent stream, causing other dependencies to become + // dependent on the exclusive stream. + if priority.Exclusive { + k := parent.kids + for k != nil { + next := k.next + if k != n { + k.setParent(n) + } + k = next + } + } + + n.setParent(parent) + n.weight = priority.Weight +} + +func (ws *priorityWriteScheduler) Push(wr FrameWriteRequest) { + var n *priorityNode + if wr.isControl() { + n = &ws.root + } else { + id := wr.StreamID() + n = ws.nodes[id] + if n == nil { + // id is an idle or closed stream. wr should not be a HEADERS or + // DATA frame. In other case, we push wr onto the root, rather + // than creating a new priorityNode. + if wr.DataSize() > 0 { + panic("add DATA on non-open stream") + } + n = &ws.root + } + } + n.q.push(wr) +} + +func (ws *priorityWriteScheduler) Pop() (wr FrameWriteRequest, ok bool) { + ws.root.walkReadyInOrder(false, &ws.tmp, func(n *priorityNode, openParent bool) bool { + limit := int32(math.MaxInt32) + if openParent { + limit = ws.writeThrottleLimit + } + wr, ok = n.q.consume(limit) + if !ok { + return false + } + n.addBytes(int64(wr.DataSize())) + // If B depends on A and B continuously has data available but A + // does not, gradually increase the throttling limit to allow B to + // steal more and more bandwidth from A. + if openParent { + ws.writeThrottleLimit += 1024 + if ws.writeThrottleLimit < 0 { + ws.writeThrottleLimit = math.MaxInt32 + } + } else if ws.enableWriteThrottle { + ws.writeThrottleLimit = 1024 + } + return true + }) + return wr, ok +} + +func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, maxSize int, n *priorityNode) { + if maxSize == 0 { + return + } + if len(*list) == maxSize { + // Remove the oldest node, then shift left. + ws.removeNode((*list)[0]) + x := (*list)[1:] + copy(*list, x) + *list = (*list)[:len(x)] + } + *list = append(*list, n) +} + +func (ws *priorityWriteScheduler) removeNode(n *priorityNode) { + for k := n.kids; k != nil; k = k.next { + k.setParent(n.parent) + } + n.setParent(nil) + delete(ws.nodes, n.id) +} diff --git a/ecs-agent/vendor/golang.org/x/net/http2/writesched_random.go b/ecs-agent/vendor/golang.org/x/net/http2/writesched_random.go new file mode 100644 index 0000000000..f2e55e05ce --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/http2/writesched_random.go @@ -0,0 +1,77 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package http2 + +import "math" + +// NewRandomWriteScheduler constructs a WriteScheduler that ignores HTTP/2 +// priorities. Control frames like SETTINGS and PING are written before DATA +// frames, but if no control frames are queued and multiple streams have queued +// HEADERS or DATA frames, Pop selects a ready stream arbitrarily. +func NewRandomWriteScheduler() WriteScheduler { + return &randomWriteScheduler{sq: make(map[uint32]*writeQueue)} +} + +type randomWriteScheduler struct { + // zero are frames not associated with a specific stream. + zero writeQueue + + // sq contains the stream-specific queues, keyed by stream ID. + // When a stream is idle, closed, or emptied, it's deleted + // from the map. + sq map[uint32]*writeQueue + + // pool of empty queues for reuse. + queuePool writeQueuePool +} + +func (ws *randomWriteScheduler) OpenStream(streamID uint32, options OpenStreamOptions) { + // no-op: idle streams are not tracked +} + +func (ws *randomWriteScheduler) CloseStream(streamID uint32) { + q, ok := ws.sq[streamID] + if !ok { + return + } + delete(ws.sq, streamID) + ws.queuePool.put(q) +} + +func (ws *randomWriteScheduler) AdjustStream(streamID uint32, priority PriorityParam) { + // no-op: priorities are ignored +} + +func (ws *randomWriteScheduler) Push(wr FrameWriteRequest) { + if wr.isControl() { + ws.zero.push(wr) + return + } + id := wr.StreamID() + q, ok := ws.sq[id] + if !ok { + q = ws.queuePool.get() + ws.sq[id] = q + } + q.push(wr) +} + +func (ws *randomWriteScheduler) Pop() (FrameWriteRequest, bool) { + // Control and RST_STREAM frames first. + if !ws.zero.empty() { + return ws.zero.shift(), true + } + // Iterate over all non-idle streams until finding one that can be consumed. + for streamID, q := range ws.sq { + if wr, ok := q.consume(math.MaxInt32); ok { + if q.empty() { + delete(ws.sq, streamID) + ws.queuePool.put(q) + } + return wr, true + } + } + return FrameWriteRequest{}, false +} diff --git a/ecs-agent/vendor/golang.org/x/net/internal/timeseries/timeseries.go b/ecs-agent/vendor/golang.org/x/net/internal/timeseries/timeseries.go new file mode 100644 index 0000000000..dc5225b6d4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/internal/timeseries/timeseries.go @@ -0,0 +1,525 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package timeseries implements a time series structure for stats collection. +package timeseries // import "golang.org/x/net/internal/timeseries" + +import ( + "fmt" + "log" + "time" +) + +const ( + timeSeriesNumBuckets = 64 + minuteHourSeriesNumBuckets = 60 +) + +var timeSeriesResolutions = []time.Duration{ + 1 * time.Second, + 10 * time.Second, + 1 * time.Minute, + 10 * time.Minute, + 1 * time.Hour, + 6 * time.Hour, + 24 * time.Hour, // 1 day + 7 * 24 * time.Hour, // 1 week + 4 * 7 * 24 * time.Hour, // 4 weeks + 16 * 7 * 24 * time.Hour, // 16 weeks +} + +var minuteHourSeriesResolutions = []time.Duration{ + 1 * time.Second, + 1 * time.Minute, +} + +// An Observable is a kind of data that can be aggregated in a time series. +type Observable interface { + Multiply(ratio float64) // Multiplies the data in self by a given ratio + Add(other Observable) // Adds the data from a different observation to self + Clear() // Clears the observation so it can be reused. + CopyFrom(other Observable) // Copies the contents of a given observation to self +} + +// Float attaches the methods of Observable to a float64. +type Float float64 + +// NewFloat returns a Float. +func NewFloat() Observable { + f := Float(0) + return &f +} + +// String returns the float as a string. +func (f *Float) String() string { return fmt.Sprintf("%g", f.Value()) } + +// Value returns the float's value. +func (f *Float) Value() float64 { return float64(*f) } + +func (f *Float) Multiply(ratio float64) { *f *= Float(ratio) } + +func (f *Float) Add(other Observable) { + o := other.(*Float) + *f += *o +} + +func (f *Float) Clear() { *f = 0 } + +func (f *Float) CopyFrom(other Observable) { + o := other.(*Float) + *f = *o +} + +// A Clock tells the current time. +type Clock interface { + Time() time.Time +} + +type defaultClock int + +var defaultClockInstance defaultClock + +func (defaultClock) Time() time.Time { return time.Now() } + +// Information kept per level. Each level consists of a circular list of +// observations. The start of the level may be derived from end and the +// len(buckets) * sizeInMillis. +type tsLevel struct { + oldest int // index to oldest bucketed Observable + newest int // index to newest bucketed Observable + end time.Time // end timestamp for this level + size time.Duration // duration of the bucketed Observable + buckets []Observable // collections of observations + provider func() Observable // used for creating new Observable +} + +func (l *tsLevel) Clear() { + l.oldest = 0 + l.newest = len(l.buckets) - 1 + l.end = time.Time{} + for i := range l.buckets { + if l.buckets[i] != nil { + l.buckets[i].Clear() + l.buckets[i] = nil + } + } +} + +func (l *tsLevel) InitLevel(size time.Duration, numBuckets int, f func() Observable) { + l.size = size + l.provider = f + l.buckets = make([]Observable, numBuckets) +} + +// Keeps a sequence of levels. Each level is responsible for storing data at +// a given resolution. For example, the first level stores data at a one +// minute resolution while the second level stores data at a one hour +// resolution. + +// Each level is represented by a sequence of buckets. Each bucket spans an +// interval equal to the resolution of the level. New observations are added +// to the last bucket. +type timeSeries struct { + provider func() Observable // make more Observable + numBuckets int // number of buckets in each level + levels []*tsLevel // levels of bucketed Observable + lastAdd time.Time // time of last Observable tracked + total Observable // convenient aggregation of all Observable + clock Clock // Clock for getting current time + pending Observable // observations not yet bucketed + pendingTime time.Time // what time are we keeping in pending + dirty bool // if there are pending observations +} + +// init initializes a level according to the supplied criteria. +func (ts *timeSeries) init(resolutions []time.Duration, f func() Observable, numBuckets int, clock Clock) { + ts.provider = f + ts.numBuckets = numBuckets + ts.clock = clock + ts.levels = make([]*tsLevel, len(resolutions)) + + for i := range resolutions { + if i > 0 && resolutions[i-1] >= resolutions[i] { + log.Print("timeseries: resolutions must be monotonically increasing") + break + } + newLevel := new(tsLevel) + newLevel.InitLevel(resolutions[i], ts.numBuckets, ts.provider) + ts.levels[i] = newLevel + } + + ts.Clear() +} + +// Clear removes all observations from the time series. +func (ts *timeSeries) Clear() { + ts.lastAdd = time.Time{} + ts.total = ts.resetObservation(ts.total) + ts.pending = ts.resetObservation(ts.pending) + ts.pendingTime = time.Time{} + ts.dirty = false + + for i := range ts.levels { + ts.levels[i].Clear() + } +} + +// Add records an observation at the current time. +func (ts *timeSeries) Add(observation Observable) { + ts.AddWithTime(observation, ts.clock.Time()) +} + +// AddWithTime records an observation at the specified time. +func (ts *timeSeries) AddWithTime(observation Observable, t time.Time) { + + smallBucketDuration := ts.levels[0].size + + if t.After(ts.lastAdd) { + ts.lastAdd = t + } + + if t.After(ts.pendingTime) { + ts.advance(t) + ts.mergePendingUpdates() + ts.pendingTime = ts.levels[0].end + ts.pending.CopyFrom(observation) + ts.dirty = true + } else if t.After(ts.pendingTime.Add(-1 * smallBucketDuration)) { + // The observation is close enough to go into the pending bucket. + // This compensates for clock skewing and small scheduling delays + // by letting the update stay in the fast path. + ts.pending.Add(observation) + ts.dirty = true + } else { + ts.mergeValue(observation, t) + } +} + +// mergeValue inserts the observation at the specified time in the past into all levels. +func (ts *timeSeries) mergeValue(observation Observable, t time.Time) { + for _, level := range ts.levels { + index := (ts.numBuckets - 1) - int(level.end.Sub(t)/level.size) + if 0 <= index && index < ts.numBuckets { + bucketNumber := (level.oldest + index) % ts.numBuckets + if level.buckets[bucketNumber] == nil { + level.buckets[bucketNumber] = level.provider() + } + level.buckets[bucketNumber].Add(observation) + } + } + ts.total.Add(observation) +} + +// mergePendingUpdates applies the pending updates into all levels. +func (ts *timeSeries) mergePendingUpdates() { + if ts.dirty { + ts.mergeValue(ts.pending, ts.pendingTime) + ts.pending = ts.resetObservation(ts.pending) + ts.dirty = false + } +} + +// advance cycles the buckets at each level until the latest bucket in +// each level can hold the time specified. +func (ts *timeSeries) advance(t time.Time) { + if !t.After(ts.levels[0].end) { + return + } + for i := 0; i < len(ts.levels); i++ { + level := ts.levels[i] + if !level.end.Before(t) { + break + } + + // If the time is sufficiently far, just clear the level and advance + // directly. + if !t.Before(level.end.Add(level.size * time.Duration(ts.numBuckets))) { + for _, b := range level.buckets { + ts.resetObservation(b) + } + level.end = time.Unix(0, (t.UnixNano()/level.size.Nanoseconds())*level.size.Nanoseconds()) + } + + for t.After(level.end) { + level.end = level.end.Add(level.size) + level.newest = level.oldest + level.oldest = (level.oldest + 1) % ts.numBuckets + ts.resetObservation(level.buckets[level.newest]) + } + + t = level.end + } +} + +// Latest returns the sum of the num latest buckets from the level. +func (ts *timeSeries) Latest(level, num int) Observable { + now := ts.clock.Time() + if ts.levels[0].end.Before(now) { + ts.advance(now) + } + + ts.mergePendingUpdates() + + result := ts.provider() + l := ts.levels[level] + index := l.newest + + for i := 0; i < num; i++ { + if l.buckets[index] != nil { + result.Add(l.buckets[index]) + } + if index == 0 { + index = ts.numBuckets + } + index-- + } + + return result +} + +// LatestBuckets returns a copy of the num latest buckets from level. +func (ts *timeSeries) LatestBuckets(level, num int) []Observable { + if level < 0 || level > len(ts.levels) { + log.Print("timeseries: bad level argument: ", level) + return nil + } + if num < 0 || num >= ts.numBuckets { + log.Print("timeseries: bad num argument: ", num) + return nil + } + + results := make([]Observable, num) + now := ts.clock.Time() + if ts.levels[0].end.Before(now) { + ts.advance(now) + } + + ts.mergePendingUpdates() + + l := ts.levels[level] + index := l.newest + + for i := 0; i < num; i++ { + result := ts.provider() + results[i] = result + if l.buckets[index] != nil { + result.CopyFrom(l.buckets[index]) + } + + if index == 0 { + index = ts.numBuckets + } + index -= 1 + } + return results +} + +// ScaleBy updates observations by scaling by factor. +func (ts *timeSeries) ScaleBy(factor float64) { + for _, l := range ts.levels { + for i := 0; i < ts.numBuckets; i++ { + l.buckets[i].Multiply(factor) + } + } + + ts.total.Multiply(factor) + ts.pending.Multiply(factor) +} + +// Range returns the sum of observations added over the specified time range. +// If start or finish times don't fall on bucket boundaries of the same +// level, then return values are approximate answers. +func (ts *timeSeries) Range(start, finish time.Time) Observable { + return ts.ComputeRange(start, finish, 1)[0] +} + +// Recent returns the sum of observations from the last delta. +func (ts *timeSeries) Recent(delta time.Duration) Observable { + now := ts.clock.Time() + return ts.Range(now.Add(-delta), now) +} + +// Total returns the total of all observations. +func (ts *timeSeries) Total() Observable { + ts.mergePendingUpdates() + return ts.total +} + +// ComputeRange computes a specified number of values into a slice using +// the observations recorded over the specified time period. The return +// values are approximate if the start or finish times don't fall on the +// bucket boundaries at the same level or if the number of buckets spanning +// the range is not an integral multiple of num. +func (ts *timeSeries) ComputeRange(start, finish time.Time, num int) []Observable { + if start.After(finish) { + log.Printf("timeseries: start > finish, %v>%v", start, finish) + return nil + } + + if num < 0 { + log.Printf("timeseries: num < 0, %v", num) + return nil + } + + results := make([]Observable, num) + + for _, l := range ts.levels { + if !start.Before(l.end.Add(-l.size * time.Duration(ts.numBuckets))) { + ts.extract(l, start, finish, num, results) + return results + } + } + + // Failed to find a level that covers the desired range. So just + // extract from the last level, even if it doesn't cover the entire + // desired range. + ts.extract(ts.levels[len(ts.levels)-1], start, finish, num, results) + + return results +} + +// RecentList returns the specified number of values in slice over the most +// recent time period of the specified range. +func (ts *timeSeries) RecentList(delta time.Duration, num int) []Observable { + if delta < 0 { + return nil + } + now := ts.clock.Time() + return ts.ComputeRange(now.Add(-delta), now, num) +} + +// extract returns a slice of specified number of observations from a given +// level over a given range. +func (ts *timeSeries) extract(l *tsLevel, start, finish time.Time, num int, results []Observable) { + ts.mergePendingUpdates() + + srcInterval := l.size + dstInterval := finish.Sub(start) / time.Duration(num) + dstStart := start + srcStart := l.end.Add(-srcInterval * time.Duration(ts.numBuckets)) + + srcIndex := 0 + + // Where should scanning start? + if dstStart.After(srcStart) { + advance := int(dstStart.Sub(srcStart) / srcInterval) + srcIndex += advance + srcStart = srcStart.Add(time.Duration(advance) * srcInterval) + } + + // The i'th value is computed as show below. + // interval = (finish/start)/num + // i'th value = sum of observation in range + // [ start + i * interval, + // start + (i + 1) * interval ) + for i := 0; i < num; i++ { + results[i] = ts.resetObservation(results[i]) + dstEnd := dstStart.Add(dstInterval) + for srcIndex < ts.numBuckets && srcStart.Before(dstEnd) { + srcEnd := srcStart.Add(srcInterval) + if srcEnd.After(ts.lastAdd) { + srcEnd = ts.lastAdd + } + + if !srcEnd.Before(dstStart) { + srcValue := l.buckets[(srcIndex+l.oldest)%ts.numBuckets] + if !srcStart.Before(dstStart) && !srcEnd.After(dstEnd) { + // dst completely contains src. + if srcValue != nil { + results[i].Add(srcValue) + } + } else { + // dst partially overlaps src. + overlapStart := maxTime(srcStart, dstStart) + overlapEnd := minTime(srcEnd, dstEnd) + base := srcEnd.Sub(srcStart) + fraction := overlapEnd.Sub(overlapStart).Seconds() / base.Seconds() + + used := ts.provider() + if srcValue != nil { + used.CopyFrom(srcValue) + } + used.Multiply(fraction) + results[i].Add(used) + } + + if srcEnd.After(dstEnd) { + break + } + } + srcIndex++ + srcStart = srcStart.Add(srcInterval) + } + dstStart = dstStart.Add(dstInterval) + } +} + +// resetObservation clears the content so the struct may be reused. +func (ts *timeSeries) resetObservation(observation Observable) Observable { + if observation == nil { + observation = ts.provider() + } else { + observation.Clear() + } + return observation +} + +// TimeSeries tracks data at granularities from 1 second to 16 weeks. +type TimeSeries struct { + timeSeries +} + +// NewTimeSeries creates a new TimeSeries using the function provided for creating new Observable. +func NewTimeSeries(f func() Observable) *TimeSeries { + return NewTimeSeriesWithClock(f, defaultClockInstance) +} + +// NewTimeSeriesWithClock creates a new TimeSeries using the function provided for creating new Observable and the clock for +// assigning timestamps. +func NewTimeSeriesWithClock(f func() Observable, clock Clock) *TimeSeries { + ts := new(TimeSeries) + ts.timeSeries.init(timeSeriesResolutions, f, timeSeriesNumBuckets, clock) + return ts +} + +// MinuteHourSeries tracks data at granularities of 1 minute and 1 hour. +type MinuteHourSeries struct { + timeSeries +} + +// NewMinuteHourSeries creates a new MinuteHourSeries using the function provided for creating new Observable. +func NewMinuteHourSeries(f func() Observable) *MinuteHourSeries { + return NewMinuteHourSeriesWithClock(f, defaultClockInstance) +} + +// NewMinuteHourSeriesWithClock creates a new MinuteHourSeries using the function provided for creating new Observable and the clock for +// assigning timestamps. +func NewMinuteHourSeriesWithClock(f func() Observable, clock Clock) *MinuteHourSeries { + ts := new(MinuteHourSeries) + ts.timeSeries.init(minuteHourSeriesResolutions, f, + minuteHourSeriesNumBuckets, clock) + return ts +} + +func (ts *MinuteHourSeries) Minute() Observable { + return ts.timeSeries.Latest(0, 60) +} + +func (ts *MinuteHourSeries) Hour() Observable { + return ts.timeSeries.Latest(1, 60) +} + +func minTime(a, b time.Time) time.Time { + if a.Before(b) { + return a + } + return b +} + +func maxTime(a, b time.Time) time.Time { + if a.After(b) { + return a + } + return b +} diff --git a/ecs-agent/vendor/golang.org/x/net/trace/events.go b/ecs-agent/vendor/golang.org/x/net/trace/events.go new file mode 100644 index 0000000000..c646a6952e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/trace/events.go @@ -0,0 +1,532 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package trace + +import ( + "bytes" + "fmt" + "html/template" + "io" + "log" + "net/http" + "runtime" + "sort" + "strconv" + "strings" + "sync" + "sync/atomic" + "text/tabwriter" + "time" +) + +const maxEventsPerLog = 100 + +type bucket struct { + MaxErrAge time.Duration + String string +} + +var buckets = []bucket{ + {0, "total"}, + {10 * time.Second, "errs<10s"}, + {1 * time.Minute, "errs<1m"}, + {10 * time.Minute, "errs<10m"}, + {1 * time.Hour, "errs<1h"}, + {10 * time.Hour, "errs<10h"}, + {24000 * time.Hour, "errors"}, +} + +// RenderEvents renders the HTML page typically served at /debug/events. +// It does not do any auth checking. The request may be nil. +// +// Most users will use the Events handler. +func RenderEvents(w http.ResponseWriter, req *http.Request, sensitive bool) { + now := time.Now() + data := &struct { + Families []string // family names + Buckets []bucket + Counts [][]int // eventLog count per family/bucket + + // Set when a bucket has been selected. + Family string + Bucket int + EventLogs eventLogs + Expanded bool + }{ + Buckets: buckets, + } + + data.Families = make([]string, 0, len(families)) + famMu.RLock() + for name := range families { + data.Families = append(data.Families, name) + } + famMu.RUnlock() + sort.Strings(data.Families) + + // Count the number of eventLogs in each family for each error age. + data.Counts = make([][]int, len(data.Families)) + for i, name := range data.Families { + // TODO(sameer): move this loop under the family lock. + f := getEventFamily(name) + data.Counts[i] = make([]int, len(data.Buckets)) + for j, b := range data.Buckets { + data.Counts[i][j] = f.Count(now, b.MaxErrAge) + } + } + + if req != nil { + var ok bool + data.Family, data.Bucket, ok = parseEventsArgs(req) + if !ok { + // No-op + } else { + data.EventLogs = getEventFamily(data.Family).Copy(now, buckets[data.Bucket].MaxErrAge) + } + if data.EventLogs != nil { + defer data.EventLogs.Free() + sort.Sort(data.EventLogs) + } + if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { + data.Expanded = exp + } + } + + famMu.RLock() + defer famMu.RUnlock() + if err := eventsTmpl().Execute(w, data); err != nil { + log.Printf("net/trace: Failed executing template: %v", err) + } +} + +func parseEventsArgs(req *http.Request) (fam string, b int, ok bool) { + fam, bStr := req.FormValue("fam"), req.FormValue("b") + if fam == "" || bStr == "" { + return "", 0, false + } + b, err := strconv.Atoi(bStr) + if err != nil || b < 0 || b >= len(buckets) { + return "", 0, false + } + return fam, b, true +} + +// An EventLog provides a log of events associated with a specific object. +type EventLog interface { + // Printf formats its arguments with fmt.Sprintf and adds the + // result to the event log. + Printf(format string, a ...interface{}) + + // Errorf is like Printf, but it marks this event as an error. + Errorf(format string, a ...interface{}) + + // Finish declares that this event log is complete. + // The event log should not be used after calling this method. + Finish() +} + +// NewEventLog returns a new EventLog with the specified family name +// and title. +func NewEventLog(family, title string) EventLog { + el := newEventLog() + el.ref() + el.Family, el.Title = family, title + el.Start = time.Now() + el.events = make([]logEntry, 0, maxEventsPerLog) + el.stack = make([]uintptr, 32) + n := runtime.Callers(2, el.stack) + el.stack = el.stack[:n] + + getEventFamily(family).add(el) + return el +} + +func (el *eventLog) Finish() { + getEventFamily(el.Family).remove(el) + el.unref() // matches ref in New +} + +var ( + famMu sync.RWMutex + families = make(map[string]*eventFamily) // family name => family +) + +func getEventFamily(fam string) *eventFamily { + famMu.Lock() + defer famMu.Unlock() + f := families[fam] + if f == nil { + f = &eventFamily{} + families[fam] = f + } + return f +} + +type eventFamily struct { + mu sync.RWMutex + eventLogs eventLogs +} + +func (f *eventFamily) add(el *eventLog) { + f.mu.Lock() + f.eventLogs = append(f.eventLogs, el) + f.mu.Unlock() +} + +func (f *eventFamily) remove(el *eventLog) { + f.mu.Lock() + defer f.mu.Unlock() + for i, el0 := range f.eventLogs { + if el == el0 { + copy(f.eventLogs[i:], f.eventLogs[i+1:]) + f.eventLogs = f.eventLogs[:len(f.eventLogs)-1] + return + } + } +} + +func (f *eventFamily) Count(now time.Time, maxErrAge time.Duration) (n int) { + f.mu.RLock() + defer f.mu.RUnlock() + for _, el := range f.eventLogs { + if el.hasRecentError(now, maxErrAge) { + n++ + } + } + return +} + +func (f *eventFamily) Copy(now time.Time, maxErrAge time.Duration) (els eventLogs) { + f.mu.RLock() + defer f.mu.RUnlock() + els = make(eventLogs, 0, len(f.eventLogs)) + for _, el := range f.eventLogs { + if el.hasRecentError(now, maxErrAge) { + el.ref() + els = append(els, el) + } + } + return +} + +type eventLogs []*eventLog + +// Free calls unref on each element of the list. +func (els eventLogs) Free() { + for _, el := range els { + el.unref() + } +} + +// eventLogs may be sorted in reverse chronological order. +func (els eventLogs) Len() int { return len(els) } +func (els eventLogs) Less(i, j int) bool { return els[i].Start.After(els[j].Start) } +func (els eventLogs) Swap(i, j int) { els[i], els[j] = els[j], els[i] } + +// A logEntry is a timestamped log entry in an event log. +type logEntry struct { + When time.Time + Elapsed time.Duration // since previous event in log + NewDay bool // whether this event is on a different day to the previous event + What string + IsErr bool +} + +// WhenString returns a string representation of the elapsed time of the event. +// It will include the date if midnight was crossed. +func (e logEntry) WhenString() string { + if e.NewDay { + return e.When.Format("2006/01/02 15:04:05.000000") + } + return e.When.Format("15:04:05.000000") +} + +// An eventLog represents an active event log. +type eventLog struct { + // Family is the top-level grouping of event logs to which this belongs. + Family string + + // Title is the title of this event log. + Title string + + // Timing information. + Start time.Time + + // Call stack where this event log was created. + stack []uintptr + + // Append-only sequence of events. + // + // TODO(sameer): change this to a ring buffer to avoid the array copy + // when we hit maxEventsPerLog. + mu sync.RWMutex + events []logEntry + LastErrorTime time.Time + discarded int + + refs int32 // how many buckets this is in +} + +func (el *eventLog) reset() { + // Clear all but the mutex. Mutexes may not be copied, even when unlocked. + el.Family = "" + el.Title = "" + el.Start = time.Time{} + el.stack = nil + el.events = nil + el.LastErrorTime = time.Time{} + el.discarded = 0 + el.refs = 0 +} + +func (el *eventLog) hasRecentError(now time.Time, maxErrAge time.Duration) bool { + if maxErrAge == 0 { + return true + } + el.mu.RLock() + defer el.mu.RUnlock() + return now.Sub(el.LastErrorTime) < maxErrAge +} + +// delta returns the elapsed time since the last event or the log start, +// and whether it spans midnight. +// L >= el.mu +func (el *eventLog) delta(t time.Time) (time.Duration, bool) { + if len(el.events) == 0 { + return t.Sub(el.Start), false + } + prev := el.events[len(el.events)-1].When + return t.Sub(prev), prev.Day() != t.Day() + +} + +func (el *eventLog) Printf(format string, a ...interface{}) { + el.printf(false, format, a...) +} + +func (el *eventLog) Errorf(format string, a ...interface{}) { + el.printf(true, format, a...) +} + +func (el *eventLog) printf(isErr bool, format string, a ...interface{}) { + e := logEntry{When: time.Now(), IsErr: isErr, What: fmt.Sprintf(format, a...)} + el.mu.Lock() + e.Elapsed, e.NewDay = el.delta(e.When) + if len(el.events) < maxEventsPerLog { + el.events = append(el.events, e) + } else { + // Discard the oldest event. + if el.discarded == 0 { + // el.discarded starts at two to count for the event it + // is replacing, plus the next one that we are about to + // drop. + el.discarded = 2 + } else { + el.discarded++ + } + // TODO(sameer): if this causes allocations on a critical path, + // change eventLog.What to be a fmt.Stringer, as in trace.go. + el.events[0].What = fmt.Sprintf("(%d events discarded)", el.discarded) + // The timestamp of the discarded meta-event should be + // the time of the last event it is representing. + el.events[0].When = el.events[1].When + copy(el.events[1:], el.events[2:]) + el.events[maxEventsPerLog-1] = e + } + if e.IsErr { + el.LastErrorTime = e.When + } + el.mu.Unlock() +} + +func (el *eventLog) ref() { + atomic.AddInt32(&el.refs, 1) +} + +func (el *eventLog) unref() { + if atomic.AddInt32(&el.refs, -1) == 0 { + freeEventLog(el) + } +} + +func (el *eventLog) When() string { + return el.Start.Format("2006/01/02 15:04:05.000000") +} + +func (el *eventLog) ElapsedTime() string { + elapsed := time.Since(el.Start) + return fmt.Sprintf("%.6f", elapsed.Seconds()) +} + +func (el *eventLog) Stack() string { + buf := new(bytes.Buffer) + tw := tabwriter.NewWriter(buf, 1, 8, 1, '\t', 0) + printStackRecord(tw, el.stack) + tw.Flush() + return buf.String() +} + +// printStackRecord prints the function + source line information +// for a single stack trace. +// Adapted from runtime/pprof/pprof.go. +func printStackRecord(w io.Writer, stk []uintptr) { + for _, pc := range stk { + f := runtime.FuncForPC(pc) + if f == nil { + continue + } + file, line := f.FileLine(pc) + name := f.Name() + // Hide runtime.goexit and any runtime functions at the beginning. + if strings.HasPrefix(name, "runtime.") { + continue + } + fmt.Fprintf(w, "# %s\t%s:%d\n", name, file, line) + } +} + +func (el *eventLog) Events() []logEntry { + el.mu.RLock() + defer el.mu.RUnlock() + return el.events +} + +// freeEventLogs is a freelist of *eventLog +var freeEventLogs = make(chan *eventLog, 1000) + +// newEventLog returns a event log ready to use. +func newEventLog() *eventLog { + select { + case el := <-freeEventLogs: + return el + default: + return new(eventLog) + } +} + +// freeEventLog adds el to freeEventLogs if there's room. +// This is non-blocking. +func freeEventLog(el *eventLog) { + el.reset() + select { + case freeEventLogs <- el: + default: + } +} + +var eventsTmplCache *template.Template +var eventsTmplOnce sync.Once + +func eventsTmpl() *template.Template { + eventsTmplOnce.Do(func() { + eventsTmplCache = template.Must(template.New("events").Funcs(template.FuncMap{ + "elapsed": elapsed, + "trimSpace": strings.TrimSpace, + }).Parse(eventsHTML)) + }) + return eventsTmplCache +} + +const eventsHTML = ` + + + events + + + + +

    /debug/events

    + + + {{range $i, $fam := .Families}} + + + + {{range $j, $bucket := $.Buckets}} + {{$n := index $.Counts $i $j}} + + {{end}} + + {{end}} +
    {{$fam}} + {{if $n}}{{end}} + [{{$n}} {{$bucket.String}}] + {{if $n}}{{end}} +
    + +{{if $.EventLogs}} +
    +

    Family: {{$.Family}}

    + +{{if $.Expanded}}
    {{end}} +[Summary]{{if $.Expanded}}{{end}} + +{{if not $.Expanded}}{{end}} +[Expanded]{{if not $.Expanded}}{{end}} + + + + {{range $el := $.EventLogs}} + + + + + {{if $.Expanded}} + + + + + + {{range $el.Events}} + + + + + + {{end}} + {{end}} + {{end}} +
    WhenElapsed
    {{$el.When}}{{$el.ElapsedTime}}{{$el.Title}} +
    {{$el.Stack|trimSpace}}
    {{.WhenString}}{{elapsed .Elapsed}}.{{if .IsErr}}E{{else}}.{{end}}. {{.What}}
    +{{end}} + + +` diff --git a/ecs-agent/vendor/golang.org/x/net/trace/histogram.go b/ecs-agent/vendor/golang.org/x/net/trace/histogram.go new file mode 100644 index 0000000000..d6c71101e4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/trace/histogram.go @@ -0,0 +1,365 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package trace + +// This file implements histogramming for RPC statistics collection. + +import ( + "bytes" + "fmt" + "html/template" + "log" + "math" + "sync" + + "golang.org/x/net/internal/timeseries" +) + +const ( + bucketCount = 38 +) + +// histogram keeps counts of values in buckets that are spaced +// out in powers of 2: 0-1, 2-3, 4-7... +// histogram implements timeseries.Observable +type histogram struct { + sum int64 // running total of measurements + sumOfSquares float64 // square of running total + buckets []int64 // bucketed values for histogram + value int // holds a single value as an optimization + valueCount int64 // number of values recorded for single value +} + +// addMeasurement records a value measurement observation to the histogram. +func (h *histogram) addMeasurement(value int64) { + // TODO: assert invariant + h.sum += value + h.sumOfSquares += float64(value) * float64(value) + + bucketIndex := getBucket(value) + + if h.valueCount == 0 || (h.valueCount > 0 && h.value == bucketIndex) { + h.value = bucketIndex + h.valueCount++ + } else { + h.allocateBuckets() + h.buckets[bucketIndex]++ + } +} + +func (h *histogram) allocateBuckets() { + if h.buckets == nil { + h.buckets = make([]int64, bucketCount) + h.buckets[h.value] = h.valueCount + h.value = 0 + h.valueCount = -1 + } +} + +func log2(i int64) int { + n := 0 + for ; i >= 0x100; i >>= 8 { + n += 8 + } + for ; i > 0; i >>= 1 { + n += 1 + } + return n +} + +func getBucket(i int64) (index int) { + index = log2(i) - 1 + if index < 0 { + index = 0 + } + if index >= bucketCount { + index = bucketCount - 1 + } + return +} + +// Total returns the number of recorded observations. +func (h *histogram) total() (total int64) { + if h.valueCount >= 0 { + total = h.valueCount + } + for _, val := range h.buckets { + total += int64(val) + } + return +} + +// Average returns the average value of recorded observations. +func (h *histogram) average() float64 { + t := h.total() + if t == 0 { + return 0 + } + return float64(h.sum) / float64(t) +} + +// Variance returns the variance of recorded observations. +func (h *histogram) variance() float64 { + t := float64(h.total()) + if t == 0 { + return 0 + } + s := float64(h.sum) / t + return h.sumOfSquares/t - s*s +} + +// StandardDeviation returns the standard deviation of recorded observations. +func (h *histogram) standardDeviation() float64 { + return math.Sqrt(h.variance()) +} + +// PercentileBoundary estimates the value that the given fraction of recorded +// observations are less than. +func (h *histogram) percentileBoundary(percentile float64) int64 { + total := h.total() + + // Corner cases (make sure result is strictly less than Total()) + if total == 0 { + return 0 + } else if total == 1 { + return int64(h.average()) + } + + percentOfTotal := round(float64(total) * percentile) + var runningTotal int64 + + for i := range h.buckets { + value := h.buckets[i] + runningTotal += value + if runningTotal == percentOfTotal { + // We hit an exact bucket boundary. If the next bucket has data, it is a + // good estimate of the value. If the bucket is empty, we interpolate the + // midpoint between the next bucket's boundary and the next non-zero + // bucket. If the remaining buckets are all empty, then we use the + // boundary for the next bucket as the estimate. + j := uint8(i + 1) + min := bucketBoundary(j) + if runningTotal < total { + for h.buckets[j] == 0 { + j++ + } + } + max := bucketBoundary(j) + return min + round(float64(max-min)/2) + } else if runningTotal > percentOfTotal { + // The value is in this bucket. Interpolate the value. + delta := runningTotal - percentOfTotal + percentBucket := float64(value-delta) / float64(value) + bucketMin := bucketBoundary(uint8(i)) + nextBucketMin := bucketBoundary(uint8(i + 1)) + bucketSize := nextBucketMin - bucketMin + return bucketMin + round(percentBucket*float64(bucketSize)) + } + } + return bucketBoundary(bucketCount - 1) +} + +// Median returns the estimated median of the observed values. +func (h *histogram) median() int64 { + return h.percentileBoundary(0.5) +} + +// Add adds other to h. +func (h *histogram) Add(other timeseries.Observable) { + o := other.(*histogram) + if o.valueCount == 0 { + // Other histogram is empty + } else if h.valueCount >= 0 && o.valueCount > 0 && h.value == o.value { + // Both have a single bucketed value, aggregate them + h.valueCount += o.valueCount + } else { + // Two different values necessitate buckets in this histogram + h.allocateBuckets() + if o.valueCount >= 0 { + h.buckets[o.value] += o.valueCount + } else { + for i := range h.buckets { + h.buckets[i] += o.buckets[i] + } + } + } + h.sumOfSquares += o.sumOfSquares + h.sum += o.sum +} + +// Clear resets the histogram to an empty state, removing all observed values. +func (h *histogram) Clear() { + h.buckets = nil + h.value = 0 + h.valueCount = 0 + h.sum = 0 + h.sumOfSquares = 0 +} + +// CopyFrom copies from other, which must be a *histogram, into h. +func (h *histogram) CopyFrom(other timeseries.Observable) { + o := other.(*histogram) + if o.valueCount == -1 { + h.allocateBuckets() + copy(h.buckets, o.buckets) + } + h.sum = o.sum + h.sumOfSquares = o.sumOfSquares + h.value = o.value + h.valueCount = o.valueCount +} + +// Multiply scales the histogram by the specified ratio. +func (h *histogram) Multiply(ratio float64) { + if h.valueCount == -1 { + for i := range h.buckets { + h.buckets[i] = int64(float64(h.buckets[i]) * ratio) + } + } else { + h.valueCount = int64(float64(h.valueCount) * ratio) + } + h.sum = int64(float64(h.sum) * ratio) + h.sumOfSquares = h.sumOfSquares * ratio +} + +// New creates a new histogram. +func (h *histogram) New() timeseries.Observable { + r := new(histogram) + r.Clear() + return r +} + +func (h *histogram) String() string { + return fmt.Sprintf("%d, %f, %d, %d, %v", + h.sum, h.sumOfSquares, h.value, h.valueCount, h.buckets) +} + +// round returns the closest int64 to the argument +func round(in float64) int64 { + return int64(math.Floor(in + 0.5)) +} + +// bucketBoundary returns the first value in the bucket. +func bucketBoundary(bucket uint8) int64 { + if bucket == 0 { + return 0 + } + return 1 << bucket +} + +// bucketData holds data about a specific bucket for use in distTmpl. +type bucketData struct { + Lower, Upper int64 + N int64 + Pct, CumulativePct float64 + GraphWidth int +} + +// data holds data about a Distribution for use in distTmpl. +type data struct { + Buckets []*bucketData + Count, Median int64 + Mean, StandardDeviation float64 +} + +// maxHTMLBarWidth is the maximum width of the HTML bar for visualizing buckets. +const maxHTMLBarWidth = 350.0 + +// newData returns data representing h for use in distTmpl. +func (h *histogram) newData() *data { + // Force the allocation of buckets to simplify the rendering implementation + h.allocateBuckets() + // We scale the bars on the right so that the largest bar is + // maxHTMLBarWidth pixels in width. + maxBucket := int64(0) + for _, n := range h.buckets { + if n > maxBucket { + maxBucket = n + } + } + total := h.total() + barsizeMult := maxHTMLBarWidth / float64(maxBucket) + var pctMult float64 + if total == 0 { + pctMult = 1.0 + } else { + pctMult = 100.0 / float64(total) + } + + buckets := make([]*bucketData, len(h.buckets)) + runningTotal := int64(0) + for i, n := range h.buckets { + if n == 0 { + continue + } + runningTotal += n + var upperBound int64 + if i < bucketCount-1 { + upperBound = bucketBoundary(uint8(i + 1)) + } else { + upperBound = math.MaxInt64 + } + buckets[i] = &bucketData{ + Lower: bucketBoundary(uint8(i)), + Upper: upperBound, + N: n, + Pct: float64(n) * pctMult, + CumulativePct: float64(runningTotal) * pctMult, + GraphWidth: int(float64(n) * barsizeMult), + } + } + return &data{ + Buckets: buckets, + Count: total, + Median: h.median(), + Mean: h.average(), + StandardDeviation: h.standardDeviation(), + } +} + +func (h *histogram) html() template.HTML { + buf := new(bytes.Buffer) + if err := distTmpl().Execute(buf, h.newData()); err != nil { + buf.Reset() + log.Printf("net/trace: couldn't execute template: %v", err) + } + return template.HTML(buf.String()) +} + +var distTmplCache *template.Template +var distTmplOnce sync.Once + +func distTmpl() *template.Template { + distTmplOnce.Do(func() { + // Input: data + distTmplCache = template.Must(template.New("distTmpl").Parse(` + + + + + + + +
    Count: {{.Count}}Mean: {{printf "%.0f" .Mean}}StdDev: {{printf "%.0f" .StandardDeviation}}Median: {{.Median}}
    +
    + +{{range $b := .Buckets}} +{{if $b}} + + + + + + + + + +{{end}} +{{end}} +
    [{{.Lower}},{{.Upper}}){{.N}}{{printf "%#.3f" .Pct}}%{{printf "%#.3f" .CumulativePct}}%
    +`)) + }) + return distTmplCache +} diff --git a/ecs-agent/vendor/golang.org/x/net/trace/trace.go b/ecs-agent/vendor/golang.org/x/net/trace/trace.go new file mode 100644 index 0000000000..eae2a99f54 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/net/trace/trace.go @@ -0,0 +1,1130 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package trace implements tracing of requests and long-lived objects. +It exports HTTP interfaces on /debug/requests and /debug/events. + +A trace.Trace provides tracing for short-lived objects, usually requests. +A request handler might be implemented like this: + + func fooHandler(w http.ResponseWriter, req *http.Request) { + tr := trace.New("mypkg.Foo", req.URL.Path) + defer tr.Finish() + ... + tr.LazyPrintf("some event %q happened", str) + ... + if err := somethingImportant(); err != nil { + tr.LazyPrintf("somethingImportant failed: %v", err) + tr.SetError() + } + } + +The /debug/requests HTTP endpoint organizes the traces by family, +errors, and duration. It also provides histogram of request duration +for each family. + +A trace.EventLog provides tracing for long-lived objects, such as RPC +connections. + + // A Fetcher fetches URL paths for a single domain. + type Fetcher struct { + domain string + events trace.EventLog + } + + func NewFetcher(domain string) *Fetcher { + return &Fetcher{ + domain, + trace.NewEventLog("mypkg.Fetcher", domain), + } + } + + func (f *Fetcher) Fetch(path string) (string, error) { + resp, err := http.Get("http://" + f.domain + "/" + path) + if err != nil { + f.events.Errorf("Get(%q) = %v", path, err) + return "", err + } + f.events.Printf("Get(%q) = %s", path, resp.Status) + ... + } + + func (f *Fetcher) Close() error { + f.events.Finish() + return nil + } + +The /debug/events HTTP endpoint organizes the event logs by family and +by time since the last error. The expanded view displays recent log +entries and the log's call stack. +*/ +package trace // import "golang.org/x/net/trace" + +import ( + "bytes" + "context" + "fmt" + "html/template" + "io" + "log" + "net" + "net/http" + "net/url" + "runtime" + "sort" + "strconv" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/internal/timeseries" +) + +// DebugUseAfterFinish controls whether to debug uses of Trace values after finishing. +// FOR DEBUGGING ONLY. This will slow down the program. +var DebugUseAfterFinish = false + +// HTTP ServeMux paths. +const ( + debugRequestsPath = "/debug/requests" + debugEventsPath = "/debug/events" +) + +// AuthRequest determines whether a specific request is permitted to load the +// /debug/requests or /debug/events pages. +// +// It returns two bools; the first indicates whether the page may be viewed at all, +// and the second indicates whether sensitive events will be shown. +// +// AuthRequest may be replaced by a program to customize its authorization requirements. +// +// The default AuthRequest function returns (true, true) if and only if the request +// comes from localhost/127.0.0.1/[::1]. +var AuthRequest = func(req *http.Request) (any, sensitive bool) { + // RemoteAddr is commonly in the form "IP" or "IP:port". + // If it is in the form "IP:port", split off the port. + host, _, err := net.SplitHostPort(req.RemoteAddr) + if err != nil { + host = req.RemoteAddr + } + switch host { + case "localhost", "127.0.0.1", "::1": + return true, true + default: + return false, false + } +} + +func init() { + _, pat := http.DefaultServeMux.Handler(&http.Request{URL: &url.URL{Path: debugRequestsPath}}) + if pat == debugRequestsPath { + panic("/debug/requests is already registered. You may have two independent copies of " + + "golang.org/x/net/trace in your binary, trying to maintain separate state. This may " + + "involve a vendored copy of golang.org/x/net/trace.") + } + + // TODO(jbd): Serve Traces from /debug/traces in the future? + // There is no requirement for a request to be present to have traces. + http.HandleFunc(debugRequestsPath, Traces) + http.HandleFunc(debugEventsPath, Events) +} + +// NewContext returns a copy of the parent context +// and associates it with a Trace. +func NewContext(ctx context.Context, tr Trace) context.Context { + return context.WithValue(ctx, contextKey, tr) +} + +// FromContext returns the Trace bound to the context, if any. +func FromContext(ctx context.Context) (tr Trace, ok bool) { + tr, ok = ctx.Value(contextKey).(Trace) + return +} + +// Traces responds with traces from the program. +// The package initialization registers it in http.DefaultServeMux +// at /debug/requests. +// +// It performs authorization by running AuthRequest. +func Traces(w http.ResponseWriter, req *http.Request) { + any, sensitive := AuthRequest(req) + if !any { + http.Error(w, "not allowed", http.StatusUnauthorized) + return + } + w.Header().Set("Content-Type", "text/html; charset=utf-8") + Render(w, req, sensitive) +} + +// Events responds with a page of events collected by EventLogs. +// The package initialization registers it in http.DefaultServeMux +// at /debug/events. +// +// It performs authorization by running AuthRequest. +func Events(w http.ResponseWriter, req *http.Request) { + any, sensitive := AuthRequest(req) + if !any { + http.Error(w, "not allowed", http.StatusUnauthorized) + return + } + w.Header().Set("Content-Type", "text/html; charset=utf-8") + RenderEvents(w, req, sensitive) +} + +// Render renders the HTML page typically served at /debug/requests. +// It does not do any auth checking. The request may be nil. +// +// Most users will use the Traces handler. +func Render(w io.Writer, req *http.Request, sensitive bool) { + data := &struct { + Families []string + ActiveTraceCount map[string]int + CompletedTraces map[string]*family + + // Set when a bucket has been selected. + Traces traceList + Family string + Bucket int + Expanded bool + Traced bool + Active bool + ShowSensitive bool // whether to show sensitive events + + Histogram template.HTML + HistogramWindow string // e.g. "last minute", "last hour", "all time" + + // If non-zero, the set of traces is a partial set, + // and this is the total number. + Total int + }{ + CompletedTraces: completedTraces, + } + + data.ShowSensitive = sensitive + if req != nil { + // Allow show_sensitive=0 to force hiding of sensitive data for testing. + // This only goes one way; you can't use show_sensitive=1 to see things. + if req.FormValue("show_sensitive") == "0" { + data.ShowSensitive = false + } + + if exp, err := strconv.ParseBool(req.FormValue("exp")); err == nil { + data.Expanded = exp + } + if exp, err := strconv.ParseBool(req.FormValue("rtraced")); err == nil { + data.Traced = exp + } + } + + completedMu.RLock() + data.Families = make([]string, 0, len(completedTraces)) + for fam := range completedTraces { + data.Families = append(data.Families, fam) + } + completedMu.RUnlock() + sort.Strings(data.Families) + + // We are careful here to minimize the time spent locking activeMu, + // since that lock is required every time an RPC starts and finishes. + data.ActiveTraceCount = make(map[string]int, len(data.Families)) + activeMu.RLock() + for fam, s := range activeTraces { + data.ActiveTraceCount[fam] = s.Len() + } + activeMu.RUnlock() + + var ok bool + data.Family, data.Bucket, ok = parseArgs(req) + switch { + case !ok: + // No-op + case data.Bucket == -1: + data.Active = true + n := data.ActiveTraceCount[data.Family] + data.Traces = getActiveTraces(data.Family) + if len(data.Traces) < n { + data.Total = n + } + case data.Bucket < bucketsPerFamily: + if b := lookupBucket(data.Family, data.Bucket); b != nil { + data.Traces = b.Copy(data.Traced) + } + default: + if f := getFamily(data.Family, false); f != nil { + var obs timeseries.Observable + f.LatencyMu.RLock() + switch o := data.Bucket - bucketsPerFamily; o { + case 0: + obs = f.Latency.Minute() + data.HistogramWindow = "last minute" + case 1: + obs = f.Latency.Hour() + data.HistogramWindow = "last hour" + case 2: + obs = f.Latency.Total() + data.HistogramWindow = "all time" + } + f.LatencyMu.RUnlock() + if obs != nil { + data.Histogram = obs.(*histogram).html() + } + } + } + + if data.Traces != nil { + defer data.Traces.Free() + sort.Sort(data.Traces) + } + + completedMu.RLock() + defer completedMu.RUnlock() + if err := pageTmpl().ExecuteTemplate(w, "Page", data); err != nil { + log.Printf("net/trace: Failed executing template: %v", err) + } +} + +func parseArgs(req *http.Request) (fam string, b int, ok bool) { + if req == nil { + return "", 0, false + } + fam, bStr := req.FormValue("fam"), req.FormValue("b") + if fam == "" || bStr == "" { + return "", 0, false + } + b, err := strconv.Atoi(bStr) + if err != nil || b < -1 { + return "", 0, false + } + + return fam, b, true +} + +func lookupBucket(fam string, b int) *traceBucket { + f := getFamily(fam, false) + if f == nil || b < 0 || b >= len(f.Buckets) { + return nil + } + return f.Buckets[b] +} + +type contextKeyT string + +var contextKey = contextKeyT("golang.org/x/net/trace.Trace") + +// Trace represents an active request. +type Trace interface { + // LazyLog adds x to the event log. It will be evaluated each time the + // /debug/requests page is rendered. Any memory referenced by x will be + // pinned until the trace is finished and later discarded. + LazyLog(x fmt.Stringer, sensitive bool) + + // LazyPrintf evaluates its arguments with fmt.Sprintf each time the + // /debug/requests page is rendered. Any memory referenced by a will be + // pinned until the trace is finished and later discarded. + LazyPrintf(format string, a ...interface{}) + + // SetError declares that this trace resulted in an error. + SetError() + + // SetRecycler sets a recycler for the trace. + // f will be called for each event passed to LazyLog at a time when + // it is no longer required, whether while the trace is still active + // and the event is discarded, or when a completed trace is discarded. + SetRecycler(f func(interface{})) + + // SetTraceInfo sets the trace info for the trace. + // This is currently unused. + SetTraceInfo(traceID, spanID uint64) + + // SetMaxEvents sets the maximum number of events that will be stored + // in the trace. This has no effect if any events have already been + // added to the trace. + SetMaxEvents(m int) + + // Finish declares that this trace is complete. + // The trace should not be used after calling this method. + Finish() +} + +type lazySprintf struct { + format string + a []interface{} +} + +func (l *lazySprintf) String() string { + return fmt.Sprintf(l.format, l.a...) +} + +// New returns a new Trace with the specified family and title. +func New(family, title string) Trace { + tr := newTrace() + tr.ref() + tr.Family, tr.Title = family, title + tr.Start = time.Now() + tr.maxEvents = maxEventsPerTrace + tr.events = tr.eventsBuf[:0] + + activeMu.RLock() + s := activeTraces[tr.Family] + activeMu.RUnlock() + if s == nil { + activeMu.Lock() + s = activeTraces[tr.Family] // check again + if s == nil { + s = new(traceSet) + activeTraces[tr.Family] = s + } + activeMu.Unlock() + } + s.Add(tr) + + // Trigger allocation of the completed trace structure for this family. + // This will cause the family to be present in the request page during + // the first trace of this family. We don't care about the return value, + // nor is there any need for this to run inline, so we execute it in its + // own goroutine, but only if the family isn't allocated yet. + completedMu.RLock() + if _, ok := completedTraces[tr.Family]; !ok { + go allocFamily(tr.Family) + } + completedMu.RUnlock() + + return tr +} + +func (tr *trace) Finish() { + elapsed := time.Since(tr.Start) + tr.mu.Lock() + tr.Elapsed = elapsed + tr.mu.Unlock() + + if DebugUseAfterFinish { + buf := make([]byte, 4<<10) // 4 KB should be enough + n := runtime.Stack(buf, false) + tr.finishStack = buf[:n] + } + + activeMu.RLock() + m := activeTraces[tr.Family] + activeMu.RUnlock() + m.Remove(tr) + + f := getFamily(tr.Family, true) + tr.mu.RLock() // protects tr fields in Cond.match calls + for _, b := range f.Buckets { + if b.Cond.match(tr) { + b.Add(tr) + } + } + tr.mu.RUnlock() + + // Add a sample of elapsed time as microseconds to the family's timeseries + h := new(histogram) + h.addMeasurement(elapsed.Nanoseconds() / 1e3) + f.LatencyMu.Lock() + f.Latency.Add(h) + f.LatencyMu.Unlock() + + tr.unref() // matches ref in New +} + +const ( + bucketsPerFamily = 9 + tracesPerBucket = 10 + maxActiveTraces = 20 // Maximum number of active traces to show. + maxEventsPerTrace = 10 + numHistogramBuckets = 38 +) + +var ( + // The active traces. + activeMu sync.RWMutex + activeTraces = make(map[string]*traceSet) // family -> traces + + // Families of completed traces. + completedMu sync.RWMutex + completedTraces = make(map[string]*family) // family -> traces +) + +type traceSet struct { + mu sync.RWMutex + m map[*trace]bool + + // We could avoid the entire map scan in FirstN by having a slice of all the traces + // ordered by start time, and an index into that from the trace struct, with a periodic + // repack of the slice after enough traces finish; we could also use a skip list or similar. + // However, that would shift some of the expense from /debug/requests time to RPC time, + // which is probably the wrong trade-off. +} + +func (ts *traceSet) Len() int { + ts.mu.RLock() + defer ts.mu.RUnlock() + return len(ts.m) +} + +func (ts *traceSet) Add(tr *trace) { + ts.mu.Lock() + if ts.m == nil { + ts.m = make(map[*trace]bool) + } + ts.m[tr] = true + ts.mu.Unlock() +} + +func (ts *traceSet) Remove(tr *trace) { + ts.mu.Lock() + delete(ts.m, tr) + ts.mu.Unlock() +} + +// FirstN returns the first n traces ordered by time. +func (ts *traceSet) FirstN(n int) traceList { + ts.mu.RLock() + defer ts.mu.RUnlock() + + if n > len(ts.m) { + n = len(ts.m) + } + trl := make(traceList, 0, n) + + // Fast path for when no selectivity is needed. + if n == len(ts.m) { + for tr := range ts.m { + tr.ref() + trl = append(trl, tr) + } + sort.Sort(trl) + return trl + } + + // Pick the oldest n traces. + // This is inefficient. See the comment in the traceSet struct. + for tr := range ts.m { + // Put the first n traces into trl in the order they occur. + // When we have n, sort trl, and thereafter maintain its order. + if len(trl) < n { + tr.ref() + trl = append(trl, tr) + if len(trl) == n { + // This is guaranteed to happen exactly once during this loop. + sort.Sort(trl) + } + continue + } + if tr.Start.After(trl[n-1].Start) { + continue + } + + // Find where to insert this one. + tr.ref() + i := sort.Search(n, func(i int) bool { return trl[i].Start.After(tr.Start) }) + trl[n-1].unref() + copy(trl[i+1:], trl[i:]) + trl[i] = tr + } + + return trl +} + +func getActiveTraces(fam string) traceList { + activeMu.RLock() + s := activeTraces[fam] + activeMu.RUnlock() + if s == nil { + return nil + } + return s.FirstN(maxActiveTraces) +} + +func getFamily(fam string, allocNew bool) *family { + completedMu.RLock() + f := completedTraces[fam] + completedMu.RUnlock() + if f == nil && allocNew { + f = allocFamily(fam) + } + return f +} + +func allocFamily(fam string) *family { + completedMu.Lock() + defer completedMu.Unlock() + f := completedTraces[fam] + if f == nil { + f = newFamily() + completedTraces[fam] = f + } + return f +} + +// family represents a set of trace buckets and associated latency information. +type family struct { + // traces may occur in multiple buckets. + Buckets [bucketsPerFamily]*traceBucket + + // latency time series + LatencyMu sync.RWMutex + Latency *timeseries.MinuteHourSeries +} + +func newFamily() *family { + return &family{ + Buckets: [bucketsPerFamily]*traceBucket{ + {Cond: minCond(0)}, + {Cond: minCond(50 * time.Millisecond)}, + {Cond: minCond(100 * time.Millisecond)}, + {Cond: minCond(200 * time.Millisecond)}, + {Cond: minCond(500 * time.Millisecond)}, + {Cond: minCond(1 * time.Second)}, + {Cond: minCond(10 * time.Second)}, + {Cond: minCond(100 * time.Second)}, + {Cond: errorCond{}}, + }, + Latency: timeseries.NewMinuteHourSeries(func() timeseries.Observable { return new(histogram) }), + } +} + +// traceBucket represents a size-capped bucket of historic traces, +// along with a condition for a trace to belong to the bucket. +type traceBucket struct { + Cond cond + + // Ring buffer implementation of a fixed-size FIFO queue. + mu sync.RWMutex + buf [tracesPerBucket]*trace + start int // < tracesPerBucket + length int // <= tracesPerBucket +} + +func (b *traceBucket) Add(tr *trace) { + b.mu.Lock() + defer b.mu.Unlock() + + i := b.start + b.length + if i >= tracesPerBucket { + i -= tracesPerBucket + } + if b.length == tracesPerBucket { + // "Remove" an element from the bucket. + b.buf[i].unref() + b.start++ + if b.start == tracesPerBucket { + b.start = 0 + } + } + b.buf[i] = tr + if b.length < tracesPerBucket { + b.length++ + } + tr.ref() +} + +// Copy returns a copy of the traces in the bucket. +// If tracedOnly is true, only the traces with trace information will be returned. +// The logs will be ref'd before returning; the caller should call +// the Free method when it is done with them. +// TODO(dsymonds): keep track of traced requests in separate buckets. +func (b *traceBucket) Copy(tracedOnly bool) traceList { + b.mu.RLock() + defer b.mu.RUnlock() + + trl := make(traceList, 0, b.length) + for i, x := 0, b.start; i < b.length; i++ { + tr := b.buf[x] + if !tracedOnly || tr.spanID != 0 { + tr.ref() + trl = append(trl, tr) + } + x++ + if x == b.length { + x = 0 + } + } + return trl +} + +func (b *traceBucket) Empty() bool { + b.mu.RLock() + defer b.mu.RUnlock() + return b.length == 0 +} + +// cond represents a condition on a trace. +type cond interface { + match(t *trace) bool + String() string +} + +type minCond time.Duration + +func (m minCond) match(t *trace) bool { return t.Elapsed >= time.Duration(m) } +func (m minCond) String() string { return fmt.Sprintf("≥%gs", time.Duration(m).Seconds()) } + +type errorCond struct{} + +func (e errorCond) match(t *trace) bool { return t.IsError } +func (e errorCond) String() string { return "errors" } + +type traceList []*trace + +// Free calls unref on each element of the list. +func (trl traceList) Free() { + for _, t := range trl { + t.unref() + } +} + +// traceList may be sorted in reverse chronological order. +func (trl traceList) Len() int { return len(trl) } +func (trl traceList) Less(i, j int) bool { return trl[i].Start.After(trl[j].Start) } +func (trl traceList) Swap(i, j int) { trl[i], trl[j] = trl[j], trl[i] } + +// An event is a timestamped log entry in a trace. +type event struct { + When time.Time + Elapsed time.Duration // since previous event in trace + NewDay bool // whether this event is on a different day to the previous event + Recyclable bool // whether this event was passed via LazyLog + Sensitive bool // whether this event contains sensitive information + What interface{} // string or fmt.Stringer +} + +// WhenString returns a string representation of the elapsed time of the event. +// It will include the date if midnight was crossed. +func (e event) WhenString() string { + if e.NewDay { + return e.When.Format("2006/01/02 15:04:05.000000") + } + return e.When.Format("15:04:05.000000") +} + +// discarded represents a number of discarded events. +// It is stored as *discarded to make it easier to update in-place. +type discarded int + +func (d *discarded) String() string { + return fmt.Sprintf("(%d events discarded)", int(*d)) +} + +// trace represents an active or complete request, +// either sent or received by this program. +type trace struct { + // Family is the top-level grouping of traces to which this belongs. + Family string + + // Title is the title of this trace. + Title string + + // Start time of the this trace. + Start time.Time + + mu sync.RWMutex + events []event // Append-only sequence of events (modulo discards). + maxEvents int + recycler func(interface{}) + IsError bool // Whether this trace resulted in an error. + Elapsed time.Duration // Elapsed time for this trace, zero while active. + traceID uint64 // Trace information if non-zero. + spanID uint64 + + refs int32 // how many buckets this is in + disc discarded // scratch space to avoid allocation + + finishStack []byte // where finish was called, if DebugUseAfterFinish is set + + eventsBuf [4]event // preallocated buffer in case we only log a few events +} + +func (tr *trace) reset() { + // Clear all but the mutex. Mutexes may not be copied, even when unlocked. + tr.Family = "" + tr.Title = "" + tr.Start = time.Time{} + + tr.mu.Lock() + tr.Elapsed = 0 + tr.traceID = 0 + tr.spanID = 0 + tr.IsError = false + tr.maxEvents = 0 + tr.events = nil + tr.recycler = nil + tr.mu.Unlock() + + tr.refs = 0 + tr.disc = 0 + tr.finishStack = nil + for i := range tr.eventsBuf { + tr.eventsBuf[i] = event{} + } +} + +// delta returns the elapsed time since the last event or the trace start, +// and whether it spans midnight. +// L >= tr.mu +func (tr *trace) delta(t time.Time) (time.Duration, bool) { + if len(tr.events) == 0 { + return t.Sub(tr.Start), false + } + prev := tr.events[len(tr.events)-1].When + return t.Sub(prev), prev.Day() != t.Day() +} + +func (tr *trace) addEvent(x interface{}, recyclable, sensitive bool) { + if DebugUseAfterFinish && tr.finishStack != nil { + buf := make([]byte, 4<<10) // 4 KB should be enough + n := runtime.Stack(buf, false) + log.Printf("net/trace: trace used after finish:\nFinished at:\n%s\nUsed at:\n%s", tr.finishStack, buf[:n]) + } + + /* + NOTE TO DEBUGGERS + + If you are here because your program panicked in this code, + it is almost definitely the fault of code using this package, + and very unlikely to be the fault of this code. + + The most likely scenario is that some code elsewhere is using + a trace.Trace after its Finish method is called. + You can temporarily set the DebugUseAfterFinish var + to help discover where that is; do not leave that var set, + since it makes this package much less efficient. + */ + + e := event{When: time.Now(), What: x, Recyclable: recyclable, Sensitive: sensitive} + tr.mu.Lock() + e.Elapsed, e.NewDay = tr.delta(e.When) + if len(tr.events) < tr.maxEvents { + tr.events = append(tr.events, e) + } else { + // Discard the middle events. + di := int((tr.maxEvents - 1) / 2) + if d, ok := tr.events[di].What.(*discarded); ok { + (*d)++ + } else { + // disc starts at two to count for the event it is replacing, + // plus the next one that we are about to drop. + tr.disc = 2 + if tr.recycler != nil && tr.events[di].Recyclable { + go tr.recycler(tr.events[di].What) + } + tr.events[di].What = &tr.disc + } + // The timestamp of the discarded meta-event should be + // the time of the last event it is representing. + tr.events[di].When = tr.events[di+1].When + + if tr.recycler != nil && tr.events[di+1].Recyclable { + go tr.recycler(tr.events[di+1].What) + } + copy(tr.events[di+1:], tr.events[di+2:]) + tr.events[tr.maxEvents-1] = e + } + tr.mu.Unlock() +} + +func (tr *trace) LazyLog(x fmt.Stringer, sensitive bool) { + tr.addEvent(x, true, sensitive) +} + +func (tr *trace) LazyPrintf(format string, a ...interface{}) { + tr.addEvent(&lazySprintf{format, a}, false, false) +} + +func (tr *trace) SetError() { + tr.mu.Lock() + tr.IsError = true + tr.mu.Unlock() +} + +func (tr *trace) SetRecycler(f func(interface{})) { + tr.mu.Lock() + tr.recycler = f + tr.mu.Unlock() +} + +func (tr *trace) SetTraceInfo(traceID, spanID uint64) { + tr.mu.Lock() + tr.traceID, tr.spanID = traceID, spanID + tr.mu.Unlock() +} + +func (tr *trace) SetMaxEvents(m int) { + tr.mu.Lock() + // Always keep at least three events: first, discarded count, last. + if len(tr.events) == 0 && m > 3 { + tr.maxEvents = m + } + tr.mu.Unlock() +} + +func (tr *trace) ref() { + atomic.AddInt32(&tr.refs, 1) +} + +func (tr *trace) unref() { + if atomic.AddInt32(&tr.refs, -1) == 0 { + tr.mu.RLock() + if tr.recycler != nil { + // freeTrace clears tr, so we hold tr.recycler and tr.events here. + go func(f func(interface{}), es []event) { + for _, e := range es { + if e.Recyclable { + f(e.What) + } + } + }(tr.recycler, tr.events) + } + tr.mu.RUnlock() + + freeTrace(tr) + } +} + +func (tr *trace) When() string { + return tr.Start.Format("2006/01/02 15:04:05.000000") +} + +func (tr *trace) ElapsedTime() string { + tr.mu.RLock() + t := tr.Elapsed + tr.mu.RUnlock() + + if t == 0 { + // Active trace. + t = time.Since(tr.Start) + } + return fmt.Sprintf("%.6f", t.Seconds()) +} + +func (tr *trace) Events() []event { + tr.mu.RLock() + defer tr.mu.RUnlock() + return tr.events +} + +var traceFreeList = make(chan *trace, 1000) // TODO(dsymonds): Use sync.Pool? + +// newTrace returns a trace ready to use. +func newTrace() *trace { + select { + case tr := <-traceFreeList: + return tr + default: + return new(trace) + } +} + +// freeTrace adds tr to traceFreeList if there's room. +// This is non-blocking. +func freeTrace(tr *trace) { + if DebugUseAfterFinish { + return // never reuse + } + tr.reset() + select { + case traceFreeList <- tr: + default: + } +} + +func elapsed(d time.Duration) string { + b := []byte(fmt.Sprintf("%.6f", d.Seconds())) + + // For subsecond durations, blank all zeros before decimal point, + // and all zeros between the decimal point and the first non-zero digit. + if d < time.Second { + dot := bytes.IndexByte(b, '.') + for i := 0; i < dot; i++ { + b[i] = ' ' + } + for i := dot + 1; i < len(b); i++ { + if b[i] == '0' { + b[i] = ' ' + } else { + break + } + } + } + + return string(b) +} + +var pageTmplCache *template.Template +var pageTmplOnce sync.Once + +func pageTmpl() *template.Template { + pageTmplOnce.Do(func() { + pageTmplCache = template.Must(template.New("Page").Funcs(template.FuncMap{ + "elapsed": elapsed, + "add": func(a, b int) int { return a + b }, + }).Parse(pageHTML)) + }) + return pageTmplCache +} + +const pageHTML = ` +{{template "Prolog" .}} +{{template "StatusTable" .}} +{{template "Epilog" .}} + +{{define "Prolog"}} + + + /debug/requests + + + + +

    /debug/requests

    +{{end}} {{/* end of Prolog */}} + +{{define "StatusTable"}} + + {{range $fam := .Families}} + + + + {{$n := index $.ActiveTraceCount $fam}} + + + {{$f := index $.CompletedTraces $fam}} + {{range $i, $b := $f.Buckets}} + {{$empty := $b.Empty}} + + {{end}} + + {{$nb := len $f.Buckets}} + + + + + + {{end}} +
    {{$fam}} + {{if $n}}{{end}} + [{{$n}} active] + {{if $n}}{{end}} + + {{if not $empty}}{{end}} + [{{.Cond}}] + {{if not $empty}}{{end}} + + [minute] + + [hour] + + [total] +
    +{{end}} {{/* end of StatusTable */}} + +{{define "Epilog"}} +{{if $.Traces}} +
    +

    Family: {{$.Family}}

    + +{{if or $.Expanded $.Traced}} + [Normal/Summary] +{{else}} + [Normal/Summary] +{{end}} + +{{if or (not $.Expanded) $.Traced}} + [Normal/Expanded] +{{else}} + [Normal/Expanded] +{{end}} + +{{if not $.Active}} + {{if or $.Expanded (not $.Traced)}} + [Traced/Summary] + {{else}} + [Traced/Summary] + {{end}} + {{if or (not $.Expanded) (not $.Traced)}} + [Traced/Expanded] + {{else}} + [Traced/Expanded] + {{end}} +{{end}} + +{{if $.Total}} +

    Showing {{len $.Traces}} of {{$.Total}} traces.

    +{{end}} + + + + + {{range $tr := $.Traces}} + + + + + {{/* TODO: include traceID/spanID */}} + + {{if $.Expanded}} + {{range $tr.Events}} + + + + + + {{end}} + {{end}} + {{end}} +
    + {{if $.Active}}Active{{else}}Completed{{end}} Requests +
    WhenElapsed (s)
    {{$tr.When}}{{$tr.ElapsedTime}}{{$tr.Title}}
    {{.WhenString}}{{elapsed .Elapsed}}{{if or $.ShowSensitive (not .Sensitive)}}... {{.What}}{{else}}[redacted]{{end}}
    +{{end}} {{/* if $.Traces */}} + +{{if $.Histogram}} +

    Latency (µs) of {{$.Family}} over {{$.HistogramWindow}}

    +{{$.Histogram}} +{{end}} {{/* if $.Histogram */}} + + + +{{end}} {{/* end of Epilog */}} +` diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/.gitignore b/ecs-agent/vendor/golang.org/x/sys/unix/.gitignore new file mode 100644 index 0000000000..e3e0fc6f89 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/.gitignore @@ -0,0 +1,2 @@ +_obj/ +unix.test diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/README.md b/ecs-agent/vendor/golang.org/x/sys/unix/README.md new file mode 100644 index 0000000000..7d3c060e12 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/README.md @@ -0,0 +1,184 @@ +# Building `sys/unix` + +The sys/unix package provides access to the raw system call interface of the +underlying operating system. See: https://godoc.org/golang.org/x/sys/unix + +Porting Go to a new architecture/OS combination or adding syscalls, types, or +constants to an existing architecture/OS pair requires some manual effort; +however, there are tools that automate much of the process. + +## Build Systems + +There are currently two ways we generate the necessary files. We are currently +migrating the build system to use containers so the builds are reproducible. +This is being done on an OS-by-OS basis. Please update this documentation as +components of the build system change. + +### Old Build System (currently for `GOOS != "linux"`) + +The old build system generates the Go files based on the C header files +present on your system. This means that files +for a given GOOS/GOARCH pair must be generated on a system with that OS and +architecture. This also means that the generated code can differ from system +to system, based on differences in the header files. + +To avoid this, if you are using the old build system, only generate the Go +files on an installation with unmodified header files. It is also important to +keep track of which version of the OS the files were generated from (ex. +Darwin 14 vs Darwin 15). This makes it easier to track the progress of changes +and have each OS upgrade correspond to a single change. + +To build the files for your current OS and architecture, make sure GOOS and +GOARCH are set correctly and run `mkall.sh`. This will generate the files for +your specific system. Running `mkall.sh -n` shows the commands that will be run. + +Requirements: bash, go + +### New Build System (currently for `GOOS == "linux"`) + +The new build system uses a Docker container to generate the go files directly +from source checkouts of the kernel and various system libraries. This means +that on any platform that supports Docker, all the files using the new build +system can be generated at once, and generated files will not change based on +what the person running the scripts has installed on their computer. + +The OS specific files for the new build system are located in the `${GOOS}` +directory, and the build is coordinated by the `${GOOS}/mkall.go` program. When +the kernel or system library updates, modify the Dockerfile at +`${GOOS}/Dockerfile` to checkout the new release of the source. + +To build all the files under the new build system, you must be on an amd64/Linux +system and have your GOOS and GOARCH set accordingly. Running `mkall.sh` will +then generate all of the files for all of the GOOS/GOARCH pairs in the new build +system. Running `mkall.sh -n` shows the commands that will be run. + +Requirements: bash, go, docker + +## Component files + +This section describes the various files used in the code generation process. +It also contains instructions on how to modify these files to add a new +architecture/OS or to add additional syscalls, types, or constants. Note that +if you are using the new build system, the scripts/programs cannot be called normally. +They must be called from within the docker container. + +### asm files + +The hand-written assembly file at `asm_${GOOS}_${GOARCH}.s` implements system +call dispatch. There are three entry points: +``` + func Syscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) + func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, err uintptr) + func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2, err uintptr) +``` +The first and second are the standard ones; they differ only in how many +arguments can be passed to the kernel. The third is for low-level use by the +ForkExec wrapper. Unlike the first two, it does not call into the scheduler to +let it know that a system call is running. + +When porting Go to a new architecture/OS, this file must be implemented for +each GOOS/GOARCH pair. + +### mksysnum + +Mksysnum is a Go program located at `${GOOS}/mksysnum.go` (or `mksysnum_${GOOS}.go` +for the old system). This program takes in a list of header files containing the +syscall number declarations and parses them to produce the corresponding list of +Go numeric constants. See `zsysnum_${GOOS}_${GOARCH}.go` for the generated +constants. + +Adding new syscall numbers is mostly done by running the build on a sufficiently +new installation of the target OS (or updating the source checkouts for the +new build system). However, depending on the OS, you may need to update the +parsing in mksysnum. + +### mksyscall.go + +The `syscall.go`, `syscall_${GOOS}.go`, `syscall_${GOOS}_${GOARCH}.go` are +hand-written Go files which implement system calls (for unix, the specific OS, +or the specific OS/Architecture pair respectively) that need special handling +and list `//sys` comments giving prototypes for ones that can be generated. + +The mksyscall.go program takes the `//sys` and `//sysnb` comments and converts +them into syscalls. This requires the name of the prototype in the comment to +match a syscall number in the `zsysnum_${GOOS}_${GOARCH}.go` file. The function +prototype can be exported (capitalized) or not. + +Adding a new syscall often just requires adding a new `//sys` function prototype +with the desired arguments and a capitalized name so it is exported. However, if +you want the interface to the syscall to be different, often one will make an +unexported `//sys` prototype, and then write a custom wrapper in +`syscall_${GOOS}.go`. + +### types files + +For each OS, there is a hand-written Go file at `${GOOS}/types.go` (or +`types_${GOOS}.go` on the old system). This file includes standard C headers and +creates Go type aliases to the corresponding C types. The file is then fed +through godef to get the Go compatible definitions. Finally, the generated code +is fed though mkpost.go to format the code correctly and remove any hidden or +private identifiers. This cleaned-up code is written to +`ztypes_${GOOS}_${GOARCH}.go`. + +The hardest part about preparing this file is figuring out which headers to +include and which symbols need to be `#define`d to get the actual data +structures that pass through to the kernel system calls. Some C libraries +preset alternate versions for binary compatibility and translate them on the +way in and out of system calls, but there is almost always a `#define` that can +get the real ones. +See `types_darwin.go` and `linux/types.go` for examples. + +To add a new type, add in the necessary include statement at the top of the +file (if it is not already there) and add in a type alias line. Note that if +your type is significantly different on different architectures, you may need +some `#if/#elif` macros in your include statements. + +### mkerrors.sh + +This script is used to generate the system's various constants. This doesn't +just include the error numbers and error strings, but also the signal numbers +and a wide variety of miscellaneous constants. The constants come from the list +of include files in the `includes_${uname}` variable. A regex then picks out +the desired `#define` statements, and generates the corresponding Go constants. +The error numbers and strings are generated from `#include `, and the +signal numbers and strings are generated from `#include `. All of +these constants are written to `zerrors_${GOOS}_${GOARCH}.go` via a C program, +`_errors.c`, which prints out all the constants. + +To add a constant, add the header that includes it to the appropriate variable. +Then, edit the regex (if necessary) to match the desired constant. Avoid making +the regex too broad to avoid matching unintended constants. + +### internal/mkmerge + +This program is used to extract duplicate const, func, and type declarations +from the generated architecture-specific files listed below, and merge these +into a common file for each OS. + +The merge is performed in the following steps: +1. Construct the set of common code that is idential in all architecture-specific files. +2. Write this common code to the merged file. +3. Remove the common code from all architecture-specific files. + + +## Generated files + +### `zerrors_${GOOS}_${GOARCH}.go` + +A file containing all of the system's generated error numbers, error strings, +signal numbers, and constants. Generated by `mkerrors.sh` (see above). + +### `zsyscall_${GOOS}_${GOARCH}.go` + +A file containing all the generated syscalls for a specific GOOS and GOARCH. +Generated by `mksyscall.go` (see above). + +### `zsysnum_${GOOS}_${GOARCH}.go` + +A list of numeric constants for all the syscall number of the specific GOOS +and GOARCH. Generated by mksysnum (see above). + +### `ztypes_${GOOS}_${GOARCH}.go` + +A file containing Go types for passing into (or returning from) syscalls. +Generated by godefs and the types file (see above). diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/affinity_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/affinity_linux.go new file mode 100644 index 0000000000..6e5c81acd0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/affinity_linux.go @@ -0,0 +1,86 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// CPU affinity functions + +package unix + +import ( + "math/bits" + "unsafe" +) + +const cpuSetSize = _CPU_SETSIZE / _NCPUBITS + +// CPUSet represents a CPU affinity mask. +type CPUSet [cpuSetSize]cpuMask + +func schedAffinity(trap uintptr, pid int, set *CPUSet) error { + _, _, e := RawSyscall(trap, uintptr(pid), uintptr(unsafe.Sizeof(*set)), uintptr(unsafe.Pointer(set))) + if e != 0 { + return errnoErr(e) + } + return nil +} + +// SchedGetaffinity gets the CPU affinity mask of the thread specified by pid. +// If pid is 0 the calling thread is used. +func SchedGetaffinity(pid int, set *CPUSet) error { + return schedAffinity(SYS_SCHED_GETAFFINITY, pid, set) +} + +// SchedSetaffinity sets the CPU affinity mask of the thread specified by pid. +// If pid is 0 the calling thread is used. +func SchedSetaffinity(pid int, set *CPUSet) error { + return schedAffinity(SYS_SCHED_SETAFFINITY, pid, set) +} + +// Zero clears the set s, so that it contains no CPUs. +func (s *CPUSet) Zero() { + for i := range s { + s[i] = 0 + } +} + +func cpuBitsIndex(cpu int) int { + return cpu / _NCPUBITS +} + +func cpuBitsMask(cpu int) cpuMask { + return cpuMask(1 << (uint(cpu) % _NCPUBITS)) +} + +// Set adds cpu to the set s. +func (s *CPUSet) Set(cpu int) { + i := cpuBitsIndex(cpu) + if i < len(s) { + s[i] |= cpuBitsMask(cpu) + } +} + +// Clear removes cpu from the set s. +func (s *CPUSet) Clear(cpu int) { + i := cpuBitsIndex(cpu) + if i < len(s) { + s[i] &^= cpuBitsMask(cpu) + } +} + +// IsSet reports whether cpu is in the set s. +func (s *CPUSet) IsSet(cpu int) bool { + i := cpuBitsIndex(cpu) + if i < len(s) { + return s[i]&cpuBitsMask(cpu) != 0 + } + return false +} + +// Count returns the number of CPUs in the set s. +func (s *CPUSet) Count() int { + c := 0 + for _, b := range s { + c += bits.OnesCount64(uint64(b)) + } + return c +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/aliases.go b/ecs-agent/vendor/golang.org/x/sys/unix/aliases.go new file mode 100644 index 0000000000..abc89c104a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/aliases.go @@ -0,0 +1,15 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos) && go1.9 +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos +// +build go1.9 + +package unix + +import "syscall" + +type Signal = syscall.Signal +type Errno = syscall.Errno +type SysProcAttr = syscall.SysProcAttr diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s new file mode 100644 index 0000000000..db9171c2e4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s @@ -0,0 +1,18 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +// +build gc + +#include "textflag.h" + +// +// System calls for ppc64, AIX are implemented in runtime/syscall_aix.go +// + +TEXT ·syscall6(SB),NOSPLIT,$0-88 + JMP syscall·syscall6(SB) + +TEXT ·rawSyscall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_386.s new file mode 100644 index 0000000000..e0fcd9b3de --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_386.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (freebsd || netbsd || openbsd) && gc +// +build freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for 386 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s new file mode 100644 index 0000000000..2b99c349a2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || dragonfly || freebsd || netbsd || openbsd) && gc +// +build darwin dragonfly freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for AMD64 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm.s new file mode 100644 index 0000000000..d702d4adc7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (freebsd || netbsd || openbsd) && gc +// +build freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for ARM BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + B syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s new file mode 100644 index 0000000000..fe36a7391a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for ARM64 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s new file mode 100644 index 0000000000..e5b9a84899 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s @@ -0,0 +1,31 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// +// System call support for ppc64, BSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s new file mode 100644 index 0000000000..d560019ea2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s @@ -0,0 +1,29 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || freebsd || netbsd || openbsd) && gc +// +build darwin freebsd netbsd openbsd +// +build gc + +#include "textflag.h" + +// System call support for RISCV64 BSD + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_386.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_386.s new file mode 100644 index 0000000000..8fd101d071 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_386.s @@ -0,0 +1,66 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +// +build gc + +#include "textflag.h" + +// +// System calls for 386, Linux +// + +// See ../runtime/sys_linux_386.s for the reason why we always use int 0x80 +// instead of the glibc-specific "CALL 0x10(GS)". +#define INVOKE_SYSCALL INT $0x80 + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 + CALL runtime·entersyscall(SB) + MOVL trap+0(FP), AX // syscall entry + MOVL a1+4(FP), BX + MOVL a2+8(FP), CX + MOVL a3+12(FP), DX + MOVL $0, SI + MOVL $0, DI + INVOKE_SYSCALL + MOVL AX, r1+16(FP) + MOVL DX, r2+20(FP) + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVL trap+0(FP), AX // syscall entry + MOVL a1+4(FP), BX + MOVL a2+8(FP), CX + MOVL a3+12(FP), DX + MOVL $0, SI + MOVL $0, DI + INVOKE_SYSCALL + MOVL AX, r1+16(FP) + MOVL DX, r2+20(FP) + RET + +TEXT ·socketcall(SB),NOSPLIT,$0-36 + JMP syscall·socketcall(SB) + +TEXT ·rawsocketcall(SB),NOSPLIT,$0-36 + JMP syscall·rawsocketcall(SB) + +TEXT ·seek(SB),NOSPLIT,$0-28 + JMP syscall·seek(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_amd64.s new file mode 100644 index 0000000000..7ed38e43c6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_amd64.s @@ -0,0 +1,58 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +// +build gc + +#include "textflag.h" + +// +// System calls for AMD64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + CALL runtime·entersyscall(SB) + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ $0, R10 + MOVQ $0, R8 + MOVQ $0, R9 + MOVQ trap+0(FP), AX // syscall entry + SYSCALL + MOVQ AX, r1+32(FP) + MOVQ DX, r2+40(FP) + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVQ a1+8(FP), DI + MOVQ a2+16(FP), SI + MOVQ a3+24(FP), DX + MOVQ $0, R10 + MOVQ $0, R8 + MOVQ $0, R9 + MOVQ trap+0(FP), AX // syscall entry + SYSCALL + MOVQ AX, r1+32(FP) + MOVQ DX, r2+40(FP) + RET + +TEXT ·gettimeofday(SB),NOSPLIT,$0-16 + JMP syscall·gettimeofday(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm.s new file mode 100644 index 0000000000..8ef1d51402 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm.s @@ -0,0 +1,57 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +// +build gc + +#include "textflag.h" + +// +// System calls for arm, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + B syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 + BL runtime·entersyscall(SB) + MOVW trap+0(FP), R7 + MOVW a1+4(FP), R0 + MOVW a2+8(FP), R1 + MOVW a3+12(FP), R2 + MOVW $0, R3 + MOVW $0, R4 + MOVW $0, R5 + SWI $0 + MOVW R0, r1+16(FP) + MOVW $0, R0 + MOVW R0, r2+20(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + B syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVW trap+0(FP), R7 // syscall entry + MOVW a1+4(FP), R0 + MOVW a2+8(FP), R1 + MOVW a3+12(FP), R2 + SWI $0 + MOVW R0, r1+16(FP) + MOVW $0, R0 + MOVW R0, r2+20(FP) + RET + +TEXT ·seek(SB),NOSPLIT,$0-28 + B syscall·seek(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm64.s new file mode 100644 index 0000000000..98ae02760d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_arm64.s @@ -0,0 +1,53 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && arm64 && gc +// +build linux +// +build arm64 +// +build gc + +#include "textflag.h" + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + B syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + B syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R0 + MOVD a2+16(FP), R1 + MOVD a3+24(FP), R2 + MOVD $0, R3 + MOVD $0, R4 + MOVD $0, R5 + MOVD trap+0(FP), R8 // syscall entry + SVC + MOVD R0, r1+32(FP) // r1 + MOVD R1, r2+40(FP) // r2 + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + B syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + B syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R0 + MOVD a2+16(FP), R1 + MOVD a3+24(FP), R2 + MOVD $0, R3 + MOVD $0, R4 + MOVD $0, R5 + MOVD trap+0(FP), R8 // syscall entry + SVC + MOVD R0, r1+32(FP) + MOVD R1, r2+40(FP) + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_loong64.s new file mode 100644 index 0000000000..565357288a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_loong64.s @@ -0,0 +1,54 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && loong64 && gc +// +build linux +// +build loong64 +// +build gc + +#include "textflag.h" + + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + JAL runtime·entersyscall(SB) + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R11 // syscall entry + SYSCALL + MOVV R4, r1+32(FP) + MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 + JAL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R11 // syscall entry + SYSCALL + MOVV R4, r1+32(FP) + MOVV R0, r2+40(FP) // r2 is not used. Always set to 0 + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s new file mode 100644 index 0000000000..21231d2ce1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s @@ -0,0 +1,57 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (mips64 || mips64le) && gc +// +build linux +// +build mips64 mips64le +// +build gc + +#include "textflag.h" + +// +// System calls for mips64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + JAL runtime·entersyscall(SB) + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R2 // syscall entry + SYSCALL + MOVV R2, r1+32(FP) + MOVV R3, r2+40(FP) + JAL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVV a1+8(FP), R4 + MOVV a2+16(FP), R5 + MOVV a3+24(FP), R6 + MOVV R0, R7 + MOVV R0, R8 + MOVV R0, R9 + MOVV trap+0(FP), R2 // syscall entry + SYSCALL + MOVV R2, r1+32(FP) + MOVV R3, r2+40(FP) + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s new file mode 100644 index 0000000000..6783b26c60 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s @@ -0,0 +1,55 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (mips || mipsle) && gc +// +build linux +// +build mips mipsle +// +build gc + +#include "textflag.h" + +// +// System calls for mips, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-28 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-40 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-52 + JMP syscall·Syscall9(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-24 + JAL runtime·entersyscall(SB) + MOVW a1+4(FP), R4 + MOVW a2+8(FP), R5 + MOVW a3+12(FP), R6 + MOVW R0, R7 + MOVW trap+0(FP), R2 // syscall entry + SYSCALL + MOVW R2, r1+16(FP) // r1 + MOVW R3, r2+20(FP) // r2 + JAL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-28 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-40 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-24 + MOVW a1+4(FP), R4 + MOVW a2+8(FP), R5 + MOVW a3+12(FP), R6 + MOVW trap+0(FP), R2 // syscall entry + SYSCALL + MOVW R2, r1+16(FP) + MOVW R3, r2+20(FP) + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s new file mode 100644 index 0000000000..19d4989344 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s @@ -0,0 +1,45 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (ppc64 || ppc64le) && gc +// +build linux +// +build ppc64 ppc64le +// +build gc + +#include "textflag.h" + +// +// System calls for ppc64, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R3 + MOVD a2+16(FP), R4 + MOVD a3+24(FP), R5 + MOVD R0, R6 + MOVD R0, R7 + MOVD R0, R8 + MOVD trap+0(FP), R9 // syscall entry + SYSCALL R9 + MOVD R3, r1+32(FP) + MOVD R4, r2+40(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R3 + MOVD a2+16(FP), R4 + MOVD a3+24(FP), R5 + MOVD R0, R6 + MOVD R0, R7 + MOVD R0, R8 + MOVD trap+0(FP), R9 // syscall entry + SYSCALL R9 + MOVD R3, r1+32(FP) + MOVD R4, r2+40(FP) + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s new file mode 100644 index 0000000000..e42eb81d58 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s @@ -0,0 +1,49 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build riscv64 && gc +// +build riscv64 +// +build gc + +#include "textflag.h" + +// +// System calls for linux/riscv64. +// +// Where available, just jump to package syscall's implementation of +// these functions. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + CALL runtime·entersyscall(SB) + MOV a1+8(FP), A0 + MOV a2+16(FP), A1 + MOV a3+24(FP), A2 + MOV trap+0(FP), A7 // syscall entry + ECALL + MOV A0, r1+32(FP) // r1 + MOV A1, r2+40(FP) // r2 + CALL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOV a1+8(FP), A0 + MOV a2+16(FP), A1 + MOV a3+24(FP), A2 + MOV trap+0(FP), A7 // syscall entry + ECALL + MOV A0, r1+32(FP) + MOV A1, r2+40(FP) + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_s390x.s new file mode 100644 index 0000000000..c46aab3395 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_linux_s390x.s @@ -0,0 +1,57 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && s390x && gc +// +build linux +// +build s390x +// +build gc + +#include "textflag.h" + +// +// System calls for s390x, Linux +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + BR syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + BR syscall·Syscall6(SB) + +TEXT ·SyscallNoError(SB),NOSPLIT,$0-48 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R2 + MOVD a2+16(FP), R3 + MOVD a3+24(FP), R4 + MOVD $0, R5 + MOVD $0, R6 + MOVD $0, R7 + MOVD trap+0(FP), R1 // syscall entry + SYSCALL + MOVD R2, r1+32(FP) + MOVD R3, r2+40(FP) + BL runtime·exitsyscall(SB) + RET + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + BR syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + BR syscall·RawSyscall6(SB) + +TEXT ·RawSyscallNoError(SB),NOSPLIT,$0-48 + MOVD a1+8(FP), R2 + MOVD a2+16(FP), R3 + MOVD a3+24(FP), R4 + MOVD $0, R5 + MOVD $0, R6 + MOVD $0, R7 + MOVD trap+0(FP), R1 // syscall entry + SYSCALL + MOVD R2, r1+32(FP) + MOVD R3, r2+40(FP) + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s new file mode 100644 index 0000000000..5e7a1169c0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s @@ -0,0 +1,30 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +// +build gc + +#include "textflag.h" + +// +// System call support for mips64, OpenBSD +// + +// Just jump to package syscall's implementation for all these functions. +// The runtime may know about them. + +TEXT ·Syscall(SB),NOSPLIT,$0-56 + JMP syscall·Syscall(SB) + +TEXT ·Syscall6(SB),NOSPLIT,$0-80 + JMP syscall·Syscall6(SB) + +TEXT ·Syscall9(SB),NOSPLIT,$0-104 + JMP syscall·Syscall9(SB) + +TEXT ·RawSyscall(SB),NOSPLIT,$0-56 + JMP syscall·RawSyscall(SB) + +TEXT ·RawSyscall6(SB),NOSPLIT,$0-80 + JMP syscall·RawSyscall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s new file mode 100644 index 0000000000..f8c5394c1a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s @@ -0,0 +1,18 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gc +// +build gc + +#include "textflag.h" + +// +// System calls for amd64, Solaris are implemented in runtime/syscall_solaris.go +// + +TEXT ·sysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·sysvicall6(SB) + +TEXT ·rawSysvicall6(SB),NOSPLIT,$0-88 + JMP syscall·rawSysvicall6(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/ecs-agent/vendor/golang.org/x/sys/unix/asm_zos_s390x.s new file mode 100644 index 0000000000..3b54e18581 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/asm_zos_s390x.s @@ -0,0 +1,426 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x && gc +// +build zos +// +build s390x +// +build gc + +#include "textflag.h" + +#define PSALAA 1208(R0) +#define GTAB64(x) 80(x) +#define LCA64(x) 88(x) +#define CAA(x) 8(x) +#define EDCHPXV(x) 1016(x) // in the CAA +#define SAVSTACK_ASYNC(x) 336(x) // in the LCA + +// SS_*, where x=SAVSTACK_ASYNC +#define SS_LE(x) 0(x) +#define SS_GO(x) 8(x) +#define SS_ERRNO(x) 16(x) +#define SS_ERRNOJR(x) 20(x) + +#define LE_CALL BYTE $0x0D; BYTE $0x76; // BL R7, R6 + +TEXT ·clearErrno(SB),NOSPLIT,$0-0 + BL addrerrno<>(SB) + MOVD $0, 0(R3) + RET + +// Returns the address of errno in R3. +TEXT addrerrno<>(SB),NOSPLIT|NOFRAME,$0-0 + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get __errno FuncDesc. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + ADD $(0x156*16), R9 + LMG 0(R9), R5, R6 + + // Switch to saved LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call __errno function. + LE_CALL + NOPH + + // Switch back to Go stack. + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + RET + +TEXT ·syscall_syscall(SB),NOSPLIT,$0-56 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+32(FP) + MOVD R0, r2+40(FP) + MOVD R0, err+48(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall(SB),NOSPLIT,$0-56 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+32(FP) + MOVD R0, r2+40(FP) + MOVD R0, err+48(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+48(FP) +done: + RET + +TEXT ·syscall_syscall6(SB),NOSPLIT,$0-80 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+56(FP) + MOVD R0, r2+64(FP) + MOVD R0, err+72(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+72(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall6(SB),NOSPLIT,$0-80 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+56(FP) + MOVD R0, r2+64(FP) + MOVD R0, err+72(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL ·rrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+72(FP) +done: + RET + +TEXT ·syscall_syscall9(SB),NOSPLIT,$0 + BL runtime·entersyscall(SB) + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + MOVD a7+56(FP), R12 + MOVD R12, (2176+48)(R4) + MOVD a8+64(FP), R12 + MOVD R12, (2176+56)(R4) + MOVD a9+72(FP), R12 + MOVD R12, (2176+64)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+80(FP) + MOVD R0, r2+88(FP) + MOVD R0, err+96(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+96(FP) +done: + BL runtime·exitsyscall(SB) + RET + +TEXT ·syscall_rawsyscall9(SB),NOSPLIT,$0 + MOVD a1+8(FP), R1 + MOVD a2+16(FP), R2 + MOVD a3+24(FP), R3 + + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get function. + MOVD CAA(R8), R9 + MOVD EDCHPXV(R9), R9 + MOVD trap+0(FP), R5 + SLD $4, R5 + ADD R5, R9 + LMG 0(R9), R5, R6 + + // Restore LE stack. + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R4 + MOVD $0, 0(R9) + + // Fill in parameter list. + MOVD a4+32(FP), R12 + MOVD R12, (2176+24)(R4) + MOVD a5+40(FP), R12 + MOVD R12, (2176+32)(R4) + MOVD a6+48(FP), R12 + MOVD R12, (2176+40)(R4) + MOVD a7+56(FP), R12 + MOVD R12, (2176+48)(R4) + MOVD a8+64(FP), R12 + MOVD R12, (2176+56)(R4) + MOVD a9+72(FP), R12 + MOVD R12, (2176+64)(R4) + + // Call function. + LE_CALL + NOPH + XOR R0, R0 // Restore R0 to $0. + MOVD R4, 0(R9) // Save stack pointer. + + MOVD R3, r1+80(FP) + MOVD R0, r2+88(FP) + MOVD R0, err+96(FP) + MOVW R3, R4 + CMP R4, $-1 + BNE done + BL addrerrno<>(SB) + MOVWZ 0(R3), R3 + MOVD R3, err+96(FP) +done: + RET + +// func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +TEXT ·svcCall(SB),NOSPLIT,$0 + BL runtime·save_g(SB) // Save g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD R15, 0(R9) + + MOVD argv+8(FP), R1 // Move function arguments into registers + MOVD dsa+16(FP), g + MOVD fnptr+0(FP), R15 + + BYTE $0x0D // Branch to function + BYTE $0xEF + + BL runtime·load_g(SB) // Restore g and stack pointer + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + MOVD SAVSTACK_ASYNC(R8), R9 + MOVD 0(R9), R15 + + RET + +// func svcLoad(name *byte) unsafe.Pointer +TEXT ·svcLoad(SB),NOSPLIT,$0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD $0x80000000, R1 + MOVD $0, R15 + BYTE $0x0A // SVC 08 LOAD + BYTE $0x08 + MOVW R15, R3 // Save return code from SVC + MOVD R2, R15 // Restore go stack pointer + CMP R3, $0 // Check SVC return code + BNE error + + MOVD $-2, R3 // Reset last bit of entry point to zero + AND R0, R3 + MOVD R3, addr+8(FP) // Return entry point returned by SVC + CMP R0, R3 // Check if last bit of entry point was set + BNE done + + MOVD R15, R2 // Save go stack pointer + MOVD $0, R15 // Move SVC args into registers (entry point still in r0 from SVC 08) + BYTE $0x0A // SVC 09 DELETE + BYTE $0x09 + MOVD R2, R15 // Restore go stack pointer + +error: + MOVD $0, addr+8(FP) // Return 0 on failure +done: + XOR R0, R0 // Reset r0 to 0 + RET + +// func svcUnload(name *byte, fnptr unsafe.Pointer) int64 +TEXT ·svcUnload(SB),NOSPLIT,$0 + MOVD R15, R2 // Save go stack pointer + MOVD name+0(FP), R0 // Move SVC args into registers + MOVD addr+8(FP), R15 + BYTE $0x0A // SVC 09 + BYTE $0x09 + XOR R0, R0 // Reset r0 to 0 + MOVD R15, R1 // Save SVC return code + MOVD R2, R15 // Restore go stack pointer + MOVD R1, rc+0(FP) // Return SVC return code + RET + +// func gettid() uint64 +TEXT ·gettid(SB), NOSPLIT, $0 + // Get library control area (LCA). + MOVW PSALAA, R8 + MOVD LCA64(R8), R8 + + // Get CEECAATHDID + MOVD CAA(R8), R9 + MOVD 0x3D0(R9), R9 + MOVD R9, ret+0(FP) + + RET diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/bluetooth_linux.go new file mode 100644 index 0000000000..a178a6149b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/bluetooth_linux.go @@ -0,0 +1,36 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Bluetooth sockets and messages + +package unix + +// Bluetooth Protocols +const ( + BTPROTO_L2CAP = 0 + BTPROTO_HCI = 1 + BTPROTO_SCO = 2 + BTPROTO_RFCOMM = 3 + BTPROTO_BNEP = 4 + BTPROTO_CMTP = 5 + BTPROTO_HIDP = 6 + BTPROTO_AVDTP = 7 +) + +const ( + HCI_CHANNEL_RAW = 0 + HCI_CHANNEL_USER = 1 + HCI_CHANNEL_MONITOR = 2 + HCI_CHANNEL_CONTROL = 3 + HCI_CHANNEL_LOGGING = 4 +) + +// Socketoption Level +const ( + SOL_BLUETOOTH = 0x112 + SOL_HCI = 0x0 + SOL_L2CAP = 0x6 + SOL_RFCOMM = 0x12 + SOL_SCO = 0x11 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/cap_freebsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/cap_freebsd.go new file mode 100644 index 0000000000..0b7c6adb86 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/cap_freebsd.go @@ -0,0 +1,196 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build freebsd +// +build freebsd + +package unix + +import ( + "errors" + "fmt" +) + +// Go implementation of C mostly found in /usr/src/sys/kern/subr_capability.c + +const ( + // This is the version of CapRights this package understands. See C implementation for parallels. + capRightsGoVersion = CAP_RIGHTS_VERSION_00 + capArSizeMin = CAP_RIGHTS_VERSION_00 + 2 + capArSizeMax = capRightsGoVersion + 2 +) + +var ( + bit2idx = []int{ + -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, + 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + } +) + +func capidxbit(right uint64) int { + return int((right >> 57) & 0x1f) +} + +func rightToIndex(right uint64) (int, error) { + idx := capidxbit(right) + if idx < 0 || idx >= len(bit2idx) { + return -2, fmt.Errorf("index for right 0x%x out of range", right) + } + return bit2idx[idx], nil +} + +func caprver(right uint64) int { + return int(right >> 62) +} + +func capver(rights *CapRights) int { + return caprver(rights.Rights[0]) +} + +func caparsize(rights *CapRights) int { + return capver(rights) + 2 +} + +// CapRightsSet sets the permissions in setrights in rights. +func CapRightsSet(rights *CapRights, setrights []uint64) error { + // This is essentially a copy of cap_rights_vset() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return errors.New("bad rights size") + } + + for _, right := range setrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return err + } + if i >= n { + return errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch") + } + rights.Rights[i] |= right + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch (after assign)") + } + } + + return nil +} + +// CapRightsClear clears the permissions in clearrights from rights. +func CapRightsClear(rights *CapRights, clearrights []uint64) error { + // This is essentially a copy of cap_rights_vclear() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return errors.New("bad rights size") + } + + for _, right := range clearrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return err + } + if i >= n { + return errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch") + } + rights.Rights[i] &= ^(right & 0x01FFFFFFFFFFFFFF) + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return errors.New("index mismatch (after assign)") + } + } + + return nil +} + +// CapRightsIsSet checks whether all the permissions in setrights are present in rights. +func CapRightsIsSet(rights *CapRights, setrights []uint64) (bool, error) { + // This is essentially a copy of cap_rights_is_vset() + if capver(rights) != CAP_RIGHTS_VERSION_00 { + return false, fmt.Errorf("bad rights version %d", capver(rights)) + } + + n := caparsize(rights) + if n < capArSizeMin || n > capArSizeMax { + return false, errors.New("bad rights size") + } + + for _, right := range setrights { + if caprver(right) != CAP_RIGHTS_VERSION_00 { + return false, errors.New("bad right version") + } + i, err := rightToIndex(right) + if err != nil { + return false, err + } + if i >= n { + return false, errors.New("index overflow") + } + if capidxbit(rights.Rights[i]) != capidxbit(right) { + return false, errors.New("index mismatch") + } + if (rights.Rights[i] & right) != right { + return false, nil + } + } + + return true, nil +} + +func capright(idx uint64, bit uint64) uint64 { + return ((1 << (57 + idx)) | bit) +} + +// CapRightsInit returns a pointer to an initialised CapRights structure filled with rights. +// See man cap_rights_init(3) and rights(4). +func CapRightsInit(rights []uint64) (*CapRights, error) { + var r CapRights + r.Rights[0] = (capRightsGoVersion << 62) | capright(0, 0) + r.Rights[1] = capright(1, 0) + + err := CapRightsSet(&r, rights) + if err != nil { + return nil, err + } + return &r, nil +} + +// CapRightsLimit reduces the operations permitted on fd to at most those contained in rights. +// The capability rights on fd can never be increased by CapRightsLimit. +// See man cap_rights_limit(2) and rights(4). +func CapRightsLimit(fd uintptr, rights *CapRights) error { + return capRightsLimit(int(fd), rights) +} + +// CapRightsGet returns a CapRights structure containing the operations permitted on fd. +// See man cap_rights_get(3) and rights(4). +func CapRightsGet(fd uintptr) (*CapRights, error) { + r, err := CapRightsInit(nil) + if err != nil { + return nil, err + } + err = capRightsGet(capRightsGoVersion, int(fd), r) + if err != nil { + return nil, err + } + return r, nil +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/constants.go b/ecs-agent/vendor/golang.org/x/sys/unix/constants.go new file mode 100644 index 0000000000..394a3965b6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/constants.go @@ -0,0 +1,14 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +package unix + +const ( + R_OK = 0x4 + W_OK = 0x2 + X_OK = 0x1 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc.go new file mode 100644 index 0000000000..65a998508d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc.go @@ -0,0 +1,27 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix && ppc +// +build aix,ppc + +// Functions to access/create device major and minor numbers matching the +// encoding used by AIX. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 16) & 0xffff) +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff) +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return uint64(((major) << 16) | (minor)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go new file mode 100644 index 0000000000..8fc08ad0aa --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go @@ -0,0 +1,29 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix && ppc64 +// +build aix,ppc64 + +// Functions to access/create device major and minor numbers matching the +// encoding used AIX. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x3fffffff00000000) >> 32) +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + return uint32((dev & 0x00000000ffffffff) >> 0) +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + var DEVNO64 uint64 + DEVNO64 = 0x8000000000000000 + return ((uint64(major) << 32) | (uint64(minor) & 0x00000000FFFFFFFF) | DEVNO64) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_darwin.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_darwin.go new file mode 100644 index 0000000000..8d1dc0fa3d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_darwin.go @@ -0,0 +1,24 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Functions to access/create device major and minor numbers matching the +// encoding used in Darwin's sys/types.h header. + +package unix + +// Major returns the major component of a Darwin device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 24) & 0xff) +} + +// Minor returns the minor component of a Darwin device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffffff) +} + +// Mkdev returns a Darwin device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 24) | uint64(minor) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_dragonfly.go new file mode 100644 index 0000000000..8502f202ce --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_dragonfly.go @@ -0,0 +1,30 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Functions to access/create device major and minor numbers matching the +// encoding used in Dragonfly's sys/types.h header. +// +// The information below is extracted and adapted from sys/types.h: +// +// Minor gives a cookie instead of an index since in order to avoid changing the +// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for +// devices that don't use them. + +package unix + +// Major returns the major component of a DragonFlyBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 8) & 0xff) +} + +// Minor returns the minor component of a DragonFlyBSD device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff00ff) +} + +// Mkdev returns a DragonFlyBSD device number generated from the given major and +// minor components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 8) | uint64(minor) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_freebsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_freebsd.go new file mode 100644 index 0000000000..eba3b4bd38 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_freebsd.go @@ -0,0 +1,30 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Functions to access/create device major and minor numbers matching the +// encoding used in FreeBSD's sys/types.h header. +// +// The information below is extracted and adapted from sys/types.h: +// +// Minor gives a cookie instead of an index since in order to avoid changing the +// meanings of bits 0-15 or wasting time and space shifting bits 16-31 for +// devices that don't use them. + +package unix + +// Major returns the major component of a FreeBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 8) & 0xff) +} + +// Minor returns the minor component of a FreeBSD device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0xffff00ff) +} + +// Mkdev returns a FreeBSD device number generated from the given major and +// minor components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 8) | uint64(minor) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_linux.go new file mode 100644 index 0000000000..d165d6f308 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_linux.go @@ -0,0 +1,42 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Functions to access/create device major and minor numbers matching the +// encoding used by the Linux kernel and glibc. +// +// The information below is extracted and adapted from bits/sysmacros.h in the +// glibc sources: +// +// dev_t in glibc is 64-bit, with 32-bit major and minor numbers. glibc's +// default encoding is MMMM Mmmm mmmM MMmm, where M is a hex digit of the major +// number and m is a hex digit of the minor number. This is backward compatible +// with legacy systems where dev_t is 16 bits wide, encoded as MMmm. It is also +// backward compatible with the Linux kernel, which for some architectures uses +// 32-bit dev_t, encoded as mmmM MMmm. + +package unix + +// Major returns the major component of a Linux device number. +func Major(dev uint64) uint32 { + major := uint32((dev & 0x00000000000fff00) >> 8) + major |= uint32((dev & 0xfffff00000000000) >> 32) + return major +} + +// Minor returns the minor component of a Linux device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x00000000000000ff) >> 0) + minor |= uint32((dev & 0x00000ffffff00000) >> 12) + return minor +} + +// Mkdev returns a Linux device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) & 0x00000fff) << 8 + dev |= (uint64(major) & 0xfffff000) << 32 + dev |= (uint64(minor) & 0x000000ff) << 0 + dev |= (uint64(minor) & 0xffffff00) << 12 + return dev +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_netbsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_netbsd.go new file mode 100644 index 0000000000..b4a203d0c5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_netbsd.go @@ -0,0 +1,29 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Functions to access/create device major and minor numbers matching the +// encoding used in NetBSD's sys/types.h header. + +package unix + +// Major returns the major component of a NetBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x000fff00) >> 8) +} + +// Minor returns the minor component of a NetBSD device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x000000ff) >> 0) + minor |= uint32((dev & 0xfff00000) >> 12) + return minor +} + +// Mkdev returns a NetBSD device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) << 8) & 0x000fff00 + dev |= (uint64(minor) << 12) & 0xfff00000 + dev |= (uint64(minor) << 0) & 0x000000ff + return dev +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_openbsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_openbsd.go new file mode 100644 index 0000000000..f3430c42ff --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_openbsd.go @@ -0,0 +1,29 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Functions to access/create device major and minor numbers matching the +// encoding used in OpenBSD's sys/types.h header. + +package unix + +// Major returns the major component of an OpenBSD device number. +func Major(dev uint64) uint32 { + return uint32((dev & 0x0000ff00) >> 8) +} + +// Minor returns the minor component of an OpenBSD device number. +func Minor(dev uint64) uint32 { + minor := uint32((dev & 0x000000ff) >> 0) + minor |= uint32((dev & 0xffff0000) >> 8) + return minor +} + +// Mkdev returns an OpenBSD device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + dev := (uint64(major) << 8) & 0x0000ff00 + dev |= (uint64(minor) << 8) & 0xffff0000 + dev |= (uint64(minor) << 0) & 0x000000ff + return dev +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dev_zos.go b/ecs-agent/vendor/golang.org/x/sys/unix/dev_zos.go new file mode 100644 index 0000000000..a388e59a0e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dev_zos.go @@ -0,0 +1,29 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Functions to access/create device major and minor numbers matching the +// encoding used by z/OS. +// +// The information below is extracted and adapted from macros. + +package unix + +// Major returns the major component of a z/OS device number. +func Major(dev uint64) uint32 { + return uint32((dev >> 16) & 0x0000FFFF) +} + +// Minor returns the minor component of a z/OS device number. +func Minor(dev uint64) uint32 { + return uint32(dev & 0x0000FFFF) +} + +// Mkdev returns a z/OS device number generated from the given major and minor +// components. +func Mkdev(major, minor uint32) uint64 { + return (uint64(major) << 16) | uint64(minor) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/dirent.go b/ecs-agent/vendor/golang.org/x/sys/unix/dirent.go new file mode 100644 index 0000000000..2499f977b0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/dirent.go @@ -0,0 +1,103 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +package unix + +import "unsafe" + +// readInt returns the size-bytes unsigned integer in native byte order at offset off. +func readInt(b []byte, off, size uintptr) (u uint64, ok bool) { + if len(b) < int(off+size) { + return 0, false + } + if isBigEndian { + return readIntBE(b[off:], size), true + } + return readIntLE(b[off:], size), true +} + +func readIntBE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[1]) | uint64(b[0])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[3]) | uint64(b[2])<<8 | uint64(b[1])<<16 | uint64(b[0])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[7]) | uint64(b[6])<<8 | uint64(b[5])<<16 | uint64(b[4])<<24 | + uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} + +func readIntLE(b []byte, size uintptr) uint64 { + switch size { + case 1: + return uint64(b[0]) + case 2: + _ = b[1] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 + case 4: + _ = b[3] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 + case 8: + _ = b[7] // bounds check hint to compiler; see golang.org/issue/14808 + return uint64(b[0]) | uint64(b[1])<<8 | uint64(b[2])<<16 | uint64(b[3])<<24 | + uint64(b[4])<<32 | uint64(b[5])<<40 | uint64(b[6])<<48 | uint64(b[7])<<56 + default: + panic("syscall: readInt with unsupported size") + } +} + +// ParseDirent parses up to max directory entries in buf, +// appending the names to names. It returns the number of +// bytes consumed from buf, the number of entries added +// to names, and the new names slice. +func ParseDirent(buf []byte, max int, names []string) (consumed int, count int, newnames []string) { + origlen := len(buf) + count = 0 + for max != 0 && len(buf) > 0 { + reclen, ok := direntReclen(buf) + if !ok || reclen > uint64(len(buf)) { + return origlen, count, names + } + rec := buf[:reclen] + buf = buf[reclen:] + ino, ok := direntIno(rec) + if !ok { + break + } + if ino == 0 { // File absent in directory. + continue + } + const namoff = uint64(unsafe.Offsetof(Dirent{}.Name)) + namlen, ok := direntNamlen(rec) + if !ok || namoff+namlen > uint64(len(rec)) { + break + } + name := rec[namoff : namoff+namlen] + for i, c := range name { + if c == 0 { + name = name[:i] + break + } + } + // Check for useless names before allocating a string. + if string(name) == "." || string(name) == ".." { + continue + } + max-- + count++ + names = append(names, string(name)) + } + return origlen - len(buf), count, names +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/endian_big.go b/ecs-agent/vendor/golang.org/x/sys/unix/endian_big.go new file mode 100644 index 0000000000..a520265576 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/endian_big.go @@ -0,0 +1,10 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// +//go:build armbe || arm64be || m68k || mips || mips64 || mips64p32 || ppc || ppc64 || s390 || s390x || shbe || sparc || sparc64 +// +build armbe arm64be m68k mips mips64 mips64p32 ppc ppc64 s390 s390x shbe sparc sparc64 + +package unix + +const isBigEndian = true diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/endian_little.go b/ecs-agent/vendor/golang.org/x/sys/unix/endian_little.go new file mode 100644 index 0000000000..b0f2bc4ae3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/endian_little.go @@ -0,0 +1,10 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// +//go:build 386 || amd64 || amd64p32 || alpha || arm || arm64 || loong64 || mipsle || mips64le || mips64p32le || nios2 || ppc64le || riscv || riscv64 || sh +// +build 386 amd64 amd64p32 alpha arm arm64 loong64 mipsle mips64le mips64p32le nios2 ppc64le riscv riscv64 sh + +package unix + +const isBigEndian = false diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/env_unix.go b/ecs-agent/vendor/golang.org/x/sys/unix/env_unix.go new file mode 100644 index 0000000000..29ccc4d133 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/env_unix.go @@ -0,0 +1,32 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +// Unix environment variables. + +package unix + +import "syscall" + +func Getenv(key string) (value string, found bool) { + return syscall.Getenv(key) +} + +func Setenv(key, value string) error { + return syscall.Setenv(key, value) +} + +func Clearenv() { + syscall.Clearenv() +} + +func Environ() []string { + return syscall.Environ() +} + +func Unsetenv(key string) error { + return syscall.Unsetenv(key) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/epoll_zos.go b/ecs-agent/vendor/golang.org/x/sys/unix/epoll_zos.go new file mode 100644 index 0000000000..cedaf7e024 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/epoll_zos.go @@ -0,0 +1,221 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "sync" +) + +// This file simulates epoll on z/OS using poll. + +// Analogous to epoll_event on Linux. +// TODO(neeilan): Pad is because the Linux kernel expects a 96-bit struct. We never pass this to the kernel; remove? +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + EPOLLERR = 0x8 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + // The following constants are part of the epoll API, but represent + // currently unsupported functionality on z/OS. + // EPOLL_CLOEXEC = 0x80000 + // EPOLLET = 0x80000000 + // EPOLLONESHOT = 0x40000000 + // EPOLLRDHUP = 0x2000 // Typically used with edge-triggered notis + // EPOLLEXCLUSIVE = 0x10000000 // Exclusive wake-up mode + // EPOLLWAKEUP = 0x20000000 // Relies on Linux's BLOCK_SUSPEND capability +) + +// TODO(neeilan): We can eliminate these epToPoll / pToEpoll calls by using identical mask values for POLL/EPOLL +// constants where possible The lower 16 bits of epoll events (uint32) can fit any system poll event (int16). + +// epToPollEvt converts epoll event field to poll equivalent. +// In epoll, Events is a 32-bit field, while poll uses 16 bits. +func epToPollEvt(events uint32) int16 { + var ep2p = map[uint32]int16{ + EPOLLIN: POLLIN, + EPOLLOUT: POLLOUT, + EPOLLHUP: POLLHUP, + EPOLLPRI: POLLPRI, + EPOLLERR: POLLERR, + } + + var pollEvts int16 = 0 + for epEvt, pEvt := range ep2p { + if (events & epEvt) != 0 { + pollEvts |= pEvt + } + } + + return pollEvts +} + +// pToEpollEvt converts 16 bit poll event bitfields to 32-bit epoll event fields. +func pToEpollEvt(revents int16) uint32 { + var p2ep = map[int16]uint32{ + POLLIN: EPOLLIN, + POLLOUT: EPOLLOUT, + POLLHUP: EPOLLHUP, + POLLPRI: EPOLLPRI, + POLLERR: EPOLLERR, + } + + var epollEvts uint32 = 0 + for pEvt, epEvt := range p2ep { + if (revents & pEvt) != 0 { + epollEvts |= epEvt + } + } + + return epollEvts +} + +// Per-process epoll implementation. +type epollImpl struct { + mu sync.Mutex + epfd2ep map[int]*eventPoll + nextEpfd int +} + +// eventPoll holds a set of file descriptors being watched by the process. A process can have multiple epoll instances. +// On Linux, this is an in-kernel data structure accessed through a fd. +type eventPoll struct { + mu sync.Mutex + fds map[int]*EpollEvent +} + +// epoll impl for this process. +var impl epollImpl = epollImpl{ + epfd2ep: make(map[int]*eventPoll), + nextEpfd: 0, +} + +func (e *epollImpl) epollcreate(size int) (epfd int, err error) { + e.mu.Lock() + defer e.mu.Unlock() + epfd = e.nextEpfd + e.nextEpfd++ + + e.epfd2ep[epfd] = &eventPoll{ + fds: make(map[int]*EpollEvent), + } + return epfd, nil +} + +func (e *epollImpl) epollcreate1(flag int) (fd int, err error) { + return e.epollcreate(4) +} + +func (e *epollImpl) epollctl(epfd int, op int, fd int, event *EpollEvent) (err error) { + e.mu.Lock() + defer e.mu.Unlock() + + ep, ok := e.epfd2ep[epfd] + if !ok { + + return EBADF + } + + switch op { + case EPOLL_CTL_ADD: + // TODO(neeilan): When we make epfds and fds disjoint, detect epoll + // loops here (instances watching each other) and return ELOOP. + if _, ok := ep.fds[fd]; ok { + return EEXIST + } + ep.fds[fd] = event + case EPOLL_CTL_MOD: + if _, ok := ep.fds[fd]; !ok { + return ENOENT + } + ep.fds[fd] = event + case EPOLL_CTL_DEL: + if _, ok := ep.fds[fd]; !ok { + return ENOENT + } + delete(ep.fds, fd) + + } + return nil +} + +// Must be called while holding ep.mu +func (ep *eventPoll) getFds() []int { + fds := make([]int, len(ep.fds)) + for fd := range ep.fds { + fds = append(fds, fd) + } + return fds +} + +func (e *epollImpl) epollwait(epfd int, events []EpollEvent, msec int) (n int, err error) { + e.mu.Lock() // in [rare] case of concurrent epollcreate + epollwait + ep, ok := e.epfd2ep[epfd] + + if !ok { + e.mu.Unlock() + return 0, EBADF + } + + pollfds := make([]PollFd, 4) + for fd, epollevt := range ep.fds { + pollfds = append(pollfds, PollFd{Fd: int32(fd), Events: epToPollEvt(epollevt.Events)}) + } + e.mu.Unlock() + + n, err = Poll(pollfds, msec) + if err != nil { + return n, err + } + + i := 0 + for _, pFd := range pollfds { + if pFd.Revents != 0 { + events[i] = EpollEvent{Fd: pFd.Fd, Events: pToEpollEvt(pFd.Revents)} + i++ + } + + if i == n { + break + } + } + + return n, nil +} + +func EpollCreate(size int) (fd int, err error) { + return impl.epollcreate(size) +} + +func EpollCreate1(flag int) (fd int, err error) { + return impl.epollcreate1(flag) +} + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + return impl.epollctl(epfd, op, fd, event) +} + +// Because EpollWait mutates events, the caller is expected to coordinate +// concurrent access if calling with the same epfd from multiple goroutines. +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + return impl.epollwait(epfd, events, msec) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/fcntl.go b/ecs-agent/vendor/golang.org/x/sys/unix/fcntl.go new file mode 100644 index 0000000000..e9b991258c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/fcntl.go @@ -0,0 +1,37 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build dragonfly || freebsd || linux || netbsd || openbsd +// +build dragonfly freebsd linux netbsd openbsd + +package unix + +import "unsafe" + +// fcntl64Syscall is usually SYS_FCNTL, but is overridden on 32-bit Linux +// systems by fcntl_linux_32bit.go to be SYS_FCNTL64. +var fcntl64Syscall uintptr = SYS_FCNTL + +func fcntl(fd int, cmd, arg int) (int, error) { + valptr, _, errno := Syscall(fcntl64Syscall, uintptr(fd), uintptr(cmd), uintptr(arg)) + var err error + if errno != 0 { + err = errno + } + return int(valptr), err +} + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, _, errno := Syscall(fcntl64Syscall, fd, uintptr(cmd), uintptr(unsafe.Pointer(lk))) + if errno == 0 { + return nil + } + return errno +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/ecs-agent/vendor/golang.org/x/sys/unix/fcntl_darwin.go new file mode 100644 index 0000000000..a9911c7c1d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/fcntl_darwin.go @@ -0,0 +1,24 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import "unsafe" + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + return fcntl(int(fd), cmd, arg) +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(lk)))) + return err +} + +// FcntlFstore performs a fcntl syscall for the F_PREALLOCATE command. +func FcntlFstore(fd uintptr, cmd int, fstore *Fstore_t) error { + _, err := fcntl(int(fd), cmd, int(uintptr(unsafe.Pointer(fstore)))) + return err +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/ecs-agent/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go new file mode 100644 index 0000000000..29d44808b1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go @@ -0,0 +1,14 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (linux && 386) || (linux && arm) || (linux && mips) || (linux && mipsle) || (linux && ppc) +// +build linux,386 linux,arm linux,mips linux,mipsle linux,ppc + +package unix + +func init() { + // On 32-bit Linux systems, the fcntl syscall that matches Go's + // Flock_t type is SYS_FCNTL64, not SYS_FCNTL. + fcntl64Syscall = SYS_FCNTL64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/fdset.go b/ecs-agent/vendor/golang.org/x/sys/unix/fdset.go new file mode 100644 index 0000000000..a8068f94f2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/fdset.go @@ -0,0 +1,30 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +package unix + +// Set adds fd to the set fds. +func (fds *FdSet) Set(fd int) { + fds.Bits[fd/NFDBITS] |= (1 << (uintptr(fd) % NFDBITS)) +} + +// Clear removes fd from the set fds. +func (fds *FdSet) Clear(fd int) { + fds.Bits[fd/NFDBITS] &^= (1 << (uintptr(fd) % NFDBITS)) +} + +// IsSet returns whether fd is in the set fds. +func (fds *FdSet) IsSet(fd int) bool { + return fds.Bits[fd/NFDBITS]&(1<<(uintptr(fd)%NFDBITS)) != 0 +} + +// Zero clears the set fds. +func (fds *FdSet) Zero() { + for i := range fds.Bits { + fds.Bits[i] = 0 + } +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/fstatfs_zos.go b/ecs-agent/vendor/golang.org/x/sys/unix/fstatfs_zos.go new file mode 100644 index 0000000000..e377cc9f49 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/fstatfs_zos.go @@ -0,0 +1,164 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "unsafe" +) + +// This file simulates fstatfs on z/OS using fstatvfs and w_getmntent. + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + var stat_v Statvfs_t + err = Fstatvfs(fd, &stat_v) + if err == nil { + // populate stat + stat.Type = 0 + stat.Bsize = stat_v.Bsize + stat.Blocks = stat_v.Blocks + stat.Bfree = stat_v.Bfree + stat.Bavail = stat_v.Bavail + stat.Files = stat_v.Files + stat.Ffree = stat_v.Ffree + stat.Fsid = stat_v.Fsid + stat.Namelen = stat_v.Namemax + stat.Frsize = stat_v.Frsize + stat.Flags = stat_v.Flag + for passn := 0; passn < 5; passn++ { + switch passn { + case 0: + err = tryGetmntent64(stat) + break + case 1: + err = tryGetmntent128(stat) + break + case 2: + err = tryGetmntent256(stat) + break + case 3: + err = tryGetmntent512(stat) + break + case 4: + err = tryGetmntent1024(stat) + break + default: + break + } + //proceed to return if: err is nil (found), err is nonnil but not ERANGE (another error occurred) + if err == nil || err != nil && err != ERANGE { + break + } + } + } + return err +} + +func tryGetmntent64(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [64]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent128(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [128]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent256(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [256]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent512(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [512]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} + +func tryGetmntent1024(stat *Statfs_t) (err error) { + var mnt_ent_buffer struct { + header W_Mnth + filesys_info [1024]W_Mntent + } + var buffer_size int = int(unsafe.Sizeof(mnt_ent_buffer)) + fs_count, err := W_Getmntent((*byte)(unsafe.Pointer(&mnt_ent_buffer)), buffer_size) + if err != nil { + return err + } + err = ERANGE //return ERANGE if no match is found in this batch + for i := 0; i < fs_count; i++ { + if stat.Fsid == uint64(mnt_ent_buffer.filesys_info[i].Dev) { + stat.Type = uint32(mnt_ent_buffer.filesys_info[i].Fstname[0]) + err = nil + break + } + } + return err +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/gccgo.go b/ecs-agent/vendor/golang.org/x/sys/unix/gccgo.go new file mode 100644 index 0000000000..b06f52d748 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/gccgo.go @@ -0,0 +1,60 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gccgo && !aix && !hurd +// +build gccgo,!aix,!hurd + +package unix + +import "syscall" + +// We can't use the gc-syntax .s files for gccgo. On the plus side +// much of the functionality can be written directly in Go. + +func realSyscallNoError(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r uintptr) + +func realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r, errno uintptr) + +func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { + syscall.Entersyscall() + r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + syscall.Exitsyscall() + return r, 0 +} + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) { + syscall.Entersyscall() + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9) + syscall.Exitsyscall() + return r, 0, syscall.Errno(errno) +} + +func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) { + r := realSyscallNoError(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + return r, 0 +} + +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + r, errno := realSyscall(trap, a1, a2, a3, 0, 0, 0, 0, 0, 0) + return r, 0, syscall.Errno(errno) +} + +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + r, errno := realSyscall(trap, a1, a2, a3, a4, a5, a6, 0, 0, 0) + return r, 0, syscall.Errno(errno) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/gccgo_c.c b/ecs-agent/vendor/golang.org/x/sys/unix/gccgo_c.c new file mode 100644 index 0000000000..f98a1c542f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/gccgo_c.c @@ -0,0 +1,45 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gccgo && !aix && !hurd +// +build gccgo,!aix,!hurd + +#include +#include +#include + +#define _STRINGIFY2_(x) #x +#define _STRINGIFY_(x) _STRINGIFY2_(x) +#define GOSYM_PREFIX _STRINGIFY_(__USER_LABEL_PREFIX__) + +// Call syscall from C code because the gccgo support for calling from +// Go to C does not support varargs functions. + +struct ret { + uintptr_t r; + uintptr_t err; +}; + +struct ret gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscall"); + +struct ret +gccgoRealSyscall(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) +{ + struct ret r; + + errno = 0; + r.r = syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); + r.err = errno; + return r; +} + +uintptr_t gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) + __asm__(GOSYM_PREFIX GOPKGPATH ".realSyscallNoError"); + +uintptr_t +gccgoRealSyscallNoError(uintptr_t trap, uintptr_t a1, uintptr_t a2, uintptr_t a3, uintptr_t a4, uintptr_t a5, uintptr_t a6, uintptr_t a7, uintptr_t a8, uintptr_t a9) +{ + return syscall(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9); +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go new file mode 100644 index 0000000000..e60e49a3d9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go @@ -0,0 +1,21 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build gccgo && linux && amd64 +// +build gccgo,linux,amd64 + +package unix + +import "syscall" + +//extern gettimeofday +func realGettimeofday(*Timeval, *byte) int32 + +func gettimeofday(tv *Timeval) (err syscall.Errno) { + r := realGettimeofday(tv, nil) + if r < 0 { + return syscall.GetErrno() + } + return 0 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ifreq_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/ifreq_linux.go new file mode 100644 index 0000000000..15721a5104 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ifreq_linux.go @@ -0,0 +1,142 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux +// +build linux + +package unix + +import ( + "unsafe" +) + +// Helpers for dealing with ifreq since it contains a union and thus requires a +// lot of unsafe.Pointer casts to use properly. + +// An Ifreq is a type-safe wrapper around the raw ifreq struct. An Ifreq +// contains an interface name and a union of arbitrary data which can be +// accessed using the Ifreq's methods. To create an Ifreq, use the NewIfreq +// function. +// +// Use the Name method to access the stored interface name. The union data +// fields can be get and set using the following methods: +// - Uint16/SetUint16: flags +// - Uint32/SetUint32: ifindex, metric, mtu +type Ifreq struct{ raw ifreq } + +// NewIfreq creates an Ifreq with the input network interface name after +// validating the name does not exceed IFNAMSIZ-1 (trailing NULL required) +// bytes. +func NewIfreq(name string) (*Ifreq, error) { + // Leave room for terminating NULL byte. + if len(name) >= IFNAMSIZ { + return nil, EINVAL + } + + var ifr ifreq + copy(ifr.Ifrn[:], name) + + return &Ifreq{raw: ifr}, nil +} + +// TODO(mdlayher): get/set methods for hardware address sockaddr, char array, etc. + +// Name returns the interface name associated with the Ifreq. +func (ifr *Ifreq) Name() string { + return ByteSliceToString(ifr.raw.Ifrn[:]) +} + +// According to netdevice(7), only AF_INET addresses are returned for numerous +// sockaddr ioctls. For convenience, we expose these as Inet4Addr since the Port +// field and other data is always empty. + +// Inet4Addr returns the Ifreq union data from an embedded sockaddr as a C +// in_addr/Go []byte (4-byte IPv4 address) value. If the sockaddr family is not +// AF_INET, an error is returned. +func (ifr *Ifreq) Inet4Addr() ([]byte, error) { + raw := *(*RawSockaddrInet4)(unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0])) + if raw.Family != AF_INET { + // Cannot safely interpret raw.Addr bytes as an IPv4 address. + return nil, EINVAL + } + + return raw.Addr[:], nil +} + +// SetInet4Addr sets a C in_addr/Go []byte (4-byte IPv4 address) value in an +// embedded sockaddr within the Ifreq's union data. v must be 4 bytes in length +// or an error will be returned. +func (ifr *Ifreq) SetInet4Addr(v []byte) error { + if len(v) != 4 { + return EINVAL + } + + var addr [4]byte + copy(addr[:], v) + + ifr.clear() + *(*RawSockaddrInet4)( + unsafe.Pointer(&ifr.raw.Ifru[:SizeofSockaddrInet4][0]), + ) = RawSockaddrInet4{ + // Always set IP family as ioctls would require it anyway. + Family: AF_INET, + Addr: addr, + } + + return nil +} + +// Uint16 returns the Ifreq union data as a C short/Go uint16 value. +func (ifr *Ifreq) Uint16() uint16 { + return *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) +} + +// SetUint16 sets a C short/Go uint16 value as the Ifreq's union data. +func (ifr *Ifreq) SetUint16(v uint16) { + ifr.clear() + *(*uint16)(unsafe.Pointer(&ifr.raw.Ifru[:2][0])) = v +} + +// Uint32 returns the Ifreq union data as a C int/Go uint32 value. +func (ifr *Ifreq) Uint32() uint32 { + return *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) +} + +// SetUint32 sets a C int/Go uint32 value as the Ifreq's union data. +func (ifr *Ifreq) SetUint32(v uint32) { + ifr.clear() + *(*uint32)(unsafe.Pointer(&ifr.raw.Ifru[:4][0])) = v +} + +// clear zeroes the ifreq's union field to prevent trailing garbage data from +// being sent to the kernel if an ifreq is reused. +func (ifr *Ifreq) clear() { + for i := range ifr.raw.Ifru { + ifr.raw.Ifru[i] = 0 + } +} + +// TODO(mdlayher): export as IfreqData? For now we can provide helpers such as +// IoctlGetEthtoolDrvinfo which use these APIs under the hood. + +// An ifreqData is an Ifreq which carries pointer data. To produce an ifreqData, +// use the Ifreq.withData method. +type ifreqData struct { + name [IFNAMSIZ]byte + // A type separate from ifreq is required in order to comply with the + // unsafe.Pointer rules since the "pointer-ness" of data would not be + // preserved if it were cast into the byte array of a raw ifreq. + data unsafe.Pointer + // Pad to the same size as ifreq. + _ [len(ifreq{}.Ifru) - SizeofPtr]byte +} + +// withData produces an ifreqData with the pointer p set for ioctls which require +// arbitrary pointer data. +func (ifr Ifreq) withData(p unsafe.Pointer) ifreqData { + return ifreqData{ + name: ifr.raw.Ifrn, + data: p, + } +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ioctl.go b/ecs-agent/vendor/golang.org/x/sys/unix/ioctl.go new file mode 100644 index 0000000000..7ce8dd406f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ioctl.go @@ -0,0 +1,70 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || hurd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd hurd linux netbsd openbsd solaris + +package unix + +import ( + "unsafe" +) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlSetInt performs an ioctl operation which sets an integer value +// on fd, using the specified request number. +func IoctlSetInt(fd int, req uint, value int) error { + return ioctl(fd, req, uintptr(value)) +} + +// IoctlSetPointerInt performs an ioctl operation which sets an +// integer value on fd, using the specified request number. The ioctl +// argument is called with a pointer to the integer value, rather than +// passing the integer value directly. +func IoctlSetPointerInt(fd int, req uint, value int) error { + v := int32(value) + return ioctlPtr(fd, req, unsafe.Pointer(&v)) +} + +// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. +// +// To change fd's window size, the req argument should be TIOCSWINSZ. +func IoctlSetWinsize(fd int, req uint, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// The req value will usually be TCSETA or TIOCSETA. +func IoctlSetTermios(fd int, req uint, value *Termios) error { + // TODO: if we get the chance, remove the req parameter. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlGetInt performs an ioctl operation which gets an integer value +// from fd, using the specified request number. +// +// A few ioctl requests use the return value as an output parameter; +// for those, IoctlRetInt should be used instead of this function. +func IoctlGetInt(fd int, req uint) (int, error) { + var value int + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ioctl_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/ioctl_linux.go new file mode 100644 index 0000000000..0d12c0851a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ioctl_linux.go @@ -0,0 +1,233 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import "unsafe" + +// IoctlRetInt performs an ioctl operation specified by req on a device +// associated with opened file descriptor fd, and returns a non-negative +// integer that is returned by the ioctl syscall. +func IoctlRetInt(fd int, req uint) (int, error) { + ret, _, err := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + +func IoctlGetUint32(fd int, req uint) (uint32, error) { + var value uint32 + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetRTCTime(fd int) (*RTCTime, error) { + var value RTCTime + err := ioctlPtr(fd, RTC_RD_TIME, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlSetRTCTime(fd int, value *RTCTime) error { + return ioctlPtr(fd, RTC_SET_TIME, unsafe.Pointer(value)) +} + +func IoctlGetRTCWkAlrm(fd int) (*RTCWkAlrm, error) { + var value RTCWkAlrm + err := ioctlPtr(fd, RTC_WKALM_RD, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlSetRTCWkAlrm(fd int, value *RTCWkAlrm) error { + return ioctlPtr(fd, RTC_WKALM_SET, unsafe.Pointer(value)) +} + +// IoctlGetEthtoolDrvinfo fetches ethtool driver information for the network +// device specified by ifname. +func IoctlGetEthtoolDrvinfo(fd int, ifname string) (*EthtoolDrvinfo, error) { + ifr, err := NewIfreq(ifname) + if err != nil { + return nil, err + } + + value := EthtoolDrvinfo{Cmd: ETHTOOL_GDRVINFO} + ifrd := ifr.withData(unsafe.Pointer(&value)) + + err = ioctlIfreqData(fd, SIOCETHTOOL, &ifrd) + return &value, err +} + +// IoctlGetWatchdogInfo fetches information about a watchdog device from the +// Linux watchdog API. For more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlGetWatchdogInfo(fd int) (*WatchdogInfo, error) { + var value WatchdogInfo + err := ioctlPtr(fd, WDIOC_GETSUPPORT, unsafe.Pointer(&value)) + return &value, err +} + +// IoctlWatchdogKeepalive issues a keepalive ioctl to a watchdog device. For +// more information, see: +// https://www.kernel.org/doc/html/latest/watchdog/watchdog-api.html. +func IoctlWatchdogKeepalive(fd int) error { + // arg is ignored and not a pointer, so ioctl is fine instead of ioctlPtr. + return ioctl(fd, WDIOC_KEEPALIVE, 0) +} + +// IoctlFileCloneRange performs an FICLONERANGE ioctl operation to clone the +// range of data conveyed in value to the file associated with the file +// descriptor destFd. See the ioctl_ficlonerange(2) man page for details. +func IoctlFileCloneRange(destFd int, value *FileCloneRange) error { + return ioctlPtr(destFd, FICLONERANGE, unsafe.Pointer(value)) +} + +// IoctlFileClone performs an FICLONE ioctl operation to clone the entire file +// associated with the file description srcFd to the file associated with the +// file descriptor destFd. See the ioctl_ficlone(2) man page for details. +func IoctlFileClone(destFd, srcFd int) error { + return ioctl(destFd, FICLONE, uintptr(srcFd)) +} + +type FileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Reserved1 uint16 + Reserved2 uint32 + Info []FileDedupeRangeInfo +} + +type FileDedupeRangeInfo struct { + Dest_fd int64 + Dest_offset uint64 + Bytes_deduped uint64 + Status int32 + Reserved uint32 +} + +// IoctlFileDedupeRange performs an FIDEDUPERANGE ioctl operation to share the +// range of data conveyed in value from the file associated with the file +// descriptor srcFd to the value.Info destinations. See the +// ioctl_fideduperange(2) man page for details. +func IoctlFileDedupeRange(srcFd int, value *FileDedupeRange) error { + buf := make([]byte, SizeofRawFileDedupeRange+ + len(value.Info)*SizeofRawFileDedupeRangeInfo) + rawrange := (*RawFileDedupeRange)(unsafe.Pointer(&buf[0])) + rawrange.Src_offset = value.Src_offset + rawrange.Src_length = value.Src_length + rawrange.Dest_count = uint16(len(value.Info)) + rawrange.Reserved1 = value.Reserved1 + rawrange.Reserved2 = value.Reserved2 + + for i := range value.Info { + rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( + uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + + uintptr(i*SizeofRawFileDedupeRangeInfo))) + rawinfo.Dest_fd = value.Info[i].Dest_fd + rawinfo.Dest_offset = value.Info[i].Dest_offset + rawinfo.Bytes_deduped = value.Info[i].Bytes_deduped + rawinfo.Status = value.Info[i].Status + rawinfo.Reserved = value.Info[i].Reserved + } + + err := ioctlPtr(srcFd, FIDEDUPERANGE, unsafe.Pointer(&buf[0])) + + // Output + for i := range value.Info { + rawinfo := (*RawFileDedupeRangeInfo)(unsafe.Pointer( + uintptr(unsafe.Pointer(&buf[0])) + uintptr(SizeofRawFileDedupeRange) + + uintptr(i*SizeofRawFileDedupeRangeInfo))) + value.Info[i].Dest_fd = rawinfo.Dest_fd + value.Info[i].Dest_offset = rawinfo.Dest_offset + value.Info[i].Bytes_deduped = rawinfo.Bytes_deduped + value.Info[i].Status = rawinfo.Status + value.Info[i].Reserved = rawinfo.Reserved + } + + return err +} + +func IoctlHIDGetDesc(fd int, value *HIDRawReportDescriptor) error { + return ioctlPtr(fd, HIDIOCGRDESC, unsafe.Pointer(value)) +} + +func IoctlHIDGetRawInfo(fd int) (*HIDRawDevInfo, error) { + var value HIDRawDevInfo + err := ioctlPtr(fd, HIDIOCGRAWINFO, unsafe.Pointer(&value)) + return &value, err +} + +func IoctlHIDGetRawName(fd int) (string, error) { + var value [_HIDIOCGRAWNAME_LEN]byte + err := ioctlPtr(fd, _HIDIOCGRAWNAME, unsafe.Pointer(&value[0])) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawPhys(fd int) (string, error) { + var value [_HIDIOCGRAWPHYS_LEN]byte + err := ioctlPtr(fd, _HIDIOCGRAWPHYS, unsafe.Pointer(&value[0])) + return ByteSliceToString(value[:]), err +} + +func IoctlHIDGetRawUniq(fd int) (string, error) { + var value [_HIDIOCGRAWUNIQ_LEN]byte + err := ioctlPtr(fd, _HIDIOCGRAWUNIQ, unsafe.Pointer(&value[0])) + return ByteSliceToString(value[:]), err +} + +// IoctlIfreq performs an ioctl using an Ifreq structure for input and/or +// output. See the netdevice(7) man page for details. +func IoctlIfreq(fd int, req uint, value *Ifreq) error { + // It is possible we will add more fields to *Ifreq itself later to prevent + // misuse, so pass the raw *ifreq directly. + return ioctlPtr(fd, req, unsafe.Pointer(&value.raw)) +} + +// TODO(mdlayher): export if and when IfreqData is exported. + +// ioctlIfreqData performs an ioctl using an ifreqData structure for input +// and/or output. See the netdevice(7) man page for details. +func ioctlIfreqData(fd int, req uint, value *ifreqData) error { + // The memory layout of IfreqData (type-safe) and ifreq (not type-safe) are + // identical so pass *IfreqData directly. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlKCMClone attaches a new file descriptor to a multiplexor by cloning an +// existing KCM socket, returning a structure containing the file descriptor of +// the new socket. +func IoctlKCMClone(fd int) (*KCMClone, error) { + var info KCMClone + if err := ioctlPtr(fd, SIOCKCMCLONE, unsafe.Pointer(&info)); err != nil { + return nil, err + } + + return &info, nil +} + +// IoctlKCMAttach attaches a TCP socket and associated BPF program file +// descriptor to a multiplexor. +func IoctlKCMAttach(fd int, info KCMAttach) error { + return ioctlPtr(fd, SIOCKCMATTACH, unsafe.Pointer(&info)) +} + +// IoctlKCMUnattach unattaches a TCP socket file descriptor from a multiplexor. +func IoctlKCMUnattach(fd int, info KCMUnattach) error { + return ioctlPtr(fd, SIOCKCMUNATTACH, unsafe.Pointer(&info)) +} + +// IoctlLoopGetStatus64 gets the status of the loop device associated with the +// file descriptor fd using the LOOP_GET_STATUS64 operation. +func IoctlLoopGetStatus64(fd int) (*LoopInfo64, error) { + var value LoopInfo64 + if err := ioctlPtr(fd, LOOP_GET_STATUS64, unsafe.Pointer(&value)); err != nil { + return nil, err + } + return &value, nil +} + +// IoctlLoopSetStatus64 sets the status of the loop device associated with the +// file descriptor fd using the LOOP_SET_STATUS64 operation. +func IoctlLoopSetStatus64(fd int, value *LoopInfo64) error { + return ioctlPtr(fd, LOOP_SET_STATUS64, unsafe.Pointer(value)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ioctl_zos.go b/ecs-agent/vendor/golang.org/x/sys/unix/ioctl_zos.go new file mode 100644 index 0000000000..6532f09af2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ioctl_zos.go @@ -0,0 +1,72 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "runtime" + "unsafe" +) + +// ioctl itself should not be exposed directly, but additional get/set +// functions for specific types are permissible. + +// IoctlSetInt performs an ioctl operation which sets an integer value +// on fd, using the specified request number. +func IoctlSetInt(fd int, req uint, value int) error { + return ioctl(fd, req, uintptr(value)) +} + +// IoctlSetWinsize performs an ioctl on fd with a *Winsize argument. +// +// To change fd's window size, the req argument should be TIOCSWINSZ. +func IoctlSetWinsize(fd int, req uint, value *Winsize) error { + // TODO: if we get the chance, remove the req parameter and + // hardcode TIOCSWINSZ. + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +// IoctlSetTermios performs an ioctl on fd with a *Termios. +// +// The req value is expected to be TCSETS, TCSETSW, or TCSETSF +func IoctlSetTermios(fd int, req uint, value *Termios) error { + if (req != TCSETS) && (req != TCSETSW) && (req != TCSETSF) { + return ENOSYS + } + err := Tcsetattr(fd, int(req), value) + runtime.KeepAlive(value) + return err +} + +// IoctlGetInt performs an ioctl operation which gets an integer value +// from fd, using the specified request number. +// +// A few ioctl requests use the return value as an output parameter; +// for those, IoctlRetInt should be used instead of this function. +func IoctlGetInt(fd int, req uint) (int, error) { + var value int + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return value, err +} + +func IoctlGetWinsize(fd int, req uint) (*Winsize, error) { + var value Winsize + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +// IoctlGetTermios performs an ioctl on fd with a *Termios. +// +// The req value is expected to be TCGETS +func IoctlGetTermios(fd int, req uint) (*Termios, error) { + var value Termios + if req != TCGETS { + return &value, ENOSYS + } + err := Tcgetattr(fd, &value) + return &value, err +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/mkall.sh b/ecs-agent/vendor/golang.org/x/sys/unix/mkall.sh new file mode 100644 index 0000000000..8e3947c368 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/mkall.sh @@ -0,0 +1,249 @@ +#!/usr/bin/env bash +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# This script runs or (given -n) prints suggested commands to generate files for +# the Architecture/OS specified by the GOARCH and GOOS environment variables. +# See README.md for more information about how the build system works. + +GOOSARCH="${GOOS}_${GOARCH}" + +# defaults +mksyscall="go run mksyscall.go" +mkerrors="./mkerrors.sh" +zerrors="zerrors_$GOOSARCH.go" +mksysctl="" +zsysctl="zsysctl_$GOOSARCH.go" +mksysnum= +mktypes= +mkasm= +run="sh" +cmd="" + +case "$1" in +-syscalls) + for i in zsyscall*go + do + # Run the command line that appears in the first line + # of the generated file to regenerate it. + sed 1q $i | sed 's;^// ;;' | sh > _$i && gofmt < _$i > $i + rm _$i + done + exit 0 + ;; +-n) + run="cat" + cmd="echo" + shift +esac + +case "$#" in +0) + ;; +*) + echo 'usage: mkall.sh [-n]' 1>&2 + exit 2 +esac + +if [[ "$GOOS" = "linux" ]]; then + # Use the Docker-based build system + # Files generated through docker (use $cmd so you can Ctl-C the build or run) + $cmd docker build --tag generate:$GOOS $GOOS + $cmd docker run --interactive --tty --volume $(cd -- "$(dirname -- "$0")/.." && /bin/pwd):/build generate:$GOOS + exit +fi + +GOOSARCH_in=syscall_$GOOSARCH.go +case "$GOOSARCH" in +_* | *_ | _) + echo 'undefined $GOOS_$GOARCH:' "$GOOSARCH" 1>&2 + exit 1 + ;; +aix_ppc) + mkerrors="$mkerrors -maix32" + mksyscall="go run mksyscall_aix_ppc.go -aix" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +aix_ppc64) + mkerrors="$mkerrors -maix64" + mksyscall="go run mksyscall_aix_ppc64.go -aix" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +darwin_amd64) + mkerrors="$mkerrors -m64" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm.go" + ;; +darwin_arm64) + mkerrors="$mkerrors -m64" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + mkasm="go run mkasm.go" + ;; +dragonfly_amd64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -dragonfly" + mksysnum="go run mksysnum.go 'https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_amd64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +freebsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -arm" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +freebsd_arm64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +freebsd_riscv64) + mkerrors="$mkerrors -m64" + mksysnum="go run mksysnum.go 'https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +netbsd_386) + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32 -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +netbsd_amd64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +netbsd_arm) + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -netbsd -arm" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +netbsd_arm64) + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -netbsd" + mksysnum="go run mksysnum.go 'http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master'" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_386) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m32" + mksyscall="go run mksyscall.go -l32 -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_amd64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +openbsd_arm) + mkasm="go run mkasm.go" + mkerrors="$mkerrors" + mksyscall="go run mksyscall.go -l32 -openbsd -arm -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_arm64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_mips64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_ppc64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +openbsd_riscv64) + mkasm="go run mkasm.go" + mkerrors="$mkerrors -m64" + mksyscall="go run mksyscall.go -openbsd -libc" + mksysctl="go run mksysctl_openbsd.go" + # Let the type of C char be signed for making the bare syscall + # API consistent across platforms. + mktypes="GOARCH=$GOARCH go tool cgo -godefs -- -fsigned-char" + ;; +solaris_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors="$mkerrors -m64" + mksysnum= + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +illumos_amd64) + mksyscall="go run mksyscall_solaris.go" + mkerrors= + mksysnum= + mktypes="GOARCH=$GOARCH go tool cgo -godefs" + ;; +*) + echo 'unrecognized $GOOS_$GOARCH: ' "$GOOSARCH" 1>&2 + exit 1 + ;; +esac + +( + if [ -n "$mkerrors" ]; then echo "$mkerrors |gofmt >$zerrors"; fi + case "$GOOS" in + *) + syscall_goos="syscall_$GOOS.go" + case "$GOOS" in + darwin | dragonfly | freebsd | netbsd | openbsd) + syscall_goos="syscall_bsd.go $syscall_goos" + ;; + esac + if [ -n "$mksyscall" ]; then + if [ "$GOOSARCH" == "aix_ppc64" ]; then + # aix/ppc64 script generates files instead of writing to stdin. + echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in && gofmt -w zsyscall_$GOOSARCH.go && gofmt -w zsyscall_"$GOOSARCH"_gccgo.go && gofmt -w zsyscall_"$GOOSARCH"_gc.go " ; + elif [ "$GOOS" == "illumos" ]; then + # illumos code generation requires a --illumos switch + echo "$mksyscall -illumos -tags illumos,$GOARCH syscall_illumos.go |gofmt > zsyscall_illumos_$GOARCH.go"; + # illumos implies solaris, so solaris code generation is also required + echo "$mksyscall -tags solaris,$GOARCH syscall_solaris.go syscall_solaris_$GOARCH.go |gofmt >zsyscall_solaris_$GOARCH.go"; + else + echo "$mksyscall -tags $GOOS,$GOARCH $syscall_goos $GOOSARCH_in |gofmt >zsyscall_$GOOSARCH.go"; + fi + fi + esac + if [ -n "$mksysctl" ]; then echo "$mksysctl |gofmt >$zsysctl"; fi + if [ -n "$mksysnum" ]; then echo "$mksysnum |gofmt >zsysnum_$GOOSARCH.go"; fi + if [ -n "$mktypes" ]; then echo "$mktypes types_$GOOS.go | go run mkpost.go > ztypes_$GOOSARCH.go"; fi + if [ -n "$mkasm" ]; then echo "$mkasm $GOOS $GOARCH"; fi +) | $run diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/mkerrors.sh b/ecs-agent/vendor/golang.org/x/sys/unix/mkerrors.sh new file mode 100644 index 0000000000..7456d9ddde --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/mkerrors.sh @@ -0,0 +1,778 @@ +#!/usr/bin/env bash +# Copyright 2009 The Go Authors. All rights reserved. +# Use of this source code is governed by a BSD-style +# license that can be found in the LICENSE file. + +# Generate Go code listing errors and other #defined constant +# values (ENAMETOOLONG etc.), by asking the preprocessor +# about the definitions. + +unset LANG +export LC_ALL=C +export LC_CTYPE=C + +if test -z "$GOARCH" -o -z "$GOOS"; then + echo 1>&2 "GOARCH or GOOS not defined in environment" + exit 1 +fi + +# Check that we are using the new build system if we should +if [[ "$GOOS" = "linux" ]] && [[ "$GOLANG_SYS_BUILD" != "docker" ]]; then + echo 1>&2 "In the Docker based build system, mkerrors should not be called directly." + echo 1>&2 "See README.md" + exit 1 +fi + +if [[ "$GOOS" = "aix" ]]; then + CC=${CC:-gcc} +else + CC=${CC:-cc} +fi + +if [[ "$GOOS" = "solaris" ]]; then + # Assumes GNU versions of utilities in PATH. + export PATH=/usr/gnu/bin:$PATH +fi + +uname=$(uname) + +includes_AIX=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define AF_LOCAL AF_UNIX +' + +includes_Darwin=' +#define _DARWIN_C_SOURCE +#define KERNEL 1 +#define _DARWIN_USE_64_BIT_INODE +#define __APPLE_USE_RFC_3542 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// for backwards compatibility because moved TIOCREMOTE to Kernel.framework after MacOSX12.0.sdk. +#define TIOCREMOTE 0x80047469 +' + +includes_DragonFly=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + +includes_FreeBSD=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if __FreeBSD__ >= 10 +#define IFT_CARP 0xf8 // IFT_CARP is deprecated in FreeBSD 10 +#undef SIOCAIFADDR +#define SIOCAIFADDR _IOW(105, 26, struct oifaliasreq) // ifaliasreq contains if_data +#undef SIOCSIFPHYADDR +#define SIOCSIFPHYADDR _IOW(105, 70, struct oifaliasreq) // ifaliasreq contains if_data +#endif +' + +includes_Linux=' +#define _LARGEFILE_SOURCE +#define _LARGEFILE64_SOURCE +#ifndef __LP64__ +#define _FILE_OFFSET_BITS 64 +#endif +#define _GNU_SOURCE + +// is broken on powerpc64, as it fails to include definitions of +// these structures. We just include them copied from . +#if defined(__powerpc__) +struct sgttyb { + char sg_ispeed; + char sg_ospeed; + char sg_erase; + char sg_kill; + short sg_flags; +}; + +struct tchars { + char t_intrc; + char t_quitc; + char t_startc; + char t_stopc; + char t_eofc; + char t_brkc; +}; + +struct ltchars { + char t_suspc; + char t_dsuspc; + char t_rprntc; + char t_flushc; + char t_werasc; + char t_lnextc; +}; +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#if defined(__sparc__) +// On sparc{,64}, the kernel defines struct termios2 itself which clashes with the +// definition in glibc. As only the error constants are needed here, include the +// generic termibits.h (which is included by termbits.h on sparc). +#include +#else +#include +#endif + +#ifndef MSG_FASTOPEN +#define MSG_FASTOPEN 0x20000000 +#endif + +#ifndef PTRACE_GETREGS +#define PTRACE_GETREGS 0xc +#endif + +#ifndef PTRACE_SETREGS +#define PTRACE_SETREGS 0xd +#endif + +#ifndef SOL_NETLINK +#define SOL_NETLINK 270 +#endif + +#ifndef SOL_SMC +#define SOL_SMC 286 +#endif + +#ifdef SOL_BLUETOOTH +// SPARC includes this in /usr/include/sparc64-linux-gnu/bits/socket.h +// but it is already in bluetooth_linux.go +#undef SOL_BLUETOOTH +#endif + +// Certain constants are missing from the fs/crypto UAPI +#define FS_KEY_DESC_PREFIX "fscrypt:" +#define FS_KEY_DESC_PREFIX_SIZE 8 +#define FS_MAX_KEY_SIZE 64 + +// The code generator produces -0x1 for (~0), but an unsigned value is necessary +// for the tipc_subscr timeout __u32 field. +#undef TIPC_WAIT_FOREVER +#define TIPC_WAIT_FOREVER 0xffffffff + +// Copied from linux/l2tp.h +// Including linux/l2tp.h here causes conflicts between linux/in.h +// and netinet/in.h included via net/route.h above. +#define IPPROTO_L2TP 115 + +// Copied from linux/hid.h. +// Keep in sync with the size of the referenced fields. +#define _HIDIOCGRAWNAME_LEN 128 // sizeof_field(struct hid_device, name) +#define _HIDIOCGRAWPHYS_LEN 64 // sizeof_field(struct hid_device, phys) +#define _HIDIOCGRAWUNIQ_LEN 64 // sizeof_field(struct hid_device, uniq) + +#define _HIDIOCGRAWNAME HIDIOCGRAWNAME(_HIDIOCGRAWNAME_LEN) +#define _HIDIOCGRAWPHYS HIDIOCGRAWPHYS(_HIDIOCGRAWPHYS_LEN) +#define _HIDIOCGRAWUNIQ HIDIOCGRAWUNIQ(_HIDIOCGRAWUNIQ_LEN) + +' + +includes_NetBSD=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// Needed since refers to it... +#define schedppq 1 +' + +includes_OpenBSD=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// We keep some constants not supported in OpenBSD 5.5 and beyond for +// the promise of compatibility. +#define EMUL_ENABLED 0x1 +#define EMUL_NATIVE 0x2 +#define IPV6_FAITH 0x1d +#define IPV6_OPTIONS 0x1 +#define IPV6_RTHDR_STRICT 0x1 +#define IPV6_SOCKOPT_RESERVED1 0x3 +#define SIOCGIFGENERIC 0xc020693a +#define SIOCSIFGENERIC 0x80206939 +#define WALTSIG 0x4 +' + +includes_SunOS=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' + + +includes=' +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +' +ccflags="$@" + +# Write go tool cgo -godefs input. +( + echo package unix + echo + echo '/*' + indirect="includes_$(uname)" + echo "${!indirect} $includes" + echo '*/' + echo 'import "C"' + echo 'import "syscall"' + echo + echo 'const (' + + # The gcc command line prints all the #defines + # it encounters while processing the input + echo "${!indirect} $includes" | $CC -x c - -E -dM $ccflags | + awk ' + $1 != "#define" || $2 ~ /\(/ || $3 == "" {next} + + $2 ~ /^E([ABCD]X|[BIS]P|[SD]I|S|FL)$/ {next} # 386 registers + $2 ~ /^(SIGEV_|SIGSTKSZ|SIGRT(MIN|MAX))/ {next} + $2 ~ /^(SCM_SRCRT)$/ {next} + $2 ~ /^(MAP_FAILED)$/ {next} + $2 ~ /^ELF_.*$/ {next}# contains ELF_ARCH, etc. + + $2 ~ /^EXTATTR_NAMESPACE_NAMES/ || + $2 ~ /^EXTATTR_NAMESPACE_[A-Z]+_STRING/ {next} + + $2 !~ /^ECCAPBITS/ && + $2 !~ /^ETH_/ && + $2 !~ /^EPROC_/ && + $2 !~ /^EQUIV_/ && + $2 !~ /^EXPR_/ && + $2 !~ /^EVIOC/ && + $2 ~ /^E[A-Z0-9_]+$/ || + $2 ~ /^B[0-9_]+$/ || + $2 ~ /^(OLD|NEW)DEV$/ || + $2 == "BOTHER" || + $2 ~ /^CI?BAUD(EX)?$/ || + $2 == "IBSHIFT" || + $2 ~ /^V[A-Z0-9]+$/ || + $2 ~ /^CS[A-Z0-9]/ || + $2 ~ /^I(SIG|CANON|CRNL|UCLC|EXTEN|MAXBEL|STRIP|UTF8)$/ || + $2 ~ /^IGN/ || + $2 ~ /^IX(ON|ANY|OFF)$/ || + $2 ~ /^IN(LCR|PCK)$/ || + $2 !~ "X86_CR3_PCID_NOFLUSH" && + $2 ~ /(^FLU?SH)|(FLU?SH$)/ || + $2 ~ /^C(LOCAL|READ|MSPAR|RTSCTS)$/ || + $2 == "BRKINT" || + $2 == "HUPCL" || + $2 == "PENDIN" || + $2 == "TOSTOP" || + $2 == "XCASE" || + $2 == "ALTWERASE" || + $2 == "NOKERNINFO" || + $2 == "NFDBITS" || + $2 ~ /^PAR/ || + $2 ~ /^SIG[^_]/ || + $2 ~ /^O[CNPFPL][A-Z]+[^_][A-Z]+$/ || + $2 ~ /^(NL|CR|TAB|BS|VT|FF)DLY$/ || + $2 ~ /^(NL|CR|TAB|BS|VT|FF)[0-9]$/ || + $2 ~ /^O?XTABS$/ || + $2 ~ /^TC[IO](ON|OFF)$/ || + $2 ~ /^IN_/ || + $2 ~ /^KCM/ || + $2 ~ /^LANDLOCK_/ || + $2 ~ /^LOCK_(SH|EX|NB|UN)$/ || + $2 ~ /^LO_(KEY|NAME)_SIZE$/ || + $2 ~ /^LOOP_(CLR|CTL|GET|SET)_/ || + $2 ~ /^(AF|SOCK|SO|SOL|IPPROTO|IP|IPV6|TCP|MCAST|EVFILT|NOTE|SHUT|PROT|MAP|MFD|T?PACKET|MSG|SCM|MCL|DT|MADV|PR|LOCAL|TCPOPT)_/ || + $2 ~ /^NFC_(GENL|PROTO|COMM|RF|SE|DIRECTION|LLCP|SOCKPROTO)_/ || + $2 ~ /^NFC_.*_(MAX)?SIZE$/ || + $2 ~ /^RAW_PAYLOAD_/ || + $2 ~ /^TP_STATUS_/ || + $2 ~ /^FALLOC_/ || + $2 ~ /^ICMPV?6?_(FILTER|SEC)/ || + $2 == "SOMAXCONN" || + $2 == "NAME_MAX" || + $2 == "IFNAMSIZ" || + $2 ~ /^CTL_(HW|KERN|MAXNAME|NET|QUERY)$/ || + $2 ~ /^KERN_(HOSTNAME|OS(RELEASE|TYPE)|VERSION)$/ || + $2 ~ /^HW_MACHINE$/ || + $2 ~ /^SYSCTL_VERS/ || + $2 !~ "MNT_BITS" && + $2 ~ /^(MS|MNT|MOUNT|UMOUNT)_/ || + $2 ~ /^NS_GET_/ || + $2 ~ /^TUN(SET|GET|ATTACH|DETACH)/ || + $2 ~ /^(O|F|[ES]?FD|NAME|S|PTRACE|PT|PIOD|TFD)_/ || + $2 ~ /^KEXEC_/ || + $2 ~ /^LINUX_REBOOT_CMD_/ || + $2 ~ /^LINUX_REBOOT_MAGIC[12]$/ || + $2 ~ /^MODULE_INIT_/ || + $2 !~ "NLA_TYPE_MASK" && + $2 !~ /^RTC_VL_(ACCURACY|BACKUP|DATA)/ && + $2 ~ /^(NETLINK|NLM|NLMSG|NLA|IFA|IFAN|RT|RTC|RTCF|RTN|RTPROT|RTNH|ARPHRD|ETH_P|NETNSA)_/ || + $2 ~ /^FIORDCHK$/ || + $2 ~ /^SIOC/ || + $2 ~ /^TIOC/ || + $2 ~ /^TCGET/ || + $2 ~ /^TCSET/ || + $2 ~ /^TC(FLSH|SBRKP?|XONC)$/ || + $2 !~ "RTF_BITS" && + $2 ~ /^(IFF|IFT|NET_RT|RTM(GRP)?|RTF|RTV|RTA|RTAX)_/ || + $2 ~ /^BIOC/ || + $2 ~ /^DIOC/ || + $2 ~ /^RUSAGE_(SELF|CHILDREN|THREAD)/ || + $2 ~ /^RLIMIT_(AS|CORE|CPU|DATA|FSIZE|LOCKS|MEMLOCK|MSGQUEUE|NICE|NOFILE|NPROC|RSS|RTPRIO|RTTIME|SIGPENDING|STACK)|RLIM_INFINITY/ || + $2 ~ /^PRIO_(PROCESS|PGRP|USER)/ || + $2 ~ /^CLONE_[A-Z_]+/ || + $2 !~ /^(BPF_TIMEVAL|BPF_FIB_LOOKUP_[A-Z]+)$/ && + $2 ~ /^(BPF|DLT)_/ || + $2 ~ /^AUDIT_/ || + $2 ~ /^(CLOCK|TIMER)_/ || + $2 ~ /^CAN_/ || + $2 ~ /^CAP_/ || + $2 ~ /^CP_/ || + $2 ~ /^CPUSTATES$/ || + $2 ~ /^CTLIOCGINFO$/ || + $2 ~ /^ALG_/ || + $2 ~ /^FI(CLONE|DEDUPERANGE)/ || + $2 ~ /^FS_(POLICY_FLAGS|KEY_DESC|ENCRYPTION_MODE|[A-Z0-9_]+_KEY_SIZE)/ || + $2 ~ /^FS_IOC_.*(ENCRYPTION|VERITY|[GS]ETFLAGS)/ || + $2 ~ /^FS_VERITY_/ || + $2 ~ /^FSCRYPT_/ || + $2 ~ /^DM_/ || + $2 ~ /^GRND_/ || + $2 ~ /^RND/ || + $2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ || + $2 ~ /^KEYCTL_/ || + $2 ~ /^PERF_/ || + $2 ~ /^SECCOMP_MODE_/ || + $2 ~ /^SEEK_/ || + $2 ~ /^SPLICE_/ || + $2 ~ /^SYNC_FILE_RANGE_/ || + $2 !~ /IOC_MAGIC/ && + $2 ~ /^[A-Z][A-Z0-9_]+_MAGIC2?$/ || + $2 ~ /^(VM|VMADDR)_/ || + $2 ~ /^IOCTL_VM_SOCKETS_/ || + $2 ~ /^(TASKSTATS|TS)_/ || + $2 ~ /^CGROUPSTATS_/ || + $2 ~ /^GENL_/ || + $2 ~ /^STATX_/ || + $2 ~ /^RENAME/ || + $2 ~ /^UBI_IOC[A-Z]/ || + $2 ~ /^UTIME_/ || + $2 ~ /^XATTR_(CREATE|REPLACE|NO(DEFAULT|FOLLOW|SECURITY)|SHOWCOMPRESSION)/ || + $2 ~ /^ATTR_(BIT_MAP_COUNT|(CMN|VOL|FILE)_)/ || + $2 ~ /^FSOPT_/ || + $2 ~ /^WDIO[CFS]_/ || + $2 ~ /^NFN/ || + $2 ~ /^XDP_/ || + $2 ~ /^RWF_/ || + $2 ~ /^(HDIO|WIN|SMART)_/ || + $2 ~ /^CRYPTO_/ || + $2 ~ /^TIPC_/ || + $2 !~ "DEVLINK_RELOAD_LIMITS_VALID_MASK" && + $2 ~ /^DEVLINK_/ || + $2 ~ /^ETHTOOL_/ || + $2 ~ /^LWTUNNEL_IP/ || + $2 ~ /^ITIMER_/ || + $2 !~ "WMESGLEN" && + $2 ~ /^W[A-Z0-9]+$/ || + $2 ~ /^P_/ || + $2 ~/^PPPIOC/ || + $2 ~ /^FAN_|FANOTIFY_/ || + $2 == "HID_MAX_DESCRIPTOR_SIZE" || + $2 ~ /^_?HIDIOC/ || + $2 ~ /^BUS_(USB|HIL|BLUETOOTH|VIRTUAL)$/ || + $2 ~ /^MTD/ || + $2 ~ /^OTP/ || + $2 ~ /^MEM/ || + $2 ~ /^WG/ || + $2 ~ /^FIB_RULE_/ || + $2 ~ /^BLK[A-Z]*(GET$|SET$|BUF$|PART$|SIZE)/ {printf("\t%s = C.%s\n", $2, $2)} + $2 ~ /^__WCOREFLAG$/ {next} + $2 ~ /^__W[A-Z0-9]+$/ {printf("\t%s = C.%s\n", substr($2,3), $2)} + + {next} + ' | sort + + echo ')' +) >_const.go + +# Pull out the error names for later. +errors=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print $2 }' | + sort +) + +# Pull out the signal names for later. +signals=$( + echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print $2 }' | + grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | + sort +) + +# Again, writing regexps to a file. +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^E[A-Z0-9_]+$/ { print "^\t" $2 "[ \t]*=" }' | + sort >_error.grep +echo '#include ' | $CC -x c - -E -dM $ccflags | + awk '$1=="#define" && $2 ~ /^SIG[A-Z0-9]+$/ { print "^\t" $2 "[ \t]*=" }' | + grep -v 'SIGSTKSIZE\|SIGSTKSZ\|SIGRT\|SIGMAX64' | + sort >_signal.grep + +echo '// mkerrors.sh' "$@" +echo '// Code generated by the command above; see README.md. DO NOT EDIT.' +echo +echo "//go:build ${GOARCH} && ${GOOS}" +echo "// +build ${GOARCH},${GOOS}" +echo +go tool cgo -godefs -- "$@" _const.go >_error.out +cat _error.out | grep -vf _error.grep | grep -vf _signal.grep +echo +echo '// Errors' +echo 'const (' +cat _error.out | grep -f _error.grep | sed 's/=\(.*\)/= syscall.Errno(\1)/' +echo ')' + +echo +echo '// Signals' +echo 'const (' +cat _error.out | grep -f _signal.grep | sed 's/=\(.*\)/= syscall.Signal(\1)/' +echo ')' + +# Run C program to print error and syscall strings. +( + echo -E " +#include +#include +#include +#include +#include +#include + +#define nelem(x) (sizeof(x)/sizeof((x)[0])) + +enum { A = 'A', Z = 'Z', a = 'a', z = 'z' }; // avoid need for single quotes below + +struct tuple { + int num; + const char *name; +}; + +struct tuple errors[] = { +" + for i in $errors + do + echo -E ' {'$i', "'$i'" },' + done + + echo -E " +}; + +struct tuple signals[] = { +" + for i in $signals + do + echo -E ' {'$i', "'$i'" },' + done + + # Use -E because on some systems bash builtin interprets \n itself. + echo -E ' +}; + +static int +tuplecmp(const void *a, const void *b) +{ + return ((struct tuple *)a)->num - ((struct tuple *)b)->num; +} + +int +main(void) +{ + int i, e; + char buf[1024], *p; + + printf("\n\n// Error table\n"); + printf("var errorList = [...]struct {\n"); + printf("\tnum syscall.Errno\n"); + printf("\tname string\n"); + printf("\tdesc string\n"); + printf("} {\n"); + qsort(errors, nelem(errors), sizeof errors[0], tuplecmp); + for(i=0; i 0 && errors[i-1].num == e) + continue; + strcpy(buf, strerror(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + printf("\t{ %d, \"%s\", \"%s\" },\n", e, errors[i].name, buf); + } + printf("}\n\n"); + + printf("\n\n// Signal table\n"); + printf("var signalList = [...]struct {\n"); + printf("\tnum syscall.Signal\n"); + printf("\tname string\n"); + printf("\tdesc string\n"); + printf("} {\n"); + qsort(signals, nelem(signals), sizeof signals[0], tuplecmp); + for(i=0; i 0 && signals[i-1].num == e) + continue; + strcpy(buf, strsignal(e)); + // lowercase first letter: Bad -> bad, but STREAM -> STREAM. + if(A <= buf[0] && buf[0] <= Z && a <= buf[1] && buf[1] <= z) + buf[0] += a - A; + // cut trailing : number. + p = strrchr(buf, ":"[0]); + if(p) + *p = '\0'; + printf("\t{ %d, \"%s\", \"%s\" },\n", e, signals[i].name, buf); + } + printf("}\n\n"); + + return 0; +} + +' +) >_errors.c + +$CC $ccflags -o _errors _errors.c && $GORUN ./_errors && rm -f _errors.c _errors _const.go _error.grep _signal.grep _error.out diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/pagesize_unix.go b/ecs-agent/vendor/golang.org/x/sys/unix/pagesize_unix.go new file mode 100644 index 0000000000..53f1b4c5b8 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/pagesize_unix.go @@ -0,0 +1,16 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +// For Unix, get the pagesize from the runtime. + +package unix + +import "syscall" + +func Getpagesize() int { + return syscall.Getpagesize() +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/pledge_openbsd.go new file mode 100644 index 0000000000..eb48294b27 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/pledge_openbsd.go @@ -0,0 +1,163 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import ( + "errors" + "fmt" + "strconv" + "syscall" + "unsafe" +) + +// Pledge implements the pledge syscall. +// +// The pledge syscall does not accept execpromises on OpenBSD releases +// before 6.3. +// +// execpromises must be empty when Pledge is called on OpenBSD +// releases predating 6.3, otherwise an error will be returned. +// +// For more information see pledge(2). +func Pledge(promises, execpromises string) error { + maj, min, err := majmin() + if err != nil { + return err + } + + err = pledgeAvailable(maj, min, execpromises) + if err != nil { + return err + } + + pptr, err := syscall.BytePtrFromString(promises) + if err != nil { + return err + } + + // This variable will hold either a nil unsafe.Pointer or + // an unsafe.Pointer to a string (execpromises). + var expr unsafe.Pointer + + // If we're running on OpenBSD > 6.2, pass execpromises to the syscall. + if maj > 6 || (maj == 6 && min > 2) { + exptr, err := syscall.BytePtrFromString(execpromises) + if err != nil { + return err + } + expr = unsafe.Pointer(exptr) + } + + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) + if e != 0 { + return e + } + + return nil +} + +// PledgePromises implements the pledge syscall. +// +// This changes the promises and leaves the execpromises untouched. +// +// For more information see pledge(2). +func PledgePromises(promises string) error { + maj, min, err := majmin() + if err != nil { + return err + } + + err = pledgeAvailable(maj, min, "") + if err != nil { + return err + } + + // This variable holds the execpromises and is always nil. + var expr unsafe.Pointer + + pptr, err := syscall.BytePtrFromString(promises) + if err != nil { + return err + } + + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(unsafe.Pointer(pptr)), uintptr(expr), 0) + if e != 0 { + return e + } + + return nil +} + +// PledgeExecpromises implements the pledge syscall. +// +// This changes the execpromises and leaves the promises untouched. +// +// For more information see pledge(2). +func PledgeExecpromises(execpromises string) error { + maj, min, err := majmin() + if err != nil { + return err + } + + err = pledgeAvailable(maj, min, execpromises) + if err != nil { + return err + } + + // This variable holds the promises and is always nil. + var pptr unsafe.Pointer + + exptr, err := syscall.BytePtrFromString(execpromises) + if err != nil { + return err + } + + _, _, e := syscall.Syscall(SYS_PLEDGE, uintptr(pptr), uintptr(unsafe.Pointer(exptr)), 0) + if e != 0 { + return e + } + + return nil +} + +// majmin returns major and minor version number for an OpenBSD system. +func majmin() (major int, minor int, err error) { + var v Utsname + err = Uname(&v) + if err != nil { + return + } + + major, err = strconv.Atoi(string(v.Release[0])) + if err != nil { + err = errors.New("cannot parse major version number returned by uname") + return + } + + minor, err = strconv.Atoi(string(v.Release[2])) + if err != nil { + err = errors.New("cannot parse minor version number returned by uname") + return + } + + return +} + +// pledgeAvailable checks for availability of the pledge(2) syscall +// based on the running OpenBSD version. +func pledgeAvailable(maj, min int, execpromises string) error { + // If OpenBSD <= 5.9, pledge is not available. + if (maj == 5 && min != 9) || maj < 5 { + return fmt.Errorf("pledge syscall is not available on OpenBSD %d.%d", maj, min) + } + + // If OpenBSD <= 6.2 and execpromises is not empty, + // return an error - execpromises is not available before 6.3 + if (maj < 6 || (maj == 6 && min <= 2)) && execpromises != "" { + return fmt.Errorf("cannot use execpromises on OpenBSD %d.%d", maj, min) + } + + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/ecs-agent/vendor/golang.org/x/sys/unix/ptrace_darwin.go new file mode 100644 index 0000000000..39dba6ca6a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ptrace_darwin.go @@ -0,0 +1,18 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin && !ios +// +build darwin,!ios + +package unix + +import "unsafe" + +func ptrace(request int, pid int, addr uintptr, data uintptr) error { + return ptrace1(request, pid, addr, data) +} + +func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) error { + return ptrace1Ptr(request, pid, addr, data) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ptrace_ios.go b/ecs-agent/vendor/golang.org/x/sys/unix/ptrace_ios.go new file mode 100644 index 0000000000..9ea66330a9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ptrace_ios.go @@ -0,0 +1,18 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build ios +// +build ios + +package unix + +import "unsafe" + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + return ENOTSUP +} + +func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { + return ENOTSUP +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/race.go b/ecs-agent/vendor/golang.org/x/sys/unix/race.go new file mode 100644 index 0000000000..6f6c5fec5a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/race.go @@ -0,0 +1,31 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin && race) || (linux && race) || (freebsd && race) +// +build darwin,race linux,race freebsd,race + +package unix + +import ( + "runtime" + "unsafe" +) + +const raceenabled = true + +func raceAcquire(addr unsafe.Pointer) { + runtime.RaceAcquire(addr) +} + +func raceReleaseMerge(addr unsafe.Pointer) { + runtime.RaceReleaseMerge(addr) +} + +func raceReadRange(addr unsafe.Pointer, len int) { + runtime.RaceReadRange(addr, len) +} + +func raceWriteRange(addr unsafe.Pointer, len int) { + runtime.RaceWriteRange(addr, len) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/race0.go b/ecs-agent/vendor/golang.org/x/sys/unix/race0.go new file mode 100644 index 0000000000..706e1322ae --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/race0.go @@ -0,0 +1,26 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || (darwin && !race) || (linux && !race) || (freebsd && !race) || netbsd || openbsd || solaris || dragonfly || zos +// +build aix darwin,!race linux,!race freebsd,!race netbsd openbsd solaris dragonfly zos + +package unix + +import ( + "unsafe" +) + +const raceenabled = false + +func raceAcquire(addr unsafe.Pointer) { +} + +func raceReleaseMerge(addr unsafe.Pointer) { +} + +func raceReadRange(addr unsafe.Pointer, len int) { +} + +func raceWriteRange(addr unsafe.Pointer, len int) { +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdents.go new file mode 100644 index 0000000000..4d6257569e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdents.go @@ -0,0 +1,13 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || dragonfly || freebsd || linux || netbsd || openbsd +// +build aix dragonfly freebsd linux netbsd openbsd + +package unix + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + return Getdents(fd, buf) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go new file mode 100644 index 0000000000..2a4ba47c45 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go @@ -0,0 +1,20 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin +// +build darwin + +package unix + +import "unsafe" + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + // Final argument is (basep *uintptr) and the syscall doesn't take nil. + // 64 bits should be enough. (32 bits isn't even on 386). Since the + // actual system call is getdirentries64, 64 is a good guess. + // TODO(rsc): Can we use a single global basep for all calls? + var base = (*uintptr)(unsafe.Pointer(new(uint64))) + return Getdirentries(fd, buf, base) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go new file mode 100644 index 0000000000..5144deeccd --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go @@ -0,0 +1,16 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + if SizeofPtr == 8 && !supportsABI(_dragonflyABIChangeVersion) { + // 64-bit Dragonfly before the September 2019 ABI changes still requires + // 32-bit aligned access to network subsystem. + salign = 4 + } + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_linux.go new file mode 100644 index 0000000000..5f63147e06 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_linux.go @@ -0,0 +1,85 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Socket control messages + +package unix + +import "unsafe" + +// UnixCredentials encodes credentials into a socket control message +// for sending to another process. This can be used for +// authentication. +func UnixCredentials(ucred *Ucred) []byte { + b := make([]byte, CmsgSpace(SizeofUcred)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_CREDENTIALS + h.SetLen(CmsgLen(SizeofUcred)) + *(*Ucred)(h.data(0)) = *ucred + return b +} + +// ParseUnixCredentials decodes a socket control message that contains +// credentials in a Ucred structure. To receive such a message, the +// SO_PASSCRED option must be enabled on the socket. +func ParseUnixCredentials(m *SocketControlMessage) (*Ucred, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_CREDENTIALS { + return nil, EINVAL + } + ucred := *(*Ucred)(unsafe.Pointer(&m.Data[0])) + return &ucred, nil +} + +// PktInfo4 encodes Inet4Pktinfo into a socket control message of type IP_PKTINFO. +func PktInfo4(info *Inet4Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet4Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IP + h.Type = IP_PKTINFO + h.SetLen(CmsgLen(SizeofInet4Pktinfo)) + *(*Inet4Pktinfo)(h.data(0)) = *info + return b +} + +// PktInfo6 encodes Inet6Pktinfo into a socket control message of type IPV6_PKTINFO. +func PktInfo6(info *Inet6Pktinfo) []byte { + b := make([]byte, CmsgSpace(SizeofInet6Pktinfo)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_IPV6 + h.Type = IPV6_PKTINFO + h.SetLen(CmsgLen(SizeofInet6Pktinfo)) + *(*Inet6Pktinfo)(h.data(0)) = *info + return b +} + +// ParseOrigDstAddr decodes a socket control message containing the original +// destination address. To receive such a message the IP_RECVORIGDSTADDR or +// IPV6_RECVORIGDSTADDR option must be enabled on the socket. +func ParseOrigDstAddr(m *SocketControlMessage) (Sockaddr, error) { + switch { + case m.Header.Level == SOL_IP && m.Header.Type == IP_ORIGDSTADDR: + pp := (*RawSockaddrInet4)(unsafe.Pointer(&m.Data[0])) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case m.Header.Level == SOL_IPV6 && m.Header.Type == IPV6_ORIGDSTADDR: + pp := (*RawSockaddrInet6)(unsafe.Pointer(&m.Data[0])) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + + default: + return nil, EINVAL + } +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix.go new file mode 100644 index 0000000000..3865943f6e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix.go @@ -0,0 +1,107 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +// Socket control messages + +package unix + +import ( + "unsafe" +) + +// CmsgLen returns the value to store in the Len field of the Cmsghdr +// structure, taking into account any necessary alignment. +func CmsgLen(datalen int) int { + return cmsgAlignOf(SizeofCmsghdr) + datalen +} + +// CmsgSpace returns the number of bytes an ancillary element with +// payload of the passed data length occupies. +func CmsgSpace(datalen int) int { + return cmsgAlignOf(SizeofCmsghdr) + cmsgAlignOf(datalen) +} + +func (h *Cmsghdr) data(offset uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(unsafe.Pointer(h)) + uintptr(cmsgAlignOf(SizeofCmsghdr)) + offset) +} + +// SocketControlMessage represents a socket control message. +type SocketControlMessage struct { + Header Cmsghdr + Data []byte +} + +// ParseSocketControlMessage parses b as an array of socket control +// messages. +func ParseSocketControlMessage(b []byte) ([]SocketControlMessage, error) { + var msgs []SocketControlMessage + i := 0 + for i+CmsgLen(0) <= len(b) { + h, dbuf, err := socketControlMessageHeaderAndData(b[i:]) + if err != nil { + return nil, err + } + m := SocketControlMessage{Header: *h, Data: dbuf} + msgs = append(msgs, m) + i += cmsgAlignOf(int(h.Len)) + } + return msgs, nil +} + +// ParseOneSocketControlMessage parses a single socket control message from b, returning the message header, +// message data (a slice of b), and the remainder of b after that single message. +// When there are no remaining messages, len(remainder) == 0. +func ParseOneSocketControlMessage(b []byte) (hdr Cmsghdr, data []byte, remainder []byte, err error) { + h, dbuf, err := socketControlMessageHeaderAndData(b) + if err != nil { + return Cmsghdr{}, nil, nil, err + } + if i := cmsgAlignOf(int(h.Len)); i < len(b) { + remainder = b[i:] + } + return *h, dbuf, remainder, nil +} + +func socketControlMessageHeaderAndData(b []byte) (*Cmsghdr, []byte, error) { + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + if h.Len < SizeofCmsghdr || uint64(h.Len) > uint64(len(b)) { + return nil, nil, EINVAL + } + return h, b[cmsgAlignOf(SizeofCmsghdr):h.Len], nil +} + +// UnixRights encodes a set of open file descriptors into a socket +// control message for sending to another process. +func UnixRights(fds ...int) []byte { + datalen := len(fds) * 4 + b := make([]byte, CmsgSpace(datalen)) + h := (*Cmsghdr)(unsafe.Pointer(&b[0])) + h.Level = SOL_SOCKET + h.Type = SCM_RIGHTS + h.SetLen(CmsgLen(datalen)) + for i, fd := range fds { + *(*int32)(h.data(4 * uintptr(i))) = int32(fd) + } + return b +} + +// ParseUnixRights decodes a socket control message that contains an +// integer array of open file descriptors from another process. +func ParseUnixRights(m *SocketControlMessage) ([]int, error) { + if m.Header.Level != SOL_SOCKET { + return nil, EINVAL + } + if m.Header.Type != SCM_RIGHTS { + return nil, EINVAL + } + fds := make([]int, len(m.Data)>>2) + for i, j := 0, 0; i < len(m.Data); i += 4 { + fds[j] = int(*(*int32)(unsafe.Pointer(&m.Data[i]))) + j++ + } + return fds, nil +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go new file mode 100644 index 0000000000..0840fe4a57 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go @@ -0,0 +1,47 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin freebsd linux netbsd openbsd solaris zos + +package unix + +import ( + "runtime" +) + +// Round the length of a raw sockaddr up to align it properly. +func cmsgAlignOf(salen int) int { + salign := SizeofPtr + + // dragonfly needs to check ABI version at runtime, see cmsgAlignOf in + // sockcmsg_dragonfly.go + switch runtime.GOOS { + case "aix": + // There is no alignment on AIX. + salign = 1 + case "darwin", "ios", "illumos", "solaris": + // NOTE: It seems like 64-bit Darwin, Illumos and Solaris + // kernels still require 32-bit aligned access to network + // subsystem. + if SizeofPtr == 8 { + salign = 4 + } + case "netbsd", "openbsd": + // NetBSD and OpenBSD armv7 require 64-bit alignment. + if runtime.GOARCH == "arm" { + salign = 8 + } + // NetBSD aarch64 requires 128-bit alignment. + if runtime.GOOS == "netbsd" && runtime.GOARCH == "arm64" { + salign = 16 + } + case "zos": + // z/OS socket macros use [32-bit] sizeof(int) alignment, + // not pointer width. + salign = SizeofInt + } + + return (salen + salign - 1) & ^(salign - 1) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall.go new file mode 100644 index 0000000000..63e8c83831 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall.go @@ -0,0 +1,87 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +// Package unix contains an interface to the low-level operating system +// primitives. OS details vary depending on the underlying system, and +// by default, godoc will display OS-specific documentation for the current +// system. If you want godoc to display OS documentation for another +// system, set $GOOS and $GOARCH to the desired system. For example, if +// you want to view documentation for freebsd/arm on linux/amd64, set $GOOS +// to freebsd and $GOARCH to arm. +// +// The primary use of this package is inside other packages that provide a more +// portable interface to the system, such as "os", "time" and "net". Use +// those packages rather than this one if you can. +// +// For details of the functions and data types in this package consult +// the manuals for the appropriate operating system. +// +// These calls return err == nil to indicate success; otherwise +// err represents an operating system error describing the failure and +// holds a value of type syscall.Errno. +package unix // import "golang.org/x/sys/unix" + +import ( + "bytes" + "strings" + "unsafe" +) + +// ByteSliceFromString returns a NUL-terminated slice of bytes +// containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func ByteSliceFromString(s string) ([]byte, error) { + if strings.IndexByte(s, 0) != -1 { + return nil, EINVAL + } + a := make([]byte, len(s)+1) + copy(a, s) + return a, nil +} + +// BytePtrFromString returns a pointer to a NUL-terminated array of +// bytes containing the text of s. If s contains a NUL byte at any +// location, it returns (nil, EINVAL). +func BytePtrFromString(s string) (*byte, error) { + a, err := ByteSliceFromString(s) + if err != nil { + return nil, err + } + return &a[0], nil +} + +// ByteSliceToString returns a string form of the text represented by the slice s, with a terminating NUL and any +// bytes after the NUL removed. +func ByteSliceToString(s []byte) string { + if i := bytes.IndexByte(s, 0); i != -1 { + s = s[:i] + } + return string(s) +} + +// BytePtrToString takes a pointer to a sequence of text and returns the corresponding string. +// If the pointer is nil, it returns the empty string. It assumes that the text sequence is terminated +// at a zero byte; if the zero byte is not present, the program may crash. +func BytePtrToString(p *byte) string { + if p == nil { + return "" + } + if *p == 0 { + return "" + } + + // Find NUL terminator. + n := 0 + for ptr := unsafe.Pointer(p); *(*byte)(ptr) != 0; n++ { + ptr = unsafe.Pointer(uintptr(ptr) + 1) + } + + return string(unsafe.Slice(p, n)) +} + +// Single-word zero for use when we need a valid pointer to 0 bytes. +var _zero uintptr diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix.go new file mode 100644 index 0000000000..d9f5544ccf --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix.go @@ -0,0 +1,599 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix +// +build aix + +// Aix system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package unix + +import "unsafe" + +/* + * Wrapped + */ + +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +func Utimes(path string, tv []Timeval) error { + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n > len(sa.raw.Path) { + return nil, 0, EINVAL + } + if n == len(sa.raw.Path) && name[0] != '@' { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = uint8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +//sys getcwd(buf []byte) (err error) + +const ImplementsGetwd = true + +func Getwd() (ret string, err error) { + for len := uint64(4096); ; len *= 2 { + b := make([]byte, len) + err := getcwd(b) + if err == nil { + i := 0 + for b[i] != 0 { + i++ + } + return string(b[0:i]), nil + } + if err != ERANGE { + return "", err + } + } +} + +func Getcwd(buf []byte) (n int, err error) { + err = getcwd(buf) + if err == nil { + i := 0 + for buf[i] != 0 { + i++ + } + n = i + 1 + } + return +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 16 on BSD. + if n < 0 || n > 1000 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +/* + * Socket + */ + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if nfd == -1 { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); n == -1 { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return +} + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + + // Some versions of AIX have a bug in getsockname (see IV78655). + // We can't rely on sa.Len being set correctly. + n := SizeofSockaddrUnix - 3 // subtract leading Family, Len, terminating NUL. + for i := 0; i < n; i++ { + if pp.Path[i] == 0 { + n = i + break + } + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + return nil, EAFNOSUPPORT +} + +func Gettimeofday(tv *Timeval) (err error) { + err = gettimeofday(tv, nil) + return +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} + +//sys getdirent(fd int, buf []byte) (n int, err error) + +func Getdents(fd int, buf []byte) (n int, err error) { + return getdirent(fd, buf) +} + +//sys wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + var r Pid_t + err = ERESTART + // AIX wait4 may return with ERESTART errno, while the processus is still + // active. + for err == ERESTART { + r, err = wait4(Pid_t(pid), &status, options, rusage) + } + wpid = int(r) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +/* + * Wait + */ + +type WaitStatus uint32 + +func (w WaitStatus) Stopped() bool { return w&0x40 != 0 } +func (w WaitStatus) StopSignal() Signal { + if !w.Stopped() { + return -1 + } + return Signal(w>>8) & 0xFF +} + +func (w WaitStatus) Exited() bool { return w&0xFF == 0 } +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int((w >> 8) & 0xFF) +} + +func (w WaitStatus) Signaled() bool { return w&0x40 == 0 && w&0xFF != 0 } +func (w WaitStatus) Signal() Signal { + if !w.Signaled() { + return -1 + } + return Signal(w>>16) & 0xFF +} + +func (w WaitStatus) Continued() bool { return w&0x01000000 != 0 } + +func (w WaitStatus) CoreDump() bool { return w&0x80 == 0x80 } + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = ioctl + +// fcntl must never be called with cmd=F_DUP2FD because it doesn't work on AIX +// There is no way to create a custom fcntl and to keep //sys fcntl easily, +// Therefore, the programmer must call dup2 instead of fcntl in this case. + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +//sys FcntlInt(fd uintptr, cmd int, arg int) (r int,err error) = fcntl + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +//sys FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) = fcntl + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +//sys fsyncRange(fd int, how int, start int64, length int64) (err error) = fsync_range + +func Fsync(fd int) error { + return fsyncRange(fd, O_SYNC, 0, 0) +} + +/* + * Direct access + */ + +//sys Acct(path string) (err error) +//sys Chdir(path string) (err error) +//sys Chroot(path string) (err error) +//sys Close(fd int) (err error) +//sys Dup(oldfd int) (fd int, err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +// readdir_r +//sysnb Getpgid(pid int) (pgid int, err error) + +//sys Getpgrp() (pid int) + +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Kill(pid int, sig Signal) (err error) +//sys Klogctl(typ int, buf []byte) (n int, err error) = syslog +//sys Mkdir(dirfd int, path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) = open64 +//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Setdomainname(p []byte) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tv *Timeval) (err error) + +//sys Setuid(uid int) (err error) +//sys Setgid(uid int) (err error) + +//sys Setpriority(which int, who int, prio int) (err error) +//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) +//sys Sync() +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sysnb Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys readlen(fd int, p *byte, np int) (n int, err error) = read +//sys writelen(fd int, p *byte, np int) (n int, err error) = write + +//sys Dup2(oldfd int, newfd int) (err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = posix_fadvise64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys fstat(fd int, stat *Stat_t) (err error) +//sys fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = fstatat +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = pread64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = pwrite64 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys stat(path string, statptr *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys Truncate(path string, length int64) (err error) + +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) + +// In order to use msghdr structure with Control, Controllen, nrecvmsg and nsendmsg must be used. +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = nrecvmsg +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = nsendmsg + +//sys munmap(addr uintptr, length uintptr) (err error) + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +//sys Madvise(b []byte, advice int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +//sys gettimeofday(tv *Timeval, tzp *Timezone) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) + +//sys Getsystemcfg(label int) (n uint64) + +//sys umount(target string) (err error) + +func Unmount(target string, flags int) (err error) { + if flags != 0 { + // AIX doesn't have any flags for umount. + return ENOSYS + } + return umount(target) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go new file mode 100644 index 0000000000..e92a0be163 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go @@ -0,0 +1,54 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix && ppc +// +build aix,ppc + +package unix + +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = getrlimit64 +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) = setrlimit64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek64 + +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Fstat(fd int, stat *Stat_t) error { + return fstat(fd, stat) +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { + return fstatat(dirfd, path, stat, flags) +} + +func Lstat(path string, stat *Stat_t) error { + return lstat(path, stat) +} + +func Stat(path string, statptr *Stat_t) error { + return stat(path, statptr) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go new file mode 100644 index 0000000000..16eed17098 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go @@ -0,0 +1,85 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix && ppc64 +// +build aix,ppc64 + +package unix + +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = lseek + +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) = mmap64 + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int64(sec), Usec: int32(usec)} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// In order to only have Timespec structure, type of Stat_t's fields +// Atim, Mtim and Ctim is changed from StTimespec to Timespec during +// ztypes generation. +// On ppc64, Timespec.Nsec is an int64 while StTimespec.Nsec is an +// int32, so the fields' value must be modified. +func fixStatTimFields(stat *Stat_t) { + stat.Atim.Nsec >>= 32 + stat.Mtim.Nsec >>= 32 + stat.Ctim.Nsec >>= 32 +} + +func Fstat(fd int, stat *Stat_t) error { + err := fstat(fd, stat) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) error { + err := fstatat(dirfd, path, stat, flags) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Lstat(path string, stat *Stat_t) error { + err := lstat(path, stat) + if err != nil { + return err + } + fixStatTimFields(stat) + return nil +} + +func Stat(path string, statptr *Stat_t) error { + err := stat(path, statptr) + if err != nil { + return err + } + fixStatTimFields(statptr) + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_bsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_bsd.go new file mode 100644 index 0000000000..7705c3270b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_bsd.go @@ -0,0 +1,624 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin || dragonfly || freebsd || netbsd || openbsd +// +build darwin dragonfly freebsd netbsd openbsd + +// BSD system call wrappers shared by *BSD based systems +// including OS X (Darwin) and FreeBSD. Like the other +// syscall_*.go files it is compiled as Go code but also +// used as input to mksyscall which parses the //sys +// lines and generates system call stubs. + +package unix + +import ( + "runtime" + "syscall" + "unsafe" +) + +const ImplementsGetwd = true + +func Getwd() (string, error) { + var buf [PathMax]byte + _, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + +/* + * Wrapped + */ + +//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) +//sysnb setgroups(ngid int, gid *_Gid_t) (err error) + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 16 on BSD. + if n < 0 || n > 1000 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. + +type WaitStatus uint32 + +const ( + mask = 0x7F + core = 0x80 + shift = 8 + + exited = 0 + killed = 9 + stopped = 0x7F +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) ExitStatus() int { + if w&mask != exited { + return -1 + } + return int(w >> shift) +} + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } + +func (w WaitStatus) Signal() syscall.Signal { + sig := syscall.Signal(w & mask) + if sig == stopped || sig == 0 { + return -1 + } + return sig +} + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } + +func (w WaitStatus) Killed() bool { return w&mask == killed && syscall.Signal(w>>shift) != SIGKILL } + +func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + wpid, err = wait4(pid, &status, options, rusage) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys Shutdown(s int, how int) (err error) + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet4 + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet6 + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) || n == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrDatalink) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Index == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = sa.Len + sa.raw.Family = AF_LINK + sa.raw.Index = sa.Index + sa.raw.Type = sa.Type + sa.raw.Nlen = sa.Nlen + sa.raw.Alen = sa.Alen + sa.raw.Slen = sa.Slen + sa.raw.Data = sa.Data + return unsafe.Pointer(&sa.raw), SizeofSockaddrDatalink, nil +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_LINK: + pp := (*RawSockaddrDatalink)(unsafe.Pointer(rsa)) + sa := new(SockaddrDatalink) + sa.Len = pp.Len + sa.Family = pp.Family + sa.Index = pp.Index + sa.Type = pp.Type + sa.Nlen = pp.Nlen + sa.Alen = pp.Alen + sa.Slen = pp.Slen + sa.Data = pp.Data + return sa, nil + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + if pp.Len < 2 || pp.Len > SizeofSockaddrUnix { + return nil, EINVAL + } + sa := new(SockaddrUnix) + + // Some BSDs include the trailing NUL in the length, whereas + // others do not. Work around this by subtracting the leading + // family and len. The path is then scanned to see if a NUL + // terminator still exists within the length. + n := int(pp.Len) - 2 // subtract leading Family, Len + for i := 0; i < n; i++ { + if pp.Path[i] == 0 { + // found early NUL; assume Len included the NUL + // or was overestimating. + n = i + break + } + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + return anyToSockaddrGOOS(fd, rsa) +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if err != nil { + return + } + if (runtime.GOOS == "darwin" || runtime.GOOS == "ios") && len == 0 { + // Accepted socket has no address. + // This is likely due to a bug in xnu kernels, + // where instead of ECONNABORTED error socket + // is accepted, but has no address. + Close(nfd) + return 0, nil, ECONNABORTED + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + // TODO(jsing): DragonFly has a "bug" (see issue 3349), which should be + // reported upstream. + if runtime.GOOS == "dragonfly" && rsa.Addr.Family == AF_UNSPEC && rsa.Addr.Len == 0 { + rsa.Addr.Family = AF_UNIX + rsa.Addr.Len = SizeofSockaddrUnix + } + return anyToSockaddr(fd, &rsa) +} + +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) + +// GetsockoptString returns the string value of the socket option opt for the +// socket associated with fd at the given socket level. +func GetsockoptString(fd, level, opt int) (string, error) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + return string(buf[:vallen-1]), nil +} + +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return +} + +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +//sys kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) + +func Kevent(kq int, changes, events []Kevent_t, timeout *Timespec) (n int, err error) { + var change, event unsafe.Pointer + if len(changes) > 0 { + change = unsafe.Pointer(&changes[0]) + } + if len(events) > 0 { + event = unsafe.Pointer(&events[0]) + } + return kevent(kq, change, len(changes), event, len(events), timeout) +} + +// sysctlmib translates name to mib number and appends any additional args. +func sysctlmib(name string, args ...int) ([]_C_int, error) { + // Translate name to mib number. + mib, err := nametomib(name) + if err != nil { + return nil, err + } + + for _, a := range args { + mib = append(mib, _C_int(a)) + } + + return mib, nil +} + +func Sysctl(name string) (string, error) { + return SysctlArgs(name) +} + +func SysctlArgs(name string, args ...int) (string, error) { + buf, err := SysctlRaw(name, args...) + if err != nil { + return "", err + } + n := len(buf) + + // Throw away terminating NUL. + if n > 0 && buf[n-1] == '\x00' { + n-- + } + return string(buf[0:n]), nil +} + +func SysctlUint32(name string) (uint32, error) { + return SysctlUint32Args(name) +} + +func SysctlUint32Args(name string, args ...int) (uint32, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return 0, err + } + + n := uintptr(4) + buf := make([]byte, 4) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return 0, err + } + if n != 4 { + return 0, EIO + } + return *(*uint32)(unsafe.Pointer(&buf[0])), nil +} + +func SysctlUint64(name string, args ...int) (uint64, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return 0, err + } + + n := uintptr(8) + buf := make([]byte, 8) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return 0, err + } + if n != 8 { + return 0, EIO + } + return *(*uint64)(unsafe.Pointer(&buf[0])), nil +} + +func SysctlRaw(name string, args ...int) ([]byte, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Read into buffer of that size. + buf := make([]byte, n) + if err := sysctl(mib, &buf[0], &n, nil, 0); err != nil { + return nil, err + } + + // The actual call may return less than the original reported required + // size so ensure we deal with that. + return buf[:n], nil +} + +func SysctlClockinfo(name string) (*Clockinfo, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofClockinfo) + var ci Clockinfo + if err := sysctl(mib, (*byte)(unsafe.Pointer(&ci)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofClockinfo { + return nil, EIO + } + return &ci, nil +} + +func SysctlTimeval(name string) (*Timeval, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + var tv Timeval + n := uintptr(unsafe.Sizeof(tv)) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&tv)), &n, nil, 0); err != nil { + return nil, err + } + if n != unsafe.Sizeof(tv) { + return nil, EIO + } + return &tv, nil +} + +//sys utimes(path string, timeval *[2]Timeval) (err error) + +func Utimes(path string, tv []Timeval) error { + if tv == nil { + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNano(path string, ts []Timespec) error { + if ts == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(ts) != 2 { + return EINVAL + } + err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := [2]Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +//sys futimes(fd int, timeval *[2]Timeval) (err error) + +func Futimes(fd int, tv []Timeval) error { + if tv == nil { + return futimes(fd, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimes(fd, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +// TODO: wrap +// Acct(name nil-string) (err error) +// Gethostuuid(uuid *byte, timeout *Timespec) (err error) +// Ptrace(req int, pid int, addr uintptr, data int) (ret uintptr, err error) + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +//sys Madvise(b []byte, behav int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin.go new file mode 100644 index 0000000000..7064d6ebab --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin.go @@ -0,0 +1,827 @@ +// Copyright 2009,2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Darwin system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "fmt" + "syscall" + "unsafe" +) + +//sys closedir(dir uintptr) (err error) +//sys readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) + +func fdopendir(fd int) (dir uintptr, err error) { + r0, _, e1 := syscall_syscallPtr(libc_fdopendir_trampoline_addr, uintptr(fd), 0, 0) + dir = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fdopendir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fdopendir fdopendir "/usr/lib/libSystem.B.dylib" + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulate Getdirentries using fdopendir/readdir_r/closedir. + // We store the number of entries to skip in the seek + // offset of fd. See issue #31368. + // It's not the full required semantics, but should handle the case + // of calling Getdirentries or ReadDirent repeatedly. + // It won't handle assigning the results of lseek to *basep, or handle + // the directory being edited underfoot. + skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + return 0, err + } + + // We need to duplicate the incoming file descriptor + // because the caller expects to retain control of it, but + // fdopendir expects to take control of its argument. + // Just Dup'ing the file descriptor is not enough, as the + // result shares underlying state. Use Openat to make a really + // new file descriptor referring to the same directory. + fd2, err := Openat(fd, ".", O_RDONLY, 0) + if err != nil { + return 0, err + } + d, err := fdopendir(fd2) + if err != nil { + Close(fd2) + return 0, err + } + defer closedir(d) + + var cnt int64 + for { + var entry Dirent + var entryp *Dirent + e := readdir_r(d, &entry, &entryp) + if e != 0 { + return n, errnoErr(e) + } + if entryp == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + reclen := int(entry.Reclen) + if reclen > len(buf) { + // Not enough room. Return for now. + // The counter will let us know where we should start up again. + // Note: this strategy for suspending in the middle and + // restarting is O(n^2) in the length of the directory. Oh well. + break + } + + // Copy entry into return buffer. + s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) + copy(buf, s) + + buf = buf[reclen:] + n += reclen + cnt++ + } + // Set the seek offset of the input fd to record + // how many files we've already returned. + _, err = Seek(fd, cnt, 0 /* SEEK_SET */) + if err != nil { + return n, err + } + + return n, nil +} + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + raw RawSockaddrDatalink +} + +// SockaddrCtl implements the Sockaddr interface for AF_SYSTEM type sockets. +type SockaddrCtl struct { + ID uint32 + Unit uint32 + raw RawSockaddrCtl +} + +func (sa *SockaddrCtl) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sc_len = SizeofSockaddrCtl + sa.raw.Sc_family = AF_SYSTEM + sa.raw.Ss_sysaddr = AF_SYS_CONTROL + sa.raw.Sc_id = sa.ID + sa.raw.Sc_unit = sa.Unit + return unsafe.Pointer(&sa.raw), SizeofSockaddrCtl, nil +} + +// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. +// SockaddrVM provides access to Darwin VM sockets: a mechanism that enables +// bidirectional communication between a hypervisor and its guest virtual +// machines. +type SockaddrVM struct { + // CID and Port specify a context ID and port address for a VM socket. + // Guests have a unique CID, and hosts may have a well-known CID of: + // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. + // - VMADDR_CID_LOCAL: refers to local communication (loopback). + // - VMADDR_CID_HOST: refers to other processes on the host. + CID uint32 + Port uint32 + raw RawSockaddrVM +} + +func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Len = SizeofSockaddrVM + sa.raw.Family = AF_VSOCK + sa.raw.Port = sa.Port + sa.raw.Cid = sa.CID + + return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_SYSTEM: + pp := (*RawSockaddrCtl)(unsafe.Pointer(rsa)) + if pp.Ss_sysaddr == AF_SYS_CONTROL { + sa := new(SockaddrCtl) + sa.ID = pp.Sc_id + sa.Unit = pp.Sc_unit + return sa, nil + } + case AF_VSOCK: + pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) + sa := &SockaddrVM{ + CID: pp.Cid, + Port: pp.Port, + } + return sa, nil + } + return nil, EAFNOSUPPORT +} + +// Some external packages rely on SYS___SYSCTL being defined to implement their +// own sysctl wrappers. Provide it here, even though direct syscalls are no +// longer supported on darwin. +const SYS___SYSCTL = SYS_SYSCTL + +// Translate "kern.hostname" to []_C_int{0,1,2,3}. +func nametomib(name string) (mib []_C_int, err error) { + const siz = unsafe.Sizeof(mib[0]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func PtraceAttach(pid int) (err error) { return ptrace(PT_ATTACH, pid, 0, 0) } +func PtraceDetach(pid int) (err error) { return ptrace(PT_DETACH, pid, 0, 0) } +func PtraceDenyAttach() (err error) { return ptrace(PT_DENY_ATTACH, 0, 0, 0) } + +//sysnb pipe(p *[2]int32) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var x [2]int32 + err = pipe(&x) + if err == nil { + p[0] = int(x[0]) + p[1] = int(x[1]) + } + return +} + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + return getfsstat(_p0, bufsize, flags) +} + +func xattrPointer(dest []byte) *byte { + // It's only when dest is set to NULL that the OS X implementations of + // getxattr() and listxattr() return the current sizes of the named attributes. + // An empty byte array is not sufficient. To maintain the same behaviour as the + // linux implementation, we wrap around the system calls and pass in NULL when + // dest is empty. + var destp *byte + if len(dest) > 0 { + destp = &dest[0] + } + return destp +} + +//sys getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + return getxattr(path, attr, xattrPointer(dest), len(dest), 0, 0) +} + +func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + return getxattr(link, attr, xattrPointer(dest), len(dest), 0, XATTR_NOFOLLOW) +} + +//sys fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + return fgetxattr(fd, attr, xattrPointer(dest), len(dest), 0, 0) +} + +//sys setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + // The parameters for the OS X implementation vary slightly compared to the + // linux system call, specifically the position parameter: + // + // linux: + // int setxattr( + // const char *path, + // const char *name, + // const void *value, + // size_t size, + // int flags + // ); + // + // darwin: + // int setxattr( + // const char *path, + // const char *name, + // void *value, + // size_t size, + // u_int32_t position, + // int options + // ); + // + // position specifies the offset within the extended attribute. In the + // current implementation, only the resource fork extended attribute makes + // use of this argument. For all others, position is reserved. We simply + // default to setting it to zero. + return setxattr(path, attr, xattrPointer(data), len(data), 0, flags) +} + +func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { + return setxattr(link, attr, xattrPointer(data), len(data), 0, flags|XATTR_NOFOLLOW) +} + +//sys fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) + +func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { + return fsetxattr(fd, attr, xattrPointer(data), len(data), 0, 0) +} + +//sys removexattr(path string, attr string, options int) (err error) + +func Removexattr(path string, attr string) (err error) { + // We wrap around and explicitly zero out the options provided to the OS X + // implementation of removexattr, we do so for interoperability with the + // linux variant. + return removexattr(path, attr, 0) +} + +func Lremovexattr(link string, attr string) (err error) { + return removexattr(link, attr, XATTR_NOFOLLOW) +} + +//sys fremovexattr(fd int, attr string, options int) (err error) + +func Fremovexattr(fd int, attr string) (err error) { + return fremovexattr(fd, attr, 0) +} + +//sys listxattr(path string, dest *byte, size int, options int) (sz int, err error) + +func Listxattr(path string, dest []byte) (sz int, err error) { + return listxattr(path, xattrPointer(dest), len(dest), 0) +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + return listxattr(link, xattrPointer(dest), len(dest), XATTR_NOFOLLOW) +} + +//sys flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + return flistxattr(fd, xattrPointer(dest), len(dest), 0) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Wrapped + */ + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +//sys kill(pid int, signum int, posix int) (err error) + +func Kill(pid int, signum syscall.Signal) (err error) { return kill(pid, int(signum), 1) } + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +func IoctlCtlInfo(fd int, ctlInfo *CtlInfo) error { + return ioctlPtr(fd, CTLIOCGINFO, unsafe.Pointer(ctlInfo)) +} + +// IfreqMTU is struct ifreq used to get or set a network device's MTU. +type IfreqMTU struct { + Name [IFNAMSIZ]byte + MTU int32 +} + +// IoctlGetIfreqMTU performs the SIOCGIFMTU ioctl operation on fd to get the MTU +// of the network device specified by ifname. +func IoctlGetIfreqMTU(fd int, ifname string) (*IfreqMTU, error) { + var ifreq IfreqMTU + copy(ifreq.Name[:], ifname) + err := ioctlPtr(fd, SIOCGIFMTU, unsafe.Pointer(&ifreq)) + return &ifreq, err +} + +// IoctlSetIfreqMTU performs the SIOCSIFMTU ioctl operation on fd to set the MTU +// of the network device specified by ifreq.Name. +func IoctlSetIfreqMTU(fd int, ifreq *IfreqMTU) error { + return ioctlPtr(fd, SIOCSIFMTU, unsafe.Pointer(ifreq)) +} + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS_SYSCTL + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + var length = int64(count) + err = sendfile(infd, outfd, *offset, &length, nil, 0) + written = int(length) + return +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, errno +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. +// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. +func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { + x := new(Xucred) + vallen := _Socklen(SizeofXucred) + err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) + return x, err +} + +func GetsockoptTCPConnectionInfo(fd, level, opt int) (*TCPConnectionInfo, error) { + var value TCPConnectionInfo + vallen := _Socklen(SizeofTCPConnectionInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func SysctlKinfoProc(name string, args ...int) (*KinfoProc, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + var kinfo KinfoProc + n := uintptr(SizeofKinfoProc) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&kinfo)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofKinfoProc { + return nil, EIO + } + return &kinfo, nil +} + +func SysctlKinfoProcSlice(name string, args ...int) ([]KinfoProc, error) { + mib, err := sysctlmib(name, args...) + if err != nil { + return nil, err + } + + // Find size. + n := uintptr(0) + if err := sysctl(mib, nil, &n, nil, 0); err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } + + // Read into buffer of that size. + buf := make([]KinfoProc, n/SizeofKinfoProc) + if err := sysctl(mib, (*byte)(unsafe.Pointer(&buf[0])), &n, nil, 0); err != nil { + return nil, err + } + if n%SizeofKinfoProc != 0 { + return nil, fmt.Errorf("sysctl() returned a size of %d, which is not a multiple of %d", n, SizeofKinfoProc) + } + + // The actual call may return less than the original reported required + // size so ensure we deal with that. + return buf[:n/SizeofKinfoProc], nil +} + +//sys sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) + +//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) +//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) +//sys shmdt(addr uintptr) (err error) +//sys shmget(key int, size int, flag int) (id int, err error) + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Clonefile(src string, dst string, flags int) (err error) +//sys Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Exchangedata(path1 string, path2 string, options int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getcwd(buf []byte) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tp *Timeval) (err error) +//sysnb Getuid() (uid int) +//sysnb Issetugid() (tainted bool) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sys Setprivexec(flag int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE + +/* + * Unimplemented + */ +// Profil +// Sigaction +// Sigprocmask +// Getlogin +// Sigpending +// Sigaltstack +// Ioctl +// Reboot +// Execve +// Vfork +// Sbrk +// Sstk +// Ovadvise +// Mincore +// Setitimer +// Swapon +// Select +// Sigsuspend +// Readv +// Writev +// Nfssvc +// Getfh +// Quotactl +// Csops +// Waitid +// Add_profil +// Kdebug_trace +// Sigreturn +// Atsocket +// Kqueue_from_portset_np +// Kqueue_portset +// Getattrlist +// Setattrlist +// Getdirentriesattr +// Searchfs +// Delete +// Copyfile +// Watchevent +// Waitevent +// Modwatch +// Fsctl +// Initgroups +// Posix_spawn +// Nfsclnt +// Fhopen +// Minherit +// Semsys +// Msgsys +// Shmsys +// Semctl +// Semget +// Semop +// Msgctl +// Msgget +// Msgsnd +// Msgrcv +// Shm_open +// Shm_unlink +// Sem_open +// Sem_close +// Sem_unlink +// Sem_wait +// Sem_trywait +// Sem_post +// Sem_getvalue +// Sem_init +// Sem_destroy +// Open_extended +// Umask_extended +// Stat_extended +// Lstat_extended +// Fstat_extended +// Chmod_extended +// Fchmod_extended +// Access_extended +// Settid +// Gettid +// Setsgroups +// Getsgroups +// Setwgroups +// Getwgroups +// Mkfifo_extended +// Mkdir_extended +// Identitysvc +// Shared_region_check_np +// Shared_region_map_np +// __pthread_mutex_destroy +// __pthread_mutex_init +// __pthread_mutex_lock +// __pthread_mutex_trylock +// __pthread_mutex_unlock +// __pthread_cond_init +// __pthread_cond_destroy +// __pthread_cond_broadcast +// __pthread_cond_signal +// Setsid_with_pid +// __pthread_cond_timedwait +// Aio_fsync +// Aio_return +// Aio_suspend +// Aio_cancel +// Aio_error +// Aio_read +// Aio_write +// Lio_listio +// __pthread_cond_wait +// Iopolicysys +// __pthread_kill +// __pthread_sigmask +// __sigwait +// __disable_threadsignal +// __pthread_markcancel +// __pthread_canceled +// __semwait_signal +// Proc_info +// sendfile +// Stat64_extended +// Lstat64_extended +// Fstat64_extended +// __pthread_chdir +// __pthread_fchdir +// Audit +// Auditon +// Getauid +// Setauid +// Getaudit +// Setaudit +// Getaudit_addr +// Setaudit_addr +// Auditctl +// Bsdthread_create +// Bsdthread_terminate +// Stack_snapshot +// Bsdthread_register +// Workq_open +// Workq_ops +// __mac_execve +// __mac_syscall +// __mac_get_file +// __mac_set_file +// __mac_get_link +// __mac_set_link +// __mac_get_proc +// __mac_set_proc +// __mac_get_fd +// __mac_set_fd +// __mac_get_pid +// __mac_get_lcid +// __mac_get_lctx +// __mac_set_lctx +// Setlcid +// Read_nocancel +// Write_nocancel +// Open_nocancel +// Close_nocancel +// Wait4_nocancel +// Recvmsg_nocancel +// Sendmsg_nocancel +// Recvfrom_nocancel +// Accept_nocancel +// Fcntl_nocancel +// Select_nocancel +// Fsync_nocancel +// Connect_nocancel +// Sigsuspend_nocancel +// Readv_nocancel +// Writev_nocancel +// Sendto_nocancel +// Pread_nocancel +// Pwrite_nocancel +// Waitid_nocancel +// Poll_nocancel +// Msgsnd_nocancel +// Msgrcv_nocancel +// Sem_wait_nocancel +// Aio_suspend_nocancel +// __sigwait_nocancel +// __semwait_signal_nocancel +// __mac_mount +// __mac_get_mount +// __mac_getfsstat diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go new file mode 100644 index 0000000000..9fa879806b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go @@ -0,0 +1,52 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && darwin +// +build amd64,darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, stat *Statfs_t) (err error) = SYS_FSTATFS64 +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT64 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace +//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Statfs(path string, stat *Statfs_t) (err error) = SYS_STATFS64 diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go new file mode 100644 index 0000000000..f17b8c526a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go @@ -0,0 +1,52 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && darwin +// +build arm64,darwin + +package unix + +import "syscall" + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) // sic + +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) = SYS_GETFSSTAT +//sys Lstat(path string, stat *Stat_t) (err error) +//sys ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) = SYS_ptrace +//sys ptrace1Ptr(request int, pid int, addr unsafe.Pointer, data uintptr) (err error) = SYS_ptrace +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go new file mode 100644 index 0000000000..53c96641f8 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go @@ -0,0 +1,27 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin && go1.12 +// +build darwin,go1.12 + +package unix + +import _ "unsafe" + +// Implemented in the runtime package (runtime/sys_darwin.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) // 32-bit only +func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscallPtr(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) + +//go:linkname syscall_syscall syscall.syscall +//go:linkname syscall_syscall6 syscall.syscall6 +//go:linkname syscall_syscall6X syscall.syscall6X +//go:linkname syscall_syscall9 syscall.syscall9 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 +//go:linkname syscall_syscallPtr syscall.syscallPtr diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly.go new file mode 100644 index 0000000000..221efc26bc --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly.go @@ -0,0 +1,546 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// DragonFly BSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sync" + "unsafe" +) + +// See version list in https://github.com/DragonFlyBSD/DragonFlyBSD/blob/master/sys/sys/param.h +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +// First __DragonFly_version after September 2019 ABI changes +// http://lists.dragonflybsd.org/pipermail/users/2019-September/358280.html +const _dragonflyABIChangeVersion = 500705 + +func supportsABI(ver uint32) bool { + osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) + return osreldate >= ver +} + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + Rcf uint16 + Route [16]uint16 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +// Translate "kern.hostname" to []_C_int{0,1,2,3}. +func nametomib(name string) (mib []_C_int, err error) { + const siz = unsafe.Sizeof(mib[0]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + namlen, ok := direntNamlen(buf) + if !ok { + return 0, false + } + return (16 + namlen + 1 + 7) &^ 7, true +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +//sysnb pipe() (r int, w int, err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + r, w, err := pipe() + if err == nil { + p[0], p[1] = r, w + } + return +} + +//sysnb pipe2(p *[2]_C_int, flags int) (r int, w int, err error) + +func Pipe2(p []int, flags int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + // pipe2 on dragonfly takes an fds array as an argument, but still + // returns the file descriptors. + r, w, err := pipe2(&pp, flags) + if err == nil { + p[0], p[1] = r, w + } + return err +} + +//sys extpread(fd int, p []byte, flags int, offset int64) (n int, err error) + +func pread(fd int, p []byte, offset int64) (n int, err error) { + return extpread(fd, p, 0, offset) +} + +//sys extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + return extpwrite(fd, p, 0, offset) +} + +func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +func sysctlUname(mib []_C_int, old *byte, oldlen *uintptr) error { + err := sysctl(mib, old, oldlen, nil, 0) + if err != nil { + // Utsname members on Dragonfly are only 32 bytes and + // the syscall returns ENOMEM in case the actual value + // is longer. + if err == ENOMEM { + err = nil + } + } + return err +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctlUname(mib, &uname.Sysname[0], &n); err != nil { + return err + } + uname.Sysname[unsafe.Sizeof(uname.Sysname)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctlUname(mib, &uname.Nodename[0], &n); err != nil { + return err + } + uname.Nodename[unsafe.Sizeof(uname.Nodename)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctlUname(mib, &uname.Release[0], &n); err != nil { + return err + } + uname.Release[unsafe.Sizeof(uname.Release)-1] = 0 + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctlUname(mib, &uname.Version[0], &n); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctlUname(mib, &uname.Machine[0], &n); err != nil { + return err + } + uname.Machine[unsafe.Sizeof(uname.Machine)-1] = 0 + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getdents(fd int, buf []byte) (n int, err error) +//sys Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(fd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + * TODO(jsing): Update this list for DragonFly. + */ +// Profil +// Sigaction +// Sigprocmask +// Getlogin +// Sigpending +// Sigaltstack +// Reboot +// Execve +// Vfork +// Sbrk +// Sstk +// Ovadvise +// Mincore +// Setitimer +// Swapon +// Select +// Sigsuspend +// Readv +// Writev +// Nfssvc +// Getfh +// Quotactl +// Mount +// Csops +// Waitid +// Add_profil +// Kdebug_trace +// Sigreturn +// Atsocket +// Kqueue_from_portset_np +// Kqueue_portset +// Getattrlist +// Setattrlist +// Getdirentriesattr +// Searchfs +// Delete +// Copyfile +// Watchevent +// Waitevent +// Modwatch +// Getxattr +// Fgetxattr +// Setxattr +// Fsetxattr +// Removexattr +// Fremovexattr +// Listxattr +// Flistxattr +// Fsctl +// Initgroups +// Posix_spawn +// Nfsclnt +// Fhopen +// Minherit +// Semsys +// Msgsys +// Shmsys +// Semctl +// Semget +// Semop +// Msgctl +// Msgget +// Msgsnd +// Msgrcv +// Shmat +// Shmctl +// Shmdt +// Shmget +// Shm_open +// Shm_unlink +// Sem_open +// Sem_close +// Sem_unlink +// Sem_wait +// Sem_trywait +// Sem_post +// Sem_getvalue +// Sem_init +// Sem_destroy +// Open_extended +// Umask_extended +// Stat_extended +// Lstat_extended +// Fstat_extended +// Chmod_extended +// Fchmod_extended +// Access_extended +// Settid +// Gettid +// Setsgroups +// Getsgroups +// Setwgroups +// Getwgroups +// Mkfifo_extended +// Mkdir_extended +// Identitysvc +// Shared_region_check_np +// Shared_region_map_np +// __pthread_mutex_destroy +// __pthread_mutex_init +// __pthread_mutex_lock +// __pthread_mutex_trylock +// __pthread_mutex_unlock +// __pthread_cond_init +// __pthread_cond_destroy +// __pthread_cond_broadcast +// __pthread_cond_signal +// Setsid_with_pid +// __pthread_cond_timedwait +// Aio_fsync +// Aio_return +// Aio_suspend +// Aio_cancel +// Aio_error +// Aio_read +// Aio_write +// Lio_listio +// __pthread_cond_wait +// Iopolicysys +// __pthread_kill +// __pthread_sigmask +// __sigwait +// __disable_threadsignal +// __pthread_markcancel +// __pthread_canceled +// __semwait_signal +// Proc_info +// Stat64_extended +// Lstat64_extended +// Fstat64_extended +// __pthread_chdir +// __pthread_fchdir +// Audit +// Auditon +// Getauid +// Setauid +// Getaudit +// Setaudit +// Getaudit_addr +// Setaudit_addr +// Auditctl +// Bsdthread_create +// Bsdthread_terminate +// Stack_snapshot +// Bsdthread_register +// Workq_open +// Workq_ops +// __mac_execve +// __mac_syscall +// __mac_get_file +// __mac_set_file +// __mac_get_link +// __mac_set_link +// __mac_get_proc +// __mac_set_proc +// __mac_get_fd +// __mac_set_fd +// __mac_get_pid +// __mac_get_lcid +// __mac_get_lctx +// __mac_set_lctx +// Setlcid +// Read_nocancel +// Write_nocancel +// Open_nocancel +// Close_nocancel +// Wait4_nocancel +// Recvmsg_nocancel +// Sendmsg_nocancel +// Recvfrom_nocancel +// Accept_nocancel +// Fcntl_nocancel +// Select_nocancel +// Fsync_nocancel +// Connect_nocancel +// Sigsuspend_nocancel +// Readv_nocancel +// Writev_nocancel +// Sendto_nocancel +// Pread_nocancel +// Pwrite_nocancel +// Waitid_nocancel +// Msgsnd_nocancel +// Msgrcv_nocancel +// Sem_wait_nocancel +// Aio_suspend_nocancel +// __sigwait_nocancel +// __semwait_signal_nocancel +// __mac_mount +// __mac_get_mount +// __mac_getfsstat diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go new file mode 100644 index 0000000000..4e2d32120a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go @@ -0,0 +1,57 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && dragonfly +// +build amd64,dragonfly + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd.go new file mode 100644 index 0000000000..5bdde03e4a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd.go @@ -0,0 +1,646 @@ +// Copyright 2009,2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// FreeBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sync" + "unsafe" +) + +// See https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/versions.html. +var ( + osreldateOnce sync.Once + osreldate uint32 +) + +func supportsABI(ver uint32) bool { + osreldateOnce.Do(func() { osreldate, _ = SysctlUint32("kern.osreldate") }) + return osreldate >= ver +} + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +// Translate "kern.hostname" to []_C_int{0,1,2,3}. +func nametomib(name string) (mib []_C_int, err error) { + const siz = unsafe.Sizeof(mib[0]) + + // NOTE(rsc): It seems strange to set the buffer to have + // size CTL_MAXNAME+2 but use only CTL_MAXNAME + // as the size. I don't know why the +2 is here, but the + // kernel uses +2 for its own implementation of this function. + // I am scared that if we don't include the +2 here, the kernel + // will silently write 2 words farther than we specify + // and we'll get memory corruption. + var buf [CTL_MAXNAME + 2]_C_int + n := uintptr(CTL_MAXNAME) * siz + + p := (*byte)(unsafe.Pointer(&buf[0])) + bytes, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + + // Magic sysctl: "setting" 0.3 to a string name + // lets you read back the array of integers form. + if err = sysctl([]_C_int{0, 3}, p, &n, &bytes[0], uintptr(len(name))); err != nil { + return nil, err + } + return buf[0 : n/siz], nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + errno := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, errno +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +// GetsockoptXucred is a getsockopt wrapper that returns an Xucred struct. +// The usual level and opt are SOL_LOCAL and LOCAL_PEERCRED, respectively. +func GetsockoptXucred(fd, level, opt int) (*Xucred, error) { + x := new(Xucred) + vallen := _Socklen(SizeofXucred) + err := getsockopt(fd, level, opt, unsafe.Pointer(x), &vallen) + return x, err +} + +func Accept4(fd, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var ( + _p0 unsafe.Pointer + bufsize uintptr + ) + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Stat(path string, st *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, st, 0) +} + +func Lstat(path string, st *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, st, AT_SYMLINK_NOFOLLOW) +} + +func Getdents(fd int, buf []byte) (n int, err error) { + return Getdirentries(fd, buf, nil) +} + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + if basep == nil || unsafe.Sizeof(*basep) == 8 { + return getdirentries(fd, buf, (*uint64)(unsafe.Pointer(basep))) + } + // The syscall needs a 64-bit base. On 32-bit machines + // we can't just use the basep passed in. See #32498. + var base uint64 = uint64(*basep) + n, err = getdirentries(fd, buf, &base) + *basep = uintptr(base) + if base>>32 != 0 { + // We can't stuff the base back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return +} + +func Mknod(path string, mode uint32, dev uint64) (err error) { + return Mknodat(AT_FDCWD, path, mode, dev) +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +//sys ptrace(request int, pid int, addr uintptr, data int) (err error) +//sys ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) = SYS_PTRACE + +func PtraceAttach(pid int) (err error) { + return ptrace(PT_ATTACH, pid, 0, 0) +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PT_CONTINUE, pid, 1, signal) +} + +func PtraceDetach(pid int) (err error) { + return ptrace(PT_DETACH, pid, 1, 0) +} + +func PtraceGetFpRegs(pid int, fpregsout *FpReg) (err error) { + return ptracePtr(PT_GETFPREGS, pid, unsafe.Pointer(fpregsout), 0) +} + +func PtraceGetRegs(pid int, regsout *Reg) (err error) { + return ptracePtr(PT_GETREGS, pid, unsafe.Pointer(regsout), 0) +} + +func PtraceIO(req int, pid int, offs uintptr, out []byte, countin int) (count int, err error) { + ioDesc := PtraceIoDesc{ + Op: int32(req), + Offs: offs, + } + if countin > 0 { + _ = out[:countin] // check bounds + ioDesc.Addr = &out[0] + } else if out != nil { + ioDesc.Addr = (*byte)(unsafe.Pointer(&_zero)) + } + ioDesc.SetLen(countin) + + err = ptracePtr(PT_IO, pid, unsafe.Pointer(&ioDesc), 0) + return int(ioDesc.Len), err +} + +func PtraceLwpEvents(pid int, enable int) (err error) { + return ptrace(PT_LWP_EVENTS, pid, 0, enable) +} + +func PtraceLwpInfo(pid int, info *PtraceLwpInfoStruct) (err error) { + return ptracePtr(PT_LWPINFO, pid, unsafe.Pointer(info), int(unsafe.Sizeof(*info))) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_D, pid, addr, out, SizeofLong) +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return PtraceIO(PIOD_READ_I, pid, addr, out, SizeofLong) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_D, pid, addr, data, SizeofLong) +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return PtraceIO(PIOD_WRITE_I, pid, addr, data, SizeofLong) +} + +func PtraceSetRegs(pid int, regs *Reg) (err error) { + return ptracePtr(PT_SETREGS, pid, unsafe.Pointer(regs), 0) +} + +func PtraceSingleStep(pid int) (err error) { + return ptrace(PT_STEP, pid, 1, 0) +} + +func Dup3(oldfd, newfd, flags int) error { + if oldfd == newfd || flags&^O_CLOEXEC != 0 { + return EINVAL + } + how := F_DUP2FD + if flags&O_CLOEXEC != 0 { + how = F_DUP2FD_CLOEXEC + } + _, err := fcntl(oldfd, how, newfd) + return err +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys CapEnter() (err error) +//sys capRightsGet(version int, fd int, rightsp *CapRights) (err error) = SYS___CAP_RIGHTS_GET +//sys capRightsLimit(fd int, rightsp *CapRights) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Exit(code int) +//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) +//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) +//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) +//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) +//sys Getdtablesize() (size int) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mknodat(fd int, path string, mode uint32, dev uint64) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Undelete(path string) (err error) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + */ +// Profil +// Sigaction +// Sigprocmask +// Getlogin +// Sigpending +// Sigaltstack +// Ioctl +// Reboot +// Execve +// Vfork +// Sbrk +// Sstk +// Ovadvise +// Mincore +// Setitimer +// Swapon +// Select +// Sigsuspend +// Readv +// Writev +// Nfssvc +// Getfh +// Quotactl +// Mount +// Csops +// Waitid +// Add_profil +// Kdebug_trace +// Sigreturn +// Atsocket +// Kqueue_from_portset_np +// Kqueue_portset +// Getattrlist +// Setattrlist +// Getdents +// Getdirentriesattr +// Searchfs +// Delete +// Copyfile +// Watchevent +// Waitevent +// Modwatch +// Fsctl +// Initgroups +// Posix_spawn +// Nfsclnt +// Fhopen +// Minherit +// Semsys +// Msgsys +// Shmsys +// Semctl +// Semget +// Semop +// Msgctl +// Msgget +// Msgsnd +// Msgrcv +// Shmat +// Shmctl +// Shmdt +// Shmget +// Shm_open +// Shm_unlink +// Sem_open +// Sem_close +// Sem_unlink +// Sem_wait +// Sem_trywait +// Sem_post +// Sem_getvalue +// Sem_init +// Sem_destroy +// Open_extended +// Umask_extended +// Stat_extended +// Lstat_extended +// Fstat_extended +// Chmod_extended +// Fchmod_extended +// Access_extended +// Settid +// Gettid +// Setsgroups +// Getsgroups +// Setwgroups +// Getwgroups +// Mkfifo_extended +// Mkdir_extended +// Identitysvc +// Shared_region_check_np +// Shared_region_map_np +// __pthread_mutex_destroy +// __pthread_mutex_init +// __pthread_mutex_lock +// __pthread_mutex_trylock +// __pthread_mutex_unlock +// __pthread_cond_init +// __pthread_cond_destroy +// __pthread_cond_broadcast +// __pthread_cond_signal +// Setsid_with_pid +// __pthread_cond_timedwait +// Aio_fsync +// Aio_return +// Aio_suspend +// Aio_cancel +// Aio_error +// Aio_read +// Aio_write +// Lio_listio +// __pthread_cond_wait +// Iopolicysys +// __pthread_kill +// __pthread_sigmask +// __sigwait +// __disable_threadsignal +// __pthread_markcancel +// __pthread_canceled +// __semwait_signal +// Proc_info +// Stat64_extended +// Lstat64_extended +// Fstat64_extended +// __pthread_chdir +// __pthread_fchdir +// Audit +// Auditon +// Getauid +// Setauid +// Getaudit +// Setaudit +// Getaudit_addr +// Setaudit_addr +// Auditctl +// Bsdthread_create +// Bsdthread_terminate +// Stack_snapshot +// Bsdthread_register +// Workq_open +// Workq_ops +// __mac_execve +// __mac_syscall +// __mac_get_file +// __mac_set_file +// __mac_get_link +// __mac_set_link +// __mac_get_proc +// __mac_set_proc +// __mac_get_fd +// __mac_set_fd +// __mac_get_pid +// __mac_get_lcid +// __mac_get_lctx +// __mac_set_lctx +// Setlcid +// Read_nocancel +// Write_nocancel +// Open_nocancel +// Close_nocancel +// Wait4_nocancel +// Recvmsg_nocancel +// Sendmsg_nocancel +// Recvfrom_nocancel +// Accept_nocancel +// Fcntl_nocancel +// Select_nocancel +// Fsync_nocancel +// Connect_nocancel +// Sigsuspend_nocancel +// Readv_nocancel +// Writev_nocancel +// Sendto_nocancel +// Pread_nocancel +// Pwrite_nocancel +// Waitid_nocancel +// Poll_nocancel +// Msgsnd_nocancel +// Msgrcv_nocancel +// Sem_wait_nocancel +// Aio_suspend_nocancel +// __sigwait_nocancel +// __semwait_signal_nocancel +// __mac_mount +// __mac_get_mount +// __mac_getfsstat diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go new file mode 100644 index 0000000000..b8da510043 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go @@ -0,0 +1,65 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && freebsd +// +build 386,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go new file mode 100644 index 0000000000..47155c4839 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go @@ -0,0 +1,65 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && freebsd +// +build amd64,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint64(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func PtraceGetFsBase(pid int, fsbase *int64) (err error) { + return ptracePtr(PT_GETFSBASE, pid, unsafe.Pointer(fsbase), 0) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go new file mode 100644 index 0000000000..08932093fa --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go @@ -0,0 +1,61 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm && freebsd +// +build arm,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint32(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr((*offset)>>32), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go new file mode 100644 index 0000000000..d151a0d0e5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go @@ -0,0 +1,61 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && freebsd +// +build arm64,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint64(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go new file mode 100644 index 0000000000..d5cd64b378 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go @@ -0,0 +1,61 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build riscv64 && freebsd +// +build riscv64,freebsd + +package unix + +import ( + "syscall" + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (d *PtraceIoDesc) SetLen(length int) { + d.Len = uint64(length) +} + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + var writtenOut uint64 = 0 + _, _, e1 := Syscall9(SYS_SENDFILE, uintptr(infd), uintptr(outfd), uintptr(*offset), uintptr(count), 0, uintptr(unsafe.Pointer(&writtenOut)), 0, 0, 0) + + written = int(writtenOut) + + if e1 != 0 { + err = e1 + } + return +} + +func Syscall9(num, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd.go new file mode 100644 index 0000000000..381fd4673b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd.go @@ -0,0 +1,30 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build hurd +// +build hurd + +package unix + +/* +#include +int ioctl(int, unsigned long int, uintptr_t); +*/ +import "C" + +func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + r0, er := C.ioctl(C.int(fd), C.ulong(req), C.uintptr_t(uintptr(arg))) + if r0 == -1 && er != nil { + err = er + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd_386.go new file mode 100644 index 0000000000..7cf54a3e4f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_hurd_386.go @@ -0,0 +1,29 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && hurd +// +build 386,hurd + +package unix + +const ( + TIOCGETA = 0x62251713 +) + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_illumos.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_illumos.go new file mode 100644 index 0000000000..87db5a6a8c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_illumos.go @@ -0,0 +1,79 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// illumos system calls not present on Solaris. + +//go:build amd64 && illumos +// +build amd64,illumos + +package unix + +import ( + "unsafe" +) + +func bytes2iovec(bs [][]byte) []Iovec { + iovecs := make([]Iovec, len(bs)) + for i, b := range bs { + iovecs[i].SetLen(len(b)) + if len(b) > 0 { + iovecs[i].Base = &b[0] + } else { + iovecs[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + return iovecs +} + +//sys readv(fd int, iovs []Iovec) (n int, err error) + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = readv(fd, iovecs) + return n, err +} + +//sys preadv(fd int, iovs []Iovec, off int64) (n int, err error) + +func Preadv(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = preadv(fd, iovecs, off) + return n, err +} + +//sys writev(fd int, iovs []Iovec) (n int, err error) + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = writev(fd, iovecs) + return n, err +} + +//sys pwritev(fd int, iovs []Iovec, off int64) (n int, err error) + +func Pwritev(fd int, iovs [][]byte, off int64) (n int, err error) { + iovecs := bytes2iovec(iovs) + n, err = pwritev(fd, iovecs, off) + return n, err +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) = libsocket.accept4 + +func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux.go new file mode 100644 index 0000000000..9735331530 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux.go @@ -0,0 +1,2510 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Linux system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and +// wrap it in our own nicer implementation. + +package unix + +import ( + "encoding/binary" + "strconv" + "syscall" + "time" + "unsafe" +) + +/* + * Wrapped + */ + +func Access(path string, mode uint32) (err error) { + return Faccessat(AT_FDCWD, path, mode, 0) +} + +func Chmod(path string, mode uint32) (err error) { + return Fchmodat(AT_FDCWD, path, mode, 0) +} + +func Chown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, 0) +} + +func Creat(path string, mode uint32) (fd int, err error) { + return Open(path, O_CREAT|O_WRONLY|O_TRUNC, mode) +} + +func EpollCreate(size int) (fd int, err error) { + if size <= 0 { + return -1, EINVAL + } + return EpollCreate1(0) +} + +//sys FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) +//sys fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) + +func FanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname string) (err error) { + if pathname == "" { + return fanotifyMark(fd, flags, mask, dirFd, nil) + } + p, err := BytePtrFromString(pathname) + if err != nil { + return err + } + return fanotifyMark(fd, flags, mask, dirFd, p) +} + +//sys fchmodat(dirfd int, path string, mode uint32) (err error) + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + // Linux fchmodat doesn't support the flags parameter. Mimick glibc's behavior + // and check the flags. Otherwise the mode would be applied to the symlink + // destination which is not what the user expects. + if flags&^AT_SYMLINK_NOFOLLOW != 0 { + return EINVAL + } else if flags&AT_SYMLINK_NOFOLLOW != 0 { + return EOPNOTSUPP + } + return fchmodat(dirfd, path, mode) +} + +func InotifyInit() (fd int, err error) { + return InotifyInit1(0) +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +// ioctl itself should not be exposed directly, but additional get/set functions +// for specific types are permissible. These are defined in ioctl.go and +// ioctl_linux.go. +// +// The third argument to ioctl is often a pointer but sometimes an integer. +// Callers should use ioctlPtr when the third argument is a pointer and ioctl +// when the third argument is an integer. +// +// TODO: some existing code incorrectly uses ioctl when it should use ioctlPtr. + +//sys Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) + +func Link(oldpath string, newpath string) (err error) { + return Linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0) +} + +func Mkdir(path string, mode uint32) (err error) { + return Mkdirat(AT_FDCWD, path, mode) +} + +func Mknod(path string, mode uint32, dev int) (err error) { + return Mknodat(AT_FDCWD, path, mode, dev) +} + +func Open(path string, mode int, perm uint32) (fd int, err error) { + return openat(AT_FDCWD, path, mode|O_LARGEFILE, perm) +} + +//sys openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + return openat(dirfd, path, flags|O_LARGEFILE, mode) +} + +//sys openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) + +func Openat2(dirfd int, path string, how *OpenHow) (fd int, err error) { + return openat2(dirfd, path, how, SizeofOpenHow) +} + +func Pipe(p []int) error { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) + +func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + if len(fds) == 0 { + return ppoll(nil, 0, timeout, sigmask) + } + return ppoll(&fds[0], len(fds), timeout, sigmask) +} + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var ts *Timespec + if timeout >= 0 { + ts = new(Timespec) + *ts = NsecToTimespec(int64(timeout) * 1e6) + } + return Ppoll(fds, ts, nil) +} + +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) + +func Readlink(path string, buf []byte) (n int, err error) { + return Readlinkat(AT_FDCWD, path, buf) +} + +func Rename(oldpath string, newpath string) (err error) { + return Renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath) +} + +func Rmdir(path string) error { + return Unlinkat(AT_FDCWD, path, AT_REMOVEDIR) +} + +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) + +func Symlink(oldpath string, newpath string) (err error) { + return Symlinkat(oldpath, AT_FDCWD, newpath) +} + +func Unlink(path string) error { + return Unlinkat(AT_FDCWD, path, 0) +} + +//sys Unlinkat(dirfd int, path string, flags int) (err error) + +func Utimes(path string, tv []Timeval) error { + if tv == nil { + err := utimensat(AT_FDCWD, path, nil, 0) + if err != ENOSYS { + return err + } + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + var ts [2]Timespec + ts[0] = NsecToTimespec(TimevalToNsec(tv[0])) + ts[1] = NsecToTimespec(TimevalToNsec(tv[1])) + err := utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) + if err != ENOSYS { + return err + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + return UtimesNanoAt(AT_FDCWD, path, ts, 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +func Futimesat(dirfd int, path string, tv []Timeval) error { + if tv == nil { + return futimesat(dirfd, path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(dirfd, path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func Futimes(fd int, tv []Timeval) (err error) { + // Believe it or not, this is the best we can do on Linux + // (and is what glibc does). + return Utimes("/proc/self/fd/"+strconv.Itoa(fd), tv) +} + +const ImplementsGetwd = true + +//sys Getcwd(buf []byte) (n int, err error) + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + n, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + // Getcwd returns the number of bytes written to buf, including the NUL. + if n < 1 || n > len(buf) || buf[n-1] != 0 { + return "", EINVAL + } + // In some cases, Linux can return a path that starts with the + // "(unreachable)" prefix, which can potentially be a valid relative + // path. To work around that, return ENOENT if path is not absolute. + if buf[0] != '/' { + return "", ENOENT + } + + return string(buf[0 : n-1]), nil +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 1<<16 on Linux. + if n < 0 || n > 1<<20 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +type WaitStatus uint32 + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. At least that's the idea. +// There are various irregularities. For example, the +// "continued" status is 0xFFFF, distinguishing itself +// from stopped via the core dump bit. + +const ( + mask = 0x7F + core = 0x80 + exited = 0x00 + stopped = 0x7F + shift = 8 +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } + +func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } + +func (w WaitStatus) Continued() bool { return w == 0xFFFF } + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int(w>>shift) & 0xFF +} + +func (w WaitStatus) Signal() syscall.Signal { + if !w.Signaled() { + return -1 + } + return syscall.Signal(w & mask) +} + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { + if w.StopSignal() != SIGTRAP { + return -1 + } + return int(w>>shift) >> 8 +} + +//sys wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + var status _C_int + wpid, err = wait4(pid, &status, options, rusage) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sys Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) + +func Mkfifo(path string, mode uint32) error { + return Mknod(path, mode|S_IFIFO, 0) +} + +func Mkfifoat(dirfd int, path string, mode uint32) error { + return Mknodat(dirfd, path, mode|S_IFIFO, 0) +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +// SockaddrLinklayer implements the Sockaddr interface for AF_PACKET type sockets. +type SockaddrLinklayer struct { + Protocol uint16 + Ifindex int + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]byte + raw RawSockaddrLinklayer +} + +func (sa *SockaddrLinklayer) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_PACKET + sa.raw.Protocol = sa.Protocol + sa.raw.Ifindex = int32(sa.Ifindex) + sa.raw.Hatype = sa.Hatype + sa.raw.Pkttype = sa.Pkttype + sa.raw.Halen = sa.Halen + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrLinklayer, nil +} + +// SockaddrNetlink implements the Sockaddr interface for AF_NETLINK type sockets. +type SockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 + raw RawSockaddrNetlink +} + +func (sa *SockaddrNetlink) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_NETLINK + sa.raw.Pad = sa.Pad + sa.raw.Pid = sa.Pid + sa.raw.Groups = sa.Groups + return unsafe.Pointer(&sa.raw), SizeofSockaddrNetlink, nil +} + +// SockaddrHCI implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the HCI protocol. +type SockaddrHCI struct { + Dev uint16 + Channel uint16 + raw RawSockaddrHCI +} + +func (sa *SockaddrHCI) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + sa.raw.Dev = sa.Dev + sa.raw.Channel = sa.Channel + return unsafe.Pointer(&sa.raw), SizeofSockaddrHCI, nil +} + +// SockaddrL2 implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the L2CAP protocol. +type SockaddrL2 struct { + PSM uint16 + CID uint16 + Addr [6]uint8 + AddrType uint8 + raw RawSockaddrL2 +} + +func (sa *SockaddrL2) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + psm := (*[2]byte)(unsafe.Pointer(&sa.raw.Psm)) + psm[0] = byte(sa.PSM) + psm[1] = byte(sa.PSM >> 8) + for i := 0; i < len(sa.Addr); i++ { + sa.raw.Bdaddr[i] = sa.Addr[len(sa.Addr)-1-i] + } + cid := (*[2]byte)(unsafe.Pointer(&sa.raw.Cid)) + cid[0] = byte(sa.CID) + cid[1] = byte(sa.CID >> 8) + sa.raw.Bdaddr_type = sa.AddrType + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2, nil +} + +// SockaddrRFCOMM implements the Sockaddr interface for AF_BLUETOOTH type sockets +// using the RFCOMM protocol. +// +// Server example: +// +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = unix.Bind(fd, &unix.SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]uint8{0, 0, 0, 0, 0, 0}, // BDADDR_ANY or 00:00:00:00:00:00 +// }) +// _ = Listen(fd, 1) +// nfd, sa, _ := Accept(fd) +// fmt.Printf("conn addr=%v fd=%d", sa.(*unix.SockaddrRFCOMM).Addr, nfd) +// Read(nfd, buf) +// +// Client example: +// +// fd, _ := Socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM) +// _ = Connect(fd, &SockaddrRFCOMM{ +// Channel: 1, +// Addr: [6]byte{0x11, 0x22, 0x33, 0xaa, 0xbb, 0xcc}, // CC:BB:AA:33:22:11 +// }) +// Write(fd, []byte(`hello`)) +type SockaddrRFCOMM struct { + // Addr represents a bluetooth address, byte ordering is little-endian. + Addr [6]uint8 + + // Channel is a designated bluetooth channel, only 1-30 are available for use. + // Since Linux 2.6.7 and further zero value is the first available channel. + Channel uint8 + + raw RawSockaddrRFCOMM +} + +func (sa *SockaddrRFCOMM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_BLUETOOTH + sa.raw.Channel = sa.Channel + sa.raw.Bdaddr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrRFCOMM, nil +} + +// SockaddrCAN implements the Sockaddr interface for AF_CAN type sockets. +// The RxID and TxID fields are used for transport protocol addressing in +// (CAN_TP16, CAN_TP20, CAN_MCNET, and CAN_ISOTP), they can be left with +// zero values for CAN_RAW and CAN_BCM sockets as they have no meaning. +// +// The SockaddrCAN struct must be bound to the socket file descriptor +// using Bind before the CAN socket can be used. +// +// // Read one raw CAN frame +// fd, _ := Socket(AF_CAN, SOCK_RAW, CAN_RAW) +// addr := &SockaddrCAN{Ifindex: index} +// Bind(fd, addr) +// frame := make([]byte, 16) +// Read(fd, frame) +// +// The full SocketCAN documentation can be found in the linux kernel +// archives at: https://www.kernel.org/doc/Documentation/networking/can.txt +type SockaddrCAN struct { + Ifindex int + RxID uint32 + TxID uint32 + raw RawSockaddrCAN +} + +func (sa *SockaddrCAN) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i] = rx[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+4] = tx[i] + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil +} + +// SockaddrCANJ1939 implements the Sockaddr interface for AF_CAN using J1939 +// protocol (https://en.wikipedia.org/wiki/SAE_J1939). For more information +// on the purposes of the fields, check the official linux kernel documentation +// available here: https://www.kernel.org/doc/Documentation/networking/j1939.rst +type SockaddrCANJ1939 struct { + Ifindex int + Name uint64 + PGN uint32 + Addr uint8 + raw RawSockaddrCAN +} + +func (sa *SockaddrCANJ1939) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Ifindex < 0 || sa.Ifindex > 0x7fffffff { + return nil, 0, EINVAL + } + sa.raw.Family = AF_CAN + sa.raw.Ifindex = int32(sa.Ifindex) + n := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + sa.raw.Addr[i] = n[i] + } + p := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + sa.raw.Addr[i+8] = p[i] + } + sa.raw.Addr[12] = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrCAN, nil +} + +// SockaddrALG implements the Sockaddr interface for AF_ALG type sockets. +// SockaddrALG enables userspace access to the Linux kernel's cryptography +// subsystem. The Type and Name fields specify which type of hash or cipher +// should be used with a given socket. +// +// To create a file descriptor that provides access to a hash or cipher, both +// Bind and Accept must be used. Once the setup process is complete, input +// data can be written to the socket, processed by the kernel, and then read +// back as hash output or ciphertext. +// +// Here is an example of using an AF_ALG socket with SHA1 hashing. +// The initial socket setup process is as follows: +// +// // Open a socket to perform SHA1 hashing. +// fd, _ := unix.Socket(unix.AF_ALG, unix.SOCK_SEQPACKET, 0) +// addr := &unix.SockaddrALG{Type: "hash", Name: "sha1"} +// unix.Bind(fd, addr) +// // Note: unix.Accept does not work at this time; must invoke accept() +// // manually using unix.Syscall. +// hashfd, _, _ := unix.Syscall(unix.SYS_ACCEPT, uintptr(fd), 0, 0) +// +// Once a file descriptor has been returned from Accept, it may be used to +// perform SHA1 hashing. The descriptor is not safe for concurrent use, but +// may be re-used repeatedly with subsequent Write and Read operations. +// +// When hashing a small byte slice or string, a single Write and Read may +// be used: +// +// // Assume hashfd is already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash an input string and read the results. Each Write discards +// // previous hash state. Read always reads the current state. +// b := make([]byte, 20) +// for i := 0; i < 2; i++ { +// io.WriteString(hash, "Hello, world.") +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// } +// // Output: +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// // 2ae01472317d1935a84797ec1983ae243fc6aa28 +// +// For hashing larger byte slices, or byte streams such as those read from +// a file or socket, use Sendto with MSG_MORE to instruct the kernel to update +// the hash digest instead of creating a new one for a given chunk and finalizing it. +// +// // Assume hashfd and addr are already configured using the setup process. +// hash := os.NewFile(hashfd, "sha1") +// // Hash the contents of a file. +// f, _ := os.Open("/tmp/linux-4.10-rc7.tar.xz") +// b := make([]byte, 4096) +// for { +// n, err := f.Read(b) +// if err == io.EOF { +// break +// } +// unix.Sendto(hashfd, b[:n], unix.MSG_MORE, addr) +// } +// hash.Read(b) +// fmt.Println(hex.EncodeToString(b)) +// // Output: 85cdcad0c06eef66f805ecce353bec9accbeecc5 +// +// For more information, see: http://www.chronox.de/crypto-API/crypto/userspace-if.html. +type SockaddrALG struct { + Type string + Name string + Feature uint32 + Mask uint32 + raw RawSockaddrALG +} + +func (sa *SockaddrALG) sockaddr() (unsafe.Pointer, _Socklen, error) { + // Leave room for NUL byte terminator. + if len(sa.Type) > 13 { + return nil, 0, EINVAL + } + if len(sa.Name) > 63 { + return nil, 0, EINVAL + } + + sa.raw.Family = AF_ALG + sa.raw.Feat = sa.Feature + sa.raw.Mask = sa.Mask + + typ, err := ByteSliceFromString(sa.Type) + if err != nil { + return nil, 0, err + } + name, err := ByteSliceFromString(sa.Name) + if err != nil { + return nil, 0, err + } + + copy(sa.raw.Type[:], typ) + copy(sa.raw.Name[:], name) + + return unsafe.Pointer(&sa.raw), SizeofSockaddrALG, nil +} + +// SockaddrVM implements the Sockaddr interface for AF_VSOCK type sockets. +// SockaddrVM provides access to Linux VM sockets: a mechanism that enables +// bidirectional communication between a hypervisor and its guest virtual +// machines. +type SockaddrVM struct { + // CID and Port specify a context ID and port address for a VM socket. + // Guests have a unique CID, and hosts may have a well-known CID of: + // - VMADDR_CID_HYPERVISOR: refers to the hypervisor process. + // - VMADDR_CID_LOCAL: refers to local communication (loopback). + // - VMADDR_CID_HOST: refers to other processes on the host. + CID uint32 + Port uint32 + Flags uint8 + raw RawSockaddrVM +} + +func (sa *SockaddrVM) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_VSOCK + sa.raw.Port = sa.Port + sa.raw.Cid = sa.CID + sa.raw.Flags = sa.Flags + + return unsafe.Pointer(&sa.raw), SizeofSockaddrVM, nil +} + +type SockaddrXDP struct { + Flags uint16 + Ifindex uint32 + QueueID uint32 + SharedUmemFD uint32 + raw RawSockaddrXDP +} + +func (sa *SockaddrXDP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_XDP + sa.raw.Flags = sa.Flags + sa.raw.Ifindex = sa.Ifindex + sa.raw.Queue_id = sa.QueueID + sa.raw.Shared_umem_fd = sa.SharedUmemFD + + return unsafe.Pointer(&sa.raw), SizeofSockaddrXDP, nil +} + +// This constant mirrors the #define of PX_PROTO_OE in +// linux/if_pppox.h. We're defining this by hand here instead of +// autogenerating through mkerrors.sh because including +// linux/if_pppox.h causes some declaration conflicts with other +// includes (linux/if_pppox.h includes linux/in.h, which conflicts +// with netinet/in.h). Given that we only need a single zero constant +// out of that file, it's cleaner to just define it by hand here. +const px_proto_oe = 0 + +type SockaddrPPPoE struct { + SID uint16 + Remote []byte + Dev string + raw RawSockaddrPPPoX +} + +func (sa *SockaddrPPPoE) sockaddr() (unsafe.Pointer, _Socklen, error) { + if len(sa.Remote) != 6 { + return nil, 0, EINVAL + } + if len(sa.Dev) > IFNAMSIZ-1 { + return nil, 0, EINVAL + } + + *(*uint16)(unsafe.Pointer(&sa.raw[0])) = AF_PPPOX + // This next field is in host-endian byte order. We can't use the + // same unsafe pointer cast as above, because this value is not + // 32-bit aligned and some architectures don't allow unaligned + // access. + // + // However, the value of px_proto_oe is 0, so we can use + // encoding/binary helpers to write the bytes without worrying + // about the ordering. + binary.BigEndian.PutUint32(sa.raw[2:6], px_proto_oe) + // This field is deliberately big-endian, unlike the previous + // one. The kernel expects SID to be in network byte order. + binary.BigEndian.PutUint16(sa.raw[6:8], sa.SID) + copy(sa.raw[8:14], sa.Remote) + for i := 14; i < 14+IFNAMSIZ; i++ { + sa.raw[i] = 0 + } + copy(sa.raw[14:], sa.Dev) + return unsafe.Pointer(&sa.raw), SizeofSockaddrPPPoX, nil +} + +// SockaddrTIPC implements the Sockaddr interface for AF_TIPC type sockets. +// For more information on TIPC, see: http://tipc.sourceforge.net/. +type SockaddrTIPC struct { + // Scope is the publication scopes when binding service/service range. + // Should be set to TIPC_CLUSTER_SCOPE or TIPC_NODE_SCOPE. + Scope int + + // Addr is the type of address used to manipulate a socket. Addr must be + // one of: + // - *TIPCSocketAddr: "id" variant in the C addr union + // - *TIPCServiceRange: "nameseq" variant in the C addr union + // - *TIPCServiceName: "name" variant in the C addr union + // + // If nil, EINVAL will be returned when the structure is used. + Addr TIPCAddr + + raw RawSockaddrTIPC +} + +// TIPCAddr is implemented by types that can be used as an address for +// SockaddrTIPC. It is only implemented by *TIPCSocketAddr, *TIPCServiceRange, +// and *TIPCServiceName. +type TIPCAddr interface { + tipcAddrtype() uint8 + tipcAddr() [12]byte +} + +func (sa *TIPCSocketAddr) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCSocketAddr{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCSocketAddr) tipcAddrtype() uint8 { return TIPC_SOCKET_ADDR } + +func (sa *TIPCServiceRange) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceRange{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCServiceRange) tipcAddrtype() uint8 { return TIPC_SERVICE_RANGE } + +func (sa *TIPCServiceName) tipcAddr() [12]byte { + var out [12]byte + copy(out[:], (*(*[unsafe.Sizeof(TIPCServiceName{})]byte)(unsafe.Pointer(sa)))[:]) + return out +} + +func (sa *TIPCServiceName) tipcAddrtype() uint8 { return TIPC_SERVICE_ADDR } + +func (sa *SockaddrTIPC) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Addr == nil { + return nil, 0, EINVAL + } + sa.raw.Family = AF_TIPC + sa.raw.Scope = int8(sa.Scope) + sa.raw.Addrtype = sa.Addr.tipcAddrtype() + sa.raw.Addr = sa.Addr.tipcAddr() + return unsafe.Pointer(&sa.raw), SizeofSockaddrTIPC, nil +} + +// SockaddrL2TPIP implements the Sockaddr interface for IPPROTO_L2TP/AF_INET sockets. +type SockaddrL2TPIP struct { + Addr [4]byte + ConnId uint32 + raw RawSockaddrL2TPIP +} + +func (sa *SockaddrL2TPIP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET + sa.raw.Conn_id = sa.ConnId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP, nil +} + +// SockaddrL2TPIP6 implements the Sockaddr interface for IPPROTO_L2TP/AF_INET6 sockets. +type SockaddrL2TPIP6 struct { + Addr [16]byte + ZoneId uint32 + ConnId uint32 + raw RawSockaddrL2TPIP6 +} + +func (sa *SockaddrL2TPIP6) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_INET6 + sa.raw.Conn_id = sa.ConnId + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrL2TPIP6, nil +} + +// SockaddrIUCV implements the Sockaddr interface for AF_IUCV sockets. +type SockaddrIUCV struct { + UserID string + Name string + raw RawSockaddrIUCV +} + +func (sa *SockaddrIUCV) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Family = AF_IUCV + // These are EBCDIC encoded by the kernel, but we still need to pad them + // with blanks. Initializing with blanks allows the caller to feed in either + // a padded or an unpadded string. + for i := 0; i < 8; i++ { + sa.raw.Nodeid[i] = ' ' + sa.raw.User_id[i] = ' ' + sa.raw.Name[i] = ' ' + } + if len(sa.UserID) > 8 || len(sa.Name) > 8 { + return nil, 0, EINVAL + } + for i, b := range []byte(sa.UserID[:]) { + sa.raw.User_id[i] = int8(b) + } + for i, b := range []byte(sa.Name[:]) { + sa.raw.Name[i] = int8(b) + } + return unsafe.Pointer(&sa.raw), SizeofSockaddrIUCV, nil +} + +type SockaddrNFC struct { + DeviceIdx uint32 + TargetIdx uint32 + NFCProtocol uint32 + raw RawSockaddrNFC +} + +func (sa *SockaddrNFC) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sa_family = AF_NFC + sa.raw.Dev_idx = sa.DeviceIdx + sa.raw.Target_idx = sa.TargetIdx + sa.raw.Nfc_protocol = sa.NFCProtocol + return unsafe.Pointer(&sa.raw), SizeofSockaddrNFC, nil +} + +type SockaddrNFCLLCP struct { + DeviceIdx uint32 + TargetIdx uint32 + NFCProtocol uint32 + DestinationSAP uint8 + SourceSAP uint8 + ServiceName string + raw RawSockaddrNFCLLCP +} + +func (sa *SockaddrNFCLLCP) sockaddr() (unsafe.Pointer, _Socklen, error) { + sa.raw.Sa_family = AF_NFC + sa.raw.Dev_idx = sa.DeviceIdx + sa.raw.Target_idx = sa.TargetIdx + sa.raw.Nfc_protocol = sa.NFCProtocol + sa.raw.Dsap = sa.DestinationSAP + sa.raw.Ssap = sa.SourceSAP + if len(sa.ServiceName) > len(sa.raw.Service_name) { + return nil, 0, EINVAL + } + copy(sa.raw.Service_name[:], sa.ServiceName) + sa.raw.SetServiceNameLen(len(sa.ServiceName)) + return unsafe.Pointer(&sa.raw), SizeofSockaddrNFCLLCP, nil +} + +var socketProtocol = func(fd int) (int, error) { + return GetsockoptInt(fd, SOL_SOCKET, SO_PROTOCOL) +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_NETLINK: + pp := (*RawSockaddrNetlink)(unsafe.Pointer(rsa)) + sa := new(SockaddrNetlink) + sa.Family = pp.Family + sa.Pad = pp.Pad + sa.Pid = pp.Pid + sa.Groups = pp.Groups + return sa, nil + + case AF_PACKET: + pp := (*RawSockaddrLinklayer)(unsafe.Pointer(rsa)) + sa := new(SockaddrLinklayer) + sa.Protocol = pp.Protocol + sa.Ifindex = int(pp.Ifindex) + sa.Hatype = pp.Hatype + sa.Pkttype = pp.Pkttype + sa.Halen = pp.Halen + sa.Addr = pp.Addr + return sa, nil + + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + if pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP) + sa.ConnId = pp.Conn_id + sa.Addr = pp.Addr + return sa, nil + default: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + } + + case AF_INET6: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + switch proto { + case IPPROTO_L2TP: + pp := (*RawSockaddrL2TPIP6)(unsafe.Pointer(rsa)) + sa := new(SockaddrL2TPIP6) + sa.ConnId = pp.Conn_id + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + default: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + + case AF_VSOCK: + pp := (*RawSockaddrVM)(unsafe.Pointer(rsa)) + sa := &SockaddrVM{ + CID: pp.Cid, + Port: pp.Port, + Flags: pp.Flags, + } + return sa, nil + case AF_BLUETOOTH: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + // only BTPROTO_L2CAP and BTPROTO_RFCOMM can accept connections + switch proto { + case BTPROTO_L2CAP: + pp := (*RawSockaddrL2)(unsafe.Pointer(rsa)) + sa := &SockaddrL2{ + PSM: pp.Psm, + CID: pp.Cid, + Addr: pp.Bdaddr, + AddrType: pp.Bdaddr_type, + } + return sa, nil + case BTPROTO_RFCOMM: + pp := (*RawSockaddrRFCOMM)(unsafe.Pointer(rsa)) + sa := &SockaddrRFCOMM{ + Channel: pp.Channel, + Addr: pp.Bdaddr, + } + return sa, nil + } + case AF_XDP: + pp := (*RawSockaddrXDP)(unsafe.Pointer(rsa)) + sa := &SockaddrXDP{ + Flags: pp.Flags, + Ifindex: pp.Ifindex, + QueueID: pp.Queue_id, + SharedUmemFD: pp.Shared_umem_fd, + } + return sa, nil + case AF_PPPOX: + pp := (*RawSockaddrPPPoX)(unsafe.Pointer(rsa)) + if binary.BigEndian.Uint32(pp[2:6]) != px_proto_oe { + return nil, EINVAL + } + sa := &SockaddrPPPoE{ + SID: binary.BigEndian.Uint16(pp[6:8]), + Remote: pp[8:14], + } + for i := 14; i < 14+IFNAMSIZ; i++ { + if pp[i] == 0 { + sa.Dev = string(pp[14:i]) + break + } + } + return sa, nil + case AF_TIPC: + pp := (*RawSockaddrTIPC)(unsafe.Pointer(rsa)) + + sa := &SockaddrTIPC{ + Scope: int(pp.Scope), + } + + // Determine which union variant is present in pp.Addr by checking + // pp.Addrtype. + switch pp.Addrtype { + case TIPC_SERVICE_RANGE: + sa.Addr = (*TIPCServiceRange)(unsafe.Pointer(&pp.Addr)) + case TIPC_SERVICE_ADDR: + sa.Addr = (*TIPCServiceName)(unsafe.Pointer(&pp.Addr)) + case TIPC_SOCKET_ADDR: + sa.Addr = (*TIPCSocketAddr)(unsafe.Pointer(&pp.Addr)) + default: + return nil, EINVAL + } + + return sa, nil + case AF_IUCV: + pp := (*RawSockaddrIUCV)(unsafe.Pointer(rsa)) + + var user [8]byte + var name [8]byte + + for i := 0; i < 8; i++ { + user[i] = byte(pp.User_id[i]) + name[i] = byte(pp.Name[i]) + } + + sa := &SockaddrIUCV{ + UserID: string(user[:]), + Name: string(name[:]), + } + return sa, nil + + case AF_CAN: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + + pp := (*RawSockaddrCAN)(unsafe.Pointer(rsa)) + + switch proto { + case CAN_J1939: + sa := &SockaddrCANJ1939{ + Ifindex: int(pp.Ifindex), + } + name := (*[8]byte)(unsafe.Pointer(&sa.Name)) + for i := 0; i < 8; i++ { + name[i] = pp.Addr[i] + } + pgn := (*[4]byte)(unsafe.Pointer(&sa.PGN)) + for i := 0; i < 4; i++ { + pgn[i] = pp.Addr[i+8] + } + addr := (*[1]byte)(unsafe.Pointer(&sa.Addr)) + addr[0] = pp.Addr[12] + return sa, nil + default: + sa := &SockaddrCAN{ + Ifindex: int(pp.Ifindex), + } + rx := (*[4]byte)(unsafe.Pointer(&sa.RxID)) + for i := 0; i < 4; i++ { + rx[i] = pp.Addr[i] + } + tx := (*[4]byte)(unsafe.Pointer(&sa.TxID)) + for i := 0; i < 4; i++ { + tx[i] = pp.Addr[i+4] + } + return sa, nil + } + case AF_NFC: + proto, err := socketProtocol(fd) + if err != nil { + return nil, err + } + switch proto { + case NFC_SOCKPROTO_RAW: + pp := (*RawSockaddrNFC)(unsafe.Pointer(rsa)) + sa := &SockaddrNFC{ + DeviceIdx: pp.Dev_idx, + TargetIdx: pp.Target_idx, + NFCProtocol: pp.Nfc_protocol, + } + return sa, nil + case NFC_SOCKPROTO_LLCP: + pp := (*RawSockaddrNFCLLCP)(unsafe.Pointer(rsa)) + if uint64(pp.Service_name_len) > uint64(len(pp.Service_name)) { + return nil, EINVAL + } + sa := &SockaddrNFCLLCP{ + DeviceIdx: pp.Dev_idx, + TargetIdx: pp.Target_idx, + NFCProtocol: pp.Nfc_protocol, + DestinationSAP: pp.Dsap, + SourceSAP: pp.Ssap, + ServiceName: string(pp.Service_name[:pp.Service_name_len]), + } + return sa, nil + default: + return nil, EINVAL + } + } + return nil, EAFNOSUPPORT +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, 0) + if err != nil { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Accept4(fd int, flags int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept4(fd, &rsa, &len, flags) + if err != nil { + return + } + if len > SizeofSockaddrAny { + panic("RawSockaddrAny too small") + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptIPMreqn(fd, level, opt int) (*IPMreqn, error) { + var value IPMreqn + vallen := _Socklen(SizeofIPMreqn) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptUcred(fd, level, opt int) (*Ucred, error) { + var value Ucred + vallen := _Socklen(SizeofUcred) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + var value TCPInfo + vallen := _Socklen(SizeofTCPInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +// GetsockoptString returns the string value of the socket option opt for the +// socket associated with fd at the given socket level. +func GetsockoptString(fd, level, opt int) (string, error) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + if err == ERANGE { + buf = make([]byte, vallen) + err = getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + } + if err != nil { + return "", err + } + } + return string(buf[:vallen-1]), nil +} + +func GetsockoptTpacketStats(fd, level, opt int) (*TpacketStats, error) { + var value TpacketStats + vallen := _Socklen(SizeofTpacketStats) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptTpacketStatsV3(fd, level, opt int) (*TpacketStatsV3, error) { + var value TpacketStatsV3 + vallen := _Socklen(SizeofTpacketStatsV3) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func SetsockoptIPMreqn(fd, level, opt int, mreq *IPMreqn) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +func SetsockoptPacketMreq(fd, level, opt int, mreq *PacketMreq) error { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), unsafe.Sizeof(*mreq)) +} + +// SetsockoptSockFprog attaches a classic BPF or an extended BPF program to a +// socket to filter incoming packets. See 'man 7 socket' for usage information. +func SetsockoptSockFprog(fd, level, opt int, fprog *SockFprog) error { + return setsockopt(fd, level, opt, unsafe.Pointer(fprog), unsafe.Sizeof(*fprog)) +} + +func SetsockoptCanRawFilter(fd, level, opt int, filter []CanFilter) error { + var p unsafe.Pointer + if len(filter) > 0 { + p = unsafe.Pointer(&filter[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(filter)*SizeofCanFilter)) +} + +func SetsockoptTpacketReq(fd, level, opt int, tp *TpacketReq) error { + return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) +} + +func SetsockoptTpacketReq3(fd, level, opt int, tp *TpacketReq3) error { + return setsockopt(fd, level, opt, unsafe.Pointer(tp), unsafe.Sizeof(*tp)) +} + +func SetsockoptTCPRepairOpt(fd, level, opt int, o []TCPRepairOpt) (err error) { + if len(o) == 0 { + return EINVAL + } + return setsockopt(fd, level, opt, unsafe.Pointer(&o[0]), uintptr(SizeofTCPRepairOpt*len(o))) +} + +func SetsockoptTCPMD5Sig(fd, level, opt int, s *TCPMD5Sig) error { + return setsockopt(fd, level, opt, unsafe.Pointer(s), unsafe.Sizeof(*s)) +} + +// Keyctl Commands (http://man7.org/linux/man-pages/man2/keyctl.2.html) + +// KeyctlInt calls keyctl commands in which each argument is an int. +// These commands are KEYCTL_REVOKE, KEYCTL_CHOWN, KEYCTL_CLEAR, KEYCTL_LINK, +// KEYCTL_UNLINK, KEYCTL_NEGATE, KEYCTL_SET_REQKEY_KEYRING, KEYCTL_SET_TIMEOUT, +// KEYCTL_ASSUME_AUTHORITY, KEYCTL_SESSION_TO_PARENT, KEYCTL_REJECT, +// KEYCTL_INVALIDATE, and KEYCTL_GET_PERSISTENT. +//sys KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlBuffer calls keyctl commands in which the third and fourth +// arguments are a buffer and its length, respectively. +// These commands are KEYCTL_UPDATE, KEYCTL_READ, and KEYCTL_INSTANTIATE. +//sys KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlString calls keyctl commands which return a string. +// These commands are KEYCTL_DESCRIBE and KEYCTL_GET_SECURITY. +func KeyctlString(cmd int, id int) (string, error) { + // We must loop as the string data may change in between the syscalls. + // We could allocate a large buffer here to reduce the chance that the + // syscall needs to be called twice; however, this is unnecessary as + // the performance loss is negligible. + var buffer []byte + for { + // Try to fill the buffer with data + length, err := KeyctlBuffer(cmd, id, buffer, 0) + if err != nil { + return "", err + } + + // Check if the data was written + if length <= len(buffer) { + // Exclude the null terminator + return string(buffer[:length-1]), nil + } + + // Make a bigger buffer if needed + buffer = make([]byte, length) + } +} + +// Keyctl commands with special signatures. + +// KeyctlGetKeyringID implements the KEYCTL_GET_KEYRING_ID command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_get_keyring_ID.3.html +func KeyctlGetKeyringID(id int, create bool) (ringid int, err error) { + createInt := 0 + if create { + createInt = 1 + } + return KeyctlInt(KEYCTL_GET_KEYRING_ID, id, createInt, 0, 0) +} + +// KeyctlSetperm implements the KEYCTL_SETPERM command. The perm value is the +// key handle permission mask as described in the "keyctl setperm" section of +// http://man7.org/linux/man-pages/man1/keyctl.1.html. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_setperm.3.html +func KeyctlSetperm(id int, perm uint32) error { + _, err := KeyctlInt(KEYCTL_SETPERM, id, int(perm), 0, 0) + return err +} + +//sys keyctlJoin(cmd int, arg2 string) (ret int, err error) = SYS_KEYCTL + +// KeyctlJoinSessionKeyring implements the KEYCTL_JOIN_SESSION_KEYRING command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_join_session_keyring.3.html +func KeyctlJoinSessionKeyring(name string) (ringid int, err error) { + return keyctlJoin(KEYCTL_JOIN_SESSION_KEYRING, name) +} + +//sys keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) = SYS_KEYCTL + +// KeyctlSearch implements the KEYCTL_SEARCH command. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_search.3.html +func KeyctlSearch(ringid int, keyType, description string, destRingid int) (id int, err error) { + return keyctlSearch(KEYCTL_SEARCH, ringid, keyType, description, destRingid) +} + +//sys keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) = SYS_KEYCTL + +// KeyctlInstantiateIOV implements the KEYCTL_INSTANTIATE_IOV command. This +// command is similar to KEYCTL_INSTANTIATE, except that the payload is a slice +// of Iovec (each of which represents a buffer) instead of a single buffer. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_instantiate_iov.3.html +func KeyctlInstantiateIOV(id int, payload []Iovec, ringid int) error { + return keyctlIOV(KEYCTL_INSTANTIATE_IOV, id, payload, ringid) +} + +//sys keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) = SYS_KEYCTL + +// KeyctlDHCompute implements the KEYCTL_DH_COMPUTE command. This command +// computes a Diffie-Hellman shared secret based on the provide params. The +// secret is written to the provided buffer and the returned size is the number +// of bytes written (returning an error if there is insufficient space in the +// buffer). If a nil buffer is passed in, this function returns the minimum +// buffer length needed to store the appropriate data. Note that this differs +// from KEYCTL_READ's behavior which always returns the requested payload size. +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_dh_compute.3.html +func KeyctlDHCompute(params *KeyctlDHParams, buffer []byte) (size int, err error) { + return keyctlDH(KEYCTL_DH_COMPUTE, params, buffer) +} + +// KeyctlRestrictKeyring implements the KEYCTL_RESTRICT_KEYRING command. This +// command limits the set of keys that can be linked to the keyring, regardless +// of keyring permissions. The command requires the "setattr" permission. +// +// When called with an empty keyType the command locks the keyring, preventing +// any further keys from being linked to the keyring. +// +// The "asymmetric" keyType defines restrictions requiring key payloads to be +// DER encoded X.509 certificates signed by keys in another keyring. Restrictions +// for "asymmetric" include "builtin_trusted", "builtin_and_secondary_trusted", +// "key_or_keyring:", and "key_or_keyring::chain". +// +// As of Linux 4.12, only the "asymmetric" keyType defines type-specific +// restrictions. +// +// See the full documentation at: +// http://man7.org/linux/man-pages/man3/keyctl_restrict_keyring.3.html +// http://man7.org/linux/man-pages/man2/keyctl.2.html +func KeyctlRestrictKeyring(ringid int, keyType string, restriction string) error { + if keyType == "" { + return keyctlRestrictKeyring(KEYCTL_RESTRICT_KEYRING, ringid) + } + return keyctlRestrictKeyringByType(KEYCTL_RESTRICT_KEYRING, ringid, keyType, restriction) +} + +//sys keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) = SYS_KEYCTL +//sys keyctlRestrictKeyring(cmd int, arg2 int) (err error) = SYS_KEYCTL + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + if emptyIovecs(iov) { + var sockType int + sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) + if err != nil { + return + } + // receive at least one normal byte + if sockType != SOCK_DGRAM { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + } + msg.Control = &oob[0] + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + return +} + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(ptr) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + empty = emptyIovecs(iov) + if empty { + var sockType int + sockType, err = GetsockoptInt(fd, SOL_SOCKET, SO_TYPE) + if err != nil { + return 0, err + } + // send at least one normal byte + if sockType != SOCK_DGRAM { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + } + msg.Control = &oob[0] + msg.SetControllen(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +// BindToDevice binds the socket associated with fd to device. +func BindToDevice(fd int, device string) (err error) { + return SetsockoptString(fd, SOL_SOCKET, SO_BINDTODEVICE, device) +} + +//sys ptrace(request int, pid int, addr uintptr, data uintptr) (err error) +//sys ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) = SYS_PTRACE + +func ptracePeek(req int, pid int, addr uintptr, out []byte) (count int, err error) { + // The peek requests are machine-size oriented, so we wrap it + // to retrieve arbitrary-length data. + + // The ptrace syscall differs from glibc's ptrace. + // Peeks returns the word in *data, not as the return value. + + var buf [SizeofPtr]byte + + // Leading edge. PEEKTEXT/PEEKDATA don't require aligned + // access (PEEKUSER warns that it might), but if we don't + // align our reads, we might straddle an unmapped page + // boundary and not get the bytes leading up to the page + // boundary. + n := 0 + if addr%SizeofPtr != 0 { + err = ptracePtr(req, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) + if err != nil { + return 0, err + } + n += copy(out, buf[addr%SizeofPtr:]) + out = out[n:] + } + + // Remainder. + for len(out) > 0 { + // We use an internal buffer to guarantee alignment. + // It's not documented if this is necessary, but we're paranoid. + err = ptracePtr(req, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) + if err != nil { + return n, err + } + copied := copy(out, buf[0:]) + n += copied + out = out[copied:] + } + + return n, nil +} + +func PtracePeekText(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKTEXT, pid, addr, out) +} + +func PtracePeekData(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKDATA, pid, addr, out) +} + +func PtracePeekUser(pid int, addr uintptr, out []byte) (count int, err error) { + return ptracePeek(PTRACE_PEEKUSR, pid, addr, out) +} + +func ptracePoke(pokeReq int, peekReq int, pid int, addr uintptr, data []byte) (count int, err error) { + // As for ptracePeek, we need to align our accesses to deal + // with the possibility of straddling an invalid page. + + // Leading edge. + n := 0 + if addr%SizeofPtr != 0 { + var buf [SizeofPtr]byte + err = ptracePtr(peekReq, pid, addr-addr%SizeofPtr, unsafe.Pointer(&buf[0])) + if err != nil { + return 0, err + } + n += copy(buf[addr%SizeofPtr:], data) + word := *((*uintptr)(unsafe.Pointer(&buf[0]))) + err = ptrace(pokeReq, pid, addr-addr%SizeofPtr, word) + if err != nil { + return 0, err + } + data = data[n:] + } + + // Interior. + for len(data) > SizeofPtr { + word := *((*uintptr)(unsafe.Pointer(&data[0]))) + err = ptrace(pokeReq, pid, addr+uintptr(n), word) + if err != nil { + return n, err + } + n += SizeofPtr + data = data[SizeofPtr:] + } + + // Trailing edge. + if len(data) > 0 { + var buf [SizeofPtr]byte + err = ptracePtr(peekReq, pid, addr+uintptr(n), unsafe.Pointer(&buf[0])) + if err != nil { + return n, err + } + copy(buf[0:], data) + word := *((*uintptr)(unsafe.Pointer(&buf[0]))) + err = ptrace(pokeReq, pid, addr+uintptr(n), word) + if err != nil { + return n, err + } + n += len(data) + } + + return n, nil +} + +func PtracePokeText(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKETEXT, PTRACE_PEEKTEXT, pid, addr, data) +} + +func PtracePokeData(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKEDATA, PTRACE_PEEKDATA, pid, addr, data) +} + +func PtracePokeUser(pid int, addr uintptr, data []byte) (count int, err error) { + return ptracePoke(PTRACE_POKEUSR, PTRACE_PEEKUSR, pid, addr, data) +} + +func PtraceGetRegs(pid int, regsout *PtraceRegs) (err error) { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +func PtraceSetRegs(pid int, regs *PtraceRegs) (err error) { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +func PtraceSetOptions(pid int, options int) (err error) { + return ptrace(PTRACE_SETOPTIONS, pid, 0, uintptr(options)) +} + +func PtraceGetEventMsg(pid int) (msg uint, err error) { + var data _C_long + err = ptracePtr(PTRACE_GETEVENTMSG, pid, 0, unsafe.Pointer(&data)) + msg = uint(data) + return +} + +func PtraceCont(pid int, signal int) (err error) { + return ptrace(PTRACE_CONT, pid, 0, uintptr(signal)) +} + +func PtraceSyscall(pid int, signal int) (err error) { + return ptrace(PTRACE_SYSCALL, pid, 0, uintptr(signal)) +} + +func PtraceSingleStep(pid int) (err error) { return ptrace(PTRACE_SINGLESTEP, pid, 0, 0) } + +func PtraceInterrupt(pid int) (err error) { return ptrace(PTRACE_INTERRUPT, pid, 0, 0) } + +func PtraceAttach(pid int) (err error) { return ptrace(PTRACE_ATTACH, pid, 0, 0) } + +func PtraceSeize(pid int) (err error) { return ptrace(PTRACE_SEIZE, pid, 0, 0) } + +func PtraceDetach(pid int) (err error) { return ptrace(PTRACE_DETACH, pid, 0, 0) } + +//sys reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) + +func Reboot(cmd int) (err error) { + return reboot(LINUX_REBOOT_MAGIC1, LINUX_REBOOT_MAGIC2, cmd, "") +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} + +//sys mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) + +func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + // Certain file systems get rather angry and EINVAL if you give + // them an empty string of data, rather than NULL. + if data == "" { + return mount(source, target, fstype, flags, nil) + } + datap, err := BytePtrFromString(data) + if err != nil { + return err + } + return mount(source, target, fstype, flags, datap) +} + +//sys mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) = SYS_MOUNT_SETATTR + +// MountSetattr is a wrapper for mount_setattr(2). +// https://man7.org/linux/man-pages/man2/mount_setattr.2.html +// +// Requires kernel >= 5.12. +func MountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr) error { + return mountSetattr(dirfd, pathname, flags, attr, unsafe.Sizeof(*attr)) +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +// Sendto +// Recvfrom +// Socketpair + +/* + * Direct access + */ +//sys Acct(path string) (err error) +//sys AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) +//sys Adjtimex(buf *Timex) (state int, err error) +//sysnb Capget(hdr *CapUserHeader, data *CapUserData) (err error) +//sysnb Capset(hdr *CapUserHeader, data *CapUserData) (err error) +//sys Chdir(path string) (err error) +//sys Chroot(path string) (err error) +//sys ClockAdjtime(clockid int32, buf *Timex) (state int, err error) +//sys ClockGetres(clockid int32, res *Timespec) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) +//sys Close(fd int) (err error) +//sys CloseRange(first uint, last uint, flags uint) (err error) +//sys CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys DeleteModule(name string, flags int) (err error) +//sys Dup(oldfd int) (fd int, err error) + +func Dup2(oldfd, newfd int) error { + return Dup3(oldfd, newfd, 0) +} + +//sys Dup3(oldfd int, newfd int, flags int) (err error) +//sysnb EpollCreate1(flag int) (fd int, err error) +//sysnb EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) +//sys Eventfd(initval uint, flags int) (fd int, err error) = SYS_EVENTFD2 +//sys Exit(code int) = SYS_EXIT_GROUP +//sys Fallocate(fd int, mode uint32, off int64, len int64) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +//sys Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) +//sys FinitModule(fd int, params string, flags int) (err error) +//sys Flistxattr(fd int, dest []byte) (sz int, err error) +//sys Flock(fd int, how int) (err error) +//sys Fremovexattr(fd int, attr string) (err error) +//sys Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) +//sys Fsync(fd int) (err error) +//sys Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) +//sys Fsopen(fsName string, flags int) (fd int, err error) +//sys Fspick(dirfd int, pathName string, flags int) (fd int, err error) +//sys Getdents(fd int, buf []byte) (n int, err error) = SYS_GETDENTS64 +//sysnb Getpgid(pid int) (pgid int, err error) + +func Getpgrp() (pid int) { + pid, _ = Getpgid(0) + return +} + +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sys Getrandom(buf []byte, flags int) (n int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettid() (tid int) +//sys Getxattr(path string, attr string, dest []byte) (sz int, err error) +//sys InitModule(moduleImage []byte, params string) (err error) +//sys InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) +//sysnb InotifyInit1(flags int) (fd int, err error) +//sysnb InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) +//sysnb Kill(pid int, sig syscall.Signal) (err error) +//sys Klogctl(typ int, buf []byte) (n int, err error) = SYS_SYSLOG +//sys Lgetxattr(path string, attr string, dest []byte) (sz int, err error) +//sys Listxattr(path string, dest []byte) (sz int, err error) +//sys Llistxattr(path string, dest []byte) (sz int, err error) +//sys Lremovexattr(path string, attr string) (err error) +//sys Lsetxattr(path string, attr string, data []byte, flags int) (err error) +//sys MemfdCreate(name string, flags int) (fd int, err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys OpenTree(dfd int, fileName string, flags uint) (r int, err error) +//sys PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) +//sys PivotRoot(newroot string, putold string) (err error) = SYS_PIVOT_ROOT +//sysnb Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) = SYS_PRLIMIT64 +//sys Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) +//sys Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) = SYS_PSELECT6 +//sys read(fd int, p []byte) (n int, err error) +//sys Removexattr(path string, attr string) (err error) +//sys Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) +//sys RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) +//sys Setdomainname(p []byte) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tv *Timeval) (err error) +//sys Setns(fd int, nstype int) (err error) + +// PrctlRetInt performs a prctl operation specified by option and further +// optional arguments arg2 through arg5 depending on option. It returns a +// non-negative integer that is returned by the prctl syscall. +func PrctlRetInt(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (int, error) { + ret, _, err := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if err != 0 { + return 0, err + } + return int(ret), nil +} + +func Setuid(uid int) (err error) { + return syscall.Setuid(uid) +} + +func Setgid(gid int) (err error) { + return syscall.Setgid(gid) +} + +func Setreuid(ruid, euid int) (err error) { + return syscall.Setreuid(ruid, euid) +} + +func Setregid(rgid, egid int) (err error) { + return syscall.Setregid(rgid, egid) +} + +func Setresuid(ruid, euid, suid int) (err error) { + return syscall.Setresuid(ruid, euid, suid) +} + +func Setresgid(rgid, egid, sgid int) (err error) { + return syscall.Setresgid(rgid, egid, sgid) +} + +// SetfsgidRetGid sets fsgid for current thread and returns previous fsgid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability. +// If the call fails due to other reasons, current fsgid will be returned. +func SetfsgidRetGid(gid int) (int, error) { + return setfsgid(gid) +} + +// SetfsuidRetUid sets fsuid for current thread and returns previous fsuid set. +// setfsgid(2) will return a non-nil error only if its caller lacks CAP_SETUID capability +// If the call fails due to other reasons, current fsuid will be returned. +func SetfsuidRetUid(uid int) (int, error) { + return setfsuid(uid) +} + +func Setfsgid(gid int) error { + _, err := setfsgid(gid) + return err +} + +func Setfsuid(uid int) error { + _, err := setfsuid(uid) + return err +} + +func Signalfd(fd int, sigmask *Sigset_t, flags int) (newfd int, err error) { + return signalfd(fd, sigmask, _C__NSIG/8, flags) +} + +//sys Setpriority(which int, who int, prio int) (err error) +//sys Setxattr(path string, attr string, data []byte, flags int) (err error) +//sys signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) = SYS_SIGNALFD4 +//sys Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) +//sys Sync() +//sys Syncfs(fd int) (err error) +//sysnb Sysinfo(info *Sysinfo_t) (err error) +//sys Tee(rfd int, wfd int, len int, flags int) (n int64, err error) +//sysnb TimerfdCreate(clockid int, flags int) (fd int, err error) +//sysnb TimerfdGettime(fd int, currValue *ItimerSpec) (err error) +//sysnb TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) +//sysnb Tgkill(tgid int, tid int, sig syscall.Signal) (err error) +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sysnb Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unmount(target string, flags int) (err error) = SYS_UMOUNT2 +//sys Unshare(flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys exitThread(code int) (err error) = SYS_EXIT +//sys readlen(fd int, p *byte, np int) (n int, err error) = SYS_READ +//sys writelen(fd int, p *byte, np int) (n int, err error) = SYS_WRITE +//sys readv(fd int, iovs []Iovec) (n int, err error) = SYS_READV +//sys writev(fd int, iovs []Iovec) (n int, err error) = SYS_WRITEV +//sys preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PREADV +//sys pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) = SYS_PWRITEV +//sys preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PREADV2 +//sys pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) = SYS_PWRITEV2 + +// minIovec is the size of the small initial allocation used by +// Readv, Writev, etc. +// +// This small allocation gets stack allocated, which lets the +// common use case of len(iovs) <= minIovs avoid more expensive +// heap allocations. +const minIovec = 8 + +// appendBytes converts bs to Iovecs and appends them to vecs. +func appendBytes(vecs []Iovec, bs [][]byte) []Iovec { + for _, b := range bs { + var v Iovec + v.SetLen(len(b)) + if len(b) > 0 { + v.Base = &b[0] + } else { + v.Base = (*byte)(unsafe.Pointer(&_zero)) + } + vecs = append(vecs, v) + } + return vecs +} + +// offs2lohi splits offs into its low and high order bits. +func offs2lohi(offs int64) (lo, hi uintptr) { + const longBits = SizeofLong * 8 + return uintptr(offs), uintptr(uint64(offs) >> (longBits - 1) >> 1) // two shifts to avoid false positive in vet +} + +func Readv(fd int, iovs [][]byte) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + n, err = readv(fd, iovecs) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + lo, hi := offs2lohi(offset) + n, err = preadv(fd, iovecs, lo, hi) + readvRacedetect(iovecs, n, err) + return n, err +} + +func Preadv2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + lo, hi := offs2lohi(offset) + n, err = preadv2(fd, iovecs, lo, hi, flags) + readvRacedetect(iovecs, n, err) + return n, err +} + +func readvRacedetect(iovecs []Iovec, n int, err error) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceWriteRange(unsafe.Pointer(iovecs[i].Base), m) + } + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } +} + +func Writev(fd int, iovs [][]byte) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = writev(fd, iovecs) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev(fd int, iovs [][]byte, offset int64) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev(fd, iovecs, lo, hi) + writevRacedetect(iovecs, n) + return n, err +} + +func Pwritev2(fd int, iovs [][]byte, offset int64, flags int) (n int, err error) { + iovecs := make([]Iovec, 0, minIovec) + iovecs = appendBytes(iovecs, iovs) + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + lo, hi := offs2lohi(offset) + n, err = pwritev2(fd, iovecs, lo, hi, flags) + writevRacedetect(iovecs, n) + return n, err +} + +func writevRacedetect(iovecs []Iovec, n int) { + if !raceenabled { + return + } + for i := 0; n > 0 && i < len(iovecs); i++ { + m := int(iovecs[i].Len) + if m > n { + m = n + } + n -= m + if m > 0 { + raceReadRange(unsafe.Pointer(iovecs[i].Base), m) + } + } +} + +// mmap varies by architecture; see syscall_linux_*.go. +//sys munmap(addr uintptr, length uintptr) (err error) + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +//sys Madvise(b []byte, advice int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) + +// Vmsplice splices user pages from a slice of Iovecs into a pipe specified by fd, +// using the specified flags. +func Vmsplice(fd int, iovs []Iovec, flags int) (int, error) { + var p unsafe.Pointer + if len(iovs) > 0 { + p = unsafe.Pointer(&iovs[0]) + } + + n, _, errno := Syscall6(SYS_VMSPLICE, uintptr(fd), uintptr(p), uintptr(len(iovs)), uintptr(flags), 0, 0) + if errno != 0 { + return 0, syscall.Errno(errno) + } + + return int(n), nil +} + +func isGroupMember(gid int) bool { + groups, err := Getgroups() + if err != nil { + return false + } + + for _, g := range groups { + if g == gid { + return true + } + } + return false +} + +func isCapDacOverrideSet() bool { + hdr := CapUserHeader{Version: LINUX_CAPABILITY_VERSION_3} + data := [2]CapUserData{} + err := Capget(&hdr, &data[0]) + + return err == nil && data[0].Effective&(1<> 6) & 7 + } else { + var gid int + if flags&AT_EACCESS != 0 { + gid = Getegid() + } else { + gid = Getgid() + } + + if uint32(gid) == st.Gid || isGroupMember(int(st.Gid)) { + fmode = (st.Mode >> 3) & 7 + } else { + fmode = st.Mode & 7 + } + } + + if fmode&mode == mode { + return nil + } + + return EACCES +} + +//sys nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) = SYS_NAME_TO_HANDLE_AT +//sys openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) = SYS_OPEN_BY_HANDLE_AT + +// fileHandle is the argument to nameToHandleAt and openByHandleAt. We +// originally tried to generate it via unix/linux/types.go with "type +// fileHandle C.struct_file_handle" but that generated empty structs +// for mips64 and mips64le. Instead, hard code it for now (it's the +// same everywhere else) until the mips64 generator issue is fixed. +type fileHandle struct { + Bytes uint32 + Type int32 +} + +// FileHandle represents the C struct file_handle used by +// name_to_handle_at (see NameToHandleAt) and open_by_handle_at (see +// OpenByHandleAt). +type FileHandle struct { + *fileHandle +} + +// NewFileHandle constructs a FileHandle. +func NewFileHandle(handleType int32, handle []byte) FileHandle { + const hdrSize = unsafe.Sizeof(fileHandle{}) + buf := make([]byte, hdrSize+uintptr(len(handle))) + copy(buf[hdrSize:], handle) + fh := (*fileHandle)(unsafe.Pointer(&buf[0])) + fh.Type = handleType + fh.Bytes = uint32(len(handle)) + return FileHandle{fh} +} + +func (fh *FileHandle) Size() int { return int(fh.fileHandle.Bytes) } +func (fh *FileHandle) Type() int32 { return fh.fileHandle.Type } +func (fh *FileHandle) Bytes() []byte { + n := fh.Size() + if n == 0 { + return nil + } + return unsafe.Slice((*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(&fh.fileHandle.Type))+4)), n) +} + +// NameToHandleAt wraps the name_to_handle_at system call; it obtains +// a handle for a path name. +func NameToHandleAt(dirfd int, path string, flags int) (handle FileHandle, mountID int, err error) { + var mid _C_int + // Try first with a small buffer, assuming the handle will + // only be 32 bytes. + size := uint32(32 + unsafe.Sizeof(fileHandle{})) + didResize := false + for { + buf := make([]byte, size) + fh := (*fileHandle)(unsafe.Pointer(&buf[0])) + fh.Bytes = size - uint32(unsafe.Sizeof(fileHandle{})) + err = nameToHandleAt(dirfd, path, fh, &mid, flags) + if err == EOVERFLOW { + if didResize { + // We shouldn't need to resize more than once + return + } + didResize = true + size = fh.Bytes + uint32(unsafe.Sizeof(fileHandle{})) + continue + } + if err != nil { + return + } + return FileHandle{fh}, int(mid), nil + } +} + +// OpenByHandleAt wraps the open_by_handle_at system call; it opens a +// file via a handle as previously returned by NameToHandleAt. +func OpenByHandleAt(mountFD int, handle FileHandle, flags int) (fd int, err error) { + return openByHandleAt(mountFD, handle.fileHandle, flags) +} + +// Klogset wraps the sys_syslog system call; it sets console_loglevel to +// the value specified by arg and passes a dummy pointer to bufp. +func Klogset(typ int, arg int) (err error) { + var p unsafe.Pointer + _, _, errno := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(p), uintptr(arg)) + if errno != 0 { + return errnoErr(errno) + } + return nil +} + +// RemoteIovec is Iovec with the pointer replaced with an integer. +// It is used for ProcessVMReadv and ProcessVMWritev, where the pointer +// refers to a location in a different process' address space, which +// would confuse the Go garbage collector. +type RemoteIovec struct { + Base uintptr + Len int +} + +//sys ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_READV +//sys ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) = SYS_PROCESS_VM_WRITEV + +//sys PidfdOpen(pid int, flags int) (fd int, err error) = SYS_PIDFD_OPEN +//sys PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) = SYS_PIDFD_GETFD +//sys PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) = SYS_PIDFD_SEND_SIGNAL + +//sys shmat(id int, addr uintptr, flag int) (ret uintptr, err error) +//sys shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) +//sys shmdt(addr uintptr) (err error) +//sys shmget(key int, size int, flag int) (id int, err error) + +//sys getitimer(which int, currValue *Itimerval) (err error) +//sys setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) + +// MakeItimerval creates an Itimerval from interval and value durations. +func MakeItimerval(interval, value time.Duration) Itimerval { + return Itimerval{ + Interval: NsecToTimeval(interval.Nanoseconds()), + Value: NsecToTimeval(value.Nanoseconds()), + } +} + +// A value which may be passed to the which parameter for Getitimer and +// Setitimer. +type ItimerWhich int + +// Possible which values for Getitimer and Setitimer. +const ( + ItimerReal ItimerWhich = ITIMER_REAL + ItimerVirtual ItimerWhich = ITIMER_VIRTUAL + ItimerProf ItimerWhich = ITIMER_PROF +) + +// Getitimer wraps getitimer(2) to return the current value of the timer +// specified by which. +func Getitimer(which ItimerWhich) (Itimerval, error) { + var it Itimerval + if err := getitimer(int(which), &it); err != nil { + return Itimerval{}, err + } + + return it, nil +} + +// Setitimer wraps setitimer(2) to arm or disarm the timer specified by which. +// It returns the previous value of the timer. +// +// If the Itimerval argument is the zero value, the timer will be disarmed. +func Setitimer(which ItimerWhich, it Itimerval) (Itimerval, error) { + var prev Itimerval + if err := setitimer(int(which), &it, &prev); err != nil { + return Itimerval{}, err + } + + return prev, nil +} + +//sysnb rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) = SYS_RT_SIGPROCMASK + +func PthreadSigmask(how int, set, oldset *Sigset_t) error { + if oldset != nil { + // Explicitly clear in case Sigset_t is larger than _C__NSIG. + *oldset = Sigset_t{} + } + return rtSigprocmask(how, set, oldset, _C__NSIG/8) +} + +/* + * Unimplemented + */ +// AfsSyscall +// ArchPrctl +// Brk +// ClockNanosleep +// ClockSettime +// Clone +// EpollCtlOld +// EpollPwait +// EpollWaitOld +// Execve +// Fork +// Futex +// GetKernelSyms +// GetMempolicy +// GetRobustList +// GetThreadArea +// Getpmsg +// IoCancel +// IoDestroy +// IoGetevents +// IoSetup +// IoSubmit +// IoprioGet +// IoprioSet +// KexecLoad +// LookupDcookie +// Mbind +// MigratePages +// Mincore +// ModifyLdt +// Mount +// MovePages +// MqGetsetattr +// MqNotify +// MqOpen +// MqTimedreceive +// MqTimedsend +// MqUnlink +// Mremap +// Msgctl +// Msgget +// Msgrcv +// Msgsnd +// Nfsservctl +// Personality +// Pselect6 +// Ptrace +// Putpmsg +// Quotactl +// Readahead +// Readv +// RemapFilePages +// RestartSyscall +// RtSigaction +// RtSigpending +// RtSigqueueinfo +// RtSigreturn +// RtSigsuspend +// RtSigtimedwait +// SchedGetPriorityMax +// SchedGetPriorityMin +// SchedGetparam +// SchedGetscheduler +// SchedRrGetInterval +// SchedSetparam +// SchedYield +// Security +// Semctl +// Semget +// Semop +// Semtimedop +// SetMempolicy +// SetRobustList +// SetThreadArea +// SetTidAddress +// Sigaltstack +// Swapoff +// Swapon +// Sysfs +// TimerCreate +// TimerDelete +// TimerGetoverrun +// TimerGettime +// TimerSettime +// Tkill (obsolete) +// Tuxcall +// Umount2 +// Uselib +// Utimensat +// Vfork +// Vhangup +// Vserver +// _Sysctl diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_386.go new file mode 100644 index 0000000000..ff5b5899d6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_386.go @@ -0,0 +1,342 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && linux +// +build 386,linux + +package unix + +import ( + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +// 64-bit file system and 32-bit uid calls +// (386 default is 32-bit file system and 16-bit uid). +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64_64 +//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) = SYS_GETEGID32 +//sysnb Geteuid() (euid int) = SYS_GETEUID32 +//sysnb Getgid() (gid int) = SYS_GETGID32 +//sysnb Getuid() (uid int) = SYS_GETUID32 +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 +//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) +//sys Pause() (err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +// On x86 Linux, all the socket calls go through an extra indirection, +// I think because the 5-register system call interface can't handle +// the 6-argument calls like sendto and recvfrom. Instead the +// arguments to the underlying system call are the number below +// and a pointer to an array of uintptr. We hide the pointer in the +// socketcall assembly to avoid allocation on every system call. + +const ( + // see linux/net.h + _SOCKET = 1 + _BIND = 2 + _CONNECT = 3 + _LISTEN = 4 + _ACCEPT = 5 + _GETSOCKNAME = 6 + _GETPEERNAME = 7 + _SOCKETPAIR = 8 + _SEND = 9 + _RECV = 10 + _SENDTO = 11 + _RECVFROM = 12 + _SHUTDOWN = 13 + _SETSOCKOPT = 14 + _GETSOCKOPT = 15 + _SENDMSG = 16 + _RECVMSG = 17 + _ACCEPT4 = 18 + _RECVMMSG = 19 + _SENDMMSG = 20 +) + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + fd, e := socketcall(_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + if e != 0 { + err = e + } + return +} + +func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e := rawsocketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e := rawsocketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { + _, e := rawsocketcall(_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) + if e != 0 { + err = e + } + return +} + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e := socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e := socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func socket(domain int, typ int, proto int) (fd int, err error) { + fd, e := rawsocketcall(_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, e := socketcall(_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e != 0 { + err = e + } + return +} + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, e := socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen, 0) + if e != 0 { + err = e + } + return +} + +func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + n, e := socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + if e != 0 { + err = e + } + return +} + +func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + _, e := socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e != 0 { + err = e + } + return +} + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + n, e := socketcall(_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + n, e := socketcall(_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Listen(s int, n int) (err error) { + _, e := socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Shutdown(s, how int) (err error) { + _, e := socketcall(_SHUTDOWN, uintptr(s), uintptr(how), 0, 0, 0, 0) + if e != 0 { + err = e + } + return +} + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func (r *PtraceRegs) PC() uint64 { return uint64(uint32(r.Eip)) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Eip = int32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go new file mode 100644 index 0000000000..08086ac6a4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go @@ -0,0 +1,14 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (386 || amd64 || mips || mipsle || mips64 || mipsle || ppc64 || ppc64le || ppc || s390x || sparc64) +// +build linux +// +build 386 amd64 mips mipsle mips64 mipsle ppc64 ppc64le ppc s390x sparc64 + +package unix + +// SYS_ALARM is not defined on arm or riscv, but is available for other GOARCH +// values. + +//sys Alarm(seconds uint) (remaining uint, err error) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go new file mode 100644 index 0000000000..9b27035329 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go @@ -0,0 +1,147 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && linux +// +build amd64,linux + +package unix + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys MemfdSecret(flags int) (fd int, err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func Stat(path string, stat *Stat_t) (err error) { + // Use fstatat, because Android's seccomp policy blocks stat. + return Fstatat(AT_FDCWD, path, stat, 0) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) + +func Gettimeofday(tv *Timeval) (err error) { + errno := gettimeofday(tv) + if errno != 0 { + return errno + } + return nil +} + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + errno := gettimeofday(&tv) + if errno != 0 { + return 0, errno + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func (r *PtraceRegs) PC() uint64 { return r.Rip } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Rip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go new file mode 100644 index 0000000000..8b0f0f3aa5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go @@ -0,0 +1,13 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && linux && gc +// +build amd64,linux,gc + +package unix + +import "syscall" + +//go:noescape +func gettimeofday(tv *Timeval) (err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm.go new file mode 100644 index 0000000000..856ad1d635 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm.go @@ -0,0 +1,244 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm && linux +// +build arm,linux + +package unix + +import ( + "unsafe" +) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) = SYS_GETGROUPS32 +//sysnb setgroups(n int, list *_Gid_t) (err error) = SYS_SETGROUPS32 +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +// 64-bit file system and 32-bit uid calls +// (16-bit uid calls are not always supported in newer kernels) +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fchown(fd int, uid int, gid int) (err error) = SYS_FCHOWN32 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sysnb Getegid() (egid int) = SYS_GETEGID32 +//sysnb Geteuid() (euid int) = SYS_GETEUID32 +//sysnb Getgid() (gid int) = SYS_GETGID32 +//sysnb Getuid() (uid int) = SYS_GETUID32 +//sys Lchown(path string, uid int, gid int) (err error) = SYS_LCHOWN32 +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pause() (err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys setfsgid(gid int) (prev int, err error) = SYS_SETFSGID32 +//sys setfsuid(uid int) (prev int, err error) = SYS_SETFSUID32 +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_ARM_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint64 { return uint64(r.Uregs[15]) } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Uregs[15] = uint32(pc) } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} + +//sys armSyncFileRange(fd int, flags int, off int64, n int64) (err error) = SYS_ARM_SYNC_FILE_RANGE + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and arm_sync_file_range syscalls differ only in the + // order of their arguments. + return armSyncFileRange(fd, flags, off, n) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go new file mode 100644 index 0000000000..6422704bc5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go @@ -0,0 +1,195 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && linux +// +build arm64,linux + +package unix + +import "unsafe" + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys MemfdSecret(flags int) (fd int, err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb setrlimit(resource int, rlim *Rlimit) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +// Getrlimit prefers the prlimit64 system call. See issue 38604. +func Getrlimit(resource int, rlim *Rlimit) error { + err := Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + return getrlimit(resource, rlim) +} + +// Setrlimit prefers the prlimit64 system call. See issue 38604. +func Setrlimit(resource int, rlim *Rlimit) error { + err := Prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + return setrlimit(resource, rlim) +} + +func (r *PtraceRegs) PC() uint64 { return r.Pc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc.go new file mode 100644 index 0000000000..2b1168d7d1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc.go @@ -0,0 +1,15 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && gc +// +build linux,gc + +package unix + +// SyscallNoError may be used instead of Syscall for syscalls that don't fail. +func SyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) + +// RawSyscallNoError may be used instead of RawSyscall for syscalls that don't +// fail. +func RawSyscallNoError(trap, a1, a2, a3 uintptr) (r1, r2 uintptr) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go new file mode 100644 index 0000000000..9843fb4896 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go @@ -0,0 +1,17 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && gc && 386 +// +build linux,gc,386 + +package unix + +import "syscall" + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) +func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (n int, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go new file mode 100644 index 0000000000..a6008fccd5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go @@ -0,0 +1,14 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm && gc && linux +// +build arm,gc,linux + +package unix + +import "syscall" + +// Underlying system call writes to newoffset via pointer. +// Implemented in assembly to avoid allocation. +func seek(fd int, offset int64, whence int) (newoffset int64, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go new file mode 100644 index 0000000000..7740af2428 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go @@ -0,0 +1,31 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && gccgo && 386 +// +build linux,gccgo,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} + +func socketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { + fd, _, err := Syscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) + return int(fd), err +} + +func rawsocketcall(call int, a0, a1, a2, a3, a4, a5 uintptr) (int, syscall.Errno) { + fd, _, err := RawSyscall(SYS_SOCKETCALL, uintptr(call), uintptr(unsafe.Pointer(&a0)), 0) + return int(fd), err +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go new file mode 100644 index 0000000000..e16a12299a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go @@ -0,0 +1,21 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && gccgo && arm +// +build linux,gccgo,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go new file mode 100644 index 0000000000..59dab510e9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go @@ -0,0 +1,222 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build loong64 && linux +// +build loong64,linux + +package unix + +import "unsafe" + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func timespecFromStatxTimestamp(x StatxTimestamp) Timespec { + return Timespec{ + Sec: x.Sec, + Nsec: int64(x.Nsec), + } +} + +func Fstatat(fd int, path string, stat *Stat_t, flags int) error { + var r Statx_t + // Do it the glibc way, add AT_NO_AUTOMOUNT. + if err := Statx(fd, path, AT_NO_AUTOMOUNT|flags, STATX_BASIC_STATS, &r); err != nil { + return err + } + + stat.Dev = Mkdev(r.Dev_major, r.Dev_minor) + stat.Ino = r.Ino + stat.Mode = uint32(r.Mode) + stat.Nlink = r.Nlink + stat.Uid = r.Uid + stat.Gid = r.Gid + stat.Rdev = Mkdev(r.Rdev_major, r.Rdev_minor) + // hope we don't get to process files so large to overflow these size + // fields... + stat.Size = int64(r.Size) + stat.Blksize = int32(r.Blksize) + stat.Blocks = int64(r.Blocks) + stat.Atim = timespecFromStatxTimestamp(r.Atime) + stat.Mtim = timespecFromStatxTimestamp(r.Mtime) + stat.Ctim = timespecFromStatxTimestamp(r.Ctime) + + return nil +} + +func Fstat(fd int, stat *Stat_t) (err error) { + return Fstatat(fd, "", stat, AT_EMPTY_PATH) +} + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + return +} + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, rlim, nil) + return +} + +func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func (r *PtraceRegs) PC() uint64 { return r.Era } + +func (r *PtraceRegs) SetPC(era uint64) { r.Era = era } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go new file mode 100644 index 0000000000..bfef09a39e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go @@ -0,0 +1,191 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (mips64 || mips64le) +// +build linux +// +build mips64 mips64le + +package unix + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +type stat_t struct { + Dev uint32 + Pad0 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad1 [3]uint32 + Size int64 + Atime uint32 + Atime_nsec uint32 + Mtime uint32 + Mtime_nsec uint32 + Ctime uint32 + Ctime_nsec uint32 + Blksize uint32 + Pad2 uint32 + Blocks int64 +} + +//sys fstat(fd int, st *stat_t) (err error) +//sys fstatat(dirfd int, path string, st *stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys lstat(path string, st *stat_t) (err error) +//sys stat(path string, st *stat_t) (err error) + +func Fstat(fd int, s *Stat_t) (err error) { + st := &stat_t{} + err = fstat(fd, st) + fillStat_t(s, st) + return +} + +func Fstatat(dirfd int, path string, s *Stat_t, flags int) (err error) { + st := &stat_t{} + err = fstatat(dirfd, path, st, flags) + fillStat_t(s, st) + return +} + +func Lstat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = lstat(path, st) + fillStat_t(s, st) + return +} + +func Stat(path string, s *Stat_t) (err error) { + st := &stat_t{} + err = stat(path, st) + fillStat_t(s, st) + return +} + +func fillStat_t(s *Stat_t, st *stat_t) { + s.Dev = st.Dev + s.Ino = st.Ino + s.Mode = st.Mode + s.Nlink = st.Nlink + s.Uid = st.Uid + s.Gid = st.Gid + s.Rdev = st.Rdev + s.Size = st.Size + s.Atim = Timespec{int64(st.Atime), int64(st.Atime_nsec)} + s.Mtim = Timespec{int64(st.Mtime), int64(st.Mtime_nsec)} + s.Ctim = Timespec{int64(st.Ctime), int64(st.Ctime_nsec)} + s.Blksize = st.Blksize + s.Blocks = st.Blocks +} + +func (r *PtraceRegs) PC() uint64 { return r.Epc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go new file mode 100644 index 0000000000..ab30250966 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go @@ -0,0 +1,203 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (mips || mipsle) +// +build linux +// +build mips mipsle + +package unix + +import ( + "syscall" + "unsafe" +) + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 + +//sys Pause() (err error) + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + p, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(p)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = errnoErr(e) + } + return +} + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + _, _, e := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offset>>32), uintptr(offset), uintptr(unsafe.Pointer(&off)), uintptr(whence), 0) + if e != 0 { + err = errnoErr(e) + } + return +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_GETRLIMIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint64 { return r.Epc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Epc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go new file mode 100644 index 0000000000..eac1cf1acc --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go @@ -0,0 +1,232 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && ppc +// +build linux,ppc + +package unix + +import ( + "syscall" + "unsafe" +) + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) = SYS_FSTAT64 +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Ftruncate(fd int, length int64) (err error) = SYS_FTRUNCATE64 +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getuid() (uid int) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) = SYS_LSTAT64 +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = SYS_SENDFILE64 +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) +//sys Stat(path string, stat *Stat_t) (err error) = SYS_STAT64 +//sys Truncate(path string, length int64) (err error) = SYS_TRUNCATE64 +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(advice), uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func seek(fd int, offset int64, whence int) (int64, syscall.Errno) { + var newoffset int64 + offsetLow := uint32(offset & 0xffffffff) + offsetHigh := uint32((offset >> 32) & 0xffffffff) + _, _, err := Syscall6(SYS__LLSEEK, uintptr(fd), uintptr(offsetHigh), uintptr(offsetLow), uintptr(unsafe.Pointer(&newoffset)), uintptr(whence), 0) + return newoffset, err +} + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + newoffset, errno := seek(fd, offset, whence) + if errno != 0 { + return 0, errno + } + return newoffset, nil +} + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e := Syscall(SYS_FSTATFS64, uintptr(fd), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +func Statfs(path string, buf *Statfs_t) (err error) { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + _, _, e := Syscall(SYS_STATFS64, uintptr(unsafe.Pointer(pathp)), unsafe.Sizeof(*buf), uintptr(unsafe.Pointer(buf))) + if e != 0 { + err = e + } + return +} + +//sys mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + page := uintptr(offset / 4096) + if offset != int64(page)*4096 { + return 0, EINVAL + } + return mmap2(addr, length, prot, flags, fd, page) +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: int32(sec), Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: int32(sec), Usec: int32(usec)} +} + +type rlimit32 struct { + Cur uint32 + Max uint32 +} + +//sysnb getrlimit(resource int, rlim *rlimit32) (err error) = SYS_UGETRLIMIT + +const rlimInf32 = ^uint32(0) +const rlimInf64 = ^uint64(0) + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, nil, rlim) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + err = getrlimit(resource, &rl) + if err != nil { + return + } + + if rl.Cur == rlimInf32 { + rlim.Cur = rlimInf64 + } else { + rlim.Cur = uint64(rl.Cur) + } + + if rl.Max == rlimInf32 { + rlim.Max = rlimInf64 + } else { + rlim.Max = uint64(rl.Max) + } + return +} + +//sysnb setrlimit(resource int, rlim *rlimit32) (err error) = SYS_SETRLIMIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + err = Prlimit(0, resource, rlim, nil) + if err != ENOSYS { + return err + } + + rl := rlimit32{} + if rlim.Cur == rlimInf64 { + rl.Cur = rlimInf32 + } else if rlim.Cur < uint64(rlimInf32) { + rl.Cur = uint32(rlim.Cur) + } else { + return EINVAL + } + if rlim.Max == rlimInf64 { + rl.Max = rlimInf32 + } else if rlim.Max < uint64(rlimInf32) { + rl.Max = uint32(rlim.Max) + } else { + return EINVAL + } + + return setrlimit(resource, &rl) +} + +func (r *PtraceRegs) PC() uint32 { return r.Nip } + +func (r *PtraceRegs) SetPC(pc uint32) { r.Nip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint32(length) +} + +//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and sync_file_range2 syscalls differ only in the + // order of their arguments. + return syncFileRange2(fd, flags, off, n) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go new file mode 100644 index 0000000000..4df56616b8 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go @@ -0,0 +1,118 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (ppc64 || ppc64le) +// +build linux +// +build ppc64 ppc64le + +package unix + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_UGETRLIMIT +//sysnb Getuid() (uid int) +//sys Ioperm(from int, num int, on int) (err error) +//sys Iopl(level int) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) = SYS__NEWSELECT +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Time(t *Time_t) (tt Time_t, err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func (r *PtraceRegs) PC() uint64 { return r.Nip } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Nip = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +//sys syncFileRange2(fd int, flags int, off int64, n int64) (err error) = SYS_SYNC_FILE_RANGE2 + +func SyncFileRange(fd int, off int64, n int64, flags int) error { + // The sync_file_range and sync_file_range2 syscalls differ only in the + // order of their arguments. + return syncFileRange2(fd, flags, off, n) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go new file mode 100644 index 0000000000..5f4243dea2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go @@ -0,0 +1,180 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build riscv64 && linux +// +build riscv64,linux + +package unix + +import "unsafe" + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) = SYS_EPOLL_PWAIT +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Listen(s int, n int) (err error) +//sys MemfdSecret(flags int) (fd int, err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + var ts *Timespec + if timeout != nil { + ts = &Timespec{Sec: timeout.Sec, Nsec: timeout.Usec * 1000} + } + return Pselect(nfd, r, w, e, ts, nil) +} + +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) + +func Stat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, 0) +} + +func Lchown(path string, uid int, gid int) (err error) { + return Fchownat(AT_FDCWD, path, uid, gid, AT_SYMLINK_NOFOLLOW) +} + +func Lstat(path string, stat *Stat_t) (err error) { + return Fstatat(AT_FDCWD, path, stat, AT_SYMLINK_NOFOLLOW) +} + +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + return ENOSYS +} + +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +//sysnb Gettimeofday(tv *Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func futimesat(dirfd int, path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(dirfd, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func Time(t *Time_t) (Time_t, error) { + var tv Timeval + err := Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func Utime(path string, buf *Utimbuf) error { + tv := []Timeval{ + {Sec: buf.Actime}, + {Sec: buf.Modtime}, + } + return Utimes(path, tv) +} + +func utimes(path string, tv *[2]Timeval) (err error) { + if tv == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func (r *PtraceRegs) PC() uint64 { return r.Pc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Pc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +func Pause() error { + _, err := ppoll(nil, 0, nil, nil) + return err +} + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + return Renameat2(olddirfd, oldpath, newdirfd, newpath, 0) +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go new file mode 100644 index 0000000000..d0a7d40668 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go @@ -0,0 +1,298 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build s390x && linux +// +build s390x,linux + +package unix + +import ( + "unsafe" +) + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_NEWFSTATAT +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +func (r *PtraceRegs) PC() uint64 { return r.Psw.Addr } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Psw.Addr = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} + +// Linux on s390x uses the old mmap interface, which requires arguments to be passed in a struct. +// mmap2 also requires arguments to be passed in a struct; it is currently not exposed in . +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + mmap_args := [6]uintptr{addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)} + r0, _, e1 := Syscall(SYS_MMAP, uintptr(unsafe.Pointer(&mmap_args[0])), 0, 0) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// On s390x Linux, all the socket calls go through an extra indirection. +// The arguments to the underlying system call (SYS_SOCKETCALL) are the +// number below and a pointer to an array of uintptr. +const ( + // see linux/net.h + netSocket = 1 + netBind = 2 + netConnect = 3 + netListen = 4 + netAccept = 5 + netGetSockName = 6 + netGetPeerName = 7 + netSocketPair = 8 + netSend = 9 + netRecv = 10 + netSendTo = 11 + netRecvFrom = 12 + netShutdown = 13 + netSetSockOpt = 14 + netGetSockOpt = 15 + netSendMsg = 16 + netRecvMsg = 17 + netAccept4 = 18 + netRecvMMsg = 19 + netSendMMsg = 20 +) + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (int, error) { + args := [4]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags)} + fd, _, err := Syscall(SYS_SOCKETCALL, netAccept4, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netGetSockName, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netGetPeerName, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func socketpair(domain int, typ int, flags int, fd *[2]int32) error { + args := [4]uintptr{uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd))} + _, _, err := RawSyscall(SYS_SOCKETCALL, netSocketPair, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netBind, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) error { + args := [3]uintptr{uintptr(s), uintptr(addr), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netConnect, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func socket(domain int, typ int, proto int) (int, error) { + args := [3]uintptr{uintptr(domain), uintptr(typ), uintptr(proto)} + fd, _, err := RawSyscall(SYS_SOCKETCALL, netSocket, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(fd), nil +} + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) error { + args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen))} + _, _, err := Syscall(SYS_SOCKETCALL, netGetSockOpt, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) error { + args := [5]uintptr{uintptr(s), uintptr(level), uintptr(name), uintptr(val), vallen} + _, _, err := Syscall(SYS_SOCKETCALL, netSetSockOpt, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (int, error) { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))} + n, _, err := Syscall(SYS_SOCKETCALL, netRecvFrom, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func sendto(s int, p []byte, flags int, to unsafe.Pointer, addrlen _Socklen) error { + var base uintptr + if len(p) > 0 { + base = uintptr(unsafe.Pointer(&p[0])) + } + args := [6]uintptr{uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(to), uintptr(addrlen)} + _, _, err := Syscall(SYS_SOCKETCALL, netSendTo, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func recvmsg(s int, msg *Msghdr, flags int) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} + n, _, err := Syscall(SYS_SOCKETCALL, netRecvMsg, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func sendmsg(s int, msg *Msghdr, flags int) (int, error) { + args := [3]uintptr{uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)} + n, _, err := Syscall(SYS_SOCKETCALL, netSendMsg, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return 0, err + } + return int(n), nil +} + +func Listen(s int, n int) error { + args := [2]uintptr{uintptr(s), uintptr(n)} + _, _, err := Syscall(SYS_SOCKETCALL, netListen, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +func Shutdown(s, how int) error { + args := [2]uintptr{uintptr(s), uintptr(how)} + _, _, err := Syscall(SYS_SOCKETCALL, netShutdown, uintptr(unsafe.Pointer(&args)), 0) + if err != 0 { + return err + } + return nil +} + +//sys kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) + +func KexecFileLoad(kernelFd int, initrdFd int, cmdline string, flags int) error { + cmdlineLen := len(cmdline) + if cmdlineLen > 0 { + // Account for the additional NULL byte added by + // BytePtrFromString in kexecFileLoad. The kexec_file_load + // syscall expects a NULL-terminated string. + cmdlineLen++ + } + return kexecFileLoad(kernelFd, initrdFd, cmdlineLen, cmdline, flags) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go new file mode 100644 index 0000000000..f5c793be26 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go @@ -0,0 +1,114 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build sparc64 && linux +// +build sparc64,linux + +package unix + +//sys EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_FADVISE64 +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) = SYS_FSTATAT64 +//sys Fstatfs(fd int, buf *Statfs_t) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (euid int) +//sysnb Getgid() (gid int) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) +//sysnb Getuid() (uid int) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Listen(s int, n int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) = SYS_PREAD64 +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) = SYS_PWRITE64 +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) +//sys setfsgid(gid int) (prev int, err error) +//sys setfsuid(uid int) (prev int, err error) +//sysnb Setrlimit(resource int, rlim *Rlimit) (err error) +//sys Shutdown(fd int, how int) (err error) +//sys Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, buf *Statfs_t) (err error) +//sys SyncFileRange(fd int, off int64, n int64, flags int) (err error) +//sys Truncate(path string, length int64) (err error) +//sys accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) + +func Ioperm(from int, num int, on int) (err error) { + return ENOSYS +} + +func Iopl(level int) (err error) { + return ENOSYS +} + +//sys futimesat(dirfd int, path string, times *[2]Timeval) (err error) +//sysnb Gettimeofday(tv *Timeval) (err error) + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +//sys Utime(path string, buf *Utimbuf) (err error) +//sys utimes(path string, times *[2]Timeval) (err error) + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func (r *PtraceRegs) PC() uint64 { return r.Tpc } + +func (r *PtraceRegs) SetPC(pc uint64) { r.Tpc = pc } + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint64(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint64(length) +} + +func (rsa *RawSockaddrNFCLLCP) SetServiceNameLen(length int) { + rsa.Service_name_len = uint64(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd.go new file mode 100644 index 0000000000..e66865dccb --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd.go @@ -0,0 +1,623 @@ +// Copyright 2009,2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// NetBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func sysctlNodes(mib []_C_int) (nodes []Sysctlnode, err error) { + var olen uintptr + + // Get a list of all sysctl nodes below the given MIB by performing + // a sysctl for the given MIB with CTL_QUERY appended. + mib = append(mib, CTL_QUERY) + qnode := Sysctlnode{Flags: SYSCTL_VERS_1} + qp := (*byte)(unsafe.Pointer(&qnode)) + sz := unsafe.Sizeof(qnode) + if err = sysctl(mib, nil, &olen, qp, sz); err != nil { + return nil, err + } + + // Now that we know the size, get the actual nodes. + nodes = make([]Sysctlnode, olen/sz) + np := (*byte)(unsafe.Pointer(&nodes[0])) + if err = sysctl(mib, np, &olen, qp, sz); err != nil { + return nil, err + } + + return nodes, nil +} + +func nametomib(name string) (mib []_C_int, err error) { + // Split name into components. + var parts []string + last := 0 + for i := 0; i < len(name); i++ { + if name[i] == '.' { + parts = append(parts, name[last:i]) + last = i + 1 + } + } + parts = append(parts, name[last:]) + + // Discover the nodes and construct the MIB OID. + for partno, part := range parts { + nodes, err := sysctlNodes(mib) + if err != nil { + return nil, err + } + for _, node := range nodes { + n := make([]byte, 0) + for i := range node.Name { + if node.Name[i] != 0 { + n = append(n, byte(node.Name[i])) + } + } + if string(n) == part { + mib = append(mib, _C_int(node.Num)) + break + } + } + if len(mib) != partno+1 { + return nil, EINVAL + } + } + + return mib, nil +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + return &u, nil +} + +func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +//sys Getdents(fd int, buf []byte) (n int, err error) + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO is allowed by getdirentries. + err = EIO + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +func IoctlGetPtmget(fd int, req uint) (*Ptmget, error) { + var value Ptmget + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +func Fstatvfs(fd int, buf *Statvfs_t) (err error) { + return Fstatvfs1(fd, buf, ST_WAIT) +} + +func Statvfs(path string, buf *Statvfs_t) (err error) { + return Statvfs1(path, buf, ST_WAIT) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) +//sys Exit(code int) +//sys ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) +//sys ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) +//sys ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) +//sys ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) +//sys ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fadvise(fd int, offset int64, length int64, advice int) (err error) = SYS_POSIX_FADVISE +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) = SYS_FSTATVFS1 +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statvfs1(path string, buf *Statvfs_t, flags int) (err error) = SYS_STATVFS1 +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + */ +// ____semctl13 +// __clone +// __fhopen40 +// __fhstat40 +// __fhstatvfs140 +// __fstat30 +// __getcwd +// __getfh30 +// __getlogin +// __lstat30 +// __mount50 +// __msgctl13 +// __msync13 +// __ntp_gettime30 +// __posix_chown +// __posix_fchown +// __posix_lchown +// __posix_rename +// __setlogin +// __shmctl13 +// __sigaction_sigtramp +// __sigaltstack14 +// __sigpending14 +// __sigprocmask14 +// __sigsuspend14 +// __sigtimedwait +// __stat30 +// __syscall +// __vfork14 +// _ksem_close +// _ksem_destroy +// _ksem_getvalue +// _ksem_init +// _ksem_open +// _ksem_post +// _ksem_trywait +// _ksem_unlink +// _ksem_wait +// _lwp_continue +// _lwp_create +// _lwp_ctl +// _lwp_detach +// _lwp_exit +// _lwp_getname +// _lwp_getprivate +// _lwp_kill +// _lwp_park +// _lwp_self +// _lwp_setname +// _lwp_setprivate +// _lwp_suspend +// _lwp_unpark +// _lwp_unpark_all +// _lwp_wait +// _lwp_wakeup +// _pset_bind +// _sched_getaffinity +// _sched_getparam +// _sched_setaffinity +// _sched_setparam +// acct +// aio_cancel +// aio_error +// aio_fsync +// aio_read +// aio_return +// aio_suspend +// aio_write +// break +// clock_getres +// clock_gettime +// clock_settime +// compat_09_ogetdomainname +// compat_09_osetdomainname +// compat_09_ouname +// compat_10_omsgsys +// compat_10_osemsys +// compat_10_oshmsys +// compat_12_fstat12 +// compat_12_getdirentries +// compat_12_lstat12 +// compat_12_msync +// compat_12_oreboot +// compat_12_oswapon +// compat_12_stat12 +// compat_13_sigaction13 +// compat_13_sigaltstack13 +// compat_13_sigpending13 +// compat_13_sigprocmask13 +// compat_13_sigreturn13 +// compat_13_sigsuspend13 +// compat_14___semctl +// compat_14_msgctl +// compat_14_shmctl +// compat_16___sigaction14 +// compat_16___sigreturn14 +// compat_20_fhstatfs +// compat_20_fstatfs +// compat_20_getfsstat +// compat_20_statfs +// compat_30___fhstat30 +// compat_30___fstat13 +// compat_30___lstat13 +// compat_30___stat13 +// compat_30_fhopen +// compat_30_fhstat +// compat_30_fhstatvfs1 +// compat_30_getdents +// compat_30_getfh +// compat_30_ntp_gettime +// compat_30_socket +// compat_40_mount +// compat_43_fstat43 +// compat_43_lstat43 +// compat_43_oaccept +// compat_43_ocreat +// compat_43_oftruncate +// compat_43_ogetdirentries +// compat_43_ogetdtablesize +// compat_43_ogethostid +// compat_43_ogethostname +// compat_43_ogetkerninfo +// compat_43_ogetpagesize +// compat_43_ogetpeername +// compat_43_ogetrlimit +// compat_43_ogetsockname +// compat_43_okillpg +// compat_43_olseek +// compat_43_ommap +// compat_43_oquota +// compat_43_orecv +// compat_43_orecvfrom +// compat_43_orecvmsg +// compat_43_osend +// compat_43_osendmsg +// compat_43_osethostid +// compat_43_osethostname +// compat_43_osetrlimit +// compat_43_osigblock +// compat_43_osigsetmask +// compat_43_osigstack +// compat_43_osigvec +// compat_43_otruncate +// compat_43_owait +// compat_43_stat43 +// execve +// extattr_delete_fd +// extattr_delete_file +// extattr_delete_link +// extattr_get_fd +// extattr_get_file +// extattr_get_link +// extattr_list_fd +// extattr_list_file +// extattr_list_link +// extattr_set_fd +// extattr_set_file +// extattr_set_link +// extattrctl +// fchroot +// fdatasync +// fgetxattr +// fktrace +// flistxattr +// fork +// fremovexattr +// fsetxattr +// fstatvfs1 +// fsync_range +// getcontext +// getitimer +// getvfsstat +// getxattr +// ktrace +// lchflags +// lchmod +// lfs_bmapv +// lfs_markv +// lfs_segclean +// lfs_segwait +// lgetxattr +// lio_listio +// listxattr +// llistxattr +// lremovexattr +// lseek +// lsetxattr +// lutimes +// madvise +// mincore +// minherit +// modctl +// mq_close +// mq_getattr +// mq_notify +// mq_open +// mq_receive +// mq_send +// mq_setattr +// mq_timedreceive +// mq_timedsend +// mq_unlink +// mremap +// msgget +// msgrcv +// msgsnd +// nfssvc +// ntp_adjtime +// pmc_control +// pmc_get_info +// pollts +// preadv +// profil +// pselect +// pset_assign +// pset_create +// pset_destroy +// ptrace +// pwritev +// quotactl +// rasctl +// readv +// reboot +// removexattr +// sa_enable +// sa_preempt +// sa_register +// sa_setconcurrency +// sa_stacks +// sa_yield +// sbrk +// sched_yield +// semconfig +// semget +// semop +// setcontext +// setitimer +// setxattr +// shmat +// shmdt +// shmget +// sstk +// statvfs1 +// swapctl +// sysarch +// syscall +// timer_create +// timer_delete +// timer_getoverrun +// timer_gettime +// timer_settime +// undelete +// utrace +// uuidgen +// vadvise +// vfork +// writev diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go new file mode 100644 index 0000000000..5199d282fd --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go @@ -0,0 +1,38 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && netbsd +// +build 386,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go new file mode 100644 index 0000000000..70a9c52e98 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go @@ -0,0 +1,38 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && netbsd +// +build amd64,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go new file mode 100644 index 0000000000..3eb5942f93 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go @@ -0,0 +1,38 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm && netbsd +// +build arm,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go new file mode 100644 index 0000000000..fc6ccfd810 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go @@ -0,0 +1,38 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && netbsd +// +build arm64,netbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = uint32(mode) + k.Flags = uint32(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd.go new file mode 100644 index 0000000000..5e9de23ae3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd.go @@ -0,0 +1,391 @@ +// Copyright 2009,2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// OpenBSD system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_bsd.go or syscall_unix.go. + +package unix + +import ( + "sort" + "syscall" + "unsafe" +) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 + raw RawSockaddrDatalink +} + +func anyToSockaddrGOOS(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + return nil, EAFNOSUPPORT +} + +func Syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno) + +func nametomib(name string) (mib []_C_int, err error) { + i := sort.Search(len(sysctlMib), func(i int) bool { + return sysctlMib[i].ctlname >= name + }) + if i < len(sysctlMib) && sysctlMib[i].ctlname == name { + return sysctlMib[i].ctloid, nil + } + return nil, EINVAL +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Fileno), unsafe.Sizeof(Dirent{}.Fileno)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Namlen), unsafe.Sizeof(Dirent{}.Namlen)) +} + +func SysctlUvmexp(name string) (*Uvmexp, error) { + mib, err := sysctlmib(name) + if err != nil { + return nil, err + } + + n := uintptr(SizeofUvmexp) + var u Uvmexp + if err := sysctl(mib, (*byte)(unsafe.Pointer(&u)), &n, nil, 0); err != nil { + return nil, err + } + if n != SizeofUvmexp { + return nil, EIO + } + return &u, nil +} + +func Pipe(p []int) (err error) { + return Pipe2(p, 0) +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +//sys Getdents(fd int, buf []byte) (n int, err error) + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + n, err = Getdents(fd, buf) + if err != nil || basep == nil { + return + } + + var off int64 + off, err = Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + *basep = ^uintptr(0) + return + } + *basep = uintptr(off) + if unsafe.Sizeof(*basep) == 8 { + return + } + if off>>32 != 0 { + // We can't stuff the offset back into a uintptr, so any + // future calls would be suspect. Generate an error. + // EIO was allowed by getdirentries. + err = EIO + } + return +} + +//sys Getcwd(buf []byte) (n int, err error) = SYS___GETCWD + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +// TODO +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + return -1, ENOSYS +} + +func Getfsstat(buf []Statfs_t, flags int) (n int, err error) { + var _p0 unsafe.Pointer + var bufsize uintptr + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + bufsize = unsafe.Sizeof(Statfs_t{}) * uintptr(len(buf)) + } + r0, _, e1 := Syscall(SYS_GETFSSTAT, uintptr(_p0), bufsize, uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +//sys ioctl(fd int, req uint, arg uintptr) (err error) +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//sys sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) = SYS___SYSCTL + +//sys ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) + +func Ppoll(fds []PollFd, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + if len(fds) == 0 { + return ppoll(nil, 0, timeout, sigmask) + } + return ppoll(&fds[0], len(fds), timeout, sigmask) +} + +func Uname(uname *Utsname) error { + mib := []_C_int{CTL_KERN, KERN_OSTYPE} + n := unsafe.Sizeof(uname.Sysname) + if err := sysctl(mib, &uname.Sysname[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_HOSTNAME} + n = unsafe.Sizeof(uname.Nodename) + if err := sysctl(mib, &uname.Nodename[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_OSRELEASE} + n = unsafe.Sizeof(uname.Release) + if err := sysctl(mib, &uname.Release[0], &n, nil, 0); err != nil { + return err + } + + mib = []_C_int{CTL_KERN, KERN_VERSION} + n = unsafe.Sizeof(uname.Version) + if err := sysctl(mib, &uname.Version[0], &n, nil, 0); err != nil { + return err + } + + // The version might have newlines or tabs in it, convert them to + // spaces. + for i, b := range uname.Version { + if b == '\n' || b == '\t' { + if i == len(uname.Version)-1 { + uname.Version[i] = 0 + } else { + uname.Version[i] = ' ' + } + } + } + + mib = []_C_int{CTL_HW, HW_MACHINE} + n = unsafe.Sizeof(uname.Machine) + if err := sysctl(mib, &uname.Machine[0], &n, nil, 0); err != nil { + return err + } + + return nil +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chflags(path string, flags int) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(from int, to int) (err error) +//sys Dup3(from int, to int, flags int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchflags(fd int, flags int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatfs(fd int, stat *Statfs_t) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgrp int) +//sysnb Getpid() (pid int) +//sysnb Getppid() (ppid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrtable() (rtable int, err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Issetugid() (tainted bool) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Kqueue() (fd int, err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) +//sys Listen(s int, backlog int) (err error) +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Readlinkat(dirfd int, path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(fromfd int, from string, tofd int, to string) (err error) +//sys Revoke(path string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = SYS_LSEEK +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Setlogin(name string) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setresgid(rgid int, egid int, sgid int) (err error) +//sysnb Setresuid(ruid int, euid int, suid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setrtable(rtable int) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Settimeofday(tp *Timeval) (err error) +//sysnb Setuid(uid int) (err error) +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statfs(path string, stat *Statfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Symlinkat(oldpath string, newdirfd int, newpath string) (err error) +//sys Sync() (err error) +//sys Truncate(path string, length int64) (err error) +//sys Umask(newmask int) (oldmask int) +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Unmount(path string, flags int) (err error) +//sys write(fd int, p []byte) (n int, err error) +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys writelen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_WRITE +//sys utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) + +/* + * Unimplemented + */ +// __getcwd +// __semctl +// __syscall +// __sysctl +// adjfreq +// break +// clock_getres +// clock_gettime +// clock_settime +// closefrom +// execve +// fhopen +// fhstat +// fhstatfs +// fork +// futimens +// getfh +// getgid +// getitimer +// getlogin +// getresgid +// getresuid +// getthrid +// ktrace +// lfs_bmapv +// lfs_markv +// lfs_segclean +// lfs_segwait +// mincore +// minherit +// mount +// mquery +// msgctl +// msgget +// msgrcv +// msgsnd +// nfssvc +// nnpfspioctl +// preadv +// profil +// pwritev +// quotactl +// readv +// reboot +// renameat +// rfork +// sched_yield +// semget +// semop +// setgroups +// setitimer +// setsockopt +// shmat +// shmctl +// shmdt +// shmget +// sigaction +// sigaltstack +// sigpending +// sigprocmask +// sigreturn +// sigsuspend +// sysarch +// syscall +// threxit +// thrsigdivert +// thrsleep +// thrwakeup +// vfork +// writev diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go new file mode 100644 index 0000000000..6baabcdcb0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go @@ -0,0 +1,42 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build 386 && openbsd +// +build 386,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/386 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go new file mode 100644 index 0000000000..bab25360ea --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go @@ -0,0 +1,42 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && openbsd +// +build amd64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go new file mode 100644 index 0000000000..8eed3c4d4e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go @@ -0,0 +1,42 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm && openbsd +// +build arm,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: int32(nsec)} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: int32(usec)} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint32(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint32(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/arm the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go new file mode 100644 index 0000000000..483dde99d4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/amd64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go new file mode 100644 index 0000000000..04aa43f41b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go @@ -0,0 +1,27 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build openbsd +// +build openbsd + +package unix + +import _ "unsafe" + +// Implemented in the runtime package (runtime/sys_openbsd3.go) +func syscall_syscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall(fn, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawSyscall6(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) + +//go:linkname syscall_syscall syscall.syscall +//go:linkname syscall_syscall6 syscall.syscall6 +//go:linkname syscall_syscall10 syscall.syscall10 +//go:linkname syscall_rawSyscall syscall.rawSyscall +//go:linkname syscall_rawSyscall6 syscall.rawSyscall6 + +func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) { + return syscall_syscall10(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, 0) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go new file mode 100644 index 0000000000..1378489f8d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go @@ -0,0 +1,39 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of OpenBSD the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go new file mode 100644 index 0000000000..c2796139c0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/ppc64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go new file mode 100644 index 0000000000..23199a7ff6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go @@ -0,0 +1,42 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func SetKevent(k *Kevent_t, fd, mode, flags int) { + k.Ident = uint64(fd) + k.Filter = int16(mode) + k.Flags = uint16(flags) +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = uint32(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = uint32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} + +// SYS___SYSCTL is used by syscall_bsd.go for all BSDs, but in modern versions +// of openbsd/riscv64 the syscall is called sysctl instead of __sysctl. +const SYS___SYSCTL = SYS_SYSCTL diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris.go new file mode 100644 index 0000000000..d3444b64d6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris.go @@ -0,0 +1,1136 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Solaris system calls. +// This file is compiled as ordinary Go code, +// but it is also input to mksyscall, +// which parses the //sys lines and generates system call stubs. +// Note that sometimes we use a lowercase //sys name and wrap +// it in our own nicer implementation, either here or in +// syscall_solaris.go or syscall_unix.go. + +package unix + +import ( + "fmt" + "os" + "runtime" + "sync" + "syscall" + "unsafe" +) + +// Implemented in runtime/syscall_solaris.go. +type syscallFunc uintptr + +func rawSysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func sysvicall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) + +// SockaddrDatalink implements the Sockaddr interface for AF_LINK type sockets. +type SockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 + raw RawSockaddrDatalink +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} + +//sysnb pipe(p *[2]_C_int) (n int, err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + n, err := pipe(&pp) + if n != 0 { + return err + } + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return nil +} + +//sysnb pipe2(p *[2]_C_int, flags int) (err error) + +func Pipe2(p []int, flags int) error { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err := pipe2(&pp, flags) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return err +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet4, nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), SizeofSockaddrInet6, nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) { + return nil, 0, EINVAL + } + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + // length is family (uint16), name, NUL. + sl := _Socklen(2) + if n > 0 { + sl += _Socklen(n) + 1 + } + if sa.raw.Path[0] == '@' { + sa.raw.Path[0] = 0 + // Don't count trailing NUL for abstract address. + sl-- + } + + return unsafe.Pointer(&sa.raw), sl, nil +} + +//sys getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getsockname + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +// GetsockoptString returns the string value of the socket option opt for the +// socket associated with fd at the given socket level. +func GetsockoptString(fd, level, opt int) (string, error) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + return string(buf[:vallen-1]), nil +} + +const ImplementsGetwd = true + +//sys Getcwd(buf []byte) (n int, err error) + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + // Getcwd will return an error if it failed for any reason. + _, err = Getcwd(buf[0:]) + if err != nil { + return "", err + } + n := clen(buf[:]) + if n < 1 { + return "", EINVAL + } + return string(buf[:n]), nil +} + +/* + * Wrapped + */ + +//sysnb getgroups(ngid int, gid *_Gid_t) (n int, err error) +//sysnb setgroups(ngid int, gid *_Gid_t) (err error) + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + // Check for error and sanity check group count. Newer versions of + // Solaris allow up to 1024 (NGROUPS_MAX). + if n < 0 || n > 1024 { + if err != nil { + return nil, err + } + return nil, EINVAL + } else if n == 0 { + return nil, nil + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if n == -1 { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +// ReadDirent reads directory entries from fd and writes them into buf. +func ReadDirent(fd int, buf []byte) (n int, err error) { + // Final argument is (basep *uintptr) and the syscall doesn't take nil. + // TODO(rsc): Can we use a single global basep for all calls? + return Getdents(fd, buf, new(uintptr)) +} + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. + +type WaitStatus uint32 + +const ( + mask = 0x7F + core = 0x80 + shift = 8 + + exited = 0 + stopped = 0x7F +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) ExitStatus() int { + if w&mask != exited { + return -1 + } + return int(w >> shift) +} + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != 0 } + +func (w WaitStatus) Signal() syscall.Signal { + sig := syscall.Signal(w & mask) + if sig == stopped || sig == 0 { + return -1 + } + return sig +} + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) Stopped() bool { return w&mask == stopped && syscall.Signal(w>>shift) != SIGSTOP } + +func (w WaitStatus) Continued() bool { return w&mask == stopped && syscall.Signal(w>>shift) == SIGSTOP } + +func (w WaitStatus) StopSignal() syscall.Signal { + if !w.Stopped() { + return -1 + } + return syscall.Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (int, error) { + var status _C_int + rpid, err := wait4(int32(pid), &status, options, rusage) + wpid := int(rpid) + if wpid == -1 { + return wpid, err + } + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return wpid, nil +} + +//sys gethostname(buf []byte) (n int, err error) + +func Gethostname() (name string, err error) { + var buf [MaxHostNameLen]byte + n, err := gethostname(buf[:]) + if n != 0 { + return "", err + } + n = clen(buf[:]) + if n < 1 { + return "", EFAULT + } + return string(buf[:n]), nil +} + +//sys utimes(path string, times *[2]Timeval) (err error) + +func Utimes(path string, tv []Timeval) (err error) { + if tv == nil { + return utimes(path, nil) + } + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +//sys utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) + +func UtimesNano(path string, ts []Timespec) error { + if ts == nil { + return utimensat(AT_FDCWD, path, nil, 0) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(AT_FDCWD, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), 0) +} + +func UtimesNanoAt(dirfd int, path string, ts []Timespec, flags int) error { + if ts == nil { + return utimensat(dirfd, path, nil, flags) + } + if len(ts) != 2 { + return EINVAL + } + return utimensat(dirfd, path, (*[2]Timespec)(unsafe.Pointer(&ts[0])), flags) +} + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) + +// FcntlInt performs a fcntl syscall on fd with the provided command and argument. +func FcntlInt(fd uintptr, cmd, arg int) (int, error) { + valptr, _, errno := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) + var err error + if errno != 0 { + err = errno + } + return int(valptr), err +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(unsafe.Pointer(lk)), 0, 0, 0) + if e1 != 0 { + return e1 + } + return nil +} + +//sys futimesat(fildes int, path *byte, times *[2]Timeval) (err error) + +func Futimesat(dirfd int, path string, tv []Timeval) error { + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + if tv == nil { + return futimesat(dirfd, pathp, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(dirfd, pathp, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +// Solaris doesn't have an futimes function because it allows NULL to be +// specified as the path for futimesat. However, Go doesn't like +// NULL-style string interfaces, so this simple wrapper is provided. +func Futimes(fd int, tv []Timeval) error { + if tv == nil { + return futimesat(fd, nil, nil) + } + if len(tv) != 2 { + return EINVAL + } + return futimesat(fd, nil, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func anyToSockaddr(fd int, rsa *RawSockaddrAny) (Sockaddr, error) { + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + // Assume path ends at NUL. + // This is not technically the Solaris semantics for + // abstract Unix domain sockets -- they are supposed + // to be uninterpreted fixed-size binary blobs -- but + // everyone uses this convention. + n := 0 + for n < len(pp.Path) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + return nil, EAFNOSUPPORT +} + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = libsocket.accept + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if nfd == -1 { + return + } + sa, err = anyToSockaddr(fd, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_recvmsg + +func recvmsgRaw(fd int, iov []Iovec, oob []byte, flags int, rsa *RawSockaddrAny) (n, oobn int, recvflags int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(rsa)) + msg.Namelen = uint32(SizeofSockaddrAny) + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if emptyIovecs(iov) { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Accrightslen = int32(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = recvmsg(fd, &msg, flags); n == -1 { + return + } + oobn = int(msg.Accrightslen) + return +} + +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = libsocket.__xnet_sendmsg + +func sendmsgN(fd int, iov []Iovec, oob []byte, ptr unsafe.Pointer, salen _Socklen, flags int) (n int, err error) { + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = uint32(salen) + var dummy byte + var empty bool + if len(oob) > 0 { + // send at least one normal byte + empty = emptyIovecs(iov) + if empty { + var iova [1]Iovec + iova[0].Base = &dummy + iova[0].SetLen(1) + iov = iova[:] + } + msg.Accrightslen = int32(len(oob)) + } + if len(iov) > 0 { + msg.Iov = &iov[0] + msg.SetIovlen(len(iov)) + } + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && empty { + n = 0 + } + return n, nil +} + +//sys acct(path *byte) (err error) + +func Acct(path string) (err error) { + if len(path) == 0 { + // Assume caller wants to disable accounting. + return acct(nil) + } + + pathp, err := BytePtrFromString(path) + if err != nil { + return err + } + return acct(pathp) +} + +//sys __makedev(version int, major uint, minor uint) (val uint64) + +func Mkdev(major, minor uint32) uint64 { + return __makedev(NEWDEV, uint(major), uint(minor)) +} + +//sys __major(version int, dev uint64) (val uint) + +func Major(dev uint64) uint32 { + return uint32(__major(NEWDEV, dev)) +} + +//sys __minor(version int, dev uint64) (val uint) + +func Minor(dev uint64) uint32 { + return uint32(__minor(NEWDEV, dev)) +} + +/* + * Expose the ioctl function + */ + +//sys ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) = libc.ioctl +//sys ioctlPtrRet(fd int, req uint, arg unsafe.Pointer) (ret int, err error) = libc.ioctl + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, err = ioctlRet(fd, req, arg) + return err +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, err = ioctlPtrRet(fd, req, arg) + return err +} + +func IoctlSetTermio(fd int, req uint, value *Termio) error { + return ioctlPtr(fd, req, unsafe.Pointer(value)) +} + +func IoctlGetTermio(fd int, req uint) (*Termio, error) { + var value Termio + err := ioctlPtr(fd, req, unsafe.Pointer(&value)) + return &value, err +} + +//sys poll(fds *PollFd, nfds int, timeout int) (n int, err error) + +func Poll(fds []PollFd, timeout int) (n int, err error) { + if len(fds) == 0 { + return poll(nil, 0, timeout) + } + return poll(&fds[0], len(fds), timeout) +} + +func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + return sendfile(outfd, infd, offset, count) +} + +/* + * Exposed directly + */ +//sys Access(path string, mode uint32) (err error) +//sys Adjtime(delta *Timeval, olddelta *Timeval) (err error) +//sys Chdir(path string) (err error) +//sys Chmod(path string, mode uint32) (err error) +//sys Chown(path string, uid int, gid int) (err error) +//sys Chroot(path string) (err error) +//sys ClockGettime(clockid int32, time *Timespec) (err error) +//sys Close(fd int) (err error) +//sys Creat(path string, mode uint32) (fd int, err error) +//sys Dup(fd int) (nfd int, err error) +//sys Dup2(oldfd int, newfd int) (err error) +//sys Exit(code int) +//sys Faccessat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) +//sys Fdatasync(fd int) (err error) +//sys Flock(fd int, how int) (err error) +//sys Fpathconf(fd int, name int) (val int, err error) +//sys Fstat(fd int, stat *Stat_t) (err error) +//sys Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) +//sys Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) +//sys Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) +//sysnb Getgid() (gid int) +//sysnb Getpid() (pid int) +//sysnb Getpgid(pid int) (pgid int, err error) +//sysnb Getpgrp() (pgid int, err error) +//sys Geteuid() (euid int) +//sys Getegid() (egid int) +//sys Getppid() (ppid int) +//sys Getpriority(which int, who int) (n int, err error) +//sysnb Getrlimit(which int, lim *Rlimit) (err error) +//sysnb Getrusage(who int, rusage *Rusage) (err error) +//sysnb Getsid(pid int) (sid int, err error) +//sysnb Gettimeofday(tv *Timeval) (err error) +//sysnb Getuid() (uid int) +//sys Kill(pid int, signum syscall.Signal) (err error) +//sys Lchown(path string, uid int, gid int) (err error) +//sys Link(path string, link string) (err error) +//sys Listen(s int, backlog int) (err error) = libsocket.__xnet_llisten +//sys Lstat(path string, stat *Stat_t) (err error) +//sys Madvise(b []byte, advice int) (err error) +//sys Mkdir(path string, mode uint32) (err error) +//sys Mkdirat(dirfd int, path string, mode uint32) (err error) +//sys Mkfifo(path string, mode uint32) (err error) +//sys Mkfifoat(dirfd int, path string, mode uint32) (err error) +//sys Mknod(path string, mode uint32, dev int) (err error) +//sys Mknodat(dirfd int, path string, mode uint32, dev int) (err error) +//sys Mlock(b []byte) (err error) +//sys Mlockall(flags int) (err error) +//sys Mprotect(b []byte, prot int) (err error) +//sys Msync(b []byte, flags int) (err error) +//sys Munlock(b []byte) (err error) +//sys Munlockall() (err error) +//sys Nanosleep(time *Timespec, leftover *Timespec) (err error) +//sys Open(path string, mode int, perm uint32) (fd int, err error) +//sys Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) +//sys Pathconf(path string, name int) (val int, err error) +//sys Pause() (err error) +//sys pread(fd int, p []byte, offset int64) (n int, err error) +//sys pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) +//sys Rename(from string, to string) (err error) +//sys Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) +//sys Rmdir(path string) (err error) +//sys Seek(fd int, offset int64, whence int) (newoffset int64, err error) = lseek +//sys Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) +//sysnb Setegid(egid int) (err error) +//sysnb Seteuid(euid int) (err error) +//sysnb Setgid(gid int) (err error) +//sys Sethostname(p []byte) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setregid(rgid int, egid int) (err error) +//sysnb Setreuid(ruid int, euid int) (err error) +//sysnb Setrlimit(which int, lim *Rlimit) (err error) +//sysnb Setsid() (pid int, err error) +//sysnb Setuid(uid int) (err error) +//sys Shutdown(s int, how int) (err error) = libsocket.shutdown +//sys Stat(path string, stat *Stat_t) (err error) +//sys Statvfs(path string, vfsstat *Statvfs_t) (err error) +//sys Symlink(path string, link string) (err error) +//sys Sync() (err error) +//sys Sysconf(which int) (n int64, err error) +//sysnb Times(tms *Tms) (ticks uintptr, err error) +//sys Truncate(path string, length int64) (err error) +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Umask(mask int) (oldmask int) +//sysnb Uname(buf *Utsname) (err error) +//sys Unmount(target string, flags int) (err error) = libc.umount +//sys Unlink(path string) (err error) +//sys Unlinkat(dirfd int, path string, flags int) (err error) +//sys Ustat(dev int, ubuf *Ustat_t) (err error) +//sys Utime(path string, buf *Utimbuf) (err error) +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_bind +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_connect +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) +//sys munmap(addr uintptr, length uintptr) (err error) +//sys sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) = libsendfile.sendfile +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = libsocket.__xnet_sendto +//sys socket(domain int, typ int, proto int) (fd int, err error) = libsocket.__xnet_socket +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) = libsocket.__xnet_socketpair +//sys write(fd int, p []byte) (n int, err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) = libsocket.__xnet_getsockopt +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = libsocket.getpeername +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) = libsocket.setsockopt +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = libsocket.recvfrom + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +// Event Ports + +type fileObjCookie struct { + fobj *fileObj + cookie interface{} +} + +// EventPort provides a safe abstraction on top of Solaris/illumos Event Ports. +type EventPort struct { + port int + mu sync.Mutex + fds map[uintptr]*fileObjCookie + paths map[string]*fileObjCookie + // The user cookie presents an interesting challenge from a memory management perspective. + // There are two paths by which we can discover that it is no longer in use: + // 1. The user calls port_dissociate before any events fire + // 2. An event fires and we return it to the user + // The tricky situation is if the event has fired in the kernel but + // the user hasn't requested/received it yet. + // If the user wants to port_dissociate before the event has been processed, + // we should handle things gracefully. To do so, we need to keep an extra + // reference to the cookie around until the event is processed + // thus the otherwise seemingly extraneous "cookies" map + // The key of this map is a pointer to the corresponding fCookie + cookies map[*fileObjCookie]struct{} +} + +// PortEvent is an abstraction of the port_event C struct. +// Compare Source against PORT_SOURCE_FILE or PORT_SOURCE_FD +// to see if Path or Fd was the event source. The other will be +// uninitialized. +type PortEvent struct { + Cookie interface{} + Events int32 + Fd uintptr + Path string + Source uint16 + fobj *fileObj +} + +// NewEventPort creates a new EventPort including the +// underlying call to port_create(3c). +func NewEventPort() (*EventPort, error) { + port, err := port_create() + if err != nil { + return nil, err + } + e := &EventPort{ + port: port, + fds: make(map[uintptr]*fileObjCookie), + paths: make(map[string]*fileObjCookie), + cookies: make(map[*fileObjCookie]struct{}), + } + return e, nil +} + +//sys port_create() (n int, err error) +//sys port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) +//sys port_dissociate(port int, source int, object uintptr) (n int, err error) +//sys port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) +//sys port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) + +// Close closes the event port. +func (e *EventPort) Close() error { + e.mu.Lock() + defer e.mu.Unlock() + err := Close(e.port) + if err != nil { + return err + } + e.fds = nil + e.paths = nil + e.cookies = nil + return nil +} + +// PathIsWatched checks to see if path is associated with this EventPort. +func (e *EventPort) PathIsWatched(path string) bool { + e.mu.Lock() + defer e.mu.Unlock() + _, found := e.paths[path] + return found +} + +// FdIsWatched checks to see if fd is associated with this EventPort. +func (e *EventPort) FdIsWatched(fd uintptr) bool { + e.mu.Lock() + defer e.mu.Unlock() + _, found := e.fds[fd] + return found +} + +// AssociatePath wraps port_associate(3c) for a filesystem path including +// creating the necessary file_obj from the provided stat information. +func (e *EventPort) AssociatePath(path string, stat os.FileInfo, events int, cookie interface{}) error { + e.mu.Lock() + defer e.mu.Unlock() + if _, found := e.paths[path]; found { + return fmt.Errorf("%v is already associated with this Event Port", path) + } + fCookie, err := createFileObjCookie(path, stat, cookie) + if err != nil { + return err + } + _, err = port_associate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(fCookie.fobj)), events, (*byte)(unsafe.Pointer(fCookie))) + if err != nil { + return err + } + e.paths[path] = fCookie + e.cookies[fCookie] = struct{}{} + return nil +} + +// DissociatePath wraps port_dissociate(3c) for a filesystem path. +func (e *EventPort) DissociatePath(path string) error { + e.mu.Lock() + defer e.mu.Unlock() + f, ok := e.paths[path] + if !ok { + return fmt.Errorf("%v is not associated with this Event Port", path) + } + _, err := port_dissociate(e.port, PORT_SOURCE_FILE, uintptr(unsafe.Pointer(f.fobj))) + // If the path is no longer associated with this event port (ENOENT) + // we should delete it from our map. We can still return ENOENT to the caller. + // But we need to save the cookie + if err != nil && err != ENOENT { + return err + } + if err == nil { + // dissociate was successful, safe to delete the cookie + fCookie := e.paths[path] + delete(e.cookies, fCookie) + } + delete(e.paths, path) + return err +} + +// AssociateFd wraps calls to port_associate(3c) on file descriptors. +func (e *EventPort) AssociateFd(fd uintptr, events int, cookie interface{}) error { + e.mu.Lock() + defer e.mu.Unlock() + if _, found := e.fds[fd]; found { + return fmt.Errorf("%v is already associated with this Event Port", fd) + } + fCookie, err := createFileObjCookie("", nil, cookie) + if err != nil { + return err + } + _, err = port_associate(e.port, PORT_SOURCE_FD, fd, events, (*byte)(unsafe.Pointer(fCookie))) + if err != nil { + return err + } + e.fds[fd] = fCookie + e.cookies[fCookie] = struct{}{} + return nil +} + +// DissociateFd wraps calls to port_dissociate(3c) on file descriptors. +func (e *EventPort) DissociateFd(fd uintptr) error { + e.mu.Lock() + defer e.mu.Unlock() + _, ok := e.fds[fd] + if !ok { + return fmt.Errorf("%v is not associated with this Event Port", fd) + } + _, err := port_dissociate(e.port, PORT_SOURCE_FD, fd) + if err != nil && err != ENOENT { + return err + } + if err == nil { + // dissociate was successful, safe to delete the cookie + fCookie := e.fds[fd] + delete(e.cookies, fCookie) + } + delete(e.fds, fd) + return err +} + +func createFileObjCookie(name string, stat os.FileInfo, cookie interface{}) (*fileObjCookie, error) { + fCookie := new(fileObjCookie) + fCookie.cookie = cookie + if name != "" && stat != nil { + fCookie.fobj = new(fileObj) + bs, err := ByteSliceFromString(name) + if err != nil { + return nil, err + } + fCookie.fobj.Name = (*int8)(unsafe.Pointer(&bs[0])) + s := stat.Sys().(*syscall.Stat_t) + fCookie.fobj.Atim.Sec = s.Atim.Sec + fCookie.fobj.Atim.Nsec = s.Atim.Nsec + fCookie.fobj.Mtim.Sec = s.Mtim.Sec + fCookie.fobj.Mtim.Nsec = s.Mtim.Nsec + fCookie.fobj.Ctim.Sec = s.Ctim.Sec + fCookie.fobj.Ctim.Nsec = s.Ctim.Nsec + } + return fCookie, nil +} + +// GetOne wraps port_get(3c) and returns a single PortEvent. +func (e *EventPort) GetOne(t *Timespec) (*PortEvent, error) { + pe := new(portEvent) + _, err := port_get(e.port, pe, t) + if err != nil { + return nil, err + } + p := new(PortEvent) + e.mu.Lock() + defer e.mu.Unlock() + err = e.peIntToExt(pe, p) + if err != nil { + return nil, err + } + return p, nil +} + +// peIntToExt converts a cgo portEvent struct into the friendlier PortEvent +// NOTE: Always call this function while holding the e.mu mutex +func (e *EventPort) peIntToExt(peInt *portEvent, peExt *PortEvent) error { + if e.cookies == nil { + return fmt.Errorf("this EventPort is already closed") + } + peExt.Events = peInt.Events + peExt.Source = peInt.Source + fCookie := (*fileObjCookie)(unsafe.Pointer(peInt.User)) + _, found := e.cookies[fCookie] + + if !found { + panic("unexpected event port address; may be due to kernel bug; see https://go.dev/issue/54254") + } + peExt.Cookie = fCookie.cookie + delete(e.cookies, fCookie) + + switch peInt.Source { + case PORT_SOURCE_FD: + peExt.Fd = uintptr(peInt.Object) + // Only remove the fds entry if it exists and this cookie matches + if fobj, ok := e.fds[peExt.Fd]; ok { + if fobj == fCookie { + delete(e.fds, peExt.Fd) + } + } + case PORT_SOURCE_FILE: + peExt.fobj = fCookie.fobj + peExt.Path = BytePtrToString((*byte)(unsafe.Pointer(peExt.fobj.Name))) + // Only remove the paths entry if it exists and this cookie matches + if fobj, ok := e.paths[peExt.Path]; ok { + if fobj == fCookie { + delete(e.paths, peExt.Path) + } + } + } + return nil +} + +// Pending wraps port_getn(3c) and returns how many events are pending. +func (e *EventPort) Pending() (int, error) { + var n uint32 = 0 + _, err := port_getn(e.port, nil, 0, &n, nil) + return int(n), err +} + +// Get wraps port_getn(3c) and fills a slice of PortEvent. +// It will block until either min events have been received +// or the timeout has been exceeded. It will return how many +// events were actually received along with any error information. +func (e *EventPort) Get(s []PortEvent, min int, timeout *Timespec) (int, error) { + if min == 0 { + return 0, fmt.Errorf("need to request at least one event or use Pending() instead") + } + if len(s) < min { + return 0, fmt.Errorf("len(s) (%d) is less than min events requested (%d)", len(s), min) + } + got := uint32(min) + max := uint32(len(s)) + var err error + ps := make([]portEvent, max) + _, err = port_getn(e.port, &ps[0], max, &got, timeout) + // got will be trustworthy with ETIME, but not any other error. + if err != nil && err != ETIME { + return 0, err + } + e.mu.Lock() + defer e.mu.Unlock() + valid := 0 + for i := 0; i < int(got); i++ { + err2 := e.peIntToExt(&ps[i], &s[i]) + if err2 != nil { + if valid == 0 && err == nil { + // If err2 is the only error and there are no valid events + // to return, return it to the caller. + err = err2 + } + break + } + valid = i + 1 + } + return valid, err +} + +//sys putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) + +func Putmsg(fd int, cl []byte, data []byte, flags int) (err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Len: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Len: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + return putmsg(fd, clp, datap, flags) +} + +//sys getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) + +func Getmsg(fd int, cl []byte, data []byte) (retCl []byte, retData []byte, flags int, err error) { + var clp, datap *strbuf + if len(cl) > 0 { + clp = &strbuf{ + Maxlen: int32(len(cl)), + Buf: (*int8)(unsafe.Pointer(&cl[0])), + } + } + if len(data) > 0 { + datap = &strbuf{ + Maxlen: int32(len(data)), + Buf: (*int8)(unsafe.Pointer(&data[0])), + } + } + + if err = getmsg(fd, clp, datap, &flags); err != nil { + return nil, nil, 0, err + } + + if len(cl) > 0 { + retCl = cl[:clp.Len] + } + if len(data) > 0 { + retData = data[:datap.Len] + } + return retCl, retData, flags, nil +} + +func IoctlSetIntRetInt(fd int, req uint, arg int) (int, error) { + return ioctlRet(fd, req, uintptr(arg)) +} + +func IoctlSetString(fd int, req uint, val string) error { + bs := make([]byte, len(val)+1) + copy(bs[:len(bs)-1], val) + err := ioctlPtr(fd, req, unsafe.Pointer(&bs[0])) + runtime.KeepAlive(&bs[0]) + return err +} + +// Lifreq Helpers + +func (l *Lifreq) SetName(name string) error { + if len(name) >= len(l.Name) { + return fmt.Errorf("name cannot be more than %d characters", len(l.Name)-1) + } + for i := range name { + l.Name[i] = int8(name[i]) + } + return nil +} + +func (l *Lifreq) SetLifruInt(d int) { + *(*int)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruInt() int { + return *(*int)(unsafe.Pointer(&l.Lifru[0])) +} + +func (l *Lifreq) SetLifruUint(d uint) { + *(*uint)(unsafe.Pointer(&l.Lifru[0])) = d +} + +func (l *Lifreq) GetLifruUint() uint { + return *(*uint)(unsafe.Pointer(&l.Lifru[0])) +} + +func IoctlLifreq(fd int, req uint, l *Lifreq) error { + return ioctlPtr(fd, req, unsafe.Pointer(l)) +} + +// Strioctl Helpers + +func (s *Strioctl) SetInt(i int) { + s.Len = int32(unsafe.Sizeof(i)) + s.Dp = (*int8)(unsafe.Pointer(&i)) +} + +func IoctlSetStrioctlRetInt(fd int, req uint, s *Strioctl) (int, error) { + return ioctlPtrRet(fd, req, unsafe.Pointer(s)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go new file mode 100644 index 0000000000..0bd25ef81f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go @@ -0,0 +1,28 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build amd64 && solaris +// +build amd64,solaris + +package unix + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { + return Timeval{Sec: sec, Usec: usec} +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetIovlen(length int) { + msghdr.Iovlen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = uint32(length) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix.go new file mode 100644 index 0000000000..00f0aa3758 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix.go @@ -0,0 +1,589 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris + +package unix + +import ( + "bytes" + "sort" + "sync" + "syscall" + "unsafe" +) + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// Do the interface allocations only once for common +// Errno values. +var ( + errEAGAIN error = syscall.EAGAIN + errEINVAL error = syscall.EINVAL + errENOENT error = syscall.ENOENT +) + +var ( + signalNameMapOnce sync.Once + signalNameMap map[string]syscall.Signal +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e syscall.Errno) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + } + return e +} + +// ErrnoName returns the error name for error number e. +func ErrnoName(e syscall.Errno) string { + i := sort.Search(len(errorList), func(i int) bool { + return errorList[i].num >= e + }) + if i < len(errorList) && errorList[i].num == e { + return errorList[i].name + } + return "" +} + +// SignalName returns the signal name for signal number s. +func SignalName(s syscall.Signal) string { + i := sort.Search(len(signalList), func(i int) bool { + return signalList[i].num >= s + }) + if i < len(signalList) && signalList[i].num == s { + return signalList[i].name + } + return "" +} + +// SignalNum returns the syscall.Signal for signal named s, +// or 0 if a signal with such name is not found. +// The signal name should start with "SIG". +func SignalNum(s string) syscall.Signal { + signalNameMapOnce.Do(func() { + signalNameMap = make(map[string]syscall.Signal, len(signalList)) + for _, signal := range signalList { + signalNameMap[signal.name] = signal.num + } + }) + return signalNameMap[s] +} + +// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. +func clen(n []byte) int { + i := bytes.IndexByte(n, 0) + if i == -1 { + i = len(n) + } + return i +} + +// Mmap manager, for use by operating system-specific implementations. + +type mmapper struct { + sync.Mutex + active map[*byte][]byte // active mappings; key is last byte in mapping + mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) + munmap func(addr uintptr, length uintptr) error +} + +func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + if length <= 0 { + return nil, EINVAL + } + + // Map the requested memory. + addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) + if errno != nil { + return nil, errno + } + + // Use unsafe to convert addr into a []byte. + b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), length) + + // Register mapping in m and return it. + p := &b[cap(b)-1] + m.Lock() + defer m.Unlock() + m.active[p] = b + return b, nil +} + +func (m *mmapper) Munmap(data []byte) (err error) { + if len(data) == 0 || len(data) != cap(data) { + return EINVAL + } + + // Find the base of the mapping. + p := &data[cap(data)-1] + m.Lock() + defer m.Unlock() + b := m.active[p] + if b == nil || &b[0] != &data[0] { + return EINVAL + } + + // Unmap the memory and update m. + if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { + return errno + } + delete(m.active, p) + return nil +} + +func Read(fd int, p []byte) (n int, err error) { + n, err = read(fd, p) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Write(fd int, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = write(fd, p) + if raceenabled && n > 0 { + raceReadRange(unsafe.Pointer(&p[0]), n) + } + return +} + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + n, err = pread(fd, p, offset) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = pwrite(fd, p, offset) + if raceenabled && n > 0 { + raceReadRange(unsafe.Pointer(&p[0]), n) + } + return +} + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +// Sockaddr represents a socket address. +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs +} + +// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func Bind(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func Getpeername(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getpeername(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptByte(fd, level, opt int) (value byte, err error) { + var n byte + vallen := _Socklen(1) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func GetsockoptInt(fd, level, opt int) (value int, err error) { + var n int32 + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return int(n), err +} + +func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + return value, err +} + +func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { + var value IPMreq + vallen := _Socklen(SizeofIPMreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { + var value IPv6Mreq + vallen := _Socklen(SizeofIPv6Mreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := _Socklen(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { + var value ICMPv6Filter + vallen := _Socklen(SizeofICMPv6Filter) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptLinger(fd, level, opt int) (*Linger, error) { + var linger Linger + vallen := _Socklen(SizeofLinger) + err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) + return &linger, err +} + +func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { + var tv Timeval + vallen := _Socklen(unsafe.Sizeof(tv)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) + return &tv, err +} + +func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { + var n uint64 + vallen := _Socklen(8) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { + return + } + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +// Recvmsg receives a message from a socket using the recvmsg system call. The +// received non-control data will be written to p, and any "out of band" +// control data will be written to oob. The flags are passed to recvmsg. +// +// The results are: +// - n is the number of non-control data bytes read into p +// - oobn is the number of control data bytes read into oob; this may be interpreted using [ParseSocketControlMessage] +// - recvflags is flags returned by recvmsg +// - from is the address of the sender +// +// If the underlying socket type is not SOCK_DGRAM, a received message +// containing oob data and a single '\0' of non-control data is treated as if +// the message contained only control data, i.e. n will be zero on return. +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var iov [1]Iovec + if len(p) > 0 { + iov[0].Base = &p[0] + iov[0].SetLen(len(p)) + } + var rsa RawSockaddrAny + n, oobn, recvflags, err = recvmsgRaw(fd, iov[:], oob, flags, &rsa) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +// RecvmsgBuffers receives a message from a socket using the recvmsg system +// call. This function is equivalent to Recvmsg, but non-control data read is +// scattered into the buffers slices. +func RecvmsgBuffers(fd int, buffers [][]byte, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + iov := make([]Iovec, len(buffers)) + for i := range buffers { + if len(buffers[i]) > 0 { + iov[i].Base = &buffers[i][0] + iov[i].SetLen(len(buffers[i])) + } else { + iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + var rsa RawSockaddrAny + n, oobn, recvflags, err = recvmsgRaw(fd, iov, oob, flags, &rsa) + if err == nil && rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +// Sendmsg sends a message on a socket to an address using the sendmsg system +// call. This function is equivalent to SendmsgN, but does not return the +// number of bytes actually sent. +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +// SendmsgN sends a message on a socket to an address using the sendmsg system +// call. p contains the non-control data to send, and oob contains the "out of +// band" control data. The flags are passed to sendmsg. The number of +// non-control bytes actually written to the socket is returned. +// +// Some socket types do not support sending control data without accompanying +// non-control data. If p is empty, and oob contains control data, and the +// underlying socket type is not SOCK_DGRAM, p will be treated as containing a +// single '\0' and the return value will indicate zero bytes sent. +// +// The Go function Recvmsg, if called with an empty p and a non-empty oob, +// will read and ignore this additional '\0'. If the message is received by +// code that does not use Recvmsg, or that does not use Go at all, that code +// will need to be written to expect and ignore the additional '\0'. +// +// If you need to send non-empty oob with p actually empty, and if the +// underlying socket type supports it, you can do so via a raw system call as +// follows: +// +// msg := &unix.Msghdr{ +// Control: &oob[0], +// } +// msg.SetControllen(len(oob)) +// n, _, errno := unix.Syscall(unix.SYS_SENDMSG, uintptr(fd), uintptr(unsafe.Pointer(msg)), flags) +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var iov [1]Iovec + if len(p) > 0 { + iov[0].Base = &p[0] + iov[0].SetLen(len(p)) + } + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + return sendmsgN(fd, iov[:], oob, ptr, salen, flags) +} + +// SendmsgBuffers sends a message on a socket to an address using the sendmsg +// system call. This function is equivalent to SendmsgN, but the non-control +// data is gathered from buffers. +func SendmsgBuffers(fd int, buffers [][]byte, oob []byte, to Sockaddr, flags int) (n int, err error) { + iov := make([]Iovec, len(buffers)) + for i := range buffers { + if len(buffers[i]) > 0 { + iov[i].Base = &buffers[i][0] + iov[i].SetLen(len(buffers[i])) + } else { + iov[i].Base = (*byte)(unsafe.Pointer(&_zero)) + } + } + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + return sendmsgN(fd, iov, oob, ptr, salen, flags) +} + +func Send(s int, buf []byte, flags int) (err error) { + return sendto(s, buf, flags, nil, 0) +} + +func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + ptr, salen, err = to.sockaddr() + if err != nil { + return err + } + } + return sendto(fd, p, flags, ptr, salen) +} + +func SetsockoptByte(fd, level, opt int, value byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) +} + +func SetsockoptInt(fd, level, opt int, value int) (err error) { + var n = int32(value) + return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) +} + +func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) +} + +func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) +} + +func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) +} + +func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { + return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) +} + +func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) +} + +func SetsockoptString(fd, level, opt int, s string) (err error) { + var p unsafe.Pointer + if len(s) > 0 { + p = unsafe.Pointer(&[]byte(s)[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(s))) +} + +func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) +} + +func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) +} + +func Socket(domain, typ, proto int) (fd int, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return -1, EAFNOSUPPORT + } + fd, err = socket(domain, typ, proto) + return +} + +func Socketpair(domain, typ, proto int) (fd [2]int, err error) { + var fdx [2]int32 + err = socketpair(domain, typ, proto, &fdx) + if err == nil { + fd[0] = int(fdx[0]) + fd[1] = int(fdx[1]) + } + return +} + +var ioSync int64 + +func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } + +func SetNonblock(fd int, nonblocking bool) (err error) { + flag, err := fcntl(fd, F_GETFL, 0) + if err != nil { + return err + } + if nonblocking { + flag |= O_NONBLOCK + } else { + flag &= ^O_NONBLOCK + } + _, err = fcntl(fd, F_SETFL, flag) + return err +} + +// Exec calls execve(2), which replaces the calling executable in the process +// tree. argv0 should be the full path to an executable ("/bin/ls") and the +// executable name should also be the first argument in argv (["ls", "-l"]). +// envv are the environment variables that should be passed to the new +// process (["USER=go", "PWD=/tmp"]). +func Exec(argv0 string, argv []string, envv []string) error { + return syscall.Exec(argv0, argv, envv) +} + +// Lutimes sets the access and modification times tv on path. If path refers to +// a symlink, it is not dereferenced and the timestamps are set on the symlink. +// If tv is nil, the access and modification times are set to the current time. +// Otherwise tv must contain exactly 2 elements, with access time as the first +// element and modification time as the second element. +func Lutimes(path string, tv []Timeval) error { + if tv == nil { + return UtimesNanoAt(AT_FDCWD, path, nil, AT_SYMLINK_NOFOLLOW) + } + if len(tv) != 2 { + return EINVAL + } + ts := []Timespec{ + NsecToTimespec(TimevalToNsec(tv[0])), + NsecToTimespec(TimevalToNsec(tv[1])), + } + return UtimesNanoAt(AT_FDCWD, path, ts, AT_SYMLINK_NOFOLLOW) +} + +// emptyIovecs reports whether there are no bytes in the slice of Iovec. +func emptyIovecs(iov []Iovec) bool { + for i := range iov { + if iov[i].Len > 0 { + return false + } + } + return true +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc.go new file mode 100644 index 0000000000..b6919ca580 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc.go @@ -0,0 +1,16 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin || dragonfly || freebsd || (linux && !ppc64 && !ppc64le) || netbsd || openbsd || solaris) && gc +// +build darwin dragonfly freebsd linux,!ppc64,!ppc64le netbsd openbsd solaris +// +build gc + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go new file mode 100644 index 0000000000..f6f707acf2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go @@ -0,0 +1,25 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux && (ppc64le || ppc64) && gc +// +build linux +// +build ppc64le ppc64 +// +build gc + +package unix + +import "syscall" + +func Syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.Syscall(trap, a1, a2, a3) +} +func Syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.Syscall6(trap, a1, a2, a3, a4, a5, a6) +} +func RawSyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.RawSyscall(trap, a1, a2, a3) +} +func RawSyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err syscall.Errno) { + return syscall.RawSyscall6(trap, a1, a2, a3, a4, a5, a6) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go new file mode 100644 index 0000000000..b295497ae4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go @@ -0,0 +1,1994 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "bytes" + "fmt" + "runtime" + "sort" + "strings" + "sync" + "syscall" + "unsafe" +) + +const ( + O_CLOEXEC = 0 // Dummy value (not supported). + AF_LOCAL = AF_UNIX // AF_LOCAL is an alias for AF_UNIX +) + +func syscall_syscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall(trap, a1, a2, a3 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall6(trap, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall_syscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) +func syscall_rawsyscall9(trap, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err Errno) + +func copyStat(stat *Stat_t, statLE *Stat_LE_t) { + stat.Dev = uint64(statLE.Dev) + stat.Ino = uint64(statLE.Ino) + stat.Nlink = uint64(statLE.Nlink) + stat.Mode = uint32(statLE.Mode) + stat.Uid = uint32(statLE.Uid) + stat.Gid = uint32(statLE.Gid) + stat.Rdev = uint64(statLE.Rdev) + stat.Size = statLE.Size + stat.Atim.Sec = int64(statLE.Atim) + stat.Atim.Nsec = 0 //zos doesn't return nanoseconds + stat.Mtim.Sec = int64(statLE.Mtim) + stat.Mtim.Nsec = 0 //zos doesn't return nanoseconds + stat.Ctim.Sec = int64(statLE.Ctim) + stat.Ctim.Nsec = 0 //zos doesn't return nanoseconds + stat.Blksize = int64(statLE.Blksize) + stat.Blocks = statLE.Blocks +} + +func svcCall(fnptr unsafe.Pointer, argv *unsafe.Pointer, dsa *uint64) +func svcLoad(name *byte) unsafe.Pointer +func svcUnload(name *byte, fnptr unsafe.Pointer) int64 + +func (d *Dirent) NameString() string { + if d == nil { + return "" + } + s := string(d.Name[:]) + idx := strings.IndexByte(s, 0) + if idx == -1 { + return s + } else { + return s[:idx] + } +} + +func (sa *SockaddrInet4) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet4 + sa.raw.Family = AF_INET + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrInet6) sockaddr() (unsafe.Pointer, _Socklen, error) { + if sa.Port < 0 || sa.Port > 0xFFFF { + return nil, 0, EINVAL + } + sa.raw.Len = SizeofSockaddrInet6 + sa.raw.Family = AF_INET6 + p := (*[2]byte)(unsafe.Pointer(&sa.raw.Port)) + p[0] = byte(sa.Port >> 8) + p[1] = byte(sa.Port) + sa.raw.Scope_id = sa.ZoneId + sa.raw.Addr = sa.Addr + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func (sa *SockaddrUnix) sockaddr() (unsafe.Pointer, _Socklen, error) { + name := sa.Name + n := len(name) + if n >= len(sa.raw.Path) || n == 0 { + return nil, 0, EINVAL + } + sa.raw.Len = byte(3 + n) // 2 for Family, Len; 1 for NUL + sa.raw.Family = AF_UNIX + for i := 0; i < n; i++ { + sa.raw.Path[i] = int8(name[i]) + } + return unsafe.Pointer(&sa.raw), _Socklen(sa.raw.Len), nil +} + +func anyToSockaddr(_ int, rsa *RawSockaddrAny) (Sockaddr, error) { + // TODO(neeilan): Implement use of first param (fd) + switch rsa.Addr.Family { + case AF_UNIX: + pp := (*RawSockaddrUnix)(unsafe.Pointer(rsa)) + sa := new(SockaddrUnix) + // For z/OS, only replace NUL with @ when the + // length is not zero. + if pp.Len != 0 && pp.Path[0] == 0 { + // "Abstract" Unix domain socket. + // Rewrite leading NUL as @ for textual display. + // (This is the standard convention.) + // Not friendly to overwrite in place, + // but the callers below don't care. + pp.Path[0] = '@' + } + + // Assume path ends at NUL. + // + // For z/OS, the length of the name is a field + // in the structure. To be on the safe side, we + // will still scan the name for a NUL but only + // to the length provided in the structure. + // + // This is not technically the Linux semantics for + // abstract Unix domain sockets--they are supposed + // to be uninterpreted fixed-size binary blobs--but + // everyone uses this convention. + n := 0 + for n < int(pp.Len) && pp.Path[n] != 0 { + n++ + } + sa.Name = string(unsafe.Slice((*byte)(unsafe.Pointer(&pp.Path[0])), n)) + return sa, nil + + case AF_INET: + pp := (*RawSockaddrInet4)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet4) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.Addr = pp.Addr + return sa, nil + + case AF_INET6: + pp := (*RawSockaddrInet6)(unsafe.Pointer(rsa)) + sa := new(SockaddrInet6) + p := (*[2]byte)(unsafe.Pointer(&pp.Port)) + sa.Port = int(p[0])<<8 + int(p[1]) + sa.ZoneId = pp.Scope_id + sa.Addr = pp.Addr + return sa, nil + } + return nil, EAFNOSUPPORT +} + +func Accept(fd int) (nfd int, sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + nfd, err = accept(fd, &rsa, &len) + if err != nil { + return + } + // TODO(neeilan): Remove 0 in call + sa, err = anyToSockaddr(0, &rsa) + if err != nil { + Close(nfd) + nfd = 0 + } + return +} + +func (iov *Iovec) SetLen(length int) { + iov.Len = uint64(length) +} + +func (msghdr *Msghdr) SetControllen(length int) { + msghdr.Controllen = int32(length) +} + +func (cmsg *Cmsghdr) SetLen(length int) { + cmsg.Len = int32(length) +} + +//sys fcntl(fd int, cmd int, arg int) (val int, err error) +//sys read(fd int, p []byte) (n int, err error) +//sys readlen(fd int, buf *byte, nbuf int) (n int, err error) = SYS_READ +//sys write(fd int, p []byte) (n int, err error) + +//sys accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) = SYS___ACCEPT_A +//sys bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___BIND_A +//sys connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) = SYS___CONNECT_A +//sysnb getgroups(n int, list *_Gid_t) (nn int, err error) +//sysnb setgroups(n int, list *_Gid_t) (err error) +//sys getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) +//sys setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) +//sysnb socket(domain int, typ int, proto int) (fd int, err error) +//sysnb socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) +//sysnb getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETPEERNAME_A +//sysnb getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) = SYS___GETSOCKNAME_A +//sys recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) = SYS___RECVFROM_A +//sys sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) = SYS___SENDTO_A +//sys recvmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___RECVMSG_A +//sys sendmsg(s int, msg *Msghdr, flags int) (n int, err error) = SYS___SENDMSG_A +//sys mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) = SYS_MMAP +//sys munmap(addr uintptr, length uintptr) (err error) = SYS_MUNMAP +//sys ioctl(fd int, req uint, arg uintptr) (err error) = SYS_IOCTL +//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL + +//sys Access(path string, mode uint32) (err error) = SYS___ACCESS_A +//sys Chdir(path string) (err error) = SYS___CHDIR_A +//sys Chown(path string, uid int, gid int) (err error) = SYS___CHOWN_A +//sys Chmod(path string, mode uint32) (err error) = SYS___CHMOD_A +//sys Creat(path string, mode uint32) (fd int, err error) = SYS___CREAT_A +//sys Dup(oldfd int) (fd int, err error) +//sys Dup2(oldfd int, newfd int) (err error) +//sys Errno2() (er2 int) = SYS___ERRNO2 +//sys Err2ad() (eadd *int) = SYS___ERR2AD +//sys Exit(code int) +//sys Fchdir(fd int) (err error) +//sys Fchmod(fd int, mode uint32) (err error) +//sys Fchown(fd int, uid int, gid int) (err error) +//sys FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) = SYS_FCNTL +//sys fstat(fd int, stat *Stat_LE_t) (err error) + +func Fstat(fd int, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = fstat(fd, &statLE) + copyStat(stat, &statLE) + return +} + +//sys Fstatvfs(fd int, stat *Statvfs_t) (err error) = SYS_FSTATVFS +//sys Fsync(fd int) (err error) +//sys Ftruncate(fd int, length int64) (err error) +//sys Getpagesize() (pgsize int) = SYS_GETPAGESIZE +//sys Mprotect(b []byte, prot int) (err error) = SYS_MPROTECT +//sys Msync(b []byte, flags int) (err error) = SYS_MSYNC +//sys Poll(fds []PollFd, timeout int) (n int, err error) = SYS_POLL +//sys Times(tms *Tms) (ticks uintptr, err error) = SYS_TIMES +//sys W_Getmntent(buff *byte, size int) (lastsys int, err error) = SYS_W_GETMNTENT +//sys W_Getmntent_A(buff *byte, size int) (lastsys int, err error) = SYS___W_GETMNTENT_A + +//sys mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) = SYS___MOUNT_A +//sys unmount(filesystem string, mtm int) (err error) = SYS___UMOUNT_A +//sys Chroot(path string) (err error) = SYS___CHROOT_A +//sys Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) = SYS_SELECT +//sysnb Uname(buf *Utsname) (err error) = SYS___UNAME_A + +func Ptsname(fd int) (name string, err error) { + r0, _, e1 := syscall_syscall(SYS___PTSNAME_A, uintptr(fd), 0, 0) + name = u2s(unsafe.Pointer(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func u2s(cstr unsafe.Pointer) string { + str := (*[1024]uint8)(cstr) + i := 0 + for str[i] != 0 { + i++ + } + return string(str[:i]) +} + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + for i := 0; e1 == EAGAIN && i < 10; i++ { + _, _, _ = syscall_syscall(SYS_USLEEP, uintptr(10), 0, 0) + _, _, e1 = syscall_syscall(SYS_CLOSE, uintptr(fd), 0, 0) + } + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var mapper = &mmapper{ + active: make(map[*byte][]byte), + mmap: mmap, + munmap: munmap, +} + +// Dummy function: there are no semantics for Madvise on z/OS +func Madvise(b []byte, advice int) (err error) { + return +} + +func Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + return mapper.Mmap(fd, offset, length, prot, flags) +} + +func Munmap(b []byte) (err error) { + return mapper.Munmap(b) +} + +//sys Gethostname(buf []byte) (err error) = SYS___GETHOSTNAME_A +//sysnb Getegid() (egid int) +//sysnb Geteuid() (uid int) +//sysnb Getgid() (gid int) +//sysnb Getpid() (pid int) +//sysnb Getpgid(pid int) (pgid int, err error) = SYS_GETPGID + +func Getpgrp() (pid int) { + pid, _ = Getpgid(0) + return +} + +//sysnb Getppid() (pid int) +//sys Getpriority(which int, who int) (prio int, err error) +//sysnb Getrlimit(resource int, rlim *Rlimit) (err error) = SYS_GETRLIMIT + +//sysnb getrusage(who int, rusage *rusage_zos) (err error) = SYS_GETRUSAGE + +func Getrusage(who int, rusage *Rusage) (err error) { + var ruz rusage_zos + err = getrusage(who, &ruz) + //Only the first two fields of Rusage are set + rusage.Utime.Sec = ruz.Utime.Sec + rusage.Utime.Usec = int64(ruz.Utime.Usec) + rusage.Stime.Sec = ruz.Stime.Sec + rusage.Stime.Usec = int64(ruz.Stime.Usec) + return +} + +//sysnb Getsid(pid int) (sid int, err error) = SYS_GETSID +//sysnb Getuid() (uid int) +//sysnb Kill(pid int, sig Signal) (err error) +//sys Lchown(path string, uid int, gid int) (err error) = SYS___LCHOWN_A +//sys Link(path string, link string) (err error) = SYS___LINK_A +//sys Listen(s int, n int) (err error) +//sys lstat(path string, stat *Stat_LE_t) (err error) = SYS___LSTAT_A + +func Lstat(path string, stat *Stat_t) (err error) { + var statLE Stat_LE_t + err = lstat(path, &statLE) + copyStat(stat, &statLE) + return +} + +//sys Mkdir(path string, mode uint32) (err error) = SYS___MKDIR_A +//sys Mkfifo(path string, mode uint32) (err error) = SYS___MKFIFO_A +//sys Mknod(path string, mode uint32, dev int) (err error) = SYS___MKNOD_A +//sys Pread(fd int, p []byte, offset int64) (n int, err error) +//sys Pwrite(fd int, p []byte, offset int64) (n int, err error) +//sys Readlink(path string, buf []byte) (n int, err error) = SYS___READLINK_A +//sys Rename(from string, to string) (err error) = SYS___RENAME_A +//sys Rmdir(path string) (err error) = SYS___RMDIR_A +//sys Seek(fd int, offset int64, whence int) (off int64, err error) = SYS_LSEEK +//sys Setpriority(which int, who int, prio int) (err error) +//sysnb Setpgid(pid int, pgid int) (err error) = SYS_SETPGID +//sysnb Setrlimit(resource int, lim *Rlimit) (err error) +//sysnb Setregid(rgid int, egid int) (err error) = SYS_SETREGID +//sysnb Setreuid(ruid int, euid int) (err error) = SYS_SETREUID +//sysnb Setsid() (pid int, err error) = SYS_SETSID +//sys Setuid(uid int) (err error) = SYS_SETUID +//sys Setgid(uid int) (err error) = SYS_SETGID +//sys Shutdown(fd int, how int) (err error) +//sys stat(path string, statLE *Stat_LE_t) (err error) = SYS___STAT_A + +func Stat(path string, sta *Stat_t) (err error) { + var statLE Stat_LE_t + err = stat(path, &statLE) + copyStat(sta, &statLE) + return +} + +//sys Symlink(path string, link string) (err error) = SYS___SYMLINK_A +//sys Sync() = SYS_SYNC +//sys Truncate(path string, length int64) (err error) = SYS___TRUNCATE_A +//sys Tcgetattr(fildes int, termptr *Termios) (err error) = SYS_TCGETATTR +//sys Tcsetattr(fildes int, when int, termptr *Termios) (err error) = SYS_TCSETATTR +//sys Umask(mask int) (oldmask int) +//sys Unlink(path string) (err error) = SYS___UNLINK_A +//sys Utime(path string, utim *Utimbuf) (err error) = SYS___UTIME_A + +//sys open(path string, mode int, perm uint32) (fd int, err error) = SYS___OPEN_A + +func Open(path string, mode int, perm uint32) (fd int, err error) { + return open(path, mode, perm) +} + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + wd, err := Getwd() + if err != nil { + return err + } + + if err := Fchdir(dirfd); err != nil { + return err + } + defer Chdir(wd) + + return Mkfifo(path, mode) +} + +//sys remove(path string) (err error) + +func Remove(path string) error { + return remove(path) +} + +const ImplementsGetwd = true + +func Getcwd(buf []byte) (n int, err error) { + var p unsafe.Pointer + if len(buf) > 0 { + p = unsafe.Pointer(&buf[0]) + } else { + p = unsafe.Pointer(&_zero) + } + _, _, e := syscall_syscall(SYS___GETCWD_A, uintptr(p), uintptr(len(buf)), 0) + n = clen(buf) + 1 + if e != 0 { + err = errnoErr(e) + } + return +} + +func Getwd() (wd string, err error) { + var buf [PathMax]byte + n, err := Getcwd(buf[0:]) + if err != nil { + return "", err + } + // Getcwd returns the number of bytes written to buf, including the NUL. + if n < 1 || n > len(buf) || buf[n-1] != 0 { + return "", EINVAL + } + return string(buf[0 : n-1]), nil +} + +func Getgroups() (gids []int, err error) { + n, err := getgroups(0, nil) + if err != nil { + return nil, err + } + if n == 0 { + return nil, nil + } + + // Sanity check group count. Max is 1<<16 on Linux. + if n < 0 || n > 1<<20 { + return nil, EINVAL + } + + a := make([]_Gid_t, n) + n, err = getgroups(n, &a[0]) + if err != nil { + return nil, err + } + gids = make([]int, n) + for i, v := range a[0:n] { + gids[i] = int(v) + } + return +} + +func Setgroups(gids []int) (err error) { + if len(gids) == 0 { + return setgroups(0, nil) + } + + a := make([]_Gid_t, len(gids)) + for i, v := range gids { + a[i] = _Gid_t(v) + } + return setgroups(len(a), &a[0]) +} + +func gettid() uint64 + +func Gettid() (tid int) { + return int(gettid()) +} + +type WaitStatus uint32 + +// Wait status is 7 bits at bottom, either 0 (exited), +// 0x7F (stopped), or a signal number that caused an exit. +// The 0x80 bit is whether there was a core dump. +// An extra number (exit code, signal causing a stop) +// is in the high bits. At least that's the idea. +// There are various irregularities. For example, the +// "continued" status is 0xFFFF, distinguishing itself +// from stopped via the core dump bit. + +const ( + mask = 0x7F + core = 0x80 + exited = 0x00 + stopped = 0x7F + shift = 8 +) + +func (w WaitStatus) Exited() bool { return w&mask == exited } + +func (w WaitStatus) Signaled() bool { return w&mask != stopped && w&mask != exited } + +func (w WaitStatus) Stopped() bool { return w&0xFF == stopped } + +func (w WaitStatus) Continued() bool { return w == 0xFFFF } + +func (w WaitStatus) CoreDump() bool { return w.Signaled() && w&core != 0 } + +func (w WaitStatus) ExitStatus() int { + if !w.Exited() { + return -1 + } + return int(w>>shift) & 0xFF +} + +func (w WaitStatus) Signal() Signal { + if !w.Signaled() { + return -1 + } + return Signal(w & mask) +} + +func (w WaitStatus) StopSignal() Signal { + if !w.Stopped() { + return -1 + } + return Signal(w>>shift) & 0xFF +} + +func (w WaitStatus) TrapCause() int { return -1 } + +//sys waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) + +func Wait4(pid int, wstatus *WaitStatus, options int, rusage *Rusage) (wpid int, err error) { + // TODO(mundaym): z/OS doesn't have wait4. I don't think getrusage does what we want. + // At the moment rusage will not be touched. + var status _C_int + wpid, err = waitpid(pid, &status, options) + if wstatus != nil { + *wstatus = WaitStatus(status) + } + return +} + +//sysnb gettimeofday(tv *timeval_zos) (err error) + +func Gettimeofday(tv *Timeval) (err error) { + var tvz timeval_zos + err = gettimeofday(&tvz) + tv.Sec = tvz.Sec + tv.Usec = int64(tvz.Usec) + return +} + +func Time(t *Time_t) (tt Time_t, err error) { + var tv Timeval + err = Gettimeofday(&tv) + if err != nil { + return 0, err + } + if t != nil { + *t = Time_t(tv.Sec) + } + return Time_t(tv.Sec), nil +} + +func setTimespec(sec, nsec int64) Timespec { + return Timespec{Sec: sec, Nsec: nsec} +} + +func setTimeval(sec, usec int64) Timeval { //fix + return Timeval{Sec: sec, Usec: usec} +} + +//sysnb pipe(p *[2]_C_int) (err error) + +func Pipe(p []int) (err error) { + if len(p) != 2 { + return EINVAL + } + var pp [2]_C_int + err = pipe(&pp) + if err == nil { + p[0] = int(pp[0]) + p[1] = int(pp[1]) + } + return +} + +//sys utimes(path string, timeval *[2]Timeval) (err error) = SYS___UTIMES_A + +func Utimes(path string, tv []Timeval) (err error) { + if len(tv) != 2 { + return EINVAL + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func UtimesNano(path string, ts []Timespec) error { + if len(ts) != 2 { + return EINVAL + } + // Not as efficient as it could be because Timespec and + // Timeval have different types in the different OSes + tv := [2]Timeval{ + NsecToTimeval(TimespecToNsec(ts[0])), + NsecToTimeval(TimespecToNsec(ts[1])), + } + return utimes(path, (*[2]Timeval)(unsafe.Pointer(&tv[0]))) +} + +func Getsockname(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getsockname(fd, &rsa, &len); err != nil { + return + } + // TODO(neeilan) : Remove this 0 ( added to get sys/unix compiling on z/OS ) + return anyToSockaddr(0, &rsa) +} + +const ( + // identifier constants + nwmHeaderIdentifier = 0xd5e6d4c8 + nwmFilterIdentifier = 0xd5e6d4c6 + nwmTCPConnIdentifier = 0xd5e6d4c3 + nwmRecHeaderIdentifier = 0xd5e6d4d9 + nwmIPStatsIdentifier = 0xd5e6d4c9d7e2e340 + nwmIPGStatsIdentifier = 0xd5e6d4c9d7c7e2e3 + nwmTCPStatsIdentifier = 0xd5e6d4e3c3d7e2e3 + nwmUDPStatsIdentifier = 0xd5e6d4e4c4d7e2e3 + nwmICMPGStatsEntry = 0xd5e6d4c9c3d4d7c7 + nwmICMPTStatsEntry = 0xd5e6d4c9c3d4d7e3 + + // nwmHeader constants + nwmVersion1 = 1 + nwmVersion2 = 2 + nwmCurrentVer = 2 + + nwmTCPConnType = 1 + nwmGlobalStatsType = 14 + + // nwmFilter constants + nwmFilterLclAddrMask = 0x20000000 // Local address + nwmFilterSrcAddrMask = 0x20000000 // Source address + nwmFilterLclPortMask = 0x10000000 // Local port + nwmFilterSrcPortMask = 0x10000000 // Source port + + // nwmConnEntry constants + nwmTCPStateClosed = 1 + nwmTCPStateListen = 2 + nwmTCPStateSynSent = 3 + nwmTCPStateSynRcvd = 4 + nwmTCPStateEstab = 5 + nwmTCPStateFinWait1 = 6 + nwmTCPStateFinWait2 = 7 + nwmTCPStateClosWait = 8 + nwmTCPStateLastAck = 9 + nwmTCPStateClosing = 10 + nwmTCPStateTimeWait = 11 + nwmTCPStateDeletTCB = 12 + + // Existing constants on linux + BPF_TCP_CLOSE = 1 + BPF_TCP_LISTEN = 2 + BPF_TCP_SYN_SENT = 3 + BPF_TCP_SYN_RECV = 4 + BPF_TCP_ESTABLISHED = 5 + BPF_TCP_FIN_WAIT1 = 6 + BPF_TCP_FIN_WAIT2 = 7 + BPF_TCP_CLOSE_WAIT = 8 + BPF_TCP_LAST_ACK = 9 + BPF_TCP_CLOSING = 10 + BPF_TCP_TIME_WAIT = 11 + BPF_TCP_NEW_SYN_RECV = -1 + BPF_TCP_MAX_STATES = -2 +) + +type nwmTriplet struct { + offset uint32 + length uint32 + number uint32 +} + +type nwmQuadruplet struct { + offset uint32 + length uint32 + number uint32 + match uint32 +} + +type nwmHeader struct { + ident uint32 + length uint32 + version uint16 + nwmType uint16 + bytesNeeded uint32 + options uint32 + _ [16]byte + inputDesc nwmTriplet + outputDesc nwmQuadruplet +} + +type nwmFilter struct { + ident uint32 + flags uint32 + resourceName [8]byte + resourceId uint32 + listenerId uint32 + local [28]byte // union of sockaddr4 and sockaddr6 + remote [28]byte // union of sockaddr4 and sockaddr6 + _ uint16 + _ uint16 + asid uint16 + _ [2]byte + tnLuName [8]byte + tnMonGrp uint32 + tnAppl [8]byte + applData [40]byte + nInterface [16]byte + dVipa [16]byte + dVipaPfx uint16 + dVipaPort uint16 + dVipaFamily byte + _ [3]byte + destXCF [16]byte + destXCFPfx uint16 + destXCFFamily byte + _ [1]byte + targIP [16]byte + targIPPfx uint16 + targIPFamily byte + _ [1]byte + _ [20]byte +} + +type nwmRecHeader struct { + ident uint32 + length uint32 + number byte + _ [3]byte +} + +type nwmTCPStatsEntry struct { + ident uint64 + currEstab uint32 + activeOpened uint32 + passiveOpened uint32 + connClosed uint32 + estabResets uint32 + attemptFails uint32 + passiveDrops uint32 + timeWaitReused uint32 + inSegs uint64 + predictAck uint32 + predictData uint32 + inDupAck uint32 + inBadSum uint32 + inBadLen uint32 + inShort uint32 + inDiscOldTime uint32 + inAllBeforeWin uint32 + inSomeBeforeWin uint32 + inAllAfterWin uint32 + inSomeAfterWin uint32 + inOutOfOrder uint32 + inAfterClose uint32 + inWinProbes uint32 + inWinUpdates uint32 + outWinUpdates uint32 + outSegs uint64 + outDelayAcks uint32 + outRsts uint32 + retransSegs uint32 + retransTimeouts uint32 + retransDrops uint32 + pmtuRetrans uint32 + pmtuErrors uint32 + outWinProbes uint32 + probeDrops uint32 + keepAliveProbes uint32 + keepAliveDrops uint32 + finwait2Drops uint32 + acceptCount uint64 + inBulkQSegs uint64 + inDiscards uint64 + connFloods uint32 + connStalls uint32 + cfgEphemDef uint16 + ephemInUse uint16 + ephemHiWater uint16 + flags byte + _ [1]byte + ephemExhaust uint32 + smcRCurrEstabLnks uint32 + smcRLnkActTimeOut uint32 + smcRActLnkOpened uint32 + smcRPasLnkOpened uint32 + smcRLnksClosed uint32 + smcRCurrEstab uint32 + smcRActiveOpened uint32 + smcRPassiveOpened uint32 + smcRConnClosed uint32 + smcRInSegs uint64 + smcROutSegs uint64 + smcRInRsts uint32 + smcROutRsts uint32 + smcDCurrEstabLnks uint32 + smcDActLnkOpened uint32 + smcDPasLnkOpened uint32 + smcDLnksClosed uint32 + smcDCurrEstab uint32 + smcDActiveOpened uint32 + smcDPassiveOpened uint32 + smcDConnClosed uint32 + smcDInSegs uint64 + smcDOutSegs uint64 + smcDInRsts uint32 + smcDOutRsts uint32 +} + +type nwmConnEntry struct { + ident uint32 + local [28]byte // union of sockaddr4 and sockaddr6 + remote [28]byte // union of sockaddr4 and sockaddr6 + startTime [8]byte // uint64, changed to prevent padding from being inserted + lastActivity [8]byte // uint64 + bytesIn [8]byte // uint64 + bytesOut [8]byte // uint64 + inSegs [8]byte // uint64 + outSegs [8]byte // uint64 + state uint16 + activeOpen byte + flag01 byte + outBuffered uint32 + inBuffered uint32 + maxSndWnd uint32 + reXmtCount uint32 + congestionWnd uint32 + ssThresh uint32 + roundTripTime uint32 + roundTripVar uint32 + sendMSS uint32 + sndWnd uint32 + rcvBufSize uint32 + sndBufSize uint32 + outOfOrderCount uint32 + lcl0WindowCount uint32 + rmt0WindowCount uint32 + dupacks uint32 + flag02 byte + sockOpt6Cont byte + asid uint16 + resourceName [8]byte + resourceId uint32 + subtask uint32 + sockOpt byte + sockOpt6 byte + clusterConnFlag byte + proto byte + targetAppl [8]byte + luName [8]byte + clientUserId [8]byte + logMode [8]byte + timeStamp uint32 + timeStampAge uint32 + serverResourceId uint32 + intfName [16]byte + ttlsStatPol byte + ttlsStatConn byte + ttlsSSLProt uint16 + ttlsNegCiph [2]byte + ttlsSecType byte + ttlsFIPS140Mode byte + ttlsUserID [8]byte + applData [40]byte + inOldestTime [8]byte // uint64 + outOldestTime [8]byte // uint64 + tcpTrustedPartner byte + _ [3]byte + bulkDataIntfName [16]byte + ttlsNegCiph4 [4]byte + smcReason uint32 + lclSMCLinkId uint32 + rmtSMCLinkId uint32 + smcStatus byte + smcFlags byte + _ [2]byte + rcvWnd uint32 + lclSMCBufSz uint32 + rmtSMCBufSz uint32 + ttlsSessID [32]byte + ttlsSessIDLen int16 + _ [1]byte + smcDStatus byte + smcDReason uint32 +} + +var svcNameTable [][]byte = [][]byte{ + []byte("\xc5\xe9\xc2\xd5\xd4\xc9\xc6\xf4"), // svc_EZBNMIF4 +} + +const ( + svc_EZBNMIF4 = 0 +) + +func GetsockoptTCPInfo(fd, level, opt int) (*TCPInfo, error) { + jobname := []byte("\x5c\x40\x40\x40\x40\x40\x40\x40") // "*" + responseBuffer := [4096]byte{0} + var bufferAlet, reasonCode uint32 = 0, 0 + var bufferLen, returnValue, returnCode int32 = 4096, 0, 0 + + dsa := [18]uint64{0} + var argv [7]unsafe.Pointer + argv[0] = unsafe.Pointer(&jobname[0]) + argv[1] = unsafe.Pointer(&responseBuffer[0]) + argv[2] = unsafe.Pointer(&bufferAlet) + argv[3] = unsafe.Pointer(&bufferLen) + argv[4] = unsafe.Pointer(&returnValue) + argv[5] = unsafe.Pointer(&returnCode) + argv[6] = unsafe.Pointer(&reasonCode) + + request := (*struct { + header nwmHeader + filter nwmFilter + })(unsafe.Pointer(&responseBuffer[0])) + + EZBNMIF4 := svcLoad(&svcNameTable[svc_EZBNMIF4][0]) + if EZBNMIF4 == nil { + return nil, errnoErr(EINVAL) + } + + // GetGlobalStats EZBNMIF4 call + request.header.ident = nwmHeaderIdentifier + request.header.length = uint32(unsafe.Sizeof(request.header)) + request.header.version = nwmCurrentVer + request.header.nwmType = nwmGlobalStatsType + request.header.options = 0x80000000 + + svcCall(EZBNMIF4, &argv[0], &dsa[0]) + + // outputDesc field is filled by EZBNMIF4 on success + if returnCode != 0 || request.header.outputDesc.offset == 0 { + return nil, errnoErr(EINVAL) + } + + // Check that EZBNMIF4 returned a nwmRecHeader + recHeader := (*nwmRecHeader)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) + if recHeader.ident != nwmRecHeaderIdentifier { + return nil, errnoErr(EINVAL) + } + + // Parse nwmTriplets to get offsets of returned entries + var sections []*uint64 + var sectionDesc *nwmTriplet = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[0])) + for i := uint32(0); i < uint32(recHeader.number); i++ { + offset := request.header.outputDesc.offset + uint32(unsafe.Sizeof(*recHeader)) + i*uint32(unsafe.Sizeof(*sectionDesc)) + sectionDesc = (*nwmTriplet)(unsafe.Pointer(&responseBuffer[offset])) + for j := uint32(0); j < sectionDesc.number; j++ { + offset = request.header.outputDesc.offset + sectionDesc.offset + j*sectionDesc.length + sections = append(sections, (*uint64)(unsafe.Pointer(&responseBuffer[offset]))) + } + } + + // Find nwmTCPStatsEntry in returned entries + var tcpStats *nwmTCPStatsEntry = nil + for _, ptr := range sections { + switch *ptr { + case nwmTCPStatsIdentifier: + if tcpStats != nil { + return nil, errnoErr(EINVAL) + } + tcpStats = (*nwmTCPStatsEntry)(unsafe.Pointer(ptr)) + case nwmIPStatsIdentifier: + case nwmIPGStatsIdentifier: + case nwmUDPStatsIdentifier: + case nwmICMPGStatsEntry: + case nwmICMPTStatsEntry: + default: + return nil, errnoErr(EINVAL) + } + } + if tcpStats == nil { + return nil, errnoErr(EINVAL) + } + + // GetConnectionDetail EZBNMIF4 call + responseBuffer = [4096]byte{0} + dsa = [18]uint64{0} + bufferAlet, reasonCode = 0, 0 + bufferLen, returnValue, returnCode = 4096, 0, 0 + nameptr := (*uint32)(unsafe.Pointer(uintptr(0x21c))) // Get jobname of current process + nameptr = (*uint32)(unsafe.Pointer(uintptr(*nameptr + 12))) + argv[0] = unsafe.Pointer(uintptr(*nameptr)) + + request.header.ident = nwmHeaderIdentifier + request.header.length = uint32(unsafe.Sizeof(request.header)) + request.header.version = nwmCurrentVer + request.header.nwmType = nwmTCPConnType + request.header.options = 0x80000000 + + request.filter.ident = nwmFilterIdentifier + + var localSockaddr RawSockaddrAny + socklen := _Socklen(SizeofSockaddrAny) + err := getsockname(fd, &localSockaddr, &socklen) + if err != nil { + return nil, errnoErr(EINVAL) + } + if localSockaddr.Addr.Family == AF_INET { + localSockaddr := (*RawSockaddrInet4)(unsafe.Pointer(&localSockaddr.Addr)) + localSockFilter := (*RawSockaddrInet4)(unsafe.Pointer(&request.filter.local[0])) + localSockFilter.Family = AF_INET + var i int + for i = 0; i < 4; i++ { + if localSockaddr.Addr[i] != 0 { + break + } + } + if i != 4 { + request.filter.flags |= nwmFilterLclAddrMask + for i = 0; i < 4; i++ { + localSockFilter.Addr[i] = localSockaddr.Addr[i] + } + } + if localSockaddr.Port != 0 { + request.filter.flags |= nwmFilterLclPortMask + localSockFilter.Port = localSockaddr.Port + } + } else if localSockaddr.Addr.Family == AF_INET6 { + localSockaddr := (*RawSockaddrInet6)(unsafe.Pointer(&localSockaddr.Addr)) + localSockFilter := (*RawSockaddrInet6)(unsafe.Pointer(&request.filter.local[0])) + localSockFilter.Family = AF_INET6 + var i int + for i = 0; i < 16; i++ { + if localSockaddr.Addr[i] != 0 { + break + } + } + if i != 16 { + request.filter.flags |= nwmFilterLclAddrMask + for i = 0; i < 16; i++ { + localSockFilter.Addr[i] = localSockaddr.Addr[i] + } + } + if localSockaddr.Port != 0 { + request.filter.flags |= nwmFilterLclPortMask + localSockFilter.Port = localSockaddr.Port + } + } + + svcCall(EZBNMIF4, &argv[0], &dsa[0]) + + // outputDesc field is filled by EZBNMIF4 on success + if returnCode != 0 || request.header.outputDesc.offset == 0 { + return nil, errnoErr(EINVAL) + } + + // Check that EZBNMIF4 returned a nwmConnEntry + conn := (*nwmConnEntry)(unsafe.Pointer(&responseBuffer[request.header.outputDesc.offset])) + if conn.ident != nwmTCPConnIdentifier { + return nil, errnoErr(EINVAL) + } + + // Copy data from the returned data structures into tcpInfo + // Stats from nwmConnEntry are specific to that connection. + // Stats from nwmTCPStatsEntry are global (to the interface?) + // Fields may not be an exact match. Some fields have no equivalent. + var tcpinfo TCPInfo + tcpinfo.State = uint8(conn.state) + tcpinfo.Ca_state = 0 // dummy + tcpinfo.Retransmits = uint8(tcpStats.retransSegs) + tcpinfo.Probes = uint8(tcpStats.outWinProbes) + tcpinfo.Backoff = 0 // dummy + tcpinfo.Options = 0 // dummy + tcpinfo.Rto = tcpStats.retransTimeouts + tcpinfo.Ato = tcpStats.outDelayAcks + tcpinfo.Snd_mss = conn.sendMSS + tcpinfo.Rcv_mss = conn.sendMSS // dummy + tcpinfo.Unacked = 0 // dummy + tcpinfo.Sacked = 0 // dummy + tcpinfo.Lost = 0 // dummy + tcpinfo.Retrans = conn.reXmtCount + tcpinfo.Fackets = 0 // dummy + tcpinfo.Last_data_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.lastActivity[0]))) + tcpinfo.Last_ack_sent = uint32(*(*uint64)(unsafe.Pointer(&conn.outOldestTime[0]))) + tcpinfo.Last_data_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) + tcpinfo.Last_ack_recv = uint32(*(*uint64)(unsafe.Pointer(&conn.inOldestTime[0]))) + tcpinfo.Pmtu = conn.sendMSS // dummy, NWMIfRouteMtu is a candidate + tcpinfo.Rcv_ssthresh = conn.ssThresh + tcpinfo.Rtt = conn.roundTripTime + tcpinfo.Rttvar = conn.roundTripVar + tcpinfo.Snd_ssthresh = conn.ssThresh // dummy + tcpinfo.Snd_cwnd = conn.congestionWnd + tcpinfo.Advmss = conn.sendMSS // dummy + tcpinfo.Reordering = 0 // dummy + tcpinfo.Rcv_rtt = conn.roundTripTime // dummy + tcpinfo.Rcv_space = conn.sendMSS // dummy + tcpinfo.Total_retrans = conn.reXmtCount + + svcUnload(&svcNameTable[svc_EZBNMIF4][0], EZBNMIF4) + + return &tcpinfo, nil +} + +// GetsockoptString returns the string value of the socket option opt for the +// socket associated with fd at the given socket level. +func GetsockoptString(fd, level, opt int) (string, error) { + buf := make([]byte, 256) + vallen := _Socklen(len(buf)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&buf[0]), &vallen) + if err != nil { + return "", err + } + + return string(buf[:vallen-1]), nil +} + +func Recvmsg(fd int, p, oob []byte, flags int) (n, oobn int, recvflags int, from Sockaddr, err error) { + var msg Msghdr + var rsa RawSockaddrAny + msg.Name = (*byte)(unsafe.Pointer(&rsa)) + msg.Namelen = SizeofSockaddrAny + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // receive at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = recvmsg(fd, &msg, flags); err != nil { + return + } + oobn = int(msg.Controllen) + recvflags = int(msg.Flags) + // source address is only specified if the socket is unconnected + if rsa.Addr.Family != AF_UNSPEC { + // TODO(neeilan): Remove 0 arg added to get this compiling on z/OS + from, err = anyToSockaddr(0, &rsa) + } + return +} + +func Sendmsg(fd int, p, oob []byte, to Sockaddr, flags int) (err error) { + _, err = SendmsgN(fd, p, oob, to, flags) + return +} + +func SendmsgN(fd int, p, oob []byte, to Sockaddr, flags int) (n int, err error) { + var ptr unsafe.Pointer + var salen _Socklen + if to != nil { + var err error + ptr, salen, err = to.sockaddr() + if err != nil { + return 0, err + } + } + var msg Msghdr + msg.Name = (*byte)(unsafe.Pointer(ptr)) + msg.Namelen = int32(salen) + var iov Iovec + if len(p) > 0 { + iov.Base = (*byte)(unsafe.Pointer(&p[0])) + iov.SetLen(len(p)) + } + var dummy byte + if len(oob) > 0 { + // send at least one normal byte + if len(p) == 0 { + iov.Base = &dummy + iov.SetLen(1) + } + msg.Control = (*byte)(unsafe.Pointer(&oob[0])) + msg.SetControllen(len(oob)) + } + msg.Iov = &iov + msg.Iovlen = 1 + if n, err = sendmsg(fd, &msg, flags); err != nil { + return 0, err + } + if len(oob) > 0 && len(p) == 0 { + n = 0 + } + return n, nil +} + +func Opendir(name string) (uintptr, error) { + p, err := BytePtrFromString(name) + if err != nil { + return 0, err + } + dir, _, e := syscall_syscall(SYS___OPENDIR_A, uintptr(unsafe.Pointer(p)), 0, 0) + runtime.KeepAlive(unsafe.Pointer(p)) + if e != 0 { + err = errnoErr(e) + } + return dir, err +} + +// clearsyscall.Errno resets the errno value to 0. +func clearErrno() + +func Readdir(dir uintptr) (*Dirent, error) { + var ent Dirent + var res uintptr + // __readdir_r_a returns errno at the end of the directory stream, rather than 0. + // Therefore to avoid false positives we clear errno before calling it. + + // TODO(neeilan): Commented this out to get sys/unix compiling on z/OS. Uncomment and fix. Error: "undefined: clearsyscall" + //clearsyscall.Errno() // TODO(mundaym): check pre-emption rules. + + e, _, _ := syscall_syscall(SYS___READDIR_R_A, dir, uintptr(unsafe.Pointer(&ent)), uintptr(unsafe.Pointer(&res))) + var err error + if e != 0 { + err = errnoErr(Errno(e)) + } + if res == 0 { + return nil, err + } + return &ent, err +} + +func readdir_r(dirp uintptr, entry *direntLE, result **direntLE) (err error) { + r0, _, e1 := syscall_syscall(SYS___READDIR_R_A, dirp, uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + if int64(r0) == -1 { + err = errnoErr(Errno(e1)) + } + return +} + +func Closedir(dir uintptr) error { + _, _, e := syscall_syscall(SYS_CLOSEDIR, dir, 0, 0) + if e != 0 { + return errnoErr(e) + } + return nil +} + +func Seekdir(dir uintptr, pos int) { + _, _, _ = syscall_syscall(SYS_SEEKDIR, dir, uintptr(pos), 0) +} + +func Telldir(dir uintptr) (int, error) { + p, _, e := syscall_syscall(SYS_TELLDIR, dir, 0, 0) + pos := int(p) + if pos == -1 { + return pos, errnoErr(e) + } + return pos, nil +} + +// FcntlFlock performs a fcntl syscall for the F_GETLK, F_SETLK or F_SETLKW command. +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) error { + // struct flock is packed on z/OS. We can't emulate that in Go so + // instead we pack it here. + var flock [24]byte + *(*int16)(unsafe.Pointer(&flock[0])) = lk.Type + *(*int16)(unsafe.Pointer(&flock[2])) = lk.Whence + *(*int64)(unsafe.Pointer(&flock[4])) = lk.Start + *(*int64)(unsafe.Pointer(&flock[12])) = lk.Len + *(*int32)(unsafe.Pointer(&flock[20])) = lk.Pid + _, _, errno := syscall_syscall(SYS_FCNTL, fd, uintptr(cmd), uintptr(unsafe.Pointer(&flock))) + lk.Type = *(*int16)(unsafe.Pointer(&flock[0])) + lk.Whence = *(*int16)(unsafe.Pointer(&flock[2])) + lk.Start = *(*int64)(unsafe.Pointer(&flock[4])) + lk.Len = *(*int64)(unsafe.Pointer(&flock[12])) + lk.Pid = *(*int32)(unsafe.Pointer(&flock[20])) + if errno == 0 { + return nil + } + return errno +} + +func Flock(fd int, how int) error { + + var flock_type int16 + var fcntl_cmd int + + switch how { + case LOCK_SH | LOCK_NB: + flock_type = F_RDLCK + fcntl_cmd = F_SETLK + case LOCK_EX | LOCK_NB: + flock_type = F_WRLCK + fcntl_cmd = F_SETLK + case LOCK_EX: + flock_type = F_WRLCK + fcntl_cmd = F_SETLKW + case LOCK_UN: + flock_type = F_UNLCK + fcntl_cmd = F_SETLKW + default: + } + + flock := Flock_t{ + Type: int16(flock_type), + Whence: int16(0), + Start: int64(0), + Len: int64(0), + Pid: int32(Getppid()), + } + + err := FcntlFlock(uintptr(fd), fcntl_cmd, &flock) + return err +} + +func Mlock(b []byte) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Mlock2(b []byte, flags int) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_NONSWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Munlock(b []byte) (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(SYS___MLOCKALL, _BPX_SWAP, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ClockGettime(clockid int32, ts *Timespec) error { + + var ticks_per_sec uint32 = 100 //TODO(kenan): value is currently hardcoded; need sysconf() call otherwise + var nsec_per_sec int64 = 1000000000 + + if ts == nil { + return EFAULT + } + if clockid == CLOCK_REALTIME || clockid == CLOCK_MONOTONIC { + var nanotime int64 = runtime.Nanotime1() + ts.Sec = nanotime / nsec_per_sec + ts.Nsec = nanotime % nsec_per_sec + } else if clockid == CLOCK_PROCESS_CPUTIME_ID || clockid == CLOCK_THREAD_CPUTIME_ID { + var tm Tms + _, err := Times(&tm) + if err != nil { + return EFAULT + } + ts.Sec = int64(tm.Utime / ticks_per_sec) + ts.Nsec = int64(tm.Utime) * nsec_per_sec / int64(ticks_per_sec) + } else { + return EINVAL + } + return nil +} + +func Statfs(path string, stat *Statfs_t) (err error) { + fd, err := open(path, O_RDONLY, 0) + defer Close(fd) + if err != nil { + return err + } + return Fstatfs(fd, stat) +} + +var ( + Stdin = 0 + Stdout = 1 + Stderr = 2 +) + +// Do the interface allocations only once for common +// Errno values. +var ( + errEAGAIN error = syscall.EAGAIN + errEINVAL error = syscall.EINVAL + errENOENT error = syscall.ENOENT +) + +var ( + signalNameMapOnce sync.Once + signalNameMap map[string]syscall.Signal +) + +// errnoErr returns common boxed Errno values, to prevent +// allocations at runtime. +func errnoErr(e Errno) error { + switch e { + case 0: + return nil + case EAGAIN: + return errEAGAIN + case EINVAL: + return errEINVAL + case ENOENT: + return errENOENT + } + return e +} + +// ErrnoName returns the error name for error number e. +func ErrnoName(e Errno) string { + i := sort.Search(len(errorList), func(i int) bool { + return errorList[i].num >= e + }) + if i < len(errorList) && errorList[i].num == e { + return errorList[i].name + } + return "" +} + +// SignalName returns the signal name for signal number s. +func SignalName(s syscall.Signal) string { + i := sort.Search(len(signalList), func(i int) bool { + return signalList[i].num >= s + }) + if i < len(signalList) && signalList[i].num == s { + return signalList[i].name + } + return "" +} + +// SignalNum returns the syscall.Signal for signal named s, +// or 0 if a signal with such name is not found. +// The signal name should start with "SIG". +func SignalNum(s string) syscall.Signal { + signalNameMapOnce.Do(func() { + signalNameMap = make(map[string]syscall.Signal, len(signalList)) + for _, signal := range signalList { + signalNameMap[signal.name] = signal.num + } + }) + return signalNameMap[s] +} + +// clen returns the index of the first NULL byte in n or len(n) if n contains no NULL byte. +func clen(n []byte) int { + i := bytes.IndexByte(n, 0) + if i == -1 { + i = len(n) + } + return i +} + +// Mmap manager, for use by operating system-specific implementations. + +type mmapper struct { + sync.Mutex + active map[*byte][]byte // active mappings; key is last byte in mapping + mmap func(addr, length uintptr, prot, flags, fd int, offset int64) (uintptr, error) + munmap func(addr uintptr, length uintptr) error +} + +func (m *mmapper) Mmap(fd int, offset int64, length int, prot int, flags int) (data []byte, err error) { + if length <= 0 { + return nil, EINVAL + } + + // Map the requested memory. + addr, errno := m.mmap(0, uintptr(length), prot, flags, fd, offset) + if errno != nil { + return nil, errno + } + + // Slice memory layout + var sl = struct { + addr uintptr + len int + cap int + }{addr, length, length} + + // Use unsafe to turn sl into a []byte. + b := *(*[]byte)(unsafe.Pointer(&sl)) + + // Register mapping in m and return it. + p := &b[cap(b)-1] + m.Lock() + defer m.Unlock() + m.active[p] = b + return b, nil +} + +func (m *mmapper) Munmap(data []byte) (err error) { + if len(data) == 0 || len(data) != cap(data) { + return EINVAL + } + + // Find the base of the mapping. + p := &data[cap(data)-1] + m.Lock() + defer m.Unlock() + b := m.active[p] + if b == nil || &b[0] != &data[0] { + return EINVAL + } + + // Unmap the memory and update m. + if errno := m.munmap(uintptr(unsafe.Pointer(&b[0])), uintptr(len(b))); errno != nil { + return errno + } + delete(m.active, p) + return nil +} + +func Read(fd int, p []byte) (n int, err error) { + n, err = read(fd, p) + if raceenabled { + if n > 0 { + raceWriteRange(unsafe.Pointer(&p[0]), n) + } + if err == nil { + raceAcquire(unsafe.Pointer(&ioSync)) + } + } + return +} + +func Write(fd int, p []byte) (n int, err error) { + if raceenabled { + raceReleaseMerge(unsafe.Pointer(&ioSync)) + } + n, err = write(fd, p) + if raceenabled && n > 0 { + raceReadRange(unsafe.Pointer(&p[0]), n) + } + return +} + +// For testing: clients can set this flag to force +// creation of IPv6 sockets to return EAFNOSUPPORT. +var SocketDisableIPv6 bool + +// Sockaddr represents a socket address. +type Sockaddr interface { + sockaddr() (ptr unsafe.Pointer, len _Socklen, err error) // lowercase; only we can define Sockaddrs +} + +// SockaddrInet4 implements the Sockaddr interface for AF_INET type sockets. +type SockaddrInet4 struct { + Port int + Addr [4]byte + raw RawSockaddrInet4 +} + +// SockaddrInet6 implements the Sockaddr interface for AF_INET6 type sockets. +type SockaddrInet6 struct { + Port int + ZoneId uint32 + Addr [16]byte + raw RawSockaddrInet6 +} + +// SockaddrUnix implements the Sockaddr interface for AF_UNIX type sockets. +type SockaddrUnix struct { + Name string + raw RawSockaddrUnix +} + +func Bind(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return bind(fd, ptr, n) +} + +func Connect(fd int, sa Sockaddr) (err error) { + ptr, n, err := sa.sockaddr() + if err != nil { + return err + } + return connect(fd, ptr, n) +} + +func Getpeername(fd int) (sa Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if err = getpeername(fd, &rsa, &len); err != nil { + return + } + return anyToSockaddr(fd, &rsa) +} + +func GetsockoptByte(fd, level, opt int) (value byte, err error) { + var n byte + vallen := _Socklen(1) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func GetsockoptInt(fd, level, opt int) (value int, err error) { + var n int32 + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return int(n), err +} + +func GetsockoptInet4Addr(fd, level, opt int) (value [4]byte, err error) { + vallen := _Socklen(4) + err = getsockopt(fd, level, opt, unsafe.Pointer(&value[0]), &vallen) + return value, err +} + +func GetsockoptIPMreq(fd, level, opt int) (*IPMreq, error) { + var value IPMreq + vallen := _Socklen(SizeofIPMreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6Mreq(fd, level, opt int) (*IPv6Mreq, error) { + var value IPv6Mreq + vallen := _Socklen(SizeofIPv6Mreq) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptIPv6MTUInfo(fd, level, opt int) (*IPv6MTUInfo, error) { + var value IPv6MTUInfo + vallen := _Socklen(SizeofIPv6MTUInfo) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptICMPv6Filter(fd, level, opt int) (*ICMPv6Filter, error) { + var value ICMPv6Filter + vallen := _Socklen(SizeofICMPv6Filter) + err := getsockopt(fd, level, opt, unsafe.Pointer(&value), &vallen) + return &value, err +} + +func GetsockoptLinger(fd, level, opt int) (*Linger, error) { + var linger Linger + vallen := _Socklen(SizeofLinger) + err := getsockopt(fd, level, opt, unsafe.Pointer(&linger), &vallen) + return &linger, err +} + +func GetsockoptTimeval(fd, level, opt int) (*Timeval, error) { + var tv Timeval + vallen := _Socklen(unsafe.Sizeof(tv)) + err := getsockopt(fd, level, opt, unsafe.Pointer(&tv), &vallen) + return &tv, err +} + +func GetsockoptUint64(fd, level, opt int) (value uint64, err error) { + var n uint64 + vallen := _Socklen(8) + err = getsockopt(fd, level, opt, unsafe.Pointer(&n), &vallen) + return n, err +} + +func Recvfrom(fd int, p []byte, flags int) (n int, from Sockaddr, err error) { + var rsa RawSockaddrAny + var len _Socklen = SizeofSockaddrAny + if n, err = recvfrom(fd, p, flags, &rsa, &len); err != nil { + return + } + if rsa.Addr.Family != AF_UNSPEC { + from, err = anyToSockaddr(fd, &rsa) + } + return +} + +func Sendto(fd int, p []byte, flags int, to Sockaddr) (err error) { + ptr, n, err := to.sockaddr() + if err != nil { + return err + } + return sendto(fd, p, flags, ptr, n) +} + +func SetsockoptByte(fd, level, opt int, value byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 1) +} + +func SetsockoptInt(fd, level, opt int, value int) (err error) { + var n = int32(value) + return setsockopt(fd, level, opt, unsafe.Pointer(&n), 4) +} + +func SetsockoptInet4Addr(fd, level, opt int, value [4]byte) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value[0]), 4) +} + +func SetsockoptIPMreq(fd, level, opt int, mreq *IPMreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPMreq) +} + +func SetsockoptIPv6Mreq(fd, level, opt int, mreq *IPv6Mreq) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(mreq), SizeofIPv6Mreq) +} + +func SetsockoptICMPv6Filter(fd, level, opt int, filter *ICMPv6Filter) error { + return setsockopt(fd, level, opt, unsafe.Pointer(filter), SizeofICMPv6Filter) +} + +func SetsockoptLinger(fd, level, opt int, l *Linger) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(l), SizeofLinger) +} + +func SetsockoptString(fd, level, opt int, s string) (err error) { + var p unsafe.Pointer + if len(s) > 0 { + p = unsafe.Pointer(&[]byte(s)[0]) + } + return setsockopt(fd, level, opt, p, uintptr(len(s))) +} + +func SetsockoptTimeval(fd, level, opt int, tv *Timeval) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(tv), unsafe.Sizeof(*tv)) +} + +func SetsockoptUint64(fd, level, opt int, value uint64) (err error) { + return setsockopt(fd, level, opt, unsafe.Pointer(&value), 8) +} + +func Socket(domain, typ, proto int) (fd int, err error) { + if domain == AF_INET6 && SocketDisableIPv6 { + return -1, EAFNOSUPPORT + } + fd, err = socket(domain, typ, proto) + return +} + +func Socketpair(domain, typ, proto int) (fd [2]int, err error) { + var fdx [2]int32 + err = socketpair(domain, typ, proto, &fdx) + if err == nil { + fd[0] = int(fdx[0]) + fd[1] = int(fdx[1]) + } + return +} + +var ioSync int64 + +func CloseOnExec(fd int) { fcntl(fd, F_SETFD, FD_CLOEXEC) } + +func SetNonblock(fd int, nonblocking bool) (err error) { + flag, err := fcntl(fd, F_GETFL, 0) + if err != nil { + return err + } + if nonblocking { + flag |= O_NONBLOCK + } else { + flag &= ^O_NONBLOCK + } + _, err = fcntl(fd, F_SETFL, flag) + return err +} + +// Exec calls execve(2), which replaces the calling executable in the process +// tree. argv0 should be the full path to an executable ("/bin/ls") and the +// executable name should also be the first argument in argv (["ls", "-l"]). +// envv are the environment variables that should be passed to the new +// process (["USER=go", "PWD=/tmp"]). +func Exec(argv0 string, argv []string, envv []string) error { + return syscall.Exec(argv0, argv, envv) +} + +func Mount(source string, target string, fstype string, flags uintptr, data string) (err error) { + if needspace := 8 - len(fstype); needspace <= 0 { + fstype = fstype[:8] + } else { + fstype += " "[:needspace] + } + return mount_LE(target, source, fstype, uint32(flags), int32(len(data)), data) +} + +func Unmount(name string, mtm int) (err error) { + // mountpoint is always a full path and starts with a '/' + // check if input string is not a mountpoint but a filesystem name + if name[0] != '/' { + return unmount(name, mtm) + } + // treat name as mountpoint + b2s := func(arr []byte) string { + nulli := bytes.IndexByte(arr, 0) + if nulli == -1 { + return string(arr) + } else { + return string(arr[:nulli]) + } + } + var buffer struct { + header W_Mnth + fsinfo [64]W_Mntent + } + fsCount, err := W_Getmntent_A((*byte)(unsafe.Pointer(&buffer)), int(unsafe.Sizeof(buffer))) + if err != nil { + return err + } + if fsCount == 0 { + return EINVAL + } + for i := 0; i < fsCount; i++ { + if b2s(buffer.fsinfo[i].Mountpoint[:]) == name { + err = unmount(b2s(buffer.fsinfo[i].Fsname[:]), mtm) + break + } + } + return err +} + +func fdToPath(dirfd int) (path string, err error) { + var buffer [1024]byte + // w_ctrl() + ret := runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_W_IOCTL<<4, + []uintptr{uintptr(dirfd), 17, 1024, uintptr(unsafe.Pointer(&buffer[0]))}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + // __e2a_l() + runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___E2A_L<<4, + []uintptr{uintptr(unsafe.Pointer(&buffer[0])), uintptr(zb)}) + return string(buffer[:zb]), nil + } + // __errno() + errno := int(*(*int32)(unsafe.Pointer(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO<<4, + []uintptr{})))) + // __errno2() + errno2 := int(runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS___ERRNO2<<4, + []uintptr{})) + // strerror_r() + ret = runtime.CallLeFuncByPtr(runtime.XplinkLibvec+SYS_STRERROR_R<<4, + []uintptr{uintptr(errno), uintptr(unsafe.Pointer(&buffer[0])), 1024}) + if ret == 0 { + zb := bytes.IndexByte(buffer[:], 0) + if zb == -1 { + zb = len(buffer) + } + return "", fmt.Errorf("%s (errno2=0x%x)", buffer[:zb], errno2) + } else { + return "", fmt.Errorf("fdToPath errno %d (errno2=0x%x)", errno, errno2) + } +} + +func direntLeToDirentUnix(dirent *direntLE, dir uintptr, path string) (Dirent, error) { + var d Dirent + + d.Ino = uint64(dirent.Ino) + offset, err := Telldir(dir) + if err != nil { + return d, err + } + + d.Off = int64(offset) + s := string(bytes.Split(dirent.Name[:], []byte{0})[0]) + copy(d.Name[:], s) + + d.Reclen = uint16(24 + len(d.NameString())) + var st Stat_t + path = path + "/" + s + err = Lstat(path, &st) + if err != nil { + return d, err + } + + d.Type = uint8(st.Mode >> 24) + return d, err +} + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + // Simulation of Getdirentries port from the Darwin implementation. + // COMMENTS FROM DARWIN: + // It's not the full required semantics, but should handle the case + // of calling Getdirentries or ReadDirent repeatedly. + // It won't handle assigning the results of lseek to *basep, or handle + // the directory being edited underfoot. + + skip, err := Seek(fd, 0, 1 /* SEEK_CUR */) + if err != nil { + return 0, err + } + + // Get path from fd to avoid unavailable call (fdopendir) + path, err := fdToPath(fd) + if err != nil { + return 0, err + } + d, err := Opendir(path) + if err != nil { + return 0, err + } + defer Closedir(d) + + var cnt int64 + for { + var entryLE direntLE + var entrypLE *direntLE + e := readdir_r(d, &entryLE, &entrypLE) + if e != nil { + return n, e + } + if entrypLE == nil { + break + } + if skip > 0 { + skip-- + cnt++ + continue + } + + // Dirent on zos has a different structure + entry, e := direntLeToDirentUnix(&entryLE, d, path) + if e != nil { + return n, e + } + + reclen := int(entry.Reclen) + if reclen > len(buf) { + // Not enough room. Return for now. + // The counter will let us know where we should start up again. + // Note: this strategy for suspending in the middle and + // restarting is O(n^2) in the length of the directory. Oh well. + break + } + + // Copy entry into return buffer. + s := unsafe.Slice((*byte)(unsafe.Pointer(&entry)), reclen) + copy(buf, s) + + buf = buf[reclen:] + n += reclen + cnt++ + } + // Set the seek offset of the input fd to record + // how many files we've already returned. + _, err = Seek(fd, cnt, 0 /* SEEK_SET */) + if err != nil { + return n, err + } + + return n, nil +} + +func ReadDirent(fd int, buf []byte) (n int, err error) { + var base = (*uintptr)(unsafe.Pointer(new(uint64))) + return Getdirentries(fd, buf, base) +} + +func direntIno(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Ino), unsafe.Sizeof(Dirent{}.Ino)) +} + +func direntReclen(buf []byte) (uint64, bool) { + return readInt(buf, unsafe.Offsetof(Dirent{}.Reclen), unsafe.Sizeof(Dirent{}.Reclen)) +} + +func direntNamlen(buf []byte) (uint64, bool) { + reclen, ok := direntReclen(buf) + if !ok { + return 0, false + } + return reclen - uint64(unsafe.Offsetof(Dirent{}.Name)), true +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_linux.go new file mode 100644 index 0000000000..2c3a4437f0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_linux.go @@ -0,0 +1,21 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build linux +// +build linux + +package unix + +import "runtime" + +// SysvShmCtl performs control operations on the shared memory segment +// specified by id. +func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { + if runtime.GOARCH == "arm" || + runtime.GOARCH == "mips64" || runtime.GOARCH == "mips64le" { + cmd |= ipc_64 + } + + return shmctl(id, cmd, desc) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix.go new file mode 100644 index 0000000000..5bb41d17bc --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix.go @@ -0,0 +1,52 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build (darwin && !ios) || linux +// +build darwin,!ios linux + +package unix + +import "unsafe" + +// SysvShmAttach attaches the Sysv shared memory segment associated with the +// shared memory identifier id. +func SysvShmAttach(id int, addr uintptr, flag int) ([]byte, error) { + addr, errno := shmat(id, addr, flag) + if errno != nil { + return nil, errno + } + + // Retrieve the size of the shared memory to enable slice creation + var info SysvShmDesc + + _, err := SysvShmCtl(id, IPC_STAT, &info) + if err != nil { + // release the shared memory if we can't find the size + + // ignoring error from shmdt as there's nothing sensible to return here + shmdt(addr) + return nil, err + } + + // Use unsafe to convert addr into a []byte. + b := unsafe.Slice((*byte)(unsafe.Pointer(addr)), int(info.Segsz)) + return b, nil +} + +// SysvShmDetach unmaps the shared memory slice returned from SysvShmAttach. +// +// It is not safe to use the slice after calling this function. +func SysvShmDetach(data []byte) error { + if len(data) == 0 { + return EINVAL + } + + return shmdt(uintptr(unsafe.Pointer(&data[0]))) +} + +// SysvShmGet returns the Sysv shared memory identifier associated with key. +// If the IPC_CREAT flag is specified a new segment is created. +func SysvShmGet(key, size, flag int) (id int, err error) { + return shmget(key, size, flag) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go new file mode 100644 index 0000000000..71bddefdb8 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go @@ -0,0 +1,14 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build darwin && !ios +// +build darwin,!ios + +package unix + +// SysvShmCtl performs control operations on the shared memory segment +// specified by id. +func SysvShmCtl(id, cmd int, desc *SysvShmDesc) (result int, err error) { + return shmctl(id, cmd, desc) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/timestruct.go b/ecs-agent/vendor/golang.org/x/sys/unix/timestruct.go new file mode 100644 index 0000000000..616b1b2848 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/timestruct.go @@ -0,0 +1,77 @@ +// Copyright 2017 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build aix || darwin || dragonfly || freebsd || linux || netbsd || openbsd || solaris || zos +// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris zos + +package unix + +import "time" + +// TimespecToNsec returns the time stored in ts as nanoseconds. +func TimespecToNsec(ts Timespec) int64 { return ts.Nano() } + +// NsecToTimespec converts a number of nanoseconds into a Timespec. +func NsecToTimespec(nsec int64) Timespec { + sec := nsec / 1e9 + nsec = nsec % 1e9 + if nsec < 0 { + nsec += 1e9 + sec-- + } + return setTimespec(sec, nsec) +} + +// TimeToTimespec converts t into a Timespec. +// On some 32-bit systems the range of valid Timespec values are smaller +// than that of time.Time values. So if t is out of the valid range of +// Timespec, it returns a zero Timespec and ERANGE. +func TimeToTimespec(t time.Time) (Timespec, error) { + sec := t.Unix() + nsec := int64(t.Nanosecond()) + ts := setTimespec(sec, nsec) + + // Currently all targets have either int32 or int64 for Timespec.Sec. + // If there were a new target with floating point type for it, we have + // to consider the rounding error. + if int64(ts.Sec) != sec { + return Timespec{}, ERANGE + } + return ts, nil +} + +// TimevalToNsec returns the time stored in tv as nanoseconds. +func TimevalToNsec(tv Timeval) int64 { return tv.Nano() } + +// NsecToTimeval converts a number of nanoseconds into a Timeval. +func NsecToTimeval(nsec int64) Timeval { + nsec += 999 // round up to microsecond + usec := nsec % 1e9 / 1e3 + sec := nsec / 1e9 + if usec < 0 { + usec += 1e6 + sec-- + } + return setTimeval(sec, usec) +} + +// Unix returns the time stored in ts as seconds plus nanoseconds. +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} + +// Unix returns the time stored in tv as seconds plus nanoseconds. +func (tv *Timeval) Unix() (sec int64, nsec int64) { + return int64(tv.Sec), int64(tv.Usec) * 1000 +} + +// Nano returns the time stored in ts as nanoseconds. +func (ts *Timespec) Nano() int64 { + return int64(ts.Sec)*1e9 + int64(ts.Nsec) +} + +// Nano returns the time stored in tv as nanoseconds. +func (tv *Timeval) Nano() int64 { + return int64(tv.Sec)*1e9 + int64(tv.Usec)*1000 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/unveil_openbsd.go new file mode 100644 index 0000000000..168d5ae779 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/unveil_openbsd.go @@ -0,0 +1,42 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +import ( + "syscall" + "unsafe" +) + +// Unveil implements the unveil syscall. +// For more information see unveil(2). +// Note that the special case of blocking further +// unveil calls is handled by UnveilBlock. +func Unveil(path string, flags string) error { + pathPtr, err := syscall.BytePtrFromString(path) + if err != nil { + return err + } + flagsPtr, err := syscall.BytePtrFromString(flags) + if err != nil { + return err + } + _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(unsafe.Pointer(pathPtr)), uintptr(unsafe.Pointer(flagsPtr)), 0) + if e != 0 { + return e + } + return nil +} + +// UnveilBlock blocks future unveil calls. +// For more information see unveil(2). +func UnveilBlock() error { + // Both pointers must be nil. + var pathUnsafe, flagsUnsafe unsafe.Pointer + _, _, e := syscall.Syscall(SYS_UNVEIL, uintptr(pathUnsafe), uintptr(flagsUnsafe), 0) + if e != 0 { + return e + } + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/xattr_bsd.go b/ecs-agent/vendor/golang.org/x/sys/unix/xattr_bsd.go new file mode 100644 index 0000000000..f5f8e9f366 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/xattr_bsd.go @@ -0,0 +1,281 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build freebsd || netbsd +// +build freebsd netbsd + +package unix + +import ( + "strings" + "unsafe" +) + +// Derive extattr namespace and attribute name + +func xattrnamespace(fullattr string) (ns int, attr string, err error) { + s := strings.IndexByte(fullattr, '.') + if s == -1 { + return -1, "", ENOATTR + } + + namespace := fullattr[0:s] + attr = fullattr[s+1:] + + switch namespace { + case "user": + return EXTATTR_NAMESPACE_USER, attr, nil + case "system": + return EXTATTR_NAMESPACE_SYSTEM, attr, nil + default: + return -1, "", ENOATTR + } +} + +func initxattrdest(dest []byte, idx int) (d unsafe.Pointer) { + if len(dest) > idx { + return unsafe.Pointer(&dest[idx]) + } + if dest != nil { + // extattr_get_file and extattr_list_file treat NULL differently from + // a non-NULL pointer of length zero. Preserve the property of nilness, + // even if we can't use dest directly. + return unsafe.Pointer(&_zero) + } + return nil +} + +// FreeBSD and NetBSD implement their own syscalls to handle extended attributes + +func Getxattr(file string, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetFile(file, nsid, a, uintptr(d), destsize) +} + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetFd(fd, nsid, a, uintptr(d), destsize) +} + +func Lgetxattr(link string, attr string, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsize := len(dest) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return -1, err + } + + return ExtattrGetLink(link, nsid, a, uintptr(d), destsize) +} + +// flags are unused on FreeBSD + +func Fsetxattr(fd int, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetFd(fd, nsid, a, uintptr(d), datasiz) + return +} + +func Setxattr(file string, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetFile(file, nsid, a, uintptr(d), datasiz) + return +} + +func Lsetxattr(link string, attr string, data []byte, flags int) (err error) { + var d unsafe.Pointer + if len(data) > 0 { + d = unsafe.Pointer(&data[0]) + } + datasiz := len(data) + + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + _, err = ExtattrSetLink(link, nsid, a, uintptr(d), datasiz) + return +} + +func Removexattr(file string, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteFile(file, nsid, a) + return +} + +func Fremovexattr(fd int, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteFd(fd, nsid, a) + return +} + +func Lremovexattr(link string, attr string) (err error) { + nsid, a, err := xattrnamespace(attr) + if err != nil { + return + } + + err = ExtattrDeleteLink(link, nsid, a) + return +} + +func Listxattr(file string, dest []byte) (sz int, err error) { + destsiz := len(dest) + + // FreeBSD won't allow you to list xattrs from multiple namespaces + s, pos := 0, 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := ListxattrNS(file, nsid, dest[pos:]) + + /* Errors accessing system attrs are ignored so that + * we can implement the Linux-like behavior of omitting errors that + * we don't have read permissions on + * + * Linux will still error if we ask for user attributes on a file that + * we don't have read permissions on, so don't ignore those errors + */ + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } + return s, e + } + + s += stmp + pos = s + if pos > destsiz { + pos = destsiz + } + } + + return s, nil +} + +func ListxattrNS(file string, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListFile(file, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + destsiz := len(dest) + + s, pos := 0, 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := FlistxattrNS(fd, nsid, dest[pos:]) + + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } + return s, e + } + + s += stmp + pos = s + if pos > destsiz { + pos = destsiz + } + } + + return s, nil +} + +func FlistxattrNS(fd int, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListFd(fd, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} + +func Llistxattr(link string, dest []byte) (sz int, err error) { + destsiz := len(dest) + + s, pos := 0, 0 + for _, nsid := range [...]int{EXTATTR_NAMESPACE_USER, EXTATTR_NAMESPACE_SYSTEM} { + stmp, e := LlistxattrNS(link, nsid, dest[pos:]) + + if e != nil { + if e == EPERM && nsid != EXTATTR_NAMESPACE_USER { + continue + } + return s, e + } + + s += stmp + pos = s + if pos > destsiz { + pos = destsiz + } + } + + return s, nil +} + +func LlistxattrNS(link string, nsid int, dest []byte) (sz int, err error) { + d := initxattrdest(dest, 0) + destsiz := len(dest) + + s, e := ExtattrListLink(link, nsid, uintptr(d), destsiz) + if e != nil { + return 0, err + } + + return s, nil +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go new file mode 100644 index 0000000000..ca9799b79e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go @@ -0,0 +1,1385 @@ +// mkerrors.sh -maix32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && aix +// +build ppc,aix + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -maix32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x400000 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x1000 + BSDLY = 0x1000 + CAP_AACCT = 0x6 + CAP_ARM_APPLICATION = 0x5 + CAP_BYPASS_RAC_VMM = 0x3 + CAP_CLEAR = 0x0 + CAP_CREDENTIALS = 0x7 + CAP_EFFECTIVE = 0x1 + CAP_EWLM_AGENT = 0x4 + CAP_INHERITABLE = 0x2 + CAP_MAXIMUM = 0x7 + CAP_NUMA_ATTACH = 0x2 + CAP_PERMITTED = 0x3 + CAP_PROPAGATE = 0x1 + CAP_PROPOGATE = 0x1 + CAP_SET = 0x1 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_MONOTONIC = 0xa + CLOCK_PROCESS_CPUTIME_ID = 0xb + CLOCK_REALTIME = 0x9 + CLOCK_THREAD_CPUTIME_ID = 0xc + CR0 = 0x0 + CR1 = 0x100 + CR2 = 0x200 + CR3 = 0x300 + CRDLY = 0x300 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3ff796dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FF0 = 0x0 + FF1 = 0x2000 + FFDLY = 0x2000 + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x5 + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0xc + F_SETLKW = 0x7 + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x800 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf0 + MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 + MCL_CURRENT = 0x100 + MCL_FUTURE = 0x200 + MSG_ANY = 0x4 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x4000 + NL2 = 0x8000 + NL3 = 0xc000 + NLDLY = 0x4000 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + OXTABS = 0x40000 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x9 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTC_IA64 = 0x3 + RTC_POWER = 0x1 + RTC_POWER_PC = 0x2 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGMAX64 = 0xff + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fcf8df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fcf8df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fdf9669 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3ff796bb + SIOCGIFCONFGLOB = -0x3ff79670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0x80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0x80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x540c + TCGETA = 0x5405 + TCGETS = 0x5401 + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETSF = 0x5404 + TCSETSW = 0x5403 + TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 + TIOC = 0x5400 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0x80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0x8004747e + TIOCLBIS = 0x8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0x8004747d + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0x80067411 + TIOCSETD = 0x80047401 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x10000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x3 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + XCASE = 0x4 + XTABS = 0xc00 + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x43) + EADDRNOTAVAIL = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x42) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x38) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x78) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x75) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECLONEME = syscall.Errno(0x52) + ECONNABORTED = syscall.Errno(0x48) + ECONNREFUSED = syscall.Errno(0x4f) + ECONNRESET = syscall.Errno(0x49) + ECORRUPT = syscall.Errno(0x59) + EDEADLK = syscall.Errno(0x2d) + EDESTADDREQ = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x3a) + EDIST = syscall.Errno(0x35) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x58) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFORMAT = syscall.Errno(0x30) + EHOSTDOWN = syscall.Errno(0x50) + EHOSTUNREACH = syscall.Errno(0x51) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x74) + EINPROGRESS = syscall.Errno(0x37) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x4b) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x55) + EMEDIA = syscall.Errno(0x6e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x3b) + EMULTIHOP = syscall.Errno(0x7d) + ENAMETOOLONG = syscall.Errno(0x56) + ENETDOWN = syscall.Errno(0x45) + ENETRESET = syscall.Errno(0x47) + ENETUNREACH = syscall.Errno(0x46) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x70) + ENOBUFS = syscall.Errno(0x4a) + ENOCONNECT = syscall.Errno(0x32) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x7a) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x31) + ENOLINK = syscall.Errno(0x7e) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENOPROTOOPT = syscall.Errno(0x3d) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x76) + ENOSTR = syscall.Errno(0x7b) + ENOSYS = syscall.Errno(0x6d) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x4c) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x11) + ENOTREADY = syscall.Errno(0x2e) + ENOTRECOVERABLE = syscall.Errno(0x5e) + ENOTRUST = syscall.Errno(0x72) + ENOTSOCK = syscall.Errno(0x39) + ENOTSUP = syscall.Errno(0x7c) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x40) + EOVERFLOW = syscall.Errno(0x7f) + EOWNERDEAD = syscall.Errno(0x5f) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x41) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x53) + EPROTO = syscall.Errno(0x79) + EPROTONOSUPPORT = syscall.Errno(0x3e) + EPROTOTYPE = syscall.Errno(0x3c) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x5d) + ERESTART = syscall.Errno(0x52) + EROFS = syscall.Errno(0x1e) + ESAD = syscall.Errno(0x71) + ESHUTDOWN = syscall.Errno(0x4d) + ESOCKTNOSUPPORT = syscall.Errno(0x3f) + ESOFT = syscall.Errno(0x6f) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x34) + ESYSERROR = syscall.Errno(0x5a) + ETIME = syscall.Errno(0x77) + ETIMEDOUT = syscall.Errno(0x4e) + ETOOMANYREFS = syscall.Errno(0x73) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x54) + EWOULDBLOCK = syscall.Errno(0xb) + EWRPROTECT = syscall.Errno(0x2f) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGAIO = syscall.Signal(0x17) + SIGALRM = syscall.Signal(0xe) + SIGALRM1 = syscall.Signal(0x26) + SIGBUS = syscall.Signal(0xa) + SIGCAPI = syscall.Signal(0x31) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGCPUFAIL = syscall.Signal(0x3b) + SIGDANGER = syscall.Signal(0x21) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGGRANT = syscall.Signal(0x3c) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOINT = syscall.Signal(0x10) + SIGIOT = syscall.Signal(0x6) + SIGKAP = syscall.Signal(0x3c) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x6) + SIGMAX = syscall.Signal(0x3f) + SIGMAX32 = syscall.Signal(0x3f) + SIGMIGRATE = syscall.Signal(0x23) + SIGMSG = syscall.Signal(0x1b) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPRE = syscall.Signal(0x24) + SIGPROF = syscall.Signal(0x20) + SIGPTY = syscall.Signal(0x17) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGRECONFIG = syscall.Signal(0x3a) + SIGRETRACT = syscall.Signal(0x3d) + SIGSAK = syscall.Signal(0x3f) + SIGSEGV = syscall.Signal(0xb) + SIGSOUND = syscall.Signal(0x3e) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGSYSERROR = syscall.Signal(0x30) + SIGTALRM = syscall.Signal(0x26) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVIRT = syscall.Signal(0x25) + SIGVTALRM = syscall.Signal(0x22) + SIGWAITING = syscall.Signal(0x27) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EWOULDBLOCK", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "ENOTEMPTY", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "not a typewriter"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock condition if locked"}, + {46, "ENOTREADY", "device not ready"}, + {47, "EWRPROTECT", "write-protected media"}, + {48, "EFORMAT", "unformatted or incompatible media"}, + {49, "ENOLCK", "no locks available"}, + {50, "ENOCONNECT", "cannot Establish Connection"}, + {52, "ESTALE", "missing file or filesystem"}, + {53, "EDIST", "requests blocked by Administrator"}, + {55, "EINPROGRESS", "operation now in progress"}, + {56, "EALREADY", "operation already in progress"}, + {57, "ENOTSOCK", "socket operation on non-socket"}, + {58, "EDESTADDREQ", "destination address required"}, + {59, "EMSGSIZE", "message too long"}, + {60, "EPROTOTYPE", "protocol wrong type for socket"}, + {61, "ENOPROTOOPT", "protocol not available"}, + {62, "EPROTONOSUPPORT", "protocol not supported"}, + {63, "ESOCKTNOSUPPORT", "socket type not supported"}, + {64, "EOPNOTSUPP", "operation not supported on socket"}, + {65, "EPFNOSUPPORT", "protocol family not supported"}, + {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, + {67, "EADDRINUSE", "address already in use"}, + {68, "EADDRNOTAVAIL", "can't assign requested address"}, + {69, "ENETDOWN", "network is down"}, + {70, "ENETUNREACH", "network is unreachable"}, + {71, "ENETRESET", "network dropped connection on reset"}, + {72, "ECONNABORTED", "software caused connection abort"}, + {73, "ECONNRESET", "connection reset by peer"}, + {74, "ENOBUFS", "no buffer space available"}, + {75, "EISCONN", "socket is already connected"}, + {76, "ENOTCONN", "socket is not connected"}, + {77, "ESHUTDOWN", "can't send after socket shutdown"}, + {78, "ETIMEDOUT", "connection timed out"}, + {79, "ECONNREFUSED", "connection refused"}, + {80, "EHOSTDOWN", "host is down"}, + {81, "EHOSTUNREACH", "no route to host"}, + {82, "ERESTART", "restart the system call"}, + {83, "EPROCLIM", "too many processes"}, + {84, "EUSERS", "too many users"}, + {85, "ELOOP", "too many levels of symbolic links"}, + {86, "ENAMETOOLONG", "file name too long"}, + {88, "EDQUOT", "disk quota exceeded"}, + {89, "ECORRUPT", "invalid file system control data detected"}, + {90, "ESYSERROR", "for future use "}, + {93, "EREMOTE", "item is not local to host"}, + {94, "ENOTRECOVERABLE", "state not recoverable "}, + {95, "EOWNERDEAD", "previous owner died "}, + {109, "ENOSYS", "function not implemented"}, + {110, "EMEDIA", "media surface error"}, + {111, "ESOFT", "I/O completed, but needs relocation"}, + {112, "ENOATTR", "no attribute found"}, + {113, "ESAD", "security Authentication Denied"}, + {114, "ENOTRUST", "not a Trusted Program"}, + {115, "ETOOMANYREFS", "too many references: can't splice"}, + {116, "EILSEQ", "invalid wide character"}, + {117, "ECANCELED", "asynchronous I/O cancelled"}, + {118, "ENOSR", "out of STREAMS resources"}, + {119, "ETIME", "system call timed out"}, + {120, "EBADMSG", "next message has wrong type"}, + {121, "EPROTO", "error in protocol"}, + {122, "ENODATA", "no message on stream head read q"}, + {123, "ENOSTR", "fd not associated with a stream"}, + {124, "ENOTSUP", "unsupported attribute value"}, + {125, "EMULTIHOP", "multihop is not allowed"}, + {126, "ENOLINK", "the server link has been severed"}, + {127, "EOVERFLOW", "value too large to be stored in data type"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "IOT/Abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible/complete"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {27, "SIGMSG", "input device data"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGPWR", "power-failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "paging space low"}, + {34, "SIGVTALRM", "virtual timer expired"}, + {35, "SIGMIGRATE", "signal 35"}, + {36, "SIGPRE", "signal 36"}, + {37, "SIGVIRT", "signal 37"}, + {38, "SIGTALRM", "signal 38"}, + {39, "SIGWAITING", "signal 39"}, + {48, "SIGSYSERROR", "signal 48"}, + {49, "SIGCAPI", "signal 49"}, + {58, "SIGRECONFIG", "signal 58"}, + {59, "SIGCPUFAIL", "CPU Failure Predicted"}, + {60, "SIGKAP", "monitor mode granted"}, + {61, "SIGRETRACT", "monitor mode retracted"}, + {62, "SIGSOUND", "sound completed"}, + {63, "SIGSAK", "secure attention"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go new file mode 100644 index 0000000000..200c8c26fe --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go @@ -0,0 +1,1386 @@ +// mkerrors.sh -maix64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && aix +// +build ppc64,aix + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -maix64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x400000 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x1000 + BSDLY = 0x1000 + CAP_AACCT = 0x6 + CAP_ARM_APPLICATION = 0x5 + CAP_BYPASS_RAC_VMM = 0x3 + CAP_CLEAR = 0x0 + CAP_CREDENTIALS = 0x7 + CAP_EFFECTIVE = 0x1 + CAP_EWLM_AGENT = 0x4 + CAP_INHERITABLE = 0x2 + CAP_MAXIMUM = 0x7 + CAP_NUMA_ATTACH = 0x2 + CAP_PERMITTED = 0x3 + CAP_PROPAGATE = 0x1 + CAP_PROPOGATE = 0x1 + CAP_SET = 0x1 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_MONOTONIC = 0xa + CLOCK_PROCESS_CPUTIME_ID = 0xb + CLOCK_REALTIME = 0x9 + CLOCK_THREAD_CPUTIME_ID = 0xc + CR0 = 0x0 + CR1 = 0x100 + CR2 = 0x200 + CR3 = 0x300 + CRDLY = 0x300 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3fef96dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FF0 = 0x0 + FF1 = 0x2000 + FFDLY = 0x2000 + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLK64 = 0xc + F_SETLKW = 0xd + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x800 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf0 + MAP_VARIABLE = 0x0 + MCAST_BLOCK_SOURCE = 0x40 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x3e + MCAST_JOIN_SOURCE_GROUP = 0x42 + MCAST_LEAVE_GROUP = 0x3f + MCAST_LEAVE_SOURCE_GROUP = 0x43 + MCAST_SOURCE_FILTER = 0x49 + MCAST_UNBLOCK_SOURCE = 0x41 + MCL_CURRENT = 0x100 + MCL_FUTURE = 0x200 + MSG_ANY = 0x4 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NFDBITS = 0x40 + NL0 = 0x0 + NL1 = 0x4000 + NL2 = 0x8000 + NL3 = 0xc000 + NLDLY = 0x4000 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + OXTABS = 0x40000 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x9 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTC_IA64 = 0x3 + RTC_POWER = 0x1 + RTC_POWER_PC = 0x2 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGMAX64 = 0xff + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fc78df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fc78df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fdf9669 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3fef96bb + SIOCGIFCONFGLOB = -0x3fef9670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0xffffffff80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0xffffffff80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0xffffffff80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x540c + TCGETA = 0x5405 + TCGETS = 0x5401 + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETSF = 0x5404 + TCSETSW = 0x5403 + TCXONC = 0x540b + TIMER_ABSTIME = 0x3e7 + TIMER_MAX = 0x20 + TIOC = 0x5400 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0xffffffff80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0xffffffff80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0xffffffff8004747e + TIOCLBIS = 0xffffffff8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0xffffffff8004747d + TIOCMBIC = 0xffffffff8004746b + TIOCMBIS = 0xffffffff8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0xffffffff80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0xffffffff80047404 + TIOCMSET = 0xffffffff8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0xffffffff80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0xffffffff80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0xffffffff80067411 + TIOCSETD = 0xffffffff80047401 + TIOCSETN = 0xffffffff8006740a + TIOCSETP = 0xffffffff80067409 + TIOCSLTC = 0xffffffff80067475 + TIOCSPGRP = 0xffffffff80047476 + TIOCSSIZE = 0xffffffff80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0xffffffff80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0xffffffff80087467 + TIOCUCNTL = 0xffffffff80047466 + TOSTOP = 0x10000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x3 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + XCASE = 0x4 + XTABS = 0xc00 + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x43) + EADDRNOTAVAIL = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x42) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x38) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x78) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x75) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECLONEME = syscall.Errno(0x52) + ECONNABORTED = syscall.Errno(0x48) + ECONNREFUSED = syscall.Errno(0x4f) + ECONNRESET = syscall.Errno(0x49) + ECORRUPT = syscall.Errno(0x59) + EDEADLK = syscall.Errno(0x2d) + EDESTADDREQ = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x3a) + EDIST = syscall.Errno(0x35) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x58) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFORMAT = syscall.Errno(0x30) + EHOSTDOWN = syscall.Errno(0x50) + EHOSTUNREACH = syscall.Errno(0x51) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x74) + EINPROGRESS = syscall.Errno(0x37) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x4b) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x55) + EMEDIA = syscall.Errno(0x6e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x3b) + EMULTIHOP = syscall.Errno(0x7d) + ENAMETOOLONG = syscall.Errno(0x56) + ENETDOWN = syscall.Errno(0x45) + ENETRESET = syscall.Errno(0x47) + ENETUNREACH = syscall.Errno(0x46) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x70) + ENOBUFS = syscall.Errno(0x4a) + ENOCONNECT = syscall.Errno(0x32) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x7a) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x31) + ENOLINK = syscall.Errno(0x7e) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENOPROTOOPT = syscall.Errno(0x3d) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x76) + ENOSTR = syscall.Errno(0x7b) + ENOSYS = syscall.Errno(0x6d) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x4c) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x11) + ENOTREADY = syscall.Errno(0x2e) + ENOTRECOVERABLE = syscall.Errno(0x5e) + ENOTRUST = syscall.Errno(0x72) + ENOTSOCK = syscall.Errno(0x39) + ENOTSUP = syscall.Errno(0x7c) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x40) + EOVERFLOW = syscall.Errno(0x7f) + EOWNERDEAD = syscall.Errno(0x5f) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x41) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x53) + EPROTO = syscall.Errno(0x79) + EPROTONOSUPPORT = syscall.Errno(0x3e) + EPROTOTYPE = syscall.Errno(0x3c) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x5d) + ERESTART = syscall.Errno(0x52) + EROFS = syscall.Errno(0x1e) + ESAD = syscall.Errno(0x71) + ESHUTDOWN = syscall.Errno(0x4d) + ESOCKTNOSUPPORT = syscall.Errno(0x3f) + ESOFT = syscall.Errno(0x6f) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x34) + ESYSERROR = syscall.Errno(0x5a) + ETIME = syscall.Errno(0x77) + ETIMEDOUT = syscall.Errno(0x4e) + ETOOMANYREFS = syscall.Errno(0x73) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x54) + EWOULDBLOCK = syscall.Errno(0xb) + EWRPROTECT = syscall.Errno(0x2f) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGAIO = syscall.Signal(0x17) + SIGALRM = syscall.Signal(0xe) + SIGALRM1 = syscall.Signal(0x26) + SIGBUS = syscall.Signal(0xa) + SIGCAPI = syscall.Signal(0x31) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGCPUFAIL = syscall.Signal(0x3b) + SIGDANGER = syscall.Signal(0x21) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGGRANT = syscall.Signal(0x3c) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOINT = syscall.Signal(0x10) + SIGIOT = syscall.Signal(0x6) + SIGKAP = syscall.Signal(0x3c) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x6) + SIGMAX = syscall.Signal(0xff) + SIGMAX32 = syscall.Signal(0x3f) + SIGMIGRATE = syscall.Signal(0x23) + SIGMSG = syscall.Signal(0x1b) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x17) + SIGPRE = syscall.Signal(0x24) + SIGPROF = syscall.Signal(0x20) + SIGPTY = syscall.Signal(0x17) + SIGPWR = syscall.Signal(0x1d) + SIGQUIT = syscall.Signal(0x3) + SIGRECONFIG = syscall.Signal(0x3a) + SIGRETRACT = syscall.Signal(0x3d) + SIGSAK = syscall.Signal(0x3f) + SIGSEGV = syscall.Signal(0xb) + SIGSOUND = syscall.Signal(0x3e) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGSYSERROR = syscall.Signal(0x30) + SIGTALRM = syscall.Signal(0x26) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVIRT = syscall.Signal(0x25) + SIGVTALRM = syscall.Signal(0x22) + SIGWAITING = syscall.Signal(0x27) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EWOULDBLOCK", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "ENOTEMPTY", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "not a typewriter"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock condition if locked"}, + {46, "ENOTREADY", "device not ready"}, + {47, "EWRPROTECT", "write-protected media"}, + {48, "EFORMAT", "unformatted or incompatible media"}, + {49, "ENOLCK", "no locks available"}, + {50, "ENOCONNECT", "cannot Establish Connection"}, + {52, "ESTALE", "missing file or filesystem"}, + {53, "EDIST", "requests blocked by Administrator"}, + {55, "EINPROGRESS", "operation now in progress"}, + {56, "EALREADY", "operation already in progress"}, + {57, "ENOTSOCK", "socket operation on non-socket"}, + {58, "EDESTADDREQ", "destination address required"}, + {59, "EMSGSIZE", "message too long"}, + {60, "EPROTOTYPE", "protocol wrong type for socket"}, + {61, "ENOPROTOOPT", "protocol not available"}, + {62, "EPROTONOSUPPORT", "protocol not supported"}, + {63, "ESOCKTNOSUPPORT", "socket type not supported"}, + {64, "EOPNOTSUPP", "operation not supported on socket"}, + {65, "EPFNOSUPPORT", "protocol family not supported"}, + {66, "EAFNOSUPPORT", "addr family not supported by protocol"}, + {67, "EADDRINUSE", "address already in use"}, + {68, "EADDRNOTAVAIL", "can't assign requested address"}, + {69, "ENETDOWN", "network is down"}, + {70, "ENETUNREACH", "network is unreachable"}, + {71, "ENETRESET", "network dropped connection on reset"}, + {72, "ECONNABORTED", "software caused connection abort"}, + {73, "ECONNRESET", "connection reset by peer"}, + {74, "ENOBUFS", "no buffer space available"}, + {75, "EISCONN", "socket is already connected"}, + {76, "ENOTCONN", "socket is not connected"}, + {77, "ESHUTDOWN", "can't send after socket shutdown"}, + {78, "ETIMEDOUT", "connection timed out"}, + {79, "ECONNREFUSED", "connection refused"}, + {80, "EHOSTDOWN", "host is down"}, + {81, "EHOSTUNREACH", "no route to host"}, + {82, "ERESTART", "restart the system call"}, + {83, "EPROCLIM", "too many processes"}, + {84, "EUSERS", "too many users"}, + {85, "ELOOP", "too many levels of symbolic links"}, + {86, "ENAMETOOLONG", "file name too long"}, + {88, "EDQUOT", "disk quota exceeded"}, + {89, "ECORRUPT", "invalid file system control data detected"}, + {90, "ESYSERROR", "for future use "}, + {93, "EREMOTE", "item is not local to host"}, + {94, "ENOTRECOVERABLE", "state not recoverable "}, + {95, "EOWNERDEAD", "previous owner died "}, + {109, "ENOSYS", "function not implemented"}, + {110, "EMEDIA", "media surface error"}, + {111, "ESOFT", "I/O completed, but needs relocation"}, + {112, "ENOATTR", "no attribute found"}, + {113, "ESAD", "security Authentication Denied"}, + {114, "ENOTRUST", "not a Trusted Program"}, + {115, "ETOOMANYREFS", "too many references: can't splice"}, + {116, "EILSEQ", "invalid wide character"}, + {117, "ECANCELED", "asynchronous I/O cancelled"}, + {118, "ENOSR", "out of STREAMS resources"}, + {119, "ETIME", "system call timed out"}, + {120, "EBADMSG", "next message has wrong type"}, + {121, "EPROTO", "error in protocol"}, + {122, "ENODATA", "no message on stream head read q"}, + {123, "ENOSTR", "fd not associated with a stream"}, + {124, "ENOTSUP", "unsupported attribute value"}, + {125, "EMULTIHOP", "multihop is not allowed"}, + {126, "ENOLINK", "the server link has been severed"}, + {127, "EOVERFLOW", "value too large to be stored in data type"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "IOT/Abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible/complete"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {27, "SIGMSG", "input device data"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGPWR", "power-failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "paging space low"}, + {34, "SIGVTALRM", "virtual timer expired"}, + {35, "SIGMIGRATE", "signal 35"}, + {36, "SIGPRE", "signal 36"}, + {37, "SIGVIRT", "signal 37"}, + {38, "SIGTALRM", "signal 38"}, + {39, "SIGWAITING", "signal 39"}, + {48, "SIGSYSERROR", "signal 48"}, + {49, "SIGCAPI", "signal 49"}, + {58, "SIGRECONFIG", "signal 58"}, + {59, "SIGCPUFAIL", "CPU Failure Predicted"}, + {60, "SIGGRANT", "monitor mode granted"}, + {61, "SIGRETRACT", "monitor mode retracted"}, + {62, "SIGSOUND", "sound completed"}, + {63, "SIGMAX32", "secure attention"}, + {255, "SIGMAX", "signal 255"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go new file mode 100644 index 0000000000..476a1c7e77 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go @@ -0,0 +1,1892 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && darwin +// +build amd64,darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + AF_VSOCK = 0x28 + ALTWERASE = 0x200 + ATTR_BIT_MAP_COUNT = 0x5 + ATTR_CMN_ACCESSMASK = 0x20000 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x51c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_SPACEUSED = 0x800000 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf087ffff + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x10a + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_DARWIN = 0x10a + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + FSOPT_NOINMEMUPDATE = 0x2 + FSOPT_PACK_INVAL_ATTRS = 0x8 + FSOPT_REPORT_FULLSIZE = 0x4 + FSOPT_RETURN_REALDEV = 0x200 + F_ADDFILESIGS = 0x3d + F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_INFO = 0x67 + F_ADDFILESIGS_RETURN = 0x61 + F_ADDFILESUPPL = 0x68 + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPATH_NOFIRMLINK = 0x66 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GETSIGSINFO = 0x69 + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_SPECULATIVE_READ = 0x65 + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_TRIM_ACTIVE_FILE = 0x64 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_3542DSTOPTS = 0x32 + IPV6_3542HOPLIMIT = 0x2f + IPV6_3542HOPOPTS = 0x31 + IPV6_3542NEXTHOP = 0x30 + IPV6_3542PKTINFO = 0x2e + IPV6_3542RTHDR = 0x33 + IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 + IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 + IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOW_ECN_MASK = 0x3000 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x3d + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x39 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x1c + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_PEERCRED = 0x1 + LOCAL_PEEREPID = 0x3 + LOCAL_PEEREUUID = 0x5 + LOCAL_PEERPID = 0x2 + LOCAL_PEERTOKEN = 0x6 + LOCAL_PEERUUID = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESILIENT_CODESIGN = 0x2000 + MAP_RESILIENT_MEDIA = 0x4000 + MAP_SHARED = 0x1 + MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 + MAP_UNIX03 = 0x40000 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + MNT_DOVOLFS = 0x8000 + MNT_DWAIT = 0x4 + MNT_EXPORTED = 0x100 + MNT_EXT_ROOT_DATA_VOL = 0x1 + MNT_FORCE = 0x80000 + MNT_IGNORE_OWNERSHIP = 0x200000 + MNT_JOURNALED = 0x800000 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_REMOVABLE = 0x200 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x40000000 + MNT_STRICTATIME = 0x80000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNKNOWNPERMISSIONS = 0x200000 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xd7f0f7ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_FLAGS_PRIV = 0xa + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xb + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_GLOBAL = 0x40000000 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SEEK_CUR = 0x1 + SEEK_DATA = 0x4 + SEEK_END = 0x2 + SEEK_HOLE = 0x3 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 + SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 + SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 + SO_TRACKER_TRANSPARENCY_VERSION = 0x3 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_CC = 0xb + TCPOPT_CCECHO = 0xd + TCPOPT_CCNEW = 0xc + TCPOPT_EOL = 0x0 + TCPOPT_FASTOPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_RESERVED = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go new file mode 100644 index 0000000000..e36f5178d6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go @@ -0,0 +1,1892 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && darwin +// +build arm64,darwin + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_SYS_CONTROL = 0x2 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + AF_VSOCK = 0x28 + ALTWERASE = 0x200 + ATTR_BIT_MAP_COUNT = 0x5 + ATTR_CMN_ACCESSMASK = 0x20000 + ATTR_CMN_ACCTIME = 0x1000 + ATTR_CMN_ADDEDTIME = 0x10000000 + ATTR_CMN_BKUPTIME = 0x2000 + ATTR_CMN_CHGTIME = 0x800 + ATTR_CMN_CRTIME = 0x200 + ATTR_CMN_DATA_PROTECT_FLAGS = 0x40000000 + ATTR_CMN_DEVID = 0x2 + ATTR_CMN_DOCUMENT_ID = 0x100000 + ATTR_CMN_ERROR = 0x20000000 + ATTR_CMN_EXTENDED_SECURITY = 0x400000 + ATTR_CMN_FILEID = 0x2000000 + ATTR_CMN_FLAGS = 0x40000 + ATTR_CMN_FNDRINFO = 0x4000 + ATTR_CMN_FSID = 0x4 + ATTR_CMN_FULLPATH = 0x8000000 + ATTR_CMN_GEN_COUNT = 0x80000 + ATTR_CMN_GRPID = 0x10000 + ATTR_CMN_GRPUUID = 0x1000000 + ATTR_CMN_MODTIME = 0x400 + ATTR_CMN_NAME = 0x1 + ATTR_CMN_NAMEDATTRCOUNT = 0x80000 + ATTR_CMN_NAMEDATTRLIST = 0x100000 + ATTR_CMN_OBJID = 0x20 + ATTR_CMN_OBJPERMANENTID = 0x40 + ATTR_CMN_OBJTAG = 0x10 + ATTR_CMN_OBJTYPE = 0x8 + ATTR_CMN_OWNERID = 0x8000 + ATTR_CMN_PARENTID = 0x4000000 + ATTR_CMN_PAROBJID = 0x80 + ATTR_CMN_RETURNED_ATTRS = 0x80000000 + ATTR_CMN_SCRIPT = 0x100 + ATTR_CMN_SETMASK = 0x51c7ff00 + ATTR_CMN_USERACCESS = 0x200000 + ATTR_CMN_UUID = 0x800000 + ATTR_CMN_VALIDMASK = 0xffffffff + ATTR_CMN_VOLSETMASK = 0x6700 + ATTR_FILE_ALLOCSIZE = 0x4 + ATTR_FILE_CLUMPSIZE = 0x10 + ATTR_FILE_DATAALLOCSIZE = 0x400 + ATTR_FILE_DATAEXTENTS = 0x800 + ATTR_FILE_DATALENGTH = 0x200 + ATTR_FILE_DEVTYPE = 0x20 + ATTR_FILE_FILETYPE = 0x40 + ATTR_FILE_FORKCOUNT = 0x80 + ATTR_FILE_FORKLIST = 0x100 + ATTR_FILE_IOBLOCKSIZE = 0x8 + ATTR_FILE_LINKCOUNT = 0x1 + ATTR_FILE_RSRCALLOCSIZE = 0x2000 + ATTR_FILE_RSRCEXTENTS = 0x4000 + ATTR_FILE_RSRCLENGTH = 0x1000 + ATTR_FILE_SETMASK = 0x20 + ATTR_FILE_TOTALSIZE = 0x2 + ATTR_FILE_VALIDMASK = 0x37ff + ATTR_VOL_ALLOCATIONCLUMP = 0x40 + ATTR_VOL_ATTRIBUTES = 0x40000000 + ATTR_VOL_CAPABILITIES = 0x20000 + ATTR_VOL_DIRCOUNT = 0x400 + ATTR_VOL_ENCODINGSUSED = 0x10000 + ATTR_VOL_FILECOUNT = 0x200 + ATTR_VOL_FSTYPE = 0x1 + ATTR_VOL_INFO = 0x80000000 + ATTR_VOL_IOBLOCKSIZE = 0x80 + ATTR_VOL_MAXOBJCOUNT = 0x800 + ATTR_VOL_MINALLOCATION = 0x20 + ATTR_VOL_MOUNTEDDEVICE = 0x8000 + ATTR_VOL_MOUNTFLAGS = 0x4000 + ATTR_VOL_MOUNTPOINT = 0x1000 + ATTR_VOL_NAME = 0x2000 + ATTR_VOL_OBJCOUNT = 0x100 + ATTR_VOL_QUOTA_SIZE = 0x10000000 + ATTR_VOL_RESERVED_SIZE = 0x20000000 + ATTR_VOL_SETMASK = 0x80002000 + ATTR_VOL_SIGNATURE = 0x2 + ATTR_VOL_SIZE = 0x4 + ATTR_VOL_SPACEAVAIL = 0x10 + ATTR_VOL_SPACEFREE = 0x8 + ATTR_VOL_SPACEUSED = 0x800000 + ATTR_VOL_UUID = 0x40000 + ATTR_VOL_VALIDMASK = 0xf087ffff + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x8010427e + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x8000 + BSDLY = 0x8000 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_MONOTONIC_RAW_APPROX = 0x5 + CLOCK_PROCESS_CPUTIME_ID = 0xc + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x10 + CLOCK_UPTIME_RAW = 0x8 + CLOCK_UPTIME_RAW_APPROX = 0x9 + CLONE_NOFOLLOW = 0x1 + CLONE_NOOWNERCOPY = 0x2 + CR0 = 0x0 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTLIOCGINFO = 0xc0644e03 + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x10a + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_DARWIN = 0x10a + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0xf + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x11 + EVFILT_THREADMARKER = 0x11 + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DISPATCH2 = 0x180 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EV_UDATA_SPECIFIC = 0x100 + EV_VANISHED = 0x200 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FF1 = 0x4000 + FFDLY = 0x4000 + FLUSHO = 0x800000 + FSOPT_ATTR_CMN_EXTENDED = 0x20 + FSOPT_NOFOLLOW = 0x1 + FSOPT_NOINMEMUPDATE = 0x2 + FSOPT_PACK_INVAL_ATTRS = 0x8 + FSOPT_REPORT_FULLSIZE = 0x4 + FSOPT_RETURN_REALDEV = 0x200 + F_ADDFILESIGS = 0x3d + F_ADDFILESIGS_FOR_DYLD_SIM = 0x53 + F_ADDFILESIGS_INFO = 0x67 + F_ADDFILESIGS_RETURN = 0x61 + F_ADDFILESUPPL = 0x68 + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_BARRIERFSYNC = 0x55 + F_CHECK_LV = 0x62 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPATH_NOFIRMLINK = 0x66 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GETSIGSINFO = 0x69 + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_PUNCHHOLE = 0x63 + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_SPECULATIVE_READ = 0x65 + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_TRIM_ACTIVE_FILE = 0x64 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6LOWPAN = 0x40 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PKTAP = 0xfe + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x400473d1 + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_3542DSTOPTS = 0x32 + IPV6_3542HOPLIMIT = 0x2f + IPV6_3542HOPOPTS = 0x31 + IPV6_3542NEXTHOP = 0x30 + IPV6_3542PKTINFO = 0x2e + IPV6_3542RTHDR = 0x33 + IPV6_ADDR_MC_FLAGS_PREFIX = 0x20 + IPV6_ADDR_MC_FLAGS_TRANSIENT = 0x10 + IPV6_ADDR_MC_FLAGS_UNICAST_BASED = 0x30 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOW_ECN_MASK = 0x3000 + IPV6_FRAGTTL = 0x3c + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x3d + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x39 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x1c + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x1b + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_PEERCRED = 0x1 + LOCAL_PEEREPID = 0x3 + LOCAL_PEEREUUID = 0x5 + LOCAL_PEERPID = 0x2 + LOCAL_PEERTOKEN = 0x6 + LOCAL_PEERUUID = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_32BIT = 0x8000 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESILIENT_CODESIGN = 0x2000 + MAP_RESILIENT_MEDIA = 0x4000 + MAP_SHARED = 0x1 + MAP_TRANSLATED_ALLOW_EXECUTE = 0x20000 + MAP_UNIX03 = 0x40000 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x400000 + MNT_CMDFLAGS = 0xf0000 + MNT_CPROTECT = 0x80 + MNT_DEFWRITE = 0x2000000 + MNT_DONTBROWSE = 0x100000 + MNT_DOVOLFS = 0x8000 + MNT_DWAIT = 0x4 + MNT_EXPORTED = 0x100 + MNT_EXT_ROOT_DATA_VOL = 0x1 + MNT_FORCE = 0x80000 + MNT_IGNORE_OWNERSHIP = 0x200000 + MNT_JOURNALED = 0x800000 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NOATIME = 0x10000000 + MNT_NOBLOCK = 0x20000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOUSERXATTR = 0x1000000 + MNT_NOWAIT = 0x2 + MNT_QUARANTINE = 0x400 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_REMOVABLE = 0x200 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x40000000 + MNT_STRICTATIME = 0x80000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNKNOWNPERMISSIONS = 0x200000 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xd7f0f7ff + MNT_WAIT = 0x1 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_NOSIGNAL = 0x80000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_FLAGS_PRIV = 0xa + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xb + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NFDBITS = 0x20 + NL0 = 0x0 + NL1 = 0x100 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_FUNLOCK = 0x100 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MACHTIME = 0x100 + NOTE_MACH_CONTINUOUS_TIME = 0x80 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DP_GETRAWUNENCRYPTED = 0x2 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NOFOLLOW_ANY = 0x20000000 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DEAD = 0x20000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_GLOBAL = 0x40000000 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_NOIFREF = 0x2000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SEEK_CUR = 0x1 + SEEK_DATA = 0x4 + SEEK_END = 0x2 + SEEK_HOLE = 0x3 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIF6LOWPAN = 0xc02069c5 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFFUNCTIONALTYPE = 0xc02069ad + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGIFXMEDIA = 0xc02c6948 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIF6LOWPAN = 0x802069c4 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NETSVC_MARKING_LEVEL = 0x1119 + SO_NET_SERVICE_TYPE = 0x1116 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TRACKER_ATTRIBUTE_FLAGS_APP_APPROVED = 0x1 + SO_TRACKER_ATTRIBUTE_FLAGS_DOMAIN_SHORT = 0x4 + SO_TRACKER_ATTRIBUTE_FLAGS_TRACKER = 0x2 + SO_TRACKER_TRANSPARENCY_VERSION = 0x3 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0x4 + TABDLY = 0xc04 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_CC = 0xb + TCPOPT_CCECHO = 0xd + TCPOPT_CCNEW = 0xc + TCPOPT_EOL = 0x0 + TCPOPT_FASTOPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_CONNECTION_INFO = 0x106 + TCP_ENABLE_ECN = 0x104 + TCP_FASTOPEN = 0x105 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_RESERVED = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VMIN = 0x10 + VM_LOADAVG = 0x2 + VM_MACHFACTOR = 0x4 + VM_MAXID = 0x6 + VM_METER = 0x1 + VM_SWAPUSAGE = 0x5 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 + XATTR_CREATE = 0x2 + XATTR_NODEFAULT = 0x10 + XATTR_NOFOLLOW = 0x1 + XATTR_NOSECURITY = 0x8 + XATTR_REPLACE = 0x4 + XATTR_SHOWCOMPRESSION = 0x20 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADARCH = syscall.Errno(0x56) + EBADEXEC = syscall.Errno(0x55) + EBADF = syscall.Errno(0x9) + EBADMACHO = syscall.Errno(0x58) + EBADMSG = syscall.Errno(0x5e) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x59) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDEVERR = syscall.Errno(0x53) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x5a) + EILSEQ = syscall.Errno(0x5c) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x6a) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5f) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x60) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x61) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5b) + ENOPOLICY = syscall.Errno(0x67) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x62) + ENOSTR = syscall.Errno(0x63) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x68) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x66) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x69) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x64) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EPWROFF = syscall.Errno(0x52) + EQFULL = syscall.Errno(0x6a) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHLIBVERS = syscall.Errno(0x57) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x65) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EPWROFF", "device power is off"}, + {83, "EDEVERR", "device error"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EBADEXEC", "bad executable (or shared library)"}, + {86, "EBADARCH", "bad CPU type in executable"}, + {87, "ESHLIBVERS", "shared library version mismatch"}, + {88, "EBADMACHO", "malformed Mach-o file"}, + {89, "ECANCELED", "operation canceled"}, + {90, "EIDRM", "identifier removed"}, + {91, "ENOMSG", "no message of desired type"}, + {92, "EILSEQ", "illegal byte sequence"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EBADMSG", "bad message"}, + {95, "EMULTIHOP", "EMULTIHOP (Reserved)"}, + {96, "ENODATA", "no message available on STREAM"}, + {97, "ENOLINK", "ENOLINK (Reserved)"}, + {98, "ENOSR", "no STREAM resources"}, + {99, "ENOSTR", "not a STREAM"}, + {100, "EPROTO", "protocol error"}, + {101, "ETIME", "STREAM ioctl timeout"}, + {102, "EOPNOTSUPP", "operation not supported on socket"}, + {103, "ENOPOLICY", "policy not found"}, + {104, "ENOTRECOVERABLE", "state not recoverable"}, + {105, "EOWNERDEAD", "previous owner died"}, + {106, "EQFULL", "interface output queue is full"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go new file mode 100644 index 0000000000..17bba0e44f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go @@ -0,0 +1,1738 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && dragonfly +// +build amd64,dragonfly + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x21 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x23 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x22 + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETIF = 0x4020426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DEFAULTBUFSIZE = 0x1000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MAX_CLONES = 0x80 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x109 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DBF = 0xf + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0x8 + EVFILT_FS = -0xa + EVFILT_MARKER = 0xf + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xa + EVFILT_TIMER = -0x7 + EVFILT_USER = -0x9 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_HUP = 0x800 + EV_NODATA = 0x1000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTEXIT_LWP = 0x10000 + EXTEXIT_PROC = 0x0 + EXTEXIT_SETINT = 0x1 + EXTEXIT_SIMPLE = 0x0 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x318e72 + IFF_DEBUG = 0x4 + IFF_IDIRECT = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NPOLLING = 0x100000 + IFF_OACTIVE = 0x400 + IFF_OACTIVE_COMPAT = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_POLLING = 0x10000 + IFF_POLLING_COMPAT = 0x10000 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xf3 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UNKNOWN = 0x102 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHLIM = 0x28 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PKTOPTIONS = 0x34 + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_RESETLOG = 0x37 + IP_FW_TBL_ADD = 0x2a + IP_FW_TBL_CREATE = 0x28 + IP_FW_TBL_DEL = 0x2b + IP_FW_TBL_DESTROY = 0x29 + IP_FW_TBL_EXPIRE = 0x2f + IP_FW_TBL_FLUSH = 0x2c + IP_FW_TBL_GET = 0x2d + IP_FW_TBL_ZERO = 0x2e + IP_FW_X = 0x31 + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CONTROL_END = 0xb + MADV_CONTROL_START = 0xa + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_INVAL = 0xa + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SETMAP = 0xb + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_NOCORE = 0x20000 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_SIZEALIGN = 0x40000 + MAP_STACK = 0x400 + MAP_TRYFIXED = 0x10000 + MAP_VPAGETABLE = 0x2000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x20 + MNT_CMDFLAGS = 0xf0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x4 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SYNCHRONOUS = 0x2 + MNT_TRIM = 0x1000000 + MNT_UPDATE = 0x10000 + MNT_USER = 0x8000 + MNT_VISFLAGMASK = 0xf1f0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x1000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FBLOCKING = 0x10000 + MSG_FMASK = 0xffff0000 + MSG_FNONBLOCKING = 0x20000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_SYNC = 0x800 + MSG_TRUNC = 0x10 + MSG_UNUSED09 = 0x200 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x20000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x8000000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FAPPEND = 0x100000 + O_FASYNCWRITE = 0x800000 + O_FBLOCKING = 0x40000 + O_FMASK = 0xfc0000 + O_FNONBLOCKING = 0x80000 + O_FOFFSET = 0x200000 + O_FSYNC = 0x80 + O_FSYNCWRITE = 0x400000 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0xb + RTAX_MPLS1 = 0x8 + RTAX_MPLS2 = 0x9 + RTAX_MPLS3 = 0xa + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_MPLS1 = 0x100 + RTA_MPLS2 = 0x200 + RTA_MPLS3 = 0x400 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPLSOPS = 0x1000000 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_IWCAPSEGS = 0x400 + RTV_IWMAXSEGS = 0x200 + RTV_MSL = 0x100 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc0406929 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc0206926 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPOLLCPU = 0xc020697e + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFTSOLEN = 0xc0206980 + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFPOLLCPU = 0x8020697d + SIOCSIFTSOLEN = 0x8020697f + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_CPUHINT = 0x1030 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x2000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDSPACE = 0x100a + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDB = 0x9000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCP_FASTKEEP = 0x80 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x20 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0x100 + TCP_MIN_WINSHIFT = 0x5 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_SIGNATURE_ENABLE = 0x10 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCISPTMASTER = 0x20007455 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VCHECKPT = 0x13 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x0 + VM_SWZONE_SIZE_MAX = 0x4000000000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EASYNC = syscall.Errno(0x63) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x63) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEDIUM = syscall.Errno(0x5d) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCKPT = syscall.Signal(0x21) + SIGCKPTEXIT = syscall.Signal(0x22) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOMEDIUM", "no medium found"}, + {99, "EASYNC", "unknown error: 99"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread Scheduler"}, + {33, "SIGCKPT", "checkPoint"}, + {34, "SIGCKPTEXIT", "checkPointExit"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go new file mode 100644 index 0000000000..f8c2c51387 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go @@ -0,0 +1,2043 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && freebsd +// +build 386,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4008426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8008426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc144648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc06c648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB_KONTRON = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETFSBASE = 0x47 + PT_GETGSBASE = 0x49 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GETXMMREGS = 0x40 + PT_GETXSTATE = 0x45 + PT_GETXSTATE_INFO = 0x44 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETFSBASE = 0x48 + PT_SETGSBASE = 0x4a + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SETXMMREGS = 0x41 + PT_SETXSTATE = 0x46 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40087459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x70e0000 + VM_SWZONE_SIZE_MAX = 0x2280000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go new file mode 100644 index 0000000000..96310c3be1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go @@ -0,0 +1,2040 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && freebsd +// +build amd64,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB_KONTRON = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETFSBASE = 0x47 + PT_GETGSBASE = 0x49 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GETXSTATE = 0x45 + PT_GETXSTATE_INFO = 0x44 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETFSBASE = 0x48 + PT_SETGSBASE = 0x4a + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SETXSTATE = 0x46 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go new file mode 100644 index 0000000000..777b69defa --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go @@ -0,0 +1,2034 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && freebsd +// +build arm,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x804c6490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc078648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB_KONTRON = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GETVFPREGS = 0x40 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SETVFPREGS = 0x41 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc028698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go new file mode 100644 index 0000000000..c557ac2db3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go @@ -0,0 +1,2034 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && freebsd +// +build arm64,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFRONTSTUFF = 0x40086486 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80506490 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCZONECMD = 0xc080648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB_KONTRON = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f52 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0xd0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOG_ID_LEN = 0x40 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_GP_INCREASE = 0x446 + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_BCACHE_SIZE_MAX = 0x19000000 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go new file mode 100644 index 0000000000..341b4d9626 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go @@ -0,0 +1,2148 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && freebsd +// +build riscv64,freebsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_HYPERV = 0x2b + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2b + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + ALTWERASE = 0x200 + B0 = 0x0 + B1000000 = 0xf4240 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1500000 = 0x16e360 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B2000000 = 0x1e8480 + B230400 = 0x38400 + B2400 = 0x960 + B2500000 = 0x2625a0 + B28800 = 0x7080 + B300 = 0x12c + B3000000 = 0x2dc6c0 + B3500000 = 0x3567e0 + B38400 = 0x9600 + B4000000 = 0x3d0900 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B500000 = 0x7a120 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETVLANPCP = 0x80044285 + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CAP_ACCEPT = 0x200000020000000 + CAP_ACL_CHECK = 0x400000000010000 + CAP_ACL_DELETE = 0x400000000020000 + CAP_ACL_GET = 0x400000000040000 + CAP_ACL_SET = 0x400000000080000 + CAP_ALL0 = 0x20007ffffffffff + CAP_ALL1 = 0x4000000001fffff + CAP_BIND = 0x200000040000000 + CAP_BINDAT = 0x200008000000400 + CAP_CHFLAGSAT = 0x200000000001400 + CAP_CONNECT = 0x200000080000000 + CAP_CONNECTAT = 0x200010000000400 + CAP_CREATE = 0x200000000000040 + CAP_EVENT = 0x400000000000020 + CAP_EXTATTR_DELETE = 0x400000000001000 + CAP_EXTATTR_GET = 0x400000000002000 + CAP_EXTATTR_LIST = 0x400000000004000 + CAP_EXTATTR_SET = 0x400000000008000 + CAP_FCHDIR = 0x200000000000800 + CAP_FCHFLAGS = 0x200000000001000 + CAP_FCHMOD = 0x200000000002000 + CAP_FCHMODAT = 0x200000000002400 + CAP_FCHOWN = 0x200000000004000 + CAP_FCHOWNAT = 0x200000000004400 + CAP_FCNTL = 0x200000000008000 + CAP_FCNTL_ALL = 0x78 + CAP_FCNTL_GETFL = 0x8 + CAP_FCNTL_GETOWN = 0x20 + CAP_FCNTL_SETFL = 0x10 + CAP_FCNTL_SETOWN = 0x40 + CAP_FEXECVE = 0x200000000000080 + CAP_FLOCK = 0x200000000010000 + CAP_FPATHCONF = 0x200000000020000 + CAP_FSCK = 0x200000000040000 + CAP_FSTAT = 0x200000000080000 + CAP_FSTATAT = 0x200000000080400 + CAP_FSTATFS = 0x200000000100000 + CAP_FSYNC = 0x200000000000100 + CAP_FTRUNCATE = 0x200000000000200 + CAP_FUTIMES = 0x200000000200000 + CAP_FUTIMESAT = 0x200000000200400 + CAP_GETPEERNAME = 0x200000100000000 + CAP_GETSOCKNAME = 0x200000200000000 + CAP_GETSOCKOPT = 0x200000400000000 + CAP_IOCTL = 0x400000000000080 + CAP_IOCTLS_ALL = 0x7fffffffffffffff + CAP_KQUEUE = 0x400000000100040 + CAP_KQUEUE_CHANGE = 0x400000000100000 + CAP_KQUEUE_EVENT = 0x400000000000040 + CAP_LINKAT_SOURCE = 0x200020000000400 + CAP_LINKAT_TARGET = 0x200000000400400 + CAP_LISTEN = 0x200000800000000 + CAP_LOOKUP = 0x200000000000400 + CAP_MAC_GET = 0x400000000000001 + CAP_MAC_SET = 0x400000000000002 + CAP_MKDIRAT = 0x200000000800400 + CAP_MKFIFOAT = 0x200000001000400 + CAP_MKNODAT = 0x200000002000400 + CAP_MMAP = 0x200000000000010 + CAP_MMAP_R = 0x20000000000001d + CAP_MMAP_RW = 0x20000000000001f + CAP_MMAP_RWX = 0x20000000000003f + CAP_MMAP_RX = 0x20000000000003d + CAP_MMAP_W = 0x20000000000001e + CAP_MMAP_WX = 0x20000000000003e + CAP_MMAP_X = 0x20000000000003c + CAP_PDGETPID = 0x400000000000200 + CAP_PDKILL = 0x400000000000800 + CAP_PDWAIT = 0x400000000000400 + CAP_PEELOFF = 0x200001000000000 + CAP_POLL_EVENT = 0x400000000000020 + CAP_PREAD = 0x20000000000000d + CAP_PWRITE = 0x20000000000000e + CAP_READ = 0x200000000000001 + CAP_RECV = 0x200000000000001 + CAP_RENAMEAT_SOURCE = 0x200000004000400 + CAP_RENAMEAT_TARGET = 0x200040000000400 + CAP_RIGHTS_VERSION = 0x0 + CAP_RIGHTS_VERSION_00 = 0x0 + CAP_SEEK = 0x20000000000000c + CAP_SEEK_TELL = 0x200000000000004 + CAP_SEM_GETVALUE = 0x400000000000004 + CAP_SEM_POST = 0x400000000000008 + CAP_SEM_WAIT = 0x400000000000010 + CAP_SEND = 0x200000000000002 + CAP_SETSOCKOPT = 0x200002000000000 + CAP_SHUTDOWN = 0x200004000000000 + CAP_SOCK_CLIENT = 0x200007780000003 + CAP_SOCK_SERVER = 0x200007f60000003 + CAP_SYMLINKAT = 0x200000008000400 + CAP_TTYHOOK = 0x400000000000100 + CAP_UNLINKAT = 0x200000010000400 + CAP_UNUSED0_44 = 0x200080000000000 + CAP_UNUSED0_57 = 0x300000000000000 + CAP_UNUSED1_22 = 0x400000000200000 + CAP_UNUSED1_57 = 0x500000000000000 + CAP_WRITE = 0x200000000000002 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x5 + CLOCK_MONOTONIC = 0x4 + CLOCK_MONOTONIC_COARSE = 0xc + CLOCK_MONOTONIC_FAST = 0xc + CLOCK_MONOTONIC_PRECISE = 0xb + CLOCK_PROCESS_CPUTIME_ID = 0xf + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_COARSE = 0xa + CLOCK_REALTIME_FAST = 0xa + CLOCK_REALTIME_PRECISE = 0x9 + CLOCK_SECOND = 0xd + CLOCK_THREAD_CPUTIME_ID = 0xe + CLOCK_UPTIME = 0x5 + CLOCK_UPTIME_FAST = 0x8 + CLOCK_UPTIME_PRECISE = 0x7 + CLOCK_VIRTUAL = 0x1 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x30000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DIOCGATTR = 0xc148648e + DIOCGDELETE = 0x80106488 + DIOCGFLUSH = 0x20006487 + DIOCGFWHEADS = 0x40046483 + DIOCGFWSECTORS = 0x40046482 + DIOCGIDENT = 0x41006489 + DIOCGKERNELDUMP = 0xc0986492 + DIOCGMEDIASIZE = 0x40086481 + DIOCGPHYSPATH = 0x4400648d + DIOCGPROVIDERNAME = 0x4400648a + DIOCGSECTORSIZE = 0x40046480 + DIOCGSTRIPEOFFSET = 0x4008648c + DIOCGSTRIPESIZE = 0x4008648b + DIOCSKERNELDUMP = 0x80986491 + DIOCSKERNELDUMP_FREEBSD11 = 0x80046485 + DIOCSKERNELDUMP_FREEBSD12 = 0x80506490 + DIOCZONECMD = 0xc080648f + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_BREDR_BB = 0xff + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_BLUETOOTH_LE_LL = 0xfb + DLT_BLUETOOTH_LE_LL_WITH_PHDR = 0x100 + DLT_BLUETOOTH_LINUX_MONITOR = 0xfe + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_CLASS_NETBSD_RAWAF = 0x2240000 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DISPLAYPORT_AUX = 0x113 + DLT_DOCSIS = 0x8f + DLT_DOCSIS31_XRA31 = 0x111 + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_EPON = 0x103 + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_ETHERNET_MPACKET = 0x112 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_INFINIBAND = 0xf7 + DLT_IPFILTER = 0x74 + DLT_IPMB_KONTRON = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPMI_HPM_2 = 0x104 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_ISO_14443 = 0x108 + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LINUX_SLL2 = 0x114 + DLT_LOOP = 0x6c + DLT_LORATAP = 0x10e + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0x114 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NETLINK = 0xfd + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NORDIC_BLE = 0x110 + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PKTAP = 0x102 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PROFIBUS_DL = 0x101 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RDS = 0x109 + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_RTAC_SERIAL = 0xfa + DLT_SCCP = 0x8e + DLT_SCTP = 0xf8 + DLT_SDLC = 0x10c + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TI_LLN_SNIFFER = 0x10d + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USBPCAP = 0xf9 + DLT_USB_DARWIN = 0x10a + DLT_USB_FREEBSD = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_VSOCK = 0x10f + DLT_WATTSTOPPER_DLM = 0x107 + DLT_WIHART = 0xdf + DLT_WIRESHARK_UPPER_PDU = 0xfc + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DLT_ZWAVE_R1_R2 = 0x105 + DLT_ZWAVE_R3 = 0x106 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EHE_DEAD_PRIORITY = -0x1 + EVFILT_AIO = -0x3 + EVFILT_EMPTY = -0xd + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_PROCDESC = -0x8 + EVFILT_READ = -0x1 + EVFILT_SENDFILE = -0xc + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xd + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVNAMEMAP_NAME_SIZE = 0x40 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_FLAG2 = 0x4000 + EV_FORCEONESHOT = 0x100 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_MAXNAMELEN = 0xff + EXTATTR_NAMESPACE_EMPTY = 0x0 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_NONE = -0xc8 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_ADD_SEALS = 0x13 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_GET_SEALS = 0x14 + F_ISUNIONSTACK = 0x15 + F_KINFO = 0x16 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFCAP_WOL_MAGIC = 0x2000 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_KNOWSEPOCH = 0x20 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOGROUP = 0x800000 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_IEEE1394 = 0x90 + IFT_INFINIBAND = 0xc7 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_PPP = 0x17 + IFT_PROPVIRTUAL = 0x35 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_NETMASK_DEFAULT = 0xffffff00 + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DCCP = 0x21 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HIP = 0x8b + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_RESERVED_253 = 0xfd + IPPROTO_RESERVED_254 = 0xfe + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SHIM6 = 0x8c + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDMULTI = 0x41 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FLOWID = 0x43 + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_LEN = 0x14 + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FLOWTYPE = 0x44 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_ORIGDSTADDR = 0x48 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVFLOWID = 0x46 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVORIGDSTADDR = 0x48 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRSSBUCKETID = 0x47 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RSSBUCKETID = 0x45 + IPV6_RSS_LISTEN_BUCKET = 0x42 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IPV6_VLAN_PCP = 0x4b + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BINDMULTI = 0x19 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FLOWID = 0x5a + IP_FLOWTYPE = 0x5b + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_ORIGDSTADDR = 0x1b + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVFLOWID = 0x5d + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVORIGDSTADDR = 0x1b + IP_RECVRETOPTS = 0x6 + IP_RECVRSSBUCKETID = 0x5e + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSSBUCKETID = 0x5c + IP_RSS_LISTEN_BUCKET = 0x1a + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + IP_VLAN_PCP = 0x4b + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCAL_CONNWAIT = 0x4 + LOCAL_CREDS = 0x2 + LOCAL_CREDS_PERSISTENT = 0x3 + LOCAL_PEERCRED = 0x1 + LOCAL_VENDOR = 0x80000000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_EXCL = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GUARD = 0x2000 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RESERVED0020 = 0x20 + MAP_RESERVED0040 = 0x40 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCAST_BLOCK_SOURCE = 0x54 + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x50 + MCAST_JOIN_SOURCE_GROUP = 0x52 + MCAST_LEAVE_GROUP = 0x51 + MCAST_LEAVE_SOURCE_GROUP = 0x53 + MCAST_UNBLOCK_SOURCE = 0x55 + MCAST_UNDEFINED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = -0x78000000 + MFD_HUGE_16MB = 0x60000000 + MFD_HUGE_1GB = 0x78000000 + MFD_HUGE_1MB = 0x50000000 + MFD_HUGE_256MB = 0x70000000 + MFD_HUGE_2GB = 0x7c000000 + MFD_HUGE_2MB = 0x54000000 + MFD_HUGE_32MB = 0x64000000 + MFD_HUGE_512KB = 0x4c000000 + MFD_HUGE_512MB = 0x74000000 + MFD_HUGE_64KB = 0x40000000 + MFD_HUGE_8MB = 0x5c000000 + MFD_HUGE_MASK = 0xfc000000 + MFD_HUGE_SHIFT = 0x1a + MNT_ACLS = 0x8000000 + MNT_ASYNC = 0x40 + MNT_AUTOMOUNTED = 0x200000000 + MNT_BYFSID = 0x8000000 + MNT_CMDFLAGS = 0x300d0f0000 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_EMPTYDIR = 0x2000000000 + MNT_EXKERB = 0x800 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x20000000 + MNT_EXRDONLY = 0x80 + MNT_EXTLS = 0x4000000000 + MNT_EXTLSCERT = 0x8000000000 + MNT_EXTLSCERTUSER = 0x10000000000 + MNT_FORCE = 0x80000 + MNT_GJOURNAL = 0x2000000 + MNT_IGNORE = 0x800000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_MULTILABEL = 0x4000000 + MNT_NFS4ACLS = 0x10 + MNT_NOATIME = 0x10000000 + MNT_NOCLUSTERR = 0x40000000 + MNT_NOCLUSTERW = 0x80000000 + MNT_NOCOVER = 0x1000000000 + MNT_NOEXEC = 0x4 + MNT_NONBUSY = 0x4000000 + MNT_NOSUID = 0x8 + MNT_NOSYMFOLLOW = 0x400000 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SNAPSHOT = 0x1000000 + MNT_SOFTDEP = 0x200000 + MNT_SUIDDIR = 0x100000 + MNT_SUJ = 0x100000000 + MNT_SUSPEND = 0x4 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UNTRUSTED = 0x800000000 + MNT_UPDATE = 0x10000 + MNT_UPDATEMASK = 0xad8d0807e + MNT_USER = 0x8000 + MNT_VERIFIED = 0x400000000 + MNT_VISFLAGMASK = 0xffef0ffff + MNT_WAIT = 0x1 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x80000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_NHGRP = 0x7 + NET_RT_NHOP = 0x6 + NFDBITS = 0x40 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ABSTIME = 0x10 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_CLOSE = 0x100 + NOTE_CLOSE_WRITE = 0x200 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FILE_POLL = 0x2 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_MSECONDS = 0x2 + NOTE_NSECONDS = 0x8 + NOTE_OPEN = 0x80 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_READ = 0x400 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x4 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x1000000 + O_EMPTY_PATH = 0x2000000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_PATH = 0x400000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RESOLVE_BENEATH = 0x800000 + O_SEARCH = 0x40000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_VERIFY = 0x200000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PIOD_READ_D = 0x1 + PIOD_READ_I = 0x3 + PIOD_WRITE_D = 0x2 + PIOD_WRITE_I = 0x4 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PTRACE_DEFAULT = 0x1 + PTRACE_EXEC = 0x1 + PTRACE_FORK = 0x8 + PTRACE_LWP = 0x10 + PTRACE_SCE = 0x2 + PTRACE_SCX = 0x4 + PTRACE_SYSCALL = 0x6 + PTRACE_VFORK = 0x20 + PT_ATTACH = 0xa + PT_CLEARSTEP = 0x10 + PT_CONTINUE = 0x7 + PT_COREDUMP = 0x1d + PT_DETACH = 0xb + PT_FIRSTMACH = 0x40 + PT_FOLLOW_FORK = 0x17 + PT_GETDBREGS = 0x25 + PT_GETFPREGS = 0x23 + PT_GETLWPLIST = 0xf + PT_GETNUMLWPS = 0xe + PT_GETREGS = 0x21 + PT_GET_EVENT_MASK = 0x19 + PT_GET_SC_ARGS = 0x1b + PT_GET_SC_RET = 0x1c + PT_IO = 0xc + PT_KILL = 0x8 + PT_LWPINFO = 0xd + PT_LWP_EVENTS = 0x18 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_RESUME = 0x13 + PT_SETDBREGS = 0x26 + PT_SETFPREGS = 0x24 + PT_SETREGS = 0x22 + PT_SETSTEP = 0x11 + PT_SET_EVENT_MASK = 0x1a + PT_STEP = 0x9 + PT_SUSPEND = 0x12 + PT_SYSCALL = 0x16 + PT_TO_SCE = 0x14 + PT_TO_SCX = 0x15 + PT_TRACE_ME = 0x0 + PT_VM_ENTRY = 0x29 + PT_VM_TIMESTAMP = 0x28 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + P_ZONEID = 0xc + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FIXEDMTU = 0x80000 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_ALL_FIBS = -0x1 + RT_BLACKHOLE = 0x40 + RT_DEFAULT_FIB = 0x0 + RT_DEFAULT_WEIGHT = 0x1 + RT_HAS_GW = 0x80 + RT_HAS_HEADER = 0x10 + RT_HAS_HEADER_BIT = 0x4 + RT_L2_ME = 0x4 + RT_L2_ME_BIT = 0x2 + RT_LLE_CACHE = 0x100 + RT_MAX_WEIGHT = 0xffffff + RT_MAY_LOOP = 0x8 + RT_MAY_LOOP_BIT = 0x3 + RT_REJECT = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_CREDS2 = 0x8 + SCM_MONOTONIC = 0x6 + SCM_REALTIME = 0x5 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIME_INFO = 0x7 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGHWADDR = 0xc020693e + SIOCGI2C = 0xc020693d + SIOCGIFADDR = 0xc0206921 + SIOCGIFALIAS = 0xc044692d + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0x8020692c + SIOCGIFDESCR = 0xc020692a + SIOCGIFDOWNREASON = 0xc058699a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRSSHASH = 0xc0186997 + SIOCGIFRSSKEY = 0xc0946996 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFXMEDIA = 0xc030698b + SIOCGLANPCP = 0xc0206998 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCGTUNFIB = 0xc020695e + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLANPCP = 0x80206999 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSTUNFIB = 0x8020695f + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_LOCAL = 0x0 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1019 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_MAX_PACING_RATE = 0x1018 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RERROR = 0x20000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSEPORT_LB = 0x10000 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TS_BINTIME = 0x1 + SO_TS_CLOCK = 0x1017 + SO_TS_CLOCK_MAX = 0x3 + SO_TS_DEFAULT = 0x0 + SO_TS_MONOTONIC = 0x3 + SO_TS_REALTIME = 0x2 + SO_TS_REALTIME_MICRO = 0x0 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB3 = 0x4 + TABDLY = 0x4 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_FAST_OPEN = 0x22 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_PAD = 0x0 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_WINDOW = 0x3 + TCP_BBR_ACK_COMP_ALG = 0x448 + TCP_BBR_ALGORITHM = 0x43b + TCP_BBR_DRAIN_INC_EXTRA = 0x43c + TCP_BBR_DRAIN_PG = 0x42e + TCP_BBR_EXTRA_GAIN = 0x449 + TCP_BBR_EXTRA_STATE = 0x453 + TCP_BBR_FLOOR_MIN_TSO = 0x454 + TCP_BBR_HDWR_PACE = 0x451 + TCP_BBR_HOLD_TARGET = 0x436 + TCP_BBR_IWINTSO = 0x42b + TCP_BBR_LOWGAIN_FD = 0x436 + TCP_BBR_LOWGAIN_HALF = 0x435 + TCP_BBR_LOWGAIN_THRESH = 0x434 + TCP_BBR_MAX_RTO = 0x439 + TCP_BBR_MIN_RTO = 0x438 + TCP_BBR_MIN_TOPACEOUT = 0x455 + TCP_BBR_ONE_RETRAN = 0x431 + TCP_BBR_PACE_CROSS = 0x442 + TCP_BBR_PACE_DEL_TAR = 0x43f + TCP_BBR_PACE_OH = 0x435 + TCP_BBR_PACE_PER_SEC = 0x43e + TCP_BBR_PACE_SEG_MAX = 0x440 + TCP_BBR_PACE_SEG_MIN = 0x441 + TCP_BBR_POLICER_DETECT = 0x457 + TCP_BBR_PROBE_RTT_GAIN = 0x44d + TCP_BBR_PROBE_RTT_INT = 0x430 + TCP_BBR_PROBE_RTT_LEN = 0x44e + TCP_BBR_RACK_INIT_RATE = 0x458 + TCP_BBR_RACK_RTT_USE = 0x44a + TCP_BBR_RECFORCE = 0x42c + TCP_BBR_REC_OVER_HPTS = 0x43a + TCP_BBR_RETRAN_WTSO = 0x44b + TCP_BBR_RWND_IS_APP = 0x42f + TCP_BBR_SEND_IWND_IN_TSO = 0x44f + TCP_BBR_STARTUP_EXIT_EPOCH = 0x43d + TCP_BBR_STARTUP_LOSS_EXIT = 0x432 + TCP_BBR_STARTUP_PG = 0x42d + TCP_BBR_TMR_PACE_OH = 0x448 + TCP_BBR_TSLIMITS = 0x434 + TCP_BBR_TSTMP_RAISES = 0x456 + TCP_BBR_UNLIMITED = 0x43b + TCP_BBR_USEDEL_RATE = 0x437 + TCP_BBR_USE_LOWGAIN = 0x433 + TCP_BBR_USE_RACK_CHEAT = 0x450 + TCP_BBR_USE_RACK_RR = 0x450 + TCP_BBR_UTTER_MAX_TSO = 0x452 + TCP_CA_NAME_MAX = 0x10 + TCP_CCALGOOPT = 0x41 + TCP_CONGESTION = 0x40 + TCP_DATA_AFTER_CLOSE = 0x44c + TCP_DEFER_OPTIONS = 0x470 + TCP_DELACK = 0x48 + TCP_FASTOPEN = 0x401 + TCP_FASTOPEN_MAX_COOKIE_LEN = 0x10 + TCP_FASTOPEN_MIN_COOKIE_LEN = 0x4 + TCP_FASTOPEN_PSK_LEN = 0x10 + TCP_FAST_RSM_HACK = 0x471 + TCP_FIN_IS_RST = 0x49 + TCP_FUNCTION_BLK = 0x2000 + TCP_FUNCTION_NAME_LEN_MAX = 0x20 + TCP_HDWR_RATE_CAP = 0x46a + TCP_HDWR_UP_ONLY = 0x46c + TCP_IDLE_REDUCE = 0x46 + TCP_INFO = 0x20 + TCP_IWND_NB = 0x2b + TCP_IWND_NSEG = 0x2c + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_LOG = 0x22 + TCP_LOGBUF = 0x23 + TCP_LOGDUMP = 0x25 + TCP_LOGDUMPID = 0x26 + TCP_LOGID = 0x24 + TCP_LOGID_CNT = 0x2e + TCP_LOG_ID_LEN = 0x40 + TCP_LOG_LIMIT = 0x4a + TCP_LOG_TAG = 0x2f + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXPEAKRATE = 0x45 + TCP_MAXSEG = 0x2 + TCP_MAXUNACKTIME = 0x44 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NO_PRR = 0x462 + TCP_PACING_RATE_CAP = 0x46b + TCP_PCAP_IN = 0x1000 + TCP_PCAP_OUT = 0x800 + TCP_PERF_INFO = 0x4e + TCP_PROC_ACCOUNTING = 0x4c + TCP_RACK_ABC_VAL = 0x46d + TCP_RACK_CHEAT_NOT_CONF_RATE = 0x459 + TCP_RACK_DO_DETECTION = 0x449 + TCP_RACK_EARLY_RECOV = 0x423 + TCP_RACK_EARLY_SEG = 0x424 + TCP_RACK_FORCE_MSEG = 0x45d + TCP_RACK_GP_INCREASE = 0x446 + TCP_RACK_GP_INCREASE_CA = 0x45a + TCP_RACK_GP_INCREASE_REC = 0x45c + TCP_RACK_GP_INCREASE_SS = 0x45b + TCP_RACK_IDLE_REDUCE_HIGH = 0x444 + TCP_RACK_MBUF_QUEUE = 0x41a + TCP_RACK_MEASURE_CNT = 0x46f + TCP_RACK_MIN_PACE = 0x445 + TCP_RACK_MIN_PACE_SEG = 0x446 + TCP_RACK_MIN_TO = 0x422 + TCP_RACK_NONRXT_CFG_RATE = 0x463 + TCP_RACK_NO_PUSH_AT_MAX = 0x466 + TCP_RACK_PACE_ALWAYS = 0x41f + TCP_RACK_PACE_MAX_SEG = 0x41e + TCP_RACK_PACE_RATE_CA = 0x45e + TCP_RACK_PACE_RATE_REC = 0x460 + TCP_RACK_PACE_RATE_SS = 0x45f + TCP_RACK_PACE_REDUCE = 0x41d + TCP_RACK_PACE_TO_FILL = 0x467 + TCP_RACK_PACING_BETA = 0x472 + TCP_RACK_PACING_BETA_ECN = 0x473 + TCP_RACK_PKT_DELAY = 0x428 + TCP_RACK_PROFILE = 0x469 + TCP_RACK_PROP = 0x41b + TCP_RACK_PROP_RATE = 0x420 + TCP_RACK_PRR_SENDALOT = 0x421 + TCP_RACK_REORD_FADE = 0x426 + TCP_RACK_REORD_THRESH = 0x425 + TCP_RACK_RR_CONF = 0x459 + TCP_RACK_TIMER_SLOP = 0x474 + TCP_RACK_TLP_INC_VAR = 0x429 + TCP_RACK_TLP_REDUCE = 0x41c + TCP_RACK_TLP_THRESH = 0x427 + TCP_RACK_TLP_USE = 0x447 + TCP_REC_ABC_VAL = 0x46e + TCP_REMOTE_UDP_ENCAPS_PORT = 0x47 + TCP_REUSPORT_LB_NUMA = 0x402 + TCP_REUSPORT_LB_NUMA_CURDOM = -0x1 + TCP_REUSPORT_LB_NUMA_NODOM = -0x2 + TCP_RXTLS_ENABLE = 0x29 + TCP_RXTLS_MODE = 0x2a + TCP_SHARED_CWND_ALLOWED = 0x4b + TCP_SHARED_CWND_ENABLE = 0x464 + TCP_SHARED_CWND_TIME_LIMIT = 0x468 + TCP_STATS = 0x21 + TCP_TIMELY_DYN_ADJ = 0x465 + TCP_TLS_MODE_IFNET = 0x2 + TCP_TLS_MODE_NONE = 0x0 + TCP_TLS_MODE_SW = 0x1 + TCP_TLS_MODE_TOE = 0x3 + TCP_TXTLS_ENABLE = 0x27 + TCP_TXTLS_MODE = 0x28 + TCP_USER_LOG = 0x30 + TCP_USE_CMP_ACKS = 0x4d + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x59) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x55) + ECAPMODE = syscall.Errno(0x5e) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDOOFUS = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x56) + EINPROGRESS = syscall.Errno(0x24) + EINTEGRITY = syscall.Errno(0x61) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x61) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5a) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x57) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5b) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCAPABLE = syscall.Errno(0x5d) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5f) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EOWNERDEAD = syscall.Errno(0x60) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5c) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGLIBRT = syscall.Signal(0x21) + SIGLWP = syscall.Signal(0x20) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EWOULDBLOCK", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "ECANCELED", "operation canceled"}, + {86, "EILSEQ", "illegal byte sequence"}, + {87, "ENOATTR", "attribute not found"}, + {88, "EDOOFUS", "programming error"}, + {89, "EBADMSG", "bad message"}, + {90, "EMULTIHOP", "multihop attempted"}, + {91, "ENOLINK", "link has been severed"}, + {92, "EPROTO", "protocol error"}, + {93, "ENOTCAPABLE", "capabilities insufficient"}, + {94, "ECAPMODE", "not permitted in capability mode"}, + {95, "ENOTRECOVERABLE", "state not recoverable"}, + {96, "EOWNERDEAD", "previous owner died"}, + {97, "EINTEGRITY", "integrity check failed"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "unknown signal"}, + {33, "SIGLIBRT", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux.go new file mode 100644 index 0000000000..398c37e52d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux.go @@ -0,0 +1,3479 @@ +// Code generated by mkmerge; DO NOT EDIT. + +//go:build linux +// +build linux + +package unix + +import "syscall" + +const ( + AAFS_MAGIC = 0x5a3c69f0 + ADFS_SUPER_MAGIC = 0xadf5 + AFFS_SUPER_MAGIC = 0xadff + AFS_FS_MAGIC = 0x6b414653 + AFS_SUPER_MAGIC = 0x5346414f + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2e + AF_MCTP = 0x2d + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_QIPCRTR = 0x2a + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SMC = 0x2b + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + AF_XDP = 0x2c + ALG_OP_DECRYPT = 0x0 + ALG_OP_ENCRYPT = 0x1 + ALG_SET_AEAD_ASSOCLEN = 0x4 + ALG_SET_AEAD_AUTHSIZE = 0x5 + ALG_SET_DRBG_ENTROPY = 0x6 + ALG_SET_IV = 0x2 + ALG_SET_KEY = 0x1 + ALG_SET_KEY_BY_KEY_SERIAL = 0x7 + ALG_SET_OP = 0x3 + ANON_INODE_FS_MAGIC = 0x9041934 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_MCTP = 0x122 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_RAWIP = 0x207 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_VSOCKMON = 0x33a + ARPHRD_X25 = 0x10f + AUDIT_ADD = 0x3eb + AUDIT_ADD_RULE = 0x3f3 + AUDIT_ALWAYS = 0x2 + AUDIT_ANOM_ABEND = 0x6a5 + AUDIT_ANOM_CREAT = 0x6a7 + AUDIT_ANOM_LINK = 0x6a6 + AUDIT_ANOM_PROMISCUOUS = 0x6a4 + AUDIT_ARCH = 0xb + AUDIT_ARCH_AARCH64 = 0xc00000b7 + AUDIT_ARCH_ALPHA = 0xc0009026 + AUDIT_ARCH_ARCOMPACT = 0x4000005d + AUDIT_ARCH_ARCOMPACTBE = 0x5d + AUDIT_ARCH_ARCV2 = 0x400000c3 + AUDIT_ARCH_ARCV2BE = 0xc3 + AUDIT_ARCH_ARM = 0x40000028 + AUDIT_ARCH_ARMEB = 0x28 + AUDIT_ARCH_C6X = 0x4000008c + AUDIT_ARCH_C6XBE = 0x8c + AUDIT_ARCH_CRIS = 0x4000004c + AUDIT_ARCH_CSKY = 0x400000fc + AUDIT_ARCH_FRV = 0x5441 + AUDIT_ARCH_H8300 = 0x2e + AUDIT_ARCH_HEXAGON = 0xa4 + AUDIT_ARCH_I386 = 0x40000003 + AUDIT_ARCH_IA64 = 0xc0000032 + AUDIT_ARCH_LOONGARCH32 = 0x40000102 + AUDIT_ARCH_LOONGARCH64 = 0xc0000102 + AUDIT_ARCH_M32R = 0x58 + AUDIT_ARCH_M68K = 0x4 + AUDIT_ARCH_MICROBLAZE = 0xbd + AUDIT_ARCH_MIPS = 0x8 + AUDIT_ARCH_MIPS64 = 0x80000008 + AUDIT_ARCH_MIPS64N32 = 0xa0000008 + AUDIT_ARCH_MIPSEL = 0x40000008 + AUDIT_ARCH_MIPSEL64 = 0xc0000008 + AUDIT_ARCH_MIPSEL64N32 = 0xe0000008 + AUDIT_ARCH_NDS32 = 0x400000a7 + AUDIT_ARCH_NDS32BE = 0xa7 + AUDIT_ARCH_NIOS2 = 0x40000071 + AUDIT_ARCH_OPENRISC = 0x5c + AUDIT_ARCH_PARISC = 0xf + AUDIT_ARCH_PARISC64 = 0x8000000f + AUDIT_ARCH_PPC = 0x14 + AUDIT_ARCH_PPC64 = 0x80000015 + AUDIT_ARCH_PPC64LE = 0xc0000015 + AUDIT_ARCH_RISCV32 = 0x400000f3 + AUDIT_ARCH_RISCV64 = 0xc00000f3 + AUDIT_ARCH_S390 = 0x16 + AUDIT_ARCH_S390X = 0x80000016 + AUDIT_ARCH_SH = 0x2a + AUDIT_ARCH_SH64 = 0x8000002a + AUDIT_ARCH_SHEL = 0x4000002a + AUDIT_ARCH_SHEL64 = 0xc000002a + AUDIT_ARCH_SPARC = 0x2 + AUDIT_ARCH_SPARC64 = 0x8000002b + AUDIT_ARCH_TILEGX = 0xc00000bf + AUDIT_ARCH_TILEGX32 = 0x400000bf + AUDIT_ARCH_TILEPRO = 0x400000bc + AUDIT_ARCH_UNICORE = 0x4000006e + AUDIT_ARCH_X86_64 = 0xc000003e + AUDIT_ARCH_XTENSA = 0x5e + AUDIT_ARG0 = 0xc8 + AUDIT_ARG1 = 0xc9 + AUDIT_ARG2 = 0xca + AUDIT_ARG3 = 0xcb + AUDIT_AVC = 0x578 + AUDIT_AVC_PATH = 0x57a + AUDIT_BITMASK_SIZE = 0x40 + AUDIT_BIT_MASK = 0x8000000 + AUDIT_BIT_TEST = 0x48000000 + AUDIT_BPF = 0x536 + AUDIT_BPRM_FCAPS = 0x529 + AUDIT_CAPSET = 0x52a + AUDIT_CLASS_CHATTR = 0x2 + AUDIT_CLASS_CHATTR_32 = 0x3 + AUDIT_CLASS_DIR_WRITE = 0x0 + AUDIT_CLASS_DIR_WRITE_32 = 0x1 + AUDIT_CLASS_READ = 0x4 + AUDIT_CLASS_READ_32 = 0x5 + AUDIT_CLASS_SIGNAL = 0x8 + AUDIT_CLASS_SIGNAL_32 = 0x9 + AUDIT_CLASS_WRITE = 0x6 + AUDIT_CLASS_WRITE_32 = 0x7 + AUDIT_COMPARE_AUID_TO_EUID = 0x10 + AUDIT_COMPARE_AUID_TO_FSUID = 0xe + AUDIT_COMPARE_AUID_TO_OBJ_UID = 0x5 + AUDIT_COMPARE_AUID_TO_SUID = 0xf + AUDIT_COMPARE_EGID_TO_FSGID = 0x17 + AUDIT_COMPARE_EGID_TO_OBJ_GID = 0x4 + AUDIT_COMPARE_EGID_TO_SGID = 0x18 + AUDIT_COMPARE_EUID_TO_FSUID = 0x12 + AUDIT_COMPARE_EUID_TO_OBJ_UID = 0x3 + AUDIT_COMPARE_EUID_TO_SUID = 0x11 + AUDIT_COMPARE_FSGID_TO_OBJ_GID = 0x9 + AUDIT_COMPARE_FSUID_TO_OBJ_UID = 0x8 + AUDIT_COMPARE_GID_TO_EGID = 0x14 + AUDIT_COMPARE_GID_TO_FSGID = 0x15 + AUDIT_COMPARE_GID_TO_OBJ_GID = 0x2 + AUDIT_COMPARE_GID_TO_SGID = 0x16 + AUDIT_COMPARE_SGID_TO_FSGID = 0x19 + AUDIT_COMPARE_SGID_TO_OBJ_GID = 0x7 + AUDIT_COMPARE_SUID_TO_FSUID = 0x13 + AUDIT_COMPARE_SUID_TO_OBJ_UID = 0x6 + AUDIT_COMPARE_UID_TO_AUID = 0xa + AUDIT_COMPARE_UID_TO_EUID = 0xb + AUDIT_COMPARE_UID_TO_FSUID = 0xc + AUDIT_COMPARE_UID_TO_OBJ_UID = 0x1 + AUDIT_COMPARE_UID_TO_SUID = 0xd + AUDIT_CONFIG_CHANGE = 0x519 + AUDIT_CWD = 0x51b + AUDIT_DAEMON_ABORT = 0x4b2 + AUDIT_DAEMON_CONFIG = 0x4b3 + AUDIT_DAEMON_END = 0x4b1 + AUDIT_DAEMON_START = 0x4b0 + AUDIT_DEL = 0x3ec + AUDIT_DEL_RULE = 0x3f4 + AUDIT_DEVMAJOR = 0x64 + AUDIT_DEVMINOR = 0x65 + AUDIT_DIR = 0x6b + AUDIT_DM_CTRL = 0x53a + AUDIT_DM_EVENT = 0x53b + AUDIT_EGID = 0x6 + AUDIT_EOE = 0x528 + AUDIT_EQUAL = 0x40000000 + AUDIT_EUID = 0x2 + AUDIT_EVENT_LISTENER = 0x537 + AUDIT_EXE = 0x70 + AUDIT_EXECVE = 0x51d + AUDIT_EXIT = 0x67 + AUDIT_FAIL_PANIC = 0x2 + AUDIT_FAIL_PRINTK = 0x1 + AUDIT_FAIL_SILENT = 0x0 + AUDIT_FANOTIFY = 0x533 + AUDIT_FD_PAIR = 0x525 + AUDIT_FEATURE_BITMAP_ALL = 0x7f + AUDIT_FEATURE_BITMAP_BACKLOG_LIMIT = 0x1 + AUDIT_FEATURE_BITMAP_BACKLOG_WAIT_TIME = 0x2 + AUDIT_FEATURE_BITMAP_EXCLUDE_EXTEND = 0x8 + AUDIT_FEATURE_BITMAP_EXECUTABLE_PATH = 0x4 + AUDIT_FEATURE_BITMAP_FILTER_FS = 0x40 + AUDIT_FEATURE_BITMAP_LOST_RESET = 0x20 + AUDIT_FEATURE_BITMAP_SESSIONID_FILTER = 0x10 + AUDIT_FEATURE_CHANGE = 0x530 + AUDIT_FEATURE_LOGINUID_IMMUTABLE = 0x1 + AUDIT_FEATURE_ONLY_UNSET_LOGINUID = 0x0 + AUDIT_FEATURE_VERSION = 0x1 + AUDIT_FIELD_COMPARE = 0x6f + AUDIT_FILETYPE = 0x6c + AUDIT_FILTERKEY = 0xd2 + AUDIT_FILTER_ENTRY = 0x2 + AUDIT_FILTER_EXCLUDE = 0x5 + AUDIT_FILTER_EXIT = 0x4 + AUDIT_FILTER_FS = 0x6 + AUDIT_FILTER_PREPEND = 0x10 + AUDIT_FILTER_TASK = 0x1 + AUDIT_FILTER_TYPE = 0x5 + AUDIT_FILTER_URING_EXIT = 0x7 + AUDIT_FILTER_USER = 0x0 + AUDIT_FILTER_WATCH = 0x3 + AUDIT_FIRST_KERN_ANOM_MSG = 0x6a4 + AUDIT_FIRST_USER_MSG = 0x44c + AUDIT_FIRST_USER_MSG2 = 0x834 + AUDIT_FSGID = 0x8 + AUDIT_FSTYPE = 0x1a + AUDIT_FSUID = 0x4 + AUDIT_GET = 0x3e8 + AUDIT_GET_FEATURE = 0x3fb + AUDIT_GID = 0x5 + AUDIT_GREATER_THAN = 0x20000000 + AUDIT_GREATER_THAN_OR_EQUAL = 0x60000000 + AUDIT_INODE = 0x66 + AUDIT_INTEGRITY_DATA = 0x708 + AUDIT_INTEGRITY_EVM_XATTR = 0x70e + AUDIT_INTEGRITY_HASH = 0x70b + AUDIT_INTEGRITY_METADATA = 0x709 + AUDIT_INTEGRITY_PCR = 0x70c + AUDIT_INTEGRITY_POLICY_RULE = 0x70f + AUDIT_INTEGRITY_RULE = 0x70d + AUDIT_INTEGRITY_STATUS = 0x70a + AUDIT_IPC = 0x517 + AUDIT_IPC_SET_PERM = 0x51f + AUDIT_KERNEL = 0x7d0 + AUDIT_KERNEL_OTHER = 0x524 + AUDIT_KERN_MODULE = 0x532 + AUDIT_LAST_FEATURE = 0x1 + AUDIT_LAST_KERN_ANOM_MSG = 0x707 + AUDIT_LAST_USER_MSG = 0x4af + AUDIT_LAST_USER_MSG2 = 0xbb7 + AUDIT_LESS_THAN = 0x10000000 + AUDIT_LESS_THAN_OR_EQUAL = 0x50000000 + AUDIT_LIST = 0x3ea + AUDIT_LIST_RULES = 0x3f5 + AUDIT_LOGIN = 0x3ee + AUDIT_LOGINUID = 0x9 + AUDIT_LOGINUID_SET = 0x18 + AUDIT_MAC_CALIPSO_ADD = 0x58a + AUDIT_MAC_CALIPSO_DEL = 0x58b + AUDIT_MAC_CIPSOV4_ADD = 0x57f + AUDIT_MAC_CIPSOV4_DEL = 0x580 + AUDIT_MAC_CONFIG_CHANGE = 0x57d + AUDIT_MAC_IPSEC_ADDSA = 0x583 + AUDIT_MAC_IPSEC_ADDSPD = 0x585 + AUDIT_MAC_IPSEC_DELSA = 0x584 + AUDIT_MAC_IPSEC_DELSPD = 0x586 + AUDIT_MAC_IPSEC_EVENT = 0x587 + AUDIT_MAC_MAP_ADD = 0x581 + AUDIT_MAC_MAP_DEL = 0x582 + AUDIT_MAC_POLICY_LOAD = 0x57b + AUDIT_MAC_STATUS = 0x57c + AUDIT_MAC_UNLBL_ALLOW = 0x57e + AUDIT_MAC_UNLBL_STCADD = 0x588 + AUDIT_MAC_UNLBL_STCDEL = 0x589 + AUDIT_MAKE_EQUIV = 0x3f7 + AUDIT_MAX_FIELDS = 0x40 + AUDIT_MAX_FIELD_COMPARE = 0x19 + AUDIT_MAX_KEY_LEN = 0x100 + AUDIT_MESSAGE_TEXT_MAX = 0x2170 + AUDIT_MMAP = 0x52b + AUDIT_MQ_GETSETATTR = 0x523 + AUDIT_MQ_NOTIFY = 0x522 + AUDIT_MQ_OPEN = 0x520 + AUDIT_MQ_SENDRECV = 0x521 + AUDIT_MSGTYPE = 0xc + AUDIT_NEGATE = 0x80000000 + AUDIT_NETFILTER_CFG = 0x52d + AUDIT_NETFILTER_PKT = 0x52c + AUDIT_NEVER = 0x0 + AUDIT_NLGRP_MAX = 0x1 + AUDIT_NOT_EQUAL = 0x30000000 + AUDIT_NR_FILTERS = 0x8 + AUDIT_OBJ_GID = 0x6e + AUDIT_OBJ_LEV_HIGH = 0x17 + AUDIT_OBJ_LEV_LOW = 0x16 + AUDIT_OBJ_PID = 0x526 + AUDIT_OBJ_ROLE = 0x14 + AUDIT_OBJ_TYPE = 0x15 + AUDIT_OBJ_UID = 0x6d + AUDIT_OBJ_USER = 0x13 + AUDIT_OPENAT2 = 0x539 + AUDIT_OPERATORS = 0x78000000 + AUDIT_PATH = 0x516 + AUDIT_PERM = 0x6a + AUDIT_PERM_ATTR = 0x8 + AUDIT_PERM_EXEC = 0x1 + AUDIT_PERM_READ = 0x4 + AUDIT_PERM_WRITE = 0x2 + AUDIT_PERS = 0xa + AUDIT_PID = 0x0 + AUDIT_POSSIBLE = 0x1 + AUDIT_PPID = 0x12 + AUDIT_PROCTITLE = 0x52f + AUDIT_REPLACE = 0x531 + AUDIT_SADDR_FAM = 0x71 + AUDIT_SECCOMP = 0x52e + AUDIT_SELINUX_ERR = 0x579 + AUDIT_SESSIONID = 0x19 + AUDIT_SET = 0x3e9 + AUDIT_SET_FEATURE = 0x3fa + AUDIT_SGID = 0x7 + AUDIT_SID_UNSET = 0xffffffff + AUDIT_SIGNAL_INFO = 0x3f2 + AUDIT_SOCKADDR = 0x51a + AUDIT_SOCKETCALL = 0x518 + AUDIT_STATUS_BACKLOG_LIMIT = 0x10 + AUDIT_STATUS_BACKLOG_WAIT_TIME = 0x20 + AUDIT_STATUS_BACKLOG_WAIT_TIME_ACTUAL = 0x80 + AUDIT_STATUS_ENABLED = 0x1 + AUDIT_STATUS_FAILURE = 0x2 + AUDIT_STATUS_LOST = 0x40 + AUDIT_STATUS_PID = 0x4 + AUDIT_STATUS_RATE_LIMIT = 0x8 + AUDIT_SUBJ_CLR = 0x11 + AUDIT_SUBJ_ROLE = 0xe + AUDIT_SUBJ_SEN = 0x10 + AUDIT_SUBJ_TYPE = 0xf + AUDIT_SUBJ_USER = 0xd + AUDIT_SUCCESS = 0x68 + AUDIT_SUID = 0x3 + AUDIT_SYSCALL = 0x514 + AUDIT_SYSCALL_CLASSES = 0x10 + AUDIT_TIME_ADJNTPVAL = 0x535 + AUDIT_TIME_INJOFFSET = 0x534 + AUDIT_TRIM = 0x3f6 + AUDIT_TTY = 0x527 + AUDIT_TTY_GET = 0x3f8 + AUDIT_TTY_SET = 0x3f9 + AUDIT_UID = 0x1 + AUDIT_UID_UNSET = 0xffffffff + AUDIT_UNUSED_BITS = 0x7fffc00 + AUDIT_URINGOP = 0x538 + AUDIT_USER = 0x3ed + AUDIT_USER_AVC = 0x453 + AUDIT_USER_TTY = 0x464 + AUDIT_VERSION_BACKLOG_LIMIT = 0x1 + AUDIT_VERSION_BACKLOG_WAIT_TIME = 0x2 + AUDIT_VERSION_LATEST = 0x7f + AUDIT_WATCH = 0x69 + AUDIT_WATCH_INS = 0x3ef + AUDIT_WATCH_LIST = 0x3f1 + AUDIT_WATCH_REM = 0x3f0 + AUTOFS_SUPER_MAGIC = 0x187 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BDEVFS_MAGIC = 0x62646576 + BINDERFS_SUPER_MAGIC = 0x6c6f6f70 + BINFMTFS_MAGIC = 0x42494e4d + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_ALU64 = 0x7 + BPF_AND = 0x50 + BPF_ARSH = 0xc0 + BPF_ATOMIC = 0xc0 + BPF_B = 0x10 + BPF_BUILD_ID_SIZE = 0x14 + BPF_CALL = 0x80 + BPF_CMPXCHG = 0xf1 + BPF_DIV = 0x30 + BPF_DW = 0x18 + BPF_END = 0xd0 + BPF_EXIT = 0x90 + BPF_FETCH = 0x1 + BPF_FROM_BE = 0x8 + BPF_FROM_LE = 0x0 + BPF_FS_MAGIC = 0xcafe4a11 + BPF_F_ALLOW_MULTI = 0x2 + BPF_F_ALLOW_OVERRIDE = 0x1 + BPF_F_ANY_ALIGNMENT = 0x2 + BPF_F_KPROBE_MULTI_RETURN = 0x1 + BPF_F_QUERY_EFFECTIVE = 0x1 + BPF_F_REPLACE = 0x4 + BPF_F_SLEEPABLE = 0x10 + BPF_F_STRICT_ALIGNMENT = 0x1 + BPF_F_TEST_RND_HI32 = 0x4 + BPF_F_TEST_RUN_ON_CPU = 0x1 + BPF_F_TEST_STATE_FREQ = 0x8 + BPF_F_TEST_XDP_LIVE_FRAMES = 0x2 + BPF_F_XDP_HAS_FRAGS = 0x20 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JLE = 0xb0 + BPF_JLT = 0xa0 + BPF_JMP = 0x5 + BPF_JMP32 = 0x6 + BPF_JNE = 0x50 + BPF_JSET = 0x40 + BPF_JSGE = 0x70 + BPF_JSGT = 0x60 + BPF_JSLE = 0xd0 + BPF_JSLT = 0xc0 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MOV = 0xb0 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OBJ_NAME_LEN = 0x10 + BPF_OR = 0x40 + BPF_PSEUDO_BTF_ID = 0x3 + BPF_PSEUDO_CALL = 0x1 + BPF_PSEUDO_FUNC = 0x4 + BPF_PSEUDO_KFUNC_CALL = 0x2 + BPF_PSEUDO_MAP_FD = 0x1 + BPF_PSEUDO_MAP_IDX = 0x5 + BPF_PSEUDO_MAP_IDX_VALUE = 0x6 + BPF_PSEUDO_MAP_VALUE = 0x2 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAG_SIZE = 0x8 + BPF_TAX = 0x0 + BPF_TO_BE = 0x8 + BPF_TO_LE = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XADD = 0xc0 + BPF_XCHG = 0xe1 + BPF_XOR = 0xa0 + BRKINT = 0x2 + BS0 = 0x0 + BTRFS_SUPER_MAGIC = 0x9123683e + BTRFS_TEST_MAGIC = 0x73727279 + BUS_BLUETOOTH = 0x5 + BUS_HIL = 0x4 + BUS_USB = 0x3 + BUS_VIRTUAL = 0x6 + CAN_BCM = 0x2 + CAN_BUS_OFF_THRESHOLD = 0x100 + CAN_CTRLMODE_3_SAMPLES = 0x4 + CAN_CTRLMODE_BERR_REPORTING = 0x10 + CAN_CTRLMODE_CC_LEN8_DLC = 0x100 + CAN_CTRLMODE_FD = 0x20 + CAN_CTRLMODE_FD_NON_ISO = 0x80 + CAN_CTRLMODE_LISTENONLY = 0x2 + CAN_CTRLMODE_LOOPBACK = 0x1 + CAN_CTRLMODE_ONE_SHOT = 0x8 + CAN_CTRLMODE_PRESUME_ACK = 0x40 + CAN_CTRLMODE_TDC_AUTO = 0x200 + CAN_CTRLMODE_TDC_MANUAL = 0x400 + CAN_EFF_FLAG = 0x80000000 + CAN_EFF_ID_BITS = 0x1d + CAN_EFF_MASK = 0x1fffffff + CAN_ERROR_PASSIVE_THRESHOLD = 0x80 + CAN_ERROR_WARNING_THRESHOLD = 0x60 + CAN_ERR_ACK = 0x20 + CAN_ERR_BUSERROR = 0x80 + CAN_ERR_BUSOFF = 0x40 + CAN_ERR_CNT = 0x200 + CAN_ERR_CRTL = 0x4 + CAN_ERR_CRTL_ACTIVE = 0x40 + CAN_ERR_CRTL_RX_OVERFLOW = 0x1 + CAN_ERR_CRTL_RX_PASSIVE = 0x10 + CAN_ERR_CRTL_RX_WARNING = 0x4 + CAN_ERR_CRTL_TX_OVERFLOW = 0x2 + CAN_ERR_CRTL_TX_PASSIVE = 0x20 + CAN_ERR_CRTL_TX_WARNING = 0x8 + CAN_ERR_CRTL_UNSPEC = 0x0 + CAN_ERR_DLC = 0x8 + CAN_ERR_FLAG = 0x20000000 + CAN_ERR_LOSTARB = 0x2 + CAN_ERR_LOSTARB_UNSPEC = 0x0 + CAN_ERR_MASK = 0x1fffffff + CAN_ERR_PROT = 0x8 + CAN_ERR_PROT_ACTIVE = 0x40 + CAN_ERR_PROT_BIT = 0x1 + CAN_ERR_PROT_BIT0 = 0x8 + CAN_ERR_PROT_BIT1 = 0x10 + CAN_ERR_PROT_FORM = 0x2 + CAN_ERR_PROT_LOC_ACK = 0x19 + CAN_ERR_PROT_LOC_ACK_DEL = 0x1b + CAN_ERR_PROT_LOC_CRC_DEL = 0x18 + CAN_ERR_PROT_LOC_CRC_SEQ = 0x8 + CAN_ERR_PROT_LOC_DATA = 0xa + CAN_ERR_PROT_LOC_DLC = 0xb + CAN_ERR_PROT_LOC_EOF = 0x1a + CAN_ERR_PROT_LOC_ID04_00 = 0xe + CAN_ERR_PROT_LOC_ID12_05 = 0xf + CAN_ERR_PROT_LOC_ID17_13 = 0x7 + CAN_ERR_PROT_LOC_ID20_18 = 0x6 + CAN_ERR_PROT_LOC_ID28_21 = 0x2 + CAN_ERR_PROT_LOC_IDE = 0x5 + CAN_ERR_PROT_LOC_INTERM = 0x12 + CAN_ERR_PROT_LOC_RES0 = 0x9 + CAN_ERR_PROT_LOC_RES1 = 0xd + CAN_ERR_PROT_LOC_RTR = 0xc + CAN_ERR_PROT_LOC_SOF = 0x3 + CAN_ERR_PROT_LOC_SRTR = 0x4 + CAN_ERR_PROT_LOC_UNSPEC = 0x0 + CAN_ERR_PROT_OVERLOAD = 0x20 + CAN_ERR_PROT_STUFF = 0x4 + CAN_ERR_PROT_TX = 0x80 + CAN_ERR_PROT_UNSPEC = 0x0 + CAN_ERR_RESTARTED = 0x100 + CAN_ERR_TRX = 0x10 + CAN_ERR_TRX_CANH_NO_WIRE = 0x4 + CAN_ERR_TRX_CANH_SHORT_TO_BAT = 0x5 + CAN_ERR_TRX_CANH_SHORT_TO_GND = 0x7 + CAN_ERR_TRX_CANH_SHORT_TO_VCC = 0x6 + CAN_ERR_TRX_CANL_NO_WIRE = 0x40 + CAN_ERR_TRX_CANL_SHORT_TO_BAT = 0x50 + CAN_ERR_TRX_CANL_SHORT_TO_CANH = 0x80 + CAN_ERR_TRX_CANL_SHORT_TO_GND = 0x70 + CAN_ERR_TRX_CANL_SHORT_TO_VCC = 0x60 + CAN_ERR_TRX_UNSPEC = 0x0 + CAN_ERR_TX_TIMEOUT = 0x1 + CAN_INV_FILTER = 0x20000000 + CAN_ISOTP = 0x6 + CAN_J1939 = 0x7 + CAN_MAX_DLC = 0x8 + CAN_MAX_DLEN = 0x8 + CAN_MAX_RAW_DLC = 0xf + CAN_MCNET = 0x5 + CAN_MTU = 0x10 + CAN_NPROTO = 0x8 + CAN_RAW = 0x1 + CAN_RAW_FILTER_MAX = 0x200 + CAN_RTR_FLAG = 0x40000000 + CAN_SFF_ID_BITS = 0xb + CAN_SFF_MASK = 0x7ff + CAN_TERMINATION_DISABLED = 0x0 + CAN_TP16 = 0x3 + CAN_TP20 = 0x4 + CAP_AUDIT_CONTROL = 0x1e + CAP_AUDIT_READ = 0x25 + CAP_AUDIT_WRITE = 0x1d + CAP_BLOCK_SUSPEND = 0x24 + CAP_BPF = 0x27 + CAP_CHECKPOINT_RESTORE = 0x28 + CAP_CHOWN = 0x0 + CAP_DAC_OVERRIDE = 0x1 + CAP_DAC_READ_SEARCH = 0x2 + CAP_FOWNER = 0x3 + CAP_FSETID = 0x4 + CAP_IPC_LOCK = 0xe + CAP_IPC_OWNER = 0xf + CAP_KILL = 0x5 + CAP_LAST_CAP = 0x28 + CAP_LEASE = 0x1c + CAP_LINUX_IMMUTABLE = 0x9 + CAP_MAC_ADMIN = 0x21 + CAP_MAC_OVERRIDE = 0x20 + CAP_MKNOD = 0x1b + CAP_NET_ADMIN = 0xc + CAP_NET_BIND_SERVICE = 0xa + CAP_NET_BROADCAST = 0xb + CAP_NET_RAW = 0xd + CAP_PERFMON = 0x26 + CAP_SETFCAP = 0x1f + CAP_SETGID = 0x6 + CAP_SETPCAP = 0x8 + CAP_SETUID = 0x7 + CAP_SYSLOG = 0x22 + CAP_SYS_ADMIN = 0x15 + CAP_SYS_BOOT = 0x16 + CAP_SYS_CHROOT = 0x12 + CAP_SYS_MODULE = 0x10 + CAP_SYS_NICE = 0x17 + CAP_SYS_PACCT = 0x14 + CAP_SYS_PTRACE = 0x13 + CAP_SYS_RAWIO = 0x11 + CAP_SYS_RESOURCE = 0x18 + CAP_SYS_TIME = 0x19 + CAP_SYS_TTY_CONFIG = 0x1a + CAP_WAKE_ALARM = 0x23 + CEPH_SUPER_MAGIC = 0xc36400 + CFLUSH = 0xf + CGROUP2_SUPER_MAGIC = 0x63677270 + CGROUP_SUPER_MAGIC = 0x27e0eb + CIFS_SUPER_MAGIC = 0xff534d42 + CLOCK_BOOTTIME = 0x7 + CLOCK_BOOTTIME_ALARM = 0x9 + CLOCK_DEFAULT = 0x0 + CLOCK_EXT = 0x1 + CLOCK_INT = 0x2 + CLOCK_MONOTONIC = 0x1 + CLOCK_MONOTONIC_COARSE = 0x6 + CLOCK_MONOTONIC_RAW = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_REALTIME_ALARM = 0x8 + CLOCK_REALTIME_COARSE = 0x5 + CLOCK_TAI = 0xb + CLOCK_THREAD_CPUTIME_ID = 0x3 + CLOCK_TXFROMRX = 0x4 + CLOCK_TXINT = 0x3 + CLONE_ARGS_SIZE_VER0 = 0x40 + CLONE_ARGS_SIZE_VER1 = 0x50 + CLONE_ARGS_SIZE_VER2 = 0x58 + CLONE_CHILD_CLEARTID = 0x200000 + CLONE_CHILD_SETTID = 0x1000000 + CLONE_CLEAR_SIGHAND = 0x100000000 + CLONE_DETACHED = 0x400000 + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_INTO_CGROUP = 0x200000000 + CLONE_IO = 0x80000000 + CLONE_NEWCGROUP = 0x2000000 + CLONE_NEWIPC = 0x8000000 + CLONE_NEWNET = 0x40000000 + CLONE_NEWNS = 0x20000 + CLONE_NEWPID = 0x20000000 + CLONE_NEWTIME = 0x80 + CLONE_NEWUSER = 0x10000000 + CLONE_NEWUTS = 0x4000000 + CLONE_PARENT = 0x8000 + CLONE_PARENT_SETTID = 0x100000 + CLONE_PIDFD = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SETTLS = 0x80000 + CLONE_SIGHAND = 0x800 + CLONE_SYSVSEM = 0x40000 + CLONE_THREAD = 0x10000 + CLONE_UNTRACED = 0x800000 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CMSPAR = 0x40000000 + CODA_SUPER_MAGIC = 0x73757245 + CR0 = 0x0 + CRAMFS_MAGIC = 0x28cd3d45 + CRTSCTS = 0x80000000 + CRYPTO_MAX_NAME = 0x40 + CRYPTO_MSG_MAX = 0x15 + CRYPTO_NR_MSGTYPES = 0x6 + CRYPTO_REPORT_MAXSIZE = 0x160 + CS5 = 0x0 + CSIGNAL = 0xff + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSUSP = 0x1a + DAXFS_MAGIC = 0x64646178 + DEBUGFS_MAGIC = 0x64626720 + DEVLINK_CMD_ESWITCH_MODE_GET = 0x1d + DEVLINK_CMD_ESWITCH_MODE_SET = 0x1e + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS = 0x1 + DEVLINK_GENL_MCGRP_CONFIG_NAME = "config" + DEVLINK_GENL_NAME = "devlink" + DEVLINK_GENL_VERSION = 0x1 + DEVLINK_PORT_FN_CAP_MIGRATABLE = 0x2 + DEVLINK_PORT_FN_CAP_ROCE = 0x1 + DEVLINK_SB_THRESHOLD_TO_ALPHA_MAX = 0x14 + DEVLINK_SUPPORTED_FLASH_OVERWRITE_SECTIONS = 0x3 + DEVMEM_MAGIC = 0x454d444d + DEVPTS_SUPER_MAGIC = 0x1cd1 + DMA_BUF_MAGIC = 0x444d4142 + DM_ACTIVE_PRESENT_FLAG = 0x20 + DM_BUFFER_FULL_FLAG = 0x100 + DM_CONTROL_NODE = "control" + DM_DATA_OUT_FLAG = 0x10000 + DM_DEFERRED_REMOVE = 0x20000 + DM_DEV_ARM_POLL = 0xc138fd10 + DM_DEV_CREATE = 0xc138fd03 + DM_DEV_REMOVE = 0xc138fd04 + DM_DEV_RENAME = 0xc138fd05 + DM_DEV_SET_GEOMETRY = 0xc138fd0f + DM_DEV_STATUS = 0xc138fd07 + DM_DEV_SUSPEND = 0xc138fd06 + DM_DEV_WAIT = 0xc138fd08 + DM_DIR = "mapper" + DM_GET_TARGET_VERSION = 0xc138fd11 + DM_IMA_MEASUREMENT_FLAG = 0x80000 + DM_INACTIVE_PRESENT_FLAG = 0x40 + DM_INTERNAL_SUSPEND_FLAG = 0x40000 + DM_IOCTL = 0xfd + DM_LIST_DEVICES = 0xc138fd02 + DM_LIST_VERSIONS = 0xc138fd0d + DM_MAX_TYPE_NAME = 0x10 + DM_NAME_LEN = 0x80 + DM_NAME_LIST_FLAG_DOESNT_HAVE_UUID = 0x2 + DM_NAME_LIST_FLAG_HAS_UUID = 0x1 + DM_NOFLUSH_FLAG = 0x800 + DM_PERSISTENT_DEV_FLAG = 0x8 + DM_QUERY_INACTIVE_TABLE_FLAG = 0x1000 + DM_READONLY_FLAG = 0x1 + DM_REMOVE_ALL = 0xc138fd01 + DM_SECURE_DATA_FLAG = 0x8000 + DM_SKIP_BDGET_FLAG = 0x200 + DM_SKIP_LOCKFS_FLAG = 0x400 + DM_STATUS_TABLE_FLAG = 0x10 + DM_SUSPEND_FLAG = 0x2 + DM_TABLE_CLEAR = 0xc138fd0a + DM_TABLE_DEPS = 0xc138fd0b + DM_TABLE_LOAD = 0xc138fd09 + DM_TABLE_STATUS = 0xc138fd0c + DM_TARGET_MSG = 0xc138fd0e + DM_UEVENT_GENERATED_FLAG = 0x2000 + DM_UUID_FLAG = 0x4000 + DM_UUID_LEN = 0x81 + DM_VERSION = 0xc138fd00 + DM_VERSION_EXTRA = "-ioctl (2022-07-28)" + DM_VERSION_MAJOR = 0x4 + DM_VERSION_MINOR = 0x2f + DM_VERSION_PATCHLEVEL = 0x0 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECRYPTFS_SUPER_MAGIC = 0xf15f + EFD_SEMAPHORE = 0x1 + EFIVARFS_MAGIC = 0xde5e81e4 + EFS_SUPER_MAGIC = 0x414a53 + EM_386 = 0x3 + EM_486 = 0x6 + EM_68K = 0x4 + EM_860 = 0x7 + EM_88K = 0x5 + EM_AARCH64 = 0xb7 + EM_ALPHA = 0x9026 + EM_ALTERA_NIOS2 = 0x71 + EM_ARCOMPACT = 0x5d + EM_ARCV2 = 0xc3 + EM_ARM = 0x28 + EM_BLACKFIN = 0x6a + EM_BPF = 0xf7 + EM_CRIS = 0x4c + EM_CSKY = 0xfc + EM_CYGNUS_M32R = 0x9041 + EM_CYGNUS_MN10300 = 0xbeef + EM_FRV = 0x5441 + EM_H8_300 = 0x2e + EM_HEXAGON = 0xa4 + EM_IA_64 = 0x32 + EM_LOONGARCH = 0x102 + EM_M32 = 0x1 + EM_M32R = 0x58 + EM_MICROBLAZE = 0xbd + EM_MIPS = 0x8 + EM_MIPS_RS3_LE = 0xa + EM_MIPS_RS4_BE = 0xa + EM_MN10300 = 0x59 + EM_NDS32 = 0xa7 + EM_NONE = 0x0 + EM_OPENRISC = 0x5c + EM_PARISC = 0xf + EM_PPC = 0x14 + EM_PPC64 = 0x15 + EM_RISCV = 0xf3 + EM_S390 = 0x16 + EM_S390_OLD = 0xa390 + EM_SH = 0x2a + EM_SPARC = 0x2 + EM_SPARC32PLUS = 0x12 + EM_SPARCV9 = 0x2b + EM_SPU = 0x17 + EM_TILEGX = 0xbf + EM_TILEPRO = 0xbc + EM_TI_C6000 = 0x8c + EM_UNICORE = 0x6e + EM_X86_64 = 0x3e + EM_XTENSA = 0x5e + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EROFS_SUPER_MAGIC_V1 = 0xe0f5e1e2 + ESP_V4_FLOW = 0xa + ESP_V6_FLOW = 0xc + ETHER_FLOW = 0x12 + ETHTOOL_BUSINFO_LEN = 0x20 + ETHTOOL_EROMVERS_LEN = 0x20 + ETHTOOL_FEC_AUTO = 0x2 + ETHTOOL_FEC_BASER = 0x10 + ETHTOOL_FEC_LLRS = 0x20 + ETHTOOL_FEC_NONE = 0x1 + ETHTOOL_FEC_OFF = 0x4 + ETHTOOL_FEC_RS = 0x8 + ETHTOOL_FLAG_ALL = 0x7 + ETHTOOL_FLAG_COMPACT_BITSETS = 0x1 + ETHTOOL_FLAG_OMIT_REPLY = 0x2 + ETHTOOL_FLAG_STATS = 0x4 + ETHTOOL_FLASHDEV = 0x33 + ETHTOOL_FLASH_MAX_FILENAME = 0x80 + ETHTOOL_FWVERS_LEN = 0x20 + ETHTOOL_F_COMPAT = 0x4 + ETHTOOL_F_UNSUPPORTED = 0x1 + ETHTOOL_F_WISH = 0x2 + ETHTOOL_GCHANNELS = 0x3c + ETHTOOL_GCOALESCE = 0xe + ETHTOOL_GDRVINFO = 0x3 + ETHTOOL_GEEE = 0x44 + ETHTOOL_GEEPROM = 0xb + ETHTOOL_GENL_NAME = "ethtool" + ETHTOOL_GENL_VERSION = 0x1 + ETHTOOL_GET_DUMP_DATA = 0x40 + ETHTOOL_GET_DUMP_FLAG = 0x3f + ETHTOOL_GET_TS_INFO = 0x41 + ETHTOOL_GFEATURES = 0x3a + ETHTOOL_GFECPARAM = 0x50 + ETHTOOL_GFLAGS = 0x25 + ETHTOOL_GGRO = 0x2b + ETHTOOL_GGSO = 0x23 + ETHTOOL_GLINK = 0xa + ETHTOOL_GLINKSETTINGS = 0x4c + ETHTOOL_GMODULEEEPROM = 0x43 + ETHTOOL_GMODULEINFO = 0x42 + ETHTOOL_GMSGLVL = 0x7 + ETHTOOL_GPAUSEPARAM = 0x12 + ETHTOOL_GPERMADDR = 0x20 + ETHTOOL_GPFLAGS = 0x27 + ETHTOOL_GPHYSTATS = 0x4a + ETHTOOL_GREGS = 0x4 + ETHTOOL_GRINGPARAM = 0x10 + ETHTOOL_GRSSH = 0x46 + ETHTOOL_GRXCLSRLALL = 0x30 + ETHTOOL_GRXCLSRLCNT = 0x2e + ETHTOOL_GRXCLSRULE = 0x2f + ETHTOOL_GRXCSUM = 0x14 + ETHTOOL_GRXFH = 0x29 + ETHTOOL_GRXFHINDIR = 0x38 + ETHTOOL_GRXNTUPLE = 0x36 + ETHTOOL_GRXRINGS = 0x2d + ETHTOOL_GSET = 0x1 + ETHTOOL_GSG = 0x18 + ETHTOOL_GSSET_INFO = 0x37 + ETHTOOL_GSTATS = 0x1d + ETHTOOL_GSTRINGS = 0x1b + ETHTOOL_GTSO = 0x1e + ETHTOOL_GTUNABLE = 0x48 + ETHTOOL_GTXCSUM = 0x16 + ETHTOOL_GUFO = 0x21 + ETHTOOL_GWOL = 0x5 + ETHTOOL_MCGRP_MONITOR_NAME = "monitor" + ETHTOOL_NWAY_RST = 0x9 + ETHTOOL_PERQUEUE = 0x4b + ETHTOOL_PHYS_ID = 0x1c + ETHTOOL_PHY_EDPD_DFLT_TX_MSECS = 0xffff + ETHTOOL_PHY_EDPD_DISABLE = 0x0 + ETHTOOL_PHY_EDPD_NO_TX = 0xfffe + ETHTOOL_PHY_FAST_LINK_DOWN_OFF = 0xff + ETHTOOL_PHY_FAST_LINK_DOWN_ON = 0x0 + ETHTOOL_PHY_GTUNABLE = 0x4e + ETHTOOL_PHY_STUNABLE = 0x4f + ETHTOOL_RESET = 0x34 + ETHTOOL_RXNTUPLE_ACTION_CLEAR = -0x2 + ETHTOOL_RXNTUPLE_ACTION_DROP = -0x1 + ETHTOOL_RX_FLOW_SPEC_RING = 0xffffffff + ETHTOOL_RX_FLOW_SPEC_RING_VF = 0xff00000000 + ETHTOOL_RX_FLOW_SPEC_RING_VF_OFF = 0x20 + ETHTOOL_SCHANNELS = 0x3d + ETHTOOL_SCOALESCE = 0xf + ETHTOOL_SEEE = 0x45 + ETHTOOL_SEEPROM = 0xc + ETHTOOL_SET_DUMP = 0x3e + ETHTOOL_SFEATURES = 0x3b + ETHTOOL_SFECPARAM = 0x51 + ETHTOOL_SFLAGS = 0x26 + ETHTOOL_SGRO = 0x2c + ETHTOOL_SGSO = 0x24 + ETHTOOL_SLINKSETTINGS = 0x4d + ETHTOOL_SMSGLVL = 0x8 + ETHTOOL_SPAUSEPARAM = 0x13 + ETHTOOL_SPFLAGS = 0x28 + ETHTOOL_SRINGPARAM = 0x11 + ETHTOOL_SRSSH = 0x47 + ETHTOOL_SRXCLSRLDEL = 0x31 + ETHTOOL_SRXCLSRLINS = 0x32 + ETHTOOL_SRXCSUM = 0x15 + ETHTOOL_SRXFH = 0x2a + ETHTOOL_SRXFHINDIR = 0x39 + ETHTOOL_SRXNTUPLE = 0x35 + ETHTOOL_SSET = 0x2 + ETHTOOL_SSG = 0x19 + ETHTOOL_STSO = 0x1f + ETHTOOL_STUNABLE = 0x49 + ETHTOOL_STXCSUM = 0x17 + ETHTOOL_SUFO = 0x22 + ETHTOOL_SWOL = 0x6 + ETHTOOL_TEST = 0x1a + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CANXL = 0xe + ETH_P_CFM = 0x8902 + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_DSA_8021Q = 0xdadb + ETH_P_DSA_A5PSW = 0xe001 + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_ETHERCAT = 0x88a4 + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IBOE = 0x8915 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IFE = 0xed3e + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LLDP = 0x88cc + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MAP = 0xf9 + ETH_P_MCTP = 0xfa + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MRP = 0x88e3 + ETH_P_MVRP = 0x88f5 + ETH_P_NCSI = 0x88f8 + ETH_P_NSH = 0x894f + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PREAUTH = 0x88c7 + ETH_P_PROFINET = 0x8892 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_REALTEK = 0x8899 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EV_ABS = 0x3 + EV_CNT = 0x20 + EV_FF = 0x15 + EV_FF_STATUS = 0x17 + EV_KEY = 0x1 + EV_LED = 0x11 + EV_MAX = 0x1f + EV_MSC = 0x4 + EV_PWR = 0x16 + EV_REL = 0x2 + EV_REP = 0x14 + EV_SND = 0x12 + EV_SW = 0x5 + EV_SYN = 0x0 + EV_VERSION = 0x10001 + EXABYTE_ENABLE_NEST = 0xf0 + EXFAT_SUPER_MAGIC = 0x2011bab0 + EXT2_SUPER_MAGIC = 0xef53 + EXT3_SUPER_MAGIC = 0xef53 + EXT4_SUPER_MAGIC = 0xef53 + EXTA = 0xe + EXTB = 0xf + F2FS_SUPER_MAGIC = 0xf2f52010 + FALLOC_FL_COLLAPSE_RANGE = 0x8 + FALLOC_FL_INSERT_RANGE = 0x20 + FALLOC_FL_KEEP_SIZE = 0x1 + FALLOC_FL_NO_HIDE_STALE = 0x4 + FALLOC_FL_PUNCH_HOLE = 0x2 + FALLOC_FL_UNSHARE_RANGE = 0x40 + FALLOC_FL_ZERO_RANGE = 0x10 + FANOTIFY_METADATA_VERSION = 0x3 + FAN_ACCESS = 0x1 + FAN_ACCESS_PERM = 0x20000 + FAN_ALLOW = 0x1 + FAN_ALL_CLASS_BITS = 0xc + FAN_ALL_EVENTS = 0x3b + FAN_ALL_INIT_FLAGS = 0x3f + FAN_ALL_MARK_FLAGS = 0xff + FAN_ALL_OUTGOING_EVENTS = 0x3403b + FAN_ALL_PERM_EVENTS = 0x30000 + FAN_ATTRIB = 0x4 + FAN_AUDIT = 0x10 + FAN_CLASS_CONTENT = 0x4 + FAN_CLASS_NOTIF = 0x0 + FAN_CLASS_PRE_CONTENT = 0x8 + FAN_CLOEXEC = 0x1 + FAN_CLOSE = 0x18 + FAN_CLOSE_NOWRITE = 0x10 + FAN_CLOSE_WRITE = 0x8 + FAN_CREATE = 0x100 + FAN_DELETE = 0x200 + FAN_DELETE_SELF = 0x400 + FAN_DENY = 0x2 + FAN_ENABLE_AUDIT = 0x40 + FAN_EPIDFD = -0x2 + FAN_EVENT_INFO_TYPE_DFID = 0x3 + FAN_EVENT_INFO_TYPE_DFID_NAME = 0x2 + FAN_EVENT_INFO_TYPE_ERROR = 0x5 + FAN_EVENT_INFO_TYPE_FID = 0x1 + FAN_EVENT_INFO_TYPE_NEW_DFID_NAME = 0xc + FAN_EVENT_INFO_TYPE_OLD_DFID_NAME = 0xa + FAN_EVENT_INFO_TYPE_PIDFD = 0x4 + FAN_EVENT_METADATA_LEN = 0x18 + FAN_EVENT_ON_CHILD = 0x8000000 + FAN_FS_ERROR = 0x8000 + FAN_MARK_ADD = 0x1 + FAN_MARK_DONT_FOLLOW = 0x4 + FAN_MARK_EVICTABLE = 0x200 + FAN_MARK_FILESYSTEM = 0x100 + FAN_MARK_FLUSH = 0x80 + FAN_MARK_IGNORE = 0x400 + FAN_MARK_IGNORED_MASK = 0x20 + FAN_MARK_IGNORED_SURV_MODIFY = 0x40 + FAN_MARK_IGNORE_SURV = 0x440 + FAN_MARK_INODE = 0x0 + FAN_MARK_MOUNT = 0x10 + FAN_MARK_ONLYDIR = 0x8 + FAN_MARK_REMOVE = 0x2 + FAN_MODIFY = 0x2 + FAN_MOVE = 0xc0 + FAN_MOVED_FROM = 0x40 + FAN_MOVED_TO = 0x80 + FAN_MOVE_SELF = 0x800 + FAN_NOFD = -0x1 + FAN_NONBLOCK = 0x2 + FAN_NOPIDFD = -0x1 + FAN_ONDIR = 0x40000000 + FAN_OPEN = 0x20 + FAN_OPEN_EXEC = 0x1000 + FAN_OPEN_EXEC_PERM = 0x40000 + FAN_OPEN_PERM = 0x10000 + FAN_Q_OVERFLOW = 0x4000 + FAN_RENAME = 0x10000000 + FAN_REPORT_DFID_NAME = 0xc00 + FAN_REPORT_DFID_NAME_TARGET = 0x1e00 + FAN_REPORT_DIR_FID = 0x400 + FAN_REPORT_FID = 0x200 + FAN_REPORT_NAME = 0x800 + FAN_REPORT_PIDFD = 0x80 + FAN_REPORT_TARGET_FID = 0x1000 + FAN_REPORT_TID = 0x100 + FAN_UNLIMITED_MARKS = 0x20 + FAN_UNLIMITED_QUEUE = 0x10 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FF0 = 0x0 + FIB_RULE_DEV_DETACHED = 0x8 + FIB_RULE_FIND_SADDR = 0x10000 + FIB_RULE_IIF_DETACHED = 0x8 + FIB_RULE_INVERT = 0x2 + FIB_RULE_OIF_DETACHED = 0x10 + FIB_RULE_PERMANENT = 0x1 + FIB_RULE_UNRESOLVED = 0x4 + FIDEDUPERANGE = 0xc0189436 + FSCRYPT_KEY_DESCRIPTOR_SIZE = 0x8 + FSCRYPT_KEY_DESC_PREFIX = "fscrypt:" + FSCRYPT_KEY_DESC_PREFIX_SIZE = 0x8 + FSCRYPT_KEY_IDENTIFIER_SIZE = 0x10 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_FILES_BUSY = 0x1 + FSCRYPT_KEY_REMOVAL_STATUS_FLAG_OTHER_USERS = 0x2 + FSCRYPT_KEY_SPEC_TYPE_DESCRIPTOR = 0x1 + FSCRYPT_KEY_SPEC_TYPE_IDENTIFIER = 0x2 + FSCRYPT_KEY_STATUS_ABSENT = 0x1 + FSCRYPT_KEY_STATUS_FLAG_ADDED_BY_SELF = 0x1 + FSCRYPT_KEY_STATUS_INCOMPLETELY_REMOVED = 0x3 + FSCRYPT_KEY_STATUS_PRESENT = 0x2 + FSCRYPT_MAX_KEY_SIZE = 0x40 + FSCRYPT_MODE_ADIANTUM = 0x9 + FSCRYPT_MODE_AES_128_CBC = 0x5 + FSCRYPT_MODE_AES_128_CTS = 0x6 + FSCRYPT_MODE_AES_256_CTS = 0x4 + FSCRYPT_MODE_AES_256_HCTR2 = 0xa + FSCRYPT_MODE_AES_256_XTS = 0x1 + FSCRYPT_MODE_SM4_CTS = 0x8 + FSCRYPT_MODE_SM4_XTS = 0x7 + FSCRYPT_POLICY_FLAGS_PAD_16 = 0x2 + FSCRYPT_POLICY_FLAGS_PAD_32 = 0x3 + FSCRYPT_POLICY_FLAGS_PAD_4 = 0x0 + FSCRYPT_POLICY_FLAGS_PAD_8 = 0x1 + FSCRYPT_POLICY_FLAGS_PAD_MASK = 0x3 + FSCRYPT_POLICY_FLAG_DIRECT_KEY = 0x4 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_32 = 0x10 + FSCRYPT_POLICY_FLAG_IV_INO_LBLK_64 = 0x8 + FSCRYPT_POLICY_V1 = 0x0 + FSCRYPT_POLICY_V2 = 0x2 + FS_ENCRYPTION_MODE_ADIANTUM = 0x9 + FS_ENCRYPTION_MODE_AES_128_CBC = 0x5 + FS_ENCRYPTION_MODE_AES_128_CTS = 0x6 + FS_ENCRYPTION_MODE_AES_256_CBC = 0x3 + FS_ENCRYPTION_MODE_AES_256_CTS = 0x4 + FS_ENCRYPTION_MODE_AES_256_GCM = 0x2 + FS_ENCRYPTION_MODE_AES_256_XTS = 0x1 + FS_ENCRYPTION_MODE_INVALID = 0x0 + FS_IOC_ADD_ENCRYPTION_KEY = 0xc0506617 + FS_IOC_GET_ENCRYPTION_KEY_STATUS = 0xc080661a + FS_IOC_GET_ENCRYPTION_POLICY_EX = 0xc0096616 + FS_IOC_MEASURE_VERITY = 0xc0046686 + FS_IOC_READ_VERITY_METADATA = 0xc0286687 + FS_IOC_REMOVE_ENCRYPTION_KEY = 0xc0406618 + FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS = 0xc0406619 + FS_KEY_DESCRIPTOR_SIZE = 0x8 + FS_KEY_DESC_PREFIX = "fscrypt:" + FS_KEY_DESC_PREFIX_SIZE = 0x8 + FS_MAX_KEY_SIZE = 0x40 + FS_POLICY_FLAGS_PAD_16 = 0x2 + FS_POLICY_FLAGS_PAD_32 = 0x3 + FS_POLICY_FLAGS_PAD_4 = 0x0 + FS_POLICY_FLAGS_PAD_8 = 0x1 + FS_POLICY_FLAGS_PAD_MASK = 0x3 + FS_POLICY_FLAGS_VALID = 0x7 + FS_VERITY_FL = 0x100000 + FS_VERITY_HASH_ALG_SHA256 = 0x1 + FS_VERITY_HASH_ALG_SHA512 = 0x2 + FS_VERITY_METADATA_TYPE_DESCRIPTOR = 0x2 + FS_VERITY_METADATA_TYPE_MERKLE_TREE = 0x1 + FS_VERITY_METADATA_TYPE_SIGNATURE = 0x3 + FUSE_SUPER_MAGIC = 0x65735546 + FUTEXFS_SUPER_MAGIC = 0xbad1dea + F_ADD_SEALS = 0x409 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_GET_FILE_RW_HINT = 0x40d + F_GET_RW_HINT = 0x40b + F_GET_SEALS = 0x40a + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_SEAL_FUTURE_WRITE = 0x10 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SET_FILE_RW_HINT = 0x40e + F_SET_RW_HINT = 0x40c + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + GENL_ADMIN_PERM = 0x1 + GENL_CMD_CAP_DO = 0x2 + GENL_CMD_CAP_DUMP = 0x4 + GENL_CMD_CAP_HASPOL = 0x8 + GENL_HDRLEN = 0x4 + GENL_ID_CTRL = 0x10 + GENL_ID_PMCRAID = 0x12 + GENL_ID_VFS_DQUOT = 0x11 + GENL_MAX_ID = 0x3ff + GENL_MIN_ID = 0x10 + GENL_NAMSIZ = 0x10 + GENL_START_ALLOC = 0x13 + GENL_UNS_ADMIN_PERM = 0x10 + GRND_INSECURE = 0x4 + GRND_NONBLOCK = 0x1 + GRND_RANDOM = 0x2 + HDIO_DRIVE_CMD = 0x31f + HDIO_DRIVE_CMD_AEB = 0x31e + HDIO_DRIVE_CMD_HDR_SIZE = 0x4 + HDIO_DRIVE_HOB_HDR_SIZE = 0x8 + HDIO_DRIVE_RESET = 0x31c + HDIO_DRIVE_TASK = 0x31e + HDIO_DRIVE_TASKFILE = 0x31d + HDIO_DRIVE_TASK_HDR_SIZE = 0x8 + HDIO_GETGEO = 0x301 + HDIO_GET_32BIT = 0x309 + HDIO_GET_ACOUSTIC = 0x30f + HDIO_GET_ADDRESS = 0x310 + HDIO_GET_BUSSTATE = 0x31a + HDIO_GET_DMA = 0x30b + HDIO_GET_IDENTITY = 0x30d + HDIO_GET_KEEPSETTINGS = 0x308 + HDIO_GET_MULTCOUNT = 0x304 + HDIO_GET_NICE = 0x30c + HDIO_GET_NOWERR = 0x30a + HDIO_GET_QDMA = 0x305 + HDIO_GET_UNMASKINTR = 0x302 + HDIO_GET_WCACHE = 0x30e + HDIO_OBSOLETE_IDENTITY = 0x307 + HDIO_SCAN_HWIF = 0x328 + HDIO_SET_32BIT = 0x324 + HDIO_SET_ACOUSTIC = 0x32c + HDIO_SET_ADDRESS = 0x32f + HDIO_SET_BUSSTATE = 0x32d + HDIO_SET_DMA = 0x326 + HDIO_SET_KEEPSETTINGS = 0x323 + HDIO_SET_MULTCOUNT = 0x321 + HDIO_SET_NICE = 0x329 + HDIO_SET_NOWERR = 0x325 + HDIO_SET_PIO_MODE = 0x327 + HDIO_SET_QDMA = 0x32e + HDIO_SET_UNMASKINTR = 0x322 + HDIO_SET_WCACHE = 0x32b + HDIO_SET_XFER = 0x306 + HDIO_TRISTATE_HWIF = 0x31b + HDIO_UNREGISTER_HWIF = 0x32a + HID_MAX_DESCRIPTOR_SIZE = 0x1000 + HOSTFS_SUPER_MAGIC = 0xc0ffee + HPFS_SUPER_MAGIC = 0xf995e849 + HUGETLBFS_MAGIC = 0x958458f6 + IBSHIFT = 0x10 + ICRNL = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0xb + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NAPI = 0x10 + IFF_NAPI_FRAGS = 0x20 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_CARRIER = 0x40 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MASK_CREATE = 0x10000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERNET = 0x8f + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_L2TP = 0x73 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MPTCP = 0x106 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADDR_PREFERENCES = 0x48 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_AUTOFLOWLABEL = 0x46 + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_FLOW = 0x11 + IPV6_FREEBIND = 0x4e + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MINHOPCOUNT = 0x49 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_ALL = 0x1d + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_ORIGDSTADDR = 0x4a + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVERR_RFC4884 = 0x1f + IPV6_RECVFRAGSIZE = 0x4d + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVORIGDSTADDR = 0x4a + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_ROUTER_ALERT_ISOLATE = 0x1e + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_TRANSPARENT = 0x4b + IPV6_UNICAST_HOPS = 0x10 + IPV6_UNICAST_IF = 0x4c + IPV6_USER_FLOW = 0xe + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVERR_RFC4884 = 0x1a + IP_RECVFRAGSIZE = 0x19 + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_USER_FLOW = 0xd + IP_XFRM_POLICY = 0x11 + ISOFS_SUPER_MAGIC = 0x9660 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUTF8 = 0x4000 + IXANY = 0x800 + JFFS2_SUPER_MAGIC = 0x72b6 + KCMPROTO_CONNECTED = 0x0 + KCM_RECV_DISABLE = 0x1 + KEXEC_ARCH_386 = 0x30000 + KEXEC_ARCH_68K = 0x40000 + KEXEC_ARCH_AARCH64 = 0xb70000 + KEXEC_ARCH_ARM = 0x280000 + KEXEC_ARCH_DEFAULT = 0x0 + KEXEC_ARCH_IA_64 = 0x320000 + KEXEC_ARCH_LOONGARCH = 0x1020000 + KEXEC_ARCH_MASK = 0xffff0000 + KEXEC_ARCH_MIPS = 0x80000 + KEXEC_ARCH_MIPS_LE = 0xa0000 + KEXEC_ARCH_PARISC = 0xf0000 + KEXEC_ARCH_PPC = 0x140000 + KEXEC_ARCH_PPC64 = 0x150000 + KEXEC_ARCH_RISCV = 0xf30000 + KEXEC_ARCH_S390 = 0x160000 + KEXEC_ARCH_SH = 0x2a0000 + KEXEC_ARCH_X86_64 = 0x3e0000 + KEXEC_FILE_NO_INITRAMFS = 0x4 + KEXEC_FILE_ON_CRASH = 0x2 + KEXEC_FILE_UNLOAD = 0x1 + KEXEC_ON_CRASH = 0x1 + KEXEC_PRESERVE_CONTEXT = 0x2 + KEXEC_SEGMENT_MAX = 0x10 + KEYCTL_ASSUME_AUTHORITY = 0x10 + KEYCTL_CAPABILITIES = 0x1f + KEYCTL_CAPS0_BIG_KEY = 0x10 + KEYCTL_CAPS0_CAPABILITIES = 0x1 + KEYCTL_CAPS0_DIFFIE_HELLMAN = 0x4 + KEYCTL_CAPS0_INVALIDATE = 0x20 + KEYCTL_CAPS0_MOVE = 0x80 + KEYCTL_CAPS0_PERSISTENT_KEYRINGS = 0x2 + KEYCTL_CAPS0_PUBLIC_KEY = 0x8 + KEYCTL_CAPS0_RESTRICT_KEYRING = 0x40 + KEYCTL_CAPS1_NOTIFICATIONS = 0x4 + KEYCTL_CAPS1_NS_KEYRING_NAME = 0x1 + KEYCTL_CAPS1_NS_KEY_TAG = 0x2 + KEYCTL_CHOWN = 0x4 + KEYCTL_CLEAR = 0x7 + KEYCTL_DESCRIBE = 0x6 + KEYCTL_DH_COMPUTE = 0x17 + KEYCTL_GET_KEYRING_ID = 0x0 + KEYCTL_GET_PERSISTENT = 0x16 + KEYCTL_GET_SECURITY = 0x11 + KEYCTL_INSTANTIATE = 0xc + KEYCTL_INSTANTIATE_IOV = 0x14 + KEYCTL_INVALIDATE = 0x15 + KEYCTL_JOIN_SESSION_KEYRING = 0x1 + KEYCTL_LINK = 0x8 + KEYCTL_MOVE = 0x1e + KEYCTL_MOVE_EXCL = 0x1 + KEYCTL_NEGATE = 0xd + KEYCTL_PKEY_DECRYPT = 0x1a + KEYCTL_PKEY_ENCRYPT = 0x19 + KEYCTL_PKEY_QUERY = 0x18 + KEYCTL_PKEY_SIGN = 0x1b + KEYCTL_PKEY_VERIFY = 0x1c + KEYCTL_READ = 0xb + KEYCTL_REJECT = 0x13 + KEYCTL_RESTRICT_KEYRING = 0x1d + KEYCTL_REVOKE = 0x3 + KEYCTL_SEARCH = 0xa + KEYCTL_SESSION_TO_PARENT = 0x12 + KEYCTL_SETPERM = 0x5 + KEYCTL_SET_REQKEY_KEYRING = 0xe + KEYCTL_SET_TIMEOUT = 0xf + KEYCTL_SUPPORTS_DECRYPT = 0x2 + KEYCTL_SUPPORTS_ENCRYPT = 0x1 + KEYCTL_SUPPORTS_SIGN = 0x4 + KEYCTL_SUPPORTS_VERIFY = 0x8 + KEYCTL_UNLINK = 0x9 + KEYCTL_UPDATE = 0x2 + KEYCTL_WATCH_KEY = 0x20 + KEY_REQKEY_DEFL_DEFAULT = 0x0 + KEY_REQKEY_DEFL_GROUP_KEYRING = 0x6 + KEY_REQKEY_DEFL_NO_CHANGE = -0x1 + KEY_REQKEY_DEFL_PROCESS_KEYRING = 0x2 + KEY_REQKEY_DEFL_REQUESTOR_KEYRING = 0x7 + KEY_REQKEY_DEFL_SESSION_KEYRING = 0x3 + KEY_REQKEY_DEFL_THREAD_KEYRING = 0x1 + KEY_REQKEY_DEFL_USER_KEYRING = 0x4 + KEY_REQKEY_DEFL_USER_SESSION_KEYRING = 0x5 + KEY_SPEC_GROUP_KEYRING = -0x6 + KEY_SPEC_PROCESS_KEYRING = -0x2 + KEY_SPEC_REQKEY_AUTH_KEY = -0x7 + KEY_SPEC_REQUESTOR_KEYRING = -0x8 + KEY_SPEC_SESSION_KEYRING = -0x3 + KEY_SPEC_THREAD_KEYRING = -0x1 + KEY_SPEC_USER_KEYRING = -0x4 + KEY_SPEC_USER_SESSION_KEYRING = -0x5 + LANDLOCK_ACCESS_FS_EXECUTE = 0x1 + LANDLOCK_ACCESS_FS_MAKE_BLOCK = 0x800 + LANDLOCK_ACCESS_FS_MAKE_CHAR = 0x40 + LANDLOCK_ACCESS_FS_MAKE_DIR = 0x80 + LANDLOCK_ACCESS_FS_MAKE_FIFO = 0x400 + LANDLOCK_ACCESS_FS_MAKE_REG = 0x100 + LANDLOCK_ACCESS_FS_MAKE_SOCK = 0x200 + LANDLOCK_ACCESS_FS_MAKE_SYM = 0x1000 + LANDLOCK_ACCESS_FS_READ_DIR = 0x8 + LANDLOCK_ACCESS_FS_READ_FILE = 0x4 + LANDLOCK_ACCESS_FS_REFER = 0x2000 + LANDLOCK_ACCESS_FS_REMOVE_DIR = 0x10 + LANDLOCK_ACCESS_FS_REMOVE_FILE = 0x20 + LANDLOCK_ACCESS_FS_TRUNCATE = 0x4000 + LANDLOCK_ACCESS_FS_WRITE_FILE = 0x2 + LANDLOCK_CREATE_RULESET_VERSION = 0x1 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + LOOP_CLR_FD = 0x4c01 + LOOP_CTL_ADD = 0x4c80 + LOOP_CTL_GET_FREE = 0x4c82 + LOOP_CTL_REMOVE = 0x4c81 + LOOP_GET_STATUS = 0x4c03 + LOOP_GET_STATUS64 = 0x4c05 + LOOP_SET_BLOCK_SIZE = 0x4c09 + LOOP_SET_CAPACITY = 0x4c07 + LOOP_SET_DIRECT_IO = 0x4c08 + LOOP_SET_FD = 0x4c00 + LOOP_SET_STATUS = 0x4c02 + LOOP_SET_STATUS64 = 0x4c04 + LOOP_SET_STATUS_CLEARABLE_FLAGS = 0x4 + LOOP_SET_STATUS_SETTABLE_FLAGS = 0xc + LO_KEY_SIZE = 0x20 + LO_NAME_SIZE = 0x40 + LWTUNNEL_IP6_MAX = 0x8 + LWTUNNEL_IP_MAX = 0x8 + LWTUNNEL_IP_OPTS_MAX = 0x3 + LWTUNNEL_IP_OPT_ERSPAN_MAX = 0x4 + LWTUNNEL_IP_OPT_GENEVE_MAX = 0x3 + LWTUNNEL_IP_OPT_VXLAN_MAX = 0x1 + MADV_COLD = 0x14 + MADV_COLLAPSE = 0x19 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_DONTNEED_LOCKED = 0x18 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_KEEPONFORK = 0x13 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0x15 + MADV_POPULATE_READ = 0x16 + MADV_POPULATE_WRITE = 0x17 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_SHARED_VALIDATE = 0x3 + MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x0 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x2a + MCAST_JOIN_SOURCE_GROUP = 0x2e + MCAST_LEAVE_GROUP = 0x2d + MCAST_LEAVE_SOURCE_GROUP = 0x2f + MCAST_MSFILTER = 0x30 + MCAST_UNBLOCK_SOURCE = 0x2c + MEMGETREGIONINFO = 0xc0104d08 + MEMREADOOB64 = 0xc0184d16 + MEMWRITE = 0xc0304d18 + MEMWRITEOOB64 = 0xc0184d15 + MFD_ALLOW_SEALING = 0x2 + MFD_CLOEXEC = 0x1 + MFD_HUGETLB = 0x4 + MFD_HUGE_16GB = 0x88000000 + MFD_HUGE_16MB = 0x60000000 + MFD_HUGE_1GB = 0x78000000 + MFD_HUGE_1MB = 0x50000000 + MFD_HUGE_256MB = 0x70000000 + MFD_HUGE_2GB = 0x7c000000 + MFD_HUGE_2MB = 0x54000000 + MFD_HUGE_32MB = 0x64000000 + MFD_HUGE_512KB = 0x4c000000 + MFD_HUGE_512MB = 0x74000000 + MFD_HUGE_64KB = 0x40000000 + MFD_HUGE_8MB = 0x5c000000 + MFD_HUGE_MASK = 0x3f + MFD_HUGE_SHIFT = 0x1a + MINIX2_SUPER_MAGIC = 0x2468 + MINIX2_SUPER_MAGIC2 = 0x2478 + MINIX3_SUPER_MAGIC = 0x4d5a + MINIX_SUPER_MAGIC = 0x137f + MINIX_SUPER_MAGIC2 = 0x138f + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MODULE_INIT_COMPRESSED_FILE = 0x4 + MODULE_INIT_IGNORE_MODVERSIONS = 0x1 + MODULE_INIT_IGNORE_VERMAGIC = 0x2 + MOUNT_ATTR_IDMAP = 0x100000 + MOUNT_ATTR_NOATIME = 0x10 + MOUNT_ATTR_NODEV = 0x4 + MOUNT_ATTR_NODIRATIME = 0x80 + MOUNT_ATTR_NOEXEC = 0x8 + MOUNT_ATTR_NOSUID = 0x2 + MOUNT_ATTR_NOSYMFOLLOW = 0x200000 + MOUNT_ATTR_RDONLY = 0x1 + MOUNT_ATTR_RELATIME = 0x0 + MOUNT_ATTR_SIZE_VER0 = 0x20 + MOUNT_ATTR_STRICTATIME = 0x20 + MOUNT_ATTR__ATIME = 0x70 + MSDOS_SUPER_MAGIC = 0x4d44 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MSG_ZEROCOPY = 0x4000000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_BORN = 0x20000000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOREMOTELOCK = 0x8000000 + MS_NOSEC = 0x10000000 + MS_NOSUID = 0x2 + MS_NOSYMFOLLOW = 0x100 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SUBMOUNT = 0x4000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + MS_VERBOSE = 0x8000 + MTD_ABSENT = 0x0 + MTD_BIT_WRITEABLE = 0x800 + MTD_CAP_NANDFLASH = 0x400 + MTD_CAP_NORFLASH = 0xc00 + MTD_CAP_NVRAM = 0x1c00 + MTD_CAP_RAM = 0x1c00 + MTD_CAP_ROM = 0x0 + MTD_DATAFLASH = 0x6 + MTD_INODE_FS_MAGIC = 0x11307854 + MTD_MAX_ECCPOS_ENTRIES = 0x40 + MTD_MAX_OOBFREE_ENTRIES = 0x8 + MTD_MLCNANDFLASH = 0x8 + MTD_NANDECC_AUTOPLACE = 0x2 + MTD_NANDECC_AUTOPL_USR = 0x4 + MTD_NANDECC_OFF = 0x0 + MTD_NANDECC_PLACE = 0x1 + MTD_NANDECC_PLACEONLY = 0x3 + MTD_NANDFLASH = 0x4 + MTD_NORFLASH = 0x3 + MTD_NO_ERASE = 0x1000 + MTD_OTP_FACTORY = 0x1 + MTD_OTP_OFF = 0x0 + MTD_OTP_USER = 0x2 + MTD_POWERUP_LOCK = 0x2000 + MTD_RAM = 0x1 + MTD_ROM = 0x2 + MTD_SLC_ON_MLC_EMULATION = 0x4000 + MTD_UBIVOLUME = 0x7 + MTD_WRITEABLE = 0x400 + NAME_MAX = 0xff + NCP_SUPER_MAGIC = 0x564c + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_EXT_ACK = 0xb + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SMC = 0x16 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NETNSA_MAX = 0x5 + NETNSA_NSID_NOT_ASSIGNED = -0x1 + NFC_ATR_REQ_GB_MAXSIZE = 0x30 + NFC_ATR_REQ_MAXSIZE = 0x40 + NFC_ATR_RES_GB_MAXSIZE = 0x2f + NFC_ATR_RES_MAXSIZE = 0x40 + NFC_COMM_ACTIVE = 0x0 + NFC_COMM_PASSIVE = 0x1 + NFC_DEVICE_NAME_MAXSIZE = 0x8 + NFC_DIRECTION_RX = 0x0 + NFC_DIRECTION_TX = 0x1 + NFC_FIRMWARE_NAME_MAXSIZE = 0x20 + NFC_GB_MAXSIZE = 0x30 + NFC_GENL_MCAST_EVENT_NAME = "events" + NFC_GENL_NAME = "nfc" + NFC_GENL_VERSION = 0x1 + NFC_HEADER_SIZE = 0x1 + NFC_ISO15693_UID_MAXSIZE = 0x8 + NFC_LLCP_MAX_SERVICE_NAME = 0x3f + NFC_LLCP_MIUX = 0x1 + NFC_LLCP_REMOTE_LTO = 0x3 + NFC_LLCP_REMOTE_MIU = 0x2 + NFC_LLCP_REMOTE_RW = 0x4 + NFC_LLCP_RW = 0x0 + NFC_NFCID1_MAXSIZE = 0xa + NFC_NFCID2_MAXSIZE = 0x8 + NFC_NFCID3_MAXSIZE = 0xa + NFC_PROTO_FELICA = 0x3 + NFC_PROTO_FELICA_MASK = 0x8 + NFC_PROTO_ISO14443 = 0x4 + NFC_PROTO_ISO14443_B = 0x6 + NFC_PROTO_ISO14443_B_MASK = 0x40 + NFC_PROTO_ISO14443_MASK = 0x10 + NFC_PROTO_ISO15693 = 0x7 + NFC_PROTO_ISO15693_MASK = 0x80 + NFC_PROTO_JEWEL = 0x1 + NFC_PROTO_JEWEL_MASK = 0x2 + NFC_PROTO_MAX = 0x8 + NFC_PROTO_MIFARE = 0x2 + NFC_PROTO_MIFARE_MASK = 0x4 + NFC_PROTO_NFC_DEP = 0x5 + NFC_PROTO_NFC_DEP_MASK = 0x20 + NFC_RAW_HEADER_SIZE = 0x2 + NFC_RF_INITIATOR = 0x0 + NFC_RF_NONE = 0x2 + NFC_RF_TARGET = 0x1 + NFC_SENSB_RES_MAXSIZE = 0xc + NFC_SENSF_RES_MAXSIZE = 0x12 + NFC_SE_DISABLED = 0x0 + NFC_SE_EMBEDDED = 0x2 + NFC_SE_ENABLED = 0x1 + NFC_SE_UICC = 0x1 + NFC_SOCKPROTO_LLCP = 0x1 + NFC_SOCKPROTO_MAX = 0x2 + NFC_SOCKPROTO_RAW = 0x0 + NFNETLINK_V0 = 0x0 + NFNLGRP_ACCT_QUOTA = 0x8 + NFNLGRP_CONNTRACK_DESTROY = 0x3 + NFNLGRP_CONNTRACK_EXP_DESTROY = 0x6 + NFNLGRP_CONNTRACK_EXP_NEW = 0x4 + NFNLGRP_CONNTRACK_EXP_UPDATE = 0x5 + NFNLGRP_CONNTRACK_NEW = 0x1 + NFNLGRP_CONNTRACK_UPDATE = 0x2 + NFNLGRP_MAX = 0x9 + NFNLGRP_NFTABLES = 0x7 + NFNLGRP_NFTRACE = 0x9 + NFNLGRP_NONE = 0x0 + NFNL_BATCH_MAX = 0x1 + NFNL_MSG_BATCH_BEGIN = 0x10 + NFNL_MSG_BATCH_END = 0x11 + NFNL_NFA_NEST = 0x8000 + NFNL_SUBSYS_ACCT = 0x7 + NFNL_SUBSYS_COUNT = 0xd + NFNL_SUBSYS_CTHELPER = 0x9 + NFNL_SUBSYS_CTNETLINK = 0x1 + NFNL_SUBSYS_CTNETLINK_EXP = 0x2 + NFNL_SUBSYS_CTNETLINK_TIMEOUT = 0x8 + NFNL_SUBSYS_HOOK = 0xc + NFNL_SUBSYS_IPSET = 0x6 + NFNL_SUBSYS_NFTABLES = 0xa + NFNL_SUBSYS_NFT_COMPAT = 0xb + NFNL_SUBSYS_NONE = 0x0 + NFNL_SUBSYS_OSF = 0x5 + NFNL_SUBSYS_QUEUE = 0x3 + NFNL_SUBSYS_ULOG = 0x4 + NFS_SUPER_MAGIC = 0x6969 + NILFS_SUPER_MAGIC = 0x3434 + NL0 = 0x0 + NL1 = 0x100 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_ACK_TLVS = 0x200 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_BULK = 0x200 + NLM_F_CAPPED = 0x100 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_NONREC = 0x100 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NSFS_MAGIC = 0x6e736673 + OCFS2_SUPER_MAGIC = 0x7461636f + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLRET = 0x20 + ONOCR = 0x10 + OPENPROM_SUPER_MAGIC = 0x9fa1 + OPOST = 0x1 + OVERLAYFS_SUPER_MAGIC = 0x794c7630 + O_ACCMODE = 0x3 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_IGNORE_OUTGOING = 0x4000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PERF_ATTR_SIZE_VER0 = 0x40 + PERF_ATTR_SIZE_VER1 = 0x48 + PERF_ATTR_SIZE_VER2 = 0x50 + PERF_ATTR_SIZE_VER3 = 0x60 + PERF_ATTR_SIZE_VER4 = 0x68 + PERF_ATTR_SIZE_VER5 = 0x70 + PERF_ATTR_SIZE_VER6 = 0x78 + PERF_ATTR_SIZE_VER7 = 0x80 + PERF_AUX_FLAG_COLLISION = 0x8 + PERF_AUX_FLAG_CORESIGHT_FORMAT_CORESIGHT = 0x0 + PERF_AUX_FLAG_CORESIGHT_FORMAT_RAW = 0x100 + PERF_AUX_FLAG_OVERWRITE = 0x2 + PERF_AUX_FLAG_PARTIAL = 0x4 + PERF_AUX_FLAG_PMU_FORMAT_TYPE_MASK = 0xff00 + PERF_AUX_FLAG_TRUNCATED = 0x1 + PERF_BR_ARM64_DEBUG_DATA = 0x7 + PERF_BR_ARM64_DEBUG_EXIT = 0x5 + PERF_BR_ARM64_DEBUG_HALT = 0x4 + PERF_BR_ARM64_DEBUG_INST = 0x6 + PERF_BR_ARM64_FIQ = 0x3 + PERF_FLAG_FD_CLOEXEC = 0x8 + PERF_FLAG_FD_NO_GROUP = 0x1 + PERF_FLAG_FD_OUTPUT = 0x2 + PERF_FLAG_PID_CGROUP = 0x4 + PERF_HW_EVENT_MASK = 0xffffffff + PERF_MAX_CONTEXTS_PER_STACK = 0x8 + PERF_MAX_STACK_DEPTH = 0x7f + PERF_MEM_BLK_ADDR = 0x4 + PERF_MEM_BLK_DATA = 0x2 + PERF_MEM_BLK_NA = 0x1 + PERF_MEM_BLK_SHIFT = 0x28 + PERF_MEM_HOPS_0 = 0x1 + PERF_MEM_HOPS_1 = 0x2 + PERF_MEM_HOPS_2 = 0x3 + PERF_MEM_HOPS_3 = 0x4 + PERF_MEM_HOPS_SHIFT = 0x2b + PERF_MEM_LOCK_LOCKED = 0x2 + PERF_MEM_LOCK_NA = 0x1 + PERF_MEM_LOCK_SHIFT = 0x18 + PERF_MEM_LVLNUM_ANY_CACHE = 0xb + PERF_MEM_LVLNUM_CXL = 0x9 + PERF_MEM_LVLNUM_IO = 0xa + PERF_MEM_LVLNUM_L1 = 0x1 + PERF_MEM_LVLNUM_L2 = 0x2 + PERF_MEM_LVLNUM_L3 = 0x3 + PERF_MEM_LVLNUM_L4 = 0x4 + PERF_MEM_LVLNUM_LFB = 0xc + PERF_MEM_LVLNUM_NA = 0xf + PERF_MEM_LVLNUM_PMEM = 0xe + PERF_MEM_LVLNUM_RAM = 0xd + PERF_MEM_LVLNUM_SHIFT = 0x21 + PERF_MEM_LVL_HIT = 0x2 + PERF_MEM_LVL_IO = 0x1000 + PERF_MEM_LVL_L1 = 0x8 + PERF_MEM_LVL_L2 = 0x20 + PERF_MEM_LVL_L3 = 0x40 + PERF_MEM_LVL_LFB = 0x10 + PERF_MEM_LVL_LOC_RAM = 0x80 + PERF_MEM_LVL_MISS = 0x4 + PERF_MEM_LVL_NA = 0x1 + PERF_MEM_LVL_REM_CCE1 = 0x400 + PERF_MEM_LVL_REM_CCE2 = 0x800 + PERF_MEM_LVL_REM_RAM1 = 0x100 + PERF_MEM_LVL_REM_RAM2 = 0x200 + PERF_MEM_LVL_SHIFT = 0x5 + PERF_MEM_LVL_UNC = 0x2000 + PERF_MEM_OP_EXEC = 0x10 + PERF_MEM_OP_LOAD = 0x2 + PERF_MEM_OP_NA = 0x1 + PERF_MEM_OP_PFETCH = 0x8 + PERF_MEM_OP_SHIFT = 0x0 + PERF_MEM_OP_STORE = 0x4 + PERF_MEM_REMOTE_REMOTE = 0x1 + PERF_MEM_REMOTE_SHIFT = 0x25 + PERF_MEM_SNOOPX_FWD = 0x1 + PERF_MEM_SNOOPX_PEER = 0x2 + PERF_MEM_SNOOPX_SHIFT = 0x26 + PERF_MEM_SNOOP_HIT = 0x4 + PERF_MEM_SNOOP_HITM = 0x10 + PERF_MEM_SNOOP_MISS = 0x8 + PERF_MEM_SNOOP_NA = 0x1 + PERF_MEM_SNOOP_NONE = 0x2 + PERF_MEM_SNOOP_SHIFT = 0x13 + PERF_MEM_TLB_HIT = 0x2 + PERF_MEM_TLB_L1 = 0x8 + PERF_MEM_TLB_L2 = 0x10 + PERF_MEM_TLB_MISS = 0x4 + PERF_MEM_TLB_NA = 0x1 + PERF_MEM_TLB_OS = 0x40 + PERF_MEM_TLB_SHIFT = 0x1a + PERF_MEM_TLB_WK = 0x20 + PERF_PMU_TYPE_SHIFT = 0x20 + PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER = 0x1 + PERF_RECORD_MISC_COMM_EXEC = 0x2000 + PERF_RECORD_MISC_CPUMODE_MASK = 0x7 + PERF_RECORD_MISC_CPUMODE_UNKNOWN = 0x0 + PERF_RECORD_MISC_EXACT_IP = 0x4000 + PERF_RECORD_MISC_EXT_RESERVED = 0x8000 + PERF_RECORD_MISC_FORK_EXEC = 0x2000 + PERF_RECORD_MISC_GUEST_KERNEL = 0x4 + PERF_RECORD_MISC_GUEST_USER = 0x5 + PERF_RECORD_MISC_HYPERVISOR = 0x3 + PERF_RECORD_MISC_KERNEL = 0x1 + PERF_RECORD_MISC_MMAP_BUILD_ID = 0x4000 + PERF_RECORD_MISC_MMAP_DATA = 0x2000 + PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT = 0x1000 + PERF_RECORD_MISC_SWITCH_OUT = 0x2000 + PERF_RECORD_MISC_SWITCH_OUT_PREEMPT = 0x4000 + PERF_RECORD_MISC_USER = 0x2 + PERF_SAMPLE_BRANCH_PLM_ALL = 0x7 + PERF_SAMPLE_WEIGHT_TYPE = 0x1004000 + PIPEFS_MAGIC = 0x50495045 + PPPIOCGNPMODE = 0xc008744c + PPPIOCNEWUNIT = 0xc004743e + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROC_SUPER_MAGIC = 0x9fa0 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_IO_FLUSHER = 0x3a + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_TAGGED_ADDR_CTRL = 0x38 + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_MTE_TAG_MASK = 0x7fff8 + PR_MTE_TAG_SHIFT = 0x3 + PR_MTE_TCF_ASYNC = 0x4 + PR_MTE_TCF_MASK = 0x6 + PR_MTE_TCF_NONE = 0x0 + PR_MTE_TCF_SHIFT = 0x1 + PR_MTE_TCF_SYNC = 0x2 + PR_PAC_APDAKEY = 0x4 + PR_PAC_APDBKEY = 0x8 + PR_PAC_APGAKEY = 0x10 + PR_PAC_APIAKEY = 0x1 + PR_PAC_APIBKEY = 0x2 + PR_PAC_GET_ENABLED_KEYS = 0x3d + PR_PAC_RESET_KEYS = 0x36 + PR_PAC_SET_ENABLED_KEYS = 0x3c + PR_SCHED_CORE = 0x3e + PR_SCHED_CORE_CREATE = 0x1 + PR_SCHED_CORE_GET = 0x0 + PR_SCHED_CORE_MAX = 0x4 + PR_SCHED_CORE_SCOPE_PROCESS_GROUP = 0x2 + PR_SCHED_CORE_SCOPE_THREAD = 0x0 + PR_SCHED_CORE_SCOPE_THREAD_GROUP = 0x1 + PR_SCHED_CORE_SHARE_FROM = 0x3 + PR_SCHED_CORE_SHARE_TO = 0x2 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_IO_FLUSHER = 0x39 + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_SYSCALL_USER_DISPATCH = 0x3b + PR_SET_TAGGED_ADDR_CTRL = 0x37 + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_SET_VMA = 0x53564d41 + PR_SET_VMA_ANON_NAME = 0x0 + PR_SME_GET_VL = 0x40 + PR_SME_SET_VL = 0x3f + PR_SME_SET_VL_ONEXEC = 0x40000 + PR_SME_VL_INHERIT = 0x20000 + PR_SME_VL_LEN_MASK = 0xffff + PR_SPEC_DISABLE = 0x4 + PR_SPEC_DISABLE_NOEXEC = 0x10 + PR_SPEC_ENABLE = 0x2 + PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 + PR_SPEC_L1D_FLUSH = 0x2 + PR_SPEC_NOT_AFFECTED = 0x0 + PR_SPEC_PRCTL = 0x1 + PR_SPEC_STORE_BYPASS = 0x0 + PR_SVE_GET_VL = 0x33 + PR_SVE_SET_VL = 0x32 + PR_SVE_SET_VL_ONEXEC = 0x40000 + PR_SVE_VL_INHERIT = 0x20000 + PR_SVE_VL_LEN_MASK = 0xffff + PR_SYS_DISPATCH_OFF = 0x0 + PR_SYS_DISPATCH_ON = 0x1 + PR_TAGGED_ADDR_ENABLE = 0x1 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PSTOREFS_MAGIC = 0x6165676c + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 + PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_RSEQ_CONFIGURATION = 0x420f + PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SECCOMP_GET_METADATA = 0x420d + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSCALL_INFO_ENTRY = 0x1 + PTRACE_SYSCALL_INFO_EXIT = 0x2 + PTRACE_SYSCALL_INFO_NONE = 0x0 + PTRACE_SYSCALL_INFO_SECCOMP = 0x3 + PTRACE_TRACEME = 0x0 + P_ALL = 0x0 + P_PGID = 0x2 + P_PID = 0x1 + P_PIDFD = 0x3 + QNX4_SUPER_MAGIC = 0x2f + QNX6_SUPER_MAGIC = 0x68191122 + RAMFS_MAGIC = 0x858458f6 + RAW_PAYLOAD_DIGITAL = 0x3 + RAW_PAYLOAD_HCI = 0x2 + RAW_PAYLOAD_LLCP = 0x0 + RAW_PAYLOAD_NCI = 0x1 + RAW_PAYLOAD_PROPRIETARY = 0x4 + RDTGROUP_SUPER_MAGIC = 0x7655821 + REISERFS_SUPER_MAGIC = 0x52654973 + RENAME_EXCHANGE = 0x2 + RENAME_NOREPLACE = 0x1 + RENAME_WHITEOUT = 0x4 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_LOCKS = 0xa + RLIMIT_MSGQUEUE = 0xc + RLIMIT_NICE = 0xd + RLIMIT_RTPRIO = 0xe + RLIMIT_RTTIME = 0xf + RLIMIT_SIGPENDING = 0xb + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xffffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FASTOPEN_NO_COOKIE = 0x11 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x11 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x1e + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTC_AF = 0x20 + RTC_BSM_DIRECT = 0x1 + RTC_BSM_DISABLED = 0x0 + RTC_BSM_LEVEL = 0x2 + RTC_BSM_STANDBY = 0x3 + RTC_FEATURE_ALARM = 0x0 + RTC_FEATURE_ALARM_RES_2S = 0x3 + RTC_FEATURE_ALARM_RES_MINUTE = 0x1 + RTC_FEATURE_ALARM_WAKEUP_ONLY = 0x7 + RTC_FEATURE_BACKUP_SWITCH_MODE = 0x6 + RTC_FEATURE_CNT = 0x8 + RTC_FEATURE_CORRECTION = 0x5 + RTC_FEATURE_NEED_WEEK_DAY = 0x2 + RTC_FEATURE_UPDATE_INTERRUPT = 0x4 + RTC_IRQF = 0x80 + RTC_MAX_FREQ = 0x2000 + RTC_PARAM_BACKUP_SWITCH_MODE = 0x2 + RTC_PARAM_CORRECTION = 0x1 + RTC_PARAM_FEATURES = 0x0 + RTC_PF = 0x40 + RTC_UF = 0x10 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTMGRP_DECnet_IFADDR = 0x1000 + RTMGRP_DECnet_ROUTE = 0x4000 + RTMGRP_IPV4_IFADDR = 0x10 + RTMGRP_IPV4_MROUTE = 0x20 + RTMGRP_IPV4_ROUTE = 0x40 + RTMGRP_IPV4_RULE = 0x80 + RTMGRP_IPV6_IFADDR = 0x100 + RTMGRP_IPV6_IFINFO = 0x800 + RTMGRP_IPV6_MROUTE = 0x200 + RTMGRP_IPV6_PREFIX = 0x20000 + RTMGRP_IPV6_ROUTE = 0x400 + RTMGRP_LINK = 0x1 + RTMGRP_NEIGH = 0x4 + RTMGRP_NOTIFY = 0x2 + RTMGRP_TC = 0x8 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELLINKPROP = 0x6d + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNEXTHOP = 0x69 + RTM_DELNEXTHOPBUCKET = 0x75 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_DELTUNNEL = 0x79 + RTM_DELVLAN = 0x71 + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_FIB_MATCH = 0x2000 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_OFFLOAD = 0x4000 + RTM_F_OFFLOAD_FAILED = 0x20000000 + RTM_F_PREFIX = 0x800 + RTM_F_TRAP = 0x8000 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETCHAIN = 0x66 + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETLINKPROP = 0x6e + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNEXTHOP = 0x6a + RTM_GETNEXTHOPBUCKET = 0x76 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_GETTUNNEL = 0x7a + RTM_GETVLAN = 0x72 + RTM_MAX = 0x7b + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWLINKPROP = 0x6c + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNEXTHOPBUCKET = 0x74 + RTM_NEWNSID = 0x58 + RTM_NEWNVLAN = 0x70 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NEWTUNNEL = 0x78 + RTM_NR_FAMILIES = 0x1b + RTM_NR_MSGTYPES = 0x6c + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTM_SETSTATS = 0x5f + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x59 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTNH_F_TRAP = 0x40 + RTNH_F_UNRESOLVED = 0x20 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BGP = 0xba + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_EIGRP = 0xc0 + RTPROT_GATED = 0x8 + RTPROT_ISIS = 0xbb + RTPROT_KEEPALIVED = 0x12 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_OPENR = 0x63 + RTPROT_OSPF = 0xbc + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_RIP = 0xbd + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + RWF_APPEND = 0x10 + RWF_DSYNC = 0x2 + RWF_HIPRI = 0x1 + RWF_NOWAIT = 0x8 + RWF_SUPPORTED = 0x1f + RWF_SYNC = 0x4 + RWF_WRITE_LIFE_NOT_SET = 0x0 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SC_LOG_FLUSH = 0x100000 + SECCOMP_MODE_DISABLED = 0x0 + SECCOMP_MODE_FILTER = 0x2 + SECCOMP_MODE_STRICT = 0x1 + SECRETMEM_MAGIC = 0x5345434d + SECURITYFS_MAGIC = 0x73636673 + SEEK_CUR = 0x1 + SEEK_DATA = 0x3 + SEEK_END = 0x2 + SEEK_HOLE = 0x4 + SEEK_MAX = 0x4 + SEEK_SET = 0x0 + SELINUX_MAGIC = 0xf97cff8c + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCBONDCHANGEACTIVE = 0x8995 + SIOCBONDENSLAVE = 0x8990 + SIOCBONDINFOQUERY = 0x8994 + SIOCBONDRELEASE = 0x8991 + SIOCBONDSETHWADDR = 0x8992 + SIOCBONDSLAVEINFOQUERY = 0x8993 + SIOCBRADDBR = 0x89a0 + SIOCBRADDIF = 0x89a2 + SIOCBRDELBR = 0x89a1 + SIOCBRDELIF = 0x89a3 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCETHTOOL = 0x8946 + SIOCGARP = 0x8954 + SIOCGETLINKNAME = 0x89e0 + SIOCGETNODEID = 0x89e1 + SIOCGHWTSTAMP = 0x89b1 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGIFVLAN = 0x8982 + SIOCGMIIPHY = 0x8947 + SIOCGMIIREG = 0x8948 + SIOCGPPPCSTATS = 0x89f2 + SIOCGPPPSTATS = 0x89f0 + SIOCGPPPVER = 0x89f1 + SIOCGRARP = 0x8961 + SIOCGSKNS = 0x894c + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCGSTAMPNS_OLD = 0x8907 + SIOCGSTAMP_OLD = 0x8906 + SIOCKCMATTACH = 0x89e0 + SIOCKCMCLONE = 0x89e2 + SIOCKCMUNATTACH = 0x89e1 + SIOCOUTQNSD = 0x894b + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSHWTSTAMP = 0x89b0 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSIFVLAN = 0x8983 + SIOCSMIIREG = 0x8949 + SIOCSRARP = 0x8962 + SIOCWANDEV = 0x894a + SMACK_MAGIC = 0x43415d53 + SMART_AUTOSAVE = 0xd2 + SMART_AUTO_OFFLINE = 0xdb + SMART_DISABLE = 0xd9 + SMART_ENABLE = 0xd8 + SMART_HCYL_PASS = 0xc2 + SMART_IMMEDIATE_OFFLINE = 0xd4 + SMART_LCYL_PASS = 0x4f + SMART_READ_LOG_SECTOR = 0xd5 + SMART_READ_THRESHOLDS = 0xd1 + SMART_READ_VALUES = 0xd0 + SMART_SAVE = 0xd3 + SMART_STATUS = 0xda + SMART_WRITE_LOG_SECTOR = 0xd6 + SMART_WRITE_THRESHOLDS = 0xd7 + SMB2_SUPER_MAGIC = 0xfe534d42 + SMB_SUPER_MAGIC = 0x517b + SOCKFS_MAGIC = 0x534f434b + SOCK_BUF_LOCK_MASK = 0x3 + SOCK_DCCP = 0x6 + SOCK_IOC_TYPE = 0x89 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RCVBUF_LOCK = 0x2 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_SNDBUF_LOCK = 0x1 + SOCK_TXREHASH_DEFAULT = 0xff + SOCK_TXREHASH_DISABLED = 0x0 + SOCK_TXREHASH_ENABLED = 0x1 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_CAIF = 0x116 + SOL_CAN_BASE = 0x64 + SOL_CAN_RAW = 0x65 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_MCTP = 0x11d + SOL_MPTCP = 0x11c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_SMC = 0x11e + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_X25 = 0x106 + SOL_XDP = 0x11b + SOMAXCONN = 0x1000 + SO_ATTACH_FILTER = 0x1a + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_EE_CODE_TXTIME_INVALID_PARAM = 0x1 + SO_EE_CODE_TXTIME_MISSED = 0x2 + SO_EE_CODE_ZEROCOPY_COPIED = 0x1 + SO_EE_ORIGIN_ICMP = 0x2 + SO_EE_ORIGIN_ICMP6 = 0x3 + SO_EE_ORIGIN_LOCAL = 0x1 + SO_EE_ORIGIN_NONE = 0x0 + SO_EE_ORIGIN_TIMESTAMPING = 0x4 + SO_EE_ORIGIN_TXSTATUS = 0x4 + SO_EE_ORIGIN_TXTIME = 0x6 + SO_EE_ORIGIN_ZEROCOPY = 0x5 + SO_EE_RFC4884_FLAG_INVALID = 0x1 + SO_GET_FILTER = 0x1a + SO_NO_CHECK = 0xb + SO_PEERNAME = 0x1c + SO_PRIORITY = 0xc + SO_TIMESTAMP = 0x1d + SO_TIMESTAMP_OLD = 0x1d + SO_VM_SOCKETS_BUFFER_MAX_SIZE = 0x2 + SO_VM_SOCKETS_BUFFER_MIN_SIZE = 0x1 + SO_VM_SOCKETS_BUFFER_SIZE = 0x0 + SO_VM_SOCKETS_CONNECT_TIMEOUT = 0x6 + SO_VM_SOCKETS_CONNECT_TIMEOUT_NEW = 0x8 + SO_VM_SOCKETS_CONNECT_TIMEOUT_OLD = 0x6 + SO_VM_SOCKETS_NONBLOCK_TXRX = 0x7 + SO_VM_SOCKETS_PEER_HOST_VM_ID = 0x3 + SO_VM_SOCKETS_TRUSTED = 0x5 + SPLICE_F_GIFT = 0x8 + SPLICE_F_MORE = 0x4 + SPLICE_F_MOVE = 0x1 + SPLICE_F_NONBLOCK = 0x2 + SQUASHFS_MAGIC = 0x73717368 + STACK_END_MAGIC = 0x57ac6e9d + STATX_ALL = 0xfff + STATX_ATIME = 0x20 + STATX_ATTR_APPEND = 0x20 + STATX_ATTR_AUTOMOUNT = 0x1000 + STATX_ATTR_COMPRESSED = 0x4 + STATX_ATTR_DAX = 0x200000 + STATX_ATTR_ENCRYPTED = 0x800 + STATX_ATTR_IMMUTABLE = 0x10 + STATX_ATTR_MOUNT_ROOT = 0x2000 + STATX_ATTR_NODUMP = 0x40 + STATX_ATTR_VERITY = 0x100000 + STATX_BASIC_STATS = 0x7ff + STATX_BLOCKS = 0x400 + STATX_BTIME = 0x800 + STATX_CTIME = 0x80 + STATX_DIOALIGN = 0x2000 + STATX_GID = 0x10 + STATX_INO = 0x100 + STATX_MNT_ID = 0x1000 + STATX_MODE = 0x2 + STATX_MTIME = 0x40 + STATX_NLINK = 0x4 + STATX_SIZE = 0x200 + STATX_TYPE = 0x1 + STATX_UID = 0x8 + STATX__RESERVED = 0x80000000 + SYNC_FILE_RANGE_WAIT_AFTER = 0x4 + SYNC_FILE_RANGE_WAIT_BEFORE = 0x1 + SYNC_FILE_RANGE_WRITE = 0x2 + SYNC_FILE_RANGE_WRITE_AND_WAIT = 0x7 + SYSFS_MAGIC = 0x62656572 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TASKSTATS_CMD_ATTR_MAX = 0x4 + TASKSTATS_CMD_MAX = 0x2 + TASKSTATS_GENL_NAME = "TASKSTATS" + TASKSTATS_GENL_VERSION = 0x1 + TASKSTATS_TYPE_MAX = 0x6 + TASKSTATS_VERSION = 0xd + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_CC_INFO = 0x1a + TCP_CM_INQ = 0x24 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_FASTOPEN_CONNECT = 0x1e + TCP_FASTOPEN_KEY = 0x21 + TCP_FASTOPEN_NO_COOKIE = 0x22 + TCP_INFO = 0xb + TCP_INQ = 0x24 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OFF = 0x0 + TCP_REPAIR_OFF_NO_WP = -0x1 + TCP_REPAIR_ON = 0x1 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_REPAIR_WINDOW = 0x1d + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_TX_DELAY = 0x25 + TCP_ULP = 0x1f + TCP_USER_TIMEOUT = 0x12 + TCP_V4_FLOW = 0x1 + TCP_V6_FLOW = 0x5 + TCP_WINDOW_CLAMP = 0xa + TCP_ZEROCOPY_RECEIVE = 0x23 + TFD_TIMER_ABSTIME = 0x1 + TFD_TIMER_CANCEL_ON_SET = 0x2 + TIMER_ABSTIME = 0x1 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RTS = 0x4 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIPC_ADDR_ID = 0x3 + TIPC_ADDR_MCAST = 0x1 + TIPC_ADDR_NAME = 0x2 + TIPC_ADDR_NAMESEQ = 0x1 + TIPC_AEAD_ALG_NAME = 0x20 + TIPC_AEAD_KEYLEN_MAX = 0x24 + TIPC_AEAD_KEYLEN_MIN = 0x14 + TIPC_AEAD_KEY_SIZE_MAX = 0x48 + TIPC_CFG_SRV = 0x0 + TIPC_CLUSTER_BITS = 0xc + TIPC_CLUSTER_MASK = 0xfff000 + TIPC_CLUSTER_OFFSET = 0xc + TIPC_CLUSTER_SIZE = 0xfff + TIPC_CONN_SHUTDOWN = 0x5 + TIPC_CONN_TIMEOUT = 0x82 + TIPC_CRITICAL_IMPORTANCE = 0x3 + TIPC_DESTNAME = 0x3 + TIPC_DEST_DROPPABLE = 0x81 + TIPC_ERRINFO = 0x1 + TIPC_ERR_NO_NAME = 0x1 + TIPC_ERR_NO_NODE = 0x3 + TIPC_ERR_NO_PORT = 0x2 + TIPC_ERR_OVERLOAD = 0x4 + TIPC_GROUP_JOIN = 0x87 + TIPC_GROUP_LEAVE = 0x88 + TIPC_GROUP_LOOPBACK = 0x1 + TIPC_GROUP_MEMBER_EVTS = 0x2 + TIPC_HIGH_IMPORTANCE = 0x2 + TIPC_IMPORTANCE = 0x7f + TIPC_LINK_STATE = 0x2 + TIPC_LOW_IMPORTANCE = 0x0 + TIPC_MAX_BEARER_NAME = 0x20 + TIPC_MAX_IF_NAME = 0x10 + TIPC_MAX_LINK_NAME = 0x44 + TIPC_MAX_MEDIA_NAME = 0x10 + TIPC_MAX_USER_MSG_SIZE = 0x101d0 + TIPC_MCAST_BROADCAST = 0x85 + TIPC_MCAST_REPLICAST = 0x86 + TIPC_MEDIUM_IMPORTANCE = 0x1 + TIPC_NODEID_LEN = 0x10 + TIPC_NODELAY = 0x8a + TIPC_NODE_BITS = 0xc + TIPC_NODE_MASK = 0xfff + TIPC_NODE_OFFSET = 0x0 + TIPC_NODE_RECVQ_DEPTH = 0x83 + TIPC_NODE_SIZE = 0xfff + TIPC_NODE_STATE = 0x0 + TIPC_OK = 0x0 + TIPC_PUBLISHED = 0x1 + TIPC_REKEYING_NOW = 0xffffffff + TIPC_RESERVED_TYPES = 0x40 + TIPC_RETDATA = 0x2 + TIPC_SERVICE_ADDR = 0x2 + TIPC_SERVICE_RANGE = 0x1 + TIPC_SOCKET_ADDR = 0x3 + TIPC_SOCK_RECVQ_DEPTH = 0x84 + TIPC_SOCK_RECVQ_USED = 0x89 + TIPC_SRC_DROPPABLE = 0x80 + TIPC_SUBSCR_TIMEOUT = 0x3 + TIPC_SUB_CANCEL = 0x4 + TIPC_SUB_PORTS = 0x1 + TIPC_SUB_SERVICE = 0x2 + TIPC_TOP_SRV = 0x1 + TIPC_WAIT_FOREVER = 0xffffffff + TIPC_WITHDRAWN = 0x2 + TIPC_ZONE_BITS = 0x8 + TIPC_ZONE_CLUSTER_MASK = 0xfffff000 + TIPC_ZONE_MASK = 0xff000000 + TIPC_ZONE_OFFSET = 0x18 + TIPC_ZONE_SCOPE = 0x1 + TIPC_ZONE_SIZE = 0xff + TMPFS_MAGIC = 0x1021994 + TPACKET_ALIGNMENT = 0x10 + TPACKET_HDRLEN = 0x34 + TP_STATUS_AVAILABLE = 0x0 + TP_STATUS_BLK_TMO = 0x20 + TP_STATUS_COPY = 0x2 + TP_STATUS_CSUMNOTREADY = 0x8 + TP_STATUS_CSUM_VALID = 0x80 + TP_STATUS_KERNEL = 0x0 + TP_STATUS_LOSING = 0x4 + TP_STATUS_SENDING = 0x2 + TP_STATUS_SEND_REQUEST = 0x1 + TP_STATUS_TS_RAW_HARDWARE = 0x80000000 + TP_STATUS_TS_SOFTWARE = 0x20000000 + TP_STATUS_TS_SYS_HARDWARE = 0x40000000 + TP_STATUS_USER = 0x1 + TP_STATUS_VLAN_TPID_VALID = 0x40 + TP_STATUS_VLAN_VALID = 0x10 + TP_STATUS_WRONG_FORMAT = 0x4 + TRACEFS_MAGIC = 0x74726163 + TS_COMM_LEN = 0x20 + UDF_SUPER_MAGIC = 0x15013346 + UMOUNT_NOFOLLOW = 0x8 + USBDEVICE_SUPER_MAGIC = 0x9fa2 + UTIME_NOW = 0x3fffffff + UTIME_OMIT = 0x3ffffffe + V9FS_MAGIC = 0x1021997 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMADDR_CID_ANY = 0xffffffff + VMADDR_CID_HOST = 0x2 + VMADDR_CID_HYPERVISOR = 0x0 + VMADDR_CID_LOCAL = 0x1 + VMADDR_FLAG_TO_HOST = 0x1 + VMADDR_PORT_ANY = 0xffffffff + VM_SOCKETS_INVALID_VERSION = 0xffffffff + VQUIT = 0x1 + VT0 = 0x0 + WAKE_MAGIC = 0x20 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WDIOC_SETPRETIMEOUT = 0xc0045708 + WDIOC_SETTIMEOUT = 0xc0045706 + WDIOF_ALARMONLY = 0x400 + WDIOF_CARDRESET = 0x20 + WDIOF_EXTERN1 = 0x4 + WDIOF_EXTERN2 = 0x8 + WDIOF_FANFAULT = 0x2 + WDIOF_KEEPALIVEPING = 0x8000 + WDIOF_MAGICCLOSE = 0x100 + WDIOF_OVERHEAT = 0x1 + WDIOF_POWEROVER = 0x40 + WDIOF_POWERUNDER = 0x10 + WDIOF_PRETIMEOUT = 0x200 + WDIOF_SETTIMEOUT = 0x80 + WDIOF_UNKNOWN = -0x1 + WDIOS_DISABLECARD = 0x1 + WDIOS_ENABLECARD = 0x2 + WDIOS_TEMPPANIC = 0x4 + WDIOS_UNKNOWN = -0x1 + WEXITED = 0x4 + WGALLOWEDIP_A_MAX = 0x3 + WGDEVICE_A_MAX = 0x8 + WGPEER_A_MAX = 0xa + WG_CMD_MAX = 0x1 + WG_GENL_NAME = "wireguard" + WG_GENL_VERSION = 0x1 + WG_KEY_LEN = 0x20 + WIN_ACKMEDIACHANGE = 0xdb + WIN_CHECKPOWERMODE1 = 0xe5 + WIN_CHECKPOWERMODE2 = 0x98 + WIN_DEVICE_RESET = 0x8 + WIN_DIAGNOSE = 0x90 + WIN_DOORLOCK = 0xde + WIN_DOORUNLOCK = 0xdf + WIN_DOWNLOAD_MICROCODE = 0x92 + WIN_FLUSH_CACHE = 0xe7 + WIN_FLUSH_CACHE_EXT = 0xea + WIN_FORMAT = 0x50 + WIN_GETMEDIASTATUS = 0xda + WIN_IDENTIFY = 0xec + WIN_IDENTIFY_DMA = 0xee + WIN_IDLEIMMEDIATE = 0xe1 + WIN_INIT = 0x60 + WIN_MEDIAEJECT = 0xed + WIN_MULTREAD = 0xc4 + WIN_MULTREAD_EXT = 0x29 + WIN_MULTWRITE = 0xc5 + WIN_MULTWRITE_EXT = 0x39 + WIN_NOP = 0x0 + WIN_PACKETCMD = 0xa0 + WIN_PIDENTIFY = 0xa1 + WIN_POSTBOOT = 0xdc + WIN_PREBOOT = 0xdd + WIN_QUEUED_SERVICE = 0xa2 + WIN_READ = 0x20 + WIN_READDMA = 0xc8 + WIN_READDMA_EXT = 0x25 + WIN_READDMA_ONCE = 0xc9 + WIN_READDMA_QUEUED = 0xc7 + WIN_READDMA_QUEUED_EXT = 0x26 + WIN_READ_BUFFER = 0xe4 + WIN_READ_EXT = 0x24 + WIN_READ_LONG = 0x22 + WIN_READ_LONG_ONCE = 0x23 + WIN_READ_NATIVE_MAX = 0xf8 + WIN_READ_NATIVE_MAX_EXT = 0x27 + WIN_READ_ONCE = 0x21 + WIN_RECAL = 0x10 + WIN_RESTORE = 0x10 + WIN_SECURITY_DISABLE = 0xf6 + WIN_SECURITY_ERASE_PREPARE = 0xf3 + WIN_SECURITY_ERASE_UNIT = 0xf4 + WIN_SECURITY_FREEZE_LOCK = 0xf5 + WIN_SECURITY_SET_PASS = 0xf1 + WIN_SECURITY_UNLOCK = 0xf2 + WIN_SEEK = 0x70 + WIN_SETFEATURES = 0xef + WIN_SETIDLE1 = 0xe3 + WIN_SETIDLE2 = 0x97 + WIN_SETMULT = 0xc6 + WIN_SET_MAX = 0xf9 + WIN_SET_MAX_EXT = 0x37 + WIN_SLEEPNOW1 = 0xe6 + WIN_SLEEPNOW2 = 0x99 + WIN_SMART = 0xb0 + WIN_SPECIFY = 0x91 + WIN_SRST = 0x8 + WIN_STANDBY = 0xe2 + WIN_STANDBY2 = 0x96 + WIN_STANDBYNOW1 = 0xe0 + WIN_STANDBYNOW2 = 0x94 + WIN_VERIFY = 0x40 + WIN_VERIFY_EXT = 0x42 + WIN_VERIFY_ONCE = 0x41 + WIN_WRITE = 0x30 + WIN_WRITEDMA = 0xca + WIN_WRITEDMA_EXT = 0x35 + WIN_WRITEDMA_ONCE = 0xcb + WIN_WRITEDMA_QUEUED = 0xcc + WIN_WRITEDMA_QUEUED_EXT = 0x36 + WIN_WRITE_BUFFER = 0xe8 + WIN_WRITE_EXT = 0x34 + WIN_WRITE_LONG = 0x32 + WIN_WRITE_LONG_ONCE = 0x33 + WIN_WRITE_ONCE = 0x31 + WIN_WRITE_SAME = 0xe9 + WIN_WRITE_VERIFY = 0x3c + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WSTOPPED = 0x2 + WUNTRACED = 0x2 + XATTR_CREATE = 0x1 + XATTR_REPLACE = 0x2 + XDP_COPY = 0x2 + XDP_FLAGS_DRV_MODE = 0x4 + XDP_FLAGS_HW_MODE = 0x8 + XDP_FLAGS_MASK = 0x1f + XDP_FLAGS_MODES = 0xe + XDP_FLAGS_REPLACE = 0x10 + XDP_FLAGS_SKB_MODE = 0x2 + XDP_FLAGS_UPDATE_IF_NOEXIST = 0x1 + XDP_MMAP_OFFSETS = 0x1 + XDP_OPTIONS = 0x8 + XDP_OPTIONS_ZEROCOPY = 0x1 + XDP_PACKET_HEADROOM = 0x100 + XDP_PGOFF_RX_RING = 0x0 + XDP_PGOFF_TX_RING = 0x80000000 + XDP_RING_NEED_WAKEUP = 0x1 + XDP_RX_RING = 0x2 + XDP_SHARED_UMEM = 0x1 + XDP_STATISTICS = 0x7 + XDP_TX_RING = 0x3 + XDP_UMEM_COMPLETION_RING = 0x6 + XDP_UMEM_FILL_RING = 0x5 + XDP_UMEM_PGOFF_COMPLETION_RING = 0x180000000 + XDP_UMEM_PGOFF_FILL_RING = 0x100000000 + XDP_UMEM_REG = 0x4 + XDP_UMEM_UNALIGNED_CHUNK_FLAG = 0x1 + XDP_USE_NEED_WAKEUP = 0x8 + XDP_ZEROCOPY = 0x4 + XENFS_SUPER_MAGIC = 0xabba1974 + XFS_SUPER_MAGIC = 0x58465342 + ZONEFS_MAGIC = 0x5a4f4653 + _HIDIOCGRAWNAME_LEN = 0x80 + _HIDIOCGRAWPHYS_LEN = 0x40 + _HIDIOCGRAWUNIQ_LEN = 0x40 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EAGAIN = syscall.Errno(0xb) + EBADF = syscall.Errno(0x9) + EBUSY = syscall.Errno(0x10) + ECHILD = syscall.Errno(0xa) + EDOM = syscall.Errno(0x21) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISDIR = syscall.Errno(0x15) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + ENFILE = syscall.Errno(0x17) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOMEM = syscall.Errno(0xc) + ENOSPC = syscall.Errno(0x1c) + ENOTBLK = syscall.Errno(0xf) + ENOTDIR = syscall.Errno(0x14) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EPERM = syscall.Errno(0x1) + EPIPE = syscall.Errno(0x20) + ERANGE = syscall.Errno(0x22) + EROFS = syscall.Errno(0x1e) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ETXTBSY = syscall.Errno(0x1a) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINT = syscall.Signal(0x2) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_386.go new file mode 100644 index 0000000000..a46df0f1e5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_386.go @@ -0,0 +1,829 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/386/include -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && linux +// +build 386,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/386/include -m32 _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc03c4d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x8000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + X86_FXSR_MAGIC = 0x0 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go new file mode 100644 index 0000000000..6cd4a3ea9d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go @@ -0,0 +1,829 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/amd64/include -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && linux +// +build amd64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/amd64/include -m64 _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FP_XSTATE_MAGIC2 = 0x46505845 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_ARCH_PRCTL = 0x1e + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go new file mode 100644 index 0000000000..c7ebee24df --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go @@ -0,0 +1,835 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/arm/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && linux +// +build arm,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/arm/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80041270 + BLKBSZSET = 0x40041271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80041272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x20000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8008743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40087446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x400c744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40087447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETCRUNCHREGS = 0x19 + PTRACE_GETFDPIC = 0x1f + PTRACE_GETFDPIC_EXEC = 0x0 + PTRACE_GETFDPIC_INTERP = 0x1 + PTRACE_GETFPREGS = 0xe + PTRACE_GETHBPREGS = 0x1d + PTRACE_GETVFPREGS = 0x1b + PTRACE_GETWMMXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x16 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_SETCRUNCHREGS = 0x1a + PTRACE_SETFPREGS = 0xf + PTRACE_SETHBPREGS = 0x1e + PTRACE_SETVFPREGS = 0x1c + PTRACE_SETWMMXREGS = 0x13 + PTRACE_SET_SYSCALL = 0x17 + PT_DATA_ADDR = 0x10004 + PT_TEXT_ADDR = 0x10000 + PT_TEXT_END_ADDR = 0x10008 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8004700d + RTC_EPOCH_SET = 0x4004700e + RTC_IRQP_READ = 0x8004700b + RTC_IRQP_SET = 0x4004700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x801c7011 + RTC_PLL_SET = 0x401c7012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x800854db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go new file mode 100644 index 0000000000..9d5352c3e4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go @@ -0,0 +1,827 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/arm64/include -fsigned-char +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && linux +// +build arm64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + ESR_MAGIC = 0x45535201 + EXTPROC = 0x10000 + EXTRA_MAGIC = 0x45585401 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FPSIMD_MAGIC = 0x46508001 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PROT_BTI = 0x10 + PROT_MTE = 0x20 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_PEEKMTETAGS = 0x21 + PTRACE_POKEMTETAGS = 0x22 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + SVE_MAGIC = 0x53564501 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + ZA_MAGIC = 0x54366345 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go new file mode 100644 index 0000000000..f26a164f4a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go @@ -0,0 +1,819 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/loong64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build loong64 && linux +// +build loong64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/loong64/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FPU_CTX_MAGIC = 0x46505501 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go new file mode 100644 index 0000000000..890bc3c9b7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go @@ -0,0 +1,836 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mips/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips && linux +// +build mips,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go new file mode 100644 index 0000000000..549f26ac64 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go @@ -0,0 +1,836 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mips64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && linux +// +build mips64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go new file mode 100644 index 0000000000..e0365e32c1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go @@ -0,0 +1,836 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mips64le/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64le && linux +// +build mips64le,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mips64le/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go new file mode 100644 index 0000000000..fdccce15ca --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go @@ -0,0 +1,836 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/mipsle/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mipsle && linux +// +build mipsle,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/mipsle/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x80 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x2000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_RDLCK = 0x0 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x100 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x80 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_RENAME = 0x800 + MAP_STACK = 0x40000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETFPREGS = 0xe + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_SETFPREGS = 0xf + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + RLIMIT_AS = 0x6 + RLIMIT_MEMLOCK = 0x9 + RLIMIT_NOFILE = 0x5 + RLIMIT_NPROC = 0x8 + RLIMIT_RSS = 0x7 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x80 + SIOCATMARK = 0x40047307 + SIOCGPGRP = 0x40047309 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x467f + SIOCOUTQ = 0x7472 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_STREAM = 0x2 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x1006 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x1006 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCGETS2 = 0x4030542a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSBRKP = 0x5486 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETS2 = 0x8030542b + TCSETSF = 0x5410 + TCSETSF2 = 0x8030542d + TCSETSW = 0x540f + TCSETSW2 = 0x8030542c + TCXONC = 0x5406 + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x80 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x4020542e + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0xc020542f + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VMIN = 0x4 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x9e) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x46d) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EHWPOISON = syscall.Errno(0xa8) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINIT = syscall.Errno(0x8d) + EINPROGRESS = syscall.Errno(0x96) + EISCONN = syscall.Errno(0x85) + EISNAM = syscall.Errno(0x8b) + EKEYEXPIRED = syscall.Errno(0xa2) + EKEYREJECTED = syscall.Errno(0xa4) + EKEYREVOKED = syscall.Errno(0xa3) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOOP = syscall.Errno(0x5a) + EMEDIUMTYPE = syscall.Errno(0xa0) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENAVAIL = syscall.Errno(0x8a) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0xa1) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x9f) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTCONN = syscall.Errno(0x86) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTNAM = syscall.Errno(0x89) + ENOTRECOVERABLE = syscall.Errno(0xa6) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x7a) + ENOTUNIQ = syscall.Errno(0x50) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0xa5) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + EREMCHG = syscall.Errno(0x52) + EREMDEV = syscall.Errno(0x8e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x8c) + ERESTART = syscall.Errno(0x5b) + ERFKILL = syscall.Errno(0xa7) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + EUCLEAN = syscall.Errno(0x87) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x16) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "resource deadlock avoided"}, + {46, "ENOLCK", "no locks available"}, + {50, "EBADE", "invalid exchange"}, + {51, "EBADR", "invalid request descriptor"}, + {52, "EXFULL", "exchange full"}, + {53, "ENOANO", "no anode"}, + {54, "EBADRQC", "invalid request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "bad message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in too many shared libraries"}, + {87, "ELIBEXEC", "cannot exec a shared library directly"}, + {88, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {89, "ENOSYS", "function not implemented"}, + {90, "ELOOP", "too many levels of symbolic links"}, + {91, "ERESTART", "interrupted system call should be restarted"}, + {92, "ESTRPIPE", "streams pipe error"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "protocol not available"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "ENOTSUP", "operation not supported"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection on reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {135, "EUCLEAN", "structure needs cleaning"}, + {137, "ENOTNAM", "not a XENIX named type file"}, + {138, "ENAVAIL", "no XENIX semaphores available"}, + {139, "EISNAM", "is a named type file"}, + {140, "EREMOTEIO", "remote I/O error"}, + {141, "EINIT", "unknown error 141"}, + {142, "EREMDEV", "unknown error 142"}, + {143, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale file handle"}, + {158, "ECANCELED", "operation canceled"}, + {159, "ENOMEDIUM", "no medium found"}, + {160, "EMEDIUMTYPE", "wrong medium type"}, + {161, "ENOKEY", "required key not available"}, + {162, "EKEYEXPIRED", "key has expired"}, + {163, "EKEYREVOKED", "key has been revoked"}, + {164, "EKEYREJECTED", "key was rejected by service"}, + {165, "EOWNERDEAD", "owner died"}, + {166, "ENOTRECOVERABLE", "state not recoverable"}, + {167, "ERFKILL", "operation not possible due to RF-kill"}, + {168, "EHWPOISON", "memory page has hardware error"}, + {1133, "EDQUOT", "disk quota exceeded"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGCHLD", "child exited"}, + {19, "SIGPWR", "power failure"}, + {20, "SIGWINCH", "window changed"}, + {21, "SIGURG", "urgent I/O condition"}, + {22, "SIGIO", "I/O possible"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual timer expired"}, + {29, "SIGPROF", "profiling timer expired"}, + {30, "SIGXCPU", "CPU time limit exceeded"}, + {31, "SIGXFSZ", "file size limit exceeded"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go new file mode 100644 index 0000000000..b2205c83fa --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go @@ -0,0 +1,888 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux +// +build ppc,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40041270 + BLKBSZSET = 0x80041271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40041272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40046601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80046602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc00c4d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc00c4d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x20 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x10000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40042407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8004240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc004240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80042406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4008743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80087446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x800c744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80087447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPR31 = 0x6e + PT_FPSCR = 0x71 + PT_LNK = 0x24 + PT_MQ = 0x27 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_TRAP = 0x28 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4004700d + RTC_EPOCH_SET = 0x8004700e + RTC_IRQP_READ = 0x4004700b + RTC_IRQP_SET = 0x8004700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x401c7011 + RTC_PLL_SET = 0x801c7012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x20 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go new file mode 100644 index 0000000000..81aa5ad0f6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go @@ -0,0 +1,892 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && linux +// +build ppc64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go new file mode 100644 index 0000000000..76807a1fd4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go @@ -0,0 +1,892 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/ppc64le/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64le && linux +// +build ppc64le,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/ppc64le/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x17 + B115200 = 0x11 + B1152000 = 0x18 + B1500000 = 0x19 + B2000000 = 0x1a + B230400 = 0x12 + B2500000 = 0x1b + B3000000 = 0x1c + B3500000 = 0x1d + B4000000 = 0x1e + B460800 = 0x13 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B921600 = 0x16 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1f + BS1 = 0x8000 + BSDLY = 0x8000 + CBAUD = 0xff + CBAUDEX = 0x0 + CIBAUD = 0xff0000 + CLOCAL = 0x8000 + CR1 = 0x1000 + CR2 = 0x2000 + CR3 = 0x3000 + CRDLY = 0x3000 + CREAD = 0x800 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTOPB = 0x400 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000000 + FF1 = 0x4000 + FFDLY = 0x4000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x800000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x4000 + ICANON = 0x100 + IEXTEN = 0x400 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x80 + IUCLC = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NL2 = 0x200 + NL3 = 0x300 + NLDLY = 0x300 + NOFLSH = 0x80000000 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x4 + ONLCR = 0x2 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x404000 + O_TRUNC = 0x200 + PARENB = 0x1000 + PARODD = 0x2000 + PENDIN = 0x20000000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PROT_SAO = 0x10 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS64 = 0x16 + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETREGS64 = 0x17 + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SYSEMU = 0x1d + PTRACE_SYSEMU_SINGLESTEP = 0x1e + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x12 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x12 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x13 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x400 + TAB2 = 0x800 + TAB3 = 0xc00 + TABDLY = 0xc00 + TCFLSH = 0x2000741f + TCGETA = 0x40147417 + TCGETS = 0x402c7413 + TCSAFLUSH = 0x2 + TCSBRK = 0x2000741d + TCSBRKP = 0x5425 + TCSETA = 0x80147418 + TCSETAF = 0x8014741c + TCSETAW = 0x80147419 + TCSETS = 0x802c7414 + TCSETSF = 0x802c7416 + TCSETSW = 0x802c7415 + TCXONC = 0x2000741e + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGPTPEER = 0x20005441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VMIN = 0x5 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4000 + XTABS = 0xc00 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x3a) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {58, "EDEADLOCK", "file locking deadlock error"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go new file mode 100644 index 0000000000..d4a5ab9e4e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go @@ -0,0 +1,816 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/riscv64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && linux +// +build riscv64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/riscv64/include _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go new file mode 100644 index 0000000000..66e65db951 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go @@ -0,0 +1,891 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/s390x/include -fsigned-char +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build s390x && linux +// +build s390x,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char _const.go + +package unix + +import "syscall" + +const ( + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x80081270 + BLKBSZSET = 0x40081271 + BLKFLSBUF = 0x1261 + BLKFRAGET = 0x1265 + BLKFRASET = 0x1264 + BLKGETSIZE = 0x1260 + BLKGETSIZE64 = 0x80081272 + BLKPBSZGET = 0x127b + BLKRAGET = 0x1263 + BLKRASET = 0x1262 + BLKROGET = 0x125e + BLKROSET = 0x125d + BLKRRPART = 0x125f + BLKSECTGET = 0x1267 + BLKSECTSET = 0x1266 + BLKSSZGET = 0x1268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x81484d11 + ECCGETSTATS = 0x80104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x80000 + EFD_NONBLOCK = 0x800 + EPOLL_CLOEXEC = 0x80000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x40049409 + FICLONERANGE = 0x4020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x40806685 + FS_IOC_GETFLAGS = 0x80086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x8010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x400c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x40106614 + FS_IOC_SETFLAGS = 0x40086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x800c6613 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_RDLCK = 0x0 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HIDIOCGRAWINFO = 0x80084803 + HIDIOCGRDESC = 0x90044802 + HIDIOCGRDESCSIZE = 0x80044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x80000 + IN_NONBLOCK = 0x800 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x7b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MEMERASE = 0x40084d02 + MEMERASE64 = 0x40104d14 + MEMGETBADBLOCK = 0x40084d0b + MEMGETINFO = 0x80204d01 + MEMGETOOBSEL = 0x80c84d0a + MEMGETREGIONCOUNT = 0x80044d07 + MEMISLOCKED = 0x80084d17 + MEMLOCK = 0x40084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x40084d0c + MEMUNLOCK = 0x40084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x4d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0xb703 + NS_GET_OWNER_UID = 0xb704 + NS_GET_PARENT = 0xb702 + NS_GET_USERNS = 0xb701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x400c4d19 + OTPGETREGIONCOUNT = 0x40044d0e + OTPGETREGIONINFO = 0x400c4d0f + OTPLOCK = 0x800c4d10 + OTPSELECT = 0x80044d0d + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x2401 + PERF_EVENT_IOC_ENABLE = 0x2400 + PERF_EVENT_IOC_ID = 0x80082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x4008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x40042409 + PERF_EVENT_IOC_PERIOD = 0x40082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x2402 + PERF_EVENT_IOC_RESET = 0x2403 + PERF_EVENT_IOC_SET_BPF = 0x40042408 + PERF_EVENT_IOC_SET_FILTER = 0x40082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x2405 + PPPIOCATTACH = 0x4004743d + PPPIOCATTCHAN = 0x40047438 + PPPIOCBRIDGECHAN = 0x40047435 + PPPIOCCONNECT = 0x4004743a + PPPIOCDETACH = 0x4004743c + PPPIOCDISCONN = 0x7439 + PPPIOCGASYNCMAP = 0x80047458 + PPPIOCGCHAN = 0x80047437 + PPPIOCGDEBUG = 0x80047441 + PPPIOCGFLAGS = 0x8004745a + PPPIOCGIDLE = 0x8010743f + PPPIOCGIDLE32 = 0x8008743f + PPPIOCGIDLE64 = 0x8010743f + PPPIOCGL2TPSTATS = 0x80487436 + PPPIOCGMRU = 0x80047453 + PPPIOCGRASYNCMAP = 0x80047455 + PPPIOCGUNIT = 0x80047456 + PPPIOCGXASYNCMAP = 0x80207450 + PPPIOCSACTIVE = 0x40107446 + PPPIOCSASYNCMAP = 0x40047457 + PPPIOCSCOMPRESS = 0x4010744d + PPPIOCSDEBUG = 0x40047440 + PPPIOCSFLAGS = 0x40047459 + PPPIOCSMAXCID = 0x40047451 + PPPIOCSMRRU = 0x4004743b + PPPIOCSMRU = 0x40047452 + PPPIOCSNPMODE = 0x4008744b + PPPIOCSPASS = 0x40107447 + PPPIOCSRASYNCMAP = 0x40047454 + PPPIOCSXASYNCMAP = 0x4020744f + PPPIOCUNBRIDGECHAN = 0x7434 + PPPIOCXFERUNIT = 0x744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_DISABLE_TE = 0x5010 + PTRACE_ENABLE_TE = 0x5009 + PTRACE_GET_LAST_BREAK = 0x5006 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_PEEKDATA_AREA = 0x5003 + PTRACE_PEEKTEXT_AREA = 0x5002 + PTRACE_PEEKUSR_AREA = 0x5000 + PTRACE_PEEK_SYSTEM_CALL = 0x5007 + PTRACE_POKEDATA_AREA = 0x5005 + PTRACE_POKETEXT_AREA = 0x5004 + PTRACE_POKEUSR_AREA = 0x5001 + PTRACE_POKE_SYSTEM_CALL = 0x5008 + PTRACE_PROT = 0x15 + PTRACE_SINGLEBLOCK = 0xc + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + PTRACE_TE_ABORT_RAND = 0x5011 + PT_ACR0 = 0x90 + PT_ACR1 = 0x94 + PT_ACR10 = 0xb8 + PT_ACR11 = 0xbc + PT_ACR12 = 0xc0 + PT_ACR13 = 0xc4 + PT_ACR14 = 0xc8 + PT_ACR15 = 0xcc + PT_ACR2 = 0x98 + PT_ACR3 = 0x9c + PT_ACR4 = 0xa0 + PT_ACR5 = 0xa4 + PT_ACR6 = 0xa8 + PT_ACR7 = 0xac + PT_ACR8 = 0xb0 + PT_ACR9 = 0xb4 + PT_CR_10 = 0x168 + PT_CR_11 = 0x170 + PT_CR_9 = 0x160 + PT_ENDREGS = 0x1af + PT_FPC = 0xd8 + PT_FPR0 = 0xe0 + PT_FPR1 = 0xe8 + PT_FPR10 = 0x130 + PT_FPR11 = 0x138 + PT_FPR12 = 0x140 + PT_FPR13 = 0x148 + PT_FPR14 = 0x150 + PT_FPR15 = 0x158 + PT_FPR2 = 0xf0 + PT_FPR3 = 0xf8 + PT_FPR4 = 0x100 + PT_FPR5 = 0x108 + PT_FPR6 = 0x110 + PT_FPR7 = 0x118 + PT_FPR8 = 0x120 + PT_FPR9 = 0x128 + PT_GPR0 = 0x10 + PT_GPR1 = 0x18 + PT_GPR10 = 0x60 + PT_GPR11 = 0x68 + PT_GPR12 = 0x70 + PT_GPR13 = 0x78 + PT_GPR14 = 0x80 + PT_GPR15 = 0x88 + PT_GPR2 = 0x20 + PT_GPR3 = 0x28 + PT_GPR4 = 0x30 + PT_GPR5 = 0x38 + PT_GPR6 = 0x40 + PT_GPR7 = 0x48 + PT_GPR8 = 0x50 + PT_GPR9 = 0x58 + PT_IEEE_IP = 0x1a8 + PT_LASTOFF = 0x1a8 + PT_ORIGGPR2 = 0xd0 + PT_PSWADDR = 0x8 + PT_PSWMASK = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x7 + RLIMIT_NPROC = 0x6 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x40085203 + RNDADDTOENTCNT = 0x40045201 + RNDCLEARPOOL = 0x5206 + RNDGETENTCNT = 0x80045200 + RNDGETPOOL = 0x80085202 + RNDRESEEDCRNG = 0x5207 + RNDZAPENTCNT = 0x5204 + RTC_AIE_OFF = 0x7002 + RTC_AIE_ON = 0x7001 + RTC_ALM_READ = 0x80247008 + RTC_ALM_SET = 0x40247007 + RTC_EPOCH_READ = 0x8008700d + RTC_EPOCH_SET = 0x4008700e + RTC_IRQP_READ = 0x8008700b + RTC_IRQP_SET = 0x4008700c + RTC_PARAM_GET = 0x40187013 + RTC_PARAM_SET = 0x40187014 + RTC_PIE_OFF = 0x7006 + RTC_PIE_ON = 0x7005 + RTC_PLL_GET = 0x80207011 + RTC_PLL_SET = 0x40207012 + RTC_RD_TIME = 0x80247009 + RTC_SET_TIME = 0x4024700a + RTC_UIE_OFF = 0x7004 + RTC_UIE_ON = 0x7003 + RTC_VL_CLR = 0x7014 + RTC_VL_READ = 0x80047013 + RTC_WIE_OFF = 0x7010 + RTC_WIE_ON = 0x700f + RTC_WKALM_RD = 0x80287010 + RTC_WKALM_SET = 0x4028700f + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SFD_CLOEXEC = 0x80000 + SFD_NONBLOCK = 0x800 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x80108907 + SIOCGSTAMP_NEW = 0x80108906 + SIOCINQ = 0x541b + SIOCOUTQ = 0x5411 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0x1 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVMARK = 0x4b + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TXREHASH = 0x4a + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x540b + TCGETA = 0x5405 + TCGETS = 0x5401 + TCGETS2 = 0x802c542a + TCGETX = 0x5432 + TCSAFLUSH = 0x2 + TCSBRK = 0x5409 + TCSBRKP = 0x5425 + TCSETA = 0x5406 + TCSETAF = 0x5408 + TCSETAW = 0x5407 + TCSETS = 0x5402 + TCSETS2 = 0x402c542b + TCSETSF = 0x5404 + TCSETSF2 = 0x402c542d + TCSETSW = 0x5403 + TCSETSW2 = 0x402c542c + TCSETX = 0x5433 + TCSETXF = 0x5434 + TCSETXW = 0x5435 + TCXONC = 0x540a + TFD_CLOEXEC = 0x80000 + TFD_NONBLOCK = 0x800 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + UBI_IOCATT = 0x40186f40 + UBI_IOCDET = 0x40046f41 + UBI_IOCEBCH = 0x40044f02 + UBI_IOCEBER = 0x40044f01 + UBI_IOCEBISMAP = 0x80044f05 + UBI_IOCEBMAP = 0x40084f03 + UBI_IOCEBUNMAP = 0x40044f04 + UBI_IOCMKVOL = 0x40986f00 + UBI_IOCRMVOL = 0x40046f01 + UBI_IOCRNVOL = 0x51106f03 + UBI_IOCRPEB = 0x40046f04 + UBI_IOCRSVOL = 0x400c6f02 + UBI_IOCSETVOLPROP = 0x40104f06 + UBI_IOCSPEB = 0x40046f05 + UBI_IOCVOLCRBLK = 0x40804f07 + UBI_IOCVOLRMBLK = 0x4f08 + UBI_IOCVOLUP = 0x40084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x80045702 + WDIOC_GETPRETIMEOUT = 0x80045709 + WDIOC_GETSTATUS = 0x80045701 + WDIOC_GETSUPPORT = 0x80285700 + WDIOC_GETTEMP = 0x80045703 + WDIOC_GETTIMELEFT = 0x8004570a + WDIOC_GETTIMEOUT = 0x80045707 + WDIOC_KEEPALIVE = 0x80045705 + WDIOC_SETOPTIONS = 0x80045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x80804804 + _HIDIOCGRAWPHYS = 0x80404805 + _HIDIOCGRAWUNIQ = 0x80404808 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x62) + EADDRNOTAVAIL = syscall.Errno(0x63) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x61) + EALREADY = syscall.Errno(0x72) + EBADE = syscall.Errno(0x34) + EBADFD = syscall.Errno(0x4d) + EBADMSG = syscall.Errno(0x4a) + EBADR = syscall.Errno(0x35) + EBADRQC = syscall.Errno(0x38) + EBADSLT = syscall.Errno(0x39) + EBFONT = syscall.Errno(0x3b) + ECANCELED = syscall.Errno(0x7d) + ECHRNG = syscall.Errno(0x2c) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x67) + ECONNREFUSED = syscall.Errno(0x6f) + ECONNRESET = syscall.Errno(0x68) + EDEADLK = syscall.Errno(0x23) + EDEADLOCK = syscall.Errno(0x23) + EDESTADDRREQ = syscall.Errno(0x59) + EDOTDOT = syscall.Errno(0x49) + EDQUOT = syscall.Errno(0x7a) + EHOSTDOWN = syscall.Errno(0x70) + EHOSTUNREACH = syscall.Errno(0x71) + EHWPOISON = syscall.Errno(0x85) + EIDRM = syscall.Errno(0x2b) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x73) + EISCONN = syscall.Errno(0x6a) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x7f) + EKEYREJECTED = syscall.Errno(0x81) + EKEYREVOKED = syscall.Errno(0x80) + EL2HLT = syscall.Errno(0x33) + EL2NSYNC = syscall.Errno(0x2d) + EL3HLT = syscall.Errno(0x2e) + EL3RST = syscall.Errno(0x2f) + ELIBACC = syscall.Errno(0x4f) + ELIBBAD = syscall.Errno(0x50) + ELIBEXEC = syscall.Errno(0x53) + ELIBMAX = syscall.Errno(0x52) + ELIBSCN = syscall.Errno(0x51) + ELNRNG = syscall.Errno(0x30) + ELOOP = syscall.Errno(0x28) + EMEDIUMTYPE = syscall.Errno(0x7c) + EMSGSIZE = syscall.Errno(0x5a) + EMULTIHOP = syscall.Errno(0x48) + ENAMETOOLONG = syscall.Errno(0x24) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x64) + ENETRESET = syscall.Errno(0x66) + ENETUNREACH = syscall.Errno(0x65) + ENOANO = syscall.Errno(0x37) + ENOBUFS = syscall.Errno(0x69) + ENOCSI = syscall.Errno(0x32) + ENODATA = syscall.Errno(0x3d) + ENOKEY = syscall.Errno(0x7e) + ENOLCK = syscall.Errno(0x25) + ENOLINK = syscall.Errno(0x43) + ENOMEDIUM = syscall.Errno(0x7b) + ENOMSG = syscall.Errno(0x2a) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x5c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x26) + ENOTCONN = syscall.Errno(0x6b) + ENOTEMPTY = syscall.Errno(0x27) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x83) + ENOTSOCK = syscall.Errno(0x58) + ENOTSUP = syscall.Errno(0x5f) + ENOTUNIQ = syscall.Errno(0x4c) + EOPNOTSUPP = syscall.Errno(0x5f) + EOVERFLOW = syscall.Errno(0x4b) + EOWNERDEAD = syscall.Errno(0x82) + EPFNOSUPPORT = syscall.Errno(0x60) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x5d) + EPROTOTYPE = syscall.Errno(0x5b) + EREMCHG = syscall.Errno(0x4e) + EREMOTE = syscall.Errno(0x42) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x55) + ERFKILL = syscall.Errno(0x84) + ESHUTDOWN = syscall.Errno(0x6c) + ESOCKTNOSUPPORT = syscall.Errno(0x5e) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x74) + ESTRPIPE = syscall.Errno(0x56) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x6e) + ETOOMANYREFS = syscall.Errno(0x6d) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x31) + EUSERS = syscall.Errno(0x57) + EXFULL = syscall.Errno(0x36) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0x7) + SIGCHLD = syscall.Signal(0x11) + SIGCLD = syscall.Signal(0x11) + SIGCONT = syscall.Signal(0x12) + SIGIO = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x1d) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1e) + SIGSTKFLT = syscall.Signal(0x10) + SIGSTOP = syscall.Signal(0x13) + SIGSYS = syscall.Signal(0x1f) + SIGTSTP = syscall.Signal(0x14) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x17) + SIGUSR1 = syscall.Signal(0xa) + SIGUSR2 = syscall.Signal(0xc) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {35, "EDEADLK", "resource deadlock avoided"}, + {36, "ENAMETOOLONG", "file name too long"}, + {37, "ENOLCK", "no locks available"}, + {38, "ENOSYS", "function not implemented"}, + {39, "ENOTEMPTY", "directory not empty"}, + {40, "ELOOP", "too many levels of symbolic links"}, + {42, "ENOMSG", "no message of desired type"}, + {43, "EIDRM", "identifier removed"}, + {44, "ECHRNG", "channel number out of range"}, + {45, "EL2NSYNC", "level 2 not synchronized"}, + {46, "EL3HLT", "level 3 halted"}, + {47, "EL3RST", "level 3 reset"}, + {48, "ELNRNG", "link number out of range"}, + {49, "EUNATCH", "protocol driver not attached"}, + {50, "ENOCSI", "no CSI structure available"}, + {51, "EL2HLT", "level 2 halted"}, + {52, "EBADE", "invalid exchange"}, + {53, "EBADR", "invalid request descriptor"}, + {54, "EXFULL", "exchange full"}, + {55, "ENOANO", "no anode"}, + {56, "EBADRQC", "invalid request code"}, + {57, "EBADSLT", "invalid slot"}, + {59, "EBFONT", "bad font file format"}, + {60, "ENOSTR", "device not a stream"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of streams resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "EMULTIHOP", "multihop attempted"}, + {73, "EDOTDOT", "RFS specific error"}, + {74, "EBADMSG", "bad message"}, + {75, "EOVERFLOW", "value too large for defined data type"}, + {76, "ENOTUNIQ", "name not unique on network"}, + {77, "EBADFD", "file descriptor in bad state"}, + {78, "EREMCHG", "remote address changed"}, + {79, "ELIBACC", "can not access a needed shared library"}, + {80, "ELIBBAD", "accessing a corrupted shared library"}, + {81, "ELIBSCN", ".lib section in a.out corrupted"}, + {82, "ELIBMAX", "attempting to link in too many shared libraries"}, + {83, "ELIBEXEC", "cannot exec a shared library directly"}, + {84, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {85, "ERESTART", "interrupted system call should be restarted"}, + {86, "ESTRPIPE", "streams pipe error"}, + {87, "EUSERS", "too many users"}, + {88, "ENOTSOCK", "socket operation on non-socket"}, + {89, "EDESTADDRREQ", "destination address required"}, + {90, "EMSGSIZE", "message too long"}, + {91, "EPROTOTYPE", "protocol wrong type for socket"}, + {92, "ENOPROTOOPT", "protocol not available"}, + {93, "EPROTONOSUPPORT", "protocol not supported"}, + {94, "ESOCKTNOSUPPORT", "socket type not supported"}, + {95, "ENOTSUP", "operation not supported"}, + {96, "EPFNOSUPPORT", "protocol family not supported"}, + {97, "EAFNOSUPPORT", "address family not supported by protocol"}, + {98, "EADDRINUSE", "address already in use"}, + {99, "EADDRNOTAVAIL", "cannot assign requested address"}, + {100, "ENETDOWN", "network is down"}, + {101, "ENETUNREACH", "network is unreachable"}, + {102, "ENETRESET", "network dropped connection on reset"}, + {103, "ECONNABORTED", "software caused connection abort"}, + {104, "ECONNRESET", "connection reset by peer"}, + {105, "ENOBUFS", "no buffer space available"}, + {106, "EISCONN", "transport endpoint is already connected"}, + {107, "ENOTCONN", "transport endpoint is not connected"}, + {108, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {109, "ETOOMANYREFS", "too many references: cannot splice"}, + {110, "ETIMEDOUT", "connection timed out"}, + {111, "ECONNREFUSED", "connection refused"}, + {112, "EHOSTDOWN", "host is down"}, + {113, "EHOSTUNREACH", "no route to host"}, + {114, "EALREADY", "operation already in progress"}, + {115, "EINPROGRESS", "operation now in progress"}, + {116, "ESTALE", "stale file handle"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EDQUOT", "disk quota exceeded"}, + {123, "ENOMEDIUM", "no medium found"}, + {124, "EMEDIUMTYPE", "wrong medium type"}, + {125, "ECANCELED", "operation canceled"}, + {126, "ENOKEY", "required key not available"}, + {127, "EKEYEXPIRED", "key has expired"}, + {128, "EKEYREVOKED", "key has been revoked"}, + {129, "EKEYREJECTED", "key was rejected by service"}, + {130, "EOWNERDEAD", "owner died"}, + {131, "ENOTRECOVERABLE", "state not recoverable"}, + {132, "ERFKILL", "operation not possible due to RF-kill"}, + {133, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGBUS", "bus error"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGUSR1", "user defined signal 1"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGUSR2", "user defined signal 2"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGSTKFLT", "stack fault"}, + {17, "SIGCHLD", "child exited"}, + {18, "SIGCONT", "continued"}, + {19, "SIGSTOP", "stopped (signal)"}, + {20, "SIGTSTP", "stopped"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGURG", "urgent I/O condition"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGIO", "I/O possible"}, + {30, "SIGPWR", "power failure"}, + {31, "SIGSYS", "bad system call"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go new file mode 100644 index 0000000000..f619252691 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go @@ -0,0 +1,886 @@ +// mkerrors.sh -Wall -Werror -static -I/tmp/sparc64/include +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build sparc64 && linux +// +build sparc64,linux + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -Wall -Werror -static -I/tmp/sparc64/include _const.go + +package unix + +import "syscall" + +const ( + ASI_LEON_DFLUSH = 0x11 + ASI_LEON_IFLUSH = 0x10 + ASI_LEON_MMUFLUSH = 0x18 + B1000000 = 0x1008 + B115200 = 0x1002 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B230400 = 0x1003 + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + B460800 = 0x1004 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B921600 = 0x1007 + BLKBSZGET = 0x40081270 + BLKBSZSET = 0x80081271 + BLKFLSBUF = 0x20001261 + BLKFRAGET = 0x20001265 + BLKFRASET = 0x20001264 + BLKGETSIZE = 0x20001260 + BLKGETSIZE64 = 0x40081272 + BLKPBSZGET = 0x2000127b + BLKRAGET = 0x20001263 + BLKRASET = 0x20001262 + BLKROGET = 0x2000125e + BLKROSET = 0x2000125d + BLKRRPART = 0x2000125f + BLKSECTGET = 0x20001267 + BLKSECTSET = 0x20001266 + BLKSSZGET = 0x20001268 + BOTHER = 0x1000 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0x100f + CBAUDEX = 0x1000 + CIBAUD = 0x100f0000 + CLOCAL = 0x800 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTOPB = 0x40 + ECCGETLAYOUT = 0x41484d11 + ECCGETSTATS = 0x40104d12 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EFD_CLOEXEC = 0x400000 + EFD_NONBLOCK = 0x4000 + EMT_TAGOVF = 0x1 + EPOLL_CLOEXEC = 0x400000 + EXTPROC = 0x10000 + FF1 = 0x8000 + FFDLY = 0x8000 + FICLONE = 0x80049409 + FICLONERANGE = 0x8020940d + FLUSHO = 0x1000 + FS_IOC_ENABLE_VERITY = 0x80806685 + FS_IOC_GETFLAGS = 0x40086601 + FS_IOC_GET_ENCRYPTION_NONCE = 0x4010661b + FS_IOC_GET_ENCRYPTION_POLICY = 0x800c6615 + FS_IOC_GET_ENCRYPTION_PWSALT = 0x80106614 + FS_IOC_SETFLAGS = 0x80086602 + FS_IOC_SET_ENCRYPTION_POLICY = 0x400c6613 + F_GETLK = 0x7 + F_GETLK64 = 0x7 + F_GETOWN = 0x5 + F_RDLCK = 0x1 + F_SETLK = 0x8 + F_SETLK64 = 0x8 + F_SETLKW = 0x9 + F_SETLKW64 = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HIDIOCGRAWINFO = 0x40084803 + HIDIOCGRDESC = 0x50044802 + HIDIOCGRDESCSIZE = 0x40044801 + HUPCL = 0x400 + ICANON = 0x2 + IEXTEN = 0x8000 + IN_CLOEXEC = 0x400000 + IN_NONBLOCK = 0x4000 + IOCTL_VM_SOCKETS_GET_LOCAL_CID = 0x200007b9 + ISIG = 0x1 + IUCLC = 0x200 + IXOFF = 0x1000 + IXON = 0x400 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_GROWSDOWN = 0x200 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x100 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_RENAME = 0x20 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MCL_ONFAULT = 0x8000 + MEMERASE = 0x80084d02 + MEMERASE64 = 0x80104d14 + MEMGETBADBLOCK = 0x80084d0b + MEMGETINFO = 0x40204d01 + MEMGETOOBSEL = 0x40c84d0a + MEMGETREGIONCOUNT = 0x40044d07 + MEMISLOCKED = 0x40084d17 + MEMLOCK = 0x80084d05 + MEMREAD = 0xc0404d1a + MEMREADOOB = 0xc0104d04 + MEMSETBADBLOCK = 0x80084d0c + MEMUNLOCK = 0x80084d06 + MEMWRITEOOB = 0xc0104d03 + MTDFILEMODE = 0x20004d13 + NFDBITS = 0x40 + NLDLY = 0x100 + NOFLSH = 0x80 + NS_GET_NSTYPE = 0x2000b703 + NS_GET_OWNER_UID = 0x2000b704 + NS_GET_PARENT = 0x2000b702 + NS_GET_USERNS = 0x2000b701 + OLCUC = 0x2 + ONLCR = 0x4 + OTPERASE = 0x800c4d19 + OTPGETREGIONCOUNT = 0x80044d0e + OTPGETREGIONINFO = 0x800c4d0f + OTPLOCK = 0x400c4d10 + OTPSELECT = 0x40044d0d + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x100000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x2000 + O_EXCL = 0x800 + O_FSYNC = 0x802000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x4004 + O_NOATIME = 0x200000 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x4000 + O_PATH = 0x1000000 + O_RSYNC = 0x802000 + O_SYNC = 0x802000 + O_TMPFILE = 0x2010000 + O_TRUNC = 0x400 + PARENB = 0x100 + PARODD = 0x200 + PENDIN = 0x4000 + PERF_EVENT_IOC_DISABLE = 0x20002401 + PERF_EVENT_IOC_ENABLE = 0x20002400 + PERF_EVENT_IOC_ID = 0x40082407 + PERF_EVENT_IOC_MODIFY_ATTRIBUTES = 0x8008240b + PERF_EVENT_IOC_PAUSE_OUTPUT = 0x80042409 + PERF_EVENT_IOC_PERIOD = 0x80082404 + PERF_EVENT_IOC_QUERY_BPF = 0xc008240a + PERF_EVENT_IOC_REFRESH = 0x20002402 + PERF_EVENT_IOC_RESET = 0x20002403 + PERF_EVENT_IOC_SET_BPF = 0x80042408 + PERF_EVENT_IOC_SET_FILTER = 0x80082406 + PERF_EVENT_IOC_SET_OUTPUT = 0x20002405 + PPPIOCATTACH = 0x8004743d + PPPIOCATTCHAN = 0x80047438 + PPPIOCBRIDGECHAN = 0x80047435 + PPPIOCCONNECT = 0x8004743a + PPPIOCDETACH = 0x8004743c + PPPIOCDISCONN = 0x20007439 + PPPIOCGASYNCMAP = 0x40047458 + PPPIOCGCHAN = 0x40047437 + PPPIOCGDEBUG = 0x40047441 + PPPIOCGFLAGS = 0x4004745a + PPPIOCGIDLE = 0x4010743f + PPPIOCGIDLE32 = 0x4008743f + PPPIOCGIDLE64 = 0x4010743f + PPPIOCGL2TPSTATS = 0x40487436 + PPPIOCGMRU = 0x40047453 + PPPIOCGRASYNCMAP = 0x40047455 + PPPIOCGUNIT = 0x40047456 + PPPIOCGXASYNCMAP = 0x40207450 + PPPIOCSACTIVE = 0x80107446 + PPPIOCSASYNCMAP = 0x80047457 + PPPIOCSCOMPRESS = 0x8010744d + PPPIOCSDEBUG = 0x80047440 + PPPIOCSFLAGS = 0x80047459 + PPPIOCSMAXCID = 0x80047451 + PPPIOCSMRRU = 0x8004743b + PPPIOCSMRU = 0x80047452 + PPPIOCSNPMODE = 0x8008744b + PPPIOCSPASS = 0x80107447 + PPPIOCSRASYNCMAP = 0x80047454 + PPPIOCSXASYNCMAP = 0x8020744f + PPPIOCUNBRIDGECHAN = 0x20007434 + PPPIOCXFERUNIT = 0x2000744e + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PTRACE_GETFPAREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPREGS64 = 0x19 + PTRACE_GETREGS64 = 0x16 + PTRACE_READDATA = 0x10 + PTRACE_READTEXT = 0x12 + PTRACE_SETFPAREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPREGS64 = 0x1a + PTRACE_SETREGS64 = 0x17 + PTRACE_SPARC_DETACH = 0xb + PTRACE_WRITEDATA = 0x11 + PTRACE_WRITETEXT = 0x13 + PT_FP = 0x48 + PT_G0 = 0x10 + PT_G1 = 0x14 + PT_G2 = 0x18 + PT_G3 = 0x1c + PT_G4 = 0x20 + PT_G5 = 0x24 + PT_G6 = 0x28 + PT_G7 = 0x2c + PT_I0 = 0x30 + PT_I1 = 0x34 + PT_I2 = 0x38 + PT_I3 = 0x3c + PT_I4 = 0x40 + PT_I5 = 0x44 + PT_I6 = 0x48 + PT_I7 = 0x4c + PT_NPC = 0x8 + PT_PC = 0x4 + PT_PSR = 0x0 + PT_REGS_MAGIC = 0x57ac6c00 + PT_TNPC = 0x90 + PT_TPC = 0x88 + PT_TSTATE = 0x80 + PT_V9_FP = 0x70 + PT_V9_G0 = 0x0 + PT_V9_G1 = 0x8 + PT_V9_G2 = 0x10 + PT_V9_G3 = 0x18 + PT_V9_G4 = 0x20 + PT_V9_G5 = 0x28 + PT_V9_G6 = 0x30 + PT_V9_G7 = 0x38 + PT_V9_I0 = 0x40 + PT_V9_I1 = 0x48 + PT_V9_I2 = 0x50 + PT_V9_I3 = 0x58 + PT_V9_I4 = 0x60 + PT_V9_I5 = 0x68 + PT_V9_I6 = 0x70 + PT_V9_I7 = 0x78 + PT_V9_MAGIC = 0x9c + PT_V9_TNPC = 0x90 + PT_V9_TPC = 0x88 + PT_V9_TSTATE = 0x80 + PT_V9_Y = 0x98 + PT_WIM = 0x10 + PT_Y = 0xc + RLIMIT_AS = 0x9 + RLIMIT_MEMLOCK = 0x8 + RLIMIT_NOFILE = 0x6 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RNDADDENTROPY = 0x80085203 + RNDADDTOENTCNT = 0x80045201 + RNDCLEARPOOL = 0x20005206 + RNDGETENTCNT = 0x40045200 + RNDGETPOOL = 0x40085202 + RNDRESEEDCRNG = 0x20005207 + RNDZAPENTCNT = 0x20005204 + RTC_AIE_OFF = 0x20007002 + RTC_AIE_ON = 0x20007001 + RTC_ALM_READ = 0x40247008 + RTC_ALM_SET = 0x80247007 + RTC_EPOCH_READ = 0x4008700d + RTC_EPOCH_SET = 0x8008700e + RTC_IRQP_READ = 0x4008700b + RTC_IRQP_SET = 0x8008700c + RTC_PARAM_GET = 0x80187013 + RTC_PARAM_SET = 0x80187014 + RTC_PIE_OFF = 0x20007006 + RTC_PIE_ON = 0x20007005 + RTC_PLL_GET = 0x40207011 + RTC_PLL_SET = 0x80207012 + RTC_RD_TIME = 0x40247009 + RTC_SET_TIME = 0x8024700a + RTC_UIE_OFF = 0x20007004 + RTC_UIE_ON = 0x20007003 + RTC_VL_CLR = 0x20007014 + RTC_VL_READ = 0x40047013 + RTC_WIE_OFF = 0x20007010 + RTC_WIE_ON = 0x2000700f + RTC_WKALM_RD = 0x40287010 + RTC_WKALM_SET = 0x8028700f + SCM_TIMESTAMPING = 0x23 + SCM_TIMESTAMPING_OPT_STATS = 0x38 + SCM_TIMESTAMPING_PKTINFO = 0x3c + SCM_TIMESTAMPNS = 0x21 + SCM_TXTIME = 0x3f + SCM_WIFI_STATUS = 0x25 + SFD_CLOEXEC = 0x400000 + SFD_NONBLOCK = 0x4000 + SIOCATMARK = 0x8905 + SIOCGPGRP = 0x8904 + SIOCGSTAMPNS_NEW = 0x40108907 + SIOCGSTAMP_NEW = 0x40108906 + SIOCINQ = 0x4004667f + SIOCOUTQ = 0x40047473 + SIOCSPGRP = 0x8902 + SOCK_CLOEXEC = 0x400000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SO_ACCEPTCONN = 0x8000 + SO_ATTACH_BPF = 0x34 + SO_ATTACH_REUSEPORT_CBPF = 0x35 + SO_ATTACH_REUSEPORT_EBPF = 0x36 + SO_BINDTODEVICE = 0xd + SO_BINDTOIFINDEX = 0x41 + SO_BPF_EXTENSIONS = 0x32 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0x400 + SO_BUF_LOCK = 0x51 + SO_BUSY_POLL = 0x30 + SO_BUSY_POLL_BUDGET = 0x49 + SO_CNX_ADVICE = 0x37 + SO_COOKIE = 0x3b + SO_DETACH_REUSEPORT_BPF = 0x47 + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_INCOMING_CPU = 0x33 + SO_INCOMING_NAPI_ID = 0x3a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x28 + SO_MARK = 0x22 + SO_MAX_PACING_RATE = 0x31 + SO_MEMINFO = 0x39 + SO_NETNS_COOKIE = 0x50 + SO_NOFCS = 0x27 + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x2 + SO_PASSSEC = 0x1f + SO_PEEK_OFF = 0x26 + SO_PEERCRED = 0x40 + SO_PEERGROUPS = 0x3d + SO_PEERSEC = 0x1e + SO_PREFER_BUSY_POLL = 0x48 + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x100b + SO_RCVLOWAT = 0x800 + SO_RCVMARK = 0x54 + SO_RCVTIMEO = 0x2000 + SO_RCVTIMEO_NEW = 0x44 + SO_RCVTIMEO_OLD = 0x2000 + SO_RESERVE_MEM = 0x52 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x24 + SO_SECURITY_AUTHENTICATION = 0x5001 + SO_SECURITY_ENCRYPTION_NETWORK = 0x5004 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x5002 + SO_SELECT_ERR_QUEUE = 0x29 + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x100a + SO_SNDLOWAT = 0x1000 + SO_SNDTIMEO = 0x4000 + SO_SNDTIMEO_NEW = 0x45 + SO_SNDTIMEO_OLD = 0x4000 + SO_TIMESTAMPING = 0x23 + SO_TIMESTAMPING_NEW = 0x43 + SO_TIMESTAMPING_OLD = 0x23 + SO_TIMESTAMPNS = 0x21 + SO_TIMESTAMPNS_NEW = 0x42 + SO_TIMESTAMPNS_OLD = 0x21 + SO_TIMESTAMP_NEW = 0x46 + SO_TXREHASH = 0x53 + SO_TXTIME = 0x3f + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x25 + SO_ZEROCOPY = 0x3e + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x20005407 + TCGETA = 0x40125401 + TCGETS = 0x40245408 + TCGETS2 = 0x402c540c + TCSAFLUSH = 0x2 + TCSBRK = 0x20005405 + TCSBRKP = 0x5425 + TCSETA = 0x80125402 + TCSETAF = 0x80125404 + TCSETAW = 0x80125403 + TCSETS = 0x80245409 + TCSETS2 = 0x802c540d + TCSETSF = 0x8024540b + TCSETSF2 = 0x802c540f + TCSETSW = 0x8024540a + TCSETSW2 = 0x802c540e + TCXONC = 0x20005406 + TFD_CLOEXEC = 0x400000 + TFD_NONBLOCK = 0x4000 + TIOCCBRK = 0x2000747a + TIOCCONS = 0x20007424 + TIOCEXCL = 0x2000740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x40047400 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x40285443 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x40047483 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40047486 + TIOCGPTPEER = 0x20007489 + TIOCGRS485 = 0x40205441 + TIOCGSERIAL = 0x541e + TIOCGSID = 0x40047485 + TIOCGSOFTCAR = 0x40047464 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0x545c + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007484 + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSETD = 0x80047401 + TIOCSIG = 0x80047488 + TIOCSISO7816 = 0xc0285444 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x80047482 + TIOCSPTLCK = 0x80047487 + TIOCSRS485 = 0xc0205442 + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x80047465 + TIOCSTART = 0x2000746e + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x20005437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETDEVNETNS = 0x200054e3 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETBE = 0x400454df + TUNGETVNETHDRSZ = 0x400454d7 + TUNGETVNETLE = 0x400454dd + TUNSETCARRIER = 0x800454e2 + TUNSETDEBUG = 0x800454c9 + TUNSETFILTEREBPF = 0x400454e1 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETSTEERINGEBPF = 0x400454e0 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETBE = 0x800454de + TUNSETVNETHDRSZ = 0x800454d8 + TUNSETVNETLE = 0x800454dc + UBI_IOCATT = 0x80186f40 + UBI_IOCDET = 0x80046f41 + UBI_IOCEBCH = 0x80044f02 + UBI_IOCEBER = 0x80044f01 + UBI_IOCEBISMAP = 0x40044f05 + UBI_IOCEBMAP = 0x80084f03 + UBI_IOCEBUNMAP = 0x80044f04 + UBI_IOCMKVOL = 0x80986f00 + UBI_IOCRMVOL = 0x80046f01 + UBI_IOCRNVOL = 0x91106f03 + UBI_IOCRPEB = 0x80046f04 + UBI_IOCRSVOL = 0x800c6f02 + UBI_IOCSETVOLPROP = 0x80104f06 + UBI_IOCSPEB = 0x80046f05 + UBI_IOCVOLCRBLK = 0x80804f07 + UBI_IOCVOLRMBLK = 0x20004f08 + UBI_IOCVOLUP = 0x80084f00 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VMIN = 0x6 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WDIOC_GETBOOTSTATUS = 0x40045702 + WDIOC_GETPRETIMEOUT = 0x40045709 + WDIOC_GETSTATUS = 0x40045701 + WDIOC_GETSUPPORT = 0x40285700 + WDIOC_GETTEMP = 0x40045703 + WDIOC_GETTIMELEFT = 0x4004570a + WDIOC_GETTIMEOUT = 0x40045707 + WDIOC_KEEPALIVE = 0x40045705 + WDIOC_SETOPTIONS = 0x40045704 + WORDSIZE = 0x40 + XCASE = 0x4 + XTABS = 0x1800 + _HIDIOCGRAWNAME = 0x40804804 + _HIDIOCGRAWPHYS = 0x40404805 + _HIDIOCGRAWUNIQ = 0x40404808 + __TIOCFLUSH = 0x80047410 +) + +// Errors +const ( + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EADV = syscall.Errno(0x53) + EAFNOSUPPORT = syscall.Errno(0x2f) + EALREADY = syscall.Errno(0x25) + EBADE = syscall.Errno(0x66) + EBADFD = syscall.Errno(0x5d) + EBADMSG = syscall.Errno(0x4c) + EBADR = syscall.Errno(0x67) + EBADRQC = syscall.Errno(0x6a) + EBADSLT = syscall.Errno(0x6b) + EBFONT = syscall.Errno(0x6d) + ECANCELED = syscall.Errno(0x7f) + ECHRNG = syscall.Errno(0x5e) + ECOMM = syscall.Errno(0x55) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0x4e) + EDEADLOCK = syscall.Errno(0x6c) + EDESTADDRREQ = syscall.Errno(0x27) + EDOTDOT = syscall.Errno(0x58) + EDQUOT = syscall.Errno(0x45) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EHWPOISON = syscall.Errno(0x87) + EIDRM = syscall.Errno(0x4d) + EILSEQ = syscall.Errno(0x7a) + EINPROGRESS = syscall.Errno(0x24) + EISCONN = syscall.Errno(0x38) + EISNAM = syscall.Errno(0x78) + EKEYEXPIRED = syscall.Errno(0x81) + EKEYREJECTED = syscall.Errno(0x83) + EKEYREVOKED = syscall.Errno(0x82) + EL2HLT = syscall.Errno(0x65) + EL2NSYNC = syscall.Errno(0x5f) + EL3HLT = syscall.Errno(0x60) + EL3RST = syscall.Errno(0x61) + ELIBACC = syscall.Errno(0x72) + ELIBBAD = syscall.Errno(0x70) + ELIBEXEC = syscall.Errno(0x6e) + ELIBMAX = syscall.Errno(0x7b) + ELIBSCN = syscall.Errno(0x7c) + ELNRNG = syscall.Errno(0x62) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x7e) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x57) + ENAMETOOLONG = syscall.Errno(0x3f) + ENAVAIL = syscall.Errno(0x77) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENOANO = syscall.Errno(0x69) + ENOBUFS = syscall.Errno(0x37) + ENOCSI = syscall.Errno(0x64) + ENODATA = syscall.Errno(0x6f) + ENOKEY = syscall.Errno(0x80) + ENOLCK = syscall.Errno(0x4f) + ENOLINK = syscall.Errno(0x52) + ENOMEDIUM = syscall.Errno(0x7d) + ENOMSG = syscall.Errno(0x4b) + ENONET = syscall.Errno(0x50) + ENOPKG = syscall.Errno(0x71) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSR = syscall.Errno(0x4a) + ENOSTR = syscall.Errno(0x48) + ENOSYS = syscall.Errno(0x5a) + ENOTCONN = syscall.Errno(0x39) + ENOTEMPTY = syscall.Errno(0x42) + ENOTNAM = syscall.Errno(0x76) + ENOTRECOVERABLE = syscall.Errno(0x85) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x2d) + ENOTUNIQ = syscall.Errno(0x73) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x5c) + EOWNERDEAD = syscall.Errno(0x84) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPROCLIM = syscall.Errno(0x43) + EPROTO = syscall.Errno(0x56) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + EREMCHG = syscall.Errno(0x59) + EREMOTE = syscall.Errno(0x47) + EREMOTEIO = syscall.Errno(0x79) + ERESTART = syscall.Errno(0x74) + ERFKILL = syscall.Errno(0x86) + ERREMOTE = syscall.Errno(0x51) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESRMNT = syscall.Errno(0x54) + ESTALE = syscall.Errno(0x46) + ESTRPIPE = syscall.Errno(0x5b) + ETIME = syscall.Errno(0x49) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + EUCLEAN = syscall.Errno(0x75) + EUNATCH = syscall.Errno(0x63) + EUSERS = syscall.Errno(0x44) + EXFULL = syscall.Errno(0x68) +) + +// Signals +const ( + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGIO = syscall.Signal(0x17) + SIGLOST = syscall.Signal(0x1d) + SIGPOLL = syscall.Signal(0x17) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x1d) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device or resource busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "invalid cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "numerical result out of range"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "ENOTSUP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "cannot assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "transport endpoint is already connected"}, + {57, "ENOTCONN", "transport endpoint is not connected"}, + {58, "ESHUTDOWN", "cannot send after transport endpoint shutdown"}, + {59, "ETOOMANYREFS", "too many references: cannot splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale file handle"}, + {71, "EREMOTE", "object is remote"}, + {72, "ENOSTR", "device not a stream"}, + {73, "ETIME", "timer expired"}, + {74, "ENOSR", "out of streams resources"}, + {75, "ENOMSG", "no message of desired type"}, + {76, "EBADMSG", "bad message"}, + {77, "EIDRM", "identifier removed"}, + {78, "EDEADLK", "resource deadlock avoided"}, + {79, "ENOLCK", "no locks available"}, + {80, "ENONET", "machine is not on the network"}, + {81, "ERREMOTE", "unknown error 81"}, + {82, "ENOLINK", "link has been severed"}, + {83, "EADV", "advertise error"}, + {84, "ESRMNT", "srmount error"}, + {85, "ECOMM", "communication error on send"}, + {86, "EPROTO", "protocol error"}, + {87, "EMULTIHOP", "multihop attempted"}, + {88, "EDOTDOT", "RFS specific error"}, + {89, "EREMCHG", "remote address changed"}, + {90, "ENOSYS", "function not implemented"}, + {91, "ESTRPIPE", "streams pipe error"}, + {92, "EOVERFLOW", "value too large for defined data type"}, + {93, "EBADFD", "file descriptor in bad state"}, + {94, "ECHRNG", "channel number out of range"}, + {95, "EL2NSYNC", "level 2 not synchronized"}, + {96, "EL3HLT", "level 3 halted"}, + {97, "EL3RST", "level 3 reset"}, + {98, "ELNRNG", "link number out of range"}, + {99, "EUNATCH", "protocol driver not attached"}, + {100, "ENOCSI", "no CSI structure available"}, + {101, "EL2HLT", "level 2 halted"}, + {102, "EBADE", "invalid exchange"}, + {103, "EBADR", "invalid request descriptor"}, + {104, "EXFULL", "exchange full"}, + {105, "ENOANO", "no anode"}, + {106, "EBADRQC", "invalid request code"}, + {107, "EBADSLT", "invalid slot"}, + {108, "EDEADLOCK", "file locking deadlock error"}, + {109, "EBFONT", "bad font file format"}, + {110, "ELIBEXEC", "cannot exec a shared library directly"}, + {111, "ENODATA", "no data available"}, + {112, "ELIBBAD", "accessing a corrupted shared library"}, + {113, "ENOPKG", "package not installed"}, + {114, "ELIBACC", "can not access a needed shared library"}, + {115, "ENOTUNIQ", "name not unique on network"}, + {116, "ERESTART", "interrupted system call should be restarted"}, + {117, "EUCLEAN", "structure needs cleaning"}, + {118, "ENOTNAM", "not a XENIX named type file"}, + {119, "ENAVAIL", "no XENIX semaphores available"}, + {120, "EISNAM", "is a named type file"}, + {121, "EREMOTEIO", "remote I/O error"}, + {122, "EILSEQ", "invalid or incomplete multibyte or wide character"}, + {123, "ELIBMAX", "attempting to link in too many shared libraries"}, + {124, "ELIBSCN", ".lib section in a.out corrupted"}, + {125, "ENOMEDIUM", "no medium found"}, + {126, "EMEDIUMTYPE", "wrong medium type"}, + {127, "ECANCELED", "operation canceled"}, + {128, "ENOKEY", "required key not available"}, + {129, "EKEYEXPIRED", "key has expired"}, + {130, "EKEYREVOKED", "key has been revoked"}, + {131, "EKEYREJECTED", "key was rejected by service"}, + {132, "EOWNERDEAD", "owner died"}, + {133, "ENOTRECOVERABLE", "state not recoverable"}, + {134, "ERFKILL", "operation not possible due to RF-kill"}, + {135, "EHWPOISON", "memory page has hardware error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/breakpoint trap"}, + {6, "SIGABRT", "aborted"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "CPU time limit exceeded"}, + {25, "SIGXFSZ", "file size limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGLOST", "power failure"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go new file mode 100644 index 0000000000..72f7420d20 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go @@ -0,0 +1,1780 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && netbsd +// +build 386,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + EN_SW_CTL_INF = 0x1000 + EN_SW_CTL_PREC = 0x300 + EN_SW_CTL_ROUND = 0xc00 + EN_SW_DATACHAIN = 0x80 + EN_SW_DENORM = 0x2 + EN_SW_INVOP = 0x1 + EN_SW_OVERFLOW = 0x8 + EN_SW_PRECLOSS = 0x20 + EN_SW_UNDERFLOW = 0x10 + EN_SW_ZERODIV = 0x4 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go new file mode 100644 index 0000000000..8d4eb0c080 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go @@ -0,0 +1,1770 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && netbsd +// +build amd64,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go new file mode 100644 index 0000000000..9eef9749f6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go @@ -0,0 +1,1759 @@ +// mkerrors.sh -marm +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && netbsd +// +build arm,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -marm _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PRI_IOFLUSH = 0x7c + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x48087446 + TIOCPTSNAME = 0x48087448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go new file mode 100644 index 0000000000..3b62ba192c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go @@ -0,0 +1,1770 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && netbsd +// +build arm64,netbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CPUSTATES = 0x5 + CP_IDLE = 0x4 + CP_INTR = 0x3 + CP_NICE = 0x1 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTATTR_CMD_START = 0x1 + EXTATTR_CMD_STOP = 0x2 + EXTATTR_NAMESPACE_SYSTEM = 0x2 + EXTATTR_NAMESPACE_USER = 0x1 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_BASIC_FLAGS = 0xe782807f + MNT_DEFEXPORTED = 0x200 + MNT_DISCARD = 0x800000 + MNT_EXKERB = 0x800 + MNT_EXNORESPORT = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXPUBLIC = 0x10000000 + MNT_EXRDONLY = 0x80 + MNT_EXTATTR = 0x1000000 + MNT_FORCE = 0x80000 + MNT_GETARGS = 0x400000 + MNT_IGNORE = 0x100000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_LOG = 0x2000000 + MNT_NOATIME = 0x4000000 + MNT_NOCOREDUMP = 0x8000 + MNT_NODEV = 0x10 + MNT_NODEVMTIME = 0x40000000 + MNT_NOEXEC = 0x4 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_OP_FLAGS = 0x4d0000 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELATIME = 0x20000 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x80000000 + MNT_SYMPERM = 0x20000000 + MNT_SYNCHRONOUS = 0x2 + MNT_UNION = 0x20 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0xff90ffff + MNT_WAIT = 0x1 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x58) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x57) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x52) + EILSEQ = syscall.Errno(0x55) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x60) + ELOOP = syscall.Errno(0x3e) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + EMULTIHOP = syscall.Errno(0x5e) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x5d) + ENOBUFS = syscall.Errno(0x37) + ENODATA = syscall.Errno(0x59) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOLINK = syscall.Errno(0x5f) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x53) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x5a) + ENOSTR = syscall.Errno(0x5b) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x56) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x54) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x60) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIME = syscall.Errno(0x5c) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGPWR = syscall.Signal(0x20) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large or too small"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol option not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "connection timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disc quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC prog. not avail"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIDRM", "identifier removed"}, + {83, "ENOMSG", "no message of desired type"}, + {84, "EOVERFLOW", "value too large to be stored in data type"}, + {85, "EILSEQ", "illegal byte sequence"}, + {86, "ENOTSUP", "not supported"}, + {87, "ECANCELED", "operation Canceled"}, + {88, "EBADMSG", "bad or Corrupt message"}, + {89, "ENODATA", "no message available"}, + {90, "ENOSR", "no STREAM resources"}, + {91, "ENOSTR", "not a STREAM"}, + {92, "ETIME", "STREAM ioctl timeout"}, + {93, "ENOATTR", "attribute not found"}, + {94, "EMULTIHOP", "multihop attempted"}, + {95, "ENOLINK", "link has been severed"}, + {96, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "stopped (signal)"}, + {18, "SIGTSTP", "stopped"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGPWR", "power fail/restart"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go new file mode 100644 index 0000000000..af20e474b3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go @@ -0,0 +1,1906 @@ +// mkerrors.sh -m32 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && openbsd +// +build 386,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m32 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x400c426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x800c426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc100445d + DIOCADDRULE = 0xccc84404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xccc8441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xccc84407 + DIOCGETRULES = 0xccc84406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc084444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0844450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x805c693c + SIOCBRDGADDL = 0x805c6949 + SIOCBRDGADDS = 0x805c6941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x805c693d + SIOCBRDGDELS = 0x805c6942 + SIOCBRDGFLUSH = 0x805c6948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc05c693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc05c6942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x805c6955 + SIOCBRDGSIFFLGS = 0x805c693f + SIOCBRDGSIFPRIO = 0x805c6954 + SIOCBRDGSIFPROT = 0x805c694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x400c745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go new file mode 100644 index 0000000000..6015fcb2bf --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go @@ -0,0 +1,1906 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && openbsd +// +build amd64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go new file mode 100644 index 0000000000..8d44955e44 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go @@ -0,0 +1,1906 @@ +// mkerrors.sh +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && openbsd +// +build arm,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc100445d + DIOCADDRULE = 0xcce04404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcce0441a + DIOCCLRIFFLAG = 0xc024445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0d04412 + DIOCCLRSTATUS = 0xc0244416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1084460 + DIOCGETQUEUE = 0xc100445f + DIOCGETQUEUES = 0xc100445e + DIOCGETRULE = 0xcce04407 + DIOCGETRULES = 0xcce04406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0084454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0084419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0244457 + DIOCKILLSRCNODES = 0xc068445b + DIOCKILLSTATES = 0xc0d04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc44c4443 + DIOCRADDTABLES = 0xc44c443d + DIOCRCLRADDRS = 0xc44c4442 + DIOCRCLRASTATS = 0xc44c4448 + DIOCRCLRTABLES = 0xc44c443c + DIOCRCLRTSTATS = 0xc44c4441 + DIOCRDELADDRS = 0xc44c4444 + DIOCRDELTABLES = 0xc44c443e + DIOCRGETADDRS = 0xc44c4446 + DIOCRGETASTATS = 0xc44c4447 + DIOCRGETTABLES = 0xc44c443f + DIOCRGETTSTATS = 0xc44c4440 + DIOCRINADEFINE = 0xc44c444d + DIOCRSETADDRS = 0xc44c4445 + DIOCRSETTFLAGS = 0xc44c444a + DIOCRTSTADDRS = 0xc44c4449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0244459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0244414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc00c4451 + DIOCXCOMMIT = 0xc00c4452 + DIOCXROLLBACK = 0xc00c4453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc024698d + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0386938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go new file mode 100644 index 0000000000..ae16fe7542 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go @@ -0,0 +1,1906 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, + {28672, "SIGSTKSZ", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go new file mode 100644 index 0000000000..03d90fe355 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go @@ -0,0 +1,1906 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGIOT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, + {81920, "SIGSTKSZ", "unknown signal"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go new file mode 100644 index 0000000000..8e2c51b1ee --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go @@ -0,0 +1,1905 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x1000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go new file mode 100644 index 0000000000..13d403031e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go @@ -0,0 +1,1904 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ALTWERASE = 0x200 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_F_DIR_IN = 0x10 + BPF_F_DIR_MASK = 0x30 + BPF_F_DIR_OUT = 0x20 + BPF_F_DIR_SHIFT = 0x4 + BPF_F_FLOWID = 0x8 + BPF_F_PRI_MASK = 0x7 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RND = 0xc0 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLOCK_BOOTTIME = 0x6 + CLOCK_MONOTONIC = 0x3 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x4 + CLOCK_UPTIME = 0x5 + CPUSTATES = 0x6 + CP_IDLE = 0x5 + CP_INTR = 0x4 + CP_NICE = 0x1 + CP_SPIN = 0x3 + CP_SYS = 0x2 + CP_USER = 0x0 + CREAD = 0x800 + CRTSCTS = 0x10000 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_HW = 0x6 + CTL_KERN = 0x1 + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCADDQUEUE = 0xc110445d + DIOCADDRULE = 0xcd604404 + DIOCADDSTATE = 0xc1084425 + DIOCCHANGERULE = 0xcd60441a + DIOCCLRIFFLAG = 0xc028445a + DIOCCLRSRCNODES = 0x20004455 + DIOCCLRSTATES = 0xc0e04412 + DIOCCLRSTATUS = 0xc0284416 + DIOCGETLIMIT = 0xc0084427 + DIOCGETQSTATS = 0xc1204460 + DIOCGETQUEUE = 0xc110445f + DIOCGETQUEUES = 0xc110445e + DIOCGETRULE = 0xcd604407 + DIOCGETRULES = 0xcd604406 + DIOCGETRULESET = 0xc444443b + DIOCGETRULESETS = 0xc444443a + DIOCGETSRCNODES = 0xc0104454 + DIOCGETSTATE = 0xc1084413 + DIOCGETSTATES = 0xc0104419 + DIOCGETSTATUS = 0xc1e84415 + DIOCGETSYNFLWATS = 0xc0084463 + DIOCGETTIMEOUT = 0xc008441e + DIOCIGETIFACES = 0xc0284457 + DIOCKILLSRCNODES = 0xc080445b + DIOCKILLSTATES = 0xc0e04429 + DIOCNATLOOK = 0xc0504417 + DIOCOSFPADD = 0xc088444f + DIOCOSFPFLUSH = 0x2000444e + DIOCOSFPGET = 0xc0884450 + DIOCRADDADDRS = 0xc4504443 + DIOCRADDTABLES = 0xc450443d + DIOCRCLRADDRS = 0xc4504442 + DIOCRCLRASTATS = 0xc4504448 + DIOCRCLRTABLES = 0xc450443c + DIOCRCLRTSTATS = 0xc4504441 + DIOCRDELADDRS = 0xc4504444 + DIOCRDELTABLES = 0xc450443e + DIOCRGETADDRS = 0xc4504446 + DIOCRGETASTATS = 0xc4504447 + DIOCRGETTABLES = 0xc450443f + DIOCRGETTSTATS = 0xc4504440 + DIOCRINADEFINE = 0xc450444d + DIOCRSETADDRS = 0xc4504445 + DIOCRSETTFLAGS = 0xc450444a + DIOCRTSTADDRS = 0xc4504449 + DIOCSETDEBUG = 0xc0044418 + DIOCSETHOSTID = 0xc0044456 + DIOCSETIFFLAG = 0xc0284459 + DIOCSETLIMIT = 0xc0084428 + DIOCSETREASS = 0xc004445c + DIOCSETSTATUSIF = 0xc0284414 + DIOCSETSYNCOOKIES = 0xc0014462 + DIOCSETSYNFLWATS = 0xc0084461 + DIOCSETTIMEOUT = 0xc008441d + DIOCSTART = 0x20004401 + DIOCSTOP = 0x20004402 + DIOCXBEGIN = 0xc0104451 + DIOCXCOMMIT = 0xc0104452 + DIOCXROLLBACK = 0xc0104453 + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETH64_8021_RSVD_MASK = 0xfffffffffff0 + ETH64_8021_RSVD_PREFIX = 0x180c2000000 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_EAPOL = 0x888e + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NHRP = 0x2001 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NSH = 0x984f + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_EXCEPT = -0x9 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x9 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf800 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + HW_MACHINE = 0x1 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_WIREGUARD = 0xfb + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + ITIMER_PROF = 0x2 + ITIMER_REAL = 0x0 + ITIMER_VIRTUAL = 0x1 + IUCLC = 0x1000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + KERN_HOSTNAME = 0xa + KERN_OSRELEASE = 0x2 + KERN_OSTYPE = 0x1 + KERN_VERSION = 0x4 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_ASYNC = 0x40 + MNT_DEFEXPORTED = 0x200 + MNT_DELEXPORT = 0x20000 + MNT_DOOMED = 0x8000000 + MNT_EXPORTANON = 0x400 + MNT_EXPORTED = 0x100 + MNT_EXRDONLY = 0x80 + MNT_FORCE = 0x80000 + MNT_LAZY = 0x3 + MNT_LOCAL = 0x1000 + MNT_NOATIME = 0x8000 + MNT_NODEV = 0x10 + MNT_NOEXEC = 0x4 + MNT_NOPERM = 0x20 + MNT_NOSUID = 0x8 + MNT_NOWAIT = 0x2 + MNT_QUOTA = 0x2000 + MNT_RDONLY = 0x1 + MNT_RELOAD = 0x40000 + MNT_ROOTFS = 0x4000 + MNT_SOFTDEP = 0x4000000 + MNT_STALLED = 0x100000 + MNT_SWAPPABLE = 0x200000 + MNT_SYNCHRONOUS = 0x2 + MNT_UPDATE = 0x10000 + MNT_VISFLAGMASK = 0x400ffff + MNT_WAIT = 0x1 + MNT_WANTRDWR = 0x2000000 + MNT_WXALLOWED = 0x800 + MOUNT_AFS = "afs" + MOUNT_CD9660 = "cd9660" + MOUNT_EXT2FS = "ext2fs" + MOUNT_FFS = "ffs" + MOUNT_FUSEFS = "fuse" + MOUNT_MFS = "mfs" + MOUNT_MSDOS = "msdos" + MOUNT_NCPFS = "ncpfs" + MOUNT_NFS = "nfs" + MOUNT_NTFS = "ntfs" + MOUNT_TMPFS = "tmpfs" + MOUNT_UDF = "udf" + MOUNT_UFS = "ffs" + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x8 + NET_RT_SOURCE = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NFDBITS = 0x20 + NOFLSH = 0x80000000 + NOKERNINFO = 0x2000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x4 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OLCUC = 0x20 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + OXTABS = 0x4 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_MEMLOCK = 0x6 + RLIMIT_NOFILE = 0x8 + RLIMIT_NPROC = 0x7 + RLIMIT_RSS = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_SOURCE = 0x16 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SEEK_CUR = 0x1 + SEEK_END = 0x2 + SEEK_SET = 0x0 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFF = 0x3 + TCIOFLUSH = 0x3 + TCION = 0x4 + TCOFLUSH = 0x2 + TCOOFF = 0x1 + TCOON = 0x2 + TCPOPT_EOL = 0x0 + TCPOPT_MAXSEG = 0x2 + TCPOPT_NOP = 0x1 + TCPOPT_SACK = 0x5 + TCPOPT_SACK_HDR = 0x1010500 + TCPOPT_SACK_PERMITTED = 0x4 + TCPOPT_SACK_PERMIT_HDR = 0x1010402 + TCPOPT_SIGNATURE = 0x13 + TCPOPT_TIMESTAMP = 0x8 + TCPOPT_TSTAMP_HDR = 0x101080a + TCPOPT_WINDOW = 0x3 + TCP_INFO = 0x9 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + UTIME_NOW = -0x2 + UTIME_OMIT = -0x1 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VM_ANONMIN = 0x7 + VM_LOADAVG = 0x2 + VM_MALLOC_CONF = 0xc + VM_MAXID = 0xd + VM_MAXSLP = 0xa + VM_METER = 0x1 + VM_NKMEMPAGES = 0x6 + VM_PSSTRINGS = 0x3 + VM_SWAPENCRYPT = 0x5 + VM_USPACE = 0xb + VM_UVMEXP = 0x4 + VM_VNODEMIN = 0x9 + VM_VTEXTMIN = 0x8 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 + XCASE = 0x1000000 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x30) + EADDRNOTAVAIL = syscall.Errno(0x31) + EAFNOSUPPORT = syscall.Errno(0x2f) + EAGAIN = syscall.Errno(0x23) + EALREADY = syscall.Errno(0x25) + EAUTH = syscall.Errno(0x50) + EBADF = syscall.Errno(0x9) + EBADMSG = syscall.Errno(0x5c) + EBADRPC = syscall.Errno(0x48) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x58) + ECHILD = syscall.Errno(0xa) + ECONNABORTED = syscall.Errno(0x35) + ECONNREFUSED = syscall.Errno(0x3d) + ECONNRESET = syscall.Errno(0x36) + EDEADLK = syscall.Errno(0xb) + EDESTADDRREQ = syscall.Errno(0x27) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x45) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EFTYPE = syscall.Errno(0x4f) + EHOSTDOWN = syscall.Errno(0x40) + EHOSTUNREACH = syscall.Errno(0x41) + EIDRM = syscall.Errno(0x59) + EILSEQ = syscall.Errno(0x54) + EINPROGRESS = syscall.Errno(0x24) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EIPSEC = syscall.Errno(0x52) + EISCONN = syscall.Errno(0x38) + EISDIR = syscall.Errno(0x15) + ELAST = syscall.Errno(0x5f) + ELOOP = syscall.Errno(0x3e) + EMEDIUMTYPE = syscall.Errno(0x56) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x28) + ENAMETOOLONG = syscall.Errno(0x3f) + ENEEDAUTH = syscall.Errno(0x51) + ENETDOWN = syscall.Errno(0x32) + ENETRESET = syscall.Errno(0x34) + ENETUNREACH = syscall.Errno(0x33) + ENFILE = syscall.Errno(0x17) + ENOATTR = syscall.Errno(0x53) + ENOBUFS = syscall.Errno(0x37) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x4d) + ENOMEDIUM = syscall.Errno(0x55) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x5a) + ENOPROTOOPT = syscall.Errno(0x2a) + ENOSPC = syscall.Errno(0x1c) + ENOSYS = syscall.Errno(0x4e) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x39) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x42) + ENOTRECOVERABLE = syscall.Errno(0x5d) + ENOTSOCK = syscall.Errno(0x26) + ENOTSUP = syscall.Errno(0x5b) + ENOTTY = syscall.Errno(0x19) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x2d) + EOVERFLOW = syscall.Errno(0x57) + EOWNERDEAD = syscall.Errno(0x5e) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x2e) + EPIPE = syscall.Errno(0x20) + EPROCLIM = syscall.Errno(0x43) + EPROCUNAVAIL = syscall.Errno(0x4c) + EPROGMISMATCH = syscall.Errno(0x4b) + EPROGUNAVAIL = syscall.Errno(0x4a) + EPROTO = syscall.Errno(0x5f) + EPROTONOSUPPORT = syscall.Errno(0x2b) + EPROTOTYPE = syscall.Errno(0x29) + ERANGE = syscall.Errno(0x22) + EREMOTE = syscall.Errno(0x47) + EROFS = syscall.Errno(0x1e) + ERPCMISMATCH = syscall.Errno(0x49) + ESHUTDOWN = syscall.Errno(0x3a) + ESOCKTNOSUPPORT = syscall.Errno(0x2c) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESTALE = syscall.Errno(0x46) + ETIMEDOUT = syscall.Errno(0x3c) + ETOOMANYREFS = syscall.Errno(0x3b) + ETXTBSY = syscall.Errno(0x1a) + EUSERS = syscall.Errno(0x44) + EWOULDBLOCK = syscall.Errno(0x23) + EXDEV = syscall.Errno(0x12) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCHLD = syscall.Signal(0x14) + SIGCONT = syscall.Signal(0x13) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x1d) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x17) + SIGIOT = syscall.Signal(0x6) + SIGKILL = syscall.Signal(0x9) + SIGPIPE = syscall.Signal(0xd) + SIGPROF = syscall.Signal(0x1b) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x11) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHR = syscall.Signal(0x20) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x12) + SIGTTIN = syscall.Signal(0x15) + SIGTTOU = syscall.Signal(0x16) + SIGURG = syscall.Signal(0x10) + SIGUSR1 = syscall.Signal(0x1e) + SIGUSR2 = syscall.Signal(0x1f) + SIGVTALRM = syscall.Signal(0x1a) + SIGWINCH = syscall.Signal(0x1c) + SIGXCPU = syscall.Signal(0x18) + SIGXFSZ = syscall.Signal(0x19) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "operation not permitted"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "input/output error"}, + {6, "ENXIO", "device not configured"}, + {7, "E2BIG", "argument list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file descriptor"}, + {10, "ECHILD", "no child processes"}, + {11, "EDEADLK", "resource deadlock avoided"}, + {12, "ENOMEM", "cannot allocate memory"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "operation not supported by device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "too many open files in system"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "numerical argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "EAGAIN", "resource temporarily unavailable"}, + {36, "EINPROGRESS", "operation now in progress"}, + {37, "EALREADY", "operation already in progress"}, + {38, "ENOTSOCK", "socket operation on non-socket"}, + {39, "EDESTADDRREQ", "destination address required"}, + {40, "EMSGSIZE", "message too long"}, + {41, "EPROTOTYPE", "protocol wrong type for socket"}, + {42, "ENOPROTOOPT", "protocol not available"}, + {43, "EPROTONOSUPPORT", "protocol not supported"}, + {44, "ESOCKTNOSUPPORT", "socket type not supported"}, + {45, "EOPNOTSUPP", "operation not supported"}, + {46, "EPFNOSUPPORT", "protocol family not supported"}, + {47, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {48, "EADDRINUSE", "address already in use"}, + {49, "EADDRNOTAVAIL", "can't assign requested address"}, + {50, "ENETDOWN", "network is down"}, + {51, "ENETUNREACH", "network is unreachable"}, + {52, "ENETRESET", "network dropped connection on reset"}, + {53, "ECONNABORTED", "software caused connection abort"}, + {54, "ECONNRESET", "connection reset by peer"}, + {55, "ENOBUFS", "no buffer space available"}, + {56, "EISCONN", "socket is already connected"}, + {57, "ENOTCONN", "socket is not connected"}, + {58, "ESHUTDOWN", "can't send after socket shutdown"}, + {59, "ETOOMANYREFS", "too many references: can't splice"}, + {60, "ETIMEDOUT", "operation timed out"}, + {61, "ECONNREFUSED", "connection refused"}, + {62, "ELOOP", "too many levels of symbolic links"}, + {63, "ENAMETOOLONG", "file name too long"}, + {64, "EHOSTDOWN", "host is down"}, + {65, "EHOSTUNREACH", "no route to host"}, + {66, "ENOTEMPTY", "directory not empty"}, + {67, "EPROCLIM", "too many processes"}, + {68, "EUSERS", "too many users"}, + {69, "EDQUOT", "disk quota exceeded"}, + {70, "ESTALE", "stale NFS file handle"}, + {71, "EREMOTE", "too many levels of remote in path"}, + {72, "EBADRPC", "RPC struct is bad"}, + {73, "ERPCMISMATCH", "RPC version wrong"}, + {74, "EPROGUNAVAIL", "RPC program not available"}, + {75, "EPROGMISMATCH", "program version wrong"}, + {76, "EPROCUNAVAIL", "bad procedure for program"}, + {77, "ENOLCK", "no locks available"}, + {78, "ENOSYS", "function not implemented"}, + {79, "EFTYPE", "inappropriate file type or format"}, + {80, "EAUTH", "authentication error"}, + {81, "ENEEDAUTH", "need authenticator"}, + {82, "EIPSEC", "IPsec processing failure"}, + {83, "ENOATTR", "attribute not found"}, + {84, "EILSEQ", "illegal byte sequence"}, + {85, "ENOMEDIUM", "no medium found"}, + {86, "EMEDIUMTYPE", "wrong medium type"}, + {87, "EOVERFLOW", "value too large to be stored in data type"}, + {88, "ECANCELED", "operation canceled"}, + {89, "EIDRM", "identifier removed"}, + {90, "ENOMSG", "no message of desired type"}, + {91, "ENOTSUP", "not supported"}, + {92, "EBADMSG", "bad message"}, + {93, "ENOTRECOVERABLE", "state not recoverable"}, + {94, "EOWNERDEAD", "previous owner died"}, + {95, "ELAST", "protocol error"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGTRAP", "trace/BPT trap"}, + {6, "SIGABRT", "abort trap"}, + {7, "SIGEMT", "EMT trap"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad system call"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGURG", "urgent I/O condition"}, + {17, "SIGSTOP", "suspended (signal)"}, + {18, "SIGTSTP", "suspended"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGXCPU", "cputime limit exceeded"}, + {25, "SIGXFSZ", "filesize limit exceeded"}, + {26, "SIGVTALRM", "virtual timer expired"}, + {27, "SIGPROF", "profiling timer expired"}, + {28, "SIGWINCH", "window size changes"}, + {29, "SIGINFO", "information request"}, + {30, "SIGUSR1", "user defined signal 1"}, + {31, "SIGUSR2", "user defined signal 2"}, + {32, "SIGTHR", "thread AST"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go new file mode 100644 index 0000000000..1afee6a089 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go @@ -0,0 +1,1557 @@ +// mkerrors.sh -m64 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && solaris +// +build amd64,solaris + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package unix + +import "syscall" + +const ( + AF_802 = 0x12 + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_FILE = 0x1 + AF_GOSIP = 0x16 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1a + AF_INET_OFFLOAD = 0x1e + AF_IPX = 0x17 + AF_KEY = 0x1b + AF_LAT = 0xe + AF_LINK = 0x19 + AF_LOCAL = 0x1 + AF_MAX = 0x20 + AF_NBS = 0x7 + AF_NCA = 0x1c + AF_NIT = 0x11 + AF_NS = 0x6 + AF_OSI = 0x13 + AF_OSINET = 0x15 + AF_PACKET = 0x20 + AF_POLICY = 0x1d + AF_PUP = 0x4 + AF_ROUTE = 0x18 + AF_SNA = 0xb + AF_TRILL = 0x1f + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_X25 = 0x14 + ARPHRD_ARCNET = 0x7 + ARPHRD_ATM = 0x10 + ARPHRD_AX25 = 0x3 + ARPHRD_CHAOS = 0x5 + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_FC = 0x12 + ARPHRD_FRAME = 0xf + ARPHRD_HDLC = 0x11 + ARPHRD_IB = 0x20 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IPATM = 0x13 + ARPHRD_METRICOM = 0x17 + ARPHRD_TUNNEL = 0x1f + B0 = 0x0 + B110 = 0x3 + B115200 = 0x12 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B153600 = 0x13 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B230400 = 0x14 + B2400 = 0xb + B300 = 0x7 + B307200 = 0x15 + B38400 = 0xf + B460800 = 0x16 + B4800 = 0xc + B50 = 0x1 + B57600 = 0x10 + B600 = 0x8 + B75 = 0x2 + B76800 = 0x11 + B921600 = 0x17 + B9600 = 0xd + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = -0x3fefbd89 + BIOCGDLTLIST32 = -0x3ff7bd89 + BIOCGETIF = 0x4020426b + BIOCGETLIF = 0x4078426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGRTIMEOUT32 = 0x4008427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = -0x7ffbbd90 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = -0x3ffbbd9a + BIOCSDLT = -0x7ffbbd8a + BIOCSETF = -0x7fefbd99 + BIOCSETF32 = -0x7ff7bd99 + BIOCSETIF = -0x7fdfbd94 + BIOCSETLIF = -0x7f87bd94 + BIOCSHDRCMPLT = -0x7ffbbd8b + BIOCSRTIMEOUT = -0x7fefbd86 + BIOCSRTIMEOUT32 = -0x7ff7bd86 + BIOCSSEESENT = -0x7ffbbd87 + BIOCSTCPF = -0x7fefbd8e + BIOCSUDPF = -0x7fefbd8d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + BS0 = 0x0 + BS1 = 0x2000 + BSDLY = 0x2000 + CBAUD = 0xf + CFLUSH = 0xf + CIBAUD = 0xf0000 + CLOCAL = 0x800 + CLOCK_HIGHRES = 0x4 + CLOCK_LEVEL = 0xa + CLOCK_MONOTONIC = 0x4 + CLOCK_PROCESS_CPUTIME_ID = 0x5 + CLOCK_PROF = 0x2 + CLOCK_REALTIME = 0x3 + CLOCK_THREAD_CPUTIME_ID = 0x2 + CLOCK_VIRTUAL = 0x1 + CR0 = 0x0 + CR1 = 0x200 + CR2 = 0x400 + CR3 = 0x600 + CRDLY = 0x600 + CREAD = 0x80 + CRTSCTS = 0x80000000 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + CSWTCH = 0x1a + DIOC = 0x6400 + DIOCGETB = 0x6402 + DIOCGETC = 0x6401 + DIOCGETP = 0x6408 + DIOCSETE = 0x6403 + DIOCSETP = 0x6409 + DLT_AIRONET_HEADER = 0x78 + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_BACNET_MS_TP = 0xa5 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FDDI = 0xa + DLT_FRELAY = 0x6b + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xa2 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_PPPD = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EMPTY_SET = 0x0 + EMT_CPCOVF = 0x1 + EQUALITY_CHECK = 0x0 + EXTA = 0xe + EXTB = 0xf + FD_CLOEXEC = 0x1 + FD_NFDBITS = 0x40 + FD_SETSIZE = 0x10000 + FF0 = 0x0 + FF1 = 0x8000 + FFDLY = 0x8000 + FIORDCHK = 0x6603 + FLUSHALL = 0x1 + FLUSHDATA = 0x0 + FLUSHO = 0x2000 + F_ALLOCSP = 0xa + F_ALLOCSP64 = 0xa + F_BADFD = 0x2e + F_BLKSIZE = 0x13 + F_BLOCKS = 0x12 + F_CHKFL = 0x8 + F_COMPAT = 0x8 + F_DUP2FD = 0x9 + F_DUP2FD_CLOEXEC = 0x24 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x25 + F_FLOCK = 0x35 + F_FLOCK64 = 0x35 + F_FLOCKW = 0x36 + F_FLOCKW64 = 0x36 + F_FREESP = 0xb + F_FREESP64 = 0xb + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_GETXFL = 0x2d + F_HASREMOTELOCKS = 0x1a + F_ISSTREAM = 0xd + F_MANDDNY = 0x10 + F_MDACC = 0x20 + F_NODNY = 0x0 + F_NPRIV = 0x10 + F_OFD_GETLK = 0x2f + F_OFD_GETLK64 = 0x2f + F_OFD_SETLK = 0x30 + F_OFD_SETLK64 = 0x30 + F_OFD_SETLKW = 0x31 + F_OFD_SETLKW64 = 0x31 + F_PRIV = 0xf + F_QUOTACTL = 0x11 + F_RDACC = 0x1 + F_RDDNY = 0x1 + F_RDLCK = 0x1 + F_REVOKE = 0x19 + F_RMACC = 0x4 + F_RMDNY = 0x4 + F_RWACC = 0x3 + F_RWDNY = 0x3 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLK64_NBMAND = 0x2a + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETLK_NBMAND = 0x2a + F_SETOWN = 0x18 + F_SHARE = 0x28 + F_SHARE_NBMAND = 0x2b + F_UNLCK = 0x3 + F_UNLKSYS = 0x4 + F_UNSHARE = 0x29 + F_WRACC = 0x2 + F_WRDNY = 0x2 + F_WRLCK = 0x2 + HUPCL = 0x400 + IBSHIFT = 0x10 + ICANON = 0x2 + ICMP6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFF_ADDRCONF = 0x80000 + IFF_ALLMULTI = 0x200 + IFF_ANYCAST = 0x400000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x7f203003b5a + IFF_COS_ENABLED = 0x200000000 + IFF_DEBUG = 0x4 + IFF_DEPRECATED = 0x40000 + IFF_DHCPRUNNING = 0x4000 + IFF_DUPLICATE = 0x4000000000 + IFF_FAILED = 0x10000000 + IFF_FIXEDMTU = 0x1000000000 + IFF_INACTIVE = 0x40000000 + IFF_INTELLIGENT = 0x400 + IFF_IPMP = 0x8000000000 + IFF_IPMP_CANTCHANGE = 0x10000000 + IFF_IPMP_INVALID = 0x1ec200080 + IFF_IPV4 = 0x1000000 + IFF_IPV6 = 0x2000000 + IFF_L3PROTECT = 0x40000000000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x800 + IFF_MULTI_BCAST = 0x1000 + IFF_NOACCEPT = 0x4000000 + IFF_NOARP = 0x80 + IFF_NOFAILOVER = 0x8000000 + IFF_NOLINKLOCAL = 0x20000000000 + IFF_NOLOCAL = 0x20000 + IFF_NONUD = 0x200000 + IFF_NORTEXCH = 0x800000 + IFF_NOTRAILERS = 0x20 + IFF_NOXMIT = 0x10000 + IFF_OFFLINE = 0x80000000 + IFF_POINTOPOINT = 0x10 + IFF_PREFERRED = 0x400000000 + IFF_PRIVATE = 0x8000 + IFF_PROMISC = 0x100 + IFF_ROUTER = 0x100000 + IFF_RUNNING = 0x40 + IFF_STANDBY = 0x20000000 + IFF_TEMPORARY = 0x800000000 + IFF_UNNUMBERED = 0x2000 + IFF_UP = 0x1 + IFF_VIRTUAL = 0x2000000000 + IFF_VRRP = 0x10000000000 + IFF_XRESOLV = 0x100000000 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6TO4 = 0xca + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_IPV4 = 0xc8 + IFT_IPV6 = 0xc9 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_AUTOCONF_MASK = 0xffff0000 + IN_AUTOCONF_NET = 0xa9fe0000 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_CLASSE_NET = 0xffffffff + IN_LOOPBACKNET = 0x7f + IN_PRIVATE12_MASK = 0xfff00000 + IN_PRIVATE12_NET = 0xac100000 + IN_PRIVATE16_MASK = 0xffff0000 + IN_PRIVATE16_NET = 0xc0a80000 + IN_PRIVATE8_MASK = 0xff000000 + IN_PRIVATE8_NET = 0xa000000 + IPPROTO_AH = 0x33 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x4 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_HELLO = 0x3f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_ND = 0x4d + IPPROTO_NONE = 0x3b + IPPROTO_OSPF = 0x59 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_UDP = 0x11 + IPV6_ADD_MEMBERSHIP = 0x9 + IPV6_BOUND_IF = 0x41 + IPV6_CHECKSUM = 0x18 + IPV6_DONTFRAG = 0x21 + IPV6_DROP_MEMBERSHIP = 0xa + IPV6_DSTOPTS = 0xf + IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 + IPV6_FLOWINFO_TCLASS = 0xf00f + IPV6_HOPLIMIT = 0xc + IPV6_HOPOPTS = 0xe + IPV6_JOIN_GROUP = 0x9 + IPV6_LEAVE_GROUP = 0xa + IPV6_MULTICAST_HOPS = 0x7 + IPV6_MULTICAST_IF = 0x6 + IPV6_MULTICAST_LOOP = 0x8 + IPV6_NEXTHOP = 0xd + IPV6_PAD1_OPT = 0x0 + IPV6_PATHMTU = 0x25 + IPV6_PKTINFO = 0xb + IPV6_PREFER_SRC_CGA = 0x20 + IPV6_PREFER_SRC_CGADEFAULT = 0x10 + IPV6_PREFER_SRC_CGAMASK = 0x30 + IPV6_PREFER_SRC_COA = 0x2 + IPV6_PREFER_SRC_DEFAULT = 0x15 + IPV6_PREFER_SRC_HOME = 0x1 + IPV6_PREFER_SRC_MASK = 0x3f + IPV6_PREFER_SRC_MIPDEFAULT = 0x1 + IPV6_PREFER_SRC_MIPMASK = 0x3 + IPV6_PREFER_SRC_NONCGA = 0x10 + IPV6_PREFER_SRC_PUBLIC = 0x4 + IPV6_PREFER_SRC_TMP = 0x8 + IPV6_PREFER_SRC_TMPDEFAULT = 0x4 + IPV6_PREFER_SRC_TMPMASK = 0xc + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x13 + IPV6_RECVHOPOPTS = 0x14 + IPV6_RECVPATHMTU = 0x24 + IPV6_RECVPKTINFO = 0x12 + IPV6_RECVRTHDR = 0x16 + IPV6_RECVRTHDRDSTOPTS = 0x17 + IPV6_RECVTCLASS = 0x19 + IPV6_RTHDR = 0x10 + IPV6_RTHDRDSTOPTS = 0x11 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SEC_OPT = 0x22 + IPV6_SRC_PREFERENCES = 0x23 + IPV6_TCLASS = 0x26 + IPV6_UNICAST_HOPS = 0x5 + IPV6_UNSPEC_SRC = 0x42 + IPV6_USE_MIN_MTU = 0x20 + IPV6_V6ONLY = 0x27 + IP_ADD_MEMBERSHIP = 0x13 + IP_ADD_SOURCE_MEMBERSHIP = 0x17 + IP_BLOCK_SOURCE = 0x15 + IP_BOUND_IF = 0x41 + IP_BROADCAST = 0x106 + IP_BROADCAST_TTL = 0x43 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPINIT_IF = 0x45 + IP_DONTFRAG = 0x1b + IP_DONTROUTE = 0x105 + IP_DROP_MEMBERSHIP = 0x14 + IP_DROP_SOURCE_MEMBERSHIP = 0x18 + IP_HDRINCL = 0x2 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x10 + IP_MULTICAST_LOOP = 0x12 + IP_MULTICAST_TTL = 0x11 + IP_NEXTHOP = 0x19 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x9 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVSLLA = 0xa + IP_RECVTOS = 0xc + IP_RECVTTL = 0xb + IP_RETOPTS = 0x8 + IP_REUSEADDR = 0x104 + IP_SEC_OPT = 0x22 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x16 + IP_UNSPEC_SRC = 0x42 + ISIG = 0x1 + ISTRIP = 0x20 + IUCLC = 0x200 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_ACCESS_DEFAULT = 0x6 + MADV_ACCESS_LWP = 0x7 + MADV_ACCESS_MANY = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NORMAL = 0x0 + MADV_PURGE = 0x9 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80 + MAP_ALIGN = 0x200 + MAP_ANON = 0x100 + MAP_ANONYMOUS = 0x100 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_INITDATA = 0x800 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_TEXT = 0x400 + MAP_TYPE = 0xf + MCAST_BLOCK_SOURCE = 0x2b + MCAST_EXCLUDE = 0x2 + MCAST_INCLUDE = 0x1 + MCAST_JOIN_GROUP = 0x29 + MCAST_JOIN_SOURCE_GROUP = 0x2d + MCAST_LEAVE_GROUP = 0x2a + MCAST_LEAVE_SOURCE_GROUP = 0x2e + MCAST_UNBLOCK_SOURCE = 0x2c + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CTRUNC = 0x10 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_DUPCTRL = 0x800 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 0x10 + MSG_NOSIGNAL = 0x200 + MSG_NOTIFICATION = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x20 + MSG_WAITALL = 0x40 + MSG_XPG4_2 = 0x8000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_OLDSYNC = 0x0 + MS_SYNC = 0x4 + M_FLUSH = 0x86 + NAME_MAX = 0xff + NEWDEV = 0x1 + NFDBITS = 0x40 + NL0 = 0x0 + NL1 = 0x100 + NLDLY = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + OLCUC = 0x2 + OLDDEV = 0x0 + ONBITSMAJOR = 0x7 + ONBITSMINOR = 0x8 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPENFAIL = -0x1 + OPOST = 0x1 + O_ACCMODE = 0x600003 + O_APPEND = 0x8 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DIRECT = 0x2000000 + O_DIRECTORY = 0x1000000 + O_DSYNC = 0x40 + O_EXCL = 0x400 + O_EXEC = 0x400000 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x4 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NOLINKS = 0x40000 + O_NONBLOCK = 0x80 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x8000 + O_SEARCH = 0x200000 + O_SIOCGIFCONF = -0x3ff796ec + O_SIOCGLIFCONF = -0x3fef9688 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + O_XATTR = 0x4000 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xfffffffffffffffd + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_NUMBITS = 0x9 + RTA_SRC = 0x100 + RTF_BLACKHOLE = 0x1000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INDIRECT = 0x40000 + RTF_KERNEL = 0x80000 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTIRT = 0x10000 + RTF_PRIVATE = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SETSRC = 0x20000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTF_ZONE = 0x100000 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0xf + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_FREEADDR = 0x10 + RTM_GET = 0x4 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_VERSION = 0x3 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_AWARE = 0x1 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_RIGHTS = 0x1010 + SCM_TIMESTAMP = 0x1013 + SCM_UCRED = 0x1012 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIG2STR_MAX = 0x20 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDRT = -0x7fcf8df6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fdb96e0 + SIOCDELMULTI = -0x7fdf96ce + SIOCDELRT = -0x7fcf8df5 + SIOCDXARP = -0x7fff9658 + SIOCGARP = -0x3fdb96e1 + SIOCGDSTINFO = -0x3fff965c + SIOCGENADDR = -0x3fdf96ab + SIOCGENPSTATS = -0x3fdf96c7 + SIOCGETLSGCNT = -0x3fef8deb + SIOCGETNAME = 0x40107334 + SIOCGETPEER = 0x40107335 + SIOCGETPROP = -0x3fff8f44 + SIOCGETSGCNT = -0x3feb8deb + SIOCGETSYNC = -0x3fdf96d3 + SIOCGETVIFCNT = -0x3feb8dec + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fdf96f3 + SIOCGIFBRDADDR = -0x3fdf96e9 + SIOCGIFCONF = -0x3ff796a4 + SIOCGIFDSTADDR = -0x3fdf96f1 + SIOCGIFFLAGS = -0x3fdf96ef + SIOCGIFHWADDR = -0x3fdf9647 + SIOCGIFINDEX = -0x3fdf96a6 + SIOCGIFMEM = -0x3fdf96ed + SIOCGIFMETRIC = -0x3fdf96e5 + SIOCGIFMTU = -0x3fdf96ea + SIOCGIFMUXID = -0x3fdf96a8 + SIOCGIFNETMASK = -0x3fdf96e7 + SIOCGIFNUM = 0x40046957 + SIOCGIP6ADDRPOLICY = -0x3fff965e + SIOCGIPMSFILTER = -0x3ffb964c + SIOCGLIFADDR = -0x3f87968f + SIOCGLIFBINDING = -0x3f879666 + SIOCGLIFBRDADDR = -0x3f879685 + SIOCGLIFCONF = -0x3fef965b + SIOCGLIFDADSTATE = -0x3f879642 + SIOCGLIFDSTADDR = -0x3f87968d + SIOCGLIFFLAGS = -0x3f87968b + SIOCGLIFGROUPINFO = -0x3f4b9663 + SIOCGLIFGROUPNAME = -0x3f879664 + SIOCGLIFHWADDR = -0x3f879640 + SIOCGLIFINDEX = -0x3f87967b + SIOCGLIFLNKINFO = -0x3f879674 + SIOCGLIFMETRIC = -0x3f879681 + SIOCGLIFMTU = -0x3f879686 + SIOCGLIFMUXID = -0x3f87967d + SIOCGLIFNETMASK = -0x3f879683 + SIOCGLIFNUM = -0x3ff3967e + SIOCGLIFSRCOF = -0x3fef964f + SIOCGLIFSUBNET = -0x3f879676 + SIOCGLIFTOKEN = -0x3f879678 + SIOCGLIFUSESRC = -0x3f879651 + SIOCGLIFZONE = -0x3f879656 + SIOCGLOWAT = 0x40047303 + SIOCGMSFILTER = -0x3ffb964e + SIOCGPGRP = 0x40047309 + SIOCGSTAMP = -0x3fef9646 + SIOCGXARP = -0x3fff9659 + SIOCIFDETACH = -0x7fdf96c8 + SIOCILB = -0x3ffb9645 + SIOCLIFADDIF = -0x3f879691 + SIOCLIFDELND = -0x7f879673 + SIOCLIFGETND = -0x3f879672 + SIOCLIFREMOVEIF = -0x7f879692 + SIOCLIFSETND = -0x7f879671 + SIOCLOWER = -0x7fdf96d7 + SIOCSARP = -0x7fdb96e2 + SIOCSCTPGOPT = -0x3fef9653 + SIOCSCTPPEELOFF = -0x3ffb9652 + SIOCSCTPSOPT = -0x7fef9654 + SIOCSENABLESDP = -0x3ffb9649 + SIOCSETPROP = -0x7ffb8f43 + SIOCSETSYNC = -0x7fdf96d4 + SIOCSHIWAT = -0x7ffb8d00 + SIOCSIFADDR = -0x7fdf96f4 + SIOCSIFBRDADDR = -0x7fdf96e8 + SIOCSIFDSTADDR = -0x7fdf96f2 + SIOCSIFFLAGS = -0x7fdf96f0 + SIOCSIFINDEX = -0x7fdf96a5 + SIOCSIFMEM = -0x7fdf96ee + SIOCSIFMETRIC = -0x7fdf96e4 + SIOCSIFMTU = -0x7fdf96eb + SIOCSIFMUXID = -0x7fdf96a7 + SIOCSIFNAME = -0x7fdf96b7 + SIOCSIFNETMASK = -0x7fdf96e6 + SIOCSIP6ADDRPOLICY = -0x7fff965d + SIOCSIPMSFILTER = -0x7ffb964b + SIOCSLGETREQ = -0x3fdf96b9 + SIOCSLIFADDR = -0x7f879690 + SIOCSLIFBRDADDR = -0x7f879684 + SIOCSLIFDSTADDR = -0x7f87968e + SIOCSLIFFLAGS = -0x7f87968c + SIOCSLIFGROUPNAME = -0x7f879665 + SIOCSLIFINDEX = -0x7f87967a + SIOCSLIFLNKINFO = -0x7f879675 + SIOCSLIFMETRIC = -0x7f879680 + SIOCSLIFMTU = -0x7f879687 + SIOCSLIFMUXID = -0x7f87967c + SIOCSLIFNAME = -0x3f87967f + SIOCSLIFNETMASK = -0x7f879682 + SIOCSLIFPREFIX = -0x3f879641 + SIOCSLIFSUBNET = -0x7f879677 + SIOCSLIFTOKEN = -0x7f879679 + SIOCSLIFUSESRC = -0x7f879650 + SIOCSLIFZONE = -0x7f879655 + SIOCSLOWAT = -0x7ffb8cfe + SIOCSLSTAT = -0x7fdf96b8 + SIOCSMSFILTER = -0x7ffb964d + SIOCSPGRP = -0x7ffb8cf8 + SIOCSPROMISC = -0x7ffb96d0 + SIOCSQPTR = -0x3ffb9648 + SIOCSSDSTATS = -0x3fdf96d2 + SIOCSSESTATS = -0x3fdf96d1 + SIOCSXARP = -0x7fff965a + SIOCTMYADDR = -0x3ff79670 + SIOCTMYSITE = -0x3ff7966e + SIOCTONLINK = -0x3ff7966f + SIOCUPPER = -0x7fdf96d8 + SIOCX25RCV = -0x3fdf96c4 + SIOCX25TBL = -0x3fdf96c3 + SIOCX25XMT = -0x3fdf96c5 + SIOCXPROTO = 0x20007337 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NDELAY = 0x200000 + SOCK_NONBLOCK = 0x100000 + SOCK_RAW = 0x4 + SOCK_RDM = 0x5 + SOCK_SEQPACKET = 0x6 + SOCK_STREAM = 0x2 + SOCK_TYPE_MASK = 0xffff + SOL_FILTER = 0xfffc + SOL_PACKET = 0xfffd + SOL_ROUTE = 0xfffe + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ALL = 0x3f + SO_ALLZONES = 0x1014 + SO_ANON_MLP = 0x100a + SO_ATTACH_FILTER = 0x40000001 + SO_BAND = 0x4000 + SO_BROADCAST = 0x20 + SO_COPYOPT = 0x80000 + SO_DEBUG = 0x1 + SO_DELIM = 0x8000 + SO_DETACH_FILTER = 0x40000002 + SO_DGRAM_ERRIND = 0x200 + SO_DOMAIN = 0x100c + SO_DONTLINGER = -0x81 + SO_DONTROUTE = 0x10 + SO_ERROPT = 0x40000 + SO_ERROR = 0x1007 + SO_EXCLBIND = 0x1015 + SO_HIWAT = 0x10 + SO_ISNTTY = 0x800 + SO_ISTTY = 0x400 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOWAT = 0x20 + SO_MAC_EXEMPT = 0x100b + SO_MAC_IMPLICIT = 0x1016 + SO_MAXBLK = 0x100000 + SO_MAXPSZ = 0x8 + SO_MINPSZ = 0x4 + SO_MREADOFF = 0x80 + SO_MREADON = 0x40 + SO_NDELOFF = 0x200 + SO_NDELON = 0x100 + SO_NODELIM = 0x10000 + SO_OOBINLINE = 0x100 + SO_PROTOTYPE = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVPSH = 0x100d + SO_RCVTIMEO = 0x1006 + SO_READOPT = 0x1 + SO_RECVUCRED = 0x400 + SO_REUSEADDR = 0x4 + SO_SECATTR = 0x1011 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STRHOLD = 0x20000 + SO_TAIL = 0x200000 + SO_TIMESTAMP = 0x1013 + SO_TONSTOP = 0x2000 + SO_TOSTOP = 0x1000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_VRRP = 0x1017 + SO_WROFF = 0x2 + S_ENFMT = 0x400 + S_IAMB = 0x1ff + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFDOOR = 0xd000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFNAM = 0x5000 + S_IFPORT = 0xe000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_INSEM = 0x1 + S_INSHD = 0x2 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TAB0 = 0x0 + TAB1 = 0x800 + TAB2 = 0x1000 + TAB3 = 0x1800 + TABDLY = 0x1800 + TCFLSH = 0x5407 + TCGETA = 0x5401 + TCGETS = 0x540d + TCIFLUSH = 0x0 + TCIOFF = 0x2 + TCIOFLUSH = 0x2 + TCION = 0x3 + TCOFLUSH = 0x1 + TCOOFF = 0x0 + TCOON = 0x1 + TCP_ABORT_THRESHOLD = 0x11 + TCP_ANONPRIVBIND = 0x20 + TCP_CONGESTION = 0x25 + TCP_CONN_ABORT_THRESHOLD = 0x13 + TCP_CONN_NOTIFY_THRESHOLD = 0x12 + TCP_CORK = 0x18 + TCP_EXCLBIND = 0x21 + TCP_INIT_CWND = 0x15 + TCP_KEEPALIVE = 0x8 + TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 + TCP_KEEPALIVE_THRESHOLD = 0x16 + TCP_KEEPCNT = 0x23 + TCP_KEEPIDLE = 0x22 + TCP_KEEPINTVL = 0x24 + TCP_LINGER2 = 0x1c + TCP_MAXSEG = 0x2 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOTIFY_THRESHOLD = 0x10 + TCP_RECVDSTADDR = 0x14 + TCP_RTO_INITIAL = 0x19 + TCP_RTO_MAX = 0x1b + TCP_RTO_MIN = 0x1a + TCSAFLUSH = 0x5410 + TCSBRK = 0x5405 + TCSETA = 0x5402 + TCSETAF = 0x5404 + TCSETAW = 0x5403 + TCSETS = 0x540e + TCSETSF = 0x5410 + TCSETSW = 0x540f + TCXONC = 0x5406 + TIMER_ABSTIME = 0x1 + TIMER_RELTIME = 0x0 + TIOC = 0x5400 + TIOCCBRK = 0x747a + TIOCCDTR = 0x7478 + TIOCCILOOP = 0x746c + TIOCEXCL = 0x740d + TIOCFLUSH = 0x7410 + TIOCGETC = 0x7412 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x7414 + TIOCGPPS = 0x547d + TIOCGPPSEV = 0x547f + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5469 + TIOCGWINSZ = 0x5468 + TIOCHPCL = 0x7402 + TIOCKBOF = 0x5409 + TIOCKBON = 0x5408 + TIOCLBIC = 0x747e + TIOCLBIS = 0x747f + TIOCLGET = 0x747c + TIOCLSET = 0x747d + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMSET = 0x741a + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x7471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7473 + TIOCREMOTE = 0x741e + TIOCSBRK = 0x747b + TIOCSCTTY = 0x7484 + TIOCSDTR = 0x7479 + TIOCSETC = 0x7411 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIGNAL = 0x741f + TIOCSILOOP = 0x746d + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x7415 + TIOCSPPS = 0x547e + TIOCSSOFTCAR = 0x546a + TIOCSTART = 0x746e + TIOCSTI = 0x7417 + TIOCSTOP = 0x746f + TIOCSWINSZ = 0x5467 + TOSTOP = 0x100 + UTIME_NOW = -0x1 + UTIME_OMIT = -0x2 + VCEOF = 0x8 + VCEOL = 0x9 + VDISCARD = 0xd + VDSUSP = 0xb + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VERASE2 = 0x11 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTATUS = 0x10 + VSTOP = 0x9 + VSUSP = 0xa + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WCONTFLG = 0xffff + WCONTINUED = 0x8 + WCOREFLG = 0x80 + WEXITED = 0x1 + WNOHANG = 0x40 + WNOWAIT = 0x80 + WOPTMASK = 0xcf + WRAP = 0x20000 + WSIGMASK = 0x7f + WSTOPFLG = 0x7f + WSTOPPED = 0x4 + WTRAPPED = 0x2 + WUNTRACED = 0x4 + XCASE = 0x4 + XTABS = 0x1800 +) + +// Errors +const ( + E2BIG = syscall.Errno(0x7) + EACCES = syscall.Errno(0xd) + EADDRINUSE = syscall.Errno(0x7d) + EADDRNOTAVAIL = syscall.Errno(0x7e) + EADV = syscall.Errno(0x44) + EAFNOSUPPORT = syscall.Errno(0x7c) + EAGAIN = syscall.Errno(0xb) + EALREADY = syscall.Errno(0x95) + EBADE = syscall.Errno(0x32) + EBADF = syscall.Errno(0x9) + EBADFD = syscall.Errno(0x51) + EBADMSG = syscall.Errno(0x4d) + EBADR = syscall.Errno(0x33) + EBADRQC = syscall.Errno(0x36) + EBADSLT = syscall.Errno(0x37) + EBFONT = syscall.Errno(0x39) + EBUSY = syscall.Errno(0x10) + ECANCELED = syscall.Errno(0x2f) + ECHILD = syscall.Errno(0xa) + ECHRNG = syscall.Errno(0x25) + ECOMM = syscall.Errno(0x46) + ECONNABORTED = syscall.Errno(0x82) + ECONNREFUSED = syscall.Errno(0x92) + ECONNRESET = syscall.Errno(0x83) + EDEADLK = syscall.Errno(0x2d) + EDEADLOCK = syscall.Errno(0x38) + EDESTADDRREQ = syscall.Errno(0x60) + EDOM = syscall.Errno(0x21) + EDQUOT = syscall.Errno(0x31) + EEXIST = syscall.Errno(0x11) + EFAULT = syscall.Errno(0xe) + EFBIG = syscall.Errno(0x1b) + EHOSTDOWN = syscall.Errno(0x93) + EHOSTUNREACH = syscall.Errno(0x94) + EIDRM = syscall.Errno(0x24) + EILSEQ = syscall.Errno(0x58) + EINPROGRESS = syscall.Errno(0x96) + EINTR = syscall.Errno(0x4) + EINVAL = syscall.Errno(0x16) + EIO = syscall.Errno(0x5) + EISCONN = syscall.Errno(0x85) + EISDIR = syscall.Errno(0x15) + EL2HLT = syscall.Errno(0x2c) + EL2NSYNC = syscall.Errno(0x26) + EL3HLT = syscall.Errno(0x27) + EL3RST = syscall.Errno(0x28) + ELIBACC = syscall.Errno(0x53) + ELIBBAD = syscall.Errno(0x54) + ELIBEXEC = syscall.Errno(0x57) + ELIBMAX = syscall.Errno(0x56) + ELIBSCN = syscall.Errno(0x55) + ELNRNG = syscall.Errno(0x29) + ELOCKUNMAPPED = syscall.Errno(0x48) + ELOOP = syscall.Errno(0x5a) + EMFILE = syscall.Errno(0x18) + EMLINK = syscall.Errno(0x1f) + EMSGSIZE = syscall.Errno(0x61) + EMULTIHOP = syscall.Errno(0x4a) + ENAMETOOLONG = syscall.Errno(0x4e) + ENETDOWN = syscall.Errno(0x7f) + ENETRESET = syscall.Errno(0x81) + ENETUNREACH = syscall.Errno(0x80) + ENFILE = syscall.Errno(0x17) + ENOANO = syscall.Errno(0x35) + ENOBUFS = syscall.Errno(0x84) + ENOCSI = syscall.Errno(0x2b) + ENODATA = syscall.Errno(0x3d) + ENODEV = syscall.Errno(0x13) + ENOENT = syscall.Errno(0x2) + ENOEXEC = syscall.Errno(0x8) + ENOLCK = syscall.Errno(0x2e) + ENOLINK = syscall.Errno(0x43) + ENOMEM = syscall.Errno(0xc) + ENOMSG = syscall.Errno(0x23) + ENONET = syscall.Errno(0x40) + ENOPKG = syscall.Errno(0x41) + ENOPROTOOPT = syscall.Errno(0x63) + ENOSPC = syscall.Errno(0x1c) + ENOSR = syscall.Errno(0x3f) + ENOSTR = syscall.Errno(0x3c) + ENOSYS = syscall.Errno(0x59) + ENOTACTIVE = syscall.Errno(0x49) + ENOTBLK = syscall.Errno(0xf) + ENOTCONN = syscall.Errno(0x86) + ENOTDIR = syscall.Errno(0x14) + ENOTEMPTY = syscall.Errno(0x5d) + ENOTRECOVERABLE = syscall.Errno(0x3b) + ENOTSOCK = syscall.Errno(0x5f) + ENOTSUP = syscall.Errno(0x30) + ENOTTY = syscall.Errno(0x19) + ENOTUNIQ = syscall.Errno(0x50) + ENXIO = syscall.Errno(0x6) + EOPNOTSUPP = syscall.Errno(0x7a) + EOVERFLOW = syscall.Errno(0x4f) + EOWNERDEAD = syscall.Errno(0x3a) + EPERM = syscall.Errno(0x1) + EPFNOSUPPORT = syscall.Errno(0x7b) + EPIPE = syscall.Errno(0x20) + EPROTO = syscall.Errno(0x47) + EPROTONOSUPPORT = syscall.Errno(0x78) + EPROTOTYPE = syscall.Errno(0x62) + ERANGE = syscall.Errno(0x22) + EREMCHG = syscall.Errno(0x52) + EREMOTE = syscall.Errno(0x42) + ERESTART = syscall.Errno(0x5b) + EROFS = syscall.Errno(0x1e) + ESHUTDOWN = syscall.Errno(0x8f) + ESOCKTNOSUPPORT = syscall.Errno(0x79) + ESPIPE = syscall.Errno(0x1d) + ESRCH = syscall.Errno(0x3) + ESRMNT = syscall.Errno(0x45) + ESTALE = syscall.Errno(0x97) + ESTRPIPE = syscall.Errno(0x5c) + ETIME = syscall.Errno(0x3e) + ETIMEDOUT = syscall.Errno(0x91) + ETOOMANYREFS = syscall.Errno(0x90) + ETXTBSY = syscall.Errno(0x1a) + EUNATCH = syscall.Errno(0x2a) + EUSERS = syscall.Errno(0x5e) + EWOULDBLOCK = syscall.Errno(0xb) + EXDEV = syscall.Errno(0x12) + EXFULL = syscall.Errno(0x34) +) + +// Signals +const ( + SIGABRT = syscall.Signal(0x6) + SIGALRM = syscall.Signal(0xe) + SIGBUS = syscall.Signal(0xa) + SIGCANCEL = syscall.Signal(0x24) + SIGCHLD = syscall.Signal(0x12) + SIGCLD = syscall.Signal(0x12) + SIGCONT = syscall.Signal(0x19) + SIGEMT = syscall.Signal(0x7) + SIGFPE = syscall.Signal(0x8) + SIGFREEZE = syscall.Signal(0x22) + SIGHUP = syscall.Signal(0x1) + SIGILL = syscall.Signal(0x4) + SIGINFO = syscall.Signal(0x29) + SIGINT = syscall.Signal(0x2) + SIGIO = syscall.Signal(0x16) + SIGIOT = syscall.Signal(0x6) + SIGJVM1 = syscall.Signal(0x27) + SIGJVM2 = syscall.Signal(0x28) + SIGKILL = syscall.Signal(0x9) + SIGLOST = syscall.Signal(0x25) + SIGLWP = syscall.Signal(0x21) + SIGPIPE = syscall.Signal(0xd) + SIGPOLL = syscall.Signal(0x16) + SIGPROF = syscall.Signal(0x1d) + SIGPWR = syscall.Signal(0x13) + SIGQUIT = syscall.Signal(0x3) + SIGSEGV = syscall.Signal(0xb) + SIGSTOP = syscall.Signal(0x17) + SIGSYS = syscall.Signal(0xc) + SIGTERM = syscall.Signal(0xf) + SIGTHAW = syscall.Signal(0x23) + SIGTRAP = syscall.Signal(0x5) + SIGTSTP = syscall.Signal(0x18) + SIGTTIN = syscall.Signal(0x1a) + SIGTTOU = syscall.Signal(0x1b) + SIGURG = syscall.Signal(0x15) + SIGUSR1 = syscall.Signal(0x10) + SIGUSR2 = syscall.Signal(0x11) + SIGVTALRM = syscall.Signal(0x1c) + SIGWAITING = syscall.Signal(0x20) + SIGWINCH = syscall.Signal(0x14) + SIGXCPU = syscall.Signal(0x1e) + SIGXFSZ = syscall.Signal(0x1f) + SIGXRES = syscall.Signal(0x26) +) + +// Error table +var errorList = [...]struct { + num syscall.Errno + name string + desc string +}{ + {1, "EPERM", "not owner"}, + {2, "ENOENT", "no such file or directory"}, + {3, "ESRCH", "no such process"}, + {4, "EINTR", "interrupted system call"}, + {5, "EIO", "I/O error"}, + {6, "ENXIO", "no such device or address"}, + {7, "E2BIG", "arg list too long"}, + {8, "ENOEXEC", "exec format error"}, + {9, "EBADF", "bad file number"}, + {10, "ECHILD", "no child processes"}, + {11, "EAGAIN", "resource temporarily unavailable"}, + {12, "ENOMEM", "not enough space"}, + {13, "EACCES", "permission denied"}, + {14, "EFAULT", "bad address"}, + {15, "ENOTBLK", "block device required"}, + {16, "EBUSY", "device busy"}, + {17, "EEXIST", "file exists"}, + {18, "EXDEV", "cross-device link"}, + {19, "ENODEV", "no such device"}, + {20, "ENOTDIR", "not a directory"}, + {21, "EISDIR", "is a directory"}, + {22, "EINVAL", "invalid argument"}, + {23, "ENFILE", "file table overflow"}, + {24, "EMFILE", "too many open files"}, + {25, "ENOTTY", "inappropriate ioctl for device"}, + {26, "ETXTBSY", "text file busy"}, + {27, "EFBIG", "file too large"}, + {28, "ENOSPC", "no space left on device"}, + {29, "ESPIPE", "illegal seek"}, + {30, "EROFS", "read-only file system"}, + {31, "EMLINK", "too many links"}, + {32, "EPIPE", "broken pipe"}, + {33, "EDOM", "argument out of domain"}, + {34, "ERANGE", "result too large"}, + {35, "ENOMSG", "no message of desired type"}, + {36, "EIDRM", "identifier removed"}, + {37, "ECHRNG", "channel number out of range"}, + {38, "EL2NSYNC", "level 2 not synchronized"}, + {39, "EL3HLT", "level 3 halted"}, + {40, "EL3RST", "level 3 reset"}, + {41, "ELNRNG", "link number out of range"}, + {42, "EUNATCH", "protocol driver not attached"}, + {43, "ENOCSI", "no CSI structure available"}, + {44, "EL2HLT", "level 2 halted"}, + {45, "EDEADLK", "deadlock situation detected/avoided"}, + {46, "ENOLCK", "no record locks available"}, + {47, "ECANCELED", "operation canceled"}, + {48, "ENOTSUP", "operation not supported"}, + {49, "EDQUOT", "disc quota exceeded"}, + {50, "EBADE", "bad exchange descriptor"}, + {51, "EBADR", "bad request descriptor"}, + {52, "EXFULL", "message tables full"}, + {53, "ENOANO", "anode table overflow"}, + {54, "EBADRQC", "bad request code"}, + {55, "EBADSLT", "invalid slot"}, + {56, "EDEADLOCK", "file locking deadlock"}, + {57, "EBFONT", "bad font file format"}, + {58, "EOWNERDEAD", "owner of the lock died"}, + {59, "ENOTRECOVERABLE", "lock is not recoverable"}, + {60, "ENOSTR", "not a stream device"}, + {61, "ENODATA", "no data available"}, + {62, "ETIME", "timer expired"}, + {63, "ENOSR", "out of stream resources"}, + {64, "ENONET", "machine is not on the network"}, + {65, "ENOPKG", "package not installed"}, + {66, "EREMOTE", "object is remote"}, + {67, "ENOLINK", "link has been severed"}, + {68, "EADV", "advertise error"}, + {69, "ESRMNT", "srmount error"}, + {70, "ECOMM", "communication error on send"}, + {71, "EPROTO", "protocol error"}, + {72, "ELOCKUNMAPPED", "locked lock was unmapped "}, + {73, "ENOTACTIVE", "facility is not active"}, + {74, "EMULTIHOP", "multihop attempted"}, + {77, "EBADMSG", "not a data message"}, + {78, "ENAMETOOLONG", "file name too long"}, + {79, "EOVERFLOW", "value too large for defined data type"}, + {80, "ENOTUNIQ", "name not unique on network"}, + {81, "EBADFD", "file descriptor in bad state"}, + {82, "EREMCHG", "remote address changed"}, + {83, "ELIBACC", "can not access a needed shared library"}, + {84, "ELIBBAD", "accessing a corrupted shared library"}, + {85, "ELIBSCN", ".lib section in a.out corrupted"}, + {86, "ELIBMAX", "attempting to link in more shared libraries than system limit"}, + {87, "ELIBEXEC", "can not exec a shared library directly"}, + {88, "EILSEQ", "illegal byte sequence"}, + {89, "ENOSYS", "operation not applicable"}, + {90, "ELOOP", "number of symbolic links encountered during path name traversal exceeds MAXSYMLINKS"}, + {91, "ERESTART", "error 91"}, + {92, "ESTRPIPE", "error 92"}, + {93, "ENOTEMPTY", "directory not empty"}, + {94, "EUSERS", "too many users"}, + {95, "ENOTSOCK", "socket operation on non-socket"}, + {96, "EDESTADDRREQ", "destination address required"}, + {97, "EMSGSIZE", "message too long"}, + {98, "EPROTOTYPE", "protocol wrong type for socket"}, + {99, "ENOPROTOOPT", "option not supported by protocol"}, + {120, "EPROTONOSUPPORT", "protocol not supported"}, + {121, "ESOCKTNOSUPPORT", "socket type not supported"}, + {122, "EOPNOTSUPP", "operation not supported on transport endpoint"}, + {123, "EPFNOSUPPORT", "protocol family not supported"}, + {124, "EAFNOSUPPORT", "address family not supported by protocol family"}, + {125, "EADDRINUSE", "address already in use"}, + {126, "EADDRNOTAVAIL", "cannot assign requested address"}, + {127, "ENETDOWN", "network is down"}, + {128, "ENETUNREACH", "network is unreachable"}, + {129, "ENETRESET", "network dropped connection because of reset"}, + {130, "ECONNABORTED", "software caused connection abort"}, + {131, "ECONNRESET", "connection reset by peer"}, + {132, "ENOBUFS", "no buffer space available"}, + {133, "EISCONN", "transport endpoint is already connected"}, + {134, "ENOTCONN", "transport endpoint is not connected"}, + {143, "ESHUTDOWN", "cannot send after socket shutdown"}, + {144, "ETOOMANYREFS", "too many references: cannot splice"}, + {145, "ETIMEDOUT", "connection timed out"}, + {146, "ECONNREFUSED", "connection refused"}, + {147, "EHOSTDOWN", "host is down"}, + {148, "EHOSTUNREACH", "no route to host"}, + {149, "EALREADY", "operation already in progress"}, + {150, "EINPROGRESS", "operation now in progress"}, + {151, "ESTALE", "stale NFS file handle"}, +} + +// Signal table +var signalList = [...]struct { + num syscall.Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGQUIT", "quit"}, + {4, "SIGILL", "illegal Instruction"}, + {5, "SIGTRAP", "trace/Breakpoint Trap"}, + {6, "SIGABRT", "abort"}, + {7, "SIGEMT", "emulation Trap"}, + {8, "SIGFPE", "arithmetic Exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus Error"}, + {11, "SIGSEGV", "segmentation Fault"}, + {12, "SIGSYS", "bad System Call"}, + {13, "SIGPIPE", "broken Pipe"}, + {14, "SIGALRM", "alarm Clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user Signal 1"}, + {17, "SIGUSR2", "user Signal 2"}, + {18, "SIGCHLD", "child Status Changed"}, + {19, "SIGPWR", "power-Fail/Restart"}, + {20, "SIGWINCH", "window Size Change"}, + {21, "SIGURG", "urgent Socket Condition"}, + {22, "SIGIO", "pollable Event"}, + {23, "SIGSTOP", "stopped (signal)"}, + {24, "SIGTSTP", "stopped (user)"}, + {25, "SIGCONT", "continued"}, + {26, "SIGTTIN", "stopped (tty input)"}, + {27, "SIGTTOU", "stopped (tty output)"}, + {28, "SIGVTALRM", "virtual Timer Expired"}, + {29, "SIGPROF", "profiling Timer Expired"}, + {30, "SIGXCPU", "cpu Limit Exceeded"}, + {31, "SIGXFSZ", "file Size Limit Exceeded"}, + {32, "SIGWAITING", "no runnable lwp"}, + {33, "SIGLWP", "inter-lwp signal"}, + {34, "SIGFREEZE", "checkpoint Freeze"}, + {35, "SIGTHAW", "checkpoint Thaw"}, + {36, "SIGCANCEL", "thread Cancellation"}, + {37, "SIGLOST", "resource Lost"}, + {38, "SIGXRES", "resource Control Exceeded"}, + {39, "SIGJVM1", "reserved for JVM 1"}, + {40, "SIGJVM2", "reserved for JVM 2"}, + {41, "SIGINFO", "information Request"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go new file mode 100644 index 0000000000..fc7d0506f6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go @@ -0,0 +1,860 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Hand edited based on zerrors_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + BRKINT = 0x0001 + CLOCK_MONOTONIC = 0x1 + CLOCK_PROCESS_CPUTIME_ID = 0x2 + CLOCK_REALTIME = 0x0 + CLOCK_THREAD_CPUTIME_ID = 0x3 + CS8 = 0x0030 + CSIZE = 0x0030 + ECHO = 0x00000008 + ECHONL = 0x00000001 + FD_CLOEXEC = 0x01 + FD_CLOFORK = 0x02 + FNDELAY = 0x04 + F_CLOSFD = 9 + F_CONTROL_CVT = 13 + F_DUPFD = 0 + F_DUPFD2 = 8 + F_GETFD = 1 + F_GETFL = 259 + F_GETLK = 5 + F_GETOWN = 10 + F_OK = 0x0 + F_RDLCK = 1 + F_SETFD = 2 + F_SETFL = 4 + F_SETLK = 6 + F_SETLKW = 7 + F_SETOWN = 11 + F_SETTAG = 12 + F_UNLCK = 3 + F_WRLCK = 2 + FSTYPE_ZFS = 0xe9 //"Z" + FSTYPE_HFS = 0xc8 //"H" + FSTYPE_NFS = 0xd5 //"N" + FSTYPE_TFS = 0xe3 //"T" + FSTYPE_AUTOMOUNT = 0xc1 //"A" + IP6F_MORE_FRAG = 0x0001 + IP6F_OFF_MASK = 0xfff8 + IP6F_RESERVED_MASK = 0x0006 + IP6OPT_JUMBO = 0xc2 + IP6OPT_JUMBO_LEN = 6 + IP6OPT_MUTABLE = 0x20 + IP6OPT_NSAP_ADDR = 0xc3 + IP6OPT_PAD1 = 0x00 + IP6OPT_PADN = 0x01 + IP6OPT_ROUTER_ALERT = 0x05 + IP6OPT_TUNNEL_LIMIT = 0x04 + IP6OPT_TYPE_DISCARD = 0x40 + IP6OPT_TYPE_FORCEICMP = 0x80 + IP6OPT_TYPE_ICMP = 0xc0 + IP6OPT_TYPE_SKIP = 0x00 + IP6_ALERT_AN = 0x0002 + IP6_ALERT_MLD = 0x0000 + IP6_ALERT_RSVP = 0x0001 + IPPORT_RESERVED = 1024 + IPPORT_USERRESERVED = 5000 + IPPROTO_AH = 51 + SOL_AH = 51 + IPPROTO_DSTOPTS = 60 + SOL_DSTOPTS = 60 + IPPROTO_EGP = 8 + SOL_EGP = 8 + IPPROTO_ESP = 50 + SOL_ESP = 50 + IPPROTO_FRAGMENT = 44 + SOL_FRAGMENT = 44 + IPPROTO_GGP = 2 + SOL_GGP = 2 + IPPROTO_HOPOPTS = 0 + SOL_HOPOPTS = 0 + IPPROTO_ICMP = 1 + SOL_ICMP = 1 + IPPROTO_ICMPV6 = 58 + SOL_ICMPV6 = 58 + IPPROTO_IDP = 22 + SOL_IDP = 22 + IPPROTO_IP = 0 + SOL_IP = 0 + IPPROTO_IPV6 = 41 + SOL_IPV6 = 41 + IPPROTO_MAX = 256 + SOL_MAX = 256 + IPPROTO_NONE = 59 + SOL_NONE = 59 + IPPROTO_PUP = 12 + SOL_PUP = 12 + IPPROTO_RAW = 255 + SOL_RAW = 255 + IPPROTO_ROUTING = 43 + SOL_ROUTING = 43 + IPPROTO_TCP = 6 + SOL_TCP = 6 + IPPROTO_UDP = 17 + SOL_UDP = 17 + IPV6_ADDR_PREFERENCES = 32 + IPV6_CHECKSUM = 19 + IPV6_DONTFRAG = 29 + IPV6_DSTOPTS = 23 + IPV6_HOPLIMIT = 11 + IPV6_HOPOPTS = 22 + IPV6_JOIN_GROUP = 5 + IPV6_LEAVE_GROUP = 6 + IPV6_MULTICAST_HOPS = 9 + IPV6_MULTICAST_IF = 7 + IPV6_MULTICAST_LOOP = 4 + IPV6_NEXTHOP = 20 + IPV6_PATHMTU = 12 + IPV6_PKTINFO = 13 + IPV6_PREFER_SRC_CGA = 0x10 + IPV6_PREFER_SRC_COA = 0x02 + IPV6_PREFER_SRC_HOME = 0x01 + IPV6_PREFER_SRC_NONCGA = 0x20 + IPV6_PREFER_SRC_PUBLIC = 0x08 + IPV6_PREFER_SRC_TMP = 0x04 + IPV6_RECVDSTOPTS = 28 + IPV6_RECVHOPLIMIT = 14 + IPV6_RECVHOPOPTS = 26 + IPV6_RECVPATHMTU = 16 + IPV6_RECVPKTINFO = 15 + IPV6_RECVRTHDR = 25 + IPV6_RECVTCLASS = 31 + IPV6_RTHDR = 21 + IPV6_RTHDRDSTOPTS = 24 + IPV6_RTHDR_TYPE_0 = 0 + IPV6_TCLASS = 30 + IPV6_UNICAST_HOPS = 3 + IPV6_USE_MIN_MTU = 18 + IPV6_V6ONLY = 10 + IP_ADD_MEMBERSHIP = 5 + IP_ADD_SOURCE_MEMBERSHIP = 12 + IP_BLOCK_SOURCE = 10 + IP_DEFAULT_MULTICAST_LOOP = 1 + IP_DEFAULT_MULTICAST_TTL = 1 + IP_DROP_MEMBERSHIP = 6 + IP_DROP_SOURCE_MEMBERSHIP = 13 + IP_MAX_MEMBERSHIPS = 20 + IP_MULTICAST_IF = 7 + IP_MULTICAST_LOOP = 4 + IP_MULTICAST_TTL = 3 + IP_OPTIONS = 1 + IP_PKTINFO = 101 + IP_RECVPKTINFO = 102 + IP_TOS = 2 + IP_TTL = 3 + IP_UNBLOCK_SOURCE = 11 + ICANON = 0x0010 + ICMP6_FILTER = 0x26 + ICRNL = 0x0002 + IEXTEN = 0x0020 + IGNBRK = 0x0004 + IGNCR = 0x0008 + INLCR = 0x0020 + ISIG = 0x0040 + ISTRIP = 0x0080 + IXON = 0x0200 + IXOFF = 0x0100 + LOCK_SH = 0x1 // Not exist on zOS + LOCK_EX = 0x2 // Not exist on zOS + LOCK_NB = 0x4 // Not exist on zOS + LOCK_UN = 0x8 // Not exist on zOS + POLLIN = 0x0003 + POLLOUT = 0x0004 + POLLPRI = 0x0010 + POLLERR = 0x0020 + POLLHUP = 0x0040 + POLLNVAL = 0x0080 + PROT_READ = 0x1 // mmap - page can be read + PROT_WRITE = 0x2 // page can be written + PROT_NONE = 0x4 // can't be accessed + PROT_EXEC = 0x8 // can be executed + MAP_PRIVATE = 0x1 // changes are private + MAP_SHARED = 0x2 // changes are shared + MAP_FIXED = 0x4 // place exactly + MCAST_JOIN_GROUP = 40 + MCAST_LEAVE_GROUP = 41 + MCAST_JOIN_SOURCE_GROUP = 42 + MCAST_LEAVE_SOURCE_GROUP = 43 + MCAST_BLOCK_SOURCE = 44 + MCAST_UNBLOCK_SOURCE = 45 + MS_SYNC = 0x1 // msync - synchronous writes + MS_ASYNC = 0x2 // asynchronous writes + MS_INVALIDATE = 0x4 // invalidate mappings + MTM_RDONLY = 0x80000000 + MTM_RDWR = 0x40000000 + MTM_UMOUNT = 0x10000000 + MTM_IMMED = 0x08000000 + MTM_FORCE = 0x04000000 + MTM_DRAIN = 0x02000000 + MTM_RESET = 0x01000000 + MTM_SAMEMODE = 0x00100000 + MTM_UNQSEFORCE = 0x00040000 + MTM_NOSUID = 0x00000400 + MTM_SYNCHONLY = 0x00000200 + MTM_REMOUNT = 0x00000100 + MTM_NOSECURITY = 0x00000080 + NFDBITS = 0x20 + O_ACCMODE = 0x03 + O_APPEND = 0x08 + O_ASYNCSIG = 0x0200 + O_CREAT = 0x80 + O_EXCL = 0x40 + O_GETFL = 0x0F + O_LARGEFILE = 0x0400 + O_NONBLOCK = 0x04 + O_RDONLY = 0x02 + O_RDWR = 0x03 + O_SYNC = 0x0100 + O_TRUNC = 0x10 + O_WRONLY = 0x01 + O_NOCTTY = 0x20 + OPOST = 0x0001 + ONLCR = 0x0004 + PARENB = 0x0200 + PARMRK = 0x0400 + QUERYCVT = 3 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 // RUSAGE_THREAD unsupported on z/OS + SEEK_CUR = 1 + SEEK_END = 2 + SEEK_SET = 0 + SETAUTOCVTALL = 5 + SETAUTOCVTON = 2 + SETCVTALL = 4 + SETCVTOFF = 0 + SETCVTON = 1 + AF_APPLETALK = 16 + AF_CCITT = 10 + AF_CHAOS = 5 + AF_DATAKIT = 9 + AF_DLI = 13 + AF_ECMA = 8 + AF_HYLINK = 15 + AF_IMPLINK = 3 + AF_INET = 2 + AF_INET6 = 19 + AF_INTF = 20 + AF_IUCV = 17 + AF_LAT = 14 + AF_LINK = 18 + AF_MAX = 30 + AF_NBS = 7 + AF_NDD = 23 + AF_NETWARE = 22 + AF_NS = 6 + AF_PUP = 4 + AF_RIF = 21 + AF_ROUTE = 20 + AF_SNA = 11 + AF_UNIX = 1 + AF_UNSPEC = 0 + IBMTCP_IMAGE = 1 + MSG_ACK_EXPECTED = 0x10 + MSG_ACK_GEN = 0x40 + MSG_ACK_TIMEOUT = 0x20 + MSG_CONNTERM = 0x80 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOF = 0x8000 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 16 + MSG_NONBLOCK = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + PRIO_PROCESS = 1 + PRIO_PGRP = 2 + PRIO_USER = 3 + RLIMIT_CPU = 0 + RLIMIT_FSIZE = 1 + RLIMIT_DATA = 2 + RLIMIT_STACK = 3 + RLIMIT_CORE = 4 + RLIMIT_AS = 5 + RLIMIT_NOFILE = 6 + RLIMIT_MEMLIMIT = 7 + RLIM_INFINITY = 2147483647 + SCM_RIGHTS = 0x01 + SF_CLOSE = 0x00000002 + SF_REUSE = 0x00000001 + SHUT_RD = 0 + SHUT_RDWR = 2 + SHUT_WR = 1 + SOCK_CONN_DGRAM = 6 + SOCK_DGRAM = 2 + SOCK_RAW = 3 + SOCK_RDM = 4 + SOCK_SEQPACKET = 5 + SOCK_STREAM = 1 + SOL_SOCKET = 0xffff + SOMAXCONN = 10 + SO_ACCEPTCONN = 0x0002 + SO_ACCEPTECONNABORTED = 0x0006 + SO_ACKNOW = 0x7700 + SO_BROADCAST = 0x0020 + SO_BULKMODE = 0x8000 + SO_CKSUMRECV = 0x0800 + SO_CLOSE = 0x01 + SO_CLUSTERCONNTYPE = 0x00004001 + SO_CLUSTERCONNTYPE_INTERNAL = 8 + SO_CLUSTERCONNTYPE_NOCONN = 0 + SO_CLUSTERCONNTYPE_NONE = 1 + SO_CLUSTERCONNTYPE_SAME_CLUSTER = 2 + SO_CLUSTERCONNTYPE_SAME_IMAGE = 4 + SO_DEBUG = 0x0001 + SO_DONTROUTE = 0x0010 + SO_ERROR = 0x1007 + SO_IGNOREINCOMINGPUSH = 0x1 + SO_IGNORESOURCEVIPA = 0x0002 + SO_KEEPALIVE = 0x0008 + SO_LINGER = 0x0080 + SO_NONBLOCKLOCAL = 0x8001 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x0100 + SO_OPTACK = 0x8004 + SO_OPTMSS = 0x8003 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x0004 + SO_REUSEPORT = 0x0200 + SO_SECINFO = 0x00004002 + SO_SET = 0x0200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TYPE = 0x1008 + SO_UNSET = 0x0400 + SO_USELOOPBACK = 0x0040 + SO_USE_IFBUFS = 0x0400 + S_ISUID = 0x0800 + S_ISGID = 0x0400 + S_ISVTX = 0x0200 + S_IRUSR = 0x0100 + S_IWUSR = 0x0080 + S_IXUSR = 0x0040 + S_IRWXU = 0x01C0 + S_IRGRP = 0x0020 + S_IWGRP = 0x0010 + S_IXGRP = 0x0008 + S_IRWXG = 0x0038 + S_IROTH = 0x0004 + S_IWOTH = 0x0002 + S_IXOTH = 0x0001 + S_IRWXO = 0x0007 + S_IREAD = S_IRUSR + S_IWRITE = S_IWUSR + S_IEXEC = S_IXUSR + S_IFDIR = 0x01000000 + S_IFCHR = 0x02000000 + S_IFREG = 0x03000000 + S_IFFIFO = 0x04000000 + S_IFIFO = 0x04000000 + S_IFLNK = 0x05000000 + S_IFBLK = 0x06000000 + S_IFSOCK = 0x07000000 + S_IFVMEXTL = 0xFE000000 + S_IFVMEXTL_EXEC = 0x00010000 + S_IFVMEXTL_DATA = 0x00020000 + S_IFVMEXTL_MEL = 0x00030000 + S_IFEXTL = 0x00000001 + S_IFPROGCTL = 0x00000002 + S_IFAPFCTL = 0x00000004 + S_IFNOSHARE = 0x00000008 + S_IFSHARELIB = 0x00000010 + S_IFMT = 0xFF000000 + S_IFMST = 0x00FF0000 + TCP_KEEPALIVE = 0x8 + TCP_NODELAY = 0x1 + TCP_INFO = 0xb + TCP_USER_TIMEOUT = 0x1 + TIOCGWINSZ = 0x4008a368 + TIOCSWINSZ = 0x8008a367 + TIOCSBRK = 0x2000a77b + TIOCCBRK = 0x2000a77a + TIOCSTI = 0x8001a772 + TIOCGPGRP = 0x4004a777 // _IOR(167, 119, int) + TCSANOW = 0 + TCSETS = 0 // equivalent to TCSANOW for tcsetattr + TCSADRAIN = 1 + TCSETSW = 1 // equivalent to TCSADRAIN for tcsetattr + TCSAFLUSH = 2 + TCSETSF = 2 // equivalent to TCSAFLUSH for tcsetattr + TCGETS = 3 // not defined in ioctl.h -- zos golang only + TCIFLUSH = 0 + TCOFLUSH = 1 + TCIOFLUSH = 2 + TCOOFF = 0 + TCOON = 1 + TCIOFF = 2 + TCION = 3 + TIOCSPGRP = 0x8004a776 + TIOCNOTTY = 0x2000a771 + TIOCEXCL = 0x2000a70d + TIOCNXCL = 0x2000a70e + TIOCGETD = 0x4004a700 + TIOCSETD = 0x8004a701 + TIOCPKT = 0x8004a770 + TIOCSTOP = 0x2000a76f + TIOCSTART = 0x2000a76e + TIOCUCNTL = 0x8004a766 + TIOCREMOTE = 0x8004a769 + TIOCMGET = 0x4004a76a + TIOCMSET = 0x8004a76d + TIOCMBIC = 0x8004a76b + TIOCMBIS = 0x8004a76c + VINTR = 0 + VQUIT = 1 + VERASE = 2 + VKILL = 3 + VEOF = 4 + VEOL = 5 + VMIN = 6 + VSTART = 7 + VSTOP = 8 + VSUSP = 9 + VTIME = 10 + WCONTINUED = 0x4 + WNOHANG = 0x1 + WUNTRACED = 0x2 + _BPX_SWAP = 1 + _BPX_NONSWAP = 2 + MCL_CURRENT = 1 // for Linux compatibility -- no zos semantics + MCL_FUTURE = 2 // for Linux compatibility -- no zos semantics + MCL_ONFAULT = 3 // for Linux compatibility -- no zos semantics + MADV_NORMAL = 0 // for Linux compatibility -- no zos semantics + MADV_RANDOM = 1 // for Linux compatibility -- no zos semantics + MADV_SEQUENTIAL = 2 // for Linux compatibility -- no zos semantics + MADV_WILLNEED = 3 // for Linux compatibility -- no zos semantics + MADV_REMOVE = 4 // for Linux compatibility -- no zos semantics + MADV_DONTFORK = 5 // for Linux compatibility -- no zos semantics + MADV_DOFORK = 6 // for Linux compatibility -- no zos semantics + MADV_HWPOISON = 7 // for Linux compatibility -- no zos semantics + MADV_MERGEABLE = 8 // for Linux compatibility -- no zos semantics + MADV_UNMERGEABLE = 9 // for Linux compatibility -- no zos semantics + MADV_SOFT_OFFLINE = 10 // for Linux compatibility -- no zos semantics + MADV_HUGEPAGE = 11 // for Linux compatibility -- no zos semantics + MADV_NOHUGEPAGE = 12 // for Linux compatibility -- no zos semantics + MADV_DONTDUMP = 13 // for Linux compatibility -- no zos semantics + MADV_DODUMP = 14 // for Linux compatibility -- no zos semantics + MADV_FREE = 15 // for Linux compatibility -- no zos semantics + MADV_WIPEONFORK = 16 // for Linux compatibility -- no zos semantics + MADV_KEEPONFORK = 17 // for Linux compatibility -- no zos semantics + AT_SYMLINK_NOFOLLOW = 1 // for Unix compatibility -- no zos semantics + AT_FDCWD = 2 // for Unix compatibility -- no zos semantics +) + +const ( + EDOM = Errno(1) + ERANGE = Errno(2) + EACCES = Errno(111) + EAGAIN = Errno(112) + EBADF = Errno(113) + EBUSY = Errno(114) + ECHILD = Errno(115) + EDEADLK = Errno(116) + EEXIST = Errno(117) + EFAULT = Errno(118) + EFBIG = Errno(119) + EINTR = Errno(120) + EINVAL = Errno(121) + EIO = Errno(122) + EISDIR = Errno(123) + EMFILE = Errno(124) + EMLINK = Errno(125) + ENAMETOOLONG = Errno(126) + ENFILE = Errno(127) + ENODEV = Errno(128) + ENOENT = Errno(129) + ENOEXEC = Errno(130) + ENOLCK = Errno(131) + ENOMEM = Errno(132) + ENOSPC = Errno(133) + ENOSYS = Errno(134) + ENOTDIR = Errno(135) + ENOTEMPTY = Errno(136) + ENOTTY = Errno(137) + ENXIO = Errno(138) + EPERM = Errno(139) + EPIPE = Errno(140) + EROFS = Errno(141) + ESPIPE = Errno(142) + ESRCH = Errno(143) + EXDEV = Errno(144) + E2BIG = Errno(145) + ELOOP = Errno(146) + EILSEQ = Errno(147) + ENODATA = Errno(148) + EOVERFLOW = Errno(149) + EMVSNOTUP = Errno(150) + ECMSSTORAGE = Errno(151) + EMVSDYNALC = Errno(151) + EMVSCVAF = Errno(152) + EMVSCATLG = Errno(153) + ECMSINITIAL = Errno(156) + EMVSINITIAL = Errno(156) + ECMSERR = Errno(157) + EMVSERR = Errno(157) + EMVSPARM = Errno(158) + ECMSPFSFILE = Errno(159) + EMVSPFSFILE = Errno(159) + EMVSBADCHAR = Errno(160) + ECMSPFSPERM = Errno(162) + EMVSPFSPERM = Errno(162) + EMVSSAFEXTRERR = Errno(163) + EMVSSAF2ERR = Errno(164) + EMVSTODNOTSET = Errno(165) + EMVSPATHOPTS = Errno(166) + EMVSNORTL = Errno(167) + EMVSEXPIRE = Errno(168) + EMVSPASSWORD = Errno(169) + EMVSWLMERROR = Errno(170) + EMVSCPLERROR = Errno(171) + EMVSARMERROR = Errno(172) + ELENOFORK = Errno(200) + ELEMSGERR = Errno(201) + EFPMASKINV = Errno(202) + EFPMODEINV = Errno(203) + EBUFLEN = Errno(227) + EEXTLINK = Errno(228) + ENODD = Errno(229) + ECMSESMERR = Errno(230) + ECPERR = Errno(231) + ELEMULTITHREAD = Errno(232) + ELEFENCE = Errno(244) + EBADDATA = Errno(245) + EUNKNOWN = Errno(246) + ENOTSUP = Errno(247) + EBADNAME = Errno(248) + ENOTSAFE = Errno(249) + ELEMULTITHREADFORK = Errno(257) + ECUNNOENV = Errno(258) + ECUNNOCONV = Errno(259) + ECUNNOTALIGNED = Errno(260) + ECUNERR = Errno(262) + EIBMBADCALL = Errno(1000) + EIBMBADPARM = Errno(1001) + EIBMSOCKOUTOFRANGE = Errno(1002) + EIBMSOCKINUSE = Errno(1003) + EIBMIUCVERR = Errno(1004) + EOFFLOADboxERROR = Errno(1005) + EOFFLOADboxRESTART = Errno(1006) + EOFFLOADboxDOWN = Errno(1007) + EIBMCONFLICT = Errno(1008) + EIBMCANCELLED = Errno(1009) + EIBMBADTCPNAME = Errno(1011) + ENOTBLK = Errno(1100) + ETXTBSY = Errno(1101) + EWOULDBLOCK = Errno(1102) + EINPROGRESS = Errno(1103) + EALREADY = Errno(1104) + ENOTSOCK = Errno(1105) + EDESTADDRREQ = Errno(1106) + EMSGSIZE = Errno(1107) + EPROTOTYPE = Errno(1108) + ENOPROTOOPT = Errno(1109) + EPROTONOSUPPORT = Errno(1110) + ESOCKTNOSUPPORT = Errno(1111) + EOPNOTSUPP = Errno(1112) + EPFNOSUPPORT = Errno(1113) + EAFNOSUPPORT = Errno(1114) + EADDRINUSE = Errno(1115) + EADDRNOTAVAIL = Errno(1116) + ENETDOWN = Errno(1117) + ENETUNREACH = Errno(1118) + ENETRESET = Errno(1119) + ECONNABORTED = Errno(1120) + ECONNRESET = Errno(1121) + ENOBUFS = Errno(1122) + EISCONN = Errno(1123) + ENOTCONN = Errno(1124) + ESHUTDOWN = Errno(1125) + ETOOMANYREFS = Errno(1126) + ETIMEDOUT = Errno(1127) + ECONNREFUSED = Errno(1128) + EHOSTDOWN = Errno(1129) + EHOSTUNREACH = Errno(1130) + EPROCLIM = Errno(1131) + EUSERS = Errno(1132) + EDQUOT = Errno(1133) + ESTALE = Errno(1134) + EREMOTE = Errno(1135) + ENOSTR = Errno(1136) + ETIME = Errno(1137) + ENOSR = Errno(1138) + ENOMSG = Errno(1139) + EBADMSG = Errno(1140) + EIDRM = Errno(1141) + ENONET = Errno(1142) + ERREMOTE = Errno(1143) + ENOLINK = Errno(1144) + EADV = Errno(1145) + ESRMNT = Errno(1146) + ECOMM = Errno(1147) + EPROTO = Errno(1148) + EMULTIHOP = Errno(1149) + EDOTDOT = Errno(1150) + EREMCHG = Errno(1151) + ECANCELED = Errno(1152) + EINTRNODATA = Errno(1159) + ENOREUSE = Errno(1160) + ENOMOVE = Errno(1161) +) + +// Signals +const ( + SIGHUP = Signal(1) + SIGINT = Signal(2) + SIGABRT = Signal(3) + SIGILL = Signal(4) + SIGPOLL = Signal(5) + SIGURG = Signal(6) + SIGSTOP = Signal(7) + SIGFPE = Signal(8) + SIGKILL = Signal(9) + SIGBUS = Signal(10) + SIGSEGV = Signal(11) + SIGSYS = Signal(12) + SIGPIPE = Signal(13) + SIGALRM = Signal(14) + SIGTERM = Signal(15) + SIGUSR1 = Signal(16) + SIGUSR2 = Signal(17) + SIGABND = Signal(18) + SIGCONT = Signal(19) + SIGCHLD = Signal(20) + SIGTTIN = Signal(21) + SIGTTOU = Signal(22) + SIGIO = Signal(23) + SIGQUIT = Signal(24) + SIGTSTP = Signal(25) + SIGTRAP = Signal(26) + SIGIOERR = Signal(27) + SIGWINCH = Signal(28) + SIGXCPU = Signal(29) + SIGXFSZ = Signal(30) + SIGVTALRM = Signal(31) + SIGPROF = Signal(32) + SIGDANGER = Signal(33) + SIGTHSTOP = Signal(34) + SIGTHCONT = Signal(35) + SIGTRACE = Signal(37) + SIGDCE = Signal(38) + SIGDUMP = Signal(39) +) + +// Error table +var errorList = [...]struct { + num Errno + name string + desc string +}{ + {1, "EDC5001I", "A domain error occurred."}, + {2, "EDC5002I", "A range error occurred."}, + {111, "EDC5111I", "Permission denied."}, + {112, "EDC5112I", "Resource temporarily unavailable."}, + {113, "EDC5113I", "Bad file descriptor."}, + {114, "EDC5114I", "Resource busy."}, + {115, "EDC5115I", "No child processes."}, + {116, "EDC5116I", "Resource deadlock avoided."}, + {117, "EDC5117I", "File exists."}, + {118, "EDC5118I", "Incorrect address."}, + {119, "EDC5119I", "File too large."}, + {120, "EDC5120I", "Interrupted function call."}, + {121, "EDC5121I", "Invalid argument."}, + {122, "EDC5122I", "Input/output error."}, + {123, "EDC5123I", "Is a directory."}, + {124, "EDC5124I", "Too many open files."}, + {125, "EDC5125I", "Too many links."}, + {126, "EDC5126I", "Filename too long."}, + {127, "EDC5127I", "Too many open files in system."}, + {128, "EDC5128I", "No such device."}, + {129, "EDC5129I", "No such file or directory."}, + {130, "EDC5130I", "Exec format error."}, + {131, "EDC5131I", "No locks available."}, + {132, "EDC5132I", "Not enough memory."}, + {133, "EDC5133I", "No space left on device."}, + {134, "EDC5134I", "Function not implemented."}, + {135, "EDC5135I", "Not a directory."}, + {136, "EDC5136I", "Directory not empty."}, + {137, "EDC5137I", "Inappropriate I/O control operation."}, + {138, "EDC5138I", "No such device or address."}, + {139, "EDC5139I", "Operation not permitted."}, + {140, "EDC5140I", "Broken pipe."}, + {141, "EDC5141I", "Read-only file system."}, + {142, "EDC5142I", "Invalid seek."}, + {143, "EDC5143I", "No such process."}, + {144, "EDC5144I", "Improper link."}, + {145, "EDC5145I", "The parameter list is too long, or the message to receive was too large for the buffer."}, + {146, "EDC5146I", "Too many levels of symbolic links."}, + {147, "EDC5147I", "Illegal byte sequence."}, + {148, "", ""}, + {149, "EDC5149I", "Value Overflow Error."}, + {150, "EDC5150I", "UNIX System Services is not active."}, + {151, "EDC5151I", "Dynamic allocation error."}, + {152, "EDC5152I", "Common VTOC access facility (CVAF) error."}, + {153, "EDC5153I", "Catalog obtain error."}, + {156, "EDC5156I", "Process initialization error."}, + {157, "EDC5157I", "An internal error has occurred."}, + {158, "EDC5158I", "Bad parameters were passed to the service."}, + {159, "EDC5159I", "The Physical File System encountered a permanent file error."}, + {160, "EDC5160I", "Bad character in environment variable name."}, + {162, "EDC5162I", "The Physical File System encountered a system error."}, + {163, "EDC5163I", "SAF/RACF extract error."}, + {164, "EDC5164I", "SAF/RACF error."}, + {165, "EDC5165I", "System TOD clock not set."}, + {166, "EDC5166I", "Access mode argument on function call conflicts with PATHOPTS parameter on JCL DD statement."}, + {167, "EDC5167I", "Access to the UNIX System Services version of the C RTL is denied."}, + {168, "EDC5168I", "Password has expired."}, + {169, "EDC5169I", "Password is invalid."}, + {170, "EDC5170I", "An error was encountered with WLM."}, + {171, "EDC5171I", "An error was encountered with CPL."}, + {172, "EDC5172I", "An error was encountered with Application Response Measurement (ARM) component."}, + {200, "EDC5200I", "The application contains a Language Environment member language that cannot tolerate a fork()."}, + {201, "EDC5201I", "The Language Environment message file was not found in the hierarchical file system."}, + {202, "EDC5202E", "DLL facilities are not supported under SPC environment."}, + {203, "EDC5203E", "DLL facilities are not supported under POSIX environment."}, + {227, "EDC5227I", "Buffer is not long enough to contain a path definition"}, + {228, "EDC5228I", "The file referred to is an external link"}, + {229, "EDC5229I", "No path definition for ddname in effect"}, + {230, "EDC5230I", "ESM error."}, + {231, "EDC5231I", "CP or the external security manager had an error"}, + {232, "EDC5232I", "The function failed because it was invoked from a multithread environment."}, + {244, "EDC5244I", "The program, module or DLL is not supported in this environment."}, + {245, "EDC5245I", "Data is not valid."}, + {246, "EDC5246I", "Unknown system state."}, + {247, "EDC5247I", "Operation not supported."}, + {248, "EDC5248I", "The object name specified is not correct."}, + {249, "EDC5249I", "The function is not allowed."}, + {257, "EDC5257I", "Function cannot be called in the child process of a fork() from a multithreaded process until exec() is called."}, + {258, "EDC5258I", "A CUN_RS_NO_UNI_ENV error was issued by Unicode Services."}, + {259, "EDC5259I", "A CUN_RS_NO_CONVERSION error was issued by Unicode Services."}, + {260, "EDC5260I", "A CUN_RS_TABLE_NOT_ALIGNED error was issued by Unicode Services."}, + {262, "EDC5262I", "An iconv() function encountered an unexpected error while using Unicode Services."}, + {1000, "EDC8000I", "A bad socket-call constant was found in the IUCV header."}, + {1001, "EDC8001I", "An error was found in the IUCV header."}, + {1002, "EDC8002I", "A socket descriptor is out of range."}, + {1003, "EDC8003I", "A socket descriptor is in use."}, + {1004, "EDC8004I", "Request failed because of an IUCV error."}, + {1005, "EDC8005I", "Offload box error."}, + {1006, "EDC8006I", "Offload box restarted."}, + {1007, "EDC8007I", "Offload box down."}, + {1008, "EDC8008I", "Already a conflicting call outstanding on socket."}, + {1009, "EDC8009I", "Request cancelled using a SOCKcallCANCEL request."}, + {1011, "EDC8011I", "A name of a PFS was specified that either is not configured or is not a Sockets PFS."}, + {1100, "EDC8100I", "Block device required."}, + {1101, "EDC8101I", "Text file busy."}, + {1102, "EDC8102I", "Operation would block."}, + {1103, "EDC8103I", "Operation now in progress."}, + {1104, "EDC8104I", "Connection already in progress."}, + {1105, "EDC8105I", "Socket operation on non-socket."}, + {1106, "EDC8106I", "Destination address required."}, + {1107, "EDC8107I", "Message too long."}, + {1108, "EDC8108I", "Protocol wrong type for socket."}, + {1109, "EDC8109I", "Protocol not available."}, + {1110, "EDC8110I", "Protocol not supported."}, + {1111, "EDC8111I", "Socket type not supported."}, + {1112, "EDC8112I", "Operation not supported on socket."}, + {1113, "EDC8113I", "Protocol family not supported."}, + {1114, "EDC8114I", "Address family not supported."}, + {1115, "EDC8115I", "Address already in use."}, + {1116, "EDC8116I", "Address not available."}, + {1117, "EDC8117I", "Network is down."}, + {1118, "EDC8118I", "Network is unreachable."}, + {1119, "EDC8119I", "Network dropped connection on reset."}, + {1120, "EDC8120I", "Connection ended abnormally."}, + {1121, "EDC8121I", "Connection reset."}, + {1122, "EDC8122I", "No buffer space available."}, + {1123, "EDC8123I", "Socket already connected."}, + {1124, "EDC8124I", "Socket not connected."}, + {1125, "EDC8125I", "Can't send after socket shutdown."}, + {1126, "EDC8126I", "Too many references; can't splice."}, + {1127, "EDC8127I", "Connection timed out."}, + {1128, "EDC8128I", "Connection refused."}, + {1129, "EDC8129I", "Host is not available."}, + {1130, "EDC8130I", "Host cannot be reached."}, + {1131, "EDC8131I", "Too many processes."}, + {1132, "EDC8132I", "Too many users."}, + {1133, "EDC8133I", "Disk quota exceeded."}, + {1134, "EDC8134I", "Stale file handle."}, + {1135, "", ""}, + {1136, "EDC8136I", "File is not a STREAM."}, + {1137, "EDC8137I", "STREAMS ioctl() timeout."}, + {1138, "EDC8138I", "No STREAMS resources."}, + {1139, "EDC8139I", "The message identified by set_id and msg_id is not in the message catalog."}, + {1140, "EDC8140I", "Bad message."}, + {1141, "EDC8141I", "Identifier removed."}, + {1142, "", ""}, + {1143, "", ""}, + {1144, "EDC8144I", "The link has been severed."}, + {1145, "", ""}, + {1146, "", ""}, + {1147, "", ""}, + {1148, "EDC8148I", "Protocol error."}, + {1149, "EDC8149I", "Multihop not allowed."}, + {1150, "", ""}, + {1151, "", ""}, + {1152, "EDC8152I", "The asynchronous I/O request has been canceled."}, + {1159, "EDC8159I", "Function call was interrupted before any data was received."}, + {1160, "EDC8160I", "Socket reuse is not supported."}, + {1161, "EDC8161I", "The file system cannot currently be moved."}, +} + +// Signal table +var signalList = [...]struct { + num Signal + name string + desc string +}{ + {1, "SIGHUP", "hangup"}, + {2, "SIGINT", "interrupt"}, + {3, "SIGABT", "aborted"}, + {4, "SIGILL", "illegal instruction"}, + {5, "SIGPOLL", "pollable event"}, + {6, "SIGURG", "urgent I/O condition"}, + {7, "SIGSTOP", "stop process"}, + {8, "SIGFPE", "floating point exception"}, + {9, "SIGKILL", "killed"}, + {10, "SIGBUS", "bus error"}, + {11, "SIGSEGV", "segmentation fault"}, + {12, "SIGSYS", "bad argument to routine"}, + {13, "SIGPIPE", "broken pipe"}, + {14, "SIGALRM", "alarm clock"}, + {15, "SIGTERM", "terminated"}, + {16, "SIGUSR1", "user defined signal 1"}, + {17, "SIGUSR2", "user defined signal 2"}, + {18, "SIGABND", "abend"}, + {19, "SIGCONT", "continued"}, + {20, "SIGCHLD", "child exited"}, + {21, "SIGTTIN", "stopped (tty input)"}, + {22, "SIGTTOU", "stopped (tty output)"}, + {23, "SIGIO", "I/O possible"}, + {24, "SIGQUIT", "quit"}, + {25, "SIGTSTP", "stopped"}, + {26, "SIGTRAP", "trace/breakpoint trap"}, + {27, "SIGIOER", "I/O error"}, + {28, "SIGWINCH", "window changed"}, + {29, "SIGXCPU", "CPU time limit exceeded"}, + {30, "SIGXFSZ", "file size limit exceeded"}, + {31, "SIGVTALRM", "virtual timer expired"}, + {32, "SIGPROF", "profiling timer expired"}, + {33, "SIGDANGER", "danger"}, + {34, "SIGTHSTOP", "stop thread"}, + {35, "SIGTHCONT", "continue thread"}, + {37, "SIGTRACE", "trace"}, + {38, "", "DCE"}, + {39, "SIGDUMP", "dump"}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go new file mode 100644 index 0000000000..97f20ca282 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go @@ -0,0 +1,42 @@ +// Code generated by linux/mkall.go generatePtracePair("arm", "arm64"). DO NOT EDIT. + +//go:build linux && (arm || arm64) +// +build linux +// +build arm arm64 + +package unix + +import "unsafe" + +// PtraceRegsArm is the registers used by arm binaries. +type PtraceRegsArm struct { + Uregs [18]uint32 +} + +// PtraceGetRegsArm fetches the registers used by arm binaries. +func PtraceGetRegsArm(pid int, regsout *PtraceRegsArm) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsArm sets the registers used by arm binaries. +func PtraceSetRegsArm(pid int, regs *PtraceRegsArm) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsArm64 is the registers used by arm64 binaries. +type PtraceRegsArm64 struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +// PtraceGetRegsArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegsArm64(pid int, regsout *PtraceRegsArm64) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsArm64 sets the registers used by arm64 binaries. +func PtraceSetRegsArm64(pid int, regs *PtraceRegsArm64) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go new file mode 100644 index 0000000000..834d2856dd --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go @@ -0,0 +1,17 @@ +// Code generated by linux/mkall.go generatePtraceRegSet("arm64"). DO NOT EDIT. + +package unix + +import "unsafe" + +// PtraceGetRegSetArm64 fetches the registers used by arm64 binaries. +func PtraceGetRegSetArm64(pid, addr int, regsout *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regsout)), uint64(unsafe.Sizeof(*regsout))} + return ptracePtr(PTRACE_GETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) +} + +// PtraceSetRegSetArm64 sets the registers used by arm64 binaries. +func PtraceSetRegSetArm64(pid, addr int, regs *PtraceRegsArm64) error { + iovec := Iovec{(*byte)(unsafe.Pointer(regs)), uint64(unsafe.Sizeof(*regs))} + return ptracePtr(PTRACE_SETREGSET, pid, uintptr(addr), unsafe.Pointer(&iovec)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go new file mode 100644 index 0000000000..0b5f794305 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go @@ -0,0 +1,51 @@ +// Code generated by linux/mkall.go generatePtracePair("mips", "mips64"). DO NOT EDIT. + +//go:build linux && (mips || mips64) +// +build linux +// +build mips mips64 + +package unix + +import "unsafe" + +// PtraceRegsMips is the registers used by mips binaries. +type PtraceRegsMips struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips fetches the registers used by mips binaries. +func PtraceGetRegsMips(pid int, regsout *PtraceRegsMips) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMips sets the registers used by mips binaries. +func PtraceSetRegsMips(pid int, regs *PtraceRegsMips) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsMips64 is the registers used by mips64 binaries. +type PtraceRegsMips64 struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips64 fetches the registers used by mips64 binaries. +func PtraceGetRegsMips64(pid int, regsout *PtraceRegsMips64) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMips64 sets the registers used by mips64 binaries. +func PtraceSetRegsMips64(pid int, regs *PtraceRegsMips64) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go new file mode 100644 index 0000000000..2807f7e646 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go @@ -0,0 +1,51 @@ +// Code generated by linux/mkall.go generatePtracePair("mipsle", "mips64le"). DO NOT EDIT. + +//go:build linux && (mipsle || mips64le) +// +build linux +// +build mipsle mips64le + +package unix + +import "unsafe" + +// PtraceRegsMipsle is the registers used by mipsle binaries. +type PtraceRegsMipsle struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMipsle fetches the registers used by mipsle binaries. +func PtraceGetRegsMipsle(pid int, regsout *PtraceRegsMipsle) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMipsle sets the registers used by mipsle binaries. +func PtraceSetRegsMipsle(pid int, regs *PtraceRegsMipsle) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsMips64le is the registers used by mips64le binaries. +type PtraceRegsMips64le struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +// PtraceGetRegsMips64le fetches the registers used by mips64le binaries. +func PtraceGetRegsMips64le(pid int, regsout *PtraceRegsMips64le) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsMips64le sets the registers used by mips64le binaries. +func PtraceSetRegsMips64le(pid int, regs *PtraceRegsMips64le) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go new file mode 100644 index 0000000000..281ea64e34 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go @@ -0,0 +1,81 @@ +// Code generated by linux/mkall.go generatePtracePair("386", "amd64"). DO NOT EDIT. + +//go:build linux && (386 || amd64) +// +build linux +// +build 386 amd64 + +package unix + +import "unsafe" + +// PtraceRegs386 is the registers used by 386 binaries. +type PtraceRegs386 struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +// PtraceGetRegs386 fetches the registers used by 386 binaries. +func PtraceGetRegs386(pid int, regsout *PtraceRegs386) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegs386 sets the registers used by 386 binaries. +func PtraceSetRegs386(pid int, regs *PtraceRegs386) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} + +// PtraceRegsAmd64 is the registers used by amd64 binaries. +type PtraceRegsAmd64 struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +// PtraceGetRegsAmd64 fetches the registers used by amd64 binaries. +func PtraceGetRegsAmd64(pid int, regsout *PtraceRegsAmd64) error { + return ptracePtr(PTRACE_GETREGS, pid, 0, unsafe.Pointer(regsout)) +} + +// PtraceSetRegsAmd64 sets the registers used by amd64 binaries. +func PtraceSetRegsAmd64(pid int, regs *PtraceRegsAmd64) error { + return ptracePtr(PTRACE_SETREGS, pid, 0, unsafe.Pointer(regs)) +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go new file mode 100644 index 0000000000..ef9dcd1bef --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go @@ -0,0 +1,1495 @@ +// go run mksyscall_aix_ppc.go -aix -tags aix,ppc syscall_aix.go syscall_aix_ppc.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build aix && ppc +// +build aix,ppc + +package unix + +/* +#include +#include +int utimes(uintptr_t, uintptr_t); +int utimensat(int, uintptr_t, uintptr_t, int); +int getcwd(uintptr_t, size_t); +int accept(int, uintptr_t, uintptr_t); +int getdirent(int, uintptr_t, size_t); +int wait4(int, uintptr_t, int, uintptr_t); +int ioctl(int, int, uintptr_t); +int fcntl(uintptr_t, int, uintptr_t); +int fsync_range(int, int, long long, long long); +int acct(uintptr_t); +int chdir(uintptr_t); +int chroot(uintptr_t); +int close(int); +int dup(int); +void exit(int); +int faccessat(int, uintptr_t, unsigned int, int); +int fchdir(int); +int fchmod(int, unsigned int); +int fchmodat(int, uintptr_t, unsigned int, int); +int fchownat(int, uintptr_t, int, int, int); +int fdatasync(int); +int getpgid(int); +int getpgrp(); +int getpid(); +int getppid(); +int getpriority(int, int); +int getrusage(int, uintptr_t); +int getsid(int); +int kill(int, int); +int syslog(int, uintptr_t, size_t); +int mkdir(int, uintptr_t, unsigned int); +int mkdirat(int, uintptr_t, unsigned int); +int mkfifo(uintptr_t, unsigned int); +int mknod(uintptr_t, unsigned int, int); +int mknodat(int, uintptr_t, unsigned int, int); +int nanosleep(uintptr_t, uintptr_t); +int open64(uintptr_t, int, unsigned int); +int openat(int, uintptr_t, int, unsigned int); +int read(int, uintptr_t, size_t); +int readlink(uintptr_t, uintptr_t, size_t); +int renameat(int, uintptr_t, int, uintptr_t); +int setdomainname(uintptr_t, size_t); +int sethostname(uintptr_t, size_t); +int setpgid(int, int); +int setsid(); +int settimeofday(uintptr_t); +int setuid(int); +int setgid(int); +int setpriority(int, int, int); +int statx(int, uintptr_t, int, int, uintptr_t); +int sync(); +uintptr_t times(uintptr_t); +int umask(int); +int uname(uintptr_t); +int unlink(uintptr_t); +int unlinkat(int, uintptr_t, int); +int ustat(int, uintptr_t); +int write(int, uintptr_t, size_t); +int dup2(int, int); +int posix_fadvise64(int, long long, long long, int); +int fchown(int, int, int); +int fstat(int, uintptr_t); +int fstatat(int, uintptr_t, uintptr_t, int); +int fstatfs(int, uintptr_t); +int ftruncate(int, long long); +int getegid(); +int geteuid(); +int getgid(); +int getuid(); +int lchown(uintptr_t, int, int); +int listen(int, int); +int lstat(uintptr_t, uintptr_t); +int pause(); +int pread64(int, uintptr_t, size_t, long long); +int pwrite64(int, uintptr_t, size_t, long long); +#define c_select select +int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int setregid(int, int); +int setreuid(int, int); +int shutdown(int, int); +long long splice(int, uintptr_t, int, uintptr_t, int, int); +int stat(uintptr_t, uintptr_t); +int statfs(uintptr_t, uintptr_t); +int truncate(uintptr_t, long long); +int bind(int, uintptr_t, uintptr_t); +int connect(int, uintptr_t, uintptr_t); +int getgroups(int, uintptr_t); +int setgroups(int, uintptr_t); +int getsockopt(int, int, int, uintptr_t, uintptr_t); +int setsockopt(int, int, int, uintptr_t, uintptr_t); +int socket(int, int, int); +int socketpair(int, int, int, uintptr_t); +int getpeername(int, uintptr_t, uintptr_t); +int getsockname(int, uintptr_t, uintptr_t); +int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int nrecvmsg(int, uintptr_t, int); +int nsendmsg(int, uintptr_t, int); +int munmap(uintptr_t, uintptr_t); +int madvise(uintptr_t, size_t, int); +int mprotect(uintptr_t, size_t, int); +int mlock(uintptr_t, size_t); +int mlockall(int); +int msync(uintptr_t, size_t, int); +int munlock(uintptr_t, size_t); +int munlockall(); +int pipe(uintptr_t); +int poll(uintptr_t, int, int); +int gettimeofday(uintptr_t, uintptr_t); +int time(uintptr_t); +int utime(uintptr_t, uintptr_t); +unsigned long long getsystemcfg(int); +int umount(uintptr_t); +int getrlimit64(int, uintptr_t); +int setrlimit64(int, uintptr_t); +long long lseek64(int, long long, int); +uintptr_t mmap(uintptr_t, uintptr_t, int, int, int, long long); + +*/ +import "C" +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utimes(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(times))), C.int(flag)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getcwd(buf []byte) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.getcwd(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, er := C.accept(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirent(fd int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.getdirent(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { + r0, er := C.wait4(C.int(pid), C.uintptr_t(uintptr(unsafe.Pointer(status))), C.int(options), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) + wpid = Pid_t(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + r0, er := C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) + r = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(uintptr(unsafe.Pointer(lk)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, er := C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg)) + val = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsyncRange(fd int, how int, start int64, length int64) (err error) { + r0, er := C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.acct(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.chdir(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.chroot(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + r0, er := C.close(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, er := C.dup(C.int(oldfd)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + C.exit(C.int(code)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + r0, er := C.fchdir(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + r0, er := C.fchmod(C.int(fd), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + r0, er := C.fdatasync(C.int(fd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, er := C.getpgid(C.int(pid)) + pgid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pid int) { + r0, _ := C.getpgrp() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := C.getpid() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := C.getppid() + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, er := C.getpriority(C.int(which), C.int(who)) + prio = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + r0, er := C.getrusage(C.int(who), C.uintptr_t(uintptr(unsafe.Pointer(rusage)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, er := C.getsid(C.int(pid)) + sid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + r0, er := C.kill(C.int(pid), C.int(sig)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.syslog(C.int(typ), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(dirfd int, path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mkfifo(C.uintptr_t(_p0), C.uint(mode)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + r0, er := C.nanosleep(C.uintptr_t(uintptr(unsafe.Pointer(time))), C.uintptr_t(uintptr(unsafe.Pointer(leftover)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + var _p2 int + _p2 = len(buf) + r0, er := C.readlink(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(_p1))), C.size_t(_p2)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(oldpath))) + _p1 := uintptr(unsafe.Pointer(C.CString(newpath))) + r0, er := C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.setdomainname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.sethostname(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + r0, er := C.setpgid(C.int(pid), C.int(pgid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, er := C.setsid() + pid = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + r0, er := C.settimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + r0, er := C.setuid(C.int(uid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + r0, er := C.setgid(C.int(uid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + r0, er := C.setpriority(C.int(which), C.int(who), C.int(prio)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + C.sync() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, er := C.times(C.uintptr_t(uintptr(unsafe.Pointer(tms)))) + ticks = uintptr(r0) + if uintptr(r0) == ^uintptr(0) && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := C.umask(C.int(mask)) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + r0, er := C.uname(C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.unlink(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + r0, er := C.ustat(C.int(dev), C.uintptr_t(uintptr(unsafe.Pointer(ubuf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, er := C.read(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, er := C.write(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(p))), C.size_t(np)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + r0, er := C.dup2(C.int(oldfd), C.int(newfd)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + r0, er := C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + r0, er := C.fchown(C.int(fd), C.int(uid), C.int(gid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_t) (err error) { + r0, er := C.fstat(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat))), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + r0, er := C.fstatfs(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + r0, er := C.ftruncate(C.int(fd), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := C.getegid() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := C.geteuid() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := C.getgid() + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := C.getuid() + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + r0, er := C.listen(C.int(s), C.int(n)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.lstat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(stat)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + r0, er := C.pause() + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.pread64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.pwrite64(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.longlong(offset)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, er := C.c_select(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, er := C.pselect(C.int(nfd), C.uintptr_t(uintptr(unsafe.Pointer(r))), C.uintptr_t(uintptr(unsafe.Pointer(w))), C.uintptr_t(uintptr(unsafe.Pointer(e))), C.uintptr_t(uintptr(unsafe.Pointer(timeout))), C.uintptr_t(uintptr(unsafe.Pointer(sigmask)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + r0, er := C.setregid(C.int(rgid), C.int(egid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + r0, er := C.setreuid(C.int(ruid), C.int(euid)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + r0, er := C.shutdown(C.int(fd), C.int(how)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, er := C.splice(C.int(rfd), C.uintptr_t(uintptr(unsafe.Pointer(roff))), C.int(wfd), C.uintptr_t(uintptr(unsafe.Pointer(woff))), C.int(len), C.int(flags)) + n = int64(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statptr *Stat_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.stat(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(statptr)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.statfs(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.truncate(C.uintptr_t(_p0), C.longlong(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + r0, er := C.bind(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + r0, er := C.connect(C.int(s), C.uintptr_t(uintptr(addr)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, er := C.getgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) + nn = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + r0, er := C.setgroups(C.int(n), C.uintptr_t(uintptr(unsafe.Pointer(list)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + r0, er := C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(uintptr(unsafe.Pointer(vallen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + r0, er := C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(uintptr(val)), C.uintptr_t(vallen)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, er := C.socket(C.int(domain), C.int(typ), C.int(proto)) + fd = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + r0, er := C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(uintptr(unsafe.Pointer(fd)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, er := C.getpeername(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + r0, er := C.getsockname(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(rsa))), C.uintptr_t(uintptr(unsafe.Pointer(addrlen)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + var _p1 int + _p1 = len(p) + r0, er := C.recvfrom(C.int(fd), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(unsafe.Pointer(from))), C.uintptr_t(uintptr(unsafe.Pointer(fromlen)))) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + var _p1 int + _p1 = len(buf) + r0, er := C.sendto(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags), C.uintptr_t(uintptr(to)), C.uintptr_t(uintptr(addrlen))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, er := C.nrecvmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, er := C.nsendmsg(C.int(s), C.uintptr_t(uintptr(unsafe.Pointer(msg))), C.int(flags)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + r0, er := C.munmap(C.uintptr_t(addr), C.uintptr_t(length)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.madvise(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(advice)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.mprotect(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(prot)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.mlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + r0, er := C.mlockall(C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.msync(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1), C.int(flags)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + var _p1 int + _p1 = len(b) + r0, er := C.munlock(C.uintptr_t(uintptr(unsafe.Pointer(_p0))), C.size_t(_p1)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + r0, er := C.munlockall() + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + r0, er := C.pipe(C.uintptr_t(uintptr(unsafe.Pointer(p)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, er := C.poll(C.uintptr_t(uintptr(unsafe.Pointer(fds))), C.int(nfds), C.int(timeout)) + n = int(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *Timeval, tzp *Timezone) (err error) { + r0, er := C.gettimeofday(C.uintptr_t(uintptr(unsafe.Pointer(tv))), C.uintptr_t(uintptr(unsafe.Pointer(tzp)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, er := C.time(C.uintptr_t(uintptr(unsafe.Pointer(t)))) + tt = Time_t(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(path))) + r0, er := C.utime(C.uintptr_t(_p0), C.uintptr_t(uintptr(unsafe.Pointer(buf)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsystemcfg(label int) (n uint64) { + r0, _ := C.getsystemcfg(C.int(label)) + n = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func umount(target string) (err error) { + _p0 := uintptr(unsafe.Pointer(C.CString(target))) + r0, er := C.umount(C.uintptr_t(_p0)) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + r0, er := C.getrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + r0, er := C.setrlimit64(C.int(resource), C.uintptr_t(uintptr(unsafe.Pointer(rlim)))) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, er := C.lseek64(C.int(fd), C.longlong(offset), C.int(whence)) + off = int64(r0) + if r0 == -1 && er != nil { + err = er + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, er := C.mmap(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset)) + xaddr = uintptr(r0) + if uintptr(r0) == ^uintptr(0) && er != nil { + err = er + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go new file mode 100644 index 0000000000..f86a945923 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go @@ -0,0 +1,1453 @@ +// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build aix && ppc64 +// +build aix,ppc64 + +package unix + +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutimes(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutimensat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), flag) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getcwd(buf []byte) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, e1 := callgetcwd(uintptr(unsafe.Pointer(_p0)), len(buf)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, e1 := callaccept(s, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirent(fd int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, e1 := callgetdirent(fd, uintptr(unsafe.Pointer(_p0)), len(buf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid Pid_t, status *_C_int, options int, rusage *Rusage) (wpid Pid_t, err error) { + r0, e1 := callwait4(int(pid), uintptr(unsafe.Pointer(status)), options, uintptr(unsafe.Pointer(rusage))) + wpid = Pid_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, e1 := callioctl(fd, int(req), arg) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, e1 := callioctl_ptr(fd, int(req), arg) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (r int, err error) { + r0, e1 := callfcntl(fd, cmd, uintptr(arg)) + r = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlFlock(fd uintptr, cmd int, lk *Flock_t) (err error) { + _, e1 := callfcntl(fd, cmd, uintptr(unsafe.Pointer(lk))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, e1 := callfcntl(uintptr(fd), cmd, uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsyncRange(fd int, how int, start int64, length int64) (err error) { + _, e1 := callfsync_range(fd, how, start, length) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callacct(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callchdir(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callchroot(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, e1 := callclose(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, e1 := calldup(oldfd) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + callexit(code) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfaccessat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, e1 := callfchdir(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, e1 := callfchmod(fd, mode) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfchmodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfchownat(dirfd, uintptr(unsafe.Pointer(_p0)), uid, gid, flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, e1 := callfdatasync(fd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, e1 := callgetpgid(pid) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pid int) { + r0, _ := callgetpgrp() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := callgetpid() + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := callgetppid() + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, e1 := callgetpriority(which, who) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, e1 := callgetrusage(who, uintptr(unsafe.Pointer(rusage))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, e1 := callgetsid(pid) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + _, e1 := callkill(pid, int(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, e1 := callsyslog(typ, uintptr(unsafe.Pointer(_p0)), len(buf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmkdir(dirfd, uintptr(unsafe.Pointer(_p0)), mode) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmkdirat(dirfd, uintptr(unsafe.Pointer(_p0)), mode) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmkfifo(uintptr(unsafe.Pointer(_p0)), mode) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmknod(uintptr(unsafe.Pointer(_p0)), mode, dev) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callmknodat(dirfd, uintptr(unsafe.Pointer(_p0)), mode, dev) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, e1 := callnanosleep(uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, e1 := callopen64(uintptr(unsafe.Pointer(_p0)), mode, perm) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, e1 := callopenat(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mode) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callread(fd, uintptr(unsafe.Pointer(_p0)), len(p)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + r0, e1 := callreadlink(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), len(buf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, e1 := callrenameat(olddirfd, uintptr(unsafe.Pointer(_p0)), newdirfd, uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, e1 := callsetdomainname(uintptr(unsafe.Pointer(_p0)), len(p)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, e1 := callsethostname(uintptr(unsafe.Pointer(_p0)), len(p)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, e1 := callsetpgid(pid, pgid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, e1 := callsetsid() + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, e1 := callsettimeofday(uintptr(unsafe.Pointer(tv))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, e1 := callsetuid(uid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + _, e1 := callsetgid(uid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, e1 := callsetpriority(which, who, prio) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstatx(dirfd, uintptr(unsafe.Pointer(_p0)), flags, mask, uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + callsync() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, e1 := calltimes(uintptr(unsafe.Pointer(tms))) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := callumask(mask) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, e1 := calluname(uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callunlink(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callunlinkat(dirfd, uintptr(unsafe.Pointer(_p0)), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, e1 := callustat(dev, uintptr(unsafe.Pointer(ubuf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(_p0)), len(p)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, e1 := callread(fd, uintptr(unsafe.Pointer(p)), np) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, e1 := callwrite(fd, uintptr(unsafe.Pointer(p)), np) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, e1 := calldup2(oldfd, newfd) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, e1 := callposix_fadvise64(fd, offset, length, advice) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, e1 := callfchown(fd, uid, gid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_t) (err error) { + _, e1 := callfstat(fd, uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callfstatat(dirfd, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, e1 := callfstatfs(fd, uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, e1 := callftruncate(fd, length) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := callgetegid() + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := callgeteuid() + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := callgetgid() + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := callgetuid() + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := calllchown(uintptr(unsafe.Pointer(_p0)), uid, gid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, e1 := calllisten(s, n) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := calllstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, e1 := callpause() + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callpread64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callpwrite64(fd, uintptr(unsafe.Pointer(_p0)), len(p), offset) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, e1 := callselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, e1 := callpselect(nfd, uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, e1 := callsetregid(rgid, egid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, e1 := callsetreuid(ruid, euid) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, e1 := callshutdown(fd, how) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, e1 := callsplice(rfd, uintptr(unsafe.Pointer(roff)), wfd, uintptr(unsafe.Pointer(woff)), len, flags) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statptr *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstat(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statptr))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callstatfs(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := calltruncate(uintptr(unsafe.Pointer(_p0)), length) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e1 := callbind(s, uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, e1 := callconnect(s, uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, e1 := callgetgroups(n, uintptr(unsafe.Pointer(list))) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, e1 := callsetgroups(n, uintptr(unsafe.Pointer(list))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, e1 := callgetsockopt(s, level, name, uintptr(val), uintptr(unsafe.Pointer(vallen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, e1 := callsetsockopt(s, level, name, uintptr(val), vallen) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, e1 := callsocket(domain, typ, proto) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, e1 := callsocketpair(domain, typ, proto, uintptr(unsafe.Pointer(fd))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e1 := callgetpeername(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, e1 := callgetsockname(fd, uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, e1 := callrecvfrom(fd, uintptr(unsafe.Pointer(_p0)), len(p), flags, uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, e1 := callsendto(s, uintptr(unsafe.Pointer(_p0)), len(buf), flags, uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, e1 := callnrecvmsg(s, uintptr(unsafe.Pointer(msg)), flags) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, e1 := callnsendmsg(s, uintptr(unsafe.Pointer(msg)), flags) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, e1 := callmunmap(addr, length) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmadvise(uintptr(unsafe.Pointer(_p0)), len(b), advice) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmprotect(uintptr(unsafe.Pointer(_p0)), len(b), prot) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmlock(uintptr(unsafe.Pointer(_p0)), len(b)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, e1 := callmlockall(flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmsync(uintptr(unsafe.Pointer(_p0)), len(b), flags) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, e1 := callmunlock(uintptr(unsafe.Pointer(_p0)), len(b)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, e1 := callmunlockall() + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, e1 := callpipe(uintptr(unsafe.Pointer(p))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, e1 := callpoll(uintptr(unsafe.Pointer(fds)), nfds, timeout) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *Timeval, tzp *Timezone) (err error) { + _, e1 := callgettimeofday(uintptr(unsafe.Pointer(tv)), uintptr(unsafe.Pointer(tzp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, e1 := calltime(uintptr(unsafe.Pointer(t))) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, e1 := callutime(uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsystemcfg(label int) (n uint64) { + r0, _ := callgetsystemcfg(label) + n = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func umount(target string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, e1 := callumount(uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, e1 := callgetrlimit(resource, uintptr(unsafe.Pointer(rlim))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, e1 := callsetrlimit(resource, uintptr(unsafe.Pointer(rlim))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, e1 := calllseek(fd, offset, whence) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, e1 := callmmap64(addr, length, prot, flags, fd, offset) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go new file mode 100644 index 0000000000..d32a84cae2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go @@ -0,0 +1,1199 @@ +// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build aix && ppc64 && gc +// +build aix,ppc64,gc + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_utimes utimes "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_utimensat utimensat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getcwd getcwd "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_accept accept "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getdirent getdirent "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_wait4 wait4 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ioctl ioctl "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fcntl fcntl "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fsync_range fsync_range "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_acct acct "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_chdir chdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_chroot chroot "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_close close "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_dup dup "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_exit exit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_faccessat faccessat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchdir fchdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchmod fchmod "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchownat fchownat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpgid getpgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpid getpid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getppid getppid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpriority getpriority "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getrusage getrusage "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsid getsid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_kill kill "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_syslog syslog "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkdir mkdir "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mknod mknod "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mknodat mknodat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_open64 open64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_openat openat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_read read "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_readlink readlink "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_renameat renameat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setdomainname setdomainname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sethostname sethostname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setpgid setpgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setsid setsid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setuid setuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setgid setgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setpriority setpriority "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_statx statx "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sync sync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_times times "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_umask umask "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_uname uname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_unlink unlink "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ustat ustat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_write write "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_dup2 dup2 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_posix_fadvise64 posix_fadvise64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fchown fchown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstat fstat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstatat fstatat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getegid getegid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_geteuid geteuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getgid getgid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getuid getuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lchown lchown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_listen listen "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lstat lstat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pause pause "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pread64 pread64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pwrite64 pwrite64 "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_select select "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pselect pselect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setregid setregid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setreuid setreuid "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_shutdown shutdown "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_splice splice "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_stat stat "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_statfs statfs "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_truncate truncate "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_bind bind "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_connect connect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getgroups getgroups "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setgroups setgroups "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_socket socket "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_socketpair socketpair "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getpeername getpeername "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsockname getsockname "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_sendto sendto "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nrecvmsg nrecvmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_nsendmsg nsendmsg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munmap munmap "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_madvise madvise "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mprotect mprotect "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mlock mlock "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mlockall mlockall "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_msync msync "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munlock munlock "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_munlockall munlockall "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_pipe pipe "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_poll poll "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_time time "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_utime utime "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getsystemcfg getsystemcfg "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_umount umount "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_lseek lseek "libc.a/shr_64.o" +//go:cgo_import_dynamic libc_mmap64 mmap64 "libc.a/shr_64.o" + +//go:linkname libc_utimes libc_utimes +//go:linkname libc_utimensat libc_utimensat +//go:linkname libc_getcwd libc_getcwd +//go:linkname libc_accept libc_accept +//go:linkname libc_getdirent libc_getdirent +//go:linkname libc_wait4 libc_wait4 +//go:linkname libc_ioctl libc_ioctl +//go:linkname libc_fcntl libc_fcntl +//go:linkname libc_fsync_range libc_fsync_range +//go:linkname libc_acct libc_acct +//go:linkname libc_chdir libc_chdir +//go:linkname libc_chroot libc_chroot +//go:linkname libc_close libc_close +//go:linkname libc_dup libc_dup +//go:linkname libc_exit libc_exit +//go:linkname libc_faccessat libc_faccessat +//go:linkname libc_fchdir libc_fchdir +//go:linkname libc_fchmod libc_fchmod +//go:linkname libc_fchmodat libc_fchmodat +//go:linkname libc_fchownat libc_fchownat +//go:linkname libc_fdatasync libc_fdatasync +//go:linkname libc_getpgid libc_getpgid +//go:linkname libc_getpgrp libc_getpgrp +//go:linkname libc_getpid libc_getpid +//go:linkname libc_getppid libc_getppid +//go:linkname libc_getpriority libc_getpriority +//go:linkname libc_getrusage libc_getrusage +//go:linkname libc_getsid libc_getsid +//go:linkname libc_kill libc_kill +//go:linkname libc_syslog libc_syslog +//go:linkname libc_mkdir libc_mkdir +//go:linkname libc_mkdirat libc_mkdirat +//go:linkname libc_mkfifo libc_mkfifo +//go:linkname libc_mknod libc_mknod +//go:linkname libc_mknodat libc_mknodat +//go:linkname libc_nanosleep libc_nanosleep +//go:linkname libc_open64 libc_open64 +//go:linkname libc_openat libc_openat +//go:linkname libc_read libc_read +//go:linkname libc_readlink libc_readlink +//go:linkname libc_renameat libc_renameat +//go:linkname libc_setdomainname libc_setdomainname +//go:linkname libc_sethostname libc_sethostname +//go:linkname libc_setpgid libc_setpgid +//go:linkname libc_setsid libc_setsid +//go:linkname libc_settimeofday libc_settimeofday +//go:linkname libc_setuid libc_setuid +//go:linkname libc_setgid libc_setgid +//go:linkname libc_setpriority libc_setpriority +//go:linkname libc_statx libc_statx +//go:linkname libc_sync libc_sync +//go:linkname libc_times libc_times +//go:linkname libc_umask libc_umask +//go:linkname libc_uname libc_uname +//go:linkname libc_unlink libc_unlink +//go:linkname libc_unlinkat libc_unlinkat +//go:linkname libc_ustat libc_ustat +//go:linkname libc_write libc_write +//go:linkname libc_dup2 libc_dup2 +//go:linkname libc_posix_fadvise64 libc_posix_fadvise64 +//go:linkname libc_fchown libc_fchown +//go:linkname libc_fstat libc_fstat +//go:linkname libc_fstatat libc_fstatat +//go:linkname libc_fstatfs libc_fstatfs +//go:linkname libc_ftruncate libc_ftruncate +//go:linkname libc_getegid libc_getegid +//go:linkname libc_geteuid libc_geteuid +//go:linkname libc_getgid libc_getgid +//go:linkname libc_getuid libc_getuid +//go:linkname libc_lchown libc_lchown +//go:linkname libc_listen libc_listen +//go:linkname libc_lstat libc_lstat +//go:linkname libc_pause libc_pause +//go:linkname libc_pread64 libc_pread64 +//go:linkname libc_pwrite64 libc_pwrite64 +//go:linkname libc_select libc_select +//go:linkname libc_pselect libc_pselect +//go:linkname libc_setregid libc_setregid +//go:linkname libc_setreuid libc_setreuid +//go:linkname libc_shutdown libc_shutdown +//go:linkname libc_splice libc_splice +//go:linkname libc_stat libc_stat +//go:linkname libc_statfs libc_statfs +//go:linkname libc_truncate libc_truncate +//go:linkname libc_bind libc_bind +//go:linkname libc_connect libc_connect +//go:linkname libc_getgroups libc_getgroups +//go:linkname libc_setgroups libc_setgroups +//go:linkname libc_getsockopt libc_getsockopt +//go:linkname libc_setsockopt libc_setsockopt +//go:linkname libc_socket libc_socket +//go:linkname libc_socketpair libc_socketpair +//go:linkname libc_getpeername libc_getpeername +//go:linkname libc_getsockname libc_getsockname +//go:linkname libc_recvfrom libc_recvfrom +//go:linkname libc_sendto libc_sendto +//go:linkname libc_nrecvmsg libc_nrecvmsg +//go:linkname libc_nsendmsg libc_nsendmsg +//go:linkname libc_munmap libc_munmap +//go:linkname libc_madvise libc_madvise +//go:linkname libc_mprotect libc_mprotect +//go:linkname libc_mlock libc_mlock +//go:linkname libc_mlockall libc_mlockall +//go:linkname libc_msync libc_msync +//go:linkname libc_munlock libc_munlock +//go:linkname libc_munlockall libc_munlockall +//go:linkname libc_pipe libc_pipe +//go:linkname libc_poll libc_poll +//go:linkname libc_gettimeofday libc_gettimeofday +//go:linkname libc_time libc_time +//go:linkname libc_utime libc_utime +//go:linkname libc_getsystemcfg libc_getsystemcfg +//go:linkname libc_umount libc_umount +//go:linkname libc_getrlimit libc_getrlimit +//go:linkname libc_setrlimit libc_setrlimit +//go:linkname libc_lseek libc_lseek +//go:linkname libc_mmap64 libc_mmap64 + +type syscallFunc uintptr + +var ( + libc_utimes, + libc_utimensat, + libc_getcwd, + libc_accept, + libc_getdirent, + libc_wait4, + libc_ioctl, + libc_fcntl, + libc_fsync_range, + libc_acct, + libc_chdir, + libc_chroot, + libc_close, + libc_dup, + libc_exit, + libc_faccessat, + libc_fchdir, + libc_fchmod, + libc_fchmodat, + libc_fchownat, + libc_fdatasync, + libc_getpgid, + libc_getpgrp, + libc_getpid, + libc_getppid, + libc_getpriority, + libc_getrusage, + libc_getsid, + libc_kill, + libc_syslog, + libc_mkdir, + libc_mkdirat, + libc_mkfifo, + libc_mknod, + libc_mknodat, + libc_nanosleep, + libc_open64, + libc_openat, + libc_read, + libc_readlink, + libc_renameat, + libc_setdomainname, + libc_sethostname, + libc_setpgid, + libc_setsid, + libc_settimeofday, + libc_setuid, + libc_setgid, + libc_setpriority, + libc_statx, + libc_sync, + libc_times, + libc_umask, + libc_uname, + libc_unlink, + libc_unlinkat, + libc_ustat, + libc_write, + libc_dup2, + libc_posix_fadvise64, + libc_fchown, + libc_fstat, + libc_fstatat, + libc_fstatfs, + libc_ftruncate, + libc_getegid, + libc_geteuid, + libc_getgid, + libc_getuid, + libc_lchown, + libc_listen, + libc_lstat, + libc_pause, + libc_pread64, + libc_pwrite64, + libc_select, + libc_pselect, + libc_setregid, + libc_setreuid, + libc_shutdown, + libc_splice, + libc_stat, + libc_statfs, + libc_truncate, + libc_bind, + libc_connect, + libc_getgroups, + libc_setgroups, + libc_getsockopt, + libc_setsockopt, + libc_socket, + libc_socketpair, + libc_getpeername, + libc_getsockname, + libc_recvfrom, + libc_sendto, + libc_nrecvmsg, + libc_nsendmsg, + libc_munmap, + libc_madvise, + libc_mprotect, + libc_mlock, + libc_mlockall, + libc_msync, + libc_munlock, + libc_munlockall, + libc_pipe, + libc_poll, + libc_gettimeofday, + libc_time, + libc_utime, + libc_getsystemcfg, + libc_umount, + libc_getrlimit, + libc_setrlimit, + libc_lseek, + libc_mmap64 syscallFunc +) + +// Implemented in runtime/syscall_aix.go. +func rawSyscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) +func syscall6(trap, nargs, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err Errno) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimes)), 2, _p0, times, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utimensat)), 4, uintptr(dirfd), _p0, times, uintptr(flag), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getcwd)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_accept)), 3, uintptr(s), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getdirent)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_wait4)), 4, uintptr(pid), status, uintptr(options), rusage, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), arg, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fcntl)), 3, fd, uintptr(cmd), arg, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fsync_range)), 4, uintptr(fd), uintptr(how), uintptr(start), uintptr(length), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_acct)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chdir)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_chroot)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callclose(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_close)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup(oldfd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup)), 1, uintptr(oldfd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callexit(code int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_exit)), 1, uintptr(code), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_faccessat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchdir(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchmodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchownat)), 5, uintptr(dirfd), _p0, uintptr(uid), uintptr(gid), uintptr(flags), 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfdatasync(fd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgid(pid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgrp() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpgrp)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetppid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getppid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrusage)), 2, uintptr(who), rusage, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsid(pid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_kill)), 2, uintptr(pid), uintptr(sig), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_syslog)), 3, uintptr(typ), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdir)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkdirat)), 3, uintptr(dirfd), _p0, uintptr(mode), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mkfifo)), 2, _p0, uintptr(mode), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknod)), 3, _p0, uintptr(mode), uintptr(dev), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mknodat)), 4, uintptr(dirfd), _p0, uintptr(mode), uintptr(dev), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nanosleep)), 2, time, leftover, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_open64)), 3, _p0, uintptr(mode), uintptr(perm), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_openat)), 4, uintptr(dirfd), _p0, uintptr(flags), uintptr(mode), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_read)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_readlink)), 3, _p0, _p1, uintptr(_lenp1), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_renameat)), 4, uintptr(olddirfd), _p0, uintptr(newdirfd), _p1, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setdomainname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sethostname)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setsid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_settimeofday)), 1, tv, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetuid(uid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgid(uid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setgid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statx)), 5, uintptr(dirfd), _p0, uintptr(flags), uintptr(mask), stat, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsync() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sync)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_times)), 1, tms, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumask(mask int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_umask)), 1, uintptr(mask), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calluname(buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_uname)), 1, buf, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlink)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_unlinkat)), 3, uintptr(dirfd), _p0, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ustat)), 2, uintptr(dev), ubuf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_write)), 3, uintptr(fd), _p0, uintptr(_lenp0), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_dup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_posix_fadvise64)), 4, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstat)), 2, uintptr(fd), stat, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatat)), 4, uintptr(dirfd), _p0, stat, uintptr(flags), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_fstatfs)), 2, uintptr(fd), buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_ftruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetegid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getegid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgeteuid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_geteuid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetuid() (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getuid)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lchown)), 3, _p0, uintptr(uid), uintptr(gid), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllisten(s int, n int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_listen)), 2, uintptr(s), uintptr(n), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lstat)), 2, _p0, stat, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpause() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pause)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pread64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pwrite64)), 4, uintptr(fd), _p0, uintptr(_lenp0), uintptr(offset), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_select)), 5, uintptr(nfd), r, w, e, timeout, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_pselect)), 6, uintptr(nfd), r, w, e, timeout, sigmask) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_shutdown)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_splice)), 6, uintptr(rfd), roff, uintptr(wfd), woff, uintptr(len), uintptr(flags)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_stat)), 2, _p0, statptr, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_statfs)), 2, _p0, buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_truncate)), 2, _p0, uintptr(length), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_bind)), 3, uintptr(s), addr, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_connect)), 3, uintptr(s), addr, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getgroups)), 2, uintptr(n), list, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setgroups)), 2, uintptr(n), list, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_setsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), val, vallen, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), fd, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getpeername)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getsockname)), 3, uintptr(fd), rsa, addrlen, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_recvfrom)), 6, uintptr(fd), _p0, uintptr(_lenp0), uintptr(flags), from, fromlen) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_sendto)), 6, uintptr(s), _p0, uintptr(_lenp0), uintptr(flags), to, addrlen) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nrecvmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_nsendmsg)), 3, uintptr(s), msg, uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munmap)), 2, addr, length, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_madvise)), 3, _p0, uintptr(_lenp0), uintptr(advice), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mprotect)), 3, _p0, uintptr(_lenp0), uintptr(prot), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlockall(flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_msync)), 3, _p0, uintptr(_lenp0), uintptr(flags), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlock)), 2, _p0, uintptr(_lenp0), 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlockall() (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_munlockall)), 0, 0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpipe(p uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_pipe)), 1, p, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_poll)), 3, fds, uintptr(nfds), uintptr(timeout), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_gettimeofday)), 2, tv, tzp, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltime(t uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_time)), 1, t, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_utime)), 2, _p0, buf, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_getsystemcfg)), 1, uintptr(label), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_umount)), 1, _p0, 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_getrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1, _, e1 = rawSyscall6(uintptr(unsafe.Pointer(&libc_setrlimit)), 2, uintptr(resource), rlim, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_lseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { + r1, _, e1 = syscall6(uintptr(unsafe.Pointer(&libc_mmap64)), 6, addr, length, uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go new file mode 100644 index 0000000000..d7d8baf819 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go @@ -0,0 +1,1078 @@ +// go run mksyscall_aix_ppc64.go -aix -tags aix,ppc64 syscall_aix.go syscall_aix_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build aix && ppc64 && gccgo +// +build aix,ppc64,gccgo + +package unix + +/* +#include +int utimes(uintptr_t, uintptr_t); +int utimensat(int, uintptr_t, uintptr_t, int); +int getcwd(uintptr_t, size_t); +int accept(int, uintptr_t, uintptr_t); +int getdirent(int, uintptr_t, size_t); +int wait4(int, uintptr_t, int, uintptr_t); +int ioctl(int, int, uintptr_t); +int fcntl(uintptr_t, int, uintptr_t); +int fsync_range(int, int, long long, long long); +int acct(uintptr_t); +int chdir(uintptr_t); +int chroot(uintptr_t); +int close(int); +int dup(int); +void exit(int); +int faccessat(int, uintptr_t, unsigned int, int); +int fchdir(int); +int fchmod(int, unsigned int); +int fchmodat(int, uintptr_t, unsigned int, int); +int fchownat(int, uintptr_t, int, int, int); +int fdatasync(int); +int getpgid(int); +int getpgrp(); +int getpid(); +int getppid(); +int getpriority(int, int); +int getrusage(int, uintptr_t); +int getsid(int); +int kill(int, int); +int syslog(int, uintptr_t, size_t); +int mkdir(int, uintptr_t, unsigned int); +int mkdirat(int, uintptr_t, unsigned int); +int mkfifo(uintptr_t, unsigned int); +int mknod(uintptr_t, unsigned int, int); +int mknodat(int, uintptr_t, unsigned int, int); +int nanosleep(uintptr_t, uintptr_t); +int open64(uintptr_t, int, unsigned int); +int openat(int, uintptr_t, int, unsigned int); +int read(int, uintptr_t, size_t); +int readlink(uintptr_t, uintptr_t, size_t); +int renameat(int, uintptr_t, int, uintptr_t); +int setdomainname(uintptr_t, size_t); +int sethostname(uintptr_t, size_t); +int setpgid(int, int); +int setsid(); +int settimeofday(uintptr_t); +int setuid(int); +int setgid(int); +int setpriority(int, int, int); +int statx(int, uintptr_t, int, int, uintptr_t); +int sync(); +uintptr_t times(uintptr_t); +int umask(int); +int uname(uintptr_t); +int unlink(uintptr_t); +int unlinkat(int, uintptr_t, int); +int ustat(int, uintptr_t); +int write(int, uintptr_t, size_t); +int dup2(int, int); +int posix_fadvise64(int, long long, long long, int); +int fchown(int, int, int); +int fstat(int, uintptr_t); +int fstatat(int, uintptr_t, uintptr_t, int); +int fstatfs(int, uintptr_t); +int ftruncate(int, long long); +int getegid(); +int geteuid(); +int getgid(); +int getuid(); +int lchown(uintptr_t, int, int); +int listen(int, int); +int lstat(uintptr_t, uintptr_t); +int pause(); +int pread64(int, uintptr_t, size_t, long long); +int pwrite64(int, uintptr_t, size_t, long long); +#define c_select select +int select(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int pselect(int, uintptr_t, uintptr_t, uintptr_t, uintptr_t, uintptr_t); +int setregid(int, int); +int setreuid(int, int); +int shutdown(int, int); +long long splice(int, uintptr_t, int, uintptr_t, int, int); +int stat(uintptr_t, uintptr_t); +int statfs(uintptr_t, uintptr_t); +int truncate(uintptr_t, long long); +int bind(int, uintptr_t, uintptr_t); +int connect(int, uintptr_t, uintptr_t); +int getgroups(int, uintptr_t); +int setgroups(int, uintptr_t); +int getsockopt(int, int, int, uintptr_t, uintptr_t); +int setsockopt(int, int, int, uintptr_t, uintptr_t); +int socket(int, int, int); +int socketpair(int, int, int, uintptr_t); +int getpeername(int, uintptr_t, uintptr_t); +int getsockname(int, uintptr_t, uintptr_t); +int recvfrom(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int sendto(int, uintptr_t, size_t, int, uintptr_t, uintptr_t); +int nrecvmsg(int, uintptr_t, int); +int nsendmsg(int, uintptr_t, int); +int munmap(uintptr_t, uintptr_t); +int madvise(uintptr_t, size_t, int); +int mprotect(uintptr_t, size_t, int); +int mlock(uintptr_t, size_t); +int mlockall(int); +int msync(uintptr_t, size_t, int); +int munlock(uintptr_t, size_t); +int munlockall(); +int pipe(uintptr_t); +int poll(uintptr_t, int, int); +int gettimeofday(uintptr_t, uintptr_t); +int time(uintptr_t); +int utime(uintptr_t, uintptr_t); +unsigned long long getsystemcfg(int); +int umount(uintptr_t); +int getrlimit(int, uintptr_t); +int setrlimit(int, uintptr_t); +long long lseek(int, long long, int); +uintptr_t mmap64(uintptr_t, uintptr_t, int, int, int, long long); + +*/ +import "C" +import ( + "syscall" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimes(_p0 uintptr, times uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utimes(C.uintptr_t(_p0), C.uintptr_t(times))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutimensat(dirfd int, _p0 uintptr, times uintptr, flag int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utimensat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(times), C.int(flag))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetcwd(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getcwd(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callaccept(s int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.accept(C.int(s), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetdirent(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getdirent(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwait4(pid int, status uintptr, options int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.wait4(C.int(pid), C.uintptr_t(status), C.int(options), C.uintptr_t(rusage))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl(fd int, req int, arg uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(arg))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callioctl_ptr(fd int, req int, arg unsafe.Pointer) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ioctl(C.int(fd), C.int(req), C.uintptr_t(uintptr(arg)))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfcntl(fd uintptr, cmd int, arg uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fcntl(C.uintptr_t(fd), C.int(cmd), C.uintptr_t(arg))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfsync_range(fd int, how int, start int64, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fsync_range(C.int(fd), C.int(how), C.longlong(start), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callacct(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.acct(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchdir(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.chdir(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callchroot(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.chroot(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callclose(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.close(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup(oldfd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.dup(C.int(oldfd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callexit(code int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.exit(C.int(code))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfaccessat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.faccessat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchdir(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchdir(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmod(fd int, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchmod(C.int(fd), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchmodat(dirfd int, _p0 uintptr, mode uint32, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchmodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchownat(dirfd int, _p0 uintptr, uid int, gid int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchownat(C.int(dirfd), C.uintptr_t(_p0), C.int(uid), C.int(gid), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfdatasync(fd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fdatasync(C.int(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgid(pid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpgid(C.int(pid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpgrp() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpgrp()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetppid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getppid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpriority(which int, who int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpriority(C.int(which), C.int(who))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrusage(who int, rusage uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getrusage(C.int(who), C.uintptr_t(rusage))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsid(pid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsid(C.int(pid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callkill(pid int, sig int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.kill(C.int(pid), C.int(sig))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsyslog(typ int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.syslog(C.int(typ), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdir(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkdir(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkdirat(dirfd int, _p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkdirat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmkfifo(_p0 uintptr, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mkfifo(C.uintptr_t(_p0), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknod(_p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mknod(C.uintptr_t(_p0), C.uint(mode), C.int(dev))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmknodat(dirfd int, _p0 uintptr, mode uint32, dev int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mknodat(C.int(dirfd), C.uintptr_t(_p0), C.uint(mode), C.int(dev))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnanosleep(time uintptr, leftover uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nanosleep(C.uintptr_t(time), C.uintptr_t(leftover))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopen64(_p0 uintptr, mode int, perm uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.open64(C.uintptr_t(_p0), C.int(mode), C.uint(perm))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callopenat(dirfd int, _p0 uintptr, flags int, mode uint32) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.openat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.uint(mode))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callread(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.read(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callreadlink(_p0 uintptr, _p1 uintptr, _lenp1 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.readlink(C.uintptr_t(_p0), C.uintptr_t(_p1), C.size_t(_lenp1))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrenameat(olddirfd int, _p0 uintptr, newdirfd int, _p1 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.renameat(C.int(olddirfd), C.uintptr_t(_p0), C.int(newdirfd), C.uintptr_t(_p1))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetdomainname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setdomainname(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsethostname(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sethostname(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpgid(pid int, pgid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setpgid(C.int(pid), C.int(pgid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setsid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsettimeofday(tv uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.settimeofday(C.uintptr_t(tv))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetuid(uid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setuid(C.int(uid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgid(uid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setgid(C.int(uid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetpriority(which int, who int, prio int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setpriority(C.int(which), C.int(who), C.int(prio))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatx(dirfd int, _p0 uintptr, flags int, mask int, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.statx(C.int(dirfd), C.uintptr_t(_p0), C.int(flags), C.int(mask), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsync() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sync()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltimes(tms uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.times(C.uintptr_t(tms))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumask(mask int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.umask(C.int(mask))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calluname(buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.uname(C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlink(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.unlink(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callunlinkat(dirfd int, _p0 uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.unlinkat(C.int(dirfd), C.uintptr_t(_p0), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callustat(dev int, ubuf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ustat(C.int(dev), C.uintptr_t(ubuf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callwrite(fd int, _p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.write(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calldup2(oldfd int, newfd int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.dup2(C.int(oldfd), C.int(newfd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callposix_fadvise64(fd int, offset int64, length int64, advice int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.posix_fadvise64(C.int(fd), C.longlong(offset), C.longlong(length), C.int(advice))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfchown(fd int, uid int, gid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fchown(C.int(fd), C.int(uid), C.int(gid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstat(fd int, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstat(C.int(fd), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatat(dirfd int, _p0 uintptr, stat uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstatat(C.int(dirfd), C.uintptr_t(_p0), C.uintptr_t(stat), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callfstatfs(fd int, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.fstatfs(C.int(fd), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callftruncate(fd int, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.ftruncate(C.int(fd), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetegid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getegid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgeteuid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.geteuid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getgid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetuid() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getuid()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllchown(_p0 uintptr, uid int, gid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lchown(C.uintptr_t(_p0), C.int(uid), C.int(gid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllisten(s int, n int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.listen(C.int(s), C.int(n))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllstat(_p0 uintptr, stat uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lstat(C.uintptr_t(_p0), C.uintptr_t(stat))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpause() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pause()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpread64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pread64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpwrite64(fd int, _p0 uintptr, _lenp0 int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pwrite64(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.c_select(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpselect(nfd int, r uintptr, w uintptr, e uintptr, timeout uintptr, sigmask uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pselect(C.int(nfd), C.uintptr_t(r), C.uintptr_t(w), C.uintptr_t(e), C.uintptr_t(timeout), C.uintptr_t(sigmask))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetregid(rgid int, egid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setregid(C.int(rgid), C.int(egid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetreuid(ruid int, euid int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setreuid(C.int(ruid), C.int(euid))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callshutdown(fd int, how int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.shutdown(C.int(fd), C.int(how))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsplice(rfd int, roff uintptr, wfd int, woff uintptr, len int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.splice(C.int(rfd), C.uintptr_t(roff), C.int(wfd), C.uintptr_t(woff), C.int(len), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstat(_p0 uintptr, statptr uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.stat(C.uintptr_t(_p0), C.uintptr_t(statptr))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callstatfs(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.statfs(C.uintptr_t(_p0), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltruncate(_p0 uintptr, length int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.truncate(C.uintptr_t(_p0), C.longlong(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callbind(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.bind(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callconnect(s int, addr uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.connect(C.int(s), C.uintptr_t(addr), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getgroups(C.int(n), C.uintptr_t(list))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetgroups(n int, list uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setgroups(C.int(n), C.uintptr_t(list))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetsockopt(s int, level int, name int, val uintptr, vallen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setsockopt(C.int(s), C.int(level), C.int(name), C.uintptr_t(val), C.uintptr_t(vallen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocket(domain int, typ int, proto int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.socket(C.int(domain), C.int(typ), C.int(proto))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsocketpair(domain int, typ int, proto int, fd uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.socketpair(C.int(domain), C.int(typ), C.int(proto), C.uintptr_t(fd))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetpeername(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getpeername(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsockname(fd int, rsa uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsockname(C.int(fd), C.uintptr_t(rsa), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callrecvfrom(fd int, _p0 uintptr, _lenp0 int, flags int, from uintptr, fromlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.recvfrom(C.int(fd), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(from), C.uintptr_t(fromlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsendto(s int, _p0 uintptr, _lenp0 int, flags int, to uintptr, addrlen uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.sendto(C.int(s), C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags), C.uintptr_t(to), C.uintptr_t(addrlen))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnrecvmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nrecvmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callnsendmsg(s int, msg uintptr, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.nsendmsg(C.int(s), C.uintptr_t(msg), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunmap(addr uintptr, length uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munmap(C.uintptr_t(addr), C.uintptr_t(length))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmadvise(_p0 uintptr, _lenp0 int, advice int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.madvise(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(advice))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmprotect(_p0 uintptr, _lenp0 int, prot int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mprotect(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(prot))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mlock(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmlockall(flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mlockall(C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmsync(_p0 uintptr, _lenp0 int, flags int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.msync(C.uintptr_t(_p0), C.size_t(_lenp0), C.int(flags))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlock(_p0 uintptr, _lenp0 int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munlock(C.uintptr_t(_p0), C.size_t(_lenp0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmunlockall() (r1 uintptr, e1 Errno) { + r1 = uintptr(C.munlockall()) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpipe(p uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.pipe(C.uintptr_t(p))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callpoll(fds uintptr, nfds int, timeout int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.poll(C.uintptr_t(fds), C.int(nfds), C.int(timeout))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgettimeofday(tv uintptr, tzp uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.gettimeofday(C.uintptr_t(tv), C.uintptr_t(tzp))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calltime(t uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.time(C.uintptr_t(t))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callutime(_p0 uintptr, buf uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.utime(C.uintptr_t(_p0), C.uintptr_t(buf))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetsystemcfg(label int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getsystemcfg(C.int(label))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callumount(_p0 uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.umount(C.uintptr_t(_p0))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callgetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.getrlimit(C.int(resource), C.uintptr_t(rlim))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callsetrlimit(resource int, rlim uintptr) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.setrlimit(C.int(resource), C.uintptr_t(rlim))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func calllseek(fd int, offset int64, whence int) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.lseek(C.int(fd), C.longlong(offset), C.int(whence))) + e1 = syscall.GetErrno() + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func callmmap64(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (r1 uintptr, e1 Errno) { + r1 = uintptr(C.mmap64(C.uintptr_t(addr), C.uintptr_t(length), C.int(prot), C.int(flags), C.int(fd), C.longlong(offset))) + e1 = syscall.GetErrno() + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go new file mode 100644 index 0000000000..a29ffdd566 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go @@ -0,0 +1,2561 @@ +// go run mksyscall.go -tags darwin,amd64 syscall_bsd.go syscall_darwin.go syscall_darwin_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build darwin && amd64 +// +build darwin,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_closedir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +var libc_readdir_r_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fgetxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsetxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_removexattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fremovexattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flistxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendfile_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + result = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmdt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmget_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefile_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_exchangedata_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fclonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) + size = int(r0) + return +} + +var libc_getdtablesize_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setprivexec_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_undelete_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat64 fstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat64 fstatat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs64_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs64 fstatfs64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat64_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat64 getfsstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat64 lstat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ptrace1Ptr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ptrace_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat64 stat64 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs64_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs64_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs64 statfs64 "/usr/lib/libSystem.B.dylib" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s new file mode 100644 index 0000000000..95fe4c0eb9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s @@ -0,0 +1,904 @@ +// go run mkasm.go darwin amd64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) + +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) + +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) + +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) + +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) + +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) + +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) + +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) + +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) + +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) + +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) + +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) + +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) + +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) + +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) + +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) + +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) + +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) + +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) + +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) + +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) + +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) + +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) + +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) + +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) + +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) + +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) + +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) + +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) + +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) + +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) + +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) + +TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) + +GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) + +TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) + +GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) + +TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) + +GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) + +TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) + +GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) + +TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) + +GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) + +TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) + +GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) + +TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) + +GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) + +TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) + +GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) + +TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) + +GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) + +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) + +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) + +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) + +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) + +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) + +GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) + +TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmat(SB) + +GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) + +TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmctl(SB) + +GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) + +TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmdt(SB) + +GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) + +TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmget(SB) + +GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) + +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) + +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) + +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) + +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) + +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) + +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) + +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) + +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) + +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) + +GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) + +TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) + +GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) + +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) + +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) + +GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) + +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) + +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) + +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) + +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) + +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) + +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) + +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) + +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) + +GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) + +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) + +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) + +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) + +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) + +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) + +GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) + +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) + +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) + +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) + +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) + +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) + +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) + +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) + +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) + +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) + +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) + +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) + +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) + +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) + +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) + +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) + +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) + +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) + +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) + +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) + +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) + +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) + +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) + +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) + +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) + +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) + +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) + +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) + +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) + +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) + +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) + +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) + +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) + +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) + +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) + +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) + +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) + +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) + +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) + +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) + +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) + +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) + +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) + +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) + +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) + +GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) + +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) + +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) + +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) + +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) + +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) + +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) + +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) + +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) + +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) + +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) + +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) + +GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 +DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) + +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) + +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) + +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) + +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) + +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) + +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_fstat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat64(SB) + +GLOBL ·libc_fstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat64_trampoline_addr(SB)/8, $libc_fstat64_trampoline<>(SB) + +TEXT libc_fstatat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat64(SB) + +GLOBL ·libc_fstatat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat64_trampoline_addr(SB)/8, $libc_fstatat64_trampoline<>(SB) + +TEXT libc_fstatfs64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs64(SB) + +GLOBL ·libc_fstatfs64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs64_trampoline_addr(SB)/8, $libc_fstatfs64_trampoline<>(SB) + +TEXT libc_getfsstat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat64(SB) + +GLOBL ·libc_getfsstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat64_trampoline_addr(SB)/8, $libc_getfsstat64_trampoline<>(SB) + +TEXT libc_lstat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat64(SB) + +GLOBL ·libc_lstat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat64_trampoline_addr(SB)/8, $libc_lstat64_trampoline<>(SB) + +TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) + +GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) + +TEXT libc_stat64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat64(SB) + +GLOBL ·libc_stat64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat64_trampoline_addr(SB)/8, $libc_stat64_trampoline<>(SB) + +TEXT libc_statfs64_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs64(SB) + +GLOBL ·libc_statfs64_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs64_trampoline_addr(SB)/8, $libc_statfs64_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go new file mode 100644 index 0000000000..2fd4590bb7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go @@ -0,0 +1,2561 @@ +// go run mksyscall.go -tags darwin,arm64 syscall_bsd.go syscall_darwin.go syscall_darwin_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build darwin && arm64 +// +build darwin,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func closedir(dir uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_closedir_trampoline_addr, uintptr(dir), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_closedir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_closedir closedir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readdir_r(dir uintptr, entry *Dirent, result **Dirent) (res Errno) { + r0, _, _ := syscall_syscall(libc_readdir_r_trampoline_addr, uintptr(dir), uintptr(unsafe.Pointer(entry)), uintptr(unsafe.Pointer(result))) + res = Errno(r0) + return +} + +var libc_readdir_r_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readdir_r readdir_r "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe_trampoline_addr, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe pipe "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getxattr(path string, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_getxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getxattr getxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fgetxattr(fd int, attr string, dest *byte, size int, position uint32, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_fgetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(position), uintptr(options)) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fgetxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fgetxattr fgetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setxattr(path string, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_setxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setxattr setxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fsetxattr(fd int, attr string, data *byte, size int, position uint32, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fsetxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(data)), uintptr(size), uintptr(position), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsetxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsetxattr fsetxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func removexattr(path string, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_removexattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_removexattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_removexattr removexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fremovexattr(fd int, attr string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_fremovexattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fremovexattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fremovexattr fremovexattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func listxattr(path string, dest *byte, size int, options int) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_listxattr_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listxattr listxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func flistxattr(fd int, dest *byte, size int, options int) (sz int, err error) { + r0, _, e1 := syscall_syscall6(libc_flistxattr_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(dest)), uintptr(size), uintptr(options), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flistxattr_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flistxattr flistxattr "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fcntl_trampoline_addr, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fcntl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fcntl fcntl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kill(pid int, signum int, posix int) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), uintptr(posix)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(infd int, outfd int, offset int64, len *int64, hdtr unsafe.Pointer, flags int) (err error) { + _, _, e1 := syscall_syscall6(libc_sendfile_trampoline_addr, uintptr(infd), uintptr(outfd), uintptr(offset), uintptr(unsafe.Pointer(len)), uintptr(hdtr), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendfile_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendfile sendfile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall(libc_shmat_trampoline_addr, uintptr(id), uintptr(addr), uintptr(flag)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmat shmat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + r0, _, e1 := syscall_syscall(libc_shmctl_trampoline_addr, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + result = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmctl shmctl "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_shmdt_trampoline_addr, uintptr(addr), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmdt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmdt shmdt "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + r0, _, e1 := syscall_syscall(libc_shmget_trampoline_addr, uintptr(key), uintptr(size), uintptr(flag)) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shmget_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shmget shmget "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefile(src string, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_clonefile_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefile_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefile clonefile "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Clonefileat(srcDirfd int, src string, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(src) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_clonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clonefileat clonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exchangedata(path1 string, path2 string, options int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path1) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(path2) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_exchangedata_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(options)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_exchangedata_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exchangedata exchangedata "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fclonefileat(srcDirfd int, dstDirfd int, dst string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(dst) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fclonefileat_trampoline_addr, uintptr(srcDirfd), uintptr(dstDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fclonefileat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fclonefileat fclonefileat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := syscall_syscall(libc_getdtablesize_trampoline_addr, 0, 0, 0) + size = int(r0) + return +} + +var libc_getdtablesize_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdtablesize getdtablesize "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_rawSyscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mount(fsType string, dir string, flags int, data unsafe.Pointer) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(dir) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(flags), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mount mount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_syscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setprivexec(flag int) (err error) { + _, _, e1 := syscall_syscall(libc_setprivexec_trampoline_addr, uintptr(flag), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setprivexec_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setprivexec setprivexec "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_undelete_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_undelete_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_undelete undelete "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getfsstat(buf unsafe.Pointer, size uintptr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_getfsstat_trampoline_addr, uintptr(buf), uintptr(size), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getfsstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getfsstat getfsstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace1(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ptrace1Ptr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall6(libc_ptrace_trampoline_addr, uintptr(request), uintptr(pid), addr, uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ptrace_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ptrace ptrace "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "/usr/lib/libSystem.B.dylib" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "/usr/lib/libSystem.B.dylib" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s new file mode 100644 index 0000000000..efa5b4c987 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s @@ -0,0 +1,904 @@ +// go run mkasm.go darwin arm64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_fdopendir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fdopendir(SB) + +GLOBL ·libc_fdopendir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fdopendir_trampoline_addr(SB)/8, $libc_fdopendir_trampoline<>(SB) + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) + +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) + +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) + +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) + +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) + +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) + +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) + +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) + +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) + +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) + +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) + +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) + +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) + +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) + +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) + +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) + +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) + +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) + +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) + +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) + +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) + +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) + +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) + +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) + +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) + +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) + +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) + +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) + +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_closedir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_closedir(SB) + +GLOBL ·libc_closedir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_closedir_trampoline_addr(SB)/8, $libc_closedir_trampoline<>(SB) + +TEXT libc_readdir_r_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readdir_r(SB) + +GLOBL ·libc_readdir_r_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readdir_r_trampoline_addr(SB)/8, $libc_readdir_r_trampoline<>(SB) + +TEXT libc_pipe_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe(SB) + +GLOBL ·libc_pipe_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe_trampoline_addr(SB)/8, $libc_pipe_trampoline<>(SB) + +TEXT libc_getxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getxattr(SB) + +GLOBL ·libc_getxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getxattr_trampoline_addr(SB)/8, $libc_getxattr_trampoline<>(SB) + +TEXT libc_fgetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fgetxattr(SB) + +GLOBL ·libc_fgetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fgetxattr_trampoline_addr(SB)/8, $libc_fgetxattr_trampoline<>(SB) + +TEXT libc_setxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setxattr(SB) + +GLOBL ·libc_setxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setxattr_trampoline_addr(SB)/8, $libc_setxattr_trampoline<>(SB) + +TEXT libc_fsetxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsetxattr(SB) + +GLOBL ·libc_fsetxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsetxattr_trampoline_addr(SB)/8, $libc_fsetxattr_trampoline<>(SB) + +TEXT libc_removexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_removexattr(SB) + +GLOBL ·libc_removexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_removexattr_trampoline_addr(SB)/8, $libc_removexattr_trampoline<>(SB) + +TEXT libc_fremovexattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fremovexattr(SB) + +GLOBL ·libc_fremovexattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fremovexattr_trampoline_addr(SB)/8, $libc_fremovexattr_trampoline<>(SB) + +TEXT libc_listxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listxattr(SB) + +GLOBL ·libc_listxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listxattr_trampoline_addr(SB)/8, $libc_listxattr_trampoline<>(SB) + +TEXT libc_flistxattr_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flistxattr(SB) + +GLOBL ·libc_flistxattr_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flistxattr_trampoline_addr(SB)/8, $libc_flistxattr_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) + +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) + +TEXT libc_fcntl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fcntl(SB) + +GLOBL ·libc_fcntl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fcntl_trampoline_addr(SB)/8, $libc_fcntl_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) + +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) + +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) + +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_sendfile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendfile(SB) + +GLOBL ·libc_sendfile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendfile_trampoline_addr(SB)/8, $libc_sendfile_trampoline<>(SB) + +TEXT libc_shmat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmat(SB) + +GLOBL ·libc_shmat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmat_trampoline_addr(SB)/8, $libc_shmat_trampoline<>(SB) + +TEXT libc_shmctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmctl(SB) + +GLOBL ·libc_shmctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmctl_trampoline_addr(SB)/8, $libc_shmctl_trampoline<>(SB) + +TEXT libc_shmdt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmdt(SB) + +GLOBL ·libc_shmdt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmdt_trampoline_addr(SB)/8, $libc_shmdt_trampoline<>(SB) + +TEXT libc_shmget_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shmget(SB) + +GLOBL ·libc_shmget_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shmget_trampoline_addr(SB)/8, $libc_shmget_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) + +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) + +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) + +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) + +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) + +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) + +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) + +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) + +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) + +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_clonefile_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefile(SB) + +GLOBL ·libc_clonefile_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefile_trampoline_addr(SB)/8, $libc_clonefile_trampoline<>(SB) + +TEXT libc_clonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clonefileat(SB) + +GLOBL ·libc_clonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clonefileat_trampoline_addr(SB)/8, $libc_clonefileat_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) + +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) + +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_exchangedata_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exchangedata(SB) + +GLOBL ·libc_exchangedata_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exchangedata_trampoline_addr(SB)/8, $libc_exchangedata_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) + +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) + +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) + +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) + +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) + +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) + +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) + +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) + +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_fclonefileat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fclonefileat(SB) + +GLOBL ·libc_fclonefileat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fclonefileat_trampoline_addr(SB)/8, $libc_fclonefileat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) + +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) + +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) + +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) + +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) + +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_getdtablesize_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdtablesize(SB) + +GLOBL ·libc_getdtablesize_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdtablesize_trampoline_addr(SB)/8, $libc_getdtablesize_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) + +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) + +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) + +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) + +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) + +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) + +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) + +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) + +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) + +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) + +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) + +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) + +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) + +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) + +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) + +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) + +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) + +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) + +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) + +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) + +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) + +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) + +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) + +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mount(SB) + +GLOBL ·libc_mount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mount_trampoline_addr(SB)/8, $libc_mount_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) + +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) + +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) + +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) + +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) + +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) + +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) + +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) + +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) + +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) + +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) + +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) + +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) + +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) + +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) + +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) + +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) + +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) + +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) + +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) + +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setprivexec_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setprivexec(SB) + +GLOBL ·libc_setprivexec_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setprivexec_trampoline_addr(SB)/8, $libc_setprivexec_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) + +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) + +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) + +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) + +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) + +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) + +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) + +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) + +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) + +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) + +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) + +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_undelete_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_undelete(SB) + +GLOBL ·libc_undelete_trampoline_addr(SB), RODATA, $8 +DATA ·libc_undelete_trampoline_addr(SB)/8, $libc_undelete_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) + +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) + +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) + +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) + +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) + +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) + +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) + +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) + +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) + +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_getfsstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getfsstat(SB) + +GLOBL ·libc_getfsstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getfsstat_trampoline_addr(SB)/8, $libc_getfsstat_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) + +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_ptrace_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ptrace(SB) + +GLOBL ·libc_ptrace_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ptrace_trampoline_addr(SB)/8, $libc_ptrace_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) + +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) + +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go new file mode 100644 index 0000000000..3b85134707 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go @@ -0,0 +1,1699 @@ +// go run mksyscall.go -dragonfly -tags dragonfly,amd64 syscall_bsd.go syscall_dragonfly.go syscall_dragonfly_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build dragonfly && amd64 +// +build dragonfly,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe() (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE, 0, 0, 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (r int, w int, err error) { + r0, r1, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + r = int(r0) + w = int(r1) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func extpread(fd int, p []byte, flags int, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EXTPREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func extpwrite(fd int, p []byte, flags int, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EXTPWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdirentries(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go new file mode 100644 index 0000000000..1129065624 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go @@ -0,0 +1,1919 @@ +// go run mksyscall.go -l32 -tags freebsd,386 syscall_bsd.go syscall_freebsd.go syscall_freebsd_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build freebsd && 386 +// +build freebsd,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), uintptr(dev>>32), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go new file mode 100644 index 0000000000..55f5abfe59 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go @@ -0,0 +1,1919 @@ +// go run mksyscall.go -tags freebsd,amd64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build freebsd && amd64 +// +build freebsd,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go new file mode 100644 index 0000000000..d39651c2b5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go @@ -0,0 +1,1919 @@ +// go run mksyscall.go -l32 -arm -tags freebsd,arm syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build freebsd && arm +// +build freebsd,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, uintptr(dev), uintptr(dev>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go new file mode 100644 index 0000000000..ddb7408680 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go @@ -0,0 +1,1919 @@ +// go run mksyscall.go -tags freebsd,arm64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build freebsd && arm64 +// +build freebsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go new file mode 100644 index 0000000000..09a53a616c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go @@ -0,0 +1,1919 @@ +// go run mksyscall.go -tags freebsd,riscv64 syscall_bsd.go syscall_freebsd.go syscall_freebsd_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build freebsd && riscv64 +// +build freebsd,riscv64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptracePtr(request int, pid int, addr unsafe.Pointer, data int) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CapEnter() (err error) { + _, _, e1 := Syscall(SYS_CAP_ENTER, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsGet(version int, fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS___CAP_RIGHTS_GET, uintptr(version), uintptr(fd), uintptr(unsafe.Pointer(rightsp))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func capRightsLimit(fd int, rightsp *CapRights) (err error) { + _, _, e1 := Syscall(SYS_CAP_RIGHTS_LIMIT, uintptr(fd), uintptr(unsafe.Pointer(rightsp)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getdirentries(fd int, buf []byte, basep *uint64) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETDIRENTRIES, uintptr(fd), uintptr(_p0), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdtablesize() (size int) { + r0, _, _ := Syscall(SYS_GETDTABLESIZE, 0, 0, 0) + size = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(fd int, path string, mode uint32, dev uint64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(fdat int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(fdat), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SETLOGIN, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESGID, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETRESUID, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Undelete(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNDELETE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(fd int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (nfd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go new file mode 100644 index 0000000000..b57c7050d7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go @@ -0,0 +1,102 @@ +// go run mksyscall_solaris.go -illumos -tags illumos,amd64 syscall_illumos.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build illumos && amd64 +// +build illumos,amd64 + +package unix + +import ( + "unsafe" +) + +//go:cgo_import_dynamic libc_readv readv "libc.so" +//go:cgo_import_dynamic libc_preadv preadv "libc.so" +//go:cgo_import_dynamic libc_writev writev "libc.so" +//go:cgo_import_dynamic libc_pwritev pwritev "libc.so" +//go:cgo_import_dynamic libc_accept4 accept4 "libsocket.so" + +//go:linkname procreadv libc_readv +//go:linkname procpreadv libc_preadv +//go:linkname procwritev libc_writev +//go:linkname procpwritev libc_pwritev +//go:linkname procaccept4 libc_accept4 + +var ( + procreadv, + procpreadv, + procwritev, + procpwritev, + procaccept4 syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procreadv)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpreadv)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwritev)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovs []Iovec, off int64) (n int, err error) { + var _p0 *Iovec + if len(iovs) > 0 { + _p0 = &iovs[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwritev)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(iovs)), uintptr(off), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept4)), 4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux.go new file mode 100644 index 0000000000..430cb24de7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux.go @@ -0,0 +1,2184 @@ +// Code generated by mkmerge; DO NOT EDIT. + +//go:build linux +// +build linux + +package unix + +import ( + "syscall" + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FanotifyInit(flags uint, event_f_flags uint) (fd int, err error) { + r0, _, e1 := Syscall(SYS_FANOTIFY_INIT, uintptr(flags), uintptr(event_f_flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fchmodat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(olddirfd int, oldpath string, newdirfd int, newpath string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openat2(dirfd int, path string, open_how *OpenHow, size int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(open_how)), uintptr(size), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PPOLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Waitid(idType int, id int, info *Siginfo, options int, rusage *Rusage) (err error) { + _, _, e1 := Syscall6(SYS_WAITID, uintptr(idType), uintptr(id), uintptr(unsafe.Pointer(info)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func KeyctlInt(cmd int, arg2 int, arg3 int, arg4 int, arg5 int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func KeyctlBuffer(cmd int, arg2 int, buf []byte, arg5 int) (ret int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(buf)), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlJoin(cmd int, arg2 string) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg2) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlSearch(cmd int, arg2 int, arg3 string, arg4 string, arg5 int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg3) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(arg4) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(arg5), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlIOV(cmd int, arg2 int, payload []Iovec, arg5 int) (err error) { + var _p0 unsafe.Pointer + if len(payload) > 0 { + _p0 = unsafe.Pointer(&payload[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(_p0), uintptr(len(payload)), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlDH(cmd int, arg2 *KeyctlDHParams, buf []byte) (ret int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(unsafe.Pointer(arg2)), uintptr(_p0), uintptr(len(buf)), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlRestrictKeyringByType(cmd int, arg2 int, keyType string, restriction string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(restriction) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func keyctlRestrictKeyring(cmd int, arg2 int) (err error) { + _, _, e1 := Syscall(SYS_KEYCTL, uintptr(cmd), uintptr(arg2), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptrace(request int, pid int, addr uintptr, data uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ptracePtr(request int, pid int, addr uintptr, data unsafe.Pointer) (err error) { + _, _, e1 := Syscall6(SYS_PTRACE, uintptr(request), uintptr(pid), uintptr(addr), uintptr(data), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func reboot(magic1 uint, magic2 uint, cmd int, arg string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(arg) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_REBOOT, uintptr(magic1), uintptr(magic2), uintptr(cmd), uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount(source string, target string, fstype string, flags uintptr, data *byte) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(source) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(target) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(flags), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mountSetattr(dirfd int, pathname string, flags uint, attr *MountAttr, size uintptr) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOUNT_SETATTR, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(unsafe.Pointer(attr)), uintptr(size), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Acct(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func AddKey(keyType string, description string, payload []byte, ringid int) (id int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(description) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(payload) > 0 { + _p2 = unsafe.Pointer(&payload[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_ADD_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(payload)), uintptr(ringid), 0) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtimex(buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_ADJTIMEX, uintptr(unsafe.Pointer(buf)), 0, 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capget(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPGET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Capset(hdr *CapUserHeader, data *CapUserData) (err error) { + _, _, e1 := RawSyscall(SYS_CAPSET, uintptr(unsafe.Pointer(hdr)), uintptr(unsafe.Pointer(data)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockAdjtime(clockid int32, buf *Timex) (state int, err error) { + r0, _, e1 := Syscall(SYS_CLOCK_ADJTIME, uintptr(clockid), uintptr(unsafe.Pointer(buf)), 0) + state = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGetres(clockid int32, res *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETRES, uintptr(clockid), uintptr(unsafe.Pointer(res)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockNanosleep(clockid int32, flags int, request *Timespec, remain *Timespec) (err error) { + _, _, e1 := Syscall6(SYS_CLOCK_NANOSLEEP, uintptr(clockid), uintptr(flags), uintptr(unsafe.Pointer(request)), uintptr(unsafe.Pointer(remain)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CloseRange(first uint, last uint, flags uint) (err error) { + _, _, e1 := Syscall(SYS_CLOSE_RANGE, uintptr(first), uintptr(last), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func CopyFileRange(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_COPY_FILE_RANGE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func DeleteModule(name string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_DELETE_MODULE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(oldfd int, newfd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(oldfd), uintptr(newfd), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCreate1(flag int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_EPOLL_CREATE1, uintptr(flag), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollCtl(epfd int, op int, fd int, event *EpollEvent) (err error) { + _, _, e1 := RawSyscall6(SYS_EPOLL_CTL, uintptr(epfd), uintptr(op), uintptr(fd), uintptr(unsafe.Pointer(event)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Eventfd(initval uint, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_EVENTFD2, uintptr(initval), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + SyscallNoError(SYS_EXIT_GROUP, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FDATASYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fgetxattr(fd int, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_FGETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FinitModule(fd int, params string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FINIT_MODULE, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flistxattr(fd int, dest []byte) (sz int, err error) { + var _p0 unsafe.Pointer + if len(dest) > 0 { + _p0 = unsafe.Pointer(&dest[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_FLISTXATTR, uintptr(fd), uintptr(_p0), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fremovexattr(fd int, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FREMOVEXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsetxattr(fd int, attr string, dest []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_FSETXATTR, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsmount(fd int, flags int, mountAttrs int) (fsfd int, err error) { + r0, _, e1 := Syscall(SYS_FSMOUNT, uintptr(fd), uintptr(flags), uintptr(mountAttrs)) + fsfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsopen(fsName string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fsName) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_FSOPEN, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fspick(dirfd int, pathName string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathName) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_FSPICK, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS64, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _ := RawSyscallNoError(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _ := RawSyscallNoError(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrandom(buf []byte, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETRANDOM, uintptr(_p0), uintptr(len(buf)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettid() (tid int) { + r0, _ := RawSyscallNoError(SYS_GETTID, 0, 0, 0) + tid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_GETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InitModule(moduleImage []byte, params string) (err error) { + var _p0 unsafe.Pointer + if len(moduleImage) > 0 { + _p0 = unsafe.Pointer(&moduleImage[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 *byte + _p1, err = BytePtrFromString(params) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_INIT_MODULE, uintptr(_p0), uintptr(len(moduleImage)), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyAddWatch(fd int, pathname string, mask uint32) (watchdesc int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_INOTIFY_ADD_WATCH, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(mask)) + watchdesc = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyInit1(flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_INIT1, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func InotifyRmWatch(fd int, watchdesc uint32) (success int, err error) { + r0, _, e1 := RawSyscall(SYS_INOTIFY_RM_WATCH, uintptr(fd), uintptr(watchdesc), 0) + success = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Klogctl(typ int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_SYSLOG, uintptr(typ), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lgetxattr(path string, attr string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(dest) > 0 { + _p2 = unsafe.Pointer(&dest[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_LGETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(dest)), 0, 0) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Llistxattr(path string, dest []byte) (sz int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(dest) > 0 { + _p1 = unsafe.Pointer(&dest[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_LLISTXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(dest))) + sz = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lremovexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LREMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lsetxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_LSETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MemfdCreate(name string, flags int) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_MEMFD_CREATE, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MoveMount(fromDirfd int, fromPathName string, toDirfd int, toPathName string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fromPathName) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(toPathName) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MOVE_MOUNT, uintptr(fromDirfd), uintptr(unsafe.Pointer(_p0)), uintptr(toDirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func OpenTree(dfd int, fileName string, flags uint) (r int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(fileName) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN_TREE, uintptr(dfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + r = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PerfEventOpen(attr *PerfEventAttr, pid int, cpu int, groupFd int, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_PERF_EVENT_OPEN, uintptr(unsafe.Pointer(attr)), uintptr(pid), uintptr(cpu), uintptr(groupFd), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PivotRoot(newroot string, putold string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(newroot) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(putold) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_PIVOT_ROOT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prlimit(pid int, resource int, newlimit *Rlimit, old *Rlimit) (err error) { + _, _, e1 := RawSyscall6(SYS_PRLIMIT64, uintptr(pid), uintptr(resource), uintptr(unsafe.Pointer(newlimit)), uintptr(unsafe.Pointer(old)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Prctl(option int, arg2 uintptr, arg3 uintptr, arg4 uintptr, arg5 uintptr) (err error) { + _, _, e1 := Syscall6(SYS_PRCTL, uintptr(option), uintptr(arg2), uintptr(arg3), uintptr(arg4), uintptr(arg5), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pselect(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := Syscall6(SYS_PSELECT6, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Removexattr(path string, attr string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REMOVEXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat2(olddirfd int, oldpath string, newdirfd int, newpath string, flags uint) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT2, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func RequestKey(keyType string, description string, callback string, destRingid int) (id int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(keyType) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(description) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(callback) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_REQUEST_KEY, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(destRingid), 0, 0) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setdomainname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETDOMAINNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_SETHOSTNAME, uintptr(_p0), uintptr(len(p)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setns(fd int, nstype int) (err error) { + _, _, e1 := Syscall(SYS_SETNS, uintptr(fd), uintptr(nstype), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setxattr(path string, attr string, data []byte, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attr) + if err != nil { + return + } + var _p2 unsafe.Pointer + if len(data) > 0 { + _p2 = unsafe.Pointer(&data[0]) + } else { + _p2 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SETXATTR, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(_p2), uintptr(len(data)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func signalfd(fd int, sigmask *Sigset_t, maskSize uintptr, flags int) (newfd int, err error) { + r0, _, e1 := Syscall6(SYS_SIGNALFD4, uintptr(fd), uintptr(unsafe.Pointer(sigmask)), uintptr(maskSize), uintptr(flags), 0, 0) + newfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statx(dirfd int, path string, flags int, mask int, stat *Statx_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_STATX, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mask), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + SyscallNoError(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Syncfs(fd int) (err error) { + _, _, e1 := Syscall(SYS_SYNCFS, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysinfo(info *Sysinfo_t) (err error) { + _, _, e1 := RawSyscall(SYS_SYSINFO, uintptr(unsafe.Pointer(info)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdCreate(clockid int, flags int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_TIMERFD_CREATE, uintptr(clockid), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdGettime(fd int, currValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall(SYS_TIMERFD_GETTIME, uintptr(fd), uintptr(unsafe.Pointer(currValue)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func TimerfdSettime(fd int, flags int, newValue *ItimerSpec, oldValue *ItimerSpec) (err error) { + _, _, e1 := RawSyscall6(SYS_TIMERFD_SETTIME, uintptr(fd), uintptr(flags), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tgkill(tgid int, tid int, sig syscall.Signal) (err error) { + _, _, e1 := RawSyscall(SYS_TGKILL, uintptr(tgid), uintptr(tid), uintptr(sig)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := RawSyscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _ := RawSyscallNoError(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := RawSyscall(SYS_UNAME, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UMOUNT2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unshare(flags int) (err error) { + _, _, e1 := Syscall(SYS_UNSHARE, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func exitThread(code int) (err error) { + _, _, e1 := Syscall(SYS_EXIT, uintptr(code), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, p *byte, np int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(p)), uintptr(np)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readv(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writev(fd int, iovs []Iovec) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func preadv2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREADV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwritev2(fd int, iovs []Iovec, offs_l uintptr, offs_h uintptr, flags int) (n int, err error) { + var _p0 unsafe.Pointer + if len(iovs) > 0 { + _p0 = unsafe.Pointer(&iovs[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITEV2, uintptr(fd), uintptr(_p0), uintptr(len(iovs)), uintptr(offs_l), uintptr(offs_h), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func faccessat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat2(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT2, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func nameToHandleAt(dirFD int, pathname string, fh *fileHandle, mountID *_C_int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(pathname) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NAME_TO_HANDLE_AT, uintptr(dirFD), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(fh)), uintptr(unsafe.Pointer(mountID)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func openByHandleAt(mountFD int, fh *fileHandle, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_OPEN_BY_HANDLE_AT, uintptr(mountFD), uintptr(unsafe.Pointer(fh)), uintptr(flags)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ProcessVMReadv(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_READV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ProcessVMWritev(pid int, localIov []Iovec, remoteIov []RemoteIovec, flags uint) (n int, err error) { + var _p0 unsafe.Pointer + if len(localIov) > 0 { + _p0 = unsafe.Pointer(&localIov[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + var _p1 unsafe.Pointer + if len(remoteIov) > 0 { + _p1 = unsafe.Pointer(&remoteIov[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PROCESS_VM_WRITEV, uintptr(pid), uintptr(_p0), uintptr(len(localIov)), uintptr(_p1), uintptr(len(remoteIov)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PidfdOpen(pid int, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_PIDFD_OPEN, uintptr(pid), uintptr(flags), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PidfdGetfd(pidfd int, targetfd int, flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_PIDFD_GETFD, uintptr(pidfd), uintptr(targetfd), uintptr(flags)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func PidfdSendSignal(pidfd int, sig Signal, info *Siginfo, flags int) (err error) { + _, _, e1 := Syscall6(SYS_PIDFD_SEND_SIGNAL, uintptr(pidfd), uintptr(sig), uintptr(unsafe.Pointer(info)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmat(id int, addr uintptr, flag int) (ret uintptr, err error) { + r0, _, e1 := Syscall(SYS_SHMAT, uintptr(id), uintptr(addr), uintptr(flag)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmctl(id int, cmd int, buf *SysvShmDesc) (result int, err error) { + r0, _, e1 := Syscall(SYS_SHMCTL, uintptr(id), uintptr(cmd), uintptr(unsafe.Pointer(buf))) + result = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmdt(addr uintptr) (err error) { + _, _, e1 := Syscall(SYS_SHMDT, uintptr(addr), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func shmget(key int, size int, flag int) (id int, err error) { + r0, _, e1 := Syscall(SYS_SHMGET, uintptr(key), uintptr(size), uintptr(flag)) + id = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getitimer(which int, currValue *Itimerval) (err error) { + _, _, e1 := Syscall(SYS_GETITIMER, uintptr(which), uintptr(unsafe.Pointer(currValue)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setitimer(which int, newValue *Itimerval, oldValue *Itimerval) (err error) { + _, _, e1 := Syscall(SYS_SETITIMER, uintptr(which), uintptr(unsafe.Pointer(newValue)), uintptr(unsafe.Pointer(oldValue))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) (err error) { + _, _, e1 := RawSyscall6(SYS_RT_SIGPROCMASK, uintptr(how), uintptr(unsafe.Pointer(set)), uintptr(unsafe.Pointer(oldset)), uintptr(sigsetsize), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go new file mode 100644 index 0000000000..c81b0ad477 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go @@ -0,0 +1,497 @@ +// go run mksyscall.go -l32 -tags linux,386 syscall_linux.go syscall_linux_386.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && 386 +// +build linux,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64_64, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go new file mode 100644 index 0000000000..2206bce7f4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go @@ -0,0 +1,664 @@ +// go run mksyscall.go -tags linux,amd64 syscall_linux.go syscall_linux_amd64.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && amd64 +// +build linux,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MemfdSecret(flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go new file mode 100644 index 0000000000..edf6b39f16 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go @@ -0,0 +1,612 @@ +// go run mksyscall.go -l32 -arm -tags linux,arm syscall_linux.go syscall_linux_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && arm +// +build linux,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS32, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, flags int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(flags), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN32, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID32, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID32, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID32, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID32, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN32, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID32, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID32, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func armSyncFileRange(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_ARM_SYNC_FILE_RANGE, uintptr(fd), uintptr(flags), uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go new file mode 100644 index 0000000000..190609f214 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go @@ -0,0 +1,563 @@ +// go run mksyscall.go -tags linux,arm64 syscall_linux.go syscall_linux_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && arm64 +// +build linux,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MemfdSecret(flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go new file mode 100644 index 0000000000..806ffd1e12 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go @@ -0,0 +1,487 @@ +// go run mksyscall.go -tags linux,loong64 syscall_linux.go syscall_linux_loong64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && loong64 +// +build linux,loong64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go new file mode 100644 index 0000000000..5f984cbb1c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go @@ -0,0 +1,664 @@ +// go run mksyscall.go -b32 -arm -tags linux,mips syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mips +// +build linux,mips + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset>>32), uintptr(offset), uintptr(length>>32), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length>>32), uintptr(length), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset>>32), uintptr(offset)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length>>32), uintptr(length), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go new file mode 100644 index 0000000000..46fc380a40 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go @@ -0,0 +1,658 @@ +// go run mksyscall.go -tags linux,mips64 syscall_linux.go syscall_linux_mips64x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mips64 +// +build linux,mips64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, st *stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go new file mode 100644 index 0000000000..cbd0d4dadb --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go @@ -0,0 +1,647 @@ +// go run mksyscall.go -tags linux,mips64le syscall_linux.go syscall_linux_mips64x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mips64le +// +build linux,mips64le + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, st *stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstatat(dirfd int, path string, st *stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, st *stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(st)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go new file mode 100644 index 0000000000..0c13d15f07 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go @@ -0,0 +1,664 @@ +// go run mksyscall.go -l32 -arm -tags linux,mipsle syscall_linux.go syscall_linux_mipsx.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && mipsle +// +build linux,mipsle + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(mask>>32), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(off>>32), uintptr(len), uintptr(len>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_FADVISE64, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(length), uintptr(length>>32), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE64, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall9(SYS_SYNC_FILE_RANGE, uintptr(fd), 0, uintptr(off), uintptr(off>>32), uintptr(n), uintptr(n>>32), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go new file mode 100644 index 0000000000..e01432aed5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go @@ -0,0 +1,669 @@ +// go run mksyscall.go -b32 -tags linux,ppc syscall_linux.go syscall_linux_ppc.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc +// +build linux,ppc + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask>>32), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off>>32), uintptr(off), uintptr(len>>32), uintptr(len)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, r1, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(int64(r0)<<32 | int64(r1)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT64, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE64, uintptr(fd), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset>>32), uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE64, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT64, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE64, uintptr(unsafe.Pointer(_p0)), uintptr(length>>32), uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap2(addr uintptr, length uintptr, prot int, flags int, fd int, pageOffset uintptr) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP2, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(pageOffset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setrlimit(resource int, rlim *rlimit32) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off>>32), uintptr(off), uintptr(n>>32), uintptr(n)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go new file mode 100644 index 0000000000..13c7ee7baf --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go @@ -0,0 +1,715 @@ +// go run mksyscall.go -tags linux,ppc64 syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc64 +// +build linux,ppc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go new file mode 100644 index 0000000000..02d0c0fd61 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go @@ -0,0 +1,715 @@ +// go run mksyscall.go -tags linux,ppc64le syscall_linux.go syscall_linux_ppc64x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && ppc64le +// +build linux,ppc64le + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_UGETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ioperm(from int, num int, on int) (err error) { + _, _, e1 := Syscall(SYS_IOPERM, uintptr(from), uintptr(num), uintptr(on)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Iopl(level int) (err error) { + _, _, e1 := Syscall(SYS_IOPL, uintptr(level), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS__NEWSELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Time(t *Time_t) (tt Time_t, err error) { + r0, _, e1 := RawSyscall(SYS_TIME, uintptr(unsafe.Pointer(t)), 0, 0) + tt = Time_t(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func syncFileRange2(fd int, flags int, off int64, n int64) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE2, uintptr(fd), uintptr(flags), uintptr(off), uintptr(n), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go new file mode 100644 index 0000000000..9fee3b1d23 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go @@ -0,0 +1,543 @@ +// go run mksyscall.go -tags linux,riscv64 syscall_linux.go syscall_linux_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && riscv64 +// +build linux,riscv64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_PWAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func MemfdSecret(flags int) (fd int, err error) { + r0, _, e1 := Syscall(SYS_MEMFD_SECRET, uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go new file mode 100644 index 0000000000..647bbfecd6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go @@ -0,0 +1,506 @@ +// go run mksyscall.go -tags linux,s390x syscall_linux.go syscall_linux_s390x.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && s390x +// +build linux,s390x + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_NEWFSTATAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := Syscall(SYS_USTAT, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kexecFileLoad(kernelFd int, initrdFd int, cmdlineLen int, cmdline string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(cmdline) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_KEXEC_FILE_LOAD, uintptr(kernelFd), uintptr(initrdFd), uintptr(cmdlineLen), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go new file mode 100644 index 0000000000..ada057f891 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go @@ -0,0 +1,659 @@ +// go run mksyscall.go -tags linux,sparc64 syscall_linux.go syscall_linux_sparc64.go syscall_linux_alarm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build linux && sparc64 +// +build linux,sparc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fanotifyMark(fd int, flags uint, mask uint64, dirFd int, pathname *byte) (err error) { + _, _, e1 := Syscall6(SYS_FANOTIFY_MARK, uintptr(fd), uintptr(flags), uintptr(mask), uintptr(dirFd), uintptr(unsafe.Pointer(pathname)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fallocate(fd int, mode uint32, off int64, len int64) (err error) { + _, _, e1 := Syscall6(SYS_FALLOCATE, uintptr(fd), uintptr(mode), uintptr(off), uintptr(len), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tee(rfd int, wfd int, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_TEE, uintptr(rfd), uintptr(wfd), uintptr(len), uintptr(flags), 0, 0) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func EpollWait(epfd int, events []EpollEvent, msec int) (n int, err error) { + var _p0 unsafe.Pointer + if len(events) > 0 { + _p0 = unsafe.Pointer(&events[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_EPOLL_WAIT, uintptr(epfd), uintptr(_p0), uintptr(len(events)), uintptr(msec), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_FADVISE64, uintptr(fd), uintptr(offset), uintptr(length), uintptr(advice), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(dirfd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT64, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, buf *Statfs_t) (err error) { + _, _, e1 := Syscall(SYS_FSTATFS, uintptr(fd), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _ := RawSyscallNoError(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _ := RawSyscallNoError(SYS_GETEUID, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _ := RawSyscallNoError(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _ := RawSyscallNoError(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := Syscall(SYS_PAUSE, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE64, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := Syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := Syscall6(SYS_SENDFILE, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsgid(gid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSGID, uintptr(gid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setfsuid(uid int) (prev int, err error) { + r0, _, e1 := Syscall(SYS_SETFSUID, uintptr(uid), 0, 0) + prev = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n int64, err error) { + r0, _, e1 := Syscall6(SYS_SPLICE, uintptr(rfd), uintptr(unsafe.Pointer(roff)), uintptr(wfd), uintptr(unsafe.Pointer(woff)), uintptr(len), uintptr(flags)) + n = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, buf *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATFS, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func SyncFileRange(fd int, off int64, n int64, flags int) (err error) { + _, _, e1 := Syscall6(SYS_SYNC_FILE_RANGE, uintptr(fd), uintptr(off), uintptr(n), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept4(s int, rsa *RawSockaddrAny, addrlen *_Socklen, flags int) (fd int, err error) { + r0, _, e1 := Syscall6(SYS_ACCEPT4, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), uintptr(flags), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error) { + r0, _, e1 := Syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flags), uintptr(fd), uintptr(offset)) + xaddr = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(dirfd int, path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_FUTIMESAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Alarm(seconds uint) (remaining uint, err error) { + r0, _, e1 := Syscall(SYS_ALARM, uintptr(seconds), 0, 0) + remaining = uint(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go new file mode 100644 index 0000000000..8e1d9c8f66 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go @@ -0,0 +1,1870 @@ +// go run mksyscall.go -l32 -netbsd -tags netbsd,386 syscall_bsd.go syscall_netbsd.go syscall_netbsd_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build netbsd && 386 +// +build netbsd,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go new file mode 100644 index 0000000000..21c6950400 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go @@ -0,0 +1,1870 @@ +// go run mksyscall.go -netbsd -tags netbsd,amd64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build netbsd && amd64 +// +build netbsd,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go new file mode 100644 index 0000000000..298168f90a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go @@ -0,0 +1,1870 @@ +// go run mksyscall.go -l32 -netbsd -arm -tags netbsd,arm syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build netbsd && arm +// +build netbsd,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall9(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), 0, uintptr(length), uintptr(length>>32), uintptr(advice), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall6(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go new file mode 100644 index 0000000000..68b8bd492f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go @@ -0,0 +1,1870 @@ +// go run mksyscall.go -netbsd -tags netbsd,arm64 syscall_bsd.go syscall_netbsd.go syscall_netbsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build netbsd && arm64 +// +build netbsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := RawSyscall(SYS_GETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := RawSyscall(SYS_SETGROUPS, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := Syscall6(SYS_WAIT4, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := Syscall(SYS_ACCEPT, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_BIND, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := Syscall(SYS_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := RawSyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := Syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := Syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETPEERNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := RawSyscall(SYS_GETSOCKNAME, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := Syscall(SYS_SHUTDOWN, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := RawSyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_RECVFROM, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS_SENDTO, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_RECVMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := Syscall(SYS_SENDMSG, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := Syscall6(SYS_KEVENT, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UTIMES, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := Syscall(SYS_FUTIMES, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := Syscall(SYS_POLL, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MADVISE, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := Syscall(SYS_MLOCKALL, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall(SYS_MUNLOCK, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := Syscall(SYS_MUNLOCKALL, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := RawSyscall(SYS_PIPE2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_GETDENTS, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS___GETCWD, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := Syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := Syscall6(SYS___SYSCTL, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_ACCESS, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := Syscall(SYS_ADJTIME, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHFLAGS, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHMOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_CHROOT, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := Syscall(SYS_CLOCK_GETTIME, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := Syscall(SYS_CLOSE, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := Syscall(SYS_DUP, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := Syscall(SYS_DUP2, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := Syscall(SYS_DUP3, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + Syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFd(fd int, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFd(fd int, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FD, uintptr(fd), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p0))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFd(fd int, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FD, uintptr(fd), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetFile(file string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteFile(file string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListFile(file string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(file) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_FILE, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrGetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_GET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrSetLink(link string, attrnamespace int, attrname string, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_SET_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1)), uintptr(data), uintptr(nbytes), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrDeleteLink(link string, attrnamespace int, attrname string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(attrname) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_EXTATTR_DELETE_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ExtattrListLink(link string, attrnamespace int, data uintptr, nbytes int) (ret int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(link) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_EXTATTR_LIST_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(attrnamespace), uintptr(data), uintptr(nbytes), 0, 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FACCESSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fadvise(fd int, offset int64, length int64, advice int) (err error) { + _, _, e1 := Syscall6(SYS_POSIX_FADVISE, uintptr(fd), 0, uintptr(offset), 0, uintptr(length), uintptr(advice)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := Syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := Syscall(SYS_FCHFLAGS, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := Syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHMODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := Syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FCHOWNAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := Syscall(SYS_FLOCK, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := Syscall(SYS_FPATHCONF, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := Syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_FSTATAT, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs1(fd int, buf *Statvfs_t, flags int) (err error) { + _, _, e1 := Syscall(SYS_FSTATVFS1, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := Syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := Syscall(SYS_FTRUNCATE, uintptr(fd), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := RawSyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := RawSyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := RawSyscall(SYS_GETPGRP, 0, 0, 0) + pgrp = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := RawSyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := RawSyscall(SYS_GETPPID, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := Syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_GETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := RawSyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := RawSyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := RawSyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := Syscall(SYS_ISSETUGID, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := Syscall(SYS_KILL, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := Syscall(SYS_KQUEUE, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LCHOWN, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_LINKAT, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := Syscall(SYS_LISTEN, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_LSTAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIR, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKDIRAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFO, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKFIFOAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_MKNOD, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_MKNODAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := Syscall(SYS_NANOSLEEP, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_OPEN, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall6(SYS_OPENAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := Syscall(SYS_PATHCONF, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_READLINK, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall6(SYS_READLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RENAME, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_RENAMEAT, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_REVOKE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_RMDIR, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := Syscall6(SYS_LSEEK, uintptr(fd), 0, uintptr(offset), uintptr(whence), 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := Syscall6(SYS_SELECT, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEGID, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETEUID, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETGID, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := Syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := RawSyscall(SYS_SETRLIMIT, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := RawSyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := RawSyscall(SYS_SETTIMEOFDAY, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := RawSyscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STAT, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs1(path string, buf *Statvfs_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_STATVFS1, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINK, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_SYMLINKAT, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := Syscall(SYS_SYNC, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_TRUNCATE, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := Syscall(SYS_UMASK, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINK, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNLINKAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall(SYS_UNMOUNT, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := Syscall9(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := Syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := Syscall(SYS_WRITE, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := Syscall6(SYS_UTIMENSAT, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go new file mode 100644 index 0000000000..0b0f910e1a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -l32 -openbsd -libc -tags openbsd,386 syscall_bsd.go syscall_openbsd.go syscall_openbsd_386.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && 386 +// +build openbsd,386 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), uintptr(offset>>32), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(offset>>32), uintptr(whence), 0, 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), uintptr(length>>32)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos), uintptr(pos>>32), 0, 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s new file mode 100644 index 0000000000..087444250c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd 386 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 +DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 +DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 +DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 +DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 +DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 +DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 +DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 +DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 +DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 +DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 +DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 +DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrlimit_trampoline_addr(SB)/4, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 +DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 +DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go new file mode 100644 index 0000000000..48ff5de75b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,amd64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && amd64 +// +build openbsd,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s new file mode 100644 index 0000000000..5782cd1084 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd amd64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go new file mode 100644 index 0000000000..2452a641da --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -l32 -openbsd -arm -libc -tags openbsd,arm syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && arm +// +build openbsd,arm + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall6(libc_ftruncate_trampoline_addr, uintptr(fd), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), 0, uintptr(offset), uintptr(offset>>32)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, r1, e1 := syscall_syscall6(libc_lseek_trampoline_addr, uintptr(fd), 0, uintptr(offset), uintptr(offset>>32), uintptr(whence), 0) + newoffset = int64(int64(r1)<<32 | int64(r0)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, uintptr(length), uintptr(length>>32), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall9(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), 0, uintptr(pos), uintptr(pos>>32), 0) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s new file mode 100644 index 0000000000..cf310420c9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd arm +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgroups_trampoline_addr(SB)/4, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgroups_trampoline_addr(SB)/4, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $4 +DATA ·libc_wait4_trampoline_addr(SB)/4, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $4 +DATA ·libc_accept_trampoline_addr(SB)/4, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $4 +DATA ·libc_bind_trampoline_addr(SB)/4, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_connect_trampoline_addr(SB)/4, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socket_trampoline_addr(SB)/4, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockopt_trampoline_addr(SB)/4, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsockopt_trampoline_addr(SB)/4, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpeername_trampoline_addr(SB)/4, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsockname_trampoline_addr(SB)/4, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_shutdown_trampoline_addr(SB)/4, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $4 +DATA ·libc_socketpair_trampoline_addr(SB)/4, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvfrom_trampoline_addr(SB)/4, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendto_trampoline_addr(SB)/4, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_recvmsg_trampoline_addr(SB)/4, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sendmsg_trampoline_addr(SB)/4, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kevent_trampoline_addr(SB)/4, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimes_trampoline_addr(SB)/4, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $4 +DATA ·libc_futimes_trampoline_addr(SB)/4, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_poll_trampoline_addr(SB)/4, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $4 +DATA ·libc_madvise_trampoline_addr(SB)/4, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlock_trampoline_addr(SB)/4, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mlockall_trampoline_addr(SB)/4, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mprotect_trampoline_addr(SB)/4, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_msync_trampoline_addr(SB)/4, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlock_trampoline_addr(SB)/4, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munlockall_trampoline_addr(SB)/4, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pipe2_trampoline_addr(SB)/4, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getdents_trampoline_addr(SB)/4, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ioctl_trampoline_addr(SB)/4, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sysctl_trampoline_addr(SB)/4, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ppoll_trampoline_addr(SB)/4, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $4 +DATA ·libc_access_trampoline_addr(SB)/4, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_adjtime_trampoline_addr(SB)/4, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chdir_trampoline_addr(SB)/4, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chflags_trampoline_addr(SB)/4, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chmod_trampoline_addr(SB)/4, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chown_trampoline_addr(SB)/4, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $4 +DATA ·libc_chroot_trampoline_addr(SB)/4, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $4 +DATA ·libc_clock_gettime_trampoline_addr(SB)/4, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $4 +DATA ·libc_close_trampoline_addr(SB)/4, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup_trampoline_addr(SB)/4, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup2_trampoline_addr(SB)/4, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $4 +DATA ·libc_dup3_trampoline_addr(SB)/4, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_exit_trampoline_addr(SB)/4, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_faccessat_trampoline_addr(SB)/4, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchdir_trampoline_addr(SB)/4, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchflags_trampoline_addr(SB)/4, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmod_trampoline_addr(SB)/4, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchmodat_trampoline_addr(SB)/4, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchown_trampoline_addr(SB)/4, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fchownat_trampoline_addr(SB)/4, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $4 +DATA ·libc_flock_trampoline_addr(SB)/4, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fpathconf_trampoline_addr(SB)/4, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstat_trampoline_addr(SB)/4, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatat_trampoline_addr(SB)/4, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fstatfs_trampoline_addr(SB)/4, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_fsync_trampoline_addr(SB)/4, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_ftruncate_trampoline_addr(SB)/4, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getegid_trampoline_addr(SB)/4, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_geteuid_trampoline_addr(SB)/4, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getgid_trampoline_addr(SB)/4, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgid_trampoline_addr(SB)/4, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpgrp_trampoline_addr(SB)/4, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpid_trampoline_addr(SB)/4, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getppid_trampoline_addr(SB)/4, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getpriority_trampoline_addr(SB)/4, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrlimit_trampoline_addr(SB)/4, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrtable_trampoline_addr(SB)/4, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getrusage_trampoline_addr(SB)/4, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getsid_trampoline_addr(SB)/4, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_gettimeofday_trampoline_addr(SB)/4, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_getuid_trampoline_addr(SB)/4, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_issetugid_trampoline_addr(SB)/4, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kill_trampoline_addr(SB)/4, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $4 +DATA ·libc_kqueue_trampoline_addr(SB)/4, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lchown_trampoline_addr(SB)/4, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $4 +DATA ·libc_link_trampoline_addr(SB)/4, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_linkat_trampoline_addr(SB)/4, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $4 +DATA ·libc_listen_trampoline_addr(SB)/4, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lstat_trampoline_addr(SB)/4, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdir_trampoline_addr(SB)/4, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkdirat_trampoline_addr(SB)/4, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifo_trampoline_addr(SB)/4, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mkfifoat_trampoline_addr(SB)/4, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknod_trampoline_addr(SB)/4, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mknodat_trampoline_addr(SB)/4, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $4 +DATA ·libc_nanosleep_trampoline_addr(SB)/4, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $4 +DATA ·libc_open_trampoline_addr(SB)/4, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_openat_trampoline_addr(SB)/4, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pathconf_trampoline_addr(SB)/4, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pread_trampoline_addr(SB)/4, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $4 +DATA ·libc_pwrite_trampoline_addr(SB)/4, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $4 +DATA ·libc_read_trampoline_addr(SB)/4, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlink_trampoline_addr(SB)/4, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_readlinkat_trampoline_addr(SB)/4, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rename_trampoline_addr(SB)/4, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_renameat_trampoline_addr(SB)/4, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $4 +DATA ·libc_revoke_trampoline_addr(SB)/4, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $4 +DATA ·libc_rmdir_trampoline_addr(SB)/4, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $4 +DATA ·libc_lseek_trampoline_addr(SB)/4, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $4 +DATA ·libc_select_trampoline_addr(SB)/4, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setegid_trampoline_addr(SB)/4, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_seteuid_trampoline_addr(SB)/4, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setgid_trampoline_addr(SB)/4, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setlogin_trampoline_addr(SB)/4, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpgid_trampoline_addr(SB)/4, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setpriority_trampoline_addr(SB)/4, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setregid_trampoline_addr(SB)/4, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setreuid_trampoline_addr(SB)/4, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresgid_trampoline_addr(SB)/4, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setresuid_trampoline_addr(SB)/4, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrlimit_trampoline_addr(SB)/4, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setrtable_trampoline_addr(SB)/4, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setsid_trampoline_addr(SB)/4, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $4 +DATA ·libc_settimeofday_trampoline_addr(SB)/4, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $4 +DATA ·libc_setuid_trampoline_addr(SB)/4, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_stat_trampoline_addr(SB)/4, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $4 +DATA ·libc_statfs_trampoline_addr(SB)/4, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlink_trampoline_addr(SB)/4, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_symlinkat_trampoline_addr(SB)/4, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $4 +DATA ·libc_sync_trampoline_addr(SB)/4, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $4 +DATA ·libc_truncate_trampoline_addr(SB)/4, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $4 +DATA ·libc_umask_trampoline_addr(SB)/4, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlink_trampoline_addr(SB)/4, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unlinkat_trampoline_addr(SB)/4, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $4 +DATA ·libc_unmount_trampoline_addr(SB)/4, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $4 +DATA ·libc_write_trampoline_addr(SB)/4, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_mmap_trampoline_addr(SB)/4, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $4 +DATA ·libc_munmap_trampoline_addr(SB)/4, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $4 +DATA ·libc_utimensat_trampoline_addr(SB)/4, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go new file mode 100644 index 0000000000..5e35600a60 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,arm64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_arm64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && arm64 +// +build openbsd,arm64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s new file mode 100644 index 0000000000..484bb42e0a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd arm64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go new file mode 100644 index 0000000000..b04cef1a19 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,mips64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_mips64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && mips64 +// +build openbsd,mips64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s new file mode 100644 index 0000000000..55af27263a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd mips64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go new file mode 100644 index 0000000000..47a07ee0c2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,ppc64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_ppc64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && ppc64 +// +build openbsd,ppc64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s new file mode 100644 index 0000000000..4028255b0d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s @@ -0,0 +1,802 @@ +// go run mkasm.go openbsd ppc64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getgroups(SB) + RET +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setgroups(SB) + RET +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_wait4(SB) + RET +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_accept(SB) + RET +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_bind(SB) + RET +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_connect(SB) + RET +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_socket(SB) + RET +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsockopt(SB) + RET +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setsockopt(SB) + RET +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpeername(SB) + RET +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsockname(SB) + RET +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_shutdown(SB) + RET +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_socketpair(SB) + RET +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_recvfrom(SB) + RET +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sendto(SB) + RET +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_recvmsg(SB) + RET +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sendmsg(SB) + RET +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kevent(SB) + RET +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_utimes(SB) + RET +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_futimes(SB) + RET +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_poll(SB) + RET +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_madvise(SB) + RET +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mlock(SB) + RET +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mlockall(SB) + RET +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mprotect(SB) + RET +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_msync(SB) + RET +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munlock(SB) + RET +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munlockall(SB) + RET +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pipe2(SB) + RET +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getdents(SB) + RET +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getcwd(SB) + RET +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ioctl(SB) + RET +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sysctl(SB) + RET +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ppoll(SB) + RET +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_access(SB) + RET +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_adjtime(SB) + RET +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chdir(SB) + RET +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chflags(SB) + RET +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chmod(SB) + RET +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chown(SB) + RET +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_chroot(SB) + RET +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_clock_gettime(SB) + RET +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_close(SB) + RET +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup(SB) + RET +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup2(SB) + RET +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_dup3(SB) + RET +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_exit(SB) + RET +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_faccessat(SB) + RET +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchdir(SB) + RET +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchflags(SB) + RET +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchmod(SB) + RET +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchmodat(SB) + RET +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchown(SB) + RET +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fchownat(SB) + RET +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_flock(SB) + RET +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fpathconf(SB) + RET +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstat(SB) + RET +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstatat(SB) + RET +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fstatfs(SB) + RET +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_fsync(SB) + RET +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_ftruncate(SB) + RET +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getegid(SB) + RET +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_geteuid(SB) + RET +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getgid(SB) + RET +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpgid(SB) + RET +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpgrp(SB) + RET +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpid(SB) + RET +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getppid(SB) + RET +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getpriority(SB) + RET +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrlimit(SB) + RET +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrtable(SB) + RET +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getrusage(SB) + RET +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getsid(SB) + RET +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_gettimeofday(SB) + RET +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_getuid(SB) + RET +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_issetugid(SB) + RET +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kill(SB) + RET +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_kqueue(SB) + RET +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lchown(SB) + RET +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_link(SB) + RET +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_linkat(SB) + RET +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_listen(SB) + RET +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lstat(SB) + RET +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkdir(SB) + RET +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkdirat(SB) + RET +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkfifo(SB) + RET +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mkfifoat(SB) + RET +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mknod(SB) + RET +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mknodat(SB) + RET +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_nanosleep(SB) + RET +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_open(SB) + RET +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_openat(SB) + RET +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pathconf(SB) + RET +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pread(SB) + RET +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_pwrite(SB) + RET +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_read(SB) + RET +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_readlink(SB) + RET +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_readlinkat(SB) + RET +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_rename(SB) + RET +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_renameat(SB) + RET +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_revoke(SB) + RET +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_rmdir(SB) + RET +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_lseek(SB) + RET +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_select(SB) + RET +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setegid(SB) + RET +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_seteuid(SB) + RET +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setgid(SB) + RET +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setlogin(SB) + RET +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setpgid(SB) + RET +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setpriority(SB) + RET +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setregid(SB) + RET +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setreuid(SB) + RET +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setresgid(SB) + RET +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setresuid(SB) + RET +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setrlimit(SB) + RET +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setrtable(SB) + RET +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setsid(SB) + RET +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_settimeofday(SB) + RET +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_setuid(SB) + RET +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_stat(SB) + RET +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_statfs(SB) + RET +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_symlink(SB) + RET +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_symlinkat(SB) + RET +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_sync(SB) + RET +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_truncate(SB) + RET +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_umask(SB) + RET +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unlink(SB) + RET +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unlinkat(SB) + RET +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_unmount(SB) + RET +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_write(SB) + RET +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_mmap(SB) + RET +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_munmap(SB) + RET +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + CALL libc_utimensat(SB) + RET +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go new file mode 100644 index 0000000000..573378fdb9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go @@ -0,0 +1,2243 @@ +// go run mksyscall.go -openbsd -libc -tags openbsd,riscv64 syscall_bsd.go syscall_openbsd.go syscall_openbsd_riscv64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build openbsd && riscv64 +// +build openbsd,riscv64 + +package unix + +import ( + "syscall" + "unsafe" +) + +var _ syscall.Errno + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgroups_trampoline_addr, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgroups_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int, wstatus *_C_int, options int, rusage *Rusage) (wpid int, err error) { + r0, _, e1 := syscall_syscall6(libc_wait4_trampoline_addr, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_wait4_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_accept_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_accept_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_accept accept "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_bind_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_bind_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_bind bind "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(libc_connect_trampoline_addr, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_connect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_connect connect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_socket_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socket_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socket socket "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(libc_getsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockopt getsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(libc_setsockopt_trampoline_addr, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsockopt_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsockopt setsockopt "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getpeername_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpeername_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpeername getpeername "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getsockname_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsockname_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsockname getsockname "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_shutdown_trampoline_addr, uintptr(s), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_shutdown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_shutdown shutdown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawSyscall6(libc_socketpair_trampoline_addr, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_socketpair_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_socketpair socketpair "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_recvfrom_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvfrom_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvfrom recvfrom "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sendto_trampoline_addr, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendto_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendto sendto "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_recvmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_recvmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_recvmsg recvmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_sendmsg_trampoline_addr, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sendmsg_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sendmsg sendmsg "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func kevent(kq int, change unsafe.Pointer, nchange int, event unsafe.Pointer, nevent int, timeout *Timespec) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_kevent_trampoline_addr, uintptr(kq), uintptr(change), uintptr(nchange), uintptr(event), uintptr(nevent), uintptr(unsafe.Pointer(timeout))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kevent_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kevent kevent "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_utimes_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimes utimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimes(fd int, timeval *[2]Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_futimes_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_futimes_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_futimes futimes "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_poll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_poll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_poll poll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, behav int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_madvise_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(behav)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_madvise_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_madvise madvise "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlock mlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := syscall_syscall(libc_mlockall_trampoline_addr, uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_mprotect_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mprotect_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_msync_trampoline_addr, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_msync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_msync msync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(libc_munlock_trampoline_addr, uintptr(_p0), uintptr(len(b)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlock munlock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := syscall_syscall(libc_munlockall_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munlockall_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_pipe2_trampoline_addr, uintptr(unsafe.Pointer(p)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pipe2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getdents_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getdents_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getdents getdents "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_getcwd_trampoline_addr, uintptr(_p0), uintptr(len(buf)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getcwd_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(libc_ioctl_trampoline_addr, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ioctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sysctl(mib []_C_int, old *byte, oldlen *uintptr, new *byte, newlen uintptr) (err error) { + var _p0 unsafe.Pointer + if len(mib) > 0 { + _p0 = unsafe.Pointer(&mib[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(libc_sysctl_trampoline_addr, uintptr(_p0), uintptr(len(mib)), uintptr(unsafe.Pointer(old)), uintptr(unsafe.Pointer(oldlen)), uintptr(unsafe.Pointer(new)), uintptr(newlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sysctl_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sysctl sysctl "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ppoll(fds *PollFd, nfds int, timeout *Timespec, sigmask *Sigset_t) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_ppoll_trampoline_addr, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(unsafe.Pointer(timeout)), uintptr(unsafe.Pointer(sigmask)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ppoll_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ppoll ppoll "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_access_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_access_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_access access "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := syscall_syscall(libc_adjtime_trampoline_addr, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_adjtime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chdir chdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chflags(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chflags_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chflags chflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chmod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chmod chmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chown chown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_chroot_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_chroot_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_chroot chroot "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_clock_gettime_trampoline_addr, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_clock_gettime_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_clock_gettime clock_gettime "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_close_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_close_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_close close "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := syscall_syscall(libc_dup_trampoline_addr, uintptr(fd), 0, 0) + nfd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup dup "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(from int, to int) (err error) { + _, _, e1 := syscall_syscall(libc_dup2_trampoline_addr, uintptr(from), uintptr(to), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup2_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup3(from int, to int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_dup3_trampoline_addr, uintptr(from), uintptr(to), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_dup3_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_dup3 dup3 "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(libc_exit_trampoline_addr, uintptr(code), 0, 0) + return +} + +var libc_exit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_exit exit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_faccessat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_faccessat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fchdir_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchflags(fd int, flags int) (err error) { + _, _, e1 := syscall_syscall(libc_fchflags_trampoline_addr, uintptr(fd), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchflags_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchflags fchflags "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(libc_fchmod_trampoline_addr, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchmodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchmodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(libc_fchown_trampoline_addr, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchown fchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fchownat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fchownat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(libc_flock_trampoline_addr, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_flock_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_flock flock "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := syscall_syscall(libc_fpathconf_trampoline_addr, uintptr(fd), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fpathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstat fstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_fstatat_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatfs(fd int, stat *Statfs_t) (err error) { + _, _, e1 := syscall_syscall(libc_fstatfs_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fstatfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fstatfs fstatfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(libc_fsync_trampoline_addr, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_fsync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_fsync fsync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(libc_ftruncate_trampoline_addr, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_ftruncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawSyscall(libc_getegid_trampoline_addr, 0, 0, 0) + egid = int(r0) + return +} + +var libc_getegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getegid getegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_geteuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_geteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawSyscall(libc_getgid_trampoline_addr, 0, 0, 0) + gid = int(r0) + return +} + +var libc_getgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getgid getgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getpgid_trampoline_addr, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgrp int) { + r0, _, _ := syscall_rawSyscall(libc_getpgrp_trampoline_addr, 0, 0, 0) + pgrp = int(r0) + return +} + +var libc_getpgrp_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawSyscall(libc_getpid_trampoline_addr, 0, 0, 0) + pid = int(r0) + return +} + +var libc_getpid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpid getpid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := syscall_rawSyscall(libc_getppid_trampoline_addr, 0, 0, 0) + ppid = int(r0) + return +} + +var libc_getppid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getppid getppid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(libc_getpriority_trampoline_addr, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrtable() (rtable int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getrtable_trampoline_addr, 0, 0, 0) + rtable = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrtable getrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := syscall_rawSyscall(libc_getrusage_trampoline_addr, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getrusage_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_getsid_trampoline_addr, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_getsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getsid getsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_gettimeofday_trampoline_addr, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_gettimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawSyscall(libc_getuid_trampoline_addr, 0, 0, 0) + uid = int(r0) + return +} + +var libc_getuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_getuid getuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Issetugid() (tainted bool) { + r0, _, _ := syscall_syscall(libc_issetugid_trampoline_addr, 0, 0, 0) + tainted = bool(r0 != 0) + return +} + +var libc_issetugid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_issetugid issetugid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := syscall_syscall(libc_kill_trampoline_addr, uintptr(pid), uintptr(signum), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kill_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kill kill "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kqueue() (fd int, err error) { + r0, _, e1 := syscall_syscall(libc_kqueue_trampoline_addr, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_kqueue_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_kqueue kqueue "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lchown_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lchown_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lchown lchown "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_link_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_link_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_link link "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Linkat(pathfd int, path string, linkfd int, link string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_linkat_trampoline_addr, uintptr(pathfd), uintptr(unsafe.Pointer(_p0)), uintptr(linkfd), uintptr(unsafe.Pointer(_p1)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_linkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_linkat linkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := syscall_syscall(libc_listen_trampoline_addr, uintptr(s), uintptr(backlog), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_listen_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_listen listen "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_lstat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lstat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lstat lstat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkdirat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkdirat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifo_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifo_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mkfifoat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mkfifoat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_mknod_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknod_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknod mknod "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_mknodat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mknodat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := syscall_syscall(libc_nanosleep_trampoline_addr, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_nanosleep_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_open_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_open_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_open open "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall6(libc_openat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_openat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_openat openat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(libc_pathconf_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pathconf_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pread_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pread_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pread pread "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_pwrite_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_pwrite_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_read_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_read read "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_readlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlink readlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlinkat(dirfd int, path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(libc_readlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf)), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_readlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_readlinkat readlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rename_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rename_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rename rename "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(fromfd int, from string, tofd int, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_renameat_trampoline_addr, uintptr(fromfd), uintptr(unsafe.Pointer(_p0)), uintptr(tofd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_renameat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_renameat renameat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Revoke(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_revoke_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_revoke_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_revoke revoke "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_rmdir_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_rmdir_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := syscall_syscall(libc_lseek_trampoline_addr, uintptr(fd), uintptr(offset), uintptr(whence)) + newoffset = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_lseek_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_lseek lseek "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := syscall_syscall6(libc_select_trampoline_addr, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_select_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_select select "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setegid_trampoline_addr, uintptr(egid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setegid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setegid setegid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_seteuid_trampoline_addr, uintptr(euid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_seteuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setgid_trampoline_addr, uintptr(gid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setgid setgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setlogin(name string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(name) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_setlogin_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setlogin_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setlogin setlogin "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setpgid_trampoline_addr, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(libc_setpriority_trampoline_addr, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setpriority_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setregid_trampoline_addr, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setregid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setregid setregid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setreuid_trampoline_addr, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setreuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresgid(rgid int, egid int, sgid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresgid_trampoline_addr, uintptr(rgid), uintptr(egid), uintptr(sgid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresgid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresgid setresgid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setresuid(ruid int, euid int, suid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setresuid_trampoline_addr, uintptr(ruid), uintptr(euid), uintptr(suid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setresuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setresuid setresuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrlimit_trampoline_addr, uintptr(which), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrlimit_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrtable(rtable int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setrtable_trampoline_addr, uintptr(rtable), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setrtable_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setrtable setrtable "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawSyscall(libc_setsid_trampoline_addr, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setsid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setsid setsid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Settimeofday(tp *Timeval) (err error) { + _, _, e1 := syscall_rawSyscall(libc_settimeofday_trampoline_addr, uintptr(unsafe.Pointer(tp)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_settimeofday_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_settimeofday settimeofday "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_rawSyscall(libc_setuid_trampoline_addr, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_setuid_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_setuid setuid "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_stat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_stat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_stat stat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statfs(path string, stat *Statfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_statfs_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_statfs_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_statfs statfs "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlink symlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlinkat(oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_symlinkat_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_symlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_symlinkat symlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := syscall_syscall(libc_sync_trampoline_addr, 0, 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_sync_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_sync sync "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_truncate_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_truncate_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_truncate truncate "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(newmask int) (oldmask int) { + r0, _, _ := syscall_syscall(libc_umask_trampoline_addr, uintptr(newmask), 0, 0) + oldmask = int(r0) + return +} + +var libc_umask_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_umask umask "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlink_trampoline_addr, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlink_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlink unlink "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unlinkat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unlinkat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(libc_unmount_trampoline_addr, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_unmount_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_unmount unmount "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_write_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_write write "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(libc_mmap_trampoline_addr, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_mmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_mmap mmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(libc_munmap_trampoline_addr, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_munmap_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_munmap munmap "libc.so" + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_read_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func writelen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(libc_write_trampoline_addr, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(dirfd int, path string, times *[2]Timespec, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(libc_utimensat_trampoline_addr, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flags), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +var libc_utimensat_trampoline_addr uintptr + +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s new file mode 100644 index 0000000000..e1fbd4dfa8 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s @@ -0,0 +1,669 @@ +// go run mkasm.go openbsd riscv64 +// Code generated by the command above; DO NOT EDIT. + +#include "textflag.h" + +TEXT libc_getgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgroups(SB) +GLOBL ·libc_getgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgroups_trampoline_addr(SB)/8, $libc_getgroups_trampoline<>(SB) + +TEXT libc_setgroups_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgroups(SB) +GLOBL ·libc_setgroups_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgroups_trampoline_addr(SB)/8, $libc_setgroups_trampoline<>(SB) + +TEXT libc_wait4_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_wait4(SB) +GLOBL ·libc_wait4_trampoline_addr(SB), RODATA, $8 +DATA ·libc_wait4_trampoline_addr(SB)/8, $libc_wait4_trampoline<>(SB) + +TEXT libc_accept_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_accept(SB) +GLOBL ·libc_accept_trampoline_addr(SB), RODATA, $8 +DATA ·libc_accept_trampoline_addr(SB)/8, $libc_accept_trampoline<>(SB) + +TEXT libc_bind_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_bind(SB) +GLOBL ·libc_bind_trampoline_addr(SB), RODATA, $8 +DATA ·libc_bind_trampoline_addr(SB)/8, $libc_bind_trampoline<>(SB) + +TEXT libc_connect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_connect(SB) +GLOBL ·libc_connect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_connect_trampoline_addr(SB)/8, $libc_connect_trampoline<>(SB) + +TEXT libc_socket_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socket(SB) +GLOBL ·libc_socket_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socket_trampoline_addr(SB)/8, $libc_socket_trampoline<>(SB) + +TEXT libc_getsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockopt(SB) +GLOBL ·libc_getsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockopt_trampoline_addr(SB)/8, $libc_getsockopt_trampoline<>(SB) + +TEXT libc_setsockopt_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsockopt(SB) +GLOBL ·libc_setsockopt_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsockopt_trampoline_addr(SB)/8, $libc_setsockopt_trampoline<>(SB) + +TEXT libc_getpeername_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpeername(SB) +GLOBL ·libc_getpeername_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpeername_trampoline_addr(SB)/8, $libc_getpeername_trampoline<>(SB) + +TEXT libc_getsockname_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsockname(SB) +GLOBL ·libc_getsockname_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsockname_trampoline_addr(SB)/8, $libc_getsockname_trampoline<>(SB) + +TEXT libc_shutdown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_shutdown(SB) +GLOBL ·libc_shutdown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_shutdown_trampoline_addr(SB)/8, $libc_shutdown_trampoline<>(SB) + +TEXT libc_socketpair_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_socketpair(SB) +GLOBL ·libc_socketpair_trampoline_addr(SB), RODATA, $8 +DATA ·libc_socketpair_trampoline_addr(SB)/8, $libc_socketpair_trampoline<>(SB) + +TEXT libc_recvfrom_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvfrom(SB) +GLOBL ·libc_recvfrom_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvfrom_trampoline_addr(SB)/8, $libc_recvfrom_trampoline<>(SB) + +TEXT libc_sendto_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendto(SB) +GLOBL ·libc_sendto_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendto_trampoline_addr(SB)/8, $libc_sendto_trampoline<>(SB) + +TEXT libc_recvmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_recvmsg(SB) +GLOBL ·libc_recvmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_recvmsg_trampoline_addr(SB)/8, $libc_recvmsg_trampoline<>(SB) + +TEXT libc_sendmsg_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sendmsg(SB) +GLOBL ·libc_sendmsg_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sendmsg_trampoline_addr(SB)/8, $libc_sendmsg_trampoline<>(SB) + +TEXT libc_kevent_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kevent(SB) +GLOBL ·libc_kevent_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kevent_trampoline_addr(SB)/8, $libc_kevent_trampoline<>(SB) + +TEXT libc_utimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimes(SB) +GLOBL ·libc_utimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimes_trampoline_addr(SB)/8, $libc_utimes_trampoline<>(SB) + +TEXT libc_futimes_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_futimes(SB) +GLOBL ·libc_futimes_trampoline_addr(SB), RODATA, $8 +DATA ·libc_futimes_trampoline_addr(SB)/8, $libc_futimes_trampoline<>(SB) + +TEXT libc_poll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_poll(SB) +GLOBL ·libc_poll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_poll_trampoline_addr(SB)/8, $libc_poll_trampoline<>(SB) + +TEXT libc_madvise_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_madvise(SB) +GLOBL ·libc_madvise_trampoline_addr(SB), RODATA, $8 +DATA ·libc_madvise_trampoline_addr(SB)/8, $libc_madvise_trampoline<>(SB) + +TEXT libc_mlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlock(SB) +GLOBL ·libc_mlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlock_trampoline_addr(SB)/8, $libc_mlock_trampoline<>(SB) + +TEXT libc_mlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mlockall(SB) +GLOBL ·libc_mlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mlockall_trampoline_addr(SB)/8, $libc_mlockall_trampoline<>(SB) + +TEXT libc_mprotect_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mprotect(SB) +GLOBL ·libc_mprotect_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mprotect_trampoline_addr(SB)/8, $libc_mprotect_trampoline<>(SB) + +TEXT libc_msync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_msync(SB) +GLOBL ·libc_msync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_msync_trampoline_addr(SB)/8, $libc_msync_trampoline<>(SB) + +TEXT libc_munlock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlock(SB) +GLOBL ·libc_munlock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlock_trampoline_addr(SB)/8, $libc_munlock_trampoline<>(SB) + +TEXT libc_munlockall_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munlockall(SB) +GLOBL ·libc_munlockall_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munlockall_trampoline_addr(SB)/8, $libc_munlockall_trampoline<>(SB) + +TEXT libc_pipe2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pipe2(SB) +GLOBL ·libc_pipe2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pipe2_trampoline_addr(SB)/8, $libc_pipe2_trampoline<>(SB) + +TEXT libc_getdents_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getdents(SB) +GLOBL ·libc_getdents_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getdents_trampoline_addr(SB)/8, $libc_getdents_trampoline<>(SB) + +TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getcwd(SB) +GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB) + +TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ioctl(SB) +GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ioctl_trampoline_addr(SB)/8, $libc_ioctl_trampoline<>(SB) + +TEXT libc_sysctl_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sysctl(SB) +GLOBL ·libc_sysctl_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sysctl_trampoline_addr(SB)/8, $libc_sysctl_trampoline<>(SB) + +TEXT libc_ppoll_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ppoll(SB) +GLOBL ·libc_ppoll_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ppoll_trampoline_addr(SB)/8, $libc_ppoll_trampoline<>(SB) + +TEXT libc_access_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_access(SB) +GLOBL ·libc_access_trampoline_addr(SB), RODATA, $8 +DATA ·libc_access_trampoline_addr(SB)/8, $libc_access_trampoline<>(SB) + +TEXT libc_adjtime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_adjtime(SB) +GLOBL ·libc_adjtime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_adjtime_trampoline_addr(SB)/8, $libc_adjtime_trampoline<>(SB) + +TEXT libc_chdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chdir(SB) +GLOBL ·libc_chdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chdir_trampoline_addr(SB)/8, $libc_chdir_trampoline<>(SB) + +TEXT libc_chflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chflags(SB) +GLOBL ·libc_chflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chflags_trampoline_addr(SB)/8, $libc_chflags_trampoline<>(SB) + +TEXT libc_chmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chmod(SB) +GLOBL ·libc_chmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chmod_trampoline_addr(SB)/8, $libc_chmod_trampoline<>(SB) + +TEXT libc_chown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chown(SB) +GLOBL ·libc_chown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chown_trampoline_addr(SB)/8, $libc_chown_trampoline<>(SB) + +TEXT libc_chroot_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_chroot(SB) +GLOBL ·libc_chroot_trampoline_addr(SB), RODATA, $8 +DATA ·libc_chroot_trampoline_addr(SB)/8, $libc_chroot_trampoline<>(SB) + +TEXT libc_clock_gettime_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_clock_gettime(SB) +GLOBL ·libc_clock_gettime_trampoline_addr(SB), RODATA, $8 +DATA ·libc_clock_gettime_trampoline_addr(SB)/8, $libc_clock_gettime_trampoline<>(SB) + +TEXT libc_close_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_close(SB) +GLOBL ·libc_close_trampoline_addr(SB), RODATA, $8 +DATA ·libc_close_trampoline_addr(SB)/8, $libc_close_trampoline<>(SB) + +TEXT libc_dup_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup(SB) +GLOBL ·libc_dup_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup_trampoline_addr(SB)/8, $libc_dup_trampoline<>(SB) + +TEXT libc_dup2_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup2(SB) +GLOBL ·libc_dup2_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup2_trampoline_addr(SB)/8, $libc_dup2_trampoline<>(SB) + +TEXT libc_dup3_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_dup3(SB) +GLOBL ·libc_dup3_trampoline_addr(SB), RODATA, $8 +DATA ·libc_dup3_trampoline_addr(SB)/8, $libc_dup3_trampoline<>(SB) + +TEXT libc_exit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_exit(SB) +GLOBL ·libc_exit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_exit_trampoline_addr(SB)/8, $libc_exit_trampoline<>(SB) + +TEXT libc_faccessat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_faccessat(SB) +GLOBL ·libc_faccessat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_faccessat_trampoline_addr(SB)/8, $libc_faccessat_trampoline<>(SB) + +TEXT libc_fchdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchdir(SB) +GLOBL ·libc_fchdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchdir_trampoline_addr(SB)/8, $libc_fchdir_trampoline<>(SB) + +TEXT libc_fchflags_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchflags(SB) +GLOBL ·libc_fchflags_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchflags_trampoline_addr(SB)/8, $libc_fchflags_trampoline<>(SB) + +TEXT libc_fchmod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmod(SB) +GLOBL ·libc_fchmod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmod_trampoline_addr(SB)/8, $libc_fchmod_trampoline<>(SB) + +TEXT libc_fchmodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchmodat(SB) +GLOBL ·libc_fchmodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchmodat_trampoline_addr(SB)/8, $libc_fchmodat_trampoline<>(SB) + +TEXT libc_fchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchown(SB) +GLOBL ·libc_fchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchown_trampoline_addr(SB)/8, $libc_fchown_trampoline<>(SB) + +TEXT libc_fchownat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fchownat(SB) +GLOBL ·libc_fchownat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fchownat_trampoline_addr(SB)/8, $libc_fchownat_trampoline<>(SB) + +TEXT libc_flock_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_flock(SB) +GLOBL ·libc_flock_trampoline_addr(SB), RODATA, $8 +DATA ·libc_flock_trampoline_addr(SB)/8, $libc_flock_trampoline<>(SB) + +TEXT libc_fpathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fpathconf(SB) +GLOBL ·libc_fpathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fpathconf_trampoline_addr(SB)/8, $libc_fpathconf_trampoline<>(SB) + +TEXT libc_fstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstat(SB) +GLOBL ·libc_fstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstat_trampoline_addr(SB)/8, $libc_fstat_trampoline<>(SB) + +TEXT libc_fstatat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatat(SB) +GLOBL ·libc_fstatat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatat_trampoline_addr(SB)/8, $libc_fstatat_trampoline<>(SB) + +TEXT libc_fstatfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fstatfs(SB) +GLOBL ·libc_fstatfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fstatfs_trampoline_addr(SB)/8, $libc_fstatfs_trampoline<>(SB) + +TEXT libc_fsync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_fsync(SB) +GLOBL ·libc_fsync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_fsync_trampoline_addr(SB)/8, $libc_fsync_trampoline<>(SB) + +TEXT libc_ftruncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_ftruncate(SB) +GLOBL ·libc_ftruncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_ftruncate_trampoline_addr(SB)/8, $libc_ftruncate_trampoline<>(SB) + +TEXT libc_getegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getegid(SB) +GLOBL ·libc_getegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getegid_trampoline_addr(SB)/8, $libc_getegid_trampoline<>(SB) + +TEXT libc_geteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_geteuid(SB) +GLOBL ·libc_geteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_geteuid_trampoline_addr(SB)/8, $libc_geteuid_trampoline<>(SB) + +TEXT libc_getgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getgid(SB) +GLOBL ·libc_getgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getgid_trampoline_addr(SB)/8, $libc_getgid_trampoline<>(SB) + +TEXT libc_getpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgid(SB) +GLOBL ·libc_getpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgid_trampoline_addr(SB)/8, $libc_getpgid_trampoline<>(SB) + +TEXT libc_getpgrp_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpgrp(SB) +GLOBL ·libc_getpgrp_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpgrp_trampoline_addr(SB)/8, $libc_getpgrp_trampoline<>(SB) + +TEXT libc_getpid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpid(SB) +GLOBL ·libc_getpid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpid_trampoline_addr(SB)/8, $libc_getpid_trampoline<>(SB) + +TEXT libc_getppid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getppid(SB) +GLOBL ·libc_getppid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getppid_trampoline_addr(SB)/8, $libc_getppid_trampoline<>(SB) + +TEXT libc_getpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getpriority(SB) +GLOBL ·libc_getpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getpriority_trampoline_addr(SB)/8, $libc_getpriority_trampoline<>(SB) + +TEXT libc_getrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrlimit(SB) +GLOBL ·libc_getrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrlimit_trampoline_addr(SB)/8, $libc_getrlimit_trampoline<>(SB) + +TEXT libc_getrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrtable(SB) +GLOBL ·libc_getrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrtable_trampoline_addr(SB)/8, $libc_getrtable_trampoline<>(SB) + +TEXT libc_getrusage_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getrusage(SB) +GLOBL ·libc_getrusage_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getrusage_trampoline_addr(SB)/8, $libc_getrusage_trampoline<>(SB) + +TEXT libc_getsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getsid(SB) +GLOBL ·libc_getsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getsid_trampoline_addr(SB)/8, $libc_getsid_trampoline<>(SB) + +TEXT libc_gettimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_gettimeofday(SB) +GLOBL ·libc_gettimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_gettimeofday_trampoline_addr(SB)/8, $libc_gettimeofday_trampoline<>(SB) + +TEXT libc_getuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_getuid(SB) +GLOBL ·libc_getuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_getuid_trampoline_addr(SB)/8, $libc_getuid_trampoline<>(SB) + +TEXT libc_issetugid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_issetugid(SB) +GLOBL ·libc_issetugid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_issetugid_trampoline_addr(SB)/8, $libc_issetugid_trampoline<>(SB) + +TEXT libc_kill_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kill(SB) +GLOBL ·libc_kill_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kill_trampoline_addr(SB)/8, $libc_kill_trampoline<>(SB) + +TEXT libc_kqueue_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_kqueue(SB) +GLOBL ·libc_kqueue_trampoline_addr(SB), RODATA, $8 +DATA ·libc_kqueue_trampoline_addr(SB)/8, $libc_kqueue_trampoline<>(SB) + +TEXT libc_lchown_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lchown(SB) +GLOBL ·libc_lchown_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lchown_trampoline_addr(SB)/8, $libc_lchown_trampoline<>(SB) + +TEXT libc_link_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_link(SB) +GLOBL ·libc_link_trampoline_addr(SB), RODATA, $8 +DATA ·libc_link_trampoline_addr(SB)/8, $libc_link_trampoline<>(SB) + +TEXT libc_linkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_linkat(SB) +GLOBL ·libc_linkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_linkat_trampoline_addr(SB)/8, $libc_linkat_trampoline<>(SB) + +TEXT libc_listen_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_listen(SB) +GLOBL ·libc_listen_trampoline_addr(SB), RODATA, $8 +DATA ·libc_listen_trampoline_addr(SB)/8, $libc_listen_trampoline<>(SB) + +TEXT libc_lstat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lstat(SB) +GLOBL ·libc_lstat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lstat_trampoline_addr(SB)/8, $libc_lstat_trampoline<>(SB) + +TEXT libc_mkdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdir(SB) +GLOBL ·libc_mkdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdir_trampoline_addr(SB)/8, $libc_mkdir_trampoline<>(SB) + +TEXT libc_mkdirat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkdirat(SB) +GLOBL ·libc_mkdirat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkdirat_trampoline_addr(SB)/8, $libc_mkdirat_trampoline<>(SB) + +TEXT libc_mkfifo_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifo(SB) +GLOBL ·libc_mkfifo_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifo_trampoline_addr(SB)/8, $libc_mkfifo_trampoline<>(SB) + +TEXT libc_mkfifoat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mkfifoat(SB) +GLOBL ·libc_mkfifoat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mkfifoat_trampoline_addr(SB)/8, $libc_mkfifoat_trampoline<>(SB) + +TEXT libc_mknod_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknod(SB) +GLOBL ·libc_mknod_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknod_trampoline_addr(SB)/8, $libc_mknod_trampoline<>(SB) + +TEXT libc_mknodat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mknodat(SB) +GLOBL ·libc_mknodat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mknodat_trampoline_addr(SB)/8, $libc_mknodat_trampoline<>(SB) + +TEXT libc_nanosleep_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_nanosleep(SB) +GLOBL ·libc_nanosleep_trampoline_addr(SB), RODATA, $8 +DATA ·libc_nanosleep_trampoline_addr(SB)/8, $libc_nanosleep_trampoline<>(SB) + +TEXT libc_open_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_open(SB) +GLOBL ·libc_open_trampoline_addr(SB), RODATA, $8 +DATA ·libc_open_trampoline_addr(SB)/8, $libc_open_trampoline<>(SB) + +TEXT libc_openat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_openat(SB) +GLOBL ·libc_openat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_openat_trampoline_addr(SB)/8, $libc_openat_trampoline<>(SB) + +TEXT libc_pathconf_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pathconf(SB) +GLOBL ·libc_pathconf_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pathconf_trampoline_addr(SB)/8, $libc_pathconf_trampoline<>(SB) + +TEXT libc_pread_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pread(SB) +GLOBL ·libc_pread_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pread_trampoline_addr(SB)/8, $libc_pread_trampoline<>(SB) + +TEXT libc_pwrite_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_pwrite(SB) +GLOBL ·libc_pwrite_trampoline_addr(SB), RODATA, $8 +DATA ·libc_pwrite_trampoline_addr(SB)/8, $libc_pwrite_trampoline<>(SB) + +TEXT libc_read_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_read(SB) +GLOBL ·libc_read_trampoline_addr(SB), RODATA, $8 +DATA ·libc_read_trampoline_addr(SB)/8, $libc_read_trampoline<>(SB) + +TEXT libc_readlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlink(SB) +GLOBL ·libc_readlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlink_trampoline_addr(SB)/8, $libc_readlink_trampoline<>(SB) + +TEXT libc_readlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_readlinkat(SB) +GLOBL ·libc_readlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_readlinkat_trampoline_addr(SB)/8, $libc_readlinkat_trampoline<>(SB) + +TEXT libc_rename_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rename(SB) +GLOBL ·libc_rename_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rename_trampoline_addr(SB)/8, $libc_rename_trampoline<>(SB) + +TEXT libc_renameat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_renameat(SB) +GLOBL ·libc_renameat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_renameat_trampoline_addr(SB)/8, $libc_renameat_trampoline<>(SB) + +TEXT libc_revoke_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_revoke(SB) +GLOBL ·libc_revoke_trampoline_addr(SB), RODATA, $8 +DATA ·libc_revoke_trampoline_addr(SB)/8, $libc_revoke_trampoline<>(SB) + +TEXT libc_rmdir_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_rmdir(SB) +GLOBL ·libc_rmdir_trampoline_addr(SB), RODATA, $8 +DATA ·libc_rmdir_trampoline_addr(SB)/8, $libc_rmdir_trampoline<>(SB) + +TEXT libc_lseek_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_lseek(SB) +GLOBL ·libc_lseek_trampoline_addr(SB), RODATA, $8 +DATA ·libc_lseek_trampoline_addr(SB)/8, $libc_lseek_trampoline<>(SB) + +TEXT libc_select_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_select(SB) +GLOBL ·libc_select_trampoline_addr(SB), RODATA, $8 +DATA ·libc_select_trampoline_addr(SB)/8, $libc_select_trampoline<>(SB) + +TEXT libc_setegid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setegid(SB) +GLOBL ·libc_setegid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setegid_trampoline_addr(SB)/8, $libc_setegid_trampoline<>(SB) + +TEXT libc_seteuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_seteuid(SB) +GLOBL ·libc_seteuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_seteuid_trampoline_addr(SB)/8, $libc_seteuid_trampoline<>(SB) + +TEXT libc_setgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setgid(SB) +GLOBL ·libc_setgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setgid_trampoline_addr(SB)/8, $libc_setgid_trampoline<>(SB) + +TEXT libc_setlogin_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setlogin(SB) +GLOBL ·libc_setlogin_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setlogin_trampoline_addr(SB)/8, $libc_setlogin_trampoline<>(SB) + +TEXT libc_setpgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpgid(SB) +GLOBL ·libc_setpgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpgid_trampoline_addr(SB)/8, $libc_setpgid_trampoline<>(SB) + +TEXT libc_setpriority_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setpriority(SB) +GLOBL ·libc_setpriority_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setpriority_trampoline_addr(SB)/8, $libc_setpriority_trampoline<>(SB) + +TEXT libc_setregid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setregid(SB) +GLOBL ·libc_setregid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setregid_trampoline_addr(SB)/8, $libc_setregid_trampoline<>(SB) + +TEXT libc_setreuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setreuid(SB) +GLOBL ·libc_setreuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setreuid_trampoline_addr(SB)/8, $libc_setreuid_trampoline<>(SB) + +TEXT libc_setresgid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresgid(SB) +GLOBL ·libc_setresgid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresgid_trampoline_addr(SB)/8, $libc_setresgid_trampoline<>(SB) + +TEXT libc_setresuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setresuid(SB) +GLOBL ·libc_setresuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setresuid_trampoline_addr(SB)/8, $libc_setresuid_trampoline<>(SB) + +TEXT libc_setrlimit_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrlimit(SB) +GLOBL ·libc_setrlimit_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrlimit_trampoline_addr(SB)/8, $libc_setrlimit_trampoline<>(SB) + +TEXT libc_setrtable_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setrtable(SB) +GLOBL ·libc_setrtable_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setrtable_trampoline_addr(SB)/8, $libc_setrtable_trampoline<>(SB) + +TEXT libc_setsid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setsid(SB) +GLOBL ·libc_setsid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setsid_trampoline_addr(SB)/8, $libc_setsid_trampoline<>(SB) + +TEXT libc_settimeofday_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_settimeofday(SB) +GLOBL ·libc_settimeofday_trampoline_addr(SB), RODATA, $8 +DATA ·libc_settimeofday_trampoline_addr(SB)/8, $libc_settimeofday_trampoline<>(SB) + +TEXT libc_setuid_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_setuid(SB) +GLOBL ·libc_setuid_trampoline_addr(SB), RODATA, $8 +DATA ·libc_setuid_trampoline_addr(SB)/8, $libc_setuid_trampoline<>(SB) + +TEXT libc_stat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_stat(SB) +GLOBL ·libc_stat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_stat_trampoline_addr(SB)/8, $libc_stat_trampoline<>(SB) + +TEXT libc_statfs_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_statfs(SB) +GLOBL ·libc_statfs_trampoline_addr(SB), RODATA, $8 +DATA ·libc_statfs_trampoline_addr(SB)/8, $libc_statfs_trampoline<>(SB) + +TEXT libc_symlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlink(SB) +GLOBL ·libc_symlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlink_trampoline_addr(SB)/8, $libc_symlink_trampoline<>(SB) + +TEXT libc_symlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_symlinkat(SB) +GLOBL ·libc_symlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_symlinkat_trampoline_addr(SB)/8, $libc_symlinkat_trampoline<>(SB) + +TEXT libc_sync_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_sync(SB) +GLOBL ·libc_sync_trampoline_addr(SB), RODATA, $8 +DATA ·libc_sync_trampoline_addr(SB)/8, $libc_sync_trampoline<>(SB) + +TEXT libc_truncate_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_truncate(SB) +GLOBL ·libc_truncate_trampoline_addr(SB), RODATA, $8 +DATA ·libc_truncate_trampoline_addr(SB)/8, $libc_truncate_trampoline<>(SB) + +TEXT libc_umask_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_umask(SB) +GLOBL ·libc_umask_trampoline_addr(SB), RODATA, $8 +DATA ·libc_umask_trampoline_addr(SB)/8, $libc_umask_trampoline<>(SB) + +TEXT libc_unlink_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlink(SB) +GLOBL ·libc_unlink_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlink_trampoline_addr(SB)/8, $libc_unlink_trampoline<>(SB) + +TEXT libc_unlinkat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unlinkat(SB) +GLOBL ·libc_unlinkat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unlinkat_trampoline_addr(SB)/8, $libc_unlinkat_trampoline<>(SB) + +TEXT libc_unmount_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_unmount(SB) +GLOBL ·libc_unmount_trampoline_addr(SB), RODATA, $8 +DATA ·libc_unmount_trampoline_addr(SB)/8, $libc_unmount_trampoline<>(SB) + +TEXT libc_write_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_write(SB) +GLOBL ·libc_write_trampoline_addr(SB), RODATA, $8 +DATA ·libc_write_trampoline_addr(SB)/8, $libc_write_trampoline<>(SB) + +TEXT libc_mmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_mmap(SB) +GLOBL ·libc_mmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_mmap_trampoline_addr(SB)/8, $libc_mmap_trampoline<>(SB) + +TEXT libc_munmap_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_munmap(SB) +GLOBL ·libc_munmap_trampoline_addr(SB), RODATA, $8 +DATA ·libc_munmap_trampoline_addr(SB)/8, $libc_munmap_trampoline<>(SB) + +TEXT libc_utimensat_trampoline<>(SB),NOSPLIT,$0-0 + JMP libc_utimensat(SB) +GLOBL ·libc_utimensat_trampoline_addr(SB), RODATA, $8 +DATA ·libc_utimensat_trampoline_addr(SB)/8, $libc_utimensat_trampoline<>(SB) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go new file mode 100644 index 0000000000..4873a1e5d3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go @@ -0,0 +1,2117 @@ +// go run mksyscall_solaris.go -tags solaris,amd64 syscall_solaris.go syscall_solaris_amd64.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build solaris && amd64 +// +build solaris,amd64 + +package unix + +import ( + "syscall" + "unsafe" +) + +//go:cgo_import_dynamic libc_pipe pipe "libc.so" +//go:cgo_import_dynamic libc_pipe2 pipe2 "libc.so" +//go:cgo_import_dynamic libc_getsockname getsockname "libsocket.so" +//go:cgo_import_dynamic libc_getcwd getcwd "libc.so" +//go:cgo_import_dynamic libc_getgroups getgroups "libc.so" +//go:cgo_import_dynamic libc_setgroups setgroups "libc.so" +//go:cgo_import_dynamic libc_wait4 wait4 "libc.so" +//go:cgo_import_dynamic libc_gethostname gethostname "libc.so" +//go:cgo_import_dynamic libc_utimes utimes "libc.so" +//go:cgo_import_dynamic libc_utimensat utimensat "libc.so" +//go:cgo_import_dynamic libc_fcntl fcntl "libc.so" +//go:cgo_import_dynamic libc_futimesat futimesat "libc.so" +//go:cgo_import_dynamic libc_accept accept "libsocket.so" +//go:cgo_import_dynamic libc___xnet_recvmsg __xnet_recvmsg "libsocket.so" +//go:cgo_import_dynamic libc___xnet_sendmsg __xnet_sendmsg "libsocket.so" +//go:cgo_import_dynamic libc_acct acct "libc.so" +//go:cgo_import_dynamic libc___makedev __makedev "libc.so" +//go:cgo_import_dynamic libc___major __major "libc.so" +//go:cgo_import_dynamic libc___minor __minor "libc.so" +//go:cgo_import_dynamic libc_ioctl ioctl "libc.so" +//go:cgo_import_dynamic libc_poll poll "libc.so" +//go:cgo_import_dynamic libc_access access "libc.so" +//go:cgo_import_dynamic libc_adjtime adjtime "libc.so" +//go:cgo_import_dynamic libc_chdir chdir "libc.so" +//go:cgo_import_dynamic libc_chmod chmod "libc.so" +//go:cgo_import_dynamic libc_chown chown "libc.so" +//go:cgo_import_dynamic libc_chroot chroot "libc.so" +//go:cgo_import_dynamic libc_clockgettime clockgettime "libc.so" +//go:cgo_import_dynamic libc_close close "libc.so" +//go:cgo_import_dynamic libc_creat creat "libc.so" +//go:cgo_import_dynamic libc_dup dup "libc.so" +//go:cgo_import_dynamic libc_dup2 dup2 "libc.so" +//go:cgo_import_dynamic libc_exit exit "libc.so" +//go:cgo_import_dynamic libc_faccessat faccessat "libc.so" +//go:cgo_import_dynamic libc_fchdir fchdir "libc.so" +//go:cgo_import_dynamic libc_fchmod fchmod "libc.so" +//go:cgo_import_dynamic libc_fchmodat fchmodat "libc.so" +//go:cgo_import_dynamic libc_fchown fchown "libc.so" +//go:cgo_import_dynamic libc_fchownat fchownat "libc.so" +//go:cgo_import_dynamic libc_fdatasync fdatasync "libc.so" +//go:cgo_import_dynamic libc_flock flock "libc.so" +//go:cgo_import_dynamic libc_fpathconf fpathconf "libc.so" +//go:cgo_import_dynamic libc_fstat fstat "libc.so" +//go:cgo_import_dynamic libc_fstatat fstatat "libc.so" +//go:cgo_import_dynamic libc_fstatvfs fstatvfs "libc.so" +//go:cgo_import_dynamic libc_getdents getdents "libc.so" +//go:cgo_import_dynamic libc_getgid getgid "libc.so" +//go:cgo_import_dynamic libc_getpid getpid "libc.so" +//go:cgo_import_dynamic libc_getpgid getpgid "libc.so" +//go:cgo_import_dynamic libc_getpgrp getpgrp "libc.so" +//go:cgo_import_dynamic libc_geteuid geteuid "libc.so" +//go:cgo_import_dynamic libc_getegid getegid "libc.so" +//go:cgo_import_dynamic libc_getppid getppid "libc.so" +//go:cgo_import_dynamic libc_getpriority getpriority "libc.so" +//go:cgo_import_dynamic libc_getrlimit getrlimit "libc.so" +//go:cgo_import_dynamic libc_getrusage getrusage "libc.so" +//go:cgo_import_dynamic libc_getsid getsid "libc.so" +//go:cgo_import_dynamic libc_gettimeofday gettimeofday "libc.so" +//go:cgo_import_dynamic libc_getuid getuid "libc.so" +//go:cgo_import_dynamic libc_kill kill "libc.so" +//go:cgo_import_dynamic libc_lchown lchown "libc.so" +//go:cgo_import_dynamic libc_link link "libc.so" +//go:cgo_import_dynamic libc___xnet_llisten __xnet_llisten "libsocket.so" +//go:cgo_import_dynamic libc_lstat lstat "libc.so" +//go:cgo_import_dynamic libc_madvise madvise "libc.so" +//go:cgo_import_dynamic libc_mkdir mkdir "libc.so" +//go:cgo_import_dynamic libc_mkdirat mkdirat "libc.so" +//go:cgo_import_dynamic libc_mkfifo mkfifo "libc.so" +//go:cgo_import_dynamic libc_mkfifoat mkfifoat "libc.so" +//go:cgo_import_dynamic libc_mknod mknod "libc.so" +//go:cgo_import_dynamic libc_mknodat mknodat "libc.so" +//go:cgo_import_dynamic libc_mlock mlock "libc.so" +//go:cgo_import_dynamic libc_mlockall mlockall "libc.so" +//go:cgo_import_dynamic libc_mprotect mprotect "libc.so" +//go:cgo_import_dynamic libc_msync msync "libc.so" +//go:cgo_import_dynamic libc_munlock munlock "libc.so" +//go:cgo_import_dynamic libc_munlockall munlockall "libc.so" +//go:cgo_import_dynamic libc_nanosleep nanosleep "libc.so" +//go:cgo_import_dynamic libc_open open "libc.so" +//go:cgo_import_dynamic libc_openat openat "libc.so" +//go:cgo_import_dynamic libc_pathconf pathconf "libc.so" +//go:cgo_import_dynamic libc_pause pause "libc.so" +//go:cgo_import_dynamic libc_pread pread "libc.so" +//go:cgo_import_dynamic libc_pwrite pwrite "libc.so" +//go:cgo_import_dynamic libc_read read "libc.so" +//go:cgo_import_dynamic libc_readlink readlink "libc.so" +//go:cgo_import_dynamic libc_rename rename "libc.so" +//go:cgo_import_dynamic libc_renameat renameat "libc.so" +//go:cgo_import_dynamic libc_rmdir rmdir "libc.so" +//go:cgo_import_dynamic libc_lseek lseek "libc.so" +//go:cgo_import_dynamic libc_select select "libc.so" +//go:cgo_import_dynamic libc_setegid setegid "libc.so" +//go:cgo_import_dynamic libc_seteuid seteuid "libc.so" +//go:cgo_import_dynamic libc_setgid setgid "libc.so" +//go:cgo_import_dynamic libc_sethostname sethostname "libc.so" +//go:cgo_import_dynamic libc_setpgid setpgid "libc.so" +//go:cgo_import_dynamic libc_setpriority setpriority "libc.so" +//go:cgo_import_dynamic libc_setregid setregid "libc.so" +//go:cgo_import_dynamic libc_setreuid setreuid "libc.so" +//go:cgo_import_dynamic libc_setrlimit setrlimit "libc.so" +//go:cgo_import_dynamic libc_setsid setsid "libc.so" +//go:cgo_import_dynamic libc_setuid setuid "libc.so" +//go:cgo_import_dynamic libc_shutdown shutdown "libsocket.so" +//go:cgo_import_dynamic libc_stat stat "libc.so" +//go:cgo_import_dynamic libc_statvfs statvfs "libc.so" +//go:cgo_import_dynamic libc_symlink symlink "libc.so" +//go:cgo_import_dynamic libc_sync sync "libc.so" +//go:cgo_import_dynamic libc_sysconf sysconf "libc.so" +//go:cgo_import_dynamic libc_times times "libc.so" +//go:cgo_import_dynamic libc_truncate truncate "libc.so" +//go:cgo_import_dynamic libc_fsync fsync "libc.so" +//go:cgo_import_dynamic libc_ftruncate ftruncate "libc.so" +//go:cgo_import_dynamic libc_umask umask "libc.so" +//go:cgo_import_dynamic libc_uname uname "libc.so" +//go:cgo_import_dynamic libc_umount umount "libc.so" +//go:cgo_import_dynamic libc_unlink unlink "libc.so" +//go:cgo_import_dynamic libc_unlinkat unlinkat "libc.so" +//go:cgo_import_dynamic libc_ustat ustat "libc.so" +//go:cgo_import_dynamic libc_utime utime "libc.so" +//go:cgo_import_dynamic libc___xnet_bind __xnet_bind "libsocket.so" +//go:cgo_import_dynamic libc___xnet_connect __xnet_connect "libsocket.so" +//go:cgo_import_dynamic libc_mmap mmap "libc.so" +//go:cgo_import_dynamic libc_munmap munmap "libc.so" +//go:cgo_import_dynamic libc_sendfile sendfile "libsendfile.so" +//go:cgo_import_dynamic libc___xnet_sendto __xnet_sendto "libsocket.so" +//go:cgo_import_dynamic libc___xnet_socket __xnet_socket "libsocket.so" +//go:cgo_import_dynamic libc___xnet_socketpair __xnet_socketpair "libsocket.so" +//go:cgo_import_dynamic libc_write write "libc.so" +//go:cgo_import_dynamic libc___xnet_getsockopt __xnet_getsockopt "libsocket.so" +//go:cgo_import_dynamic libc_getpeername getpeername "libsocket.so" +//go:cgo_import_dynamic libc_setsockopt setsockopt "libsocket.so" +//go:cgo_import_dynamic libc_recvfrom recvfrom "libsocket.so" +//go:cgo_import_dynamic libc_port_create port_create "libc.so" +//go:cgo_import_dynamic libc_port_associate port_associate "libc.so" +//go:cgo_import_dynamic libc_port_dissociate port_dissociate "libc.so" +//go:cgo_import_dynamic libc_port_get port_get "libc.so" +//go:cgo_import_dynamic libc_port_getn port_getn "libc.so" +//go:cgo_import_dynamic libc_putmsg putmsg "libc.so" +//go:cgo_import_dynamic libc_getmsg getmsg "libc.so" + +//go:linkname procpipe libc_pipe +//go:linkname procpipe2 libc_pipe2 +//go:linkname procgetsockname libc_getsockname +//go:linkname procGetcwd libc_getcwd +//go:linkname procgetgroups libc_getgroups +//go:linkname procsetgroups libc_setgroups +//go:linkname procwait4 libc_wait4 +//go:linkname procgethostname libc_gethostname +//go:linkname procutimes libc_utimes +//go:linkname procutimensat libc_utimensat +//go:linkname procfcntl libc_fcntl +//go:linkname procfutimesat libc_futimesat +//go:linkname procaccept libc_accept +//go:linkname proc__xnet_recvmsg libc___xnet_recvmsg +//go:linkname proc__xnet_sendmsg libc___xnet_sendmsg +//go:linkname procacct libc_acct +//go:linkname proc__makedev libc___makedev +//go:linkname proc__major libc___major +//go:linkname proc__minor libc___minor +//go:linkname procioctl libc_ioctl +//go:linkname procpoll libc_poll +//go:linkname procAccess libc_access +//go:linkname procAdjtime libc_adjtime +//go:linkname procChdir libc_chdir +//go:linkname procChmod libc_chmod +//go:linkname procChown libc_chown +//go:linkname procChroot libc_chroot +//go:linkname procClockGettime libc_clockgettime +//go:linkname procClose libc_close +//go:linkname procCreat libc_creat +//go:linkname procDup libc_dup +//go:linkname procDup2 libc_dup2 +//go:linkname procExit libc_exit +//go:linkname procFaccessat libc_faccessat +//go:linkname procFchdir libc_fchdir +//go:linkname procFchmod libc_fchmod +//go:linkname procFchmodat libc_fchmodat +//go:linkname procFchown libc_fchown +//go:linkname procFchownat libc_fchownat +//go:linkname procFdatasync libc_fdatasync +//go:linkname procFlock libc_flock +//go:linkname procFpathconf libc_fpathconf +//go:linkname procFstat libc_fstat +//go:linkname procFstatat libc_fstatat +//go:linkname procFstatvfs libc_fstatvfs +//go:linkname procGetdents libc_getdents +//go:linkname procGetgid libc_getgid +//go:linkname procGetpid libc_getpid +//go:linkname procGetpgid libc_getpgid +//go:linkname procGetpgrp libc_getpgrp +//go:linkname procGeteuid libc_geteuid +//go:linkname procGetegid libc_getegid +//go:linkname procGetppid libc_getppid +//go:linkname procGetpriority libc_getpriority +//go:linkname procGetrlimit libc_getrlimit +//go:linkname procGetrusage libc_getrusage +//go:linkname procGetsid libc_getsid +//go:linkname procGettimeofday libc_gettimeofday +//go:linkname procGetuid libc_getuid +//go:linkname procKill libc_kill +//go:linkname procLchown libc_lchown +//go:linkname procLink libc_link +//go:linkname proc__xnet_llisten libc___xnet_llisten +//go:linkname procLstat libc_lstat +//go:linkname procMadvise libc_madvise +//go:linkname procMkdir libc_mkdir +//go:linkname procMkdirat libc_mkdirat +//go:linkname procMkfifo libc_mkfifo +//go:linkname procMkfifoat libc_mkfifoat +//go:linkname procMknod libc_mknod +//go:linkname procMknodat libc_mknodat +//go:linkname procMlock libc_mlock +//go:linkname procMlockall libc_mlockall +//go:linkname procMprotect libc_mprotect +//go:linkname procMsync libc_msync +//go:linkname procMunlock libc_munlock +//go:linkname procMunlockall libc_munlockall +//go:linkname procNanosleep libc_nanosleep +//go:linkname procOpen libc_open +//go:linkname procOpenat libc_openat +//go:linkname procPathconf libc_pathconf +//go:linkname procPause libc_pause +//go:linkname procpread libc_pread +//go:linkname procpwrite libc_pwrite +//go:linkname procread libc_read +//go:linkname procReadlink libc_readlink +//go:linkname procRename libc_rename +//go:linkname procRenameat libc_renameat +//go:linkname procRmdir libc_rmdir +//go:linkname proclseek libc_lseek +//go:linkname procSelect libc_select +//go:linkname procSetegid libc_setegid +//go:linkname procSeteuid libc_seteuid +//go:linkname procSetgid libc_setgid +//go:linkname procSethostname libc_sethostname +//go:linkname procSetpgid libc_setpgid +//go:linkname procSetpriority libc_setpriority +//go:linkname procSetregid libc_setregid +//go:linkname procSetreuid libc_setreuid +//go:linkname procSetrlimit libc_setrlimit +//go:linkname procSetsid libc_setsid +//go:linkname procSetuid libc_setuid +//go:linkname procshutdown libc_shutdown +//go:linkname procStat libc_stat +//go:linkname procStatvfs libc_statvfs +//go:linkname procSymlink libc_symlink +//go:linkname procSync libc_sync +//go:linkname procSysconf libc_sysconf +//go:linkname procTimes libc_times +//go:linkname procTruncate libc_truncate +//go:linkname procFsync libc_fsync +//go:linkname procFtruncate libc_ftruncate +//go:linkname procUmask libc_umask +//go:linkname procUname libc_uname +//go:linkname procumount libc_umount +//go:linkname procUnlink libc_unlink +//go:linkname procUnlinkat libc_unlinkat +//go:linkname procUstat libc_ustat +//go:linkname procUtime libc_utime +//go:linkname proc__xnet_bind libc___xnet_bind +//go:linkname proc__xnet_connect libc___xnet_connect +//go:linkname procmmap libc_mmap +//go:linkname procmunmap libc_munmap +//go:linkname procsendfile libc_sendfile +//go:linkname proc__xnet_sendto libc___xnet_sendto +//go:linkname proc__xnet_socket libc___xnet_socket +//go:linkname proc__xnet_socketpair libc___xnet_socketpair +//go:linkname procwrite libc_write +//go:linkname proc__xnet_getsockopt libc___xnet_getsockopt +//go:linkname procgetpeername libc_getpeername +//go:linkname procsetsockopt libc_setsockopt +//go:linkname procrecvfrom libc_recvfrom +//go:linkname procport_create libc_port_create +//go:linkname procport_associate libc_port_associate +//go:linkname procport_dissociate libc_port_dissociate +//go:linkname procport_get libc_port_get +//go:linkname procport_getn libc_port_getn +//go:linkname procputmsg libc_putmsg +//go:linkname procgetmsg libc_getmsg + +var ( + procpipe, + procpipe2, + procgetsockname, + procGetcwd, + procgetgroups, + procsetgroups, + procwait4, + procgethostname, + procutimes, + procutimensat, + procfcntl, + procfutimesat, + procaccept, + proc__xnet_recvmsg, + proc__xnet_sendmsg, + procacct, + proc__makedev, + proc__major, + proc__minor, + procioctl, + procpoll, + procAccess, + procAdjtime, + procChdir, + procChmod, + procChown, + procChroot, + procClockGettime, + procClose, + procCreat, + procDup, + procDup2, + procExit, + procFaccessat, + procFchdir, + procFchmod, + procFchmodat, + procFchown, + procFchownat, + procFdatasync, + procFlock, + procFpathconf, + procFstat, + procFstatat, + procFstatvfs, + procGetdents, + procGetgid, + procGetpid, + procGetpgid, + procGetpgrp, + procGeteuid, + procGetegid, + procGetppid, + procGetpriority, + procGetrlimit, + procGetrusage, + procGetsid, + procGettimeofday, + procGetuid, + procKill, + procLchown, + procLink, + proc__xnet_llisten, + procLstat, + procMadvise, + procMkdir, + procMkdirat, + procMkfifo, + procMkfifoat, + procMknod, + procMknodat, + procMlock, + procMlockall, + procMprotect, + procMsync, + procMunlock, + procMunlockall, + procNanosleep, + procOpen, + procOpenat, + procPathconf, + procPause, + procpread, + procpwrite, + procread, + procReadlink, + procRename, + procRenameat, + procRmdir, + proclseek, + procSelect, + procSetegid, + procSeteuid, + procSetgid, + procSethostname, + procSetpgid, + procSetpriority, + procSetregid, + procSetreuid, + procSetrlimit, + procSetsid, + procSetuid, + procshutdown, + procStat, + procStatvfs, + procSymlink, + procSync, + procSysconf, + procTimes, + procTruncate, + procFsync, + procFtruncate, + procUmask, + procUname, + procumount, + procUnlink, + procUnlinkat, + procUstat, + procUtime, + proc__xnet_bind, + proc__xnet_connect, + procmmap, + procmunmap, + procsendfile, + proc__xnet_sendto, + proc__xnet_socket, + proc__xnet_socketpair, + procwrite, + proc__xnet_getsockopt, + procgetpeername, + procsetsockopt, + procrecvfrom, + procport_create, + procport_associate, + procport_dissociate, + procport_get, + procport_getn, + procputmsg, + procgetmsg syscallFunc +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (n int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe)), 1, uintptr(unsafe.Pointer(p)), 0, 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe2(p *[2]_C_int, flags int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procpipe2)), 2, uintptr(unsafe.Pointer(p)), uintptr(flags), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetsockname)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getcwd(buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetcwd)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(ngid int, gid *_Gid_t) (n int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(ngid int, gid *_Gid_t) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procsetgroups)), 2, uintptr(ngid), uintptr(unsafe.Pointer(gid)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func wait4(pid int32, statusp *_C_int, options int, rusage *Rusage) (wpid int32, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwait4)), 4, uintptr(pid), uintptr(unsafe.Pointer(statusp)), uintptr(options), uintptr(unsafe.Pointer(rusage)), 0, 0) + wpid = int32(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gethostname(buf []byte) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, times *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimes)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimensat(fd int, path string, times *[2]Timespec, flag int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procutimensat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(times)), uintptr(flag), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfcntl)), 3, uintptr(fd), uintptr(cmd), uintptr(arg), 0, 0, 0) + val = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func futimesat(fildes int, path *byte, times *[2]Timeval) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procfutimesat)), 3, uintptr(fildes), uintptr(unsafe.Pointer(path)), uintptr(unsafe.Pointer(times)), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procaccept)), 3, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_recvmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendmsg)), 3, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func acct(path *byte) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procacct)), 1, uintptr(unsafe.Pointer(path)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __makedev(version int, major uint, minor uint) (val uint64) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__makedev)), 3, uintptr(version), uintptr(major), uintptr(minor), 0, 0, 0) + val = uint64(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __major(version int, dev uint64) (val uint) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__major)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) + val = uint(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func __minor(version int, dev uint64) (val uint) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&proc__minor)), 2, uintptr(version), uintptr(dev), 0, 0, 0, 0) + val = uint(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlRet(fd int, req uint, arg uintptr) (ret int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + ret = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtrRet(fd int, req uint, arg unsafe.Pointer) (ret int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procioctl)), 3, uintptr(fd), uintptr(req), uintptr(arg), 0, 0, 0) + ret = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func poll(fds *PollFd, nfds int, timeout int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpoll)), 3, uintptr(unsafe.Pointer(fds)), uintptr(nfds), uintptr(timeout), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAccess)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Adjtime(delta *Timeval, olddelta *Timeval) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procAdjtime)), 2, uintptr(unsafe.Pointer(delta)), uintptr(unsafe.Pointer(olddelta)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChmod)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procChroot)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ClockGettime(clockid int32, time *Timespec) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClockGettime)), 2, uintptr(clockid), uintptr(unsafe.Pointer(time)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Close(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procClose)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Creat(path string, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procCreat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(fd int) (nfd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup)), 1, uintptr(fd), 0, 0, 0, 0, 0) + nfd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procDup2)), 2, uintptr(oldfd), uintptr(newfd), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + sysvicall6(uintptr(unsafe.Pointer(&procExit)), 1, uintptr(code), 0, 0, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Faccessat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFaccessat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchdir)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmod)), 2, uintptr(fd), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmodat(dirfd int, path string, mode uint32, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchmodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchown)), 3, uintptr(fd), uintptr(uid), uintptr(gid), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchownat(dirfd int, path string, uid int, gid int, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFchownat)), 5, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), uintptr(flags), 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fdatasync(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFdatasync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Flock(fd int, how int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFlock)), 2, uintptr(fd), uintptr(how), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fpathconf(fd int, name int) (val int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFpathconf)), 2, uintptr(fd), uintptr(name), 0, 0, 0, 0) + val = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstat(fd int, stat *Stat_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstat)), 2, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatat(fd int, path string, stat *Stat_t, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatat)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, vfsstat *Statvfs_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFstatvfs)), 2, uintptr(fd), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getdents(fd int, buf []byte, basep *uintptr) (n int, err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetdents)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(unsafe.Pointer(basep)), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetgid)), 0, 0, 0, 0, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpid)), 0, 0, 0, 0, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + pgid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgrp() (pgid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetpgrp)), 0, 0, 0, 0, 0, 0, 0) + pgid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (euid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGeteuid)), 0, 0, 0, 0, 0, 0, 0) + euid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetegid)), 0, 0, 0, 0, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (ppid int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procGetppid)), 0, 0, 0, 0, 0, 0, 0) + ppid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procGetpriority)), 2, uintptr(which), uintptr(who), 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrusage(who int, rusage *Rusage) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetrusage)), 2, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGetsid)), 1, uintptr(pid), 0, 0, 0, 0, 0) + sid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gettimeofday(tv *Timeval) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procGettimeofday)), 1, uintptr(unsafe.Pointer(tv)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := rawSysvicall6(uintptr(unsafe.Pointer(&procGetuid)), 0, 0, 0, 0, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, signum syscall.Signal) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procKill)), 2, uintptr(pid), uintptr(signum), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLchown)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, backlog int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_llisten)), 2, uintptr(s), uintptr(backlog), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lstat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procLstat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Madvise(b []byte, advice int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMadvise)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(advice), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdir)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdirat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkdirat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifo)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifoat(dirfd int, path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMkfifoat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknod)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknodat(dirfd int, path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMknodat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mlockall(flags int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMlockall)), 1, uintptr(flags), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMprotect)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(prot), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMsync)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(flags), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlock(b []byte) (err error) { + var _p0 *byte + if len(b) > 0 { + _p0 = &b[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlock)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Munlockall() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procMunlockall)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Nanosleep(time *Timespec, leftover *Timespec) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procNanosleep)), 2, uintptr(unsafe.Pointer(time)), uintptr(unsafe.Pointer(leftover)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpen)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Openat(dirfd int, path string, flags int, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procOpenat)), 4, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), uintptr(mode), 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pathconf(path string, name int) (val int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPathconf)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(name), 0, 0, 0, 0) + val = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pause() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procPause)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpread)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procpwrite)), 4, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procread)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + if len(buf) > 0 { + _p1 = &buf[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procReadlink)), 3, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(len(buf)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRename)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Renameat(olddirfd int, oldpath string, newdirfd int, newpath string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(oldpath) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(newpath) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRenameat)), 4, uintptr(olddirfd), uintptr(unsafe.Pointer(_p0)), uintptr(newdirfd), uintptr(unsafe.Pointer(_p1)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procRmdir)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (newoffset int64, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proclseek)), 3, uintptr(fd), uintptr(offset), uintptr(whence), 0, 0, 0) + newoffset = int64(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSelect)), 5, uintptr(nfd), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setegid(egid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetegid)), 1, uintptr(egid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seteuid(euid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSeteuid)), 1, uintptr(euid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(gid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetgid)), 1, uintptr(gid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sethostname(p []byte) (err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSethostname)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetpgid)), 2, uintptr(pid), uintptr(pgid), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSetpriority)), 3, uintptr(which), uintptr(who), uintptr(prio), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetregid)), 2, uintptr(rgid), uintptr(egid), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetreuid)), 2, uintptr(ruid), uintptr(euid), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(which int, lim *Rlimit) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetrlimit)), 2, uintptr(which), uintptr(unsafe.Pointer(lim)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetsid)), 0, 0, 0, 0, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procSetuid)), 1, uintptr(uid), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(s int, how int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procshutdown)), 2, uintptr(s), uintptr(how), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Stat(path string, stat *Stat_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStat)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Statvfs(path string, vfsstat *Statvfs_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procStatvfs)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(vfsstat)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSymlink)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSync)), 0, 0, 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sysconf(which int) (n int64, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procSysconf)), 1, uintptr(which), 0, 0, 0, 0, 0) + n = int64(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procTimes)), 1, uintptr(unsafe.Pointer(tms)), 0, 0, 0, 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procTruncate)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFsync)), 1, uintptr(fd), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procFtruncate)), 2, uintptr(fd), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&procUmask)), 1, uintptr(mask), 0, 0, 0, 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procUname)), 1, uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unmount(target string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(target) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procumount)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlink)), 1, uintptr(unsafe.Pointer(_p0)), 0, 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlinkat(dirfd int, path string, flags int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUnlinkat)), 3, uintptr(dirfd), uintptr(unsafe.Pointer(_p0)), uintptr(flags), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ustat(dev int, ubuf *Ustat_t) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUstat)), 2, uintptr(dev), uintptr(unsafe.Pointer(ubuf)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, buf *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procUtime)), 2, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(buf)), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_bind)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_connect)), 3, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmmap)), 6, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procmunmap)), 2, uintptr(addr), uintptr(length), 0, 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsendfile)), 4, uintptr(outfd), uintptr(infd), uintptr(unsafe.Pointer(offset)), uintptr(count), 0, 0) + written = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 *byte + if len(buf) > 0 { + _p0 = &buf[0] + } + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_sendto)), 6, uintptr(s), uintptr(unsafe.Pointer(_p0)), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socket)), 3, uintptr(domain), uintptr(typ), uintptr(proto), 0, 0, 0) + fd = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&proc__xnet_socketpair)), 4, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procwrite)), 3, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&proc__xnet_getsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := rawSysvicall6(uintptr(unsafe.Pointer(&procgetpeername)), 3, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procsetsockopt)), 5, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 *byte + if len(p) > 0 { + _p0 = &p[0] + } + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procrecvfrom)), 6, uintptr(fd), uintptr(unsafe.Pointer(_p0)), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func port_create() (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_create)), 0, 0, 0, 0, 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func port_associate(port int, source int, object uintptr, events int, user *byte) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_associate)), 5, uintptr(port), uintptr(source), uintptr(object), uintptr(events), uintptr(unsafe.Pointer(user)), 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func port_dissociate(port int, source int, object uintptr) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_dissociate)), 3, uintptr(port), uintptr(source), uintptr(object), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func port_get(port int, pe *portEvent, timeout *Timespec) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_get)), 3, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(unsafe.Pointer(timeout)), 0, 0, 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func port_getn(port int, pe *portEvent, max uint32, nget *uint32, timeout *Timespec) (n int, err error) { + r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procport_getn)), 5, uintptr(port), uintptr(unsafe.Pointer(pe)), uintptr(max), uintptr(unsafe.Pointer(nget)), uintptr(unsafe.Pointer(timeout)), 0) + n = int(r0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func putmsg(fd int, clptr *strbuf, dataptr *strbuf, flags int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procputmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(flags), 0, 0) + if e1 != 0 { + err = e1 + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getmsg(fd int, clptr *strbuf, dataptr *strbuf, flags *int) (err error) { + _, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&procgetmsg)), 4, uintptr(fd), uintptr(unsafe.Pointer(clptr)), uintptr(unsafe.Pointer(dataptr)), uintptr(unsafe.Pointer(flags)), 0, 0) + if e1 != 0 { + err = e1 + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go new file mode 100644 index 0000000000..07bfe2ef9a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go @@ -0,0 +1,1265 @@ +// go run mksyscall.go -tags zos,s390x syscall_zos_s390x.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +import ( + "unsafe" +) + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fcntl(fd int, cmd int, arg int) (val int, err error) { + r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + val = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func read(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func readlen(fd int, buf *byte, nbuf int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS_READ, uintptr(fd), uintptr(unsafe.Pointer(buf)), uintptr(nbuf)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func write(fd int, p []byte) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_WRITE, uintptr(fd), uintptr(_p0), uintptr(len(p))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func accept(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (fd int, err error) { + r0, _, e1 := syscall_syscall(SYS___ACCEPT_A, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func bind(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(SYS___BIND_A, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func connect(s int, addr unsafe.Pointer, addrlen _Socklen) (err error) { + _, _, e1 := syscall_syscall(SYS___CONNECT_A, uintptr(s), uintptr(addr), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getgroups(n int, list *_Gid_t) (nn int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + nn = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setgroups(n int, list *_Gid_t) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETGROUPS, uintptr(n), uintptr(unsafe.Pointer(list)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockopt(s int, level int, name int, val unsafe.Pointer, vallen *_Socklen) (err error) { + _, _, e1 := syscall_syscall6(SYS_GETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(unsafe.Pointer(vallen)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func setsockopt(s int, level int, name int, val unsafe.Pointer, vallen uintptr) (err error) { + _, _, e1 := syscall_syscall6(SYS_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socket(domain int, typ int, proto int) (fd int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_SOCKET, uintptr(domain), uintptr(typ), uintptr(proto)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func socketpair(domain int, typ int, proto int, fd *[2]int32) (err error) { + _, _, e1 := syscall_rawsyscall6(SYS_SOCKETPAIR, uintptr(domain), uintptr(typ), uintptr(proto), uintptr(unsafe.Pointer(fd)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getpeername(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___GETPEERNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getsockname(fd int, rsa *RawSockaddrAny, addrlen *_Socklen) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___GETSOCKNAME_A, uintptr(fd), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvfrom(fd int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS___RECVFROM_A, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendto(s int, buf []byte, flags int, to unsafe.Pointer, addrlen _Socklen) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall6(SYS___SENDTO_A, uintptr(s), uintptr(_p0), uintptr(len(buf)), uintptr(flags), uintptr(to), uintptr(addrlen)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func recvmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS___RECVMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func sendmsg(s int, msg *Msghdr, flags int) (n int, err error) { + r0, _, e1 := syscall_syscall(SYS___SENDMSG_A, uintptr(s), uintptr(unsafe.Pointer(msg)), uintptr(flags)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mmap(addr uintptr, length uintptr, prot int, flag int, fd int, pos int64) (ret uintptr, err error) { + r0, _, e1 := syscall_syscall6(SYS_MMAP, uintptr(addr), uintptr(length), uintptr(prot), uintptr(flag), uintptr(fd), uintptr(pos)) + ret = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func munmap(addr uintptr, length uintptr) (err error) { + _, _, e1 := syscall_syscall(SYS_MUNMAP, uintptr(addr), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctl(fd int, req uint, arg uintptr) (err error) { + _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) { + _, _, e1 := syscall_syscall(SYS_IOCTL, uintptr(fd), uintptr(req), uintptr(arg)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Access(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___ACCESS_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chmod(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHMOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Creat(path string, mode uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(SYS___CREAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup(oldfd int) (fd int, err error) { + r0, _, e1 := syscall_syscall(SYS_DUP, uintptr(oldfd), 0, 0) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Dup2(oldfd int, newfd int) (err error) { + _, _, e1 := syscall_syscall(SYS_DUP2, uintptr(oldfd), uintptr(newfd), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Errno2() (er2 int) { + uer2, _, _ := syscall_syscall(SYS___ERRNO2, 0, 0, 0) + er2 = int(uer2) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Err2ad() (eadd *int) { + ueadd, _, _ := syscall_syscall(SYS___ERR2AD, 0, 0, 0) + eadd = (*int)(unsafe.Pointer(ueadd)) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Exit(code int) { + syscall_syscall(SYS_EXIT, uintptr(code), 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchdir(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHDIR, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchmod(fd int, mode uint32) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHMOD, uintptr(fd), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fchown(fd int, uid int, gid int) (err error) { + _, _, e1 := syscall_syscall(SYS_FCHOWN, uintptr(fd), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func FcntlInt(fd uintptr, cmd int, arg int) (retval int, err error) { + r0, _, e1 := syscall_syscall(SYS_FCNTL, uintptr(fd), uintptr(cmd), uintptr(arg)) + retval = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func fstat(fd int, stat *Stat_LE_t) (err error) { + _, _, e1 := syscall_syscall(SYS_FSTAT, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fstatvfs(fd int, stat *Statvfs_t) (err error) { + _, _, e1 := syscall_syscall(SYS_FSTATVFS, uintptr(fd), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Fsync(fd int) (err error) { + _, _, e1 := syscall_syscall(SYS_FSYNC, uintptr(fd), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Ftruncate(fd int, length int64) (err error) { + _, _, e1 := syscall_syscall(SYS_FTRUNCATE, uintptr(fd), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpagesize() (pgsize int) { + r0, _, _ := syscall_syscall(SYS_GETPAGESIZE, 0, 0, 0) + pgsize = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mprotect(b []byte, prot int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS_MPROTECT, uintptr(_p0), uintptr(len(b)), uintptr(prot)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Msync(b []byte, flags int) (err error) { + var _p0 unsafe.Pointer + if len(b) > 0 { + _p0 = unsafe.Pointer(&b[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS_MSYNC, uintptr(_p0), uintptr(len(b)), uintptr(flags)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Poll(fds []PollFd, timeout int) (n int, err error) { + var _p0 unsafe.Pointer + if len(fds) > 0 { + _p0 = unsafe.Pointer(&fds[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS_POLL, uintptr(_p0), uintptr(len(fds)), uintptr(timeout)) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Times(tms *Tms) (ticks uintptr, err error) { + r0, _, e1 := syscall_syscall(SYS_TIMES, uintptr(unsafe.Pointer(tms)), 0, 0) + ticks = uintptr(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent(buff *byte, size int) (lastsys int, err error) { + r0, _, e1 := syscall_syscall(SYS_W_GETMNTENT, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) + lastsys = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func W_Getmntent_A(buff *byte, size int) (lastsys int, err error) { + r0, _, e1 := syscall_syscall(SYS___W_GETMNTENT_A, uintptr(unsafe.Pointer(buff)), uintptr(size), 0) + lastsys = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func mount_LE(path string, filesystem string, fstype string, mtm uint32, parmlen int32, parm string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(filesystem) + if err != nil { + return + } + var _p2 *byte + _p2, err = BytePtrFromString(fstype) + if err != nil { + return + } + var _p3 *byte + _p3, err = BytePtrFromString(parm) + if err != nil { + return + } + _, _, e1 := syscall_syscall6(SYS___MOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), uintptr(unsafe.Pointer(_p2)), uintptr(mtm), uintptr(parmlen), uintptr(unsafe.Pointer(_p3))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func unmount(filesystem string, mtm int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(filesystem) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UMOUNT_A, uintptr(unsafe.Pointer(_p0)), uintptr(mtm), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Chroot(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___CHROOT_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Uname(buf *Utsname) (err error) { + _, _, e1 := syscall_rawsyscall(SYS___UNAME_A, uintptr(unsafe.Pointer(buf)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Gethostname(buf []byte) (err error) { + var _p0 unsafe.Pointer + if len(buf) > 0 { + _p0 = unsafe.Pointer(&buf[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + _, _, e1 := syscall_syscall(SYS___GETHOSTNAME_A, uintptr(_p0), uintptr(len(buf)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getegid() (egid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETEGID, 0, 0, 0) + egid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Geteuid() (uid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETEUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getgid() (gid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETGID, 0, 0, 0) + gid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpid() (pid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpgid(pid int) (pgid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETPGID, uintptr(pid), 0, 0) + pgid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getppid() (pid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETPPID, 0, 0, 0) + pid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getpriority(which int, who int) (prio int, err error) { + r0, _, e1 := syscall_syscall(SYS_GETPRIORITY, uintptr(which), uintptr(who), 0) + prio = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getrlimit(resource int, rlim *Rlimit) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(rlim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getrusage(who int, rusage *rusage_zos) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETRUSAGE, uintptr(who), uintptr(unsafe.Pointer(rusage)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getsid(pid int) (sid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_GETSID, uintptr(pid), 0, 0) + sid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Getuid() (uid int) { + r0, _, _ := syscall_rawsyscall(SYS_GETUID, 0, 0, 0) + uid = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Kill(pid int, sig Signal) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_KILL, uintptr(pid), uintptr(sig), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Lchown(path string, uid int, gid int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LCHOWN_A, uintptr(unsafe.Pointer(_p0)), uintptr(uid), uintptr(gid)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Link(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Listen(s int, n int) (err error) { + _, _, e1 := syscall_syscall(SYS_LISTEN, uintptr(s), uintptr(n), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func lstat(path string, stat *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___LSTAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(stat)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkdir(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKDIR_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mkfifo(path string, mode uint32) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKFIFO_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Mknod(path string, mode uint32, dev int) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___MKNOD_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(dev)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pread(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS_PREAD, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Pwrite(fd int, p []byte, offset int64) (n int, err error) { + var _p0 unsafe.Pointer + if len(p) > 0 { + _p0 = unsafe.Pointer(&p[0]) + } else { + _p0 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall6(SYS_PWRITE, uintptr(fd), uintptr(_p0), uintptr(len(p)), uintptr(offset), 0, 0) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Readlink(path string, buf []byte) (n int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 unsafe.Pointer + if len(buf) > 0 { + _p1 = unsafe.Pointer(&buf[0]) + } else { + _p1 = unsafe.Pointer(&_zero) + } + r0, _, e1 := syscall_syscall(SYS___READLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(_p1), uintptr(len(buf))) + n = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rename(from string, to string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(from) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(to) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___RENAME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Rmdir(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___RMDIR_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Seek(fd int, offset int64, whence int) (off int64, err error) { + r0, _, e1 := syscall_syscall(SYS_LSEEK, uintptr(fd), uintptr(offset), uintptr(whence)) + off = int64(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpriority(which int, who int, prio int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETPRIORITY, uintptr(which), uintptr(who), uintptr(prio)) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setpgid(pid int, pgid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETPGID, uintptr(pid), uintptr(pgid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setrlimit(resource int, lim *Rlimit) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETRLIMIT, uintptr(resource), uintptr(unsafe.Pointer(lim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setregid(rgid int, egid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETREGID, uintptr(rgid), uintptr(egid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setreuid(ruid int, euid int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_SETREUID, uintptr(ruid), uintptr(euid), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setsid() (pid int, err error) { + r0, _, e1 := syscall_rawsyscall(SYS_SETSID, 0, 0, 0) + pid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setuid(uid int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETUID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Setgid(uid int) (err error) { + _, _, e1 := syscall_syscall(SYS_SETGID, uintptr(uid), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Shutdown(fd int, how int) (err error) { + _, _, e1 := syscall_syscall(SYS_SHUTDOWN, uintptr(fd), uintptr(how), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func stat(path string, statLE *Stat_LE_t) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___STAT_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(statLE)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Symlink(path string, link string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + var _p1 *byte + _p1, err = BytePtrFromString(link) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___SYMLINK_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(_p1)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Sync() { + syscall_syscall(SYS_SYNC, 0, 0, 0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Truncate(path string, length int64) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___TRUNCATE_A, uintptr(unsafe.Pointer(_p0)), uintptr(length), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcgetattr(fildes int, termptr *Termios) (err error) { + _, _, e1 := syscall_syscall(SYS_TCGETATTR, uintptr(fildes), uintptr(unsafe.Pointer(termptr)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Tcsetattr(fildes int, when int, termptr *Termios) (err error) { + _, _, e1 := syscall_syscall(SYS_TCSETATTR, uintptr(fildes), uintptr(when), uintptr(unsafe.Pointer(termptr))) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Umask(mask int) (oldmask int) { + r0, _, _ := syscall_syscall(SYS_UMASK, uintptr(mask), 0, 0) + oldmask = int(r0) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Unlink(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UNLINK_A, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Utime(path string, utim *Utimbuf) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UTIME_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(utim)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func open(path string, mode int, perm uint32) (fd int, err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + r0, _, e1 := syscall_syscall(SYS___OPEN_A, uintptr(unsafe.Pointer(_p0)), uintptr(mode), uintptr(perm)) + fd = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func remove(path string) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS_REMOVE, uintptr(unsafe.Pointer(_p0)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func waitpid(pid int, wstatus *_C_int, options int) (wpid int, err error) { + r0, _, e1 := syscall_syscall(SYS_WAITPID, uintptr(pid), uintptr(unsafe.Pointer(wstatus)), uintptr(options)) + wpid = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func gettimeofday(tv *timeval_zos) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_GETTIMEOFDAY, uintptr(unsafe.Pointer(tv)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func pipe(p *[2]_C_int) (err error) { + _, _, e1 := syscall_rawsyscall(SYS_PIPE, uintptr(unsafe.Pointer(p)), 0, 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func utimes(path string, timeval *[2]Timeval) (err error) { + var _p0 *byte + _p0, err = BytePtrFromString(path) + if err != nil { + return + } + _, _, e1 := syscall_syscall(SYS___UTIMES_A, uintptr(unsafe.Pointer(_p0)), uintptr(unsafe.Pointer(timeval)), 0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func Select(nmsgsfds int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (ret int, err error) { + r0, _, e1 := syscall_syscall6(SYS_SELECT, uintptr(nmsgsfds), uintptr(unsafe.Pointer(r)), uintptr(unsafe.Pointer(w)), uintptr(unsafe.Pointer(e)), uintptr(unsafe.Pointer(timeout)), 0) + ret = int(r0) + if e1 != 0 { + err = errnoErr(e1) + } + return +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go new file mode 100644 index 0000000000..55e0484719 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build 386 && openbsd +// +build 386,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go new file mode 100644 index 0000000000..d2243cf83f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build amd64 && openbsd +// +build amd64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go new file mode 100644 index 0000000000..82dc51bd8b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build arm && openbsd +// +build arm,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go new file mode 100644 index 0000000000..cbdda1a4ae --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go new file mode 100644 index 0000000000..f55eae1a82 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go new file mode 100644 index 0000000000..e44054470b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go @@ -0,0 +1,281 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go new file mode 100644 index 0000000000..a0db82fce2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go @@ -0,0 +1,282 @@ +// go run mksysctl_openbsd.go +// Code generated by the command above; DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +type mibentry struct { + ctlname string + ctloid []_C_int +} + +var sysctlMib = []mibentry{ + {"ddb.console", []_C_int{9, 6}}, + {"ddb.log", []_C_int{9, 7}}, + {"ddb.max_line", []_C_int{9, 3}}, + {"ddb.max_width", []_C_int{9, 2}}, + {"ddb.panic", []_C_int{9, 5}}, + {"ddb.profile", []_C_int{9, 9}}, + {"ddb.radix", []_C_int{9, 1}}, + {"ddb.tab_stop_width", []_C_int{9, 4}}, + {"ddb.trigger", []_C_int{9, 8}}, + {"fs.posix.setuid", []_C_int{3, 1, 1}}, + {"hw.allowpowerdown", []_C_int{6, 22}}, + {"hw.byteorder", []_C_int{6, 4}}, + {"hw.cpuspeed", []_C_int{6, 12}}, + {"hw.diskcount", []_C_int{6, 10}}, + {"hw.disknames", []_C_int{6, 8}}, + {"hw.diskstats", []_C_int{6, 9}}, + {"hw.machine", []_C_int{6, 1}}, + {"hw.model", []_C_int{6, 2}}, + {"hw.ncpu", []_C_int{6, 3}}, + {"hw.ncpufound", []_C_int{6, 21}}, + {"hw.ncpuonline", []_C_int{6, 25}}, + {"hw.pagesize", []_C_int{6, 7}}, + {"hw.perfpolicy", []_C_int{6, 23}}, + {"hw.physmem", []_C_int{6, 19}}, + {"hw.power", []_C_int{6, 26}}, + {"hw.product", []_C_int{6, 15}}, + {"hw.serialno", []_C_int{6, 17}}, + {"hw.setperf", []_C_int{6, 13}}, + {"hw.smt", []_C_int{6, 24}}, + {"hw.usermem", []_C_int{6, 20}}, + {"hw.uuid", []_C_int{6, 18}}, + {"hw.vendor", []_C_int{6, 14}}, + {"hw.version", []_C_int{6, 16}}, + {"kern.allowdt", []_C_int{1, 65}}, + {"kern.allowkmem", []_C_int{1, 52}}, + {"kern.argmax", []_C_int{1, 8}}, + {"kern.audio", []_C_int{1, 84}}, + {"kern.boottime", []_C_int{1, 21}}, + {"kern.bufcachepercent", []_C_int{1, 72}}, + {"kern.ccpu", []_C_int{1, 45}}, + {"kern.clockrate", []_C_int{1, 12}}, + {"kern.consbuf", []_C_int{1, 83}}, + {"kern.consbufsize", []_C_int{1, 82}}, + {"kern.consdev", []_C_int{1, 75}}, + {"kern.cp_time", []_C_int{1, 40}}, + {"kern.cp_time2", []_C_int{1, 71}}, + {"kern.cpustats", []_C_int{1, 85}}, + {"kern.domainname", []_C_int{1, 22}}, + {"kern.file", []_C_int{1, 73}}, + {"kern.forkstat", []_C_int{1, 42}}, + {"kern.fscale", []_C_int{1, 46}}, + {"kern.fsync", []_C_int{1, 33}}, + {"kern.global_ptrace", []_C_int{1, 81}}, + {"kern.hostid", []_C_int{1, 11}}, + {"kern.hostname", []_C_int{1, 10}}, + {"kern.intrcnt.nintrcnt", []_C_int{1, 63, 1}}, + {"kern.job_control", []_C_int{1, 19}}, + {"kern.malloc.buckets", []_C_int{1, 39, 1}}, + {"kern.malloc.kmemnames", []_C_int{1, 39, 3}}, + {"kern.maxclusters", []_C_int{1, 67}}, + {"kern.maxfiles", []_C_int{1, 7}}, + {"kern.maxlocksperuid", []_C_int{1, 70}}, + {"kern.maxpartitions", []_C_int{1, 23}}, + {"kern.maxproc", []_C_int{1, 6}}, + {"kern.maxthread", []_C_int{1, 25}}, + {"kern.maxvnodes", []_C_int{1, 5}}, + {"kern.mbstat", []_C_int{1, 59}}, + {"kern.msgbuf", []_C_int{1, 48}}, + {"kern.msgbufsize", []_C_int{1, 38}}, + {"kern.nchstats", []_C_int{1, 41}}, + {"kern.netlivelocks", []_C_int{1, 76}}, + {"kern.nfiles", []_C_int{1, 56}}, + {"kern.ngroups", []_C_int{1, 18}}, + {"kern.nosuidcoredump", []_C_int{1, 32}}, + {"kern.nprocs", []_C_int{1, 47}}, + {"kern.nselcoll", []_C_int{1, 43}}, + {"kern.nthreads", []_C_int{1, 26}}, + {"kern.numvnodes", []_C_int{1, 58}}, + {"kern.osrelease", []_C_int{1, 2}}, + {"kern.osrevision", []_C_int{1, 3}}, + {"kern.ostype", []_C_int{1, 1}}, + {"kern.osversion", []_C_int{1, 27}}, + {"kern.pfstatus", []_C_int{1, 86}}, + {"kern.pool_debug", []_C_int{1, 77}}, + {"kern.posix1version", []_C_int{1, 17}}, + {"kern.proc", []_C_int{1, 66}}, + {"kern.rawpartition", []_C_int{1, 24}}, + {"kern.saved_ids", []_C_int{1, 20}}, + {"kern.securelevel", []_C_int{1, 9}}, + {"kern.seminfo", []_C_int{1, 61}}, + {"kern.shminfo", []_C_int{1, 62}}, + {"kern.somaxconn", []_C_int{1, 28}}, + {"kern.sominconn", []_C_int{1, 29}}, + {"kern.splassert", []_C_int{1, 54}}, + {"kern.stackgap_random", []_C_int{1, 50}}, + {"kern.sysvipc_info", []_C_int{1, 51}}, + {"kern.sysvmsg", []_C_int{1, 34}}, + {"kern.sysvsem", []_C_int{1, 35}}, + {"kern.sysvshm", []_C_int{1, 36}}, + {"kern.timecounter.choice", []_C_int{1, 69, 4}}, + {"kern.timecounter.hardware", []_C_int{1, 69, 3}}, + {"kern.timecounter.tick", []_C_int{1, 69, 1}}, + {"kern.timecounter.timestepwarnings", []_C_int{1, 69, 2}}, + {"kern.timeout_stats", []_C_int{1, 87}}, + {"kern.tty.tk_cancc", []_C_int{1, 44, 4}}, + {"kern.tty.tk_nin", []_C_int{1, 44, 1}}, + {"kern.tty.tk_nout", []_C_int{1, 44, 2}}, + {"kern.tty.tk_rawcc", []_C_int{1, 44, 3}}, + {"kern.tty.ttyinfo", []_C_int{1, 44, 5}}, + {"kern.ttycount", []_C_int{1, 57}}, + {"kern.utc_offset", []_C_int{1, 88}}, + {"kern.version", []_C_int{1, 4}}, + {"kern.video", []_C_int{1, 89}}, + {"kern.watchdog.auto", []_C_int{1, 64, 2}}, + {"kern.watchdog.period", []_C_int{1, 64, 1}}, + {"kern.witnesswatch", []_C_int{1, 53}}, + {"kern.wxabort", []_C_int{1, 74}}, + {"net.bpf.bufsize", []_C_int{4, 31, 1}}, + {"net.bpf.maxbufsize", []_C_int{4, 31, 2}}, + {"net.inet.ah.enable", []_C_int{4, 2, 51, 1}}, + {"net.inet.ah.stats", []_C_int{4, 2, 51, 2}}, + {"net.inet.carp.allow", []_C_int{4, 2, 112, 1}}, + {"net.inet.carp.log", []_C_int{4, 2, 112, 3}}, + {"net.inet.carp.preempt", []_C_int{4, 2, 112, 2}}, + {"net.inet.carp.stats", []_C_int{4, 2, 112, 4}}, + {"net.inet.divert.recvspace", []_C_int{4, 2, 258, 1}}, + {"net.inet.divert.sendspace", []_C_int{4, 2, 258, 2}}, + {"net.inet.divert.stats", []_C_int{4, 2, 258, 3}}, + {"net.inet.esp.enable", []_C_int{4, 2, 50, 1}}, + {"net.inet.esp.stats", []_C_int{4, 2, 50, 4}}, + {"net.inet.esp.udpencap", []_C_int{4, 2, 50, 2}}, + {"net.inet.esp.udpencap_port", []_C_int{4, 2, 50, 3}}, + {"net.inet.etherip.allow", []_C_int{4, 2, 97, 1}}, + {"net.inet.etherip.stats", []_C_int{4, 2, 97, 2}}, + {"net.inet.gre.allow", []_C_int{4, 2, 47, 1}}, + {"net.inet.gre.wccp", []_C_int{4, 2, 47, 2}}, + {"net.inet.icmp.bmcastecho", []_C_int{4, 2, 1, 2}}, + {"net.inet.icmp.errppslimit", []_C_int{4, 2, 1, 3}}, + {"net.inet.icmp.maskrepl", []_C_int{4, 2, 1, 1}}, + {"net.inet.icmp.rediraccept", []_C_int{4, 2, 1, 4}}, + {"net.inet.icmp.redirtimeout", []_C_int{4, 2, 1, 5}}, + {"net.inet.icmp.stats", []_C_int{4, 2, 1, 7}}, + {"net.inet.icmp.tstamprepl", []_C_int{4, 2, 1, 6}}, + {"net.inet.igmp.stats", []_C_int{4, 2, 2, 1}}, + {"net.inet.ip.arpdown", []_C_int{4, 2, 0, 40}}, + {"net.inet.ip.arpqueued", []_C_int{4, 2, 0, 36}}, + {"net.inet.ip.arptimeout", []_C_int{4, 2, 0, 39}}, + {"net.inet.ip.encdebug", []_C_int{4, 2, 0, 12}}, + {"net.inet.ip.forwarding", []_C_int{4, 2, 0, 1}}, + {"net.inet.ip.ifq.congestion", []_C_int{4, 2, 0, 30, 4}}, + {"net.inet.ip.ifq.drops", []_C_int{4, 2, 0, 30, 3}}, + {"net.inet.ip.ifq.len", []_C_int{4, 2, 0, 30, 1}}, + {"net.inet.ip.ifq.maxlen", []_C_int{4, 2, 0, 30, 2}}, + {"net.inet.ip.maxqueue", []_C_int{4, 2, 0, 11}}, + {"net.inet.ip.mforwarding", []_C_int{4, 2, 0, 31}}, + {"net.inet.ip.mrtmfc", []_C_int{4, 2, 0, 37}}, + {"net.inet.ip.mrtproto", []_C_int{4, 2, 0, 34}}, + {"net.inet.ip.mrtstats", []_C_int{4, 2, 0, 35}}, + {"net.inet.ip.mrtvif", []_C_int{4, 2, 0, 38}}, + {"net.inet.ip.mtu", []_C_int{4, 2, 0, 4}}, + {"net.inet.ip.mtudisc", []_C_int{4, 2, 0, 27}}, + {"net.inet.ip.mtudisctimeout", []_C_int{4, 2, 0, 28}}, + {"net.inet.ip.multipath", []_C_int{4, 2, 0, 32}}, + {"net.inet.ip.portfirst", []_C_int{4, 2, 0, 7}}, + {"net.inet.ip.porthifirst", []_C_int{4, 2, 0, 9}}, + {"net.inet.ip.porthilast", []_C_int{4, 2, 0, 10}}, + {"net.inet.ip.portlast", []_C_int{4, 2, 0, 8}}, + {"net.inet.ip.redirect", []_C_int{4, 2, 0, 2}}, + {"net.inet.ip.sourceroute", []_C_int{4, 2, 0, 5}}, + {"net.inet.ip.stats", []_C_int{4, 2, 0, 33}}, + {"net.inet.ip.ttl", []_C_int{4, 2, 0, 3}}, + {"net.inet.ipcomp.enable", []_C_int{4, 2, 108, 1}}, + {"net.inet.ipcomp.stats", []_C_int{4, 2, 108, 2}}, + {"net.inet.ipip.allow", []_C_int{4, 2, 4, 1}}, + {"net.inet.ipip.stats", []_C_int{4, 2, 4, 2}}, + {"net.inet.pfsync.stats", []_C_int{4, 2, 240, 1}}, + {"net.inet.tcp.ackonpush", []_C_int{4, 2, 6, 13}}, + {"net.inet.tcp.always_keepalive", []_C_int{4, 2, 6, 22}}, + {"net.inet.tcp.baddynamic", []_C_int{4, 2, 6, 6}}, + {"net.inet.tcp.drop", []_C_int{4, 2, 6, 19}}, + {"net.inet.tcp.ecn", []_C_int{4, 2, 6, 14}}, + {"net.inet.tcp.ident", []_C_int{4, 2, 6, 9}}, + {"net.inet.tcp.keepidle", []_C_int{4, 2, 6, 3}}, + {"net.inet.tcp.keepinittime", []_C_int{4, 2, 6, 2}}, + {"net.inet.tcp.keepintvl", []_C_int{4, 2, 6, 4}}, + {"net.inet.tcp.mssdflt", []_C_int{4, 2, 6, 11}}, + {"net.inet.tcp.reasslimit", []_C_int{4, 2, 6, 18}}, + {"net.inet.tcp.rfc1323", []_C_int{4, 2, 6, 1}}, + {"net.inet.tcp.rfc3390", []_C_int{4, 2, 6, 17}}, + {"net.inet.tcp.rootonly", []_C_int{4, 2, 6, 24}}, + {"net.inet.tcp.rstppslimit", []_C_int{4, 2, 6, 12}}, + {"net.inet.tcp.sack", []_C_int{4, 2, 6, 10}}, + {"net.inet.tcp.sackholelimit", []_C_int{4, 2, 6, 20}}, + {"net.inet.tcp.slowhz", []_C_int{4, 2, 6, 5}}, + {"net.inet.tcp.stats", []_C_int{4, 2, 6, 21}}, + {"net.inet.tcp.synbucketlimit", []_C_int{4, 2, 6, 16}}, + {"net.inet.tcp.syncachelimit", []_C_int{4, 2, 6, 15}}, + {"net.inet.tcp.synhashsize", []_C_int{4, 2, 6, 25}}, + {"net.inet.tcp.synuselimit", []_C_int{4, 2, 6, 23}}, + {"net.inet.udp.baddynamic", []_C_int{4, 2, 17, 2}}, + {"net.inet.udp.checksum", []_C_int{4, 2, 17, 1}}, + {"net.inet.udp.recvspace", []_C_int{4, 2, 17, 3}}, + {"net.inet.udp.rootonly", []_C_int{4, 2, 17, 6}}, + {"net.inet.udp.sendspace", []_C_int{4, 2, 17, 4}}, + {"net.inet.udp.stats", []_C_int{4, 2, 17, 5}}, + {"net.inet6.divert.recvspace", []_C_int{4, 24, 86, 1}}, + {"net.inet6.divert.sendspace", []_C_int{4, 24, 86, 2}}, + {"net.inet6.divert.stats", []_C_int{4, 24, 86, 3}}, + {"net.inet6.icmp6.errppslimit", []_C_int{4, 24, 30, 14}}, + {"net.inet6.icmp6.mtudisc_hiwat", []_C_int{4, 24, 30, 16}}, + {"net.inet6.icmp6.mtudisc_lowat", []_C_int{4, 24, 30, 17}}, + {"net.inet6.icmp6.nd6_debug", []_C_int{4, 24, 30, 18}}, + {"net.inet6.icmp6.nd6_delay", []_C_int{4, 24, 30, 8}}, + {"net.inet6.icmp6.nd6_maxnudhint", []_C_int{4, 24, 30, 15}}, + {"net.inet6.icmp6.nd6_mmaxtries", []_C_int{4, 24, 30, 10}}, + {"net.inet6.icmp6.nd6_umaxtries", []_C_int{4, 24, 30, 9}}, + {"net.inet6.icmp6.redirtimeout", []_C_int{4, 24, 30, 3}}, + {"net.inet6.ip6.auto_flowlabel", []_C_int{4, 24, 17, 17}}, + {"net.inet6.ip6.dad_count", []_C_int{4, 24, 17, 16}}, + {"net.inet6.ip6.dad_pending", []_C_int{4, 24, 17, 49}}, + {"net.inet6.ip6.defmcasthlim", []_C_int{4, 24, 17, 18}}, + {"net.inet6.ip6.forwarding", []_C_int{4, 24, 17, 1}}, + {"net.inet6.ip6.forwsrcrt", []_C_int{4, 24, 17, 5}}, + {"net.inet6.ip6.hdrnestlimit", []_C_int{4, 24, 17, 15}}, + {"net.inet6.ip6.hlim", []_C_int{4, 24, 17, 3}}, + {"net.inet6.ip6.log_interval", []_C_int{4, 24, 17, 14}}, + {"net.inet6.ip6.maxdynroutes", []_C_int{4, 24, 17, 48}}, + {"net.inet6.ip6.maxfragpackets", []_C_int{4, 24, 17, 9}}, + {"net.inet6.ip6.maxfrags", []_C_int{4, 24, 17, 41}}, + {"net.inet6.ip6.mforwarding", []_C_int{4, 24, 17, 42}}, + {"net.inet6.ip6.mrtmfc", []_C_int{4, 24, 17, 53}}, + {"net.inet6.ip6.mrtmif", []_C_int{4, 24, 17, 52}}, + {"net.inet6.ip6.mrtproto", []_C_int{4, 24, 17, 8}}, + {"net.inet6.ip6.mtudisctimeout", []_C_int{4, 24, 17, 50}}, + {"net.inet6.ip6.multicast_mtudisc", []_C_int{4, 24, 17, 44}}, + {"net.inet6.ip6.multipath", []_C_int{4, 24, 17, 43}}, + {"net.inet6.ip6.neighborgcthresh", []_C_int{4, 24, 17, 45}}, + {"net.inet6.ip6.redirect", []_C_int{4, 24, 17, 2}}, + {"net.inet6.ip6.soiikey", []_C_int{4, 24, 17, 54}}, + {"net.inet6.ip6.sourcecheck", []_C_int{4, 24, 17, 10}}, + {"net.inet6.ip6.sourcecheck_logint", []_C_int{4, 24, 17, 11}}, + {"net.inet6.ip6.use_deprecated", []_C_int{4, 24, 17, 21}}, + {"net.key.sadb_dump", []_C_int{4, 30, 1}}, + {"net.key.spd_dump", []_C_int{4, 30, 2}}, + {"net.mpls.ifq.congestion", []_C_int{4, 33, 3, 4}}, + {"net.mpls.ifq.drops", []_C_int{4, 33, 3, 3}}, + {"net.mpls.ifq.len", []_C_int{4, 33, 3, 1}}, + {"net.mpls.ifq.maxlen", []_C_int{4, 33, 3, 2}}, + {"net.mpls.mapttl_ip", []_C_int{4, 33, 5}}, + {"net.mpls.mapttl_ip6", []_C_int{4, 33, 6}}, + {"net.mpls.ttl", []_C_int{4, 33, 2}}, + {"net.pflow.stats", []_C_int{4, 34, 1}}, + {"net.pipex.enable", []_C_int{4, 35, 1}}, + {"vm.anonmin", []_C_int{2, 7}}, + {"vm.loadavg", []_C_int{2, 2}}, + {"vm.malloc_conf", []_C_int{2, 12}}, + {"vm.maxslp", []_C_int{2, 10}}, + {"vm.nkmempages", []_C_int{2, 6}}, + {"vm.psstrings", []_C_int{2, 3}}, + {"vm.swapencrypt.enable", []_C_int{2, 5, 0}}, + {"vm.swapencrypt.keyscreated", []_C_int{2, 5, 1}}, + {"vm.swapencrypt.keysdeleted", []_C_int{2, 5, 2}}, + {"vm.uspace", []_C_int{2, 11}}, + {"vm.uvmexp", []_C_int{2, 4}}, + {"vm.vmmeter", []_C_int{2, 1}}, + {"vm.vnodemin", []_C_int{2, 9}}, + {"vm.vtextmin", []_C_int{2, 8}}, +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go new file mode 100644 index 0000000000..f8298ff9b5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go @@ -0,0 +1,440 @@ +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/usr/include/sys/syscall.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && darwin +// +build amd64,darwin + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_KQUEUE_WORKLOOP_CTL = 530 + SYS___MACH_BRIDGE_REMOTE_TIME = 531 + SYS_MAXSYSCALL = 532 + SYS_INVALID = 63 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go new file mode 100644 index 0000000000..5eb433bbf0 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go @@ -0,0 +1,438 @@ +// go run mksysnum.go /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.1.sdk/usr/include/sys/syscall.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && darwin +// +build arm64,darwin + +package unix + +// Deprecated: Use libSystem wrappers instead of direct syscalls. +const ( + SYS_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_CHDIR = 12 + SYS_FCHDIR = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_CHOWN = 16 + SYS_GETFSSTAT = 18 + SYS_GETPID = 20 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_GETEUID = 25 + SYS_PTRACE = 26 + SYS_RECVMSG = 27 + SYS_SENDMSG = 28 + SYS_RECVFROM = 29 + SYS_ACCEPT = 30 + SYS_GETPEERNAME = 31 + SYS_GETSOCKNAME = 32 + SYS_ACCESS = 33 + SYS_CHFLAGS = 34 + SYS_FCHFLAGS = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_GETPPID = 39 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_GETEGID = 43 + SYS_SIGACTION = 46 + SYS_GETGID = 47 + SYS_SIGPROCMASK = 48 + SYS_GETLOGIN = 49 + SYS_SETLOGIN = 50 + SYS_ACCT = 51 + SYS_SIGPENDING = 52 + SYS_SIGALTSTACK = 53 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_REVOKE = 56 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETPGID = 82 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_GETDTABLESIZE = 89 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_GETPRIORITY = 100 + SYS_BIND = 104 + SYS_SETSOCKOPT = 105 + SYS_LISTEN = 106 + SYS_SIGSUSPEND = 111 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_FLOCK = 131 + SYS_MKFIFO = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_FUTIMES = 139 + SYS_ADJTIME = 140 + SYS_GETHOSTUUID = 142 + SYS_SETSID = 147 + SYS_GETPGID = 151 + SYS_SETPRIVEXEC = 152 + SYS_PREAD = 153 + SYS_PWRITE = 154 + SYS_NFSSVC = 155 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UNMOUNT = 159 + SYS_GETFH = 161 + SYS_QUOTACTL = 165 + SYS_MOUNT = 167 + SYS_CSOPS = 169 + SYS_CSOPS_AUDITTOKEN = 170 + SYS_WAITID = 173 + SYS_KDEBUG_TYPEFILTER = 177 + SYS_KDEBUG_TRACE_STRING = 178 + SYS_KDEBUG_TRACE64 = 179 + SYS_KDEBUG_TRACE = 180 + SYS_SETGID = 181 + SYS_SETEGID = 182 + SYS_SETEUID = 183 + SYS_SIGRETURN = 184 + SYS_THREAD_SELFCOUNTS = 186 + SYS_FDATASYNC = 187 + SYS_STAT = 188 + SYS_FSTAT = 189 + SYS_LSTAT = 190 + SYS_PATHCONF = 191 + SYS_FPATHCONF = 192 + SYS_GETRLIMIT = 194 + SYS_SETRLIMIT = 195 + SYS_GETDIRENTRIES = 196 + SYS_MMAP = 197 + SYS_LSEEK = 199 + SYS_TRUNCATE = 200 + SYS_FTRUNCATE = 201 + SYS_SYSCTL = 202 + SYS_MLOCK = 203 + SYS_MUNLOCK = 204 + SYS_UNDELETE = 205 + SYS_OPEN_DPROTECTED_NP = 216 + SYS_GETATTRLIST = 220 + SYS_SETATTRLIST = 221 + SYS_GETDIRENTRIESATTR = 222 + SYS_EXCHANGEDATA = 223 + SYS_SEARCHFS = 225 + SYS_DELETE = 226 + SYS_COPYFILE = 227 + SYS_FGETATTRLIST = 228 + SYS_FSETATTRLIST = 229 + SYS_POLL = 230 + SYS_WATCHEVENT = 231 + SYS_WAITEVENT = 232 + SYS_MODWATCH = 233 + SYS_GETXATTR = 234 + SYS_FGETXATTR = 235 + SYS_SETXATTR = 236 + SYS_FSETXATTR = 237 + SYS_REMOVEXATTR = 238 + SYS_FREMOVEXATTR = 239 + SYS_LISTXATTR = 240 + SYS_FLISTXATTR = 241 + SYS_FSCTL = 242 + SYS_INITGROUPS = 243 + SYS_POSIX_SPAWN = 244 + SYS_FFSCTL = 245 + SYS_NFSCLNT = 247 + SYS_FHOPEN = 248 + SYS_MINHERIT = 250 + SYS_SEMSYS = 251 + SYS_MSGSYS = 252 + SYS_SHMSYS = 253 + SYS_SEMCTL = 254 + SYS_SEMGET = 255 + SYS_SEMOP = 256 + SYS_MSGCTL = 258 + SYS_MSGGET = 259 + SYS_MSGSND = 260 + SYS_MSGRCV = 261 + SYS_SHMAT = 262 + SYS_SHMCTL = 263 + SYS_SHMDT = 264 + SYS_SHMGET = 265 + SYS_SHM_OPEN = 266 + SYS_SHM_UNLINK = 267 + SYS_SEM_OPEN = 268 + SYS_SEM_CLOSE = 269 + SYS_SEM_UNLINK = 270 + SYS_SEM_WAIT = 271 + SYS_SEM_TRYWAIT = 272 + SYS_SEM_POST = 273 + SYS_SYSCTLBYNAME = 274 + SYS_OPEN_EXTENDED = 277 + SYS_UMASK_EXTENDED = 278 + SYS_STAT_EXTENDED = 279 + SYS_LSTAT_EXTENDED = 280 + SYS_FSTAT_EXTENDED = 281 + SYS_CHMOD_EXTENDED = 282 + SYS_FCHMOD_EXTENDED = 283 + SYS_ACCESS_EXTENDED = 284 + SYS_SETTID = 285 + SYS_GETTID = 286 + SYS_SETSGROUPS = 287 + SYS_GETSGROUPS = 288 + SYS_SETWGROUPS = 289 + SYS_GETWGROUPS = 290 + SYS_MKFIFO_EXTENDED = 291 + SYS_MKDIR_EXTENDED = 292 + SYS_IDENTITYSVC = 293 + SYS_SHARED_REGION_CHECK_NP = 294 + SYS_VM_PRESSURE_MONITOR = 296 + SYS_PSYNCH_RW_LONGRDLOCK = 297 + SYS_PSYNCH_RW_YIELDWRLOCK = 298 + SYS_PSYNCH_RW_DOWNGRADE = 299 + SYS_PSYNCH_RW_UPGRADE = 300 + SYS_PSYNCH_MUTEXWAIT = 301 + SYS_PSYNCH_MUTEXDROP = 302 + SYS_PSYNCH_CVBROAD = 303 + SYS_PSYNCH_CVSIGNAL = 304 + SYS_PSYNCH_CVWAIT = 305 + SYS_PSYNCH_RW_RDLOCK = 306 + SYS_PSYNCH_RW_WRLOCK = 307 + SYS_PSYNCH_RW_UNLOCK = 308 + SYS_PSYNCH_RW_UNLOCK2 = 309 + SYS_GETSID = 310 + SYS_SETTID_WITH_PID = 311 + SYS_PSYNCH_CVCLRPREPOST = 312 + SYS_AIO_FSYNC = 313 + SYS_AIO_RETURN = 314 + SYS_AIO_SUSPEND = 315 + SYS_AIO_CANCEL = 316 + SYS_AIO_ERROR = 317 + SYS_AIO_READ = 318 + SYS_AIO_WRITE = 319 + SYS_LIO_LISTIO = 320 + SYS_IOPOLICYSYS = 322 + SYS_PROCESS_POLICY = 323 + SYS_MLOCKALL = 324 + SYS_MUNLOCKALL = 325 + SYS_ISSETUGID = 327 + SYS___PTHREAD_KILL = 328 + SYS___PTHREAD_SIGMASK = 329 + SYS___SIGWAIT = 330 + SYS___DISABLE_THREADSIGNAL = 331 + SYS___PTHREAD_MARKCANCEL = 332 + SYS___PTHREAD_CANCELED = 333 + SYS___SEMWAIT_SIGNAL = 334 + SYS_PROC_INFO = 336 + SYS_SENDFILE = 337 + SYS_STAT64 = 338 + SYS_FSTAT64 = 339 + SYS_LSTAT64 = 340 + SYS_STAT64_EXTENDED = 341 + SYS_LSTAT64_EXTENDED = 342 + SYS_FSTAT64_EXTENDED = 343 + SYS_GETDIRENTRIES64 = 344 + SYS_STATFS64 = 345 + SYS_FSTATFS64 = 346 + SYS_GETFSSTAT64 = 347 + SYS___PTHREAD_CHDIR = 348 + SYS___PTHREAD_FCHDIR = 349 + SYS_AUDIT = 350 + SYS_AUDITON = 351 + SYS_GETAUID = 353 + SYS_SETAUID = 354 + SYS_GETAUDIT_ADDR = 357 + SYS_SETAUDIT_ADDR = 358 + SYS_AUDITCTL = 359 + SYS_BSDTHREAD_CREATE = 360 + SYS_BSDTHREAD_TERMINATE = 361 + SYS_KQUEUE = 362 + SYS_KEVENT = 363 + SYS_LCHOWN = 364 + SYS_BSDTHREAD_REGISTER = 366 + SYS_WORKQ_OPEN = 367 + SYS_WORKQ_KERNRETURN = 368 + SYS_KEVENT64 = 369 + SYS___OLD_SEMWAIT_SIGNAL = 370 + SYS___OLD_SEMWAIT_SIGNAL_NOCANCEL = 371 + SYS_THREAD_SELFID = 372 + SYS_LEDGER = 373 + SYS_KEVENT_QOS = 374 + SYS_KEVENT_ID = 375 + SYS___MAC_EXECVE = 380 + SYS___MAC_SYSCALL = 381 + SYS___MAC_GET_FILE = 382 + SYS___MAC_SET_FILE = 383 + SYS___MAC_GET_LINK = 384 + SYS___MAC_SET_LINK = 385 + SYS___MAC_GET_PROC = 386 + SYS___MAC_SET_PROC = 387 + SYS___MAC_GET_FD = 388 + SYS___MAC_SET_FD = 389 + SYS___MAC_GET_PID = 390 + SYS_PSELECT = 394 + SYS_PSELECT_NOCANCEL = 395 + SYS_READ_NOCANCEL = 396 + SYS_WRITE_NOCANCEL = 397 + SYS_OPEN_NOCANCEL = 398 + SYS_CLOSE_NOCANCEL = 399 + SYS_WAIT4_NOCANCEL = 400 + SYS_RECVMSG_NOCANCEL = 401 + SYS_SENDMSG_NOCANCEL = 402 + SYS_RECVFROM_NOCANCEL = 403 + SYS_ACCEPT_NOCANCEL = 404 + SYS_MSYNC_NOCANCEL = 405 + SYS_FCNTL_NOCANCEL = 406 + SYS_SELECT_NOCANCEL = 407 + SYS_FSYNC_NOCANCEL = 408 + SYS_CONNECT_NOCANCEL = 409 + SYS_SIGSUSPEND_NOCANCEL = 410 + SYS_READV_NOCANCEL = 411 + SYS_WRITEV_NOCANCEL = 412 + SYS_SENDTO_NOCANCEL = 413 + SYS_PREAD_NOCANCEL = 414 + SYS_PWRITE_NOCANCEL = 415 + SYS_WAITID_NOCANCEL = 416 + SYS_POLL_NOCANCEL = 417 + SYS_MSGSND_NOCANCEL = 418 + SYS_MSGRCV_NOCANCEL = 419 + SYS_SEM_WAIT_NOCANCEL = 420 + SYS_AIO_SUSPEND_NOCANCEL = 421 + SYS___SIGWAIT_NOCANCEL = 422 + SYS___SEMWAIT_SIGNAL_NOCANCEL = 423 + SYS___MAC_MOUNT = 424 + SYS___MAC_GET_MOUNT = 425 + SYS___MAC_GETFSSTAT = 426 + SYS_FSGETPATH = 427 + SYS_AUDIT_SESSION_SELF = 428 + SYS_AUDIT_SESSION_JOIN = 429 + SYS_FILEPORT_MAKEPORT = 430 + SYS_FILEPORT_MAKEFD = 431 + SYS_AUDIT_SESSION_PORT = 432 + SYS_PID_SUSPEND = 433 + SYS_PID_RESUME = 434 + SYS_PID_HIBERNATE = 435 + SYS_PID_SHUTDOWN_SOCKETS = 436 + SYS_SHARED_REGION_MAP_AND_SLIDE_NP = 438 + SYS_KAS_INFO = 439 + SYS_MEMORYSTATUS_CONTROL = 440 + SYS_GUARDED_OPEN_NP = 441 + SYS_GUARDED_CLOSE_NP = 442 + SYS_GUARDED_KQUEUE_NP = 443 + SYS_CHANGE_FDGUARD_NP = 444 + SYS_USRCTL = 445 + SYS_PROC_RLIMIT_CONTROL = 446 + SYS_CONNECTX = 447 + SYS_DISCONNECTX = 448 + SYS_PEELOFF = 449 + SYS_SOCKET_DELEGATE = 450 + SYS_TELEMETRY = 451 + SYS_PROC_UUID_POLICY = 452 + SYS_MEMORYSTATUS_GET_LEVEL = 453 + SYS_SYSTEM_OVERRIDE = 454 + SYS_VFS_PURGE = 455 + SYS_SFI_CTL = 456 + SYS_SFI_PIDCTL = 457 + SYS_COALITION = 458 + SYS_COALITION_INFO = 459 + SYS_NECP_MATCH_POLICY = 460 + SYS_GETATTRLISTBULK = 461 + SYS_CLONEFILEAT = 462 + SYS_OPENAT = 463 + SYS_OPENAT_NOCANCEL = 464 + SYS_RENAMEAT = 465 + SYS_FACCESSAT = 466 + SYS_FCHMODAT = 467 + SYS_FCHOWNAT = 468 + SYS_FSTATAT = 469 + SYS_FSTATAT64 = 470 + SYS_LINKAT = 471 + SYS_UNLINKAT = 472 + SYS_READLINKAT = 473 + SYS_SYMLINKAT = 474 + SYS_MKDIRAT = 475 + SYS_GETATTRLISTAT = 476 + SYS_PROC_TRACE_LOG = 477 + SYS_BSDTHREAD_CTL = 478 + SYS_OPENBYID_NP = 479 + SYS_RECVMSG_X = 480 + SYS_SENDMSG_X = 481 + SYS_THREAD_SELFUSAGE = 482 + SYS_CSRCTL = 483 + SYS_GUARDED_OPEN_DPROTECTED_NP = 484 + SYS_GUARDED_WRITE_NP = 485 + SYS_GUARDED_PWRITE_NP = 486 + SYS_GUARDED_WRITEV_NP = 487 + SYS_RENAMEATX_NP = 488 + SYS_MREMAP_ENCRYPTED = 489 + SYS_NETAGENT_TRIGGER = 490 + SYS_STACK_SNAPSHOT_WITH_CONFIG = 491 + SYS_MICROSTACKSHOT = 492 + SYS_GRAB_PGO_DATA = 493 + SYS_PERSONA = 494 + SYS_WORK_INTERVAL_CTL = 499 + SYS_GETENTROPY = 500 + SYS_NECP_OPEN = 501 + SYS_NECP_CLIENT_ACTION = 502 + SYS___NEXUS_OPEN = 503 + SYS___NEXUS_REGISTER = 504 + SYS___NEXUS_DEREGISTER = 505 + SYS___NEXUS_CREATE = 506 + SYS___NEXUS_DESTROY = 507 + SYS___NEXUS_GET_OPT = 508 + SYS___NEXUS_SET_OPT = 509 + SYS___CHANNEL_OPEN = 510 + SYS___CHANNEL_GET_INFO = 511 + SYS___CHANNEL_SYNC = 512 + SYS___CHANNEL_GET_OPT = 513 + SYS___CHANNEL_SET_OPT = 514 + SYS_ULOCK_WAIT = 515 + SYS_ULOCK_WAKE = 516 + SYS_FCLONEFILEAT = 517 + SYS_FS_SNAPSHOT = 518 + SYS_TERMINATE_WITH_PAYLOAD = 520 + SYS_ABORT_WITH_PAYLOAD = 521 + SYS_NECP_SESSION_OPEN = 522 + SYS_NECP_SESSION_ACTION = 523 + SYS_SETATTRLISTAT = 524 + SYS_NET_QOS_GUIDELINE = 525 + SYS_FMOUNT = 526 + SYS_NTP_ADJTIME = 527 + SYS_NTP_GETTIME = 528 + SYS_OS_FAULT_WITH_PAYLOAD = 529 + SYS_MAXSYSCALL = 530 + SYS_INVALID = 63 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go new file mode 100644 index 0000000000..703675c0c4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go @@ -0,0 +1,317 @@ +// go run mksysnum.go https://gitweb.dragonflybsd.org/dragonfly.git/blob_plain/HEAD:/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && dragonfly +// +build amd64,dragonfly + +package unix + +const ( + SYS_EXIT = 1 // { void exit(int rval); } + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } wait4 wait_args int + // SYS_NOSYS = 8; // { int nosys(void); } __nosys nosys_args int + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_MKNOD = 14 // { int mknod(char *path, int mode, int dev); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_OBREAK = 17 // { int obreak(char *nsize); } break obreak_args int + SYS_GETFSSTAT = 18 // { int getfsstat(struct statfs *buf, long bufsize, int flags); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, caddr_t msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, caddr_t from, int *fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, caddr_t name, int *anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, caddr_t asa, int *alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, caddr_t asa, int *alen); } + SYS_ACCESS = 33 // { int access(char *path, int flags); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(int fd); } + SYS_PIPE = 42 // { int pipe(void); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, size_t namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { int readlink(char *path, char *buf, int count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } umask umask_args int + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { pid_t vfork(void); } + SYS_SBRK = 69 // { caddr_t sbrk(size_t incr); } + SYS_SSTK = 70 // { int sstk(size_t incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(int from, int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_STATFS = 157 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 158 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_EXTPREAD = 173 // { ssize_t extpread(int fd, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTPWRITE = 174 // { ssize_t extpwrite(int fd, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS_MMAP = 197 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, int pad, off_t pos); } + SYS_LSEEK = 199 // { off_t lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int truncate(char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int ftruncate(int fd, int pad, off_t length); } + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS___SEMCTL = 220 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, u_int nsops); } + SYS_MSGCTL = 224 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { caddr_t shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMCTL = 229 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_OPENBSD_POLL = 252 // { int openbsd_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_EXTPREADV = 289 // { ssize_t extpreadv(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } + SYS_EXTPWRITEV = 290 // { ssize_t extpwritev(int fd, const struct iovec *iovp, int iovcnt, int flags, off_t offset); } + SYS_FHSTATFS = 297 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat* stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { int aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_AIO_READ = 318 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 319 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 320 // { int lio_listio(int mode, struct aiocb * const *acb_list, int nent, struct sigevent *sig); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(u_char *buf, u_int buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGACTION = 342 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGRETURN = 344 // { int sigreturn(ucontext_t *sigcntxp); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set,siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set,siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { int extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { int extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { int aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_KEVENT = 363 // { int kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_VARSYM_SET = 450 // { int varsym_set(int level, const char *name, const char *data); } + SYS_VARSYM_GET = 451 // { int varsym_get(int mask, const char *wild, char *buf, int bufsize); } + SYS_VARSYM_LIST = 452 // { int varsym_list(int level, char *buf, int maxsize, int *marker); } + SYS_EXEC_SYS_REGISTER = 465 // { int exec_sys_register(void *entry); } + SYS_EXEC_SYS_UNREGISTER = 466 // { int exec_sys_unregister(int id); } + SYS_SYS_CHECKPOINT = 467 // { int sys_checkpoint(int type, int fd, pid_t pid, int retval); } + SYS_MOUNTCTL = 468 // { int mountctl(const char *path, int op, int fd, const void *ctl, int ctllen, void *buf, int buflen); } + SYS_UMTX_SLEEP = 469 // { int umtx_sleep(volatile const int *ptr, int value, int timeout); } + SYS_UMTX_WAKEUP = 470 // { int umtx_wakeup(volatile const int *ptr, int count); } + SYS_JAIL_ATTACH = 471 // { int jail_attach(int jid); } + SYS_SET_TLS_AREA = 472 // { int set_tls_area(int which, struct tls_info *info, size_t infosize); } + SYS_GET_TLS_AREA = 473 // { int get_tls_area(int which, struct tls_info *info, size_t infosize); } + SYS_CLOSEFROM = 474 // { int closefrom(int fd); } + SYS_STAT = 475 // { int stat(const char *path, struct stat *ub); } + SYS_FSTAT = 476 // { int fstat(int fd, struct stat *sb); } + SYS_LSTAT = 477 // { int lstat(const char *path, struct stat *ub); } + SYS_FHSTAT = 478 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 479 // { int getdirentries(int fd, char *buf, u_int count, long *basep); } + SYS_GETDENTS = 480 // { int getdents(int fd, char *buf, size_t count); } + SYS_USCHED_SET = 481 // { int usched_set(pid_t pid, int cmd, void *data, int bytes); } + SYS_EXTACCEPT = 482 // { int extaccept(int s, int flags, caddr_t name, int *anamelen); } + SYS_EXTCONNECT = 483 // { int extconnect(int s, int flags, caddr_t name, int namelen); } + SYS_MCONTROL = 485 // { int mcontrol(void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_CREATE = 486 // { int vmspace_create(void *id, int type, void *data); } + SYS_VMSPACE_DESTROY = 487 // { int vmspace_destroy(void *id); } + SYS_VMSPACE_CTL = 488 // { int vmspace_ctl(void *id, int cmd, struct trapframe *tframe, struct vextframe *vframe); } + SYS_VMSPACE_MMAP = 489 // { int vmspace_mmap(void *id, void *addr, size_t len, int prot, int flags, int fd, off_t offset); } + SYS_VMSPACE_MUNMAP = 490 // { int vmspace_munmap(void *id, void *addr, size_t len); } + SYS_VMSPACE_MCONTROL = 491 // { int vmspace_mcontrol(void *id, void *addr, size_t len, int behav, off_t value); } + SYS_VMSPACE_PREAD = 492 // { ssize_t vmspace_pread(void *id, void *buf, size_t nbyte, int flags, off_t offset); } + SYS_VMSPACE_PWRITE = 493 // { ssize_t vmspace_pwrite(void *id, const void *buf, size_t nbyte, int flags, off_t offset); } + SYS_EXTEXIT = 494 // { void extexit(int how, int status, void *addr); } + SYS_LWP_CREATE = 495 // { int lwp_create(struct lwp_params *params); } + SYS_LWP_GETTID = 496 // { lwpid_t lwp_gettid(void); } + SYS_LWP_KILL = 497 // { int lwp_kill(pid_t pid, lwpid_t tid, int signum); } + SYS_LWP_RTPRIO = 498 // { int lwp_rtprio(int function, pid_t pid, lwpid_t tid, struct rtprio *rtp); } + SYS_PSELECT = 499 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sigmask); } + SYS_STATVFS = 500 // { int statvfs(const char *path, struct statvfs *buf); } + SYS_FSTATVFS = 501 // { int fstatvfs(int fd, struct statvfs *buf); } + SYS_FHSTATVFS = 502 // { int fhstatvfs(const struct fhandle *u_fhp, struct statvfs *buf); } + SYS_GETVFSSTAT = 503 // { int getvfsstat(struct statfs *buf, struct statvfs *vbuf, long vbufsize, int flags); } + SYS_OPENAT = 504 // { int openat(int fd, char *path, int flags, int mode); } + SYS_FSTATAT = 505 // { int fstatat(int fd, char *path, struct stat *sb, int flags); } + SYS_FCHMODAT = 506 // { int fchmodat(int fd, char *path, int mode, int flags); } + SYS_FCHOWNAT = 507 // { int fchownat(int fd, char *path, int uid, int gid, int flags); } + SYS_UNLINKAT = 508 // { int unlinkat(int fd, char *path, int flags); } + SYS_FACCESSAT = 509 // { int faccessat(int fd, char *path, int amode, int flags); } + SYS_MQ_OPEN = 510 // { mqd_t mq_open(const char * name, int oflag, mode_t mode, struct mq_attr *attr); } + SYS_MQ_CLOSE = 511 // { int mq_close(mqd_t mqdes); } + SYS_MQ_UNLINK = 512 // { int mq_unlink(const char *name); } + SYS_MQ_GETATTR = 513 // { int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); } + SYS_MQ_SETATTR = 514 // { int mq_setattr(mqd_t mqdes, const struct mq_attr *mqstat, struct mq_attr *omqstat); } + SYS_MQ_NOTIFY = 515 // { int mq_notify(mqd_t mqdes, const struct sigevent *notification); } + SYS_MQ_SEND = 516 // { int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); } + SYS_MQ_RECEIVE = 517 // { ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); } + SYS_MQ_TIMEDSEND = 518 // { int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_MQ_TIMEDRECEIVE = 519 // { ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_IOPRIO_SET = 520 // { int ioprio_set(int which, int who, int prio); } + SYS_IOPRIO_GET = 521 // { int ioprio_get(int which, int who); } + SYS_CHROOT_KERNEL = 522 // { int chroot_kernel(char *path); } + SYS_RENAMEAT = 523 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_MKDIRAT = 524 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 525 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_MKNODAT = 526 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_READLINKAT = 527 // { int readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 528 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_SWAPOFF = 529 // { int swapoff(char *name); } + SYS_VQUOTACTL = 530 // { int vquotactl(const char *path, struct plistref *pref); } + SYS_LINKAT = 531 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flags); } + SYS_EACCESS = 532 // { int eaccess(char *path, int flags); } + SYS_LPATHCONF = 533 // { int lpathconf(char *path, int name); } + SYS_VMM_GUEST_CTL = 534 // { int vmm_guest_ctl(int op, struct vmm_guest_options *options); } + SYS_VMM_GUEST_SYNC_ADDR = 535 // { int vmm_guest_sync_addr(long *dstaddr, long *srcaddr); } + SYS_PROCCTL = 536 // { int procctl(idtype_t idtype, id_t id, int cmd, void *data); } + SYS_CHFLAGSAT = 537 // { int chflagsat(int fd, const char *path, u_long flags, int atflags);} + SYS_PIPE2 = 538 // { int pipe2(int *fildes, int flags); } + SYS_UTIMENSAT = 539 // { int utimensat(int fd, const char *path, const struct timespec *ts, int flags); } + SYS_FUTIMENS = 540 // { int futimens(int fd, const struct timespec *ts); } + SYS_ACCEPT4 = 541 // { int accept4(int s, caddr_t name, int *anamelen, int flags); } + SYS_LWP_SETNAME = 542 // { int lwp_setname(lwpid_t tid, const char *name); } + SYS_PPOLL = 543 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *sigmask); } + SYS_LWP_SETAFFINITY = 544 // { int lwp_setaffinity(pid_t pid, lwpid_t tid, const cpumask_t *mask); } + SYS_LWP_GETAFFINITY = 545 // { int lwp_getaffinity(pid_t pid, lwpid_t tid, cpumask_t *mask); } + SYS_LWP_CREATE2 = 546 // { int lwp_create2(struct lwp_params *params, const cpumask_t *mask); } + SYS_GETCPUCLOCKID = 547 // { int getcpuclockid(pid_t pid, lwpid_t lwp_id, clockid_t *clock_id); } + SYS_WAIT6 = 548 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_LWP_GETNAME = 549 // { int lwp_getname(lwpid_t tid, char *name, size_t len); } + SYS_GETRANDOM = 550 // { ssize_t getrandom(void *buf, size_t len, unsigned flags); } + SYS___REALPATH = 551 // { ssize_t __realpath(const char *path, char *buf, size_t len); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go new file mode 100644 index 0000000000..4e0d96107b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go @@ -0,0 +1,394 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && freebsd +// +build 386,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go new file mode 100644 index 0000000000..01636b838d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go @@ -0,0 +1,394 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && freebsd +// +build amd64,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go new file mode 100644 index 0000000000..ad99bc106a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go @@ -0,0 +1,394 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && freebsd +// +build arm,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go new file mode 100644 index 0000000000..89dcc42747 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go @@ -0,0 +1,394 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && freebsd +// +build arm64,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go new file mode 100644 index 0000000000..ee37aaa0c9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go @@ -0,0 +1,394 @@ +// go run mksysnum.go https://cgit.freebsd.org/src/plain/sys/kern/syscalls.master?h=stable/12 +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && freebsd +// +build riscv64,freebsd + +package unix + +const ( + // SYS_NOSYS = 0; // { int nosys(void); } syscall nosys_args int + SYS_EXIT = 1 // { void sys_exit(int rval); } exit sys_exit_args void + SYS_FORK = 2 // { int fork(void); } + SYS_READ = 3 // { ssize_t read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int open(char *path, int flags, int mode); } + SYS_CLOSE = 6 // { int close(int fd); } + SYS_WAIT4 = 7 // { int wait4(int pid, int *status, int options, struct rusage *rusage); } + SYS_LINK = 9 // { int link(char *path, char *link); } + SYS_UNLINK = 10 // { int unlink(char *path); } + SYS_CHDIR = 12 // { int chdir(char *path); } + SYS_FCHDIR = 13 // { int fchdir(int fd); } + SYS_CHMOD = 15 // { int chmod(char *path, int mode); } + SYS_CHOWN = 16 // { int chown(char *path, int uid, int gid); } + SYS_BREAK = 17 // { caddr_t break(char *nsize); } + SYS_GETPID = 20 // { pid_t getpid(void); } + SYS_MOUNT = 21 // { int mount(char *type, char *path, int flags, caddr_t data); } + SYS_UNMOUNT = 22 // { int unmount(char *path, int flags); } + SYS_SETUID = 23 // { int setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t getuid(void); } + SYS_GETEUID = 25 // { uid_t geteuid(void); } + SYS_PTRACE = 26 // { int ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { int recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { int sendmsg(int s, struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { int recvfrom(int s, caddr_t buf, size_t len, int flags, struct sockaddr * __restrict from, __socklen_t * __restrict fromlenaddr); } + SYS_ACCEPT = 30 // { int accept(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen); } + SYS_GETPEERNAME = 31 // { int getpeername(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_GETSOCKNAME = 32 // { int getsockname(int fdes, struct sockaddr * __restrict asa, __socklen_t * __restrict alen); } + SYS_ACCESS = 33 // { int access(char *path, int amode); } + SYS_CHFLAGS = 34 // { int chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { int sync(void); } + SYS_KILL = 37 // { int kill(int pid, int signum); } + SYS_GETPPID = 39 // { pid_t getppid(void); } + SYS_DUP = 41 // { int dup(u_int fd); } + SYS_GETEGID = 43 // { gid_t getegid(void); } + SYS_PROFIL = 44 // { int profil(caddr_t samples, size_t size, size_t offset, u_int scale); } + SYS_KTRACE = 45 // { int ktrace(const char *fname, int ops, int facs, int pid); } + SYS_GETGID = 47 // { gid_t getgid(void); } + SYS_GETLOGIN = 49 // { int getlogin(char *namebuf, u_int namelen); } + SYS_SETLOGIN = 50 // { int setlogin(char *namebuf); } + SYS_ACCT = 51 // { int acct(char *path); } + SYS_SIGALTSTACK = 53 // { int sigaltstack(stack_t *ss, stack_t *oss); } + SYS_IOCTL = 54 // { int ioctl(int fd, u_long com, caddr_t data); } + SYS_REBOOT = 55 // { int reboot(int opt); } + SYS_REVOKE = 56 // { int revoke(char *path); } + SYS_SYMLINK = 57 // { int symlink(char *path, char *link); } + SYS_READLINK = 58 // { ssize_t readlink(char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int execve(char *fname, char **argv, char **envv); } + SYS_UMASK = 60 // { int umask(int newmask); } + SYS_CHROOT = 61 // { int chroot(char *path); } + SYS_MSYNC = 65 // { int msync(void *addr, size_t len, int flags); } + SYS_VFORK = 66 // { int vfork(void); } + SYS_SBRK = 69 // { int sbrk(int incr); } + SYS_SSTK = 70 // { int sstk(int incr); } + SYS_MUNMAP = 73 // { int munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int mincore(const void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int getgroups(u_int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int setgroups(u_int gidsetsize, gid_t *gidset); } + SYS_GETPGRP = 81 // { int getpgrp(void); } + SYS_SETPGID = 82 // { int setpgid(int pid, int pgid); } + SYS_SETITIMER = 83 // { int setitimer(u_int which, struct itimerval *itv, struct itimerval *oitv); } + SYS_SWAPON = 85 // { int swapon(char *name); } + SYS_GETITIMER = 86 // { int getitimer(u_int which, struct itimerval *itv); } + SYS_GETDTABLESIZE = 89 // { int getdtablesize(void); } + SYS_DUP2 = 90 // { int dup2(u_int from, u_int to); } + SYS_FCNTL = 92 // { int fcntl(int fd, int cmd, long arg); } + SYS_SELECT = 93 // { int select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_FSYNC = 95 // { int fsync(int fd); } + SYS_SETPRIORITY = 96 // { int setpriority(int which, int who, int prio); } + SYS_SOCKET = 97 // { int socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int connect(int s, caddr_t name, int namelen); } + SYS_GETPRIORITY = 100 // { int getpriority(int which, int who); } + SYS_BIND = 104 // { int bind(int s, caddr_t name, int namelen); } + SYS_SETSOCKOPT = 105 // { int setsockopt(int s, int level, int name, caddr_t val, int valsize); } + SYS_LISTEN = 106 // { int listen(int s, int backlog); } + SYS_GETTIMEOFDAY = 116 // { int gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_GETRUSAGE = 117 // { int getrusage(int who, struct rusage *rusage); } + SYS_GETSOCKOPT = 118 // { int getsockopt(int s, int level, int name, caddr_t val, int *avalsize); } + SYS_READV = 120 // { int readv(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_WRITEV = 121 // { int writev(int fd, struct iovec *iovp, u_int iovcnt); } + SYS_SETTIMEOFDAY = 122 // { int settimeofday(struct timeval *tv, struct timezone *tzp); } + SYS_FCHOWN = 123 // { int fchown(int fd, int uid, int gid); } + SYS_FCHMOD = 124 // { int fchmod(int fd, int mode); } + SYS_SETREUID = 126 // { int setreuid(int ruid, int euid); } + SYS_SETREGID = 127 // { int setregid(int rgid, int egid); } + SYS_RENAME = 128 // { int rename(char *from, char *to); } + SYS_FLOCK = 131 // { int flock(int fd, int how); } + SYS_MKFIFO = 132 // { int mkfifo(char *path, int mode); } + SYS_SENDTO = 133 // { int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, int tolen); } + SYS_SHUTDOWN = 134 // { int shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int mkdir(char *path, int mode); } + SYS_RMDIR = 137 // { int rmdir(char *path); } + SYS_UTIMES = 138 // { int utimes(char *path, struct timeval *tptr); } + SYS_ADJTIME = 140 // { int adjtime(struct timeval *delta, struct timeval *olddelta); } + SYS_SETSID = 147 // { int setsid(void); } + SYS_QUOTACTL = 148 // { int quotactl(char *path, int cmd, int uid, caddr_t arg); } + SYS_NLM_SYSCALL = 154 // { int nlm_syscall(int debug_level, int grace_period, int addr_count, char **addrs); } + SYS_NFSSVC = 155 // { int nfssvc(int flag, caddr_t argp); } + SYS_LGETFH = 160 // { int lgetfh(char *fname, struct fhandle *fhp); } + SYS_GETFH = 161 // { int getfh(char *fname, struct fhandle *fhp); } + SYS_SYSARCH = 165 // { int sysarch(int op, char *parms); } + SYS_RTPRIO = 166 // { int rtprio(int function, pid_t pid, struct rtprio *rtp); } + SYS_SEMSYS = 169 // { int semsys(int which, int a2, int a3, int a4, int a5); } + SYS_MSGSYS = 170 // { int msgsys(int which, int a2, int a3, int a4, int a5, int a6); } + SYS_SHMSYS = 171 // { int shmsys(int which, int a2, int a3, int a4); } + SYS_SETFIB = 175 // { int setfib(int fibnum); } + SYS_NTP_ADJTIME = 176 // { int ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int setgid(gid_t gid); } + SYS_SETEGID = 182 // { int setegid(gid_t egid); } + SYS_SETEUID = 183 // { int seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { int pathconf(char *path, int name); } + SYS_FPATHCONF = 192 // { int fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int getrlimit(u_int which, struct rlimit *rlp); } getrlimit __getrlimit_args int + SYS_SETRLIMIT = 195 // { int setrlimit(u_int which, struct rlimit *rlp); } setrlimit __setrlimit_args int + SYS___SYSCTL = 202 // { int __sysctl(int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } __sysctl sysctl_args int + SYS_MLOCK = 203 // { int mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int undelete(char *path); } + SYS_FUTIMES = 206 // { int futimes(int fd, struct timeval *tptr); } + SYS_GETPGID = 207 // { int getpgid(pid_t pid); } + SYS_POLL = 209 // { int poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_MSGGET = 225 // { int msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { int shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int shmget(key_t key, size_t size, int shmflg); } + SYS_CLOCK_GETTIME = 232 // { int clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 233 // { int clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 234 // { int clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_KTIMER_CREATE = 235 // { int ktimer_create(clockid_t clock_id, struct sigevent *evp, int *timerid); } + SYS_KTIMER_DELETE = 236 // { int ktimer_delete(int timerid); } + SYS_KTIMER_SETTIME = 237 // { int ktimer_settime(int timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_KTIMER_GETTIME = 238 // { int ktimer_gettime(int timerid, struct itimerspec *value); } + SYS_KTIMER_GETOVERRUN = 239 // { int ktimer_getoverrun(int timerid); } + SYS_NANOSLEEP = 240 // { int nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FFCLOCK_GETCOUNTER = 241 // { int ffclock_getcounter(ffcounter *ffcount); } + SYS_FFCLOCK_SETESTIMATE = 242 // { int ffclock_setestimate(struct ffclock_estimate *cest); } + SYS_FFCLOCK_GETESTIMATE = 243 // { int ffclock_getestimate(struct ffclock_estimate *cest); } + SYS_CLOCK_NANOSLEEP = 244 // { int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); } + SYS_CLOCK_GETCPUCLOCKID2 = 247 // { int clock_getcpuclockid2(id_t id, int which, clockid_t *clock_id); } + SYS_NTP_GETTIME = 248 // { int ntp_gettime(struct ntptimeval *ntvp); } + SYS_MINHERIT = 250 // { int minherit(void *addr, size_t len, int inherit); } + SYS_RFORK = 251 // { int rfork(int flags); } + SYS_ISSETUGID = 253 // { int issetugid(void); } + SYS_LCHOWN = 254 // { int lchown(char *path, int uid, int gid); } + SYS_AIO_READ = 255 // { int aio_read(struct aiocb *aiocbp); } + SYS_AIO_WRITE = 256 // { int aio_write(struct aiocb *aiocbp); } + SYS_LIO_LISTIO = 257 // { int lio_listio(int mode, struct aiocb* const *acb_list, int nent, struct sigevent *sig); } + SYS_LCHMOD = 274 // { int lchmod(char *path, mode_t mode); } + SYS_LUTIMES = 276 // { int lutimes(char *path, struct timeval *tptr); } + SYS_PREADV = 289 // { ssize_t preadv(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t pwritev(int fd, struct iovec *iovp, u_int iovcnt, off_t offset); } + SYS_FHOPEN = 298 // { int fhopen(const struct fhandle *u_fhp, int flags); } + SYS_MODNEXT = 300 // { int modnext(int modid); } + SYS_MODSTAT = 301 // { int modstat(int modid, struct module_stat* stat); } + SYS_MODFNEXT = 302 // { int modfnext(int modid); } + SYS_MODFIND = 303 // { int modfind(const char *name); } + SYS_KLDLOAD = 304 // { int kldload(const char *file); } + SYS_KLDUNLOAD = 305 // { int kldunload(int fileid); } + SYS_KLDFIND = 306 // { int kldfind(const char *file); } + SYS_KLDNEXT = 307 // { int kldnext(int fileid); } + SYS_KLDSTAT = 308 // { int kldstat(int fileid, struct kld_file_stat *stat); } + SYS_KLDFIRSTMOD = 309 // { int kldfirstmod(int fileid); } + SYS_GETSID = 310 // { int getsid(pid_t pid); } + SYS_SETRESUID = 311 // { int setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_SETRESGID = 312 // { int setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_AIO_RETURN = 314 // { ssize_t aio_return(struct aiocb *aiocbp); } + SYS_AIO_SUSPEND = 315 // { int aio_suspend(struct aiocb * const * aiocbp, int nent, const struct timespec *timeout); } + SYS_AIO_CANCEL = 316 // { int aio_cancel(int fd, struct aiocb *aiocbp); } + SYS_AIO_ERROR = 317 // { int aio_error(struct aiocb *aiocbp); } + SYS_YIELD = 321 // { int yield(void); } + SYS_MLOCKALL = 324 // { int mlockall(int how); } + SYS_MUNLOCKALL = 325 // { int munlockall(void); } + SYS___GETCWD = 326 // { int __getcwd(char *buf, size_t buflen); } + SYS_SCHED_SETPARAM = 327 // { int sched_setparam (pid_t pid, const struct sched_param *param); } + SYS_SCHED_GETPARAM = 328 // { int sched_getparam (pid_t pid, struct sched_param *param); } + SYS_SCHED_SETSCHEDULER = 329 // { int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); } + SYS_SCHED_GETSCHEDULER = 330 // { int sched_getscheduler (pid_t pid); } + SYS_SCHED_YIELD = 331 // { int sched_yield (void); } + SYS_SCHED_GET_PRIORITY_MAX = 332 // { int sched_get_priority_max (int policy); } + SYS_SCHED_GET_PRIORITY_MIN = 333 // { int sched_get_priority_min (int policy); } + SYS_SCHED_RR_GET_INTERVAL = 334 // { int sched_rr_get_interval (pid_t pid, struct timespec *interval); } + SYS_UTRACE = 335 // { int utrace(const void *addr, size_t len); } + SYS_KLDSYM = 337 // { int kldsym(int fileid, int cmd, void *data); } + SYS_JAIL = 338 // { int jail(struct jail *jail); } + SYS_SIGPROCMASK = 340 // { int sigprocmask(int how, const sigset_t *set, sigset_t *oset); } + SYS_SIGSUSPEND = 341 // { int sigsuspend(const sigset_t *sigmask); } + SYS_SIGPENDING = 343 // { int sigpending(sigset_t *set); } + SYS_SIGTIMEDWAIT = 345 // { int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout); } + SYS_SIGWAITINFO = 346 // { int sigwaitinfo(const sigset_t *set, siginfo_t *info); } + SYS___ACL_GET_FILE = 347 // { int __acl_get_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FILE = 348 // { int __acl_set_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_GET_FD = 349 // { int __acl_get_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_FD = 350 // { int __acl_set_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_FILE = 351 // { int __acl_delete_file(const char *path, acl_type_t type); } + SYS___ACL_DELETE_FD = 352 // { int __acl_delete_fd(int filedes, acl_type_t type); } + SYS___ACL_ACLCHECK_FILE = 353 // { int __acl_aclcheck_file(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_ACLCHECK_FD = 354 // { int __acl_aclcheck_fd(int filedes, acl_type_t type, struct acl *aclp); } + SYS_EXTATTRCTL = 355 // { int extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 356 // { ssize_t extattr_set_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 357 // { ssize_t extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 358 // { int extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_AIO_WAITCOMPLETE = 359 // { ssize_t aio_waitcomplete(struct aiocb **aiocbp, struct timespec *timeout); } + SYS_GETRESUID = 360 // { int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_GETRESGID = 361 // { int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_KQUEUE = 362 // { int kqueue(void); } + SYS_EXTATTR_SET_FD = 371 // { ssize_t extattr_set_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 372 // { ssize_t extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 373 // { int extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS___SETUGID = 374 // { int __setugid(int flag); } + SYS_EACCESS = 376 // { int eaccess(char *path, int amode); } + SYS_NMOUNT = 378 // { int nmount(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS___MAC_GET_PROC = 384 // { int __mac_get_proc(struct mac *mac_p); } + SYS___MAC_SET_PROC = 385 // { int __mac_set_proc(struct mac *mac_p); } + SYS___MAC_GET_FD = 386 // { int __mac_get_fd(int fd, struct mac *mac_p); } + SYS___MAC_GET_FILE = 387 // { int __mac_get_file(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_FD = 388 // { int __mac_set_fd(int fd, struct mac *mac_p); } + SYS___MAC_SET_FILE = 389 // { int __mac_set_file(const char *path_p, struct mac *mac_p); } + SYS_KENV = 390 // { int kenv(int what, const char *name, char *value, int len); } + SYS_LCHFLAGS = 391 // { int lchflags(const char *path, u_long flags); } + SYS_UUIDGEN = 392 // { int uuidgen(struct uuid *store, int count); } + SYS_SENDFILE = 393 // { int sendfile(int fd, int s, off_t offset, size_t nbytes, struct sf_hdtr *hdtr, off_t *sbytes, int flags); } + SYS_MAC_SYSCALL = 394 // { int mac_syscall(const char *policy, int call, void *arg); } + SYS_KSEM_CLOSE = 400 // { int ksem_close(semid_t id); } + SYS_KSEM_POST = 401 // { int ksem_post(semid_t id); } + SYS_KSEM_WAIT = 402 // { int ksem_wait(semid_t id); } + SYS_KSEM_TRYWAIT = 403 // { int ksem_trywait(semid_t id); } + SYS_KSEM_INIT = 404 // { int ksem_init(semid_t *idp, unsigned int value); } + SYS_KSEM_OPEN = 405 // { int ksem_open(semid_t *idp, const char *name, int oflag, mode_t mode, unsigned int value); } + SYS_KSEM_UNLINK = 406 // { int ksem_unlink(const char *name); } + SYS_KSEM_GETVALUE = 407 // { int ksem_getvalue(semid_t id, int *val); } + SYS_KSEM_DESTROY = 408 // { int ksem_destroy(semid_t id); } + SYS___MAC_GET_PID = 409 // { int __mac_get_pid(pid_t pid, struct mac *mac_p); } + SYS___MAC_GET_LINK = 410 // { int __mac_get_link(const char *path_p, struct mac *mac_p); } + SYS___MAC_SET_LINK = 411 // { int __mac_set_link(const char *path_p, struct mac *mac_p); } + SYS_EXTATTR_SET_LINK = 412 // { ssize_t extattr_set_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 413 // { ssize_t extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 414 // { int extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS___MAC_EXECVE = 415 // { int __mac_execve(char *fname, char **argv, char **envv, struct mac *mac_p); } + SYS_SIGACTION = 416 // { int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); } + SYS_SIGRETURN = 417 // { int sigreturn(const struct __ucontext *sigcntxp); } + SYS_GETCONTEXT = 421 // { int getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 422 // { int setcontext(const struct __ucontext *ucp); } + SYS_SWAPCONTEXT = 423 // { int swapcontext(struct __ucontext *oucp, const struct __ucontext *ucp); } + SYS_SWAPOFF = 424 // { int swapoff(const char *name); } + SYS___ACL_GET_LINK = 425 // { int __acl_get_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_SET_LINK = 426 // { int __acl_set_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS___ACL_DELETE_LINK = 427 // { int __acl_delete_link(const char *path, acl_type_t type); } + SYS___ACL_ACLCHECK_LINK = 428 // { int __acl_aclcheck_link(const char *path, acl_type_t type, struct acl *aclp); } + SYS_SIGWAIT = 429 // { int sigwait(const sigset_t *set, int *sig); } + SYS_THR_CREATE = 430 // { int thr_create(ucontext_t *ctx, long *id, int flags); } + SYS_THR_EXIT = 431 // { void thr_exit(long *state); } + SYS_THR_SELF = 432 // { int thr_self(long *id); } + SYS_THR_KILL = 433 // { int thr_kill(long id, int sig); } + SYS_JAIL_ATTACH = 436 // { int jail_attach(int jid); } + SYS_EXTATTR_LIST_FD = 437 // { ssize_t extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 438 // { ssize_t extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 439 // { ssize_t extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_KSEM_TIMEDWAIT = 441 // { int ksem_timedwait(semid_t id, const struct timespec *abstime); } + SYS_THR_SUSPEND = 442 // { int thr_suspend(const struct timespec *timeout); } + SYS_THR_WAKE = 443 // { int thr_wake(long id); } + SYS_KLDUNLOADF = 444 // { int kldunloadf(int fileid, int flags); } + SYS_AUDIT = 445 // { int audit(const void *record, u_int length); } + SYS_AUDITON = 446 // { int auditon(int cmd, void *data, u_int length); } + SYS_GETAUID = 447 // { int getauid(uid_t *auid); } + SYS_SETAUID = 448 // { int setauid(uid_t *auid); } + SYS_GETAUDIT = 449 // { int getaudit(struct auditinfo *auditinfo); } + SYS_SETAUDIT = 450 // { int setaudit(struct auditinfo *auditinfo); } + SYS_GETAUDIT_ADDR = 451 // { int getaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_SETAUDIT_ADDR = 452 // { int setaudit_addr(struct auditinfo_addr *auditinfo_addr, u_int length); } + SYS_AUDITCTL = 453 // { int auditctl(char *path); } + SYS__UMTX_OP = 454 // { int _umtx_op(void *obj, int op, u_long val, void *uaddr1, void *uaddr2); } + SYS_THR_NEW = 455 // { int thr_new(struct thr_param *param, int param_size); } + SYS_SIGQUEUE = 456 // { int sigqueue(pid_t pid, int signum, void *value); } + SYS_KMQ_OPEN = 457 // { int kmq_open(const char *path, int flags, mode_t mode, const struct mq_attr *attr); } + SYS_KMQ_SETATTR = 458 // { int kmq_setattr(int mqd, const struct mq_attr *attr, struct mq_attr *oattr); } + SYS_KMQ_TIMEDRECEIVE = 459 // { int kmq_timedreceive(int mqd, char *msg_ptr, size_t msg_len, unsigned *msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_TIMEDSEND = 460 // { int kmq_timedsend(int mqd, const char *msg_ptr, size_t msg_len, unsigned msg_prio, const struct timespec *abs_timeout); } + SYS_KMQ_NOTIFY = 461 // { int kmq_notify(int mqd, const struct sigevent *sigev); } + SYS_KMQ_UNLINK = 462 // { int kmq_unlink(const char *path); } + SYS_ABORT2 = 463 // { int abort2(const char *why, int nargs, void **args); } + SYS_THR_SET_NAME = 464 // { int thr_set_name(long id, const char *name); } + SYS_AIO_FSYNC = 465 // { int aio_fsync(int op, struct aiocb *aiocbp); } + SYS_RTPRIO_THREAD = 466 // { int rtprio_thread(int function, lwpid_t lwpid, struct rtprio *rtp); } + SYS_SCTP_PEELOFF = 471 // { int sctp_peeloff(int sd, uint32_t name); } + SYS_SCTP_GENERIC_SENDMSG = 472 // { int sctp_generic_sendmsg(int sd, caddr_t msg, int mlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_SENDMSG_IOV = 473 // { int sctp_generic_sendmsg_iov(int sd, struct iovec *iov, int iovlen, caddr_t to, __socklen_t tolen, struct sctp_sndrcvinfo *sinfo, int flags); } + SYS_SCTP_GENERIC_RECVMSG = 474 // { int sctp_generic_recvmsg(int sd, struct iovec *iov, int iovlen, struct sockaddr *from, __socklen_t *fromlenaddr, struct sctp_sndrcvinfo *sinfo, int *msg_flags); } + SYS_PREAD = 475 // { ssize_t pread(int fd, void *buf, size_t nbyte, off_t offset); } + SYS_PWRITE = 476 // { ssize_t pwrite(int fd, const void *buf, size_t nbyte, off_t offset); } + SYS_MMAP = 477 // { caddr_t mmap(caddr_t addr, size_t len, int prot, int flags, int fd, off_t pos); } + SYS_LSEEK = 478 // { off_t lseek(int fd, off_t offset, int whence); } + SYS_TRUNCATE = 479 // { int truncate(char *path, off_t length); } + SYS_FTRUNCATE = 480 // { int ftruncate(int fd, off_t length); } + SYS_THR_KILL2 = 481 // { int thr_kill2(pid_t pid, long id, int sig); } + SYS_SHM_OPEN = 482 // { int shm_open(const char *path, int flags, mode_t mode); } + SYS_SHM_UNLINK = 483 // { int shm_unlink(const char *path); } + SYS_CPUSET = 484 // { int cpuset(cpusetid_t *setid); } + SYS_CPUSET_SETID = 485 // { int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); } + SYS_CPUSET_GETID = 486 // { int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); } + SYS_CPUSET_GETAFFINITY = 487 // { int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, cpuset_t *mask); } + SYS_CPUSET_SETAFFINITY = 488 // { int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t cpusetsize, const cpuset_t *mask); } + SYS_FACCESSAT = 489 // { int faccessat(int fd, char *path, int amode, int flag); } + SYS_FCHMODAT = 490 // { int fchmodat(int fd, char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 491 // { int fchownat(int fd, char *path, uid_t uid, gid_t gid, int flag); } + SYS_FEXECVE = 492 // { int fexecve(int fd, char **argv, char **envv); } + SYS_FUTIMESAT = 494 // { int futimesat(int fd, char *path, struct timeval *times); } + SYS_LINKAT = 495 // { int linkat(int fd1, char *path1, int fd2, char *path2, int flag); } + SYS_MKDIRAT = 496 // { int mkdirat(int fd, char *path, mode_t mode); } + SYS_MKFIFOAT = 497 // { int mkfifoat(int fd, char *path, mode_t mode); } + SYS_OPENAT = 499 // { int openat(int fd, char *path, int flag, mode_t mode); } + SYS_READLINKAT = 500 // { ssize_t readlinkat(int fd, char *path, char *buf, size_t bufsize); } + SYS_RENAMEAT = 501 // { int renameat(int oldfd, char *old, int newfd, char *new); } + SYS_SYMLINKAT = 502 // { int symlinkat(char *path1, int fd, char *path2); } + SYS_UNLINKAT = 503 // { int unlinkat(int fd, char *path, int flag); } + SYS_POSIX_OPENPT = 504 // { int posix_openpt(int flags); } + SYS_GSSD_SYSCALL = 505 // { int gssd_syscall(char *path); } + SYS_JAIL_GET = 506 // { int jail_get(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_SET = 507 // { int jail_set(struct iovec *iovp, unsigned int iovcnt, int flags); } + SYS_JAIL_REMOVE = 508 // { int jail_remove(int jid); } + SYS_CLOSEFROM = 509 // { int closefrom(int lowfd); } + SYS___SEMCTL = 510 // { int __semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_MSGCTL = 511 // { int msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SHMCTL = 512 // { int shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_LPATHCONF = 513 // { int lpathconf(char *path, int name); } + SYS___CAP_RIGHTS_GET = 515 // { int __cap_rights_get(int version, int fd, cap_rights_t *rightsp); } + SYS_CAP_ENTER = 516 // { int cap_enter(void); } + SYS_CAP_GETMODE = 517 // { int cap_getmode(u_int *modep); } + SYS_PDFORK = 518 // { int pdfork(int *fdp, int flags); } + SYS_PDKILL = 519 // { int pdkill(int fd, int signum); } + SYS_PDGETPID = 520 // { int pdgetpid(int fd, pid_t *pidp); } + SYS_PSELECT = 522 // { int pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *sm); } + SYS_GETLOGINCLASS = 523 // { int getloginclass(char *namebuf, size_t namelen); } + SYS_SETLOGINCLASS = 524 // { int setloginclass(const char *namebuf); } + SYS_RCTL_GET_RACCT = 525 // { int rctl_get_racct(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_RULES = 526 // { int rctl_get_rules(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_GET_LIMITS = 527 // { int rctl_get_limits(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_ADD_RULE = 528 // { int rctl_add_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_RCTL_REMOVE_RULE = 529 // { int rctl_remove_rule(const void *inbufp, size_t inbuflen, void *outbufp, size_t outbuflen); } + SYS_POSIX_FALLOCATE = 530 // { int posix_fallocate(int fd, off_t offset, off_t len); } + SYS_POSIX_FADVISE = 531 // { int posix_fadvise(int fd, off_t offset, off_t len, int advice); } + SYS_WAIT6 = 532 // { int wait6(idtype_t idtype, id_t id, int *status, int options, struct __wrusage *wrusage, siginfo_t *info); } + SYS_CAP_RIGHTS_LIMIT = 533 // { int cap_rights_limit(int fd, cap_rights_t *rightsp); } + SYS_CAP_IOCTLS_LIMIT = 534 // { int cap_ioctls_limit(int fd, const u_long *cmds, size_t ncmds); } + SYS_CAP_IOCTLS_GET = 535 // { ssize_t cap_ioctls_get(int fd, u_long *cmds, size_t maxcmds); } + SYS_CAP_FCNTLS_LIMIT = 536 // { int cap_fcntls_limit(int fd, uint32_t fcntlrights); } + SYS_CAP_FCNTLS_GET = 537 // { int cap_fcntls_get(int fd, uint32_t *fcntlrightsp); } + SYS_BINDAT = 538 // { int bindat(int fd, int s, caddr_t name, int namelen); } + SYS_CONNECTAT = 539 // { int connectat(int fd, int s, caddr_t name, int namelen); } + SYS_CHFLAGSAT = 540 // { int chflagsat(int fd, const char *path, u_long flags, int atflag); } + SYS_ACCEPT4 = 541 // { int accept4(int s, struct sockaddr * __restrict name, __socklen_t * __restrict anamelen, int flags); } + SYS_PIPE2 = 542 // { int pipe2(int *fildes, int flags); } + SYS_AIO_MLOCK = 543 // { int aio_mlock(struct aiocb *aiocbp); } + SYS_PROCCTL = 544 // { int procctl(idtype_t idtype, id_t id, int com, void *data); } + SYS_PPOLL = 545 // { int ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *set); } + SYS_FUTIMENS = 546 // { int futimens(int fd, struct timespec *times); } + SYS_UTIMENSAT = 547 // { int utimensat(int fd, char *path, struct timespec *times, int flag); } + SYS_FDATASYNC = 550 // { int fdatasync(int fd); } + SYS_FSTAT = 551 // { int fstat(int fd, struct stat *sb); } + SYS_FSTATAT = 552 // { int fstatat(int fd, char *path, struct stat *buf, int flag); } + SYS_FHSTAT = 553 // { int fhstat(const struct fhandle *u_fhp, struct stat *sb); } + SYS_GETDIRENTRIES = 554 // { ssize_t getdirentries(int fd, char *buf, size_t count, off_t *basep); } + SYS_STATFS = 555 // { int statfs(char *path, struct statfs *buf); } + SYS_FSTATFS = 556 // { int fstatfs(int fd, struct statfs *buf); } + SYS_GETFSSTAT = 557 // { int getfsstat(struct statfs *buf, long bufsize, int mode); } + SYS_FHSTATFS = 558 // { int fhstatfs(const struct fhandle *u_fhp, struct statfs *buf); } + SYS_MKNODAT = 559 // { int mknodat(int fd, char *path, mode_t mode, dev_t dev); } + SYS_KEVENT = 560 // { int kevent(int fd, struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_CPUSET_GETDOMAIN = 561 // { int cpuset_getdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int *policy); } + SYS_CPUSET_SETDOMAIN = 562 // { int cpuset_setdomain(cpulevel_t level, cpuwhich_t which, id_t id, size_t domainsetsize, domainset_t *mask, int policy); } + SYS_GETRANDOM = 563 // { int getrandom(void *buf, size_t buflen, unsigned int flags); } + SYS_GETFHAT = 564 // { int getfhat(int fd, char *path, struct fhandle *fhp, int flags); } + SYS_FHLINK = 565 // { int fhlink(struct fhandle *fhp, const char *to); } + SYS_FHLINKAT = 566 // { int fhlinkat(struct fhandle *fhp, int tofd, const char *to,); } + SYS_FHREADLINK = 567 // { int fhreadlink(struct fhandle *fhp, char *buf, size_t bufsize); } + SYS___SYSCTLBYNAME = 570 // { int __sysctlbyname(const char *name, size_t namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_CLOSE_RANGE = 575 // { int close_range(u_int lowfd, u_int highfd, int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go new file mode 100644 index 0000000000..c9c4ad0314 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go @@ -0,0 +1,450 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/386/include -m32 /tmp/386/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && linux +// +build 386,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86OLD = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_VM86 = 166 + SYS_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_SET_THREAD_AREA = 243 + SYS_GET_THREAD_AREA = 244 + SYS_IO_SETUP = 245 + SYS_IO_DESTROY = 246 + SYS_IO_GETEVENTS = 247 + SYS_IO_SUBMIT = 248 + SYS_IO_CANCEL = 249 + SYS_FADVISE64 = 250 + SYS_EXIT_GROUP = 252 + SYS_LOOKUP_DCOOKIE = 253 + SYS_EPOLL_CREATE = 254 + SYS_EPOLL_CTL = 255 + SYS_EPOLL_WAIT = 256 + SYS_REMAP_FILE_PAGES = 257 + SYS_SET_TID_ADDRESS = 258 + SYS_TIMER_CREATE = 259 + SYS_TIMER_SETTIME = 260 + SYS_TIMER_GETTIME = 261 + SYS_TIMER_GETOVERRUN = 262 + SYS_TIMER_DELETE = 263 + SYS_CLOCK_SETTIME = 264 + SYS_CLOCK_GETTIME = 265 + SYS_CLOCK_GETRES = 266 + SYS_CLOCK_NANOSLEEP = 267 + SYS_STATFS64 = 268 + SYS_FSTATFS64 = 269 + SYS_TGKILL = 270 + SYS_UTIMES = 271 + SYS_FADVISE64_64 = 272 + SYS_VSERVER = 273 + SYS_MBIND = 274 + SYS_GET_MEMPOLICY = 275 + SYS_SET_MEMPOLICY = 276 + SYS_MQ_OPEN = 277 + SYS_MQ_UNLINK = 278 + SYS_MQ_TIMEDSEND = 279 + SYS_MQ_TIMEDRECEIVE = 280 + SYS_MQ_NOTIFY = 281 + SYS_MQ_GETSETATTR = 282 + SYS_KEXEC_LOAD = 283 + SYS_WAITID = 284 + SYS_ADD_KEY = 286 + SYS_REQUEST_KEY = 287 + SYS_KEYCTL = 288 + SYS_IOPRIO_SET = 289 + SYS_IOPRIO_GET = 290 + SYS_INOTIFY_INIT = 291 + SYS_INOTIFY_ADD_WATCH = 292 + SYS_INOTIFY_RM_WATCH = 293 + SYS_MIGRATE_PAGES = 294 + SYS_OPENAT = 295 + SYS_MKDIRAT = 296 + SYS_MKNODAT = 297 + SYS_FCHOWNAT = 298 + SYS_FUTIMESAT = 299 + SYS_FSTATAT64 = 300 + SYS_UNLINKAT = 301 + SYS_RENAMEAT = 302 + SYS_LINKAT = 303 + SYS_SYMLINKAT = 304 + SYS_READLINKAT = 305 + SYS_FCHMODAT = 306 + SYS_FACCESSAT = 307 + SYS_PSELECT6 = 308 + SYS_PPOLL = 309 + SYS_UNSHARE = 310 + SYS_SET_ROBUST_LIST = 311 + SYS_GET_ROBUST_LIST = 312 + SYS_SPLICE = 313 + SYS_SYNC_FILE_RANGE = 314 + SYS_TEE = 315 + SYS_VMSPLICE = 316 + SYS_MOVE_PAGES = 317 + SYS_GETCPU = 318 + SYS_EPOLL_PWAIT = 319 + SYS_UTIMENSAT = 320 + SYS_SIGNALFD = 321 + SYS_TIMERFD_CREATE = 322 + SYS_EVENTFD = 323 + SYS_FALLOCATE = 324 + SYS_TIMERFD_SETTIME = 325 + SYS_TIMERFD_GETTIME = 326 + SYS_SIGNALFD4 = 327 + SYS_EVENTFD2 = 328 + SYS_EPOLL_CREATE1 = 329 + SYS_DUP3 = 330 + SYS_PIPE2 = 331 + SYS_INOTIFY_INIT1 = 332 + SYS_PREADV = 333 + SYS_PWRITEV = 334 + SYS_RT_TGSIGQUEUEINFO = 335 + SYS_PERF_EVENT_OPEN = 336 + SYS_RECVMMSG = 337 + SYS_FANOTIFY_INIT = 338 + SYS_FANOTIFY_MARK = 339 + SYS_PRLIMIT64 = 340 + SYS_NAME_TO_HANDLE_AT = 341 + SYS_OPEN_BY_HANDLE_AT = 342 + SYS_CLOCK_ADJTIME = 343 + SYS_SYNCFS = 344 + SYS_SENDMMSG = 345 + SYS_SETNS = 346 + SYS_PROCESS_VM_READV = 347 + SYS_PROCESS_VM_WRITEV = 348 + SYS_KCMP = 349 + SYS_FINIT_MODULE = 350 + SYS_SCHED_SETATTR = 351 + SYS_SCHED_GETATTR = 352 + SYS_RENAMEAT2 = 353 + SYS_SECCOMP = 354 + SYS_GETRANDOM = 355 + SYS_MEMFD_CREATE = 356 + SYS_BPF = 357 + SYS_EXECVEAT = 358 + SYS_SOCKET = 359 + SYS_SOCKETPAIR = 360 + SYS_BIND = 361 + SYS_CONNECT = 362 + SYS_LISTEN = 363 + SYS_ACCEPT4 = 364 + SYS_GETSOCKOPT = 365 + SYS_SETSOCKOPT = 366 + SYS_GETSOCKNAME = 367 + SYS_GETPEERNAME = 368 + SYS_SENDTO = 369 + SYS_SENDMSG = 370 + SYS_RECVFROM = 371 + SYS_RECVMSG = 372 + SYS_SHUTDOWN = 373 + SYS_USERFAULTFD = 374 + SYS_MEMBARRIER = 375 + SYS_MLOCK2 = 376 + SYS_COPY_FILE_RANGE = 377 + SYS_PREADV2 = 378 + SYS_PWRITEV2 = 379 + SYS_PKEY_MPROTECT = 380 + SYS_PKEY_ALLOC = 381 + SYS_PKEY_FREE = 382 + SYS_STATX = 383 + SYS_ARCH_PRCTL = 384 + SYS_IO_PGETEVENTS = 385 + SYS_RSEQ = 386 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go new file mode 100644 index 0000000000..12ff3417c5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go @@ -0,0 +1,372 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/amd64/include -m64 /tmp/amd64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && linux +// +build amd64,linux + +package unix + +const ( + SYS_READ = 0 + SYS_WRITE = 1 + SYS_OPEN = 2 + SYS_CLOSE = 3 + SYS_STAT = 4 + SYS_FSTAT = 5 + SYS_LSTAT = 6 + SYS_POLL = 7 + SYS_LSEEK = 8 + SYS_MMAP = 9 + SYS_MPROTECT = 10 + SYS_MUNMAP = 11 + SYS_BRK = 12 + SYS_RT_SIGACTION = 13 + SYS_RT_SIGPROCMASK = 14 + SYS_RT_SIGRETURN = 15 + SYS_IOCTL = 16 + SYS_PREAD64 = 17 + SYS_PWRITE64 = 18 + SYS_READV = 19 + SYS_WRITEV = 20 + SYS_ACCESS = 21 + SYS_PIPE = 22 + SYS_SELECT = 23 + SYS_SCHED_YIELD = 24 + SYS_MREMAP = 25 + SYS_MSYNC = 26 + SYS_MINCORE = 27 + SYS_MADVISE = 28 + SYS_SHMGET = 29 + SYS_SHMAT = 30 + SYS_SHMCTL = 31 + SYS_DUP = 32 + SYS_DUP2 = 33 + SYS_PAUSE = 34 + SYS_NANOSLEEP = 35 + SYS_GETITIMER = 36 + SYS_ALARM = 37 + SYS_SETITIMER = 38 + SYS_GETPID = 39 + SYS_SENDFILE = 40 + SYS_SOCKET = 41 + SYS_CONNECT = 42 + SYS_ACCEPT = 43 + SYS_SENDTO = 44 + SYS_RECVFROM = 45 + SYS_SENDMSG = 46 + SYS_RECVMSG = 47 + SYS_SHUTDOWN = 48 + SYS_BIND = 49 + SYS_LISTEN = 50 + SYS_GETSOCKNAME = 51 + SYS_GETPEERNAME = 52 + SYS_SOCKETPAIR = 53 + SYS_SETSOCKOPT = 54 + SYS_GETSOCKOPT = 55 + SYS_CLONE = 56 + SYS_FORK = 57 + SYS_VFORK = 58 + SYS_EXECVE = 59 + SYS_EXIT = 60 + SYS_WAIT4 = 61 + SYS_KILL = 62 + SYS_UNAME = 63 + SYS_SEMGET = 64 + SYS_SEMOP = 65 + SYS_SEMCTL = 66 + SYS_SHMDT = 67 + SYS_MSGGET = 68 + SYS_MSGSND = 69 + SYS_MSGRCV = 70 + SYS_MSGCTL = 71 + SYS_FCNTL = 72 + SYS_FLOCK = 73 + SYS_FSYNC = 74 + SYS_FDATASYNC = 75 + SYS_TRUNCATE = 76 + SYS_FTRUNCATE = 77 + SYS_GETDENTS = 78 + SYS_GETCWD = 79 + SYS_CHDIR = 80 + SYS_FCHDIR = 81 + SYS_RENAME = 82 + SYS_MKDIR = 83 + SYS_RMDIR = 84 + SYS_CREAT = 85 + SYS_LINK = 86 + SYS_UNLINK = 87 + SYS_SYMLINK = 88 + SYS_READLINK = 89 + SYS_CHMOD = 90 + SYS_FCHMOD = 91 + SYS_CHOWN = 92 + SYS_FCHOWN = 93 + SYS_LCHOWN = 94 + SYS_UMASK = 95 + SYS_GETTIMEOFDAY = 96 + SYS_GETRLIMIT = 97 + SYS_GETRUSAGE = 98 + SYS_SYSINFO = 99 + SYS_TIMES = 100 + SYS_PTRACE = 101 + SYS_GETUID = 102 + SYS_SYSLOG = 103 + SYS_GETGID = 104 + SYS_SETUID = 105 + SYS_SETGID = 106 + SYS_GETEUID = 107 + SYS_GETEGID = 108 + SYS_SETPGID = 109 + SYS_GETPPID = 110 + SYS_GETPGRP = 111 + SYS_SETSID = 112 + SYS_SETREUID = 113 + SYS_SETREGID = 114 + SYS_GETGROUPS = 115 + SYS_SETGROUPS = 116 + SYS_SETRESUID = 117 + SYS_GETRESUID = 118 + SYS_SETRESGID = 119 + SYS_GETRESGID = 120 + SYS_GETPGID = 121 + SYS_SETFSUID = 122 + SYS_SETFSGID = 123 + SYS_GETSID = 124 + SYS_CAPGET = 125 + SYS_CAPSET = 126 + SYS_RT_SIGPENDING = 127 + SYS_RT_SIGTIMEDWAIT = 128 + SYS_RT_SIGQUEUEINFO = 129 + SYS_RT_SIGSUSPEND = 130 + SYS_SIGALTSTACK = 131 + SYS_UTIME = 132 + SYS_MKNOD = 133 + SYS_USELIB = 134 + SYS_PERSONALITY = 135 + SYS_USTAT = 136 + SYS_STATFS = 137 + SYS_FSTATFS = 138 + SYS_SYSFS = 139 + SYS_GETPRIORITY = 140 + SYS_SETPRIORITY = 141 + SYS_SCHED_SETPARAM = 142 + SYS_SCHED_GETPARAM = 143 + SYS_SCHED_SETSCHEDULER = 144 + SYS_SCHED_GETSCHEDULER = 145 + SYS_SCHED_GET_PRIORITY_MAX = 146 + SYS_SCHED_GET_PRIORITY_MIN = 147 + SYS_SCHED_RR_GET_INTERVAL = 148 + SYS_MLOCK = 149 + SYS_MUNLOCK = 150 + SYS_MLOCKALL = 151 + SYS_MUNLOCKALL = 152 + SYS_VHANGUP = 153 + SYS_MODIFY_LDT = 154 + SYS_PIVOT_ROOT = 155 + SYS__SYSCTL = 156 + SYS_PRCTL = 157 + SYS_ARCH_PRCTL = 158 + SYS_ADJTIMEX = 159 + SYS_SETRLIMIT = 160 + SYS_CHROOT = 161 + SYS_SYNC = 162 + SYS_ACCT = 163 + SYS_SETTIMEOFDAY = 164 + SYS_MOUNT = 165 + SYS_UMOUNT2 = 166 + SYS_SWAPON = 167 + SYS_SWAPOFF = 168 + SYS_REBOOT = 169 + SYS_SETHOSTNAME = 170 + SYS_SETDOMAINNAME = 171 + SYS_IOPL = 172 + SYS_IOPERM = 173 + SYS_CREATE_MODULE = 174 + SYS_INIT_MODULE = 175 + SYS_DELETE_MODULE = 176 + SYS_GET_KERNEL_SYMS = 177 + SYS_QUERY_MODULE = 178 + SYS_QUOTACTL = 179 + SYS_NFSSERVCTL = 180 + SYS_GETPMSG = 181 + SYS_PUTPMSG = 182 + SYS_AFS_SYSCALL = 183 + SYS_TUXCALL = 184 + SYS_SECURITY = 185 + SYS_GETTID = 186 + SYS_READAHEAD = 187 + SYS_SETXATTR = 188 + SYS_LSETXATTR = 189 + SYS_FSETXATTR = 190 + SYS_GETXATTR = 191 + SYS_LGETXATTR = 192 + SYS_FGETXATTR = 193 + SYS_LISTXATTR = 194 + SYS_LLISTXATTR = 195 + SYS_FLISTXATTR = 196 + SYS_REMOVEXATTR = 197 + SYS_LREMOVEXATTR = 198 + SYS_FREMOVEXATTR = 199 + SYS_TKILL = 200 + SYS_TIME = 201 + SYS_FUTEX = 202 + SYS_SCHED_SETAFFINITY = 203 + SYS_SCHED_GETAFFINITY = 204 + SYS_SET_THREAD_AREA = 205 + SYS_IO_SETUP = 206 + SYS_IO_DESTROY = 207 + SYS_IO_GETEVENTS = 208 + SYS_IO_SUBMIT = 209 + SYS_IO_CANCEL = 210 + SYS_GET_THREAD_AREA = 211 + SYS_LOOKUP_DCOOKIE = 212 + SYS_EPOLL_CREATE = 213 + SYS_EPOLL_CTL_OLD = 214 + SYS_EPOLL_WAIT_OLD = 215 + SYS_REMAP_FILE_PAGES = 216 + SYS_GETDENTS64 = 217 + SYS_SET_TID_ADDRESS = 218 + SYS_RESTART_SYSCALL = 219 + SYS_SEMTIMEDOP = 220 + SYS_FADVISE64 = 221 + SYS_TIMER_CREATE = 222 + SYS_TIMER_SETTIME = 223 + SYS_TIMER_GETTIME = 224 + SYS_TIMER_GETOVERRUN = 225 + SYS_TIMER_DELETE = 226 + SYS_CLOCK_SETTIME = 227 + SYS_CLOCK_GETTIME = 228 + SYS_CLOCK_GETRES = 229 + SYS_CLOCK_NANOSLEEP = 230 + SYS_EXIT_GROUP = 231 + SYS_EPOLL_WAIT = 232 + SYS_EPOLL_CTL = 233 + SYS_TGKILL = 234 + SYS_UTIMES = 235 + SYS_VSERVER = 236 + SYS_MBIND = 237 + SYS_SET_MEMPOLICY = 238 + SYS_GET_MEMPOLICY = 239 + SYS_MQ_OPEN = 240 + SYS_MQ_UNLINK = 241 + SYS_MQ_TIMEDSEND = 242 + SYS_MQ_TIMEDRECEIVE = 243 + SYS_MQ_NOTIFY = 244 + SYS_MQ_GETSETATTR = 245 + SYS_KEXEC_LOAD = 246 + SYS_WAITID = 247 + SYS_ADD_KEY = 248 + SYS_REQUEST_KEY = 249 + SYS_KEYCTL = 250 + SYS_IOPRIO_SET = 251 + SYS_IOPRIO_GET = 252 + SYS_INOTIFY_INIT = 253 + SYS_INOTIFY_ADD_WATCH = 254 + SYS_INOTIFY_RM_WATCH = 255 + SYS_MIGRATE_PAGES = 256 + SYS_OPENAT = 257 + SYS_MKDIRAT = 258 + SYS_MKNODAT = 259 + SYS_FCHOWNAT = 260 + SYS_FUTIMESAT = 261 + SYS_NEWFSTATAT = 262 + SYS_UNLINKAT = 263 + SYS_RENAMEAT = 264 + SYS_LINKAT = 265 + SYS_SYMLINKAT = 266 + SYS_READLINKAT = 267 + SYS_FCHMODAT = 268 + SYS_FACCESSAT = 269 + SYS_PSELECT6 = 270 + SYS_PPOLL = 271 + SYS_UNSHARE = 272 + SYS_SET_ROBUST_LIST = 273 + SYS_GET_ROBUST_LIST = 274 + SYS_SPLICE = 275 + SYS_TEE = 276 + SYS_SYNC_FILE_RANGE = 277 + SYS_VMSPLICE = 278 + SYS_MOVE_PAGES = 279 + SYS_UTIMENSAT = 280 + SYS_EPOLL_PWAIT = 281 + SYS_SIGNALFD = 282 + SYS_TIMERFD_CREATE = 283 + SYS_EVENTFD = 284 + SYS_FALLOCATE = 285 + SYS_TIMERFD_SETTIME = 286 + SYS_TIMERFD_GETTIME = 287 + SYS_ACCEPT4 = 288 + SYS_SIGNALFD4 = 289 + SYS_EVENTFD2 = 290 + SYS_EPOLL_CREATE1 = 291 + SYS_DUP3 = 292 + SYS_PIPE2 = 293 + SYS_INOTIFY_INIT1 = 294 + SYS_PREADV = 295 + SYS_PWRITEV = 296 + SYS_RT_TGSIGQUEUEINFO = 297 + SYS_PERF_EVENT_OPEN = 298 + SYS_RECVMMSG = 299 + SYS_FANOTIFY_INIT = 300 + SYS_FANOTIFY_MARK = 301 + SYS_PRLIMIT64 = 302 + SYS_NAME_TO_HANDLE_AT = 303 + SYS_OPEN_BY_HANDLE_AT = 304 + SYS_CLOCK_ADJTIME = 305 + SYS_SYNCFS = 306 + SYS_SENDMMSG = 307 + SYS_SETNS = 308 + SYS_GETCPU = 309 + SYS_PROCESS_VM_READV = 310 + SYS_PROCESS_VM_WRITEV = 311 + SYS_KCMP = 312 + SYS_FINIT_MODULE = 313 + SYS_SCHED_SETATTR = 314 + SYS_SCHED_GETATTR = 315 + SYS_RENAMEAT2 = 316 + SYS_SECCOMP = 317 + SYS_GETRANDOM = 318 + SYS_MEMFD_CREATE = 319 + SYS_KEXEC_FILE_LOAD = 320 + SYS_BPF = 321 + SYS_EXECVEAT = 322 + SYS_USERFAULTFD = 323 + SYS_MEMBARRIER = 324 + SYS_MLOCK2 = 325 + SYS_COPY_FILE_RANGE = 326 + SYS_PREADV2 = 327 + SYS_PWRITEV2 = 328 + SYS_PKEY_MPROTECT = 329 + SYS_PKEY_ALLOC = 330 + SYS_PKEY_FREE = 331 + SYS_STATX = 332 + SYS_IO_PGETEVENTS = 333 + SYS_RSEQ = 334 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go new file mode 100644 index 0000000000..c3fb5e77ab --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go @@ -0,0 +1,414 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm/include /tmp/arm/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && linux +// +build arm,linux + +package unix + +const ( + SYS_SYSCALL_MASK = 0 + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_PTRACE = 26 + SYS_PAUSE = 29 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_SETPGID = 57 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_VHANGUP = 111 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_SETRESGID = 170 + SYS_GETRESGID = 171 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_CHOWN = 182 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_VFORK = 190 + SYS_UGETRLIMIT = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_LCHOWN32 = 198 + SYS_GETUID32 = 199 + SYS_GETGID32 = 200 + SYS_GETEUID32 = 201 + SYS_GETEGID32 = 202 + SYS_SETREUID32 = 203 + SYS_SETREGID32 = 204 + SYS_GETGROUPS32 = 205 + SYS_SETGROUPS32 = 206 + SYS_FCHOWN32 = 207 + SYS_SETRESUID32 = 208 + SYS_GETRESUID32 = 209 + SYS_SETRESGID32 = 210 + SYS_GETRESGID32 = 211 + SYS_CHOWN32 = 212 + SYS_SETUID32 = 213 + SYS_SETGID32 = 214 + SYS_SETFSUID32 = 215 + SYS_SETFSGID32 = 216 + SYS_GETDENTS64 = 217 + SYS_PIVOT_ROOT = 218 + SYS_MINCORE = 219 + SYS_MADVISE = 220 + SYS_FCNTL64 = 221 + SYS_GETTID = 224 + SYS_READAHEAD = 225 + SYS_SETXATTR = 226 + SYS_LSETXATTR = 227 + SYS_FSETXATTR = 228 + SYS_GETXATTR = 229 + SYS_LGETXATTR = 230 + SYS_FGETXATTR = 231 + SYS_LISTXATTR = 232 + SYS_LLISTXATTR = 233 + SYS_FLISTXATTR = 234 + SYS_REMOVEXATTR = 235 + SYS_LREMOVEXATTR = 236 + SYS_FREMOVEXATTR = 237 + SYS_TKILL = 238 + SYS_SENDFILE64 = 239 + SYS_FUTEX = 240 + SYS_SCHED_SETAFFINITY = 241 + SYS_SCHED_GETAFFINITY = 242 + SYS_IO_SETUP = 243 + SYS_IO_DESTROY = 244 + SYS_IO_GETEVENTS = 245 + SYS_IO_SUBMIT = 246 + SYS_IO_CANCEL = 247 + SYS_EXIT_GROUP = 248 + SYS_LOOKUP_DCOOKIE = 249 + SYS_EPOLL_CREATE = 250 + SYS_EPOLL_CTL = 251 + SYS_EPOLL_WAIT = 252 + SYS_REMAP_FILE_PAGES = 253 + SYS_SET_TID_ADDRESS = 256 + SYS_TIMER_CREATE = 257 + SYS_TIMER_SETTIME = 258 + SYS_TIMER_GETTIME = 259 + SYS_TIMER_GETOVERRUN = 260 + SYS_TIMER_DELETE = 261 + SYS_CLOCK_SETTIME = 262 + SYS_CLOCK_GETTIME = 263 + SYS_CLOCK_GETRES = 264 + SYS_CLOCK_NANOSLEEP = 265 + SYS_STATFS64 = 266 + SYS_FSTATFS64 = 267 + SYS_TGKILL = 268 + SYS_UTIMES = 269 + SYS_ARM_FADVISE64_64 = 270 + SYS_PCICONFIG_IOBASE = 271 + SYS_PCICONFIG_READ = 272 + SYS_PCICONFIG_WRITE = 273 + SYS_MQ_OPEN = 274 + SYS_MQ_UNLINK = 275 + SYS_MQ_TIMEDSEND = 276 + SYS_MQ_TIMEDRECEIVE = 277 + SYS_MQ_NOTIFY = 278 + SYS_MQ_GETSETATTR = 279 + SYS_WAITID = 280 + SYS_SOCKET = 281 + SYS_BIND = 282 + SYS_CONNECT = 283 + SYS_LISTEN = 284 + SYS_ACCEPT = 285 + SYS_GETSOCKNAME = 286 + SYS_GETPEERNAME = 287 + SYS_SOCKETPAIR = 288 + SYS_SEND = 289 + SYS_SENDTO = 290 + SYS_RECV = 291 + SYS_RECVFROM = 292 + SYS_SHUTDOWN = 293 + SYS_SETSOCKOPT = 294 + SYS_GETSOCKOPT = 295 + SYS_SENDMSG = 296 + SYS_RECVMSG = 297 + SYS_SEMOP = 298 + SYS_SEMGET = 299 + SYS_SEMCTL = 300 + SYS_MSGSND = 301 + SYS_MSGRCV = 302 + SYS_MSGGET = 303 + SYS_MSGCTL = 304 + SYS_SHMAT = 305 + SYS_SHMDT = 306 + SYS_SHMGET = 307 + SYS_SHMCTL = 308 + SYS_ADD_KEY = 309 + SYS_REQUEST_KEY = 310 + SYS_KEYCTL = 311 + SYS_SEMTIMEDOP = 312 + SYS_VSERVER = 313 + SYS_IOPRIO_SET = 314 + SYS_IOPRIO_GET = 315 + SYS_INOTIFY_INIT = 316 + SYS_INOTIFY_ADD_WATCH = 317 + SYS_INOTIFY_RM_WATCH = 318 + SYS_MBIND = 319 + SYS_GET_MEMPOLICY = 320 + SYS_SET_MEMPOLICY = 321 + SYS_OPENAT = 322 + SYS_MKDIRAT = 323 + SYS_MKNODAT = 324 + SYS_FCHOWNAT = 325 + SYS_FUTIMESAT = 326 + SYS_FSTATAT64 = 327 + SYS_UNLINKAT = 328 + SYS_RENAMEAT = 329 + SYS_LINKAT = 330 + SYS_SYMLINKAT = 331 + SYS_READLINKAT = 332 + SYS_FCHMODAT = 333 + SYS_FACCESSAT = 334 + SYS_PSELECT6 = 335 + SYS_PPOLL = 336 + SYS_UNSHARE = 337 + SYS_SET_ROBUST_LIST = 338 + SYS_GET_ROBUST_LIST = 339 + SYS_SPLICE = 340 + SYS_ARM_SYNC_FILE_RANGE = 341 + SYS_TEE = 342 + SYS_VMSPLICE = 343 + SYS_MOVE_PAGES = 344 + SYS_GETCPU = 345 + SYS_EPOLL_PWAIT = 346 + SYS_KEXEC_LOAD = 347 + SYS_UTIMENSAT = 348 + SYS_SIGNALFD = 349 + SYS_TIMERFD_CREATE = 350 + SYS_EVENTFD = 351 + SYS_FALLOCATE = 352 + SYS_TIMERFD_SETTIME = 353 + SYS_TIMERFD_GETTIME = 354 + SYS_SIGNALFD4 = 355 + SYS_EVENTFD2 = 356 + SYS_EPOLL_CREATE1 = 357 + SYS_DUP3 = 358 + SYS_PIPE2 = 359 + SYS_INOTIFY_INIT1 = 360 + SYS_PREADV = 361 + SYS_PWRITEV = 362 + SYS_RT_TGSIGQUEUEINFO = 363 + SYS_PERF_EVENT_OPEN = 364 + SYS_RECVMMSG = 365 + SYS_ACCEPT4 = 366 + SYS_FANOTIFY_INIT = 367 + SYS_FANOTIFY_MARK = 368 + SYS_PRLIMIT64 = 369 + SYS_NAME_TO_HANDLE_AT = 370 + SYS_OPEN_BY_HANDLE_AT = 371 + SYS_CLOCK_ADJTIME = 372 + SYS_SYNCFS = 373 + SYS_SENDMMSG = 374 + SYS_SETNS = 375 + SYS_PROCESS_VM_READV = 376 + SYS_PROCESS_VM_WRITEV = 377 + SYS_KCMP = 378 + SYS_FINIT_MODULE = 379 + SYS_SCHED_SETATTR = 380 + SYS_SCHED_GETATTR = 381 + SYS_RENAMEAT2 = 382 + SYS_SECCOMP = 383 + SYS_GETRANDOM = 384 + SYS_MEMFD_CREATE = 385 + SYS_BPF = 386 + SYS_EXECVEAT = 387 + SYS_USERFAULTFD = 388 + SYS_MEMBARRIER = 389 + SYS_MLOCK2 = 390 + SYS_COPY_FILE_RANGE = 391 + SYS_PREADV2 = 392 + SYS_PWRITEV2 = 393 + SYS_PKEY_MPROTECT = 394 + SYS_PKEY_ALLOC = 395 + SYS_PKEY_FREE = 396 + SYS_STATX = 397 + SYS_RSEQ = 398 + SYS_IO_PGETEVENTS = 399 + SYS_MIGRATE_PAGES = 400 + SYS_KEXEC_FILE_LOAD = 401 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go new file mode 100644 index 0000000000..358c847a40 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go @@ -0,0 +1,317 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/arm64/include -fsigned-char /tmp/arm64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && linux +// +build arm64,linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_RENAMEAT = 38 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_FSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRLIMIT = 163 + SYS_SETRLIMIT = 164 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + SYS_IO_PGETEVENTS = 292 + SYS_RSEQ = 293 + SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go new file mode 100644 index 0000000000..81c4849b16 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go @@ -0,0 +1,311 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/loong64/include /tmp/loong64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build loong64 && linux +// +build loong64,linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + SYS_IO_PGETEVENTS = 292 + SYS_RSEQ = 293 + SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go new file mode 100644 index 0000000000..202a57e900 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go @@ -0,0 +1,434 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips/include /tmp/mips/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips && linux +// +build mips,linux + +package unix + +const ( + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_KCMP = 4347 + SYS_FINIT_MODULE = 4348 + SYS_SCHED_SETATTR = 4349 + SYS_SCHED_GETATTR = 4350 + SYS_RENAMEAT2 = 4351 + SYS_SECCOMP = 4352 + SYS_GETRANDOM = 4353 + SYS_MEMFD_CREATE = 4354 + SYS_BPF = 4355 + SYS_EXECVEAT = 4356 + SYS_USERFAULTFD = 4357 + SYS_MEMBARRIER = 4358 + SYS_MLOCK2 = 4359 + SYS_COPY_FILE_RANGE = 4360 + SYS_PREADV2 = 4361 + SYS_PWRITEV2 = 4362 + SYS_PKEY_MPROTECT = 4363 + SYS_PKEY_ALLOC = 4364 + SYS_PKEY_FREE = 4365 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 + SYS_SEMGET = 4393 + SYS_SEMCTL = 4394 + SYS_SHMGET = 4395 + SYS_SHMCTL = 4396 + SYS_SHMAT = 4397 + SYS_SHMDT = 4398 + SYS_MSGGET = 4399 + SYS_MSGSND = 4400 + SYS_MSGRCV = 4401 + SYS_MSGCTL = 4402 + SYS_CLOCK_GETTIME64 = 4403 + SYS_CLOCK_SETTIME64 = 4404 + SYS_CLOCK_ADJTIME64 = 4405 + SYS_CLOCK_GETRES_TIME64 = 4406 + SYS_CLOCK_NANOSLEEP_TIME64 = 4407 + SYS_TIMER_GETTIME64 = 4408 + SYS_TIMER_SETTIME64 = 4409 + SYS_TIMERFD_GETTIME64 = 4410 + SYS_TIMERFD_SETTIME64 = 4411 + SYS_UTIMENSAT_TIME64 = 4412 + SYS_PSELECT6_TIME64 = 4413 + SYS_PPOLL_TIME64 = 4414 + SYS_IO_PGETEVENTS_TIME64 = 4416 + SYS_RECVMMSG_TIME64 = 4417 + SYS_MQ_TIMEDSEND_TIME64 = 4418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 + SYS_SEMTIMEDOP_TIME64 = 4420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 + SYS_FUTEX_TIME64 = 4422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 + SYS_PIDFD_SEND_SIGNAL = 4424 + SYS_IO_URING_SETUP = 4425 + SYS_IO_URING_ENTER = 4426 + SYS_IO_URING_REGISTER = 4427 + SYS_OPEN_TREE = 4428 + SYS_MOVE_MOUNT = 4429 + SYS_FSOPEN = 4430 + SYS_FSCONFIG = 4431 + SYS_FSMOUNT = 4432 + SYS_FSPICK = 4433 + SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 + SYS_EPOLL_PWAIT2 = 4441 + SYS_MOUNT_SETATTR = 4442 + SYS_QUOTACTL_FD = 4443 + SYS_LANDLOCK_CREATE_RULESET = 4444 + SYS_LANDLOCK_ADD_RULE = 4445 + SYS_LANDLOCK_RESTRICT_SELF = 4446 + SYS_PROCESS_MRELEASE = 4448 + SYS_FUTEX_WAITV = 4449 + SYS_SET_MEMPOLICY_HOME_NODE = 4450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go new file mode 100644 index 0000000000..1fbceb52d7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go @@ -0,0 +1,364 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64/include /tmp/mips64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && linux +// +build mips64,linux + +package unix + +const ( + SYS_READ = 5000 + SYS_WRITE = 5001 + SYS_OPEN = 5002 + SYS_CLOSE = 5003 + SYS_STAT = 5004 + SYS_FSTAT = 5005 + SYS_LSTAT = 5006 + SYS_POLL = 5007 + SYS_LSEEK = 5008 + SYS_MMAP = 5009 + SYS_MPROTECT = 5010 + SYS_MUNMAP = 5011 + SYS_BRK = 5012 + SYS_RT_SIGACTION = 5013 + SYS_RT_SIGPROCMASK = 5014 + SYS_IOCTL = 5015 + SYS_PREAD64 = 5016 + SYS_PWRITE64 = 5017 + SYS_READV = 5018 + SYS_WRITEV = 5019 + SYS_ACCESS = 5020 + SYS_PIPE = 5021 + SYS__NEWSELECT = 5022 + SYS_SCHED_YIELD = 5023 + SYS_MREMAP = 5024 + SYS_MSYNC = 5025 + SYS_MINCORE = 5026 + SYS_MADVISE = 5027 + SYS_SHMGET = 5028 + SYS_SHMAT = 5029 + SYS_SHMCTL = 5030 + SYS_DUP = 5031 + SYS_DUP2 = 5032 + SYS_PAUSE = 5033 + SYS_NANOSLEEP = 5034 + SYS_GETITIMER = 5035 + SYS_SETITIMER = 5036 + SYS_ALARM = 5037 + SYS_GETPID = 5038 + SYS_SENDFILE = 5039 + SYS_SOCKET = 5040 + SYS_CONNECT = 5041 + SYS_ACCEPT = 5042 + SYS_SENDTO = 5043 + SYS_RECVFROM = 5044 + SYS_SENDMSG = 5045 + SYS_RECVMSG = 5046 + SYS_SHUTDOWN = 5047 + SYS_BIND = 5048 + SYS_LISTEN = 5049 + SYS_GETSOCKNAME = 5050 + SYS_GETPEERNAME = 5051 + SYS_SOCKETPAIR = 5052 + SYS_SETSOCKOPT = 5053 + SYS_GETSOCKOPT = 5054 + SYS_CLONE = 5055 + SYS_FORK = 5056 + SYS_EXECVE = 5057 + SYS_EXIT = 5058 + SYS_WAIT4 = 5059 + SYS_KILL = 5060 + SYS_UNAME = 5061 + SYS_SEMGET = 5062 + SYS_SEMOP = 5063 + SYS_SEMCTL = 5064 + SYS_SHMDT = 5065 + SYS_MSGGET = 5066 + SYS_MSGSND = 5067 + SYS_MSGRCV = 5068 + SYS_MSGCTL = 5069 + SYS_FCNTL = 5070 + SYS_FLOCK = 5071 + SYS_FSYNC = 5072 + SYS_FDATASYNC = 5073 + SYS_TRUNCATE = 5074 + SYS_FTRUNCATE = 5075 + SYS_GETDENTS = 5076 + SYS_GETCWD = 5077 + SYS_CHDIR = 5078 + SYS_FCHDIR = 5079 + SYS_RENAME = 5080 + SYS_MKDIR = 5081 + SYS_RMDIR = 5082 + SYS_CREAT = 5083 + SYS_LINK = 5084 + SYS_UNLINK = 5085 + SYS_SYMLINK = 5086 + SYS_READLINK = 5087 + SYS_CHMOD = 5088 + SYS_FCHMOD = 5089 + SYS_CHOWN = 5090 + SYS_FCHOWN = 5091 + SYS_LCHOWN = 5092 + SYS_UMASK = 5093 + SYS_GETTIMEOFDAY = 5094 + SYS_GETRLIMIT = 5095 + SYS_GETRUSAGE = 5096 + SYS_SYSINFO = 5097 + SYS_TIMES = 5098 + SYS_PTRACE = 5099 + SYS_GETUID = 5100 + SYS_SYSLOG = 5101 + SYS_GETGID = 5102 + SYS_SETUID = 5103 + SYS_SETGID = 5104 + SYS_GETEUID = 5105 + SYS_GETEGID = 5106 + SYS_SETPGID = 5107 + SYS_GETPPID = 5108 + SYS_GETPGRP = 5109 + SYS_SETSID = 5110 + SYS_SETREUID = 5111 + SYS_SETREGID = 5112 + SYS_GETGROUPS = 5113 + SYS_SETGROUPS = 5114 + SYS_SETRESUID = 5115 + SYS_GETRESUID = 5116 + SYS_SETRESGID = 5117 + SYS_GETRESGID = 5118 + SYS_GETPGID = 5119 + SYS_SETFSUID = 5120 + SYS_SETFSGID = 5121 + SYS_GETSID = 5122 + SYS_CAPGET = 5123 + SYS_CAPSET = 5124 + SYS_RT_SIGPENDING = 5125 + SYS_RT_SIGTIMEDWAIT = 5126 + SYS_RT_SIGQUEUEINFO = 5127 + SYS_RT_SIGSUSPEND = 5128 + SYS_SIGALTSTACK = 5129 + SYS_UTIME = 5130 + SYS_MKNOD = 5131 + SYS_PERSONALITY = 5132 + SYS_USTAT = 5133 + SYS_STATFS = 5134 + SYS_FSTATFS = 5135 + SYS_SYSFS = 5136 + SYS_GETPRIORITY = 5137 + SYS_SETPRIORITY = 5138 + SYS_SCHED_SETPARAM = 5139 + SYS_SCHED_GETPARAM = 5140 + SYS_SCHED_SETSCHEDULER = 5141 + SYS_SCHED_GETSCHEDULER = 5142 + SYS_SCHED_GET_PRIORITY_MAX = 5143 + SYS_SCHED_GET_PRIORITY_MIN = 5144 + SYS_SCHED_RR_GET_INTERVAL = 5145 + SYS_MLOCK = 5146 + SYS_MUNLOCK = 5147 + SYS_MLOCKALL = 5148 + SYS_MUNLOCKALL = 5149 + SYS_VHANGUP = 5150 + SYS_PIVOT_ROOT = 5151 + SYS__SYSCTL = 5152 + SYS_PRCTL = 5153 + SYS_ADJTIMEX = 5154 + SYS_SETRLIMIT = 5155 + SYS_CHROOT = 5156 + SYS_SYNC = 5157 + SYS_ACCT = 5158 + SYS_SETTIMEOFDAY = 5159 + SYS_MOUNT = 5160 + SYS_UMOUNT2 = 5161 + SYS_SWAPON = 5162 + SYS_SWAPOFF = 5163 + SYS_REBOOT = 5164 + SYS_SETHOSTNAME = 5165 + SYS_SETDOMAINNAME = 5166 + SYS_CREATE_MODULE = 5167 + SYS_INIT_MODULE = 5168 + SYS_DELETE_MODULE = 5169 + SYS_GET_KERNEL_SYMS = 5170 + SYS_QUERY_MODULE = 5171 + SYS_QUOTACTL = 5172 + SYS_NFSSERVCTL = 5173 + SYS_GETPMSG = 5174 + SYS_PUTPMSG = 5175 + SYS_AFS_SYSCALL = 5176 + SYS_RESERVED177 = 5177 + SYS_GETTID = 5178 + SYS_READAHEAD = 5179 + SYS_SETXATTR = 5180 + SYS_LSETXATTR = 5181 + SYS_FSETXATTR = 5182 + SYS_GETXATTR = 5183 + SYS_LGETXATTR = 5184 + SYS_FGETXATTR = 5185 + SYS_LISTXATTR = 5186 + SYS_LLISTXATTR = 5187 + SYS_FLISTXATTR = 5188 + SYS_REMOVEXATTR = 5189 + SYS_LREMOVEXATTR = 5190 + SYS_FREMOVEXATTR = 5191 + SYS_TKILL = 5192 + SYS_RESERVED193 = 5193 + SYS_FUTEX = 5194 + SYS_SCHED_SETAFFINITY = 5195 + SYS_SCHED_GETAFFINITY = 5196 + SYS_CACHEFLUSH = 5197 + SYS_CACHECTL = 5198 + SYS_SYSMIPS = 5199 + SYS_IO_SETUP = 5200 + SYS_IO_DESTROY = 5201 + SYS_IO_GETEVENTS = 5202 + SYS_IO_SUBMIT = 5203 + SYS_IO_CANCEL = 5204 + SYS_EXIT_GROUP = 5205 + SYS_LOOKUP_DCOOKIE = 5206 + SYS_EPOLL_CREATE = 5207 + SYS_EPOLL_CTL = 5208 + SYS_EPOLL_WAIT = 5209 + SYS_REMAP_FILE_PAGES = 5210 + SYS_RT_SIGRETURN = 5211 + SYS_SET_TID_ADDRESS = 5212 + SYS_RESTART_SYSCALL = 5213 + SYS_SEMTIMEDOP = 5214 + SYS_FADVISE64 = 5215 + SYS_TIMER_CREATE = 5216 + SYS_TIMER_SETTIME = 5217 + SYS_TIMER_GETTIME = 5218 + SYS_TIMER_GETOVERRUN = 5219 + SYS_TIMER_DELETE = 5220 + SYS_CLOCK_SETTIME = 5221 + SYS_CLOCK_GETTIME = 5222 + SYS_CLOCK_GETRES = 5223 + SYS_CLOCK_NANOSLEEP = 5224 + SYS_TGKILL = 5225 + SYS_UTIMES = 5226 + SYS_MBIND = 5227 + SYS_GET_MEMPOLICY = 5228 + SYS_SET_MEMPOLICY = 5229 + SYS_MQ_OPEN = 5230 + SYS_MQ_UNLINK = 5231 + SYS_MQ_TIMEDSEND = 5232 + SYS_MQ_TIMEDRECEIVE = 5233 + SYS_MQ_NOTIFY = 5234 + SYS_MQ_GETSETATTR = 5235 + SYS_VSERVER = 5236 + SYS_WAITID = 5237 + SYS_ADD_KEY = 5239 + SYS_REQUEST_KEY = 5240 + SYS_KEYCTL = 5241 + SYS_SET_THREAD_AREA = 5242 + SYS_INOTIFY_INIT = 5243 + SYS_INOTIFY_ADD_WATCH = 5244 + SYS_INOTIFY_RM_WATCH = 5245 + SYS_MIGRATE_PAGES = 5246 + SYS_OPENAT = 5247 + SYS_MKDIRAT = 5248 + SYS_MKNODAT = 5249 + SYS_FCHOWNAT = 5250 + SYS_FUTIMESAT = 5251 + SYS_NEWFSTATAT = 5252 + SYS_UNLINKAT = 5253 + SYS_RENAMEAT = 5254 + SYS_LINKAT = 5255 + SYS_SYMLINKAT = 5256 + SYS_READLINKAT = 5257 + SYS_FCHMODAT = 5258 + SYS_FACCESSAT = 5259 + SYS_PSELECT6 = 5260 + SYS_PPOLL = 5261 + SYS_UNSHARE = 5262 + SYS_SPLICE = 5263 + SYS_SYNC_FILE_RANGE = 5264 + SYS_TEE = 5265 + SYS_VMSPLICE = 5266 + SYS_MOVE_PAGES = 5267 + SYS_SET_ROBUST_LIST = 5268 + SYS_GET_ROBUST_LIST = 5269 + SYS_KEXEC_LOAD = 5270 + SYS_GETCPU = 5271 + SYS_EPOLL_PWAIT = 5272 + SYS_IOPRIO_SET = 5273 + SYS_IOPRIO_GET = 5274 + SYS_UTIMENSAT = 5275 + SYS_SIGNALFD = 5276 + SYS_TIMERFD = 5277 + SYS_EVENTFD = 5278 + SYS_FALLOCATE = 5279 + SYS_TIMERFD_CREATE = 5280 + SYS_TIMERFD_GETTIME = 5281 + SYS_TIMERFD_SETTIME = 5282 + SYS_SIGNALFD4 = 5283 + SYS_EVENTFD2 = 5284 + SYS_EPOLL_CREATE1 = 5285 + SYS_DUP3 = 5286 + SYS_PIPE2 = 5287 + SYS_INOTIFY_INIT1 = 5288 + SYS_PREADV = 5289 + SYS_PWRITEV = 5290 + SYS_RT_TGSIGQUEUEINFO = 5291 + SYS_PERF_EVENT_OPEN = 5292 + SYS_ACCEPT4 = 5293 + SYS_RECVMMSG = 5294 + SYS_FANOTIFY_INIT = 5295 + SYS_FANOTIFY_MARK = 5296 + SYS_PRLIMIT64 = 5297 + SYS_NAME_TO_HANDLE_AT = 5298 + SYS_OPEN_BY_HANDLE_AT = 5299 + SYS_CLOCK_ADJTIME = 5300 + SYS_SYNCFS = 5301 + SYS_SENDMMSG = 5302 + SYS_SETNS = 5303 + SYS_PROCESS_VM_READV = 5304 + SYS_PROCESS_VM_WRITEV = 5305 + SYS_KCMP = 5306 + SYS_FINIT_MODULE = 5307 + SYS_GETDENTS64 = 5308 + SYS_SCHED_SETATTR = 5309 + SYS_SCHED_GETATTR = 5310 + SYS_RENAMEAT2 = 5311 + SYS_SECCOMP = 5312 + SYS_GETRANDOM = 5313 + SYS_MEMFD_CREATE = 5314 + SYS_BPF = 5315 + SYS_EXECVEAT = 5316 + SYS_USERFAULTFD = 5317 + SYS_MEMBARRIER = 5318 + SYS_MLOCK2 = 5319 + SYS_COPY_FILE_RANGE = 5320 + SYS_PREADV2 = 5321 + SYS_PWRITEV2 = 5322 + SYS_PKEY_MPROTECT = 5323 + SYS_PKEY_ALLOC = 5324 + SYS_PKEY_FREE = 5325 + SYS_STATX = 5326 + SYS_RSEQ = 5327 + SYS_IO_PGETEVENTS = 5328 + SYS_PIDFD_SEND_SIGNAL = 5424 + SYS_IO_URING_SETUP = 5425 + SYS_IO_URING_ENTER = 5426 + SYS_IO_URING_REGISTER = 5427 + SYS_OPEN_TREE = 5428 + SYS_MOVE_MOUNT = 5429 + SYS_FSOPEN = 5430 + SYS_FSCONFIG = 5431 + SYS_FSMOUNT = 5432 + SYS_FSPICK = 5433 + SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 + SYS_EPOLL_PWAIT2 = 5441 + SYS_MOUNT_SETATTR = 5442 + SYS_QUOTACTL_FD = 5443 + SYS_LANDLOCK_CREATE_RULESET = 5444 + SYS_LANDLOCK_ADD_RULE = 5445 + SYS_LANDLOCK_RESTRICT_SELF = 5446 + SYS_PROCESS_MRELEASE = 5448 + SYS_FUTEX_WAITV = 5449 + SYS_SET_MEMPOLICY_HOME_NODE = 5450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go new file mode 100644 index 0000000000..b4ffb7a207 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go @@ -0,0 +1,364 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mips64le/include /tmp/mips64le/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64le && linux +// +build mips64le,linux + +package unix + +const ( + SYS_READ = 5000 + SYS_WRITE = 5001 + SYS_OPEN = 5002 + SYS_CLOSE = 5003 + SYS_STAT = 5004 + SYS_FSTAT = 5005 + SYS_LSTAT = 5006 + SYS_POLL = 5007 + SYS_LSEEK = 5008 + SYS_MMAP = 5009 + SYS_MPROTECT = 5010 + SYS_MUNMAP = 5011 + SYS_BRK = 5012 + SYS_RT_SIGACTION = 5013 + SYS_RT_SIGPROCMASK = 5014 + SYS_IOCTL = 5015 + SYS_PREAD64 = 5016 + SYS_PWRITE64 = 5017 + SYS_READV = 5018 + SYS_WRITEV = 5019 + SYS_ACCESS = 5020 + SYS_PIPE = 5021 + SYS__NEWSELECT = 5022 + SYS_SCHED_YIELD = 5023 + SYS_MREMAP = 5024 + SYS_MSYNC = 5025 + SYS_MINCORE = 5026 + SYS_MADVISE = 5027 + SYS_SHMGET = 5028 + SYS_SHMAT = 5029 + SYS_SHMCTL = 5030 + SYS_DUP = 5031 + SYS_DUP2 = 5032 + SYS_PAUSE = 5033 + SYS_NANOSLEEP = 5034 + SYS_GETITIMER = 5035 + SYS_SETITIMER = 5036 + SYS_ALARM = 5037 + SYS_GETPID = 5038 + SYS_SENDFILE = 5039 + SYS_SOCKET = 5040 + SYS_CONNECT = 5041 + SYS_ACCEPT = 5042 + SYS_SENDTO = 5043 + SYS_RECVFROM = 5044 + SYS_SENDMSG = 5045 + SYS_RECVMSG = 5046 + SYS_SHUTDOWN = 5047 + SYS_BIND = 5048 + SYS_LISTEN = 5049 + SYS_GETSOCKNAME = 5050 + SYS_GETPEERNAME = 5051 + SYS_SOCKETPAIR = 5052 + SYS_SETSOCKOPT = 5053 + SYS_GETSOCKOPT = 5054 + SYS_CLONE = 5055 + SYS_FORK = 5056 + SYS_EXECVE = 5057 + SYS_EXIT = 5058 + SYS_WAIT4 = 5059 + SYS_KILL = 5060 + SYS_UNAME = 5061 + SYS_SEMGET = 5062 + SYS_SEMOP = 5063 + SYS_SEMCTL = 5064 + SYS_SHMDT = 5065 + SYS_MSGGET = 5066 + SYS_MSGSND = 5067 + SYS_MSGRCV = 5068 + SYS_MSGCTL = 5069 + SYS_FCNTL = 5070 + SYS_FLOCK = 5071 + SYS_FSYNC = 5072 + SYS_FDATASYNC = 5073 + SYS_TRUNCATE = 5074 + SYS_FTRUNCATE = 5075 + SYS_GETDENTS = 5076 + SYS_GETCWD = 5077 + SYS_CHDIR = 5078 + SYS_FCHDIR = 5079 + SYS_RENAME = 5080 + SYS_MKDIR = 5081 + SYS_RMDIR = 5082 + SYS_CREAT = 5083 + SYS_LINK = 5084 + SYS_UNLINK = 5085 + SYS_SYMLINK = 5086 + SYS_READLINK = 5087 + SYS_CHMOD = 5088 + SYS_FCHMOD = 5089 + SYS_CHOWN = 5090 + SYS_FCHOWN = 5091 + SYS_LCHOWN = 5092 + SYS_UMASK = 5093 + SYS_GETTIMEOFDAY = 5094 + SYS_GETRLIMIT = 5095 + SYS_GETRUSAGE = 5096 + SYS_SYSINFO = 5097 + SYS_TIMES = 5098 + SYS_PTRACE = 5099 + SYS_GETUID = 5100 + SYS_SYSLOG = 5101 + SYS_GETGID = 5102 + SYS_SETUID = 5103 + SYS_SETGID = 5104 + SYS_GETEUID = 5105 + SYS_GETEGID = 5106 + SYS_SETPGID = 5107 + SYS_GETPPID = 5108 + SYS_GETPGRP = 5109 + SYS_SETSID = 5110 + SYS_SETREUID = 5111 + SYS_SETREGID = 5112 + SYS_GETGROUPS = 5113 + SYS_SETGROUPS = 5114 + SYS_SETRESUID = 5115 + SYS_GETRESUID = 5116 + SYS_SETRESGID = 5117 + SYS_GETRESGID = 5118 + SYS_GETPGID = 5119 + SYS_SETFSUID = 5120 + SYS_SETFSGID = 5121 + SYS_GETSID = 5122 + SYS_CAPGET = 5123 + SYS_CAPSET = 5124 + SYS_RT_SIGPENDING = 5125 + SYS_RT_SIGTIMEDWAIT = 5126 + SYS_RT_SIGQUEUEINFO = 5127 + SYS_RT_SIGSUSPEND = 5128 + SYS_SIGALTSTACK = 5129 + SYS_UTIME = 5130 + SYS_MKNOD = 5131 + SYS_PERSONALITY = 5132 + SYS_USTAT = 5133 + SYS_STATFS = 5134 + SYS_FSTATFS = 5135 + SYS_SYSFS = 5136 + SYS_GETPRIORITY = 5137 + SYS_SETPRIORITY = 5138 + SYS_SCHED_SETPARAM = 5139 + SYS_SCHED_GETPARAM = 5140 + SYS_SCHED_SETSCHEDULER = 5141 + SYS_SCHED_GETSCHEDULER = 5142 + SYS_SCHED_GET_PRIORITY_MAX = 5143 + SYS_SCHED_GET_PRIORITY_MIN = 5144 + SYS_SCHED_RR_GET_INTERVAL = 5145 + SYS_MLOCK = 5146 + SYS_MUNLOCK = 5147 + SYS_MLOCKALL = 5148 + SYS_MUNLOCKALL = 5149 + SYS_VHANGUP = 5150 + SYS_PIVOT_ROOT = 5151 + SYS__SYSCTL = 5152 + SYS_PRCTL = 5153 + SYS_ADJTIMEX = 5154 + SYS_SETRLIMIT = 5155 + SYS_CHROOT = 5156 + SYS_SYNC = 5157 + SYS_ACCT = 5158 + SYS_SETTIMEOFDAY = 5159 + SYS_MOUNT = 5160 + SYS_UMOUNT2 = 5161 + SYS_SWAPON = 5162 + SYS_SWAPOFF = 5163 + SYS_REBOOT = 5164 + SYS_SETHOSTNAME = 5165 + SYS_SETDOMAINNAME = 5166 + SYS_CREATE_MODULE = 5167 + SYS_INIT_MODULE = 5168 + SYS_DELETE_MODULE = 5169 + SYS_GET_KERNEL_SYMS = 5170 + SYS_QUERY_MODULE = 5171 + SYS_QUOTACTL = 5172 + SYS_NFSSERVCTL = 5173 + SYS_GETPMSG = 5174 + SYS_PUTPMSG = 5175 + SYS_AFS_SYSCALL = 5176 + SYS_RESERVED177 = 5177 + SYS_GETTID = 5178 + SYS_READAHEAD = 5179 + SYS_SETXATTR = 5180 + SYS_LSETXATTR = 5181 + SYS_FSETXATTR = 5182 + SYS_GETXATTR = 5183 + SYS_LGETXATTR = 5184 + SYS_FGETXATTR = 5185 + SYS_LISTXATTR = 5186 + SYS_LLISTXATTR = 5187 + SYS_FLISTXATTR = 5188 + SYS_REMOVEXATTR = 5189 + SYS_LREMOVEXATTR = 5190 + SYS_FREMOVEXATTR = 5191 + SYS_TKILL = 5192 + SYS_RESERVED193 = 5193 + SYS_FUTEX = 5194 + SYS_SCHED_SETAFFINITY = 5195 + SYS_SCHED_GETAFFINITY = 5196 + SYS_CACHEFLUSH = 5197 + SYS_CACHECTL = 5198 + SYS_SYSMIPS = 5199 + SYS_IO_SETUP = 5200 + SYS_IO_DESTROY = 5201 + SYS_IO_GETEVENTS = 5202 + SYS_IO_SUBMIT = 5203 + SYS_IO_CANCEL = 5204 + SYS_EXIT_GROUP = 5205 + SYS_LOOKUP_DCOOKIE = 5206 + SYS_EPOLL_CREATE = 5207 + SYS_EPOLL_CTL = 5208 + SYS_EPOLL_WAIT = 5209 + SYS_REMAP_FILE_PAGES = 5210 + SYS_RT_SIGRETURN = 5211 + SYS_SET_TID_ADDRESS = 5212 + SYS_RESTART_SYSCALL = 5213 + SYS_SEMTIMEDOP = 5214 + SYS_FADVISE64 = 5215 + SYS_TIMER_CREATE = 5216 + SYS_TIMER_SETTIME = 5217 + SYS_TIMER_GETTIME = 5218 + SYS_TIMER_GETOVERRUN = 5219 + SYS_TIMER_DELETE = 5220 + SYS_CLOCK_SETTIME = 5221 + SYS_CLOCK_GETTIME = 5222 + SYS_CLOCK_GETRES = 5223 + SYS_CLOCK_NANOSLEEP = 5224 + SYS_TGKILL = 5225 + SYS_UTIMES = 5226 + SYS_MBIND = 5227 + SYS_GET_MEMPOLICY = 5228 + SYS_SET_MEMPOLICY = 5229 + SYS_MQ_OPEN = 5230 + SYS_MQ_UNLINK = 5231 + SYS_MQ_TIMEDSEND = 5232 + SYS_MQ_TIMEDRECEIVE = 5233 + SYS_MQ_NOTIFY = 5234 + SYS_MQ_GETSETATTR = 5235 + SYS_VSERVER = 5236 + SYS_WAITID = 5237 + SYS_ADD_KEY = 5239 + SYS_REQUEST_KEY = 5240 + SYS_KEYCTL = 5241 + SYS_SET_THREAD_AREA = 5242 + SYS_INOTIFY_INIT = 5243 + SYS_INOTIFY_ADD_WATCH = 5244 + SYS_INOTIFY_RM_WATCH = 5245 + SYS_MIGRATE_PAGES = 5246 + SYS_OPENAT = 5247 + SYS_MKDIRAT = 5248 + SYS_MKNODAT = 5249 + SYS_FCHOWNAT = 5250 + SYS_FUTIMESAT = 5251 + SYS_NEWFSTATAT = 5252 + SYS_UNLINKAT = 5253 + SYS_RENAMEAT = 5254 + SYS_LINKAT = 5255 + SYS_SYMLINKAT = 5256 + SYS_READLINKAT = 5257 + SYS_FCHMODAT = 5258 + SYS_FACCESSAT = 5259 + SYS_PSELECT6 = 5260 + SYS_PPOLL = 5261 + SYS_UNSHARE = 5262 + SYS_SPLICE = 5263 + SYS_SYNC_FILE_RANGE = 5264 + SYS_TEE = 5265 + SYS_VMSPLICE = 5266 + SYS_MOVE_PAGES = 5267 + SYS_SET_ROBUST_LIST = 5268 + SYS_GET_ROBUST_LIST = 5269 + SYS_KEXEC_LOAD = 5270 + SYS_GETCPU = 5271 + SYS_EPOLL_PWAIT = 5272 + SYS_IOPRIO_SET = 5273 + SYS_IOPRIO_GET = 5274 + SYS_UTIMENSAT = 5275 + SYS_SIGNALFD = 5276 + SYS_TIMERFD = 5277 + SYS_EVENTFD = 5278 + SYS_FALLOCATE = 5279 + SYS_TIMERFD_CREATE = 5280 + SYS_TIMERFD_GETTIME = 5281 + SYS_TIMERFD_SETTIME = 5282 + SYS_SIGNALFD4 = 5283 + SYS_EVENTFD2 = 5284 + SYS_EPOLL_CREATE1 = 5285 + SYS_DUP3 = 5286 + SYS_PIPE2 = 5287 + SYS_INOTIFY_INIT1 = 5288 + SYS_PREADV = 5289 + SYS_PWRITEV = 5290 + SYS_RT_TGSIGQUEUEINFO = 5291 + SYS_PERF_EVENT_OPEN = 5292 + SYS_ACCEPT4 = 5293 + SYS_RECVMMSG = 5294 + SYS_FANOTIFY_INIT = 5295 + SYS_FANOTIFY_MARK = 5296 + SYS_PRLIMIT64 = 5297 + SYS_NAME_TO_HANDLE_AT = 5298 + SYS_OPEN_BY_HANDLE_AT = 5299 + SYS_CLOCK_ADJTIME = 5300 + SYS_SYNCFS = 5301 + SYS_SENDMMSG = 5302 + SYS_SETNS = 5303 + SYS_PROCESS_VM_READV = 5304 + SYS_PROCESS_VM_WRITEV = 5305 + SYS_KCMP = 5306 + SYS_FINIT_MODULE = 5307 + SYS_GETDENTS64 = 5308 + SYS_SCHED_SETATTR = 5309 + SYS_SCHED_GETATTR = 5310 + SYS_RENAMEAT2 = 5311 + SYS_SECCOMP = 5312 + SYS_GETRANDOM = 5313 + SYS_MEMFD_CREATE = 5314 + SYS_BPF = 5315 + SYS_EXECVEAT = 5316 + SYS_USERFAULTFD = 5317 + SYS_MEMBARRIER = 5318 + SYS_MLOCK2 = 5319 + SYS_COPY_FILE_RANGE = 5320 + SYS_PREADV2 = 5321 + SYS_PWRITEV2 = 5322 + SYS_PKEY_MPROTECT = 5323 + SYS_PKEY_ALLOC = 5324 + SYS_PKEY_FREE = 5325 + SYS_STATX = 5326 + SYS_RSEQ = 5327 + SYS_IO_PGETEVENTS = 5328 + SYS_PIDFD_SEND_SIGNAL = 5424 + SYS_IO_URING_SETUP = 5425 + SYS_IO_URING_ENTER = 5426 + SYS_IO_URING_REGISTER = 5427 + SYS_OPEN_TREE = 5428 + SYS_MOVE_MOUNT = 5429 + SYS_FSOPEN = 5430 + SYS_FSCONFIG = 5431 + SYS_FSMOUNT = 5432 + SYS_FSPICK = 5433 + SYS_PIDFD_OPEN = 5434 + SYS_CLONE3 = 5435 + SYS_CLOSE_RANGE = 5436 + SYS_OPENAT2 = 5437 + SYS_PIDFD_GETFD = 5438 + SYS_FACCESSAT2 = 5439 + SYS_PROCESS_MADVISE = 5440 + SYS_EPOLL_PWAIT2 = 5441 + SYS_MOUNT_SETATTR = 5442 + SYS_QUOTACTL_FD = 5443 + SYS_LANDLOCK_CREATE_RULESET = 5444 + SYS_LANDLOCK_ADD_RULE = 5445 + SYS_LANDLOCK_RESTRICT_SELF = 5446 + SYS_PROCESS_MRELEASE = 5448 + SYS_FUTEX_WAITV = 5449 + SYS_SET_MEMPOLICY_HOME_NODE = 5450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go new file mode 100644 index 0000000000..867985f9b4 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go @@ -0,0 +1,434 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/mipsle/include /tmp/mipsle/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mipsle && linux +// +build mipsle,linux + +package unix + +const ( + SYS_SYSCALL = 4000 + SYS_EXIT = 4001 + SYS_FORK = 4002 + SYS_READ = 4003 + SYS_WRITE = 4004 + SYS_OPEN = 4005 + SYS_CLOSE = 4006 + SYS_WAITPID = 4007 + SYS_CREAT = 4008 + SYS_LINK = 4009 + SYS_UNLINK = 4010 + SYS_EXECVE = 4011 + SYS_CHDIR = 4012 + SYS_TIME = 4013 + SYS_MKNOD = 4014 + SYS_CHMOD = 4015 + SYS_LCHOWN = 4016 + SYS_BREAK = 4017 + SYS_UNUSED18 = 4018 + SYS_LSEEK = 4019 + SYS_GETPID = 4020 + SYS_MOUNT = 4021 + SYS_UMOUNT = 4022 + SYS_SETUID = 4023 + SYS_GETUID = 4024 + SYS_STIME = 4025 + SYS_PTRACE = 4026 + SYS_ALARM = 4027 + SYS_UNUSED28 = 4028 + SYS_PAUSE = 4029 + SYS_UTIME = 4030 + SYS_STTY = 4031 + SYS_GTTY = 4032 + SYS_ACCESS = 4033 + SYS_NICE = 4034 + SYS_FTIME = 4035 + SYS_SYNC = 4036 + SYS_KILL = 4037 + SYS_RENAME = 4038 + SYS_MKDIR = 4039 + SYS_RMDIR = 4040 + SYS_DUP = 4041 + SYS_PIPE = 4042 + SYS_TIMES = 4043 + SYS_PROF = 4044 + SYS_BRK = 4045 + SYS_SETGID = 4046 + SYS_GETGID = 4047 + SYS_SIGNAL = 4048 + SYS_GETEUID = 4049 + SYS_GETEGID = 4050 + SYS_ACCT = 4051 + SYS_UMOUNT2 = 4052 + SYS_LOCK = 4053 + SYS_IOCTL = 4054 + SYS_FCNTL = 4055 + SYS_MPX = 4056 + SYS_SETPGID = 4057 + SYS_ULIMIT = 4058 + SYS_UNUSED59 = 4059 + SYS_UMASK = 4060 + SYS_CHROOT = 4061 + SYS_USTAT = 4062 + SYS_DUP2 = 4063 + SYS_GETPPID = 4064 + SYS_GETPGRP = 4065 + SYS_SETSID = 4066 + SYS_SIGACTION = 4067 + SYS_SGETMASK = 4068 + SYS_SSETMASK = 4069 + SYS_SETREUID = 4070 + SYS_SETREGID = 4071 + SYS_SIGSUSPEND = 4072 + SYS_SIGPENDING = 4073 + SYS_SETHOSTNAME = 4074 + SYS_SETRLIMIT = 4075 + SYS_GETRLIMIT = 4076 + SYS_GETRUSAGE = 4077 + SYS_GETTIMEOFDAY = 4078 + SYS_SETTIMEOFDAY = 4079 + SYS_GETGROUPS = 4080 + SYS_SETGROUPS = 4081 + SYS_RESERVED82 = 4082 + SYS_SYMLINK = 4083 + SYS_UNUSED84 = 4084 + SYS_READLINK = 4085 + SYS_USELIB = 4086 + SYS_SWAPON = 4087 + SYS_REBOOT = 4088 + SYS_READDIR = 4089 + SYS_MMAP = 4090 + SYS_MUNMAP = 4091 + SYS_TRUNCATE = 4092 + SYS_FTRUNCATE = 4093 + SYS_FCHMOD = 4094 + SYS_FCHOWN = 4095 + SYS_GETPRIORITY = 4096 + SYS_SETPRIORITY = 4097 + SYS_PROFIL = 4098 + SYS_STATFS = 4099 + SYS_FSTATFS = 4100 + SYS_IOPERM = 4101 + SYS_SOCKETCALL = 4102 + SYS_SYSLOG = 4103 + SYS_SETITIMER = 4104 + SYS_GETITIMER = 4105 + SYS_STAT = 4106 + SYS_LSTAT = 4107 + SYS_FSTAT = 4108 + SYS_UNUSED109 = 4109 + SYS_IOPL = 4110 + SYS_VHANGUP = 4111 + SYS_IDLE = 4112 + SYS_VM86 = 4113 + SYS_WAIT4 = 4114 + SYS_SWAPOFF = 4115 + SYS_SYSINFO = 4116 + SYS_IPC = 4117 + SYS_FSYNC = 4118 + SYS_SIGRETURN = 4119 + SYS_CLONE = 4120 + SYS_SETDOMAINNAME = 4121 + SYS_UNAME = 4122 + SYS_MODIFY_LDT = 4123 + SYS_ADJTIMEX = 4124 + SYS_MPROTECT = 4125 + SYS_SIGPROCMASK = 4126 + SYS_CREATE_MODULE = 4127 + SYS_INIT_MODULE = 4128 + SYS_DELETE_MODULE = 4129 + SYS_GET_KERNEL_SYMS = 4130 + SYS_QUOTACTL = 4131 + SYS_GETPGID = 4132 + SYS_FCHDIR = 4133 + SYS_BDFLUSH = 4134 + SYS_SYSFS = 4135 + SYS_PERSONALITY = 4136 + SYS_AFS_SYSCALL = 4137 + SYS_SETFSUID = 4138 + SYS_SETFSGID = 4139 + SYS__LLSEEK = 4140 + SYS_GETDENTS = 4141 + SYS__NEWSELECT = 4142 + SYS_FLOCK = 4143 + SYS_MSYNC = 4144 + SYS_READV = 4145 + SYS_WRITEV = 4146 + SYS_CACHEFLUSH = 4147 + SYS_CACHECTL = 4148 + SYS_SYSMIPS = 4149 + SYS_UNUSED150 = 4150 + SYS_GETSID = 4151 + SYS_FDATASYNC = 4152 + SYS__SYSCTL = 4153 + SYS_MLOCK = 4154 + SYS_MUNLOCK = 4155 + SYS_MLOCKALL = 4156 + SYS_MUNLOCKALL = 4157 + SYS_SCHED_SETPARAM = 4158 + SYS_SCHED_GETPARAM = 4159 + SYS_SCHED_SETSCHEDULER = 4160 + SYS_SCHED_GETSCHEDULER = 4161 + SYS_SCHED_YIELD = 4162 + SYS_SCHED_GET_PRIORITY_MAX = 4163 + SYS_SCHED_GET_PRIORITY_MIN = 4164 + SYS_SCHED_RR_GET_INTERVAL = 4165 + SYS_NANOSLEEP = 4166 + SYS_MREMAP = 4167 + SYS_ACCEPT = 4168 + SYS_BIND = 4169 + SYS_CONNECT = 4170 + SYS_GETPEERNAME = 4171 + SYS_GETSOCKNAME = 4172 + SYS_GETSOCKOPT = 4173 + SYS_LISTEN = 4174 + SYS_RECV = 4175 + SYS_RECVFROM = 4176 + SYS_RECVMSG = 4177 + SYS_SEND = 4178 + SYS_SENDMSG = 4179 + SYS_SENDTO = 4180 + SYS_SETSOCKOPT = 4181 + SYS_SHUTDOWN = 4182 + SYS_SOCKET = 4183 + SYS_SOCKETPAIR = 4184 + SYS_SETRESUID = 4185 + SYS_GETRESUID = 4186 + SYS_QUERY_MODULE = 4187 + SYS_POLL = 4188 + SYS_NFSSERVCTL = 4189 + SYS_SETRESGID = 4190 + SYS_GETRESGID = 4191 + SYS_PRCTL = 4192 + SYS_RT_SIGRETURN = 4193 + SYS_RT_SIGACTION = 4194 + SYS_RT_SIGPROCMASK = 4195 + SYS_RT_SIGPENDING = 4196 + SYS_RT_SIGTIMEDWAIT = 4197 + SYS_RT_SIGQUEUEINFO = 4198 + SYS_RT_SIGSUSPEND = 4199 + SYS_PREAD64 = 4200 + SYS_PWRITE64 = 4201 + SYS_CHOWN = 4202 + SYS_GETCWD = 4203 + SYS_CAPGET = 4204 + SYS_CAPSET = 4205 + SYS_SIGALTSTACK = 4206 + SYS_SENDFILE = 4207 + SYS_GETPMSG = 4208 + SYS_PUTPMSG = 4209 + SYS_MMAP2 = 4210 + SYS_TRUNCATE64 = 4211 + SYS_FTRUNCATE64 = 4212 + SYS_STAT64 = 4213 + SYS_LSTAT64 = 4214 + SYS_FSTAT64 = 4215 + SYS_PIVOT_ROOT = 4216 + SYS_MINCORE = 4217 + SYS_MADVISE = 4218 + SYS_GETDENTS64 = 4219 + SYS_FCNTL64 = 4220 + SYS_RESERVED221 = 4221 + SYS_GETTID = 4222 + SYS_READAHEAD = 4223 + SYS_SETXATTR = 4224 + SYS_LSETXATTR = 4225 + SYS_FSETXATTR = 4226 + SYS_GETXATTR = 4227 + SYS_LGETXATTR = 4228 + SYS_FGETXATTR = 4229 + SYS_LISTXATTR = 4230 + SYS_LLISTXATTR = 4231 + SYS_FLISTXATTR = 4232 + SYS_REMOVEXATTR = 4233 + SYS_LREMOVEXATTR = 4234 + SYS_FREMOVEXATTR = 4235 + SYS_TKILL = 4236 + SYS_SENDFILE64 = 4237 + SYS_FUTEX = 4238 + SYS_SCHED_SETAFFINITY = 4239 + SYS_SCHED_GETAFFINITY = 4240 + SYS_IO_SETUP = 4241 + SYS_IO_DESTROY = 4242 + SYS_IO_GETEVENTS = 4243 + SYS_IO_SUBMIT = 4244 + SYS_IO_CANCEL = 4245 + SYS_EXIT_GROUP = 4246 + SYS_LOOKUP_DCOOKIE = 4247 + SYS_EPOLL_CREATE = 4248 + SYS_EPOLL_CTL = 4249 + SYS_EPOLL_WAIT = 4250 + SYS_REMAP_FILE_PAGES = 4251 + SYS_SET_TID_ADDRESS = 4252 + SYS_RESTART_SYSCALL = 4253 + SYS_FADVISE64 = 4254 + SYS_STATFS64 = 4255 + SYS_FSTATFS64 = 4256 + SYS_TIMER_CREATE = 4257 + SYS_TIMER_SETTIME = 4258 + SYS_TIMER_GETTIME = 4259 + SYS_TIMER_GETOVERRUN = 4260 + SYS_TIMER_DELETE = 4261 + SYS_CLOCK_SETTIME = 4262 + SYS_CLOCK_GETTIME = 4263 + SYS_CLOCK_GETRES = 4264 + SYS_CLOCK_NANOSLEEP = 4265 + SYS_TGKILL = 4266 + SYS_UTIMES = 4267 + SYS_MBIND = 4268 + SYS_GET_MEMPOLICY = 4269 + SYS_SET_MEMPOLICY = 4270 + SYS_MQ_OPEN = 4271 + SYS_MQ_UNLINK = 4272 + SYS_MQ_TIMEDSEND = 4273 + SYS_MQ_TIMEDRECEIVE = 4274 + SYS_MQ_NOTIFY = 4275 + SYS_MQ_GETSETATTR = 4276 + SYS_VSERVER = 4277 + SYS_WAITID = 4278 + SYS_ADD_KEY = 4280 + SYS_REQUEST_KEY = 4281 + SYS_KEYCTL = 4282 + SYS_SET_THREAD_AREA = 4283 + SYS_INOTIFY_INIT = 4284 + SYS_INOTIFY_ADD_WATCH = 4285 + SYS_INOTIFY_RM_WATCH = 4286 + SYS_MIGRATE_PAGES = 4287 + SYS_OPENAT = 4288 + SYS_MKDIRAT = 4289 + SYS_MKNODAT = 4290 + SYS_FCHOWNAT = 4291 + SYS_FUTIMESAT = 4292 + SYS_FSTATAT64 = 4293 + SYS_UNLINKAT = 4294 + SYS_RENAMEAT = 4295 + SYS_LINKAT = 4296 + SYS_SYMLINKAT = 4297 + SYS_READLINKAT = 4298 + SYS_FCHMODAT = 4299 + SYS_FACCESSAT = 4300 + SYS_PSELECT6 = 4301 + SYS_PPOLL = 4302 + SYS_UNSHARE = 4303 + SYS_SPLICE = 4304 + SYS_SYNC_FILE_RANGE = 4305 + SYS_TEE = 4306 + SYS_VMSPLICE = 4307 + SYS_MOVE_PAGES = 4308 + SYS_SET_ROBUST_LIST = 4309 + SYS_GET_ROBUST_LIST = 4310 + SYS_KEXEC_LOAD = 4311 + SYS_GETCPU = 4312 + SYS_EPOLL_PWAIT = 4313 + SYS_IOPRIO_SET = 4314 + SYS_IOPRIO_GET = 4315 + SYS_UTIMENSAT = 4316 + SYS_SIGNALFD = 4317 + SYS_TIMERFD = 4318 + SYS_EVENTFD = 4319 + SYS_FALLOCATE = 4320 + SYS_TIMERFD_CREATE = 4321 + SYS_TIMERFD_GETTIME = 4322 + SYS_TIMERFD_SETTIME = 4323 + SYS_SIGNALFD4 = 4324 + SYS_EVENTFD2 = 4325 + SYS_EPOLL_CREATE1 = 4326 + SYS_DUP3 = 4327 + SYS_PIPE2 = 4328 + SYS_INOTIFY_INIT1 = 4329 + SYS_PREADV = 4330 + SYS_PWRITEV = 4331 + SYS_RT_TGSIGQUEUEINFO = 4332 + SYS_PERF_EVENT_OPEN = 4333 + SYS_ACCEPT4 = 4334 + SYS_RECVMMSG = 4335 + SYS_FANOTIFY_INIT = 4336 + SYS_FANOTIFY_MARK = 4337 + SYS_PRLIMIT64 = 4338 + SYS_NAME_TO_HANDLE_AT = 4339 + SYS_OPEN_BY_HANDLE_AT = 4340 + SYS_CLOCK_ADJTIME = 4341 + SYS_SYNCFS = 4342 + SYS_SENDMMSG = 4343 + SYS_SETNS = 4344 + SYS_PROCESS_VM_READV = 4345 + SYS_PROCESS_VM_WRITEV = 4346 + SYS_KCMP = 4347 + SYS_FINIT_MODULE = 4348 + SYS_SCHED_SETATTR = 4349 + SYS_SCHED_GETATTR = 4350 + SYS_RENAMEAT2 = 4351 + SYS_SECCOMP = 4352 + SYS_GETRANDOM = 4353 + SYS_MEMFD_CREATE = 4354 + SYS_BPF = 4355 + SYS_EXECVEAT = 4356 + SYS_USERFAULTFD = 4357 + SYS_MEMBARRIER = 4358 + SYS_MLOCK2 = 4359 + SYS_COPY_FILE_RANGE = 4360 + SYS_PREADV2 = 4361 + SYS_PWRITEV2 = 4362 + SYS_PKEY_MPROTECT = 4363 + SYS_PKEY_ALLOC = 4364 + SYS_PKEY_FREE = 4365 + SYS_STATX = 4366 + SYS_RSEQ = 4367 + SYS_IO_PGETEVENTS = 4368 + SYS_SEMGET = 4393 + SYS_SEMCTL = 4394 + SYS_SHMGET = 4395 + SYS_SHMCTL = 4396 + SYS_SHMAT = 4397 + SYS_SHMDT = 4398 + SYS_MSGGET = 4399 + SYS_MSGSND = 4400 + SYS_MSGRCV = 4401 + SYS_MSGCTL = 4402 + SYS_CLOCK_GETTIME64 = 4403 + SYS_CLOCK_SETTIME64 = 4404 + SYS_CLOCK_ADJTIME64 = 4405 + SYS_CLOCK_GETRES_TIME64 = 4406 + SYS_CLOCK_NANOSLEEP_TIME64 = 4407 + SYS_TIMER_GETTIME64 = 4408 + SYS_TIMER_SETTIME64 = 4409 + SYS_TIMERFD_GETTIME64 = 4410 + SYS_TIMERFD_SETTIME64 = 4411 + SYS_UTIMENSAT_TIME64 = 4412 + SYS_PSELECT6_TIME64 = 4413 + SYS_PPOLL_TIME64 = 4414 + SYS_IO_PGETEVENTS_TIME64 = 4416 + SYS_RECVMMSG_TIME64 = 4417 + SYS_MQ_TIMEDSEND_TIME64 = 4418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 4419 + SYS_SEMTIMEDOP_TIME64 = 4420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 4421 + SYS_FUTEX_TIME64 = 4422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 4423 + SYS_PIDFD_SEND_SIGNAL = 4424 + SYS_IO_URING_SETUP = 4425 + SYS_IO_URING_ENTER = 4426 + SYS_IO_URING_REGISTER = 4427 + SYS_OPEN_TREE = 4428 + SYS_MOVE_MOUNT = 4429 + SYS_FSOPEN = 4430 + SYS_FSCONFIG = 4431 + SYS_FSMOUNT = 4432 + SYS_FSPICK = 4433 + SYS_PIDFD_OPEN = 4434 + SYS_CLONE3 = 4435 + SYS_CLOSE_RANGE = 4436 + SYS_OPENAT2 = 4437 + SYS_PIDFD_GETFD = 4438 + SYS_FACCESSAT2 = 4439 + SYS_PROCESS_MADVISE = 4440 + SYS_EPOLL_PWAIT2 = 4441 + SYS_MOUNT_SETATTR = 4442 + SYS_QUOTACTL_FD = 4443 + SYS_LANDLOCK_CREATE_RULESET = 4444 + SYS_LANDLOCK_ADD_RULE = 4445 + SYS_LANDLOCK_RESTRICT_SELF = 4446 + SYS_PROCESS_MRELEASE = 4448 + SYS_FUTEX_WAITV = 4449 + SYS_SET_MEMPOLICY_HOME_NODE = 4450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go new file mode 100644 index 0000000000..a8cce69ede --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go @@ -0,0 +1,441 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc/include /tmp/ppc/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux +// +build ppc,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86 = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_MMAP2 = 192 + SYS_TRUNCATE64 = 193 + SYS_FTRUNCATE64 = 194 + SYS_STAT64 = 195 + SYS_LSTAT64 = 196 + SYS_FSTAT64 = 197 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_FCNTL64 = 204 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_SENDFILE64 = 226 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_FADVISE64_64 = 254 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_FSTATAT64 = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_CLOCK_GETTIME64 = 403 + SYS_CLOCK_SETTIME64 = 404 + SYS_CLOCK_ADJTIME64 = 405 + SYS_CLOCK_GETRES_TIME64 = 406 + SYS_CLOCK_NANOSLEEP_TIME64 = 407 + SYS_TIMER_GETTIME64 = 408 + SYS_TIMER_SETTIME64 = 409 + SYS_TIMERFD_GETTIME64 = 410 + SYS_TIMERFD_SETTIME64 = 411 + SYS_UTIMENSAT_TIME64 = 412 + SYS_PSELECT6_TIME64 = 413 + SYS_PPOLL_TIME64 = 414 + SYS_IO_PGETEVENTS_TIME64 = 416 + SYS_RECVMMSG_TIME64 = 417 + SYS_MQ_TIMEDSEND_TIME64 = 418 + SYS_MQ_TIMEDRECEIVE_TIME64 = 419 + SYS_SEMTIMEDOP_TIME64 = 420 + SYS_RT_SIGTIMEDWAIT_TIME64 = 421 + SYS_FUTEX_TIME64 = 422 + SYS_SCHED_RR_GET_INTERVAL_TIME64 = 423 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go new file mode 100644 index 0000000000..d44c5b39d7 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go @@ -0,0 +1,413 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64/include /tmp/ppc64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && linux +// +build ppc64,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86 = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_NEWFSTATAT = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go new file mode 100644 index 0000000000..4214dd9c03 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go @@ -0,0 +1,413 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/ppc64le/include /tmp/ppc64le/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64le && linux +// +build ppc64le,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAITPID = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_TIME = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BREAK = 17 + SYS_OLDSTAT = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_STIME = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_OLDFSTAT = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_STTY = 31 + SYS_GTTY = 32 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_FTIME = 35 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_PROF = 44 + SYS_BRK = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_LOCK = 53 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_MPX = 56 + SYS_SETPGID = 57 + SYS_ULIMIT = 58 + SYS_OLDOLDUNAME = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SGETMASK = 68 + SYS_SSETMASK = 69 + SYS_SETREUID = 70 + SYS_SETREGID = 71 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRLIMIT = 76 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_GETGROUPS = 80 + SYS_SETGROUPS = 81 + SYS_SELECT = 82 + SYS_SYMLINK = 83 + SYS_OLDLSTAT = 84 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_FCHOWN = 95 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_PROFIL = 98 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_IOPERM = 101 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_OLDUNAME = 109 + SYS_IOPL = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_VM86 = 113 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_MODIFY_LDT = 123 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_SETFSUID = 138 + SYS_SETFSGID = 139 + SYS__LLSEEK = 140 + SYS_GETDENTS = 141 + SYS__NEWSELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_SETRESUID = 164 + SYS_GETRESUID = 165 + SYS_QUERY_MODULE = 166 + SYS_POLL = 167 + SYS_NFSSERVCTL = 168 + SYS_SETRESGID = 169 + SYS_GETRESGID = 170 + SYS_PRCTL = 171 + SYS_RT_SIGRETURN = 172 + SYS_RT_SIGACTION = 173 + SYS_RT_SIGPROCMASK = 174 + SYS_RT_SIGPENDING = 175 + SYS_RT_SIGTIMEDWAIT = 176 + SYS_RT_SIGQUEUEINFO = 177 + SYS_RT_SIGSUSPEND = 178 + SYS_PREAD64 = 179 + SYS_PWRITE64 = 180 + SYS_CHOWN = 181 + SYS_GETCWD = 182 + SYS_CAPGET = 183 + SYS_CAPSET = 184 + SYS_SIGALTSTACK = 185 + SYS_SENDFILE = 186 + SYS_GETPMSG = 187 + SYS_PUTPMSG = 188 + SYS_VFORK = 189 + SYS_UGETRLIMIT = 190 + SYS_READAHEAD = 191 + SYS_PCICONFIG_READ = 198 + SYS_PCICONFIG_WRITE = 199 + SYS_PCICONFIG_IOBASE = 200 + SYS_MULTIPLEXER = 201 + SYS_GETDENTS64 = 202 + SYS_PIVOT_ROOT = 203 + SYS_MADVISE = 205 + SYS_MINCORE = 206 + SYS_GETTID = 207 + SYS_TKILL = 208 + SYS_SETXATTR = 209 + SYS_LSETXATTR = 210 + SYS_FSETXATTR = 211 + SYS_GETXATTR = 212 + SYS_LGETXATTR = 213 + SYS_FGETXATTR = 214 + SYS_LISTXATTR = 215 + SYS_LLISTXATTR = 216 + SYS_FLISTXATTR = 217 + SYS_REMOVEXATTR = 218 + SYS_LREMOVEXATTR = 219 + SYS_FREMOVEXATTR = 220 + SYS_FUTEX = 221 + SYS_SCHED_SETAFFINITY = 222 + SYS_SCHED_GETAFFINITY = 223 + SYS_TUXCALL = 225 + SYS_IO_SETUP = 227 + SYS_IO_DESTROY = 228 + SYS_IO_GETEVENTS = 229 + SYS_IO_SUBMIT = 230 + SYS_IO_CANCEL = 231 + SYS_SET_TID_ADDRESS = 232 + SYS_FADVISE64 = 233 + SYS_EXIT_GROUP = 234 + SYS_LOOKUP_DCOOKIE = 235 + SYS_EPOLL_CREATE = 236 + SYS_EPOLL_CTL = 237 + SYS_EPOLL_WAIT = 238 + SYS_REMAP_FILE_PAGES = 239 + SYS_TIMER_CREATE = 240 + SYS_TIMER_SETTIME = 241 + SYS_TIMER_GETTIME = 242 + SYS_TIMER_GETOVERRUN = 243 + SYS_TIMER_DELETE = 244 + SYS_CLOCK_SETTIME = 245 + SYS_CLOCK_GETTIME = 246 + SYS_CLOCK_GETRES = 247 + SYS_CLOCK_NANOSLEEP = 248 + SYS_SWAPCONTEXT = 249 + SYS_TGKILL = 250 + SYS_UTIMES = 251 + SYS_STATFS64 = 252 + SYS_FSTATFS64 = 253 + SYS_RTAS = 255 + SYS_SYS_DEBUG_SETCONTEXT = 256 + SYS_MIGRATE_PAGES = 258 + SYS_MBIND = 259 + SYS_GET_MEMPOLICY = 260 + SYS_SET_MEMPOLICY = 261 + SYS_MQ_OPEN = 262 + SYS_MQ_UNLINK = 263 + SYS_MQ_TIMEDSEND = 264 + SYS_MQ_TIMEDRECEIVE = 265 + SYS_MQ_NOTIFY = 266 + SYS_MQ_GETSETATTR = 267 + SYS_KEXEC_LOAD = 268 + SYS_ADD_KEY = 269 + SYS_REQUEST_KEY = 270 + SYS_KEYCTL = 271 + SYS_WAITID = 272 + SYS_IOPRIO_SET = 273 + SYS_IOPRIO_GET = 274 + SYS_INOTIFY_INIT = 275 + SYS_INOTIFY_ADD_WATCH = 276 + SYS_INOTIFY_RM_WATCH = 277 + SYS_SPU_RUN = 278 + SYS_SPU_CREATE = 279 + SYS_PSELECT6 = 280 + SYS_PPOLL = 281 + SYS_UNSHARE = 282 + SYS_SPLICE = 283 + SYS_TEE = 284 + SYS_VMSPLICE = 285 + SYS_OPENAT = 286 + SYS_MKDIRAT = 287 + SYS_MKNODAT = 288 + SYS_FCHOWNAT = 289 + SYS_FUTIMESAT = 290 + SYS_NEWFSTATAT = 291 + SYS_UNLINKAT = 292 + SYS_RENAMEAT = 293 + SYS_LINKAT = 294 + SYS_SYMLINKAT = 295 + SYS_READLINKAT = 296 + SYS_FCHMODAT = 297 + SYS_FACCESSAT = 298 + SYS_GET_ROBUST_LIST = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_MOVE_PAGES = 301 + SYS_GETCPU = 302 + SYS_EPOLL_PWAIT = 303 + SYS_UTIMENSAT = 304 + SYS_SIGNALFD = 305 + SYS_TIMERFD_CREATE = 306 + SYS_EVENTFD = 307 + SYS_SYNC_FILE_RANGE2 = 308 + SYS_FALLOCATE = 309 + SYS_SUBPAGE_PROT = 310 + SYS_TIMERFD_SETTIME = 311 + SYS_TIMERFD_GETTIME = 312 + SYS_SIGNALFD4 = 313 + SYS_EVENTFD2 = 314 + SYS_EPOLL_CREATE1 = 315 + SYS_DUP3 = 316 + SYS_PIPE2 = 317 + SYS_INOTIFY_INIT1 = 318 + SYS_PERF_EVENT_OPEN = 319 + SYS_PREADV = 320 + SYS_PWRITEV = 321 + SYS_RT_TGSIGQUEUEINFO = 322 + SYS_FANOTIFY_INIT = 323 + SYS_FANOTIFY_MARK = 324 + SYS_PRLIMIT64 = 325 + SYS_SOCKET = 326 + SYS_BIND = 327 + SYS_CONNECT = 328 + SYS_LISTEN = 329 + SYS_ACCEPT = 330 + SYS_GETSOCKNAME = 331 + SYS_GETPEERNAME = 332 + SYS_SOCKETPAIR = 333 + SYS_SEND = 334 + SYS_SENDTO = 335 + SYS_RECV = 336 + SYS_RECVFROM = 337 + SYS_SHUTDOWN = 338 + SYS_SETSOCKOPT = 339 + SYS_GETSOCKOPT = 340 + SYS_SENDMSG = 341 + SYS_RECVMSG = 342 + SYS_RECVMMSG = 343 + SYS_ACCEPT4 = 344 + SYS_NAME_TO_HANDLE_AT = 345 + SYS_OPEN_BY_HANDLE_AT = 346 + SYS_CLOCK_ADJTIME = 347 + SYS_SYNCFS = 348 + SYS_SENDMMSG = 349 + SYS_SETNS = 350 + SYS_PROCESS_VM_READV = 351 + SYS_PROCESS_VM_WRITEV = 352 + SYS_FINIT_MODULE = 353 + SYS_KCMP = 354 + SYS_SCHED_SETATTR = 355 + SYS_SCHED_GETATTR = 356 + SYS_RENAMEAT2 = 357 + SYS_SECCOMP = 358 + SYS_GETRANDOM = 359 + SYS_MEMFD_CREATE = 360 + SYS_BPF = 361 + SYS_EXECVEAT = 362 + SYS_SWITCH_ENDIAN = 363 + SYS_USERFAULTFD = 364 + SYS_MEMBARRIER = 365 + SYS_MLOCK2 = 378 + SYS_COPY_FILE_RANGE = 379 + SYS_PREADV2 = 380 + SYS_PWRITEV2 = 381 + SYS_KEXEC_FILE_LOAD = 382 + SYS_STATX = 383 + SYS_PKEY_ALLOC = 384 + SYS_PKEY_FREE = 385 + SYS_PKEY_MPROTECT = 386 + SYS_RSEQ = 387 + SYS_IO_PGETEVENTS = 388 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go new file mode 100644 index 0000000000..3e594a8c09 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go @@ -0,0 +1,316 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/riscv64/include /tmp/riscv64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && linux +// +build riscv64,linux + +package unix + +const ( + SYS_IO_SETUP = 0 + SYS_IO_DESTROY = 1 + SYS_IO_SUBMIT = 2 + SYS_IO_CANCEL = 3 + SYS_IO_GETEVENTS = 4 + SYS_SETXATTR = 5 + SYS_LSETXATTR = 6 + SYS_FSETXATTR = 7 + SYS_GETXATTR = 8 + SYS_LGETXATTR = 9 + SYS_FGETXATTR = 10 + SYS_LISTXATTR = 11 + SYS_LLISTXATTR = 12 + SYS_FLISTXATTR = 13 + SYS_REMOVEXATTR = 14 + SYS_LREMOVEXATTR = 15 + SYS_FREMOVEXATTR = 16 + SYS_GETCWD = 17 + SYS_LOOKUP_DCOOKIE = 18 + SYS_EVENTFD2 = 19 + SYS_EPOLL_CREATE1 = 20 + SYS_EPOLL_CTL = 21 + SYS_EPOLL_PWAIT = 22 + SYS_DUP = 23 + SYS_DUP3 = 24 + SYS_FCNTL = 25 + SYS_INOTIFY_INIT1 = 26 + SYS_INOTIFY_ADD_WATCH = 27 + SYS_INOTIFY_RM_WATCH = 28 + SYS_IOCTL = 29 + SYS_IOPRIO_SET = 30 + SYS_IOPRIO_GET = 31 + SYS_FLOCK = 32 + SYS_MKNODAT = 33 + SYS_MKDIRAT = 34 + SYS_UNLINKAT = 35 + SYS_SYMLINKAT = 36 + SYS_LINKAT = 37 + SYS_UMOUNT2 = 39 + SYS_MOUNT = 40 + SYS_PIVOT_ROOT = 41 + SYS_NFSSERVCTL = 42 + SYS_STATFS = 43 + SYS_FSTATFS = 44 + SYS_TRUNCATE = 45 + SYS_FTRUNCATE = 46 + SYS_FALLOCATE = 47 + SYS_FACCESSAT = 48 + SYS_CHDIR = 49 + SYS_FCHDIR = 50 + SYS_CHROOT = 51 + SYS_FCHMOD = 52 + SYS_FCHMODAT = 53 + SYS_FCHOWNAT = 54 + SYS_FCHOWN = 55 + SYS_OPENAT = 56 + SYS_CLOSE = 57 + SYS_VHANGUP = 58 + SYS_PIPE2 = 59 + SYS_QUOTACTL = 60 + SYS_GETDENTS64 = 61 + SYS_LSEEK = 62 + SYS_READ = 63 + SYS_WRITE = 64 + SYS_READV = 65 + SYS_WRITEV = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_PREADV = 69 + SYS_PWRITEV = 70 + SYS_SENDFILE = 71 + SYS_PSELECT6 = 72 + SYS_PPOLL = 73 + SYS_SIGNALFD4 = 74 + SYS_VMSPLICE = 75 + SYS_SPLICE = 76 + SYS_TEE = 77 + SYS_READLINKAT = 78 + SYS_FSTATAT = 79 + SYS_FSTAT = 80 + SYS_SYNC = 81 + SYS_FSYNC = 82 + SYS_FDATASYNC = 83 + SYS_SYNC_FILE_RANGE = 84 + SYS_TIMERFD_CREATE = 85 + SYS_TIMERFD_SETTIME = 86 + SYS_TIMERFD_GETTIME = 87 + SYS_UTIMENSAT = 88 + SYS_ACCT = 89 + SYS_CAPGET = 90 + SYS_CAPSET = 91 + SYS_PERSONALITY = 92 + SYS_EXIT = 93 + SYS_EXIT_GROUP = 94 + SYS_WAITID = 95 + SYS_SET_TID_ADDRESS = 96 + SYS_UNSHARE = 97 + SYS_FUTEX = 98 + SYS_SET_ROBUST_LIST = 99 + SYS_GET_ROBUST_LIST = 100 + SYS_NANOSLEEP = 101 + SYS_GETITIMER = 102 + SYS_SETITIMER = 103 + SYS_KEXEC_LOAD = 104 + SYS_INIT_MODULE = 105 + SYS_DELETE_MODULE = 106 + SYS_TIMER_CREATE = 107 + SYS_TIMER_GETTIME = 108 + SYS_TIMER_GETOVERRUN = 109 + SYS_TIMER_SETTIME = 110 + SYS_TIMER_DELETE = 111 + SYS_CLOCK_SETTIME = 112 + SYS_CLOCK_GETTIME = 113 + SYS_CLOCK_GETRES = 114 + SYS_CLOCK_NANOSLEEP = 115 + SYS_SYSLOG = 116 + SYS_PTRACE = 117 + SYS_SCHED_SETPARAM = 118 + SYS_SCHED_SETSCHEDULER = 119 + SYS_SCHED_GETSCHEDULER = 120 + SYS_SCHED_GETPARAM = 121 + SYS_SCHED_SETAFFINITY = 122 + SYS_SCHED_GETAFFINITY = 123 + SYS_SCHED_YIELD = 124 + SYS_SCHED_GET_PRIORITY_MAX = 125 + SYS_SCHED_GET_PRIORITY_MIN = 126 + SYS_SCHED_RR_GET_INTERVAL = 127 + SYS_RESTART_SYSCALL = 128 + SYS_KILL = 129 + SYS_TKILL = 130 + SYS_TGKILL = 131 + SYS_SIGALTSTACK = 132 + SYS_RT_SIGSUSPEND = 133 + SYS_RT_SIGACTION = 134 + SYS_RT_SIGPROCMASK = 135 + SYS_RT_SIGPENDING = 136 + SYS_RT_SIGTIMEDWAIT = 137 + SYS_RT_SIGQUEUEINFO = 138 + SYS_RT_SIGRETURN = 139 + SYS_SETPRIORITY = 140 + SYS_GETPRIORITY = 141 + SYS_REBOOT = 142 + SYS_SETREGID = 143 + SYS_SETGID = 144 + SYS_SETREUID = 145 + SYS_SETUID = 146 + SYS_SETRESUID = 147 + SYS_GETRESUID = 148 + SYS_SETRESGID = 149 + SYS_GETRESGID = 150 + SYS_SETFSUID = 151 + SYS_SETFSGID = 152 + SYS_TIMES = 153 + SYS_SETPGID = 154 + SYS_GETPGID = 155 + SYS_GETSID = 156 + SYS_SETSID = 157 + SYS_GETGROUPS = 158 + SYS_SETGROUPS = 159 + SYS_UNAME = 160 + SYS_SETHOSTNAME = 161 + SYS_SETDOMAINNAME = 162 + SYS_GETRLIMIT = 163 + SYS_SETRLIMIT = 164 + SYS_GETRUSAGE = 165 + SYS_UMASK = 166 + SYS_PRCTL = 167 + SYS_GETCPU = 168 + SYS_GETTIMEOFDAY = 169 + SYS_SETTIMEOFDAY = 170 + SYS_ADJTIMEX = 171 + SYS_GETPID = 172 + SYS_GETPPID = 173 + SYS_GETUID = 174 + SYS_GETEUID = 175 + SYS_GETGID = 176 + SYS_GETEGID = 177 + SYS_GETTID = 178 + SYS_SYSINFO = 179 + SYS_MQ_OPEN = 180 + SYS_MQ_UNLINK = 181 + SYS_MQ_TIMEDSEND = 182 + SYS_MQ_TIMEDRECEIVE = 183 + SYS_MQ_NOTIFY = 184 + SYS_MQ_GETSETATTR = 185 + SYS_MSGGET = 186 + SYS_MSGCTL = 187 + SYS_MSGRCV = 188 + SYS_MSGSND = 189 + SYS_SEMGET = 190 + SYS_SEMCTL = 191 + SYS_SEMTIMEDOP = 192 + SYS_SEMOP = 193 + SYS_SHMGET = 194 + SYS_SHMCTL = 195 + SYS_SHMAT = 196 + SYS_SHMDT = 197 + SYS_SOCKET = 198 + SYS_SOCKETPAIR = 199 + SYS_BIND = 200 + SYS_LISTEN = 201 + SYS_ACCEPT = 202 + SYS_CONNECT = 203 + SYS_GETSOCKNAME = 204 + SYS_GETPEERNAME = 205 + SYS_SENDTO = 206 + SYS_RECVFROM = 207 + SYS_SETSOCKOPT = 208 + SYS_GETSOCKOPT = 209 + SYS_SHUTDOWN = 210 + SYS_SENDMSG = 211 + SYS_RECVMSG = 212 + SYS_READAHEAD = 213 + SYS_BRK = 214 + SYS_MUNMAP = 215 + SYS_MREMAP = 216 + SYS_ADD_KEY = 217 + SYS_REQUEST_KEY = 218 + SYS_KEYCTL = 219 + SYS_CLONE = 220 + SYS_EXECVE = 221 + SYS_MMAP = 222 + SYS_FADVISE64 = 223 + SYS_SWAPON = 224 + SYS_SWAPOFF = 225 + SYS_MPROTECT = 226 + SYS_MSYNC = 227 + SYS_MLOCK = 228 + SYS_MUNLOCK = 229 + SYS_MLOCKALL = 230 + SYS_MUNLOCKALL = 231 + SYS_MINCORE = 232 + SYS_MADVISE = 233 + SYS_REMAP_FILE_PAGES = 234 + SYS_MBIND = 235 + SYS_GET_MEMPOLICY = 236 + SYS_SET_MEMPOLICY = 237 + SYS_MIGRATE_PAGES = 238 + SYS_MOVE_PAGES = 239 + SYS_RT_TGSIGQUEUEINFO = 240 + SYS_PERF_EVENT_OPEN = 241 + SYS_ACCEPT4 = 242 + SYS_RECVMMSG = 243 + SYS_ARCH_SPECIFIC_SYSCALL = 244 + SYS_WAIT4 = 260 + SYS_PRLIMIT64 = 261 + SYS_FANOTIFY_INIT = 262 + SYS_FANOTIFY_MARK = 263 + SYS_NAME_TO_HANDLE_AT = 264 + SYS_OPEN_BY_HANDLE_AT = 265 + SYS_CLOCK_ADJTIME = 266 + SYS_SYNCFS = 267 + SYS_SETNS = 268 + SYS_SENDMMSG = 269 + SYS_PROCESS_VM_READV = 270 + SYS_PROCESS_VM_WRITEV = 271 + SYS_KCMP = 272 + SYS_FINIT_MODULE = 273 + SYS_SCHED_SETATTR = 274 + SYS_SCHED_GETATTR = 275 + SYS_RENAMEAT2 = 276 + SYS_SECCOMP = 277 + SYS_GETRANDOM = 278 + SYS_MEMFD_CREATE = 279 + SYS_BPF = 280 + SYS_EXECVEAT = 281 + SYS_USERFAULTFD = 282 + SYS_MEMBARRIER = 283 + SYS_MLOCK2 = 284 + SYS_COPY_FILE_RANGE = 285 + SYS_PREADV2 = 286 + SYS_PWRITEV2 = 287 + SYS_PKEY_MPROTECT = 288 + SYS_PKEY_ALLOC = 289 + SYS_PKEY_FREE = 290 + SYS_STATX = 291 + SYS_IO_PGETEVENTS = 292 + SYS_RSEQ = 293 + SYS_KEXEC_FILE_LOAD = 294 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_MEMFD_SECRET = 447 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go new file mode 100644 index 0000000000..7ea465204b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go @@ -0,0 +1,378 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/s390x/include -fsigned-char /tmp/s390x/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build s390x && linux +// +build s390x,linux + +package unix + +const ( + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_RESTART_SYSCALL = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECVE = 11 + SYS_CHDIR = 12 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_MOUNT = 21 + SYS_UMOUNT = 22 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_RENAME = 38 + SYS_MKDIR = 39 + SYS_RMDIR = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_BRK = 45 + SYS_SIGNAL = 48 + SYS_ACCT = 51 + SYS_UMOUNT2 = 52 + SYS_IOCTL = 54 + SYS_FCNTL = 55 + SYS_SETPGID = 57 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_USTAT = 62 + SYS_DUP2 = 63 + SYS_GETPPID = 64 + SYS_GETPGRP = 65 + SYS_SETSID = 66 + SYS_SIGACTION = 67 + SYS_SIGSUSPEND = 72 + SYS_SIGPENDING = 73 + SYS_SETHOSTNAME = 74 + SYS_SETRLIMIT = 75 + SYS_GETRUSAGE = 77 + SYS_GETTIMEOFDAY = 78 + SYS_SETTIMEOFDAY = 79 + SYS_SYMLINK = 83 + SYS_READLINK = 85 + SYS_USELIB = 86 + SYS_SWAPON = 87 + SYS_REBOOT = 88 + SYS_READDIR = 89 + SYS_MMAP = 90 + SYS_MUNMAP = 91 + SYS_TRUNCATE = 92 + SYS_FTRUNCATE = 93 + SYS_FCHMOD = 94 + SYS_GETPRIORITY = 96 + SYS_SETPRIORITY = 97 + SYS_STATFS = 99 + SYS_FSTATFS = 100 + SYS_SOCKETCALL = 102 + SYS_SYSLOG = 103 + SYS_SETITIMER = 104 + SYS_GETITIMER = 105 + SYS_STAT = 106 + SYS_LSTAT = 107 + SYS_FSTAT = 108 + SYS_LOOKUP_DCOOKIE = 110 + SYS_VHANGUP = 111 + SYS_IDLE = 112 + SYS_WAIT4 = 114 + SYS_SWAPOFF = 115 + SYS_SYSINFO = 116 + SYS_IPC = 117 + SYS_FSYNC = 118 + SYS_SIGRETURN = 119 + SYS_CLONE = 120 + SYS_SETDOMAINNAME = 121 + SYS_UNAME = 122 + SYS_ADJTIMEX = 124 + SYS_MPROTECT = 125 + SYS_SIGPROCMASK = 126 + SYS_CREATE_MODULE = 127 + SYS_INIT_MODULE = 128 + SYS_DELETE_MODULE = 129 + SYS_GET_KERNEL_SYMS = 130 + SYS_QUOTACTL = 131 + SYS_GETPGID = 132 + SYS_FCHDIR = 133 + SYS_BDFLUSH = 134 + SYS_SYSFS = 135 + SYS_PERSONALITY = 136 + SYS_AFS_SYSCALL = 137 + SYS_GETDENTS = 141 + SYS_SELECT = 142 + SYS_FLOCK = 143 + SYS_MSYNC = 144 + SYS_READV = 145 + SYS_WRITEV = 146 + SYS_GETSID = 147 + SYS_FDATASYNC = 148 + SYS__SYSCTL = 149 + SYS_MLOCK = 150 + SYS_MUNLOCK = 151 + SYS_MLOCKALL = 152 + SYS_MUNLOCKALL = 153 + SYS_SCHED_SETPARAM = 154 + SYS_SCHED_GETPARAM = 155 + SYS_SCHED_SETSCHEDULER = 156 + SYS_SCHED_GETSCHEDULER = 157 + SYS_SCHED_YIELD = 158 + SYS_SCHED_GET_PRIORITY_MAX = 159 + SYS_SCHED_GET_PRIORITY_MIN = 160 + SYS_SCHED_RR_GET_INTERVAL = 161 + SYS_NANOSLEEP = 162 + SYS_MREMAP = 163 + SYS_QUERY_MODULE = 167 + SYS_POLL = 168 + SYS_NFSSERVCTL = 169 + SYS_PRCTL = 172 + SYS_RT_SIGRETURN = 173 + SYS_RT_SIGACTION = 174 + SYS_RT_SIGPROCMASK = 175 + SYS_RT_SIGPENDING = 176 + SYS_RT_SIGTIMEDWAIT = 177 + SYS_RT_SIGQUEUEINFO = 178 + SYS_RT_SIGSUSPEND = 179 + SYS_PREAD64 = 180 + SYS_PWRITE64 = 181 + SYS_GETCWD = 183 + SYS_CAPGET = 184 + SYS_CAPSET = 185 + SYS_SIGALTSTACK = 186 + SYS_SENDFILE = 187 + SYS_GETPMSG = 188 + SYS_PUTPMSG = 189 + SYS_VFORK = 190 + SYS_GETRLIMIT = 191 + SYS_LCHOWN = 198 + SYS_GETUID = 199 + SYS_GETGID = 200 + SYS_GETEUID = 201 + SYS_GETEGID = 202 + SYS_SETREUID = 203 + SYS_SETREGID = 204 + SYS_GETGROUPS = 205 + SYS_SETGROUPS = 206 + SYS_FCHOWN = 207 + SYS_SETRESUID = 208 + SYS_GETRESUID = 209 + SYS_SETRESGID = 210 + SYS_GETRESGID = 211 + SYS_CHOWN = 212 + SYS_SETUID = 213 + SYS_SETGID = 214 + SYS_SETFSUID = 215 + SYS_SETFSGID = 216 + SYS_PIVOT_ROOT = 217 + SYS_MINCORE = 218 + SYS_MADVISE = 219 + SYS_GETDENTS64 = 220 + SYS_READAHEAD = 222 + SYS_SETXATTR = 224 + SYS_LSETXATTR = 225 + SYS_FSETXATTR = 226 + SYS_GETXATTR = 227 + SYS_LGETXATTR = 228 + SYS_FGETXATTR = 229 + SYS_LISTXATTR = 230 + SYS_LLISTXATTR = 231 + SYS_FLISTXATTR = 232 + SYS_REMOVEXATTR = 233 + SYS_LREMOVEXATTR = 234 + SYS_FREMOVEXATTR = 235 + SYS_GETTID = 236 + SYS_TKILL = 237 + SYS_FUTEX = 238 + SYS_SCHED_SETAFFINITY = 239 + SYS_SCHED_GETAFFINITY = 240 + SYS_TGKILL = 241 + SYS_IO_SETUP = 243 + SYS_IO_DESTROY = 244 + SYS_IO_GETEVENTS = 245 + SYS_IO_SUBMIT = 246 + SYS_IO_CANCEL = 247 + SYS_EXIT_GROUP = 248 + SYS_EPOLL_CREATE = 249 + SYS_EPOLL_CTL = 250 + SYS_EPOLL_WAIT = 251 + SYS_SET_TID_ADDRESS = 252 + SYS_FADVISE64 = 253 + SYS_TIMER_CREATE = 254 + SYS_TIMER_SETTIME = 255 + SYS_TIMER_GETTIME = 256 + SYS_TIMER_GETOVERRUN = 257 + SYS_TIMER_DELETE = 258 + SYS_CLOCK_SETTIME = 259 + SYS_CLOCK_GETTIME = 260 + SYS_CLOCK_GETRES = 261 + SYS_CLOCK_NANOSLEEP = 262 + SYS_STATFS64 = 265 + SYS_FSTATFS64 = 266 + SYS_REMAP_FILE_PAGES = 267 + SYS_MBIND = 268 + SYS_GET_MEMPOLICY = 269 + SYS_SET_MEMPOLICY = 270 + SYS_MQ_OPEN = 271 + SYS_MQ_UNLINK = 272 + SYS_MQ_TIMEDSEND = 273 + SYS_MQ_TIMEDRECEIVE = 274 + SYS_MQ_NOTIFY = 275 + SYS_MQ_GETSETATTR = 276 + SYS_KEXEC_LOAD = 277 + SYS_ADD_KEY = 278 + SYS_REQUEST_KEY = 279 + SYS_KEYCTL = 280 + SYS_WAITID = 281 + SYS_IOPRIO_SET = 282 + SYS_IOPRIO_GET = 283 + SYS_INOTIFY_INIT = 284 + SYS_INOTIFY_ADD_WATCH = 285 + SYS_INOTIFY_RM_WATCH = 286 + SYS_MIGRATE_PAGES = 287 + SYS_OPENAT = 288 + SYS_MKDIRAT = 289 + SYS_MKNODAT = 290 + SYS_FCHOWNAT = 291 + SYS_FUTIMESAT = 292 + SYS_NEWFSTATAT = 293 + SYS_UNLINKAT = 294 + SYS_RENAMEAT = 295 + SYS_LINKAT = 296 + SYS_SYMLINKAT = 297 + SYS_READLINKAT = 298 + SYS_FCHMODAT = 299 + SYS_FACCESSAT = 300 + SYS_PSELECT6 = 301 + SYS_PPOLL = 302 + SYS_UNSHARE = 303 + SYS_SET_ROBUST_LIST = 304 + SYS_GET_ROBUST_LIST = 305 + SYS_SPLICE = 306 + SYS_SYNC_FILE_RANGE = 307 + SYS_TEE = 308 + SYS_VMSPLICE = 309 + SYS_MOVE_PAGES = 310 + SYS_GETCPU = 311 + SYS_EPOLL_PWAIT = 312 + SYS_UTIMES = 313 + SYS_FALLOCATE = 314 + SYS_UTIMENSAT = 315 + SYS_SIGNALFD = 316 + SYS_TIMERFD = 317 + SYS_EVENTFD = 318 + SYS_TIMERFD_CREATE = 319 + SYS_TIMERFD_SETTIME = 320 + SYS_TIMERFD_GETTIME = 321 + SYS_SIGNALFD4 = 322 + SYS_EVENTFD2 = 323 + SYS_INOTIFY_INIT1 = 324 + SYS_PIPE2 = 325 + SYS_DUP3 = 326 + SYS_EPOLL_CREATE1 = 327 + SYS_PREADV = 328 + SYS_PWRITEV = 329 + SYS_RT_TGSIGQUEUEINFO = 330 + SYS_PERF_EVENT_OPEN = 331 + SYS_FANOTIFY_INIT = 332 + SYS_FANOTIFY_MARK = 333 + SYS_PRLIMIT64 = 334 + SYS_NAME_TO_HANDLE_AT = 335 + SYS_OPEN_BY_HANDLE_AT = 336 + SYS_CLOCK_ADJTIME = 337 + SYS_SYNCFS = 338 + SYS_SETNS = 339 + SYS_PROCESS_VM_READV = 340 + SYS_PROCESS_VM_WRITEV = 341 + SYS_S390_RUNTIME_INSTR = 342 + SYS_KCMP = 343 + SYS_FINIT_MODULE = 344 + SYS_SCHED_SETATTR = 345 + SYS_SCHED_GETATTR = 346 + SYS_RENAMEAT2 = 347 + SYS_SECCOMP = 348 + SYS_GETRANDOM = 349 + SYS_MEMFD_CREATE = 350 + SYS_BPF = 351 + SYS_S390_PCI_MMIO_WRITE = 352 + SYS_S390_PCI_MMIO_READ = 353 + SYS_EXECVEAT = 354 + SYS_USERFAULTFD = 355 + SYS_MEMBARRIER = 356 + SYS_RECVMMSG = 357 + SYS_SENDMMSG = 358 + SYS_SOCKET = 359 + SYS_SOCKETPAIR = 360 + SYS_BIND = 361 + SYS_CONNECT = 362 + SYS_LISTEN = 363 + SYS_ACCEPT4 = 364 + SYS_GETSOCKOPT = 365 + SYS_SETSOCKOPT = 366 + SYS_GETSOCKNAME = 367 + SYS_GETPEERNAME = 368 + SYS_SENDTO = 369 + SYS_SENDMSG = 370 + SYS_RECVFROM = 371 + SYS_RECVMSG = 372 + SYS_SHUTDOWN = 373 + SYS_MLOCK2 = 374 + SYS_COPY_FILE_RANGE = 375 + SYS_PREADV2 = 376 + SYS_PWRITEV2 = 377 + SYS_S390_GUARDED_STORAGE = 378 + SYS_STATX = 379 + SYS_S390_STHYI = 380 + SYS_KEXEC_FILE_LOAD = 381 + SYS_IO_PGETEVENTS = 382 + SYS_RSEQ = 383 + SYS_PKEY_MPROTECT = 384 + SYS_PKEY_ALLOC = 385 + SYS_PKEY_FREE = 386 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLONE3 = 435 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go new file mode 100644 index 0000000000..92f628ef4f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go @@ -0,0 +1,392 @@ +// go run linux/mksysnum.go -Wall -Werror -static -I/tmp/sparc64/include /tmp/sparc64/include/asm/unistd.h +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build sparc64 && linux +// +build sparc64,linux + +package unix + +const ( + SYS_RESTART_SYSCALL = 0 + SYS_EXIT = 1 + SYS_FORK = 2 + SYS_READ = 3 + SYS_WRITE = 4 + SYS_OPEN = 5 + SYS_CLOSE = 6 + SYS_WAIT4 = 7 + SYS_CREAT = 8 + SYS_LINK = 9 + SYS_UNLINK = 10 + SYS_EXECV = 11 + SYS_CHDIR = 12 + SYS_CHOWN = 13 + SYS_MKNOD = 14 + SYS_CHMOD = 15 + SYS_LCHOWN = 16 + SYS_BRK = 17 + SYS_PERFCTR = 18 + SYS_LSEEK = 19 + SYS_GETPID = 20 + SYS_CAPGET = 21 + SYS_CAPSET = 22 + SYS_SETUID = 23 + SYS_GETUID = 24 + SYS_VMSPLICE = 25 + SYS_PTRACE = 26 + SYS_ALARM = 27 + SYS_SIGALTSTACK = 28 + SYS_PAUSE = 29 + SYS_UTIME = 30 + SYS_ACCESS = 33 + SYS_NICE = 34 + SYS_SYNC = 36 + SYS_KILL = 37 + SYS_STAT = 38 + SYS_SENDFILE = 39 + SYS_LSTAT = 40 + SYS_DUP = 41 + SYS_PIPE = 42 + SYS_TIMES = 43 + SYS_UMOUNT2 = 45 + SYS_SETGID = 46 + SYS_GETGID = 47 + SYS_SIGNAL = 48 + SYS_GETEUID = 49 + SYS_GETEGID = 50 + SYS_ACCT = 51 + SYS_MEMORY_ORDERING = 52 + SYS_IOCTL = 54 + SYS_REBOOT = 55 + SYS_SYMLINK = 57 + SYS_READLINK = 58 + SYS_EXECVE = 59 + SYS_UMASK = 60 + SYS_CHROOT = 61 + SYS_FSTAT = 62 + SYS_FSTAT64 = 63 + SYS_GETPAGESIZE = 64 + SYS_MSYNC = 65 + SYS_VFORK = 66 + SYS_PREAD64 = 67 + SYS_PWRITE64 = 68 + SYS_MMAP = 71 + SYS_MUNMAP = 73 + SYS_MPROTECT = 74 + SYS_MADVISE = 75 + SYS_VHANGUP = 76 + SYS_MINCORE = 78 + SYS_GETGROUPS = 79 + SYS_SETGROUPS = 80 + SYS_GETPGRP = 81 + SYS_SETITIMER = 83 + SYS_SWAPON = 85 + SYS_GETITIMER = 86 + SYS_SETHOSTNAME = 88 + SYS_DUP2 = 90 + SYS_FCNTL = 92 + SYS_SELECT = 93 + SYS_FSYNC = 95 + SYS_SETPRIORITY = 96 + SYS_SOCKET = 97 + SYS_CONNECT = 98 + SYS_ACCEPT = 99 + SYS_GETPRIORITY = 100 + SYS_RT_SIGRETURN = 101 + SYS_RT_SIGACTION = 102 + SYS_RT_SIGPROCMASK = 103 + SYS_RT_SIGPENDING = 104 + SYS_RT_SIGTIMEDWAIT = 105 + SYS_RT_SIGQUEUEINFO = 106 + SYS_RT_SIGSUSPEND = 107 + SYS_SETRESUID = 108 + SYS_GETRESUID = 109 + SYS_SETRESGID = 110 + SYS_GETRESGID = 111 + SYS_RECVMSG = 113 + SYS_SENDMSG = 114 + SYS_GETTIMEOFDAY = 116 + SYS_GETRUSAGE = 117 + SYS_GETSOCKOPT = 118 + SYS_GETCWD = 119 + SYS_READV = 120 + SYS_WRITEV = 121 + SYS_SETTIMEOFDAY = 122 + SYS_FCHOWN = 123 + SYS_FCHMOD = 124 + SYS_RECVFROM = 125 + SYS_SETREUID = 126 + SYS_SETREGID = 127 + SYS_RENAME = 128 + SYS_TRUNCATE = 129 + SYS_FTRUNCATE = 130 + SYS_FLOCK = 131 + SYS_LSTAT64 = 132 + SYS_SENDTO = 133 + SYS_SHUTDOWN = 134 + SYS_SOCKETPAIR = 135 + SYS_MKDIR = 136 + SYS_RMDIR = 137 + SYS_UTIMES = 138 + SYS_STAT64 = 139 + SYS_SENDFILE64 = 140 + SYS_GETPEERNAME = 141 + SYS_FUTEX = 142 + SYS_GETTID = 143 + SYS_GETRLIMIT = 144 + SYS_SETRLIMIT = 145 + SYS_PIVOT_ROOT = 146 + SYS_PRCTL = 147 + SYS_PCICONFIG_READ = 148 + SYS_PCICONFIG_WRITE = 149 + SYS_GETSOCKNAME = 150 + SYS_INOTIFY_INIT = 151 + SYS_INOTIFY_ADD_WATCH = 152 + SYS_POLL = 153 + SYS_GETDENTS64 = 154 + SYS_INOTIFY_RM_WATCH = 156 + SYS_STATFS = 157 + SYS_FSTATFS = 158 + SYS_UMOUNT = 159 + SYS_SCHED_SET_AFFINITY = 160 + SYS_SCHED_GET_AFFINITY = 161 + SYS_GETDOMAINNAME = 162 + SYS_SETDOMAINNAME = 163 + SYS_UTRAP_INSTALL = 164 + SYS_QUOTACTL = 165 + SYS_SET_TID_ADDRESS = 166 + SYS_MOUNT = 167 + SYS_USTAT = 168 + SYS_SETXATTR = 169 + SYS_LSETXATTR = 170 + SYS_FSETXATTR = 171 + SYS_GETXATTR = 172 + SYS_LGETXATTR = 173 + SYS_GETDENTS = 174 + SYS_SETSID = 175 + SYS_FCHDIR = 176 + SYS_FGETXATTR = 177 + SYS_LISTXATTR = 178 + SYS_LLISTXATTR = 179 + SYS_FLISTXATTR = 180 + SYS_REMOVEXATTR = 181 + SYS_LREMOVEXATTR = 182 + SYS_SIGPENDING = 183 + SYS_QUERY_MODULE = 184 + SYS_SETPGID = 185 + SYS_FREMOVEXATTR = 186 + SYS_TKILL = 187 + SYS_EXIT_GROUP = 188 + SYS_UNAME = 189 + SYS_INIT_MODULE = 190 + SYS_PERSONALITY = 191 + SYS_REMAP_FILE_PAGES = 192 + SYS_EPOLL_CREATE = 193 + SYS_EPOLL_CTL = 194 + SYS_EPOLL_WAIT = 195 + SYS_IOPRIO_SET = 196 + SYS_GETPPID = 197 + SYS_SIGACTION = 198 + SYS_SGETMASK = 199 + SYS_SSETMASK = 200 + SYS_SIGSUSPEND = 201 + SYS_OLDLSTAT = 202 + SYS_USELIB = 203 + SYS_READDIR = 204 + SYS_READAHEAD = 205 + SYS_SOCKETCALL = 206 + SYS_SYSLOG = 207 + SYS_LOOKUP_DCOOKIE = 208 + SYS_FADVISE64 = 209 + SYS_FADVISE64_64 = 210 + SYS_TGKILL = 211 + SYS_WAITPID = 212 + SYS_SWAPOFF = 213 + SYS_SYSINFO = 214 + SYS_IPC = 215 + SYS_SIGRETURN = 216 + SYS_CLONE = 217 + SYS_IOPRIO_GET = 218 + SYS_ADJTIMEX = 219 + SYS_SIGPROCMASK = 220 + SYS_CREATE_MODULE = 221 + SYS_DELETE_MODULE = 222 + SYS_GET_KERNEL_SYMS = 223 + SYS_GETPGID = 224 + SYS_BDFLUSH = 225 + SYS_SYSFS = 226 + SYS_AFS_SYSCALL = 227 + SYS_SETFSUID = 228 + SYS_SETFSGID = 229 + SYS__NEWSELECT = 230 + SYS_SPLICE = 232 + SYS_STIME = 233 + SYS_STATFS64 = 234 + SYS_FSTATFS64 = 235 + SYS__LLSEEK = 236 + SYS_MLOCK = 237 + SYS_MUNLOCK = 238 + SYS_MLOCKALL = 239 + SYS_MUNLOCKALL = 240 + SYS_SCHED_SETPARAM = 241 + SYS_SCHED_GETPARAM = 242 + SYS_SCHED_SETSCHEDULER = 243 + SYS_SCHED_GETSCHEDULER = 244 + SYS_SCHED_YIELD = 245 + SYS_SCHED_GET_PRIORITY_MAX = 246 + SYS_SCHED_GET_PRIORITY_MIN = 247 + SYS_SCHED_RR_GET_INTERVAL = 248 + SYS_NANOSLEEP = 249 + SYS_MREMAP = 250 + SYS__SYSCTL = 251 + SYS_GETSID = 252 + SYS_FDATASYNC = 253 + SYS_NFSSERVCTL = 254 + SYS_SYNC_FILE_RANGE = 255 + SYS_CLOCK_SETTIME = 256 + SYS_CLOCK_GETTIME = 257 + SYS_CLOCK_GETRES = 258 + SYS_CLOCK_NANOSLEEP = 259 + SYS_SCHED_GETAFFINITY = 260 + SYS_SCHED_SETAFFINITY = 261 + SYS_TIMER_SETTIME = 262 + SYS_TIMER_GETTIME = 263 + SYS_TIMER_GETOVERRUN = 264 + SYS_TIMER_DELETE = 265 + SYS_TIMER_CREATE = 266 + SYS_VSERVER = 267 + SYS_IO_SETUP = 268 + SYS_IO_DESTROY = 269 + SYS_IO_SUBMIT = 270 + SYS_IO_CANCEL = 271 + SYS_IO_GETEVENTS = 272 + SYS_MQ_OPEN = 273 + SYS_MQ_UNLINK = 274 + SYS_MQ_TIMEDSEND = 275 + SYS_MQ_TIMEDRECEIVE = 276 + SYS_MQ_NOTIFY = 277 + SYS_MQ_GETSETATTR = 278 + SYS_WAITID = 279 + SYS_TEE = 280 + SYS_ADD_KEY = 281 + SYS_REQUEST_KEY = 282 + SYS_KEYCTL = 283 + SYS_OPENAT = 284 + SYS_MKDIRAT = 285 + SYS_MKNODAT = 286 + SYS_FCHOWNAT = 287 + SYS_FUTIMESAT = 288 + SYS_FSTATAT64 = 289 + SYS_UNLINKAT = 290 + SYS_RENAMEAT = 291 + SYS_LINKAT = 292 + SYS_SYMLINKAT = 293 + SYS_READLINKAT = 294 + SYS_FCHMODAT = 295 + SYS_FACCESSAT = 296 + SYS_PSELECT6 = 297 + SYS_PPOLL = 298 + SYS_UNSHARE = 299 + SYS_SET_ROBUST_LIST = 300 + SYS_GET_ROBUST_LIST = 301 + SYS_MIGRATE_PAGES = 302 + SYS_MBIND = 303 + SYS_GET_MEMPOLICY = 304 + SYS_SET_MEMPOLICY = 305 + SYS_KEXEC_LOAD = 306 + SYS_MOVE_PAGES = 307 + SYS_GETCPU = 308 + SYS_EPOLL_PWAIT = 309 + SYS_UTIMENSAT = 310 + SYS_SIGNALFD = 311 + SYS_TIMERFD_CREATE = 312 + SYS_EVENTFD = 313 + SYS_FALLOCATE = 314 + SYS_TIMERFD_SETTIME = 315 + SYS_TIMERFD_GETTIME = 316 + SYS_SIGNALFD4 = 317 + SYS_EVENTFD2 = 318 + SYS_EPOLL_CREATE1 = 319 + SYS_DUP3 = 320 + SYS_PIPE2 = 321 + SYS_INOTIFY_INIT1 = 322 + SYS_ACCEPT4 = 323 + SYS_PREADV = 324 + SYS_PWRITEV = 325 + SYS_RT_TGSIGQUEUEINFO = 326 + SYS_PERF_EVENT_OPEN = 327 + SYS_RECVMMSG = 328 + SYS_FANOTIFY_INIT = 329 + SYS_FANOTIFY_MARK = 330 + SYS_PRLIMIT64 = 331 + SYS_NAME_TO_HANDLE_AT = 332 + SYS_OPEN_BY_HANDLE_AT = 333 + SYS_CLOCK_ADJTIME = 334 + SYS_SYNCFS = 335 + SYS_SENDMMSG = 336 + SYS_SETNS = 337 + SYS_PROCESS_VM_READV = 338 + SYS_PROCESS_VM_WRITEV = 339 + SYS_KERN_FEATURES = 340 + SYS_KCMP = 341 + SYS_FINIT_MODULE = 342 + SYS_SCHED_SETATTR = 343 + SYS_SCHED_GETATTR = 344 + SYS_RENAMEAT2 = 345 + SYS_SECCOMP = 346 + SYS_GETRANDOM = 347 + SYS_MEMFD_CREATE = 348 + SYS_BPF = 349 + SYS_EXECVEAT = 350 + SYS_MEMBARRIER = 351 + SYS_USERFAULTFD = 352 + SYS_BIND = 353 + SYS_LISTEN = 354 + SYS_SETSOCKOPT = 355 + SYS_MLOCK2 = 356 + SYS_COPY_FILE_RANGE = 357 + SYS_PREADV2 = 358 + SYS_PWRITEV2 = 359 + SYS_STATX = 360 + SYS_IO_PGETEVENTS = 361 + SYS_PKEY_MPROTECT = 362 + SYS_PKEY_ALLOC = 363 + SYS_PKEY_FREE = 364 + SYS_RSEQ = 365 + SYS_SEMTIMEDOP = 392 + SYS_SEMGET = 393 + SYS_SEMCTL = 394 + SYS_SHMGET = 395 + SYS_SHMCTL = 396 + SYS_SHMAT = 397 + SYS_SHMDT = 398 + SYS_MSGGET = 399 + SYS_MSGSND = 400 + SYS_MSGRCV = 401 + SYS_MSGCTL = 402 + SYS_PIDFD_SEND_SIGNAL = 424 + SYS_IO_URING_SETUP = 425 + SYS_IO_URING_ENTER = 426 + SYS_IO_URING_REGISTER = 427 + SYS_OPEN_TREE = 428 + SYS_MOVE_MOUNT = 429 + SYS_FSOPEN = 430 + SYS_FSCONFIG = 431 + SYS_FSMOUNT = 432 + SYS_FSPICK = 433 + SYS_PIDFD_OPEN = 434 + SYS_CLOSE_RANGE = 436 + SYS_OPENAT2 = 437 + SYS_PIDFD_GETFD = 438 + SYS_FACCESSAT2 = 439 + SYS_PROCESS_MADVISE = 440 + SYS_EPOLL_PWAIT2 = 441 + SYS_MOUNT_SETATTR = 442 + SYS_QUOTACTL_FD = 443 + SYS_LANDLOCK_CREATE_RULESET = 444 + SYS_LANDLOCK_ADD_RULE = 445 + SYS_LANDLOCK_RESTRICT_SELF = 446 + SYS_PROCESS_MRELEASE = 448 + SYS_FUTEX_WAITV = 449 + SYS_SET_MEMPOLICY_HOME_NODE = 450 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go new file mode 100644 index 0000000000..3a6699eba9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go @@ -0,0 +1,275 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && netbsd +// +build 386,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go new file mode 100644 index 0000000000..5677cd4f15 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go @@ -0,0 +1,275 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && netbsd +// +build amd64,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go new file mode 100644 index 0000000000..e784cb6db1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go @@ -0,0 +1,275 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && netbsd +// +build arm,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go new file mode 100644 index 0000000000..bd4952efa5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go @@ -0,0 +1,275 @@ +// go run mksysnum.go http://cvsweb.netbsd.org/bsdweb.cgi/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; DO NOT EDIT. + +//go:build arm64 && netbsd +// +build arm64,netbsd + +package unix + +const ( + SYS_EXIT = 1 // { void|sys||exit(int rval); } + SYS_FORK = 2 // { int|sys||fork(void); } + SYS_READ = 3 // { ssize_t|sys||read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t|sys||write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int|sys||open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int|sys||close(int fd); } + SYS_LINK = 9 // { int|sys||link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int|sys||unlink(const char *path); } + SYS_CHDIR = 12 // { int|sys||chdir(const char *path); } + SYS_FCHDIR = 13 // { int|sys||fchdir(int fd); } + SYS_CHMOD = 15 // { int|sys||chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int|sys||chown(const char *path, uid_t uid, gid_t gid); } + SYS_BREAK = 17 // { int|sys||obreak(char *nsize); } + SYS_GETPID = 20 // { pid_t|sys||getpid_with_ppid(void); } + SYS_UNMOUNT = 22 // { int|sys||unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int|sys||setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t|sys||getuid_with_euid(void); } + SYS_GETEUID = 25 // { uid_t|sys||geteuid(void); } + SYS_PTRACE = 26 // { int|sys||ptrace(int req, pid_t pid, void *addr, int data); } + SYS_RECVMSG = 27 // { ssize_t|sys||recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t|sys||sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t|sys||recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int|sys||accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int|sys||getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int|sys||getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int|sys||access(const char *path, int flags); } + SYS_CHFLAGS = 34 // { int|sys||chflags(const char *path, u_long flags); } + SYS_FCHFLAGS = 35 // { int|sys||fchflags(int fd, u_long flags); } + SYS_SYNC = 36 // { void|sys||sync(void); } + SYS_KILL = 37 // { int|sys||kill(pid_t pid, int signum); } + SYS_GETPPID = 39 // { pid_t|sys||getppid(void); } + SYS_DUP = 41 // { int|sys||dup(int fd); } + SYS_PIPE = 42 // { int|sys||pipe(void); } + SYS_GETEGID = 43 // { gid_t|sys||getegid(void); } + SYS_PROFIL = 44 // { int|sys||profil(char *samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int|sys||ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_GETGID = 47 // { gid_t|sys||getgid_with_egid(void); } + SYS___GETLOGIN = 49 // { int|sys||__getlogin(char *namebuf, size_t namelen); } + SYS___SETLOGIN = 50 // { int|sys||__setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int|sys||acct(const char *path); } + SYS_IOCTL = 54 // { int|sys||ioctl(int fd, u_long com, ... void *data); } + SYS_REVOKE = 56 // { int|sys||revoke(const char *path); } + SYS_SYMLINK = 57 // { int|sys||symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t|sys||readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int|sys||execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t|sys||umask(mode_t newmask); } + SYS_CHROOT = 61 // { int|sys||chroot(const char *path); } + SYS_VFORK = 66 // { int|sys||vfork(void); } + SYS_SBRK = 69 // { int|sys||sbrk(intptr_t incr); } + SYS_SSTK = 70 // { int|sys||sstk(int incr); } + SYS_VADVISE = 72 // { int|sys||ovadvise(int anom); } + SYS_MUNMAP = 73 // { int|sys||munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int|sys||mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int|sys||madvise(void *addr, size_t len, int behav); } + SYS_MINCORE = 78 // { int|sys||mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int|sys||getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int|sys||setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int|sys||getpgrp(void); } + SYS_SETPGID = 82 // { int|sys||setpgid(pid_t pid, pid_t pgid); } + SYS_DUP2 = 90 // { int|sys||dup2(int from, int to); } + SYS_FCNTL = 92 // { int|sys||fcntl(int fd, int cmd, ... void *arg); } + SYS_FSYNC = 95 // { int|sys||fsync(int fd); } + SYS_SETPRIORITY = 96 // { int|sys||setpriority(int which, id_t who, int prio); } + SYS_CONNECT = 98 // { int|sys||connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETPRIORITY = 100 // { int|sys||getpriority(int which, id_t who); } + SYS_BIND = 104 // { int|sys||bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int|sys||setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int|sys||listen(int s, int backlog); } + SYS_GETSOCKOPT = 118 // { int|sys||getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_READV = 120 // { ssize_t|sys||readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t|sys||writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_FCHOWN = 123 // { int|sys||fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int|sys||fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int|sys||setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int|sys||setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int|sys||rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int|sys||flock(int fd, int how); } + SYS_MKFIFO = 132 // { int|sys||mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t|sys||sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int|sys||shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int|sys||socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int|sys||mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int|sys||rmdir(const char *path); } + SYS_SETSID = 147 // { int|sys||setsid(void); } + SYS_SYSARCH = 165 // { int|sys||sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t|sys||pread(int fd, void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_PWRITE = 174 // { ssize_t|sys||pwrite(int fd, const void *buf, size_t nbyte, int PAD, off_t offset); } + SYS_NTP_ADJTIME = 176 // { int|sys||ntp_adjtime(struct timex *tp); } + SYS_SETGID = 181 // { int|sys||setgid(gid_t gid); } + SYS_SETEGID = 182 // { int|sys||setegid(gid_t egid); } + SYS_SETEUID = 183 // { int|sys||seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long|sys||pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long|sys||fpathconf(int fd, int name); } + SYS_GETRLIMIT = 194 // { int|sys||getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int|sys||setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *|sys||mmap(void *addr, size_t len, int prot, int flags, int fd, long PAD, off_t pos); } + SYS_LSEEK = 199 // { off_t|sys||lseek(int fd, int PAD, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int|sys||truncate(const char *path, int PAD, off_t length); } + SYS_FTRUNCATE = 201 // { int|sys||ftruncate(int fd, int PAD, off_t length); } + SYS___SYSCTL = 202 // { int|sys||__sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, const void *new, size_t newlen); } + SYS_MLOCK = 203 // { int|sys||mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int|sys||munlock(const void *addr, size_t len); } + SYS_UNDELETE = 205 // { int|sys||undelete(const char *path); } + SYS_GETPGID = 207 // { pid_t|sys||getpgid(pid_t pid); } + SYS_REBOOT = 208 // { int|sys||reboot(int opt, char *bootstr); } + SYS_POLL = 209 // { int|sys||poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_SEMGET = 221 // { int|sys||semget(key_t key, int nsems, int semflg); } + SYS_SEMOP = 222 // { int|sys||semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_SEMCONFIG = 223 // { int|sys||semconfig(int flag); } + SYS_MSGGET = 225 // { int|sys||msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int|sys||msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { ssize_t|sys||msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *|sys||shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int|sys||shmdt(const void *shmaddr); } + SYS_SHMGET = 231 // { int|sys||shmget(key_t key, size_t size, int shmflg); } + SYS_TIMER_CREATE = 235 // { int|sys||timer_create(clockid_t clock_id, struct sigevent *evp, timer_t *timerid); } + SYS_TIMER_DELETE = 236 // { int|sys||timer_delete(timer_t timerid); } + SYS_TIMER_GETOVERRUN = 239 // { int|sys||timer_getoverrun(timer_t timerid); } + SYS_FDATASYNC = 241 // { int|sys||fdatasync(int fd); } + SYS_MLOCKALL = 242 // { int|sys||mlockall(int flags); } + SYS_MUNLOCKALL = 243 // { int|sys||munlockall(void); } + SYS_SIGQUEUEINFO = 245 // { int|sys||sigqueueinfo(pid_t pid, const siginfo_t *info); } + SYS_MODCTL = 246 // { int|sys||modctl(int cmd, void *arg); } + SYS___POSIX_RENAME = 270 // { int|sys||__posix_rename(const char *from, const char *to); } + SYS_SWAPCTL = 271 // { int|sys||swapctl(int cmd, void *arg, int misc); } + SYS_MINHERIT = 273 // { int|sys||minherit(void *addr, size_t len, int inherit); } + SYS_LCHMOD = 274 // { int|sys||lchmod(const char *path, mode_t mode); } + SYS_LCHOWN = 275 // { int|sys||lchown(const char *path, uid_t uid, gid_t gid); } + SYS_MSYNC = 277 // { int|sys|13|msync(void *addr, size_t len, int flags); } + SYS___POSIX_CHOWN = 283 // { int|sys||__posix_chown(const char *path, uid_t uid, gid_t gid); } + SYS___POSIX_FCHOWN = 284 // { int|sys||__posix_fchown(int fd, uid_t uid, gid_t gid); } + SYS___POSIX_LCHOWN = 285 // { int|sys||__posix_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 286 // { pid_t|sys||getsid(pid_t pid); } + SYS___CLONE = 287 // { pid_t|sys||__clone(int flags, void *stack); } + SYS_FKTRACE = 288 // { int|sys||fktrace(int fd, int ops, int facs, pid_t pid); } + SYS_PREADV = 289 // { ssize_t|sys||preadv(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS_PWRITEV = 290 // { ssize_t|sys||pwritev(int fd, const struct iovec *iovp, int iovcnt, int PAD, off_t offset); } + SYS___GETCWD = 296 // { int|sys||__getcwd(char *bufp, size_t length); } + SYS_FCHROOT = 297 // { int|sys||fchroot(int fd); } + SYS_LCHFLAGS = 304 // { int|sys||lchflags(const char *path, u_long flags); } + SYS_ISSETUGID = 305 // { int|sys||issetugid(void); } + SYS_UTRACE = 306 // { int|sys||utrace(const char *label, void *addr, size_t len); } + SYS_GETCONTEXT = 307 // { int|sys||getcontext(struct __ucontext *ucp); } + SYS_SETCONTEXT = 308 // { int|sys||setcontext(const struct __ucontext *ucp); } + SYS__LWP_CREATE = 309 // { int|sys||_lwp_create(const struct __ucontext *ucp, u_long flags, lwpid_t *new_lwp); } + SYS__LWP_EXIT = 310 // { int|sys||_lwp_exit(void); } + SYS__LWP_SELF = 311 // { lwpid_t|sys||_lwp_self(void); } + SYS__LWP_WAIT = 312 // { int|sys||_lwp_wait(lwpid_t wait_for, lwpid_t *departed); } + SYS__LWP_SUSPEND = 313 // { int|sys||_lwp_suspend(lwpid_t target); } + SYS__LWP_CONTINUE = 314 // { int|sys||_lwp_continue(lwpid_t target); } + SYS__LWP_WAKEUP = 315 // { int|sys||_lwp_wakeup(lwpid_t target); } + SYS__LWP_GETPRIVATE = 316 // { void *|sys||_lwp_getprivate(void); } + SYS__LWP_SETPRIVATE = 317 // { void|sys||_lwp_setprivate(void *ptr); } + SYS__LWP_KILL = 318 // { int|sys||_lwp_kill(lwpid_t target, int signo); } + SYS__LWP_DETACH = 319 // { int|sys||_lwp_detach(lwpid_t target); } + SYS__LWP_UNPARK = 321 // { int|sys||_lwp_unpark(lwpid_t target, const void *hint); } + SYS__LWP_UNPARK_ALL = 322 // { ssize_t|sys||_lwp_unpark_all(const lwpid_t *targets, size_t ntargets, const void *hint); } + SYS__LWP_SETNAME = 323 // { int|sys||_lwp_setname(lwpid_t target, const char *name); } + SYS__LWP_GETNAME = 324 // { int|sys||_lwp_getname(lwpid_t target, char *name, size_t len); } + SYS__LWP_CTL = 325 // { int|sys||_lwp_ctl(int features, struct lwpctl **address); } + SYS___SIGACTION_SIGTRAMP = 340 // { int|sys||__sigaction_sigtramp(int signum, const struct sigaction *nsa, struct sigaction *osa, const void *tramp, int vers); } + SYS_PMC_GET_INFO = 341 // { int|sys||pmc_get_info(int ctr, int op, void *args); } + SYS_PMC_CONTROL = 342 // { int|sys||pmc_control(int ctr, int op, void *args); } + SYS_RASCTL = 343 // { int|sys||rasctl(void *addr, size_t len, int op); } + SYS_KQUEUE = 344 // { int|sys||kqueue(void); } + SYS__SCHED_SETPARAM = 346 // { int|sys||_sched_setparam(pid_t pid, lwpid_t lid, int policy, const struct sched_param *params); } + SYS__SCHED_GETPARAM = 347 // { int|sys||_sched_getparam(pid_t pid, lwpid_t lid, int *policy, struct sched_param *params); } + SYS__SCHED_SETAFFINITY = 348 // { int|sys||_sched_setaffinity(pid_t pid, lwpid_t lid, size_t size, const cpuset_t *cpuset); } + SYS__SCHED_GETAFFINITY = 349 // { int|sys||_sched_getaffinity(pid_t pid, lwpid_t lid, size_t size, cpuset_t *cpuset); } + SYS_SCHED_YIELD = 350 // { int|sys||sched_yield(void); } + SYS_FSYNC_RANGE = 354 // { int|sys||fsync_range(int fd, int flags, off_t start, off_t length); } + SYS_UUIDGEN = 355 // { int|sys||uuidgen(struct uuid *store, int count); } + SYS_GETVFSSTAT = 356 // { int|sys||getvfsstat(struct statvfs *buf, size_t bufsize, int flags); } + SYS_STATVFS1 = 357 // { int|sys||statvfs1(const char *path, struct statvfs *buf, int flags); } + SYS_FSTATVFS1 = 358 // { int|sys||fstatvfs1(int fd, struct statvfs *buf, int flags); } + SYS_EXTATTRCTL = 360 // { int|sys||extattrctl(const char *path, int cmd, const char *filename, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FILE = 361 // { int|sys||extattr_set_file(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FILE = 362 // { ssize_t|sys||extattr_get_file(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FILE = 363 // { int|sys||extattr_delete_file(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_FD = 364 // { int|sys||extattr_set_fd(int fd, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_FD = 365 // { ssize_t|sys||extattr_get_fd(int fd, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_FD = 366 // { int|sys||extattr_delete_fd(int fd, int attrnamespace, const char *attrname); } + SYS_EXTATTR_SET_LINK = 367 // { int|sys||extattr_set_link(const char *path, int attrnamespace, const char *attrname, const void *data, size_t nbytes); } + SYS_EXTATTR_GET_LINK = 368 // { ssize_t|sys||extattr_get_link(const char *path, int attrnamespace, const char *attrname, void *data, size_t nbytes); } + SYS_EXTATTR_DELETE_LINK = 369 // { int|sys||extattr_delete_link(const char *path, int attrnamespace, const char *attrname); } + SYS_EXTATTR_LIST_FD = 370 // { ssize_t|sys||extattr_list_fd(int fd, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_FILE = 371 // { ssize_t|sys||extattr_list_file(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_EXTATTR_LIST_LINK = 372 // { ssize_t|sys||extattr_list_link(const char *path, int attrnamespace, void *data, size_t nbytes); } + SYS_SETXATTR = 375 // { int|sys||setxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_LSETXATTR = 376 // { int|sys||lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); } + SYS_FSETXATTR = 377 // { int|sys||fsetxattr(int fd, const char *name, const void *value, size_t size, int flags); } + SYS_GETXATTR = 378 // { int|sys||getxattr(const char *path, const char *name, void *value, size_t size); } + SYS_LGETXATTR = 379 // { int|sys||lgetxattr(const char *path, const char *name, void *value, size_t size); } + SYS_FGETXATTR = 380 // { int|sys||fgetxattr(int fd, const char *name, void *value, size_t size); } + SYS_LISTXATTR = 381 // { int|sys||listxattr(const char *path, char *list, size_t size); } + SYS_LLISTXATTR = 382 // { int|sys||llistxattr(const char *path, char *list, size_t size); } + SYS_FLISTXATTR = 383 // { int|sys||flistxattr(int fd, char *list, size_t size); } + SYS_REMOVEXATTR = 384 // { int|sys||removexattr(const char *path, const char *name); } + SYS_LREMOVEXATTR = 385 // { int|sys||lremovexattr(const char *path, const char *name); } + SYS_FREMOVEXATTR = 386 // { int|sys||fremovexattr(int fd, const char *name); } + SYS_GETDENTS = 390 // { int|sys|30|getdents(int fd, char *buf, size_t count); } + SYS_SOCKET = 394 // { int|sys|30|socket(int domain, int type, int protocol); } + SYS_GETFH = 395 // { int|sys|30|getfh(const char *fname, void *fhp, size_t *fh_size); } + SYS_MOUNT = 410 // { int|sys|50|mount(const char *type, const char *path, int flags, void *data, size_t data_len); } + SYS_MREMAP = 411 // { void *|sys||mremap(void *old_address, size_t old_size, void *new_address, size_t new_size, int flags); } + SYS_PSET_CREATE = 412 // { int|sys||pset_create(psetid_t *psid); } + SYS_PSET_DESTROY = 413 // { int|sys||pset_destroy(psetid_t psid); } + SYS_PSET_ASSIGN = 414 // { int|sys||pset_assign(psetid_t psid, cpuid_t cpuid, psetid_t *opsid); } + SYS__PSET_BIND = 415 // { int|sys||_pset_bind(idtype_t idtype, id_t first_id, id_t second_id, psetid_t psid, psetid_t *opsid); } + SYS_POSIX_FADVISE = 416 // { int|sys|50|posix_fadvise(int fd, int PAD, off_t offset, off_t len, int advice); } + SYS_SELECT = 417 // { int|sys|50|select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_GETTIMEOFDAY = 418 // { int|sys|50|gettimeofday(struct timeval *tp, void *tzp); } + SYS_SETTIMEOFDAY = 419 // { int|sys|50|settimeofday(const struct timeval *tv, const void *tzp); } + SYS_UTIMES = 420 // { int|sys|50|utimes(const char *path, const struct timeval *tptr); } + SYS_ADJTIME = 421 // { int|sys|50|adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_FUTIMES = 423 // { int|sys|50|futimes(int fd, const struct timeval *tptr); } + SYS_LUTIMES = 424 // { int|sys|50|lutimes(const char *path, const struct timeval *tptr); } + SYS_SETITIMER = 425 // { int|sys|50|setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 426 // { int|sys|50|getitimer(int which, struct itimerval *itv); } + SYS_CLOCK_GETTIME = 427 // { int|sys|50|clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 428 // { int|sys|50|clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 429 // { int|sys|50|clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_NANOSLEEP = 430 // { int|sys|50|nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS___SIGTIMEDWAIT = 431 // { int|sys|50|__sigtimedwait(const sigset_t *set, siginfo_t *info, struct timespec *timeout); } + SYS__LWP_PARK = 434 // { int|sys|50|_lwp_park(const struct timespec *ts, lwpid_t unpark, const void *hint, const void *unparkhint); } + SYS_KEVENT = 435 // { int|sys|50|kevent(int fd, const struct kevent *changelist, size_t nchanges, struct kevent *eventlist, size_t nevents, const struct timespec *timeout); } + SYS_PSELECT = 436 // { int|sys|50|pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_POLLTS = 437 // { int|sys|50|pollts(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_STAT = 439 // { int|sys|50|stat(const char *path, struct stat *ub); } + SYS_FSTAT = 440 // { int|sys|50|fstat(int fd, struct stat *sb); } + SYS_LSTAT = 441 // { int|sys|50|lstat(const char *path, struct stat *ub); } + SYS___SEMCTL = 442 // { int|sys|50|__semctl(int semid, int semnum, int cmd, ... union __semun *arg); } + SYS_SHMCTL = 443 // { int|sys|50|shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 444 // { int|sys|50|msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_GETRUSAGE = 445 // { int|sys|50|getrusage(int who, struct rusage *rusage); } + SYS_TIMER_SETTIME = 446 // { int|sys|50|timer_settime(timer_t timerid, int flags, const struct itimerspec *value, struct itimerspec *ovalue); } + SYS_TIMER_GETTIME = 447 // { int|sys|50|timer_gettime(timer_t timerid, struct itimerspec *value); } + SYS_NTP_GETTIME = 448 // { int|sys|50|ntp_gettime(struct ntptimeval *ntvp); } + SYS_WAIT4 = 449 // { int|sys|50|wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_MKNOD = 450 // { int|sys|50|mknod(const char *path, mode_t mode, dev_t dev); } + SYS_FHSTAT = 451 // { int|sys|50|fhstat(const void *fhp, size_t fh_size, struct stat *sb); } + SYS_PIPE2 = 453 // { int|sys||pipe2(int *fildes, int flags); } + SYS_DUP3 = 454 // { int|sys||dup3(int from, int to, int flags); } + SYS_KQUEUE1 = 455 // { int|sys||kqueue1(int flags); } + SYS_PACCEPT = 456 // { int|sys||paccept(int s, struct sockaddr *name, socklen_t *anamelen, const sigset_t *mask, int flags); } + SYS_LINKAT = 457 // { int|sys||linkat(int fd1, const char *name1, int fd2, const char *name2, int flags); } + SYS_RENAMEAT = 458 // { int|sys||renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_MKFIFOAT = 459 // { int|sys||mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 460 // { int|sys||mknodat(int fd, const char *path, mode_t mode, uint32_t dev); } + SYS_MKDIRAT = 461 // { int|sys||mkdirat(int fd, const char *path, mode_t mode); } + SYS_FACCESSAT = 462 // { int|sys||faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 463 // { int|sys||fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 464 // { int|sys||fchownat(int fd, const char *path, uid_t owner, gid_t group, int flag); } + SYS_FEXECVE = 465 // { int|sys||fexecve(int fd, char * const *argp, char * const *envp); } + SYS_FSTATAT = 466 // { int|sys||fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_UTIMENSAT = 467 // { int|sys||utimensat(int fd, const char *path, const struct timespec *tptr, int flag); } + SYS_OPENAT = 468 // { int|sys||openat(int fd, const char *path, int oflags, ... mode_t mode); } + SYS_READLINKAT = 469 // { int|sys||readlinkat(int fd, const char *path, char *buf, size_t bufsize); } + SYS_SYMLINKAT = 470 // { int|sys||symlinkat(const char *path1, int fd, const char *path2); } + SYS_UNLINKAT = 471 // { int|sys||unlinkat(int fd, const char *path, int flag); } + SYS_FUTIMENS = 472 // { int|sys||futimens(int fd, const struct timespec *tptr); } + SYS___QUOTACTL = 473 // { int|sys||__quotactl(const char *path, struct quotactl_args *args); } + SYS_POSIX_SPAWN = 474 // { int|sys||posix_spawn(pid_t *pid, const char *path, const struct posix_spawn_file_actions *file_actions, const struct posix_spawnattr *attrp, char *const *argv, char *const *envp); } + SYS_RECVMMSG = 475 // { int|sys||recvmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags, struct timespec *timeout); } + SYS_SENDMMSG = 476 // { int|sys||sendmmsg(int s, struct mmsghdr *mmsg, unsigned int vlen, unsigned int flags); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go new file mode 100644 index 0000000000..597733813e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go @@ -0,0 +1,220 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && openbsd +// +build 386,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go new file mode 100644 index 0000000000..16af291899 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go @@ -0,0 +1,220 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && openbsd +// +build amd64,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go new file mode 100644 index 0000000000..f59b18a977 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go @@ -0,0 +1,220 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && openbsd +// +build arm,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_MINCORE = 78 // { int sys_mincore(void *addr, size_t len, char *vec); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go new file mode 100644 index 0000000000..721ef59103 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go @@ -0,0 +1,219 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go new file mode 100644 index 0000000000..01c43a01fd --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go @@ -0,0 +1,222 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_MSYSCALL = 37 // { int sys_msyscall(void *addr, size_t len); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS___REALPATH = 115 // { int sys___realpath(const char *pathname, char *resolved); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS___TMPFD = 164 // { int sys___tmpfd(int flags); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go new file mode 100644 index 0000000000..f258cfa24e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go @@ -0,0 +1,218 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go new file mode 100644 index 0000000000..07919e0ecc --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go @@ -0,0 +1,219 @@ +// go run mksysnum.go https://cvsweb.openbsd.org/cgi-bin/cvsweb/~checkout~/src/sys/kern/syscalls.master +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +// Deprecated: Use libc wrappers instead of direct syscalls. +const ( + SYS_EXIT = 1 // { void sys_exit(int rval); } + SYS_FORK = 2 // { int sys_fork(void); } + SYS_READ = 3 // { ssize_t sys_read(int fd, void *buf, size_t nbyte); } + SYS_WRITE = 4 // { ssize_t sys_write(int fd, const void *buf, size_t nbyte); } + SYS_OPEN = 5 // { int sys_open(const char *path, int flags, ... mode_t mode); } + SYS_CLOSE = 6 // { int sys_close(int fd); } + SYS_GETENTROPY = 7 // { int sys_getentropy(void *buf, size_t nbyte); } + SYS___TFORK = 8 // { int sys___tfork(const struct __tfork *param, size_t psize); } + SYS_LINK = 9 // { int sys_link(const char *path, const char *link); } + SYS_UNLINK = 10 // { int sys_unlink(const char *path); } + SYS_WAIT4 = 11 // { pid_t sys_wait4(pid_t pid, int *status, int options, struct rusage *rusage); } + SYS_CHDIR = 12 // { int sys_chdir(const char *path); } + SYS_FCHDIR = 13 // { int sys_fchdir(int fd); } + SYS_MKNOD = 14 // { int sys_mknod(const char *path, mode_t mode, dev_t dev); } + SYS_CHMOD = 15 // { int sys_chmod(const char *path, mode_t mode); } + SYS_CHOWN = 16 // { int sys_chown(const char *path, uid_t uid, gid_t gid); } + SYS_OBREAK = 17 // { int sys_obreak(char *nsize); } break + SYS_GETDTABLECOUNT = 18 // { int sys_getdtablecount(void); } + SYS_GETRUSAGE = 19 // { int sys_getrusage(int who, struct rusage *rusage); } + SYS_GETPID = 20 // { pid_t sys_getpid(void); } + SYS_MOUNT = 21 // { int sys_mount(const char *type, const char *path, int flags, void *data); } + SYS_UNMOUNT = 22 // { int sys_unmount(const char *path, int flags); } + SYS_SETUID = 23 // { int sys_setuid(uid_t uid); } + SYS_GETUID = 24 // { uid_t sys_getuid(void); } + SYS_GETEUID = 25 // { uid_t sys_geteuid(void); } + SYS_PTRACE = 26 // { int sys_ptrace(int req, pid_t pid, caddr_t addr, int data); } + SYS_RECVMSG = 27 // { ssize_t sys_recvmsg(int s, struct msghdr *msg, int flags); } + SYS_SENDMSG = 28 // { ssize_t sys_sendmsg(int s, const struct msghdr *msg, int flags); } + SYS_RECVFROM = 29 // { ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlenaddr); } + SYS_ACCEPT = 30 // { int sys_accept(int s, struct sockaddr *name, socklen_t *anamelen); } + SYS_GETPEERNAME = 31 // { int sys_getpeername(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_GETSOCKNAME = 32 // { int sys_getsockname(int fdes, struct sockaddr *asa, socklen_t *alen); } + SYS_ACCESS = 33 // { int sys_access(const char *path, int amode); } + SYS_CHFLAGS = 34 // { int sys_chflags(const char *path, u_int flags); } + SYS_FCHFLAGS = 35 // { int sys_fchflags(int fd, u_int flags); } + SYS_SYNC = 36 // { void sys_sync(void); } + SYS_STAT = 38 // { int sys_stat(const char *path, struct stat *ub); } + SYS_GETPPID = 39 // { pid_t sys_getppid(void); } + SYS_LSTAT = 40 // { int sys_lstat(const char *path, struct stat *ub); } + SYS_DUP = 41 // { int sys_dup(int fd); } + SYS_FSTATAT = 42 // { int sys_fstatat(int fd, const char *path, struct stat *buf, int flag); } + SYS_GETEGID = 43 // { gid_t sys_getegid(void); } + SYS_PROFIL = 44 // { int sys_profil(caddr_t samples, size_t size, u_long offset, u_int scale); } + SYS_KTRACE = 45 // { int sys_ktrace(const char *fname, int ops, int facs, pid_t pid); } + SYS_SIGACTION = 46 // { int sys_sigaction(int signum, const struct sigaction *nsa, struct sigaction *osa); } + SYS_GETGID = 47 // { gid_t sys_getgid(void); } + SYS_SIGPROCMASK = 48 // { int sys_sigprocmask(int how, sigset_t mask); } + SYS_SETLOGIN = 50 // { int sys_setlogin(const char *namebuf); } + SYS_ACCT = 51 // { int sys_acct(const char *path); } + SYS_SIGPENDING = 52 // { int sys_sigpending(void); } + SYS_FSTAT = 53 // { int sys_fstat(int fd, struct stat *sb); } + SYS_IOCTL = 54 // { int sys_ioctl(int fd, u_long com, ... void *data); } + SYS_REBOOT = 55 // { int sys_reboot(int opt); } + SYS_REVOKE = 56 // { int sys_revoke(const char *path); } + SYS_SYMLINK = 57 // { int sys_symlink(const char *path, const char *link); } + SYS_READLINK = 58 // { ssize_t sys_readlink(const char *path, char *buf, size_t count); } + SYS_EXECVE = 59 // { int sys_execve(const char *path, char * const *argp, char * const *envp); } + SYS_UMASK = 60 // { mode_t sys_umask(mode_t newmask); } + SYS_CHROOT = 61 // { int sys_chroot(const char *path); } + SYS_GETFSSTAT = 62 // { int sys_getfsstat(struct statfs *buf, size_t bufsize, int flags); } + SYS_STATFS = 63 // { int sys_statfs(const char *path, struct statfs *buf); } + SYS_FSTATFS = 64 // { int sys_fstatfs(int fd, struct statfs *buf); } + SYS_FHSTATFS = 65 // { int sys_fhstatfs(const fhandle_t *fhp, struct statfs *buf); } + SYS_VFORK = 66 // { int sys_vfork(void); } + SYS_GETTIMEOFDAY = 67 // { int sys_gettimeofday(struct timeval *tp, struct timezone *tzp); } + SYS_SETTIMEOFDAY = 68 // { int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp); } + SYS_SETITIMER = 69 // { int sys_setitimer(int which, const struct itimerval *itv, struct itimerval *oitv); } + SYS_GETITIMER = 70 // { int sys_getitimer(int which, struct itimerval *itv); } + SYS_SELECT = 71 // { int sys_select(int nd, fd_set *in, fd_set *ou, fd_set *ex, struct timeval *tv); } + SYS_KEVENT = 72 // { int sys_kevent(int fd, const struct kevent *changelist, int nchanges, struct kevent *eventlist, int nevents, const struct timespec *timeout); } + SYS_MUNMAP = 73 // { int sys_munmap(void *addr, size_t len); } + SYS_MPROTECT = 74 // { int sys_mprotect(void *addr, size_t len, int prot); } + SYS_MADVISE = 75 // { int sys_madvise(void *addr, size_t len, int behav); } + SYS_UTIMES = 76 // { int sys_utimes(const char *path, const struct timeval *tptr); } + SYS_FUTIMES = 77 // { int sys_futimes(int fd, const struct timeval *tptr); } + SYS_GETGROUPS = 79 // { int sys_getgroups(int gidsetsize, gid_t *gidset); } + SYS_SETGROUPS = 80 // { int sys_setgroups(int gidsetsize, const gid_t *gidset); } + SYS_GETPGRP = 81 // { int sys_getpgrp(void); } + SYS_SETPGID = 82 // { int sys_setpgid(pid_t pid, pid_t pgid); } + SYS_FUTEX = 83 // { int sys_futex(uint32_t *f, int op, int val, const struct timespec *timeout, uint32_t *g); } + SYS_UTIMENSAT = 84 // { int sys_utimensat(int fd, const char *path, const struct timespec *times, int flag); } + SYS_FUTIMENS = 85 // { int sys_futimens(int fd, const struct timespec *times); } + SYS_KBIND = 86 // { int sys_kbind(const struct __kbind *param, size_t psize, int64_t proc_cookie); } + SYS_CLOCK_GETTIME = 87 // { int sys_clock_gettime(clockid_t clock_id, struct timespec *tp); } + SYS_CLOCK_SETTIME = 88 // { int sys_clock_settime(clockid_t clock_id, const struct timespec *tp); } + SYS_CLOCK_GETRES = 89 // { int sys_clock_getres(clockid_t clock_id, struct timespec *tp); } + SYS_DUP2 = 90 // { int sys_dup2(int from, int to); } + SYS_NANOSLEEP = 91 // { int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp); } + SYS_FCNTL = 92 // { int sys_fcntl(int fd, int cmd, ... void *arg); } + SYS_ACCEPT4 = 93 // { int sys_accept4(int s, struct sockaddr *name, socklen_t *anamelen, int flags); } + SYS___THRSLEEP = 94 // { int sys___thrsleep(const volatile void *ident, clockid_t clock_id, const struct timespec *tp, void *lock, const int *abort); } + SYS_FSYNC = 95 // { int sys_fsync(int fd); } + SYS_SETPRIORITY = 96 // { int sys_setpriority(int which, id_t who, int prio); } + SYS_SOCKET = 97 // { int sys_socket(int domain, int type, int protocol); } + SYS_CONNECT = 98 // { int sys_connect(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_GETDENTS = 99 // { int sys_getdents(int fd, void *buf, size_t buflen); } + SYS_GETPRIORITY = 100 // { int sys_getpriority(int which, id_t who); } + SYS_PIPE2 = 101 // { int sys_pipe2(int *fdp, int flags); } + SYS_DUP3 = 102 // { int sys_dup3(int from, int to, int flags); } + SYS_SIGRETURN = 103 // { int sys_sigreturn(struct sigcontext *sigcntxp); } + SYS_BIND = 104 // { int sys_bind(int s, const struct sockaddr *name, socklen_t namelen); } + SYS_SETSOCKOPT = 105 // { int sys_setsockopt(int s, int level, int name, const void *val, socklen_t valsize); } + SYS_LISTEN = 106 // { int sys_listen(int s, int backlog); } + SYS_CHFLAGSAT = 107 // { int sys_chflagsat(int fd, const char *path, u_int flags, int atflags); } + SYS_PLEDGE = 108 // { int sys_pledge(const char *promises, const char *execpromises); } + SYS_PPOLL = 109 // { int sys_ppoll(struct pollfd *fds, u_int nfds, const struct timespec *ts, const sigset_t *mask); } + SYS_PSELECT = 110 // { int sys_pselect(int nd, fd_set *in, fd_set *ou, fd_set *ex, const struct timespec *ts, const sigset_t *mask); } + SYS_SIGSUSPEND = 111 // { int sys_sigsuspend(int mask); } + SYS_SENDSYSLOG = 112 // { int sys_sendsyslog(const char *buf, size_t nbyte, int flags); } + SYS_UNVEIL = 114 // { int sys_unveil(const char *path, const char *permissions); } + SYS_GETSOCKOPT = 118 // { int sys_getsockopt(int s, int level, int name, void *val, socklen_t *avalsize); } + SYS_THRKILL = 119 // { int sys_thrkill(pid_t tid, int signum, void *tcb); } + SYS_READV = 120 // { ssize_t sys_readv(int fd, const struct iovec *iovp, int iovcnt); } + SYS_WRITEV = 121 // { ssize_t sys_writev(int fd, const struct iovec *iovp, int iovcnt); } + SYS_KILL = 122 // { int sys_kill(int pid, int signum); } + SYS_FCHOWN = 123 // { int sys_fchown(int fd, uid_t uid, gid_t gid); } + SYS_FCHMOD = 124 // { int sys_fchmod(int fd, mode_t mode); } + SYS_SETREUID = 126 // { int sys_setreuid(uid_t ruid, uid_t euid); } + SYS_SETREGID = 127 // { int sys_setregid(gid_t rgid, gid_t egid); } + SYS_RENAME = 128 // { int sys_rename(const char *from, const char *to); } + SYS_FLOCK = 131 // { int sys_flock(int fd, int how); } + SYS_MKFIFO = 132 // { int sys_mkfifo(const char *path, mode_t mode); } + SYS_SENDTO = 133 // { ssize_t sys_sendto(int s, const void *buf, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); } + SYS_SHUTDOWN = 134 // { int sys_shutdown(int s, int how); } + SYS_SOCKETPAIR = 135 // { int sys_socketpair(int domain, int type, int protocol, int *rsv); } + SYS_MKDIR = 136 // { int sys_mkdir(const char *path, mode_t mode); } + SYS_RMDIR = 137 // { int sys_rmdir(const char *path); } + SYS_ADJTIME = 140 // { int sys_adjtime(const struct timeval *delta, struct timeval *olddelta); } + SYS_GETLOGIN_R = 141 // { int sys_getlogin_r(char *namebuf, u_int namelen); } + SYS_SETSID = 147 // { int sys_setsid(void); } + SYS_QUOTACTL = 148 // { int sys_quotactl(const char *path, int cmd, int uid, char *arg); } + SYS_NFSSVC = 155 // { int sys_nfssvc(int flag, void *argp); } + SYS_GETFH = 161 // { int sys_getfh(const char *fname, fhandle_t *fhp); } + SYS_SYSARCH = 165 // { int sys_sysarch(int op, void *parms); } + SYS_PREAD = 173 // { ssize_t sys_pread(int fd, void *buf, size_t nbyte, int pad, off_t offset); } + SYS_PWRITE = 174 // { ssize_t sys_pwrite(int fd, const void *buf, size_t nbyte, int pad, off_t offset); } + SYS_SETGID = 181 // { int sys_setgid(gid_t gid); } + SYS_SETEGID = 182 // { int sys_setegid(gid_t egid); } + SYS_SETEUID = 183 // { int sys_seteuid(uid_t euid); } + SYS_PATHCONF = 191 // { long sys_pathconf(const char *path, int name); } + SYS_FPATHCONF = 192 // { long sys_fpathconf(int fd, int name); } + SYS_SWAPCTL = 193 // { int sys_swapctl(int cmd, const void *arg, int misc); } + SYS_GETRLIMIT = 194 // { int sys_getrlimit(int which, struct rlimit *rlp); } + SYS_SETRLIMIT = 195 // { int sys_setrlimit(int which, const struct rlimit *rlp); } + SYS_MMAP = 197 // { void *sys_mmap(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_LSEEK = 199 // { off_t sys_lseek(int fd, int pad, off_t offset, int whence); } + SYS_TRUNCATE = 200 // { int sys_truncate(const char *path, int pad, off_t length); } + SYS_FTRUNCATE = 201 // { int sys_ftruncate(int fd, int pad, off_t length); } + SYS_SYSCTL = 202 // { int sys_sysctl(const int *name, u_int namelen, void *old, size_t *oldlenp, void *new, size_t newlen); } + SYS_MLOCK = 203 // { int sys_mlock(const void *addr, size_t len); } + SYS_MUNLOCK = 204 // { int sys_munlock(const void *addr, size_t len); } + SYS_GETPGID = 207 // { pid_t sys_getpgid(pid_t pid); } + SYS_UTRACE = 209 // { int sys_utrace(const char *label, const void *addr, size_t len); } + SYS_SEMGET = 221 // { int sys_semget(key_t key, int nsems, int semflg); } + SYS_MSGGET = 225 // { int sys_msgget(key_t key, int msgflg); } + SYS_MSGSND = 226 // { int sys_msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg); } + SYS_MSGRCV = 227 // { int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg); } + SYS_SHMAT = 228 // { void *sys_shmat(int shmid, const void *shmaddr, int shmflg); } + SYS_SHMDT = 230 // { int sys_shmdt(const void *shmaddr); } + SYS_MINHERIT = 250 // { int sys_minherit(void *addr, size_t len, int inherit); } + SYS_POLL = 252 // { int sys_poll(struct pollfd *fds, u_int nfds, int timeout); } + SYS_ISSETUGID = 253 // { int sys_issetugid(void); } + SYS_LCHOWN = 254 // { int sys_lchown(const char *path, uid_t uid, gid_t gid); } + SYS_GETSID = 255 // { pid_t sys_getsid(pid_t pid); } + SYS_MSYNC = 256 // { int sys_msync(void *addr, size_t len, int flags); } + SYS_PIPE = 263 // { int sys_pipe(int *fdp); } + SYS_FHOPEN = 264 // { int sys_fhopen(const fhandle_t *fhp, int flags); } + SYS_PREADV = 267 // { ssize_t sys_preadv(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_PWRITEV = 268 // { ssize_t sys_pwritev(int fd, const struct iovec *iovp, int iovcnt, int pad, off_t offset); } + SYS_KQUEUE = 269 // { int sys_kqueue(void); } + SYS_MLOCKALL = 271 // { int sys_mlockall(int flags); } + SYS_MUNLOCKALL = 272 // { int sys_munlockall(void); } + SYS_GETRESUID = 281 // { int sys_getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); } + SYS_SETRESUID = 282 // { int sys_setresuid(uid_t ruid, uid_t euid, uid_t suid); } + SYS_GETRESGID = 283 // { int sys_getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); } + SYS_SETRESGID = 284 // { int sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid); } + SYS_MQUERY = 286 // { void *sys_mquery(void *addr, size_t len, int prot, int flags, int fd, long pad, off_t pos); } + SYS_CLOSEFROM = 287 // { int sys_closefrom(int fd); } + SYS_SIGALTSTACK = 288 // { int sys_sigaltstack(const struct sigaltstack *nss, struct sigaltstack *oss); } + SYS_SHMGET = 289 // { int sys_shmget(key_t key, size_t size, int shmflg); } + SYS_SEMOP = 290 // { int sys_semop(int semid, struct sembuf *sops, size_t nsops); } + SYS_FHSTAT = 294 // { int sys_fhstat(const fhandle_t *fhp, struct stat *sb); } + SYS___SEMCTL = 295 // { int sys___semctl(int semid, int semnum, int cmd, union semun *arg); } + SYS_SHMCTL = 296 // { int sys_shmctl(int shmid, int cmd, struct shmid_ds *buf); } + SYS_MSGCTL = 297 // { int sys_msgctl(int msqid, int cmd, struct msqid_ds *buf); } + SYS_SCHED_YIELD = 298 // { int sys_sched_yield(void); } + SYS_GETTHRID = 299 // { pid_t sys_getthrid(void); } + SYS___THRWAKEUP = 301 // { int sys___thrwakeup(const volatile void *ident, int n); } + SYS___THREXIT = 302 // { void sys___threxit(pid_t *notdead); } + SYS___THRSIGDIVERT = 303 // { int sys___thrsigdivert(sigset_t sigmask, siginfo_t *info, const struct timespec *timeout); } + SYS___GETCWD = 304 // { int sys___getcwd(char *buf, size_t len); } + SYS_ADJFREQ = 305 // { int sys_adjfreq(const int64_t *freq, int64_t *oldfreq); } + SYS_SETRTABLE = 310 // { int sys_setrtable(int rtableid); } + SYS_GETRTABLE = 311 // { int sys_getrtable(void); } + SYS_FACCESSAT = 313 // { int sys_faccessat(int fd, const char *path, int amode, int flag); } + SYS_FCHMODAT = 314 // { int sys_fchmodat(int fd, const char *path, mode_t mode, int flag); } + SYS_FCHOWNAT = 315 // { int sys_fchownat(int fd, const char *path, uid_t uid, gid_t gid, int flag); } + SYS_LINKAT = 317 // { int sys_linkat(int fd1, const char *path1, int fd2, const char *path2, int flag); } + SYS_MKDIRAT = 318 // { int sys_mkdirat(int fd, const char *path, mode_t mode); } + SYS_MKFIFOAT = 319 // { int sys_mkfifoat(int fd, const char *path, mode_t mode); } + SYS_MKNODAT = 320 // { int sys_mknodat(int fd, const char *path, mode_t mode, dev_t dev); } + SYS_OPENAT = 321 // { int sys_openat(int fd, const char *path, int flags, ... mode_t mode); } + SYS_READLINKAT = 322 // { ssize_t sys_readlinkat(int fd, const char *path, char *buf, size_t count); } + SYS_RENAMEAT = 323 // { int sys_renameat(int fromfd, const char *from, int tofd, const char *to); } + SYS_SYMLINKAT = 324 // { int sys_symlinkat(const char *path, int fd, const char *link); } + SYS_UNLINKAT = 325 // { int sys_unlinkat(int fd, const char *path, int flag); } + SYS___SET_TCB = 329 // { void sys___set_tcb(void *tcb); } + SYS___GET_TCB = 330 // { void *sys___get_tcb(void); } +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go new file mode 100644 index 0000000000..073daad43b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go @@ -0,0 +1,2670 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +package unix + +// TODO: auto-generate. + +const ( + SYS_ACOSD128 = 0xB80 + SYS_ACOSD32 = 0xB7E + SYS_ACOSD64 = 0xB7F + SYS_ACOSHD128 = 0xB83 + SYS_ACOSHD32 = 0xB81 + SYS_ACOSHD64 = 0xB82 + SYS_AIO_FSYNC = 0xC69 + SYS_ASCTIME = 0x0AE + SYS_ASCTIME64 = 0xCD7 + SYS_ASCTIME64_R = 0xCD8 + SYS_ASIND128 = 0xB86 + SYS_ASIND32 = 0xB84 + SYS_ASIND64 = 0xB85 + SYS_ASINHD128 = 0xB89 + SYS_ASINHD32 = 0xB87 + SYS_ASINHD64 = 0xB88 + SYS_ATAN2D128 = 0xB8F + SYS_ATAN2D32 = 0xB8D + SYS_ATAN2D64 = 0xB8E + SYS_ATAND128 = 0xB8C + SYS_ATAND32 = 0xB8A + SYS_ATAND64 = 0xB8B + SYS_ATANHD128 = 0xB92 + SYS_ATANHD32 = 0xB90 + SYS_ATANHD64 = 0xB91 + SYS_BIND2ADDRSEL = 0xD59 + SYS_C16RTOMB = 0xD40 + SYS_C32RTOMB = 0xD41 + SYS_CBRTD128 = 0xB95 + SYS_CBRTD32 = 0xB93 + SYS_CBRTD64 = 0xB94 + SYS_CEILD128 = 0xB98 + SYS_CEILD32 = 0xB96 + SYS_CEILD64 = 0xB97 + SYS_CLEARENV = 0x0C9 + SYS_CLEARERR_UNLOCKED = 0xCA1 + SYS_CLOCK = 0x0AA + SYS_CLOGL = 0xA00 + SYS_CLRMEMF = 0x0BD + SYS_CONJ = 0xA03 + SYS_CONJF = 0xA06 + SYS_CONJL = 0xA09 + SYS_COPYSIGND128 = 0xB9E + SYS_COPYSIGND32 = 0xB9C + SYS_COPYSIGND64 = 0xB9D + SYS_COSD128 = 0xBA1 + SYS_COSD32 = 0xB9F + SYS_COSD64 = 0xBA0 + SYS_COSHD128 = 0xBA4 + SYS_COSHD32 = 0xBA2 + SYS_COSHD64 = 0xBA3 + SYS_CPOW = 0xA0C + SYS_CPOWF = 0xA0F + SYS_CPOWL = 0xA12 + SYS_CPROJ = 0xA15 + SYS_CPROJF = 0xA18 + SYS_CPROJL = 0xA1B + SYS_CREAL = 0xA1E + SYS_CREALF = 0xA21 + SYS_CREALL = 0xA24 + SYS_CSIN = 0xA27 + SYS_CSINF = 0xA2A + SYS_CSINH = 0xA30 + SYS_CSINHF = 0xA33 + SYS_CSINHL = 0xA36 + SYS_CSINL = 0xA2D + SYS_CSNAP = 0x0C5 + SYS_CSQRT = 0xA39 + SYS_CSQRTF = 0xA3C + SYS_CSQRTL = 0xA3F + SYS_CTAN = 0xA42 + SYS_CTANF = 0xA45 + SYS_CTANH = 0xA4B + SYS_CTANHF = 0xA4E + SYS_CTANHL = 0xA51 + SYS_CTANL = 0xA48 + SYS_CTIME = 0x0AB + SYS_CTIME64 = 0xCD9 + SYS_CTIME64_R = 0xCDA + SYS_CTRACE = 0x0C6 + SYS_DIFFTIME = 0x0A7 + SYS_DIFFTIME64 = 0xCDB + SYS_DLADDR = 0xC82 + SYS_DYNALLOC = 0x0C3 + SYS_DYNFREE = 0x0C2 + SYS_ERFCD128 = 0xBAA + SYS_ERFCD32 = 0xBA8 + SYS_ERFCD64 = 0xBA9 + SYS_ERFD128 = 0xBA7 + SYS_ERFD32 = 0xBA5 + SYS_ERFD64 = 0xBA6 + SYS_EXP2D128 = 0xBB0 + SYS_EXP2D32 = 0xBAE + SYS_EXP2D64 = 0xBAF + SYS_EXPD128 = 0xBAD + SYS_EXPD32 = 0xBAB + SYS_EXPD64 = 0xBAC + SYS_EXPM1D128 = 0xBB3 + SYS_EXPM1D32 = 0xBB1 + SYS_EXPM1D64 = 0xBB2 + SYS_FABSD128 = 0xBB6 + SYS_FABSD32 = 0xBB4 + SYS_FABSD64 = 0xBB5 + SYS_FDELREC_UNLOCKED = 0xCA2 + SYS_FDIMD128 = 0xBB9 + SYS_FDIMD32 = 0xBB7 + SYS_FDIMD64 = 0xBB8 + SYS_FDOPEN_UNLOCKED = 0xCFC + SYS_FECLEAREXCEPT = 0xAEA + SYS_FEGETENV = 0xAEB + SYS_FEGETEXCEPTFLAG = 0xAEC + SYS_FEGETROUND = 0xAED + SYS_FEHOLDEXCEPT = 0xAEE + SYS_FEOF_UNLOCKED = 0xCA3 + SYS_FERAISEEXCEPT = 0xAEF + SYS_FERROR_UNLOCKED = 0xCA4 + SYS_FESETENV = 0xAF0 + SYS_FESETEXCEPTFLAG = 0xAF1 + SYS_FESETROUND = 0xAF2 + SYS_FETCHEP = 0x0BF + SYS_FETESTEXCEPT = 0xAF3 + SYS_FEUPDATEENV = 0xAF4 + SYS_FE_DEC_GETROUND = 0xBBA + SYS_FE_DEC_SETROUND = 0xBBB + SYS_FFLUSH_UNLOCKED = 0xCA5 + SYS_FGETC_UNLOCKED = 0xC80 + SYS_FGETPOS64 = 0xCEE + SYS_FGETPOS64_UNLOCKED = 0xCF4 + SYS_FGETPOS_UNLOCKED = 0xCA6 + SYS_FGETS_UNLOCKED = 0xC7C + SYS_FGETWC_UNLOCKED = 0xCA7 + SYS_FGETWS_UNLOCKED = 0xCA8 + SYS_FILENO_UNLOCKED = 0xCA9 + SYS_FLDATA = 0x0C1 + SYS_FLDATA_UNLOCKED = 0xCAA + SYS_FLOCATE_UNLOCKED = 0xCAB + SYS_FLOORD128 = 0xBBE + SYS_FLOORD32 = 0xBBC + SYS_FLOORD64 = 0xBBD + SYS_FMA = 0xA63 + SYS_FMAD128 = 0xBC1 + SYS_FMAD32 = 0xBBF + SYS_FMAD64 = 0xBC0 + SYS_FMAF = 0xA66 + SYS_FMAL = 0xA69 + SYS_FMAX = 0xA6C + SYS_FMAXD128 = 0xBC4 + SYS_FMAXD32 = 0xBC2 + SYS_FMAXD64 = 0xBC3 + SYS_FMAXF = 0xA6F + SYS_FMAXL = 0xA72 + SYS_FMIN = 0xA75 + SYS_FMIND128 = 0xBC7 + SYS_FMIND32 = 0xBC5 + SYS_FMIND64 = 0xBC6 + SYS_FMINF = 0xA78 + SYS_FMINL = 0xA7B + SYS_FMODD128 = 0xBCA + SYS_FMODD32 = 0xBC8 + SYS_FMODD64 = 0xBC9 + SYS_FOPEN64 = 0xD49 + SYS_FOPEN64_UNLOCKED = 0xD4A + SYS_FOPEN_UNLOCKED = 0xCFA + SYS_FPRINTF_UNLOCKED = 0xCAC + SYS_FPUTC_UNLOCKED = 0xC81 + SYS_FPUTS_UNLOCKED = 0xC7E + SYS_FPUTWC_UNLOCKED = 0xCAD + SYS_FPUTWS_UNLOCKED = 0xCAE + SYS_FREAD_NOUPDATE = 0xCEC + SYS_FREAD_NOUPDATE_UNLOCKED = 0xCED + SYS_FREAD_UNLOCKED = 0xC7B + SYS_FREEIFADDRS = 0xCE6 + SYS_FREOPEN64 = 0xD4B + SYS_FREOPEN64_UNLOCKED = 0xD4C + SYS_FREOPEN_UNLOCKED = 0xCFB + SYS_FREXPD128 = 0xBCE + SYS_FREXPD32 = 0xBCC + SYS_FREXPD64 = 0xBCD + SYS_FSCANF_UNLOCKED = 0xCAF + SYS_FSEEK64 = 0xCEF + SYS_FSEEK64_UNLOCKED = 0xCF5 + SYS_FSEEKO64 = 0xCF0 + SYS_FSEEKO64_UNLOCKED = 0xCF6 + SYS_FSEEKO_UNLOCKED = 0xCB1 + SYS_FSEEK_UNLOCKED = 0xCB0 + SYS_FSETPOS64 = 0xCF1 + SYS_FSETPOS64_UNLOCKED = 0xCF7 + SYS_FSETPOS_UNLOCKED = 0xCB3 + SYS_FTELL64 = 0xCF2 + SYS_FTELL64_UNLOCKED = 0xCF8 + SYS_FTELLO64 = 0xCF3 + SYS_FTELLO64_UNLOCKED = 0xCF9 + SYS_FTELLO_UNLOCKED = 0xCB5 + SYS_FTELL_UNLOCKED = 0xCB4 + SYS_FUPDATE = 0x0B5 + SYS_FUPDATE_UNLOCKED = 0xCB7 + SYS_FWIDE_UNLOCKED = 0xCB8 + SYS_FWPRINTF_UNLOCKED = 0xCB9 + SYS_FWRITE_UNLOCKED = 0xC7A + SYS_FWSCANF_UNLOCKED = 0xCBA + SYS_GETDATE64 = 0xD4F + SYS_GETIFADDRS = 0xCE7 + SYS_GETIPV4SOURCEFILTER = 0xC77 + SYS_GETSOURCEFILTER = 0xC79 + SYS_GETSYNTX = 0x0FD + SYS_GETS_UNLOCKED = 0xC7D + SYS_GETTIMEOFDAY64 = 0xD50 + SYS_GETWCHAR_UNLOCKED = 0xCBC + SYS_GETWC_UNLOCKED = 0xCBB + SYS_GMTIME = 0x0B0 + SYS_GMTIME64 = 0xCDC + SYS_GMTIME64_R = 0xCDD + SYS_HYPOTD128 = 0xBD1 + SYS_HYPOTD32 = 0xBCF + SYS_HYPOTD64 = 0xBD0 + SYS_ILOGBD128 = 0xBD4 + SYS_ILOGBD32 = 0xBD2 + SYS_ILOGBD64 = 0xBD3 + SYS_ILOGBF = 0xA7E + SYS_ILOGBL = 0xA81 + SYS_INET6_IS_SRCADDR = 0xD5A + SYS_ISBLANK = 0x0FE + SYS_ISWALNUM = 0x0FF + SYS_LDEXPD128 = 0xBD7 + SYS_LDEXPD32 = 0xBD5 + SYS_LDEXPD64 = 0xBD6 + SYS_LGAMMAD128 = 0xBDA + SYS_LGAMMAD32 = 0xBD8 + SYS_LGAMMAD64 = 0xBD9 + SYS_LIO_LISTIO = 0xC6A + SYS_LLRINT = 0xA84 + SYS_LLRINTD128 = 0xBDD + SYS_LLRINTD32 = 0xBDB + SYS_LLRINTD64 = 0xBDC + SYS_LLRINTF = 0xA87 + SYS_LLRINTL = 0xA8A + SYS_LLROUND = 0xA8D + SYS_LLROUNDD128 = 0xBE0 + SYS_LLROUNDD32 = 0xBDE + SYS_LLROUNDD64 = 0xBDF + SYS_LLROUNDF = 0xA90 + SYS_LLROUNDL = 0xA93 + SYS_LOCALTIM = 0x0B1 + SYS_LOCALTIME = 0x0B1 + SYS_LOCALTIME64 = 0xCDE + SYS_LOCALTIME64_R = 0xCDF + SYS_LOG10D128 = 0xBE6 + SYS_LOG10D32 = 0xBE4 + SYS_LOG10D64 = 0xBE5 + SYS_LOG1PD128 = 0xBE9 + SYS_LOG1PD32 = 0xBE7 + SYS_LOG1PD64 = 0xBE8 + SYS_LOG2D128 = 0xBEC + SYS_LOG2D32 = 0xBEA + SYS_LOG2D64 = 0xBEB + SYS_LOGBD128 = 0xBEF + SYS_LOGBD32 = 0xBED + SYS_LOGBD64 = 0xBEE + SYS_LOGBF = 0xA96 + SYS_LOGBL = 0xA99 + SYS_LOGD128 = 0xBE3 + SYS_LOGD32 = 0xBE1 + SYS_LOGD64 = 0xBE2 + SYS_LRINT = 0xA9C + SYS_LRINTD128 = 0xBF2 + SYS_LRINTD32 = 0xBF0 + SYS_LRINTD64 = 0xBF1 + SYS_LRINTF = 0xA9F + SYS_LRINTL = 0xAA2 + SYS_LROUNDD128 = 0xBF5 + SYS_LROUNDD32 = 0xBF3 + SYS_LROUNDD64 = 0xBF4 + SYS_LROUNDL = 0xAA5 + SYS_MBLEN = 0x0AF + SYS_MBRTOC16 = 0xD42 + SYS_MBRTOC32 = 0xD43 + SYS_MEMSET = 0x0A3 + SYS_MKTIME = 0x0AC + SYS_MKTIME64 = 0xCE0 + SYS_MODFD128 = 0xBF8 + SYS_MODFD32 = 0xBF6 + SYS_MODFD64 = 0xBF7 + SYS_NAN = 0xAA8 + SYS_NAND128 = 0xBFB + SYS_NAND32 = 0xBF9 + SYS_NAND64 = 0xBFA + SYS_NANF = 0xAAA + SYS_NANL = 0xAAC + SYS_NEARBYINT = 0xAAE + SYS_NEARBYINTD128 = 0xBFE + SYS_NEARBYINTD32 = 0xBFC + SYS_NEARBYINTD64 = 0xBFD + SYS_NEARBYINTF = 0xAB1 + SYS_NEARBYINTL = 0xAB4 + SYS_NEXTAFTERD128 = 0xC01 + SYS_NEXTAFTERD32 = 0xBFF + SYS_NEXTAFTERD64 = 0xC00 + SYS_NEXTAFTERF = 0xAB7 + SYS_NEXTAFTERL = 0xABA + SYS_NEXTTOWARD = 0xABD + SYS_NEXTTOWARDD128 = 0xC04 + SYS_NEXTTOWARDD32 = 0xC02 + SYS_NEXTTOWARDD64 = 0xC03 + SYS_NEXTTOWARDF = 0xAC0 + SYS_NEXTTOWARDL = 0xAC3 + SYS_NL_LANGINFO = 0x0FC + SYS_PERROR_UNLOCKED = 0xCBD + SYS_POSIX_FALLOCATE = 0xCE8 + SYS_POSIX_MEMALIGN = 0xCE9 + SYS_POSIX_OPENPT = 0xC66 + SYS_POWD128 = 0xC07 + SYS_POWD32 = 0xC05 + SYS_POWD64 = 0xC06 + SYS_PRINTF_UNLOCKED = 0xCBE + SYS_PSELECT = 0xC67 + SYS_PTHREAD_ATTR_GETSTACK = 0xB3E + SYS_PTHREAD_ATTR_SETSTACK = 0xB3F + SYS_PTHREAD_SECURITY_APPLID_NP = 0xCE4 + SYS_PUTS_UNLOCKED = 0xC7F + SYS_PUTWCHAR_UNLOCKED = 0xCC0 + SYS_PUTWC_UNLOCKED = 0xCBF + SYS_QUANTEXPD128 = 0xD46 + SYS_QUANTEXPD32 = 0xD44 + SYS_QUANTEXPD64 = 0xD45 + SYS_QUANTIZED128 = 0xC0A + SYS_QUANTIZED32 = 0xC08 + SYS_QUANTIZED64 = 0xC09 + SYS_REMAINDERD128 = 0xC0D + SYS_REMAINDERD32 = 0xC0B + SYS_REMAINDERD64 = 0xC0C + SYS_RESIZE_ALLOC = 0xCEB + SYS_REWIND_UNLOCKED = 0xCC1 + SYS_RINTD128 = 0xC13 + SYS_RINTD32 = 0xC11 + SYS_RINTD64 = 0xC12 + SYS_RINTF = 0xACB + SYS_RINTL = 0xACD + SYS_ROUND = 0xACF + SYS_ROUNDD128 = 0xC16 + SYS_ROUNDD32 = 0xC14 + SYS_ROUNDD64 = 0xC15 + SYS_ROUNDF = 0xAD2 + SYS_ROUNDL = 0xAD5 + SYS_SAMEQUANTUMD128 = 0xC19 + SYS_SAMEQUANTUMD32 = 0xC17 + SYS_SAMEQUANTUMD64 = 0xC18 + SYS_SCALBLN = 0xAD8 + SYS_SCALBLND128 = 0xC1C + SYS_SCALBLND32 = 0xC1A + SYS_SCALBLND64 = 0xC1B + SYS_SCALBLNF = 0xADB + SYS_SCALBLNL = 0xADE + SYS_SCALBND128 = 0xC1F + SYS_SCALBND32 = 0xC1D + SYS_SCALBND64 = 0xC1E + SYS_SCALBNF = 0xAE3 + SYS_SCALBNL = 0xAE6 + SYS_SCANF_UNLOCKED = 0xCC2 + SYS_SCHED_YIELD = 0xB32 + SYS_SETENV = 0x0C8 + SYS_SETIPV4SOURCEFILTER = 0xC76 + SYS_SETSOURCEFILTER = 0xC78 + SYS_SHM_OPEN = 0xC8C + SYS_SHM_UNLINK = 0xC8D + SYS_SIND128 = 0xC22 + SYS_SIND32 = 0xC20 + SYS_SIND64 = 0xC21 + SYS_SINHD128 = 0xC25 + SYS_SINHD32 = 0xC23 + SYS_SINHD64 = 0xC24 + SYS_SIZEOF_ALLOC = 0xCEA + SYS_SOCKATMARK = 0xC68 + SYS_SQRTD128 = 0xC28 + SYS_SQRTD32 = 0xC26 + SYS_SQRTD64 = 0xC27 + SYS_STRCHR = 0x0A0 + SYS_STRCSPN = 0x0A1 + SYS_STRERROR = 0x0A8 + SYS_STRERROR_R = 0xB33 + SYS_STRFTIME = 0x0B2 + SYS_STRLEN = 0x0A9 + SYS_STRPBRK = 0x0A2 + SYS_STRSPN = 0x0A4 + SYS_STRSTR = 0x0A5 + SYS_STRTOD128 = 0xC2B + SYS_STRTOD32 = 0xC29 + SYS_STRTOD64 = 0xC2A + SYS_STRTOK = 0x0A6 + SYS_TAND128 = 0xC2E + SYS_TAND32 = 0xC2C + SYS_TAND64 = 0xC2D + SYS_TANHD128 = 0xC31 + SYS_TANHD32 = 0xC2F + SYS_TANHD64 = 0xC30 + SYS_TGAMMAD128 = 0xC34 + SYS_TGAMMAD32 = 0xC32 + SYS_TGAMMAD64 = 0xC33 + SYS_TIME = 0x0AD + SYS_TIME64 = 0xCE1 + SYS_TMPFILE64 = 0xD4D + SYS_TMPFILE64_UNLOCKED = 0xD4E + SYS_TMPFILE_UNLOCKED = 0xCFD + SYS_TRUNCD128 = 0xC40 + SYS_TRUNCD32 = 0xC3E + SYS_TRUNCD64 = 0xC3F + SYS_UNGETC_UNLOCKED = 0xCC3 + SYS_UNGETWC_UNLOCKED = 0xCC4 + SYS_UNSETENV = 0xB34 + SYS_VFPRINTF_UNLOCKED = 0xCC5 + SYS_VFSCANF_UNLOCKED = 0xCC7 + SYS_VFWPRINTF_UNLOCKED = 0xCC9 + SYS_VFWSCANF_UNLOCKED = 0xCCB + SYS_VPRINTF_UNLOCKED = 0xCCD + SYS_VSCANF_UNLOCKED = 0xCCF + SYS_VWPRINTF_UNLOCKED = 0xCD1 + SYS_VWSCANF_UNLOCKED = 0xCD3 + SYS_WCSTOD128 = 0xC43 + SYS_WCSTOD32 = 0xC41 + SYS_WCSTOD64 = 0xC42 + SYS_WPRINTF_UNLOCKED = 0xCD5 + SYS_WSCANF_UNLOCKED = 0xCD6 + SYS__FLUSHLBF = 0xD68 + SYS__FLUSHLBF_UNLOCKED = 0xD6F + SYS___ACOSHF_H = 0xA54 + SYS___ACOSHL_H = 0xA55 + SYS___ASINHF_H = 0xA56 + SYS___ASINHL_H = 0xA57 + SYS___ATANPID128 = 0xC6D + SYS___ATANPID32 = 0xC6B + SYS___ATANPID64 = 0xC6C + SYS___CBRTF_H = 0xA58 + SYS___CBRTL_H = 0xA59 + SYS___CDUMP = 0x0C4 + SYS___CLASS = 0xAFA + SYS___CLASS2 = 0xB99 + SYS___CLASS2D128 = 0xC99 + SYS___CLASS2D32 = 0xC97 + SYS___CLASS2D64 = 0xC98 + SYS___CLASS2F = 0xC91 + SYS___CLASS2F_B = 0xC93 + SYS___CLASS2F_H = 0xC94 + SYS___CLASS2L = 0xC92 + SYS___CLASS2L_B = 0xC95 + SYS___CLASS2L_H = 0xC96 + SYS___CLASS2_B = 0xB9A + SYS___CLASS2_H = 0xB9B + SYS___CLASS_B = 0xAFB + SYS___CLASS_H = 0xAFC + SYS___CLOGL_B = 0xA01 + SYS___CLOGL_H = 0xA02 + SYS___CLRENV = 0x0C9 + SYS___CLRMF = 0x0BD + SYS___CODEPAGE_INFO = 0xC64 + SYS___CONJF_B = 0xA07 + SYS___CONJF_H = 0xA08 + SYS___CONJL_B = 0xA0A + SYS___CONJL_H = 0xA0B + SYS___CONJ_B = 0xA04 + SYS___CONJ_H = 0xA05 + SYS___COPYSIGN_B = 0xA5A + SYS___COPYSIGN_H = 0xAF5 + SYS___COSPID128 = 0xC70 + SYS___COSPID32 = 0xC6E + SYS___COSPID64 = 0xC6F + SYS___CPOWF_B = 0xA10 + SYS___CPOWF_H = 0xA11 + SYS___CPOWL_B = 0xA13 + SYS___CPOWL_H = 0xA14 + SYS___CPOW_B = 0xA0D + SYS___CPOW_H = 0xA0E + SYS___CPROJF_B = 0xA19 + SYS___CPROJF_H = 0xA1A + SYS___CPROJL_B = 0xA1C + SYS___CPROJL_H = 0xA1D + SYS___CPROJ_B = 0xA16 + SYS___CPROJ_H = 0xA17 + SYS___CREALF_B = 0xA22 + SYS___CREALF_H = 0xA23 + SYS___CREALL_B = 0xA25 + SYS___CREALL_H = 0xA26 + SYS___CREAL_B = 0xA1F + SYS___CREAL_H = 0xA20 + SYS___CSINF_B = 0xA2B + SYS___CSINF_H = 0xA2C + SYS___CSINHF_B = 0xA34 + SYS___CSINHF_H = 0xA35 + SYS___CSINHL_B = 0xA37 + SYS___CSINHL_H = 0xA38 + SYS___CSINH_B = 0xA31 + SYS___CSINH_H = 0xA32 + SYS___CSINL_B = 0xA2E + SYS___CSINL_H = 0xA2F + SYS___CSIN_B = 0xA28 + SYS___CSIN_H = 0xA29 + SYS___CSNAP = 0x0C5 + SYS___CSQRTF_B = 0xA3D + SYS___CSQRTF_H = 0xA3E + SYS___CSQRTL_B = 0xA40 + SYS___CSQRTL_H = 0xA41 + SYS___CSQRT_B = 0xA3A + SYS___CSQRT_H = 0xA3B + SYS___CTANF_B = 0xA46 + SYS___CTANF_H = 0xA47 + SYS___CTANHF_B = 0xA4F + SYS___CTANHF_H = 0xA50 + SYS___CTANHL_B = 0xA52 + SYS___CTANHL_H = 0xA53 + SYS___CTANH_B = 0xA4C + SYS___CTANH_H = 0xA4D + SYS___CTANL_B = 0xA49 + SYS___CTANL_H = 0xA4A + SYS___CTAN_B = 0xA43 + SYS___CTAN_H = 0xA44 + SYS___CTEST = 0x0C7 + SYS___CTRACE = 0x0C6 + SYS___D1TOP = 0xC9B + SYS___D2TOP = 0xC9C + SYS___D4TOP = 0xC9D + SYS___DYNALL = 0x0C3 + SYS___DYNFRE = 0x0C2 + SYS___EXP2F_H = 0xA5E + SYS___EXP2L_H = 0xA5F + SYS___EXP2_H = 0xA5D + SYS___EXPM1F_H = 0xA5B + SYS___EXPM1L_H = 0xA5C + SYS___FBUFSIZE = 0xD60 + SYS___FLBF = 0xD62 + SYS___FLDATA = 0x0C1 + SYS___FMAF_B = 0xA67 + SYS___FMAF_H = 0xA68 + SYS___FMAL_B = 0xA6A + SYS___FMAL_H = 0xA6B + SYS___FMAXF_B = 0xA70 + SYS___FMAXF_H = 0xA71 + SYS___FMAXL_B = 0xA73 + SYS___FMAXL_H = 0xA74 + SYS___FMAX_B = 0xA6D + SYS___FMAX_H = 0xA6E + SYS___FMA_B = 0xA64 + SYS___FMA_H = 0xA65 + SYS___FMINF_B = 0xA79 + SYS___FMINF_H = 0xA7A + SYS___FMINL_B = 0xA7C + SYS___FMINL_H = 0xA7D + SYS___FMIN_B = 0xA76 + SYS___FMIN_H = 0xA77 + SYS___FPENDING = 0xD61 + SYS___FPENDING_UNLOCKED = 0xD6C + SYS___FPURGE = 0xD69 + SYS___FPURGE_UNLOCKED = 0xD70 + SYS___FP_CAST_D = 0xBCB + SYS___FREADABLE = 0xD63 + SYS___FREADAHEAD = 0xD6A + SYS___FREADAHEAD_UNLOCKED = 0xD71 + SYS___FREADING = 0xD65 + SYS___FREADING_UNLOCKED = 0xD6D + SYS___FSEEK2 = 0xB3C + SYS___FSETERR = 0xD6B + SYS___FSETLOCKING = 0xD67 + SYS___FTCHEP = 0x0BF + SYS___FTELL2 = 0xB3B + SYS___FUPDT = 0x0B5 + SYS___FWRITABLE = 0xD64 + SYS___FWRITING = 0xD66 + SYS___FWRITING_UNLOCKED = 0xD6E + SYS___GETCB = 0x0B4 + SYS___GETGRGID1 = 0xD5B + SYS___GETGRNAM1 = 0xD5C + SYS___GETTHENT = 0xCE5 + SYS___GETTOD = 0xD3E + SYS___HYPOTF_H = 0xAF6 + SYS___HYPOTL_H = 0xAF7 + SYS___ILOGBF_B = 0xA7F + SYS___ILOGBF_H = 0xA80 + SYS___ILOGBL_B = 0xA82 + SYS___ILOGBL_H = 0xA83 + SYS___ISBLANK_A = 0xB2E + SYS___ISBLNK = 0x0FE + SYS___ISWBLANK_A = 0xB2F + SYS___LE_CEEGTJS = 0xD72 + SYS___LE_TRACEBACK = 0xB7A + SYS___LGAMMAL_H = 0xA62 + SYS___LGAMMA_B_C99 = 0xB39 + SYS___LGAMMA_H_C99 = 0xB38 + SYS___LGAMMA_R_C99 = 0xB3A + SYS___LLRINTF_B = 0xA88 + SYS___LLRINTF_H = 0xA89 + SYS___LLRINTL_B = 0xA8B + SYS___LLRINTL_H = 0xA8C + SYS___LLRINT_B = 0xA85 + SYS___LLRINT_H = 0xA86 + SYS___LLROUNDF_B = 0xA91 + SYS___LLROUNDF_H = 0xA92 + SYS___LLROUNDL_B = 0xA94 + SYS___LLROUNDL_H = 0xA95 + SYS___LLROUND_B = 0xA8E + SYS___LLROUND_H = 0xA8F + SYS___LOCALE_CTL = 0xD47 + SYS___LOG1PF_H = 0xA60 + SYS___LOG1PL_H = 0xA61 + SYS___LOGBF_B = 0xA97 + SYS___LOGBF_H = 0xA98 + SYS___LOGBL_B = 0xA9A + SYS___LOGBL_H = 0xA9B + SYS___LOGIN_APPLID = 0xCE2 + SYS___LRINTF_B = 0xAA0 + SYS___LRINTF_H = 0xAA1 + SYS___LRINTL_B = 0xAA3 + SYS___LRINTL_H = 0xAA4 + SYS___LRINT_B = 0xA9D + SYS___LRINT_H = 0xA9E + SYS___LROUNDF_FIXUP = 0xB31 + SYS___LROUNDL_B = 0xAA6 + SYS___LROUNDL_H = 0xAA7 + SYS___LROUND_FIXUP = 0xB30 + SYS___MOSERVICES = 0xD3D + SYS___MUST_STAY_CLEAN = 0xB7C + SYS___NANF_B = 0xAAB + SYS___NANL_B = 0xAAD + SYS___NAN_B = 0xAA9 + SYS___NEARBYINTF_B = 0xAB2 + SYS___NEARBYINTF_H = 0xAB3 + SYS___NEARBYINTL_B = 0xAB5 + SYS___NEARBYINTL_H = 0xAB6 + SYS___NEARBYINT_B = 0xAAF + SYS___NEARBYINT_H = 0xAB0 + SYS___NEXTAFTERF_B = 0xAB8 + SYS___NEXTAFTERF_H = 0xAB9 + SYS___NEXTAFTERL_B = 0xABB + SYS___NEXTAFTERL_H = 0xABC + SYS___NEXTTOWARDF_B = 0xAC1 + SYS___NEXTTOWARDF_H = 0xAC2 + SYS___NEXTTOWARDL_B = 0xAC4 + SYS___NEXTTOWARDL_H = 0xAC5 + SYS___NEXTTOWARD_B = 0xABE + SYS___NEXTTOWARD_H = 0xABF + SYS___O_ENV = 0xB7D + SYS___PASSWD_APPLID = 0xCE3 + SYS___PTOD1 = 0xC9E + SYS___PTOD2 = 0xC9F + SYS___PTOD4 = 0xCA0 + SYS___REGCOMP_STD = 0x0EA + SYS___REMAINDERF_H = 0xAC6 + SYS___REMAINDERL_H = 0xAC7 + SYS___REMQUOD128 = 0xC10 + SYS___REMQUOD32 = 0xC0E + SYS___REMQUOD64 = 0xC0F + SYS___REMQUOF_H = 0xAC9 + SYS___REMQUOL_H = 0xACA + SYS___REMQUO_H = 0xAC8 + SYS___RINTF_B = 0xACC + SYS___RINTL_B = 0xACE + SYS___ROUNDF_B = 0xAD3 + SYS___ROUNDF_H = 0xAD4 + SYS___ROUNDL_B = 0xAD6 + SYS___ROUNDL_H = 0xAD7 + SYS___ROUND_B = 0xAD0 + SYS___ROUND_H = 0xAD1 + SYS___SCALBLNF_B = 0xADC + SYS___SCALBLNF_H = 0xADD + SYS___SCALBLNL_B = 0xADF + SYS___SCALBLNL_H = 0xAE0 + SYS___SCALBLN_B = 0xAD9 + SYS___SCALBLN_H = 0xADA + SYS___SCALBNF_B = 0xAE4 + SYS___SCALBNF_H = 0xAE5 + SYS___SCALBNL_B = 0xAE7 + SYS___SCALBNL_H = 0xAE8 + SYS___SCALBN_B = 0xAE1 + SYS___SCALBN_H = 0xAE2 + SYS___SETENV = 0x0C8 + SYS___SINPID128 = 0xC73 + SYS___SINPID32 = 0xC71 + SYS___SINPID64 = 0xC72 + SYS___SMF_RECORD2 = 0xD48 + SYS___STATIC_REINIT = 0xB3D + SYS___TGAMMAF_H_C99 = 0xB79 + SYS___TGAMMAL_H = 0xAE9 + SYS___TGAMMA_H_C99 = 0xB78 + SYS___TOCSNAME2 = 0xC9A + SYS_CEIL = 0x01F + SYS_CHAUDIT = 0x1E0 + SYS_EXP = 0x01A + SYS_FCHAUDIT = 0x1E1 + SYS_FREXP = 0x01D + SYS_GETGROUPSBYNAME = 0x1E2 + SYS_GETPWUID = 0x1A0 + SYS_GETUID = 0x1A1 + SYS_ISATTY = 0x1A3 + SYS_KILL = 0x1A4 + SYS_LDEXP = 0x01E + SYS_LINK = 0x1A5 + SYS_LOG10 = 0x01C + SYS_LSEEK = 0x1A6 + SYS_LSTAT = 0x1A7 + SYS_MKDIR = 0x1A8 + SYS_MKFIFO = 0x1A9 + SYS_MKNOD = 0x1AA + SYS_MODF = 0x01B + SYS_MOUNT = 0x1AB + SYS_OPEN = 0x1AC + SYS_OPENDIR = 0x1AD + SYS_PATHCONF = 0x1AE + SYS_PAUSE = 0x1AF + SYS_PIPE = 0x1B0 + SYS_PTHREAD_ATTR_DESTROY = 0x1E7 + SYS_PTHREAD_ATTR_GETDETACHSTATE = 0x1EB + SYS_PTHREAD_ATTR_GETSTACKSIZE = 0x1E9 + SYS_PTHREAD_ATTR_GETWEIGHT_NP = 0x1ED + SYS_PTHREAD_ATTR_INIT = 0x1E6 + SYS_PTHREAD_ATTR_SETDETACHSTATE = 0x1EA + SYS_PTHREAD_ATTR_SETSTACKSIZE = 0x1E8 + SYS_PTHREAD_ATTR_SETWEIGHT_NP = 0x1EC + SYS_PTHREAD_CANCEL = 0x1EE + SYS_PTHREAD_CLEANUP_POP = 0x1F0 + SYS_PTHREAD_CLEANUP_PUSH = 0x1EF + SYS_PTHREAD_CONDATTR_DESTROY = 0x1F2 + SYS_PTHREAD_CONDATTR_INIT = 0x1F1 + SYS_PTHREAD_COND_BROADCAST = 0x1F6 + SYS_PTHREAD_COND_DESTROY = 0x1F4 + SYS_PTHREAD_COND_INIT = 0x1F3 + SYS_PTHREAD_COND_SIGNAL = 0x1F5 + SYS_PTHREAD_COND_TIMEDWAIT = 0x1F8 + SYS_PTHREAD_COND_WAIT = 0x1F7 + SYS_PTHREAD_CREATE = 0x1F9 + SYS_PTHREAD_DETACH = 0x1FA + SYS_PTHREAD_EQUAL = 0x1FB + SYS_PTHREAD_EXIT = 0x1E4 + SYS_PTHREAD_GETSPECIFIC = 0x1FC + SYS_PTHREAD_JOIN = 0x1FD + SYS_PTHREAD_KEY_CREATE = 0x1FE + SYS_PTHREAD_KILL = 0x1E5 + SYS_PTHREAD_MUTEXATTR_INIT = 0x1FF + SYS_READ = 0x1B2 + SYS_READDIR = 0x1B3 + SYS_READLINK = 0x1B4 + SYS_REWINDDIR = 0x1B5 + SYS_RMDIR = 0x1B6 + SYS_SETEGID = 0x1B7 + SYS_SETEUID = 0x1B8 + SYS_SETGID = 0x1B9 + SYS_SETPGID = 0x1BA + SYS_SETSID = 0x1BB + SYS_SETUID = 0x1BC + SYS_SIGACTION = 0x1BD + SYS_SIGADDSET = 0x1BE + SYS_SIGDELSET = 0x1BF + SYS_SIGEMPTYSET = 0x1C0 + SYS_SIGFILLSET = 0x1C1 + SYS_SIGISMEMBER = 0x1C2 + SYS_SIGLONGJMP = 0x1C3 + SYS_SIGPENDING = 0x1C4 + SYS_SIGPROCMASK = 0x1C5 + SYS_SIGSETJMP = 0x1C6 + SYS_SIGSUSPEND = 0x1C7 + SYS_SIGWAIT = 0x1E3 + SYS_SLEEP = 0x1C8 + SYS_STAT = 0x1C9 + SYS_SYMLINK = 0x1CB + SYS_SYSCONF = 0x1CC + SYS_TCDRAIN = 0x1CD + SYS_TCFLOW = 0x1CE + SYS_TCFLUSH = 0x1CF + SYS_TCGETATTR = 0x1D0 + SYS_TCGETPGRP = 0x1D1 + SYS_TCSENDBREAK = 0x1D2 + SYS_TCSETATTR = 0x1D3 + SYS_TCSETPGRP = 0x1D4 + SYS_TIMES = 0x1D5 + SYS_TTYNAME = 0x1D6 + SYS_TZSET = 0x1D7 + SYS_UMASK = 0x1D8 + SYS_UMOUNT = 0x1D9 + SYS_UNAME = 0x1DA + SYS_UNLINK = 0x1DB + SYS_UTIME = 0x1DC + SYS_WAIT = 0x1DD + SYS_WAITPID = 0x1DE + SYS_WRITE = 0x1DF + SYS_W_GETPSENT = 0x1B1 + SYS_W_IOCTL = 0x1A2 + SYS_W_STATFS = 0x1CA + SYS_A64L = 0x2EF + SYS_BCMP = 0x2B9 + SYS_BCOPY = 0x2BA + SYS_BZERO = 0x2BB + SYS_CATCLOSE = 0x2B6 + SYS_CATGETS = 0x2B7 + SYS_CATOPEN = 0x2B8 + SYS_CRYPT = 0x2AC + SYS_DBM_CLEARERR = 0x2F7 + SYS_DBM_CLOSE = 0x2F8 + SYS_DBM_DELETE = 0x2F9 + SYS_DBM_ERROR = 0x2FA + SYS_DBM_FETCH = 0x2FB + SYS_DBM_FIRSTKEY = 0x2FC + SYS_DBM_NEXTKEY = 0x2FD + SYS_DBM_OPEN = 0x2FE + SYS_DBM_STORE = 0x2FF + SYS_DRAND48 = 0x2B2 + SYS_ENCRYPT = 0x2AD + SYS_ENDUTXENT = 0x2E1 + SYS_ERAND48 = 0x2B3 + SYS_ERF = 0x02C + SYS_ERFC = 0x02D + SYS_FCHDIR = 0x2D9 + SYS_FFS = 0x2BC + SYS_FMTMSG = 0x2E5 + SYS_FSTATVFS = 0x2B4 + SYS_FTIME = 0x2F5 + SYS_GAMMA = 0x02E + SYS_GETDATE = 0x2A6 + SYS_GETPAGESIZE = 0x2D8 + SYS_GETTIMEOFDAY = 0x2F6 + SYS_GETUTXENT = 0x2E0 + SYS_GETUTXID = 0x2E2 + SYS_GETUTXLINE = 0x2E3 + SYS_HCREATE = 0x2C6 + SYS_HDESTROY = 0x2C7 + SYS_HSEARCH = 0x2C8 + SYS_HYPOT = 0x02B + SYS_INDEX = 0x2BD + SYS_INITSTATE = 0x2C2 + SYS_INSQUE = 0x2CF + SYS_ISASCII = 0x2ED + SYS_JRAND48 = 0x2E6 + SYS_L64A = 0x2F0 + SYS_LCONG48 = 0x2EA + SYS_LFIND = 0x2C9 + SYS_LRAND48 = 0x2E7 + SYS_LSEARCH = 0x2CA + SYS_MEMCCPY = 0x2D4 + SYS_MRAND48 = 0x2E8 + SYS_NRAND48 = 0x2E9 + SYS_PCLOSE = 0x2D2 + SYS_POPEN = 0x2D1 + SYS_PUTUTXLINE = 0x2E4 + SYS_RANDOM = 0x2C4 + SYS_REMQUE = 0x2D0 + SYS_RINDEX = 0x2BE + SYS_SEED48 = 0x2EC + SYS_SETKEY = 0x2AE + SYS_SETSTATE = 0x2C3 + SYS_SETUTXENT = 0x2DF + SYS_SRAND48 = 0x2EB + SYS_SRANDOM = 0x2C5 + SYS_STATVFS = 0x2B5 + SYS_STRCASECMP = 0x2BF + SYS_STRDUP = 0x2C0 + SYS_STRNCASECMP = 0x2C1 + SYS_SWAB = 0x2D3 + SYS_TDELETE = 0x2CB + SYS_TFIND = 0x2CC + SYS_TOASCII = 0x2EE + SYS_TSEARCH = 0x2CD + SYS_TWALK = 0x2CE + SYS_UALARM = 0x2F1 + SYS_USLEEP = 0x2F2 + SYS_WAIT3 = 0x2A7 + SYS_WAITID = 0x2A8 + SYS_Y1 = 0x02A + SYS___ATOE = 0x2DB + SYS___ATOE_L = 0x2DC + SYS___CATTRM = 0x2A9 + SYS___CNVBLK = 0x2AF + SYS___CRYTRM = 0x2B0 + SYS___DLGHT = 0x2A1 + SYS___ECRTRM = 0x2B1 + SYS___ETOA = 0x2DD + SYS___ETOA_L = 0x2DE + SYS___GDTRM = 0x2AA + SYS___OCLCK = 0x2DA + SYS___OPARGF = 0x2A2 + SYS___OPERRF = 0x2A5 + SYS___OPINDF = 0x2A4 + SYS___OPOPTF = 0x2A3 + SYS___RNDTRM = 0x2AB + SYS___SRCTRM = 0x2F4 + SYS___TZONE = 0x2A0 + SYS___UTXTRM = 0x2F3 + SYS_ASIN = 0x03E + SYS_ISXDIGIT = 0x03B + SYS_SETLOCAL = 0x03A + SYS_SETLOCALE = 0x03A + SYS_SIN = 0x03F + SYS_TOLOWER = 0x03C + SYS_TOUPPER = 0x03D + SYS_ACCEPT_AND_RECV = 0x4F7 + SYS_ATOL = 0x04E + SYS_CHECKSCH = 0x4BC + SYS_CHECKSCHENV = 0x4BC + SYS_CLEARERR = 0x04C + SYS_CONNECTS = 0x4B5 + SYS_CONNECTSERVER = 0x4B5 + SYS_CONNECTW = 0x4B4 + SYS_CONNECTWORKMGR = 0x4B4 + SYS_CONTINUE = 0x4B3 + SYS_CONTINUEWORKUNIT = 0x4B3 + SYS_COPYSIGN = 0x4C2 + SYS_CREATEWO = 0x4B2 + SYS_CREATEWORKUNIT = 0x4B2 + SYS_DELETEWO = 0x4B9 + SYS_DELETEWORKUNIT = 0x4B9 + SYS_DISCONNE = 0x4B6 + SYS_DISCONNECTSERVER = 0x4B6 + SYS_FEOF = 0x04D + SYS_FERROR = 0x04A + SYS_FINITE = 0x4C8 + SYS_GAMMA_R = 0x4E2 + SYS_JOINWORK = 0x4B7 + SYS_JOINWORKUNIT = 0x4B7 + SYS_LEAVEWOR = 0x4B8 + SYS_LEAVEWORKUNIT = 0x4B8 + SYS_LGAMMA_R = 0x4EB + SYS_MATHERR = 0x4D0 + SYS_PERROR = 0x04F + SYS_QUERYMET = 0x4BA + SYS_QUERYMETRICS = 0x4BA + SYS_QUERYSCH = 0x4BB + SYS_QUERYSCHENV = 0x4BB + SYS_REWIND = 0x04B + SYS_SCALBN = 0x4D4 + SYS_SIGNIFIC = 0x4D5 + SYS_SIGNIFICAND = 0x4D5 + SYS___ACOSH_B = 0x4DA + SYS___ACOS_B = 0x4D9 + SYS___ASINH_B = 0x4BE + SYS___ASIN_B = 0x4DB + SYS___ATAN2_B = 0x4DC + SYS___ATANH_B = 0x4DD + SYS___ATAN_B = 0x4BF + SYS___CBRT_B = 0x4C0 + SYS___CEIL_B = 0x4C1 + SYS___COSH_B = 0x4DE + SYS___COS_B = 0x4C3 + SYS___DGHT = 0x4A8 + SYS___ENVN = 0x4B0 + SYS___ERFC_B = 0x4C5 + SYS___ERF_B = 0x4C4 + SYS___EXPM1_B = 0x4C6 + SYS___EXP_B = 0x4DF + SYS___FABS_B = 0x4C7 + SYS___FLOOR_B = 0x4C9 + SYS___FMOD_B = 0x4E0 + SYS___FP_SETMODE = 0x4F8 + SYS___FREXP_B = 0x4CA + SYS___GAMMA_B = 0x4E1 + SYS___GDRR = 0x4A1 + SYS___HRRNO = 0x4A2 + SYS___HYPOT_B = 0x4E3 + SYS___ILOGB_B = 0x4CB + SYS___ISNAN_B = 0x4CC + SYS___J0_B = 0x4E4 + SYS___J1_B = 0x4E6 + SYS___JN_B = 0x4E8 + SYS___LDEXP_B = 0x4CD + SYS___LGAMMA_B = 0x4EA + SYS___LOG10_B = 0x4ED + SYS___LOG1P_B = 0x4CE + SYS___LOGB_B = 0x4CF + SYS___LOGIN = 0x4F5 + SYS___LOG_B = 0x4EC + SYS___MLOCKALL = 0x4B1 + SYS___MODF_B = 0x4D1 + SYS___NEXTAFTER_B = 0x4D2 + SYS___OPENDIR2 = 0x4F3 + SYS___OPEN_STAT = 0x4F6 + SYS___OPND = 0x4A5 + SYS___OPPT = 0x4A6 + SYS___OPRG = 0x4A3 + SYS___OPRR = 0x4A4 + SYS___PID_AFFINITY = 0x4BD + SYS___POW_B = 0x4EE + SYS___READDIR2 = 0x4F4 + SYS___REMAINDER_B = 0x4EF + SYS___RINT_B = 0x4D3 + SYS___SCALB_B = 0x4F0 + SYS___SIGACTIONSET = 0x4FB + SYS___SIGGM = 0x4A7 + SYS___SINH_B = 0x4F1 + SYS___SIN_B = 0x4D6 + SYS___SQRT_B = 0x4F2 + SYS___TANH_B = 0x4D8 + SYS___TAN_B = 0x4D7 + SYS___TRRNO = 0x4AF + SYS___TZNE = 0x4A9 + SYS___TZZN = 0x4AA + SYS___UCREATE = 0x4FC + SYS___UFREE = 0x4FE + SYS___UHEAPREPORT = 0x4FF + SYS___UMALLOC = 0x4FD + SYS___Y0_B = 0x4E5 + SYS___Y1_B = 0x4E7 + SYS___YN_B = 0x4E9 + SYS_ABORT = 0x05C + SYS_ASCTIME_R = 0x5E0 + SYS_ATEXIT = 0x05D + SYS_CONNECTE = 0x5AE + SYS_CONNECTEXPORTIMPORT = 0x5AE + SYS_CTIME_R = 0x5E1 + SYS_DN_COMP = 0x5DF + SYS_DN_EXPAND = 0x5DD + SYS_DN_SKIPNAME = 0x5DE + SYS_EXIT = 0x05A + SYS_EXPORTWO = 0x5A1 + SYS_EXPORTWORKUNIT = 0x5A1 + SYS_EXTRACTW = 0x5A5 + SYS_EXTRACTWORKUNIT = 0x5A5 + SYS_FSEEKO = 0x5C9 + SYS_FTELLO = 0x5C8 + SYS_GETGRGID_R = 0x5E7 + SYS_GETGRNAM_R = 0x5E8 + SYS_GETLOGIN_R = 0x5E9 + SYS_GETPWNAM_R = 0x5EA + SYS_GETPWUID_R = 0x5EB + SYS_GMTIME_R = 0x5E2 + SYS_IMPORTWO = 0x5A3 + SYS_IMPORTWORKUNIT = 0x5A3 + SYS_INET_NTOP = 0x5D3 + SYS_INET_PTON = 0x5D4 + SYS_LLABS = 0x5CE + SYS_LLDIV = 0x5CB + SYS_LOCALTIME_R = 0x5E3 + SYS_PTHREAD_ATFORK = 0x5ED + SYS_PTHREAD_ATTR_GETDETACHSTATE_U98 = 0x5FB + SYS_PTHREAD_ATTR_GETGUARDSIZE = 0x5EE + SYS_PTHREAD_ATTR_GETSCHEDPARAM = 0x5F9 + SYS_PTHREAD_ATTR_GETSTACKADDR = 0x5EF + SYS_PTHREAD_ATTR_SETDETACHSTATE_U98 = 0x5FC + SYS_PTHREAD_ATTR_SETGUARDSIZE = 0x5F0 + SYS_PTHREAD_ATTR_SETSCHEDPARAM = 0x5FA + SYS_PTHREAD_ATTR_SETSTACKADDR = 0x5F1 + SYS_PTHREAD_CONDATTR_GETPSHARED = 0x5F2 + SYS_PTHREAD_CONDATTR_SETPSHARED = 0x5F3 + SYS_PTHREAD_DETACH_U98 = 0x5FD + SYS_PTHREAD_GETCONCURRENCY = 0x5F4 + SYS_PTHREAD_GETSPECIFIC_U98 = 0x5FE + SYS_PTHREAD_KEY_DELETE = 0x5F5 + SYS_PTHREAD_SETCANCELSTATE = 0x5FF + SYS_PTHREAD_SETCONCURRENCY = 0x5F6 + SYS_PTHREAD_SIGMASK = 0x5F7 + SYS_QUERYENC = 0x5AD + SYS_QUERYWORKUNITCLASSIFICATION = 0x5AD + SYS_RAISE = 0x05E + SYS_RAND_R = 0x5E4 + SYS_READDIR_R = 0x5E6 + SYS_REALLOC = 0x05B + SYS_RES_INIT = 0x5D8 + SYS_RES_MKQUERY = 0x5D7 + SYS_RES_QUERY = 0x5D9 + SYS_RES_QUERYDOMAIN = 0x5DC + SYS_RES_SEARCH = 0x5DA + SYS_RES_SEND = 0x5DB + SYS_SETJMP = 0x05F + SYS_SIGQUEUE = 0x5A9 + SYS_STRTOK_R = 0x5E5 + SYS_STRTOLL = 0x5B0 + SYS_STRTOULL = 0x5B1 + SYS_TTYNAME_R = 0x5EC + SYS_UNDOEXPO = 0x5A2 + SYS_UNDOEXPORTWORKUNIT = 0x5A2 + SYS_UNDOIMPO = 0x5A4 + SYS_UNDOIMPORTWORKUNIT = 0x5A4 + SYS_WCSTOLL = 0x5CC + SYS_WCSTOULL = 0x5CD + SYS___ABORT = 0x05C + SYS___CONSOLE2 = 0x5D2 + SYS___CPL = 0x5A6 + SYS___DISCARDDATA = 0x5F8 + SYS___DSA_PREV = 0x5B2 + SYS___EP_FIND = 0x5B3 + SYS___FP_SWAPMODE = 0x5AF + SYS___GETUSERID = 0x5AB + SYS___GET_CPUID = 0x5B9 + SYS___GET_SYSTEM_SETTINGS = 0x5BA + SYS___IPDOMAINNAME = 0x5AC + SYS___MAP_INIT = 0x5A7 + SYS___MAP_SERVICE = 0x5A8 + SYS___MOUNT = 0x5AA + SYS___MSGRCV_TIMED = 0x5B7 + SYS___RES = 0x5D6 + SYS___SEMOP_TIMED = 0x5B8 + SYS___SERVER_THREADS_QUERY = 0x5B4 + SYS_FPRINTF = 0x06D + SYS_FSCANF = 0x06A + SYS_PRINTF = 0x06F + SYS_SETBUF = 0x06B + SYS_SETVBUF = 0x06C + SYS_SSCANF = 0x06E + SYS___CATGETS_A = 0x6C0 + SYS___CHAUDIT_A = 0x6F4 + SYS___CHMOD_A = 0x6E8 + SYS___COLLATE_INIT_A = 0x6AC + SYS___CREAT_A = 0x6F6 + SYS___CTYPE_INIT_A = 0x6AF + SYS___DLLLOAD_A = 0x6DF + SYS___DLLQUERYFN_A = 0x6E0 + SYS___DLLQUERYVAR_A = 0x6E1 + SYS___E2A_L = 0x6E3 + SYS___EXECLE_A = 0x6A0 + SYS___EXECLP_A = 0x6A4 + SYS___EXECVE_A = 0x6C1 + SYS___EXECVP_A = 0x6C2 + SYS___EXECV_A = 0x6B1 + SYS___FPRINTF_A = 0x6FA + SYS___GETADDRINFO_A = 0x6BF + SYS___GETNAMEINFO_A = 0x6C4 + SYS___GET_WCTYPE_STD_A = 0x6AE + SYS___ICONV_OPEN_A = 0x6DE + SYS___IF_INDEXTONAME_A = 0x6DC + SYS___IF_NAMETOINDEX_A = 0x6DB + SYS___ISWCTYPE_A = 0x6B0 + SYS___IS_WCTYPE_STD_A = 0x6B2 + SYS___LOCALECONV_A = 0x6B8 + SYS___LOCALECONV_STD_A = 0x6B9 + SYS___LOCALE_INIT_A = 0x6B7 + SYS___LSTAT_A = 0x6EE + SYS___LSTAT_O_A = 0x6EF + SYS___MKDIR_A = 0x6E9 + SYS___MKFIFO_A = 0x6EC + SYS___MKNOD_A = 0x6F0 + SYS___MONETARY_INIT_A = 0x6BC + SYS___MOUNT_A = 0x6F1 + SYS___NL_CSINFO_A = 0x6D6 + SYS___NL_LANGINFO_A = 0x6BA + SYS___NL_LNAGINFO_STD_A = 0x6BB + SYS___NL_MONINFO_A = 0x6D7 + SYS___NL_NUMINFO_A = 0x6D8 + SYS___NL_RESPINFO_A = 0x6D9 + SYS___NL_TIMINFO_A = 0x6DA + SYS___NUMERIC_INIT_A = 0x6C6 + SYS___OPEN_A = 0x6F7 + SYS___PRINTF_A = 0x6DD + SYS___RESP_INIT_A = 0x6C7 + SYS___RPMATCH_A = 0x6C8 + SYS___RPMATCH_C_A = 0x6C9 + SYS___RPMATCH_STD_A = 0x6CA + SYS___SETLOCALE_A = 0x6F9 + SYS___SPAWNP_A = 0x6C5 + SYS___SPAWN_A = 0x6C3 + SYS___SPRINTF_A = 0x6FB + SYS___STAT_A = 0x6EA + SYS___STAT_O_A = 0x6EB + SYS___STRCOLL_STD_A = 0x6A1 + SYS___STRFMON_A = 0x6BD + SYS___STRFMON_STD_A = 0x6BE + SYS___STRFTIME_A = 0x6CC + SYS___STRFTIME_STD_A = 0x6CD + SYS___STRPTIME_A = 0x6CE + SYS___STRPTIME_STD_A = 0x6CF + SYS___STRXFRM_A = 0x6A2 + SYS___STRXFRM_C_A = 0x6A3 + SYS___STRXFRM_STD_A = 0x6A5 + SYS___SYNTAX_INIT_A = 0x6D4 + SYS___TIME_INIT_A = 0x6CB + SYS___TOD_INIT_A = 0x6D5 + SYS___TOWLOWER_A = 0x6B3 + SYS___TOWLOWER_STD_A = 0x6B4 + SYS___TOWUPPER_A = 0x6B5 + SYS___TOWUPPER_STD_A = 0x6B6 + SYS___UMOUNT_A = 0x6F2 + SYS___VFPRINTF_A = 0x6FC + SYS___VPRINTF_A = 0x6FD + SYS___VSPRINTF_A = 0x6FE + SYS___VSWPRINTF_A = 0x6FF + SYS___WCSCOLL_A = 0x6A6 + SYS___WCSCOLL_C_A = 0x6A7 + SYS___WCSCOLL_STD_A = 0x6A8 + SYS___WCSFTIME_A = 0x6D0 + SYS___WCSFTIME_STD_A = 0x6D1 + SYS___WCSXFRM_A = 0x6A9 + SYS___WCSXFRM_C_A = 0x6AA + SYS___WCSXFRM_STD_A = 0x6AB + SYS___WCTYPE_A = 0x6AD + SYS___W_GETMNTENT_A = 0x6F5 + SYS_____CCSIDTYPE_A = 0x6E6 + SYS_____CHATTR_A = 0x6E2 + SYS_____CSNAMETYPE_A = 0x6E7 + SYS_____OPEN_STAT_A = 0x6ED + SYS_____SPAWN2_A = 0x6D2 + SYS_____SPAWNP2_A = 0x6D3 + SYS_____TOCCSID_A = 0x6E4 + SYS_____TOCSNAME_A = 0x6E5 + SYS_ACL_FREE = 0x7FF + SYS_ACL_INIT = 0x7FE + SYS_FWIDE = 0x7DF + SYS_FWPRINTF = 0x7D1 + SYS_FWRITE = 0x07E + SYS_FWSCANF = 0x7D5 + SYS_GETCHAR = 0x07B + SYS_GETS = 0x07C + SYS_M_CREATE_LAYOUT = 0x7C9 + SYS_M_DESTROY_LAYOUT = 0x7CA + SYS_M_GETVALUES_LAYOUT = 0x7CB + SYS_M_SETVALUES_LAYOUT = 0x7CC + SYS_M_TRANSFORM_LAYOUT = 0x7CD + SYS_M_WTRANSFORM_LAYOUT = 0x7CE + SYS_PREAD = 0x7C7 + SYS_PUTC = 0x07D + SYS_PUTCHAR = 0x07A + SYS_PUTS = 0x07F + SYS_PWRITE = 0x7C8 + SYS_TOWCTRAN = 0x7D8 + SYS_TOWCTRANS = 0x7D8 + SYS_UNATEXIT = 0x7B5 + SYS_VFWPRINT = 0x7D3 + SYS_VFWPRINTF = 0x7D3 + SYS_VWPRINTF = 0x7D4 + SYS_WCTRANS = 0x7D7 + SYS_WPRINTF = 0x7D2 + SYS_WSCANF = 0x7D6 + SYS___ASCTIME_R_A = 0x7A1 + SYS___BASENAME_A = 0x7DC + SYS___BTOWC_A = 0x7E4 + SYS___CDUMP_A = 0x7B7 + SYS___CEE3DMP_A = 0x7B6 + SYS___CEILF_H = 0x7F4 + SYS___CEILL_H = 0x7F5 + SYS___CEIL_H = 0x7EA + SYS___CRYPT_A = 0x7BE + SYS___CSNAP_A = 0x7B8 + SYS___CTEST_A = 0x7B9 + SYS___CTIME_R_A = 0x7A2 + SYS___CTRACE_A = 0x7BA + SYS___DBM_OPEN_A = 0x7E6 + SYS___DIRNAME_A = 0x7DD + SYS___FABSF_H = 0x7FA + SYS___FABSL_H = 0x7FB + SYS___FABS_H = 0x7ED + SYS___FGETWC_A = 0x7AA + SYS___FGETWS_A = 0x7AD + SYS___FLOORF_H = 0x7F6 + SYS___FLOORL_H = 0x7F7 + SYS___FLOOR_H = 0x7EB + SYS___FPUTWC_A = 0x7A5 + SYS___FPUTWS_A = 0x7A8 + SYS___GETTIMEOFDAY_A = 0x7AE + SYS___GETWCHAR_A = 0x7AC + SYS___GETWC_A = 0x7AB + SYS___GLOB_A = 0x7DE + SYS___GMTIME_A = 0x7AF + SYS___GMTIME_R_A = 0x7B0 + SYS___INET_PTON_A = 0x7BC + SYS___J0_H = 0x7EE + SYS___J1_H = 0x7EF + SYS___JN_H = 0x7F0 + SYS___LOCALTIME_A = 0x7B1 + SYS___LOCALTIME_R_A = 0x7B2 + SYS___MALLOC24 = 0x7FC + SYS___MALLOC31 = 0x7FD + SYS___MKTIME_A = 0x7B3 + SYS___MODFF_H = 0x7F8 + SYS___MODFL_H = 0x7F9 + SYS___MODF_H = 0x7EC + SYS___OPENDIR_A = 0x7C2 + SYS___OSNAME = 0x7E0 + SYS___PUTWCHAR_A = 0x7A7 + SYS___PUTWC_A = 0x7A6 + SYS___READDIR_A = 0x7C3 + SYS___STRTOLL_A = 0x7A3 + SYS___STRTOULL_A = 0x7A4 + SYS___SYSLOG_A = 0x7BD + SYS___TZZNA = 0x7B4 + SYS___UNGETWC_A = 0x7A9 + SYS___UTIME_A = 0x7A0 + SYS___VFPRINTF2_A = 0x7E7 + SYS___VPRINTF2_A = 0x7E8 + SYS___VSPRINTF2_A = 0x7E9 + SYS___VSWPRNTF2_A = 0x7BB + SYS___WCSTOD_A = 0x7D9 + SYS___WCSTOL_A = 0x7DA + SYS___WCSTOUL_A = 0x7DB + SYS___WCTOB_A = 0x7E5 + SYS___Y0_H = 0x7F1 + SYS___Y1_H = 0x7F2 + SYS___YN_H = 0x7F3 + SYS_____OPENDIR2_A = 0x7BF + SYS_____OSNAME_A = 0x7E1 + SYS_____READDIR2_A = 0x7C0 + SYS_DLCLOSE = 0x8DF + SYS_DLERROR = 0x8E0 + SYS_DLOPEN = 0x8DD + SYS_DLSYM = 0x8DE + SYS_FLOCKFILE = 0x8D3 + SYS_FTRYLOCKFILE = 0x8D4 + SYS_FUNLOCKFILE = 0x8D5 + SYS_GETCHAR_UNLOCKED = 0x8D7 + SYS_GETC_UNLOCKED = 0x8D6 + SYS_PUTCHAR_UNLOCKED = 0x8D9 + SYS_PUTC_UNLOCKED = 0x8D8 + SYS_SNPRINTF = 0x8DA + SYS_VSNPRINTF = 0x8DB + SYS_WCSCSPN = 0x08B + SYS_WCSLEN = 0x08C + SYS_WCSNCAT = 0x08D + SYS_WCSNCMP = 0x08A + SYS_WCSNCPY = 0x08F + SYS_WCSSPN = 0x08E + SYS___ABSF_H = 0x8E7 + SYS___ABSL_H = 0x8E8 + SYS___ABS_H = 0x8E6 + SYS___ACOSF_H = 0x8EA + SYS___ACOSH_H = 0x8EC + SYS___ACOSL_H = 0x8EB + SYS___ACOS_H = 0x8E9 + SYS___ASINF_H = 0x8EE + SYS___ASINH_H = 0x8F0 + SYS___ASINL_H = 0x8EF + SYS___ASIN_H = 0x8ED + SYS___ATAN2F_H = 0x8F8 + SYS___ATAN2L_H = 0x8F9 + SYS___ATAN2_H = 0x8F7 + SYS___ATANF_H = 0x8F2 + SYS___ATANHF_H = 0x8F5 + SYS___ATANHL_H = 0x8F6 + SYS___ATANH_H = 0x8F4 + SYS___ATANL_H = 0x8F3 + SYS___ATAN_H = 0x8F1 + SYS___CBRT_H = 0x8FA + SYS___COPYSIGNF_H = 0x8FB + SYS___COPYSIGNL_H = 0x8FC + SYS___COSF_H = 0x8FE + SYS___COSL_H = 0x8FF + SYS___COS_H = 0x8FD + SYS___DLERROR_A = 0x8D2 + SYS___DLOPEN_A = 0x8D0 + SYS___DLSYM_A = 0x8D1 + SYS___GETUTXENT_A = 0x8C6 + SYS___GETUTXID_A = 0x8C7 + SYS___GETUTXLINE_A = 0x8C8 + SYS___ITOA = 0x8AA + SYS___ITOA_A = 0x8B0 + SYS___LE_CONDITION_TOKEN_BUILD = 0x8A5 + SYS___LE_MSG_ADD_INSERT = 0x8A6 + SYS___LE_MSG_GET = 0x8A7 + SYS___LE_MSG_GET_AND_WRITE = 0x8A8 + SYS___LE_MSG_WRITE = 0x8A9 + SYS___LLTOA = 0x8AE + SYS___LLTOA_A = 0x8B4 + SYS___LTOA = 0x8AC + SYS___LTOA_A = 0x8B2 + SYS___PUTCHAR_UNLOCKED_A = 0x8CC + SYS___PUTC_UNLOCKED_A = 0x8CB + SYS___PUTUTXLINE_A = 0x8C9 + SYS___RESET_EXCEPTION_HANDLER = 0x8E3 + SYS___REXEC_A = 0x8C4 + SYS___REXEC_AF_A = 0x8C5 + SYS___SET_EXCEPTION_HANDLER = 0x8E2 + SYS___SNPRINTF_A = 0x8CD + SYS___SUPERKILL = 0x8A4 + SYS___TCGETATTR_A = 0x8A1 + SYS___TCSETATTR_A = 0x8A2 + SYS___ULLTOA = 0x8AF + SYS___ULLTOA_A = 0x8B5 + SYS___ULTOA = 0x8AD + SYS___ULTOA_A = 0x8B3 + SYS___UTOA = 0x8AB + SYS___UTOA_A = 0x8B1 + SYS___VHM_EVENT = 0x8E4 + SYS___VSNPRINTF_A = 0x8CE + SYS_____GETENV_A = 0x8C3 + SYS_____UTMPXNAME_A = 0x8CA + SYS_CACOSH = 0x9A0 + SYS_CACOSHF = 0x9A3 + SYS_CACOSHL = 0x9A6 + SYS_CARG = 0x9A9 + SYS_CARGF = 0x9AC + SYS_CARGL = 0x9AF + SYS_CASIN = 0x9B2 + SYS_CASINF = 0x9B5 + SYS_CASINH = 0x9BB + SYS_CASINHF = 0x9BE + SYS_CASINHL = 0x9C1 + SYS_CASINL = 0x9B8 + SYS_CATAN = 0x9C4 + SYS_CATANF = 0x9C7 + SYS_CATANH = 0x9CD + SYS_CATANHF = 0x9D0 + SYS_CATANHL = 0x9D3 + SYS_CATANL = 0x9CA + SYS_CCOS = 0x9D6 + SYS_CCOSF = 0x9D9 + SYS_CCOSH = 0x9DF + SYS_CCOSHF = 0x9E2 + SYS_CCOSHL = 0x9E5 + SYS_CCOSL = 0x9DC + SYS_CEXP = 0x9E8 + SYS_CEXPF = 0x9EB + SYS_CEXPL = 0x9EE + SYS_CIMAG = 0x9F1 + SYS_CIMAGF = 0x9F4 + SYS_CIMAGL = 0x9F7 + SYS_CLOGF = 0x9FD + SYS_MEMCHR = 0x09B + SYS_MEMCMP = 0x09A + SYS_STRCOLL = 0x09C + SYS_STRNCMP = 0x09D + SYS_STRRCHR = 0x09F + SYS_STRXFRM = 0x09E + SYS___CACOSHF_B = 0x9A4 + SYS___CACOSHF_H = 0x9A5 + SYS___CACOSHL_B = 0x9A7 + SYS___CACOSHL_H = 0x9A8 + SYS___CACOSH_B = 0x9A1 + SYS___CACOSH_H = 0x9A2 + SYS___CARGF_B = 0x9AD + SYS___CARGF_H = 0x9AE + SYS___CARGL_B = 0x9B0 + SYS___CARGL_H = 0x9B1 + SYS___CARG_B = 0x9AA + SYS___CARG_H = 0x9AB + SYS___CASINF_B = 0x9B6 + SYS___CASINF_H = 0x9B7 + SYS___CASINHF_B = 0x9BF + SYS___CASINHF_H = 0x9C0 + SYS___CASINHL_B = 0x9C2 + SYS___CASINHL_H = 0x9C3 + SYS___CASINH_B = 0x9BC + SYS___CASINH_H = 0x9BD + SYS___CASINL_B = 0x9B9 + SYS___CASINL_H = 0x9BA + SYS___CASIN_B = 0x9B3 + SYS___CASIN_H = 0x9B4 + SYS___CATANF_B = 0x9C8 + SYS___CATANF_H = 0x9C9 + SYS___CATANHF_B = 0x9D1 + SYS___CATANHF_H = 0x9D2 + SYS___CATANHL_B = 0x9D4 + SYS___CATANHL_H = 0x9D5 + SYS___CATANH_B = 0x9CE + SYS___CATANH_H = 0x9CF + SYS___CATANL_B = 0x9CB + SYS___CATANL_H = 0x9CC + SYS___CATAN_B = 0x9C5 + SYS___CATAN_H = 0x9C6 + SYS___CCOSF_B = 0x9DA + SYS___CCOSF_H = 0x9DB + SYS___CCOSHF_B = 0x9E3 + SYS___CCOSHF_H = 0x9E4 + SYS___CCOSHL_B = 0x9E6 + SYS___CCOSHL_H = 0x9E7 + SYS___CCOSH_B = 0x9E0 + SYS___CCOSH_H = 0x9E1 + SYS___CCOSL_B = 0x9DD + SYS___CCOSL_H = 0x9DE + SYS___CCOS_B = 0x9D7 + SYS___CCOS_H = 0x9D8 + SYS___CEXPF_B = 0x9EC + SYS___CEXPF_H = 0x9ED + SYS___CEXPL_B = 0x9EF + SYS___CEXPL_H = 0x9F0 + SYS___CEXP_B = 0x9E9 + SYS___CEXP_H = 0x9EA + SYS___CIMAGF_B = 0x9F5 + SYS___CIMAGF_H = 0x9F6 + SYS___CIMAGL_B = 0x9F8 + SYS___CIMAGL_H = 0x9F9 + SYS___CIMAG_B = 0x9F2 + SYS___CIMAG_H = 0x9F3 + SYS___CLOG = 0x9FA + SYS___CLOGF_B = 0x9FE + SYS___CLOGF_H = 0x9FF + SYS___CLOG_B = 0x9FB + SYS___CLOG_H = 0x9FC + SYS_ISWCTYPE = 0x10C + SYS_ISWXDIGI = 0x10A + SYS_ISWXDIGIT = 0x10A + SYS_MBSINIT = 0x10F + SYS_TOWLOWER = 0x10D + SYS_TOWUPPER = 0x10E + SYS_WCTYPE = 0x10B + SYS_WCSSTR = 0x11B + SYS___RPMTCH = 0x11A + SYS_WCSTOD = 0x12E + SYS_WCSTOK = 0x12C + SYS_WCSTOL = 0x12D + SYS_WCSTOUL = 0x12F + SYS_FGETWC = 0x13C + SYS_FGETWS = 0x13D + SYS_FPUTWC = 0x13E + SYS_FPUTWS = 0x13F + SYS_REGERROR = 0x13B + SYS_REGFREE = 0x13A + SYS_COLLEQUIV = 0x14F + SYS_COLLTOSTR = 0x14E + SYS_ISMCCOLLEL = 0x14C + SYS_STRTOCOLL = 0x14D + SYS_DLLFREE = 0x16F + SYS_DLLQUERYFN = 0x16D + SYS_DLLQUERYVAR = 0x16E + SYS_GETMCCOLL = 0x16A + SYS_GETWMCCOLL = 0x16B + SYS___ERR2AD = 0x16C + SYS_CFSETOSPEED = 0x17A + SYS_CHDIR = 0x17B + SYS_CHMOD = 0x17C + SYS_CHOWN = 0x17D + SYS_CLOSE = 0x17E + SYS_CLOSEDIR = 0x17F + SYS_LOG = 0x017 + SYS_COSH = 0x018 + SYS_FCHMOD = 0x18A + SYS_FCHOWN = 0x18B + SYS_FCNTL = 0x18C + SYS_FILENO = 0x18D + SYS_FORK = 0x18E + SYS_FPATHCONF = 0x18F + SYS_GETLOGIN = 0x19A + SYS_GETPGRP = 0x19C + SYS_GETPID = 0x19D + SYS_GETPPID = 0x19E + SYS_GETPWNAM = 0x19F + SYS_TANH = 0x019 + SYS_W_GETMNTENT = 0x19B + SYS_POW = 0x020 + SYS_PTHREAD_SELF = 0x20A + SYS_PTHREAD_SETINTR = 0x20B + SYS_PTHREAD_SETINTRTYPE = 0x20C + SYS_PTHREAD_SETSPECIFIC = 0x20D + SYS_PTHREAD_TESTINTR = 0x20E + SYS_PTHREAD_YIELD = 0x20F + SYS_SQRT = 0x021 + SYS_FLOOR = 0x022 + SYS_J1 = 0x023 + SYS_WCSPBRK = 0x23F + SYS_BSEARCH = 0x24C + SYS_FABS = 0x024 + SYS_GETENV = 0x24A + SYS_LDIV = 0x24D + SYS_SYSTEM = 0x24B + SYS_FMOD = 0x025 + SYS___RETHROW = 0x25F + SYS___THROW = 0x25E + SYS_J0 = 0x026 + SYS_PUTENV = 0x26A + SYS___GETENV = 0x26F + SYS_SEMCTL = 0x27A + SYS_SEMGET = 0x27B + SYS_SEMOP = 0x27C + SYS_SHMAT = 0x27D + SYS_SHMCTL = 0x27E + SYS_SHMDT = 0x27F + SYS_YN = 0x027 + SYS_JN = 0x028 + SYS_SIGALTSTACK = 0x28A + SYS_SIGHOLD = 0x28B + SYS_SIGIGNORE = 0x28C + SYS_SIGINTERRUPT = 0x28D + SYS_SIGPAUSE = 0x28E + SYS_SIGRELSE = 0x28F + SYS_GETOPT = 0x29A + SYS_GETSUBOPT = 0x29D + SYS_LCHOWN = 0x29B + SYS_SETPGRP = 0x29E + SYS_TRUNCATE = 0x29C + SYS_Y0 = 0x029 + SYS___GDERR = 0x29F + SYS_ISALPHA = 0x030 + SYS_VFORK = 0x30F + SYS__LONGJMP = 0x30D + SYS__SETJMP = 0x30E + SYS_GLOB = 0x31A + SYS_GLOBFREE = 0x31B + SYS_ISALNUM = 0x031 + SYS_PUTW = 0x31C + SYS_SEEKDIR = 0x31D + SYS_TELLDIR = 0x31E + SYS_TEMPNAM = 0x31F + SYS_GETTIMEOFDAY_R = 0x32E + SYS_ISLOWER = 0x032 + SYS_LGAMMA = 0x32C + SYS_REMAINDER = 0x32A + SYS_SCALB = 0x32B + SYS_SYNC = 0x32F + SYS_TTYSLOT = 0x32D + SYS_ENDPROTOENT = 0x33A + SYS_ENDSERVENT = 0x33B + SYS_GETHOSTBYADDR = 0x33D + SYS_GETHOSTBYADDR_R = 0x33C + SYS_GETHOSTBYNAME = 0x33F + SYS_GETHOSTBYNAME_R = 0x33E + SYS_ISCNTRL = 0x033 + SYS_GETSERVBYNAME = 0x34A + SYS_GETSERVBYPORT = 0x34B + SYS_GETSERVENT = 0x34C + SYS_GETSOCKNAME = 0x34D + SYS_GETSOCKOPT = 0x34E + SYS_INET_ADDR = 0x34F + SYS_ISDIGIT = 0x034 + SYS_ISGRAPH = 0x035 + SYS_SELECT = 0x35B + SYS_SELECTEX = 0x35C + SYS_SEND = 0x35D + SYS_SENDTO = 0x35F + SYS_CHROOT = 0x36A + SYS_ISNAN = 0x36D + SYS_ISUPPER = 0x036 + SYS_ULIMIT = 0x36C + SYS_UTIMES = 0x36E + SYS_W_STATVFS = 0x36B + SYS___H_ERRNO = 0x36F + SYS_GRANTPT = 0x37A + SYS_ISPRINT = 0x037 + SYS_TCGETSID = 0x37C + SYS_UNLOCKPT = 0x37B + SYS___TCGETCP = 0x37D + SYS___TCSETCP = 0x37E + SYS___TCSETTABLES = 0x37F + SYS_ISPUNCT = 0x038 + SYS_NLIST = 0x38C + SYS___IPDBCS = 0x38D + SYS___IPDSPX = 0x38E + SYS___IPMSGC = 0x38F + SYS___STHOSTENT = 0x38B + SYS___STSERVENT = 0x38A + SYS_ISSPACE = 0x039 + SYS_COS = 0x040 + SYS_T_ALLOC = 0x40A + SYS_T_BIND = 0x40B + SYS_T_CLOSE = 0x40C + SYS_T_CONNECT = 0x40D + SYS_T_ERROR = 0x40E + SYS_T_FREE = 0x40F + SYS_TAN = 0x041 + SYS_T_RCVREL = 0x41A + SYS_T_RCVUDATA = 0x41B + SYS_T_RCVUDERR = 0x41C + SYS_T_SND = 0x41D + SYS_T_SNDDIS = 0x41E + SYS_T_SNDREL = 0x41F + SYS_GETPMSG = 0x42A + SYS_ISASTREAM = 0x42B + SYS_PUTMSG = 0x42C + SYS_PUTPMSG = 0x42D + SYS_SINH = 0x042 + SYS___ISPOSIXON = 0x42E + SYS___OPENMVSREL = 0x42F + SYS_ACOS = 0x043 + SYS_ATAN = 0x044 + SYS_ATAN2 = 0x045 + SYS_FTELL = 0x046 + SYS_FGETPOS = 0x047 + SYS_SOCK_DEBUG = 0x47A + SYS_SOCK_DO_TESTSTOR = 0x47D + SYS_TAKESOCKET = 0x47E + SYS___SERVER_INIT = 0x47F + SYS_FSEEK = 0x048 + SYS___IPHOST = 0x48B + SYS___IPNODE = 0x48C + SYS___SERVER_CLASSIFY_CREATE = 0x48D + SYS___SERVER_CLASSIFY_DESTROY = 0x48E + SYS___SERVER_CLASSIFY_RESET = 0x48F + SYS___SMF_RECORD = 0x48A + SYS_FSETPOS = 0x049 + SYS___FNWSA = 0x49B + SYS___SPAWN2 = 0x49D + SYS___SPAWNP2 = 0x49E + SYS_ATOF = 0x050 + SYS_PTHREAD_MUTEXATTR_GETPSHARED = 0x50A + SYS_PTHREAD_MUTEXATTR_SETPSHARED = 0x50B + SYS_PTHREAD_RWLOCK_DESTROY = 0x50C + SYS_PTHREAD_RWLOCK_INIT = 0x50D + SYS_PTHREAD_RWLOCK_RDLOCK = 0x50E + SYS_PTHREAD_RWLOCK_TRYRDLOCK = 0x50F + SYS_ATOI = 0x051 + SYS___FP_CLASS = 0x51D + SYS___FP_CLR_FLAG = 0x51A + SYS___FP_FINITE = 0x51E + SYS___FP_ISNAN = 0x51F + SYS___FP_RAISE_XCP = 0x51C + SYS___FP_READ_FLAG = 0x51B + SYS_RAND = 0x052 + SYS_SIGTIMEDWAIT = 0x52D + SYS_SIGWAITINFO = 0x52E + SYS___CHKBFP = 0x52F + SYS___FPC_RS = 0x52C + SYS___FPC_RW = 0x52A + SYS___FPC_SM = 0x52B + SYS_STRTOD = 0x053 + SYS_STRTOL = 0x054 + SYS_STRTOUL = 0x055 + SYS_MALLOC = 0x056 + SYS_SRAND = 0x057 + SYS_CALLOC = 0x058 + SYS_FREE = 0x059 + SYS___OSENV = 0x59F + SYS___W_PIOCTL = 0x59E + SYS_LONGJMP = 0x060 + SYS___FLOORF_B = 0x60A + SYS___FLOORL_B = 0x60B + SYS___FREXPF_B = 0x60C + SYS___FREXPL_B = 0x60D + SYS___LDEXPF_B = 0x60E + SYS___LDEXPL_B = 0x60F + SYS_SIGNAL = 0x061 + SYS___ATAN2F_B = 0x61A + SYS___ATAN2L_B = 0x61B + SYS___COSHF_B = 0x61C + SYS___COSHL_B = 0x61D + SYS___EXPF_B = 0x61E + SYS___EXPL_B = 0x61F + SYS_TMPNAM = 0x062 + SYS___ABSF_B = 0x62A + SYS___ABSL_B = 0x62C + SYS___ABS_B = 0x62B + SYS___FMODF_B = 0x62D + SYS___FMODL_B = 0x62E + SYS___MODFF_B = 0x62F + SYS_ATANL = 0x63A + SYS_CEILF = 0x63B + SYS_CEILL = 0x63C + SYS_COSF = 0x63D + SYS_COSHF = 0x63F + SYS_COSL = 0x63E + SYS_REMOVE = 0x063 + SYS_POWL = 0x64A + SYS_RENAME = 0x064 + SYS_SINF = 0x64B + SYS_SINHF = 0x64F + SYS_SINL = 0x64C + SYS_SQRTF = 0x64D + SYS_SQRTL = 0x64E + SYS_BTOWC = 0x65F + SYS_FREXPL = 0x65A + SYS_LDEXPF = 0x65B + SYS_LDEXPL = 0x65C + SYS_MODFF = 0x65D + SYS_MODFL = 0x65E + SYS_TMPFILE = 0x065 + SYS_FREOPEN = 0x066 + SYS___CHARMAP_INIT_A = 0x66E + SYS___GETHOSTBYADDR_R_A = 0x66C + SYS___GETHOSTBYNAME_A = 0x66A + SYS___GETHOSTBYNAME_R_A = 0x66D + SYS___MBLEN_A = 0x66F + SYS___RES_INIT_A = 0x66B + SYS_FCLOSE = 0x067 + SYS___GETGRGID_R_A = 0x67D + SYS___WCSTOMBS_A = 0x67A + SYS___WCSTOMBS_STD_A = 0x67B + SYS___WCSWIDTH_A = 0x67C + SYS___WCSWIDTH_ASIA = 0x67F + SYS___WCSWIDTH_STD_A = 0x67E + SYS_FFLUSH = 0x068 + SYS___GETLOGIN_R_A = 0x68E + SYS___GETPWNAM_R_A = 0x68C + SYS___GETPWUID_R_A = 0x68D + SYS___TTYNAME_R_A = 0x68F + SYS___WCWIDTH_ASIA = 0x68B + SYS___WCWIDTH_STD_A = 0x68A + SYS_FOPEN = 0x069 + SYS___REGEXEC_A = 0x69A + SYS___REGEXEC_STD_A = 0x69B + SYS___REGFREE_A = 0x69C + SYS___REGFREE_STD_A = 0x69D + SYS___STRCOLL_A = 0x69E + SYS___STRCOLL_C_A = 0x69F + SYS_SCANF = 0x070 + SYS___A64L_A = 0x70C + SYS___ECVT_A = 0x70D + SYS___FCVT_A = 0x70E + SYS___GCVT_A = 0x70F + SYS___STRTOUL_A = 0x70A + SYS_____AE_CORRESTBL_QUERY_A = 0x70B + SYS_SPRINTF = 0x071 + SYS___ACCESS_A = 0x71F + SYS___CATOPEN_A = 0x71E + SYS___GETOPT_A = 0x71D + SYS___REALPATH_A = 0x71A + SYS___SETENV_A = 0x71B + SYS___SYSTEM_A = 0x71C + SYS_FGETC = 0x072 + SYS___GAI_STRERROR_A = 0x72F + SYS___RMDIR_A = 0x72A + SYS___STATVFS_A = 0x72B + SYS___SYMLINK_A = 0x72C + SYS___TRUNCATE_A = 0x72D + SYS___UNLINK_A = 0x72E + SYS_VFPRINTF = 0x073 + SYS___ISSPACE_A = 0x73A + SYS___ISUPPER_A = 0x73B + SYS___ISWALNUM_A = 0x73F + SYS___ISXDIGIT_A = 0x73C + SYS___TOLOWER_A = 0x73D + SYS___TOUPPER_A = 0x73E + SYS_VPRINTF = 0x074 + SYS___CONFSTR_A = 0x74B + SYS___FDOPEN_A = 0x74E + SYS___FLDATA_A = 0x74F + SYS___FTOK_A = 0x74C + SYS___ISWXDIGIT_A = 0x74A + SYS___MKTEMP_A = 0x74D + SYS_VSPRINTF = 0x075 + SYS___GETGRGID_A = 0x75A + SYS___GETGRNAM_A = 0x75B + SYS___GETGROUPSBYNAME_A = 0x75C + SYS___GETHOSTENT_A = 0x75D + SYS___GETHOSTNAME_A = 0x75E + SYS___GETLOGIN_A = 0x75F + SYS_GETC = 0x076 + SYS___CREATEWORKUNIT_A = 0x76A + SYS___CTERMID_A = 0x76B + SYS___FMTMSG_A = 0x76C + SYS___INITGROUPS_A = 0x76D + SYS___MSGRCV_A = 0x76F + SYS_____LOGIN_A = 0x76E + SYS_FGETS = 0x077 + SYS___STRCASECMP_A = 0x77B + SYS___STRNCASECMP_A = 0x77C + SYS___TTYNAME_A = 0x77D + SYS___UNAME_A = 0x77E + SYS___UTIMES_A = 0x77F + SYS_____SERVER_PWU_A = 0x77A + SYS_FPUTC = 0x078 + SYS___CREAT_O_A = 0x78E + SYS___ENVNA = 0x78F + SYS___FREAD_A = 0x78A + SYS___FWRITE_A = 0x78B + SYS___ISASCII = 0x78D + SYS___OPEN_O_A = 0x78C + SYS_FPUTS = 0x079 + SYS___ASCTIME_A = 0x79C + SYS___CTIME_A = 0x79D + SYS___GETDATE_A = 0x79E + SYS___GETSERVBYPORT_A = 0x79A + SYS___GETSERVENT_A = 0x79B + SYS___TZSET_A = 0x79F + SYS_ACL_FROM_TEXT = 0x80C + SYS_ACL_SET_FD = 0x80A + SYS_ACL_SET_FILE = 0x80B + SYS_ACL_SORT = 0x80E + SYS_ACL_TO_TEXT = 0x80D + SYS_UNGETC = 0x080 + SYS___SHUTDOWN_REGISTRATION = 0x80F + SYS_FREAD = 0x081 + SYS_FREEADDRINFO = 0x81A + SYS_GAI_STRERROR = 0x81B + SYS_REXEC_AF = 0x81C + SYS___DYNALLOC_A = 0x81F + SYS___POE = 0x81D + SYS_WCSTOMBS = 0x082 + SYS___INET_ADDR_A = 0x82F + SYS___NLIST_A = 0x82A + SYS_____TCGETCP_A = 0x82B + SYS_____TCSETCP_A = 0x82C + SYS_____W_PIOCTL_A = 0x82E + SYS_MBTOWC = 0x083 + SYS___CABEND = 0x83D + SYS___LE_CIB_GET = 0x83E + SYS___RECVMSG_A = 0x83B + SYS___SENDMSG_A = 0x83A + SYS___SET_LAA_FOR_JIT = 0x83F + SYS_____LCHATTR_A = 0x83C + SYS_WCTOMB = 0x084 + SYS___CBRTL_B = 0x84A + SYS___COPYSIGNF_B = 0x84B + SYS___COPYSIGNL_B = 0x84C + SYS___COTANF_B = 0x84D + SYS___COTANL_B = 0x84F + SYS___COTAN_B = 0x84E + SYS_MBSTOWCS = 0x085 + SYS___LOG1PL_B = 0x85A + SYS___LOG2F_B = 0x85B + SYS___LOG2L_B = 0x85D + SYS___LOG2_B = 0x85C + SYS___REMAINDERF_B = 0x85E + SYS___REMAINDERL_B = 0x85F + SYS_ACOSHF = 0x86E + SYS_ACOSHL = 0x86F + SYS_WCSCPY = 0x086 + SYS___ERFCF_B = 0x86D + SYS___ERFF_B = 0x86C + SYS___LROUNDF_B = 0x86A + SYS___LROUND_B = 0x86B + SYS_COTANL = 0x87A + SYS_EXP2F = 0x87B + SYS_EXP2L = 0x87C + SYS_EXPM1F = 0x87D + SYS_EXPM1L = 0x87E + SYS_FDIMF = 0x87F + SYS_WCSCAT = 0x087 + SYS___COTANL = 0x87A + SYS_REMAINDERF = 0x88A + SYS_REMAINDERL = 0x88B + SYS_REMAINDF = 0x88A + SYS_REMAINDL = 0x88B + SYS_REMQUO = 0x88D + SYS_REMQUOF = 0x88C + SYS_REMQUOL = 0x88E + SYS_TGAMMAF = 0x88F + SYS_WCSCHR = 0x088 + SYS_ERFCF = 0x89B + SYS_ERFCL = 0x89C + SYS_ERFL = 0x89A + SYS_EXP2 = 0x89E + SYS_WCSCMP = 0x089 + SYS___EXP2_B = 0x89D + SYS___FAR_JUMP = 0x89F + SYS_ABS = 0x090 + SYS___ERFCL_H = 0x90A + SYS___EXPF_H = 0x90C + SYS___EXPL_H = 0x90D + SYS___EXPM1_H = 0x90E + SYS___EXP_H = 0x90B + SYS___FDIM_H = 0x90F + SYS_DIV = 0x091 + SYS___LOG2F_H = 0x91F + SYS___LOG2_H = 0x91E + SYS___LOGB_H = 0x91D + SYS___LOGF_H = 0x91B + SYS___LOGL_H = 0x91C + SYS___LOG_H = 0x91A + SYS_LABS = 0x092 + SYS___POWL_H = 0x92A + SYS___REMAINDER_H = 0x92B + SYS___RINT_H = 0x92C + SYS___SCALB_H = 0x92D + SYS___SINF_H = 0x92F + SYS___SIN_H = 0x92E + SYS_STRNCPY = 0x093 + SYS___TANHF_H = 0x93B + SYS___TANHL_H = 0x93C + SYS___TANH_H = 0x93A + SYS___TGAMMAF_H = 0x93E + SYS___TGAMMA_H = 0x93D + SYS___TRUNC_H = 0x93F + SYS_MEMCPY = 0x094 + SYS_VFWSCANF = 0x94A + SYS_VSWSCANF = 0x94E + SYS_VWSCANF = 0x94C + SYS_INET6_RTH_ADD = 0x95D + SYS_INET6_RTH_INIT = 0x95C + SYS_INET6_RTH_REVERSE = 0x95E + SYS_INET6_RTH_SEGMENTS = 0x95F + SYS_INET6_RTH_SPACE = 0x95B + SYS_MEMMOVE = 0x095 + SYS_WCSTOLD = 0x95A + SYS_STRCPY = 0x096 + SYS_STRCMP = 0x097 + SYS_CABS = 0x98E + SYS_STRCAT = 0x098 + SYS___CABS_B = 0x98F + SYS___POW_II = 0x98A + SYS___POW_II_B = 0x98B + SYS___POW_II_H = 0x98C + SYS_CACOSF = 0x99A + SYS_CACOSL = 0x99D + SYS_STRNCAT = 0x099 + SYS___CACOSF_B = 0x99B + SYS___CACOSF_H = 0x99C + SYS___CACOSL_B = 0x99E + SYS___CACOSL_H = 0x99F + SYS_ISWALPHA = 0x100 + SYS_ISWBLANK = 0x101 + SYS___ISWBLK = 0x101 + SYS_ISWCNTRL = 0x102 + SYS_ISWDIGIT = 0x103 + SYS_ISWGRAPH = 0x104 + SYS_ISWLOWER = 0x105 + SYS_ISWPRINT = 0x106 + SYS_ISWPUNCT = 0x107 + SYS_ISWSPACE = 0x108 + SYS_ISWUPPER = 0x109 + SYS_WCTOB = 0x110 + SYS_MBRLEN = 0x111 + SYS_MBRTOWC = 0x112 + SYS_MBSRTOWC = 0x113 + SYS_MBSRTOWCS = 0x113 + SYS_WCRTOMB = 0x114 + SYS_WCSRTOMB = 0x115 + SYS_WCSRTOMBS = 0x115 + SYS___CSID = 0x116 + SYS___WCSID = 0x117 + SYS_STRPTIME = 0x118 + SYS___STRPTM = 0x118 + SYS_STRFMON = 0x119 + SYS_WCSCOLL = 0x130 + SYS_WCSXFRM = 0x131 + SYS_WCSWIDTH = 0x132 + SYS_WCWIDTH = 0x133 + SYS_WCSFTIME = 0x134 + SYS_SWPRINTF = 0x135 + SYS_VSWPRINT = 0x136 + SYS_VSWPRINTF = 0x136 + SYS_SWSCANF = 0x137 + SYS_REGCOMP = 0x138 + SYS_REGEXEC = 0x139 + SYS_GETWC = 0x140 + SYS_GETWCHAR = 0x141 + SYS_PUTWC = 0x142 + SYS_PUTWCHAR = 0x143 + SYS_UNGETWC = 0x144 + SYS_ICONV_OPEN = 0x145 + SYS_ICONV = 0x146 + SYS_ICONV_CLOSE = 0x147 + SYS_COLLRANGE = 0x150 + SYS_CCLASS = 0x151 + SYS_COLLORDER = 0x152 + SYS___DEMANGLE = 0x154 + SYS_FDOPEN = 0x155 + SYS___ERRNO = 0x156 + SYS___ERRNO2 = 0x157 + SYS___TERROR = 0x158 + SYS_MAXCOLL = 0x169 + SYS_DLLLOAD = 0x170 + SYS__EXIT = 0x174 + SYS_ACCESS = 0x175 + SYS_ALARM = 0x176 + SYS_CFGETISPEED = 0x177 + SYS_CFGETOSPEED = 0x178 + SYS_CFSETISPEED = 0x179 + SYS_CREAT = 0x180 + SYS_CTERMID = 0x181 + SYS_DUP = 0x182 + SYS_DUP2 = 0x183 + SYS_EXECL = 0x184 + SYS_EXECLE = 0x185 + SYS_EXECLP = 0x186 + SYS_EXECV = 0x187 + SYS_EXECVE = 0x188 + SYS_EXECVP = 0x189 + SYS_FSTAT = 0x190 + SYS_FSYNC = 0x191 + SYS_FTRUNCATE = 0x192 + SYS_GETCWD = 0x193 + SYS_GETEGID = 0x194 + SYS_GETEUID = 0x195 + SYS_GETGID = 0x196 + SYS_GETGRGID = 0x197 + SYS_GETGRNAM = 0x198 + SYS_GETGROUPS = 0x199 + SYS_PTHREAD_MUTEXATTR_DESTROY = 0x200 + SYS_PTHREAD_MUTEXATTR_SETKIND_NP = 0x201 + SYS_PTHREAD_MUTEXATTR_GETKIND_NP = 0x202 + SYS_PTHREAD_MUTEX_INIT = 0x203 + SYS_PTHREAD_MUTEX_DESTROY = 0x204 + SYS_PTHREAD_MUTEX_LOCK = 0x205 + SYS_PTHREAD_MUTEX_TRYLOCK = 0x206 + SYS_PTHREAD_MUTEX_UNLOCK = 0x207 + SYS_PTHREAD_ONCE = 0x209 + SYS_TW_OPEN = 0x210 + SYS_TW_FCNTL = 0x211 + SYS_PTHREAD_JOIN_D4_NP = 0x212 + SYS_PTHREAD_CONDATTR_SETKIND_NP = 0x213 + SYS_PTHREAD_CONDATTR_GETKIND_NP = 0x214 + SYS_EXTLINK_NP = 0x215 + SYS___PASSWD = 0x216 + SYS_SETGROUPS = 0x217 + SYS_INITGROUPS = 0x218 + SYS_WCSRCHR = 0x240 + SYS_SVC99 = 0x241 + SYS___SVC99 = 0x241 + SYS_WCSWCS = 0x242 + SYS_LOCALECO = 0x243 + SYS_LOCALECONV = 0x243 + SYS___LIBREL = 0x244 + SYS_RELEASE = 0x245 + SYS___RLSE = 0x245 + SYS_FLOCATE = 0x246 + SYS___FLOCT = 0x246 + SYS_FDELREC = 0x247 + SYS___FDLREC = 0x247 + SYS_FETCH = 0x248 + SYS___FETCH = 0x248 + SYS_QSORT = 0x249 + SYS___CLEANUPCATCH = 0x260 + SYS___CATCHMATCH = 0x261 + SYS___CLEAN2UPCATCH = 0x262 + SYS_GETPRIORITY = 0x270 + SYS_NICE = 0x271 + SYS_SETPRIORITY = 0x272 + SYS_GETITIMER = 0x273 + SYS_SETITIMER = 0x274 + SYS_MSGCTL = 0x275 + SYS_MSGGET = 0x276 + SYS_MSGRCV = 0x277 + SYS_MSGSND = 0x278 + SYS_MSGXRCV = 0x279 + SYS___MSGXR = 0x279 + SYS_SHMGET = 0x280 + SYS___GETIPC = 0x281 + SYS_SETGRENT = 0x282 + SYS_GETGRENT = 0x283 + SYS_ENDGRENT = 0x284 + SYS_SETPWENT = 0x285 + SYS_GETPWENT = 0x286 + SYS_ENDPWENT = 0x287 + SYS_BSD_SIGNAL = 0x288 + SYS_KILLPG = 0x289 + SYS_SIGSET = 0x290 + SYS_SIGSTACK = 0x291 + SYS_GETRLIMIT = 0x292 + SYS_SETRLIMIT = 0x293 + SYS_GETRUSAGE = 0x294 + SYS_MMAP = 0x295 + SYS_MPROTECT = 0x296 + SYS_MSYNC = 0x297 + SYS_MUNMAP = 0x298 + SYS_CONFSTR = 0x299 + SYS___NDMTRM = 0x300 + SYS_FTOK = 0x301 + SYS_BASENAME = 0x302 + SYS_DIRNAME = 0x303 + SYS_GETDTABLESIZE = 0x304 + SYS_MKSTEMP = 0x305 + SYS_MKTEMP = 0x306 + SYS_NFTW = 0x307 + SYS_GETWD = 0x308 + SYS_LOCKF = 0x309 + SYS_WORDEXP = 0x310 + SYS_WORDFREE = 0x311 + SYS_GETPGID = 0x312 + SYS_GETSID = 0x313 + SYS___UTMPXNAME = 0x314 + SYS_CUSERID = 0x315 + SYS_GETPASS = 0x316 + SYS_FNMATCH = 0x317 + SYS_FTW = 0x318 + SYS_GETW = 0x319 + SYS_ACOSH = 0x320 + SYS_ASINH = 0x321 + SYS_ATANH = 0x322 + SYS_CBRT = 0x323 + SYS_EXPM1 = 0x324 + SYS_ILOGB = 0x325 + SYS_LOGB = 0x326 + SYS_LOG1P = 0x327 + SYS_NEXTAFTER = 0x328 + SYS_RINT = 0x329 + SYS_SPAWN = 0x330 + SYS_SPAWNP = 0x331 + SYS_GETLOGIN_UU = 0x332 + SYS_ECVT = 0x333 + SYS_FCVT = 0x334 + SYS_GCVT = 0x335 + SYS_ACCEPT = 0x336 + SYS_BIND = 0x337 + SYS_CONNECT = 0x338 + SYS_ENDHOSTENT = 0x339 + SYS_GETHOSTENT = 0x340 + SYS_GETHOSTID = 0x341 + SYS_GETHOSTNAME = 0x342 + SYS_GETNETBYADDR = 0x343 + SYS_GETNETBYNAME = 0x344 + SYS_GETNETENT = 0x345 + SYS_GETPEERNAME = 0x346 + SYS_GETPROTOBYNAME = 0x347 + SYS_GETPROTOBYNUMBER = 0x348 + SYS_GETPROTOENT = 0x349 + SYS_INET_LNAOF = 0x350 + SYS_INET_MAKEADDR = 0x351 + SYS_INET_NETOF = 0x352 + SYS_INET_NETWORK = 0x353 + SYS_INET_NTOA = 0x354 + SYS_IOCTL = 0x355 + SYS_LISTEN = 0x356 + SYS_READV = 0x357 + SYS_RECV = 0x358 + SYS_RECVFROM = 0x359 + SYS_SETHOSTENT = 0x360 + SYS_SETNETENT = 0x361 + SYS_SETPEER = 0x362 + SYS_SETPROTOENT = 0x363 + SYS_SETSERVENT = 0x364 + SYS_SETSOCKOPT = 0x365 + SYS_SHUTDOWN = 0x366 + SYS_SOCKET = 0x367 + SYS_SOCKETPAIR = 0x368 + SYS_WRITEV = 0x369 + SYS_ENDNETENT = 0x370 + SYS_CLOSELOG = 0x371 + SYS_OPENLOG = 0x372 + SYS_SETLOGMASK = 0x373 + SYS_SYSLOG = 0x374 + SYS_PTSNAME = 0x375 + SYS_SETREUID = 0x376 + SYS_SETREGID = 0x377 + SYS_REALPATH = 0x378 + SYS___SIGNGAM = 0x379 + SYS_POLL = 0x380 + SYS_REXEC = 0x381 + SYS___ISASCII2 = 0x382 + SYS___TOASCII2 = 0x383 + SYS_CHPRIORITY = 0x384 + SYS_PTHREAD_ATTR_SETSYNCTYPE_NP = 0x385 + SYS_PTHREAD_ATTR_GETSYNCTYPE_NP = 0x386 + SYS_PTHREAD_SET_LIMIT_NP = 0x387 + SYS___STNETENT = 0x388 + SYS___STPROTOENT = 0x389 + SYS___SELECT1 = 0x390 + SYS_PTHREAD_SECURITY_NP = 0x391 + SYS___CHECK_RESOURCE_AUTH_NP = 0x392 + SYS___CONVERT_ID_NP = 0x393 + SYS___OPENVMREL = 0x394 + SYS_WMEMCHR = 0x395 + SYS_WMEMCMP = 0x396 + SYS_WMEMCPY = 0x397 + SYS_WMEMMOVE = 0x398 + SYS_WMEMSET = 0x399 + SYS___FPUTWC = 0x400 + SYS___PUTWC = 0x401 + SYS___PWCHAR = 0x402 + SYS___WCSFTM = 0x403 + SYS___WCSTOK = 0x404 + SYS___WCWDTH = 0x405 + SYS_T_ACCEPT = 0x409 + SYS_T_GETINFO = 0x410 + SYS_T_GETPROTADDR = 0x411 + SYS_T_GETSTATE = 0x412 + SYS_T_LISTEN = 0x413 + SYS_T_LOOK = 0x414 + SYS_T_OPEN = 0x415 + SYS_T_OPTMGMT = 0x416 + SYS_T_RCV = 0x417 + SYS_T_RCVCONNECT = 0x418 + SYS_T_RCVDIS = 0x419 + SYS_T_SNDUDATA = 0x420 + SYS_T_STRERROR = 0x421 + SYS_T_SYNC = 0x422 + SYS_T_UNBIND = 0x423 + SYS___T_ERRNO = 0x424 + SYS___RECVMSG2 = 0x425 + SYS___SENDMSG2 = 0x426 + SYS_FATTACH = 0x427 + SYS_FDETACH = 0x428 + SYS_GETMSG = 0x429 + SYS_GETCONTEXT = 0x430 + SYS_SETCONTEXT = 0x431 + SYS_MAKECONTEXT = 0x432 + SYS_SWAPCONTEXT = 0x433 + SYS_PTHREAD_GETSPECIFIC_D8_NP = 0x434 + SYS_GETCLIENTID = 0x470 + SYS___GETCLIENTID = 0x471 + SYS_GETSTABLESIZE = 0x472 + SYS_GETIBMOPT = 0x473 + SYS_GETIBMSOCKOPT = 0x474 + SYS_GIVESOCKET = 0x475 + SYS_IBMSFLUSH = 0x476 + SYS_MAXDESC = 0x477 + SYS_SETIBMOPT = 0x478 + SYS_SETIBMSOCKOPT = 0x479 + SYS___SERVER_PWU = 0x480 + SYS_PTHREAD_TAG_NP = 0x481 + SYS___CONSOLE = 0x482 + SYS___WSINIT = 0x483 + SYS___IPTCPN = 0x489 + SYS___SERVER_CLASSIFY = 0x490 + SYS___HEAPRPT = 0x496 + SYS___ISBFP = 0x500 + SYS___FP_CAST = 0x501 + SYS___CERTIFICATE = 0x502 + SYS_SEND_FILE = 0x503 + SYS_AIO_CANCEL = 0x504 + SYS_AIO_ERROR = 0x505 + SYS_AIO_READ = 0x506 + SYS_AIO_RETURN = 0x507 + SYS_AIO_SUSPEND = 0x508 + SYS_AIO_WRITE = 0x509 + SYS_PTHREAD_RWLOCK_TRYWRLOCK = 0x510 + SYS_PTHREAD_RWLOCK_UNLOCK = 0x511 + SYS_PTHREAD_RWLOCK_WRLOCK = 0x512 + SYS_PTHREAD_RWLOCKATTR_GETPSHARED = 0x513 + SYS_PTHREAD_RWLOCKATTR_SETPSHARED = 0x514 + SYS_PTHREAD_RWLOCKATTR_INIT = 0x515 + SYS_PTHREAD_RWLOCKATTR_DESTROY = 0x516 + SYS___CTTBL = 0x517 + SYS_PTHREAD_MUTEXATTR_SETTYPE = 0x518 + SYS_PTHREAD_MUTEXATTR_GETTYPE = 0x519 + SYS___FP_UNORDERED = 0x520 + SYS___FP_READ_RND = 0x521 + SYS___FP_READ_RND_B = 0x522 + SYS___FP_SWAP_RND = 0x523 + SYS___FP_SWAP_RND_B = 0x524 + SYS___FP_LEVEL = 0x525 + SYS___FP_BTOH = 0x526 + SYS___FP_HTOB = 0x527 + SYS___FPC_RD = 0x528 + SYS___FPC_WR = 0x529 + SYS_PTHREAD_SETCANCELTYPE = 0x600 + SYS_PTHREAD_TESTCANCEL = 0x601 + SYS___ATANF_B = 0x602 + SYS___ATANL_B = 0x603 + SYS___CEILF_B = 0x604 + SYS___CEILL_B = 0x605 + SYS___COSF_B = 0x606 + SYS___COSL_B = 0x607 + SYS___FABSF_B = 0x608 + SYS___FABSL_B = 0x609 + SYS___SINF_B = 0x610 + SYS___SINL_B = 0x611 + SYS___TANF_B = 0x612 + SYS___TANL_B = 0x613 + SYS___TANHF_B = 0x614 + SYS___TANHL_B = 0x615 + SYS___ACOSF_B = 0x616 + SYS___ACOSL_B = 0x617 + SYS___ASINF_B = 0x618 + SYS___ASINL_B = 0x619 + SYS___LOGF_B = 0x620 + SYS___LOGL_B = 0x621 + SYS___LOG10F_B = 0x622 + SYS___LOG10L_B = 0x623 + SYS___POWF_B = 0x624 + SYS___POWL_B = 0x625 + SYS___SINHF_B = 0x626 + SYS___SINHL_B = 0x627 + SYS___SQRTF_B = 0x628 + SYS___SQRTL_B = 0x629 + SYS___MODFL_B = 0x630 + SYS_ABSF = 0x631 + SYS_ABSL = 0x632 + SYS_ACOSF = 0x633 + SYS_ACOSL = 0x634 + SYS_ASINF = 0x635 + SYS_ASINL = 0x636 + SYS_ATAN2F = 0x637 + SYS_ATAN2L = 0x638 + SYS_ATANF = 0x639 + SYS_COSHL = 0x640 + SYS_EXPF = 0x641 + SYS_EXPL = 0x642 + SYS_TANHF = 0x643 + SYS_TANHL = 0x644 + SYS_LOG10F = 0x645 + SYS_LOG10L = 0x646 + SYS_LOGF = 0x647 + SYS_LOGL = 0x648 + SYS_POWF = 0x649 + SYS_SINHL = 0x650 + SYS_TANF = 0x651 + SYS_TANL = 0x652 + SYS_FABSF = 0x653 + SYS_FABSL = 0x654 + SYS_FLOORF = 0x655 + SYS_FLOORL = 0x656 + SYS_FMODF = 0x657 + SYS_FMODL = 0x658 + SYS_FREXPF = 0x659 + SYS___CHATTR = 0x660 + SYS___FCHATTR = 0x661 + SYS___TOCCSID = 0x662 + SYS___CSNAMETYPE = 0x663 + SYS___TOCSNAME = 0x664 + SYS___CCSIDTYPE = 0x665 + SYS___AE_CORRESTBL_QUERY = 0x666 + SYS___AE_AUTOCONVERT_STATE = 0x667 + SYS_DN_FIND = 0x668 + SYS___GETHOSTBYADDR_A = 0x669 + SYS___MBLEN_SB_A = 0x670 + SYS___MBLEN_STD_A = 0x671 + SYS___MBLEN_UTF = 0x672 + SYS___MBSTOWCS_A = 0x673 + SYS___MBSTOWCS_STD_A = 0x674 + SYS___MBTOWC_A = 0x675 + SYS___MBTOWC_ISO1 = 0x676 + SYS___MBTOWC_SBCS = 0x677 + SYS___MBTOWC_MBCS = 0x678 + SYS___MBTOWC_UTF = 0x679 + SYS___CSID_A = 0x680 + SYS___CSID_STD_A = 0x681 + SYS___WCSID_A = 0x682 + SYS___WCSID_STD_A = 0x683 + SYS___WCTOMB_A = 0x684 + SYS___WCTOMB_ISO1 = 0x685 + SYS___WCTOMB_STD_A = 0x686 + SYS___WCTOMB_UTF = 0x687 + SYS___WCWIDTH_A = 0x688 + SYS___GETGRNAM_R_A = 0x689 + SYS___READDIR_R_A = 0x690 + SYS___E2A_S = 0x691 + SYS___FNMATCH_A = 0x692 + SYS___FNMATCH_C_A = 0x693 + SYS___EXECL_A = 0x694 + SYS___FNMATCH_STD_A = 0x695 + SYS___REGCOMP_A = 0x696 + SYS___REGCOMP_STD_A = 0x697 + SYS___REGERROR_A = 0x698 + SYS___REGERROR_STD_A = 0x699 + SYS___SWPRINTF_A = 0x700 + SYS___FSCANF_A = 0x701 + SYS___SCANF_A = 0x702 + SYS___SSCANF_A = 0x703 + SYS___SWSCANF_A = 0x704 + SYS___ATOF_A = 0x705 + SYS___ATOI_A = 0x706 + SYS___ATOL_A = 0x707 + SYS___STRTOD_A = 0x708 + SYS___STRTOL_A = 0x709 + SYS___L64A_A = 0x710 + SYS___STRERROR_A = 0x711 + SYS___PERROR_A = 0x712 + SYS___FETCH_A = 0x713 + SYS___GETENV_A = 0x714 + SYS___MKSTEMP_A = 0x717 + SYS___PTSNAME_A = 0x718 + SYS___PUTENV_A = 0x719 + SYS___CHDIR_A = 0x720 + SYS___CHOWN_A = 0x721 + SYS___CHROOT_A = 0x722 + SYS___GETCWD_A = 0x723 + SYS___GETWD_A = 0x724 + SYS___LCHOWN_A = 0x725 + SYS___LINK_A = 0x726 + SYS___PATHCONF_A = 0x727 + SYS___IF_NAMEINDEX_A = 0x728 + SYS___READLINK_A = 0x729 + SYS___EXTLINK_NP_A = 0x730 + SYS___ISALNUM_A = 0x731 + SYS___ISALPHA_A = 0x732 + SYS___A2E_S = 0x733 + SYS___ISCNTRL_A = 0x734 + SYS___ISDIGIT_A = 0x735 + SYS___ISGRAPH_A = 0x736 + SYS___ISLOWER_A = 0x737 + SYS___ISPRINT_A = 0x738 + SYS___ISPUNCT_A = 0x739 + SYS___ISWALPHA_A = 0x740 + SYS___A2E_L = 0x741 + SYS___ISWCNTRL_A = 0x742 + SYS___ISWDIGIT_A = 0x743 + SYS___ISWGRAPH_A = 0x744 + SYS___ISWLOWER_A = 0x745 + SYS___ISWPRINT_A = 0x746 + SYS___ISWPUNCT_A = 0x747 + SYS___ISWSPACE_A = 0x748 + SYS___ISWUPPER_A = 0x749 + SYS___REMOVE_A = 0x750 + SYS___RENAME_A = 0x751 + SYS___TMPNAM_A = 0x752 + SYS___FOPEN_A = 0x753 + SYS___FREOPEN_A = 0x754 + SYS___CUSERID_A = 0x755 + SYS___POPEN_A = 0x756 + SYS___TEMPNAM_A = 0x757 + SYS___FTW_A = 0x758 + SYS___GETGRENT_A = 0x759 + SYS___INET_NTOP_A = 0x760 + SYS___GETPASS_A = 0x761 + SYS___GETPWENT_A = 0x762 + SYS___GETPWNAM_A = 0x763 + SYS___GETPWUID_A = 0x764 + SYS_____CHECK_RESOURCE_AUTH_NP_A = 0x765 + SYS___CHECKSCHENV_A = 0x766 + SYS___CONNECTSERVER_A = 0x767 + SYS___CONNECTWORKMGR_A = 0x768 + SYS_____CONSOLE_A = 0x769 + SYS___MSGSND_A = 0x770 + SYS___MSGXRCV_A = 0x771 + SYS___NFTW_A = 0x772 + SYS_____PASSWD_A = 0x773 + SYS___PTHREAD_SECURITY_NP_A = 0x774 + SYS___QUERYMETRICS_A = 0x775 + SYS___QUERYSCHENV = 0x776 + SYS___READV_A = 0x777 + SYS_____SERVER_CLASSIFY_A = 0x778 + SYS_____SERVER_INIT_A = 0x779 + SYS___W_GETPSENT_A = 0x780 + SYS___WRITEV_A = 0x781 + SYS___W_STATFS_A = 0x782 + SYS___W_STATVFS_A = 0x783 + SYS___FPUTC_A = 0x784 + SYS___PUTCHAR_A = 0x785 + SYS___PUTS_A = 0x786 + SYS___FGETS_A = 0x787 + SYS___GETS_A = 0x788 + SYS___FPUTS_A = 0x789 + SYS___PUTC_A = 0x790 + SYS___AE_THREAD_SETMODE = 0x791 + SYS___AE_THREAD_SWAPMODE = 0x792 + SYS___GETNETBYADDR_A = 0x793 + SYS___GETNETBYNAME_A = 0x794 + SYS___GETNETENT_A = 0x795 + SYS___GETPROTOBYNAME_A = 0x796 + SYS___GETPROTOBYNUMBER_A = 0x797 + SYS___GETPROTOENT_A = 0x798 + SYS___GETSERVBYNAME_A = 0x799 + SYS_ACL_FIRST_ENTRY = 0x800 + SYS_ACL_GET_ENTRY = 0x801 + SYS_ACL_VALID = 0x802 + SYS_ACL_CREATE_ENTRY = 0x803 + SYS_ACL_DELETE_ENTRY = 0x804 + SYS_ACL_UPDATE_ENTRY = 0x805 + SYS_ACL_DELETE_FD = 0x806 + SYS_ACL_DELETE_FILE = 0x807 + SYS_ACL_GET_FD = 0x808 + SYS_ACL_GET_FILE = 0x809 + SYS___ERFL_B = 0x810 + SYS___ERFCL_B = 0x811 + SYS___LGAMMAL_B = 0x812 + SYS___SETHOOKEVENTS = 0x813 + SYS_IF_NAMETOINDEX = 0x814 + SYS_IF_INDEXTONAME = 0x815 + SYS_IF_NAMEINDEX = 0x816 + SYS_IF_FREENAMEINDEX = 0x817 + SYS_GETADDRINFO = 0x818 + SYS_GETNAMEINFO = 0x819 + SYS___DYNFREE_A = 0x820 + SYS___RES_QUERY_A = 0x821 + SYS___RES_SEARCH_A = 0x822 + SYS___RES_QUERYDOMAIN_A = 0x823 + SYS___RES_MKQUERY_A = 0x824 + SYS___RES_SEND_A = 0x825 + SYS___DN_EXPAND_A = 0x826 + SYS___DN_SKIPNAME_A = 0x827 + SYS___DN_COMP_A = 0x828 + SYS___DN_FIND_A = 0x829 + SYS___INET_NTOA_A = 0x830 + SYS___INET_NETWORK_A = 0x831 + SYS___ACCEPT_A = 0x832 + SYS___ACCEPT_AND_RECV_A = 0x833 + SYS___BIND_A = 0x834 + SYS___CONNECT_A = 0x835 + SYS___GETPEERNAME_A = 0x836 + SYS___GETSOCKNAME_A = 0x837 + SYS___RECVFROM_A = 0x838 + SYS___SENDTO_A = 0x839 + SYS___LCHATTR = 0x840 + SYS___WRITEDOWN = 0x841 + SYS_PTHREAD_MUTEX_INIT2 = 0x842 + SYS___ACOSHF_B = 0x843 + SYS___ACOSHL_B = 0x844 + SYS___ASINHF_B = 0x845 + SYS___ASINHL_B = 0x846 + SYS___ATANHF_B = 0x847 + SYS___ATANHL_B = 0x848 + SYS___CBRTF_B = 0x849 + SYS___EXP2F_B = 0x850 + SYS___EXP2L_B = 0x851 + SYS___EXPM1F_B = 0x852 + SYS___EXPM1L_B = 0x853 + SYS___FDIMF_B = 0x854 + SYS___FDIM_B = 0x855 + SYS___FDIML_B = 0x856 + SYS___HYPOTF_B = 0x857 + SYS___HYPOTL_B = 0x858 + SYS___LOG1PF_B = 0x859 + SYS___REMQUOF_B = 0x860 + SYS___REMQUO_B = 0x861 + SYS___REMQUOL_B = 0x862 + SYS___TGAMMAF_B = 0x863 + SYS___TGAMMA_B = 0x864 + SYS___TGAMMAL_B = 0x865 + SYS___TRUNCF_B = 0x866 + SYS___TRUNC_B = 0x867 + SYS___TRUNCL_B = 0x868 + SYS___LGAMMAF_B = 0x869 + SYS_ASINHF = 0x870 + SYS_ASINHL = 0x871 + SYS_ATANHF = 0x872 + SYS_ATANHL = 0x873 + SYS_CBRTF = 0x874 + SYS_CBRTL = 0x875 + SYS_COPYSIGNF = 0x876 + SYS_CPYSIGNF = 0x876 + SYS_COPYSIGNL = 0x877 + SYS_CPYSIGNL = 0x877 + SYS_COTANF = 0x878 + SYS___COTANF = 0x878 + SYS_COTAN = 0x879 + SYS___COTAN = 0x879 + SYS_FDIM = 0x881 + SYS_FDIML = 0x882 + SYS_HYPOTF = 0x883 + SYS_HYPOTL = 0x884 + SYS_LOG1PF = 0x885 + SYS_LOG1PL = 0x886 + SYS_LOG2F = 0x887 + SYS_LOG2 = 0x888 + SYS_LOG2L = 0x889 + SYS_TGAMMA = 0x890 + SYS_TGAMMAL = 0x891 + SYS_TRUNCF = 0x892 + SYS_TRUNC = 0x893 + SYS_TRUNCL = 0x894 + SYS_LGAMMAF = 0x895 + SYS_LGAMMAL = 0x896 + SYS_LROUNDF = 0x897 + SYS_LROUND = 0x898 + SYS_ERFF = 0x899 + SYS___COSHF_H = 0x900 + SYS___COSHL_H = 0x901 + SYS___COTAN_H = 0x902 + SYS___COTANF_H = 0x903 + SYS___COTANL_H = 0x904 + SYS___ERF_H = 0x905 + SYS___ERFF_H = 0x906 + SYS___ERFL_H = 0x907 + SYS___ERFC_H = 0x908 + SYS___ERFCF_H = 0x909 + SYS___FDIMF_H = 0x910 + SYS___FDIML_H = 0x911 + SYS___FMOD_H = 0x912 + SYS___FMODF_H = 0x913 + SYS___FMODL_H = 0x914 + SYS___GAMMA_H = 0x915 + SYS___HYPOT_H = 0x916 + SYS___ILOGB_H = 0x917 + SYS___LGAMMA_H = 0x918 + SYS___LGAMMAF_H = 0x919 + SYS___LOG2L_H = 0x920 + SYS___LOG1P_H = 0x921 + SYS___LOG10_H = 0x922 + SYS___LOG10F_H = 0x923 + SYS___LOG10L_H = 0x924 + SYS___LROUND_H = 0x925 + SYS___LROUNDF_H = 0x926 + SYS___NEXTAFTER_H = 0x927 + SYS___POW_H = 0x928 + SYS___POWF_H = 0x929 + SYS___SINL_H = 0x930 + SYS___SINH_H = 0x931 + SYS___SINHF_H = 0x932 + SYS___SINHL_H = 0x933 + SYS___SQRT_H = 0x934 + SYS___SQRTF_H = 0x935 + SYS___SQRTL_H = 0x936 + SYS___TAN_H = 0x937 + SYS___TANF_H = 0x938 + SYS___TANL_H = 0x939 + SYS___TRUNCF_H = 0x940 + SYS___TRUNCL_H = 0x941 + SYS___COSH_H = 0x942 + SYS___LE_DEBUG_SET_RESUME_MCH = 0x943 + SYS_VFSCANF = 0x944 + SYS_VSCANF = 0x946 + SYS_VSSCANF = 0x948 + SYS_IMAXABS = 0x950 + SYS_IMAXDIV = 0x951 + SYS_STRTOIMAX = 0x952 + SYS_STRTOUMAX = 0x953 + SYS_WCSTOIMAX = 0x954 + SYS_WCSTOUMAX = 0x955 + SYS_ATOLL = 0x956 + SYS_STRTOF = 0x957 + SYS_STRTOLD = 0x958 + SYS_WCSTOF = 0x959 + SYS_INET6_RTH_GETADDR = 0x960 + SYS_INET6_OPT_INIT = 0x961 + SYS_INET6_OPT_APPEND = 0x962 + SYS_INET6_OPT_FINISH = 0x963 + SYS_INET6_OPT_SET_VAL = 0x964 + SYS_INET6_OPT_NEXT = 0x965 + SYS_INET6_OPT_FIND = 0x966 + SYS_INET6_OPT_GET_VAL = 0x967 + SYS___POW_I = 0x987 + SYS___POW_I_B = 0x988 + SYS___POW_I_H = 0x989 + SYS___CABS_H = 0x990 + SYS_CABSF = 0x991 + SYS___CABSF_B = 0x992 + SYS___CABSF_H = 0x993 + SYS_CABSL = 0x994 + SYS___CABSL_B = 0x995 + SYS___CABSL_H = 0x996 + SYS_CACOS = 0x997 + SYS___CACOS_B = 0x998 + SYS___CACOS_H = 0x999 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go new file mode 100644 index 0000000000..7a8161c1d1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go @@ -0,0 +1,354 @@ +// cgo -godefs types_aix.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && aix +// +build ppc,aix + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type off64 int64 +type off int32 +type Mode_t uint32 + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timex struct{} + +type Time_t int32 + +type Tms struct{} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type Pid_t int32 + +type _Gid_t uint32 + +type dev_t uint32 + +type Stat_t struct { + Dev uint32 + Ino uint32 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Size int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Blocks int32 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 +} + +type StatxTimestamp struct{} + +type Statx_t struct{} + +type Dirent struct { + Offset uint32 + Ino uint32 + Reclen uint16 + Namlen uint16 + Name [256]uint8 +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [1023]uint8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 +) + +const ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + _ [1]byte +} + +type FdSet struct { + Bits [2048]int32 +} + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +type Ustat_t struct{} + +type Sigset_t struct { + Losigs uint32 + Hisigs uint32 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x1 + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line uint8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events uint16 + Revents uint16 +} + +const ( + POLLERR = 0x4000 + POLLHUP = 0x2000 + POLLIN = 0x1 + POLLNVAL = 0x8000 + POLLOUT = 0x2 + POLLPRI = 0x4 + POLLRDBAND = 0x20 + POLLRDNORM = 0x10 + POLLWRBAND = 0x40 + POLLWRNORM = 0x2 +) + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Fsid_t struct { + Val [2]uint32 +} +type Fsid64_t struct { + Val [2]uint64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint32 + Blocks uint32 + Bfree uint32 + Bavail uint32 + Files uint32 + Ffree uint32 + Fsid Fsid_t + Vfstype int32 + Fsize uint32 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 +} + +const RNDGETENTCNT = 0x80045200 diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go new file mode 100644 index 0000000000..07ed733c51 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go @@ -0,0 +1,358 @@ +// cgo -godefs types_aix.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && aix +// +build ppc64,aix + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type off64 int64 +type off int64 +type Mode_t uint32 + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timex struct{} + +type Time_t int64 + +type Tms struct{} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type Pid_t int32 + +type _Gid_t uint32 + +type dev_t uint64 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint64 + Ssize int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 + Padto_ll uint32 + Size int64 +} + +type StatxTimestamp struct{} + +type Statx_t struct{} + +type Dirent struct { + Offset uint64 + Ino uint64 + Reclen uint16 + Namlen uint16 + Name [256]uint8 + _ [4]byte +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [1023]uint8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 +) + +const ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + _ [1]byte +} + +type FdSet struct { + Bits [1024]int64 +} + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +type Ustat_t struct{} + +type Sigset_t struct { + Set [4]uint64 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x1 + AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line uint8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events uint16 + Revents uint16 +} + +const ( + POLLERR = 0x4000 + POLLHUP = 0x2000 + POLLIN = 0x1 + POLLNVAL = 0x8000 + POLLOUT = 0x2 + POLLPRI = 0x4 + POLLRDBAND = 0x20 + POLLRDNORM = 0x10 + POLLWRBAND = 0x40 + POLLWRNORM = 0x2 +) + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Fsid_t struct { + Val [2]uint32 +} +type Fsid64_t struct { + Val [2]uint64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid64_t + Vfstype int32 + Fsize uint64 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 + _ [4]byte +} + +const RNDGETENTCNT = 0x80045200 diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go new file mode 100644 index 0000000000..e2a64f0991 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go @@ -0,0 +1,795 @@ +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && darwin +// +build amd64,darwin + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + _ [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + _ [16]byte +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + +type RawSockaddrVM struct { + Len uint8 + Family uint8 + Reserved1 uint16 + Port uint32 + Cid uint32 +} + +type XVSockPCB struct { + Xv_len uint32 + Xv_vsockpp uint64 + Xvp_local_cid uint32 + Xvp_local_port uint32 + Xvp_remote_cid uint32 + Xvp_remote_port uint32 + Xvp_rxcnt uint32 + Xvp_txcnt uint32 + Xvp_peer_rxhiwat uint32 + Xvp_peer_rxcnt uint32 + Xvp_last_pid int32 + Xvp_gencnt uint64 + Xv_socket XSocket + _ [4]byte +} + +type XSocket struct { + Xso_len uint32 + Xso_so uint32 + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + So_pcb uint32 + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSocket64 struct { + Xso_len uint32 + _ [8]byte + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + _ [8]byte + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSockbuf struct { + Cc uint32 + Hiwat uint32 + Mbcnt uint32 + Mbmax uint32 + Lowat int32 + Flags int16 + Timeo int16 +} + +type XVSockPgen struct { + Len uint32 + Count uint64 + Gen uint64 + Sogen uint64 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type TCPConnectionInfo struct { + State uint8 + Snd_wscale uint8 + Rcv_wscale uint8 + _ uint8 + Options uint32 + Flags uint32 + Rto uint32 + Maxseg uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Snd_wnd uint32 + Snd_sbbytes uint32 + Rcv_wnd uint32 + Rttcur uint32 + Srtt uint32 + Rttvar uint32 + Txpackets uint64 + Txbytes uint64 + Txretransmitbytes uint64 + Rxpackets uint64 + Rxbytes uint64 + Rxoutoforderbytes uint64 + Txretransmitpackets uint64 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofSockaddrVM = 0xc + SizeofXvsockpcb = 0xa8 + SizeofXSocket = 0x64 + SizeofXSockbuf = 0x18 + SizeofXVSockPgen = 0x20 + SizeofXucred = 0x4c + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofTCPConnectionInfo = 0x70 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Ispeed uint64 + Ospeed uint64 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} + +const SizeofKinfoProc = 0x288 + +type Eproc struct { + Paddr uintptr + Sess uintptr + Pcred Pcred + Ucred Ucred + Vm Vmspace + Ppid int32 + Pgid int32 + Jobc int16 + Tdev int32 + Tpgid int32 + Tsess uintptr + Wmesg [8]byte + Xsize int32 + Xrssize int16 + Xccount int16 + Xswrss int16 + Flag int32 + Login [12]byte + Spare [4]int32 + _ [4]byte +} + +type ExternProc struct { + P_starttime Timeval + P_vmspace *Vmspace + P_sigacts uintptr + P_flag int32 + P_stat int8 + P_pid int32 + P_oppid int32 + P_dupfd int32 + User_stack *int8 + Exit_thread *byte + P_debugger int32 + Sigwait int32 + P_estcpu uint32 + P_cpticks int32 + P_pctcpu uint32 + P_wchan *byte + P_wmesg *int8 + P_swtime uint32 + P_slptime uint32 + P_realtimer Itimerval + P_rtime Timeval + P_uticks uint64 + P_sticks uint64 + P_iticks uint64 + P_traceflag int32 + P_tracep uintptr + P_siglist int32 + P_textvp uintptr + P_holdcnt int32 + P_sigmask uint32 + P_sigignore uint32 + P_sigcatch uint32 + P_priority uint8 + P_usrpri uint8 + P_nice int8 + P_comm [17]byte + P_pgrp uintptr + P_addr uintptr + P_xstat uint16 + P_acflag uint16 + P_ru *Rusage +} + +type Itimerval struct { + Interval Timeval + Value Timeval +} + +type KinfoProc struct { + Proc ExternProc + Eproc Eproc +} + +type Vmspace struct { + Dummy int32 + Dummy2 *int8 + Dummy3 [5]int32 + Dummy4 [3]*int8 +} + +type Pcred struct { + Pc_lock [72]int8 + Pc_ucred uintptr + P_ruid uint32 + P_svuid uint32 + P_rgid uint32 + P_svgid uint32 + P_refcnt int32 + _ [4]byte +} + +type Ucred struct { + Ref int32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + +type SysvIpcPerm struct { + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ uint16 + _ int32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Lpid int32 + Cpid int32 + Nattch uint16 + _ [34]byte +} + +const ( + IPC_CREAT = 0x200 + IPC_EXCL = 0x400 + IPC_NOWAIT = 0x800 + IPC_PRIVATE = 0x0 +) + +const ( + IPC_RMID = 0x0 + IPC_SET = 0x1 + IPC_STAT = 0x2 +) + +const ( + SHM_RDONLY = 0x1000 + SHM_RND = 0x2000 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go new file mode 100644 index 0000000000..34aa775219 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go @@ -0,0 +1,795 @@ +// cgo -godefs types_darwin.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && darwin +// +build arm64,darwin + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]byte + Mntonname [1024]byte + Mntfromname [1024]byte + Flags_ext uint32 + Reserved [7]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + _ [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + _ [16]byte +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + _ [3]byte +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type RawSockaddrCtl struct { + Sc_len uint8 + Sc_family uint8 + Ss_sysaddr uint16 + Sc_id uint32 + Sc_unit uint32 + Sc_reserved [5]uint32 +} + +type RawSockaddrVM struct { + Len uint8 + Family uint8 + Reserved1 uint16 + Port uint32 + Cid uint32 +} + +type XVSockPCB struct { + Xv_len uint32 + Xv_vsockpp uint64 + Xvp_local_cid uint32 + Xvp_local_port uint32 + Xvp_remote_cid uint32 + Xvp_remote_port uint32 + Xvp_rxcnt uint32 + Xvp_txcnt uint32 + Xvp_peer_rxhiwat uint32 + Xvp_peer_rxcnt uint32 + Xvp_last_pid int32 + Xvp_gencnt uint64 + Xv_socket XSocket + _ [4]byte +} + +type XSocket struct { + Xso_len uint32 + Xso_so uint32 + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + So_pcb uint32 + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSocket64 struct { + Xso_len uint32 + _ [8]byte + So_type int16 + So_options int16 + So_linger int16 + So_state int16 + _ [8]byte + Xso_protocol int32 + Xso_family int32 + So_qlen int16 + So_incqlen int16 + So_qlimit int16 + So_timeo int16 + So_error uint16 + So_pgid int32 + So_oobmark uint32 + So_rcv XSockbuf + So_snd XSockbuf + So_uid uint32 +} + +type XSockbuf struct { + Cc uint32 + Hiwat uint32 + Mbcnt uint32 + Mbmax uint32 + Lowat int32 + Flags int16 + Timeo int16 +} + +type XVSockPgen struct { + Len uint32 + Count uint64 + Gen uint64 + Sogen uint64 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type TCPConnectionInfo struct { + State uint8 + Snd_wscale uint8 + Rcv_wscale uint8 + _ uint8 + Options uint32 + Flags uint32 + Rto uint32 + Maxseg uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Snd_wnd uint32 + Snd_sbbytes uint32 + Rcv_wnd uint32 + Rttcur uint32 + Srtt uint32 + Rttvar uint32 + Txpackets uint64 + Txbytes uint64 + Txretransmitbytes uint64 + Rxpackets uint64 + Rxbytes uint64 + Rxoutoforderbytes uint64 + Txretransmitpackets uint64 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofSockaddrCtl = 0x20 + SizeofSockaddrVM = 0xc + SizeofXvsockpcb = 0xa8 + SizeofXSocket = 0x64 + SizeofXSockbuf = 0x18 + SizeofXVSockPgen = 0x20 + SizeofXucred = 0x4c + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofTCPConnectionInfo = 0x70 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + State uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Ispeed uint64 + Ospeed uint64 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x2 + AT_REMOVEDIR = 0x80 + AT_SYMLINK_FOLLOW = 0x40 + AT_SYMLINK_NOFOLLOW = 0x20 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} + +type CtlInfo struct { + Id uint32 + Name [96]byte +} + +const SizeofKinfoProc = 0x288 + +type Eproc struct { + Paddr uintptr + Sess uintptr + Pcred Pcred + Ucred Ucred + Vm Vmspace + Ppid int32 + Pgid int32 + Jobc int16 + Tdev int32 + Tpgid int32 + Tsess uintptr + Wmesg [8]byte + Xsize int32 + Xrssize int16 + Xccount int16 + Xswrss int16 + Flag int32 + Login [12]byte + Spare [4]int32 + _ [4]byte +} + +type ExternProc struct { + P_starttime Timeval + P_vmspace *Vmspace + P_sigacts uintptr + P_flag int32 + P_stat int8 + P_pid int32 + P_oppid int32 + P_dupfd int32 + User_stack *int8 + Exit_thread *byte + P_debugger int32 + Sigwait int32 + P_estcpu uint32 + P_cpticks int32 + P_pctcpu uint32 + P_wchan *byte + P_wmesg *int8 + P_swtime uint32 + P_slptime uint32 + P_realtimer Itimerval + P_rtime Timeval + P_uticks uint64 + P_sticks uint64 + P_iticks uint64 + P_traceflag int32 + P_tracep uintptr + P_siglist int32 + P_textvp uintptr + P_holdcnt int32 + P_sigmask uint32 + P_sigignore uint32 + P_sigcatch uint32 + P_priority uint8 + P_usrpri uint8 + P_nice int8 + P_comm [17]byte + P_pgrp uintptr + P_addr uintptr + P_xstat uint16 + P_acflag uint16 + P_ru *Rusage +} + +type Itimerval struct { + Interval Timeval + Value Timeval +} + +type KinfoProc struct { + Proc ExternProc + Eproc Eproc +} + +type Vmspace struct { + Dummy int32 + Dummy2 *int8 + Dummy3 [5]int32 + Dummy4 [3]*int8 +} + +type Pcred struct { + Pc_lock [72]int8 + Pc_ucred uintptr + P_ruid uint32 + P_svuid uint32 + P_rgid uint32 + P_svgid uint32 + P_refcnt int32 + _ [4]byte +} + +type Ucred struct { + Ref int32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 +} + +type SysvIpcPerm struct { + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ uint16 + _ int32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Lpid int32 + Cpid int32 + Nattch uint16 + _ [34]byte +} + +const ( + IPC_CREAT = 0x200 + IPC_EXCL = 0x400 + IPC_NOWAIT = 0x800 + IPC_PRIVATE = 0x0 +) + +const ( + IPC_RMID = 0x0 + IPC_SET = 0x1 + IPC_STAT = 0x2 +) + +const ( + SHM_RDONLY = 0x1000 + SHM_RND = 0x2000 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go new file mode 100644 index 0000000000..d0ba8e9b86 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go @@ -0,0 +1,474 @@ +// cgo -godefs types_dragonfly.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && dragonfly +// +build amd64,dragonfly + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Ino uint64 + Nlink uint32 + Dev uint32 + Mode uint16 + _1 uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + _ uint32 + Flags uint32 + Gen uint32 + Lspare int32 + Blksize int64 + Qspare2 int64 +} + +type Statfs_t struct { + Spare2 int64 + Bsize int64 + Iosize int64 + Blocks int64 + Bfree int64 + Bavail int64 + Files int64 + Ffree int64 + Fsid Fsid + Owner uint32 + Type int32 + Flags int32 + Syncwrites int64 + Asyncwrites int64 + Fstypename [16]byte + Mntonname [80]byte + Syncreads int64 + Asyncreads int64 + Spares1 int16 + Mntfromname [80]byte + Spares2 int16 + Spare [2]int64 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Namlen uint16 + Type uint8 + Unused1 uint8 + Unused2 uint32 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + Rcf uint16 + Route [16]uint16 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + SizeofIfMsghdr = 0xb0 + SizeofIfData = 0xa0 + SizeofIfaMsghdr = 0x18 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Data IfData +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Mtu uint64 + Metric uint64 + Link_state uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Oqdrops uint64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Addrflags int32 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Pksent uint64 + Expire uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Recvpipe uint64 + Hopcount uint64 + Mssopt uint16 + Pad uint16 + Msl uint64 + Iwmaxsegs uint64 + Iwcapsegs uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = 0xfffafdcd + AT_SYMLINK_NOFOLLOW = 0x1 + AT_REMOVEDIR = 0x2 + AT_EACCESS = 0x4 + AT_SYMLINK_FOLLOW = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Utsname struct { + Sysname [32]byte + Nodename [32]byte + Release [32]byte + Version [32]byte + Machine [32]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go new file mode 100644 index 0000000000..29dc483378 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go @@ -0,0 +1,651 @@ +// cgo -godefs types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && freebsd +// +build 386,freebsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Time_t int32 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + _ int32 + Atim Timespec + _ int32 + Mtim Timespec + _ int32 + Ctim Timespec + _ int32 + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x50 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + _ [32]byte +} +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [4]byte + _ [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + Fs uint32 + Es uint32 + Ds uint32 + Edi uint32 + Esi uint32 + Ebp uint32 + Isp uint32 + Ebx uint32 + Edx uint32 + Ecx uint32 + Eax uint32 + Trapno uint32 + Err uint32 + Eip uint32 + Cs uint32 + Eflags uint32 + Esp uint32 + Ss uint32 + Gs uint32 +} + +type FpReg struct { + Env [7]uint32 + Acc [8][10]uint8 + Ex_sw uint32 + Pad [64]uint8 +} + +type FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint32 +} + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0x60 + sizeofIfData = 0x98 + SizeofIfData = 0x50 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + Epoch int32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go new file mode 100644 index 0000000000..0a89b28906 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go @@ -0,0 +1,656 @@ +// cgo -godefs types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && freebsd +// +build amd64,freebsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Time_t int64 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R15 int64 + R14 int64 + R13 int64 + R12 int64 + R11 int64 + R10 int64 + R9 int64 + R8 int64 + Rdi int64 + Rsi int64 + Rbp int64 + Rbx int64 + Rdx int64 + Rcx int64 + Rax int64 + Trapno uint32 + Fs uint16 + Gs uint16 + Err uint32 + Es uint16 + Ds uint16 + Rip int64 + Cs int64 + Rflags int64 + Rsp int64 + Ss int64 +} + +type FpReg struct { + Env [4]uint64 + Acc [8][16]uint8 + Xacc [16][16]uint8 + Spare [12]uint64 +} + +type FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go new file mode 100644 index 0000000000..c8666bb152 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go @@ -0,0 +1,642 @@ +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && freebsd +// +build arm,freebsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Time_t int64 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x50 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [4]byte + _ [32]byte +} + +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [4]byte + _ [32]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + R [13]uint32 + Sp uint32 + Lr uint32 + Pc uint32 + Cpsr uint32 +} + +type FpReg struct { + Fpsr uint32 + Fpr [8]FpExtendedPrecision +} + +type FpExtendedPrecision struct { + Exponent uint32 + Mantissa_hi uint32 + Mantissa_lo uint32 +} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint32 +} + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + _ [4]byte + Data int64 + Udata *byte + _ [4]byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0x70 + sizeofIfData = 0x98 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + _ [4]byte + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go new file mode 100644 index 0000000000..88fb48a887 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go @@ -0,0 +1,636 @@ +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && freebsd +// +build arm64,freebsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Time_t int64 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + X [30]uint64 + Lr uint64 + Sp uint64 + Elr uint64 + Spsr uint32 + _ [4]byte +} + +type FpReg struct { + Q [32][16]uint8 + Sr uint32 + Cr uint32 + _ [8]byte +} + +type FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go new file mode 100644 index 0000000000..698dc975e9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go @@ -0,0 +1,638 @@ +// cgo -godefs -- -fsigned-char types_freebsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && freebsd +// +build riscv64,freebsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Time_t int64 + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + _0 int16 + Uid uint32 + Gid uint32 + _1 int32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]byte + Mntfromname [1024]byte + Mntonname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + _ [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Xucred struct { + Version uint32 + Uid uint32 + Ngroups int16 + Groups [16]uint32 + _ *byte +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofXucred = 0x58 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type PtraceLwpInfoStruct struct { + Lwpid int32 + Event int32 + Flags int32 + Sigmask Sigset_t + Siglist Sigset_t + Siginfo __PtraceSiginfo + Tdname [20]int8 + Child_pid int32 + Syscall_code uint32 + Syscall_narg uint32 +} + +type __Siginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr *byte + Value [8]byte + _ [40]byte +} + +type __PtraceSiginfo struct { + Signo int32 + Errno int32 + Code int32 + Pid int32 + Uid uint32 + Status int32 + Addr uintptr + Value [8]byte + _ [40]byte +} + +type Sigset_t struct { + Val [4]uint32 +} + +type Reg struct { + Ra uint64 + Sp uint64 + Gp uint64 + Tp uint64 + T [7]uint64 + S [12]uint64 + A [8]uint64 + Sepc uint64 + Sstatus uint64 +} + +type FpReg struct { + X [32][2]uint64 + Fcsr uint64 +} + +type FpExtendedPrecision struct{} + +type PtraceIoDesc struct { + Op int32 + Offs uintptr + Addr *byte + Len uint64 +} + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte + Ext [4]uint64 +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Datalen uint16 + Mtu uint32 + Metric uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Hwassist uint64 + _ [8]byte + _ [16]byte +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + _ uint16 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + _ uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Nhidx uint64 + Filler [2]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + _ [5]uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLINIGNEOF = 0x2000 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type CapRights struct { + Rights [2]uint64 +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Spare int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux.go new file mode 100644 index 0000000000..ca84727cfe --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux.go @@ -0,0 +1,5812 @@ +// Code generated by mkmerge; DO NOT EDIT. + +//go:build linux +// +build linux + +package unix + +const ( + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + + _C_long_long int64 +) + +type ItimerSpec struct { + Interval Timespec + Value Timespec +} + +type Itimerval struct { + Interval Timeval + Value Timeval +} + +const ( + ADJ_OFFSET = 0x1 + ADJ_FREQUENCY = 0x2 + ADJ_MAXERROR = 0x4 + ADJ_ESTERROR = 0x8 + ADJ_STATUS = 0x10 + ADJ_TIMECONST = 0x20 + ADJ_TAI = 0x80 + ADJ_SETOFFSET = 0x100 + ADJ_MICRO = 0x1000 + ADJ_NANO = 0x2000 + ADJ_TICK = 0x4000 + ADJ_OFFSET_SINGLESHOT = 0x8001 + ADJ_OFFSET_SS_READ = 0xa001 +) + +const ( + STA_PLL = 0x1 + STA_PPSFREQ = 0x2 + STA_PPSTIME = 0x4 + STA_FLL = 0x8 + STA_INS = 0x10 + STA_DEL = 0x20 + STA_UNSYNC = 0x40 + STA_FREQHOLD = 0x80 + STA_PPSSIGNAL = 0x100 + STA_PPSJITTER = 0x200 + STA_PPSWANDER = 0x400 + STA_PPSERROR = 0x800 + STA_CLOCKERR = 0x1000 + STA_NANO = 0x2000 + STA_MODE = 0x4000 + STA_CLK = 0x8000 +) + +const ( + TIME_OK = 0x0 + TIME_INS = 0x1 + TIME_DEL = 0x2 + TIME_OOP = 0x3 + TIME_WAIT = 0x4 + TIME_ERROR = 0x5 + TIME_BAD = 0x5 +) + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type StatxTimestamp struct { + Sec int64 + Nsec uint32 + _ int32 +} + +type Statx_t struct { + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + _ [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime StatxTimestamp + Btime StatxTimestamp + Ctime StatxTimestamp + Mtime StatxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + Mnt_id uint64 + Dio_mem_align uint32 + Dio_offset_align uint32 + _ [12]uint64 +} + +type Fsid struct { + Val [2]int32 +} + +type FileCloneRange struct { + Src_fd int64 + Src_offset uint64 + Src_length uint64 + Dest_offset uint64 +} + +type RawFileDedupeRange struct { + Src_offset uint64 + Src_length uint64 + Dest_count uint16 + Reserved1 uint16 + Reserved2 uint32 +} + +type RawFileDedupeRangeInfo struct { + Dest_fd int64 + Dest_offset uint64 + Bytes_deduped uint64 + Status int32 + Reserved uint32 +} + +const ( + SizeofRawFileDedupeRange = 0x18 + SizeofRawFileDedupeRangeInfo = 0x20 + FILE_DEDUPE_RANGE_SAME = 0x0 + FILE_DEDUPE_RANGE_DIFFERS = 0x1 +) + +type FscryptPolicy struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptKey struct { + Mode uint32 + Raw [64]uint8 + Size uint32 +} + +type FscryptPolicyV1 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + Master_key_descriptor [8]uint8 +} + +type FscryptPolicyV2 struct { + Version uint8 + Contents_encryption_mode uint8 + Filenames_encryption_mode uint8 + Flags uint8 + _ [4]uint8 + Master_key_identifier [16]uint8 +} + +type FscryptGetPolicyExArg struct { + Size uint64 + Policy [24]byte +} + +type FscryptKeySpecifier struct { + Type uint32 + _ uint32 + U [32]byte +} + +type FscryptAddKeyArg struct { + Key_spec FscryptKeySpecifier + Raw_size uint32 + Key_id uint32 + _ [8]uint32 +} + +type FscryptRemoveKeyArg struct { + Key_spec FscryptKeySpecifier + Removal_status_flags uint32 + _ [5]uint32 +} + +type FscryptGetKeyStatusArg struct { + Key_spec FscryptKeySpecifier + _ [6]uint32 + Status uint32 + Status_flags uint32 + User_count uint32 + _ [13]uint32 +} + +type DmIoctl struct { + Version [3]uint32 + Data_size uint32 + Data_start uint32 + Target_count uint32 + Open_count int32 + Flags uint32 + Event_nr uint32 + _ uint32 + Dev uint64 + Name [128]byte + Uuid [129]byte + Data [7]byte +} + +type DmTargetSpec struct { + Sector_start uint64 + Length uint64 + Status int32 + Next uint32 + Target_type [16]byte +} + +type DmTargetDeps struct { + Count uint32 + _ uint32 +} + +type DmTargetVersions struct { + Next uint32 + Version [3]uint32 +} + +type DmTargetMsg struct { + Sector uint64 +} + +const ( + SizeofDmIoctl = 0x138 + SizeofDmTargetSpec = 0x28 +) + +type KeyctlDHParams struct { + Private int32 + Prime int32 + Base int32 +} + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 +) + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddrHCI struct { + Family uint16 + Dev uint16 + Channel uint16 +} + +type RawSockaddrL2 struct { + Family uint16 + Psm uint16 + Bdaddr [6]uint8 + Cid uint16 + Bdaddr_type uint8 + _ [1]byte +} + +type RawSockaddrRFCOMM struct { + Family uint16 + Bdaddr [6]uint8 + Channel uint8 + _ [1]byte +} + +type RawSockaddrCAN struct { + Family uint16 + Ifindex int32 + Addr [16]byte +} + +type RawSockaddrALG struct { + Family uint16 + Type [14]uint8 + Feat uint32 + Mask uint32 + Name [64]uint8 +} + +type RawSockaddrVM struct { + Family uint16 + Reserved1 uint16 + Port uint32 + Cid uint32 + Flags uint8 + Zero [3]uint8 +} + +type RawSockaddrXDP struct { + Family uint16 + Flags uint16 + Ifindex uint32 + Queue_id uint32 + Shared_umem_fd uint32 +} + +type RawSockaddrPPPoX [0x1e]byte + +type RawSockaddrTIPC struct { + Family uint16 + Addrtype uint8 + Scope int8 + Addr [12]byte +} + +type RawSockaddrL2TPIP struct { + Family uint16 + Unused uint16 + Addr [4]byte /* in_addr */ + Conn_id uint32 + _ [4]uint8 +} + +type RawSockaddrL2TPIP6 struct { + Family uint16 + Unused uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + Conn_id uint32 +} + +type RawSockaddrIUCV struct { + Family uint16 + Port uint16 + Addr uint32 + Nodeid [8]int8 + User_id [8]int8 + Name [8]int8 +} + +type RawSockaddrNFC struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type PacketMreq struct { + Ifindex int32 + Type uint16 + Alen uint16 + Address [8]uint8 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 + Pacing_rate uint64 + Max_pacing_rate uint64 + Bytes_acked uint64 + Bytes_received uint64 + Segs_out uint32 + Segs_in uint32 + Notsent_bytes uint32 + Min_rtt uint32 + Data_segs_in uint32 + Data_segs_out uint32 + Delivery_rate uint64 + Busy_time uint64 + Rwnd_limited uint64 + Sndbuf_limited uint64 + Delivered uint32 + Delivered_ce uint32 + Bytes_sent uint64 + Bytes_retrans uint64 + Dsack_dups uint32 + Reord_seen uint32 + Rcv_ooopack uint32 + Snd_wnd uint32 + Rcv_wnd uint32 + Rehash uint32 +} + +type CanFilter struct { + Id uint32 + Mask uint32 +} + +type TCPRepairOpt struct { + Code uint32 + Val uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofSockaddrHCI = 0x6 + SizeofSockaddrL2 = 0xe + SizeofSockaddrRFCOMM = 0xa + SizeofSockaddrCAN = 0x18 + SizeofSockaddrALG = 0x58 + SizeofSockaddrVM = 0x10 + SizeofSockaddrXDP = 0x10 + SizeofSockaddrPPPoX = 0x1e + SizeofSockaddrTIPC = 0x10 + SizeofSockaddrL2TPIP = 0x10 + SizeofSockaddrL2TPIP6 = 0x20 + SizeofSockaddrIUCV = 0x20 + SizeofSockaddrNFC = 0x10 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofPacketMreq = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0xf0 + SizeofCanFilter = 0x8 + SizeofTCPRepairOpt = 0x8 +) + +const ( + NDA_UNSPEC = 0x0 + NDA_DST = 0x1 + NDA_LLADDR = 0x2 + NDA_CACHEINFO = 0x3 + NDA_PROBES = 0x4 + NDA_VLAN = 0x5 + NDA_PORT = 0x6 + NDA_VNI = 0x7 + NDA_IFINDEX = 0x8 + NDA_MASTER = 0x9 + NDA_LINK_NETNSID = 0xa + NDA_SRC_VNI = 0xb + NTF_USE = 0x1 + NTF_SELF = 0x2 + NTF_MASTER = 0x4 + NTF_PROXY = 0x8 + NTF_EXT_LEARNED = 0x10 + NTF_OFFLOADED = 0x20 + NTF_ROUTER = 0x80 + NUD_INCOMPLETE = 0x1 + NUD_REACHABLE = 0x2 + NUD_STALE = 0x4 + NUD_DELAY = 0x8 + NUD_PROBE = 0x10 + NUD_FAILED = 0x20 + NUD_NOARP = 0x40 + NUD_PERMANENT = 0x80 + NUD_NONE = 0x0 + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFA_FLAGS = 0x8 + IFA_RT_PRIORITY = 0x9 + IFA_TARGET_NETNSID = 0xa + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTA_MARK = 0x10 + RTA_MFC_STATS = 0x11 + RTA_VIA = 0x12 + RTA_NEWDST = 0x13 + RTA_PREF = 0x14 + RTA_ENCAP_TYPE = 0x15 + RTA_ENCAP = 0x16 + RTA_EXPIRES = 0x17 + RTA_PAD = 0x18 + RTA_UID = 0x19 + RTA_TTL_PROPAGATE = 0x1a + RTA_IP_PROTO = 0x1b + RTA_SPORT = 0x1c + RTA_DPORT = 0x1d + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofIfaCacheinfo = 0x10 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 + SizeofNdUseroptmsg = 0x10 + SizeofNdMsg = 0xc +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + _ uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type IfaCacheinfo struct { + Prefered uint32 + Valid uint32 + Cstamp uint32 + Tstamp uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +type NdUseroptmsg struct { + Family uint8 + Pad1 uint8 + Opts_len uint16 + Ifindex int32 + Icmp_type uint8 + Icmp_code uint8 + Pad2 uint16 + Pad3 uint32 +} + +type NdMsg struct { + Family uint8 + Pad1 uint8 + Pad2 uint16 + Ifindex int32 + State uint16 + Flags uint8 + Type uint8 +} + +const ( + ICMP_FILTER = 0x1 + + ICMPV6_FILTER = 0x1 + ICMPV6_FILTER_BLOCK = 0x1 + ICMPV6_FILTER_BLOCKOTHERS = 0x3 + ICMPV6_FILTER_PASS = 0x2 + ICMPV6_FILTER_PASSONLY = 0x4 +) + +const ( + SizeofSockFilter = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +const SI_LOAD_SHIFT = 0x10 + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +const ( + AT_EMPTY_PATH = 0x1000 + AT_FDCWD = -0x64 + AT_NO_AUTOMOUNT = 0x800 + AT_REMOVEDIR = 0x200 + + AT_STATX_SYNC_AS_STAT = 0x0 + AT_STATX_FORCE_SYNC = 0x2000 + AT_STATX_DONT_SYNC = 0x4000 + + AT_RECURSIVE = 0x8000 + + AT_SYMLINK_FOLLOW = 0x400 + AT_SYMLINK_NOFOLLOW = 0x100 + + AT_EACCESS = 0x200 + + OPEN_TREE_CLONE = 0x1 + + MOVE_MOUNT_F_SYMLINKS = 0x1 + MOVE_MOUNT_F_AUTOMOUNTS = 0x2 + MOVE_MOUNT_F_EMPTY_PATH = 0x4 + MOVE_MOUNT_T_SYMLINKS = 0x10 + MOVE_MOUNT_T_AUTOMOUNTS = 0x20 + MOVE_MOUNT_T_EMPTY_PATH = 0x40 + MOVE_MOUNT_SET_GROUP = 0x100 + + FSOPEN_CLOEXEC = 0x1 + + FSPICK_CLOEXEC = 0x1 + FSPICK_SYMLINK_NOFOLLOW = 0x2 + FSPICK_NO_AUTOMOUNT = 0x4 + FSPICK_EMPTY_PATH = 0x8 + + FSMOUNT_CLOEXEC = 0x1 +) + +type OpenHow struct { + Flags uint64 + Mode uint64 + Resolve uint64 +} + +const SizeofOpenHow = 0x18 + +const ( + RESOLVE_BENEATH = 0x8 + RESOLVE_IN_ROOT = 0x10 + RESOLVE_NO_MAGICLINKS = 0x2 + RESOLVE_NO_SYMLINKS = 0x4 + RESOLVE_NO_XDEV = 0x1 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLIN = 0x1 + POLLPRI = 0x2 + POLLOUT = 0x4 + POLLERR = 0x8 + POLLHUP = 0x10 + POLLNVAL = 0x20 +) + +type SignalfdSiginfo struct { + Signo uint32 + Errno int32 + Code int32 + Pid uint32 + Uid uint32 + Fd int32 + Tid uint32 + Band uint32 + Overrun uint32 + Trapno uint32 + Status int32 + Int int32 + Ptr uint64 + Utime uint64 + Stime uint64 + Addr uint64 + Addr_lsb uint16 + _ uint16 + Syscall int32 + Call_addr uint64 + Arch uint32 + _ [28]uint8 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + TASKSTATS_CMD_UNSPEC = 0x0 + TASKSTATS_CMD_GET = 0x1 + TASKSTATS_CMD_NEW = 0x2 + TASKSTATS_TYPE_UNSPEC = 0x0 + TASKSTATS_TYPE_PID = 0x1 + TASKSTATS_TYPE_TGID = 0x2 + TASKSTATS_TYPE_STATS = 0x3 + TASKSTATS_TYPE_AGGR_PID = 0x4 + TASKSTATS_TYPE_AGGR_TGID = 0x5 + TASKSTATS_TYPE_NULL = 0x6 + TASKSTATS_CMD_ATTR_UNSPEC = 0x0 + TASKSTATS_CMD_ATTR_PID = 0x1 + TASKSTATS_CMD_ATTR_TGID = 0x2 + TASKSTATS_CMD_ATTR_REGISTER_CPUMASK = 0x3 + TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK = 0x4 +) + +type CGroupStats struct { + Sleeping uint64 + Running uint64 + Stopped uint64 + Uninterruptible uint64 + Io_wait uint64 +} + +const ( + CGROUPSTATS_CMD_UNSPEC = 0x3 + CGROUPSTATS_CMD_GET = 0x4 + CGROUPSTATS_CMD_NEW = 0x5 + CGROUPSTATS_TYPE_UNSPEC = 0x0 + CGROUPSTATS_TYPE_CGROUP_STATS = 0x1 + CGROUPSTATS_CMD_ATTR_UNSPEC = 0x0 + CGROUPSTATS_CMD_ATTR_FD = 0x1 +) + +type Genlmsghdr struct { + Cmd uint8 + Version uint8 + Reserved uint16 +} + +const ( + CTRL_CMD_UNSPEC = 0x0 + CTRL_CMD_NEWFAMILY = 0x1 + CTRL_CMD_DELFAMILY = 0x2 + CTRL_CMD_GETFAMILY = 0x3 + CTRL_CMD_NEWOPS = 0x4 + CTRL_CMD_DELOPS = 0x5 + CTRL_CMD_GETOPS = 0x6 + CTRL_CMD_NEWMCAST_GRP = 0x7 + CTRL_CMD_DELMCAST_GRP = 0x8 + CTRL_CMD_GETMCAST_GRP = 0x9 + CTRL_CMD_GETPOLICY = 0xa + CTRL_ATTR_UNSPEC = 0x0 + CTRL_ATTR_FAMILY_ID = 0x1 + CTRL_ATTR_FAMILY_NAME = 0x2 + CTRL_ATTR_VERSION = 0x3 + CTRL_ATTR_HDRSIZE = 0x4 + CTRL_ATTR_MAXATTR = 0x5 + CTRL_ATTR_OPS = 0x6 + CTRL_ATTR_MCAST_GROUPS = 0x7 + CTRL_ATTR_POLICY = 0x8 + CTRL_ATTR_OP_POLICY = 0x9 + CTRL_ATTR_OP = 0xa + CTRL_ATTR_OP_UNSPEC = 0x0 + CTRL_ATTR_OP_ID = 0x1 + CTRL_ATTR_OP_FLAGS = 0x2 + CTRL_ATTR_MCAST_GRP_UNSPEC = 0x0 + CTRL_ATTR_MCAST_GRP_NAME = 0x1 + CTRL_ATTR_MCAST_GRP_ID = 0x2 + CTRL_ATTR_POLICY_UNSPEC = 0x0 + CTRL_ATTR_POLICY_DO = 0x1 + CTRL_ATTR_POLICY_DUMP = 0x2 + CTRL_ATTR_POLICY_DUMP_MAX = 0x2 +) + +const ( + _CPU_SETSIZE = 0x400 +) + +const ( + BDADDR_BREDR = 0x0 + BDADDR_LE_PUBLIC = 0x1 + BDADDR_LE_RANDOM = 0x2 +) + +type PerfEventAttr struct { + Type uint32 + Size uint32 + Config uint64 + Sample uint64 + Sample_type uint64 + Read_format uint64 + Bits uint64 + Wakeup uint32 + Bp_type uint32 + Ext1 uint64 + Ext2 uint64 + Branch_sample_type uint64 + Sample_regs_user uint64 + Sample_stack_user uint32 + Clockid int32 + Sample_regs_intr uint64 + Aux_watermark uint32 + Sample_max_stack uint16 + _ uint16 + Aux_sample_size uint32 + _ uint32 + Sig_data uint64 +} + +type PerfEventMmapPage struct { + Version uint32 + Compat_version uint32 + Lock uint32 + Index uint32 + Offset int64 + Time_enabled uint64 + Time_running uint64 + Capabilities uint64 + Pmc_width uint16 + Time_shift uint16 + Time_mult uint32 + Time_offset uint64 + Time_zero uint64 + Size uint32 + _ uint32 + Time_cycles uint64 + Time_mask uint64 + _ [928]uint8 + Data_head uint64 + Data_tail uint64 + Data_offset uint64 + Data_size uint64 + Aux_head uint64 + Aux_tail uint64 + Aux_offset uint64 + Aux_size uint64 +} + +const ( + PerfBitDisabled uint64 = CBitFieldMaskBit0 + PerfBitInherit = CBitFieldMaskBit1 + PerfBitPinned = CBitFieldMaskBit2 + PerfBitExclusive = CBitFieldMaskBit3 + PerfBitExcludeUser = CBitFieldMaskBit4 + PerfBitExcludeKernel = CBitFieldMaskBit5 + PerfBitExcludeHv = CBitFieldMaskBit6 + PerfBitExcludeIdle = CBitFieldMaskBit7 + PerfBitMmap = CBitFieldMaskBit8 + PerfBitComm = CBitFieldMaskBit9 + PerfBitFreq = CBitFieldMaskBit10 + PerfBitInheritStat = CBitFieldMaskBit11 + PerfBitEnableOnExec = CBitFieldMaskBit12 + PerfBitTask = CBitFieldMaskBit13 + PerfBitWatermark = CBitFieldMaskBit14 + PerfBitPreciseIPBit1 = CBitFieldMaskBit15 + PerfBitPreciseIPBit2 = CBitFieldMaskBit16 + PerfBitMmapData = CBitFieldMaskBit17 + PerfBitSampleIDAll = CBitFieldMaskBit18 + PerfBitExcludeHost = CBitFieldMaskBit19 + PerfBitExcludeGuest = CBitFieldMaskBit20 + PerfBitExcludeCallchainKernel = CBitFieldMaskBit21 + PerfBitExcludeCallchainUser = CBitFieldMaskBit22 + PerfBitMmap2 = CBitFieldMaskBit23 + PerfBitCommExec = CBitFieldMaskBit24 + PerfBitUseClockID = CBitFieldMaskBit25 + PerfBitContextSwitch = CBitFieldMaskBit26 + PerfBitWriteBackward = CBitFieldMaskBit27 +) + +const ( + PERF_TYPE_HARDWARE = 0x0 + PERF_TYPE_SOFTWARE = 0x1 + PERF_TYPE_TRACEPOINT = 0x2 + PERF_TYPE_HW_CACHE = 0x3 + PERF_TYPE_RAW = 0x4 + PERF_TYPE_BREAKPOINT = 0x5 + PERF_TYPE_MAX = 0x6 + PERF_COUNT_HW_CPU_CYCLES = 0x0 + PERF_COUNT_HW_INSTRUCTIONS = 0x1 + PERF_COUNT_HW_CACHE_REFERENCES = 0x2 + PERF_COUNT_HW_CACHE_MISSES = 0x3 + PERF_COUNT_HW_BRANCH_INSTRUCTIONS = 0x4 + PERF_COUNT_HW_BRANCH_MISSES = 0x5 + PERF_COUNT_HW_BUS_CYCLES = 0x6 + PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7 + PERF_COUNT_HW_STALLED_CYCLES_BACKEND = 0x8 + PERF_COUNT_HW_REF_CPU_CYCLES = 0x9 + PERF_COUNT_HW_MAX = 0xa + PERF_COUNT_HW_CACHE_L1D = 0x0 + PERF_COUNT_HW_CACHE_L1I = 0x1 + PERF_COUNT_HW_CACHE_LL = 0x2 + PERF_COUNT_HW_CACHE_DTLB = 0x3 + PERF_COUNT_HW_CACHE_ITLB = 0x4 + PERF_COUNT_HW_CACHE_BPU = 0x5 + PERF_COUNT_HW_CACHE_NODE = 0x6 + PERF_COUNT_HW_CACHE_MAX = 0x7 + PERF_COUNT_HW_CACHE_OP_READ = 0x0 + PERF_COUNT_HW_CACHE_OP_WRITE = 0x1 + PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2 + PERF_COUNT_HW_CACHE_OP_MAX = 0x3 + PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0 + PERF_COUNT_HW_CACHE_RESULT_MISS = 0x1 + PERF_COUNT_HW_CACHE_RESULT_MAX = 0x2 + PERF_COUNT_SW_CPU_CLOCK = 0x0 + PERF_COUNT_SW_TASK_CLOCK = 0x1 + PERF_COUNT_SW_PAGE_FAULTS = 0x2 + PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3 + PERF_COUNT_SW_CPU_MIGRATIONS = 0x4 + PERF_COUNT_SW_PAGE_FAULTS_MIN = 0x5 + PERF_COUNT_SW_PAGE_FAULTS_MAJ = 0x6 + PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7 + PERF_COUNT_SW_EMULATION_FAULTS = 0x8 + PERF_COUNT_SW_DUMMY = 0x9 + PERF_COUNT_SW_BPF_OUTPUT = 0xa + PERF_COUNT_SW_MAX = 0xc + PERF_SAMPLE_IP = 0x1 + PERF_SAMPLE_TID = 0x2 + PERF_SAMPLE_TIME = 0x4 + PERF_SAMPLE_ADDR = 0x8 + PERF_SAMPLE_READ = 0x10 + PERF_SAMPLE_CALLCHAIN = 0x20 + PERF_SAMPLE_ID = 0x40 + PERF_SAMPLE_CPU = 0x80 + PERF_SAMPLE_PERIOD = 0x100 + PERF_SAMPLE_STREAM_ID = 0x200 + PERF_SAMPLE_RAW = 0x400 + PERF_SAMPLE_BRANCH_STACK = 0x800 + PERF_SAMPLE_REGS_USER = 0x1000 + PERF_SAMPLE_STACK_USER = 0x2000 + PERF_SAMPLE_WEIGHT = 0x4000 + PERF_SAMPLE_DATA_SRC = 0x8000 + PERF_SAMPLE_IDENTIFIER = 0x10000 + PERF_SAMPLE_TRANSACTION = 0x20000 + PERF_SAMPLE_REGS_INTR = 0x40000 + PERF_SAMPLE_PHYS_ADDR = 0x80000 + PERF_SAMPLE_AUX = 0x100000 + PERF_SAMPLE_CGROUP = 0x200000 + PERF_SAMPLE_DATA_PAGE_SIZE = 0x400000 + PERF_SAMPLE_CODE_PAGE_SIZE = 0x800000 + PERF_SAMPLE_WEIGHT_STRUCT = 0x1000000 + PERF_SAMPLE_MAX = 0x2000000 + PERF_SAMPLE_BRANCH_USER_SHIFT = 0x0 + PERF_SAMPLE_BRANCH_KERNEL_SHIFT = 0x1 + PERF_SAMPLE_BRANCH_HV_SHIFT = 0x2 + PERF_SAMPLE_BRANCH_ANY_SHIFT = 0x3 + PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT = 0x4 + PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT = 0x5 + PERF_SAMPLE_BRANCH_IND_CALL_SHIFT = 0x6 + PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT = 0x7 + PERF_SAMPLE_BRANCH_IN_TX_SHIFT = 0x8 + PERF_SAMPLE_BRANCH_NO_TX_SHIFT = 0x9 + PERF_SAMPLE_BRANCH_COND_SHIFT = 0xa + PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT = 0xb + PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT = 0xc + PERF_SAMPLE_BRANCH_CALL_SHIFT = 0xd + PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT = 0xe + PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT = 0xf + PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT = 0x10 + PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT = 0x11 + PERF_SAMPLE_BRANCH_PRIV_SAVE_SHIFT = 0x12 + PERF_SAMPLE_BRANCH_MAX_SHIFT = 0x13 + PERF_SAMPLE_BRANCH_USER = 0x1 + PERF_SAMPLE_BRANCH_KERNEL = 0x2 + PERF_SAMPLE_BRANCH_HV = 0x4 + PERF_SAMPLE_BRANCH_ANY = 0x8 + PERF_SAMPLE_BRANCH_ANY_CALL = 0x10 + PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20 + PERF_SAMPLE_BRANCH_IND_CALL = 0x40 + PERF_SAMPLE_BRANCH_ABORT_TX = 0x80 + PERF_SAMPLE_BRANCH_IN_TX = 0x100 + PERF_SAMPLE_BRANCH_NO_TX = 0x200 + PERF_SAMPLE_BRANCH_COND = 0x400 + PERF_SAMPLE_BRANCH_CALL_STACK = 0x800 + PERF_SAMPLE_BRANCH_IND_JUMP = 0x1000 + PERF_SAMPLE_BRANCH_CALL = 0x2000 + PERF_SAMPLE_BRANCH_NO_FLAGS = 0x4000 + PERF_SAMPLE_BRANCH_NO_CYCLES = 0x8000 + PERF_SAMPLE_BRANCH_TYPE_SAVE = 0x10000 + PERF_SAMPLE_BRANCH_HW_INDEX = 0x20000 + PERF_SAMPLE_BRANCH_PRIV_SAVE = 0x40000 + PERF_SAMPLE_BRANCH_MAX = 0x80000 + PERF_BR_UNKNOWN = 0x0 + PERF_BR_COND = 0x1 + PERF_BR_UNCOND = 0x2 + PERF_BR_IND = 0x3 + PERF_BR_CALL = 0x4 + PERF_BR_IND_CALL = 0x5 + PERF_BR_RET = 0x6 + PERF_BR_SYSCALL = 0x7 + PERF_BR_SYSRET = 0x8 + PERF_BR_COND_CALL = 0x9 + PERF_BR_COND_RET = 0xa + PERF_BR_ERET = 0xb + PERF_BR_IRQ = 0xc + PERF_BR_SERROR = 0xd + PERF_BR_NO_TX = 0xe + PERF_BR_EXTEND_ABI = 0xf + PERF_BR_MAX = 0x10 + PERF_SAMPLE_REGS_ABI_NONE = 0x0 + PERF_SAMPLE_REGS_ABI_32 = 0x1 + PERF_SAMPLE_REGS_ABI_64 = 0x2 + PERF_TXN_ELISION = 0x1 + PERF_TXN_TRANSACTION = 0x2 + PERF_TXN_SYNC = 0x4 + PERF_TXN_ASYNC = 0x8 + PERF_TXN_RETRY = 0x10 + PERF_TXN_CONFLICT = 0x20 + PERF_TXN_CAPACITY_WRITE = 0x40 + PERF_TXN_CAPACITY_READ = 0x80 + PERF_TXN_MAX = 0x100 + PERF_TXN_ABORT_MASK = -0x100000000 + PERF_TXN_ABORT_SHIFT = 0x20 + PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1 + PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2 + PERF_FORMAT_ID = 0x4 + PERF_FORMAT_GROUP = 0x8 + PERF_FORMAT_LOST = 0x10 + PERF_FORMAT_MAX = 0x20 + PERF_IOC_FLAG_GROUP = 0x1 + PERF_RECORD_MMAP = 0x1 + PERF_RECORD_LOST = 0x2 + PERF_RECORD_COMM = 0x3 + PERF_RECORD_EXIT = 0x4 + PERF_RECORD_THROTTLE = 0x5 + PERF_RECORD_UNTHROTTLE = 0x6 + PERF_RECORD_FORK = 0x7 + PERF_RECORD_READ = 0x8 + PERF_RECORD_SAMPLE = 0x9 + PERF_RECORD_MMAP2 = 0xa + PERF_RECORD_AUX = 0xb + PERF_RECORD_ITRACE_START = 0xc + PERF_RECORD_LOST_SAMPLES = 0xd + PERF_RECORD_SWITCH = 0xe + PERF_RECORD_SWITCH_CPU_WIDE = 0xf + PERF_RECORD_NAMESPACES = 0x10 + PERF_RECORD_KSYMBOL = 0x11 + PERF_RECORD_BPF_EVENT = 0x12 + PERF_RECORD_CGROUP = 0x13 + PERF_RECORD_TEXT_POKE = 0x14 + PERF_RECORD_AUX_OUTPUT_HW_ID = 0x15 + PERF_RECORD_MAX = 0x16 + PERF_RECORD_KSYMBOL_TYPE_UNKNOWN = 0x0 + PERF_RECORD_KSYMBOL_TYPE_BPF = 0x1 + PERF_RECORD_KSYMBOL_TYPE_OOL = 0x2 + PERF_RECORD_KSYMBOL_TYPE_MAX = 0x3 + PERF_BPF_EVENT_UNKNOWN = 0x0 + PERF_BPF_EVENT_PROG_LOAD = 0x1 + PERF_BPF_EVENT_PROG_UNLOAD = 0x2 + PERF_BPF_EVENT_MAX = 0x3 + PERF_CONTEXT_HV = -0x20 + PERF_CONTEXT_KERNEL = -0x80 + PERF_CONTEXT_USER = -0x200 + PERF_CONTEXT_GUEST = -0x800 + PERF_CONTEXT_GUEST_KERNEL = -0x880 + PERF_CONTEXT_GUEST_USER = -0xa00 + PERF_CONTEXT_MAX = -0xfff +) + +type TCPMD5Sig struct { + Addr SockaddrStorage + Flags uint8 + Prefixlen uint8 + Keylen uint16 + Ifindex int32 + Key [80]uint8 +} + +type HDDriveCmdHdr struct { + Command uint8 + Number uint8 + Feature uint8 + Count uint8 +} + +type HDDriveID struct { + Config uint16 + Cyls uint16 + Reserved2 uint16 + Heads uint16 + Track_bytes uint16 + Sector_bytes uint16 + Sectors uint16 + Vendor0 uint16 + Vendor1 uint16 + Vendor2 uint16 + Serial_no [20]uint8 + Buf_type uint16 + Buf_size uint16 + Ecc_bytes uint16 + Fw_rev [8]uint8 + Model [40]uint8 + Max_multsect uint8 + Vendor3 uint8 + Dword_io uint16 + Vendor4 uint8 + Capability uint8 + Reserved50 uint16 + Vendor5 uint8 + TPIO uint8 + Vendor6 uint8 + TDMA uint8 + Field_valid uint16 + Cur_cyls uint16 + Cur_heads uint16 + Cur_sectors uint16 + Cur_capacity0 uint16 + Cur_capacity1 uint16 + Multsect uint8 + Multsect_valid uint8 + Lba_capacity uint32 + Dma_1word uint16 + Dma_mword uint16 + Eide_pio_modes uint16 + Eide_dma_min uint16 + Eide_dma_time uint16 + Eide_pio uint16 + Eide_pio_iordy uint16 + Words69_70 [2]uint16 + Words71_74 [4]uint16 + Queue_depth uint16 + Words76_79 [4]uint16 + Major_rev_num uint16 + Minor_rev_num uint16 + Command_set_1 uint16 + Command_set_2 uint16 + Cfsse uint16 + Cfs_enable_1 uint16 + Cfs_enable_2 uint16 + Csf_default uint16 + Dma_ultra uint16 + Trseuc uint16 + TrsEuc uint16 + CurAPMvalues uint16 + Mprc uint16 + Hw_config uint16 + Acoustic uint16 + Msrqs uint16 + Sxfert uint16 + Sal uint16 + Spg uint32 + Lba_capacity_2 uint64 + Words104_125 [22]uint16 + Last_lun uint16 + Word127 uint16 + Dlf uint16 + Csfo uint16 + Words130_155 [26]uint16 + Word156 uint16 + Words157_159 [3]uint16 + Cfa_power uint16 + Words161_175 [15]uint16 + Words176_205 [30]uint16 + Words206_254 [49]uint16 + Integrity_word uint16 +} + +const ( + ST_MANDLOCK = 0x40 + ST_NOATIME = 0x400 + ST_NODEV = 0x4 + ST_NODIRATIME = 0x800 + ST_NOEXEC = 0x8 + ST_NOSUID = 0x2 + ST_RDONLY = 0x1 + ST_RELATIME = 0x1000 + ST_SYNCHRONOUS = 0x10 +) + +type Tpacket2Hdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Nsec uint32 + Vlan_tci uint16 + Vlan_tpid uint16 + _ [4]uint8 +} + +type Tpacket3Hdr struct { + Next_offset uint32 + Sec uint32 + Nsec uint32 + Snaplen uint32 + Len uint32 + Status uint32 + Mac uint16 + Net uint16 + Hv1 TpacketHdrVariant1 + _ [8]uint8 +} + +type TpacketHdrVariant1 struct { + Rxhash uint32 + Vlan_tci uint32 + Vlan_tpid uint16 + _ uint16 +} + +type TpacketBlockDesc struct { + Version uint32 + To_priv uint32 + Hdr [40]byte +} + +type TpacketBDTS struct { + Sec uint32 + Usec uint32 +} + +type TpacketHdrV1 struct { + Block_status uint32 + Num_pkts uint32 + Offset_to_first_pkt uint32 + Blk_len uint32 + Seq_num uint64 + Ts_first_pkt TpacketBDTS + Ts_last_pkt TpacketBDTS +} + +type TpacketReq struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 +} + +type TpacketReq3 struct { + Block_size uint32 + Block_nr uint32 + Frame_size uint32 + Frame_nr uint32 + Retire_blk_tov uint32 + Sizeof_priv uint32 + Feature_req_word uint32 +} + +type TpacketStats struct { + Packets uint32 + Drops uint32 +} + +type TpacketStatsV3 struct { + Packets uint32 + Drops uint32 + Freeze_q_cnt uint32 +} + +type TpacketAuxdata struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Vlan_tci uint16 + Vlan_tpid uint16 +} + +const ( + TPACKET_V1 = 0x0 + TPACKET_V2 = 0x1 + TPACKET_V3 = 0x2 +) + +const ( + SizeofTpacket2Hdr = 0x20 + SizeofTpacket3Hdr = 0x30 + + SizeofTpacketStats = 0x8 + SizeofTpacketStatsV3 = 0xc +) + +const ( + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_NUM_VF = 0x15 + IFLA_VFINFO_LIST = 0x16 + IFLA_STATS64 = 0x17 + IFLA_VF_PORTS = 0x18 + IFLA_PORT_SELF = 0x19 + IFLA_AF_SPEC = 0x1a + IFLA_GROUP = 0x1b + IFLA_NET_NS_FD = 0x1c + IFLA_EXT_MASK = 0x1d + IFLA_PROMISCUITY = 0x1e + IFLA_NUM_TX_QUEUES = 0x1f + IFLA_NUM_RX_QUEUES = 0x20 + IFLA_CARRIER = 0x21 + IFLA_PHYS_PORT_ID = 0x22 + IFLA_CARRIER_CHANGES = 0x23 + IFLA_PHYS_SWITCH_ID = 0x24 + IFLA_LINK_NETNSID = 0x25 + IFLA_PHYS_PORT_NAME = 0x26 + IFLA_PROTO_DOWN = 0x27 + IFLA_GSO_MAX_SEGS = 0x28 + IFLA_GSO_MAX_SIZE = 0x29 + IFLA_PAD = 0x2a + IFLA_XDP = 0x2b + IFLA_EVENT = 0x2c + IFLA_NEW_NETNSID = 0x2d + IFLA_IF_NETNSID = 0x2e + IFLA_TARGET_NETNSID = 0x2e + IFLA_CARRIER_UP_COUNT = 0x2f + IFLA_CARRIER_DOWN_COUNT = 0x30 + IFLA_NEW_IFINDEX = 0x31 + IFLA_MIN_MTU = 0x32 + IFLA_MAX_MTU = 0x33 + IFLA_PROP_LIST = 0x34 + IFLA_ALT_IFNAME = 0x35 + IFLA_PERM_ADDRESS = 0x36 + IFLA_PROTO_DOWN_REASON = 0x37 + IFLA_PARENT_DEV_NAME = 0x38 + IFLA_PARENT_DEV_BUS_NAME = 0x39 + IFLA_GRO_MAX_SIZE = 0x3a + IFLA_TSO_MAX_SIZE = 0x3b + IFLA_TSO_MAX_SEGS = 0x3c + IFLA_PROTO_DOWN_REASON_UNSPEC = 0x0 + IFLA_PROTO_DOWN_REASON_MASK = 0x1 + IFLA_PROTO_DOWN_REASON_VALUE = 0x2 + IFLA_PROTO_DOWN_REASON_MAX = 0x2 + IFLA_INET_UNSPEC = 0x0 + IFLA_INET_CONF = 0x1 + IFLA_INET6_UNSPEC = 0x0 + IFLA_INET6_FLAGS = 0x1 + IFLA_INET6_CONF = 0x2 + IFLA_INET6_STATS = 0x3 + IFLA_INET6_MCAST = 0x4 + IFLA_INET6_CACHEINFO = 0x5 + IFLA_INET6_ICMP6STATS = 0x6 + IFLA_INET6_TOKEN = 0x7 + IFLA_INET6_ADDR_GEN_MODE = 0x8 + IFLA_BR_UNSPEC = 0x0 + IFLA_BR_FORWARD_DELAY = 0x1 + IFLA_BR_HELLO_TIME = 0x2 + IFLA_BR_MAX_AGE = 0x3 + IFLA_BR_AGEING_TIME = 0x4 + IFLA_BR_STP_STATE = 0x5 + IFLA_BR_PRIORITY = 0x6 + IFLA_BR_VLAN_FILTERING = 0x7 + IFLA_BR_VLAN_PROTOCOL = 0x8 + IFLA_BR_GROUP_FWD_MASK = 0x9 + IFLA_BR_ROOT_ID = 0xa + IFLA_BR_BRIDGE_ID = 0xb + IFLA_BR_ROOT_PORT = 0xc + IFLA_BR_ROOT_PATH_COST = 0xd + IFLA_BR_TOPOLOGY_CHANGE = 0xe + IFLA_BR_TOPOLOGY_CHANGE_DETECTED = 0xf + IFLA_BR_HELLO_TIMER = 0x10 + IFLA_BR_TCN_TIMER = 0x11 + IFLA_BR_TOPOLOGY_CHANGE_TIMER = 0x12 + IFLA_BR_GC_TIMER = 0x13 + IFLA_BR_GROUP_ADDR = 0x14 + IFLA_BR_FDB_FLUSH = 0x15 + IFLA_BR_MCAST_ROUTER = 0x16 + IFLA_BR_MCAST_SNOOPING = 0x17 + IFLA_BR_MCAST_QUERY_USE_IFADDR = 0x18 + IFLA_BR_MCAST_QUERIER = 0x19 + IFLA_BR_MCAST_HASH_ELASTICITY = 0x1a + IFLA_BR_MCAST_HASH_MAX = 0x1b + IFLA_BR_MCAST_LAST_MEMBER_CNT = 0x1c + IFLA_BR_MCAST_STARTUP_QUERY_CNT = 0x1d + IFLA_BR_MCAST_LAST_MEMBER_INTVL = 0x1e + IFLA_BR_MCAST_MEMBERSHIP_INTVL = 0x1f + IFLA_BR_MCAST_QUERIER_INTVL = 0x20 + IFLA_BR_MCAST_QUERY_INTVL = 0x21 + IFLA_BR_MCAST_QUERY_RESPONSE_INTVL = 0x22 + IFLA_BR_MCAST_STARTUP_QUERY_INTVL = 0x23 + IFLA_BR_NF_CALL_IPTABLES = 0x24 + IFLA_BR_NF_CALL_IP6TABLES = 0x25 + IFLA_BR_NF_CALL_ARPTABLES = 0x26 + IFLA_BR_VLAN_DEFAULT_PVID = 0x27 + IFLA_BR_PAD = 0x28 + IFLA_BR_VLAN_STATS_ENABLED = 0x29 + IFLA_BR_MCAST_STATS_ENABLED = 0x2a + IFLA_BR_MCAST_IGMP_VERSION = 0x2b + IFLA_BR_MCAST_MLD_VERSION = 0x2c + IFLA_BR_VLAN_STATS_PER_PORT = 0x2d + IFLA_BR_MULTI_BOOLOPT = 0x2e + IFLA_BRPORT_UNSPEC = 0x0 + IFLA_BRPORT_STATE = 0x1 + IFLA_BRPORT_PRIORITY = 0x2 + IFLA_BRPORT_COST = 0x3 + IFLA_BRPORT_MODE = 0x4 + IFLA_BRPORT_GUARD = 0x5 + IFLA_BRPORT_PROTECT = 0x6 + IFLA_BRPORT_FAST_LEAVE = 0x7 + IFLA_BRPORT_LEARNING = 0x8 + IFLA_BRPORT_UNICAST_FLOOD = 0x9 + IFLA_BRPORT_PROXYARP = 0xa + IFLA_BRPORT_LEARNING_SYNC = 0xb + IFLA_BRPORT_PROXYARP_WIFI = 0xc + IFLA_BRPORT_ROOT_ID = 0xd + IFLA_BRPORT_BRIDGE_ID = 0xe + IFLA_BRPORT_DESIGNATED_PORT = 0xf + IFLA_BRPORT_DESIGNATED_COST = 0x10 + IFLA_BRPORT_ID = 0x11 + IFLA_BRPORT_NO = 0x12 + IFLA_BRPORT_TOPOLOGY_CHANGE_ACK = 0x13 + IFLA_BRPORT_CONFIG_PENDING = 0x14 + IFLA_BRPORT_MESSAGE_AGE_TIMER = 0x15 + IFLA_BRPORT_FORWARD_DELAY_TIMER = 0x16 + IFLA_BRPORT_HOLD_TIMER = 0x17 + IFLA_BRPORT_FLUSH = 0x18 + IFLA_BRPORT_MULTICAST_ROUTER = 0x19 + IFLA_BRPORT_PAD = 0x1a + IFLA_BRPORT_MCAST_FLOOD = 0x1b + IFLA_BRPORT_MCAST_TO_UCAST = 0x1c + IFLA_BRPORT_VLAN_TUNNEL = 0x1d + IFLA_BRPORT_BCAST_FLOOD = 0x1e + IFLA_BRPORT_GROUP_FWD_MASK = 0x1f + IFLA_BRPORT_NEIGH_SUPPRESS = 0x20 + IFLA_BRPORT_ISOLATED = 0x21 + IFLA_BRPORT_BACKUP_PORT = 0x22 + IFLA_BRPORT_MRP_RING_OPEN = 0x23 + IFLA_BRPORT_MRP_IN_OPEN = 0x24 + IFLA_INFO_UNSPEC = 0x0 + IFLA_INFO_KIND = 0x1 + IFLA_INFO_DATA = 0x2 + IFLA_INFO_XSTATS = 0x3 + IFLA_INFO_SLAVE_KIND = 0x4 + IFLA_INFO_SLAVE_DATA = 0x5 + IFLA_VLAN_UNSPEC = 0x0 + IFLA_VLAN_ID = 0x1 + IFLA_VLAN_FLAGS = 0x2 + IFLA_VLAN_EGRESS_QOS = 0x3 + IFLA_VLAN_INGRESS_QOS = 0x4 + IFLA_VLAN_PROTOCOL = 0x5 + IFLA_VLAN_QOS_UNSPEC = 0x0 + IFLA_VLAN_QOS_MAPPING = 0x1 + IFLA_MACVLAN_UNSPEC = 0x0 + IFLA_MACVLAN_MODE = 0x1 + IFLA_MACVLAN_FLAGS = 0x2 + IFLA_MACVLAN_MACADDR_MODE = 0x3 + IFLA_MACVLAN_MACADDR = 0x4 + IFLA_MACVLAN_MACADDR_DATA = 0x5 + IFLA_MACVLAN_MACADDR_COUNT = 0x6 + IFLA_VRF_UNSPEC = 0x0 + IFLA_VRF_TABLE = 0x1 + IFLA_VRF_PORT_UNSPEC = 0x0 + IFLA_VRF_PORT_TABLE = 0x1 + IFLA_MACSEC_UNSPEC = 0x0 + IFLA_MACSEC_SCI = 0x1 + IFLA_MACSEC_PORT = 0x2 + IFLA_MACSEC_ICV_LEN = 0x3 + IFLA_MACSEC_CIPHER_SUITE = 0x4 + IFLA_MACSEC_WINDOW = 0x5 + IFLA_MACSEC_ENCODING_SA = 0x6 + IFLA_MACSEC_ENCRYPT = 0x7 + IFLA_MACSEC_PROTECT = 0x8 + IFLA_MACSEC_INC_SCI = 0x9 + IFLA_MACSEC_ES = 0xa + IFLA_MACSEC_SCB = 0xb + IFLA_MACSEC_REPLAY_PROTECT = 0xc + IFLA_MACSEC_VALIDATION = 0xd + IFLA_MACSEC_PAD = 0xe + IFLA_MACSEC_OFFLOAD = 0xf + IFLA_XFRM_UNSPEC = 0x0 + IFLA_XFRM_LINK = 0x1 + IFLA_XFRM_IF_ID = 0x2 + IFLA_IPVLAN_UNSPEC = 0x0 + IFLA_IPVLAN_MODE = 0x1 + IFLA_IPVLAN_FLAGS = 0x2 + IFLA_VXLAN_UNSPEC = 0x0 + IFLA_VXLAN_ID = 0x1 + IFLA_VXLAN_GROUP = 0x2 + IFLA_VXLAN_LINK = 0x3 + IFLA_VXLAN_LOCAL = 0x4 + IFLA_VXLAN_TTL = 0x5 + IFLA_VXLAN_TOS = 0x6 + IFLA_VXLAN_LEARNING = 0x7 + IFLA_VXLAN_AGEING = 0x8 + IFLA_VXLAN_LIMIT = 0x9 + IFLA_VXLAN_PORT_RANGE = 0xa + IFLA_VXLAN_PROXY = 0xb + IFLA_VXLAN_RSC = 0xc + IFLA_VXLAN_L2MISS = 0xd + IFLA_VXLAN_L3MISS = 0xe + IFLA_VXLAN_PORT = 0xf + IFLA_VXLAN_GROUP6 = 0x10 + IFLA_VXLAN_LOCAL6 = 0x11 + IFLA_VXLAN_UDP_CSUM = 0x12 + IFLA_VXLAN_UDP_ZERO_CSUM6_TX = 0x13 + IFLA_VXLAN_UDP_ZERO_CSUM6_RX = 0x14 + IFLA_VXLAN_REMCSUM_TX = 0x15 + IFLA_VXLAN_REMCSUM_RX = 0x16 + IFLA_VXLAN_GBP = 0x17 + IFLA_VXLAN_REMCSUM_NOPARTIAL = 0x18 + IFLA_VXLAN_COLLECT_METADATA = 0x19 + IFLA_VXLAN_LABEL = 0x1a + IFLA_VXLAN_GPE = 0x1b + IFLA_VXLAN_TTL_INHERIT = 0x1c + IFLA_VXLAN_DF = 0x1d + IFLA_GENEVE_UNSPEC = 0x0 + IFLA_GENEVE_ID = 0x1 + IFLA_GENEVE_REMOTE = 0x2 + IFLA_GENEVE_TTL = 0x3 + IFLA_GENEVE_TOS = 0x4 + IFLA_GENEVE_PORT = 0x5 + IFLA_GENEVE_COLLECT_METADATA = 0x6 + IFLA_GENEVE_REMOTE6 = 0x7 + IFLA_GENEVE_UDP_CSUM = 0x8 + IFLA_GENEVE_UDP_ZERO_CSUM6_TX = 0x9 + IFLA_GENEVE_UDP_ZERO_CSUM6_RX = 0xa + IFLA_GENEVE_LABEL = 0xb + IFLA_GENEVE_TTL_INHERIT = 0xc + IFLA_GENEVE_DF = 0xd + IFLA_BAREUDP_UNSPEC = 0x0 + IFLA_BAREUDP_PORT = 0x1 + IFLA_BAREUDP_ETHERTYPE = 0x2 + IFLA_BAREUDP_SRCPORT_MIN = 0x3 + IFLA_BAREUDP_MULTIPROTO_MODE = 0x4 + IFLA_PPP_UNSPEC = 0x0 + IFLA_PPP_DEV_FD = 0x1 + IFLA_GTP_UNSPEC = 0x0 + IFLA_GTP_FD0 = 0x1 + IFLA_GTP_FD1 = 0x2 + IFLA_GTP_PDP_HASHSIZE = 0x3 + IFLA_GTP_ROLE = 0x4 + IFLA_BOND_UNSPEC = 0x0 + IFLA_BOND_MODE = 0x1 + IFLA_BOND_ACTIVE_SLAVE = 0x2 + IFLA_BOND_MIIMON = 0x3 + IFLA_BOND_UPDELAY = 0x4 + IFLA_BOND_DOWNDELAY = 0x5 + IFLA_BOND_USE_CARRIER = 0x6 + IFLA_BOND_ARP_INTERVAL = 0x7 + IFLA_BOND_ARP_IP_TARGET = 0x8 + IFLA_BOND_ARP_VALIDATE = 0x9 + IFLA_BOND_ARP_ALL_TARGETS = 0xa + IFLA_BOND_PRIMARY = 0xb + IFLA_BOND_PRIMARY_RESELECT = 0xc + IFLA_BOND_FAIL_OVER_MAC = 0xd + IFLA_BOND_XMIT_HASH_POLICY = 0xe + IFLA_BOND_RESEND_IGMP = 0xf + IFLA_BOND_NUM_PEER_NOTIF = 0x10 + IFLA_BOND_ALL_SLAVES_ACTIVE = 0x11 + IFLA_BOND_MIN_LINKS = 0x12 + IFLA_BOND_LP_INTERVAL = 0x13 + IFLA_BOND_PACKETS_PER_SLAVE = 0x14 + IFLA_BOND_AD_LACP_RATE = 0x15 + IFLA_BOND_AD_SELECT = 0x16 + IFLA_BOND_AD_INFO = 0x17 + IFLA_BOND_AD_ACTOR_SYS_PRIO = 0x18 + IFLA_BOND_AD_USER_PORT_KEY = 0x19 + IFLA_BOND_AD_ACTOR_SYSTEM = 0x1a + IFLA_BOND_TLB_DYNAMIC_LB = 0x1b + IFLA_BOND_PEER_NOTIF_DELAY = 0x1c + IFLA_BOND_AD_INFO_UNSPEC = 0x0 + IFLA_BOND_AD_INFO_AGGREGATOR = 0x1 + IFLA_BOND_AD_INFO_NUM_PORTS = 0x2 + IFLA_BOND_AD_INFO_ACTOR_KEY = 0x3 + IFLA_BOND_AD_INFO_PARTNER_KEY = 0x4 + IFLA_BOND_AD_INFO_PARTNER_MAC = 0x5 + IFLA_BOND_SLAVE_UNSPEC = 0x0 + IFLA_BOND_SLAVE_STATE = 0x1 + IFLA_BOND_SLAVE_MII_STATUS = 0x2 + IFLA_BOND_SLAVE_LINK_FAILURE_COUNT = 0x3 + IFLA_BOND_SLAVE_PERM_HWADDR = 0x4 + IFLA_BOND_SLAVE_QUEUE_ID = 0x5 + IFLA_BOND_SLAVE_AD_AGGREGATOR_ID = 0x6 + IFLA_BOND_SLAVE_AD_ACTOR_OPER_PORT_STATE = 0x7 + IFLA_BOND_SLAVE_AD_PARTNER_OPER_PORT_STATE = 0x8 + IFLA_VF_INFO_UNSPEC = 0x0 + IFLA_VF_INFO = 0x1 + IFLA_VF_UNSPEC = 0x0 + IFLA_VF_MAC = 0x1 + IFLA_VF_VLAN = 0x2 + IFLA_VF_TX_RATE = 0x3 + IFLA_VF_SPOOFCHK = 0x4 + IFLA_VF_LINK_STATE = 0x5 + IFLA_VF_RATE = 0x6 + IFLA_VF_RSS_QUERY_EN = 0x7 + IFLA_VF_STATS = 0x8 + IFLA_VF_TRUST = 0x9 + IFLA_VF_IB_NODE_GUID = 0xa + IFLA_VF_IB_PORT_GUID = 0xb + IFLA_VF_VLAN_LIST = 0xc + IFLA_VF_BROADCAST = 0xd + IFLA_VF_VLAN_INFO_UNSPEC = 0x0 + IFLA_VF_VLAN_INFO = 0x1 + IFLA_VF_LINK_STATE_AUTO = 0x0 + IFLA_VF_LINK_STATE_ENABLE = 0x1 + IFLA_VF_LINK_STATE_DISABLE = 0x2 + IFLA_VF_STATS_RX_PACKETS = 0x0 + IFLA_VF_STATS_TX_PACKETS = 0x1 + IFLA_VF_STATS_RX_BYTES = 0x2 + IFLA_VF_STATS_TX_BYTES = 0x3 + IFLA_VF_STATS_BROADCAST = 0x4 + IFLA_VF_STATS_MULTICAST = 0x5 + IFLA_VF_STATS_PAD = 0x6 + IFLA_VF_STATS_RX_DROPPED = 0x7 + IFLA_VF_STATS_TX_DROPPED = 0x8 + IFLA_VF_PORT_UNSPEC = 0x0 + IFLA_VF_PORT = 0x1 + IFLA_PORT_UNSPEC = 0x0 + IFLA_PORT_VF = 0x1 + IFLA_PORT_PROFILE = 0x2 + IFLA_PORT_VSI_TYPE = 0x3 + IFLA_PORT_INSTANCE_UUID = 0x4 + IFLA_PORT_HOST_UUID = 0x5 + IFLA_PORT_REQUEST = 0x6 + IFLA_PORT_RESPONSE = 0x7 + IFLA_IPOIB_UNSPEC = 0x0 + IFLA_IPOIB_PKEY = 0x1 + IFLA_IPOIB_MODE = 0x2 + IFLA_IPOIB_UMCAST = 0x3 + IFLA_HSR_UNSPEC = 0x0 + IFLA_HSR_SLAVE1 = 0x1 + IFLA_HSR_SLAVE2 = 0x2 + IFLA_HSR_MULTICAST_SPEC = 0x3 + IFLA_HSR_SUPERVISION_ADDR = 0x4 + IFLA_HSR_SEQ_NR = 0x5 + IFLA_HSR_VERSION = 0x6 + IFLA_HSR_PROTOCOL = 0x7 + IFLA_STATS_UNSPEC = 0x0 + IFLA_STATS_LINK_64 = 0x1 + IFLA_STATS_LINK_XSTATS = 0x2 + IFLA_STATS_LINK_XSTATS_SLAVE = 0x3 + IFLA_STATS_LINK_OFFLOAD_XSTATS = 0x4 + IFLA_STATS_AF_SPEC = 0x5 + IFLA_OFFLOAD_XSTATS_UNSPEC = 0x0 + IFLA_OFFLOAD_XSTATS_CPU_HIT = 0x1 + IFLA_XDP_UNSPEC = 0x0 + IFLA_XDP_FD = 0x1 + IFLA_XDP_ATTACHED = 0x2 + IFLA_XDP_FLAGS = 0x3 + IFLA_XDP_PROG_ID = 0x4 + IFLA_XDP_DRV_PROG_ID = 0x5 + IFLA_XDP_SKB_PROG_ID = 0x6 + IFLA_XDP_HW_PROG_ID = 0x7 + IFLA_XDP_EXPECTED_FD = 0x8 + IFLA_EVENT_NONE = 0x0 + IFLA_EVENT_REBOOT = 0x1 + IFLA_EVENT_FEATURES = 0x2 + IFLA_EVENT_BONDING_FAILOVER = 0x3 + IFLA_EVENT_NOTIFY_PEERS = 0x4 + IFLA_EVENT_IGMP_RESEND = 0x5 + IFLA_EVENT_BONDING_OPTIONS = 0x6 + IFLA_TUN_UNSPEC = 0x0 + IFLA_TUN_OWNER = 0x1 + IFLA_TUN_GROUP = 0x2 + IFLA_TUN_TYPE = 0x3 + IFLA_TUN_PI = 0x4 + IFLA_TUN_VNET_HDR = 0x5 + IFLA_TUN_PERSIST = 0x6 + IFLA_TUN_MULTI_QUEUE = 0x7 + IFLA_TUN_NUM_QUEUES = 0x8 + IFLA_TUN_NUM_DISABLED_QUEUES = 0x9 + IFLA_RMNET_UNSPEC = 0x0 + IFLA_RMNET_MUX_ID = 0x1 + IFLA_RMNET_FLAGS = 0x2 +) + +const ( + NF_INET_PRE_ROUTING = 0x0 + NF_INET_LOCAL_IN = 0x1 + NF_INET_FORWARD = 0x2 + NF_INET_LOCAL_OUT = 0x3 + NF_INET_POST_ROUTING = 0x4 + NF_INET_NUMHOOKS = 0x5 +) + +const ( + NF_NETDEV_INGRESS = 0x0 + NF_NETDEV_EGRESS = 0x1 + NF_NETDEV_NUMHOOKS = 0x2 +) + +const ( + NFPROTO_UNSPEC = 0x0 + NFPROTO_INET = 0x1 + NFPROTO_IPV4 = 0x2 + NFPROTO_ARP = 0x3 + NFPROTO_NETDEV = 0x5 + NFPROTO_BRIDGE = 0x7 + NFPROTO_IPV6 = 0xa + NFPROTO_DECNET = 0xc + NFPROTO_NUMPROTO = 0xd +) + +const SO_ORIGINAL_DST = 0x50 + +type Nfgenmsg struct { + Nfgen_family uint8 + Version uint8 + Res_id uint16 +} + +const ( + NFNL_BATCH_UNSPEC = 0x0 + NFNL_BATCH_GENID = 0x1 +) + +const ( + NFT_REG_VERDICT = 0x0 + NFT_REG_1 = 0x1 + NFT_REG_2 = 0x2 + NFT_REG_3 = 0x3 + NFT_REG_4 = 0x4 + NFT_REG32_00 = 0x8 + NFT_REG32_01 = 0x9 + NFT_REG32_02 = 0xa + NFT_REG32_03 = 0xb + NFT_REG32_04 = 0xc + NFT_REG32_05 = 0xd + NFT_REG32_06 = 0xe + NFT_REG32_07 = 0xf + NFT_REG32_08 = 0x10 + NFT_REG32_09 = 0x11 + NFT_REG32_10 = 0x12 + NFT_REG32_11 = 0x13 + NFT_REG32_12 = 0x14 + NFT_REG32_13 = 0x15 + NFT_REG32_14 = 0x16 + NFT_REG32_15 = 0x17 + NFT_CONTINUE = -0x1 + NFT_BREAK = -0x2 + NFT_JUMP = -0x3 + NFT_GOTO = -0x4 + NFT_RETURN = -0x5 + NFT_MSG_NEWTABLE = 0x0 + NFT_MSG_GETTABLE = 0x1 + NFT_MSG_DELTABLE = 0x2 + NFT_MSG_NEWCHAIN = 0x3 + NFT_MSG_GETCHAIN = 0x4 + NFT_MSG_DELCHAIN = 0x5 + NFT_MSG_NEWRULE = 0x6 + NFT_MSG_GETRULE = 0x7 + NFT_MSG_DELRULE = 0x8 + NFT_MSG_NEWSET = 0x9 + NFT_MSG_GETSET = 0xa + NFT_MSG_DELSET = 0xb + NFT_MSG_NEWSETELEM = 0xc + NFT_MSG_GETSETELEM = 0xd + NFT_MSG_DELSETELEM = 0xe + NFT_MSG_NEWGEN = 0xf + NFT_MSG_GETGEN = 0x10 + NFT_MSG_TRACE = 0x11 + NFT_MSG_NEWOBJ = 0x12 + NFT_MSG_GETOBJ = 0x13 + NFT_MSG_DELOBJ = 0x14 + NFT_MSG_GETOBJ_RESET = 0x15 + NFT_MSG_NEWFLOWTABLE = 0x16 + NFT_MSG_GETFLOWTABLE = 0x17 + NFT_MSG_DELFLOWTABLE = 0x18 + NFT_MSG_GETRULE_RESET = 0x19 + NFT_MSG_MAX = 0x1a + NFTA_LIST_UNSPEC = 0x0 + NFTA_LIST_ELEM = 0x1 + NFTA_HOOK_UNSPEC = 0x0 + NFTA_HOOK_HOOKNUM = 0x1 + NFTA_HOOK_PRIORITY = 0x2 + NFTA_HOOK_DEV = 0x3 + NFT_TABLE_F_DORMANT = 0x1 + NFTA_TABLE_UNSPEC = 0x0 + NFTA_TABLE_NAME = 0x1 + NFTA_TABLE_FLAGS = 0x2 + NFTA_TABLE_USE = 0x3 + NFTA_CHAIN_UNSPEC = 0x0 + NFTA_CHAIN_TABLE = 0x1 + NFTA_CHAIN_HANDLE = 0x2 + NFTA_CHAIN_NAME = 0x3 + NFTA_CHAIN_HOOK = 0x4 + NFTA_CHAIN_POLICY = 0x5 + NFTA_CHAIN_USE = 0x6 + NFTA_CHAIN_TYPE = 0x7 + NFTA_CHAIN_COUNTERS = 0x8 + NFTA_CHAIN_PAD = 0x9 + NFTA_RULE_UNSPEC = 0x0 + NFTA_RULE_TABLE = 0x1 + NFTA_RULE_CHAIN = 0x2 + NFTA_RULE_HANDLE = 0x3 + NFTA_RULE_EXPRESSIONS = 0x4 + NFTA_RULE_COMPAT = 0x5 + NFTA_RULE_POSITION = 0x6 + NFTA_RULE_USERDATA = 0x7 + NFTA_RULE_PAD = 0x8 + NFTA_RULE_ID = 0x9 + NFT_RULE_COMPAT_F_INV = 0x2 + NFT_RULE_COMPAT_F_MASK = 0x2 + NFTA_RULE_COMPAT_UNSPEC = 0x0 + NFTA_RULE_COMPAT_PROTO = 0x1 + NFTA_RULE_COMPAT_FLAGS = 0x2 + NFT_SET_ANONYMOUS = 0x1 + NFT_SET_CONSTANT = 0x2 + NFT_SET_INTERVAL = 0x4 + NFT_SET_MAP = 0x8 + NFT_SET_TIMEOUT = 0x10 + NFT_SET_EVAL = 0x20 + NFT_SET_OBJECT = 0x40 + NFT_SET_POL_PERFORMANCE = 0x0 + NFT_SET_POL_MEMORY = 0x1 + NFTA_SET_DESC_UNSPEC = 0x0 + NFTA_SET_DESC_SIZE = 0x1 + NFTA_SET_UNSPEC = 0x0 + NFTA_SET_TABLE = 0x1 + NFTA_SET_NAME = 0x2 + NFTA_SET_FLAGS = 0x3 + NFTA_SET_KEY_TYPE = 0x4 + NFTA_SET_KEY_LEN = 0x5 + NFTA_SET_DATA_TYPE = 0x6 + NFTA_SET_DATA_LEN = 0x7 + NFTA_SET_POLICY = 0x8 + NFTA_SET_DESC = 0x9 + NFTA_SET_ID = 0xa + NFTA_SET_TIMEOUT = 0xb + NFTA_SET_GC_INTERVAL = 0xc + NFTA_SET_USERDATA = 0xd + NFTA_SET_PAD = 0xe + NFTA_SET_OBJ_TYPE = 0xf + NFT_SET_ELEM_INTERVAL_END = 0x1 + NFTA_SET_ELEM_UNSPEC = 0x0 + NFTA_SET_ELEM_KEY = 0x1 + NFTA_SET_ELEM_DATA = 0x2 + NFTA_SET_ELEM_FLAGS = 0x3 + NFTA_SET_ELEM_TIMEOUT = 0x4 + NFTA_SET_ELEM_EXPIRATION = 0x5 + NFTA_SET_ELEM_USERDATA = 0x6 + NFTA_SET_ELEM_EXPR = 0x7 + NFTA_SET_ELEM_PAD = 0x8 + NFTA_SET_ELEM_OBJREF = 0x9 + NFTA_SET_ELEM_LIST_UNSPEC = 0x0 + NFTA_SET_ELEM_LIST_TABLE = 0x1 + NFTA_SET_ELEM_LIST_SET = 0x2 + NFTA_SET_ELEM_LIST_ELEMENTS = 0x3 + NFTA_SET_ELEM_LIST_SET_ID = 0x4 + NFT_DATA_VALUE = 0x0 + NFT_DATA_VERDICT = 0xffffff00 + NFTA_DATA_UNSPEC = 0x0 + NFTA_DATA_VALUE = 0x1 + NFTA_DATA_VERDICT = 0x2 + NFTA_VERDICT_UNSPEC = 0x0 + NFTA_VERDICT_CODE = 0x1 + NFTA_VERDICT_CHAIN = 0x2 + NFTA_EXPR_UNSPEC = 0x0 + NFTA_EXPR_NAME = 0x1 + NFTA_EXPR_DATA = 0x2 + NFTA_IMMEDIATE_UNSPEC = 0x0 + NFTA_IMMEDIATE_DREG = 0x1 + NFTA_IMMEDIATE_DATA = 0x2 + NFTA_BITWISE_UNSPEC = 0x0 + NFTA_BITWISE_SREG = 0x1 + NFTA_BITWISE_DREG = 0x2 + NFTA_BITWISE_LEN = 0x3 + NFTA_BITWISE_MASK = 0x4 + NFTA_BITWISE_XOR = 0x5 + NFT_BYTEORDER_NTOH = 0x0 + NFT_BYTEORDER_HTON = 0x1 + NFTA_BYTEORDER_UNSPEC = 0x0 + NFTA_BYTEORDER_SREG = 0x1 + NFTA_BYTEORDER_DREG = 0x2 + NFTA_BYTEORDER_OP = 0x3 + NFTA_BYTEORDER_LEN = 0x4 + NFTA_BYTEORDER_SIZE = 0x5 + NFT_CMP_EQ = 0x0 + NFT_CMP_NEQ = 0x1 + NFT_CMP_LT = 0x2 + NFT_CMP_LTE = 0x3 + NFT_CMP_GT = 0x4 + NFT_CMP_GTE = 0x5 + NFTA_CMP_UNSPEC = 0x0 + NFTA_CMP_SREG = 0x1 + NFTA_CMP_OP = 0x2 + NFTA_CMP_DATA = 0x3 + NFT_RANGE_EQ = 0x0 + NFT_RANGE_NEQ = 0x1 + NFTA_RANGE_UNSPEC = 0x0 + NFTA_RANGE_SREG = 0x1 + NFTA_RANGE_OP = 0x2 + NFTA_RANGE_FROM_DATA = 0x3 + NFTA_RANGE_TO_DATA = 0x4 + NFT_LOOKUP_F_INV = 0x1 + NFTA_LOOKUP_UNSPEC = 0x0 + NFTA_LOOKUP_SET = 0x1 + NFTA_LOOKUP_SREG = 0x2 + NFTA_LOOKUP_DREG = 0x3 + NFTA_LOOKUP_SET_ID = 0x4 + NFTA_LOOKUP_FLAGS = 0x5 + NFT_DYNSET_OP_ADD = 0x0 + NFT_DYNSET_OP_UPDATE = 0x1 + NFT_DYNSET_F_INV = 0x1 + NFTA_DYNSET_UNSPEC = 0x0 + NFTA_DYNSET_SET_NAME = 0x1 + NFTA_DYNSET_SET_ID = 0x2 + NFTA_DYNSET_OP = 0x3 + NFTA_DYNSET_SREG_KEY = 0x4 + NFTA_DYNSET_SREG_DATA = 0x5 + NFTA_DYNSET_TIMEOUT = 0x6 + NFTA_DYNSET_EXPR = 0x7 + NFTA_DYNSET_PAD = 0x8 + NFTA_DYNSET_FLAGS = 0x9 + NFT_PAYLOAD_LL_HEADER = 0x0 + NFT_PAYLOAD_NETWORK_HEADER = 0x1 + NFT_PAYLOAD_TRANSPORT_HEADER = 0x2 + NFT_PAYLOAD_CSUM_NONE = 0x0 + NFT_PAYLOAD_CSUM_INET = 0x1 + NFT_PAYLOAD_L4CSUM_PSEUDOHDR = 0x1 + NFTA_PAYLOAD_UNSPEC = 0x0 + NFTA_PAYLOAD_DREG = 0x1 + NFTA_PAYLOAD_BASE = 0x2 + NFTA_PAYLOAD_OFFSET = 0x3 + NFTA_PAYLOAD_LEN = 0x4 + NFTA_PAYLOAD_SREG = 0x5 + NFTA_PAYLOAD_CSUM_TYPE = 0x6 + NFTA_PAYLOAD_CSUM_OFFSET = 0x7 + NFTA_PAYLOAD_CSUM_FLAGS = 0x8 + NFT_EXTHDR_F_PRESENT = 0x1 + NFT_EXTHDR_OP_IPV6 = 0x0 + NFT_EXTHDR_OP_TCPOPT = 0x1 + NFTA_EXTHDR_UNSPEC = 0x0 + NFTA_EXTHDR_DREG = 0x1 + NFTA_EXTHDR_TYPE = 0x2 + NFTA_EXTHDR_OFFSET = 0x3 + NFTA_EXTHDR_LEN = 0x4 + NFTA_EXTHDR_FLAGS = 0x5 + NFTA_EXTHDR_OP = 0x6 + NFTA_EXTHDR_SREG = 0x7 + NFT_META_LEN = 0x0 + NFT_META_PROTOCOL = 0x1 + NFT_META_PRIORITY = 0x2 + NFT_META_MARK = 0x3 + NFT_META_IIF = 0x4 + NFT_META_OIF = 0x5 + NFT_META_IIFNAME = 0x6 + NFT_META_OIFNAME = 0x7 + NFT_META_IIFTYPE = 0x8 + NFT_META_OIFTYPE = 0x9 + NFT_META_SKUID = 0xa + NFT_META_SKGID = 0xb + NFT_META_NFTRACE = 0xc + NFT_META_RTCLASSID = 0xd + NFT_META_SECMARK = 0xe + NFT_META_NFPROTO = 0xf + NFT_META_L4PROTO = 0x10 + NFT_META_BRI_IIFNAME = 0x11 + NFT_META_BRI_OIFNAME = 0x12 + NFT_META_PKTTYPE = 0x13 + NFT_META_CPU = 0x14 + NFT_META_IIFGROUP = 0x15 + NFT_META_OIFGROUP = 0x16 + NFT_META_CGROUP = 0x17 + NFT_META_PRANDOM = 0x18 + NFT_RT_CLASSID = 0x0 + NFT_RT_NEXTHOP4 = 0x1 + NFT_RT_NEXTHOP6 = 0x2 + NFT_RT_TCPMSS = 0x3 + NFT_HASH_JENKINS = 0x0 + NFT_HASH_SYM = 0x1 + NFTA_HASH_UNSPEC = 0x0 + NFTA_HASH_SREG = 0x1 + NFTA_HASH_DREG = 0x2 + NFTA_HASH_LEN = 0x3 + NFTA_HASH_MODULUS = 0x4 + NFTA_HASH_SEED = 0x5 + NFTA_HASH_OFFSET = 0x6 + NFTA_HASH_TYPE = 0x7 + NFTA_META_UNSPEC = 0x0 + NFTA_META_DREG = 0x1 + NFTA_META_KEY = 0x2 + NFTA_META_SREG = 0x3 + NFTA_RT_UNSPEC = 0x0 + NFTA_RT_DREG = 0x1 + NFTA_RT_KEY = 0x2 + NFT_CT_STATE = 0x0 + NFT_CT_DIRECTION = 0x1 + NFT_CT_STATUS = 0x2 + NFT_CT_MARK = 0x3 + NFT_CT_SECMARK = 0x4 + NFT_CT_EXPIRATION = 0x5 + NFT_CT_HELPER = 0x6 + NFT_CT_L3PROTOCOL = 0x7 + NFT_CT_SRC = 0x8 + NFT_CT_DST = 0x9 + NFT_CT_PROTOCOL = 0xa + NFT_CT_PROTO_SRC = 0xb + NFT_CT_PROTO_DST = 0xc + NFT_CT_LABELS = 0xd + NFT_CT_PKTS = 0xe + NFT_CT_BYTES = 0xf + NFT_CT_AVGPKT = 0x10 + NFT_CT_ZONE = 0x11 + NFT_CT_EVENTMASK = 0x12 + NFTA_CT_UNSPEC = 0x0 + NFTA_CT_DREG = 0x1 + NFTA_CT_KEY = 0x2 + NFTA_CT_DIRECTION = 0x3 + NFTA_CT_SREG = 0x4 + NFT_LIMIT_PKTS = 0x0 + NFT_LIMIT_PKT_BYTES = 0x1 + NFT_LIMIT_F_INV = 0x1 + NFTA_LIMIT_UNSPEC = 0x0 + NFTA_LIMIT_RATE = 0x1 + NFTA_LIMIT_UNIT = 0x2 + NFTA_LIMIT_BURST = 0x3 + NFTA_LIMIT_TYPE = 0x4 + NFTA_LIMIT_FLAGS = 0x5 + NFTA_LIMIT_PAD = 0x6 + NFTA_COUNTER_UNSPEC = 0x0 + NFTA_COUNTER_BYTES = 0x1 + NFTA_COUNTER_PACKETS = 0x2 + NFTA_COUNTER_PAD = 0x3 + NFTA_LOG_UNSPEC = 0x0 + NFTA_LOG_GROUP = 0x1 + NFTA_LOG_PREFIX = 0x2 + NFTA_LOG_SNAPLEN = 0x3 + NFTA_LOG_QTHRESHOLD = 0x4 + NFTA_LOG_LEVEL = 0x5 + NFTA_LOG_FLAGS = 0x6 + NFTA_QUEUE_UNSPEC = 0x0 + NFTA_QUEUE_NUM = 0x1 + NFTA_QUEUE_TOTAL = 0x2 + NFTA_QUEUE_FLAGS = 0x3 + NFTA_QUEUE_SREG_QNUM = 0x4 + NFT_QUOTA_F_INV = 0x1 + NFT_QUOTA_F_DEPLETED = 0x2 + NFTA_QUOTA_UNSPEC = 0x0 + NFTA_QUOTA_BYTES = 0x1 + NFTA_QUOTA_FLAGS = 0x2 + NFTA_QUOTA_PAD = 0x3 + NFTA_QUOTA_CONSUMED = 0x4 + NFT_REJECT_ICMP_UNREACH = 0x0 + NFT_REJECT_TCP_RST = 0x1 + NFT_REJECT_ICMPX_UNREACH = 0x2 + NFT_REJECT_ICMPX_NO_ROUTE = 0x0 + NFT_REJECT_ICMPX_PORT_UNREACH = 0x1 + NFT_REJECT_ICMPX_HOST_UNREACH = 0x2 + NFT_REJECT_ICMPX_ADMIN_PROHIBITED = 0x3 + NFTA_REJECT_UNSPEC = 0x0 + NFTA_REJECT_TYPE = 0x1 + NFTA_REJECT_ICMP_CODE = 0x2 + NFT_NAT_SNAT = 0x0 + NFT_NAT_DNAT = 0x1 + NFTA_NAT_UNSPEC = 0x0 + NFTA_NAT_TYPE = 0x1 + NFTA_NAT_FAMILY = 0x2 + NFTA_NAT_REG_ADDR_MIN = 0x3 + NFTA_NAT_REG_ADDR_MAX = 0x4 + NFTA_NAT_REG_PROTO_MIN = 0x5 + NFTA_NAT_REG_PROTO_MAX = 0x6 + NFTA_NAT_FLAGS = 0x7 + NFTA_MASQ_UNSPEC = 0x0 + NFTA_MASQ_FLAGS = 0x1 + NFTA_MASQ_REG_PROTO_MIN = 0x2 + NFTA_MASQ_REG_PROTO_MAX = 0x3 + NFTA_REDIR_UNSPEC = 0x0 + NFTA_REDIR_REG_PROTO_MIN = 0x1 + NFTA_REDIR_REG_PROTO_MAX = 0x2 + NFTA_REDIR_FLAGS = 0x3 + NFTA_DUP_UNSPEC = 0x0 + NFTA_DUP_SREG_ADDR = 0x1 + NFTA_DUP_SREG_DEV = 0x2 + NFTA_FWD_UNSPEC = 0x0 + NFTA_FWD_SREG_DEV = 0x1 + NFTA_OBJREF_UNSPEC = 0x0 + NFTA_OBJREF_IMM_TYPE = 0x1 + NFTA_OBJREF_IMM_NAME = 0x2 + NFTA_OBJREF_SET_SREG = 0x3 + NFTA_OBJREF_SET_NAME = 0x4 + NFTA_OBJREF_SET_ID = 0x5 + NFTA_GEN_UNSPEC = 0x0 + NFTA_GEN_ID = 0x1 + NFTA_GEN_PROC_PID = 0x2 + NFTA_GEN_PROC_NAME = 0x3 + NFTA_FIB_UNSPEC = 0x0 + NFTA_FIB_DREG = 0x1 + NFTA_FIB_RESULT = 0x2 + NFTA_FIB_FLAGS = 0x3 + NFT_FIB_RESULT_UNSPEC = 0x0 + NFT_FIB_RESULT_OIF = 0x1 + NFT_FIB_RESULT_OIFNAME = 0x2 + NFT_FIB_RESULT_ADDRTYPE = 0x3 + NFTA_FIB_F_SADDR = 0x1 + NFTA_FIB_F_DADDR = 0x2 + NFTA_FIB_F_MARK = 0x4 + NFTA_FIB_F_IIF = 0x8 + NFTA_FIB_F_OIF = 0x10 + NFTA_FIB_F_PRESENT = 0x20 + NFTA_CT_HELPER_UNSPEC = 0x0 + NFTA_CT_HELPER_NAME = 0x1 + NFTA_CT_HELPER_L3PROTO = 0x2 + NFTA_CT_HELPER_L4PROTO = 0x3 + NFTA_OBJ_UNSPEC = 0x0 + NFTA_OBJ_TABLE = 0x1 + NFTA_OBJ_NAME = 0x2 + NFTA_OBJ_TYPE = 0x3 + NFTA_OBJ_DATA = 0x4 + NFTA_OBJ_USE = 0x5 + NFTA_TRACE_UNSPEC = 0x0 + NFTA_TRACE_TABLE = 0x1 + NFTA_TRACE_CHAIN = 0x2 + NFTA_TRACE_RULE_HANDLE = 0x3 + NFTA_TRACE_TYPE = 0x4 + NFTA_TRACE_VERDICT = 0x5 + NFTA_TRACE_ID = 0x6 + NFTA_TRACE_LL_HEADER = 0x7 + NFTA_TRACE_NETWORK_HEADER = 0x8 + NFTA_TRACE_TRANSPORT_HEADER = 0x9 + NFTA_TRACE_IIF = 0xa + NFTA_TRACE_IIFTYPE = 0xb + NFTA_TRACE_OIF = 0xc + NFTA_TRACE_OIFTYPE = 0xd + NFTA_TRACE_MARK = 0xe + NFTA_TRACE_NFPROTO = 0xf + NFTA_TRACE_POLICY = 0x10 + NFTA_TRACE_PAD = 0x11 + NFT_TRACETYPE_UNSPEC = 0x0 + NFT_TRACETYPE_POLICY = 0x1 + NFT_TRACETYPE_RETURN = 0x2 + NFT_TRACETYPE_RULE = 0x3 + NFTA_NG_UNSPEC = 0x0 + NFTA_NG_DREG = 0x1 + NFTA_NG_MODULUS = 0x2 + NFTA_NG_TYPE = 0x3 + NFTA_NG_OFFSET = 0x4 + NFT_NG_INCREMENTAL = 0x0 + NFT_NG_RANDOM = 0x1 +) + +const ( + NFTA_TARGET_UNSPEC = 0x0 + NFTA_TARGET_NAME = 0x1 + NFTA_TARGET_REV = 0x2 + NFTA_TARGET_INFO = 0x3 + NFTA_MATCH_UNSPEC = 0x0 + NFTA_MATCH_NAME = 0x1 + NFTA_MATCH_REV = 0x2 + NFTA_MATCH_INFO = 0x3 + NFTA_COMPAT_UNSPEC = 0x0 + NFTA_COMPAT_NAME = 0x1 + NFTA_COMPAT_REV = 0x2 + NFTA_COMPAT_TYPE = 0x3 +) + +type RTCTime struct { + Sec int32 + Min int32 + Hour int32 + Mday int32 + Mon int32 + Year int32 + Wday int32 + Yday int32 + Isdst int32 +} + +type RTCWkAlrm struct { + Enabled uint8 + Pending uint8 + Time RTCTime +} + +type BlkpgIoctlArg struct { + Op int32 + Flags int32 + Datalen int32 + Data *byte +} + +const ( + BLKPG_ADD_PARTITION = 0x1 + BLKPG_DEL_PARTITION = 0x2 + BLKPG_RESIZE_PARTITION = 0x3 +) + +const ( + NETNSA_NONE = 0x0 + NETNSA_NSID = 0x1 + NETNSA_PID = 0x2 + NETNSA_FD = 0x3 + NETNSA_TARGET_NSID = 0x4 + NETNSA_CURRENT_NSID = 0x5 +) + +type XDPRingOffset struct { + Producer uint64 + Consumer uint64 + Desc uint64 + Flags uint64 +} + +type XDPMmapOffsets struct { + Rx XDPRingOffset + Tx XDPRingOffset + Fr XDPRingOffset + Cr XDPRingOffset +} + +type XDPStatistics struct { + Rx_dropped uint64 + Rx_invalid_descs uint64 + Tx_invalid_descs uint64 + Rx_ring_full uint64 + Rx_fill_ring_empty_descs uint64 + Tx_ring_empty_descs uint64 +} + +type XDPDesc struct { + Addr uint64 + Len uint32 + Options uint32 +} + +const ( + NCSI_CMD_UNSPEC = 0x0 + NCSI_CMD_PKG_INFO = 0x1 + NCSI_CMD_SET_INTERFACE = 0x2 + NCSI_CMD_CLEAR_INTERFACE = 0x3 + NCSI_ATTR_UNSPEC = 0x0 + NCSI_ATTR_IFINDEX = 0x1 + NCSI_ATTR_PACKAGE_LIST = 0x2 + NCSI_ATTR_PACKAGE_ID = 0x3 + NCSI_ATTR_CHANNEL_ID = 0x4 + NCSI_PKG_ATTR_UNSPEC = 0x0 + NCSI_PKG_ATTR = 0x1 + NCSI_PKG_ATTR_ID = 0x2 + NCSI_PKG_ATTR_FORCED = 0x3 + NCSI_PKG_ATTR_CHANNEL_LIST = 0x4 + NCSI_CHANNEL_ATTR_UNSPEC = 0x0 + NCSI_CHANNEL_ATTR = 0x1 + NCSI_CHANNEL_ATTR_ID = 0x2 + NCSI_CHANNEL_ATTR_VERSION_MAJOR = 0x3 + NCSI_CHANNEL_ATTR_VERSION_MINOR = 0x4 + NCSI_CHANNEL_ATTR_VERSION_STR = 0x5 + NCSI_CHANNEL_ATTR_LINK_STATE = 0x6 + NCSI_CHANNEL_ATTR_ACTIVE = 0x7 + NCSI_CHANNEL_ATTR_FORCED = 0x8 + NCSI_CHANNEL_ATTR_VLAN_LIST = 0x9 + NCSI_CHANNEL_ATTR_VLAN_ID = 0xa +) + +type ScmTimestamping struct { + Ts [3]Timespec +} + +const ( + SOF_TIMESTAMPING_TX_HARDWARE = 0x1 + SOF_TIMESTAMPING_TX_SOFTWARE = 0x2 + SOF_TIMESTAMPING_RX_HARDWARE = 0x4 + SOF_TIMESTAMPING_RX_SOFTWARE = 0x8 + SOF_TIMESTAMPING_SOFTWARE = 0x10 + SOF_TIMESTAMPING_SYS_HARDWARE = 0x20 + SOF_TIMESTAMPING_RAW_HARDWARE = 0x40 + SOF_TIMESTAMPING_OPT_ID = 0x80 + SOF_TIMESTAMPING_TX_SCHED = 0x100 + SOF_TIMESTAMPING_TX_ACK = 0x200 + SOF_TIMESTAMPING_OPT_CMSG = 0x400 + SOF_TIMESTAMPING_OPT_TSONLY = 0x800 + SOF_TIMESTAMPING_OPT_STATS = 0x1000 + SOF_TIMESTAMPING_OPT_PKTINFO = 0x2000 + SOF_TIMESTAMPING_OPT_TX_SWHW = 0x4000 + SOF_TIMESTAMPING_BIND_PHC = 0x8000 + SOF_TIMESTAMPING_OPT_ID_TCP = 0x10000 + + SOF_TIMESTAMPING_LAST = 0x10000 + SOF_TIMESTAMPING_MASK = 0x1ffff + + SCM_TSTAMP_SND = 0x0 + SCM_TSTAMP_SCHED = 0x1 + SCM_TSTAMP_ACK = 0x2 +) + +type SockExtendedErr struct { + Errno uint32 + Origin uint8 + Type uint8 + Code uint8 + Pad uint8 + Info uint32 + Data uint32 +} + +type FanotifyEventMetadata struct { + Event_len uint32 + Vers uint8 + Reserved uint8 + Metadata_len uint16 + Mask uint64 + Fd int32 + Pid int32 +} + +type FanotifyResponse struct { + Fd int32 + Response uint32 +} + +const ( + CRYPTO_MSG_BASE = 0x10 + CRYPTO_MSG_NEWALG = 0x10 + CRYPTO_MSG_DELALG = 0x11 + CRYPTO_MSG_UPDATEALG = 0x12 + CRYPTO_MSG_GETALG = 0x13 + CRYPTO_MSG_DELRNG = 0x14 + CRYPTO_MSG_GETSTAT = 0x15 +) + +const ( + CRYPTOCFGA_UNSPEC = 0x0 + CRYPTOCFGA_PRIORITY_VAL = 0x1 + CRYPTOCFGA_REPORT_LARVAL = 0x2 + CRYPTOCFGA_REPORT_HASH = 0x3 + CRYPTOCFGA_REPORT_BLKCIPHER = 0x4 + CRYPTOCFGA_REPORT_AEAD = 0x5 + CRYPTOCFGA_REPORT_COMPRESS = 0x6 + CRYPTOCFGA_REPORT_RNG = 0x7 + CRYPTOCFGA_REPORT_CIPHER = 0x8 + CRYPTOCFGA_REPORT_AKCIPHER = 0x9 + CRYPTOCFGA_REPORT_KPP = 0xa + CRYPTOCFGA_REPORT_ACOMP = 0xb + CRYPTOCFGA_STAT_LARVAL = 0xc + CRYPTOCFGA_STAT_HASH = 0xd + CRYPTOCFGA_STAT_BLKCIPHER = 0xe + CRYPTOCFGA_STAT_AEAD = 0xf + CRYPTOCFGA_STAT_COMPRESS = 0x10 + CRYPTOCFGA_STAT_RNG = 0x11 + CRYPTOCFGA_STAT_CIPHER = 0x12 + CRYPTOCFGA_STAT_AKCIPHER = 0x13 + CRYPTOCFGA_STAT_KPP = 0x14 + CRYPTOCFGA_STAT_ACOMP = 0x15 +) + +const ( + BPF_REG_0 = 0x0 + BPF_REG_1 = 0x1 + BPF_REG_2 = 0x2 + BPF_REG_3 = 0x3 + BPF_REG_4 = 0x4 + BPF_REG_5 = 0x5 + BPF_REG_6 = 0x6 + BPF_REG_7 = 0x7 + BPF_REG_8 = 0x8 + BPF_REG_9 = 0x9 + BPF_REG_10 = 0xa + BPF_MAP_CREATE = 0x0 + BPF_MAP_LOOKUP_ELEM = 0x1 + BPF_MAP_UPDATE_ELEM = 0x2 + BPF_MAP_DELETE_ELEM = 0x3 + BPF_MAP_GET_NEXT_KEY = 0x4 + BPF_PROG_LOAD = 0x5 + BPF_OBJ_PIN = 0x6 + BPF_OBJ_GET = 0x7 + BPF_PROG_ATTACH = 0x8 + BPF_PROG_DETACH = 0x9 + BPF_PROG_TEST_RUN = 0xa + BPF_PROG_GET_NEXT_ID = 0xb + BPF_MAP_GET_NEXT_ID = 0xc + BPF_PROG_GET_FD_BY_ID = 0xd + BPF_MAP_GET_FD_BY_ID = 0xe + BPF_OBJ_GET_INFO_BY_FD = 0xf + BPF_PROG_QUERY = 0x10 + BPF_RAW_TRACEPOINT_OPEN = 0x11 + BPF_BTF_LOAD = 0x12 + BPF_BTF_GET_FD_BY_ID = 0x13 + BPF_TASK_FD_QUERY = 0x14 + BPF_MAP_LOOKUP_AND_DELETE_ELEM = 0x15 + BPF_MAP_FREEZE = 0x16 + BPF_BTF_GET_NEXT_ID = 0x17 + BPF_MAP_LOOKUP_BATCH = 0x18 + BPF_MAP_LOOKUP_AND_DELETE_BATCH = 0x19 + BPF_MAP_UPDATE_BATCH = 0x1a + BPF_MAP_DELETE_BATCH = 0x1b + BPF_LINK_CREATE = 0x1c + BPF_LINK_UPDATE = 0x1d + BPF_LINK_GET_FD_BY_ID = 0x1e + BPF_LINK_GET_NEXT_ID = 0x1f + BPF_ENABLE_STATS = 0x20 + BPF_ITER_CREATE = 0x21 + BPF_LINK_DETACH = 0x22 + BPF_PROG_BIND_MAP = 0x23 + BPF_MAP_TYPE_UNSPEC = 0x0 + BPF_MAP_TYPE_HASH = 0x1 + BPF_MAP_TYPE_ARRAY = 0x2 + BPF_MAP_TYPE_PROG_ARRAY = 0x3 + BPF_MAP_TYPE_PERF_EVENT_ARRAY = 0x4 + BPF_MAP_TYPE_PERCPU_HASH = 0x5 + BPF_MAP_TYPE_PERCPU_ARRAY = 0x6 + BPF_MAP_TYPE_STACK_TRACE = 0x7 + BPF_MAP_TYPE_CGROUP_ARRAY = 0x8 + BPF_MAP_TYPE_LRU_HASH = 0x9 + BPF_MAP_TYPE_LRU_PERCPU_HASH = 0xa + BPF_MAP_TYPE_LPM_TRIE = 0xb + BPF_MAP_TYPE_ARRAY_OF_MAPS = 0xc + BPF_MAP_TYPE_HASH_OF_MAPS = 0xd + BPF_MAP_TYPE_DEVMAP = 0xe + BPF_MAP_TYPE_SOCKMAP = 0xf + BPF_MAP_TYPE_CPUMAP = 0x10 + BPF_MAP_TYPE_XSKMAP = 0x11 + BPF_MAP_TYPE_SOCKHASH = 0x12 + BPF_MAP_TYPE_CGROUP_STORAGE = 0x13 + BPF_MAP_TYPE_REUSEPORT_SOCKARRAY = 0x14 + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE = 0x15 + BPF_MAP_TYPE_QUEUE = 0x16 + BPF_MAP_TYPE_STACK = 0x17 + BPF_MAP_TYPE_SK_STORAGE = 0x18 + BPF_MAP_TYPE_DEVMAP_HASH = 0x19 + BPF_MAP_TYPE_STRUCT_OPS = 0x1a + BPF_MAP_TYPE_RINGBUF = 0x1b + BPF_MAP_TYPE_INODE_STORAGE = 0x1c + BPF_PROG_TYPE_UNSPEC = 0x0 + BPF_PROG_TYPE_SOCKET_FILTER = 0x1 + BPF_PROG_TYPE_KPROBE = 0x2 + BPF_PROG_TYPE_SCHED_CLS = 0x3 + BPF_PROG_TYPE_SCHED_ACT = 0x4 + BPF_PROG_TYPE_TRACEPOINT = 0x5 + BPF_PROG_TYPE_XDP = 0x6 + BPF_PROG_TYPE_PERF_EVENT = 0x7 + BPF_PROG_TYPE_CGROUP_SKB = 0x8 + BPF_PROG_TYPE_CGROUP_SOCK = 0x9 + BPF_PROG_TYPE_LWT_IN = 0xa + BPF_PROG_TYPE_LWT_OUT = 0xb + BPF_PROG_TYPE_LWT_XMIT = 0xc + BPF_PROG_TYPE_SOCK_OPS = 0xd + BPF_PROG_TYPE_SK_SKB = 0xe + BPF_PROG_TYPE_CGROUP_DEVICE = 0xf + BPF_PROG_TYPE_SK_MSG = 0x10 + BPF_PROG_TYPE_RAW_TRACEPOINT = 0x11 + BPF_PROG_TYPE_CGROUP_SOCK_ADDR = 0x12 + BPF_PROG_TYPE_LWT_SEG6LOCAL = 0x13 + BPF_PROG_TYPE_LIRC_MODE2 = 0x14 + BPF_PROG_TYPE_SK_REUSEPORT = 0x15 + BPF_PROG_TYPE_FLOW_DISSECTOR = 0x16 + BPF_PROG_TYPE_CGROUP_SYSCTL = 0x17 + BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE = 0x18 + BPF_PROG_TYPE_CGROUP_SOCKOPT = 0x19 + BPF_PROG_TYPE_TRACING = 0x1a + BPF_PROG_TYPE_STRUCT_OPS = 0x1b + BPF_PROG_TYPE_EXT = 0x1c + BPF_PROG_TYPE_LSM = 0x1d + BPF_PROG_TYPE_SK_LOOKUP = 0x1e + BPF_CGROUP_INET_INGRESS = 0x0 + BPF_CGROUP_INET_EGRESS = 0x1 + BPF_CGROUP_INET_SOCK_CREATE = 0x2 + BPF_CGROUP_SOCK_OPS = 0x3 + BPF_SK_SKB_STREAM_PARSER = 0x4 + BPF_SK_SKB_STREAM_VERDICT = 0x5 + BPF_CGROUP_DEVICE = 0x6 + BPF_SK_MSG_VERDICT = 0x7 + BPF_CGROUP_INET4_BIND = 0x8 + BPF_CGROUP_INET6_BIND = 0x9 + BPF_CGROUP_INET4_CONNECT = 0xa + BPF_CGROUP_INET6_CONNECT = 0xb + BPF_CGROUP_INET4_POST_BIND = 0xc + BPF_CGROUP_INET6_POST_BIND = 0xd + BPF_CGROUP_UDP4_SENDMSG = 0xe + BPF_CGROUP_UDP6_SENDMSG = 0xf + BPF_LIRC_MODE2 = 0x10 + BPF_FLOW_DISSECTOR = 0x11 + BPF_CGROUP_SYSCTL = 0x12 + BPF_CGROUP_UDP4_RECVMSG = 0x13 + BPF_CGROUP_UDP6_RECVMSG = 0x14 + BPF_CGROUP_GETSOCKOPT = 0x15 + BPF_CGROUP_SETSOCKOPT = 0x16 + BPF_TRACE_RAW_TP = 0x17 + BPF_TRACE_FENTRY = 0x18 + BPF_TRACE_FEXIT = 0x19 + BPF_MODIFY_RETURN = 0x1a + BPF_LSM_MAC = 0x1b + BPF_TRACE_ITER = 0x1c + BPF_CGROUP_INET4_GETPEERNAME = 0x1d + BPF_CGROUP_INET6_GETPEERNAME = 0x1e + BPF_CGROUP_INET4_GETSOCKNAME = 0x1f + BPF_CGROUP_INET6_GETSOCKNAME = 0x20 + BPF_XDP_DEVMAP = 0x21 + BPF_CGROUP_INET_SOCK_RELEASE = 0x22 + BPF_XDP_CPUMAP = 0x23 + BPF_SK_LOOKUP = 0x24 + BPF_XDP = 0x25 + BPF_LINK_TYPE_UNSPEC = 0x0 + BPF_LINK_TYPE_RAW_TRACEPOINT = 0x1 + BPF_LINK_TYPE_TRACING = 0x2 + BPF_LINK_TYPE_CGROUP = 0x3 + BPF_LINK_TYPE_ITER = 0x4 + BPF_LINK_TYPE_NETNS = 0x5 + BPF_LINK_TYPE_XDP = 0x6 + BPF_ANY = 0x0 + BPF_NOEXIST = 0x1 + BPF_EXIST = 0x2 + BPF_F_LOCK = 0x4 + BPF_F_NO_PREALLOC = 0x1 + BPF_F_NO_COMMON_LRU = 0x2 + BPF_F_NUMA_NODE = 0x4 + BPF_F_RDONLY = 0x8 + BPF_F_WRONLY = 0x10 + BPF_F_STACK_BUILD_ID = 0x20 + BPF_F_ZERO_SEED = 0x40 + BPF_F_RDONLY_PROG = 0x80 + BPF_F_WRONLY_PROG = 0x100 + BPF_F_CLONE = 0x200 + BPF_F_MMAPABLE = 0x400 + BPF_F_PRESERVE_ELEMS = 0x800 + BPF_F_INNER_MAP = 0x1000 + BPF_STATS_RUN_TIME = 0x0 + BPF_STACK_BUILD_ID_EMPTY = 0x0 + BPF_STACK_BUILD_ID_VALID = 0x1 + BPF_STACK_BUILD_ID_IP = 0x2 + BPF_F_RECOMPUTE_CSUM = 0x1 + BPF_F_INVALIDATE_HASH = 0x2 + BPF_F_HDR_FIELD_MASK = 0xf + BPF_F_PSEUDO_HDR = 0x10 + BPF_F_MARK_MANGLED_0 = 0x20 + BPF_F_MARK_ENFORCE = 0x40 + BPF_F_INGRESS = 0x1 + BPF_F_TUNINFO_IPV6 = 0x1 + BPF_F_SKIP_FIELD_MASK = 0xff + BPF_F_USER_STACK = 0x100 + BPF_F_FAST_STACK_CMP = 0x200 + BPF_F_REUSE_STACKID = 0x400 + BPF_F_USER_BUILD_ID = 0x800 + BPF_F_ZERO_CSUM_TX = 0x2 + BPF_F_DONT_FRAGMENT = 0x4 + BPF_F_SEQ_NUMBER = 0x8 + BPF_F_INDEX_MASK = 0xffffffff + BPF_F_CURRENT_CPU = 0xffffffff + BPF_F_CTXLEN_MASK = 0xfffff00000000 + BPF_F_CURRENT_NETNS = -0x1 + BPF_CSUM_LEVEL_QUERY = 0x0 + BPF_CSUM_LEVEL_INC = 0x1 + BPF_CSUM_LEVEL_DEC = 0x2 + BPF_CSUM_LEVEL_RESET = 0x3 + BPF_F_ADJ_ROOM_FIXED_GSO = 0x1 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 = 0x2 + BPF_F_ADJ_ROOM_ENCAP_L3_IPV6 = 0x4 + BPF_F_ADJ_ROOM_ENCAP_L4_GRE = 0x8 + BPF_F_ADJ_ROOM_ENCAP_L4_UDP = 0x10 + BPF_F_ADJ_ROOM_NO_CSUM_RESET = 0x20 + BPF_ADJ_ROOM_ENCAP_L2_MASK = 0xff + BPF_ADJ_ROOM_ENCAP_L2_SHIFT = 0x38 + BPF_F_SYSCTL_BASE_NAME = 0x1 + BPF_LOCAL_STORAGE_GET_F_CREATE = 0x1 + BPF_SK_STORAGE_GET_F_CREATE = 0x1 + BPF_F_GET_BRANCH_RECORDS_SIZE = 0x1 + BPF_RB_NO_WAKEUP = 0x1 + BPF_RB_FORCE_WAKEUP = 0x2 + BPF_RB_AVAIL_DATA = 0x0 + BPF_RB_RING_SIZE = 0x1 + BPF_RB_CONS_POS = 0x2 + BPF_RB_PROD_POS = 0x3 + BPF_RINGBUF_BUSY_BIT = 0x80000000 + BPF_RINGBUF_DISCARD_BIT = 0x40000000 + BPF_RINGBUF_HDR_SZ = 0x8 + BPF_SK_LOOKUP_F_REPLACE = 0x1 + BPF_SK_LOOKUP_F_NO_REUSEPORT = 0x2 + BPF_ADJ_ROOM_NET = 0x0 + BPF_ADJ_ROOM_MAC = 0x1 + BPF_HDR_START_MAC = 0x0 + BPF_HDR_START_NET = 0x1 + BPF_LWT_ENCAP_SEG6 = 0x0 + BPF_LWT_ENCAP_SEG6_INLINE = 0x1 + BPF_LWT_ENCAP_IP = 0x2 + BPF_OK = 0x0 + BPF_DROP = 0x2 + BPF_REDIRECT = 0x7 + BPF_LWT_REROUTE = 0x80 + BPF_SOCK_OPS_RTO_CB_FLAG = 0x1 + BPF_SOCK_OPS_RETRANS_CB_FLAG = 0x2 + BPF_SOCK_OPS_STATE_CB_FLAG = 0x4 + BPF_SOCK_OPS_RTT_CB_FLAG = 0x8 + BPF_SOCK_OPS_PARSE_ALL_HDR_OPT_CB_FLAG = 0x10 + BPF_SOCK_OPS_PARSE_UNKNOWN_HDR_OPT_CB_FLAG = 0x20 + BPF_SOCK_OPS_WRITE_HDR_OPT_CB_FLAG = 0x40 + BPF_SOCK_OPS_ALL_CB_FLAGS = 0x7f + BPF_SOCK_OPS_VOID = 0x0 + BPF_SOCK_OPS_TIMEOUT_INIT = 0x1 + BPF_SOCK_OPS_RWND_INIT = 0x2 + BPF_SOCK_OPS_TCP_CONNECT_CB = 0x3 + BPF_SOCK_OPS_ACTIVE_ESTABLISHED_CB = 0x4 + BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB = 0x5 + BPF_SOCK_OPS_NEEDS_ECN = 0x6 + BPF_SOCK_OPS_BASE_RTT = 0x7 + BPF_SOCK_OPS_RTO_CB = 0x8 + BPF_SOCK_OPS_RETRANS_CB = 0x9 + BPF_SOCK_OPS_STATE_CB = 0xa + BPF_SOCK_OPS_TCP_LISTEN_CB = 0xb + BPF_SOCK_OPS_RTT_CB = 0xc + BPF_SOCK_OPS_PARSE_HDR_OPT_CB = 0xd + BPF_SOCK_OPS_HDR_OPT_LEN_CB = 0xe + BPF_SOCK_OPS_WRITE_HDR_OPT_CB = 0xf + BPF_TCP_ESTABLISHED = 0x1 + BPF_TCP_SYN_SENT = 0x2 + BPF_TCP_SYN_RECV = 0x3 + BPF_TCP_FIN_WAIT1 = 0x4 + BPF_TCP_FIN_WAIT2 = 0x5 + BPF_TCP_TIME_WAIT = 0x6 + BPF_TCP_CLOSE = 0x7 + BPF_TCP_CLOSE_WAIT = 0x8 + BPF_TCP_LAST_ACK = 0x9 + BPF_TCP_LISTEN = 0xa + BPF_TCP_CLOSING = 0xb + BPF_TCP_NEW_SYN_RECV = 0xc + BPF_TCP_MAX_STATES = 0xd + TCP_BPF_IW = 0x3e9 + TCP_BPF_SNDCWND_CLAMP = 0x3ea + TCP_BPF_DELACK_MAX = 0x3eb + TCP_BPF_RTO_MIN = 0x3ec + TCP_BPF_SYN = 0x3ed + TCP_BPF_SYN_IP = 0x3ee + TCP_BPF_SYN_MAC = 0x3ef + BPF_LOAD_HDR_OPT_TCP_SYN = 0x1 + BPF_WRITE_HDR_TCP_CURRENT_MSS = 0x1 + BPF_WRITE_HDR_TCP_SYNACK_COOKIE = 0x2 + BPF_DEVCG_ACC_MKNOD = 0x1 + BPF_DEVCG_ACC_READ = 0x2 + BPF_DEVCG_ACC_WRITE = 0x4 + BPF_DEVCG_DEV_BLOCK = 0x1 + BPF_DEVCG_DEV_CHAR = 0x2 + BPF_FIB_LOOKUP_DIRECT = 0x1 + BPF_FIB_LOOKUP_OUTPUT = 0x2 + BPF_FIB_LKUP_RET_SUCCESS = 0x0 + BPF_FIB_LKUP_RET_BLACKHOLE = 0x1 + BPF_FIB_LKUP_RET_UNREACHABLE = 0x2 + BPF_FIB_LKUP_RET_PROHIBIT = 0x3 + BPF_FIB_LKUP_RET_NOT_FWDED = 0x4 + BPF_FIB_LKUP_RET_FWD_DISABLED = 0x5 + BPF_FIB_LKUP_RET_UNSUPP_LWT = 0x6 + BPF_FIB_LKUP_RET_NO_NEIGH = 0x7 + BPF_FIB_LKUP_RET_FRAG_NEEDED = 0x8 + BPF_FD_TYPE_RAW_TRACEPOINT = 0x0 + BPF_FD_TYPE_TRACEPOINT = 0x1 + BPF_FD_TYPE_KPROBE = 0x2 + BPF_FD_TYPE_KRETPROBE = 0x3 + BPF_FD_TYPE_UPROBE = 0x4 + BPF_FD_TYPE_URETPROBE = 0x5 + BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG = 0x1 + BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL = 0x2 + BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP = 0x4 +) + +const ( + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_DECnet_IFADDR = 0xd + RTNLGRP_NOP2 = 0xe + RTNLGRP_DECnet_ROUTE = 0xf + RTNLGRP_DECnet_RULE = 0x10 + RTNLGRP_NOP4 = 0x11 + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + RTNLGRP_PHONET_IFADDR = 0x15 + RTNLGRP_PHONET_ROUTE = 0x16 + RTNLGRP_DCB = 0x17 + RTNLGRP_IPV4_NETCONF = 0x18 + RTNLGRP_IPV6_NETCONF = 0x19 + RTNLGRP_MDB = 0x1a + RTNLGRP_MPLS_ROUTE = 0x1b + RTNLGRP_NSID = 0x1c + RTNLGRP_MPLS_NETCONF = 0x1d + RTNLGRP_IPV4_MROUTE_R = 0x1e + RTNLGRP_IPV6_MROUTE_R = 0x1f + RTNLGRP_NEXTHOP = 0x20 + RTNLGRP_BRVLAN = 0x21 +) + +type CapUserHeader struct { + Version uint32 + Pid int32 +} + +type CapUserData struct { + Effective uint32 + Permitted uint32 + Inheritable uint32 +} + +const ( + LINUX_CAPABILITY_VERSION_1 = 0x19980330 + LINUX_CAPABILITY_VERSION_2 = 0x20071026 + LINUX_CAPABILITY_VERSION_3 = 0x20080522 +) + +const ( + LO_FLAGS_READ_ONLY = 0x1 + LO_FLAGS_AUTOCLEAR = 0x4 + LO_FLAGS_PARTSCAN = 0x8 + LO_FLAGS_DIRECT_IO = 0x10 +) + +type LoopInfo64 struct { + Device uint64 + Inode uint64 + Rdevice uint64 + Offset uint64 + Sizelimit uint64 + Number uint32 + Encrypt_type uint32 + Encrypt_key_size uint32 + Flags uint32 + File_name [64]uint8 + Crypt_name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 +} + +type TIPCSocketAddr struct { + Ref uint32 + Node uint32 +} + +type TIPCServiceRange struct { + Type uint32 + Lower uint32 + Upper uint32 +} + +type TIPCServiceName struct { + Type uint32 + Instance uint32 + Domain uint32 +} + +type TIPCEvent struct { + Event uint32 + Lower uint32 + Upper uint32 + Port TIPCSocketAddr + S TIPCSubscr +} + +type TIPCGroupReq struct { + Type uint32 + Instance uint32 + Scope uint32 + Flags uint32 +} + +const ( + TIPC_CLUSTER_SCOPE = 0x2 + TIPC_NODE_SCOPE = 0x3 +) + +const ( + SYSLOG_ACTION_CLOSE = 0 + SYSLOG_ACTION_OPEN = 1 + SYSLOG_ACTION_READ = 2 + SYSLOG_ACTION_READ_ALL = 3 + SYSLOG_ACTION_READ_CLEAR = 4 + SYSLOG_ACTION_CLEAR = 5 + SYSLOG_ACTION_CONSOLE_OFF = 6 + SYSLOG_ACTION_CONSOLE_ON = 7 + SYSLOG_ACTION_CONSOLE_LEVEL = 8 + SYSLOG_ACTION_SIZE_UNREAD = 9 + SYSLOG_ACTION_SIZE_BUFFER = 10 +) + +const ( + DEVLINK_CMD_UNSPEC = 0x0 + DEVLINK_CMD_GET = 0x1 + DEVLINK_CMD_SET = 0x2 + DEVLINK_CMD_NEW = 0x3 + DEVLINK_CMD_DEL = 0x4 + DEVLINK_CMD_PORT_GET = 0x5 + DEVLINK_CMD_PORT_SET = 0x6 + DEVLINK_CMD_PORT_NEW = 0x7 + DEVLINK_CMD_PORT_DEL = 0x8 + DEVLINK_CMD_PORT_SPLIT = 0x9 + DEVLINK_CMD_PORT_UNSPLIT = 0xa + DEVLINK_CMD_SB_GET = 0xb + DEVLINK_CMD_SB_SET = 0xc + DEVLINK_CMD_SB_NEW = 0xd + DEVLINK_CMD_SB_DEL = 0xe + DEVLINK_CMD_SB_POOL_GET = 0xf + DEVLINK_CMD_SB_POOL_SET = 0x10 + DEVLINK_CMD_SB_POOL_NEW = 0x11 + DEVLINK_CMD_SB_POOL_DEL = 0x12 + DEVLINK_CMD_SB_PORT_POOL_GET = 0x13 + DEVLINK_CMD_SB_PORT_POOL_SET = 0x14 + DEVLINK_CMD_SB_PORT_POOL_NEW = 0x15 + DEVLINK_CMD_SB_PORT_POOL_DEL = 0x16 + DEVLINK_CMD_SB_TC_POOL_BIND_GET = 0x17 + DEVLINK_CMD_SB_TC_POOL_BIND_SET = 0x18 + DEVLINK_CMD_SB_TC_POOL_BIND_NEW = 0x19 + DEVLINK_CMD_SB_TC_POOL_BIND_DEL = 0x1a + DEVLINK_CMD_SB_OCC_SNAPSHOT = 0x1b + DEVLINK_CMD_SB_OCC_MAX_CLEAR = 0x1c + DEVLINK_CMD_ESWITCH_GET = 0x1d + DEVLINK_CMD_ESWITCH_SET = 0x1e + DEVLINK_CMD_DPIPE_TABLE_GET = 0x1f + DEVLINK_CMD_DPIPE_ENTRIES_GET = 0x20 + DEVLINK_CMD_DPIPE_HEADERS_GET = 0x21 + DEVLINK_CMD_DPIPE_TABLE_COUNTERS_SET = 0x22 + DEVLINK_CMD_RESOURCE_SET = 0x23 + DEVLINK_CMD_RESOURCE_DUMP = 0x24 + DEVLINK_CMD_RELOAD = 0x25 + DEVLINK_CMD_PARAM_GET = 0x26 + DEVLINK_CMD_PARAM_SET = 0x27 + DEVLINK_CMD_PARAM_NEW = 0x28 + DEVLINK_CMD_PARAM_DEL = 0x29 + DEVLINK_CMD_REGION_GET = 0x2a + DEVLINK_CMD_REGION_SET = 0x2b + DEVLINK_CMD_REGION_NEW = 0x2c + DEVLINK_CMD_REGION_DEL = 0x2d + DEVLINK_CMD_REGION_READ = 0x2e + DEVLINK_CMD_PORT_PARAM_GET = 0x2f + DEVLINK_CMD_PORT_PARAM_SET = 0x30 + DEVLINK_CMD_PORT_PARAM_NEW = 0x31 + DEVLINK_CMD_PORT_PARAM_DEL = 0x32 + DEVLINK_CMD_INFO_GET = 0x33 + DEVLINK_CMD_HEALTH_REPORTER_GET = 0x34 + DEVLINK_CMD_HEALTH_REPORTER_SET = 0x35 + DEVLINK_CMD_HEALTH_REPORTER_RECOVER = 0x36 + DEVLINK_CMD_HEALTH_REPORTER_DIAGNOSE = 0x37 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_GET = 0x38 + DEVLINK_CMD_HEALTH_REPORTER_DUMP_CLEAR = 0x39 + DEVLINK_CMD_FLASH_UPDATE = 0x3a + DEVLINK_CMD_FLASH_UPDATE_END = 0x3b + DEVLINK_CMD_FLASH_UPDATE_STATUS = 0x3c + DEVLINK_CMD_TRAP_GET = 0x3d + DEVLINK_CMD_TRAP_SET = 0x3e + DEVLINK_CMD_TRAP_NEW = 0x3f + DEVLINK_CMD_TRAP_DEL = 0x40 + DEVLINK_CMD_TRAP_GROUP_GET = 0x41 + DEVLINK_CMD_TRAP_GROUP_SET = 0x42 + DEVLINK_CMD_TRAP_GROUP_NEW = 0x43 + DEVLINK_CMD_TRAP_GROUP_DEL = 0x44 + DEVLINK_CMD_TRAP_POLICER_GET = 0x45 + DEVLINK_CMD_TRAP_POLICER_SET = 0x46 + DEVLINK_CMD_TRAP_POLICER_NEW = 0x47 + DEVLINK_CMD_TRAP_POLICER_DEL = 0x48 + DEVLINK_CMD_HEALTH_REPORTER_TEST = 0x49 + DEVLINK_CMD_RATE_GET = 0x4a + DEVLINK_CMD_RATE_SET = 0x4b + DEVLINK_CMD_RATE_NEW = 0x4c + DEVLINK_CMD_RATE_DEL = 0x4d + DEVLINK_CMD_LINECARD_GET = 0x4e + DEVLINK_CMD_LINECARD_SET = 0x4f + DEVLINK_CMD_LINECARD_NEW = 0x50 + DEVLINK_CMD_LINECARD_DEL = 0x51 + DEVLINK_CMD_SELFTESTS_GET = 0x52 + DEVLINK_CMD_MAX = 0x53 + DEVLINK_PORT_TYPE_NOTSET = 0x0 + DEVLINK_PORT_TYPE_AUTO = 0x1 + DEVLINK_PORT_TYPE_ETH = 0x2 + DEVLINK_PORT_TYPE_IB = 0x3 + DEVLINK_SB_POOL_TYPE_INGRESS = 0x0 + DEVLINK_SB_POOL_TYPE_EGRESS = 0x1 + DEVLINK_SB_THRESHOLD_TYPE_STATIC = 0x0 + DEVLINK_SB_THRESHOLD_TYPE_DYNAMIC = 0x1 + DEVLINK_ESWITCH_MODE_LEGACY = 0x0 + DEVLINK_ESWITCH_MODE_SWITCHDEV = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NONE = 0x0 + DEVLINK_ESWITCH_INLINE_MODE_LINK = 0x1 + DEVLINK_ESWITCH_INLINE_MODE_NETWORK = 0x2 + DEVLINK_ESWITCH_INLINE_MODE_TRANSPORT = 0x3 + DEVLINK_ESWITCH_ENCAP_MODE_NONE = 0x0 + DEVLINK_ESWITCH_ENCAP_MODE_BASIC = 0x1 + DEVLINK_PORT_FLAVOUR_PHYSICAL = 0x0 + DEVLINK_PORT_FLAVOUR_CPU = 0x1 + DEVLINK_PORT_FLAVOUR_DSA = 0x2 + DEVLINK_PORT_FLAVOUR_PCI_PF = 0x3 + DEVLINK_PORT_FLAVOUR_PCI_VF = 0x4 + DEVLINK_PORT_FLAVOUR_VIRTUAL = 0x5 + DEVLINK_PORT_FLAVOUR_UNUSED = 0x6 + DEVLINK_PARAM_CMODE_RUNTIME = 0x0 + DEVLINK_PARAM_CMODE_DRIVERINIT = 0x1 + DEVLINK_PARAM_CMODE_PERMANENT = 0x2 + DEVLINK_PARAM_CMODE_MAX = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DRIVER = 0x0 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_FLASH = 0x1 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_DISK = 0x2 + DEVLINK_PARAM_FW_LOAD_POLICY_VALUE_UNKNOWN = 0x3 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_UNKNOWN = 0x0 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_ALWAYS = 0x1 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_NEVER = 0x2 + DEVLINK_PARAM_RESET_DEV_ON_DRV_PROBE_VALUE_DISK = 0x3 + DEVLINK_ATTR_STATS_RX_PACKETS = 0x0 + DEVLINK_ATTR_STATS_RX_BYTES = 0x1 + DEVLINK_ATTR_STATS_RX_DROPPED = 0x2 + DEVLINK_ATTR_STATS_MAX = 0x2 + DEVLINK_FLASH_OVERWRITE_SETTINGS_BIT = 0x0 + DEVLINK_FLASH_OVERWRITE_IDENTIFIERS_BIT = 0x1 + DEVLINK_FLASH_OVERWRITE_MAX_BIT = 0x1 + DEVLINK_TRAP_ACTION_DROP = 0x0 + DEVLINK_TRAP_ACTION_TRAP = 0x1 + DEVLINK_TRAP_ACTION_MIRROR = 0x2 + DEVLINK_TRAP_TYPE_DROP = 0x0 + DEVLINK_TRAP_TYPE_EXCEPTION = 0x1 + DEVLINK_TRAP_TYPE_CONTROL = 0x2 + DEVLINK_ATTR_TRAP_METADATA_TYPE_IN_PORT = 0x0 + DEVLINK_ATTR_TRAP_METADATA_TYPE_FA_COOKIE = 0x1 + DEVLINK_RELOAD_ACTION_UNSPEC = 0x0 + DEVLINK_RELOAD_ACTION_DRIVER_REINIT = 0x1 + DEVLINK_RELOAD_ACTION_FW_ACTIVATE = 0x2 + DEVLINK_RELOAD_ACTION_MAX = 0x2 + DEVLINK_RELOAD_LIMIT_UNSPEC = 0x0 + DEVLINK_RELOAD_LIMIT_NO_RESET = 0x1 + DEVLINK_RELOAD_LIMIT_MAX = 0x1 + DEVLINK_ATTR_UNSPEC = 0x0 + DEVLINK_ATTR_BUS_NAME = 0x1 + DEVLINK_ATTR_DEV_NAME = 0x2 + DEVLINK_ATTR_PORT_INDEX = 0x3 + DEVLINK_ATTR_PORT_TYPE = 0x4 + DEVLINK_ATTR_PORT_DESIRED_TYPE = 0x5 + DEVLINK_ATTR_PORT_NETDEV_IFINDEX = 0x6 + DEVLINK_ATTR_PORT_NETDEV_NAME = 0x7 + DEVLINK_ATTR_PORT_IBDEV_NAME = 0x8 + DEVLINK_ATTR_PORT_SPLIT_COUNT = 0x9 + DEVLINK_ATTR_PORT_SPLIT_GROUP = 0xa + DEVLINK_ATTR_SB_INDEX = 0xb + DEVLINK_ATTR_SB_SIZE = 0xc + DEVLINK_ATTR_SB_INGRESS_POOL_COUNT = 0xd + DEVLINK_ATTR_SB_EGRESS_POOL_COUNT = 0xe + DEVLINK_ATTR_SB_INGRESS_TC_COUNT = 0xf + DEVLINK_ATTR_SB_EGRESS_TC_COUNT = 0x10 + DEVLINK_ATTR_SB_POOL_INDEX = 0x11 + DEVLINK_ATTR_SB_POOL_TYPE = 0x12 + DEVLINK_ATTR_SB_POOL_SIZE = 0x13 + DEVLINK_ATTR_SB_POOL_THRESHOLD_TYPE = 0x14 + DEVLINK_ATTR_SB_THRESHOLD = 0x15 + DEVLINK_ATTR_SB_TC_INDEX = 0x16 + DEVLINK_ATTR_SB_OCC_CUR = 0x17 + DEVLINK_ATTR_SB_OCC_MAX = 0x18 + DEVLINK_ATTR_ESWITCH_MODE = 0x19 + DEVLINK_ATTR_ESWITCH_INLINE_MODE = 0x1a + DEVLINK_ATTR_DPIPE_TABLES = 0x1b + DEVLINK_ATTR_DPIPE_TABLE = 0x1c + DEVLINK_ATTR_DPIPE_TABLE_NAME = 0x1d + DEVLINK_ATTR_DPIPE_TABLE_SIZE = 0x1e + DEVLINK_ATTR_DPIPE_TABLE_MATCHES = 0x1f + DEVLINK_ATTR_DPIPE_TABLE_ACTIONS = 0x20 + DEVLINK_ATTR_DPIPE_TABLE_COUNTERS_ENABLED = 0x21 + DEVLINK_ATTR_DPIPE_ENTRIES = 0x22 + DEVLINK_ATTR_DPIPE_ENTRY = 0x23 + DEVLINK_ATTR_DPIPE_ENTRY_INDEX = 0x24 + DEVLINK_ATTR_DPIPE_ENTRY_MATCH_VALUES = 0x25 + DEVLINK_ATTR_DPIPE_ENTRY_ACTION_VALUES = 0x26 + DEVLINK_ATTR_DPIPE_ENTRY_COUNTER = 0x27 + DEVLINK_ATTR_DPIPE_MATCH = 0x28 + DEVLINK_ATTR_DPIPE_MATCH_VALUE = 0x29 + DEVLINK_ATTR_DPIPE_MATCH_TYPE = 0x2a + DEVLINK_ATTR_DPIPE_ACTION = 0x2b + DEVLINK_ATTR_DPIPE_ACTION_VALUE = 0x2c + DEVLINK_ATTR_DPIPE_ACTION_TYPE = 0x2d + DEVLINK_ATTR_DPIPE_VALUE = 0x2e + DEVLINK_ATTR_DPIPE_VALUE_MASK = 0x2f + DEVLINK_ATTR_DPIPE_VALUE_MAPPING = 0x30 + DEVLINK_ATTR_DPIPE_HEADERS = 0x31 + DEVLINK_ATTR_DPIPE_HEADER = 0x32 + DEVLINK_ATTR_DPIPE_HEADER_NAME = 0x33 + DEVLINK_ATTR_DPIPE_HEADER_ID = 0x34 + DEVLINK_ATTR_DPIPE_HEADER_FIELDS = 0x35 + DEVLINK_ATTR_DPIPE_HEADER_GLOBAL = 0x36 + DEVLINK_ATTR_DPIPE_HEADER_INDEX = 0x37 + DEVLINK_ATTR_DPIPE_FIELD = 0x38 + DEVLINK_ATTR_DPIPE_FIELD_NAME = 0x39 + DEVLINK_ATTR_DPIPE_FIELD_ID = 0x3a + DEVLINK_ATTR_DPIPE_FIELD_BITWIDTH = 0x3b + DEVLINK_ATTR_DPIPE_FIELD_MAPPING_TYPE = 0x3c + DEVLINK_ATTR_PAD = 0x3d + DEVLINK_ATTR_ESWITCH_ENCAP_MODE = 0x3e + DEVLINK_ATTR_RESOURCE_LIST = 0x3f + DEVLINK_ATTR_RESOURCE = 0x40 + DEVLINK_ATTR_RESOURCE_NAME = 0x41 + DEVLINK_ATTR_RESOURCE_ID = 0x42 + DEVLINK_ATTR_RESOURCE_SIZE = 0x43 + DEVLINK_ATTR_RESOURCE_SIZE_NEW = 0x44 + DEVLINK_ATTR_RESOURCE_SIZE_VALID = 0x45 + DEVLINK_ATTR_RESOURCE_SIZE_MIN = 0x46 + DEVLINK_ATTR_RESOURCE_SIZE_MAX = 0x47 + DEVLINK_ATTR_RESOURCE_SIZE_GRAN = 0x48 + DEVLINK_ATTR_RESOURCE_UNIT = 0x49 + DEVLINK_ATTR_RESOURCE_OCC = 0x4a + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_ID = 0x4b + DEVLINK_ATTR_DPIPE_TABLE_RESOURCE_UNITS = 0x4c + DEVLINK_ATTR_PORT_FLAVOUR = 0x4d + DEVLINK_ATTR_PORT_NUMBER = 0x4e + DEVLINK_ATTR_PORT_SPLIT_SUBPORT_NUMBER = 0x4f + DEVLINK_ATTR_PARAM = 0x50 + DEVLINK_ATTR_PARAM_NAME = 0x51 + DEVLINK_ATTR_PARAM_GENERIC = 0x52 + DEVLINK_ATTR_PARAM_TYPE = 0x53 + DEVLINK_ATTR_PARAM_VALUES_LIST = 0x54 + DEVLINK_ATTR_PARAM_VALUE = 0x55 + DEVLINK_ATTR_PARAM_VALUE_DATA = 0x56 + DEVLINK_ATTR_PARAM_VALUE_CMODE = 0x57 + DEVLINK_ATTR_REGION_NAME = 0x58 + DEVLINK_ATTR_REGION_SIZE = 0x59 + DEVLINK_ATTR_REGION_SNAPSHOTS = 0x5a + DEVLINK_ATTR_REGION_SNAPSHOT = 0x5b + DEVLINK_ATTR_REGION_SNAPSHOT_ID = 0x5c + DEVLINK_ATTR_REGION_CHUNKS = 0x5d + DEVLINK_ATTR_REGION_CHUNK = 0x5e + DEVLINK_ATTR_REGION_CHUNK_DATA = 0x5f + DEVLINK_ATTR_REGION_CHUNK_ADDR = 0x60 + DEVLINK_ATTR_REGION_CHUNK_LEN = 0x61 + DEVLINK_ATTR_INFO_DRIVER_NAME = 0x62 + DEVLINK_ATTR_INFO_SERIAL_NUMBER = 0x63 + DEVLINK_ATTR_INFO_VERSION_FIXED = 0x64 + DEVLINK_ATTR_INFO_VERSION_RUNNING = 0x65 + DEVLINK_ATTR_INFO_VERSION_STORED = 0x66 + DEVLINK_ATTR_INFO_VERSION_NAME = 0x67 + DEVLINK_ATTR_INFO_VERSION_VALUE = 0x68 + DEVLINK_ATTR_SB_POOL_CELL_SIZE = 0x69 + DEVLINK_ATTR_FMSG = 0x6a + DEVLINK_ATTR_FMSG_OBJ_NEST_START = 0x6b + DEVLINK_ATTR_FMSG_PAIR_NEST_START = 0x6c + DEVLINK_ATTR_FMSG_ARR_NEST_START = 0x6d + DEVLINK_ATTR_FMSG_NEST_END = 0x6e + DEVLINK_ATTR_FMSG_OBJ_NAME = 0x6f + DEVLINK_ATTR_FMSG_OBJ_VALUE_TYPE = 0x70 + DEVLINK_ATTR_FMSG_OBJ_VALUE_DATA = 0x71 + DEVLINK_ATTR_HEALTH_REPORTER = 0x72 + DEVLINK_ATTR_HEALTH_REPORTER_NAME = 0x73 + DEVLINK_ATTR_HEALTH_REPORTER_STATE = 0x74 + DEVLINK_ATTR_HEALTH_REPORTER_ERR_COUNT = 0x75 + DEVLINK_ATTR_HEALTH_REPORTER_RECOVER_COUNT = 0x76 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS = 0x77 + DEVLINK_ATTR_HEALTH_REPORTER_GRACEFUL_PERIOD = 0x78 + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_RECOVER = 0x79 + DEVLINK_ATTR_FLASH_UPDATE_FILE_NAME = 0x7a + DEVLINK_ATTR_FLASH_UPDATE_COMPONENT = 0x7b + DEVLINK_ATTR_FLASH_UPDATE_STATUS_MSG = 0x7c + DEVLINK_ATTR_FLASH_UPDATE_STATUS_DONE = 0x7d + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TOTAL = 0x7e + DEVLINK_ATTR_PORT_PCI_PF_NUMBER = 0x7f + DEVLINK_ATTR_PORT_PCI_VF_NUMBER = 0x80 + DEVLINK_ATTR_STATS = 0x81 + DEVLINK_ATTR_TRAP_NAME = 0x82 + DEVLINK_ATTR_TRAP_ACTION = 0x83 + DEVLINK_ATTR_TRAP_TYPE = 0x84 + DEVLINK_ATTR_TRAP_GENERIC = 0x85 + DEVLINK_ATTR_TRAP_METADATA = 0x86 + DEVLINK_ATTR_TRAP_GROUP_NAME = 0x87 + DEVLINK_ATTR_RELOAD_FAILED = 0x88 + DEVLINK_ATTR_HEALTH_REPORTER_DUMP_TS_NS = 0x89 + DEVLINK_ATTR_NETNS_FD = 0x8a + DEVLINK_ATTR_NETNS_PID = 0x8b + DEVLINK_ATTR_NETNS_ID = 0x8c + DEVLINK_ATTR_HEALTH_REPORTER_AUTO_DUMP = 0x8d + DEVLINK_ATTR_TRAP_POLICER_ID = 0x8e + DEVLINK_ATTR_TRAP_POLICER_RATE = 0x8f + DEVLINK_ATTR_TRAP_POLICER_BURST = 0x90 + DEVLINK_ATTR_PORT_FUNCTION = 0x91 + DEVLINK_ATTR_INFO_BOARD_SERIAL_NUMBER = 0x92 + DEVLINK_ATTR_PORT_LANES = 0x93 + DEVLINK_ATTR_PORT_SPLITTABLE = 0x94 + DEVLINK_ATTR_PORT_EXTERNAL = 0x95 + DEVLINK_ATTR_PORT_CONTROLLER_NUMBER = 0x96 + DEVLINK_ATTR_FLASH_UPDATE_STATUS_TIMEOUT = 0x97 + DEVLINK_ATTR_FLASH_UPDATE_OVERWRITE_MASK = 0x98 + DEVLINK_ATTR_RELOAD_ACTION = 0x99 + DEVLINK_ATTR_RELOAD_ACTIONS_PERFORMED = 0x9a + DEVLINK_ATTR_RELOAD_LIMITS = 0x9b + DEVLINK_ATTR_DEV_STATS = 0x9c + DEVLINK_ATTR_RELOAD_STATS = 0x9d + DEVLINK_ATTR_RELOAD_STATS_ENTRY = 0x9e + DEVLINK_ATTR_RELOAD_STATS_LIMIT = 0x9f + DEVLINK_ATTR_RELOAD_STATS_VALUE = 0xa0 + DEVLINK_ATTR_REMOTE_RELOAD_STATS = 0xa1 + DEVLINK_ATTR_RELOAD_ACTION_INFO = 0xa2 + DEVLINK_ATTR_RELOAD_ACTION_STATS = 0xa3 + DEVLINK_ATTR_PORT_PCI_SF_NUMBER = 0xa4 + DEVLINK_ATTR_RATE_TYPE = 0xa5 + DEVLINK_ATTR_RATE_TX_SHARE = 0xa6 + DEVLINK_ATTR_RATE_TX_MAX = 0xa7 + DEVLINK_ATTR_RATE_NODE_NAME = 0xa8 + DEVLINK_ATTR_RATE_PARENT_NODE_NAME = 0xa9 + DEVLINK_ATTR_REGION_MAX_SNAPSHOTS = 0xaa + DEVLINK_ATTR_LINECARD_INDEX = 0xab + DEVLINK_ATTR_LINECARD_STATE = 0xac + DEVLINK_ATTR_LINECARD_TYPE = 0xad + DEVLINK_ATTR_LINECARD_SUPPORTED_TYPES = 0xae + DEVLINK_ATTR_NESTED_DEVLINK = 0xaf + DEVLINK_ATTR_SELFTESTS = 0xb0 + DEVLINK_ATTR_MAX = 0xb3 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_NONE = 0x0 + DEVLINK_DPIPE_FIELD_MAPPING_TYPE_IFINDEX = 0x1 + DEVLINK_DPIPE_MATCH_TYPE_FIELD_EXACT = 0x0 + DEVLINK_DPIPE_ACTION_TYPE_FIELD_MODIFY = 0x0 + DEVLINK_DPIPE_FIELD_ETHERNET_DST_MAC = 0x0 + DEVLINK_DPIPE_FIELD_IPV4_DST_IP = 0x0 + DEVLINK_DPIPE_FIELD_IPV6_DST_IP = 0x0 + DEVLINK_DPIPE_HEADER_ETHERNET = 0x0 + DEVLINK_DPIPE_HEADER_IPV4 = 0x1 + DEVLINK_DPIPE_HEADER_IPV6 = 0x2 + DEVLINK_RESOURCE_UNIT_ENTRY = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_UNSPEC = 0x0 + DEVLINK_PORT_FUNCTION_ATTR_HW_ADDR = 0x1 + DEVLINK_PORT_FN_ATTR_STATE = 0x2 + DEVLINK_PORT_FN_ATTR_OPSTATE = 0x3 + DEVLINK_PORT_FN_ATTR_CAPS = 0x4 + DEVLINK_PORT_FUNCTION_ATTR_MAX = 0x4 +) + +type FsverityDigest struct { + Algorithm uint16 + Size uint16 +} + +type FsverityEnableArg struct { + Version uint32 + Hash_algorithm uint32 + Block_size uint32 + Salt_size uint32 + Salt_ptr uint64 + Sig_size uint32 + _ uint32 + Sig_ptr uint64 + _ [11]uint64 +} + +type Nhmsg struct { + Family uint8 + Scope uint8 + Protocol uint8 + Resvd uint8 + Flags uint32 +} + +type NexthopGrp struct { + Id uint32 + Weight uint8 + Resvd1 uint8 + Resvd2 uint16 +} + +const ( + NHA_UNSPEC = 0x0 + NHA_ID = 0x1 + NHA_GROUP = 0x2 + NHA_GROUP_TYPE = 0x3 + NHA_BLACKHOLE = 0x4 + NHA_OIF = 0x5 + NHA_GATEWAY = 0x6 + NHA_ENCAP_TYPE = 0x7 + NHA_ENCAP = 0x8 + NHA_GROUPS = 0x9 + NHA_MASTER = 0xa +) + +const ( + CAN_RAW_FILTER = 0x1 + CAN_RAW_ERR_FILTER = 0x2 + CAN_RAW_LOOPBACK = 0x3 + CAN_RAW_RECV_OWN_MSGS = 0x4 + CAN_RAW_FD_FRAMES = 0x5 + CAN_RAW_JOIN_FILTERS = 0x6 +) + +type WatchdogInfo struct { + Options uint32 + Version uint32 + Identity [32]uint8 +} + +type PPSFData struct { + Info PPSKInfo + Timeout PPSKTime +} + +type PPSKParams struct { + Api_version int32 + Mode int32 + Assert_off_tu PPSKTime + Clear_off_tu PPSKTime +} + +type PPSKTime struct { + Sec int64 + Nsec int32 + Flags uint32 +} + +const ( + LWTUNNEL_ENCAP_NONE = 0x0 + LWTUNNEL_ENCAP_MPLS = 0x1 + LWTUNNEL_ENCAP_IP = 0x2 + LWTUNNEL_ENCAP_ILA = 0x3 + LWTUNNEL_ENCAP_IP6 = 0x4 + LWTUNNEL_ENCAP_SEG6 = 0x5 + LWTUNNEL_ENCAP_BPF = 0x6 + LWTUNNEL_ENCAP_SEG6_LOCAL = 0x7 + LWTUNNEL_ENCAP_RPL = 0x8 + LWTUNNEL_ENCAP_IOAM6 = 0x9 + LWTUNNEL_ENCAP_XFRM = 0xa + LWTUNNEL_ENCAP_MAX = 0xa + + MPLS_IPTUNNEL_UNSPEC = 0x0 + MPLS_IPTUNNEL_DST = 0x1 + MPLS_IPTUNNEL_TTL = 0x2 + MPLS_IPTUNNEL_MAX = 0x2 +) + +const ( + ETHTOOL_ID_UNSPEC = 0x0 + ETHTOOL_RX_COPYBREAK = 0x1 + ETHTOOL_TX_COPYBREAK = 0x2 + ETHTOOL_PFC_PREVENTION_TOUT = 0x3 + ETHTOOL_TUNABLE_UNSPEC = 0x0 + ETHTOOL_TUNABLE_U8 = 0x1 + ETHTOOL_TUNABLE_U16 = 0x2 + ETHTOOL_TUNABLE_U32 = 0x3 + ETHTOOL_TUNABLE_U64 = 0x4 + ETHTOOL_TUNABLE_STRING = 0x5 + ETHTOOL_TUNABLE_S8 = 0x6 + ETHTOOL_TUNABLE_S16 = 0x7 + ETHTOOL_TUNABLE_S32 = 0x8 + ETHTOOL_TUNABLE_S64 = 0x9 + ETHTOOL_PHY_ID_UNSPEC = 0x0 + ETHTOOL_PHY_DOWNSHIFT = 0x1 + ETHTOOL_PHY_FAST_LINK_DOWN = 0x2 + ETHTOOL_PHY_EDPD = 0x3 + ETHTOOL_LINK_EXT_STATE_AUTONEG = 0x0 + ETHTOOL_LINK_EXT_STATE_LINK_TRAINING_FAILURE = 0x1 + ETHTOOL_LINK_EXT_STATE_LINK_LOGICAL_MISMATCH = 0x2 + ETHTOOL_LINK_EXT_STATE_BAD_SIGNAL_INTEGRITY = 0x3 + ETHTOOL_LINK_EXT_STATE_NO_CABLE = 0x4 + ETHTOOL_LINK_EXT_STATE_CABLE_ISSUE = 0x5 + ETHTOOL_LINK_EXT_STATE_EEPROM_ISSUE = 0x6 + ETHTOOL_LINK_EXT_STATE_CALIBRATION_FAILURE = 0x7 + ETHTOOL_LINK_EXT_STATE_POWER_BUDGET_EXCEEDED = 0x8 + ETHTOOL_LINK_EXT_STATE_OVERHEAT = 0x9 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_AN_ACK_NOT_RECEIVED = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NEXT_PAGE_EXCHANGE_FAILED = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_PARTNER_DETECTED_FORCE_MODE = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_AN_FEC_MISMATCH_DURING_OVERRIDE = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_AN_NO_HCD = 0x6 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_FRAME_LOCK_NOT_ACQUIRED = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_INHIBIT_TIMEOUT = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LT_KR_LINK_PARTNER_DID_NOT_SET_RECEIVER_READY = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LT_REMOTE_FAULT = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_BLOCK_LOCK = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_ACQUIRE_AM_LOCK = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_PCS_DID_NOT_GET_ALIGN_STATUS = 0x3 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_FC_FEC_IS_NOT_LOCKED = 0x4 + ETHTOOL_LINK_EXT_SUBSTATE_LLM_RS_FEC_IS_NOT_LOCKED = 0x5 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_LARGE_NUMBER_OF_PHYSICAL_ERRORS = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_BSI_UNSUPPORTED_RATE = 0x2 + ETHTOOL_LINK_EXT_SUBSTATE_CI_UNSUPPORTED_CABLE = 0x1 + ETHTOOL_LINK_EXT_SUBSTATE_CI_CABLE_TEST_FAILURE = 0x2 + ETHTOOL_FLASH_ALL_REGIONS = 0x0 + ETHTOOL_F_UNSUPPORTED__BIT = 0x0 + ETHTOOL_F_WISH__BIT = 0x1 + ETHTOOL_F_COMPAT__BIT = 0x2 + ETHTOOL_FEC_NONE_BIT = 0x0 + ETHTOOL_FEC_AUTO_BIT = 0x1 + ETHTOOL_FEC_OFF_BIT = 0x2 + ETHTOOL_FEC_RS_BIT = 0x3 + ETHTOOL_FEC_BASER_BIT = 0x4 + ETHTOOL_FEC_LLRS_BIT = 0x5 + ETHTOOL_LINK_MODE_10baseT_Half_BIT = 0x0 + ETHTOOL_LINK_MODE_10baseT_Full_BIT = 0x1 + ETHTOOL_LINK_MODE_100baseT_Half_BIT = 0x2 + ETHTOOL_LINK_MODE_100baseT_Full_BIT = 0x3 + ETHTOOL_LINK_MODE_1000baseT_Half_BIT = 0x4 + ETHTOOL_LINK_MODE_1000baseT_Full_BIT = 0x5 + ETHTOOL_LINK_MODE_Autoneg_BIT = 0x6 + ETHTOOL_LINK_MODE_TP_BIT = 0x7 + ETHTOOL_LINK_MODE_AUI_BIT = 0x8 + ETHTOOL_LINK_MODE_MII_BIT = 0x9 + ETHTOOL_LINK_MODE_FIBRE_BIT = 0xa + ETHTOOL_LINK_MODE_BNC_BIT = 0xb + ETHTOOL_LINK_MODE_10000baseT_Full_BIT = 0xc + ETHTOOL_LINK_MODE_Pause_BIT = 0xd + ETHTOOL_LINK_MODE_Asym_Pause_BIT = 0xe + ETHTOOL_LINK_MODE_2500baseX_Full_BIT = 0xf + ETHTOOL_LINK_MODE_Backplane_BIT = 0x10 + ETHTOOL_LINK_MODE_1000baseKX_Full_BIT = 0x11 + ETHTOOL_LINK_MODE_10000baseKX4_Full_BIT = 0x12 + ETHTOOL_LINK_MODE_10000baseKR_Full_BIT = 0x13 + ETHTOOL_LINK_MODE_10000baseR_FEC_BIT = 0x14 + ETHTOOL_LINK_MODE_20000baseMLD2_Full_BIT = 0x15 + ETHTOOL_LINK_MODE_20000baseKR2_Full_BIT = 0x16 + ETHTOOL_LINK_MODE_40000baseKR4_Full_BIT = 0x17 + ETHTOOL_LINK_MODE_40000baseCR4_Full_BIT = 0x18 + ETHTOOL_LINK_MODE_40000baseSR4_Full_BIT = 0x19 + ETHTOOL_LINK_MODE_40000baseLR4_Full_BIT = 0x1a + ETHTOOL_LINK_MODE_56000baseKR4_Full_BIT = 0x1b + ETHTOOL_LINK_MODE_56000baseCR4_Full_BIT = 0x1c + ETHTOOL_LINK_MODE_56000baseSR4_Full_BIT = 0x1d + ETHTOOL_LINK_MODE_56000baseLR4_Full_BIT = 0x1e + ETHTOOL_LINK_MODE_25000baseCR_Full_BIT = 0x1f + ETHTOOL_LINK_MODE_25000baseKR_Full_BIT = 0x20 + ETHTOOL_LINK_MODE_25000baseSR_Full_BIT = 0x21 + ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT = 0x22 + ETHTOOL_LINK_MODE_50000baseKR2_Full_BIT = 0x23 + ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT = 0x24 + ETHTOOL_LINK_MODE_100000baseSR4_Full_BIT = 0x25 + ETHTOOL_LINK_MODE_100000baseCR4_Full_BIT = 0x26 + ETHTOOL_LINK_MODE_100000baseLR4_ER4_Full_BIT = 0x27 + ETHTOOL_LINK_MODE_50000baseSR2_Full_BIT = 0x28 + ETHTOOL_LINK_MODE_1000baseX_Full_BIT = 0x29 + ETHTOOL_LINK_MODE_10000baseCR_Full_BIT = 0x2a + ETHTOOL_LINK_MODE_10000baseSR_Full_BIT = 0x2b + ETHTOOL_LINK_MODE_10000baseLR_Full_BIT = 0x2c + ETHTOOL_LINK_MODE_10000baseLRM_Full_BIT = 0x2d + ETHTOOL_LINK_MODE_10000baseER_Full_BIT = 0x2e + ETHTOOL_LINK_MODE_2500baseT_Full_BIT = 0x2f + ETHTOOL_LINK_MODE_5000baseT_Full_BIT = 0x30 + ETHTOOL_LINK_MODE_FEC_NONE_BIT = 0x31 + ETHTOOL_LINK_MODE_FEC_RS_BIT = 0x32 + ETHTOOL_LINK_MODE_FEC_BASER_BIT = 0x33 + ETHTOOL_LINK_MODE_50000baseKR_Full_BIT = 0x34 + ETHTOOL_LINK_MODE_50000baseSR_Full_BIT = 0x35 + ETHTOOL_LINK_MODE_50000baseCR_Full_BIT = 0x36 + ETHTOOL_LINK_MODE_50000baseLR_ER_FR_Full_BIT = 0x37 + ETHTOOL_LINK_MODE_50000baseDR_Full_BIT = 0x38 + ETHTOOL_LINK_MODE_100000baseKR2_Full_BIT = 0x39 + ETHTOOL_LINK_MODE_100000baseSR2_Full_BIT = 0x3a + ETHTOOL_LINK_MODE_100000baseCR2_Full_BIT = 0x3b + ETHTOOL_LINK_MODE_100000baseLR2_ER2_FR2_Full_BIT = 0x3c + ETHTOOL_LINK_MODE_100000baseDR2_Full_BIT = 0x3d + ETHTOOL_LINK_MODE_200000baseKR4_Full_BIT = 0x3e + ETHTOOL_LINK_MODE_200000baseSR4_Full_BIT = 0x3f + ETHTOOL_LINK_MODE_200000baseLR4_ER4_FR4_Full_BIT = 0x40 + ETHTOOL_LINK_MODE_200000baseDR4_Full_BIT = 0x41 + ETHTOOL_LINK_MODE_200000baseCR4_Full_BIT = 0x42 + ETHTOOL_LINK_MODE_100baseT1_Full_BIT = 0x43 + ETHTOOL_LINK_MODE_1000baseT1_Full_BIT = 0x44 + ETHTOOL_LINK_MODE_400000baseKR8_Full_BIT = 0x45 + ETHTOOL_LINK_MODE_400000baseSR8_Full_BIT = 0x46 + ETHTOOL_LINK_MODE_400000baseLR8_ER8_FR8_Full_BIT = 0x47 + ETHTOOL_LINK_MODE_400000baseDR8_Full_BIT = 0x48 + ETHTOOL_LINK_MODE_400000baseCR8_Full_BIT = 0x49 + ETHTOOL_LINK_MODE_FEC_LLRS_BIT = 0x4a + ETHTOOL_LINK_MODE_100000baseKR_Full_BIT = 0x4b + ETHTOOL_LINK_MODE_100000baseSR_Full_BIT = 0x4c + ETHTOOL_LINK_MODE_100000baseLR_ER_FR_Full_BIT = 0x4d + ETHTOOL_LINK_MODE_100000baseCR_Full_BIT = 0x4e + ETHTOOL_LINK_MODE_100000baseDR_Full_BIT = 0x4f + ETHTOOL_LINK_MODE_200000baseKR2_Full_BIT = 0x50 + ETHTOOL_LINK_MODE_200000baseSR2_Full_BIT = 0x51 + ETHTOOL_LINK_MODE_200000baseLR2_ER2_FR2_Full_BIT = 0x52 + ETHTOOL_LINK_MODE_200000baseDR2_Full_BIT = 0x53 + ETHTOOL_LINK_MODE_200000baseCR2_Full_BIT = 0x54 + ETHTOOL_LINK_MODE_400000baseKR4_Full_BIT = 0x55 + ETHTOOL_LINK_MODE_400000baseSR4_Full_BIT = 0x56 + ETHTOOL_LINK_MODE_400000baseLR4_ER4_FR4_Full_BIT = 0x57 + ETHTOOL_LINK_MODE_400000baseDR4_Full_BIT = 0x58 + ETHTOOL_LINK_MODE_400000baseCR4_Full_BIT = 0x59 + ETHTOOL_LINK_MODE_100baseFX_Half_BIT = 0x5a + ETHTOOL_LINK_MODE_100baseFX_Full_BIT = 0x5b + + ETHTOOL_MSG_USER_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET = 0x1 + ETHTOOL_MSG_LINKINFO_GET = 0x2 + ETHTOOL_MSG_LINKINFO_SET = 0x3 + ETHTOOL_MSG_LINKMODES_GET = 0x4 + ETHTOOL_MSG_LINKMODES_SET = 0x5 + ETHTOOL_MSG_LINKSTATE_GET = 0x6 + ETHTOOL_MSG_DEBUG_GET = 0x7 + ETHTOOL_MSG_DEBUG_SET = 0x8 + ETHTOOL_MSG_WOL_GET = 0x9 + ETHTOOL_MSG_WOL_SET = 0xa + ETHTOOL_MSG_FEATURES_GET = 0xb + ETHTOOL_MSG_FEATURES_SET = 0xc + ETHTOOL_MSG_PRIVFLAGS_GET = 0xd + ETHTOOL_MSG_PRIVFLAGS_SET = 0xe + ETHTOOL_MSG_RINGS_GET = 0xf + ETHTOOL_MSG_RINGS_SET = 0x10 + ETHTOOL_MSG_CHANNELS_GET = 0x11 + ETHTOOL_MSG_CHANNELS_SET = 0x12 + ETHTOOL_MSG_COALESCE_GET = 0x13 + ETHTOOL_MSG_COALESCE_SET = 0x14 + ETHTOOL_MSG_PAUSE_GET = 0x15 + ETHTOOL_MSG_PAUSE_SET = 0x16 + ETHTOOL_MSG_EEE_GET = 0x17 + ETHTOOL_MSG_EEE_SET = 0x18 + ETHTOOL_MSG_TSINFO_GET = 0x19 + ETHTOOL_MSG_CABLE_TEST_ACT = 0x1a + ETHTOOL_MSG_CABLE_TEST_TDR_ACT = 0x1b + ETHTOOL_MSG_TUNNEL_INFO_GET = 0x1c + ETHTOOL_MSG_FEC_GET = 0x1d + ETHTOOL_MSG_FEC_SET = 0x1e + ETHTOOL_MSG_MODULE_EEPROM_GET = 0x1f + ETHTOOL_MSG_STATS_GET = 0x20 + ETHTOOL_MSG_PHC_VCLOCKS_GET = 0x21 + ETHTOOL_MSG_MODULE_GET = 0x22 + ETHTOOL_MSG_MODULE_SET = 0x23 + ETHTOOL_MSG_PSE_GET = 0x24 + ETHTOOL_MSG_PSE_SET = 0x25 + ETHTOOL_MSG_RSS_GET = 0x26 + ETHTOOL_MSG_USER_MAX = 0x26 + ETHTOOL_MSG_KERNEL_NONE = 0x0 + ETHTOOL_MSG_STRSET_GET_REPLY = 0x1 + ETHTOOL_MSG_LINKINFO_GET_REPLY = 0x2 + ETHTOOL_MSG_LINKINFO_NTF = 0x3 + ETHTOOL_MSG_LINKMODES_GET_REPLY = 0x4 + ETHTOOL_MSG_LINKMODES_NTF = 0x5 + ETHTOOL_MSG_LINKSTATE_GET_REPLY = 0x6 + ETHTOOL_MSG_DEBUG_GET_REPLY = 0x7 + ETHTOOL_MSG_DEBUG_NTF = 0x8 + ETHTOOL_MSG_WOL_GET_REPLY = 0x9 + ETHTOOL_MSG_WOL_NTF = 0xa + ETHTOOL_MSG_FEATURES_GET_REPLY = 0xb + ETHTOOL_MSG_FEATURES_SET_REPLY = 0xc + ETHTOOL_MSG_FEATURES_NTF = 0xd + ETHTOOL_MSG_PRIVFLAGS_GET_REPLY = 0xe + ETHTOOL_MSG_PRIVFLAGS_NTF = 0xf + ETHTOOL_MSG_RINGS_GET_REPLY = 0x10 + ETHTOOL_MSG_RINGS_NTF = 0x11 + ETHTOOL_MSG_CHANNELS_GET_REPLY = 0x12 + ETHTOOL_MSG_CHANNELS_NTF = 0x13 + ETHTOOL_MSG_COALESCE_GET_REPLY = 0x14 + ETHTOOL_MSG_COALESCE_NTF = 0x15 + ETHTOOL_MSG_PAUSE_GET_REPLY = 0x16 + ETHTOOL_MSG_PAUSE_NTF = 0x17 + ETHTOOL_MSG_EEE_GET_REPLY = 0x18 + ETHTOOL_MSG_EEE_NTF = 0x19 + ETHTOOL_MSG_TSINFO_GET_REPLY = 0x1a + ETHTOOL_MSG_CABLE_TEST_NTF = 0x1b + ETHTOOL_MSG_CABLE_TEST_TDR_NTF = 0x1c + ETHTOOL_MSG_TUNNEL_INFO_GET_REPLY = 0x1d + ETHTOOL_MSG_FEC_GET_REPLY = 0x1e + ETHTOOL_MSG_FEC_NTF = 0x1f + ETHTOOL_MSG_MODULE_EEPROM_GET_REPLY = 0x20 + ETHTOOL_MSG_STATS_GET_REPLY = 0x21 + ETHTOOL_MSG_PHC_VCLOCKS_GET_REPLY = 0x22 + ETHTOOL_MSG_MODULE_GET_REPLY = 0x23 + ETHTOOL_MSG_MODULE_NTF = 0x24 + ETHTOOL_MSG_PSE_GET_REPLY = 0x25 + ETHTOOL_MSG_RSS_GET_REPLY = 0x26 + ETHTOOL_MSG_KERNEL_MAX = 0x26 + ETHTOOL_A_HEADER_UNSPEC = 0x0 + ETHTOOL_A_HEADER_DEV_INDEX = 0x1 + ETHTOOL_A_HEADER_DEV_NAME = 0x2 + ETHTOOL_A_HEADER_FLAGS = 0x3 + ETHTOOL_A_HEADER_MAX = 0x3 + ETHTOOL_A_BITSET_BIT_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BIT_INDEX = 0x1 + ETHTOOL_A_BITSET_BIT_NAME = 0x2 + ETHTOOL_A_BITSET_BIT_VALUE = 0x3 + ETHTOOL_A_BITSET_BIT_MAX = 0x3 + ETHTOOL_A_BITSET_BITS_UNSPEC = 0x0 + ETHTOOL_A_BITSET_BITS_BIT = 0x1 + ETHTOOL_A_BITSET_BITS_MAX = 0x1 + ETHTOOL_A_BITSET_UNSPEC = 0x0 + ETHTOOL_A_BITSET_NOMASK = 0x1 + ETHTOOL_A_BITSET_SIZE = 0x2 + ETHTOOL_A_BITSET_BITS = 0x3 + ETHTOOL_A_BITSET_VALUE = 0x4 + ETHTOOL_A_BITSET_MASK = 0x5 + ETHTOOL_A_BITSET_MAX = 0x5 + ETHTOOL_A_STRING_UNSPEC = 0x0 + ETHTOOL_A_STRING_INDEX = 0x1 + ETHTOOL_A_STRING_VALUE = 0x2 + ETHTOOL_A_STRING_MAX = 0x2 + ETHTOOL_A_STRINGS_UNSPEC = 0x0 + ETHTOOL_A_STRINGS_STRING = 0x1 + ETHTOOL_A_STRINGS_MAX = 0x1 + ETHTOOL_A_STRINGSET_UNSPEC = 0x0 + ETHTOOL_A_STRINGSET_ID = 0x1 + ETHTOOL_A_STRINGSET_COUNT = 0x2 + ETHTOOL_A_STRINGSET_STRINGS = 0x3 + ETHTOOL_A_STRINGSET_MAX = 0x3 + ETHTOOL_A_STRINGSETS_UNSPEC = 0x0 + ETHTOOL_A_STRINGSETS_STRINGSET = 0x1 + ETHTOOL_A_STRINGSETS_MAX = 0x1 + ETHTOOL_A_STRSET_UNSPEC = 0x0 + ETHTOOL_A_STRSET_HEADER = 0x1 + ETHTOOL_A_STRSET_STRINGSETS = 0x2 + ETHTOOL_A_STRSET_COUNTS_ONLY = 0x3 + ETHTOOL_A_STRSET_MAX = 0x3 + ETHTOOL_A_LINKINFO_UNSPEC = 0x0 + ETHTOOL_A_LINKINFO_HEADER = 0x1 + ETHTOOL_A_LINKINFO_PORT = 0x2 + ETHTOOL_A_LINKINFO_PHYADDR = 0x3 + ETHTOOL_A_LINKINFO_TP_MDIX = 0x4 + ETHTOOL_A_LINKINFO_TP_MDIX_CTRL = 0x5 + ETHTOOL_A_LINKINFO_TRANSCEIVER = 0x6 + ETHTOOL_A_LINKINFO_MAX = 0x6 + ETHTOOL_A_LINKMODES_UNSPEC = 0x0 + ETHTOOL_A_LINKMODES_HEADER = 0x1 + ETHTOOL_A_LINKMODES_AUTONEG = 0x2 + ETHTOOL_A_LINKMODES_OURS = 0x3 + ETHTOOL_A_LINKMODES_PEER = 0x4 + ETHTOOL_A_LINKMODES_SPEED = 0x5 + ETHTOOL_A_LINKMODES_DUPLEX = 0x6 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_CFG = 0x7 + ETHTOOL_A_LINKMODES_MASTER_SLAVE_STATE = 0x8 + ETHTOOL_A_LINKMODES_LANES = 0x9 + ETHTOOL_A_LINKMODES_RATE_MATCHING = 0xa + ETHTOOL_A_LINKMODES_MAX = 0xa + ETHTOOL_A_LINKSTATE_UNSPEC = 0x0 + ETHTOOL_A_LINKSTATE_HEADER = 0x1 + ETHTOOL_A_LINKSTATE_LINK = 0x2 + ETHTOOL_A_LINKSTATE_SQI = 0x3 + ETHTOOL_A_LINKSTATE_SQI_MAX = 0x4 + ETHTOOL_A_LINKSTATE_EXT_STATE = 0x5 + ETHTOOL_A_LINKSTATE_EXT_SUBSTATE = 0x6 + ETHTOOL_A_LINKSTATE_EXT_DOWN_CNT = 0x7 + ETHTOOL_A_LINKSTATE_MAX = 0x7 + ETHTOOL_A_DEBUG_UNSPEC = 0x0 + ETHTOOL_A_DEBUG_HEADER = 0x1 + ETHTOOL_A_DEBUG_MSGMASK = 0x2 + ETHTOOL_A_DEBUG_MAX = 0x2 + ETHTOOL_A_WOL_UNSPEC = 0x0 + ETHTOOL_A_WOL_HEADER = 0x1 + ETHTOOL_A_WOL_MODES = 0x2 + ETHTOOL_A_WOL_SOPASS = 0x3 + ETHTOOL_A_WOL_MAX = 0x3 + ETHTOOL_A_FEATURES_UNSPEC = 0x0 + ETHTOOL_A_FEATURES_HEADER = 0x1 + ETHTOOL_A_FEATURES_HW = 0x2 + ETHTOOL_A_FEATURES_WANTED = 0x3 + ETHTOOL_A_FEATURES_ACTIVE = 0x4 + ETHTOOL_A_FEATURES_NOCHANGE = 0x5 + ETHTOOL_A_FEATURES_MAX = 0x5 + ETHTOOL_A_PRIVFLAGS_UNSPEC = 0x0 + ETHTOOL_A_PRIVFLAGS_HEADER = 0x1 + ETHTOOL_A_PRIVFLAGS_FLAGS = 0x2 + ETHTOOL_A_PRIVFLAGS_MAX = 0x2 + ETHTOOL_A_RINGS_UNSPEC = 0x0 + ETHTOOL_A_RINGS_HEADER = 0x1 + ETHTOOL_A_RINGS_RX_MAX = 0x2 + ETHTOOL_A_RINGS_RX_MINI_MAX = 0x3 + ETHTOOL_A_RINGS_RX_JUMBO_MAX = 0x4 + ETHTOOL_A_RINGS_TX_MAX = 0x5 + ETHTOOL_A_RINGS_RX = 0x6 + ETHTOOL_A_RINGS_RX_MINI = 0x7 + ETHTOOL_A_RINGS_RX_JUMBO = 0x8 + ETHTOOL_A_RINGS_TX = 0x9 + ETHTOOL_A_RINGS_RX_BUF_LEN = 0xa + ETHTOOL_A_RINGS_TCP_DATA_SPLIT = 0xb + ETHTOOL_A_RINGS_CQE_SIZE = 0xc + ETHTOOL_A_RINGS_TX_PUSH = 0xd + ETHTOOL_A_RINGS_MAX = 0xd + ETHTOOL_A_CHANNELS_UNSPEC = 0x0 + ETHTOOL_A_CHANNELS_HEADER = 0x1 + ETHTOOL_A_CHANNELS_RX_MAX = 0x2 + ETHTOOL_A_CHANNELS_TX_MAX = 0x3 + ETHTOOL_A_CHANNELS_OTHER_MAX = 0x4 + ETHTOOL_A_CHANNELS_COMBINED_MAX = 0x5 + ETHTOOL_A_CHANNELS_RX_COUNT = 0x6 + ETHTOOL_A_CHANNELS_TX_COUNT = 0x7 + ETHTOOL_A_CHANNELS_OTHER_COUNT = 0x8 + ETHTOOL_A_CHANNELS_COMBINED_COUNT = 0x9 + ETHTOOL_A_CHANNELS_MAX = 0x9 + ETHTOOL_A_COALESCE_UNSPEC = 0x0 + ETHTOOL_A_COALESCE_HEADER = 0x1 + ETHTOOL_A_COALESCE_RX_USECS = 0x2 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES = 0x3 + ETHTOOL_A_COALESCE_RX_USECS_IRQ = 0x4 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_IRQ = 0x5 + ETHTOOL_A_COALESCE_TX_USECS = 0x6 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES = 0x7 + ETHTOOL_A_COALESCE_TX_USECS_IRQ = 0x8 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_IRQ = 0x9 + ETHTOOL_A_COALESCE_STATS_BLOCK_USECS = 0xa + ETHTOOL_A_COALESCE_USE_ADAPTIVE_RX = 0xb + ETHTOOL_A_COALESCE_USE_ADAPTIVE_TX = 0xc + ETHTOOL_A_COALESCE_PKT_RATE_LOW = 0xd + ETHTOOL_A_COALESCE_RX_USECS_LOW = 0xe + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_LOW = 0xf + ETHTOOL_A_COALESCE_TX_USECS_LOW = 0x10 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_LOW = 0x11 + ETHTOOL_A_COALESCE_PKT_RATE_HIGH = 0x12 + ETHTOOL_A_COALESCE_RX_USECS_HIGH = 0x13 + ETHTOOL_A_COALESCE_RX_MAX_FRAMES_HIGH = 0x14 + ETHTOOL_A_COALESCE_TX_USECS_HIGH = 0x15 + ETHTOOL_A_COALESCE_TX_MAX_FRAMES_HIGH = 0x16 + ETHTOOL_A_COALESCE_RATE_SAMPLE_INTERVAL = 0x17 + ETHTOOL_A_COALESCE_USE_CQE_MODE_TX = 0x18 + ETHTOOL_A_COALESCE_USE_CQE_MODE_RX = 0x19 + ETHTOOL_A_COALESCE_MAX = 0x19 + ETHTOOL_A_PAUSE_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_HEADER = 0x1 + ETHTOOL_A_PAUSE_AUTONEG = 0x2 + ETHTOOL_A_PAUSE_RX = 0x3 + ETHTOOL_A_PAUSE_TX = 0x4 + ETHTOOL_A_PAUSE_STATS = 0x5 + ETHTOOL_A_PAUSE_MAX = 0x5 + ETHTOOL_A_PAUSE_STAT_UNSPEC = 0x0 + ETHTOOL_A_PAUSE_STAT_PAD = 0x1 + ETHTOOL_A_PAUSE_STAT_TX_FRAMES = 0x2 + ETHTOOL_A_PAUSE_STAT_RX_FRAMES = 0x3 + ETHTOOL_A_PAUSE_STAT_MAX = 0x3 + ETHTOOL_A_EEE_UNSPEC = 0x0 + ETHTOOL_A_EEE_HEADER = 0x1 + ETHTOOL_A_EEE_MODES_OURS = 0x2 + ETHTOOL_A_EEE_MODES_PEER = 0x3 + ETHTOOL_A_EEE_ACTIVE = 0x4 + ETHTOOL_A_EEE_ENABLED = 0x5 + ETHTOOL_A_EEE_TX_LPI_ENABLED = 0x6 + ETHTOOL_A_EEE_TX_LPI_TIMER = 0x7 + ETHTOOL_A_EEE_MAX = 0x7 + ETHTOOL_A_TSINFO_UNSPEC = 0x0 + ETHTOOL_A_TSINFO_HEADER = 0x1 + ETHTOOL_A_TSINFO_TIMESTAMPING = 0x2 + ETHTOOL_A_TSINFO_TX_TYPES = 0x3 + ETHTOOL_A_TSINFO_RX_FILTERS = 0x4 + ETHTOOL_A_TSINFO_PHC_INDEX = 0x5 + ETHTOOL_A_TSINFO_MAX = 0x5 + ETHTOOL_A_CABLE_TEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_MAX = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_CODE_OK = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE_OPEN = 0x2 + ETHTOOL_A_CABLE_RESULT_CODE_SAME_SHORT = 0x3 + ETHTOOL_A_CABLE_RESULT_CODE_CROSS_SHORT = 0x4 + ETHTOOL_A_CABLE_PAIR_A = 0x0 + ETHTOOL_A_CABLE_PAIR_B = 0x1 + ETHTOOL_A_CABLE_PAIR_C = 0x2 + ETHTOOL_A_CABLE_PAIR_D = 0x3 + ETHTOOL_A_CABLE_RESULT_UNSPEC = 0x0 + ETHTOOL_A_CABLE_RESULT_PAIR = 0x1 + ETHTOOL_A_CABLE_RESULT_CODE = 0x2 + ETHTOOL_A_CABLE_RESULT_MAX = 0x2 + ETHTOOL_A_CABLE_FAULT_LENGTH_UNSPEC = 0x0 + ETHTOOL_A_CABLE_FAULT_LENGTH_PAIR = 0x1 + ETHTOOL_A_CABLE_FAULT_LENGTH_CM = 0x2 + ETHTOOL_A_CABLE_FAULT_LENGTH_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_STARTED = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS_COMPLETED = 0x2 + ETHTOOL_A_CABLE_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_NEST_RESULT = 0x1 + ETHTOOL_A_CABLE_NEST_FAULT_LENGTH = 0x2 + ETHTOOL_A_CABLE_NEST_MAX = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_NTF_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_CFG_FIRST = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG_LAST = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_CFG_STEP = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_CFG_PAIR = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_CFG_MAX = 0x4 + ETHTOOL_A_CABLE_TEST_TDR_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_CFG = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_MAX = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_AMPLITUDE_PAIR = 0x1 + ETHTOOL_A_CABLE_AMPLITUDE_mV = 0x2 + ETHTOOL_A_CABLE_AMPLITUDE_MAX = 0x2 + ETHTOOL_A_CABLE_PULSE_UNSPEC = 0x0 + ETHTOOL_A_CABLE_PULSE_mV = 0x1 + ETHTOOL_A_CABLE_PULSE_MAX = 0x1 + ETHTOOL_A_CABLE_STEP_UNSPEC = 0x0 + ETHTOOL_A_CABLE_STEP_FIRST_DISTANCE = 0x1 + ETHTOOL_A_CABLE_STEP_LAST_DISTANCE = 0x2 + ETHTOOL_A_CABLE_STEP_STEP_DISTANCE = 0x3 + ETHTOOL_A_CABLE_STEP_MAX = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TDR_NEST_STEP = 0x1 + ETHTOOL_A_CABLE_TDR_NEST_AMPLITUDE = 0x2 + ETHTOOL_A_CABLE_TDR_NEST_PULSE = 0x3 + ETHTOOL_A_CABLE_TDR_NEST_MAX = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_UNSPEC = 0x0 + ETHTOOL_A_CABLE_TEST_TDR_NTF_HEADER = 0x1 + ETHTOOL_A_CABLE_TEST_TDR_NTF_STATUS = 0x2 + ETHTOOL_A_CABLE_TEST_TDR_NTF_NEST = 0x3 + ETHTOOL_A_CABLE_TEST_TDR_NTF_MAX = 0x3 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN = 0x0 + ETHTOOL_UDP_TUNNEL_TYPE_GENEVE = 0x1 + ETHTOOL_UDP_TUNNEL_TYPE_VXLAN_GPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_ENTRY_PORT = 0x1 + ETHTOOL_A_TUNNEL_UDP_ENTRY_TYPE = 0x2 + ETHTOOL_A_TUNNEL_UDP_ENTRY_MAX = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE_SIZE = 0x1 + ETHTOOL_A_TUNNEL_UDP_TABLE_TYPES = 0x2 + ETHTOOL_A_TUNNEL_UDP_TABLE_ENTRY = 0x3 + ETHTOOL_A_TUNNEL_UDP_TABLE_MAX = 0x3 + ETHTOOL_A_TUNNEL_UDP_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_UDP_TABLE = 0x1 + ETHTOOL_A_TUNNEL_UDP_MAX = 0x1 + ETHTOOL_A_TUNNEL_INFO_UNSPEC = 0x0 + ETHTOOL_A_TUNNEL_INFO_HEADER = 0x1 + ETHTOOL_A_TUNNEL_INFO_UDP_PORTS = 0x2 + ETHTOOL_A_TUNNEL_INFO_MAX = 0x2 +) + +const SPEED_UNKNOWN = -0x1 + +type EthtoolDrvinfo struct { + Cmd uint32 + Driver [32]byte + Version [32]byte + Fw_version [32]byte + Bus_info [32]byte + Erom_version [32]byte + Reserved2 [12]byte + N_priv_flags uint32 + N_stats uint32 + Testinfo_len uint32 + Eedump_len uint32 + Regdump_len uint32 +} + +type ( + HIDRawReportDescriptor struct { + Size uint32 + Value [4096]uint8 + } + HIDRawDevInfo struct { + Bustype uint32 + Vendor int16 + Product int16 + } +) + +const ( + CLOSE_RANGE_UNSHARE = 0x2 + CLOSE_RANGE_CLOEXEC = 0x4 +) + +const ( + NLMSGERR_ATTR_MSG = 0x1 + NLMSGERR_ATTR_OFFS = 0x2 + NLMSGERR_ATTR_COOKIE = 0x3 +) + +type ( + EraseInfo struct { + Start uint32 + Length uint32 + } + EraseInfo64 struct { + Start uint64 + Length uint64 + } + MtdOobBuf struct { + Start uint32 + Length uint32 + Ptr *uint8 + } + MtdOobBuf64 struct { + Start uint64 + Pad uint32 + Length uint32 + Ptr uint64 + } + MtdWriteReq struct { + Start uint64 + Len uint64 + Ooblen uint64 + Data uint64 + Oob uint64 + Mode uint8 + _ [7]uint8 + } + MtdInfo struct { + Type uint8 + Flags uint32 + Size uint32 + Erasesize uint32 + Writesize uint32 + Oobsize uint32 + _ uint64 + } + RegionInfo struct { + Offset uint32 + Erasesize uint32 + Numblocks uint32 + Regionindex uint32 + } + OtpInfo struct { + Start uint32 + Length uint32 + Locked uint32 + } + NandOobinfo struct { + Useecc uint32 + Eccbytes uint32 + Oobfree [8][2]uint32 + Eccpos [32]uint32 + } + NandOobfree struct { + Offset uint32 + Length uint32 + } + NandEcclayout struct { + Eccbytes uint32 + Eccpos [64]uint32 + Oobavail uint32 + Oobfree [8]NandOobfree + } + MtdEccStats struct { + Corrected uint32 + Failed uint32 + Badblocks uint32 + Bbtblocks uint32 + } +) + +const ( + MTD_OPS_PLACE_OOB = 0x0 + MTD_OPS_AUTO_OOB = 0x1 + MTD_OPS_RAW = 0x2 +) + +const ( + MTD_FILE_MODE_NORMAL = 0x0 + MTD_FILE_MODE_OTP_FACTORY = 0x1 + MTD_FILE_MODE_OTP_USER = 0x2 + MTD_FILE_MODE_RAW = 0x3 +) + +const ( + NFC_CMD_UNSPEC = 0x0 + NFC_CMD_GET_DEVICE = 0x1 + NFC_CMD_DEV_UP = 0x2 + NFC_CMD_DEV_DOWN = 0x3 + NFC_CMD_DEP_LINK_UP = 0x4 + NFC_CMD_DEP_LINK_DOWN = 0x5 + NFC_CMD_START_POLL = 0x6 + NFC_CMD_STOP_POLL = 0x7 + NFC_CMD_GET_TARGET = 0x8 + NFC_EVENT_TARGETS_FOUND = 0x9 + NFC_EVENT_DEVICE_ADDED = 0xa + NFC_EVENT_DEVICE_REMOVED = 0xb + NFC_EVENT_TARGET_LOST = 0xc + NFC_EVENT_TM_ACTIVATED = 0xd + NFC_EVENT_TM_DEACTIVATED = 0xe + NFC_CMD_LLC_GET_PARAMS = 0xf + NFC_CMD_LLC_SET_PARAMS = 0x10 + NFC_CMD_ENABLE_SE = 0x11 + NFC_CMD_DISABLE_SE = 0x12 + NFC_CMD_LLC_SDREQ = 0x13 + NFC_EVENT_LLC_SDRES = 0x14 + NFC_CMD_FW_DOWNLOAD = 0x15 + NFC_EVENT_SE_ADDED = 0x16 + NFC_EVENT_SE_REMOVED = 0x17 + NFC_EVENT_SE_CONNECTIVITY = 0x18 + NFC_EVENT_SE_TRANSACTION = 0x19 + NFC_CMD_GET_SE = 0x1a + NFC_CMD_SE_IO = 0x1b + NFC_CMD_ACTIVATE_TARGET = 0x1c + NFC_CMD_VENDOR = 0x1d + NFC_CMD_DEACTIVATE_TARGET = 0x1e + NFC_ATTR_UNSPEC = 0x0 + NFC_ATTR_DEVICE_INDEX = 0x1 + NFC_ATTR_DEVICE_NAME = 0x2 + NFC_ATTR_PROTOCOLS = 0x3 + NFC_ATTR_TARGET_INDEX = 0x4 + NFC_ATTR_TARGET_SENS_RES = 0x5 + NFC_ATTR_TARGET_SEL_RES = 0x6 + NFC_ATTR_TARGET_NFCID1 = 0x7 + NFC_ATTR_TARGET_SENSB_RES = 0x8 + NFC_ATTR_TARGET_SENSF_RES = 0x9 + NFC_ATTR_COMM_MODE = 0xa + NFC_ATTR_RF_MODE = 0xb + NFC_ATTR_DEVICE_POWERED = 0xc + NFC_ATTR_IM_PROTOCOLS = 0xd + NFC_ATTR_TM_PROTOCOLS = 0xe + NFC_ATTR_LLC_PARAM_LTO = 0xf + NFC_ATTR_LLC_PARAM_RW = 0x10 + NFC_ATTR_LLC_PARAM_MIUX = 0x11 + NFC_ATTR_SE = 0x12 + NFC_ATTR_LLC_SDP = 0x13 + NFC_ATTR_FIRMWARE_NAME = 0x14 + NFC_ATTR_SE_INDEX = 0x15 + NFC_ATTR_SE_TYPE = 0x16 + NFC_ATTR_SE_AID = 0x17 + NFC_ATTR_FIRMWARE_DOWNLOAD_STATUS = 0x18 + NFC_ATTR_SE_APDU = 0x19 + NFC_ATTR_TARGET_ISO15693_DSFID = 0x1a + NFC_ATTR_TARGET_ISO15693_UID = 0x1b + NFC_ATTR_SE_PARAMS = 0x1c + NFC_ATTR_VENDOR_ID = 0x1d + NFC_ATTR_VENDOR_SUBCMD = 0x1e + NFC_ATTR_VENDOR_DATA = 0x1f + NFC_SDP_ATTR_UNSPEC = 0x0 + NFC_SDP_ATTR_URI = 0x1 + NFC_SDP_ATTR_SAP = 0x2 +) + +type LandlockRulesetAttr struct { + Access_fs uint64 +} + +type LandlockPathBeneathAttr struct { + Allowed_access uint64 + Parent_fd int32 +} + +const ( + LANDLOCK_RULE_PATH_BENEATH = 0x1 +) + +const ( + IPC_CREAT = 0x200 + IPC_EXCL = 0x400 + IPC_NOWAIT = 0x800 + IPC_PRIVATE = 0x0 + + ipc_64 = 0x100 +) + +const ( + IPC_RMID = 0x0 + IPC_SET = 0x1 + IPC_STAT = 0x2 +) + +const ( + SHM_RDONLY = 0x1000 + SHM_RND = 0x2000 +) + +type MountAttr struct { + Attr_set uint64 + Attr_clr uint64 + Propagation uint64 + Userns_fd uint64 +} + +const ( + WG_CMD_GET_DEVICE = 0x0 + WG_CMD_SET_DEVICE = 0x1 + WGDEVICE_F_REPLACE_PEERS = 0x1 + WGDEVICE_A_UNSPEC = 0x0 + WGDEVICE_A_IFINDEX = 0x1 + WGDEVICE_A_IFNAME = 0x2 + WGDEVICE_A_PRIVATE_KEY = 0x3 + WGDEVICE_A_PUBLIC_KEY = 0x4 + WGDEVICE_A_FLAGS = 0x5 + WGDEVICE_A_LISTEN_PORT = 0x6 + WGDEVICE_A_FWMARK = 0x7 + WGDEVICE_A_PEERS = 0x8 + WGPEER_F_REMOVE_ME = 0x1 + WGPEER_F_REPLACE_ALLOWEDIPS = 0x2 + WGPEER_F_UPDATE_ONLY = 0x4 + WGPEER_A_UNSPEC = 0x0 + WGPEER_A_PUBLIC_KEY = 0x1 + WGPEER_A_PRESHARED_KEY = 0x2 + WGPEER_A_FLAGS = 0x3 + WGPEER_A_ENDPOINT = 0x4 + WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL = 0x5 + WGPEER_A_LAST_HANDSHAKE_TIME = 0x6 + WGPEER_A_RX_BYTES = 0x7 + WGPEER_A_TX_BYTES = 0x8 + WGPEER_A_ALLOWEDIPS = 0x9 + WGPEER_A_PROTOCOL_VERSION = 0xa + WGALLOWEDIP_A_UNSPEC = 0x0 + WGALLOWEDIP_A_FAMILY = 0x1 + WGALLOWEDIP_A_IPADDR = 0x2 + WGALLOWEDIP_A_CIDR_MASK = 0x3 +) + +const ( + NL_ATTR_TYPE_INVALID = 0x0 + NL_ATTR_TYPE_FLAG = 0x1 + NL_ATTR_TYPE_U8 = 0x2 + NL_ATTR_TYPE_U16 = 0x3 + NL_ATTR_TYPE_U32 = 0x4 + NL_ATTR_TYPE_U64 = 0x5 + NL_ATTR_TYPE_S8 = 0x6 + NL_ATTR_TYPE_S16 = 0x7 + NL_ATTR_TYPE_S32 = 0x8 + NL_ATTR_TYPE_S64 = 0x9 + NL_ATTR_TYPE_BINARY = 0xa + NL_ATTR_TYPE_STRING = 0xb + NL_ATTR_TYPE_NUL_STRING = 0xc + NL_ATTR_TYPE_NESTED = 0xd + NL_ATTR_TYPE_NESTED_ARRAY = 0xe + NL_ATTR_TYPE_BITFIELD32 = 0xf + + NL_POLICY_TYPE_ATTR_UNSPEC = 0x0 + NL_POLICY_TYPE_ATTR_TYPE = 0x1 + NL_POLICY_TYPE_ATTR_MIN_VALUE_S = 0x2 + NL_POLICY_TYPE_ATTR_MAX_VALUE_S = 0x3 + NL_POLICY_TYPE_ATTR_MIN_VALUE_U = 0x4 + NL_POLICY_TYPE_ATTR_MAX_VALUE_U = 0x5 + NL_POLICY_TYPE_ATTR_MIN_LENGTH = 0x6 + NL_POLICY_TYPE_ATTR_MAX_LENGTH = 0x7 + NL_POLICY_TYPE_ATTR_POLICY_IDX = 0x8 + NL_POLICY_TYPE_ATTR_POLICY_MAXTYPE = 0x9 + NL_POLICY_TYPE_ATTR_BITFIELD32_MASK = 0xa + NL_POLICY_TYPE_ATTR_PAD = 0xb + NL_POLICY_TYPE_ATTR_MASK = 0xc + NL_POLICY_TYPE_ATTR_MAX = 0xc +) + +type CANBitTiming struct { + Bitrate uint32 + Sample_point uint32 + Tq uint32 + Prop_seg uint32 + Phase_seg1 uint32 + Phase_seg2 uint32 + Sjw uint32 + Brp uint32 +} + +type CANBitTimingConst struct { + Name [16]uint8 + Tseg1_min uint32 + Tseg1_max uint32 + Tseg2_min uint32 + Tseg2_max uint32 + Sjw_max uint32 + Brp_min uint32 + Brp_max uint32 + Brp_inc uint32 +} + +type CANClock struct { + Freq uint32 +} + +type CANBusErrorCounters struct { + Txerr uint16 + Rxerr uint16 +} + +type CANCtrlMode struct { + Mask uint32 + Flags uint32 +} + +type CANDeviceStats struct { + Bus_error uint32 + Error_warning uint32 + Error_passive uint32 + Bus_off uint32 + Arbitration_lost uint32 + Restarts uint32 +} + +const ( + CAN_STATE_ERROR_ACTIVE = 0x0 + CAN_STATE_ERROR_WARNING = 0x1 + CAN_STATE_ERROR_PASSIVE = 0x2 + CAN_STATE_BUS_OFF = 0x3 + CAN_STATE_STOPPED = 0x4 + CAN_STATE_SLEEPING = 0x5 + CAN_STATE_MAX = 0x6 +) + +const ( + IFLA_CAN_UNSPEC = 0x0 + IFLA_CAN_BITTIMING = 0x1 + IFLA_CAN_BITTIMING_CONST = 0x2 + IFLA_CAN_CLOCK = 0x3 + IFLA_CAN_STATE = 0x4 + IFLA_CAN_CTRLMODE = 0x5 + IFLA_CAN_RESTART_MS = 0x6 + IFLA_CAN_RESTART = 0x7 + IFLA_CAN_BERR_COUNTER = 0x8 + IFLA_CAN_DATA_BITTIMING = 0x9 + IFLA_CAN_DATA_BITTIMING_CONST = 0xa + IFLA_CAN_TERMINATION = 0xb + IFLA_CAN_TERMINATION_CONST = 0xc + IFLA_CAN_BITRATE_CONST = 0xd + IFLA_CAN_DATA_BITRATE_CONST = 0xe + IFLA_CAN_BITRATE_MAX = 0xf +) + +type KCMAttach struct { + Fd int32 + Bpf_fd int32 +} + +type KCMUnattach struct { + Fd int32 +} + +type KCMClone struct { + Fd int32 +} + +const ( + NL80211_AC_BE = 0x2 + NL80211_AC_BK = 0x3 + NL80211_ACL_POLICY_ACCEPT_UNLESS_LISTED = 0x0 + NL80211_ACL_POLICY_DENY_UNLESS_LISTED = 0x1 + NL80211_AC_VI = 0x1 + NL80211_AC_VO = 0x0 + NL80211_AP_SETTINGS_EXTERNAL_AUTH_SUPPORT = 0x1 + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 0x2 + NL80211_AP_SME_SA_QUERY_OFFLOAD = 0x1 + NL80211_ATTR_4ADDR = 0x53 + NL80211_ATTR_ACK = 0x5c + NL80211_ATTR_ACK_SIGNAL = 0x107 + NL80211_ATTR_ACL_POLICY = 0xa5 + NL80211_ATTR_ADMITTED_TIME = 0xd4 + NL80211_ATTR_AIRTIME_WEIGHT = 0x112 + NL80211_ATTR_AKM_SUITES = 0x4c + NL80211_ATTR_AP_ISOLATE = 0x60 + NL80211_ATTR_AP_SETTINGS_FLAGS = 0x135 + NL80211_ATTR_AUTH_DATA = 0x9c + NL80211_ATTR_AUTH_TYPE = 0x35 + NL80211_ATTR_BANDS = 0xef + NL80211_ATTR_BEACON_HEAD = 0xe + NL80211_ATTR_BEACON_INTERVAL = 0xc + NL80211_ATTR_BEACON_TAIL = 0xf + NL80211_ATTR_BG_SCAN_PERIOD = 0x98 + NL80211_ATTR_BSS_BASIC_RATES = 0x24 + NL80211_ATTR_BSS = 0x2f + NL80211_ATTR_BSS_CTS_PROT = 0x1c + NL80211_ATTR_BSS_HT_OPMODE = 0x6d + NL80211_ATTR_BSSID = 0xf5 + NL80211_ATTR_BSS_SELECT = 0xe3 + NL80211_ATTR_BSS_SHORT_PREAMBLE = 0x1d + NL80211_ATTR_BSS_SHORT_SLOT_TIME = 0x1e + NL80211_ATTR_CENTER_FREQ1 = 0xa0 + NL80211_ATTR_CENTER_FREQ1_OFFSET = 0x123 + NL80211_ATTR_CENTER_FREQ2 = 0xa1 + NL80211_ATTR_CHANNEL_WIDTH = 0x9f + NL80211_ATTR_CH_SWITCH_BLOCK_TX = 0xb8 + NL80211_ATTR_CH_SWITCH_COUNT = 0xb7 + NL80211_ATTR_CIPHER_SUITE_GROUP = 0x4a + NL80211_ATTR_CIPHER_SUITES = 0x39 + NL80211_ATTR_CIPHER_SUITES_PAIRWISE = 0x49 + NL80211_ATTR_CNTDWN_OFFS_BEACON = 0xba + NL80211_ATTR_CNTDWN_OFFS_PRESP = 0xbb + NL80211_ATTR_COALESCE_RULE = 0xb6 + NL80211_ATTR_COALESCE_RULE_CONDITION = 0x2 + NL80211_ATTR_COALESCE_RULE_DELAY = 0x1 + NL80211_ATTR_COALESCE_RULE_MAX = 0x3 + NL80211_ATTR_COALESCE_RULE_PKT_PATTERN = 0x3 + NL80211_ATTR_COLOR_CHANGE_COLOR = 0x130 + NL80211_ATTR_COLOR_CHANGE_COUNT = 0x12f + NL80211_ATTR_COLOR_CHANGE_ELEMS = 0x131 + NL80211_ATTR_CONN_FAILED_REASON = 0x9b + NL80211_ATTR_CONTROL_PORT = 0x44 + NL80211_ATTR_CONTROL_PORT_ETHERTYPE = 0x66 + NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT = 0x67 + NL80211_ATTR_CONTROL_PORT_NO_PREAUTH = 0x11e + NL80211_ATTR_CONTROL_PORT_OVER_NL80211 = 0x108 + NL80211_ATTR_COOKIE = 0x58 + NL80211_ATTR_CQM_BEACON_LOSS_EVENT = 0x8 + NL80211_ATTR_CQM = 0x5e + NL80211_ATTR_CQM_MAX = 0x9 + NL80211_ATTR_CQM_PKT_LOSS_EVENT = 0x4 + NL80211_ATTR_CQM_RSSI_HYST = 0x2 + NL80211_ATTR_CQM_RSSI_LEVEL = 0x9 + NL80211_ATTR_CQM_RSSI_THOLD = 0x1 + NL80211_ATTR_CQM_RSSI_THRESHOLD_EVENT = 0x3 + NL80211_ATTR_CQM_TXE_INTVL = 0x7 + NL80211_ATTR_CQM_TXE_PKTS = 0x6 + NL80211_ATTR_CQM_TXE_RATE = 0x5 + NL80211_ATTR_CRIT_PROT_ID = 0xb3 + NL80211_ATTR_CSA_C_OFF_BEACON = 0xba + NL80211_ATTR_CSA_C_OFF_PRESP = 0xbb + NL80211_ATTR_CSA_C_OFFSETS_TX = 0xcd + NL80211_ATTR_CSA_IES = 0xb9 + NL80211_ATTR_DEVICE_AP_SME = 0x8d + NL80211_ATTR_DFS_CAC_TIME = 0x7 + NL80211_ATTR_DFS_REGION = 0x92 + NL80211_ATTR_DISABLE_EHT = 0x137 + NL80211_ATTR_DISABLE_HE = 0x12d + NL80211_ATTR_DISABLE_HT = 0x93 + NL80211_ATTR_DISABLE_VHT = 0xaf + NL80211_ATTR_DISCONNECTED_BY_AP = 0x47 + NL80211_ATTR_DONT_WAIT_FOR_ACK = 0x8e + NL80211_ATTR_DTIM_PERIOD = 0xd + NL80211_ATTR_DURATION = 0x57 + NL80211_ATTR_EHT_CAPABILITY = 0x136 + NL80211_ATTR_EML_CAPABILITY = 0x13d + NL80211_ATTR_EXT_CAPA = 0xa9 + NL80211_ATTR_EXT_CAPA_MASK = 0xaa + NL80211_ATTR_EXTERNAL_AUTH_ACTION = 0x104 + NL80211_ATTR_EXTERNAL_AUTH_SUPPORT = 0x105 + NL80211_ATTR_EXT_FEATURES = 0xd9 + NL80211_ATTR_FEATURE_FLAGS = 0x8f + NL80211_ATTR_FILS_CACHE_ID = 0xfd + NL80211_ATTR_FILS_DISCOVERY = 0x126 + NL80211_ATTR_FILS_ERP_NEXT_SEQ_NUM = 0xfb + NL80211_ATTR_FILS_ERP_REALM = 0xfa + NL80211_ATTR_FILS_ERP_RRK = 0xfc + NL80211_ATTR_FILS_ERP_USERNAME = 0xf9 + NL80211_ATTR_FILS_KEK = 0xf2 + NL80211_ATTR_FILS_NONCES = 0xf3 + NL80211_ATTR_FRAME = 0x33 + NL80211_ATTR_FRAME_MATCH = 0x5b + NL80211_ATTR_FRAME_TYPE = 0x65 + NL80211_ATTR_FREQ_AFTER = 0x3b + NL80211_ATTR_FREQ_BEFORE = 0x3a + NL80211_ATTR_FREQ_FIXED = 0x3c + NL80211_ATTR_FREQ_RANGE_END = 0x3 + NL80211_ATTR_FREQ_RANGE_MAX_BW = 0x4 + NL80211_ATTR_FREQ_RANGE_START = 0x2 + NL80211_ATTR_FTM_RESPONDER = 0x10e + NL80211_ATTR_FTM_RESPONDER_STATS = 0x10f + NL80211_ATTR_GENERATION = 0x2e + NL80211_ATTR_HANDLE_DFS = 0xbf + NL80211_ATTR_HE_6GHZ_CAPABILITY = 0x125 + NL80211_ATTR_HE_BSS_COLOR = 0x11b + NL80211_ATTR_HE_CAPABILITY = 0x10d + NL80211_ATTR_HE_OBSS_PD = 0x117 + NL80211_ATTR_HIDDEN_SSID = 0x7e + NL80211_ATTR_HT_CAPABILITY = 0x1f + NL80211_ATTR_HT_CAPABILITY_MASK = 0x94 + NL80211_ATTR_IE_ASSOC_RESP = 0x80 + NL80211_ATTR_IE = 0x2a + NL80211_ATTR_IE_PROBE_RESP = 0x7f + NL80211_ATTR_IE_RIC = 0xb2 + NL80211_ATTR_IFACE_SOCKET_OWNER = 0xcc + NL80211_ATTR_IFINDEX = 0x3 + NL80211_ATTR_IFNAME = 0x4 + NL80211_ATTR_IFTYPE_AKM_SUITES = 0x11c + NL80211_ATTR_IFTYPE = 0x5 + NL80211_ATTR_IFTYPE_EXT_CAPA = 0xe6 + NL80211_ATTR_INACTIVITY_TIMEOUT = 0x96 + NL80211_ATTR_INTERFACE_COMBINATIONS = 0x78 + NL80211_ATTR_KEY_CIPHER = 0x9 + NL80211_ATTR_KEY = 0x50 + NL80211_ATTR_KEY_DATA = 0x7 + NL80211_ATTR_KEY_DEFAULT = 0xb + NL80211_ATTR_KEY_DEFAULT_MGMT = 0x28 + NL80211_ATTR_KEY_DEFAULT_TYPES = 0x6e + NL80211_ATTR_KEY_IDX = 0x8 + NL80211_ATTR_KEYS = 0x51 + NL80211_ATTR_KEY_SEQ = 0xa + NL80211_ATTR_KEY_TYPE = 0x37 + NL80211_ATTR_LOCAL_MESH_POWER_MODE = 0xa4 + NL80211_ATTR_LOCAL_STATE_CHANGE = 0x5f + NL80211_ATTR_MAC_ACL_MAX = 0xa7 + NL80211_ATTR_MAC_ADDRS = 0xa6 + NL80211_ATTR_MAC = 0x6 + NL80211_ATTR_MAC_HINT = 0xc8 + NL80211_ATTR_MAC_MASK = 0xd7 + NL80211_ATTR_MAX_AP_ASSOC_STA = 0xca + NL80211_ATTR_MAX = 0x141 + NL80211_ATTR_MAX_CRIT_PROT_DURATION = 0xb4 + NL80211_ATTR_MAX_CSA_COUNTERS = 0xce + NL80211_ATTR_MAX_MATCH_SETS = 0x85 + NL80211_ATTR_MAX_NUM_AKM_SUITES = 0x13c + NL80211_ATTR_MAX_NUM_PMKIDS = 0x56 + NL80211_ATTR_MAX_NUM_SCAN_SSIDS = 0x2b + NL80211_ATTR_MAX_NUM_SCHED_SCAN_PLANS = 0xde + NL80211_ATTR_MAX_NUM_SCHED_SCAN_SSIDS = 0x7b + NL80211_ATTR_MAX_REMAIN_ON_CHANNEL_DURATION = 0x6f + NL80211_ATTR_MAX_SCAN_IE_LEN = 0x38 + NL80211_ATTR_MAX_SCAN_PLAN_INTERVAL = 0xdf + NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS = 0xe0 + NL80211_ATTR_MAX_SCHED_SCAN_IE_LEN = 0x7c + NL80211_ATTR_MBSSID_CONFIG = 0x132 + NL80211_ATTR_MBSSID_ELEMS = 0x133 + NL80211_ATTR_MCAST_RATE = 0x6b + NL80211_ATTR_MDID = 0xb1 + NL80211_ATTR_MEASUREMENT_DURATION = 0xeb + NL80211_ATTR_MEASUREMENT_DURATION_MANDATORY = 0xec + NL80211_ATTR_MESH_CONFIG = 0x23 + NL80211_ATTR_MESH_ID = 0x18 + NL80211_ATTR_MESH_PEER_AID = 0xed + NL80211_ATTR_MESH_SETUP = 0x70 + NL80211_ATTR_MGMT_SUBTYPE = 0x29 + NL80211_ATTR_MLD_ADDR = 0x13a + NL80211_ATTR_MLD_CAPA_AND_OPS = 0x13e + NL80211_ATTR_MLO_LINK_ID = 0x139 + NL80211_ATTR_MLO_LINKS = 0x138 + NL80211_ATTR_MLO_SUPPORT = 0x13b + NL80211_ATTR_MNTR_FLAGS = 0x17 + NL80211_ATTR_MPATH_INFO = 0x1b + NL80211_ATTR_MPATH_NEXT_HOP = 0x1a + NL80211_ATTR_MULTICAST_TO_UNICAST_ENABLED = 0xf4 + NL80211_ATTR_MU_MIMO_FOLLOW_MAC_ADDR = 0xe8 + NL80211_ATTR_MU_MIMO_GROUP_DATA = 0xe7 + NL80211_ATTR_NAN_FUNC = 0xf0 + NL80211_ATTR_NAN_MASTER_PREF = 0xee + NL80211_ATTR_NAN_MATCH = 0xf1 + NL80211_ATTR_NETNS_FD = 0xdb + NL80211_ATTR_NOACK_MAP = 0x95 + NL80211_ATTR_NSS = 0x106 + NL80211_ATTR_OBSS_COLOR_BITMAP = 0x12e + NL80211_ATTR_OFFCHANNEL_TX_OK = 0x6c + NL80211_ATTR_OPER_CLASS = 0xd6 + NL80211_ATTR_OPMODE_NOTIF = 0xc2 + NL80211_ATTR_P2P_CTWINDOW = 0xa2 + NL80211_ATTR_P2P_OPPPS = 0xa3 + NL80211_ATTR_PAD = 0xe5 + NL80211_ATTR_PBSS = 0xe2 + NL80211_ATTR_PEER_AID = 0xb5 + NL80211_ATTR_PEER_MEASUREMENTS = 0x111 + NL80211_ATTR_PID = 0x52 + NL80211_ATTR_PMK = 0xfe + NL80211_ATTR_PMKID = 0x55 + NL80211_ATTR_PMK_LIFETIME = 0x11f + NL80211_ATTR_PMKR0_NAME = 0x102 + NL80211_ATTR_PMK_REAUTH_THRESHOLD = 0x120 + NL80211_ATTR_PMKSA_CANDIDATE = 0x86 + NL80211_ATTR_PORT_AUTHORIZED = 0x103 + NL80211_ATTR_POWER_RULE_MAX_ANT_GAIN = 0x5 + NL80211_ATTR_POWER_RULE_MAX_EIRP = 0x6 + NL80211_ATTR_PREV_BSSID = 0x4f + NL80211_ATTR_PRIVACY = 0x46 + NL80211_ATTR_PROBE_RESP = 0x91 + NL80211_ATTR_PROBE_RESP_OFFLOAD = 0x90 + NL80211_ATTR_PROTOCOL_FEATURES = 0xad + NL80211_ATTR_PS_STATE = 0x5d + NL80211_ATTR_QOS_MAP = 0xc7 + NL80211_ATTR_RADAR_BACKGROUND = 0x134 + NL80211_ATTR_RADAR_EVENT = 0xa8 + NL80211_ATTR_REASON_CODE = 0x36 + NL80211_ATTR_RECEIVE_MULTICAST = 0x121 + NL80211_ATTR_RECONNECT_REQUESTED = 0x12b + NL80211_ATTR_REG_ALPHA2 = 0x21 + NL80211_ATTR_REG_INDOOR = 0xdd + NL80211_ATTR_REG_INITIATOR = 0x30 + NL80211_ATTR_REG_RULE_FLAGS = 0x1 + NL80211_ATTR_REG_RULES = 0x22 + NL80211_ATTR_REG_TYPE = 0x31 + NL80211_ATTR_REKEY_DATA = 0x7a + NL80211_ATTR_REQ_IE = 0x4d + NL80211_ATTR_RESP_IE = 0x4e + NL80211_ATTR_ROAM_SUPPORT = 0x83 + NL80211_ATTR_RX_FRAME_TYPES = 0x64 + NL80211_ATTR_RX_HW_TIMESTAMP = 0x140 + NL80211_ATTR_RXMGMT_FLAGS = 0xbc + NL80211_ATTR_RX_SIGNAL_DBM = 0x97 + NL80211_ATTR_S1G_CAPABILITY = 0x128 + NL80211_ATTR_S1G_CAPABILITY_MASK = 0x129 + NL80211_ATTR_SAE_DATA = 0x9c + NL80211_ATTR_SAE_PASSWORD = 0x115 + NL80211_ATTR_SAE_PWE = 0x12a + NL80211_ATTR_SAR_SPEC = 0x12c + NL80211_ATTR_SCAN_FLAGS = 0x9e + NL80211_ATTR_SCAN_FREQ_KHZ = 0x124 + NL80211_ATTR_SCAN_FREQUENCIES = 0x2c + NL80211_ATTR_SCAN_GENERATION = 0x2e + NL80211_ATTR_SCAN_SSIDS = 0x2d + NL80211_ATTR_SCAN_START_TIME_TSF_BSSID = 0xea + NL80211_ATTR_SCAN_START_TIME_TSF = 0xe9 + NL80211_ATTR_SCAN_SUPP_RATES = 0x7d + NL80211_ATTR_SCHED_SCAN_DELAY = 0xdc + NL80211_ATTR_SCHED_SCAN_INTERVAL = 0x77 + NL80211_ATTR_SCHED_SCAN_MATCH = 0x84 + NL80211_ATTR_SCHED_SCAN_MATCH_SSID = 0x1 + NL80211_ATTR_SCHED_SCAN_MAX_REQS = 0x100 + NL80211_ATTR_SCHED_SCAN_MULTI = 0xff + NL80211_ATTR_SCHED_SCAN_PLANS = 0xe1 + NL80211_ATTR_SCHED_SCAN_RELATIVE_RSSI = 0xf6 + NL80211_ATTR_SCHED_SCAN_RSSI_ADJUST = 0xf7 + NL80211_ATTR_SMPS_MODE = 0xd5 + NL80211_ATTR_SOCKET_OWNER = 0xcc + NL80211_ATTR_SOFTWARE_IFTYPES = 0x79 + NL80211_ATTR_SPLIT_WIPHY_DUMP = 0xae + NL80211_ATTR_SSID = 0x34 + NL80211_ATTR_STA_AID = 0x10 + NL80211_ATTR_STA_CAPABILITY = 0xab + NL80211_ATTR_STA_EXT_CAPABILITY = 0xac + NL80211_ATTR_STA_FLAGS2 = 0x43 + NL80211_ATTR_STA_FLAGS = 0x11 + NL80211_ATTR_STA_INFO = 0x15 + NL80211_ATTR_STA_LISTEN_INTERVAL = 0x12 + NL80211_ATTR_STA_PLINK_ACTION = 0x19 + NL80211_ATTR_STA_PLINK_STATE = 0x74 + NL80211_ATTR_STA_SUPPORTED_CHANNELS = 0xbd + NL80211_ATTR_STA_SUPPORTED_OPER_CLASSES = 0xbe + NL80211_ATTR_STA_SUPPORTED_RATES = 0x13 + NL80211_ATTR_STA_SUPPORT_P2P_PS = 0xe4 + NL80211_ATTR_STATUS_CODE = 0x48 + NL80211_ATTR_STA_TX_POWER = 0x114 + NL80211_ATTR_STA_TX_POWER_SETTING = 0x113 + NL80211_ATTR_STA_VLAN = 0x14 + NL80211_ATTR_STA_WME = 0x81 + NL80211_ATTR_SUPPORT_10_MHZ = 0xc1 + NL80211_ATTR_SUPPORT_5_MHZ = 0xc0 + NL80211_ATTR_SUPPORT_AP_UAPSD = 0x82 + NL80211_ATTR_SUPPORTED_COMMANDS = 0x32 + NL80211_ATTR_SUPPORTED_IFTYPES = 0x20 + NL80211_ATTR_SUPPORT_IBSS_RSN = 0x68 + NL80211_ATTR_SUPPORT_MESH_AUTH = 0x73 + NL80211_ATTR_SURVEY_INFO = 0x54 + NL80211_ATTR_SURVEY_RADIO_STATS = 0xda + NL80211_ATTR_TD_BITMAP = 0x141 + NL80211_ATTR_TDLS_ACTION = 0x88 + NL80211_ATTR_TDLS_DIALOG_TOKEN = 0x89 + NL80211_ATTR_TDLS_EXTERNAL_SETUP = 0x8c + NL80211_ATTR_TDLS_INITIATOR = 0xcf + NL80211_ATTR_TDLS_OPERATION = 0x8a + NL80211_ATTR_TDLS_PEER_CAPABILITY = 0xcb + NL80211_ATTR_TDLS_SUPPORT = 0x8b + NL80211_ATTR_TESTDATA = 0x45 + NL80211_ATTR_TID_CONFIG = 0x11d + NL80211_ATTR_TIMED_OUT = 0x41 + NL80211_ATTR_TIMEOUT = 0x110 + NL80211_ATTR_TIMEOUT_REASON = 0xf8 + NL80211_ATTR_TSID = 0xd2 + NL80211_ATTR_TWT_RESPONDER = 0x116 + NL80211_ATTR_TX_FRAME_TYPES = 0x63 + NL80211_ATTR_TX_HW_TIMESTAMP = 0x13f + NL80211_ATTR_TX_NO_CCK_RATE = 0x87 + NL80211_ATTR_TXQ_LIMIT = 0x10a + NL80211_ATTR_TXQ_MEMORY_LIMIT = 0x10b + NL80211_ATTR_TXQ_QUANTUM = 0x10c + NL80211_ATTR_TXQ_STATS = 0x109 + NL80211_ATTR_TX_RATES = 0x5a + NL80211_ATTR_UNSOL_BCAST_PROBE_RESP = 0x127 + NL80211_ATTR_UNSPEC = 0x0 + NL80211_ATTR_USE_MFP = 0x42 + NL80211_ATTR_USER_PRIO = 0xd3 + NL80211_ATTR_USER_REG_HINT_TYPE = 0x9a + NL80211_ATTR_USE_RRM = 0xd0 + NL80211_ATTR_VENDOR_DATA = 0xc5 + NL80211_ATTR_VENDOR_EVENTS = 0xc6 + NL80211_ATTR_VENDOR_ID = 0xc3 + NL80211_ATTR_VENDOR_SUBCMD = 0xc4 + NL80211_ATTR_VHT_CAPABILITY = 0x9d + NL80211_ATTR_VHT_CAPABILITY_MASK = 0xb0 + NL80211_ATTR_VLAN_ID = 0x11a + NL80211_ATTR_WANT_1X_4WAY_HS = 0x101 + NL80211_ATTR_WDEV = 0x99 + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_RX = 0x72 + NL80211_ATTR_WIPHY_ANTENNA_AVAIL_TX = 0x71 + NL80211_ATTR_WIPHY_ANTENNA_RX = 0x6a + NL80211_ATTR_WIPHY_ANTENNA_TX = 0x69 + NL80211_ATTR_WIPHY_BANDS = 0x16 + NL80211_ATTR_WIPHY_CHANNEL_TYPE = 0x27 + NL80211_ATTR_WIPHY = 0x1 + NL80211_ATTR_WIPHY_COVERAGE_CLASS = 0x59 + NL80211_ATTR_WIPHY_DYN_ACK = 0xd1 + NL80211_ATTR_WIPHY_EDMG_BW_CONFIG = 0x119 + NL80211_ATTR_WIPHY_EDMG_CHANNELS = 0x118 + NL80211_ATTR_WIPHY_FRAG_THRESHOLD = 0x3f + NL80211_ATTR_WIPHY_FREQ = 0x26 + NL80211_ATTR_WIPHY_FREQ_HINT = 0xc9 + NL80211_ATTR_WIPHY_FREQ_OFFSET = 0x122 + NL80211_ATTR_WIPHY_NAME = 0x2 + NL80211_ATTR_WIPHY_RETRY_LONG = 0x3e + NL80211_ATTR_WIPHY_RETRY_SHORT = 0x3d + NL80211_ATTR_WIPHY_RTS_THRESHOLD = 0x40 + NL80211_ATTR_WIPHY_SELF_MANAGED_REG = 0xd8 + NL80211_ATTR_WIPHY_TX_POWER_LEVEL = 0x62 + NL80211_ATTR_WIPHY_TX_POWER_SETTING = 0x61 + NL80211_ATTR_WIPHY_TXQ_PARAMS = 0x25 + NL80211_ATTR_WOWLAN_TRIGGERS = 0x75 + NL80211_ATTR_WOWLAN_TRIGGERS_SUPPORTED = 0x76 + NL80211_ATTR_WPA_VERSIONS = 0x4b + NL80211_AUTHTYPE_AUTOMATIC = 0x8 + NL80211_AUTHTYPE_FILS_PK = 0x7 + NL80211_AUTHTYPE_FILS_SK = 0x5 + NL80211_AUTHTYPE_FILS_SK_PFS = 0x6 + NL80211_AUTHTYPE_FT = 0x2 + NL80211_AUTHTYPE_MAX = 0x7 + NL80211_AUTHTYPE_NETWORK_EAP = 0x3 + NL80211_AUTHTYPE_OPEN_SYSTEM = 0x0 + NL80211_AUTHTYPE_SAE = 0x4 + NL80211_AUTHTYPE_SHARED_KEY = 0x1 + NL80211_BAND_2GHZ = 0x0 + NL80211_BAND_5GHZ = 0x1 + NL80211_BAND_60GHZ = 0x2 + NL80211_BAND_6GHZ = 0x3 + NL80211_BAND_ATTR_EDMG_BW_CONFIG = 0xb + NL80211_BAND_ATTR_EDMG_CHANNELS = 0xa + NL80211_BAND_ATTR_FREQS = 0x1 + NL80211_BAND_ATTR_HT_AMPDU_DENSITY = 0x6 + NL80211_BAND_ATTR_HT_AMPDU_FACTOR = 0x5 + NL80211_BAND_ATTR_HT_CAPA = 0x4 + NL80211_BAND_ATTR_HT_MCS_SET = 0x3 + NL80211_BAND_ATTR_IFTYPE_DATA = 0x9 + NL80211_BAND_ATTR_MAX = 0xb + NL80211_BAND_ATTR_RATES = 0x2 + NL80211_BAND_ATTR_VHT_CAPA = 0x8 + NL80211_BAND_ATTR_VHT_MCS_SET = 0x7 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MAC = 0x8 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_MCS_SET = 0xa + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY = 0x9 + NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PPE = 0xb + NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAPA = 0x6 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MAC = 0x2 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET = 0x4 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY = 0x3 + NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE = 0x5 + NL80211_BAND_IFTYPE_ATTR_IFTYPES = 0x1 + NL80211_BAND_IFTYPE_ATTR_MAX = 0xb + NL80211_BAND_IFTYPE_ATTR_VENDOR_ELEMS = 0x7 + NL80211_BAND_LC = 0x5 + NL80211_BAND_S1GHZ = 0x4 + NL80211_BITRATE_ATTR_2GHZ_SHORTPREAMBLE = 0x2 + NL80211_BITRATE_ATTR_MAX = 0x2 + NL80211_BITRATE_ATTR_RATE = 0x1 + NL80211_BSS_BEACON_IES = 0xb + NL80211_BSS_BEACON_INTERVAL = 0x4 + NL80211_BSS_BEACON_TSF = 0xd + NL80211_BSS_BSSID = 0x1 + NL80211_BSS_CAPABILITY = 0x5 + NL80211_BSS_CHAIN_SIGNAL = 0x13 + NL80211_BSS_CHAN_WIDTH_10 = 0x1 + NL80211_BSS_CHAN_WIDTH_1 = 0x3 + NL80211_BSS_CHAN_WIDTH_20 = 0x0 + NL80211_BSS_CHAN_WIDTH_2 = 0x4 + NL80211_BSS_CHAN_WIDTH_5 = 0x2 + NL80211_BSS_CHAN_WIDTH = 0xc + NL80211_BSS_FREQUENCY = 0x2 + NL80211_BSS_FREQUENCY_OFFSET = 0x14 + NL80211_BSS_INFORMATION_ELEMENTS = 0x6 + NL80211_BSS_LAST_SEEN_BOOTTIME = 0xf + NL80211_BSS_MAX = 0x16 + NL80211_BSS_MLD_ADDR = 0x16 + NL80211_BSS_MLO_LINK_ID = 0x15 + NL80211_BSS_PAD = 0x10 + NL80211_BSS_PARENT_BSSID = 0x12 + NL80211_BSS_PARENT_TSF = 0x11 + NL80211_BSS_PRESP_DATA = 0xe + NL80211_BSS_SEEN_MS_AGO = 0xa + NL80211_BSS_SELECT_ATTR_BAND_PREF = 0x2 + NL80211_BSS_SELECT_ATTR_MAX = 0x3 + NL80211_BSS_SELECT_ATTR_RSSI_ADJUST = 0x3 + NL80211_BSS_SELECT_ATTR_RSSI = 0x1 + NL80211_BSS_SIGNAL_MBM = 0x7 + NL80211_BSS_SIGNAL_UNSPEC = 0x8 + NL80211_BSS_STATUS_ASSOCIATED = 0x1 + NL80211_BSS_STATUS_AUTHENTICATED = 0x0 + NL80211_BSS_STATUS = 0x9 + NL80211_BSS_STATUS_IBSS_JOINED = 0x2 + NL80211_BSS_TSF = 0x3 + NL80211_CHAN_HT20 = 0x1 + NL80211_CHAN_HT40MINUS = 0x2 + NL80211_CHAN_HT40PLUS = 0x3 + NL80211_CHAN_NO_HT = 0x0 + NL80211_CHAN_WIDTH_10 = 0x7 + NL80211_CHAN_WIDTH_160 = 0x5 + NL80211_CHAN_WIDTH_16 = 0xc + NL80211_CHAN_WIDTH_1 = 0x8 + NL80211_CHAN_WIDTH_20 = 0x1 + NL80211_CHAN_WIDTH_20_NOHT = 0x0 + NL80211_CHAN_WIDTH_2 = 0x9 + NL80211_CHAN_WIDTH_320 = 0xd + NL80211_CHAN_WIDTH_40 = 0x2 + NL80211_CHAN_WIDTH_4 = 0xa + NL80211_CHAN_WIDTH_5 = 0x6 + NL80211_CHAN_WIDTH_80 = 0x3 + NL80211_CHAN_WIDTH_80P80 = 0x4 + NL80211_CHAN_WIDTH_8 = 0xb + NL80211_CMD_ABORT_SCAN = 0x72 + NL80211_CMD_ACTION = 0x3b + NL80211_CMD_ACTION_TX_STATUS = 0x3c + NL80211_CMD_ADD_LINK = 0x94 + NL80211_CMD_ADD_LINK_STA = 0x96 + NL80211_CMD_ADD_NAN_FUNCTION = 0x75 + NL80211_CMD_ADD_TX_TS = 0x69 + NL80211_CMD_ASSOC_COMEBACK = 0x93 + NL80211_CMD_ASSOCIATE = 0x26 + NL80211_CMD_AUTHENTICATE = 0x25 + NL80211_CMD_CANCEL_REMAIN_ON_CHANNEL = 0x38 + NL80211_CMD_CHANGE_NAN_CONFIG = 0x77 + NL80211_CMD_CHANNEL_SWITCH = 0x66 + NL80211_CMD_CH_SWITCH_NOTIFY = 0x58 + NL80211_CMD_CH_SWITCH_STARTED_NOTIFY = 0x6e + NL80211_CMD_COLOR_CHANGE_ABORTED = 0x90 + NL80211_CMD_COLOR_CHANGE_COMPLETED = 0x91 + NL80211_CMD_COLOR_CHANGE_REQUEST = 0x8e + NL80211_CMD_COLOR_CHANGE_STARTED = 0x8f + NL80211_CMD_CONNECT = 0x2e + NL80211_CMD_CONN_FAILED = 0x5b + NL80211_CMD_CONTROL_PORT_FRAME = 0x81 + NL80211_CMD_CONTROL_PORT_FRAME_TX_STATUS = 0x8b + NL80211_CMD_CRIT_PROTOCOL_START = 0x62 + NL80211_CMD_CRIT_PROTOCOL_STOP = 0x63 + NL80211_CMD_DEAUTHENTICATE = 0x27 + NL80211_CMD_DEL_BEACON = 0x10 + NL80211_CMD_DEL_INTERFACE = 0x8 + NL80211_CMD_DEL_KEY = 0xc + NL80211_CMD_DEL_MPATH = 0x18 + NL80211_CMD_DEL_NAN_FUNCTION = 0x76 + NL80211_CMD_DEL_PMK = 0x7c + NL80211_CMD_DEL_PMKSA = 0x35 + NL80211_CMD_DEL_STATION = 0x14 + NL80211_CMD_DEL_TX_TS = 0x6a + NL80211_CMD_DEL_WIPHY = 0x4 + NL80211_CMD_DISASSOCIATE = 0x28 + NL80211_CMD_DISCONNECT = 0x30 + NL80211_CMD_EXTERNAL_AUTH = 0x7f + NL80211_CMD_FLUSH_PMKSA = 0x36 + NL80211_CMD_FRAME = 0x3b + NL80211_CMD_FRAME_TX_STATUS = 0x3c + NL80211_CMD_FRAME_WAIT_CANCEL = 0x43 + NL80211_CMD_FT_EVENT = 0x61 + NL80211_CMD_GET_BEACON = 0xd + NL80211_CMD_GET_COALESCE = 0x64 + NL80211_CMD_GET_FTM_RESPONDER_STATS = 0x82 + NL80211_CMD_GET_INTERFACE = 0x5 + NL80211_CMD_GET_KEY = 0x9 + NL80211_CMD_GET_MESH_CONFIG = 0x1c + NL80211_CMD_GET_MESH_PARAMS = 0x1c + NL80211_CMD_GET_MPATH = 0x15 + NL80211_CMD_GET_MPP = 0x6b + NL80211_CMD_GET_POWER_SAVE = 0x3e + NL80211_CMD_GET_PROTOCOL_FEATURES = 0x5f + NL80211_CMD_GET_REG = 0x1f + NL80211_CMD_GET_SCAN = 0x20 + NL80211_CMD_GET_STATION = 0x11 + NL80211_CMD_GET_SURVEY = 0x32 + NL80211_CMD_GET_WIPHY = 0x1 + NL80211_CMD_GET_WOWLAN = 0x49 + NL80211_CMD_JOIN_IBSS = 0x2b + NL80211_CMD_JOIN_MESH = 0x44 + NL80211_CMD_JOIN_OCB = 0x6c + NL80211_CMD_LEAVE_IBSS = 0x2c + NL80211_CMD_LEAVE_MESH = 0x45 + NL80211_CMD_LEAVE_OCB = 0x6d + NL80211_CMD_MAX = 0x98 + NL80211_CMD_MICHAEL_MIC_FAILURE = 0x29 + NL80211_CMD_MODIFY_LINK_STA = 0x97 + NL80211_CMD_NAN_MATCH = 0x78 + NL80211_CMD_NEW_BEACON = 0xf + NL80211_CMD_NEW_INTERFACE = 0x7 + NL80211_CMD_NEW_KEY = 0xb + NL80211_CMD_NEW_MPATH = 0x17 + NL80211_CMD_NEW_PEER_CANDIDATE = 0x48 + NL80211_CMD_NEW_SCAN_RESULTS = 0x22 + NL80211_CMD_NEW_STATION = 0x13 + NL80211_CMD_NEW_SURVEY_RESULTS = 0x33 + NL80211_CMD_NEW_WIPHY = 0x3 + NL80211_CMD_NOTIFY_CQM = 0x40 + NL80211_CMD_NOTIFY_RADAR = 0x86 + NL80211_CMD_OBSS_COLOR_COLLISION = 0x8d + NL80211_CMD_PEER_MEASUREMENT_COMPLETE = 0x85 + NL80211_CMD_PEER_MEASUREMENT_RESULT = 0x84 + NL80211_CMD_PEER_MEASUREMENT_START = 0x83 + NL80211_CMD_PMKSA_CANDIDATE = 0x50 + NL80211_CMD_PORT_AUTHORIZED = 0x7d + NL80211_CMD_PROBE_CLIENT = 0x54 + NL80211_CMD_PROBE_MESH_LINK = 0x88 + NL80211_CMD_RADAR_DETECT = 0x5e + NL80211_CMD_REG_BEACON_HINT = 0x2a + NL80211_CMD_REG_CHANGE = 0x24 + NL80211_CMD_REGISTER_ACTION = 0x3a + NL80211_CMD_REGISTER_BEACONS = 0x55 + NL80211_CMD_REGISTER_FRAME = 0x3a + NL80211_CMD_RELOAD_REGDB = 0x7e + NL80211_CMD_REMAIN_ON_CHANNEL = 0x37 + NL80211_CMD_REMOVE_LINK = 0x95 + NL80211_CMD_REMOVE_LINK_STA = 0x98 + NL80211_CMD_REQ_SET_REG = 0x1b + NL80211_CMD_ROAM = 0x2f + NL80211_CMD_SCAN_ABORTED = 0x23 + NL80211_CMD_SCHED_SCAN_RESULTS = 0x4d + NL80211_CMD_SCHED_SCAN_STOPPED = 0x4e + NL80211_CMD_SET_BEACON = 0xe + NL80211_CMD_SET_BSS = 0x19 + NL80211_CMD_SET_CHANNEL = 0x41 + NL80211_CMD_SET_COALESCE = 0x65 + NL80211_CMD_SET_CQM = 0x3f + NL80211_CMD_SET_FILS_AAD = 0x92 + NL80211_CMD_SET_INTERFACE = 0x6 + NL80211_CMD_SET_KEY = 0xa + NL80211_CMD_SET_MAC_ACL = 0x5d + NL80211_CMD_SET_MCAST_RATE = 0x5c + NL80211_CMD_SET_MESH_CONFIG = 0x1d + NL80211_CMD_SET_MESH_PARAMS = 0x1d + NL80211_CMD_SET_MGMT_EXTRA_IE = 0x1e + NL80211_CMD_SET_MPATH = 0x16 + NL80211_CMD_SET_MULTICAST_TO_UNICAST = 0x79 + NL80211_CMD_SET_NOACK_MAP = 0x57 + NL80211_CMD_SET_PMK = 0x7b + NL80211_CMD_SET_PMKSA = 0x34 + NL80211_CMD_SET_POWER_SAVE = 0x3d + NL80211_CMD_SET_QOS_MAP = 0x68 + NL80211_CMD_SET_REG = 0x1a + NL80211_CMD_SET_REKEY_OFFLOAD = 0x4f + NL80211_CMD_SET_SAR_SPECS = 0x8c + NL80211_CMD_SET_STATION = 0x12 + NL80211_CMD_SET_TID_CONFIG = 0x89 + NL80211_CMD_SET_TX_BITRATE_MASK = 0x39 + NL80211_CMD_SET_WDS_PEER = 0x42 + NL80211_CMD_SET_WIPHY = 0x2 + NL80211_CMD_SET_WIPHY_NETNS = 0x31 + NL80211_CMD_SET_WOWLAN = 0x4a + NL80211_CMD_STA_OPMODE_CHANGED = 0x80 + NL80211_CMD_START_AP = 0xf + NL80211_CMD_START_NAN = 0x73 + NL80211_CMD_START_P2P_DEVICE = 0x59 + NL80211_CMD_START_SCHED_SCAN = 0x4b + NL80211_CMD_STOP_AP = 0x10 + NL80211_CMD_STOP_NAN = 0x74 + NL80211_CMD_STOP_P2P_DEVICE = 0x5a + NL80211_CMD_STOP_SCHED_SCAN = 0x4c + NL80211_CMD_TDLS_CANCEL_CHANNEL_SWITCH = 0x70 + NL80211_CMD_TDLS_CHANNEL_SWITCH = 0x6f + NL80211_CMD_TDLS_MGMT = 0x52 + NL80211_CMD_TDLS_OPER = 0x51 + NL80211_CMD_TESTMODE = 0x2d + NL80211_CMD_TRIGGER_SCAN = 0x21 + NL80211_CMD_UNEXPECTED_4ADDR_FRAME = 0x56 + NL80211_CMD_UNEXPECTED_FRAME = 0x53 + NL80211_CMD_UNPROT_BEACON = 0x8a + NL80211_CMD_UNPROT_DEAUTHENTICATE = 0x46 + NL80211_CMD_UNPROT_DISASSOCIATE = 0x47 + NL80211_CMD_UNSPEC = 0x0 + NL80211_CMD_UPDATE_CONNECT_PARAMS = 0x7a + NL80211_CMD_UPDATE_FT_IES = 0x60 + NL80211_CMD_UPDATE_OWE_INFO = 0x87 + NL80211_CMD_VENDOR = 0x67 + NL80211_CMD_WIPHY_REG_CHANGE = 0x71 + NL80211_COALESCE_CONDITION_MATCH = 0x0 + NL80211_COALESCE_CONDITION_NO_MATCH = 0x1 + NL80211_CONN_FAIL_BLOCKED_CLIENT = 0x1 + NL80211_CONN_FAIL_MAX_CLIENTS = 0x0 + NL80211_CQM_RSSI_BEACON_LOSS_EVENT = 0x2 + NL80211_CQM_RSSI_THRESHOLD_EVENT_HIGH = 0x1 + NL80211_CQM_RSSI_THRESHOLD_EVENT_LOW = 0x0 + NL80211_CQM_TXE_MAX_INTVL = 0x708 + NL80211_CRIT_PROTO_APIPA = 0x3 + NL80211_CRIT_PROTO_DHCP = 0x1 + NL80211_CRIT_PROTO_EAPOL = 0x2 + NL80211_CRIT_PROTO_MAX_DURATION = 0x1388 + NL80211_CRIT_PROTO_UNSPEC = 0x0 + NL80211_DFS_AVAILABLE = 0x2 + NL80211_DFS_ETSI = 0x2 + NL80211_DFS_FCC = 0x1 + NL80211_DFS_JP = 0x3 + NL80211_DFS_UNAVAILABLE = 0x1 + NL80211_DFS_UNSET = 0x0 + NL80211_DFS_USABLE = 0x0 + NL80211_EDMG_BW_CONFIG_MAX = 0xf + NL80211_EDMG_BW_CONFIG_MIN = 0x4 + NL80211_EDMG_CHANNELS_MAX = 0x3c + NL80211_EDMG_CHANNELS_MIN = 0x1 + NL80211_EHT_MAX_CAPABILITY_LEN = 0x33 + NL80211_EHT_MIN_CAPABILITY_LEN = 0xd + NL80211_EXTERNAL_AUTH_ABORT = 0x1 + NL80211_EXTERNAL_AUTH_START = 0x0 + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_AP_PSK = 0x32 + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_1X = 0x10 + NL80211_EXT_FEATURE_4WAY_HANDSHAKE_STA_PSK = 0xf + NL80211_EXT_FEATURE_ACCEPT_BCAST_PROBE_RESP = 0x12 + NL80211_EXT_FEATURE_ACK_SIGNAL_SUPPORT = 0x1b + NL80211_EXT_FEATURE_AIRTIME_FAIRNESS = 0x21 + NL80211_EXT_FEATURE_AP_PMKSA_CACHING = 0x22 + NL80211_EXT_FEATURE_AQL = 0x28 + NL80211_EXT_FEATURE_BEACON_PROTECTION_CLIENT = 0x2e + NL80211_EXT_FEATURE_BEACON_PROTECTION = 0x29 + NL80211_EXT_FEATURE_BEACON_RATE_HE = 0x36 + NL80211_EXT_FEATURE_BEACON_RATE_HT = 0x7 + NL80211_EXT_FEATURE_BEACON_RATE_LEGACY = 0x6 + NL80211_EXT_FEATURE_BEACON_RATE_VHT = 0x8 + NL80211_EXT_FEATURE_BSS_COLOR = 0x3a + NL80211_EXT_FEATURE_BSS_PARENT_TSF = 0x4 + NL80211_EXT_FEATURE_CAN_REPLACE_PTK0 = 0x1f + NL80211_EXT_FEATURE_CONTROL_PORT_NO_PREAUTH = 0x2a + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211 = 0x1a + NL80211_EXT_FEATURE_CONTROL_PORT_OVER_NL80211_TX_STATUS = 0x30 + NL80211_EXT_FEATURE_CQM_RSSI_LIST = 0xd + NL80211_EXT_FEATURE_DATA_ACK_SIGNAL_SUPPORT = 0x1b + NL80211_EXT_FEATURE_DEL_IBSS_STA = 0x2c + NL80211_EXT_FEATURE_DFS_OFFLOAD = 0x19 + NL80211_EXT_FEATURE_ENABLE_FTM_RESPONDER = 0x20 + NL80211_EXT_FEATURE_EXT_KEY_ID = 0x24 + NL80211_EXT_FEATURE_FILS_CRYPTO_OFFLOAD = 0x3b + NL80211_EXT_FEATURE_FILS_DISCOVERY = 0x34 + NL80211_EXT_FEATURE_FILS_MAX_CHANNEL_TIME = 0x11 + NL80211_EXT_FEATURE_FILS_SK_OFFLOAD = 0xe + NL80211_EXT_FEATURE_FILS_STA = 0x9 + NL80211_EXT_FEATURE_HIGH_ACCURACY_SCAN = 0x18 + NL80211_EXT_FEATURE_LOW_POWER_SCAN = 0x17 + NL80211_EXT_FEATURE_LOW_SPAN_SCAN = 0x16 + NL80211_EXT_FEATURE_MFP_OPTIONAL = 0x15 + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA = 0xa + NL80211_EXT_FEATURE_MGMT_TX_RANDOM_TA_CONNECTED = 0xb + NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS = 0x2d + NL80211_EXT_FEATURE_MU_MIMO_AIR_SNIFFER = 0x2 + NL80211_EXT_FEATURE_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x14 + NL80211_EXT_FEATURE_OCE_PROBE_REQ_HIGH_TX_RATE = 0x13 + NL80211_EXT_FEATURE_OPERATING_CHANNEL_VALIDATION = 0x31 + NL80211_EXT_FEATURE_POWERED_ADDR_CHANGE = 0x3d + NL80211_EXT_FEATURE_PROTECTED_TWT = 0x2b + NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE = 0x39 + NL80211_EXT_FEATURE_RADAR_BACKGROUND = 0x3c + NL80211_EXT_FEATURE_RRM = 0x1 + NL80211_EXT_FEATURE_SAE_OFFLOAD_AP = 0x33 + NL80211_EXT_FEATURE_SAE_OFFLOAD = 0x26 + NL80211_EXT_FEATURE_SCAN_FREQ_KHZ = 0x2f + NL80211_EXT_FEATURE_SCAN_MIN_PREQ_CONTENT = 0x1e + NL80211_EXT_FEATURE_SCAN_RANDOM_SN = 0x1d + NL80211_EXT_FEATURE_SCAN_START_TIME = 0x3 + NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD = 0x23 + NL80211_EXT_FEATURE_SCHED_SCAN_RELATIVE_RSSI = 0xc + NL80211_EXT_FEATURE_SECURE_LTF = 0x37 + NL80211_EXT_FEATURE_SECURE_RTT = 0x38 + NL80211_EXT_FEATURE_SET_SCAN_DWELL = 0x5 + NL80211_EXT_FEATURE_STA_TX_PWR = 0x25 + NL80211_EXT_FEATURE_TXQS = 0x1c + NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP = 0x35 + NL80211_EXT_FEATURE_VHT_IBSS = 0x0 + NL80211_EXT_FEATURE_VLAN_OFFLOAD = 0x27 + NL80211_FEATURE_ACKTO_ESTIMATION = 0x800000 + NL80211_FEATURE_ACTIVE_MONITOR = 0x20000 + NL80211_FEATURE_ADVERTISE_CHAN_LIMITS = 0x4000 + NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE = 0x40000 + NL80211_FEATURE_AP_SCAN = 0x100 + NL80211_FEATURE_CELL_BASE_REG_HINTS = 0x8 + NL80211_FEATURE_DS_PARAM_SET_IE_IN_PROBES = 0x80000 + NL80211_FEATURE_DYNAMIC_SMPS = 0x2000000 + NL80211_FEATURE_FULL_AP_CLIENT_STATE = 0x8000 + NL80211_FEATURE_HT_IBSS = 0x2 + NL80211_FEATURE_INACTIVITY_TIMER = 0x4 + NL80211_FEATURE_LOW_PRIORITY_SCAN = 0x40 + NL80211_FEATURE_MAC_ON_CREATE = 0x8000000 + NL80211_FEATURE_ND_RANDOM_MAC_ADDR = 0x80000000 + NL80211_FEATURE_NEED_OBSS_SCAN = 0x400 + NL80211_FEATURE_P2P_DEVICE_NEEDS_CHANNEL = 0x10 + NL80211_FEATURE_P2P_GO_CTWIN = 0x800 + NL80211_FEATURE_P2P_GO_OPPPS = 0x1000 + NL80211_FEATURE_QUIET = 0x200000 + NL80211_FEATURE_SAE = 0x20 + NL80211_FEATURE_SCAN_FLUSH = 0x80 + NL80211_FEATURE_SCAN_RANDOM_MAC_ADDR = 0x20000000 + NL80211_FEATURE_SCHED_SCAN_RANDOM_MAC_ADDR = 0x40000000 + NL80211_FEATURE_SK_TX_STATUS = 0x1 + NL80211_FEATURE_STATIC_SMPS = 0x1000000 + NL80211_FEATURE_SUPPORTS_WMM_ADMISSION = 0x4000000 + NL80211_FEATURE_TDLS_CHANNEL_SWITCH = 0x10000000 + NL80211_FEATURE_TX_POWER_INSERTION = 0x400000 + NL80211_FEATURE_USERSPACE_MPM = 0x10000 + NL80211_FEATURE_VIF_TXPOWER = 0x200 + NL80211_FEATURE_WFA_TPC_IE_IN_PROBES = 0x100000 + NL80211_FILS_DISCOVERY_ATTR_INT_MAX = 0x2 + NL80211_FILS_DISCOVERY_ATTR_INT_MIN = 0x1 + NL80211_FILS_DISCOVERY_ATTR_MAX = 0x3 + NL80211_FILS_DISCOVERY_ATTR_TMPL = 0x3 + NL80211_FILS_DISCOVERY_TMPL_MIN_LEN = 0x2a + NL80211_FREQUENCY_ATTR_16MHZ = 0x19 + NL80211_FREQUENCY_ATTR_1MHZ = 0x15 + NL80211_FREQUENCY_ATTR_2MHZ = 0x16 + NL80211_FREQUENCY_ATTR_4MHZ = 0x17 + NL80211_FREQUENCY_ATTR_8MHZ = 0x18 + NL80211_FREQUENCY_ATTR_DFS_CAC_TIME = 0xd + NL80211_FREQUENCY_ATTR_DFS_STATE = 0x7 + NL80211_FREQUENCY_ATTR_DFS_TIME = 0x8 + NL80211_FREQUENCY_ATTR_DISABLED = 0x2 + NL80211_FREQUENCY_ATTR_FREQ = 0x1 + NL80211_FREQUENCY_ATTR_GO_CONCURRENT = 0xf + NL80211_FREQUENCY_ATTR_INDOOR_ONLY = 0xe + NL80211_FREQUENCY_ATTR_IR_CONCURRENT = 0xf + NL80211_FREQUENCY_ATTR_MAX = 0x1b + NL80211_FREQUENCY_ATTR_MAX_TX_POWER = 0x6 + NL80211_FREQUENCY_ATTR_NO_10MHZ = 0x11 + NL80211_FREQUENCY_ATTR_NO_160MHZ = 0xc + NL80211_FREQUENCY_ATTR_NO_20MHZ = 0x10 + NL80211_FREQUENCY_ATTR_NO_320MHZ = 0x1a + NL80211_FREQUENCY_ATTR_NO_80MHZ = 0xb + NL80211_FREQUENCY_ATTR_NO_EHT = 0x1b + NL80211_FREQUENCY_ATTR_NO_HE = 0x13 + NL80211_FREQUENCY_ATTR_NO_HT40_MINUS = 0x9 + NL80211_FREQUENCY_ATTR_NO_HT40_PLUS = 0xa + NL80211_FREQUENCY_ATTR_NO_IBSS = 0x3 + NL80211_FREQUENCY_ATTR_NO_IR = 0x3 + NL80211_FREQUENCY_ATTR_OFFSET = 0x14 + NL80211_FREQUENCY_ATTR_PASSIVE_SCAN = 0x3 + NL80211_FREQUENCY_ATTR_RADAR = 0x5 + NL80211_FREQUENCY_ATTR_WMM = 0x12 + NL80211_FTM_RESP_ATTR_CIVICLOC = 0x3 + NL80211_FTM_RESP_ATTR_ENABLED = 0x1 + NL80211_FTM_RESP_ATTR_LCI = 0x2 + NL80211_FTM_RESP_ATTR_MAX = 0x3 + NL80211_FTM_STATS_ASAP_NUM = 0x4 + NL80211_FTM_STATS_FAILED_NUM = 0x3 + NL80211_FTM_STATS_MAX = 0xa + NL80211_FTM_STATS_NON_ASAP_NUM = 0x5 + NL80211_FTM_STATS_OUT_OF_WINDOW_TRIGGERS_NUM = 0x9 + NL80211_FTM_STATS_PAD = 0xa + NL80211_FTM_STATS_PARTIAL_NUM = 0x2 + NL80211_FTM_STATS_RESCHEDULE_REQUESTS_NUM = 0x8 + NL80211_FTM_STATS_SUCCESS_NUM = 0x1 + NL80211_FTM_STATS_TOTAL_DURATION_MSEC = 0x6 + NL80211_FTM_STATS_UNKNOWN_TRIGGERS_NUM = 0x7 + NL80211_GENL_NAME = "nl80211" + NL80211_HE_BSS_COLOR_ATTR_COLOR = 0x1 + NL80211_HE_BSS_COLOR_ATTR_DISABLED = 0x2 + NL80211_HE_BSS_COLOR_ATTR_MAX = 0x3 + NL80211_HE_BSS_COLOR_ATTR_PARTIAL = 0x3 + NL80211_HE_MAX_CAPABILITY_LEN = 0x36 + NL80211_HE_MIN_CAPABILITY_LEN = 0x10 + NL80211_HE_NSS_MAX = 0x8 + NL80211_HE_OBSS_PD_ATTR_BSS_COLOR_BITMAP = 0x4 + NL80211_HE_OBSS_PD_ATTR_MAX = 0x6 + NL80211_HE_OBSS_PD_ATTR_MAX_OFFSET = 0x2 + NL80211_HE_OBSS_PD_ATTR_MIN_OFFSET = 0x1 + NL80211_HE_OBSS_PD_ATTR_NON_SRG_MAX_OFFSET = 0x3 + NL80211_HE_OBSS_PD_ATTR_PARTIAL_BSSID_BITMAP = 0x5 + NL80211_HE_OBSS_PD_ATTR_SR_CTRL = 0x6 + NL80211_HIDDEN_SSID_NOT_IN_USE = 0x0 + NL80211_HIDDEN_SSID_ZERO_CONTENTS = 0x2 + NL80211_HIDDEN_SSID_ZERO_LEN = 0x1 + NL80211_HT_CAPABILITY_LEN = 0x1a + NL80211_IFACE_COMB_BI_MIN_GCD = 0x7 + NL80211_IFACE_COMB_LIMITS = 0x1 + NL80211_IFACE_COMB_MAXNUM = 0x2 + NL80211_IFACE_COMB_NUM_CHANNELS = 0x4 + NL80211_IFACE_COMB_RADAR_DETECT_REGIONS = 0x6 + NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS = 0x5 + NL80211_IFACE_COMB_STA_AP_BI_MATCH = 0x3 + NL80211_IFACE_COMB_UNSPEC = 0x0 + NL80211_IFACE_LIMIT_MAX = 0x1 + NL80211_IFACE_LIMIT_TYPES = 0x2 + NL80211_IFACE_LIMIT_UNSPEC = 0x0 + NL80211_IFTYPE_ADHOC = 0x1 + NL80211_IFTYPE_AKM_ATTR_IFTYPES = 0x1 + NL80211_IFTYPE_AKM_ATTR_MAX = 0x2 + NL80211_IFTYPE_AKM_ATTR_SUITES = 0x2 + NL80211_IFTYPE_AP = 0x3 + NL80211_IFTYPE_AP_VLAN = 0x4 + NL80211_IFTYPE_MAX = 0xc + NL80211_IFTYPE_MESH_POINT = 0x7 + NL80211_IFTYPE_MONITOR = 0x6 + NL80211_IFTYPE_NAN = 0xc + NL80211_IFTYPE_OCB = 0xb + NL80211_IFTYPE_P2P_CLIENT = 0x8 + NL80211_IFTYPE_P2P_DEVICE = 0xa + NL80211_IFTYPE_P2P_GO = 0x9 + NL80211_IFTYPE_STATION = 0x2 + NL80211_IFTYPE_UNSPECIFIED = 0x0 + NL80211_IFTYPE_WDS = 0x5 + NL80211_KCK_EXT_LEN = 0x18 + NL80211_KCK_LEN = 0x10 + NL80211_KEK_EXT_LEN = 0x20 + NL80211_KEK_LEN = 0x10 + NL80211_KEY_CIPHER = 0x3 + NL80211_KEY_DATA = 0x1 + NL80211_KEY_DEFAULT_BEACON = 0xa + NL80211_KEY_DEFAULT = 0x5 + NL80211_KEY_DEFAULT_MGMT = 0x6 + NL80211_KEY_DEFAULT_TYPE_MULTICAST = 0x2 + NL80211_KEY_DEFAULT_TYPES = 0x8 + NL80211_KEY_DEFAULT_TYPE_UNICAST = 0x1 + NL80211_KEY_IDX = 0x2 + NL80211_KEY_MAX = 0xa + NL80211_KEY_MODE = 0x9 + NL80211_KEY_NO_TX = 0x1 + NL80211_KEY_RX_TX = 0x0 + NL80211_KEY_SEQ = 0x4 + NL80211_KEY_SET_TX = 0x2 + NL80211_KEY_TYPE = 0x7 + NL80211_KEYTYPE_GROUP = 0x0 + NL80211_KEYTYPE_PAIRWISE = 0x1 + NL80211_KEYTYPE_PEERKEY = 0x2 + NL80211_MAX_NR_AKM_SUITES = 0x2 + NL80211_MAX_NR_CIPHER_SUITES = 0x5 + NL80211_MAX_SUPP_HT_RATES = 0x4d + NL80211_MAX_SUPP_RATES = 0x20 + NL80211_MAX_SUPP_REG_RULES = 0x80 + NL80211_MBSSID_CONFIG_ATTR_EMA = 0x5 + NL80211_MBSSID_CONFIG_ATTR_INDEX = 0x3 + NL80211_MBSSID_CONFIG_ATTR_MAX = 0x5 + NL80211_MBSSID_CONFIG_ATTR_MAX_EMA_PROFILE_PERIODICITY = 0x2 + NL80211_MBSSID_CONFIG_ATTR_MAX_INTERFACES = 0x1 + NL80211_MBSSID_CONFIG_ATTR_TX_IFINDEX = 0x4 + NL80211_MESHCONF_ATTR_MAX = 0x1f + NL80211_MESHCONF_AUTO_OPEN_PLINKS = 0x7 + NL80211_MESHCONF_AWAKE_WINDOW = 0x1b + NL80211_MESHCONF_CONFIRM_TIMEOUT = 0x2 + NL80211_MESHCONF_CONNECTED_TO_AS = 0x1f + NL80211_MESHCONF_CONNECTED_TO_GATE = 0x1d + NL80211_MESHCONF_ELEMENT_TTL = 0xf + NL80211_MESHCONF_FORWARDING = 0x13 + NL80211_MESHCONF_GATE_ANNOUNCEMENTS = 0x11 + NL80211_MESHCONF_HOLDING_TIMEOUT = 0x3 + NL80211_MESHCONF_HT_OPMODE = 0x16 + NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT = 0xb + NL80211_MESHCONF_HWMP_CONFIRMATION_INTERVAL = 0x19 + NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES = 0x8 + NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME = 0xd + NL80211_MESHCONF_HWMP_PATH_TO_ROOT_TIMEOUT = 0x17 + NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL = 0x12 + NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL = 0xc + NL80211_MESHCONF_HWMP_RANN_INTERVAL = 0x10 + NL80211_MESHCONF_HWMP_ROOT_INTERVAL = 0x18 + NL80211_MESHCONF_HWMP_ROOTMODE = 0xe + NL80211_MESHCONF_MAX_PEER_LINKS = 0x4 + NL80211_MESHCONF_MAX_RETRIES = 0x5 + NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT = 0xa + NL80211_MESHCONF_NOLEARN = 0x1e + NL80211_MESHCONF_PATH_REFRESH_TIME = 0x9 + NL80211_MESHCONF_PLINK_TIMEOUT = 0x1c + NL80211_MESHCONF_POWER_MODE = 0x1a + NL80211_MESHCONF_RETRY_TIMEOUT = 0x1 + NL80211_MESHCONF_RSSI_THRESHOLD = 0x14 + NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR = 0x15 + NL80211_MESHCONF_TTL = 0x6 + NL80211_MESH_POWER_ACTIVE = 0x1 + NL80211_MESH_POWER_DEEP_SLEEP = 0x3 + NL80211_MESH_POWER_LIGHT_SLEEP = 0x2 + NL80211_MESH_POWER_MAX = 0x3 + NL80211_MESH_POWER_UNKNOWN = 0x0 + NL80211_MESH_SETUP_ATTR_MAX = 0x8 + NL80211_MESH_SETUP_AUTH_PROTOCOL = 0x8 + NL80211_MESH_SETUP_ENABLE_VENDOR_METRIC = 0x2 + NL80211_MESH_SETUP_ENABLE_VENDOR_PATH_SEL = 0x1 + NL80211_MESH_SETUP_ENABLE_VENDOR_SYNC = 0x6 + NL80211_MESH_SETUP_IE = 0x3 + NL80211_MESH_SETUP_USERSPACE_AMPE = 0x5 + NL80211_MESH_SETUP_USERSPACE_AUTH = 0x4 + NL80211_MESH_SETUP_USERSPACE_MPM = 0x7 + NL80211_MESH_SETUP_VENDOR_PATH_SEL_IE = 0x3 + NL80211_MFP_NO = 0x0 + NL80211_MFP_OPTIONAL = 0x2 + NL80211_MFP_REQUIRED = 0x1 + NL80211_MIN_REMAIN_ON_CHANNEL_TIME = 0xa + NL80211_MNTR_FLAG_ACTIVE = 0x6 + NL80211_MNTR_FLAG_CONTROL = 0x3 + NL80211_MNTR_FLAG_COOK_FRAMES = 0x5 + NL80211_MNTR_FLAG_FCSFAIL = 0x1 + NL80211_MNTR_FLAG_MAX = 0x6 + NL80211_MNTR_FLAG_OTHER_BSS = 0x4 + NL80211_MNTR_FLAG_PLCPFAIL = 0x2 + NL80211_MPATH_FLAG_ACTIVE = 0x1 + NL80211_MPATH_FLAG_FIXED = 0x8 + NL80211_MPATH_FLAG_RESOLVED = 0x10 + NL80211_MPATH_FLAG_RESOLVING = 0x2 + NL80211_MPATH_FLAG_SN_VALID = 0x4 + NL80211_MPATH_INFO_DISCOVERY_RETRIES = 0x7 + NL80211_MPATH_INFO_DISCOVERY_TIMEOUT = 0x6 + NL80211_MPATH_INFO_EXPTIME = 0x4 + NL80211_MPATH_INFO_FLAGS = 0x5 + NL80211_MPATH_INFO_FRAME_QLEN = 0x1 + NL80211_MPATH_INFO_HOP_COUNT = 0x8 + NL80211_MPATH_INFO_MAX = 0x9 + NL80211_MPATH_INFO_METRIC = 0x3 + NL80211_MPATH_INFO_PATH_CHANGE = 0x9 + NL80211_MPATH_INFO_SN = 0x2 + NL80211_MULTICAST_GROUP_CONFIG = "config" + NL80211_MULTICAST_GROUP_MLME = "mlme" + NL80211_MULTICAST_GROUP_NAN = "nan" + NL80211_MULTICAST_GROUP_REG = "regulatory" + NL80211_MULTICAST_GROUP_SCAN = "scan" + NL80211_MULTICAST_GROUP_TESTMODE = "testmode" + NL80211_MULTICAST_GROUP_VENDOR = "vendor" + NL80211_NAN_FUNC_ATTR_MAX = 0x10 + NL80211_NAN_FUNC_CLOSE_RANGE = 0x9 + NL80211_NAN_FUNC_FOLLOW_UP = 0x2 + NL80211_NAN_FUNC_FOLLOW_UP_DEST = 0x8 + NL80211_NAN_FUNC_FOLLOW_UP_ID = 0x6 + NL80211_NAN_FUNC_FOLLOW_UP_REQ_ID = 0x7 + NL80211_NAN_FUNC_INSTANCE_ID = 0xf + NL80211_NAN_FUNC_MAX_TYPE = 0x2 + NL80211_NAN_FUNC_PUBLISH_BCAST = 0x4 + NL80211_NAN_FUNC_PUBLISH = 0x0 + NL80211_NAN_FUNC_PUBLISH_TYPE = 0x3 + NL80211_NAN_FUNC_RX_MATCH_FILTER = 0xd + NL80211_NAN_FUNC_SERVICE_ID = 0x2 + NL80211_NAN_FUNC_SERVICE_ID_LEN = 0x6 + NL80211_NAN_FUNC_SERVICE_INFO = 0xb + NL80211_NAN_FUNC_SERVICE_SPEC_INFO_MAX_LEN = 0xff + NL80211_NAN_FUNC_SRF = 0xc + NL80211_NAN_FUNC_SRF_MAX_LEN = 0xff + NL80211_NAN_FUNC_SUBSCRIBE_ACTIVE = 0x5 + NL80211_NAN_FUNC_SUBSCRIBE = 0x1 + NL80211_NAN_FUNC_TERM_REASON = 0x10 + NL80211_NAN_FUNC_TERM_REASON_ERROR = 0x2 + NL80211_NAN_FUNC_TERM_REASON_TTL_EXPIRED = 0x1 + NL80211_NAN_FUNC_TERM_REASON_USER_REQUEST = 0x0 + NL80211_NAN_FUNC_TTL = 0xa + NL80211_NAN_FUNC_TX_MATCH_FILTER = 0xe + NL80211_NAN_FUNC_TYPE = 0x1 + NL80211_NAN_MATCH_ATTR_MAX = 0x2 + NL80211_NAN_MATCH_FUNC_LOCAL = 0x1 + NL80211_NAN_MATCH_FUNC_PEER = 0x2 + NL80211_NAN_SOLICITED_PUBLISH = 0x1 + NL80211_NAN_SRF_ATTR_MAX = 0x4 + NL80211_NAN_SRF_BF = 0x2 + NL80211_NAN_SRF_BF_IDX = 0x3 + NL80211_NAN_SRF_INCLUDE = 0x1 + NL80211_NAN_SRF_MAC_ADDRS = 0x4 + NL80211_NAN_UNSOLICITED_PUBLISH = 0x2 + NL80211_NUM_ACS = 0x4 + NL80211_P2P_PS_SUPPORTED = 0x1 + NL80211_P2P_PS_UNSUPPORTED = 0x0 + NL80211_PKTPAT_MASK = 0x1 + NL80211_PKTPAT_OFFSET = 0x3 + NL80211_PKTPAT_PATTERN = 0x2 + NL80211_PLINK_ACTION_BLOCK = 0x2 + NL80211_PLINK_ACTION_NO_ACTION = 0x0 + NL80211_PLINK_ACTION_OPEN = 0x1 + NL80211_PLINK_BLOCKED = 0x6 + NL80211_PLINK_CNF_RCVD = 0x3 + NL80211_PLINK_ESTAB = 0x4 + NL80211_PLINK_HOLDING = 0x5 + NL80211_PLINK_LISTEN = 0x0 + NL80211_PLINK_OPN_RCVD = 0x2 + NL80211_PLINK_OPN_SNT = 0x1 + NL80211_PMKSA_CANDIDATE_BSSID = 0x2 + NL80211_PMKSA_CANDIDATE_INDEX = 0x1 + NL80211_PMKSA_CANDIDATE_PREAUTH = 0x3 + NL80211_PMSR_ATTR_MAX = 0x5 + NL80211_PMSR_ATTR_MAX_PEERS = 0x1 + NL80211_PMSR_ATTR_PEERS = 0x5 + NL80211_PMSR_ATTR_RANDOMIZE_MAC_ADDR = 0x3 + NL80211_PMSR_ATTR_REPORT_AP_TSF = 0x2 + NL80211_PMSR_ATTR_TYPE_CAPA = 0x4 + NL80211_PMSR_FTM_CAPA_ATTR_ASAP = 0x1 + NL80211_PMSR_FTM_CAPA_ATTR_BANDWIDTHS = 0x6 + NL80211_PMSR_FTM_CAPA_ATTR_MAX_BURSTS_EXPONENT = 0x7 + NL80211_PMSR_FTM_CAPA_ATTR_MAX = 0xa + NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST = 0x8 + NL80211_PMSR_FTM_CAPA_ATTR_NON_ASAP = 0x2 + NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED = 0xa + NL80211_PMSR_FTM_CAPA_ATTR_PREAMBLES = 0x5 + NL80211_PMSR_FTM_CAPA_ATTR_REQ_CIVICLOC = 0x4 + NL80211_PMSR_FTM_CAPA_ATTR_REQ_LCI = 0x3 + NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED = 0x9 + NL80211_PMSR_FTM_FAILURE_BAD_CHANGED_PARAMS = 0x7 + NL80211_PMSR_FTM_FAILURE_INVALID_TIMESTAMP = 0x5 + NL80211_PMSR_FTM_FAILURE_NO_RESPONSE = 0x1 + NL80211_PMSR_FTM_FAILURE_PEER_BUSY = 0x6 + NL80211_PMSR_FTM_FAILURE_PEER_NOT_CAPABLE = 0x4 + NL80211_PMSR_FTM_FAILURE_REJECTED = 0x2 + NL80211_PMSR_FTM_FAILURE_UNSPECIFIED = 0x0 + NL80211_PMSR_FTM_FAILURE_WRONG_CHANNEL = 0x3 + NL80211_PMSR_FTM_REQ_ATTR_ASAP = 0x1 + NL80211_PMSR_FTM_REQ_ATTR_BSS_COLOR = 0xd + NL80211_PMSR_FTM_REQ_ATTR_BURST_DURATION = 0x5 + NL80211_PMSR_FTM_REQ_ATTR_BURST_PERIOD = 0x4 + NL80211_PMSR_FTM_REQ_ATTR_FTMS_PER_BURST = 0x6 + NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK = 0xc + NL80211_PMSR_FTM_REQ_ATTR_MAX = 0xd + NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED = 0xb + NL80211_PMSR_FTM_REQ_ATTR_NUM_BURSTS_EXP = 0x3 + NL80211_PMSR_FTM_REQ_ATTR_NUM_FTMR_RETRIES = 0x7 + NL80211_PMSR_FTM_REQ_ATTR_PREAMBLE = 0x2 + NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC = 0x9 + NL80211_PMSR_FTM_REQ_ATTR_REQUEST_LCI = 0x8 + NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED = 0xa + NL80211_PMSR_FTM_RESP_ATTR_BURST_DURATION = 0x7 + NL80211_PMSR_FTM_RESP_ATTR_BURST_INDEX = 0x2 + NL80211_PMSR_FTM_RESP_ATTR_BUSY_RETRY_TIME = 0x5 + NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC = 0x14 + NL80211_PMSR_FTM_RESP_ATTR_DIST_AVG = 0x10 + NL80211_PMSR_FTM_RESP_ATTR_DIST_SPREAD = 0x12 + NL80211_PMSR_FTM_RESP_ATTR_DIST_VARIANCE = 0x11 + NL80211_PMSR_FTM_RESP_ATTR_FAIL_REASON = 0x1 + NL80211_PMSR_FTM_RESP_ATTR_FTMS_PER_BURST = 0x8 + NL80211_PMSR_FTM_RESP_ATTR_LCI = 0x13 + NL80211_PMSR_FTM_RESP_ATTR_MAX = 0x15 + NL80211_PMSR_FTM_RESP_ATTR_NUM_BURSTS_EXP = 0x6 + NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_ATTEMPTS = 0x3 + NL80211_PMSR_FTM_RESP_ATTR_NUM_FTMR_SUCCESSES = 0x4 + NL80211_PMSR_FTM_RESP_ATTR_PAD = 0x15 + NL80211_PMSR_FTM_RESP_ATTR_RSSI_AVG = 0x9 + NL80211_PMSR_FTM_RESP_ATTR_RSSI_SPREAD = 0xa + NL80211_PMSR_FTM_RESP_ATTR_RTT_AVG = 0xd + NL80211_PMSR_FTM_RESP_ATTR_RTT_SPREAD = 0xf + NL80211_PMSR_FTM_RESP_ATTR_RTT_VARIANCE = 0xe + NL80211_PMSR_FTM_RESP_ATTR_RX_RATE = 0xc + NL80211_PMSR_FTM_RESP_ATTR_TX_RATE = 0xb + NL80211_PMSR_PEER_ATTR_ADDR = 0x1 + NL80211_PMSR_PEER_ATTR_CHAN = 0x2 + NL80211_PMSR_PEER_ATTR_MAX = 0x4 + NL80211_PMSR_PEER_ATTR_REQ = 0x3 + NL80211_PMSR_PEER_ATTR_RESP = 0x4 + NL80211_PMSR_REQ_ATTR_DATA = 0x1 + NL80211_PMSR_REQ_ATTR_GET_AP_TSF = 0x2 + NL80211_PMSR_REQ_ATTR_MAX = 0x2 + NL80211_PMSR_RESP_ATTR_AP_TSF = 0x4 + NL80211_PMSR_RESP_ATTR_DATA = 0x1 + NL80211_PMSR_RESP_ATTR_FINAL = 0x5 + NL80211_PMSR_RESP_ATTR_HOST_TIME = 0x3 + NL80211_PMSR_RESP_ATTR_MAX = 0x6 + NL80211_PMSR_RESP_ATTR_PAD = 0x6 + NL80211_PMSR_RESP_ATTR_STATUS = 0x2 + NL80211_PMSR_STATUS_FAILURE = 0x3 + NL80211_PMSR_STATUS_REFUSED = 0x1 + NL80211_PMSR_STATUS_SUCCESS = 0x0 + NL80211_PMSR_STATUS_TIMEOUT = 0x2 + NL80211_PMSR_TYPE_FTM = 0x1 + NL80211_PMSR_TYPE_INVALID = 0x0 + NL80211_PMSR_TYPE_MAX = 0x1 + NL80211_PREAMBLE_DMG = 0x3 + NL80211_PREAMBLE_HE = 0x4 + NL80211_PREAMBLE_HT = 0x1 + NL80211_PREAMBLE_LEGACY = 0x0 + NL80211_PREAMBLE_VHT = 0x2 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_80211U = 0x8 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_P2P = 0x4 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS2 = 0x2 + NL80211_PROBE_RESP_OFFLOAD_SUPPORT_WPS = 0x1 + NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP = 0x1 + NL80211_PS_DISABLED = 0x0 + NL80211_PS_ENABLED = 0x1 + NL80211_RADAR_CAC_ABORTED = 0x2 + NL80211_RADAR_CAC_FINISHED = 0x1 + NL80211_RADAR_CAC_STARTED = 0x5 + NL80211_RADAR_DETECTED = 0x0 + NL80211_RADAR_NOP_FINISHED = 0x3 + NL80211_RADAR_PRE_CAC_EXPIRED = 0x4 + NL80211_RATE_INFO_10_MHZ_WIDTH = 0xb + NL80211_RATE_INFO_160_MHZ_WIDTH = 0xa + NL80211_RATE_INFO_320_MHZ_WIDTH = 0x12 + NL80211_RATE_INFO_40_MHZ_WIDTH = 0x3 + NL80211_RATE_INFO_5_MHZ_WIDTH = 0xc + NL80211_RATE_INFO_80_MHZ_WIDTH = 0x8 + NL80211_RATE_INFO_80P80_MHZ_WIDTH = 0x9 + NL80211_RATE_INFO_BITRATE32 = 0x5 + NL80211_RATE_INFO_BITRATE = 0x1 + NL80211_RATE_INFO_EHT_GI_0_8 = 0x0 + NL80211_RATE_INFO_EHT_GI_1_6 = 0x1 + NL80211_RATE_INFO_EHT_GI_3_2 = 0x2 + NL80211_RATE_INFO_EHT_GI = 0x15 + NL80211_RATE_INFO_EHT_MCS = 0x13 + NL80211_RATE_INFO_EHT_NSS = 0x14 + NL80211_RATE_INFO_EHT_RU_ALLOC_106 = 0x3 + NL80211_RATE_INFO_EHT_RU_ALLOC_106P26 = 0x4 + NL80211_RATE_INFO_EHT_RU_ALLOC_242 = 0x5 + NL80211_RATE_INFO_EHT_RU_ALLOC_26 = 0x0 + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996 = 0xb + NL80211_RATE_INFO_EHT_RU_ALLOC_2x996P484 = 0xc + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996 = 0xd + NL80211_RATE_INFO_EHT_RU_ALLOC_3x996P484 = 0xe + NL80211_RATE_INFO_EHT_RU_ALLOC_484 = 0x6 + NL80211_RATE_INFO_EHT_RU_ALLOC_484P242 = 0x7 + NL80211_RATE_INFO_EHT_RU_ALLOC_4x996 = 0xf + NL80211_RATE_INFO_EHT_RU_ALLOC_52 = 0x1 + NL80211_RATE_INFO_EHT_RU_ALLOC_52P26 = 0x2 + NL80211_RATE_INFO_EHT_RU_ALLOC_996 = 0x8 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484 = 0x9 + NL80211_RATE_INFO_EHT_RU_ALLOC_996P484P242 = 0xa + NL80211_RATE_INFO_EHT_RU_ALLOC = 0x16 + NL80211_RATE_INFO_HE_1XLTF = 0x0 + NL80211_RATE_INFO_HE_2XLTF = 0x1 + NL80211_RATE_INFO_HE_4XLTF = 0x2 + NL80211_RATE_INFO_HE_DCM = 0x10 + NL80211_RATE_INFO_HE_GI_0_8 = 0x0 + NL80211_RATE_INFO_HE_GI_1_6 = 0x1 + NL80211_RATE_INFO_HE_GI_3_2 = 0x2 + NL80211_RATE_INFO_HE_GI = 0xf + NL80211_RATE_INFO_HE_MCS = 0xd + NL80211_RATE_INFO_HE_NSS = 0xe + NL80211_RATE_INFO_HE_RU_ALLOC_106 = 0x2 + NL80211_RATE_INFO_HE_RU_ALLOC_242 = 0x3 + NL80211_RATE_INFO_HE_RU_ALLOC_26 = 0x0 + NL80211_RATE_INFO_HE_RU_ALLOC_2x996 = 0x6 + NL80211_RATE_INFO_HE_RU_ALLOC_484 = 0x4 + NL80211_RATE_INFO_HE_RU_ALLOC_52 = 0x1 + NL80211_RATE_INFO_HE_RU_ALLOC_996 = 0x5 + NL80211_RATE_INFO_HE_RU_ALLOC = 0x11 + NL80211_RATE_INFO_MAX = 0x16 + NL80211_RATE_INFO_MCS = 0x2 + NL80211_RATE_INFO_SHORT_GI = 0x4 + NL80211_RATE_INFO_VHT_MCS = 0x6 + NL80211_RATE_INFO_VHT_NSS = 0x7 + NL80211_REGDOM_SET_BY_CORE = 0x0 + NL80211_REGDOM_SET_BY_COUNTRY_IE = 0x3 + NL80211_REGDOM_SET_BY_DRIVER = 0x2 + NL80211_REGDOM_SET_BY_USER = 0x1 + NL80211_REGDOM_TYPE_COUNTRY = 0x0 + NL80211_REGDOM_TYPE_CUSTOM_WORLD = 0x2 + NL80211_REGDOM_TYPE_INTERSECTION = 0x3 + NL80211_REGDOM_TYPE_WORLD = 0x1 + NL80211_REG_RULE_ATTR_MAX = 0x7 + NL80211_REKEY_DATA_AKM = 0x4 + NL80211_REKEY_DATA_KCK = 0x2 + NL80211_REKEY_DATA_KEK = 0x1 + NL80211_REKEY_DATA_REPLAY_CTR = 0x3 + NL80211_REPLAY_CTR_LEN = 0x8 + NL80211_RRF_AUTO_BW = 0x800 + NL80211_RRF_DFS = 0x10 + NL80211_RRF_GO_CONCURRENT = 0x1000 + NL80211_RRF_IR_CONCURRENT = 0x1000 + NL80211_RRF_NO_160MHZ = 0x10000 + NL80211_RRF_NO_320MHZ = 0x40000 + NL80211_RRF_NO_80MHZ = 0x8000 + NL80211_RRF_NO_CCK = 0x2 + NL80211_RRF_NO_HE = 0x20000 + NL80211_RRF_NO_HT40 = 0x6000 + NL80211_RRF_NO_HT40MINUS = 0x2000 + NL80211_RRF_NO_HT40PLUS = 0x4000 + NL80211_RRF_NO_IBSS = 0x80 + NL80211_RRF_NO_INDOOR = 0x4 + NL80211_RRF_NO_IR_ALL = 0x180 + NL80211_RRF_NO_IR = 0x80 + NL80211_RRF_NO_OFDM = 0x1 + NL80211_RRF_NO_OUTDOOR = 0x8 + NL80211_RRF_PASSIVE_SCAN = 0x80 + NL80211_RRF_PTMP_ONLY = 0x40 + NL80211_RRF_PTP_ONLY = 0x20 + NL80211_RXMGMT_FLAG_ANSWERED = 0x1 + NL80211_RXMGMT_FLAG_EXTERNAL_AUTH = 0x2 + NL80211_SAE_PWE_BOTH = 0x3 + NL80211_SAE_PWE_HASH_TO_ELEMENT = 0x2 + NL80211_SAE_PWE_HUNT_AND_PECK = 0x1 + NL80211_SAE_PWE_UNSPECIFIED = 0x0 + NL80211_SAR_ATTR_MAX = 0x2 + NL80211_SAR_ATTR_SPECS = 0x2 + NL80211_SAR_ATTR_SPECS_END_FREQ = 0x4 + NL80211_SAR_ATTR_SPECS_MAX = 0x4 + NL80211_SAR_ATTR_SPECS_POWER = 0x1 + NL80211_SAR_ATTR_SPECS_RANGE_INDEX = 0x2 + NL80211_SAR_ATTR_SPECS_START_FREQ = 0x3 + NL80211_SAR_ATTR_TYPE = 0x1 + NL80211_SAR_TYPE_POWER = 0x0 + NL80211_SCAN_FLAG_ACCEPT_BCAST_PROBE_RESP = 0x20 + NL80211_SCAN_FLAG_AP = 0x4 + NL80211_SCAN_FLAG_COLOCATED_6GHZ = 0x4000 + NL80211_SCAN_FLAG_FILS_MAX_CHANNEL_TIME = 0x10 + NL80211_SCAN_FLAG_FLUSH = 0x2 + NL80211_SCAN_FLAG_FREQ_KHZ = 0x2000 + NL80211_SCAN_FLAG_HIGH_ACCURACY = 0x400 + NL80211_SCAN_FLAG_LOW_POWER = 0x200 + NL80211_SCAN_FLAG_LOW_PRIORITY = 0x1 + NL80211_SCAN_FLAG_LOW_SPAN = 0x100 + NL80211_SCAN_FLAG_MIN_PREQ_CONTENT = 0x1000 + NL80211_SCAN_FLAG_OCE_PROBE_REQ_DEFERRAL_SUPPRESSION = 0x80 + NL80211_SCAN_FLAG_OCE_PROBE_REQ_HIGH_TX_RATE = 0x40 + NL80211_SCAN_FLAG_RANDOM_ADDR = 0x8 + NL80211_SCAN_FLAG_RANDOM_SN = 0x800 + NL80211_SCAN_RSSI_THOLD_OFF = -0x12c + NL80211_SCHED_SCAN_MATCH_ATTR_BSSID = 0x5 + NL80211_SCHED_SCAN_MATCH_ATTR_MAX = 0x6 + NL80211_SCHED_SCAN_MATCH_ATTR_RELATIVE_RSSI = 0x3 + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI_ADJUST = 0x4 + NL80211_SCHED_SCAN_MATCH_ATTR_RSSI = 0x2 + NL80211_SCHED_SCAN_MATCH_ATTR_SSID = 0x1 + NL80211_SCHED_SCAN_MATCH_PER_BAND_RSSI = 0x6 + NL80211_SCHED_SCAN_PLAN_INTERVAL = 0x1 + NL80211_SCHED_SCAN_PLAN_ITERATIONS = 0x2 + NL80211_SCHED_SCAN_PLAN_MAX = 0x2 + NL80211_SMPS_DYNAMIC = 0x2 + NL80211_SMPS_MAX = 0x2 + NL80211_SMPS_OFF = 0x0 + NL80211_SMPS_STATIC = 0x1 + NL80211_STA_BSS_PARAM_BEACON_INTERVAL = 0x5 + NL80211_STA_BSS_PARAM_CTS_PROT = 0x1 + NL80211_STA_BSS_PARAM_DTIM_PERIOD = 0x4 + NL80211_STA_BSS_PARAM_MAX = 0x5 + NL80211_STA_BSS_PARAM_SHORT_PREAMBLE = 0x2 + NL80211_STA_BSS_PARAM_SHORT_SLOT_TIME = 0x3 + NL80211_STA_FLAG_ASSOCIATED = 0x7 + NL80211_STA_FLAG_AUTHENTICATED = 0x5 + NL80211_STA_FLAG_AUTHORIZED = 0x1 + NL80211_STA_FLAG_MAX = 0x7 + NL80211_STA_FLAG_MAX_OLD_API = 0x6 + NL80211_STA_FLAG_MFP = 0x4 + NL80211_STA_FLAG_SHORT_PREAMBLE = 0x2 + NL80211_STA_FLAG_TDLS_PEER = 0x6 + NL80211_STA_FLAG_WME = 0x3 + NL80211_STA_INFO_ACK_SIGNAL_AVG = 0x23 + NL80211_STA_INFO_ACK_SIGNAL = 0x22 + NL80211_STA_INFO_AIRTIME_LINK_METRIC = 0x29 + NL80211_STA_INFO_AIRTIME_WEIGHT = 0x28 + NL80211_STA_INFO_ASSOC_AT_BOOTTIME = 0x2a + NL80211_STA_INFO_BEACON_LOSS = 0x12 + NL80211_STA_INFO_BEACON_RX = 0x1d + NL80211_STA_INFO_BEACON_SIGNAL_AVG = 0x1e + NL80211_STA_INFO_BSS_PARAM = 0xf + NL80211_STA_INFO_CHAIN_SIGNAL_AVG = 0x1a + NL80211_STA_INFO_CHAIN_SIGNAL = 0x19 + NL80211_STA_INFO_CONNECTED_TIME = 0x10 + NL80211_STA_INFO_CONNECTED_TO_AS = 0x2b + NL80211_STA_INFO_CONNECTED_TO_GATE = 0x26 + NL80211_STA_INFO_DATA_ACK_SIGNAL_AVG = 0x23 + NL80211_STA_INFO_EXPECTED_THROUGHPUT = 0x1b + NL80211_STA_INFO_FCS_ERROR_COUNT = 0x25 + NL80211_STA_INFO_INACTIVE_TIME = 0x1 + NL80211_STA_INFO_LLID = 0x4 + NL80211_STA_INFO_LOCAL_PM = 0x14 + NL80211_STA_INFO_MAX = 0x2b + NL80211_STA_INFO_NONPEER_PM = 0x16 + NL80211_STA_INFO_PAD = 0x21 + NL80211_STA_INFO_PEER_PM = 0x15 + NL80211_STA_INFO_PLID = 0x5 + NL80211_STA_INFO_PLINK_STATE = 0x6 + NL80211_STA_INFO_RX_BITRATE = 0xe + NL80211_STA_INFO_RX_BYTES64 = 0x17 + NL80211_STA_INFO_RX_BYTES = 0x2 + NL80211_STA_INFO_RX_DROP_MISC = 0x1c + NL80211_STA_INFO_RX_DURATION = 0x20 + NL80211_STA_INFO_RX_MPDUS = 0x24 + NL80211_STA_INFO_RX_PACKETS = 0x9 + NL80211_STA_INFO_SIGNAL_AVG = 0xd + NL80211_STA_INFO_SIGNAL = 0x7 + NL80211_STA_INFO_STA_FLAGS = 0x11 + NL80211_STA_INFO_TID_STATS = 0x1f + NL80211_STA_INFO_T_OFFSET = 0x13 + NL80211_STA_INFO_TX_BITRATE = 0x8 + NL80211_STA_INFO_TX_BYTES64 = 0x18 + NL80211_STA_INFO_TX_BYTES = 0x3 + NL80211_STA_INFO_TX_DURATION = 0x27 + NL80211_STA_INFO_TX_FAILED = 0xc + NL80211_STA_INFO_TX_PACKETS = 0xa + NL80211_STA_INFO_TX_RETRIES = 0xb + NL80211_STA_WME_MAX = 0x2 + NL80211_STA_WME_MAX_SP = 0x2 + NL80211_STA_WME_UAPSD_QUEUES = 0x1 + NL80211_SURVEY_INFO_CHANNEL_TIME_BUSY = 0x5 + NL80211_SURVEY_INFO_CHANNEL_TIME = 0x4 + NL80211_SURVEY_INFO_CHANNEL_TIME_EXT_BUSY = 0x6 + NL80211_SURVEY_INFO_CHANNEL_TIME_RX = 0x7 + NL80211_SURVEY_INFO_CHANNEL_TIME_TX = 0x8 + NL80211_SURVEY_INFO_FREQUENCY = 0x1 + NL80211_SURVEY_INFO_FREQUENCY_OFFSET = 0xc + NL80211_SURVEY_INFO_IN_USE = 0x3 + NL80211_SURVEY_INFO_MAX = 0xc + NL80211_SURVEY_INFO_NOISE = 0x2 + NL80211_SURVEY_INFO_PAD = 0xa + NL80211_SURVEY_INFO_TIME_BSS_RX = 0xb + NL80211_SURVEY_INFO_TIME_BUSY = 0x5 + NL80211_SURVEY_INFO_TIME = 0x4 + NL80211_SURVEY_INFO_TIME_EXT_BUSY = 0x6 + NL80211_SURVEY_INFO_TIME_RX = 0x7 + NL80211_SURVEY_INFO_TIME_SCAN = 0x9 + NL80211_SURVEY_INFO_TIME_TX = 0x8 + NL80211_TDLS_DISABLE_LINK = 0x4 + NL80211_TDLS_DISCOVERY_REQ = 0x0 + NL80211_TDLS_ENABLE_LINK = 0x3 + NL80211_TDLS_PEER_HE = 0x8 + NL80211_TDLS_PEER_HT = 0x1 + NL80211_TDLS_PEER_VHT = 0x2 + NL80211_TDLS_PEER_WMM = 0x4 + NL80211_TDLS_SETUP = 0x1 + NL80211_TDLS_TEARDOWN = 0x2 + NL80211_TID_CONFIG_ATTR_AMPDU_CTRL = 0x9 + NL80211_TID_CONFIG_ATTR_AMSDU_CTRL = 0xb + NL80211_TID_CONFIG_ATTR_MAX = 0xd + NL80211_TID_CONFIG_ATTR_NOACK = 0x6 + NL80211_TID_CONFIG_ATTR_OVERRIDE = 0x4 + NL80211_TID_CONFIG_ATTR_PAD = 0x1 + NL80211_TID_CONFIG_ATTR_PEER_SUPP = 0x3 + NL80211_TID_CONFIG_ATTR_RETRY_LONG = 0x8 + NL80211_TID_CONFIG_ATTR_RETRY_SHORT = 0x7 + NL80211_TID_CONFIG_ATTR_RTSCTS_CTRL = 0xa + NL80211_TID_CONFIG_ATTR_TIDS = 0x5 + NL80211_TID_CONFIG_ATTR_TX_RATE = 0xd + NL80211_TID_CONFIG_ATTR_TX_RATE_TYPE = 0xc + NL80211_TID_CONFIG_ATTR_VIF_SUPP = 0x2 + NL80211_TID_CONFIG_DISABLE = 0x1 + NL80211_TID_CONFIG_ENABLE = 0x0 + NL80211_TID_STATS_MAX = 0x6 + NL80211_TID_STATS_PAD = 0x5 + NL80211_TID_STATS_RX_MSDU = 0x1 + NL80211_TID_STATS_TX_MSDU = 0x2 + NL80211_TID_STATS_TX_MSDU_FAILED = 0x4 + NL80211_TID_STATS_TX_MSDU_RETRIES = 0x3 + NL80211_TID_STATS_TXQ_STATS = 0x6 + NL80211_TIMEOUT_ASSOC = 0x3 + NL80211_TIMEOUT_AUTH = 0x2 + NL80211_TIMEOUT_SCAN = 0x1 + NL80211_TIMEOUT_UNSPECIFIED = 0x0 + NL80211_TKIP_DATA_OFFSET_ENCR_KEY = 0x0 + NL80211_TKIP_DATA_OFFSET_RX_MIC_KEY = 0x18 + NL80211_TKIP_DATA_OFFSET_TX_MIC_KEY = 0x10 + NL80211_TX_POWER_AUTOMATIC = 0x0 + NL80211_TX_POWER_FIXED = 0x2 + NL80211_TX_POWER_LIMITED = 0x1 + NL80211_TXQ_ATTR_AC = 0x1 + NL80211_TXQ_ATTR_AIFS = 0x5 + NL80211_TXQ_ATTR_CWMAX = 0x4 + NL80211_TXQ_ATTR_CWMIN = 0x3 + NL80211_TXQ_ATTR_MAX = 0x5 + NL80211_TXQ_ATTR_QUEUE = 0x1 + NL80211_TXQ_ATTR_TXOP = 0x2 + NL80211_TXQ_Q_BE = 0x2 + NL80211_TXQ_Q_BK = 0x3 + NL80211_TXQ_Q_VI = 0x1 + NL80211_TXQ_Q_VO = 0x0 + NL80211_TXQ_STATS_BACKLOG_BYTES = 0x1 + NL80211_TXQ_STATS_BACKLOG_PACKETS = 0x2 + NL80211_TXQ_STATS_COLLISIONS = 0x8 + NL80211_TXQ_STATS_DROPS = 0x4 + NL80211_TXQ_STATS_ECN_MARKS = 0x5 + NL80211_TXQ_STATS_FLOWS = 0x3 + NL80211_TXQ_STATS_MAX = 0xb + NL80211_TXQ_STATS_MAX_FLOWS = 0xb + NL80211_TXQ_STATS_OVERLIMIT = 0x6 + NL80211_TXQ_STATS_OVERMEMORY = 0x7 + NL80211_TXQ_STATS_TX_BYTES = 0x9 + NL80211_TXQ_STATS_TX_PACKETS = 0xa + NL80211_TX_RATE_AUTOMATIC = 0x0 + NL80211_TXRATE_DEFAULT_GI = 0x0 + NL80211_TX_RATE_FIXED = 0x2 + NL80211_TXRATE_FORCE_LGI = 0x2 + NL80211_TXRATE_FORCE_SGI = 0x1 + NL80211_TXRATE_GI = 0x4 + NL80211_TXRATE_HE = 0x5 + NL80211_TXRATE_HE_GI = 0x6 + NL80211_TXRATE_HE_LTF = 0x7 + NL80211_TXRATE_HT = 0x2 + NL80211_TXRATE_LEGACY = 0x1 + NL80211_TX_RATE_LIMITED = 0x1 + NL80211_TXRATE_MAX = 0x7 + NL80211_TXRATE_MCS = 0x2 + NL80211_TXRATE_VHT = 0x3 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_INT = 0x1 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_MAX = 0x2 + NL80211_UNSOL_BCAST_PROBE_RESP_ATTR_TMPL = 0x2 + NL80211_USER_REG_HINT_CELL_BASE = 0x1 + NL80211_USER_REG_HINT_INDOOR = 0x2 + NL80211_USER_REG_HINT_USER = 0x0 + NL80211_VENDOR_ID_IS_LINUX = 0x80000000 + NL80211_VHT_CAPABILITY_LEN = 0xc + NL80211_VHT_NSS_MAX = 0x8 + NL80211_WIPHY_NAME_MAXLEN = 0x40 + NL80211_WMMR_AIFSN = 0x3 + NL80211_WMMR_CW_MAX = 0x2 + NL80211_WMMR_CW_MIN = 0x1 + NL80211_WMMR_MAX = 0x4 + NL80211_WMMR_TXOP = 0x4 + NL80211_WOWLAN_PKTPAT_MASK = 0x1 + NL80211_WOWLAN_PKTPAT_OFFSET = 0x3 + NL80211_WOWLAN_PKTPAT_PATTERN = 0x2 + NL80211_WOWLAN_TCP_DATA_INTERVAL = 0x9 + NL80211_WOWLAN_TCP_DATA_PAYLOAD = 0x6 + NL80211_WOWLAN_TCP_DATA_PAYLOAD_SEQ = 0x7 + NL80211_WOWLAN_TCP_DATA_PAYLOAD_TOKEN = 0x8 + NL80211_WOWLAN_TCP_DST_IPV4 = 0x2 + NL80211_WOWLAN_TCP_DST_MAC = 0x3 + NL80211_WOWLAN_TCP_DST_PORT = 0x5 + NL80211_WOWLAN_TCP_SRC_IPV4 = 0x1 + NL80211_WOWLAN_TCP_SRC_PORT = 0x4 + NL80211_WOWLAN_TCP_WAKE_MASK = 0xb + NL80211_WOWLAN_TCP_WAKE_PAYLOAD = 0xa + NL80211_WOWLAN_TRIG_4WAY_HANDSHAKE = 0x8 + NL80211_WOWLAN_TRIG_ANY = 0x1 + NL80211_WOWLAN_TRIG_DISCONNECT = 0x2 + NL80211_WOWLAN_TRIG_EAP_IDENT_REQUEST = 0x7 + NL80211_WOWLAN_TRIG_GTK_REKEY_FAILURE = 0x6 + NL80211_WOWLAN_TRIG_GTK_REKEY_SUPPORTED = 0x5 + NL80211_WOWLAN_TRIG_MAGIC_PKT = 0x3 + NL80211_WOWLAN_TRIG_NET_DETECT = 0x12 + NL80211_WOWLAN_TRIG_NET_DETECT_RESULTS = 0x13 + NL80211_WOWLAN_TRIG_PKT_PATTERN = 0x4 + NL80211_WOWLAN_TRIG_RFKILL_RELEASE = 0x9 + NL80211_WOWLAN_TRIG_TCP_CONNECTION = 0xe + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211 = 0xa + NL80211_WOWLAN_TRIG_WAKEUP_PKT_80211_LEN = 0xb + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023 = 0xc + NL80211_WOWLAN_TRIG_WAKEUP_PKT_8023_LEN = 0xd + NL80211_WOWLAN_TRIG_WAKEUP_TCP_CONNLOST = 0x10 + NL80211_WOWLAN_TRIG_WAKEUP_TCP_MATCH = 0xf + NL80211_WOWLAN_TRIG_WAKEUP_TCP_NOMORETOKENS = 0x11 + NL80211_WPA_VERSION_1 = 0x1 + NL80211_WPA_VERSION_2 = 0x2 + NL80211_WPA_VERSION_3 = 0x4 +) + +const ( + FRA_UNSPEC = 0x0 + FRA_DST = 0x1 + FRA_SRC = 0x2 + FRA_IIFNAME = 0x3 + FRA_GOTO = 0x4 + FRA_UNUSED2 = 0x5 + FRA_PRIORITY = 0x6 + FRA_UNUSED3 = 0x7 + FRA_UNUSED4 = 0x8 + FRA_UNUSED5 = 0x9 + FRA_FWMARK = 0xa + FRA_FLOW = 0xb + FRA_TUN_ID = 0xc + FRA_SUPPRESS_IFGROUP = 0xd + FRA_SUPPRESS_PREFIXLEN = 0xe + FRA_TABLE = 0xf + FRA_FWMASK = 0x10 + FRA_OIFNAME = 0x11 + FRA_PAD = 0x12 + FRA_L3MDEV = 0x13 + FRA_UID_RANGE = 0x14 + FRA_PROTOCOL = 0x15 + FRA_IP_PROTO = 0x16 + FRA_SPORT_RANGE = 0x17 + FRA_DPORT_RANGE = 0x18 + FR_ACT_UNSPEC = 0x0 + FR_ACT_TO_TBL = 0x1 + FR_ACT_GOTO = 0x2 + FR_ACT_NOP = 0x3 + FR_ACT_RES3 = 0x4 + FR_ACT_RES4 = 0x5 + FR_ACT_BLACKHOLE = 0x6 + FR_ACT_UNREACHABLE = 0x7 + FR_ACT_PROHIBIT = 0x8 +) + +const ( + AUDIT_NLGRP_NONE = 0x0 + AUDIT_NLGRP_READLOG = 0x1 +) + +const ( + TUN_F_CSUM = 0x1 + TUN_F_TSO4 = 0x2 + TUN_F_TSO6 = 0x4 + TUN_F_TSO_ECN = 0x8 + TUN_F_UFO = 0x10 +) + +const ( + VIRTIO_NET_HDR_F_NEEDS_CSUM = 0x1 + VIRTIO_NET_HDR_F_DATA_VALID = 0x2 + VIRTIO_NET_HDR_F_RSC_INFO = 0x4 +) + +const ( + VIRTIO_NET_HDR_GSO_NONE = 0x0 + VIRTIO_NET_HDR_GSO_TCPV4 = 0x1 + VIRTIO_NET_HDR_GSO_UDP = 0x3 + VIRTIO_NET_HDR_GSO_TCPV6 = 0x4 + VIRTIO_NET_HDR_GSO_ECN = 0x80 +) diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_386.go new file mode 100644 index 0000000000..4ecc1495cd --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_386.go @@ -0,0 +1,696 @@ +// cgo -godefs -objdir=/tmp/386/cgo -- -Wall -Werror -static -I/tmp/386/include -m32 linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && linux +// +build 386,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + _ uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [1]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type DmNameList struct { + Dev uint64 + Next uint32 +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint32 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 +} + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ [2]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Atime_high uint32 + Dtime uint32 + Dtime_high uint32 + Ctime uint32 + Ctime_high uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + _ uint32 + _ uint32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go new file mode 100644 index 0000000000..34fddff964 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go @@ -0,0 +1,711 @@ +// cgo -godefs -objdir=/tmp/amd64/cgo -- -Wall -Werror -static -I/tmp/amd64/include -m64 linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && linux +// +build amd64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [3]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go new file mode 100644 index 0000000000..3b14a6031f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go @@ -0,0 +1,691 @@ +// cgo -godefs -objdir=/tmp/arm/cgo -- -Wall -Werror -static -I/tmp/arm/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && linux +// +build arm,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + _ uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + _ [4]byte + Size int64 + Blksize int32 + _ [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Uregs [18]uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint32 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]uint8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800470a1 + PPS_SETPARAMS = 0x400470a2 + PPS_GETCAP = 0x800470a3 + PPS_FETCH = 0xc00470a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint16 + _ [2]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Atime_high uint32 + Dtime uint32 + Dtime_high uint32 + Ctime uint32 + Ctime_high uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + _ uint32 + _ uint32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go new file mode 100644 index 0000000000..0517651ab3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go @@ -0,0 +1,690 @@ +// cgo -godefs -objdir=/tmp/arm64/cgo -- -Wall -Werror -static -I/tmp/arm64/include -fsigned-char linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && linux +// +build arm64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go new file mode 100644 index 0000000000..3b0c518134 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go @@ -0,0 +1,691 @@ +// cgo -godefs -objdir=/tmp/loong64/cgo -- -Wall -Werror -static -I/tmp/loong64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build loong64 && linux +// +build loong64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Orig_a0 uint64 + Era uint64 + Badv uint64 + Reserved [10]uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go new file mode 100644 index 0000000000..fccdf4dd0f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go @@ -0,0 +1,696 @@ +// cgo -godefs -objdir=/tmp/mips/cgo -- -Wall -Werror -static -I/tmp/mips/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips && linux +// +build mips,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + _ [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Dtime uint32 + Ctime uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + Atime_high uint16 + Dtime_high uint16 + Ctime_high uint16 + _ uint16 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go new file mode 100644 index 0000000000..500de8fc07 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go @@ -0,0 +1,693 @@ +// cgo -godefs -objdir=/tmp/mips64/cgo -- -Wall -Werror -static -I/tmp/mips64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && linux +// +build mips64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]uint32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go new file mode 100644 index 0000000000..d0434cd2c6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go @@ -0,0 +1,693 @@ +// cgo -godefs -objdir=/tmp/mips64le/cgo -- -Wall -Werror -static -I/tmp/mips64le/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64le && linux +// +build mips64le,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]uint32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go new file mode 100644 index 0000000000..84206ba534 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go @@ -0,0 +1,696 @@ +// cgo -godefs -objdir=/tmp/mipsle/cgo -- -Wall -Werror -static -I/tmp/mipsle/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mipsle && linux +// +build mipsle,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Regs [32]uint64 + Lo uint64 + Hi uint64 + Epc uint64 + Badvaddr uint64 + Status uint64 + Cause uint64 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x80 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x3 +) + +type Siginfo struct { + Signo int32 + Code int32 + Errno int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [23]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + _ [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]int8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) + +const ( + PIDFD_NONBLOCK = 0x80 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint32 + _ uint32 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint32 + Atime uint32 + Dtime uint32 + Ctime uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + Atime_high uint16 + Dtime_high uint16 + Ctime_high uint16 + _ uint16 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go new file mode 100644 index 0000000000..ab078cf1f5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go @@ -0,0 +1,704 @@ +// cgo -godefs -objdir=/tmp/ppc/cgo -- -Wall -Werror -static -I/tmp/ppc/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc && linux +// +build ppc,linux + +package unix + +const ( + SizeofPtr = 0x4 + SizeofLong = 0x4 +) + +type ( + _C_long int32 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + _ [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + _ [4]byte + Size int64 + Blksize int32 + _ [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint32 + _ uint32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [16]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x58 + SizeofIovec = 0x8 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc +) + +const ( + SizeofSockFprog = 0x8 +) + +type PtraceRegs struct { + Gpr [32]uint32 + Nip uint32 + Msr uint32 + Orig_gpr3 uint32 + Ctr uint32 + Link uint32 + Xer uint32 + Ccr uint32 + Mq uint32 + Trap uint32 + Dar uint32 + Dsisr uint32 + Result uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + _ [8]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [32]uint32 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ [116]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + _ [4]byte + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + _ [4]byte + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + _ [4]byte + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint32 + +const ( + _NCPUBITS = 0x20 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [122]byte + _ uint32 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint32 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 +} + +const ( + SizeofTpacketHdr = 0x18 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int32 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint32 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint32 + Reserved [4]uint8 +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400470a1 + PPS_SETPARAMS = 0x800470a2 + PPS_GETCAP = 0x400470a3 + PPS_FETCH = 0xc00470a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + Seq uint32 + _ uint32 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime_high uint32 + Atime uint32 + Dtime_high uint32 + Dtime uint32 + Ctime_high uint32 + Ctime uint32 + _ uint32 + Segsz uint32 + Cpid int32 + Lpid int32 + Nattch uint32 + _ uint32 + _ uint32 + _ [4]byte +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go new file mode 100644 index 0000000000..42eb2c4cef --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go @@ -0,0 +1,699 @@ +// cgo -godefs -objdir=/tmp/ppc64/cgo -- -Wall -Werror -static -I/tmp/ppc64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && linux +// +build ppc64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + Seq uint32 + _ uint32 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime int64 + Dtime int64 + Ctime int64 + Segsz uint64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go new file mode 100644 index 0000000000..31304a4e8b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go @@ -0,0 +1,699 @@ +// cgo -godefs -objdir=/tmp/ppc64le/cgo -- -Wall -Werror -static -I/tmp/ppc64le/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64le && linux +// +build ppc64le,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Line uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint64 + Inode uint64 + Rdevice uint64 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + Seq uint32 + _ uint32 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime int64 + Dtime int64 + Ctime int64 + Segsz uint64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go new file mode 100644 index 0000000000..c311f9612d --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go @@ -0,0 +1,718 @@ +// cgo -godefs -objdir=/tmp/riscv64/cgo -- -Wall -Werror -static -I/tmp/riscv64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && linux +// +build riscv64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint64 + Size int64 + Blksize int32 + _ int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ [2]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Pc uint64 + Ra uint64 + Sp uint64 + Gp uint64 + Tp uint64 + T0 uint64 + T1 uint64 + T2 uint64 + S0 uint64 + S1 uint64 + A0 uint64 + A1 uint64 + A2 uint64 + A3 uint64 + A4 uint64 + A5 uint64 + A6 uint64 + A7 uint64 + S2 uint64 + S3 uint64 + S4 uint64 + S5 uint64 + S6 uint64 + S7 uint64 + S8 uint64 + S9 uint64 + S10 uint64 + S11 uint64 + T3 uint64 + T4 uint64 + T5 uint64 + T6 uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]uint8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]uint8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x1 + CBitFieldMaskBit1 = 0x2 + CBitFieldMaskBit2 = 0x4 + CBitFieldMaskBit3 = 0x8 + CBitFieldMaskBit4 = 0x10 + CBitFieldMaskBit5 = 0x20 + CBitFieldMaskBit6 = 0x40 + CBitFieldMaskBit7 = 0x80 + CBitFieldMaskBit8 = 0x100 + CBitFieldMaskBit9 = 0x200 + CBitFieldMaskBit10 = 0x400 + CBitFieldMaskBit11 = 0x800 + CBitFieldMaskBit12 = 0x1000 + CBitFieldMaskBit13 = 0x2000 + CBitFieldMaskBit14 = 0x4000 + CBitFieldMaskBit15 = 0x8000 + CBitFieldMaskBit16 = 0x10000 + CBitFieldMaskBit17 = 0x20000 + CBitFieldMaskBit18 = 0x40000 + CBitFieldMaskBit19 = 0x80000 + CBitFieldMaskBit20 = 0x100000 + CBitFieldMaskBit21 = 0x200000 + CBitFieldMaskBit22 = 0x400000 + CBitFieldMaskBit23 = 0x800000 + CBitFieldMaskBit24 = 0x1000000 + CBitFieldMaskBit25 = 0x2000000 + CBitFieldMaskBit26 = 0x4000000 + CBitFieldMaskBit27 = 0x8000000 + CBitFieldMaskBit28 = 0x10000000 + CBitFieldMaskBit29 = 0x20000000 + CBitFieldMaskBit30 = 0x40000000 + CBitFieldMaskBit31 = 0x80000000 + CBitFieldMaskBit32 = 0x100000000 + CBitFieldMaskBit33 = 0x200000000 + CBitFieldMaskBit34 = 0x400000000 + CBitFieldMaskBit35 = 0x800000000 + CBitFieldMaskBit36 = 0x1000000000 + CBitFieldMaskBit37 = 0x2000000000 + CBitFieldMaskBit38 = 0x4000000000 + CBitFieldMaskBit39 = 0x8000000000 + CBitFieldMaskBit40 = 0x10000000000 + CBitFieldMaskBit41 = 0x20000000000 + CBitFieldMaskBit42 = 0x40000000000 + CBitFieldMaskBit43 = 0x80000000000 + CBitFieldMaskBit44 = 0x100000000000 + CBitFieldMaskBit45 = 0x200000000000 + CBitFieldMaskBit46 = 0x400000000000 + CBitFieldMaskBit47 = 0x800000000000 + CBitFieldMaskBit48 = 0x1000000000000 + CBitFieldMaskBit49 = 0x2000000000000 + CBitFieldMaskBit50 = 0x4000000000000 + CBitFieldMaskBit51 = 0x8000000000000 + CBitFieldMaskBit52 = 0x10000000000000 + CBitFieldMaskBit53 = 0x20000000000000 + CBitFieldMaskBit54 = 0x40000000000000 + CBitFieldMaskBit55 = 0x80000000000000 + CBitFieldMaskBit56 = 0x100000000000000 + CBitFieldMaskBit57 = 0x200000000000000 + CBitFieldMaskBit58 = 0x400000000000000 + CBitFieldMaskBit59 = 0x800000000000000 + CBitFieldMaskBit60 = 0x1000000000000000 + CBitFieldMaskBit61 = 0x2000000000000000 + CBitFieldMaskBit62 = 0x4000000000000000 + CBitFieldMaskBit63 = 0x8000000000000000 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]uint8 + Driver_name [64]uint8 + Module_name [64]uint8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]uint8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]uint8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]uint8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]uint8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]uint8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]uint8 +} + +type CryptoReportLarval struct { + Type [64]uint8 +} + +type CryptoReportHash struct { + Type [64]uint8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]uint8 + Geniv [64]uint8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]uint8 +} + +type CryptoReportRNG struct { + Type [64]uint8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]uint8 +} + +type CryptoReportKPP struct { + Type [64]uint8 +} + +type CryptoReportAcomp struct { + Type [64]uint8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]uint8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]uint8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]uint8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]uint8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]uint8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ [0]uint8 + Seq uint16 + _ uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go new file mode 100644 index 0000000000..bba3cefac1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go @@ -0,0 +1,713 @@ +// cgo -godefs -objdir=/tmp/s390x/cgo -- -Wall -Werror -static -I/tmp/s390x/include -fsigned-char linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build s390x && linux +// +build s390x,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + _ [3]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x6 + FADV_NOREUSE = 0x7 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Psw PtracePsw + Gprs [16]uint64 + Acrs [16]uint32 + Orig_gpr2 uint64 + Fp_regs PtraceFpregs + Per_info PtracePer + Ieee_instruction_pointer uint64 +} + +type PtracePsw struct { + Mask uint64 + Addr uint64 +} + +type PtraceFpregs struct { + Fpc uint32 + Fprs [16]float64 +} + +type PtracePer struct { + Control_regs [3]uint64 + _ [8]byte + Starting_addr uint64 + Ending_addr uint64 + Perc_atmid uint16 + Address uint64 + Access_id uint8 + _ [7]byte +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x80000 +) + +const ( + POLLRDHUP = 0x2000 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x0 + SIG_UNBLOCK = 0x1 + SIG_SETMASK = 0x2 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen uint32 + Frsize uint32 + Flags uint32 + Spare [4]uint32 + _ [4]byte +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x1269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint16 + Inode uint64 + Rdevice uint16 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x800870a1 + PPS_SETPARAMS = 0x400870a2 + PPS_GETCAP = 0x800870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x800 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ uint16 + Seq uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Segsz uint64 + Atime int64 + Dtime int64 + Ctime int64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go new file mode 100644 index 0000000000..ad8a013804 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go @@ -0,0 +1,694 @@ +// cgo -godefs -objdir=/tmp/sparc64/cgo -- -Wall -Werror -static -I/tmp/sparc64/include linux/types.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build sparc64 && linux +// +build sparc64,linux + +package unix + +const ( + SizeofPtr = 0x8 + SizeofLong = 0x8 +) + +type ( + _C_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Stat_t struct { + Dev uint64 + _ uint16 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + _ uint16 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + _ uint64 + _ uint64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + _ [5]byte +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ int16 + _ [2]byte +} + +type DmNameList struct { + Dev uint64 + Next uint32 + Name [0]byte + _ [4]byte +} + +const ( + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrNFCLLCP struct { + Sa_family uint16 + Dev_idx uint32 + Target_idx uint32 + Nfc_protocol uint32 + Dsap uint8 + Ssap uint8 + Service_name [63]uint8 + Service_name_len uint64 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type ifreq struct { + Ifrn [16]byte + Ifru [24]byte +} + +const ( + SizeofSockaddrNFCLLCP = 0x60 + SizeofIovec = 0x10 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 +) + +const ( + SizeofSockFprog = 0x10 +) + +type PtraceRegs struct { + Regs [16]uint64 + Tstate uint64 + Tpc uint64 + Tnpc uint64 + Y uint32 + Magic uint32 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + _ [0]int8 + _ [4]byte +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + OPEN_TREE_CLOEXEC = 0x400000 +) + +const ( + POLLRDHUP = 0x800 +) + +type Sigset_t struct { + Val [16]uint64 +} + +const _C__NSIG = 0x41 + +const ( + SIG_BLOCK = 0x1 + SIG_UNBLOCK = 0x2 + SIG_SETMASK = 0x4 +) + +type Siginfo struct { + Signo int32 + Errno int32 + Code int32 + _ int32 + _ [112]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +type Taskstats struct { + Version uint16 + Ac_exitcode uint32 + Ac_flag uint8 + Ac_nice uint8 + Cpu_count uint64 + Cpu_delay_total uint64 + Blkio_count uint64 + Blkio_delay_total uint64 + Swapin_count uint64 + Swapin_delay_total uint64 + Cpu_run_real_total uint64 + Cpu_run_virtual_total uint64 + Ac_comm [32]int8 + Ac_sched uint8 + Ac_pad [3]uint8 + _ [4]byte + Ac_uid uint32 + Ac_gid uint32 + Ac_pid uint32 + Ac_ppid uint32 + Ac_btime uint32 + Ac_etime uint64 + Ac_utime uint64 + Ac_stime uint64 + Ac_minflt uint64 + Ac_majflt uint64 + Coremem uint64 + Virtmem uint64 + Hiwater_rss uint64 + Hiwater_vm uint64 + Read_char uint64 + Write_char uint64 + Read_syscalls uint64 + Write_syscalls uint64 + Read_bytes uint64 + Write_bytes uint64 + Cancelled_write_bytes uint64 + Nvcsw uint64 + Nivcsw uint64 + Ac_utimescaled uint64 + Ac_stimescaled uint64 + Cpu_scaled_run_real_total uint64 + Freepages_count uint64 + Freepages_delay_total uint64 + Thrashing_count uint64 + Thrashing_delay_total uint64 + Ac_btime64 uint64 + Compact_count uint64 + Compact_delay_total uint64 + Ac_tgid uint32 + Ac_tgetime uint64 + Ac_exe_dev uint64 + Ac_exe_inode uint64 + Wpcopy_count uint64 + Wpcopy_delay_total uint64 +} + +type cpuMask uint64 + +const ( + _NCPUBITS = 0x40 +) + +const ( + CBitFieldMaskBit0 = 0x8000000000000000 + CBitFieldMaskBit1 = 0x4000000000000000 + CBitFieldMaskBit2 = 0x2000000000000000 + CBitFieldMaskBit3 = 0x1000000000000000 + CBitFieldMaskBit4 = 0x800000000000000 + CBitFieldMaskBit5 = 0x400000000000000 + CBitFieldMaskBit6 = 0x200000000000000 + CBitFieldMaskBit7 = 0x100000000000000 + CBitFieldMaskBit8 = 0x80000000000000 + CBitFieldMaskBit9 = 0x40000000000000 + CBitFieldMaskBit10 = 0x20000000000000 + CBitFieldMaskBit11 = 0x10000000000000 + CBitFieldMaskBit12 = 0x8000000000000 + CBitFieldMaskBit13 = 0x4000000000000 + CBitFieldMaskBit14 = 0x2000000000000 + CBitFieldMaskBit15 = 0x1000000000000 + CBitFieldMaskBit16 = 0x800000000000 + CBitFieldMaskBit17 = 0x400000000000 + CBitFieldMaskBit18 = 0x200000000000 + CBitFieldMaskBit19 = 0x100000000000 + CBitFieldMaskBit20 = 0x80000000000 + CBitFieldMaskBit21 = 0x40000000000 + CBitFieldMaskBit22 = 0x20000000000 + CBitFieldMaskBit23 = 0x10000000000 + CBitFieldMaskBit24 = 0x8000000000 + CBitFieldMaskBit25 = 0x4000000000 + CBitFieldMaskBit26 = 0x2000000000 + CBitFieldMaskBit27 = 0x1000000000 + CBitFieldMaskBit28 = 0x800000000 + CBitFieldMaskBit29 = 0x400000000 + CBitFieldMaskBit30 = 0x200000000 + CBitFieldMaskBit31 = 0x100000000 + CBitFieldMaskBit32 = 0x80000000 + CBitFieldMaskBit33 = 0x40000000 + CBitFieldMaskBit34 = 0x20000000 + CBitFieldMaskBit35 = 0x10000000 + CBitFieldMaskBit36 = 0x8000000 + CBitFieldMaskBit37 = 0x4000000 + CBitFieldMaskBit38 = 0x2000000 + CBitFieldMaskBit39 = 0x1000000 + CBitFieldMaskBit40 = 0x800000 + CBitFieldMaskBit41 = 0x400000 + CBitFieldMaskBit42 = 0x200000 + CBitFieldMaskBit43 = 0x100000 + CBitFieldMaskBit44 = 0x80000 + CBitFieldMaskBit45 = 0x40000 + CBitFieldMaskBit46 = 0x20000 + CBitFieldMaskBit47 = 0x10000 + CBitFieldMaskBit48 = 0x8000 + CBitFieldMaskBit49 = 0x4000 + CBitFieldMaskBit50 = 0x2000 + CBitFieldMaskBit51 = 0x1000 + CBitFieldMaskBit52 = 0x800 + CBitFieldMaskBit53 = 0x400 + CBitFieldMaskBit54 = 0x200 + CBitFieldMaskBit55 = 0x100 + CBitFieldMaskBit56 = 0x80 + CBitFieldMaskBit57 = 0x40 + CBitFieldMaskBit58 = 0x20 + CBitFieldMaskBit59 = 0x10 + CBitFieldMaskBit60 = 0x8 + CBitFieldMaskBit61 = 0x4 + CBitFieldMaskBit62 = 0x2 + CBitFieldMaskBit63 = 0x1 +) + +type SockaddrStorage struct { + Family uint16 + Data [118]byte + _ uint64 +} + +type HDGeometry struct { + Heads uint8 + Sectors uint8 + Cylinders uint16 + Start uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type TpacketHdr struct { + Status uint64 + Len uint32 + Snaplen uint32 + Mac uint16 + Net uint16 + Sec uint32 + Usec uint32 + _ [4]byte +} + +const ( + SizeofTpacketHdr = 0x20 +) + +type RTCPLLInfo struct { + Ctrl int32 + Value int32 + Max int32 + Min int32 + Posmult int32 + Negmult int32 + Clock int64 +} + +type BlkpgPartition struct { + Start int64 + Length int64 + Pno int32 + Devname [64]uint8 + Volname [64]uint8 + _ [4]byte +} + +const ( + BLKPG = 0x20001269 +) + +type XDPUmemReg struct { + Addr uint64 + Len uint64 + Size uint32 + Headroom uint32 + Flags uint32 + _ [4]byte +} + +type CryptoUserAlg struct { + Name [64]int8 + Driver_name [64]int8 + Module_name [64]int8 + Type uint32 + Mask uint32 + Refcnt uint32 + Flags uint32 +} + +type CryptoStatAEAD struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatAKCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Verify_cnt uint64 + Sign_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatCipher struct { + Type [64]int8 + Encrypt_cnt uint64 + Encrypt_tlen uint64 + Decrypt_cnt uint64 + Decrypt_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatCompress struct { + Type [64]int8 + Compress_cnt uint64 + Compress_tlen uint64 + Decompress_cnt uint64 + Decompress_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatHash struct { + Type [64]int8 + Hash_cnt uint64 + Hash_tlen uint64 + Err_cnt uint64 +} + +type CryptoStatKPP struct { + Type [64]int8 + Setsecret_cnt uint64 + Generate_public_key_cnt uint64 + Compute_shared_secret_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatRNG struct { + Type [64]int8 + Generate_cnt uint64 + Generate_tlen uint64 + Seed_cnt uint64 + Err_cnt uint64 +} + +type CryptoStatLarval struct { + Type [64]int8 +} + +type CryptoReportLarval struct { + Type [64]int8 +} + +type CryptoReportHash struct { + Type [64]int8 + Blocksize uint32 + Digestsize uint32 +} + +type CryptoReportCipher struct { + Type [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 +} + +type CryptoReportBlkCipher struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Min_keysize uint32 + Max_keysize uint32 + Ivsize uint32 +} + +type CryptoReportAEAD struct { + Type [64]int8 + Geniv [64]int8 + Blocksize uint32 + Maxauthsize uint32 + Ivsize uint32 +} + +type CryptoReportComp struct { + Type [64]int8 +} + +type CryptoReportRNG struct { + Type [64]int8 + Seedsize uint32 +} + +type CryptoReportAKCipher struct { + Type [64]int8 +} + +type CryptoReportKPP struct { + Type [64]int8 +} + +type CryptoReportAcomp struct { + Type [64]int8 +} + +type LoopInfo struct { + Number int32 + Device uint32 + Inode uint64 + Rdevice uint32 + Offset int32 + Encrypt_type int32 + Encrypt_key_size int32 + Flags int32 + Name [64]int8 + Encrypt_key [32]uint8 + Init [2]uint64 + Reserved [4]int8 + _ [4]byte +} + +type TIPCSubscr struct { + Seq TIPCServiceRange + Timeout uint32 + Filter uint32 + Handle [8]int8 +} + +type TIPCSIOCLNReq struct { + Peer uint32 + Id uint32 + Linkname [68]int8 +} + +type TIPCSIOCNodeIDReq struct { + Peer uint32 + Id [16]int8 +} + +type PPSKInfo struct { + Assert_sequence uint32 + Clear_sequence uint32 + Assert_tu PPSKTime + Clear_tu PPSKTime + Current_mode int32 + _ [4]byte +} + +const ( + PPS_GETPARAMS = 0x400870a1 + PPS_SETPARAMS = 0x800870a2 + PPS_GETCAP = 0x400870a3 + PPS_FETCH = 0xc00870a4 +) + +const ( + PIDFD_NONBLOCK = 0x4000 +) + +type SysvIpcPerm struct { + Key int32 + Uid uint32 + Gid uint32 + Cuid uint32 + Cgid uint32 + Mode uint32 + _ uint16 + Seq uint16 + _ uint64 + _ uint64 +} +type SysvShmDesc struct { + Perm SysvIpcPerm + Atime int64 + Dtime int64 + Ctime int64 + Segsz uint64 + Cpid int32 + Lpid int32 + Nattch uint64 + _ uint64 + _ uint64 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go new file mode 100644 index 0000000000..9bc4c8f9d8 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go @@ -0,0 +1,586 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && netbsd +// +build 386,netbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x84 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData + Pad_cgo_1 [4]byte +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go new file mode 100644 index 0000000000..bb05f655d2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go @@ -0,0 +1,594 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && netbsd +// +build amd64,netbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go new file mode 100644 index 0000000000..db40e3a19c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go @@ -0,0 +1,591 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && netbsd +// +build arm,netbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint32 + Bsize uint32 + Frsize uint32 + Iosize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint32 + Namemax uint32 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 + Pad_cgo_0 [4]byte +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go new file mode 100644 index 0000000000..11121151cc --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go @@ -0,0 +1,594 @@ +// cgo -godefs types_netbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && netbsd +// +build arm64,netbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + _ [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + _ [4]byte + Rdev uint64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Btim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + _ [4]byte +} + +type Statfs_t [0]byte + +type Statvfs_t struct { + Flag uint64 + Bsize uint64 + Frsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Bresvd uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fresvd uint64 + Syncreads uint64 + Syncwrites uint64 + Asyncreads uint64 + Asyncwrites uint64 + Fsidx Fsid + Fsid uint64 + Namemax uint64 + Owner uint32 + Spare [4]uint32 + Fstypename [32]byte + Mntonname [1024]byte + Mntfromname [1024]byte + _ [4]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + PathMax = 0x400 +) + +const ( + ST_WAIT = 0x1 + ST_NOWAIT = 0x2 +) + +const ( + FADV_NORMAL = 0x0 + FADV_RANDOM = 0x1 + FADV_SEQUENTIAL = 0x2 + FADV_WILLNEED = 0x3 + FADV_DONTNEED = 0x4 + FADV_NOREUSE = 0x5 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type Ptmget struct { + Cfd int32 + Sfd int32 + Cn [1024]byte + Sn [1024]byte +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x100 + AT_SYMLINK_NOFOLLOW = 0x200 + AT_SYMLINK_FOLLOW = 0x400 + AT_REMOVEDIR = 0x800 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x278 + +type Uvmexp struct { + Pagesize int64 + Pagemask int64 + Pageshift int64 + Npages int64 + Free int64 + Active int64 + Inactive int64 + Paging int64 + Wired int64 + Zeropages int64 + Reserve_pagedaemon int64 + Reserve_kernel int64 + Freemin int64 + Freetarg int64 + Inactarg int64 + Wiredmax int64 + Nswapdev int64 + Swpages int64 + Swpginuse int64 + Swpgonly int64 + Nswget int64 + Unused1 int64 + Cpuhit int64 + Cpumiss int64 + Faults int64 + Traps int64 + Intrs int64 + Swtch int64 + Softs int64 + Syscalls int64 + Pageins int64 + Swapins int64 + Swapouts int64 + Pgswapin int64 + Pgswapout int64 + Forks int64 + Forks_ppwait int64 + Forks_sharevm int64 + Pga_zerohit int64 + Pga_zeromiss int64 + Zeroaborts int64 + Fltnoram int64 + Fltnoanon int64 + Fltpgwait int64 + Fltpgrele int64 + Fltrelck int64 + Fltrelckok int64 + Fltanget int64 + Fltanretry int64 + Fltamcopy int64 + Fltnamap int64 + Fltnomap int64 + Fltlget int64 + Fltget int64 + Flt_anon int64 + Flt_acow int64 + Flt_obj int64 + Flt_prcopy int64 + Flt_przero int64 + Pdwoke int64 + Pdrevs int64 + Unused4 int64 + Pdfreed int64 + Pdscans int64 + Pdanscan int64 + Pdobscan int64 + Pdreact int64 + Pdbusy int64 + Pdpageouts int64 + Pdpending int64 + Pddeact int64 + Anonpages int64 + Filepages int64 + Execpages int64 + Colorhit int64 + Colormiss int64 + Ncolors int64 + Bootpages int64 + Poolpages int64 +} + +const SizeofClockinfo = 0x14 + +type Clockinfo struct { + Hz int32 + Tick int32 + Tickadj int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go new file mode 100644 index 0000000000..26eba23b72 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go @@ -0,0 +1,569 @@ +// cgo -godefs types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build 386 && openbsd +// +build 386,openbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa0 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go new file mode 100644 index 0000000000..5a54798869 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go @@ -0,0 +1,569 @@ +// cgo -godefs types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && openbsd +// +build amd64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go new file mode 100644 index 0000000000..be58c4e1ff --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go @@ -0,0 +1,576 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm && openbsd +// +build arm,openbsd + +package unix + +const ( + SizeofPtr = 0x4 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x4 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + _ [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + _ [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ [4]byte + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + _ [4]byte + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + _ [4]byte + Data int64 + Udata *byte + _ [4]byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + _ [4]byte + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go new file mode 100644 index 0000000000..52338266cb --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go @@ -0,0 +1,569 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build arm64 && openbsd +// +build arm64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go new file mode 100644 index 0000000000..605cfdb12b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go @@ -0,0 +1,569 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build mips64 && openbsd +// +build mips64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go new file mode 100644 index 0000000000..d6724c0102 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go @@ -0,0 +1,571 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build ppc64 && openbsd +// +build ppc64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go new file mode 100644 index 0000000000..ddfd27a434 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go @@ -0,0 +1,571 @@ +// cgo -godefs -- -fsigned-char types_openbsd.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build riscv64 && openbsd +// +build riscv64,openbsd + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + _ Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]byte + F_mntonname [90]byte + F_mntfromname [90]byte + F_mntfromspec [90]byte + _ [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + _ [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + PathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x18 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Ifidx uint16 + Flowid uint16 + Flags uint8 + Drops uint8 +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +const ( + AT_FDCWD = -0x64 + AT_EACCESS = 0x1 + AT_SYMLINK_NOFOLLOW = 0x2 + AT_SYMLINK_FOLLOW = 0x4 + AT_REMOVEDIR = 0x8 +) + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type Sigset_t uint32 + +type Utsname struct { + Sysname [256]byte + Nodename [256]byte + Release [256]byte + Version [256]byte + Machine [256]byte +} + +const SizeofUvmexp = 0x158 + +type Uvmexp struct { + Pagesize int32 + Pagemask int32 + Pageshift int32 + Npages int32 + Free int32 + Active int32 + Inactive int32 + Paging int32 + Wired int32 + Zeropages int32 + Reserve_pagedaemon int32 + Reserve_kernel int32 + Unused01 int32 + Vnodepages int32 + Vtextpages int32 + Freemin int32 + Freetarg int32 + Inactarg int32 + Wiredmax int32 + Anonmin int32 + Vtextmin int32 + Vnodemin int32 + Anonminpct int32 + Vtextminpct int32 + Vnodeminpct int32 + Nswapdev int32 + Swpages int32 + Swpginuse int32 + Swpgonly int32 + Nswget int32 + Nanon int32 + Unused05 int32 + Unused06 int32 + Faults int32 + Traps int32 + Intrs int32 + Swtch int32 + Softs int32 + Syscalls int32 + Pageins int32 + Unused07 int32 + Unused08 int32 + Pgswapin int32 + Pgswapout int32 + Forks int32 + Forks_ppwait int32 + Forks_sharevm int32 + Pga_zerohit int32 + Pga_zeromiss int32 + Unused09 int32 + Fltnoram int32 + Fltnoanon int32 + Fltnoamap int32 + Fltpgwait int32 + Fltpgrele int32 + Fltrelck int32 + Fltrelckok int32 + Fltanget int32 + Fltanretry int32 + Fltamcopy int32 + Fltnamap int32 + Fltnomap int32 + Fltlget int32 + Fltget int32 + Flt_anon int32 + Flt_acow int32 + Flt_obj int32 + Flt_prcopy int32 + Flt_przero int32 + Pdwoke int32 + Pdrevs int32 + Pdswout int32 + Pdfreed int32 + Pdscans int32 + Pdanscan int32 + Pdobscan int32 + Pdreact int32 + Pdbusy int32 + Pdpageouts int32 + Pdpending int32 + Pddeact int32 + Unused11 int32 + Unused12 int32 + Unused13 int32 + Fpswtch int32 + Kmapent int32 +} + +const SizeofClockinfo = 0x10 + +type Clockinfo struct { + Hz int32 + Tick int32 + Stathz int32 + Profhz int32 +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go new file mode 100644 index 0000000000..0400747c67 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go @@ -0,0 +1,517 @@ +// cgo -godefs types_solaris.go | go run mkpost.go +// Code generated by the command above; see README.md. DO NOT EDIT. + +//go:build amd64 && solaris +// +build amd64,solaris + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x400 + MaxHostNameLen = 0x100 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Blocks int64 + Fstype [16]int8 +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Sysid int32 + Pid int32 + Pad [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Name [1]int8 + _ [5]byte +} + +type _Fsblkcnt_t uint64 + +type Statvfs_t struct { + Bsize uint64 + Frsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Favail uint64 + Fsid uint64 + Basetype [16]int8 + Flag uint64 + Namemax uint64 + Fstr [32]int8 +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + _ uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [236]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Accrights *int8 + Accrightslen int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x20 + SizeofSockaddrAny = 0xfc + SizeofSockaddrUnix = 0x6e + SizeofSockaddrDatalink = 0xfc + SizeofLinger = 0x8 + SizeofIovec = 0x10 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x24 + SizeofICMPv6Filter = 0x20 +) + +type FdSet struct { + Bits [1024]int64 +} + +type Utsname struct { + Sysname [257]byte + Nodename [257]byte + Release [257]byte + Version [257]byte + Machine [257]byte +} + +type Ustat_t struct { + Tfree int64 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + _ [4]byte +} + +const ( + AT_FDCWD = 0xffd19553 + AT_SYMLINK_NOFOLLOW = 0x1000 + AT_SYMLINK_FOLLOW = 0x2000 + AT_REMOVEDIR = 0x1 + AT_EACCESS = 0x4 +) + +const ( + SizeofIfMsghdr = 0x54 + SizeofIfData = 0x44 + SizeofIfaMsghdr = 0x14 + SizeofRtMsghdr = 0x4c + SizeofRtMetrics = 0x28 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Lastchange Timeval32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Metric int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + _ [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + _ [2]byte +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + _ [1]byte +} + +type Termio struct { + Iflag uint16 + Oflag uint16 + Cflag uint16 + Lflag uint16 + Line int8 + Cc [8]uint8 + _ [1]byte +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +const ( + POLLERR = 0x8 + POLLHUP = 0x10 + POLLIN = 0x1 + POLLNVAL = 0x20 + POLLOUT = 0x4 + POLLPRI = 0x2 + POLLRDBAND = 0x80 + POLLRDNORM = 0x40 + POLLWRBAND = 0x100 + POLLWRNORM = 0x4 +) + +type fileObj struct { + Atim Timespec + Mtim Timespec + Ctim Timespec + Pad [3]uint64 + Name *int8 +} + +type portEvent struct { + Events int32 + Source uint16 + Pad uint16 + Object uint64 + User *byte +} + +const ( + PORT_SOURCE_AIO = 0x1 + PORT_SOURCE_TIMER = 0x2 + PORT_SOURCE_USER = 0x3 + PORT_SOURCE_FD = 0x4 + PORT_SOURCE_ALERT = 0x5 + PORT_SOURCE_MQ = 0x6 + PORT_SOURCE_FILE = 0x7 + PORT_ALERT_SET = 0x1 + PORT_ALERT_UPDATE = 0x2 + PORT_ALERT_INVALID = 0x3 + FILE_ACCESS = 0x1 + FILE_MODIFIED = 0x2 + FILE_ATTRIB = 0x4 + FILE_TRUNC = 0x100000 + FILE_NOFOLLOW = 0x10000000 + FILE_DELETE = 0x10 + FILE_RENAME_TO = 0x20 + FILE_RENAME_FROM = 0x40 + UNMOUNTED = 0x20000000 + MOUNTEDOVER = 0x40000000 + FILE_EXCEPTION = 0x60000070 +) + +const ( + TUNNEWPPA = 0x540001 + TUNSETPPA = 0x540002 + + I_STR = 0x5308 + I_POP = 0x5303 + I_PUSH = 0x5302 + I_LINK = 0x530c + I_UNLINK = 0x530d + I_PLINK = 0x5316 + I_PUNLINK = 0x5317 + + IF_UNITSEL = -0x7ffb8cca +) + +type strbuf struct { + Maxlen int32 + Len int32 + Buf *int8 +} + +type Strioctl struct { + Cmd int32 + Timout int32 + Len int32 + Dp *int8 +} + +type Lifreq struct { + Name [32]int8 + Lifru1 [4]byte + Type uint32 + Lifru [336]byte +} diff --git a/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go new file mode 100644 index 0000000000..aec1efcb30 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go @@ -0,0 +1,415 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build zos && s390x +// +build zos,s390x + +// Hand edited based on ztypes_linux_s390x.go +// TODO: auto-generate. + +package unix + +const ( + SizeofPtr = 0x8 + SizeofShort = 0x2 + SizeofInt = 0x4 + SizeofLong = 0x8 + SizeofLongLong = 0x8 + PathMax = 0x1000 +) + +const ( + SizeofSockaddrAny = 128 + SizeofCmsghdr = 12 + SizeofIPMreq = 8 + SizeofIPv6Mreq = 20 + SizeofICMPv6Filter = 32 + SizeofIPv6MTUInfo = 32 + SizeofLinger = 8 + SizeofSockaddrInet4 = 16 + SizeofSockaddrInet6 = 28 + SizeofTCPInfo = 0x68 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type timeval_zos struct { //correct (with padding and all) + Sec int64 + _ [4]byte // pad + Usec int32 +} + +type Tms struct { //clock_t is 4-byte unsigned int in zos + Utime uint32 + Stime uint32 + Cutime uint32 + Cstime uint32 +} + +type Time_t int64 + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Utsname struct { + Sysname [65]byte + Nodename [65]byte + Release [65]byte + Version [65]byte + Machine [65]byte + Domainname [65]byte +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [108]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + _ [112]uint8 // pad +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Iov *Iovec + Control *byte + Flags int32 + Namelen int32 + Iovlen int32 + Controllen int32 +} + +type Cmsghdr struct { + Len int32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Addr [4]byte /* in_addr */ + Ifindex uint32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +type _Gid_t uint32 + +type rusage_zos struct { + Utime timeval_zos + Stime timeval_zos +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +// { int, short, short } in poll.h +type PollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Stat_t struct { //Linux Definition + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + _ [3]int64 +} + +type Stat_LE_t struct { + _ [4]byte // eye catcher + Length uint16 + Version uint16 + Mode int32 + Ino uint32 + Dev uint32 + Nlink int32 + Uid int32 + Gid int32 + Size int64 + Atim31 [4]byte + Mtim31 [4]byte + Ctim31 [4]byte + Rdev uint32 + Auditoraudit uint32 + Useraudit uint32 + Blksize int32 + Creatim31 [4]byte + AuditID [16]byte + _ [4]byte // rsrvd1 + File_tag struct { + Ccsid uint16 + Txtflag uint16 // aggregating Txflag:1 deferred:1 rsvflags:14 + } + CharsetID [8]byte + Blocks int64 + Genvalue uint32 + Reftim31 [4]byte + Fid [8]byte + Filefmt byte + Fspflag2 byte + _ [2]byte // rsrvd2 + Ctimemsec int32 + Seclabel [8]byte + _ [4]byte // rsrvd3 + _ [4]byte // rsrvd4 + Atim Time_t + Mtim Time_t + Ctim Time_t + Creatim Time_t + Reftim Time_t + _ [24]byte // rsrvd5 +} + +type Statvfs_t struct { + ID [4]byte + Len int32 + Bsize uint64 + Blocks uint64 + Usedspace uint64 + Bavail uint64 + Flag uint64 + Maxfilesize int64 + _ [16]byte + Frsize uint64 + Bfree uint64 + Files uint32 + Ffree uint32 + Favail uint32 + Namemax31 uint32 + Invarsec uint32 + _ [4]byte + Fsid uint64 + Namemax uint64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint32 + Ffree uint32 + Fsid uint64 + Namelen uint64 + Frsize uint64 + Flags uint64 +} + +type direntLE struct { + Reclen uint16 + Namlen uint16 + Ino uint32 + Extra uintptr + Name [256]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type FdSet struct { + Bits [64]int32 +} + +// This struct is packed on z/OS so it can't be used directly. +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type Termios struct { + Cflag uint32 + Iflag uint32 + Lflag uint32 + Oflag uint32 + Cc [11]uint8 +} + +type Winsize struct { + Row uint16 + Col uint16 + Xpixel uint16 + Ypixel uint16 +} + +type W_Mnth struct { + Hid [4]byte + Size int32 + Cur1 int32 //32bit pointer + Cur2 int32 //^ + Devno uint32 + _ [4]byte +} + +type W_Mntent struct { + Fstype uint32 + Mode uint32 + Dev uint32 + Parentdev uint32 + Rootino uint32 + Status byte + Ddname [9]byte + Fstname [9]byte + Fsname [45]byte + Pathlen uint32 + Mountpoint [1024]byte + Jobname [8]byte + PID int32 + Parmoffset int32 + Parmlen int16 + Owner [8]byte + Quiesceowner [8]byte + _ [38]byte +} diff --git a/ecs-agent/vendor/golang.org/x/time/AUTHORS b/ecs-agent/vendor/golang.org/x/time/AUTHORS deleted file mode 100644 index 15167cd746..0000000000 --- a/ecs-agent/vendor/golang.org/x/time/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/ecs-agent/vendor/golang.org/x/time/CONTRIBUTORS b/ecs-agent/vendor/golang.org/x/time/CONTRIBUTORS deleted file mode 100644 index 1c4577e968..0000000000 --- a/ecs-agent/vendor/golang.org/x/time/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/ecs-agent/vendor/golang.org/x/time/rate/rate.go b/ecs-agent/vendor/golang.org/x/time/rate/rate.go index a98fe77827..f0e0cf3cb1 100644 --- a/ecs-agent/vendor/golang.org/x/time/rate/rate.go +++ b/ecs-agent/vendor/golang.org/x/time/rate/rate.go @@ -80,6 +80,19 @@ func (lim *Limiter) Burst() int { return lim.burst } +// TokensAt returns the number of tokens available at time t. +func (lim *Limiter) TokensAt(t time.Time) float64 { + lim.mu.Lock() + _, tokens := lim.advance(t) // does not mutate lim + lim.mu.Unlock() + return tokens +} + +// Tokens returns the number of tokens available now. +func (lim *Limiter) Tokens() float64 { + return lim.TokensAt(time.Now()) +} + // NewLimiter returns a new Limiter that allows events up to rate r and permits // bursts of at most b tokens. func NewLimiter(r Limit, b int) *Limiter { @@ -89,16 +102,16 @@ func NewLimiter(r Limit, b int) *Limiter { } } -// Allow is shorthand for AllowN(time.Now(), 1). +// Allow reports whether an event may happen now. func (lim *Limiter) Allow() bool { return lim.AllowN(time.Now(), 1) } -// AllowN reports whether n events may happen at time now. +// AllowN reports whether n events may happen at time t. // Use this method if you intend to drop / skip events that exceed the rate limit. // Otherwise use Reserve or Wait. -func (lim *Limiter) AllowN(now time.Time, n int) bool { - return lim.reserveN(now, n, 0).ok +func (lim *Limiter) AllowN(t time.Time, n int) bool { + return lim.reserveN(t, n, 0).ok } // A Reservation holds information about events that are permitted by a Limiter to happen after a delay. @@ -125,17 +138,17 @@ func (r *Reservation) Delay() time.Duration { } // InfDuration is the duration returned by Delay when a Reservation is not OK. -const InfDuration = time.Duration(1<<63 - 1) +const InfDuration = time.Duration(math.MaxInt64) // DelayFrom returns the duration for which the reservation holder must wait // before taking the reserved action. Zero duration means act immediately. // InfDuration means the limiter cannot grant the tokens requested in this // Reservation within the maximum wait time. -func (r *Reservation) DelayFrom(now time.Time) time.Duration { +func (r *Reservation) DelayFrom(t time.Time) time.Duration { if !r.ok { return InfDuration } - delay := r.timeToAct.Sub(now) + delay := r.timeToAct.Sub(t) if delay < 0 { return 0 } @@ -145,13 +158,12 @@ func (r *Reservation) DelayFrom(now time.Time) time.Duration { // Cancel is shorthand for CancelAt(time.Now()). func (r *Reservation) Cancel() { r.CancelAt(time.Now()) - return } // CancelAt indicates that the reservation holder will not perform the reserved action // and reverses the effects of this Reservation on the rate limit as much as possible, // considering that other reservations may have already been made. -func (r *Reservation) CancelAt(now time.Time) { +func (r *Reservation) CancelAt(t time.Time) { if !r.ok { return } @@ -159,7 +171,7 @@ func (r *Reservation) CancelAt(now time.Time) { r.lim.mu.Lock() defer r.lim.mu.Unlock() - if r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(now) { + if r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(t) { return } @@ -171,23 +183,21 @@ func (r *Reservation) CancelAt(now time.Time) { return } // advance time to now - now, _, tokens := r.lim.advance(now) + t, tokens := r.lim.advance(t) // calculate new number of tokens tokens += restoreTokens if burst := float64(r.lim.burst); tokens > burst { tokens = burst } // update state - r.lim.last = now + r.lim.last = t r.lim.tokens = tokens if r.timeToAct == r.lim.lastEvent { prevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens))) - if !prevEvent.Before(now) { + if !prevEvent.Before(t) { r.lim.lastEvent = prevEvent } } - - return } // Reserve is shorthand for ReserveN(time.Now(), 1). @@ -199,18 +209,20 @@ func (lim *Limiter) Reserve() *Reservation { // The Limiter takes this Reservation into account when allowing future events. // The returned Reservation’s OK() method returns false if n exceeds the Limiter's burst size. // Usage example: -// r := lim.ReserveN(time.Now(), 1) -// if !r.OK() { -// // Not allowed to act! Did you remember to set lim.burst to be > 0 ? -// return -// } -// time.Sleep(r.Delay()) -// Act() +// +// r := lim.ReserveN(time.Now(), 1) +// if !r.OK() { +// // Not allowed to act! Did you remember to set lim.burst to be > 0 ? +// return +// } +// time.Sleep(r.Delay()) +// Act() +// // Use this method if you wish to wait and slow down in accordance with the rate limit without dropping events. // If you need to respect a deadline or cancel the delay, use Wait instead. // To drop or skip events exceeding rate limit, use Allow instead. -func (lim *Limiter) ReserveN(now time.Time, n int) *Reservation { - r := lim.reserveN(now, n, InfDuration) +func (lim *Limiter) ReserveN(t time.Time, n int) *Reservation { + r := lim.reserveN(t, n, InfDuration) return &r } @@ -224,6 +236,18 @@ func (lim *Limiter) Wait(ctx context.Context) (err error) { // canceled, or the expected wait time exceeds the Context's Deadline. // The burst limit is ignored if the rate limit is Inf. func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) { + // The test code calls lim.wait with a fake timer generator. + // This is the real timer generator. + newTimer := func(d time.Duration) (<-chan time.Time, func() bool, func()) { + timer := time.NewTimer(d) + return timer.C, timer.Stop, func() {} + } + + return lim.wait(ctx, n, time.Now(), newTimer) +} + +// wait is the internal implementation of WaitN. +func (lim *Limiter) wait(ctx context.Context, n int, t time.Time, newTimer func(d time.Duration) (<-chan time.Time, func() bool, func())) error { lim.mu.Lock() burst := lim.burst limit := lim.limit @@ -239,25 +263,25 @@ func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) { default: } // Determine wait limit - now := time.Now() waitLimit := InfDuration if deadline, ok := ctx.Deadline(); ok { - waitLimit = deadline.Sub(now) + waitLimit = deadline.Sub(t) } // Reserve - r := lim.reserveN(now, n, waitLimit) + r := lim.reserveN(t, n, waitLimit) if !r.ok { return fmt.Errorf("rate: Wait(n=%d) would exceed context deadline", n) } // Wait if necessary - delay := r.DelayFrom(now) + delay := r.DelayFrom(t) if delay == 0 { return nil } - t := time.NewTimer(delay) - defer t.Stop() + ch, stop, advance := newTimer(delay) + defer stop() + advance() // only has an effect when testing select { - case <-t.C: + case <-ch: // We can proceed. return nil case <-ctx.Done(): @@ -276,13 +300,13 @@ func (lim *Limiter) SetLimit(newLimit Limit) { // SetLimitAt sets a new Limit for the limiter. The new Limit, and Burst, may be violated // or underutilized by those which reserved (using Reserve or Wait) but did not yet act // before SetLimitAt was called. -func (lim *Limiter) SetLimitAt(now time.Time, newLimit Limit) { +func (lim *Limiter) SetLimitAt(t time.Time, newLimit Limit) { lim.mu.Lock() defer lim.mu.Unlock() - now, _, tokens := lim.advance(now) + t, tokens := lim.advance(t) - lim.last = now + lim.last = t lim.tokens = tokens lim.limit = newLimit } @@ -293,13 +317,13 @@ func (lim *Limiter) SetBurst(newBurst int) { } // SetBurstAt sets a new burst size for the limiter. -func (lim *Limiter) SetBurstAt(now time.Time, newBurst int) { +func (lim *Limiter) SetBurstAt(t time.Time, newBurst int) { lim.mu.Lock() defer lim.mu.Unlock() - now, _, tokens := lim.advance(now) + t, tokens := lim.advance(t) - lim.last = now + lim.last = t lim.tokens = tokens lim.burst = newBurst } @@ -307,20 +331,32 @@ func (lim *Limiter) SetBurstAt(now time.Time, newBurst int) { // reserveN is a helper method for AllowN, ReserveN, and WaitN. // maxFutureReserve specifies the maximum reservation wait duration allowed. // reserveN returns Reservation, not *Reservation, to avoid allocation in AllowN and WaitN. -func (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duration) Reservation { +func (lim *Limiter) reserveN(t time.Time, n int, maxFutureReserve time.Duration) Reservation { lim.mu.Lock() + defer lim.mu.Unlock() if lim.limit == Inf { - lim.mu.Unlock() return Reservation{ ok: true, lim: lim, tokens: n, - timeToAct: now, + timeToAct: t, + } + } else if lim.limit == 0 { + var ok bool + if lim.burst >= n { + ok = true + lim.burst -= n + } + return Reservation{ + ok: ok, + lim: lim, + tokens: lim.burst, + timeToAct: t, } } - now, last, tokens := lim.advance(now) + t, tokens := lim.advance(t) // Calculate the remaining number of tokens resulting from the request. tokens -= float64(n) @@ -342,61 +378,51 @@ func (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duratio } if ok { r.tokens = n - r.timeToAct = now.Add(waitDuration) - } + r.timeToAct = t.Add(waitDuration) - // Update state - if ok { - lim.last = now + // Update state + lim.last = t lim.tokens = tokens lim.lastEvent = r.timeToAct - } else { - lim.last = last } - lim.mu.Unlock() return r } // advance calculates and returns an updated state for lim resulting from the passage of time. // lim is not changed. // advance requires that lim.mu is held. -func (lim *Limiter) advance(now time.Time) (newNow time.Time, newLast time.Time, newTokens float64) { +func (lim *Limiter) advance(t time.Time) (newT time.Time, newTokens float64) { last := lim.last - if now.Before(last) { - last = now - } - - // Avoid making delta overflow below when last is very old. - maxElapsed := lim.limit.durationFromTokens(float64(lim.burst) - lim.tokens) - elapsed := now.Sub(last) - if elapsed > maxElapsed { - elapsed = maxElapsed + if t.Before(last) { + last = t } // Calculate the new number of tokens, due to time that passed. + elapsed := t.Sub(last) delta := lim.limit.tokensFromDuration(elapsed) tokens := lim.tokens + delta if burst := float64(lim.burst); tokens > burst { tokens = burst } - - return now, last, tokens + return t, tokens } // durationFromTokens is a unit conversion function from the number of tokens to the duration // of time it takes to accumulate them at a rate of limit tokens per second. func (limit Limit) durationFromTokens(tokens float64) time.Duration { + if limit <= 0 { + return InfDuration + } seconds := tokens / float64(limit) - return time.Nanosecond * time.Duration(1e9*seconds) + return time.Duration(float64(time.Second) * seconds) } // tokensFromDuration is a unit conversion function from a time duration to the number of tokens // which could be accumulated during that duration at a rate of limit tokens per second. func (limit Limit) tokensFromDuration(d time.Duration) float64 { - // Split the integer and fractional parts ourself to minimize rounding errors. - // See golang.org/issues/34861. - sec := float64(d/time.Second) * float64(limit) - nsec := float64(d%time.Second) * float64(limit) - return sec + nsec/1e9 + if limit <= 0 { + return 0 + } + return d.Seconds() * float64(limit) } diff --git a/ecs-agent/vendor/golang.org/x/time/rate/sometimes.go b/ecs-agent/vendor/golang.org/x/time/rate/sometimes.go new file mode 100644 index 0000000000..6ba99ddb67 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/time/rate/sometimes.go @@ -0,0 +1,67 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rate + +import ( + "sync" + "time" +) + +// Sometimes will perform an action occasionally. The First, Every, and +// Interval fields govern the behavior of Do, which performs the action. +// A zero Sometimes value will perform an action exactly once. +// +// # Example: logging with rate limiting +// +// var sometimes = rate.Sometimes{First: 3, Interval: 10*time.Second} +// func Spammy() { +// sometimes.Do(func() { log.Info("here I am!") }) +// } +type Sometimes struct { + First int // if non-zero, the first N calls to Do will run f. + Every int // if non-zero, every Nth call to Do will run f. + Interval time.Duration // if non-zero and Interval has elapsed since f's last run, Do will run f. + + mu sync.Mutex + count int // number of Do calls + last time.Time // last time f was run +} + +// Do runs the function f as allowed by First, Every, and Interval. +// +// The model is a union (not intersection) of filters. The first call to Do +// always runs f. Subsequent calls to Do run f if allowed by First or Every or +// Interval. +// +// A non-zero First:N causes the first N Do(f) calls to run f. +// +// A non-zero Every:M causes every Mth Do(f) call, starting with the first, to +// run f. +// +// A non-zero Interval causes Do(f) to run f if Interval has elapsed since +// Do last ran f. +// +// Specifying multiple filters produces the union of these execution streams. +// For example, specifying both First:N and Every:M causes the first N Do(f) +// calls and every Mth Do(f) call, starting with the first, to run f. See +// Examples for more. +// +// If Do is called multiple times simultaneously, the calls will block and run +// serially. Therefore, Do is intended for lightweight operations. +// +// Because a call to Do may block until f returns, if f causes Do to be called, +// it will deadlock. +func (s *Sometimes) Do(f func()) { + s.mu.Lock() + defer s.mu.Unlock() + if s.count == 0 || + (s.First > 0 && s.count < s.First) || + (s.Every > 0 && s.count%s.Every == 0) || + (s.Interval > 0 && time.Since(s.last) >= s.Interval) { + f() + s.last = time.Now() + } + s.count++ +} diff --git a/ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go b/ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go new file mode 100644 index 0000000000..998d1a51bf --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go @@ -0,0 +1,657 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer +// interface. Given the name of a (signed or unsigned) integer type T that has constants +// defined, stringer will create a new self-contained Go source file implementing +// +// func (t T) String() string +// +// The file is created in the same package and directory as the package that defines T. +// It has helpful defaults designed for use with go generate. +// +// Stringer works best with constants that are consecutive values such as created using iota, +// but creates good code regardless. In the future it might also provide custom support for +// constant sets that are bit patterns. +// +// For example, given this snippet, +// +// package painkiller +// +// type Pill int +// +// const ( +// Placebo Pill = iota +// Aspirin +// Ibuprofen +// Paracetamol +// Acetaminophen = Paracetamol +// ) +// +// running this command +// +// stringer -type=Pill +// +// in the same directory will create the file pill_string.go, in package painkiller, +// containing a definition of +// +// func (Pill) String() string +// +// That method will translate the value of a Pill constant to the string representation +// of the respective constant name, so that the call fmt.Print(painkiller.Aspirin) will +// print the string "Aspirin". +// +// Typically this process would be run using go generate, like this: +// +// //go:generate stringer -type=Pill +// +// If multiple constants have the same value, the lexically first matching name will +// be used (in the example, Acetaminophen will print as "Paracetamol"). +// +// With no arguments, it processes the package in the current directory. +// Otherwise, the arguments must name a single directory holding a Go package +// or a set of Go source files that represent a single Go package. +// +// The -type flag accepts a comma-separated list of types so a single run can +// generate methods for multiple types. The default output file is t_string.go, +// where t is the lower-cased name of the first type listed. It can be overridden +// with the -output flag. +// +// The -linecomment flag tells stringer to generate the text of any line comment, trimmed +// of leading spaces, instead of the constant name. For instance, if the constants above had a +// Pill prefix, one could write +// +// PillAspirin // Aspirin +// +// to suppress it in the output. +package main // import "golang.org/x/tools/cmd/stringer" + +import ( + "bytes" + "flag" + "fmt" + "go/ast" + "go/constant" + "go/format" + "go/token" + "go/types" + "log" + "os" + "path/filepath" + "sort" + "strings" + + "golang.org/x/tools/go/packages" +) + +var ( + typeNames = flag.String("type", "", "comma-separated list of type names; must be set") + output = flag.String("output", "", "output file name; default srcdir/_string.go") + trimprefix = flag.String("trimprefix", "", "trim the `prefix` from the generated constant names") + linecomment = flag.Bool("linecomment", false, "use line comment text as printed text when present") + buildTags = flag.String("tags", "", "comma-separated list of build tags to apply") +) + +// Usage is a replacement usage function for the flags package. +func Usage() { + fmt.Fprintf(os.Stderr, "Usage of stringer:\n") + fmt.Fprintf(os.Stderr, "\tstringer [flags] -type T [directory]\n") + fmt.Fprintf(os.Stderr, "\tstringer [flags] -type T files... # Must be a single package\n") + fmt.Fprintf(os.Stderr, "For more information, see:\n") + fmt.Fprintf(os.Stderr, "\thttps://pkg.go.dev/golang.org/x/tools/cmd/stringer\n") + fmt.Fprintf(os.Stderr, "Flags:\n") + flag.PrintDefaults() +} + +func main() { + log.SetFlags(0) + log.SetPrefix("stringer: ") + flag.Usage = Usage + flag.Parse() + if len(*typeNames) == 0 { + flag.Usage() + os.Exit(2) + } + types := strings.Split(*typeNames, ",") + var tags []string + if len(*buildTags) > 0 { + tags = strings.Split(*buildTags, ",") + } + + // We accept either one directory or a list of files. Which do we have? + args := flag.Args() + if len(args) == 0 { + // Default: process whole package in current directory. + args = []string{"."} + } + + // Parse the package once. + var dir string + g := Generator{ + trimPrefix: *trimprefix, + lineComment: *linecomment, + } + // TODO(suzmue): accept other patterns for packages (directories, list of files, import paths, etc). + if len(args) == 1 && isDirectory(args[0]) { + dir = args[0] + } else { + if len(tags) != 0 { + log.Fatal("-tags option applies only to directories, not when files are specified") + } + dir = filepath.Dir(args[0]) + } + + g.parsePackage(args, tags) + + // Print the header and package clause. + g.Printf("// Code generated by \"stringer %s\"; DO NOT EDIT.\n", strings.Join(os.Args[1:], " ")) + g.Printf("\n") + g.Printf("package %s", g.pkg.name) + g.Printf("\n") + g.Printf("import \"strconv\"\n") // Used by all methods. + + // Run generate for each type. + for _, typeName := range types { + g.generate(typeName) + } + + // Format the output. + src := g.format() + + // Write to file. + outputName := *output + if outputName == "" { + baseName := fmt.Sprintf("%s_string.go", types[0]) + outputName = filepath.Join(dir, strings.ToLower(baseName)) + } + err := os.WriteFile(outputName, src, 0644) + if err != nil { + log.Fatalf("writing output: %s", err) + } +} + +// isDirectory reports whether the named file is a directory. +func isDirectory(name string) bool { + info, err := os.Stat(name) + if err != nil { + log.Fatal(err) + } + return info.IsDir() +} + +// Generator holds the state of the analysis. Primarily used to buffer +// the output for format.Source. +type Generator struct { + buf bytes.Buffer // Accumulated output. + pkg *Package // Package we are scanning. + + trimPrefix string + lineComment bool +} + +func (g *Generator) Printf(format string, args ...interface{}) { + fmt.Fprintf(&g.buf, format, args...) +} + +// File holds a single parsed file and associated data. +type File struct { + pkg *Package // Package to which this file belongs. + file *ast.File // Parsed AST. + // These fields are reset for each type being generated. + typeName string // Name of the constant type. + values []Value // Accumulator for constant values of that type. + + trimPrefix string + lineComment bool +} + +type Package struct { + name string + defs map[*ast.Ident]types.Object + files []*File +} + +// parsePackage analyzes the single package constructed from the patterns and tags. +// parsePackage exits if there is an error. +func (g *Generator) parsePackage(patterns []string, tags []string) { + cfg := &packages.Config{ + Mode: packages.NeedName | packages.NeedTypes | packages.NeedTypesInfo | packages.NeedSyntax, + // TODO: Need to think about constants in test files. Maybe write type_string_test.go + // in a separate pass? For later. + Tests: false, + BuildFlags: []string{fmt.Sprintf("-tags=%s", strings.Join(tags, " "))}, + } + pkgs, err := packages.Load(cfg, patterns...) + if err != nil { + log.Fatal(err) + } + if len(pkgs) != 1 { + log.Fatalf("error: %d packages found", len(pkgs)) + } + g.addPackage(pkgs[0]) +} + +// addPackage adds a type checked Package and its syntax files to the generator. +func (g *Generator) addPackage(pkg *packages.Package) { + g.pkg = &Package{ + name: pkg.Name, + defs: pkg.TypesInfo.Defs, + files: make([]*File, len(pkg.Syntax)), + } + + for i, file := range pkg.Syntax { + g.pkg.files[i] = &File{ + file: file, + pkg: g.pkg, + trimPrefix: g.trimPrefix, + lineComment: g.lineComment, + } + } +} + +// generate produces the String method for the named type. +func (g *Generator) generate(typeName string) { + values := make([]Value, 0, 100) + for _, file := range g.pkg.files { + // Set the state for this run of the walker. + file.typeName = typeName + file.values = nil + if file.file != nil { + ast.Inspect(file.file, file.genDecl) + values = append(values, file.values...) + } + } + + if len(values) == 0 { + log.Fatalf("no values defined for type %s", typeName) + } + // Generate code that will fail if the constants change value. + g.Printf("func _() {\n") + g.Printf("\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n") + g.Printf("\t// Re-run the stringer command to generate them again.\n") + g.Printf("\tvar x [1]struct{}\n") + for _, v := range values { + g.Printf("\t_ = x[%s - %s]\n", v.originalName, v.str) + } + g.Printf("}\n") + runs := splitIntoRuns(values) + // The decision of which pattern to use depends on the number of + // runs in the numbers. If there's only one, it's easy. For more than + // one, there's a tradeoff between complexity and size of the data + // and code vs. the simplicity of a map. A map takes more space, + // but so does the code. The decision here (crossover at 10) is + // arbitrary, but considers that for large numbers of runs the cost + // of the linear scan in the switch might become important, and + // rather than use yet another algorithm such as binary search, + // we punt and use a map. In any case, the likelihood of a map + // being necessary for any realistic example other than bitmasks + // is very low. And bitmasks probably deserve their own analysis, + // to be done some other day. + switch { + case len(runs) == 1: + g.buildOneRun(runs, typeName) + case len(runs) <= 10: + g.buildMultipleRuns(runs, typeName) + default: + g.buildMap(runs, typeName) + } +} + +// splitIntoRuns breaks the values into runs of contiguous sequences. +// For example, given 1,2,3,5,6,7 it returns {1,2,3},{5,6,7}. +// The input slice is known to be non-empty. +func splitIntoRuns(values []Value) [][]Value { + // We use stable sort so the lexically first name is chosen for equal elements. + sort.Stable(byValue(values)) + // Remove duplicates. Stable sort has put the one we want to print first, + // so use that one. The String method won't care about which named constant + // was the argument, so the first name for the given value is the only one to keep. + // We need to do this because identical values would cause the switch or map + // to fail to compile. + j := 1 + for i := 1; i < len(values); i++ { + if values[i].value != values[i-1].value { + values[j] = values[i] + j++ + } + } + values = values[:j] + runs := make([][]Value, 0, 10) + for len(values) > 0 { + // One contiguous sequence per outer loop. + i := 1 + for i < len(values) && values[i].value == values[i-1].value+1 { + i++ + } + runs = append(runs, values[:i]) + values = values[i:] + } + return runs +} + +// format returns the gofmt-ed contents of the Generator's buffer. +func (g *Generator) format() []byte { + src, err := format.Source(g.buf.Bytes()) + if err != nil { + // Should never happen, but can arise when developing this code. + // The user can compile the output to see the error. + log.Printf("warning: internal error: invalid Go generated: %s", err) + log.Printf("warning: compile the package to analyze the error") + return g.buf.Bytes() + } + return src +} + +// Value represents a declared constant. +type Value struct { + originalName string // The name of the constant. + name string // The name with trimmed prefix. + // The value is stored as a bit pattern alone. The boolean tells us + // whether to interpret it as an int64 or a uint64; the only place + // this matters is when sorting. + // Much of the time the str field is all we need; it is printed + // by Value.String. + value uint64 // Will be converted to int64 when needed. + signed bool // Whether the constant is a signed type. + str string // The string representation given by the "go/constant" package. +} + +func (v *Value) String() string { + return v.str +} + +// byValue lets us sort the constants into increasing order. +// We take care in the Less method to sort in signed or unsigned order, +// as appropriate. +type byValue []Value + +func (b byValue) Len() int { return len(b) } +func (b byValue) Swap(i, j int) { b[i], b[j] = b[j], b[i] } +func (b byValue) Less(i, j int) bool { + if b[i].signed { + return int64(b[i].value) < int64(b[j].value) + } + return b[i].value < b[j].value +} + +// genDecl processes one declaration clause. +func (f *File) genDecl(node ast.Node) bool { + decl, ok := node.(*ast.GenDecl) + if !ok || decl.Tok != token.CONST { + // We only care about const declarations. + return true + } + // The name of the type of the constants we are declaring. + // Can change if this is a multi-element declaration. + typ := "" + // Loop over the elements of the declaration. Each element is a ValueSpec: + // a list of names possibly followed by a type, possibly followed by values. + // If the type and value are both missing, we carry down the type (and value, + // but the "go/types" package takes care of that). + for _, spec := range decl.Specs { + vspec := spec.(*ast.ValueSpec) // Guaranteed to succeed as this is CONST. + if vspec.Type == nil && len(vspec.Values) > 0 { + // "X = 1". With no type but a value. If the constant is untyped, + // skip this vspec and reset the remembered type. + typ = "" + + // If this is a simple type conversion, remember the type. + // We don't mind if this is actually a call; a qualified call won't + // be matched (that will be SelectorExpr, not Ident), and only unusual + // situations will result in a function call that appears to be + // a type conversion. + ce, ok := vspec.Values[0].(*ast.CallExpr) + if !ok { + continue + } + id, ok := ce.Fun.(*ast.Ident) + if !ok { + continue + } + typ = id.Name + } + if vspec.Type != nil { + // "X T". We have a type. Remember it. + ident, ok := vspec.Type.(*ast.Ident) + if !ok { + continue + } + typ = ident.Name + } + if typ != f.typeName { + // This is not the type we're looking for. + continue + } + // We now have a list of names (from one line of source code) all being + // declared with the desired type. + // Grab their names and actual values and store them in f.values. + for _, name := range vspec.Names { + if name.Name == "_" { + continue + } + // This dance lets the type checker find the values for us. It's a + // bit tricky: look up the object declared by the name, find its + // types.Const, and extract its value. + obj, ok := f.pkg.defs[name] + if !ok { + log.Fatalf("no value for constant %s", name) + } + info := obj.Type().Underlying().(*types.Basic).Info() + if info&types.IsInteger == 0 { + log.Fatalf("can't handle non-integer constant type %s", typ) + } + value := obj.(*types.Const).Val() // Guaranteed to succeed as this is CONST. + if value.Kind() != constant.Int { + log.Fatalf("can't happen: constant is not an integer %s", name) + } + i64, isInt := constant.Int64Val(value) + u64, isUint := constant.Uint64Val(value) + if !isInt && !isUint { + log.Fatalf("internal error: value of %s is not an integer: %s", name, value.String()) + } + if !isInt { + u64 = uint64(i64) + } + v := Value{ + originalName: name.Name, + value: u64, + signed: info&types.IsUnsigned == 0, + str: value.String(), + } + if c := vspec.Comment; f.lineComment && c != nil && len(c.List) == 1 { + v.name = strings.TrimSpace(c.Text()) + } else { + v.name = strings.TrimPrefix(v.originalName, f.trimPrefix) + } + f.values = append(f.values, v) + } + } + return false +} + +// Helpers + +// usize returns the number of bits of the smallest unsigned integer +// type that will hold n. Used to create the smallest possible slice of +// integers to use as indexes into the concatenated strings. +func usize(n int) int { + switch { + case n < 1<<8: + return 8 + case n < 1<<16: + return 16 + default: + // 2^32 is enough constants for anyone. + return 32 + } +} + +// declareIndexAndNameVars declares the index slices and concatenated names +// strings representing the runs of values. +func (g *Generator) declareIndexAndNameVars(runs [][]Value, typeName string) { + var indexes, names []string + for i, run := range runs { + index, name := g.createIndexAndNameDecl(run, typeName, fmt.Sprintf("_%d", i)) + if len(run) != 1 { + indexes = append(indexes, index) + } + names = append(names, name) + } + g.Printf("const (\n") + for _, name := range names { + g.Printf("\t%s\n", name) + } + g.Printf(")\n\n") + + if len(indexes) > 0 { + g.Printf("var (") + for _, index := range indexes { + g.Printf("\t%s\n", index) + } + g.Printf(")\n\n") + } +} + +// declareIndexAndNameVar is the single-run version of declareIndexAndNameVars +func (g *Generator) declareIndexAndNameVar(run []Value, typeName string) { + index, name := g.createIndexAndNameDecl(run, typeName, "") + g.Printf("const %s\n", name) + g.Printf("var %s\n", index) +} + +// createIndexAndNameDecl returns the pair of declarations for the run. The caller will add "const" and "var". +func (g *Generator) createIndexAndNameDecl(run []Value, typeName string, suffix string) (string, string) { + b := new(bytes.Buffer) + indexes := make([]int, len(run)) + for i := range run { + b.WriteString(run[i].name) + indexes[i] = b.Len() + } + nameConst := fmt.Sprintf("_%s_name%s = %q", typeName, suffix, b.String()) + nameLen := b.Len() + b.Reset() + fmt.Fprintf(b, "_%s_index%s = [...]uint%d{0, ", typeName, suffix, usize(nameLen)) + for i, v := range indexes { + if i > 0 { + fmt.Fprintf(b, ", ") + } + fmt.Fprintf(b, "%d", v) + } + fmt.Fprintf(b, "}") + return b.String(), nameConst +} + +// declareNameVars declares the concatenated names string representing all the values in the runs. +func (g *Generator) declareNameVars(runs [][]Value, typeName string, suffix string) { + g.Printf("const _%s_name%s = \"", typeName, suffix) + for _, run := range runs { + for i := range run { + g.Printf("%s", run[i].name) + } + } + g.Printf("\"\n") +} + +// buildOneRun generates the variables and String method for a single run of contiguous values. +func (g *Generator) buildOneRun(runs [][]Value, typeName string) { + values := runs[0] + g.Printf("\n") + g.declareIndexAndNameVar(values, typeName) + // The generated code is simple enough to write as a Printf format. + lessThanZero := "" + if values[0].signed { + lessThanZero = "i < 0 || " + } + if values[0].value == 0 { // Signed or unsigned, 0 is still 0. + g.Printf(stringOneRun, typeName, usize(len(values)), lessThanZero) + } else { + g.Printf(stringOneRunWithOffset, typeName, values[0].String(), usize(len(values)), lessThanZero) + } +} + +// Arguments to format are: +// +// [1]: type name +// [2]: size of index element (8 for uint8 etc.) +// [3]: less than zero check (for signed types) +const stringOneRun = `func (i %[1]s) String() string { + if %[3]si >= %[1]s(len(_%[1]s_index)-1) { + return "%[1]s(" + strconv.FormatInt(int64(i), 10) + ")" + } + return _%[1]s_name[_%[1]s_index[i]:_%[1]s_index[i+1]] +} +` + +// Arguments to format are: +// [1]: type name +// [2]: lowest defined value for type, as a string +// [3]: size of index element (8 for uint8 etc.) +// [4]: less than zero check (for signed types) +/* + */ +const stringOneRunWithOffset = `func (i %[1]s) String() string { + i -= %[2]s + if %[4]si >= %[1]s(len(_%[1]s_index)-1) { + return "%[1]s(" + strconv.FormatInt(int64(i + %[2]s), 10) + ")" + } + return _%[1]s_name[_%[1]s_index[i] : _%[1]s_index[i+1]] +} +` + +// buildMultipleRuns generates the variables and String method for multiple runs of contiguous values. +// For this pattern, a single Printf format won't do. +func (g *Generator) buildMultipleRuns(runs [][]Value, typeName string) { + g.Printf("\n") + g.declareIndexAndNameVars(runs, typeName) + g.Printf("func (i %s) String() string {\n", typeName) + g.Printf("\tswitch {\n") + for i, values := range runs { + if len(values) == 1 { + g.Printf("\tcase i == %s:\n", &values[0]) + g.Printf("\t\treturn _%s_name_%d\n", typeName, i) + continue + } + if values[0].value == 0 && !values[0].signed { + // For an unsigned lower bound of 0, "0 <= i" would be redundant. + g.Printf("\tcase i <= %s:\n", &values[len(values)-1]) + } else { + g.Printf("\tcase %s <= i && i <= %s:\n", &values[0], &values[len(values)-1]) + } + if values[0].value != 0 { + g.Printf("\t\ti -= %s\n", &values[0]) + } + g.Printf("\t\treturn _%s_name_%d[_%s_index_%d[i]:_%s_index_%d[i+1]]\n", + typeName, i, typeName, i, typeName, i) + } + g.Printf("\tdefault:\n") + g.Printf("\t\treturn \"%s(\" + strconv.FormatInt(int64(i), 10) + \")\"\n", typeName) + g.Printf("\t}\n") + g.Printf("}\n") +} + +// buildMap handles the case where the space is so sparse a map is a reasonable fallback. +// It's a rare situation but has simple code. +func (g *Generator) buildMap(runs [][]Value, typeName string) { + g.Printf("\n") + g.declareNameVars(runs, typeName, "") + g.Printf("\nvar _%s_map = map[%s]string{\n", typeName, typeName) + n := 0 + for _, values := range runs { + for _, value := range values { + g.Printf("\t%s: _%s_name[%d:%d],\n", &value, typeName, n, n+len(value.name)) + n += len(value.name) + } + } + g.Printf("}\n\n") + g.Printf(stringMap, typeName) +} + +// Argument to format is the type name. +const stringMap = `func (i %[1]s) String() string { + if str, ok := _%[1]s_map[i]; ok { + return str + } + return "%[1]s(" + strconv.FormatInt(int64(i), 10) + ")" +} +` diff --git a/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go new file mode 100644 index 0000000000..165ede0f8f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go @@ -0,0 +1,187 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package gcexportdata provides functions for locating, reading, and +// writing export data files containing type information produced by the +// gc compiler. This package supports go1.7 export data format and all +// later versions. +// +// Although it might seem convenient for this package to live alongside +// go/types in the standard library, this would cause version skew +// problems for developer tools that use it, since they must be able to +// consume the outputs of the gc compiler both before and after a Go +// update such as from Go 1.7 to Go 1.8. Because this package lives in +// golang.org/x/tools, sites can update their version of this repo some +// time before the Go 1.8 release and rebuild and redeploy their +// developer tools, which will then be able to consume both Go 1.7 and +// Go 1.8 export data files, so they will work before and after the +// Go update. (See discussion at https://golang.org/issue/15651.) +package gcexportdata // import "golang.org/x/tools/go/gcexportdata" + +import ( + "bufio" + "bytes" + "encoding/json" + "fmt" + "go/token" + "go/types" + "io" + "os/exec" + + "golang.org/x/tools/internal/gcimporter" +) + +// Find returns the name of an object (.o) or archive (.a) file +// containing type information for the specified import path, +// using the go command. +// If no file was found, an empty filename is returned. +// +// A relative srcDir is interpreted relative to the current working directory. +// +// Find also returns the package's resolved (canonical) import path, +// reflecting the effects of srcDir and vendoring on importPath. +// +// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, +// which is more efficient. +func Find(importPath, srcDir string) (filename, path string) { + cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) + cmd.Dir = srcDir + out, err := cmd.CombinedOutput() + if err != nil { + return "", "" + } + var data struct { + ImportPath string + Export string + } + json.Unmarshal(out, &data) + return data.Export, data.ImportPath +} + +// NewReader returns a reader for the export data section of an object +// (.o) or archive (.a) file read from r. The new reader may provide +// additional trailing data beyond the end of the export data. +func NewReader(r io.Reader) (io.Reader, error) { + buf := bufio.NewReader(r) + _, size, err := gcimporter.FindExportData(buf) + if err != nil { + return nil, err + } + + if size >= 0 { + // We were given an archive and found the __.PKGDEF in it. + // This tells us the size of the export data, and we don't + // need to return the entire file. + return &io.LimitedReader{ + R: buf, + N: size, + }, nil + } else { + // We were given an object file. As such, we don't know how large + // the export data is and must return the entire file. + return buf, nil + } +} + +// readAll works the same way as io.ReadAll, but avoids allocations and copies +// by preallocating a byte slice of the necessary size if the size is known up +// front. This is always possible when the input is an archive. In that case, +// NewReader will return the known size using an io.LimitedReader. +func readAll(r io.Reader) ([]byte, error) { + if lr, ok := r.(*io.LimitedReader); ok { + data := make([]byte, lr.N) + _, err := io.ReadFull(lr, data) + return data, err + } + return io.ReadAll(r) +} + +// Read reads export data from in, decodes it, and returns type +// information for the package. +// +// The package path (effectively its linker symbol prefix) is +// specified by path, since unlike the package name, this information +// may not be recorded in the export data. +// +// File position information is added to fset. +// +// Read may inspect and add to the imports map to ensure that references +// within the export data to other packages are consistent. The caller +// must ensure that imports[path] does not exist, or exists but is +// incomplete (see types.Package.Complete), and Read inserts the +// resulting package into this map entry. +// +// On return, the state of the reader is undefined. +func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) { + data, err := readAll(in) + if err != nil { + return nil, fmt.Errorf("reading export data for %q: %v", path, err) + } + + if bytes.HasPrefix(data, []byte("!")) { + return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) + } + + // The indexed export format starts with an 'i'; the older + // binary export format starts with a 'c', 'd', or 'v' + // (from "version"). Select appropriate importer. + if len(data) > 0 { + switch data[0] { + case 'i': + _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) + return pkg, err + + case 'v', 'c', 'd': + _, pkg, err := gcimporter.BImportData(fset, imports, data, path) + return pkg, err + + case 'u': + _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) + return pkg, err + + default: + l := len(data) + if l > 10 { + l = 10 + } + return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), path) + } + } + return nil, fmt.Errorf("empty export data for %s", path) +} + +// Write writes encoded type information for the specified package to out. +// The FileSet provides file position information for named objects. +func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error { + if _, err := io.WriteString(out, "i"); err != nil { + return err + } + return gcimporter.IExportData(out, fset, pkg) +} + +// ReadBundle reads an export bundle from in, decodes it, and returns type +// information for the packages. +// File position information is added to fset. +// +// ReadBundle may inspect and add to the imports map to ensure that references +// within the export bundle to other packages are consistent. +// +// On return, the state of the reader is undefined. +// +// Experimental: This API is experimental and may change in the future. +func ReadBundle(in io.Reader, fset *token.FileSet, imports map[string]*types.Package) ([]*types.Package, error) { + data, err := readAll(in) + if err != nil { + return nil, fmt.Errorf("reading export bundle: %v", err) + } + return gcimporter.IImportBundle(fset, imports, data) +} + +// WriteBundle writes encoded type information for the specified packages to out. +// The FileSet provides file position information for named objects. +// +// Experimental: This API is experimental and may change in the future. +func WriteBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { + return gcimporter.IExportBundle(out, fset, pkgs) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go new file mode 100644 index 0000000000..37a7247e26 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go @@ -0,0 +1,75 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package gcexportdata + +import ( + "fmt" + "go/token" + "go/types" + "os" +) + +// NewImporter returns a new instance of the types.Importer interface +// that reads type information from export data files written by gc. +// The Importer also satisfies types.ImporterFrom. +// +// Export data files are located using "go build" workspace conventions +// and the build.Default context. +// +// Use this importer instead of go/importer.For("gc", ...) to avoid the +// version-skew problems described in the documentation of this package, +// or to control the FileSet or access the imports map populated during +// package loading. +// +// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, +// which is more efficient. +func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom { + return importer{fset, imports} +} + +type importer struct { + fset *token.FileSet + imports map[string]*types.Package +} + +func (imp importer) Import(importPath string) (*types.Package, error) { + return imp.ImportFrom(importPath, "", 0) +} + +func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) { + filename, path := Find(importPath, srcDir) + if filename == "" { + if importPath == "unsafe" { + // Even for unsafe, call Find first in case + // the package was vendored. + return types.Unsafe, nil + } + return nil, fmt.Errorf("can't find import: %s", importPath) + } + + if pkg, ok := imp.imports[path]; ok && pkg.Complete() { + return pkg, nil // cache hit + } + + // open file + f, err := os.Open(filename) + if err != nil { + return nil, err + } + defer func() { + f.Close() + if err != nil { + // add file name to error + err = fmt.Errorf("reading export data: %s: %v", filename, err) + } + }() + + r, err := NewReader(f) + if err != nil { + return nil, err + } + + return Read(r, imp.fset, imp.imports, path) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go new file mode 100644 index 0000000000..18a002f82a --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go @@ -0,0 +1,49 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package packagesdriver fetches type sizes for go/packages and go/analysis. +package packagesdriver + +import ( + "context" + "fmt" + "go/types" + "strings" + + "golang.org/x/tools/internal/gocommand" +) + +var debug = false + +func GetSizesGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (types.Sizes, error) { + inv.Verb = "list" + inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} + stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) + var goarch, compiler string + if rawErr != nil { + if rawErrMsg := rawErr.Error(); strings.Contains(rawErrMsg, "cannot find main module") || strings.Contains(rawErrMsg, "go.mod file not found") { + // User's running outside of a module. All bets are off. Get GOARCH and guess compiler is gc. + // TODO(matloob): Is this a problem in practice? + inv.Verb = "env" + inv.Args = []string{"GOARCH"} + envout, enverr := gocmdRunner.Run(ctx, inv) + if enverr != nil { + return nil, enverr + } + goarch = strings.TrimSpace(envout.String()) + compiler = "gc" + } else { + return nil, friendlyErr + } + } else { + fields := strings.Fields(stdout.String()) + if len(fields) < 2 { + return nil, fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", + stdout.String(), stderr.String()) + } + goarch = fields[0] + compiler = fields[1] + } + return types.SizesFor(compiler, goarch), nil +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go new file mode 100644 index 0000000000..da4ab89fe6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go @@ -0,0 +1,220 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +/* +Package packages loads Go packages for inspection and analysis. + +The Load function takes as input a list of patterns and return a list of Package +structs describing individual packages matched by those patterns. +The LoadMode controls the amount of detail in the loaded packages. + +Load passes most patterns directly to the underlying build tool, +but all patterns with the prefix "query=", where query is a +non-empty string of letters from [a-z], are reserved and may be +interpreted as query operators. + +Two query operators are currently supported: "file" and "pattern". + +The query "file=path/to/file.go" matches the package or packages enclosing +the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" +might return the packages "fmt" and "fmt [fmt.test]". + +The query "pattern=string" causes "string" to be passed directly to +the underlying build tool. In most cases this is unnecessary, +but an application can use Load("pattern=" + x) as an escaping mechanism +to ensure that x is not interpreted as a query operator if it contains '='. + +All other query operators are reserved for future use and currently +cause Load to report an error. + +The Package struct provides basic information about the package, including + + - ID, a unique identifier for the package in the returned set; + - GoFiles, the names of the package's Go source files; + - Imports, a map from source import strings to the Packages they name; + - Types, the type information for the package's exported symbols; + - Syntax, the parsed syntax trees for the package's source code; and + - TypeInfo, the result of a complete type-check of the package syntax trees. + +(See the documentation for type Package for the complete list of fields +and more detailed descriptions.) + +For example, + + Load(nil, "bytes", "unicode...") + +returns four Package structs describing the standard library packages +bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern +can match multiple packages and that a package might be matched by +multiple patterns: in general it is not possible to determine which +packages correspond to which patterns. + +Note that the list returned by Load contains only the packages matched +by the patterns. Their dependencies can be found by walking the import +graph using the Imports fields. + +The Load function can be configured by passing a pointer to a Config as +the first argument. A nil Config is equivalent to the zero Config, which +causes Load to run in LoadFiles mode, collecting minimal information. +See the documentation for type Config for details. + +As noted earlier, the Config.Mode controls the amount of detail +reported about the loaded packages. See the documentation for type LoadMode +for details. + +Most tools should pass their command-line arguments (after any flags) +uninterpreted to the loader, so that the loader can interpret them +according to the conventions of the underlying build system. +See the Example function for typical usage. +*/ +package packages // import "golang.org/x/tools/go/packages" + +/* + +Motivation and design considerations + +The new package's design solves problems addressed by two existing +packages: go/build, which locates and describes packages, and +golang.org/x/tools/go/loader, which loads, parses and type-checks them. +The go/build.Package structure encodes too much of the 'go build' way +of organizing projects, leaving us in need of a data type that describes a +package of Go source code independent of the underlying build system. +We wanted something that works equally well with go build and vgo, and +also other build systems such as Bazel and Blaze, making it possible to +construct analysis tools that work in all these environments. +Tools such as errcheck and staticcheck were essentially unavailable to +the Go community at Google, and some of Google's internal tools for Go +are unavailable externally. +This new package provides a uniform way to obtain package metadata by +querying each of these build systems, optionally supporting their +preferred command-line notations for packages, so that tools integrate +neatly with users' build environments. The Metadata query function +executes an external query tool appropriate to the current workspace. + +Loading packages always returns the complete import graph "all the way down", +even if all you want is information about a single package, because the query +mechanisms of all the build systems we currently support ({go,vgo} list, and +blaze/bazel aspect-based query) cannot provide detailed information +about one package without visiting all its dependencies too, so there is +no additional asymptotic cost to providing transitive information. +(This property might not be true of a hypothetical 5th build system.) + +In calls to TypeCheck, all initial packages, and any package that +transitively depends on one of them, must be loaded from source. +Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from +source; D may be loaded from export data, and E may not be loaded at all +(though it's possible that D's export data mentions it, so a +types.Package may be created for it and exposed.) + +The old loader had a feature to suppress type-checking of function +bodies on a per-package basis, primarily intended to reduce the work of +obtaining type information for imported packages. Now that imports are +satisfied by export data, the optimization no longer seems necessary. + +Despite some early attempts, the old loader did not exploit export data, +instead always using the equivalent of WholeProgram mode. This was due +to the complexity of mixing source and export data packages (now +resolved by the upward traversal mentioned above), and because export data +files were nearly always missing or stale. Now that 'go build' supports +caching, all the underlying build systems can guarantee to produce +export data in a reasonable (amortized) time. + +Test "main" packages synthesized by the build system are now reported as +first-class packages, avoiding the need for clients (such as go/ssa) to +reinvent this generation logic. + +One way in which go/packages is simpler than the old loader is in its +treatment of in-package tests. In-package tests are packages that +consist of all the files of the library under test, plus the test files. +The old loader constructed in-package tests by a two-phase process of +mutation called "augmentation": first it would construct and type check +all the ordinary library packages and type-check the packages that +depend on them; then it would add more (test) files to the package and +type-check again. This two-phase approach had four major problems: +1) in processing the tests, the loader modified the library package, + leaving no way for a client application to see both the test + package and the library package; one would mutate into the other. +2) because test files can declare additional methods on types defined in + the library portion of the package, the dispatch of method calls in + the library portion was affected by the presence of the test files. + This should have been a clue that the packages were logically + different. +3) this model of "augmentation" assumed at most one in-package test + per library package, which is true of projects using 'go build', + but not other build systems. +4) because of the two-phase nature of test processing, all packages that + import the library package had to be processed before augmentation, + forcing a "one-shot" API and preventing the client from calling Load + in several times in sequence as is now possible in WholeProgram mode. + (TypeCheck mode has a similar one-shot restriction for a different reason.) + +Early drafts of this package supported "multi-shot" operation. +Although it allowed clients to make a sequence of calls (or concurrent +calls) to Load, building up the graph of Packages incrementally, +it was of marginal value: it complicated the API +(since it allowed some options to vary across calls but not others), +it complicated the implementation, +it cannot be made to work in Types mode, as explained above, +and it was less efficient than making one combined call (when this is possible). +Among the clients we have inspected, none made multiple calls to load +but could not be easily and satisfactorily modified to make only a single call. +However, applications changes may be required. +For example, the ssadump command loads the user-specified packages +and in addition the runtime package. It is tempting to simply append +"runtime" to the user-provided list, but that does not work if the user +specified an ad-hoc package such as [a.go b.go]. +Instead, ssadump no longer requests the runtime package, +but seeks it among the dependencies of the user-specified packages, +and emits an error if it is not found. + +Overlays: The Overlay field in the Config allows providing alternate contents +for Go source files, by providing a mapping from file path to contents. +go/packages will pull in new imports added in overlay files when go/packages +is run in LoadImports mode or greater. +Overlay support for the go list driver isn't complete yet: if the file doesn't +exist on disk, it will only be recognized in an overlay if it is a non-test file +and the package would be reported even without the overlay. + +Questions & Tasks + +- Add GOARCH/GOOS? + They are not portable concepts, but could be made portable. + Our goal has been to allow users to express themselves using the conventions + of the underlying build system: if the build system honors GOARCH + during a build and during a metadata query, then so should + applications built atop that query mechanism. + Conversely, if the target architecture of the build is determined by + command-line flags, the application can pass the relevant + flags through to the build system using a command such as: + myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin" + However, this approach is low-level, unwieldy, and non-portable. + GOOS and GOARCH seem important enough to warrant a dedicated option. + +- How should we handle partial failures such as a mixture of good and + malformed patterns, existing and non-existent packages, successful and + failed builds, import failures, import cycles, and so on, in a call to + Load? + +- Support bazel, blaze, and go1.10 list, not just go1.11 list. + +- Handle (and test) various partial success cases, e.g. + a mixture of good packages and: + invalid patterns + nonexistent packages + empty packages + packages with malformed package or import declarations + unreadable files + import cycles + other parse errors + type errors + Make sure we record errors at the correct place in the graph. + +- Missing packages among initial arguments are not reported. + Return bogus packages for them, like golist does. + +- "undeclared name" errors (for example) are reported out of source file + order. I suspect this is due to the breadth-first resolution now used + by go/types. Is that a bug? Discuss with gri. + +*/ diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/external.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/external.go new file mode 100644 index 0000000000..7242a0a7d2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/external.go @@ -0,0 +1,101 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file enables an external tool to intercept package requests. +// If the tool is present then its results are used in preference to +// the go list command. + +package packages + +import ( + "bytes" + "encoding/json" + "fmt" + exec "golang.org/x/sys/execabs" + "os" + "strings" +) + +// The Driver Protocol +// +// The driver, given the inputs to a call to Load, returns metadata about the packages specified. +// This allows for different build systems to support go/packages by telling go/packages how the +// packages' source is organized. +// The driver is a binary, either specified by the GOPACKAGESDRIVER environment variable or in +// the path as gopackagesdriver. It's given the inputs to load in its argv. See the package +// documentation in doc.go for the full description of the patterns that need to be supported. +// A driver receives as a JSON-serialized driverRequest struct in standard input and will +// produce a JSON-serialized driverResponse (see definition in packages.go) in its standard output. + +// driverRequest is used to provide the portion of Load's Config that is needed by a driver. +type driverRequest struct { + Mode LoadMode `json:"mode"` + // Env specifies the environment the underlying build system should be run in. + Env []string `json:"env"` + // BuildFlags are flags that should be passed to the underlying build system. + BuildFlags []string `json:"build_flags"` + // Tests specifies whether the patterns should also return test packages. + Tests bool `json:"tests"` + // Overlay maps file paths (relative to the driver's working directory) to the byte contents + // of overlay files. + Overlay map[string][]byte `json:"overlay"` +} + +// findExternalDriver returns the file path of a tool that supplies +// the build system package structure, or "" if not found." +// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its +// value, otherwise it searches for a binary named gopackagesdriver on the PATH. +func findExternalDriver(cfg *Config) driver { + const toolPrefix = "GOPACKAGESDRIVER=" + tool := "" + for _, env := range cfg.Env { + if val := strings.TrimPrefix(env, toolPrefix); val != env { + tool = val + } + } + if tool != "" && tool == "off" { + return nil + } + if tool == "" { + var err error + tool, err = exec.LookPath("gopackagesdriver") + if err != nil { + return nil + } + } + return func(cfg *Config, words ...string) (*driverResponse, error) { + req, err := json.Marshal(driverRequest{ + Mode: cfg.Mode, + Env: cfg.Env, + BuildFlags: cfg.BuildFlags, + Tests: cfg.Tests, + Overlay: cfg.Overlay, + }) + if err != nil { + return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) + } + + buf := new(bytes.Buffer) + stderr := new(bytes.Buffer) + cmd := exec.CommandContext(cfg.Context, tool, words...) + cmd.Dir = cfg.Dir + cmd.Env = cfg.Env + cmd.Stdin = bytes.NewReader(req) + cmd.Stdout = buf + cmd.Stderr = stderr + + if err := cmd.Run(); err != nil { + return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) + } + if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" { + fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd), stderr) + } + + var response driverResponse + if err := json.Unmarshal(buf.Bytes(), &response); err != nil { + return nil, err + } + return &response, nil + } +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go new file mode 100644 index 0000000000..6bb7168d2e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go @@ -0,0 +1,1173 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "bytes" + "context" + "encoding/json" + "fmt" + "go/types" + "io/ioutil" + "log" + "os" + "path" + "path/filepath" + "reflect" + "sort" + "strconv" + "strings" + "sync" + "unicode" + + exec "golang.org/x/sys/execabs" + "golang.org/x/tools/go/internal/packagesdriver" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/packagesinternal" +) + +// debug controls verbose logging. +var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG")) + +// A goTooOldError reports that the go command +// found by exec.LookPath is too old to use the new go list behavior. +type goTooOldError struct { + error +} + +// responseDeduper wraps a driverResponse, deduplicating its contents. +type responseDeduper struct { + seenRoots map[string]bool + seenPackages map[string]*Package + dr *driverResponse +} + +func newDeduper() *responseDeduper { + return &responseDeduper{ + dr: &driverResponse{}, + seenRoots: map[string]bool{}, + seenPackages: map[string]*Package{}, + } +} + +// addAll fills in r with a driverResponse. +func (r *responseDeduper) addAll(dr *driverResponse) { + for _, pkg := range dr.Packages { + r.addPackage(pkg) + } + for _, root := range dr.Roots { + r.addRoot(root) + } + r.dr.GoVersion = dr.GoVersion +} + +func (r *responseDeduper) addPackage(p *Package) { + if r.seenPackages[p.ID] != nil { + return + } + r.seenPackages[p.ID] = p + r.dr.Packages = append(r.dr.Packages, p) +} + +func (r *responseDeduper) addRoot(id string) { + if r.seenRoots[id] { + return + } + r.seenRoots[id] = true + r.dr.Roots = append(r.dr.Roots, id) +} + +type golistState struct { + cfg *Config + ctx context.Context + + envOnce sync.Once + goEnvError error + goEnv map[string]string + + rootsOnce sync.Once + rootDirsError error + rootDirs map[string]string + + goVersionOnce sync.Once + goVersionError error + goVersion int // The X in Go 1.X. + + // vendorDirs caches the (non)existence of vendor directories. + vendorDirs map[string]bool +} + +// getEnv returns Go environment variables. Only specific variables are +// populated -- computing all of them is slow. +func (state *golistState) getEnv() (map[string]string, error) { + state.envOnce.Do(func() { + var b *bytes.Buffer + b, state.goEnvError = state.invokeGo("env", "-json", "GOMOD", "GOPATH") + if state.goEnvError != nil { + return + } + + state.goEnv = make(map[string]string) + decoder := json.NewDecoder(b) + if state.goEnvError = decoder.Decode(&state.goEnv); state.goEnvError != nil { + return + } + }) + return state.goEnv, state.goEnvError +} + +// mustGetEnv is a convenience function that can be used if getEnv has already succeeded. +func (state *golistState) mustGetEnv() map[string]string { + env, err := state.getEnv() + if err != nil { + panic(fmt.Sprintf("mustGetEnv: %v", err)) + } + return env +} + +// goListDriver uses the go list command to interpret the patterns and produce +// the build system package structure. +// See driver for more details. +func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { + // Make sure that any asynchronous go commands are killed when we return. + parentCtx := cfg.Context + if parentCtx == nil { + parentCtx = context.Background() + } + ctx, cancel := context.WithCancel(parentCtx) + defer cancel() + + response := newDeduper() + + state := &golistState{ + cfg: cfg, + ctx: ctx, + vendorDirs: map[string]bool{}, + } + + // Fill in response.Sizes asynchronously if necessary. + var sizeserr error + var sizeswg sync.WaitGroup + if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 { + sizeswg.Add(1) + go func() { + var sizes types.Sizes + sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) + // types.SizesFor always returns nil or a *types.StdSizes. + response.dr.Sizes, _ = sizes.(*types.StdSizes) + sizeswg.Done() + }() + } + + // Determine files requested in contains patterns + var containFiles []string + restPatterns := make([]string, 0, len(patterns)) + // Extract file= and other [querytype]= patterns. Report an error if querytype + // doesn't exist. +extractQueries: + for _, pattern := range patterns { + eqidx := strings.Index(pattern, "=") + if eqidx < 0 { + restPatterns = append(restPatterns, pattern) + } else { + query, value := pattern[:eqidx], pattern[eqidx+len("="):] + switch query { + case "file": + containFiles = append(containFiles, value) + case "pattern": + restPatterns = append(restPatterns, value) + case "": // not a reserved query + restPatterns = append(restPatterns, pattern) + default: + for _, rune := range query { + if rune < 'a' || rune > 'z' { // not a reserved query + restPatterns = append(restPatterns, pattern) + continue extractQueries + } + } + // Reject all other patterns containing "=" + return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern) + } + } + } + + // See if we have any patterns to pass through to go list. Zero initial + // patterns also requires a go list call, since it's the equivalent of + // ".". + if len(restPatterns) > 0 || len(patterns) == 0 { + dr, err := state.createDriverResponse(restPatterns...) + if err != nil { + return nil, err + } + response.addAll(dr) + } + + if len(containFiles) != 0 { + if err := state.runContainsQueries(response, containFiles); err != nil { + return nil, err + } + } + + // Only use go/packages' overlay processing if we're using a Go version + // below 1.16. Otherwise, go list handles it. + if goVersion, err := state.getGoVersion(); err == nil && goVersion < 16 { + modifiedPkgs, needPkgs, err := state.processGolistOverlay(response) + if err != nil { + return nil, err + } + + var containsCandidates []string + if len(containFiles) > 0 { + containsCandidates = append(containsCandidates, modifiedPkgs...) + containsCandidates = append(containsCandidates, needPkgs...) + } + if err := state.addNeededOverlayPackages(response, needPkgs); err != nil { + return nil, err + } + // Check candidate packages for containFiles. + if len(containFiles) > 0 { + for _, id := range containsCandidates { + pkg, ok := response.seenPackages[id] + if !ok { + response.addPackage(&Package{ + ID: id, + Errors: []Error{{ + Kind: ListError, + Msg: fmt.Sprintf("package %s expected but not seen", id), + }}, + }) + continue + } + for _, f := range containFiles { + for _, g := range pkg.GoFiles { + if sameFile(f, g) { + response.addRoot(id) + } + } + } + } + } + // Add root for any package that matches a pattern. This applies only to + // packages that are modified by overlays, since they are not added as + // roots automatically. + for _, pattern := range restPatterns { + match := matchPattern(pattern) + for _, pkgID := range modifiedPkgs { + pkg, ok := response.seenPackages[pkgID] + if !ok { + continue + } + if match(pkg.PkgPath) { + response.addRoot(pkg.ID) + } + } + } + } + + sizeswg.Wait() + if sizeserr != nil { + return nil, sizeserr + } + return response.dr, nil +} + +func (state *golistState) addNeededOverlayPackages(response *responseDeduper, pkgs []string) error { + if len(pkgs) == 0 { + return nil + } + dr, err := state.createDriverResponse(pkgs...) + if err != nil { + return err + } + for _, pkg := range dr.Packages { + response.addPackage(pkg) + } + _, needPkgs, err := state.processGolistOverlay(response) + if err != nil { + return err + } + return state.addNeededOverlayPackages(response, needPkgs) +} + +func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { + for _, query := range queries { + // TODO(matloob): Do only one query per directory. + fdir := filepath.Dir(query) + // Pass absolute path of directory to go list so that it knows to treat it as a directory, + // not a package path. + pattern, err := filepath.Abs(fdir) + if err != nil { + return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) + } + dirResponse, err := state.createDriverResponse(pattern) + + // If there was an error loading the package, or no packages are returned, + // or the package is returned with errors, try to load the file as an + // ad-hoc package. + // Usually the error will appear in a returned package, but may not if we're + // in module mode and the ad-hoc is located outside a module. + if err != nil || len(dirResponse.Packages) == 0 || len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].GoFiles) == 0 && + len(dirResponse.Packages[0].Errors) == 1 { + var queryErr error + if dirResponse, queryErr = state.adhocPackage(pattern, query); queryErr != nil { + return err // return the original error + } + } + isRoot := make(map[string]bool, len(dirResponse.Roots)) + for _, root := range dirResponse.Roots { + isRoot[root] = true + } + for _, pkg := range dirResponse.Packages { + // Add any new packages to the main set + // We don't bother to filter packages that will be dropped by the changes of roots, + // that will happen anyway during graph construction outside this function. + // Over-reporting packages is not a problem. + response.addPackage(pkg) + // if the package was not a root one, it cannot have the file + if !isRoot[pkg.ID] { + continue + } + for _, pkgFile := range pkg.GoFiles { + if filepath.Base(query) == filepath.Base(pkgFile) { + response.addRoot(pkg.ID) + break + } + } + } + } + return nil +} + +// adhocPackage attempts to load or construct an ad-hoc package for a given +// query, if the original call to the driver produced inadequate results. +func (state *golistState) adhocPackage(pattern, query string) (*driverResponse, error) { + response, err := state.createDriverResponse(query) + if err != nil { + return nil, err + } + // If we get nothing back from `go list`, + // try to make this file into its own ad-hoc package. + // TODO(rstambler): Should this check against the original response? + if len(response.Packages) == 0 { + response.Packages = append(response.Packages, &Package{ + ID: "command-line-arguments", + PkgPath: query, + GoFiles: []string{query}, + CompiledGoFiles: []string{query}, + Imports: make(map[string]*Package), + }) + response.Roots = append(response.Roots, "command-line-arguments") + } + // Handle special cases. + if len(response.Packages) == 1 { + // golang/go#33482: If this is a file= query for ad-hoc packages where + // the file only exists on an overlay, and exists outside of a module, + // add the file to the package and remove the errors. + if response.Packages[0].ID == "command-line-arguments" || + filepath.ToSlash(response.Packages[0].PkgPath) == filepath.ToSlash(query) { + if len(response.Packages[0].GoFiles) == 0 { + filename := filepath.Join(pattern, filepath.Base(query)) // avoid recomputing abspath + // TODO(matloob): check if the file is outside of a root dir? + for path := range state.cfg.Overlay { + if path == filename { + response.Packages[0].Errors = nil + response.Packages[0].GoFiles = []string{path} + response.Packages[0].CompiledGoFiles = []string{path} + } + } + } + } + } + return response, nil +} + +// Fields must match go list; +// see $GOROOT/src/cmd/go/internal/load/pkg.go. +type jsonPackage struct { + ImportPath string + Dir string + Name string + Export string + GoFiles []string + CompiledGoFiles []string + IgnoredGoFiles []string + IgnoredOtherFiles []string + EmbedPatterns []string + EmbedFiles []string + CFiles []string + CgoFiles []string + CXXFiles []string + MFiles []string + HFiles []string + FFiles []string + SFiles []string + SwigFiles []string + SwigCXXFiles []string + SysoFiles []string + Imports []string + ImportMap map[string]string + Deps []string + Module *Module + TestGoFiles []string + TestImports []string + XTestGoFiles []string + XTestImports []string + ForTest string // q in a "p [q.test]" package, else "" + DepOnly bool + + Error *packagesinternal.PackageError + DepsErrors []*packagesinternal.PackageError +} + +type jsonPackageError struct { + ImportStack []string + Pos string + Err string +} + +func otherFiles(p *jsonPackage) [][]string { + return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} +} + +// createDriverResponse uses the "go list" command to expand the pattern +// words and return a response for the specified packages. +func (state *golistState) createDriverResponse(words ...string) (*driverResponse, error) { + // go list uses the following identifiers in ImportPath and Imports: + // + // "p" -- importable package or main (command) + // "q.test" -- q's test executable + // "p [q.test]" -- variant of p as built for q's test executable + // "q_test [q.test]" -- q's external test package + // + // The packages p that are built differently for a test q.test + // are q itself, plus any helpers used by the external test q_test, + // typically including "testing" and all its dependencies. + + // Run "go list" for complete + // information on the specified packages. + goVersion, err := state.getGoVersion() + if err != nil { + return nil, err + } + buf, err := state.invokeGo("list", golistargs(state.cfg, words, goVersion)...) + if err != nil { + return nil, err + } + + seen := make(map[string]*jsonPackage) + pkgs := make(map[string]*Package) + additionalErrors := make(map[string][]Error) + // Decode the JSON and convert it to Package form. + response := &driverResponse{ + GoVersion: goVersion, + } + for dec := json.NewDecoder(buf); dec.More(); { + p := new(jsonPackage) + if err := dec.Decode(p); err != nil { + return nil, fmt.Errorf("JSON decoding failed: %v", err) + } + + if p.ImportPath == "" { + // The documentation for go list says that “[e]rroneous packages will have + // a non-empty ImportPath”. If for some reason it comes back empty, we + // prefer to error out rather than silently discarding data or handing + // back a package without any way to refer to it. + if p.Error != nil { + return nil, Error{ + Pos: p.Error.Pos, + Msg: p.Error.Err, + } + } + return nil, fmt.Errorf("package missing import path: %+v", p) + } + + // Work around https://golang.org/issue/33157: + // go list -e, when given an absolute path, will find the package contained at + // that directory. But when no package exists there, it will return a fake package + // with an error and the ImportPath set to the absolute path provided to go list. + // Try to convert that absolute path to what its package path would be if it's + // contained in a known module or GOPATH entry. This will allow the package to be + // properly "reclaimed" when overlays are processed. + if filepath.IsAbs(p.ImportPath) && p.Error != nil { + pkgPath, ok, err := state.getPkgPath(p.ImportPath) + if err != nil { + return nil, err + } + if ok { + p.ImportPath = pkgPath + } + } + + if old, found := seen[p.ImportPath]; found { + // If one version of the package has an error, and the other doesn't, assume + // that this is a case where go list is reporting a fake dependency variant + // of the imported package: When a package tries to invalidly import another + // package, go list emits a variant of the imported package (with the same + // import path, but with an error on it, and the package will have a + // DepError set on it). An example of when this can happen is for imports of + // main packages: main packages can not be imported, but they may be + // separately matched and listed by another pattern. + // See golang.org/issue/36188 for more details. + + // The plan is that eventually, hopefully in Go 1.15, the error will be + // reported on the importing package rather than the duplicate "fake" + // version of the imported package. Once all supported versions of Go + // have the new behavior this logic can be deleted. + // TODO(matloob): delete the workaround logic once all supported versions of + // Go return the errors on the proper package. + + // There should be exactly one version of a package that doesn't have an + // error. + if old.Error == nil && p.Error == nil { + if !reflect.DeepEqual(p, old) { + return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath) + } + continue + } + + // Determine if this package's error needs to be bubbled up. + // This is a hack, and we expect for go list to eventually set the error + // on the package. + if old.Error != nil { + var errkind string + if strings.Contains(old.Error.Err, "not an importable package") { + errkind = "not an importable package" + } else if strings.Contains(old.Error.Err, "use of internal package") && strings.Contains(old.Error.Err, "not allowed") { + errkind = "use of internal package not allowed" + } + if errkind != "" { + if len(old.Error.ImportStack) < 1 { + return nil, fmt.Errorf(`internal error: go list gave a %q error with empty import stack`, errkind) + } + importingPkg := old.Error.ImportStack[len(old.Error.ImportStack)-1] + if importingPkg == old.ImportPath { + // Using an older version of Go which put this package itself on top of import + // stack, instead of the importer. Look for importer in second from top + // position. + if len(old.Error.ImportStack) < 2 { + return nil, fmt.Errorf(`internal error: go list gave a %q error with an import stack without importing package`, errkind) + } + importingPkg = old.Error.ImportStack[len(old.Error.ImportStack)-2] + } + additionalErrors[importingPkg] = append(additionalErrors[importingPkg], Error{ + Pos: old.Error.Pos, + Msg: old.Error.Err, + Kind: ListError, + }) + } + } + + // Make sure that if there's a version of the package without an error, + // that's the one reported to the user. + if old.Error == nil { + continue + } + + // This package will replace the old one at the end of the loop. + } + seen[p.ImportPath] = p + + pkg := &Package{ + Name: p.Name, + ID: p.ImportPath, + GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles), + CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles), + OtherFiles: absJoin(p.Dir, otherFiles(p)...), + EmbedFiles: absJoin(p.Dir, p.EmbedFiles), + EmbedPatterns: absJoin(p.Dir, p.EmbedPatterns), + IgnoredFiles: absJoin(p.Dir, p.IgnoredGoFiles, p.IgnoredOtherFiles), + forTest: p.ForTest, + depsErrors: p.DepsErrors, + Module: p.Module, + } + + if (state.cfg.Mode&typecheckCgo) != 0 && len(p.CgoFiles) != 0 { + if len(p.CompiledGoFiles) > len(p.GoFiles) { + // We need the cgo definitions, which are in the first + // CompiledGoFile after the non-cgo ones. This is a hack but there + // isn't currently a better way to find it. We also need the pure + // Go files and unprocessed cgo files, all of which are already + // in pkg.GoFiles. + cgoTypes := p.CompiledGoFiles[len(p.GoFiles)] + pkg.CompiledGoFiles = append([]string{cgoTypes}, pkg.GoFiles...) + } else { + // golang/go#38990: go list silently fails to do cgo processing + pkg.CompiledGoFiles = nil + pkg.Errors = append(pkg.Errors, Error{ + Msg: "go list failed to return CompiledGoFiles. This may indicate failure to perform cgo processing; try building at the command line. See https://golang.org/issue/38990.", + Kind: ListError, + }) + } + } + + // Work around https://golang.org/issue/28749: + // cmd/go puts assembly, C, and C++ files in CompiledGoFiles. + // Remove files from CompiledGoFiles that are non-go files + // (or are not files that look like they are from the cache). + if len(pkg.CompiledGoFiles) > 0 { + out := pkg.CompiledGoFiles[:0] + for _, f := range pkg.CompiledGoFiles { + if ext := filepath.Ext(f); ext != ".go" && ext != "" { // ext == "" means the file is from the cache, so probably cgo-processed file + continue + } + out = append(out, f) + } + pkg.CompiledGoFiles = out + } + + // Extract the PkgPath from the package's ID. + if i := strings.IndexByte(pkg.ID, ' '); i >= 0 { + pkg.PkgPath = pkg.ID[:i] + } else { + pkg.PkgPath = pkg.ID + } + + if pkg.PkgPath == "unsafe" { + pkg.GoFiles = nil // ignore fake unsafe.go file + } + + // Assume go list emits only absolute paths for Dir. + if p.Dir != "" && !filepath.IsAbs(p.Dir) { + log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir) + } + + if p.Export != "" && !filepath.IsAbs(p.Export) { + pkg.ExportFile = filepath.Join(p.Dir, p.Export) + } else { + pkg.ExportFile = p.Export + } + + // imports + // + // Imports contains the IDs of all imported packages. + // ImportsMap records (path, ID) only where they differ. + ids := make(map[string]bool) + for _, id := range p.Imports { + ids[id] = true + } + pkg.Imports = make(map[string]*Package) + for path, id := range p.ImportMap { + pkg.Imports[path] = &Package{ID: id} // non-identity import + delete(ids, id) + } + for id := range ids { + if id == "C" { + continue + } + + pkg.Imports[id] = &Package{ID: id} // identity import + } + if !p.DepOnly { + response.Roots = append(response.Roots, pkg.ID) + } + + // Work around for pre-go.1.11 versions of go list. + // TODO(matloob): they should be handled by the fallback. + // Can we delete this? + if len(pkg.CompiledGoFiles) == 0 { + pkg.CompiledGoFiles = pkg.GoFiles + } + + // Temporary work-around for golang/go#39986. Parse filenames out of + // error messages. This happens if there are unrecoverable syntax + // errors in the source, so we can't match on a specific error message. + if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) { + addFilenameFromPos := func(pos string) bool { + split := strings.Split(pos, ":") + if len(split) < 1 { + return false + } + filename := strings.TrimSpace(split[0]) + if filename == "" { + return false + } + if !filepath.IsAbs(filename) { + filename = filepath.Join(state.cfg.Dir, filename) + } + info, _ := os.Stat(filename) + if info == nil { + return false + } + pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, filename) + pkg.GoFiles = append(pkg.GoFiles, filename) + return true + } + found := addFilenameFromPos(err.Pos) + // In some cases, go list only reports the error position in the + // error text, not the error position. One such case is when the + // file's package name is a keyword (see golang.org/issue/39763). + if !found { + addFilenameFromPos(err.Err) + } + } + + if p.Error != nil { + msg := strings.TrimSpace(p.Error.Err) // Trim to work around golang.org/issue/32363. + // Address golang.org/issue/35964 by appending import stack to error message. + if msg == "import cycle not allowed" && len(p.Error.ImportStack) != 0 { + msg += fmt.Sprintf(": import stack: %v", p.Error.ImportStack) + } + pkg.Errors = append(pkg.Errors, Error{ + Pos: p.Error.Pos, + Msg: msg, + Kind: ListError, + }) + } + + pkgs[pkg.ID] = pkg + } + + for id, errs := range additionalErrors { + if p, ok := pkgs[id]; ok { + p.Errors = append(p.Errors, errs...) + } + } + for _, pkg := range pkgs { + response.Packages = append(response.Packages, pkg) + } + sort.Slice(response.Packages, func(i, j int) bool { return response.Packages[i].ID < response.Packages[j].ID }) + + return response, nil +} + +func (state *golistState) shouldAddFilenameFromError(p *jsonPackage) bool { + if len(p.GoFiles) > 0 || len(p.CompiledGoFiles) > 0 { + return false + } + + goV, err := state.getGoVersion() + if err != nil { + return false + } + + // On Go 1.14 and earlier, only add filenames from errors if the import stack is empty. + // The import stack behaves differently for these versions than newer Go versions. + if goV < 15 { + return len(p.Error.ImportStack) == 0 + } + + // On Go 1.15 and later, only parse filenames out of error if there's no import stack, + // or the current package is at the top of the import stack. This is not guaranteed + // to work perfectly, but should avoid some cases where files in errors don't belong to this + // package. + return len(p.Error.ImportStack) == 0 || p.Error.ImportStack[len(p.Error.ImportStack)-1] == p.ImportPath +} + +// getGoVersion returns the effective minor version of the go command. +func (state *golistState) getGoVersion() (int, error) { + state.goVersionOnce.Do(func() { + state.goVersion, state.goVersionError = gocommand.GoVersion(state.ctx, state.cfgInvocation(), state.cfg.gocmdRunner) + }) + return state.goVersion, state.goVersionError +} + +// getPkgPath finds the package path of a directory if it's relative to a root +// directory. +func (state *golistState) getPkgPath(dir string) (string, bool, error) { + absDir, err := filepath.Abs(dir) + if err != nil { + return "", false, err + } + roots, err := state.determineRootDirs() + if err != nil { + return "", false, err + } + + for rdir, rpath := range roots { + // Make sure that the directory is in the module, + // to avoid creating a path relative to another module. + if !strings.HasPrefix(absDir, rdir) { + continue + } + // TODO(matloob): This doesn't properly handle symlinks. + r, err := filepath.Rel(rdir, dir) + if err != nil { + continue + } + if rpath != "" { + // We choose only one root even though the directory even it can belong in multiple modules + // or GOPATH entries. This is okay because we only need to work with absolute dirs when a + // file is missing from disk, for instance when gopls calls go/packages in an overlay. + // Once the file is saved, gopls, or the next invocation of the tool will get the correct + // result straight from golist. + // TODO(matloob): Implement module tiebreaking? + return path.Join(rpath, filepath.ToSlash(r)), true, nil + } + return filepath.ToSlash(r), true, nil + } + return "", false, nil +} + +// absJoin absolutizes and flattens the lists of files. +func absJoin(dir string, fileses ...[]string) (res []string) { + for _, files := range fileses { + for _, file := range files { + if !filepath.IsAbs(file) { + file = filepath.Join(dir, file) + } + res = append(res, file) + } + } + return res +} + +func jsonFlag(cfg *Config, goVersion int) string { + if goVersion < 19 { + return "-json" + } + var fields []string + added := make(map[string]bool) + addFields := func(fs ...string) { + for _, f := range fs { + if !added[f] { + added[f] = true + fields = append(fields, f) + } + } + } + addFields("Name", "ImportPath", "Error") // These fields are always needed + if cfg.Mode&NeedFiles != 0 || cfg.Mode&NeedTypes != 0 { + addFields("Dir", "GoFiles", "IgnoredGoFiles", "IgnoredOtherFiles", "CFiles", + "CgoFiles", "CXXFiles", "MFiles", "HFiles", "FFiles", "SFiles", + "SwigFiles", "SwigCXXFiles", "SysoFiles") + if cfg.Tests { + addFields("TestGoFiles", "XTestGoFiles") + } + } + if cfg.Mode&NeedTypes != 0 { + // CompiledGoFiles seems to be required for the test case TestCgoNoSyntax, + // even when -compiled isn't passed in. + // TODO(#52435): Should we make the test ask for -compiled, or automatically + // request CompiledGoFiles in certain circumstances? + addFields("Dir", "CompiledGoFiles") + } + if cfg.Mode&NeedCompiledGoFiles != 0 { + addFields("Dir", "CompiledGoFiles", "Export") + } + if cfg.Mode&NeedImports != 0 { + // When imports are requested, DepOnly is used to distinguish between packages + // explicitly requested and transitive imports of those packages. + addFields("DepOnly", "Imports", "ImportMap") + if cfg.Tests { + addFields("TestImports", "XTestImports") + } + } + if cfg.Mode&NeedDeps != 0 { + addFields("DepOnly") + } + if usesExportData(cfg) { + // Request Dir in the unlikely case Export is not absolute. + addFields("Dir", "Export") + } + if cfg.Mode&needInternalForTest != 0 { + addFields("ForTest") + } + if cfg.Mode&needInternalDepsErrors != 0 { + addFields("DepsErrors") + } + if cfg.Mode&NeedModule != 0 { + addFields("Module") + } + if cfg.Mode&NeedEmbedFiles != 0 { + addFields("EmbedFiles") + } + if cfg.Mode&NeedEmbedPatterns != 0 { + addFields("EmbedPatterns") + } + return "-json=" + strings.Join(fields, ",") +} + +func golistargs(cfg *Config, words []string, goVersion int) []string { + const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo + fullargs := []string{ + "-e", jsonFlag(cfg, goVersion), + fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypes|NeedTypesInfo|NeedTypesSizes) != 0), + fmt.Sprintf("-test=%t", cfg.Tests), + fmt.Sprintf("-export=%t", usesExportData(cfg)), + fmt.Sprintf("-deps=%t", cfg.Mode&NeedImports != 0), + // go list doesn't let you pass -test and -find together, + // probably because you'd just get the TestMain. + fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), + } + fullargs = append(fullargs, cfg.BuildFlags...) + fullargs = append(fullargs, "--") + fullargs = append(fullargs, words...) + return fullargs +} + +// cfgInvocation returns an Invocation that reflects cfg's settings. +func (state *golistState) cfgInvocation() gocommand.Invocation { + cfg := state.cfg + return gocommand.Invocation{ + BuildFlags: cfg.BuildFlags, + ModFile: cfg.modFile, + ModFlag: cfg.modFlag, + CleanEnv: cfg.Env != nil, + Env: cfg.Env, + Logf: cfg.Logf, + WorkingDir: cfg.Dir, + } +} + +// invokeGo returns the stdout of a go command invocation. +func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, error) { + cfg := state.cfg + + inv := state.cfgInvocation() + + // For Go versions 1.16 and above, `go list` accepts overlays directly via + // the -overlay flag. Set it, if it's available. + // + // The check for "list" is not necessarily required, but we should avoid + // getting the go version if possible. + if verb == "list" { + goVersion, err := state.getGoVersion() + if err != nil { + return nil, err + } + if goVersion >= 16 { + filename, cleanup, err := state.writeOverlays() + if err != nil { + return nil, err + } + defer cleanup() + inv.Overlay = filename + } + } + inv.Verb = verb + inv.Args = args + gocmdRunner := cfg.gocmdRunner + if gocmdRunner == nil { + gocmdRunner = &gocommand.Runner{} + } + stdout, stderr, friendlyErr, err := gocmdRunner.RunRaw(cfg.Context, inv) + if err != nil { + // Check for 'go' executable not being found. + if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { + return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) + } + + exitErr, ok := err.(*exec.ExitError) + if !ok { + // Catastrophic error: + // - context cancellation + return nil, fmt.Errorf("couldn't run 'go': %w", err) + } + + // Old go version? + if strings.Contains(stderr.String(), "flag provided but not defined") { + return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)} + } + + // Related to #24854 + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "unexpected directory layout") { + return nil, friendlyErr + } + + // Is there an error running the C compiler in cgo? This will be reported in the "Error" field + // and should be suppressed by go list -e. + // + // This condition is not perfect yet because the error message can include other error messages than runtime/cgo. + isPkgPathRune := func(r rune) bool { + // From https://golang.org/ref/spec#Import_declarations: + // Implementation restriction: A compiler may restrict ImportPaths to non-empty strings + // using only characters belonging to Unicode's L, M, N, P, and S general categories + // (the Graphic characters without spaces) and may also exclude the + // characters !"#$%&'()*,:;<=>?[\]^`{|} and the Unicode replacement character U+FFFD. + return unicode.IsOneOf([]*unicode.RangeTable{unicode.L, unicode.M, unicode.N, unicode.P, unicode.S}, r) && + !strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^`{|}\uFFFD", r) + } + // golang/go#36770: Handle case where cmd/go prints module download messages before the error. + msg := stderr.String() + for strings.HasPrefix(msg, "go: downloading") { + msg = msg[strings.IndexRune(msg, '\n')+1:] + } + if len(stderr.String()) > 0 && strings.HasPrefix(stderr.String(), "# ") { + msg := msg[len("# "):] + if strings.HasPrefix(strings.TrimLeftFunc(msg, isPkgPathRune), "\n") { + return stdout, nil + } + // Treat pkg-config errors as a special case (golang.org/issue/36770). + if strings.HasPrefix(msg, "pkg-config") { + return stdout, nil + } + } + + // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show + // the error in the Err section of stdout in case -e option is provided. + // This fix is provided for backwards compatibility. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") { + output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Similar to the previous error, but currently lacks a fix in Go. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must all be in one directory") { + output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Backwards compatibility for Go 1.11 because 1.12 and 1.13 put the directory in the ImportPath. + // If the package doesn't exist, put the absolute path of the directory into the error message, + // as Go 1.13 list does. + const noSuchDirectory = "no such directory" + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), noSuchDirectory) { + errstr := stderr.String() + abspath := strings.TrimSpace(errstr[strings.Index(errstr, noSuchDirectory)+len(noSuchDirectory):]) + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + abspath, strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist. + // Note that the error message we look for in this case is different that the one looked for above. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") { + output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Workaround for #34273. go list -e with GO111MODULE=on has incorrect behavior when listing a + // directory outside any module. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside available modules") { + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + // TODO(matloob): command-line-arguments isn't correct here. + "command-line-arguments", strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Another variation of the previous error + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside module root") { + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + // TODO(matloob): command-line-arguments isn't correct here. + "command-line-arguments", strings.Trim(stderr.String(), "\n")) + return bytes.NewBufferString(output), nil + } + + // Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit + // status if there's a dependency on a package that doesn't exist. But it should return + // a zero exit status and set an error on that package. + if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") { + // Don't clobber stdout if `go list` actually returned something. + if len(stdout.String()) > 0 { + return stdout, nil + } + // try to extract package name from string + stderrStr := stderr.String() + var importPath string + colon := strings.Index(stderrStr, ":") + if colon > 0 && strings.HasPrefix(stderrStr, "go build ") { + importPath = stderrStr[len("go build "):colon] + } + output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, + importPath, strings.Trim(stderrStr, "\n")) + return bytes.NewBufferString(output), nil + } + + // Export mode entails a build. + // If that build fails, errors appear on stderr + // (despite the -e flag) and the Export field is blank. + // Do not fail in that case. + // The same is true if an ad-hoc package given to go list doesn't exist. + // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when + // packages don't exist or a build fails. + if !usesExportData(cfg) && !containsGoFile(args) { + return nil, friendlyErr + } + } + return stdout, nil +} + +// OverlayJSON is the format overlay files are expected to be in. +// The Replace map maps from overlaid paths to replacement paths: +// the Go command will forward all reads trying to open +// each overlaid path to its replacement path, or consider the overlaid +// path not to exist if the replacement path is empty. +// +// From golang/go#39958. +type OverlayJSON struct { + Replace map[string]string `json:"replace,omitempty"` +} + +// writeOverlays writes out files for go list's -overlay flag, as described +// above. +func (state *golistState) writeOverlays() (filename string, cleanup func(), err error) { + // Do nothing if there are no overlays in the config. + if len(state.cfg.Overlay) == 0 { + return "", func() {}, nil + } + dir, err := ioutil.TempDir("", "gopackages-*") + if err != nil { + return "", nil, err + } + // The caller must clean up this directory, unless this function returns an + // error. + cleanup = func() { + os.RemoveAll(dir) + } + defer func() { + if err != nil { + cleanup() + } + }() + overlays := map[string]string{} + for k, v := range state.cfg.Overlay { + // Create a unique filename for the overlaid files, to avoid + // creating nested directories. + noSeparator := strings.Join(strings.Split(filepath.ToSlash(k), "/"), "") + f, err := ioutil.TempFile(dir, fmt.Sprintf("*-%s", noSeparator)) + if err != nil { + return "", func() {}, err + } + if _, err := f.Write(v); err != nil { + return "", func() {}, err + } + if err := f.Close(); err != nil { + return "", func() {}, err + } + overlays[k] = f.Name() + } + b, err := json.Marshal(OverlayJSON{Replace: overlays}) + if err != nil { + return "", func() {}, err + } + // Write out the overlay file that contains the filepath mappings. + filename = filepath.Join(dir, "overlay.json") + if err := ioutil.WriteFile(filename, b, 0665); err != nil { + return "", func() {}, err + } + return filename, cleanup, nil +} + +func containsGoFile(s []string) bool { + for _, f := range s { + if strings.HasSuffix(f, ".go") { + return true + } + } + return false +} + +func cmdDebugStr(cmd *exec.Cmd) string { + env := make(map[string]string) + for _, kv := range cmd.Env { + split := strings.SplitN(kv, "=", 2) + k, v := split[0], split[1] + env[k] = v + } + + var args []string + for _, arg := range cmd.Args { + quoted := strconv.Quote(arg) + if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { + args = append(args, quoted) + } else { + args = append(args, arg) + } + } + return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go new file mode 100644 index 0000000000..9576b472f9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go @@ -0,0 +1,575 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "encoding/json" + "fmt" + "go/parser" + "go/token" + "os" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" + + "golang.org/x/tools/internal/gocommand" +) + +// processGolistOverlay provides rudimentary support for adding +// files that don't exist on disk to an overlay. The results can be +// sometimes incorrect. +// TODO(matloob): Handle unsupported cases, including the following: +// - determining the correct package to add given a new import path +func (state *golistState) processGolistOverlay(response *responseDeduper) (modifiedPkgs, needPkgs []string, err error) { + havePkgs := make(map[string]string) // importPath -> non-test package ID + needPkgsSet := make(map[string]bool) + modifiedPkgsSet := make(map[string]bool) + + pkgOfDir := make(map[string][]*Package) + for _, pkg := range response.dr.Packages { + // This is an approximation of import path to id. This can be + // wrong for tests, vendored packages, and a number of other cases. + havePkgs[pkg.PkgPath] = pkg.ID + dir, err := commonDir(pkg.GoFiles) + if err != nil { + return nil, nil, err + } + if dir != "" { + pkgOfDir[dir] = append(pkgOfDir[dir], pkg) + } + } + + // If no new imports are added, it is safe to avoid loading any needPkgs. + // Otherwise, it's hard to tell which package is actually being loaded + // (due to vendoring) and whether any modified package will show up + // in the transitive set of dependencies (because new imports are added, + // potentially modifying the transitive set of dependencies). + var overlayAddsImports bool + + // If both a package and its test package are created by the overlay, we + // need the real package first. Process all non-test files before test + // files, and make the whole process deterministic while we're at it. + var overlayFiles []string + for opath := range state.cfg.Overlay { + overlayFiles = append(overlayFiles, opath) + } + sort.Slice(overlayFiles, func(i, j int) bool { + iTest := strings.HasSuffix(overlayFiles[i], "_test.go") + jTest := strings.HasSuffix(overlayFiles[j], "_test.go") + if iTest != jTest { + return !iTest // non-tests are before tests. + } + return overlayFiles[i] < overlayFiles[j] + }) + for _, opath := range overlayFiles { + contents := state.cfg.Overlay[opath] + base := filepath.Base(opath) + dir := filepath.Dir(opath) + var pkg *Package // if opath belongs to both a package and its test variant, this will be the test variant + var testVariantOf *Package // if opath is a test file, this is the package it is testing + var fileExists bool + isTestFile := strings.HasSuffix(opath, "_test.go") + pkgName, ok := extractPackageName(opath, contents) + if !ok { + // Don't bother adding a file that doesn't even have a parsable package statement + // to the overlay. + continue + } + // If all the overlay files belong to a different package, change the + // package name to that package. + maybeFixPackageName(pkgName, isTestFile, pkgOfDir[dir]) + nextPackage: + for _, p := range response.dr.Packages { + if pkgName != p.Name && p.ID != "command-line-arguments" { + continue + } + for _, f := range p.GoFiles { + if !sameFile(filepath.Dir(f), dir) { + continue + } + // Make sure to capture information on the package's test variant, if needed. + if isTestFile && !hasTestFiles(p) { + // TODO(matloob): Are there packages other than the 'production' variant + // of a package that this can match? This shouldn't match the test main package + // because the file is generated in another directory. + testVariantOf = p + continue nextPackage + } else if !isTestFile && hasTestFiles(p) { + // We're examining a test variant, but the overlaid file is + // a non-test file. Because the overlay implementation + // (currently) only adds a file to one package, skip this + // package, so that we can add the file to the production + // variant of the package. (https://golang.org/issue/36857 + // tracks handling overlays on both the production and test + // variant of a package). + continue nextPackage + } + if pkg != nil && p != pkg && pkg.PkgPath == p.PkgPath { + // We have already seen the production version of the + // for which p is a test variant. + if hasTestFiles(p) { + testVariantOf = pkg + } + } + pkg = p + if filepath.Base(f) == base { + fileExists = true + } + } + } + // The overlay could have included an entirely new package or an + // ad-hoc package. An ad-hoc package is one that we have manually + // constructed from inadequate `go list` results for a file= query. + // It will have the ID command-line-arguments. + if pkg == nil || pkg.ID == "command-line-arguments" { + // Try to find the module or gopath dir the file is contained in. + // Then for modules, add the module opath to the beginning. + pkgPath, ok, err := state.getPkgPath(dir) + if err != nil { + return nil, nil, err + } + if !ok { + break + } + var forTest string // only set for x tests + isXTest := strings.HasSuffix(pkgName, "_test") + if isXTest { + forTest = pkgPath + pkgPath += "_test" + } + id := pkgPath + if isTestFile { + if isXTest { + id = fmt.Sprintf("%s [%s.test]", pkgPath, forTest) + } else { + id = fmt.Sprintf("%s [%s.test]", pkgPath, pkgPath) + } + } + if pkg != nil { + // TODO(rstambler): We should change the package's path and ID + // here. The only issue is that this messes with the roots. + } else { + // Try to reclaim a package with the same ID, if it exists in the response. + for _, p := range response.dr.Packages { + if reclaimPackage(p, id, opath, contents) { + pkg = p + break + } + } + // Otherwise, create a new package. + if pkg == nil { + pkg = &Package{ + PkgPath: pkgPath, + ID: id, + Name: pkgName, + Imports: make(map[string]*Package), + } + response.addPackage(pkg) + havePkgs[pkg.PkgPath] = id + // Add the production package's sources for a test variant. + if isTestFile && !isXTest && testVariantOf != nil { + pkg.GoFiles = append(pkg.GoFiles, testVariantOf.GoFiles...) + pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, testVariantOf.CompiledGoFiles...) + // Add the package under test and its imports to the test variant. + pkg.forTest = testVariantOf.PkgPath + for k, v := range testVariantOf.Imports { + pkg.Imports[k] = &Package{ID: v.ID} + } + } + if isXTest { + pkg.forTest = forTest + } + } + } + } + if !fileExists { + pkg.GoFiles = append(pkg.GoFiles, opath) + // TODO(matloob): Adding the file to CompiledGoFiles can exhibit the wrong behavior + // if the file will be ignored due to its build tags. + pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, opath) + modifiedPkgsSet[pkg.ID] = true + } + imports, err := extractImports(opath, contents) + if err != nil { + // Let the parser or type checker report errors later. + continue + } + for _, imp := range imports { + // TODO(rstambler): If the package is an x test and the import has + // a test variant, make sure to replace it. + if _, found := pkg.Imports[imp]; found { + continue + } + overlayAddsImports = true + id, ok := havePkgs[imp] + if !ok { + var err error + id, err = state.resolveImport(dir, imp) + if err != nil { + return nil, nil, err + } + } + pkg.Imports[imp] = &Package{ID: id} + // Add dependencies to the non-test variant version of this package as well. + if testVariantOf != nil { + testVariantOf.Imports[imp] = &Package{ID: id} + } + } + } + + // toPkgPath guesses the package path given the id. + toPkgPath := func(sourceDir, id string) (string, error) { + if i := strings.IndexByte(id, ' '); i >= 0 { + return state.resolveImport(sourceDir, id[:i]) + } + return state.resolveImport(sourceDir, id) + } + + // Now that new packages have been created, do another pass to determine + // the new set of missing packages. + for _, pkg := range response.dr.Packages { + for _, imp := range pkg.Imports { + if len(pkg.GoFiles) == 0 { + return nil, nil, fmt.Errorf("cannot resolve imports for package %q with no Go files", pkg.PkgPath) + } + pkgPath, err := toPkgPath(filepath.Dir(pkg.GoFiles[0]), imp.ID) + if err != nil { + return nil, nil, err + } + if _, ok := havePkgs[pkgPath]; !ok { + needPkgsSet[pkgPath] = true + } + } + } + + if overlayAddsImports { + needPkgs = make([]string, 0, len(needPkgsSet)) + for pkg := range needPkgsSet { + needPkgs = append(needPkgs, pkg) + } + } + modifiedPkgs = make([]string, 0, len(modifiedPkgsSet)) + for pkg := range modifiedPkgsSet { + modifiedPkgs = append(modifiedPkgs, pkg) + } + return modifiedPkgs, needPkgs, err +} + +// resolveImport finds the ID of a package given its import path. +// In particular, it will find the right vendored copy when in GOPATH mode. +func (state *golistState) resolveImport(sourceDir, importPath string) (string, error) { + env, err := state.getEnv() + if err != nil { + return "", err + } + if env["GOMOD"] != "" { + return importPath, nil + } + + searchDir := sourceDir + for { + vendorDir := filepath.Join(searchDir, "vendor") + exists, ok := state.vendorDirs[vendorDir] + if !ok { + info, err := os.Stat(vendorDir) + exists = err == nil && info.IsDir() + state.vendorDirs[vendorDir] = exists + } + + if exists { + vendoredPath := filepath.Join(vendorDir, importPath) + if info, err := os.Stat(vendoredPath); err == nil && info.IsDir() { + // We should probably check for .go files here, but shame on anyone who fools us. + path, ok, err := state.getPkgPath(vendoredPath) + if err != nil { + return "", err + } + if ok { + return path, nil + } + } + } + + // We know we've hit the top of the filesystem when we Dir / and get /, + // or C:\ and get C:\, etc. + next := filepath.Dir(searchDir) + if next == searchDir { + break + } + searchDir = next + } + return importPath, nil +} + +func hasTestFiles(p *Package) bool { + for _, f := range p.GoFiles { + if strings.HasSuffix(f, "_test.go") { + return true + } + } + return false +} + +// determineRootDirs returns a mapping from absolute directories that could +// contain code to their corresponding import path prefixes. +func (state *golistState) determineRootDirs() (map[string]string, error) { + env, err := state.getEnv() + if err != nil { + return nil, err + } + if env["GOMOD"] != "" { + state.rootsOnce.Do(func() { + state.rootDirs, state.rootDirsError = state.determineRootDirsModules() + }) + } else { + state.rootsOnce.Do(func() { + state.rootDirs, state.rootDirsError = state.determineRootDirsGOPATH() + }) + } + return state.rootDirs, state.rootDirsError +} + +func (state *golistState) determineRootDirsModules() (map[string]string, error) { + // List all of the modules--the first will be the directory for the main + // module. Any replaced modules will also need to be treated as roots. + // Editing files in the module cache isn't a great idea, so we don't + // plan to ever support that. + out, err := state.invokeGo("list", "-m", "-json", "all") + if err != nil { + // 'go list all' will fail if we're outside of a module and + // GO111MODULE=on. Try falling back without 'all'. + var innerErr error + out, innerErr = state.invokeGo("list", "-m", "-json") + if innerErr != nil { + return nil, err + } + } + roots := map[string]string{} + modules := map[string]string{} + var i int + for dec := json.NewDecoder(out); dec.More(); { + mod := new(gocommand.ModuleJSON) + if err := dec.Decode(mod); err != nil { + return nil, err + } + if mod.Dir != "" && mod.Path != "" { + // This is a valid module; add it to the map. + absDir, err := filepath.Abs(mod.Dir) + if err != nil { + return nil, err + } + modules[absDir] = mod.Path + // The first result is the main module. + if i == 0 || mod.Replace != nil && mod.Replace.Path != "" { + roots[absDir] = mod.Path + } + } + i++ + } + return roots, nil +} + +func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) { + m := map[string]string{} + for _, dir := range filepath.SplitList(state.mustGetEnv()["GOPATH"]) { + absDir, err := filepath.Abs(dir) + if err != nil { + return nil, err + } + m[filepath.Join(absDir, "src")] = "" + } + return m, nil +} + +func extractImports(filename string, contents []byte) ([]string, error) { + f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset? + if err != nil { + return nil, err + } + var res []string + for _, imp := range f.Imports { + quotedPath := imp.Path.Value + path, err := strconv.Unquote(quotedPath) + if err != nil { + return nil, err + } + res = append(res, path) + } + return res, nil +} + +// reclaimPackage attempts to reuse a package that failed to load in an overlay. +// +// If the package has errors and has no Name, GoFiles, or Imports, +// then it's possible that it doesn't yet exist on disk. +func reclaimPackage(pkg *Package, id string, filename string, contents []byte) bool { + // TODO(rstambler): Check the message of the actual error? + // It differs between $GOPATH and module mode. + if pkg.ID != id { + return false + } + if len(pkg.Errors) != 1 { + return false + } + if pkg.Name != "" || pkg.ExportFile != "" { + return false + } + if len(pkg.GoFiles) > 0 || len(pkg.CompiledGoFiles) > 0 || len(pkg.OtherFiles) > 0 { + return false + } + if len(pkg.Imports) > 0 { + return false + } + pkgName, ok := extractPackageName(filename, contents) + if !ok { + return false + } + pkg.Name = pkgName + pkg.Errors = nil + return true +} + +func extractPackageName(filename string, contents []byte) (string, bool) { + // TODO(rstambler): Check the message of the actual error? + // It differs between $GOPATH and module mode. + f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.PackageClauseOnly) // TODO(matloob): reuse fileset? + if err != nil { + return "", false + } + return f.Name.Name, true +} + +// commonDir returns the directory that all files are in, "" if files is empty, +// or an error if they aren't in the same directory. +func commonDir(files []string) (string, error) { + seen := make(map[string]bool) + for _, f := range files { + seen[filepath.Dir(f)] = true + } + if len(seen) > 1 { + return "", fmt.Errorf("files (%v) are in more than one directory: %v", files, seen) + } + for k := range seen { + // seen has only one element; return it. + return k, nil + } + return "", nil // no files +} + +// It is possible that the files in the disk directory dir have a different package +// name from newName, which is deduced from the overlays. If they all have a different +// package name, and they all have the same package name, then that name becomes +// the package name. +// It returns true if it changes the package name, false otherwise. +func maybeFixPackageName(newName string, isTestFile bool, pkgsOfDir []*Package) { + names := make(map[string]int) + for _, p := range pkgsOfDir { + names[p.Name]++ + } + if len(names) != 1 { + // some files are in different packages + return + } + var oldName string + for k := range names { + oldName = k + } + if newName == oldName { + return + } + // We might have a case where all of the package names in the directory are + // the same, but the overlay file is for an x test, which belongs to its + // own package. If the x test does not yet exist on disk, we may not yet + // have its package name on disk, but we should not rename the packages. + // + // We use a heuristic to determine if this file belongs to an x test: + // The test file should have a package name whose package name has a _test + // suffix or looks like "newName_test". + maybeXTest := strings.HasPrefix(oldName+"_test", newName) || strings.HasSuffix(newName, "_test") + if isTestFile && maybeXTest { + return + } + for _, p := range pkgsOfDir { + p.Name = newName + } +} + +// This function is copy-pasted from +// https://github.com/golang/go/blob/9706f510a5e2754595d716bd64be8375997311fb/src/cmd/go/internal/search/search.go#L360. +// It should be deleted when we remove support for overlays from go/packages. +// +// NOTE: This does not handle any ./... or ./ style queries, as this function +// doesn't know the working directory. +// +// matchPattern(pattern)(name) reports whether +// name matches pattern. Pattern is a limited glob +// pattern in which '...' means 'any string' and there +// is no other special syntax. +// Unfortunately, there are two special cases. Quoting "go help packages": +// +// First, /... at the end of the pattern can match an empty string, +// so that net/... matches both net and packages in its subdirectories, like net/http. +// Second, any slash-separated pattern element containing a wildcard never +// participates in a match of the "vendor" element in the path of a vendored +// package, so that ./... does not match packages in subdirectories of +// ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. +// Note, however, that a directory named vendor that itself contains code +// is not a vendored package: cmd/vendor would be a command named vendor, +// and the pattern cmd/... matches it. +func matchPattern(pattern string) func(name string) bool { + // Convert pattern to regular expression. + // The strategy for the trailing /... is to nest it in an explicit ? expression. + // The strategy for the vendor exclusion is to change the unmatchable + // vendor strings to a disallowed code point (vendorChar) and to use + // "(anything but that codepoint)*" as the implementation of the ... wildcard. + // This is a bit complicated but the obvious alternative, + // namely a hand-written search like in most shell glob matchers, + // is too easy to make accidentally exponential. + // Using package regexp guarantees linear-time matching. + + const vendorChar = "\x00" + + if strings.Contains(pattern, vendorChar) { + return func(name string) bool { return false } + } + + re := regexp.QuoteMeta(pattern) + re = replaceVendor(re, vendorChar) + switch { + case strings.HasSuffix(re, `/`+vendorChar+`/\.\.\.`): + re = strings.TrimSuffix(re, `/`+vendorChar+`/\.\.\.`) + `(/vendor|/` + vendorChar + `/\.\.\.)` + case re == vendorChar+`/\.\.\.`: + re = `(/vendor|/` + vendorChar + `/\.\.\.)` + case strings.HasSuffix(re, `/\.\.\.`): + re = strings.TrimSuffix(re, `/\.\.\.`) + `(/\.\.\.)?` + } + re = strings.ReplaceAll(re, `\.\.\.`, `[^`+vendorChar+`]*`) + + reg := regexp.MustCompile(`^` + re + `$`) + + return func(name string) bool { + if strings.Contains(name, vendorChar) { + return false + } + return reg.MatchString(replaceVendor(name, vendorChar)) + } +} + +// replaceVendor returns the result of replacing +// non-trailing vendor path elements in x with repl. +func replaceVendor(x, repl string) string { + if !strings.Contains(x, "vendor") { + return x + } + elem := strings.Split(x, "/") + for i := 0; i < len(elem)-1; i++ { + if elem[i] == "vendor" { + elem[i] = repl + } + } + return strings.Join(elem, "/") +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go new file mode 100644 index 0000000000..5c080d21b5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go @@ -0,0 +1,57 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "fmt" + "strings" +) + +var allModes = []LoadMode{ + NeedName, + NeedFiles, + NeedCompiledGoFiles, + NeedImports, + NeedDeps, + NeedExportFile, + NeedTypes, + NeedSyntax, + NeedTypesInfo, + NeedTypesSizes, +} + +var modeStrings = []string{ + "NeedName", + "NeedFiles", + "NeedCompiledGoFiles", + "NeedImports", + "NeedDeps", + "NeedExportFile", + "NeedTypes", + "NeedSyntax", + "NeedTypesInfo", + "NeedTypesSizes", +} + +func (mod LoadMode) String() string { + m := mod + if m == 0 { + return "LoadMode(0)" + } + var out []string + for i, x := range allModes { + if x > m { + break + } + if (m & x) != 0 { + out = append(out, modeStrings[i]) + m = m ^ x + } + } + if m != 0 { + out = append(out, "Unknown") + } + return fmt.Sprintf("LoadMode(%s)", strings.Join(out, "|")) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go new file mode 100644 index 0000000000..0f1505b808 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go @@ -0,0 +1,1326 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +// See doc.go for package documentation and implementation notes. + +import ( + "context" + "encoding/json" + "fmt" + "go/ast" + "go/parser" + "go/scanner" + "go/token" + "go/types" + "io" + "io/ioutil" + "log" + "os" + "path/filepath" + "runtime" + "strings" + "sync" + "time" + + "golang.org/x/tools/go/gcexportdata" + "golang.org/x/tools/internal/gocommand" + "golang.org/x/tools/internal/packagesinternal" + "golang.org/x/tools/internal/typeparams" + "golang.org/x/tools/internal/typesinternal" +) + +// A LoadMode controls the amount of detail to return when loading. +// The bits below can be combined to specify which fields should be +// filled in the result packages. +// The zero value is a special case, equivalent to combining +// the NeedName, NeedFiles, and NeedCompiledGoFiles bits. +// ID and Errors (if present) will always be filled. +// Load may return more information than requested. +type LoadMode int + +const ( + // NeedName adds Name and PkgPath. + NeedName LoadMode = 1 << iota + + // NeedFiles adds GoFiles and OtherFiles. + NeedFiles + + // NeedCompiledGoFiles adds CompiledGoFiles. + NeedCompiledGoFiles + + // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain + // "placeholder" Packages with only the ID set. + NeedImports + + // NeedDeps adds the fields requested by the LoadMode in the packages in Imports. + NeedDeps + + // NeedExportFile adds ExportFile. + NeedExportFile + + // NeedTypes adds Types, Fset, and IllTyped. + NeedTypes + + // NeedSyntax adds Syntax. + NeedSyntax + + // NeedTypesInfo adds TypesInfo. + NeedTypesInfo + + // NeedTypesSizes adds TypesSizes. + NeedTypesSizes + + // needInternalDepsErrors adds the internal deps errors field for use by gopls. + needInternalDepsErrors + + // needInternalForTest adds the internal forTest field. + // Tests must also be set on the context for this field to be populated. + needInternalForTest + + // typecheckCgo enables full support for type checking cgo. Requires Go 1.15+. + // Modifies CompiledGoFiles and Types, and has no effect on its own. + typecheckCgo + + // NeedModule adds Module. + NeedModule + + // NeedEmbedFiles adds EmbedFiles. + NeedEmbedFiles + + // NeedEmbedPatterns adds EmbedPatterns. + NeedEmbedPatterns +) + +const ( + // Deprecated: LoadFiles exists for historical compatibility + // and should not be used. Please directly specify the needed fields using the Need values. + LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles + + // Deprecated: LoadImports exists for historical compatibility + // and should not be used. Please directly specify the needed fields using the Need values. + LoadImports = LoadFiles | NeedImports + + // Deprecated: LoadTypes exists for historical compatibility + // and should not be used. Please directly specify the needed fields using the Need values. + LoadTypes = LoadImports | NeedTypes | NeedTypesSizes + + // Deprecated: LoadSyntax exists for historical compatibility + // and should not be used. Please directly specify the needed fields using the Need values. + LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo + + // Deprecated: LoadAllSyntax exists for historical compatibility + // and should not be used. Please directly specify the needed fields using the Need values. + LoadAllSyntax = LoadSyntax | NeedDeps + + // Deprecated: NeedExportsFile is a historical misspelling of NeedExportFile. + NeedExportsFile = NeedExportFile +) + +// A Config specifies details about how packages should be loaded. +// The zero value is a valid configuration. +// Calls to Load do not modify this struct. +type Config struct { + // Mode controls the level of information returned for each package. + Mode LoadMode + + // Context specifies the context for the load operation. + // If the context is cancelled, the loader may stop early + // and return an ErrCancelled error. + // If Context is nil, the load cannot be cancelled. + Context context.Context + + // Logf is the logger for the config. + // If the user provides a logger, debug logging is enabled. + // If the GOPACKAGESDEBUG environment variable is set to true, + // but the logger is nil, default to log.Printf. + Logf func(format string, args ...interface{}) + + // Dir is the directory in which to run the build system's query tool + // that provides information about the packages. + // If Dir is empty, the tool is run in the current directory. + Dir string + + // Env is the environment to use when invoking the build system's query tool. + // If Env is nil, the current environment is used. + // As in os/exec's Cmd, only the last value in the slice for + // each environment key is used. To specify the setting of only + // a few variables, append to the current environment, as in: + // + // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386") + // + Env []string + + // gocmdRunner guards go command calls from concurrency errors. + gocmdRunner *gocommand.Runner + + // BuildFlags is a list of command-line flags to be passed through to + // the build system's query tool. + BuildFlags []string + + // modFile will be used for -modfile in go command invocations. + modFile string + + // modFlag will be used for -modfile in go command invocations. + modFlag string + + // Fset provides source position information for syntax trees and types. + // If Fset is nil, Load will use a new fileset, but preserve Fset's value. + Fset *token.FileSet + + // ParseFile is called to read and parse each file + // when preparing a package's type-checked syntax tree. + // It must be safe to call ParseFile simultaneously from multiple goroutines. + // If ParseFile is nil, the loader will uses parser.ParseFile. + // + // ParseFile should parse the source from src and use filename only for + // recording position information. + // + // An application may supply a custom implementation of ParseFile + // to change the effective file contents or the behavior of the parser, + // or to modify the syntax tree. For example, selectively eliminating + // unwanted function bodies can significantly accelerate type checking. + ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) + + // If Tests is set, the loader includes not just the packages + // matching a particular pattern but also any related test packages, + // including test-only variants of the package and the test executable. + // + // For example, when using the go command, loading "fmt" with Tests=true + // returns four packages, with IDs "fmt" (the standard package), + // "fmt [fmt.test]" (the package as compiled for the test), + // "fmt_test" (the test functions from source files in package fmt_test), + // and "fmt.test" (the test binary). + // + // In build systems with explicit names for tests, + // setting Tests may have no effect. + Tests bool + + // Overlay provides a mapping of absolute file paths to file contents. + // If the file with the given path already exists, the parser will use the + // alternative file contents provided by the map. + // + // Overlays provide incomplete support for when a given file doesn't + // already exist on disk. See the package doc above for more details. + Overlay map[string][]byte +} + +// driver is the type for functions that query the build system for the +// packages named by the patterns. +type driver func(cfg *Config, patterns ...string) (*driverResponse, error) + +// driverResponse contains the results for a driver query. +type driverResponse struct { + // NotHandled is returned if the request can't be handled by the current + // driver. If an external driver returns a response with NotHandled, the + // rest of the driverResponse is ignored, and go/packages will fallback + // to the next driver. If go/packages is extended in the future to support + // lists of multiple drivers, go/packages will fall back to the next driver. + NotHandled bool + + // Sizes, if not nil, is the types.Sizes to use when type checking. + Sizes *types.StdSizes + + // Roots is the set of package IDs that make up the root packages. + // We have to encode this separately because when we encode a single package + // we cannot know if it is one of the roots as that requires knowledge of the + // graph it is part of. + Roots []string `json:",omitempty"` + + // Packages is the full set of packages in the graph. + // The packages are not connected into a graph. + // The Imports if populated will be stubs that only have their ID set. + // Imports will be connected and then type and syntax information added in a + // later pass (see refine). + Packages []*Package + + // GoVersion is the minor version number used by the driver + // (e.g. the go command on the PATH) when selecting .go files. + // Zero means unknown. + GoVersion int +} + +// Load loads and returns the Go packages named by the given patterns. +// +// Config specifies loading options; +// nil behaves the same as an empty Config. +// +// Load returns an error if any of the patterns was invalid +// as defined by the underlying build system. +// It may return an empty list of packages without an error, +// for instance for an empty expansion of a valid wildcard. +// Errors associated with a particular package are recorded in the +// corresponding Package's Errors list, and do not cause Load to +// return an error. Clients may need to handle such errors before +// proceeding with further analysis. The PrintErrors function is +// provided for convenient display of all errors. +func Load(cfg *Config, patterns ...string) ([]*Package, error) { + l := newLoader(cfg) + response, err := defaultDriver(&l.Config, patterns...) + if err != nil { + return nil, err + } + l.sizes = response.Sizes + return l.refine(response) +} + +// defaultDriver is a driver that implements go/packages' fallback behavior. +// It will try to request to an external driver, if one exists. If there's +// no external driver, or the driver returns a response with NotHandled set, +// defaultDriver will fall back to the go list driver. +func defaultDriver(cfg *Config, patterns ...string) (*driverResponse, error) { + driver := findExternalDriver(cfg) + if driver == nil { + driver = goListDriver + } + response, err := driver(cfg, patterns...) + if err != nil { + return response, err + } else if response.NotHandled { + return goListDriver(cfg, patterns...) + } + return response, nil +} + +// A Package describes a loaded Go package. +type Package struct { + // ID is a unique identifier for a package, + // in a syntax provided by the underlying build system. + // + // Because the syntax varies based on the build system, + // clients should treat IDs as opaque and not attempt to + // interpret them. + ID string + + // Name is the package name as it appears in the package source code. + Name string + + // PkgPath is the package path as used by the go/types package. + PkgPath string + + // Errors contains any errors encountered querying the metadata + // of the package, or while parsing or type-checking its files. + Errors []Error + + // TypeErrors contains the subset of errors produced during type checking. + TypeErrors []types.Error + + // GoFiles lists the absolute file paths of the package's Go source files. + GoFiles []string + + // CompiledGoFiles lists the absolute file paths of the package's source + // files that are suitable for type checking. + // This may differ from GoFiles if files are processed before compilation. + CompiledGoFiles []string + + // OtherFiles lists the absolute file paths of the package's non-Go source files, + // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on. + OtherFiles []string + + // EmbedFiles lists the absolute file paths of the package's files + // embedded with go:embed. + EmbedFiles []string + + // EmbedPatterns lists the absolute file patterns of the package's + // files embedded with go:embed. + EmbedPatterns []string + + // IgnoredFiles lists source files that are not part of the package + // using the current build configuration but that might be part of + // the package using other build configurations. + IgnoredFiles []string + + // ExportFile is the absolute path to a file containing type + // information for the package as provided by the build system. + ExportFile string + + // Imports maps import paths appearing in the package's Go source files + // to corresponding loaded Packages. + Imports map[string]*Package + + // Types provides type information for the package. + // The NeedTypes LoadMode bit sets this field for packages matching the + // patterns; type information for dependencies may be missing or incomplete, + // unless NeedDeps and NeedImports are also set. + Types *types.Package + + // Fset provides position information for Types, TypesInfo, and Syntax. + // It is set only when Types is set. + Fset *token.FileSet + + // IllTyped indicates whether the package or any dependency contains errors. + // It is set only when Types is set. + IllTyped bool + + // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. + // + // The NeedSyntax LoadMode bit populates this field for packages matching the patterns. + // If NeedDeps and NeedImports are also set, this field will also be populated + // for dependencies. + // + // Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are + // removed. If parsing returned nil, Syntax may be shorter than CompiledGoFiles. + Syntax []*ast.File + + // TypesInfo provides type information about the package's syntax trees. + // It is set only when Syntax is set. + TypesInfo *types.Info + + // TypesSizes provides the effective size function for types in TypesInfo. + TypesSizes types.Sizes + + // forTest is the package under test, if any. + forTest string + + // depsErrors is the DepsErrors field from the go list response, if any. + depsErrors []*packagesinternal.PackageError + + // module is the module information for the package if it exists. + Module *Module +} + +// Module provides module information for a package. +type Module struct { + Path string // module path + Version string // module version + Replace *Module // replaced by this module + Time *time.Time // time version was created + Main bool // is this the main module? + Indirect bool // is this module only an indirect dependency of main module? + Dir string // directory holding files for this module, if any + GoMod string // path to go.mod file used when loading this module, if any + GoVersion string // go version used in module + Error *ModuleError // error loading module +} + +// ModuleError holds errors loading a module. +type ModuleError struct { + Err string // the error itself +} + +func init() { + packagesinternal.GetForTest = func(p interface{}) string { + return p.(*Package).forTest + } + packagesinternal.GetDepsErrors = func(p interface{}) []*packagesinternal.PackageError { + return p.(*Package).depsErrors + } + packagesinternal.GetGoCmdRunner = func(config interface{}) *gocommand.Runner { + return config.(*Config).gocmdRunner + } + packagesinternal.SetGoCmdRunner = func(config interface{}, runner *gocommand.Runner) { + config.(*Config).gocmdRunner = runner + } + packagesinternal.SetModFile = func(config interface{}, value string) { + config.(*Config).modFile = value + } + packagesinternal.SetModFlag = func(config interface{}, value string) { + config.(*Config).modFlag = value + } + packagesinternal.TypecheckCgo = int(typecheckCgo) + packagesinternal.DepsErrors = int(needInternalDepsErrors) + packagesinternal.ForTest = int(needInternalForTest) +} + +// An Error describes a problem with a package's metadata, syntax, or types. +type Error struct { + Pos string // "file:line:col" or "file:line" or "" or "-" + Msg string + Kind ErrorKind +} + +// ErrorKind describes the source of the error, allowing the user to +// differentiate between errors generated by the driver, the parser, or the +// type-checker. +type ErrorKind int + +const ( + UnknownError ErrorKind = iota + ListError + ParseError + TypeError +) + +func (err Error) Error() string { + pos := err.Pos + if pos == "" { + pos = "-" // like token.Position{}.String() + } + return pos + ": " + err.Msg +} + +// flatPackage is the JSON form of Package +// It drops all the type and syntax fields, and transforms the Imports +// +// TODO(adonovan): identify this struct with Package, effectively +// publishing the JSON protocol. +type flatPackage struct { + ID string + Name string `json:",omitempty"` + PkgPath string `json:",omitempty"` + Errors []Error `json:",omitempty"` + GoFiles []string `json:",omitempty"` + CompiledGoFiles []string `json:",omitempty"` + OtherFiles []string `json:",omitempty"` + EmbedFiles []string `json:",omitempty"` + EmbedPatterns []string `json:",omitempty"` + IgnoredFiles []string `json:",omitempty"` + ExportFile string `json:",omitempty"` + Imports map[string]string `json:",omitempty"` +} + +// MarshalJSON returns the Package in its JSON form. +// For the most part, the structure fields are written out unmodified, and +// the type and syntax fields are skipped. +// The imports are written out as just a map of path to package id. +// The errors are written using a custom type that tries to preserve the +// structure of error types we know about. +// +// This method exists to enable support for additional build systems. It is +// not intended for use by clients of the API and we may change the format. +func (p *Package) MarshalJSON() ([]byte, error) { + flat := &flatPackage{ + ID: p.ID, + Name: p.Name, + PkgPath: p.PkgPath, + Errors: p.Errors, + GoFiles: p.GoFiles, + CompiledGoFiles: p.CompiledGoFiles, + OtherFiles: p.OtherFiles, + EmbedFiles: p.EmbedFiles, + EmbedPatterns: p.EmbedPatterns, + IgnoredFiles: p.IgnoredFiles, + ExportFile: p.ExportFile, + } + if len(p.Imports) > 0 { + flat.Imports = make(map[string]string, len(p.Imports)) + for path, ipkg := range p.Imports { + flat.Imports[path] = ipkg.ID + } + } + return json.Marshal(flat) +} + +// UnmarshalJSON reads in a Package from its JSON format. +// See MarshalJSON for details about the format accepted. +func (p *Package) UnmarshalJSON(b []byte) error { + flat := &flatPackage{} + if err := json.Unmarshal(b, &flat); err != nil { + return err + } + *p = Package{ + ID: flat.ID, + Name: flat.Name, + PkgPath: flat.PkgPath, + Errors: flat.Errors, + GoFiles: flat.GoFiles, + CompiledGoFiles: flat.CompiledGoFiles, + OtherFiles: flat.OtherFiles, + EmbedFiles: flat.EmbedFiles, + EmbedPatterns: flat.EmbedPatterns, + ExportFile: flat.ExportFile, + } + if len(flat.Imports) > 0 { + p.Imports = make(map[string]*Package, len(flat.Imports)) + for path, id := range flat.Imports { + p.Imports[path] = &Package{ID: id} + } + } + return nil +} + +func (p *Package) String() string { return p.ID } + +// loaderPackage augments Package with state used during the loading phase +type loaderPackage struct { + *Package + importErrors map[string]error // maps each bad import to its error + loadOnce sync.Once + color uint8 // for cycle detection + needsrc bool // load from source (Mode >= LoadTypes) + needtypes bool // type information is either requested or depended on + initial bool // package was matched by a pattern + goVersion int // minor version number of go command on PATH +} + +// loader holds the working state of a single call to load. +type loader struct { + pkgs map[string]*loaderPackage + Config + sizes types.Sizes + parseCache map[string]*parseValue + parseCacheMu sync.Mutex + exportMu sync.Mutex // enforces mutual exclusion of exportdata operations + + // Config.Mode contains the implied mode (see impliedLoadMode). + // Implied mode contains all the fields we need the data for. + // In requestedMode there are the actually requested fields. + // We'll zero them out before returning packages to the user. + // This makes it easier for us to get the conditions where + // we need certain modes right. + requestedMode LoadMode +} + +type parseValue struct { + f *ast.File + err error + ready chan struct{} +} + +func newLoader(cfg *Config) *loader { + ld := &loader{ + parseCache: map[string]*parseValue{}, + } + if cfg != nil { + ld.Config = *cfg + // If the user has provided a logger, use it. + ld.Config.Logf = cfg.Logf + } + if ld.Config.Logf == nil { + // If the GOPACKAGESDEBUG environment variable is set to true, + // but the user has not provided a logger, default to log.Printf. + if debug { + ld.Config.Logf = log.Printf + } else { + ld.Config.Logf = func(format string, args ...interface{}) {} + } + } + if ld.Config.Mode == 0 { + ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility. + } + if ld.Config.Env == nil { + ld.Config.Env = os.Environ() + } + if ld.Config.gocmdRunner == nil { + ld.Config.gocmdRunner = &gocommand.Runner{} + } + if ld.Context == nil { + ld.Context = context.Background() + } + if ld.Dir == "" { + if dir, err := os.Getwd(); err == nil { + ld.Dir = dir + } + } + + // Save the actually requested fields. We'll zero them out before returning packages to the user. + ld.requestedMode = ld.Mode + ld.Mode = impliedLoadMode(ld.Mode) + + if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 { + if ld.Fset == nil { + ld.Fset = token.NewFileSet() + } + + // ParseFile is required even in LoadTypes mode + // because we load source if export data is missing. + if ld.ParseFile == nil { + ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) { + const mode = parser.AllErrors | parser.ParseComments + return parser.ParseFile(fset, filename, src, mode) + } + } + } + + return ld +} + +// refine connects the supplied packages into a graph and then adds type and +// and syntax information as requested by the LoadMode. +func (ld *loader) refine(response *driverResponse) ([]*Package, error) { + roots := response.Roots + rootMap := make(map[string]int, len(roots)) + for i, root := range roots { + rootMap[root] = i + } + ld.pkgs = make(map[string]*loaderPackage) + // first pass, fixup and build the map and roots + var initial = make([]*loaderPackage, len(roots)) + for _, pkg := range response.Packages { + rootIndex := -1 + if i, found := rootMap[pkg.ID]; found { + rootIndex = i + } + + // Overlays can invalidate export data. + // TODO(matloob): make this check fine-grained based on dependencies on overlaid files + exportDataInvalid := len(ld.Overlay) > 0 || pkg.ExportFile == "" && pkg.PkgPath != "unsafe" + // This package needs type information if the caller requested types and the package is + // either a root, or it's a non-root and the user requested dependencies ... + needtypes := (ld.Mode&NeedTypes|NeedTypesInfo != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) + // This package needs source if the call requested source (or types info, which implies source) + // and the package is either a root, or itas a non- root and the user requested dependencies... + needsrc := ((ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) || + // ... or if we need types and the exportData is invalid. We fall back to (incompletely) + // typechecking packages from source if they fail to compile. + (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && exportDataInvalid)) && pkg.PkgPath != "unsafe" + lpkg := &loaderPackage{ + Package: pkg, + needtypes: needtypes, + needsrc: needsrc, + goVersion: response.GoVersion, + } + ld.pkgs[lpkg.ID] = lpkg + if rootIndex >= 0 { + initial[rootIndex] = lpkg + lpkg.initial = true + } + } + for i, root := range roots { + if initial[i] == nil { + return nil, fmt.Errorf("root package %v is missing", root) + } + } + + // Materialize the import graph. + + const ( + white = 0 // new + grey = 1 // in progress + black = 2 // complete + ) + + // visit traverses the import graph, depth-first, + // and materializes the graph as Packages.Imports. + // + // Valid imports are saved in the Packages.Import map. + // Invalid imports (cycles and missing nodes) are saved in the importErrors map. + // Thus, even in the presence of both kinds of errors, the Import graph remains a DAG. + // + // visit returns whether the package needs src or has a transitive + // dependency on a package that does. These are the only packages + // for which we load source code. + var stack []*loaderPackage + var visit func(lpkg *loaderPackage) bool + var srcPkgs []*loaderPackage + visit = func(lpkg *loaderPackage) bool { + switch lpkg.color { + case black: + return lpkg.needsrc + case grey: + panic("internal error: grey node") + } + lpkg.color = grey + stack = append(stack, lpkg) // push + stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports + // If NeedImports isn't set, the imports fields will all be zeroed out. + if ld.Mode&NeedImports != 0 { + lpkg.Imports = make(map[string]*Package, len(stubs)) + for importPath, ipkg := range stubs { + var importErr error + imp := ld.pkgs[ipkg.ID] + if imp == nil { + // (includes package "C" when DisableCgo) + importErr = fmt.Errorf("missing package: %q", ipkg.ID) + } else if imp.color == grey { + importErr = fmt.Errorf("import cycle: %s", stack) + } + if importErr != nil { + if lpkg.importErrors == nil { + lpkg.importErrors = make(map[string]error) + } + lpkg.importErrors[importPath] = importErr + continue + } + + if visit(imp) { + lpkg.needsrc = true + } + lpkg.Imports[importPath] = imp.Package + } + } + if lpkg.needsrc { + srcPkgs = append(srcPkgs, lpkg) + } + if ld.Mode&NeedTypesSizes != 0 { + lpkg.TypesSizes = ld.sizes + } + stack = stack[:len(stack)-1] // pop + lpkg.color = black + + return lpkg.needsrc + } + + if ld.Mode&NeedImports == 0 { + // We do this to drop the stub import packages that we are not even going to try to resolve. + for _, lpkg := range initial { + lpkg.Imports = nil + } + } else { + // For each initial package, create its import DAG. + for _, lpkg := range initial { + visit(lpkg) + } + } + if ld.Mode&NeedImports != 0 && ld.Mode&NeedTypes != 0 { + for _, lpkg := range srcPkgs { + // Complete type information is required for the + // immediate dependencies of each source package. + for _, ipkg := range lpkg.Imports { + imp := ld.pkgs[ipkg.ID] + imp.needtypes = true + } + } + } + // Load type data and syntax if needed, starting at + // the initial packages (roots of the import DAG). + if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 { + var wg sync.WaitGroup + for _, lpkg := range initial { + wg.Add(1) + go func(lpkg *loaderPackage) { + ld.loadRecursive(lpkg) + wg.Done() + }(lpkg) + } + wg.Wait() + } + + result := make([]*Package, len(initial)) + for i, lpkg := range initial { + result[i] = lpkg.Package + } + for i := range ld.pkgs { + // Clear all unrequested fields, + // to catch programs that use more than they request. + if ld.requestedMode&NeedName == 0 { + ld.pkgs[i].Name = "" + ld.pkgs[i].PkgPath = "" + } + if ld.requestedMode&NeedFiles == 0 { + ld.pkgs[i].GoFiles = nil + ld.pkgs[i].OtherFiles = nil + ld.pkgs[i].IgnoredFiles = nil + } + if ld.requestedMode&NeedEmbedFiles == 0 { + ld.pkgs[i].EmbedFiles = nil + } + if ld.requestedMode&NeedEmbedPatterns == 0 { + ld.pkgs[i].EmbedPatterns = nil + } + if ld.requestedMode&NeedCompiledGoFiles == 0 { + ld.pkgs[i].CompiledGoFiles = nil + } + if ld.requestedMode&NeedImports == 0 { + ld.pkgs[i].Imports = nil + } + if ld.requestedMode&NeedExportFile == 0 { + ld.pkgs[i].ExportFile = "" + } + if ld.requestedMode&NeedTypes == 0 { + ld.pkgs[i].Types = nil + ld.pkgs[i].Fset = nil + ld.pkgs[i].IllTyped = false + } + if ld.requestedMode&NeedSyntax == 0 { + ld.pkgs[i].Syntax = nil + } + if ld.requestedMode&NeedTypesInfo == 0 { + ld.pkgs[i].TypesInfo = nil + } + if ld.requestedMode&NeedTypesSizes == 0 { + ld.pkgs[i].TypesSizes = nil + } + if ld.requestedMode&NeedModule == 0 { + ld.pkgs[i].Module = nil + } + } + + return result, nil +} + +// loadRecursive loads the specified package and its dependencies, +// recursively, in parallel, in topological order. +// It is atomic and idempotent. +// Precondition: ld.Mode&NeedTypes. +func (ld *loader) loadRecursive(lpkg *loaderPackage) { + lpkg.loadOnce.Do(func() { + // Load the direct dependencies, in parallel. + var wg sync.WaitGroup + for _, ipkg := range lpkg.Imports { + imp := ld.pkgs[ipkg.ID] + wg.Add(1) + go func(imp *loaderPackage) { + ld.loadRecursive(imp) + wg.Done() + }(imp) + } + wg.Wait() + ld.loadPackage(lpkg) + }) +} + +// loadPackage loads the specified package. +// It must be called only once per Package, +// after immediate dependencies are loaded. +// Precondition: ld.Mode & NeedTypes. +func (ld *loader) loadPackage(lpkg *loaderPackage) { + if lpkg.PkgPath == "unsafe" { + // Fill in the blanks to avoid surprises. + lpkg.Types = types.Unsafe + lpkg.Fset = ld.Fset + lpkg.Syntax = []*ast.File{} + lpkg.TypesInfo = new(types.Info) + lpkg.TypesSizes = ld.sizes + return + } + + // Call NewPackage directly with explicit name. + // This avoids skew between golist and go/types when the files' + // package declarations are inconsistent. + lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) + lpkg.Fset = ld.Fset + + // Subtle: we populate all Types fields with an empty Package + // before loading export data so that export data processing + // never has to create a types.Package for an indirect dependency, + // which would then require that such created packages be explicitly + // inserted back into the Import graph as a final step after export data loading. + // (Hence this return is after the Types assignment.) + // The Diamond test exercises this case. + if !lpkg.needtypes && !lpkg.needsrc { + return + } + if !lpkg.needsrc { + if err := ld.loadFromExportData(lpkg); err != nil { + lpkg.Errors = append(lpkg.Errors, Error{ + Pos: "-", + Msg: err.Error(), + Kind: UnknownError, // e.g. can't find/open/parse export data + }) + } + return // not a source package, don't get syntax trees + } + + appendError := func(err error) { + // Convert various error types into the one true Error. + var errs []Error + switch err := err.(type) { + case Error: + // from driver + errs = append(errs, err) + + case *os.PathError: + // from parser + errs = append(errs, Error{ + Pos: err.Path + ":1", + Msg: err.Err.Error(), + Kind: ParseError, + }) + + case scanner.ErrorList: + // from parser + for _, err := range err { + errs = append(errs, Error{ + Pos: err.Pos.String(), + Msg: err.Msg, + Kind: ParseError, + }) + } + + case types.Error: + // from type checker + lpkg.TypeErrors = append(lpkg.TypeErrors, err) + errs = append(errs, Error{ + Pos: err.Fset.Position(err.Pos).String(), + Msg: err.Msg, + Kind: TypeError, + }) + + default: + // unexpected impoverished error from parser? + errs = append(errs, Error{ + Pos: "-", + Msg: err.Error(), + Kind: UnknownError, + }) + + // If you see this error message, please file a bug. + log.Printf("internal error: error %q (%T) without position", err, err) + } + + lpkg.Errors = append(lpkg.Errors, errs...) + } + + // If the go command on the PATH is newer than the runtime, + // then the go/{scanner,ast,parser,types} packages from the + // standard library may be unable to process the files + // selected by go list. + // + // There is currently no way to downgrade the effective + // version of the go command (see issue 52078), so we proceed + // with the newer go command but, in case of parse or type + // errors, we emit an additional diagnostic. + // + // See: + // - golang.org/issue/52078 (flag to set release tags) + // - golang.org/issue/50825 (gopls legacy version support) + // - golang.org/issue/55883 (go/packages confusing error) + // + // Should we assert a hard minimum of (currently) go1.16 here? + var runtimeVersion int + if _, err := fmt.Sscanf(runtime.Version(), "go1.%d", &runtimeVersion); err == nil && runtimeVersion < lpkg.goVersion { + defer func() { + if len(lpkg.Errors) > 0 { + appendError(Error{ + Pos: "-", + Msg: fmt.Sprintf("This application uses version go1.%d of the source-processing packages but runs version go1.%d of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go.", runtimeVersion, lpkg.goVersion), + Kind: UnknownError, + }) + } + }() + } + + if ld.Config.Mode&NeedTypes != 0 && len(lpkg.CompiledGoFiles) == 0 && lpkg.ExportFile != "" { + // The config requested loading sources and types, but sources are missing. + // Add an error to the package and fall back to loading from export data. + appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError}) + _ = ld.loadFromExportData(lpkg) // ignore any secondary errors + + return // can't get syntax trees for this package + } + + files, errs := ld.parseFiles(lpkg.CompiledGoFiles) + for _, err := range errs { + appendError(err) + } + + lpkg.Syntax = files + if ld.Config.Mode&NeedTypes == 0 { + return + } + + lpkg.TypesInfo = &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } + typeparams.InitInstanceInfo(lpkg.TypesInfo) + lpkg.TypesSizes = ld.sizes + + importer := importerFunc(func(path string) (*types.Package, error) { + if path == "unsafe" { + return types.Unsafe, nil + } + + // The imports map is keyed by import path. + ipkg := lpkg.Imports[path] + if ipkg == nil { + if err := lpkg.importErrors[path]; err != nil { + return nil, err + } + // There was skew between the metadata and the + // import declarations, likely due to an edit + // race, or because the ParseFile feature was + // used to supply alternative file contents. + return nil, fmt.Errorf("no metadata for %s", path) + } + + if ipkg.Types != nil && ipkg.Types.Complete() { + return ipkg.Types, nil + } + log.Fatalf("internal error: package %q without types was imported from %q", path, lpkg) + panic("unreachable") + }) + + // type-check + tc := &types.Config{ + Importer: importer, + + // Type-check bodies of functions only in initial packages. + // Example: for import graph A->B->C and initial packages {A,C}, + // we can ignore function bodies in B. + IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial, + + Error: appendError, + Sizes: ld.sizes, + } + if (ld.Mode & typecheckCgo) != 0 { + if !typesinternal.SetUsesCgo(tc) { + appendError(Error{ + Msg: "typecheckCgo requires Go 1.15+", + Kind: ListError, + }) + return + } + } + types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) + + lpkg.importErrors = nil // no longer needed + + // If !Cgo, the type-checker uses FakeImportC mode, so + // it doesn't invoke the importer for import "C", + // nor report an error for the import, + // or for any undefined C.f reference. + // We must detect this explicitly and correctly + // mark the package as IllTyped (by reporting an error). + // TODO(adonovan): if these errors are annoying, + // we could just set IllTyped quietly. + if tc.FakeImportC { + outer: + for _, f := range lpkg.Syntax { + for _, imp := range f.Imports { + if imp.Path.Value == `"C"` { + err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`} + appendError(err) + break outer + } + } + } + } + + // Record accumulated errors. + illTyped := len(lpkg.Errors) > 0 + if !illTyped { + for _, imp := range lpkg.Imports { + if imp.IllTyped { + illTyped = true + break + } + } + } + lpkg.IllTyped = illTyped +} + +// An importFunc is an implementation of the single-method +// types.Importer interface based on a function value. +type importerFunc func(path string) (*types.Package, error) + +func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) } + +// We use a counting semaphore to limit +// the number of parallel I/O calls per process. +var ioLimit = make(chan bool, 20) + +func (ld *loader) parseFile(filename string) (*ast.File, error) { + ld.parseCacheMu.Lock() + v, ok := ld.parseCache[filename] + if ok { + // cache hit + ld.parseCacheMu.Unlock() + <-v.ready + } else { + // cache miss + v = &parseValue{ready: make(chan struct{})} + ld.parseCache[filename] = v + ld.parseCacheMu.Unlock() + + var src []byte + for f, contents := range ld.Config.Overlay { + if sameFile(f, filename) { + src = contents + } + } + var err error + if src == nil { + ioLimit <- true // wait + src, err = ioutil.ReadFile(filename) + <-ioLimit // signal + } + if err != nil { + v.err = err + } else { + v.f, v.err = ld.ParseFile(ld.Fset, filename, src) + } + + close(v.ready) + } + return v.f, v.err +} + +// parseFiles reads and parses the Go source files and returns the ASTs +// of the ones that could be at least partially parsed, along with a +// list of I/O and parse errors encountered. +// +// Because files are scanned in parallel, the token.Pos +// positions of the resulting ast.Files are not ordered. +func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { + var wg sync.WaitGroup + n := len(filenames) + parsed := make([]*ast.File, n) + errors := make([]error, n) + for i, file := range filenames { + if ld.Config.Context.Err() != nil { + parsed[i] = nil + errors[i] = ld.Config.Context.Err() + continue + } + wg.Add(1) + go func(i int, filename string) { + parsed[i], errors[i] = ld.parseFile(filename) + wg.Done() + }(i, file) + } + wg.Wait() + + // Eliminate nils, preserving order. + var o int + for _, f := range parsed { + if f != nil { + parsed[o] = f + o++ + } + } + parsed = parsed[:o] + + o = 0 + for _, err := range errors { + if err != nil { + errors[o] = err + o++ + } + } + errors = errors[:o] + + return parsed, errors +} + +// sameFile returns true if x and y have the same basename and denote +// the same file. +func sameFile(x, y string) bool { + if x == y { + // It could be the case that y doesn't exist. + // For instance, it may be an overlay file that + // hasn't been written to disk. To handle that case + // let x == y through. (We added the exact absolute path + // string to the CompiledGoFiles list, so the unwritten + // overlay case implies x==y.) + return true + } + if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation) + if xi, err := os.Stat(x); err == nil { + if yi, err := os.Stat(y); err == nil { + return os.SameFile(xi, yi) + } + } + } + return false +} + +// loadFromExportData ensures that type information is present for the specified +// package, loading it from an export data file on the first request. +// On success it sets lpkg.Types to a new Package. +func (ld *loader) loadFromExportData(lpkg *loaderPackage) error { + if lpkg.PkgPath == "" { + log.Fatalf("internal error: Package %s has no PkgPath", lpkg) + } + + // Because gcexportdata.Read has the potential to create or + // modify the types.Package for each node in the transitive + // closure of dependencies of lpkg, all exportdata operations + // must be sequential. (Finer-grained locking would require + // changes to the gcexportdata API.) + // + // The exportMu lock guards the lpkg.Types field and the + // types.Package it points to, for each loaderPackage in the graph. + // + // Not all accesses to Package.Pkg need to be protected by exportMu: + // graph ordering ensures that direct dependencies of source + // packages are fully loaded before the importer reads their Pkg field. + ld.exportMu.Lock() + defer ld.exportMu.Unlock() + + if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() { + return nil // cache hit + } + + lpkg.IllTyped = true // fail safe + + if lpkg.ExportFile == "" { + // Errors while building export data will have been printed to stderr. + return fmt.Errorf("no export data file") + } + f, err := os.Open(lpkg.ExportFile) + if err != nil { + return err + } + defer f.Close() + + // Read gc export data. + // + // We don't currently support gccgo export data because all + // underlying workspaces use the gc toolchain. (Even build + // systems that support gccgo don't use it for workspace + // queries.) + r, err := gcexportdata.NewReader(f) + if err != nil { + return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) + } + + // Build the view. + // + // The gcexportdata machinery has no concept of package ID. + // It identifies packages by their PkgPath, which although not + // globally unique is unique within the scope of one invocation + // of the linker, type-checker, or gcexportdata. + // + // So, we must build a PkgPath-keyed view of the global + // (conceptually ID-keyed) cache of packages and pass it to + // gcexportdata. The view must contain every existing + // package that might possibly be mentioned by the + // current package---its transitive closure. + // + // In loadPackage, we unconditionally create a types.Package for + // each dependency so that export data loading does not + // create new ones. + // + // TODO(adonovan): it would be simpler and more efficient + // if the export data machinery invoked a callback to + // get-or-create a package instead of a map. + // + view := make(map[string]*types.Package) // view seen by gcexportdata + seen := make(map[*loaderPackage]bool) // all visited packages + var visit func(pkgs map[string]*Package) + visit = func(pkgs map[string]*Package) { + for _, p := range pkgs { + lpkg := ld.pkgs[p.ID] + if !seen[lpkg] { + seen[lpkg] = true + view[lpkg.PkgPath] = lpkg.Types + visit(lpkg.Imports) + } + } + } + visit(lpkg.Imports) + + viewLen := len(view) + 1 // adding the self package + // Parse the export data. + // (May modify incomplete packages in view but not create new ones.) + tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath) + if err != nil { + return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) + } + if _, ok := view["go.shape"]; ok { + // Account for the pseudopackage "go.shape" that gets + // created by generic code. + viewLen++ + } + if viewLen != len(view) { + log.Panicf("golang.org/x/tools/go/packages: unexpected new packages during load of %s", lpkg.PkgPath) + } + + lpkg.Types = tpkg + lpkg.IllTyped = false + return nil +} + +// impliedLoadMode returns loadMode with its dependencies. +func impliedLoadMode(loadMode LoadMode) LoadMode { + if loadMode&(NeedDeps|NeedTypes|NeedTypesInfo) != 0 { + // All these things require knowing the import graph. + loadMode |= NeedImports + } + + return loadMode +} + +func usesExportData(cfg *Config) bool { + return cfg.Mode&NeedExportFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedDeps == 0 +} + +var _ interface{} = io.Discard // assert build toolchain is go1.16 or later diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go new file mode 100644 index 0000000000..a1dcc40b72 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go @@ -0,0 +1,59 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package packages + +import ( + "fmt" + "os" + "sort" +) + +// Visit visits all the packages in the import graph whose roots are +// pkgs, calling the optional pre function the first time each package +// is encountered (preorder), and the optional post function after a +// package's dependencies have been visited (postorder). +// The boolean result of pre(pkg) determines whether +// the imports of package pkg are visited. +func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { + seen := make(map[*Package]bool) + var visit func(*Package) + visit = func(pkg *Package) { + if !seen[pkg] { + seen[pkg] = true + + if pre == nil || pre(pkg) { + paths := make([]string, 0, len(pkg.Imports)) + for path := range pkg.Imports { + paths = append(paths, path) + } + sort.Strings(paths) // Imports is a map, this makes visit stable + for _, path := range paths { + visit(pkg.Imports[path]) + } + } + + if post != nil { + post(pkg) + } + } + } + for _, pkg := range pkgs { + visit(pkg) + } +} + +// PrintErrors prints to os.Stderr the accumulated errors of all +// packages in the import graph rooted at pkgs, dependencies first. +// PrintErrors returns the number of errors printed. +func PrintErrors(pkgs []*Package) int { + var n int + Visit(pkgs, nil, func(pkg *Package) { + for _, err := range pkg.Errors { + fmt.Fprintln(os.Stderr, err) + n++ + } + }) + return n +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go new file mode 100644 index 0000000000..30582ed6d3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go @@ -0,0 +1,852 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Binary package export. +// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go; +// see that file for specification of the format. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "math" + "math/big" + "sort" + "strings" +) + +// If debugFormat is set, each integer and string value is preceded by a marker +// and position information in the encoding. This mechanism permits an importer +// to recognize immediately when it is out of sync. The importer recognizes this +// mode automatically (i.e., it can import export data produced with debugging +// support even if debugFormat is not set at the time of import). This mode will +// lead to massively larger export data (by a factor of 2 to 3) and should only +// be enabled during development and debugging. +// +// NOTE: This flag is the first flag to enable if importing dies because of +// (suspected) format errors, and whenever a change is made to the format. +const debugFormat = false // default: false + +// Current export format version. Increase with each format change. +// +// Note: The latest binary (non-indexed) export format is at version 6. +// This exporter is still at level 4, but it doesn't matter since +// the binary importer can handle older versions just fine. +// +// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE +// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMENTED HERE +// 4: type name objects support type aliases, uses aliasTag +// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used) +// 2: removed unused bool in ODCL export (compiler only) +// 1: header format change (more regular), export package for _ struct fields +// 0: Go1.7 encoding +const exportVersion = 4 + +// trackAllTypes enables cycle tracking for all types, not just named +// types. The existing compiler invariants assume that unnamed types +// that are not completely set up are not used, or else there are spurious +// errors. +// If disabled, only named types are tracked, possibly leading to slightly +// less efficient encoding in rare cases. It also prevents the export of +// some corner-case type declarations (but those are not handled correctly +// with with the textual export format either). +// TODO(gri) enable and remove once issues caused by it are fixed +const trackAllTypes = false + +type exporter struct { + fset *token.FileSet + out bytes.Buffer + + // object -> index maps, indexed in order of serialization + strIndex map[string]int + pkgIndex map[*types.Package]int + typIndex map[types.Type]int + + // position encoding + posInfoFormat bool + prevFile string + prevLine int + + // debugging support + written int // bytes written + indent int // for trace +} + +// internalError represents an error generated inside this package. +type internalError string + +func (e internalError) Error() string { return "gcimporter: " + string(e) } + +func internalErrorf(format string, args ...interface{}) error { + return internalError(fmt.Sprintf(format, args...)) +} + +// BExportData returns binary export data for pkg. +// If no file set is provided, position info will be missing. +func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) { + if !debug { + defer func() { + if e := recover(); e != nil { + if ierr, ok := e.(internalError); ok { + err = ierr + return + } + // Not an internal error; panic again. + panic(e) + } + }() + } + + p := exporter{ + fset: fset, + strIndex: map[string]int{"": 0}, // empty string is mapped to 0 + pkgIndex: make(map[*types.Package]int), + typIndex: make(map[types.Type]int), + posInfoFormat: true, // TODO(gri) might become a flag, eventually + } + + // write version info + // The version string must start with "version %d" where %d is the version + // number. Additional debugging information may follow after a blank; that + // text is ignored by the importer. + p.rawStringln(fmt.Sprintf("version %d", exportVersion)) + var debug string + if debugFormat { + debug = "debug" + } + p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly + p.bool(trackAllTypes) + p.bool(p.posInfoFormat) + + // --- generic export data --- + + // populate type map with predeclared "known" types + for index, typ := range predeclared() { + p.typIndex[typ] = index + } + if len(p.typIndex) != len(predeclared()) { + return nil, internalError("duplicate entries in type map?") + } + + // write package data + p.pkg(pkg, true) + if trace { + p.tracef("\n") + } + + // write objects + objcount := 0 + scope := pkg.Scope() + for _, name := range scope.Names() { + if !token.IsExported(name) { + continue + } + if trace { + p.tracef("\n") + } + p.obj(scope.Lookup(name)) + objcount++ + } + + // indicate end of list + if trace { + p.tracef("\n") + } + p.tag(endTag) + + // for self-verification only (redundant) + p.int(objcount) + + if trace { + p.tracef("\n") + } + + // --- end of export data --- + + return p.out.Bytes(), nil +} + +func (p *exporter) pkg(pkg *types.Package, emptypath bool) { + if pkg == nil { + panic(internalError("unexpected nil pkg")) + } + + // if we saw the package before, write its index (>= 0) + if i, ok := p.pkgIndex[pkg]; ok { + p.index('P', i) + return + } + + // otherwise, remember the package, write the package tag (< 0) and package data + if trace { + p.tracef("P%d = { ", len(p.pkgIndex)) + defer p.tracef("} ") + } + p.pkgIndex[pkg] = len(p.pkgIndex) + + p.tag(packageTag) + p.string(pkg.Name()) + if emptypath { + p.string("") + } else { + p.string(pkg.Path()) + } +} + +func (p *exporter) obj(obj types.Object) { + switch obj := obj.(type) { + case *types.Const: + p.tag(constTag) + p.pos(obj) + p.qualifiedName(obj) + p.typ(obj.Type()) + p.value(obj.Val()) + + case *types.TypeName: + if obj.IsAlias() { + p.tag(aliasTag) + p.pos(obj) + p.qualifiedName(obj) + } else { + p.tag(typeTag) + } + p.typ(obj.Type()) + + case *types.Var: + p.tag(varTag) + p.pos(obj) + p.qualifiedName(obj) + p.typ(obj.Type()) + + case *types.Func: + p.tag(funcTag) + p.pos(obj) + p.qualifiedName(obj) + sig := obj.Type().(*types.Signature) + p.paramList(sig.Params(), sig.Variadic()) + p.paramList(sig.Results(), false) + + default: + panic(internalErrorf("unexpected object %v (%T)", obj, obj)) + } +} + +func (p *exporter) pos(obj types.Object) { + if !p.posInfoFormat { + return + } + + file, line := p.fileLine(obj) + if file == p.prevFile { + // common case: write line delta + // delta == 0 means different file or no line change + delta := line - p.prevLine + p.int(delta) + if delta == 0 { + p.int(-1) // -1 means no file change + } + } else { + // different file + p.int(0) + // Encode filename as length of common prefix with previous + // filename, followed by (possibly empty) suffix. Filenames + // frequently share path prefixes, so this can save a lot + // of space and make export data size less dependent on file + // path length. The suffix is unlikely to be empty because + // file names tend to end in ".go". + n := commonPrefixLen(p.prevFile, file) + p.int(n) // n >= 0 + p.string(file[n:]) // write suffix only + p.prevFile = file + p.int(line) + } + p.prevLine = line +} + +func (p *exporter) fileLine(obj types.Object) (file string, line int) { + if p.fset != nil { + pos := p.fset.Position(obj.Pos()) + file = pos.Filename + line = pos.Line + } + return +} + +func commonPrefixLen(a, b string) int { + if len(a) > len(b) { + a, b = b, a + } + // len(a) <= len(b) + i := 0 + for i < len(a) && a[i] == b[i] { + i++ + } + return i +} + +func (p *exporter) qualifiedName(obj types.Object) { + p.string(obj.Name()) + p.pkg(obj.Pkg(), false) +} + +func (p *exporter) typ(t types.Type) { + if t == nil { + panic(internalError("nil type")) + } + + // Possible optimization: Anonymous pointer types *T where + // T is a named type are common. We could canonicalize all + // such types *T to a single type PT = *T. This would lead + // to at most one *T entry in typIndex, and all future *T's + // would be encoded as the respective index directly. Would + // save 1 byte (pointerTag) per *T and reduce the typIndex + // size (at the cost of a canonicalization map). We can do + // this later, without encoding format change. + + // if we saw the type before, write its index (>= 0) + if i, ok := p.typIndex[t]; ok { + p.index('T', i) + return + } + + // otherwise, remember the type, write the type tag (< 0) and type data + if trackAllTypes { + if trace { + p.tracef("T%d = {>\n", len(p.typIndex)) + defer p.tracef("<\n} ") + } + p.typIndex[t] = len(p.typIndex) + } + + switch t := t.(type) { + case *types.Named: + if !trackAllTypes { + // if we don't track all types, track named types now + p.typIndex[t] = len(p.typIndex) + } + + p.tag(namedTag) + p.pos(t.Obj()) + p.qualifiedName(t.Obj()) + p.typ(t.Underlying()) + if !types.IsInterface(t) { + p.assocMethods(t) + } + + case *types.Array: + p.tag(arrayTag) + p.int64(t.Len()) + p.typ(t.Elem()) + + case *types.Slice: + p.tag(sliceTag) + p.typ(t.Elem()) + + case *dddSlice: + p.tag(dddTag) + p.typ(t.elem) + + case *types.Struct: + p.tag(structTag) + p.fieldList(t) + + case *types.Pointer: + p.tag(pointerTag) + p.typ(t.Elem()) + + case *types.Signature: + p.tag(signatureTag) + p.paramList(t.Params(), t.Variadic()) + p.paramList(t.Results(), false) + + case *types.Interface: + p.tag(interfaceTag) + p.iface(t) + + case *types.Map: + p.tag(mapTag) + p.typ(t.Key()) + p.typ(t.Elem()) + + case *types.Chan: + p.tag(chanTag) + p.int(int(3 - t.Dir())) // hack + p.typ(t.Elem()) + + default: + panic(internalErrorf("unexpected type %T: %s", t, t)) + } +} + +func (p *exporter) assocMethods(named *types.Named) { + // Sort methods (for determinism). + var methods []*types.Func + for i := 0; i < named.NumMethods(); i++ { + methods = append(methods, named.Method(i)) + } + sort.Sort(methodsByName(methods)) + + p.int(len(methods)) + + if trace && methods != nil { + p.tracef("associated methods {>\n") + } + + for i, m := range methods { + if trace && i > 0 { + p.tracef("\n") + } + + p.pos(m) + name := m.Name() + p.string(name) + if !exported(name) { + p.pkg(m.Pkg(), false) + } + + sig := m.Type().(*types.Signature) + p.paramList(types.NewTuple(sig.Recv()), false) + p.paramList(sig.Params(), sig.Variadic()) + p.paramList(sig.Results(), false) + p.int(0) // dummy value for go:nointerface pragma - ignored by importer + } + + if trace && methods != nil { + p.tracef("<\n} ") + } +} + +type methodsByName []*types.Func + +func (x methodsByName) Len() int { return len(x) } +func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() } + +func (p *exporter) fieldList(t *types.Struct) { + if trace && t.NumFields() > 0 { + p.tracef("fields {>\n") + defer p.tracef("<\n} ") + } + + p.int(t.NumFields()) + for i := 0; i < t.NumFields(); i++ { + if trace && i > 0 { + p.tracef("\n") + } + p.field(t.Field(i)) + p.string(t.Tag(i)) + } +} + +func (p *exporter) field(f *types.Var) { + if !f.IsField() { + panic(internalError("field expected")) + } + + p.pos(f) + p.fieldName(f) + p.typ(f.Type()) +} + +func (p *exporter) iface(t *types.Interface) { + // TODO(gri): enable importer to load embedded interfaces, + // then emit Embeddeds and ExplicitMethods separately here. + p.int(0) + + n := t.NumMethods() + if trace && n > 0 { + p.tracef("methods {>\n") + defer p.tracef("<\n} ") + } + p.int(n) + for i := 0; i < n; i++ { + if trace && i > 0 { + p.tracef("\n") + } + p.method(t.Method(i)) + } +} + +func (p *exporter) method(m *types.Func) { + sig := m.Type().(*types.Signature) + if sig.Recv() == nil { + panic(internalError("method expected")) + } + + p.pos(m) + p.string(m.Name()) + if m.Name() != "_" && !token.IsExported(m.Name()) { + p.pkg(m.Pkg(), false) + } + + // interface method; no need to encode receiver. + p.paramList(sig.Params(), sig.Variadic()) + p.paramList(sig.Results(), false) +} + +func (p *exporter) fieldName(f *types.Var) { + name := f.Name() + + if f.Anonymous() { + // anonymous field - we distinguish between 3 cases: + // 1) field name matches base type name and is exported + // 2) field name matches base type name and is not exported + // 3) field name doesn't match base type name (alias name) + bname := basetypeName(f.Type()) + if name == bname { + if token.IsExported(name) { + name = "" // 1) we don't need to know the field name or package + } else { + name = "?" // 2) use unexported name "?" to force package export + } + } else { + // 3) indicate alias and export name as is + // (this requires an extra "@" but this is a rare case) + p.string("@") + } + } + + p.string(name) + if name != "" && !token.IsExported(name) { + p.pkg(f.Pkg(), false) + } +} + +func basetypeName(typ types.Type) string { + switch typ := deref(typ).(type) { + case *types.Basic: + return typ.Name() + case *types.Named: + return typ.Obj().Name() + default: + return "" // unnamed type + } +} + +func (p *exporter) paramList(params *types.Tuple, variadic bool) { + // use negative length to indicate unnamed parameters + // (look at the first parameter only since either all + // names are present or all are absent) + n := params.Len() + if n > 0 && params.At(0).Name() == "" { + n = -n + } + p.int(n) + for i := 0; i < params.Len(); i++ { + q := params.At(i) + t := q.Type() + if variadic && i == params.Len()-1 { + t = &dddSlice{t.(*types.Slice).Elem()} + } + p.typ(t) + if n > 0 { + name := q.Name() + p.string(name) + if name != "_" { + p.pkg(q.Pkg(), false) + } + } + p.string("") // no compiler-specific info + } +} + +func (p *exporter) value(x constant.Value) { + if trace { + p.tracef("= ") + } + + switch x.Kind() { + case constant.Bool: + tag := falseTag + if constant.BoolVal(x) { + tag = trueTag + } + p.tag(tag) + + case constant.Int: + if v, exact := constant.Int64Val(x); exact { + // common case: x fits into an int64 - use compact encoding + p.tag(int64Tag) + p.int64(v) + return + } + // uncommon case: large x - use float encoding + // (powers of 2 will be encoded efficiently with exponent) + p.tag(floatTag) + p.float(constant.ToFloat(x)) + + case constant.Float: + p.tag(floatTag) + p.float(x) + + case constant.Complex: + p.tag(complexTag) + p.float(constant.Real(x)) + p.float(constant.Imag(x)) + + case constant.String: + p.tag(stringTag) + p.string(constant.StringVal(x)) + + case constant.Unknown: + // package contains type errors + p.tag(unknownTag) + + default: + panic(internalErrorf("unexpected value %v (%T)", x, x)) + } +} + +func (p *exporter) float(x constant.Value) { + if x.Kind() != constant.Float { + panic(internalErrorf("unexpected constant %v, want float", x)) + } + // extract sign (there is no -0) + sign := constant.Sign(x) + if sign == 0 { + // x == 0 + p.int(0) + return + } + // x != 0 + + var f big.Float + if v, exact := constant.Float64Val(x); exact { + // float64 + f.SetFloat64(v) + } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { + // TODO(gri): add big.Rat accessor to constant.Value. + r := valueToRat(num) + f.SetRat(r.Quo(r, valueToRat(denom))) + } else { + // Value too large to represent as a fraction => inaccessible. + // TODO(gri): add big.Float accessor to constant.Value. + f.SetFloat64(math.MaxFloat64) // FIXME + } + + // extract exponent such that 0.5 <= m < 1.0 + var m big.Float + exp := f.MantExp(&m) + + // extract mantissa as *big.Int + // - set exponent large enough so mant satisfies mant.IsInt() + // - get *big.Int from mant + m.SetMantExp(&m, int(m.MinPrec())) + mant, acc := m.Int(nil) + if acc != big.Exact { + panic(internalError("internal error")) + } + + p.int(sign) + p.int(exp) + p.string(string(mant.Bytes())) +} + +func valueToRat(x constant.Value) *big.Rat { + // Convert little-endian to big-endian. + // I can't believe this is necessary. + bytes := constant.Bytes(x) + for i := 0; i < len(bytes)/2; i++ { + bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] + } + return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) +} + +func (p *exporter) bool(b bool) bool { + if trace { + p.tracef("[") + defer p.tracef("= %v] ", b) + } + + x := 0 + if b { + x = 1 + } + p.int(x) + return b +} + +// ---------------------------------------------------------------------------- +// Low-level encoders + +func (p *exporter) index(marker byte, index int) { + if index < 0 { + panic(internalError("invalid index < 0")) + } + if debugFormat { + p.marker('t') + } + if trace { + p.tracef("%c%d ", marker, index) + } + p.rawInt64(int64(index)) +} + +func (p *exporter) tag(tag int) { + if tag >= 0 { + panic(internalError("invalid tag >= 0")) + } + if debugFormat { + p.marker('t') + } + if trace { + p.tracef("%s ", tagString[-tag]) + } + p.rawInt64(int64(tag)) +} + +func (p *exporter) int(x int) { + p.int64(int64(x)) +} + +func (p *exporter) int64(x int64) { + if debugFormat { + p.marker('i') + } + if trace { + p.tracef("%d ", x) + } + p.rawInt64(x) +} + +func (p *exporter) string(s string) { + if debugFormat { + p.marker('s') + } + if trace { + p.tracef("%q ", s) + } + // if we saw the string before, write its index (>= 0) + // (the empty string is mapped to 0) + if i, ok := p.strIndex[s]; ok { + p.rawInt64(int64(i)) + return + } + // otherwise, remember string and write its negative length and bytes + p.strIndex[s] = len(p.strIndex) + p.rawInt64(-int64(len(s))) + for i := 0; i < len(s); i++ { + p.rawByte(s[i]) + } +} + +// marker emits a marker byte and position information which makes +// it easy for a reader to detect if it is "out of sync". Used for +// debugFormat format only. +func (p *exporter) marker(m byte) { + p.rawByte(m) + // Enable this for help tracking down the location + // of an incorrect marker when running in debugFormat. + if false && trace { + p.tracef("#%d ", p.written) + } + p.rawInt64(int64(p.written)) +} + +// rawInt64 should only be used by low-level encoders. +func (p *exporter) rawInt64(x int64) { + var tmp [binary.MaxVarintLen64]byte + n := binary.PutVarint(tmp[:], x) + for i := 0; i < n; i++ { + p.rawByte(tmp[i]) + } +} + +// rawStringln should only be used to emit the initial version string. +func (p *exporter) rawStringln(s string) { + for i := 0; i < len(s); i++ { + p.rawByte(s[i]) + } + p.rawByte('\n') +} + +// rawByte is the bottleneck interface to write to p.out. +// rawByte escapes b as follows (any encoding does that +// hides '$'): +// +// '$' => '|' 'S' +// '|' => '|' '|' +// +// Necessary so other tools can find the end of the +// export data by searching for "$$". +// rawByte should only be used by low-level encoders. +func (p *exporter) rawByte(b byte) { + switch b { + case '$': + // write '$' as '|' 'S' + b = 'S' + fallthrough + case '|': + // write '|' as '|' '|' + p.out.WriteByte('|') + p.written++ + } + p.out.WriteByte(b) + p.written++ +} + +// tracef is like fmt.Printf but it rewrites the format string +// to take care of indentation. +func (p *exporter) tracef(format string, args ...interface{}) { + if strings.ContainsAny(format, "<>\n") { + var buf bytes.Buffer + for i := 0; i < len(format); i++ { + // no need to deal with runes + ch := format[i] + switch ch { + case '>': + p.indent++ + continue + case '<': + p.indent-- + continue + } + buf.WriteByte(ch) + if ch == '\n' { + for j := p.indent; j > 0; j-- { + buf.WriteString(". ") + } + } + } + format = buf.String() + } + fmt.Printf(format, args...) +} + +// Debugging support. +// (tagString is only used when tracing is enabled) +var tagString = [...]string{ + // Packages + -packageTag: "package", + + // Types + -namedTag: "named type", + -arrayTag: "array", + -sliceTag: "slice", + -dddTag: "ddd", + -structTag: "struct", + -pointerTag: "pointer", + -signatureTag: "signature", + -interfaceTag: "interface", + -mapTag: "map", + -chanTag: "chan", + + // Values + -falseTag: "false", + -trueTag: "true", + -int64Tag: "int64", + -floatTag: "float", + -fractionTag: "fraction", + -complexTag: "complex", + -stringTag: "string", + -unknownTag: "unknown", + + // Type aliases + -aliasTag: "alias", +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go new file mode 100644 index 0000000000..b85de01470 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go @@ -0,0 +1,1053 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a copy of $GOROOT/src/go/internal/gcimporter/bimport.go. + +package gcimporter + +import ( + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "sort" + "strconv" + "strings" + "sync" + "unicode" + "unicode/utf8" +) + +type importer struct { + imports map[string]*types.Package + data []byte + importpath string + buf []byte // for reading strings + version int // export format version + + // object lists + strList []string // in order of appearance + pathList []string // in order of appearance + pkgList []*types.Package // in order of appearance + typList []types.Type // in order of appearance + interfaceList []*types.Interface // for delayed completion only + trackAllTypes bool + + // position encoding + posInfoFormat bool + prevFile string + prevLine int + fake fakeFileSet + + // debugging support + debugFormat bool + read int // bytes read +} + +// BImportData imports a package from the serialized package data +// and returns the number of bytes consumed and a reference to the package. +// If the export data version is not recognized or the format is otherwise +// compromised, an error is returned. +func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + // catch panics and return them as errors + const currentVersion = 6 + version := -1 // unknown version + defer func() { + if e := recover(); e != nil { + // Return a (possibly nil or incomplete) package unchanged (see #16088). + if version > currentVersion { + err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) + } else { + err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) + } + } + }() + + p := importer{ + imports: imports, + data: data, + importpath: path, + version: version, + strList: []string{""}, // empty string is mapped to 0 + pathList: []string{""}, // empty string is mapped to 0 + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*fileInfo), + }, + } + defer p.fake.setLines() // set lines for files in fset + + // read version info + var versionstr string + if b := p.rawByte(); b == 'c' || b == 'd' { + // Go1.7 encoding; first byte encodes low-level + // encoding format (compact vs debug). + // For backward-compatibility only (avoid problems with + // old installed packages). Newly compiled packages use + // the extensible format string. + // TODO(gri) Remove this support eventually; after Go1.8. + if b == 'd' { + p.debugFormat = true + } + p.trackAllTypes = p.rawByte() == 'a' + p.posInfoFormat = p.int() != 0 + versionstr = p.string() + if versionstr == "v1" { + version = 0 + } + } else { + // Go1.8 extensible encoding + // read version string and extract version number (ignore anything after the version number) + versionstr = p.rawStringln(b) + if s := strings.SplitN(versionstr, " ", 3); len(s) >= 2 && s[0] == "version" { + if v, err := strconv.Atoi(s[1]); err == nil && v > 0 { + version = v + } + } + } + p.version = version + + // read version specific flags - extend as necessary + switch p.version { + // case currentVersion: + // ... + // fallthrough + case currentVersion, 5, 4, 3, 2, 1: + p.debugFormat = p.rawStringln(p.rawByte()) == "debug" + p.trackAllTypes = p.int() != 0 + p.posInfoFormat = p.int() != 0 + case 0: + // Go1.7 encoding format - nothing to do here + default: + errorf("unknown bexport format version %d (%q)", p.version, versionstr) + } + + // --- generic export data --- + + // populate typList with predeclared "known" types + p.typList = append(p.typList, predeclared()...) + + // read package data + pkg = p.pkg() + + // read objects of phase 1 only (see cmd/compile/internal/gc/bexport.go) + objcount := 0 + for { + tag := p.tagOrIndex() + if tag == endTag { + break + } + p.obj(tag) + objcount++ + } + + // self-verification + if count := p.int(); count != objcount { + errorf("got %d objects; want %d", objcount, count) + } + + // ignore compiler-specific import data + + // complete interfaces + // TODO(gri) re-investigate if we still need to do this in a delayed fashion + for _, typ := range p.interfaceList { + typ.Complete() + } + + // record all referenced packages as imports + list := append(([]*types.Package)(nil), p.pkgList[1:]...) + sort.Sort(byPath(list)) + pkg.SetImports(list) + + // package was imported completely and without errors + pkg.MarkComplete() + + return p.read, pkg, nil +} + +func errorf(format string, args ...interface{}) { + panic(fmt.Sprintf(format, args...)) +} + +func (p *importer) pkg() *types.Package { + // if the package was seen before, i is its index (>= 0) + i := p.tagOrIndex() + if i >= 0 { + return p.pkgList[i] + } + + // otherwise, i is the package tag (< 0) + if i != packageTag { + errorf("unexpected package tag %d version %d", i, p.version) + } + + // read package data + name := p.string() + var path string + if p.version >= 5 { + path = p.path() + } else { + path = p.string() + } + if p.version >= 6 { + p.int() // package height; unused by go/types + } + + // we should never see an empty package name + if name == "" { + errorf("empty package name in import") + } + + // an empty path denotes the package we are currently importing; + // it must be the first package we see + if (path == "") != (len(p.pkgList) == 0) { + errorf("package path %q for pkg index %d", path, len(p.pkgList)) + } + + // if the package was imported before, use that one; otherwise create a new one + if path == "" { + path = p.importpath + } + pkg := p.imports[path] + if pkg == nil { + pkg = types.NewPackage(path, name) + p.imports[path] = pkg + } else if pkg.Name() != name { + errorf("conflicting names %s and %s for package %q", pkg.Name(), name, path) + } + p.pkgList = append(p.pkgList, pkg) + + return pkg +} + +// objTag returns the tag value for each object kind. +func objTag(obj types.Object) int { + switch obj.(type) { + case *types.Const: + return constTag + case *types.TypeName: + return typeTag + case *types.Var: + return varTag + case *types.Func: + return funcTag + default: + errorf("unexpected object: %v (%T)", obj, obj) // panics + panic("unreachable") + } +} + +func sameObj(a, b types.Object) bool { + // Because unnamed types are not canonicalized, we cannot simply compare types for + // (pointer) identity. + // Ideally we'd check equality of constant values as well, but this is good enough. + return objTag(a) == objTag(b) && types.Identical(a.Type(), b.Type()) +} + +func (p *importer) declare(obj types.Object) { + pkg := obj.Pkg() + if alt := pkg.Scope().Insert(obj); alt != nil { + // This can only trigger if we import a (non-type) object a second time. + // Excluding type aliases, this cannot happen because 1) we only import a package + // once; and b) we ignore compiler-specific export data which may contain + // functions whose inlined function bodies refer to other functions that + // were already imported. + // However, type aliases require reexporting the original type, so we need + // to allow it (see also the comment in cmd/compile/internal/gc/bimport.go, + // method importer.obj, switch case importing functions). + // TODO(gri) review/update this comment once the gc compiler handles type aliases. + if !sameObj(obj, alt) { + errorf("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n", obj, alt) + } + } +} + +func (p *importer) obj(tag int) { + switch tag { + case constTag: + pos := p.pos() + pkg, name := p.qualifiedName() + typ := p.typ(nil, nil) + val := p.value() + p.declare(types.NewConst(pos, pkg, name, typ, val)) + + case aliasTag: + // TODO(gri) verify type alias hookup is correct + pos := p.pos() + pkg, name := p.qualifiedName() + typ := p.typ(nil, nil) + p.declare(types.NewTypeName(pos, pkg, name, typ)) + + case typeTag: + p.typ(nil, nil) + + case varTag: + pos := p.pos() + pkg, name := p.qualifiedName() + typ := p.typ(nil, nil) + p.declare(types.NewVar(pos, pkg, name, typ)) + + case funcTag: + pos := p.pos() + pkg, name := p.qualifiedName() + params, isddd := p.paramList() + result, _ := p.paramList() + sig := types.NewSignature(nil, params, result, isddd) + p.declare(types.NewFunc(pos, pkg, name, sig)) + + default: + errorf("unexpected object tag %d", tag) + } +} + +const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go + +func (p *importer) pos() token.Pos { + if !p.posInfoFormat { + return token.NoPos + } + + file := p.prevFile + line := p.prevLine + delta := p.int() + line += delta + if p.version >= 5 { + if delta == deltaNewFile { + if n := p.int(); n >= 0 { + // file changed + file = p.path() + line = n + } + } + } else { + if delta == 0 { + if n := p.int(); n >= 0 { + // file changed + file = p.prevFile[:n] + p.string() + line = p.int() + } + } + } + p.prevFile = file + p.prevLine = line + + return p.fake.pos(file, line, 0) +} + +// Synthesize a token.Pos +type fakeFileSet struct { + fset *token.FileSet + files map[string]*fileInfo +} + +type fileInfo struct { + file *token.File + lastline int +} + +const maxlines = 64 * 1024 + +func (s *fakeFileSet) pos(file string, line, column int) token.Pos { + // TODO(mdempsky): Make use of column. + + // Since we don't know the set of needed file positions, we reserve maxlines + // positions per file. We delay calling token.File.SetLines until all + // positions have been calculated (by way of fakeFileSet.setLines), so that + // we can avoid setting unnecessary lines. See also golang/go#46586. + f := s.files[file] + if f == nil { + f = &fileInfo{file: s.fset.AddFile(file, -1, maxlines)} + s.files[file] = f + } + if line > maxlines { + line = 1 + } + if line > f.lastline { + f.lastline = line + } + + // Return a fake position assuming that f.file consists only of newlines. + return token.Pos(f.file.Base() + line - 1) +} + +func (s *fakeFileSet) setLines() { + fakeLinesOnce.Do(func() { + fakeLines = make([]int, maxlines) + for i := range fakeLines { + fakeLines[i] = i + } + }) + for _, f := range s.files { + f.file.SetLines(fakeLines[:f.lastline]) + } +} + +var ( + fakeLines []int + fakeLinesOnce sync.Once +) + +func (p *importer) qualifiedName() (pkg *types.Package, name string) { + name = p.string() + pkg = p.pkg() + return +} + +func (p *importer) record(t types.Type) { + p.typList = append(p.typList, t) +} + +// A dddSlice is a types.Type representing ...T parameters. +// It only appears for parameter types and does not escape +// the importer. +type dddSlice struct { + elem types.Type +} + +func (t *dddSlice) Underlying() types.Type { return t } +func (t *dddSlice) String() string { return "..." + t.elem.String() } + +// parent is the package which declared the type; parent == nil means +// the package currently imported. The parent package is needed for +// exported struct fields and interface methods which don't contain +// explicit package information in the export data. +// +// A non-nil tname is used as the "owner" of the result type; i.e., +// the result type is the underlying type of tname. tname is used +// to give interface methods a named receiver type where possible. +func (p *importer) typ(parent *types.Package, tname *types.Named) types.Type { + // if the type was seen before, i is its index (>= 0) + i := p.tagOrIndex() + if i >= 0 { + return p.typList[i] + } + + // otherwise, i is the type tag (< 0) + switch i { + case namedTag: + // read type object + pos := p.pos() + parent, name := p.qualifiedName() + scope := parent.Scope() + obj := scope.Lookup(name) + + // if the object doesn't exist yet, create and insert it + if obj == nil { + obj = types.NewTypeName(pos, parent, name, nil) + scope.Insert(obj) + } + + if _, ok := obj.(*types.TypeName); !ok { + errorf("pkg = %s, name = %s => %s", parent, name, obj) + } + + // associate new named type with obj if it doesn't exist yet + t0 := types.NewNamed(obj.(*types.TypeName), nil, nil) + + // but record the existing type, if any + tname := obj.Type().(*types.Named) // tname is either t0 or the existing type + p.record(tname) + + // read underlying type + t0.SetUnderlying(p.typ(parent, t0)) + + // interfaces don't have associated methods + if types.IsInterface(t0) { + return tname + } + + // read associated methods + for i := p.int(); i > 0; i-- { + // TODO(gri) replace this with something closer to fieldName + pos := p.pos() + name := p.string() + if !exported(name) { + p.pkg() + } + + recv, _ := p.paramList() // TODO(gri) do we need a full param list for the receiver? + params, isddd := p.paramList() + result, _ := p.paramList() + p.int() // go:nointerface pragma - discarded + + sig := types.NewSignature(recv.At(0), params, result, isddd) + t0.AddMethod(types.NewFunc(pos, parent, name, sig)) + } + + return tname + + case arrayTag: + t := new(types.Array) + if p.trackAllTypes { + p.record(t) + } + + n := p.int64() + *t = *types.NewArray(p.typ(parent, nil), n) + return t + + case sliceTag: + t := new(types.Slice) + if p.trackAllTypes { + p.record(t) + } + + *t = *types.NewSlice(p.typ(parent, nil)) + return t + + case dddTag: + t := new(dddSlice) + if p.trackAllTypes { + p.record(t) + } + + t.elem = p.typ(parent, nil) + return t + + case structTag: + t := new(types.Struct) + if p.trackAllTypes { + p.record(t) + } + + *t = *types.NewStruct(p.fieldList(parent)) + return t + + case pointerTag: + t := new(types.Pointer) + if p.trackAllTypes { + p.record(t) + } + + *t = *types.NewPointer(p.typ(parent, nil)) + return t + + case signatureTag: + t := new(types.Signature) + if p.trackAllTypes { + p.record(t) + } + + params, isddd := p.paramList() + result, _ := p.paramList() + *t = *types.NewSignature(nil, params, result, isddd) + return t + + case interfaceTag: + // Create a dummy entry in the type list. This is safe because we + // cannot expect the interface type to appear in a cycle, as any + // such cycle must contain a named type which would have been + // first defined earlier. + // TODO(gri) Is this still true now that we have type aliases? + // See issue #23225. + n := len(p.typList) + if p.trackAllTypes { + p.record(nil) + } + + var embeddeds []types.Type + for n := p.int(); n > 0; n-- { + p.pos() + embeddeds = append(embeddeds, p.typ(parent, nil)) + } + + t := newInterface(p.methodList(parent, tname), embeddeds) + p.interfaceList = append(p.interfaceList, t) + if p.trackAllTypes { + p.typList[n] = t + } + return t + + case mapTag: + t := new(types.Map) + if p.trackAllTypes { + p.record(t) + } + + key := p.typ(parent, nil) + val := p.typ(parent, nil) + *t = *types.NewMap(key, val) + return t + + case chanTag: + t := new(types.Chan) + if p.trackAllTypes { + p.record(t) + } + + dir := chanDir(p.int()) + val := p.typ(parent, nil) + *t = *types.NewChan(dir, val) + return t + + default: + errorf("unexpected type tag %d", i) // panics + panic("unreachable") + } +} + +func chanDir(d int) types.ChanDir { + // tag values must match the constants in cmd/compile/internal/gc/go.go + switch d { + case 1 /* Crecv */ : + return types.RecvOnly + case 2 /* Csend */ : + return types.SendOnly + case 3 /* Cboth */ : + return types.SendRecv + default: + errorf("unexpected channel dir %d", d) + return 0 + } +} + +func (p *importer) fieldList(parent *types.Package) (fields []*types.Var, tags []string) { + if n := p.int(); n > 0 { + fields = make([]*types.Var, n) + tags = make([]string, n) + for i := range fields { + fields[i], tags[i] = p.field(parent) + } + } + return +} + +func (p *importer) field(parent *types.Package) (*types.Var, string) { + pos := p.pos() + pkg, name, alias := p.fieldName(parent) + typ := p.typ(parent, nil) + tag := p.string() + + anonymous := false + if name == "" { + // anonymous field - typ must be T or *T and T must be a type name + switch typ := deref(typ).(type) { + case *types.Basic: // basic types are named types + pkg = nil // // objects defined in Universe scope have no package + name = typ.Name() + case *types.Named: + name = typ.Obj().Name() + default: + errorf("named base type expected") + } + anonymous = true + } else if alias { + // anonymous field: we have an explicit name because it's an alias + anonymous = true + } + + return types.NewField(pos, pkg, name, typ, anonymous), tag +} + +func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) { + if n := p.int(); n > 0 { + methods = make([]*types.Func, n) + for i := range methods { + methods[i] = p.method(parent, baseType) + } + } + return +} + +func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func { + pos := p.pos() + pkg, name, _ := p.fieldName(parent) + // If we don't have a baseType, use a nil receiver. + // A receiver using the actual interface type (which + // we don't know yet) will be filled in when we call + // types.Interface.Complete. + var recv *types.Var + if baseType != nil { + recv = types.NewVar(token.NoPos, parent, "", baseType) + } + params, isddd := p.paramList() + result, _ := p.paramList() + sig := types.NewSignature(recv, params, result, isddd) + return types.NewFunc(pos, pkg, name, sig) +} + +func (p *importer) fieldName(parent *types.Package) (pkg *types.Package, name string, alias bool) { + name = p.string() + pkg = parent + if pkg == nil { + // use the imported package instead + pkg = p.pkgList[0] + } + if p.version == 0 && name == "_" { + // version 0 didn't export a package for _ fields + return + } + switch name { + case "": + // 1) field name matches base type name and is exported: nothing to do + case "?": + // 2) field name matches base type name and is not exported: need package + name = "" + pkg = p.pkg() + case "@": + // 3) field name doesn't match type name (alias) + name = p.string() + alias = true + fallthrough + default: + if !exported(name) { + pkg = p.pkg() + } + } + return +} + +func (p *importer) paramList() (*types.Tuple, bool) { + n := p.int() + if n == 0 { + return nil, false + } + // negative length indicates unnamed parameters + named := true + if n < 0 { + n = -n + named = false + } + // n > 0 + params := make([]*types.Var, n) + isddd := false + for i := range params { + params[i], isddd = p.param(named) + } + return types.NewTuple(params...), isddd +} + +func (p *importer) param(named bool) (*types.Var, bool) { + t := p.typ(nil, nil) + td, isddd := t.(*dddSlice) + if isddd { + t = types.NewSlice(td.elem) + } + + var pkg *types.Package + var name string + if named { + name = p.string() + if name == "" { + errorf("expected named parameter") + } + if name != "_" { + pkg = p.pkg() + } + if i := strings.Index(name, "·"); i > 0 { + name = name[:i] // cut off gc-specific parameter numbering + } + } + + // read and discard compiler-specific info + p.string() + + return types.NewVar(token.NoPos, pkg, name, t), isddd +} + +func exported(name string) bool { + ch, _ := utf8.DecodeRuneInString(name) + return unicode.IsUpper(ch) +} + +func (p *importer) value() constant.Value { + switch tag := p.tagOrIndex(); tag { + case falseTag: + return constant.MakeBool(false) + case trueTag: + return constant.MakeBool(true) + case int64Tag: + return constant.MakeInt64(p.int64()) + case floatTag: + return p.float() + case complexTag: + re := p.float() + im := p.float() + return constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) + case stringTag: + return constant.MakeString(p.string()) + case unknownTag: + return constant.MakeUnknown() + default: + errorf("unexpected value tag %d", tag) // panics + panic("unreachable") + } +} + +func (p *importer) float() constant.Value { + sign := p.int() + if sign == 0 { + return constant.MakeInt64(0) + } + + exp := p.int() + mant := []byte(p.string()) // big endian + + // remove leading 0's if any + for len(mant) > 0 && mant[0] == 0 { + mant = mant[1:] + } + + // convert to little endian + // TODO(gri) go/constant should have a more direct conversion function + // (e.g., once it supports a big.Float based implementation) + for i, j := 0, len(mant)-1; i < j; i, j = i+1, j-1 { + mant[i], mant[j] = mant[j], mant[i] + } + + // adjust exponent (constant.MakeFromBytes creates an integer value, + // but mant represents the mantissa bits such that 0.5 <= mant < 1.0) + exp -= len(mant) << 3 + if len(mant) > 0 { + for msd := mant[len(mant)-1]; msd&0x80 == 0; msd <<= 1 { + exp++ + } + } + + x := constant.MakeFromBytes(mant) + switch { + case exp < 0: + d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp)) + x = constant.BinaryOp(x, token.QUO, d) + case exp > 0: + x = constant.Shift(x, token.SHL, uint(exp)) + } + + if sign < 0 { + x = constant.UnaryOp(token.SUB, x, 0) + } + return x +} + +// ---------------------------------------------------------------------------- +// Low-level decoders + +func (p *importer) tagOrIndex() int { + if p.debugFormat { + p.marker('t') + } + + return int(p.rawInt64()) +} + +func (p *importer) int() int { + x := p.int64() + if int64(int(x)) != x { + errorf("exported integer too large") + } + return int(x) +} + +func (p *importer) int64() int64 { + if p.debugFormat { + p.marker('i') + } + + return p.rawInt64() +} + +func (p *importer) path() string { + if p.debugFormat { + p.marker('p') + } + // if the path was seen before, i is its index (>= 0) + // (the empty string is at index 0) + i := p.rawInt64() + if i >= 0 { + return p.pathList[i] + } + // otherwise, i is the negative path length (< 0) + a := make([]string, -i) + for n := range a { + a[n] = p.string() + } + s := strings.Join(a, "/") + p.pathList = append(p.pathList, s) + return s +} + +func (p *importer) string() string { + if p.debugFormat { + p.marker('s') + } + // if the string was seen before, i is its index (>= 0) + // (the empty string is at index 0) + i := p.rawInt64() + if i >= 0 { + return p.strList[i] + } + // otherwise, i is the negative string length (< 0) + if n := int(-i); n <= cap(p.buf) { + p.buf = p.buf[:n] + } else { + p.buf = make([]byte, n) + } + for i := range p.buf { + p.buf[i] = p.rawByte() + } + s := string(p.buf) + p.strList = append(p.strList, s) + return s +} + +func (p *importer) marker(want byte) { + if got := p.rawByte(); got != want { + errorf("incorrect marker: got %c; want %c (pos = %d)", got, want, p.read) + } + + pos := p.read + if n := int(p.rawInt64()); n != pos { + errorf("incorrect position: got %d; want %d", n, pos) + } +} + +// rawInt64 should only be used by low-level decoders. +func (p *importer) rawInt64() int64 { + i, err := binary.ReadVarint(p) + if err != nil { + errorf("read error: %v", err) + } + return i +} + +// rawStringln should only be used to read the initial version string. +func (p *importer) rawStringln(b byte) string { + p.buf = p.buf[:0] + for b != '\n' { + p.buf = append(p.buf, b) + b = p.rawByte() + } + return string(p.buf) +} + +// needed for binary.ReadVarint in rawInt64 +func (p *importer) ReadByte() (byte, error) { + return p.rawByte(), nil +} + +// byte is the bottleneck interface for reading p.data. +// It unescapes '|' 'S' to '$' and '|' '|' to '|'. +// rawByte should only be used by low-level decoders. +func (p *importer) rawByte() byte { + b := p.data[0] + r := 1 + if b == '|' { + b = p.data[1] + r = 2 + switch b { + case 'S': + b = '$' + case '|': + // nothing to do + default: + errorf("unexpected escape sequence in export data") + } + } + p.data = p.data[r:] + p.read += r + return b + +} + +// ---------------------------------------------------------------------------- +// Export format + +// Tags. Must be < 0. +const ( + // Objects + packageTag = -(iota + 1) + constTag + typeTag + varTag + funcTag + endTag + + // Types + namedTag + arrayTag + sliceTag + dddTag + structTag + pointerTag + signatureTag + interfaceTag + mapTag + chanTag + + // Values + falseTag + trueTag + int64Tag + floatTag + fractionTag // not used by gc + complexTag + stringTag + nilTag // only used by gc (appears in exported inlined function bodies) + unknownTag // not used by gc (only appears in packages with errors) + + // Type aliases + aliasTag +) + +var predeclOnce sync.Once +var predecl []types.Type // initialized lazily + +func predeclared() []types.Type { + predeclOnce.Do(func() { + // initialize lazily to be sure that all + // elements have been initialized before + predecl = []types.Type{ // basic types + types.Typ[types.Bool], + types.Typ[types.Int], + types.Typ[types.Int8], + types.Typ[types.Int16], + types.Typ[types.Int32], + types.Typ[types.Int64], + types.Typ[types.Uint], + types.Typ[types.Uint8], + types.Typ[types.Uint16], + types.Typ[types.Uint32], + types.Typ[types.Uint64], + types.Typ[types.Uintptr], + types.Typ[types.Float32], + types.Typ[types.Float64], + types.Typ[types.Complex64], + types.Typ[types.Complex128], + types.Typ[types.String], + + // basic type aliases + types.Universe.Lookup("byte").Type(), + types.Universe.Lookup("rune").Type(), + + // error + types.Universe.Lookup("error").Type(), + + // untyped types + types.Typ[types.UntypedBool], + types.Typ[types.UntypedInt], + types.Typ[types.UntypedRune], + types.Typ[types.UntypedFloat], + types.Typ[types.UntypedComplex], + types.Typ[types.UntypedString], + types.Typ[types.UntypedNil], + + // package unsafe + types.Typ[types.UnsafePointer], + + // invalid type + types.Typ[types.Invalid], // only appears in packages with errors + + // used internally by gc; never used by this package or in .a files + anyType{}, + } + predecl = append(predecl, additionalPredeclared()...) + }) + return predecl +} + +type anyType struct{} + +func (t anyType) Underlying() types.Type { return t } +func (t anyType) String() string { return "any" } diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go new file mode 100644 index 0000000000..f6437feb1c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go @@ -0,0 +1,99 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a copy of $GOROOT/src/go/internal/gcimporter/exportdata.go. + +// This file implements FindExportData. + +package gcimporter + +import ( + "bufio" + "fmt" + "io" + "strconv" + "strings" +) + +func readGopackHeader(r *bufio.Reader) (name string, size int64, err error) { + // See $GOROOT/include/ar.h. + hdr := make([]byte, 16+12+6+6+8+10+2) + _, err = io.ReadFull(r, hdr) + if err != nil { + return + } + // leave for debugging + if false { + fmt.Printf("header: %s", hdr) + } + s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10])) + length, err := strconv.Atoi(s) + size = int64(length) + if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' { + err = fmt.Errorf("invalid archive header") + return + } + name = strings.TrimSpace(string(hdr[:16])) + return +} + +// FindExportData positions the reader r at the beginning of the +// export data section of an underlying GC-created object/archive +// file by reading from it. The reader must be positioned at the +// start of the file before calling this function. The hdr result +// is the string before the export data, either "$$" or "$$B". +// The size result is the length of the export data in bytes, or -1 if not known. +func FindExportData(r *bufio.Reader) (hdr string, size int64, err error) { + // Read first line to make sure this is an object file. + line, err := r.ReadSlice('\n') + if err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + + if string(line) == "!\n" { + // Archive file. Scan to __.PKGDEF. + var name string + if name, size, err = readGopackHeader(r); err != nil { + return + } + + // First entry should be __.PKGDEF. + if name != "__.PKGDEF" { + err = fmt.Errorf("go archive is missing __.PKGDEF") + return + } + + // Read first line of __.PKGDEF data, so that line + // is once again the first line of the input. + if line, err = r.ReadSlice('\n'); err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + size -= int64(len(line)) + } + + // Now at __.PKGDEF in archive or still at beginning of file. + // Either way, line should begin with "go object ". + if !strings.HasPrefix(string(line), "go object ") { + err = fmt.Errorf("not a Go object file") + return + } + + // Skip over object header to export data. + // Begins after first line starting with $$. + for line[0] != '$' { + if line, err = r.ReadSlice('\n'); err != nil { + err = fmt.Errorf("can't find export data (%v)", err) + return + } + size -= int64(len(line)) + } + hdr = string(line) + if size < 0 { + size = -1 + } + + return +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go new file mode 100644 index 0000000000..0372fb3a64 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go @@ -0,0 +1,265 @@ +// Copyright 2011 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// This file is a reduced copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go. + +// Package gcimporter provides various functions for reading +// gc-generated object files that can be used to implement the +// Importer interface defined by the Go 1.5 standard library package. +package gcimporter // import "golang.org/x/tools/internal/gcimporter" + +import ( + "bufio" + "bytes" + "fmt" + "go/build" + "go/token" + "go/types" + "io" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "strings" + "sync" +) + +const ( + // Enable debug during development: it adds some additional checks, and + // prevents errors from being recovered. + debug = false + + // If trace is set, debugging output is printed to std out. + trace = false +) + +var exportMap sync.Map // package dir → func() (string, bool) + +// lookupGorootExport returns the location of the export data +// (normally found in the build cache, but located in GOROOT/pkg +// in prior Go releases) for the package located in pkgDir. +// +// (We use the package's directory instead of its import path +// mainly to simplify handling of the packages in src/vendor +// and cmd/vendor.) +func lookupGorootExport(pkgDir string) (string, bool) { + f, ok := exportMap.Load(pkgDir) + if !ok { + var ( + listOnce sync.Once + exportPath string + ) + f, _ = exportMap.LoadOrStore(pkgDir, func() (string, bool) { + listOnce.Do(func() { + cmd := exec.Command("go", "list", "-export", "-f", "{{.Export}}", pkgDir) + cmd.Dir = build.Default.GOROOT + var output []byte + output, err := cmd.Output() + if err != nil { + return + } + + exports := strings.Split(string(bytes.TrimSpace(output)), "\n") + if len(exports) != 1 { + return + } + + exportPath = exports[0] + }) + + return exportPath, exportPath != "" + }) + } + + return f.(func() (string, bool))() +} + +var pkgExts = [...]string{".a", ".o"} + +// FindPkg returns the filename and unique package id for an import +// path based on package information provided by build.Import (using +// the build.Default build.Context). A relative srcDir is interpreted +// relative to the current working directory. +// If no file was found, an empty filename is returned. +func FindPkg(path, srcDir string) (filename, id string) { + if path == "" { + return + } + + var noext string + switch { + default: + // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x" + // Don't require the source files to be present. + if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282 + srcDir = abs + } + bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary) + if bp.PkgObj == "" { + var ok bool + if bp.Goroot && bp.Dir != "" { + filename, ok = lookupGorootExport(bp.Dir) + } + if !ok { + id = path // make sure we have an id to print in error message + return + } + } else { + noext = strings.TrimSuffix(bp.PkgObj, ".a") + id = bp.ImportPath + } + + case build.IsLocalImport(path): + // "./x" -> "/this/directory/x.ext", "/this/directory/x" + noext = filepath.Join(srcDir, path) + id = noext + + case filepath.IsAbs(path): + // for completeness only - go/build.Import + // does not support absolute imports + // "/x" -> "/x.ext", "/x" + noext = path + id = path + } + + if false { // for debugging + if path != id { + fmt.Printf("%s -> %s\n", path, id) + } + } + + if filename != "" { + if f, err := os.Stat(filename); err == nil && !f.IsDir() { + return + } + } + + // try extensions + for _, ext := range pkgExts { + filename = noext + ext + if f, err := os.Stat(filename); err == nil && !f.IsDir() { + return + } + } + + filename = "" // not found + return +} + +// Import imports a gc-generated package given its import path and srcDir, adds +// the corresponding package object to the packages map, and returns the object. +// The packages map must contain all packages already imported. +func Import(packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) { + var rc io.ReadCloser + var filename, id string + if lookup != nil { + // With custom lookup specified, assume that caller has + // converted path to a canonical import path for use in the map. + if path == "unsafe" { + return types.Unsafe, nil + } + id = path + + // No need to re-import if the package was imported completely before. + if pkg = packages[id]; pkg != nil && pkg.Complete() { + return + } + f, err := lookup(path) + if err != nil { + return nil, err + } + rc = f + } else { + filename, id = FindPkg(path, srcDir) + if filename == "" { + if path == "unsafe" { + return types.Unsafe, nil + } + return nil, fmt.Errorf("can't find import: %q", id) + } + + // no need to re-import if the package was imported completely before + if pkg = packages[id]; pkg != nil && pkg.Complete() { + return + } + + // open file + f, err := os.Open(filename) + if err != nil { + return nil, err + } + defer func() { + if err != nil { + // add file name to error + err = fmt.Errorf("%s: %v", filename, err) + } + }() + rc = f + } + defer rc.Close() + + var hdr string + var size int64 + buf := bufio.NewReader(rc) + if hdr, size, err = FindExportData(buf); err != nil { + return + } + + switch hdr { + case "$$B\n": + var data []byte + data, err = ioutil.ReadAll(buf) + if err != nil { + break + } + + // TODO(gri): allow clients of go/importer to provide a FileSet. + // Or, define a new standard go/types/gcexportdata package. + fset := token.NewFileSet() + + // The indexed export format starts with an 'i'; the older + // binary export format starts with a 'c', 'd', or 'v' + // (from "version"). Select appropriate importer. + if len(data) > 0 { + switch data[0] { + case 'i': + _, pkg, err := IImportData(fset, packages, data[1:], id) + return pkg, err + + case 'v', 'c', 'd': + _, pkg, err := BImportData(fset, packages, data, id) + return pkg, err + + case 'u': + _, pkg, err := UImportData(fset, packages, data[1:size], id) + return pkg, err + + default: + l := len(data) + if l > 10 { + l = 10 + } + return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), id) + } + } + + default: + err = fmt.Errorf("unknown export data header: %q", hdr) + } + + return +} + +func deref(typ types.Type) types.Type { + if p, _ := typ.(*types.Pointer); p != nil { + return p.Elem() + } + return typ +} + +type byPath []*types.Package + +func (a byPath) Len() int { return len(a) } +func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] } +func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() } diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go new file mode 100644 index 0000000000..ba53cdcdd1 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -0,0 +1,1180 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Indexed binary package export. +// This file was derived from $GOROOT/src/cmd/compile/internal/gc/iexport.go; +// see that file for specification of the format. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "io" + "math/big" + "reflect" + "sort" + "strconv" + "strings" + + "golang.org/x/tools/internal/tokeninternal" + "golang.org/x/tools/internal/typeparams" +) + +// IExportShallow encodes "shallow" export data for the specified package. +// +// No promises are made about the encoding other than that it can be +// decoded by the same version of IIExportShallow. If you plan to save +// export data in the file system, be sure to include a cryptographic +// digest of the executable in the key to avoid version skew. +func IExportShallow(fset *token.FileSet, pkg *types.Package) ([]byte, error) { + // In principle this operation can only fail if out.Write fails, + // but that's impossible for bytes.Buffer---and as a matter of + // fact iexportCommon doesn't even check for I/O errors. + // TODO(adonovan): handle I/O errors properly. + // TODO(adonovan): use byte slices throughout, avoiding copying. + const bundle, shallow = false, true + var out bytes.Buffer + err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) + return out.Bytes(), err +} + +// IImportShallow decodes "shallow" types.Package data encoded by IExportShallow +// in the same executable. This function cannot import data from +// cmd/compile or gcexportdata.Write. +func IImportShallow(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string, insert InsertType) (*types.Package, error) { + const bundle = false + pkgs, err := iimportCommon(fset, imports, data, bundle, path, insert) + if err != nil { + return nil, err + } + return pkgs[0], nil +} + +// InsertType is the type of a function that creates a types.TypeName +// object for a named type and inserts it into the scope of the +// specified Package. +type InsertType = func(pkg *types.Package, name string) + +// Current bundled export format version. Increase with each format change. +// 0: initial implementation +const bundleVersion = 0 + +// IExportData writes indexed export data for pkg to out. +// +// If no file set is provided, position info will be missing. +// The package path of the top-level package will not be recorded, +// so that calls to IImportData can override with a provided package path. +func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { + const bundle, shallow = false, false + return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) +} + +// IExportBundle writes an indexed export bundle for pkgs to out. +func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { + const bundle, shallow = true, false + return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs) +} + +func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package) (err error) { + if !debug { + defer func() { + if e := recover(); e != nil { + if ierr, ok := e.(internalError); ok { + err = ierr + return + } + // Not an internal error; panic again. + panic(e) + } + }() + } + + p := iexporter{ + fset: fset, + version: version, + shallow: shallow, + allPkgs: map[*types.Package]bool{}, + stringIndex: map[string]uint64{}, + declIndex: map[types.Object]uint64{}, + tparamNames: map[types.Object]string{}, + typIndex: map[types.Type]uint64{}, + } + if !bundle { + p.localpkg = pkgs[0] + } + + for i, pt := range predeclared() { + p.typIndex[pt] = uint64(i) + } + if len(p.typIndex) > predeclReserved { + panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved)) + } + + // Initialize work queue with exported declarations. + for _, pkg := range pkgs { + scope := pkg.Scope() + for _, name := range scope.Names() { + if token.IsExported(name) { + p.pushDecl(scope.Lookup(name)) + } + } + + if bundle { + // Ensure pkg and its imports are included in the index. + p.allPkgs[pkg] = true + for _, imp := range pkg.Imports() { + p.allPkgs[imp] = true + } + } + } + + // Loop until no more work. + for !p.declTodo.empty() { + p.doDecl(p.declTodo.popHead()) + } + + // Produce index of offset of each file record in files. + var files intWriter + var fileOffset []uint64 // fileOffset[i] is offset in files of file encoded as i + if p.shallow { + fileOffset = make([]uint64, len(p.fileInfos)) + for i, info := range p.fileInfos { + fileOffset[i] = uint64(files.Len()) + p.encodeFile(&files, info.file, info.needed) + } + } + + // Append indices to data0 section. + dataLen := uint64(p.data0.Len()) + w := p.newWriter() + w.writeIndex(p.declIndex) + + if bundle { + w.uint64(uint64(len(pkgs))) + for _, pkg := range pkgs { + w.pkg(pkg) + imps := pkg.Imports() + w.uint64(uint64(len(imps))) + for _, imp := range imps { + w.pkg(imp) + } + } + } + w.flush() + + // Assemble header. + var hdr intWriter + if bundle { + hdr.uint64(bundleVersion) + } + hdr.uint64(uint64(p.version)) + hdr.uint64(uint64(p.strings.Len())) + if p.shallow { + hdr.uint64(uint64(files.Len())) + hdr.uint64(uint64(len(fileOffset))) + for _, offset := range fileOffset { + hdr.uint64(offset) + } + } + hdr.uint64(dataLen) + + // Flush output. + io.Copy(out, &hdr) + io.Copy(out, &p.strings) + if p.shallow { + io.Copy(out, &files) + } + io.Copy(out, &p.data0) + + return nil +} + +// encodeFile writes to w a representation of the file sufficient to +// faithfully restore position information about all needed offsets. +// Mutates the needed array. +func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) { + _ = needed[0] // precondition: needed is non-empty + + w.uint64(p.stringOff(file.Name())) + + size := uint64(file.Size()) + w.uint64(size) + + // Sort the set of needed offsets. Duplicates are harmless. + sort.Slice(needed, func(i, j int) bool { return needed[i] < needed[j] }) + + lines := tokeninternal.GetLines(file) // byte offset of each line start + w.uint64(uint64(len(lines))) + + // Rather than record the entire array of line start offsets, + // we save only a sparse list of (index, offset) pairs for + // the start of each line that contains a needed position. + var sparse [][2]int // (index, offset) pairs +outer: + for i, lineStart := range lines { + lineEnd := size + if i < len(lines)-1 { + lineEnd = uint64(lines[i+1]) + } + // Does this line contains a needed offset? + if needed[0] < lineEnd { + sparse = append(sparse, [2]int{i, lineStart}) + for needed[0] < lineEnd { + needed = needed[1:] + if len(needed) == 0 { + break outer + } + } + } + } + + // Delta-encode the columns. + w.uint64(uint64(len(sparse))) + var prev [2]int + for _, pair := range sparse { + w.uint64(uint64(pair[0] - prev[0])) + w.uint64(uint64(pair[1] - prev[1])) + prev = pair + } +} + +// writeIndex writes out an object index. mainIndex indicates whether +// we're writing out the main index, which is also read by +// non-compiler tools and includes a complete package description +// (i.e., name and height). +func (w *exportWriter) writeIndex(index map[types.Object]uint64) { + type pkgObj struct { + obj types.Object + name string // qualified name; differs from obj.Name for type params + } + // Build a map from packages to objects from that package. + pkgObjs := map[*types.Package][]pkgObj{} + + // For the main index, make sure to include every package that + // we reference, even if we're not exporting (or reexporting) + // any symbols from it. + if w.p.localpkg != nil { + pkgObjs[w.p.localpkg] = nil + } + for pkg := range w.p.allPkgs { + pkgObjs[pkg] = nil + } + + for obj := range index { + name := w.p.exportName(obj) + pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], pkgObj{obj, name}) + } + + var pkgs []*types.Package + for pkg, objs := range pkgObjs { + pkgs = append(pkgs, pkg) + + sort.Slice(objs, func(i, j int) bool { + return objs[i].name < objs[j].name + }) + } + + sort.Slice(pkgs, func(i, j int) bool { + return w.exportPath(pkgs[i]) < w.exportPath(pkgs[j]) + }) + + w.uint64(uint64(len(pkgs))) + for _, pkg := range pkgs { + w.string(w.exportPath(pkg)) + w.string(pkg.Name()) + w.uint64(uint64(0)) // package height is not needed for go/types + + objs := pkgObjs[pkg] + w.uint64(uint64(len(objs))) + for _, obj := range objs { + w.string(obj.name) + w.uint64(index[obj.obj]) + } + } +} + +// exportName returns the 'exported' name of an object. It differs from +// obj.Name() only for type parameters (see tparamExportName for details). +func (p *iexporter) exportName(obj types.Object) (res string) { + if name := p.tparamNames[obj]; name != "" { + return name + } + return obj.Name() +} + +type iexporter struct { + fset *token.FileSet + out *bytes.Buffer + version int + + shallow bool // don't put types from other packages in the index + localpkg *types.Package // (nil in bundle mode) + + // allPkgs tracks all packages that have been referenced by + // the export data, so we can ensure to include them in the + // main index. + allPkgs map[*types.Package]bool + + declTodo objQueue + + strings intWriter + stringIndex map[string]uint64 + + // In shallow mode, object positions are encoded as (file, offset). + // Each file is recorded as a line-number table. + // Only the lines of needed positions are saved faithfully. + fileInfo map[*token.File]uint64 // value is index in fileInfos + fileInfos []*filePositions + + data0 intWriter + declIndex map[types.Object]uint64 + tparamNames map[types.Object]string // typeparam->exported name + typIndex map[types.Type]uint64 + + indent int // for tracing support +} + +type filePositions struct { + file *token.File + needed []uint64 // unordered list of needed file offsets +} + +func (p *iexporter) trace(format string, args ...interface{}) { + if !trace { + // Call sites should also be guarded, but having this check here allows + // easily enabling/disabling debug trace statements. + return + } + fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) +} + +// stringOff returns the offset of s within the string section. +// If not already present, it's added to the end. +func (p *iexporter) stringOff(s string) uint64 { + off, ok := p.stringIndex[s] + if !ok { + off = uint64(p.strings.Len()) + p.stringIndex[s] = off + + p.strings.uint64(uint64(len(s))) + p.strings.WriteString(s) + } + return off +} + +// fileIndexAndOffset returns the index of the token.File and the byte offset of pos within it. +func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) { + index, ok := p.fileInfo[file] + if !ok { + index = uint64(len(p.fileInfo)) + p.fileInfos = append(p.fileInfos, &filePositions{file: file}) + if p.fileInfo == nil { + p.fileInfo = make(map[*token.File]uint64) + } + p.fileInfo[file] = index + } + // Record each needed offset. + info := p.fileInfos[index] + offset := uint64(file.Offset(pos)) + info.needed = append(info.needed, offset) + + return index, offset +} + +// pushDecl adds n to the declaration work queue, if not already present. +func (p *iexporter) pushDecl(obj types.Object) { + // Package unsafe is known to the compiler and predeclared. + // Caller should not ask us to do export it. + if obj.Pkg() == types.Unsafe { + panic("cannot export package unsafe") + } + + // Shallow export data: don't index decls from other packages. + if p.shallow && obj.Pkg() != p.localpkg { + return + } + + if _, ok := p.declIndex[obj]; ok { + return + } + + p.declIndex[obj] = ^uint64(0) // mark obj present in work queue + p.declTodo.pushTail(obj) +} + +// exportWriter handles writing out individual data section chunks. +type exportWriter struct { + p *iexporter + + data intWriter + currPkg *types.Package + prevFile string + prevLine int64 + prevColumn int64 +} + +func (w *exportWriter) exportPath(pkg *types.Package) string { + if pkg == w.p.localpkg { + return "" + } + return pkg.Path() +} + +func (p *iexporter) doDecl(obj types.Object) { + if trace { + p.trace("exporting decl %v (%T)", obj, obj) + p.indent++ + defer func() { + p.indent-- + p.trace("=> %s", obj) + }() + } + w := p.newWriter() + w.setPkg(obj.Pkg(), false) + + switch obj := obj.(type) { + case *types.Var: + w.tag('V') + w.pos(obj.Pos()) + w.typ(obj.Type(), obj.Pkg()) + + case *types.Func: + sig, _ := obj.Type().(*types.Signature) + if sig.Recv() != nil { + // We shouldn't see methods in the package scope, + // but the type checker may repair "func () F() {}" + // to "func (Invalid) F()" and then treat it like "func F()", + // so allow that. See golang/go#57729. + if sig.Recv().Type() != types.Typ[types.Invalid] { + panic(internalErrorf("unexpected method: %v", sig)) + } + } + + // Function. + if typeparams.ForSignature(sig).Len() == 0 { + w.tag('F') + } else { + w.tag('G') + } + w.pos(obj.Pos()) + // The tparam list of the function type is the declaration of the type + // params. So, write out the type params right now. Then those type params + // will be referenced via their type offset (via typOff) in all other + // places in the signature and function where they are used. + // + // While importing the type parameters, tparamList computes and records + // their export name, so that it can be later used when writing the index. + if tparams := typeparams.ForSignature(sig); tparams.Len() > 0 { + w.tparamList(obj.Name(), tparams, obj.Pkg()) + } + w.signature(sig) + + case *types.Const: + w.tag('C') + w.pos(obj.Pos()) + w.value(obj.Type(), obj.Val()) + + case *types.TypeName: + t := obj.Type() + + if tparam, ok := t.(*typeparams.TypeParam); ok { + w.tag('P') + w.pos(obj.Pos()) + constraint := tparam.Constraint() + if p.version >= iexportVersionGo1_18 { + implicit := false + if iface, _ := constraint.(*types.Interface); iface != nil { + implicit = typeparams.IsImplicit(iface) + } + w.bool(implicit) + } + w.typ(constraint, obj.Pkg()) + break + } + + if obj.IsAlias() { + w.tag('A') + w.pos(obj.Pos()) + w.typ(t, obj.Pkg()) + break + } + + // Defined type. + named, ok := t.(*types.Named) + if !ok { + panic(internalErrorf("%s is not a defined type", t)) + } + + if typeparams.ForNamed(named).Len() == 0 { + w.tag('T') + } else { + w.tag('U') + } + w.pos(obj.Pos()) + + if typeparams.ForNamed(named).Len() > 0 { + // While importing the type parameters, tparamList computes and records + // their export name, so that it can be later used when writing the index. + w.tparamList(obj.Name(), typeparams.ForNamed(named), obj.Pkg()) + } + + underlying := obj.Type().Underlying() + w.typ(underlying, obj.Pkg()) + + if types.IsInterface(t) { + break + } + + n := named.NumMethods() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + m := named.Method(i) + w.pos(m.Pos()) + w.string(m.Name()) + sig, _ := m.Type().(*types.Signature) + + // Receiver type parameters are type arguments of the receiver type, so + // their name must be qualified before exporting recv. + if rparams := typeparams.RecvTypeParams(sig); rparams.Len() > 0 { + prefix := obj.Name() + "." + m.Name() + for i := 0; i < rparams.Len(); i++ { + rparam := rparams.At(i) + name := tparamExportName(prefix, rparam) + w.p.tparamNames[rparam.Obj()] = name + } + } + w.param(sig.Recv()) + w.signature(sig) + } + + default: + panic(internalErrorf("unexpected object: %v", obj)) + } + + p.declIndex[obj] = w.flush() +} + +func (w *exportWriter) tag(tag byte) { + w.data.WriteByte(tag) +} + +func (w *exportWriter) pos(pos token.Pos) { + if w.p.shallow { + w.posV2(pos) + } else if w.p.version >= iexportVersionPosCol { + w.posV1(pos) + } else { + w.posV0(pos) + } +} + +// posV2 encoding (used only in shallow mode) records positions as +// (file, offset), where file is the index in the token.File table +// (which records the file name and newline offsets) and offset is a +// byte offset. It effectively ignores //line directives. +func (w *exportWriter) posV2(pos token.Pos) { + if pos == token.NoPos { + w.uint64(0) + return + } + file := w.p.fset.File(pos) // fset must be non-nil + index, offset := w.p.fileIndexAndOffset(file, pos) + w.uint64(1 + index) + w.uint64(offset) +} + +func (w *exportWriter) posV1(pos token.Pos) { + if w.p.fset == nil { + w.int64(0) + return + } + + p := w.p.fset.Position(pos) + file := p.Filename + line := int64(p.Line) + column := int64(p.Column) + + deltaColumn := (column - w.prevColumn) << 1 + deltaLine := (line - w.prevLine) << 1 + + if file != w.prevFile { + deltaLine |= 1 + } + if deltaLine != 0 { + deltaColumn |= 1 + } + + w.int64(deltaColumn) + if deltaColumn&1 != 0 { + w.int64(deltaLine) + if deltaLine&1 != 0 { + w.string(file) + } + } + + w.prevFile = file + w.prevLine = line + w.prevColumn = column +} + +func (w *exportWriter) posV0(pos token.Pos) { + if w.p.fset == nil { + w.int64(0) + return + } + + p := w.p.fset.Position(pos) + file := p.Filename + line := int64(p.Line) + + // When file is the same as the last position (common case), + // we can save a few bytes by delta encoding just the line + // number. + // + // Note: Because data objects may be read out of order (or not + // at all), we can only apply delta encoding within a single + // object. This is handled implicitly by tracking prevFile and + // prevLine as fields of exportWriter. + + if file == w.prevFile { + delta := line - w.prevLine + w.int64(delta) + if delta == deltaNewFile { + w.int64(-1) + } + } else { + w.int64(deltaNewFile) + w.int64(line) // line >= 0 + w.string(file) + w.prevFile = file + } + w.prevLine = line +} + +func (w *exportWriter) pkg(pkg *types.Package) { + // Ensure any referenced packages are declared in the main index. + w.p.allPkgs[pkg] = true + + w.string(w.exportPath(pkg)) +} + +func (w *exportWriter) qualifiedType(obj *types.TypeName) { + name := w.p.exportName(obj) + + // Ensure any referenced declarations are written out too. + w.p.pushDecl(obj) + w.string(name) + w.pkg(obj.Pkg()) +} + +func (w *exportWriter) typ(t types.Type, pkg *types.Package) { + w.data.uint64(w.p.typOff(t, pkg)) +} + +func (p *iexporter) newWriter() *exportWriter { + return &exportWriter{p: p} +} + +func (w *exportWriter) flush() uint64 { + off := uint64(w.p.data0.Len()) + io.Copy(&w.p.data0, &w.data) + return off +} + +func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 { + off, ok := p.typIndex[t] + if !ok { + w := p.newWriter() + w.doTyp(t, pkg) + off = predeclReserved + w.flush() + p.typIndex[t] = off + } + return off +} + +func (w *exportWriter) startType(k itag) { + w.data.uint64(uint64(k)) +} + +func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { + if trace { + w.p.trace("exporting type %s (%T)", t, t) + w.p.indent++ + defer func() { + w.p.indent-- + w.p.trace("=> %s", t) + }() + } + switch t := t.(type) { + case *types.Named: + if targs := typeparams.NamedTypeArgs(t); targs.Len() > 0 { + w.startType(instanceType) + // TODO(rfindley): investigate if this position is correct, and if it + // matters. + w.pos(t.Obj().Pos()) + w.typeList(targs, pkg) + w.typ(typeparams.NamedTypeOrigin(t), pkg) + return + } + w.startType(definedType) + w.qualifiedType(t.Obj()) + + case *typeparams.TypeParam: + w.startType(typeParamType) + w.qualifiedType(t.Obj()) + + case *types.Pointer: + w.startType(pointerType) + w.typ(t.Elem(), pkg) + + case *types.Slice: + w.startType(sliceType) + w.typ(t.Elem(), pkg) + + case *types.Array: + w.startType(arrayType) + w.uint64(uint64(t.Len())) + w.typ(t.Elem(), pkg) + + case *types.Chan: + w.startType(chanType) + // 1 RecvOnly; 2 SendOnly; 3 SendRecv + var dir uint64 + switch t.Dir() { + case types.RecvOnly: + dir = 1 + case types.SendOnly: + dir = 2 + case types.SendRecv: + dir = 3 + } + w.uint64(dir) + w.typ(t.Elem(), pkg) + + case *types.Map: + w.startType(mapType) + w.typ(t.Key(), pkg) + w.typ(t.Elem(), pkg) + + case *types.Signature: + w.startType(signatureType) + w.setPkg(pkg, true) + w.signature(t) + + case *types.Struct: + w.startType(structType) + n := t.NumFields() + if n > 0 { + w.setPkg(t.Field(0).Pkg(), true) // qualifying package for field objects + } else { + w.setPkg(pkg, true) + } + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + f := t.Field(i) + w.pos(f.Pos()) + w.string(f.Name()) // unexported fields implicitly qualified by prior setPkg + w.typ(f.Type(), pkg) + w.bool(f.Anonymous()) + w.string(t.Tag(i)) // note (or tag) + } + + case *types.Interface: + w.startType(interfaceType) + w.setPkg(pkg, true) + + n := t.NumEmbeddeds() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + ft := t.EmbeddedType(i) + tPkg := pkg + if named, _ := ft.(*types.Named); named != nil { + w.pos(named.Obj().Pos()) + } else { + w.pos(token.NoPos) + } + w.typ(ft, tPkg) + } + + n = t.NumExplicitMethods() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + m := t.ExplicitMethod(i) + w.pos(m.Pos()) + w.string(m.Name()) + sig, _ := m.Type().(*types.Signature) + w.signature(sig) + } + + case *typeparams.Union: + w.startType(unionType) + nt := t.Len() + w.uint64(uint64(nt)) + for i := 0; i < nt; i++ { + term := t.Term(i) + w.bool(term.Tilde()) + w.typ(term.Type(), pkg) + } + + default: + panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t))) + } +} + +func (w *exportWriter) setPkg(pkg *types.Package, write bool) { + if write { + w.pkg(pkg) + } + + w.currPkg = pkg +} + +func (w *exportWriter) signature(sig *types.Signature) { + w.paramList(sig.Params()) + w.paramList(sig.Results()) + if sig.Params().Len() > 0 { + w.bool(sig.Variadic()) + } +} + +func (w *exportWriter) typeList(ts *typeparams.TypeList, pkg *types.Package) { + w.uint64(uint64(ts.Len())) + for i := 0; i < ts.Len(); i++ { + w.typ(ts.At(i), pkg) + } +} + +func (w *exportWriter) tparamList(prefix string, list *typeparams.TypeParamList, pkg *types.Package) { + ll := uint64(list.Len()) + w.uint64(ll) + for i := 0; i < list.Len(); i++ { + tparam := list.At(i) + // Set the type parameter exportName before exporting its type. + exportName := tparamExportName(prefix, tparam) + w.p.tparamNames[tparam.Obj()] = exportName + w.typ(list.At(i), pkg) + } +} + +const blankMarker = "$" + +// tparamExportName returns the 'exported' name of a type parameter, which +// differs from its actual object name: it is prefixed with a qualifier, and +// blank type parameter names are disambiguated by their index in the type +// parameter list. +func tparamExportName(prefix string, tparam *typeparams.TypeParam) string { + assert(prefix != "") + name := tparam.Obj().Name() + if name == "_" { + name = blankMarker + strconv.Itoa(tparam.Index()) + } + return prefix + "." + name +} + +// tparamName returns the real name of a type parameter, after stripping its +// qualifying prefix and reverting blank-name encoding. See tparamExportName +// for details. +func tparamName(exportName string) string { + // Remove the "path" from the type param name that makes it unique. + ix := strings.LastIndex(exportName, ".") + if ix < 0 { + errorf("malformed type parameter export name %s: missing prefix", exportName) + } + name := exportName[ix+1:] + if strings.HasPrefix(name, blankMarker) { + return "_" + } + return name +} + +func (w *exportWriter) paramList(tup *types.Tuple) { + n := tup.Len() + w.uint64(uint64(n)) + for i := 0; i < n; i++ { + w.param(tup.At(i)) + } +} + +func (w *exportWriter) param(obj types.Object) { + w.pos(obj.Pos()) + w.localIdent(obj) + w.typ(obj.Type(), obj.Pkg()) +} + +func (w *exportWriter) value(typ types.Type, v constant.Value) { + w.typ(typ, nil) + if w.p.version >= iexportVersionGo1_18 { + w.int64(int64(v.Kind())) + } + + switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { + case types.IsBoolean: + w.bool(constant.BoolVal(v)) + case types.IsInteger: + var i big.Int + if i64, exact := constant.Int64Val(v); exact { + i.SetInt64(i64) + } else if ui64, exact := constant.Uint64Val(v); exact { + i.SetUint64(ui64) + } else { + i.SetString(v.ExactString(), 10) + } + w.mpint(&i, typ) + case types.IsFloat: + f := constantToFloat(v) + w.mpfloat(f, typ) + case types.IsComplex: + w.mpfloat(constantToFloat(constant.Real(v)), typ) + w.mpfloat(constantToFloat(constant.Imag(v)), typ) + case types.IsString: + w.string(constant.StringVal(v)) + default: + if b.Kind() == types.Invalid { + // package contains type errors + break + } + panic(internalErrorf("unexpected type %v (%v)", typ, typ.Underlying())) + } +} + +// constantToFloat converts a constant.Value with kind constant.Float to a +// big.Float. +func constantToFloat(x constant.Value) *big.Float { + x = constant.ToFloat(x) + // Use the same floating-point precision (512) as cmd/compile + // (see Mpprec in cmd/compile/internal/gc/mpfloat.go). + const mpprec = 512 + var f big.Float + f.SetPrec(mpprec) + if v, exact := constant.Float64Val(x); exact { + // float64 + f.SetFloat64(v) + } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { + // TODO(gri): add big.Rat accessor to constant.Value. + n := valueToRat(num) + d := valueToRat(denom) + f.SetRat(n.Quo(n, d)) + } else { + // Value too large to represent as a fraction => inaccessible. + // TODO(gri): add big.Float accessor to constant.Value. + _, ok := f.SetString(x.ExactString()) + assert(ok) + } + return &f +} + +// mpint exports a multi-precision integer. +// +// For unsigned types, small values are written out as a single +// byte. Larger values are written out as a length-prefixed big-endian +// byte string, where the length prefix is encoded as its complement. +// For example, bytes 0, 1, and 2 directly represent the integer +// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-, +// 2-, and 3-byte big-endian string follow. +// +// Encoding for signed types use the same general approach as for +// unsigned types, except small values use zig-zag encoding and the +// bottom bit of length prefix byte for large values is reserved as a +// sign bit. +// +// The exact boundary between small and large encodings varies +// according to the maximum number of bytes needed to encode a value +// of type typ. As a special case, 8-bit types are always encoded as a +// single byte. +// +// TODO(mdempsky): Is this level of complexity really worthwhile? +func (w *exportWriter) mpint(x *big.Int, typ types.Type) { + basic, ok := typ.Underlying().(*types.Basic) + if !ok { + panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying())) + } + + signed, maxBytes := intSize(basic) + + negative := x.Sign() < 0 + if !signed && negative { + panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x)) + } + + b := x.Bytes() + if len(b) > 0 && b[0] == 0 { + panic(internalErrorf("leading zeros")) + } + if uint(len(b)) > maxBytes { + panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x)) + } + + maxSmall := 256 - maxBytes + if signed { + maxSmall = 256 - 2*maxBytes + } + if maxBytes == 1 { + maxSmall = 256 + } + + // Check if x can use small value encoding. + if len(b) <= 1 { + var ux uint + if len(b) == 1 { + ux = uint(b[0]) + } + if signed { + ux <<= 1 + if negative { + ux-- + } + } + if ux < maxSmall { + w.data.WriteByte(byte(ux)) + return + } + } + + n := 256 - uint(len(b)) + if signed { + n = 256 - 2*uint(len(b)) + if negative { + n |= 1 + } + } + if n < maxSmall || n >= 256 { + panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n)) + } + + w.data.WriteByte(byte(n)) + w.data.Write(b) +} + +// mpfloat exports a multi-precision floating point number. +// +// The number's value is decomposed into mantissa × 2**exponent, where +// mantissa is an integer. The value is written out as mantissa (as a +// multi-precision integer) and then the exponent, except exponent is +// omitted if mantissa is zero. +func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) { + if f.IsInf() { + panic("infinite constant") + } + + // Break into f = mant × 2**exp, with 0.5 <= mant < 1. + var mant big.Float + exp := int64(f.MantExp(&mant)) + + // Scale so that mant is an integer. + prec := mant.MinPrec() + mant.SetMantExp(&mant, int(prec)) + exp -= int64(prec) + + manti, acc := mant.Int(nil) + if acc != big.Exact { + panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc)) + } + w.mpint(manti, typ) + if manti.Sign() != 0 { + w.int64(exp) + } +} + +func (w *exportWriter) bool(b bool) bool { + var x uint64 + if b { + x = 1 + } + w.uint64(x) + return b +} + +func (w *exportWriter) int64(x int64) { w.data.int64(x) } +func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) } +func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) } + +func (w *exportWriter) localIdent(obj types.Object) { + // Anonymous parameters. + if obj == nil { + w.string("") + return + } + + name := obj.Name() + if name == "_" { + w.string("_") + return + } + + w.string(name) +} + +type intWriter struct { + bytes.Buffer +} + +func (w *intWriter) int64(x int64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutVarint(buf[:], x) + w.Write(buf[:n]) +} + +func (w *intWriter) uint64(x uint64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutUvarint(buf[:], x) + w.Write(buf[:n]) +} + +func assert(cond bool) { + if !cond { + panic("internal error: assertion failed") + } +} + +// The below is copied from go/src/cmd/compile/internal/gc/syntax.go. + +// objQueue is a FIFO queue of types.Object. The zero value of objQueue is +// a ready-to-use empty queue. +type objQueue struct { + ring []types.Object + head, tail int +} + +// empty returns true if q contains no Nodes. +func (q *objQueue) empty() bool { + return q.head == q.tail +} + +// pushTail appends n to the tail of the queue. +func (q *objQueue) pushTail(obj types.Object) { + if len(q.ring) == 0 { + q.ring = make([]types.Object, 16) + } else if q.head+len(q.ring) == q.tail { + // Grow the ring. + nring := make([]types.Object, len(q.ring)*2) + // Copy the old elements. + part := q.ring[q.head%len(q.ring):] + if q.tail-q.head <= len(part) { + part = part[:q.tail-q.head] + copy(nring, part) + } else { + pos := copy(nring, part) + copy(nring[pos:], q.ring[:q.tail%len(q.ring)]) + } + q.ring, q.head, q.tail = nring, 0, q.tail-q.head + } + + q.ring[q.tail%len(q.ring)] = obj + q.tail++ +} + +// popHead pops a node from the head of the queue. It panics if q is empty. +func (q *objQueue) popHead() types.Object { + if q.empty() { + panic("dequeue empty") + } + obj := q.ring[q.head%len(q.ring)] + q.head++ + return obj +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go new file mode 100644 index 0000000000..448f903e86 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -0,0 +1,976 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Indexed package import. +// See cmd/compile/internal/gc/iexport.go for the export data format. + +// This file is a copy of $GOROOT/src/go/internal/gcimporter/iimport.go. + +package gcimporter + +import ( + "bytes" + "encoding/binary" + "fmt" + "go/constant" + "go/token" + "go/types" + "io" + "math/big" + "sort" + "strings" + + "golang.org/x/tools/internal/typeparams" +) + +type intReader struct { + *bytes.Reader + path string +} + +func (r *intReader) int64() int64 { + i, err := binary.ReadVarint(r.Reader) + if err != nil { + errorf("import %q: read varint error: %v", r.path, err) + } + return i +} + +func (r *intReader) uint64() uint64 { + i, err := binary.ReadUvarint(r.Reader) + if err != nil { + errorf("import %q: read varint error: %v", r.path, err) + } + return i +} + +// Keep this in sync with constants in iexport.go. +const ( + iexportVersionGo1_11 = 0 + iexportVersionPosCol = 1 + iexportVersionGo1_18 = 2 + iexportVersionGenerics = 2 + + iexportVersionCurrent = 2 +) + +type ident struct { + pkg *types.Package + name string +} + +const predeclReserved = 32 + +type itag uint64 + +const ( + // Types + definedType itag = iota + pointerType + sliceType + arrayType + chanType + mapType + signatureType + structType + interfaceType + typeParamType + instanceType + unionType +) + +// IImportData imports a package from the serialized package data +// and returns 0 and a reference to the package. +// If the export data version is not recognized or the format is otherwise +// compromised, an error is returned. +func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { + pkgs, err := iimportCommon(fset, imports, data, false, path, nil) + if err != nil { + return 0, nil, err + } + return 0, pkgs[0], nil +} + +// IImportBundle imports a set of packages from the serialized package bundle. +func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { + return iimportCommon(fset, imports, data, true, "", nil) +} + +func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) { + const currentVersion = iexportVersionCurrent + version := int64(-1) + if !debug { + defer func() { + if e := recover(); e != nil { + if bundle { + err = fmt.Errorf("%v", e) + } else if version > currentVersion { + err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) + } else { + err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) + } + } + }() + } + + r := &intReader{bytes.NewReader(data), path} + + if bundle { + bundleVersion := r.uint64() + switch bundleVersion { + case bundleVersion: + default: + errorf("unknown bundle format version %d", bundleVersion) + } + } + + version = int64(r.uint64()) + switch version { + case iexportVersionGo1_18, iexportVersionPosCol, iexportVersionGo1_11: + default: + if version > iexportVersionGo1_18 { + errorf("unstable iexport format version %d, just rebuild compiler and std library", version) + } else { + errorf("unknown iexport format version %d", version) + } + } + + sLen := int64(r.uint64()) + var fLen int64 + var fileOffset []uint64 + if insert != nil { + // Shallow mode uses a different position encoding. + fLen = int64(r.uint64()) + fileOffset = make([]uint64, r.uint64()) + for i := range fileOffset { + fileOffset[i] = r.uint64() + } + } + dLen := int64(r.uint64()) + + whence, _ := r.Seek(0, io.SeekCurrent) + stringData := data[whence : whence+sLen] + fileData := data[whence+sLen : whence+sLen+fLen] + declData := data[whence+sLen+fLen : whence+sLen+fLen+dLen] + r.Seek(sLen+fLen+dLen, io.SeekCurrent) + + p := iimporter{ + version: int(version), + ipath: path, + insert: insert, + + stringData: stringData, + stringCache: make(map[uint64]string), + fileOffset: fileOffset, + fileData: fileData, + fileCache: make([]*token.File, len(fileOffset)), + pkgCache: make(map[uint64]*types.Package), + + declData: declData, + pkgIndex: make(map[*types.Package]map[string]uint64), + typCache: make(map[uint64]types.Type), + // Separate map for typeparams, keyed by their package and unique + // name. + tparamIndex: make(map[ident]types.Type), + + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*fileInfo), + }, + } + defer p.fake.setLines() // set lines for files in fset + + for i, pt := range predeclared() { + p.typCache[uint64(i)] = pt + } + + pkgList := make([]*types.Package, r.uint64()) + for i := range pkgList { + pkgPathOff := r.uint64() + pkgPath := p.stringAt(pkgPathOff) + pkgName := p.stringAt(r.uint64()) + _ = r.uint64() // package height; unused by go/types + + if pkgPath == "" { + pkgPath = path + } + pkg := imports[pkgPath] + if pkg == nil { + pkg = types.NewPackage(pkgPath, pkgName) + imports[pkgPath] = pkg + } else if pkg.Name() != pkgName { + errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path) + } + if i == 0 && !bundle { + p.localpkg = pkg + } + + p.pkgCache[pkgPathOff] = pkg + + // Read index for package. + nameIndex := make(map[string]uint64) + nSyms := r.uint64() + // In shallow mode we don't expect an index for other packages. + assert(nSyms == 0 || p.localpkg == pkg || p.insert == nil) + for ; nSyms > 0; nSyms-- { + name := p.stringAt(r.uint64()) + nameIndex[name] = r.uint64() + } + + p.pkgIndex[pkg] = nameIndex + pkgList[i] = pkg + } + + if bundle { + pkgs = make([]*types.Package, r.uint64()) + for i := range pkgs { + pkg := p.pkgAt(r.uint64()) + imps := make([]*types.Package, r.uint64()) + for j := range imps { + imps[j] = p.pkgAt(r.uint64()) + } + pkg.SetImports(imps) + pkgs[i] = pkg + } + } else { + if len(pkgList) == 0 { + errorf("no packages found for %s", path) + panic("unreachable") + } + pkgs = pkgList[:1] + + // record all referenced packages as imports + list := append(([]*types.Package)(nil), pkgList[1:]...) + sort.Sort(byPath(list)) + pkgs[0].SetImports(list) + } + + for _, pkg := range pkgs { + if pkg.Complete() { + continue + } + + names := make([]string, 0, len(p.pkgIndex[pkg])) + for name := range p.pkgIndex[pkg] { + names = append(names, name) + } + sort.Strings(names) + for _, name := range names { + p.doDecl(pkg, name) + } + + // package was imported completely and without errors + pkg.MarkComplete() + } + + // SetConstraint can't be called if the constraint type is not yet complete. + // When type params are created in the 'P' case of (*importReader).obj(), + // the associated constraint type may not be complete due to recursion. + // Therefore, we defer calling SetConstraint there, and call it here instead + // after all types are complete. + for _, d := range p.later { + typeparams.SetTypeParamConstraint(d.t, d.constraint) + } + + for _, typ := range p.interfaceList { + typ.Complete() + } + + return pkgs, nil +} + +type setConstraintArgs struct { + t *typeparams.TypeParam + constraint types.Type +} + +type iimporter struct { + version int + ipath string + + localpkg *types.Package + insert func(pkg *types.Package, name string) // "shallow" mode only + + stringData []byte + stringCache map[uint64]string + fileOffset []uint64 // fileOffset[i] is offset in fileData for info about file encoded as i + fileData []byte + fileCache []*token.File // memoized decoding of file encoded as i + pkgCache map[uint64]*types.Package + + declData []byte + pkgIndex map[*types.Package]map[string]uint64 + typCache map[uint64]types.Type + tparamIndex map[ident]types.Type + + fake fakeFileSet + interfaceList []*types.Interface + + // Arguments for calls to SetConstraint that are deferred due to recursive types + later []setConstraintArgs + + indent int // for tracing support +} + +func (p *iimporter) trace(format string, args ...interface{}) { + if !trace { + // Call sites should also be guarded, but having this check here allows + // easily enabling/disabling debug trace statements. + return + } + fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) +} + +func (p *iimporter) doDecl(pkg *types.Package, name string) { + if debug { + p.trace("import decl %s", name) + p.indent++ + defer func() { + p.indent-- + p.trace("=> %s", name) + }() + } + // See if we've already imported this declaration. + if obj := pkg.Scope().Lookup(name); obj != nil { + return + } + + off, ok := p.pkgIndex[pkg][name] + if !ok { + // In "shallow" mode, call back to the application to + // find the object and insert it into the package scope. + if p.insert != nil { + assert(pkg != p.localpkg) + p.insert(pkg, name) // "can't fail" + return + } + errorf("%v.%v not in index", pkg, name) + } + + r := &importReader{p: p, currPkg: pkg} + r.declReader.Reset(p.declData[off:]) + + r.obj(name) +} + +func (p *iimporter) stringAt(off uint64) string { + if s, ok := p.stringCache[off]; ok { + return s + } + + slen, n := binary.Uvarint(p.stringData[off:]) + if n <= 0 { + errorf("varint failed") + } + spos := off + uint64(n) + s := string(p.stringData[spos : spos+slen]) + p.stringCache[off] = s + return s +} + +func (p *iimporter) fileAt(index uint64) *token.File { + file := p.fileCache[index] + if file == nil { + off := p.fileOffset[index] + file = p.decodeFile(intReader{bytes.NewReader(p.fileData[off:]), p.ipath}) + p.fileCache[index] = file + } + return file +} + +func (p *iimporter) decodeFile(rd intReader) *token.File { + filename := p.stringAt(rd.uint64()) + size := int(rd.uint64()) + file := p.fake.fset.AddFile(filename, -1, size) + + // SetLines requires a nondecreasing sequence. + // Because it is common for clients to derive the interval + // [start, start+len(name)] from a start position, and we + // want to ensure that the end offset is on the same line, + // we fill in the gaps of the sparse encoding with values + // that strictly increase by the largest possible amount. + // This allows us to avoid having to record the actual end + // offset of each needed line. + + lines := make([]int, int(rd.uint64())) + var index, offset int + for i, n := 0, int(rd.uint64()); i < n; i++ { + index += int(rd.uint64()) + offset += int(rd.uint64()) + lines[index] = offset + + // Ensure monotonicity between points. + for j := index - 1; j > 0 && lines[j] == 0; j-- { + lines[j] = lines[j+1] - 1 + } + } + + // Ensure monotonicity after last point. + for j := len(lines) - 1; j > 0 && lines[j] == 0; j-- { + size-- + lines[j] = size + } + + if !file.SetLines(lines) { + errorf("SetLines failed: %d", lines) // can't happen + } + return file +} + +func (p *iimporter) pkgAt(off uint64) *types.Package { + if pkg, ok := p.pkgCache[off]; ok { + return pkg + } + path := p.stringAt(off) + errorf("missing package %q in %q", path, p.ipath) + return nil +} + +func (p *iimporter) typAt(off uint64, base *types.Named) types.Type { + if t, ok := p.typCache[off]; ok && canReuse(base, t) { + return t + } + + if off < predeclReserved { + errorf("predeclared type missing from cache: %v", off) + } + + r := &importReader{p: p} + r.declReader.Reset(p.declData[off-predeclReserved:]) + t := r.doType(base) + + if canReuse(base, t) { + p.typCache[off] = t + } + return t +} + +// canReuse reports whether the type rhs on the RHS of the declaration for def +// may be re-used. +// +// Specifically, if def is non-nil and rhs is an interface type with methods, it +// may not be re-used because we have a convention of setting the receiver type +// for interface methods to def. +func canReuse(def *types.Named, rhs types.Type) bool { + if def == nil { + return true + } + iface, _ := rhs.(*types.Interface) + if iface == nil { + return true + } + // Don't use iface.Empty() here as iface may not be complete. + return iface.NumEmbeddeds() == 0 && iface.NumExplicitMethods() == 0 +} + +type importReader struct { + p *iimporter + declReader bytes.Reader + currPkg *types.Package + prevFile string + prevLine int64 + prevColumn int64 +} + +func (r *importReader) obj(name string) { + tag := r.byte() + pos := r.pos() + + switch tag { + case 'A': + typ := r.typ() + + r.declare(types.NewTypeName(pos, r.currPkg, name, typ)) + + case 'C': + typ, val := r.value() + + r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) + + case 'F', 'G': + var tparams []*typeparams.TypeParam + if tag == 'G' { + tparams = r.tparamList() + } + sig := r.signature(nil, nil, tparams) + r.declare(types.NewFunc(pos, r.currPkg, name, sig)) + + case 'T', 'U': + // Types can be recursive. We need to setup a stub + // declaration before recursing. + obj := types.NewTypeName(pos, r.currPkg, name, nil) + named := types.NewNamed(obj, nil, nil) + // Declare obj before calling r.tparamList, so the new type name is recognized + // if used in the constraint of one of its own typeparams (see #48280). + r.declare(obj) + if tag == 'U' { + tparams := r.tparamList() + typeparams.SetForNamed(named, tparams) + } + + underlying := r.p.typAt(r.uint64(), named).Underlying() + named.SetUnderlying(underlying) + + if !isInterface(underlying) { + for n := r.uint64(); n > 0; n-- { + mpos := r.pos() + mname := r.ident() + recv := r.param() + + // If the receiver has any targs, set those as the + // rparams of the method (since those are the + // typeparams being used in the method sig/body). + base := baseType(recv.Type()) + assert(base != nil) + targs := typeparams.NamedTypeArgs(base) + var rparams []*typeparams.TypeParam + if targs.Len() > 0 { + rparams = make([]*typeparams.TypeParam, targs.Len()) + for i := range rparams { + rparams[i] = targs.At(i).(*typeparams.TypeParam) + } + } + msig := r.signature(recv, rparams, nil) + + named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) + } + } + + case 'P': + // We need to "declare" a typeparam in order to have a name that + // can be referenced recursively (if needed) in the type param's + // bound. + if r.p.version < iexportVersionGenerics { + errorf("unexpected type param type") + } + name0 := tparamName(name) + tn := types.NewTypeName(pos, r.currPkg, name0, nil) + t := typeparams.NewTypeParam(tn, nil) + + // To handle recursive references to the typeparam within its + // bound, save the partial type in tparamIndex before reading the bounds. + id := ident{r.currPkg, name} + r.p.tparamIndex[id] = t + var implicit bool + if r.p.version >= iexportVersionGo1_18 { + implicit = r.bool() + } + constraint := r.typ() + if implicit { + iface, _ := constraint.(*types.Interface) + if iface == nil { + errorf("non-interface constraint marked implicit") + } + typeparams.MarkImplicit(iface) + } + // The constraint type may not be complete, if we + // are in the middle of a type recursion involving type + // constraints. So, we defer SetConstraint until we have + // completely set up all types in ImportData. + r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) + + case 'V': + typ := r.typ() + + r.declare(types.NewVar(pos, r.currPkg, name, typ)) + + default: + errorf("unexpected tag: %v", tag) + } +} + +func (r *importReader) declare(obj types.Object) { + obj.Pkg().Scope().Insert(obj) +} + +func (r *importReader) value() (typ types.Type, val constant.Value) { + typ = r.typ() + if r.p.version >= iexportVersionGo1_18 { + // TODO: add support for using the kind. + _ = constant.Kind(r.int64()) + } + + switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { + case types.IsBoolean: + val = constant.MakeBool(r.bool()) + + case types.IsString: + val = constant.MakeString(r.string()) + + case types.IsInteger: + var x big.Int + r.mpint(&x, b) + val = constant.Make(&x) + + case types.IsFloat: + val = r.mpfloat(b) + + case types.IsComplex: + re := r.mpfloat(b) + im := r.mpfloat(b) + val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) + + default: + if b.Kind() == types.Invalid { + val = constant.MakeUnknown() + return + } + errorf("unexpected type %v", typ) // panics + panic("unreachable") + } + + return +} + +func intSize(b *types.Basic) (signed bool, maxBytes uint) { + if (b.Info() & types.IsUntyped) != 0 { + return true, 64 + } + + switch b.Kind() { + case types.Float32, types.Complex64: + return true, 3 + case types.Float64, types.Complex128: + return true, 7 + } + + signed = (b.Info() & types.IsUnsigned) == 0 + switch b.Kind() { + case types.Int8, types.Uint8: + maxBytes = 1 + case types.Int16, types.Uint16: + maxBytes = 2 + case types.Int32, types.Uint32: + maxBytes = 4 + default: + maxBytes = 8 + } + + return +} + +func (r *importReader) mpint(x *big.Int, typ *types.Basic) { + signed, maxBytes := intSize(typ) + + maxSmall := 256 - maxBytes + if signed { + maxSmall = 256 - 2*maxBytes + } + if maxBytes == 1 { + maxSmall = 256 + } + + n, _ := r.declReader.ReadByte() + if uint(n) < maxSmall { + v := int64(n) + if signed { + v >>= 1 + if n&1 != 0 { + v = ^v + } + } + x.SetInt64(v) + return + } + + v := -n + if signed { + v = -(n &^ 1) >> 1 + } + if v < 1 || uint(v) > maxBytes { + errorf("weird decoding: %v, %v => %v", n, signed, v) + } + b := make([]byte, v) + io.ReadFull(&r.declReader, b) + x.SetBytes(b) + if signed && n&1 != 0 { + x.Neg(x) + } +} + +func (r *importReader) mpfloat(typ *types.Basic) constant.Value { + var mant big.Int + r.mpint(&mant, typ) + var f big.Float + f.SetInt(&mant) + if f.Sign() != 0 { + f.SetMantExp(&f, int(r.int64())) + } + return constant.Make(&f) +} + +func (r *importReader) ident() string { + return r.string() +} + +func (r *importReader) qualifiedIdent() (*types.Package, string) { + name := r.string() + pkg := r.pkg() + return pkg, name +} + +func (r *importReader) pos() token.Pos { + if r.p.insert != nil { // shallow mode + return r.posv2() + } + if r.p.version >= iexportVersionPosCol { + r.posv1() + } else { + r.posv0() + } + + if r.prevFile == "" && r.prevLine == 0 && r.prevColumn == 0 { + return token.NoPos + } + return r.p.fake.pos(r.prevFile, int(r.prevLine), int(r.prevColumn)) +} + +func (r *importReader) posv0() { + delta := r.int64() + if delta != deltaNewFile { + r.prevLine += delta + } else if l := r.int64(); l == -1 { + r.prevLine += deltaNewFile + } else { + r.prevFile = r.string() + r.prevLine = l + } +} + +func (r *importReader) posv1() { + delta := r.int64() + r.prevColumn += delta >> 1 + if delta&1 != 0 { + delta = r.int64() + r.prevLine += delta >> 1 + if delta&1 != 0 { + r.prevFile = r.string() + } + } +} + +func (r *importReader) posv2() token.Pos { + file := r.uint64() + if file == 0 { + return token.NoPos + } + tf := r.p.fileAt(file - 1) + return tf.Pos(int(r.uint64())) +} + +func (r *importReader) typ() types.Type { + return r.p.typAt(r.uint64(), nil) +} + +func isInterface(t types.Type) bool { + _, ok := t.(*types.Interface) + return ok +} + +func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) } +func (r *importReader) string() string { return r.p.stringAt(r.uint64()) } + +func (r *importReader) doType(base *types.Named) (res types.Type) { + k := r.kind() + if debug { + r.p.trace("importing type %d (base: %s)", k, base) + r.p.indent++ + defer func() { + r.p.indent-- + r.p.trace("=> %s", res) + }() + } + switch k { + default: + errorf("unexpected kind tag in %q: %v", r.p.ipath, k) + return nil + + case definedType: + pkg, name := r.qualifiedIdent() + r.p.doDecl(pkg, name) + return pkg.Scope().Lookup(name).(*types.TypeName).Type() + case pointerType: + return types.NewPointer(r.typ()) + case sliceType: + return types.NewSlice(r.typ()) + case arrayType: + n := r.uint64() + return types.NewArray(r.typ(), int64(n)) + case chanType: + dir := chanDir(int(r.uint64())) + return types.NewChan(dir, r.typ()) + case mapType: + return types.NewMap(r.typ(), r.typ()) + case signatureType: + r.currPkg = r.pkg() + return r.signature(nil, nil, nil) + + case structType: + r.currPkg = r.pkg() + + fields := make([]*types.Var, r.uint64()) + tags := make([]string, len(fields)) + for i := range fields { + fpos := r.pos() + fname := r.ident() + ftyp := r.typ() + emb := r.bool() + tag := r.string() + + fields[i] = types.NewField(fpos, r.currPkg, fname, ftyp, emb) + tags[i] = tag + } + return types.NewStruct(fields, tags) + + case interfaceType: + r.currPkg = r.pkg() + + embeddeds := make([]types.Type, r.uint64()) + for i := range embeddeds { + _ = r.pos() + embeddeds[i] = r.typ() + } + + methods := make([]*types.Func, r.uint64()) + for i := range methods { + mpos := r.pos() + mname := r.ident() + + // TODO(mdempsky): Matches bimport.go, but I + // don't agree with this. + var recv *types.Var + if base != nil { + recv = types.NewVar(token.NoPos, r.currPkg, "", base) + } + + msig := r.signature(recv, nil, nil) + methods[i] = types.NewFunc(mpos, r.currPkg, mname, msig) + } + + typ := newInterface(methods, embeddeds) + r.p.interfaceList = append(r.p.interfaceList, typ) + return typ + + case typeParamType: + if r.p.version < iexportVersionGenerics { + errorf("unexpected type param type") + } + pkg, name := r.qualifiedIdent() + id := ident{pkg, name} + if t, ok := r.p.tparamIndex[id]; ok { + // We're already in the process of importing this typeparam. + return t + } + // Otherwise, import the definition of the typeparam now. + r.p.doDecl(pkg, name) + return r.p.tparamIndex[id] + + case instanceType: + if r.p.version < iexportVersionGenerics { + errorf("unexpected instantiation type") + } + // pos does not matter for instances: they are positioned on the original + // type. + _ = r.pos() + len := r.uint64() + targs := make([]types.Type, len) + for i := range targs { + targs[i] = r.typ() + } + baseType := r.typ() + // The imported instantiated type doesn't include any methods, so + // we must always use the methods of the base (orig) type. + // TODO provide a non-nil *Environment + t, _ := typeparams.Instantiate(nil, baseType, targs, false) + return t + + case unionType: + if r.p.version < iexportVersionGenerics { + errorf("unexpected instantiation type") + } + terms := make([]*typeparams.Term, r.uint64()) + for i := range terms { + terms[i] = typeparams.NewTerm(r.bool(), r.typ()) + } + return typeparams.NewUnion(terms) + } +} + +func (r *importReader) kind() itag { + return itag(r.uint64()) +} + +func (r *importReader) signature(recv *types.Var, rparams []*typeparams.TypeParam, tparams []*typeparams.TypeParam) *types.Signature { + params := r.paramList() + results := r.paramList() + variadic := params.Len() > 0 && r.bool() + return typeparams.NewSignatureType(recv, rparams, tparams, params, results, variadic) +} + +func (r *importReader) tparamList() []*typeparams.TypeParam { + n := r.uint64() + if n == 0 { + return nil + } + xs := make([]*typeparams.TypeParam, n) + for i := range xs { + // Note: the standard library importer is tolerant of nil types here, + // though would panic in SetTypeParams. + xs[i] = r.typ().(*typeparams.TypeParam) + } + return xs +} + +func (r *importReader) paramList() *types.Tuple { + xs := make([]*types.Var, r.uint64()) + for i := range xs { + xs[i] = r.param() + } + return types.NewTuple(xs...) +} + +func (r *importReader) param() *types.Var { + pos := r.pos() + name := r.ident() + typ := r.typ() + return types.NewParam(pos, r.currPkg, name, typ) +} + +func (r *importReader) bool() bool { + return r.uint64() != 0 +} + +func (r *importReader) int64() int64 { + n, err := binary.ReadVarint(&r.declReader) + if err != nil { + errorf("readVarint: %v", err) + } + return n +} + +func (r *importReader) uint64() uint64 { + n, err := binary.ReadUvarint(&r.declReader) + if err != nil { + errorf("readUvarint: %v", err) + } + return n +} + +func (r *importReader) byte() byte { + x, err := r.declReader.ReadByte() + if err != nil { + errorf("declReader.ReadByte: %v", err) + } + return x +} + +func baseType(typ types.Type) *types.Named { + // pointer receivers are never types.Named types + if p, _ := typ.(*types.Pointer); p != nil { + typ = p.Elem() + } + // receiver base types are always (possibly generic) types.Named types + n, _ := typ.(*types.Named) + return n +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go new file mode 100644 index 0000000000..8b163e3d05 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go @@ -0,0 +1,22 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.11 +// +build !go1.11 + +package gcimporter + +import "go/types" + +func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface { + named := make([]*types.Named, len(embeddeds)) + for i, e := range embeddeds { + var ok bool + named[i], ok = e.(*types.Named) + if !ok { + panic("embedding of non-defined interfaces in interfaces is not supported before Go 1.11") + } + } + return types.NewInterface(methods, named) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go new file mode 100644 index 0000000000..49984f40fd --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go @@ -0,0 +1,14 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.11 +// +build go1.11 + +package gcimporter + +import "go/types" + +func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface { + return types.NewInterfaceType(methods, embeddeds) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go new file mode 100644 index 0000000000..d892273efb --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go @@ -0,0 +1,16 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.18 +// +build !go1.18 + +package gcimporter + +import "go/types" + +const iexportVersion = iexportVersionGo1_11 + +func additionalPredeclared() []types.Type { + return nil +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go new file mode 100644 index 0000000000..edbe6ea704 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go @@ -0,0 +1,37 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.18 +// +build go1.18 + +package gcimporter + +import "go/types" + +const iexportVersion = iexportVersionGenerics + +// additionalPredeclared returns additional predeclared types in go.1.18. +func additionalPredeclared() []types.Type { + return []types.Type{ + // comparable + types.Universe.Lookup("comparable").Type(), + + // any + types.Universe.Lookup("any").Type(), + } +} + +// See cmd/compile/internal/types.SplitVargenSuffix. +func splitVargenSuffix(name string) (base, suffix string) { + i := len(name) + for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' { + i-- + } + const dot = "·" + if i >= len(dot) && name[i-len(dot):i] == dot { + i -= len(dot) + return name[:i], name[i:] + } + return name, "" +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go new file mode 100644 index 0000000000..286bf44548 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go @@ -0,0 +1,10 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !(go1.18 && goexperiment.unified) +// +build !go1.18 !goexperiment.unified + +package gcimporter + +const unifiedIR = false diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go new file mode 100644 index 0000000000..b5d69ffbe6 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go @@ -0,0 +1,10 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.18 && goexperiment.unified +// +build go1.18,goexperiment.unified + +package gcimporter + +const unifiedIR = true diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go new file mode 100644 index 0000000000..8eb20729c2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go @@ -0,0 +1,19 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.18 +// +build !go1.18 + +package gcimporter + +import ( + "fmt" + "go/token" + "go/types" +) + +func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + err = fmt.Errorf("go/tools compiled with a Go version earlier than 1.18 cannot read unified IR export data") + return +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go new file mode 100644 index 0000000000..b285a11ce2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go @@ -0,0 +1,738 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Derived from go/internal/gcimporter/ureader.go + +//go:build go1.18 +// +build go1.18 + +package gcimporter + +import ( + "go/token" + "go/types" + "strings" + + "golang.org/x/tools/internal/pkgbits" +) + +// A pkgReader holds the shared state for reading a unified IR package +// description. +type pkgReader struct { + pkgbits.PkgDecoder + + fake fakeFileSet + + ctxt *types.Context + imports map[string]*types.Package // previously imported packages, indexed by path + + // lazily initialized arrays corresponding to the unified IR + // PosBase, Pkg, and Type sections, respectively. + posBases []string // position bases (i.e., file names) + pkgs []*types.Package + typs []types.Type + + // laterFns holds functions that need to be invoked at the end of + // import reading. + laterFns []func() + // laterFors is used in case of 'type A B' to ensure that B is processed before A. + laterFors map[types.Type]int + + // ifaces holds a list of constructed Interfaces, which need to have + // Complete called after importing is done. + ifaces []*types.Interface +} + +// later adds a function to be invoked at the end of import reading. +func (pr *pkgReader) later(fn func()) { + pr.laterFns = append(pr.laterFns, fn) +} + +// See cmd/compile/internal/noder.derivedInfo. +type derivedInfo struct { + idx pkgbits.Index + needed bool +} + +// See cmd/compile/internal/noder.typeInfo. +type typeInfo struct { + idx pkgbits.Index + derived bool +} + +func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { + s := string(data) + s = s[:strings.LastIndex(s, "\n$$\n")] + input := pkgbits.NewPkgDecoder(path, s) + pkg = readUnifiedPackage(fset, nil, imports, input) + return +} + +// laterFor adds a function to be invoked at the end of import reading, and records the type that function is finishing. +func (pr *pkgReader) laterFor(t types.Type, fn func()) { + if pr.laterFors == nil { + pr.laterFors = make(map[types.Type]int) + } + pr.laterFors[t] = len(pr.laterFns) + pr.laterFns = append(pr.laterFns, fn) +} + +// readUnifiedPackage reads a package description from the given +// unified IR export data decoder. +func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[string]*types.Package, input pkgbits.PkgDecoder) *types.Package { + pr := pkgReader{ + PkgDecoder: input, + + fake: fakeFileSet{ + fset: fset, + files: make(map[string]*fileInfo), + }, + + ctxt: ctxt, + imports: imports, + + posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), + pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), + typs: make([]types.Type, input.NumElems(pkgbits.RelocType)), + } + defer pr.fake.setLines() + + r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic) + pkg := r.pkg() + r.Bool() // has init + + for i, n := 0, r.Len(); i < n; i++ { + // As if r.obj(), but avoiding the Scope.Lookup call, + // to avoid eager loading of imports. + r.Sync(pkgbits.SyncObject) + assert(!r.Bool()) + r.p.objIdx(r.Reloc(pkgbits.RelocObj)) + assert(r.Len() == 0) + } + + r.Sync(pkgbits.SyncEOF) + + for _, fn := range pr.laterFns { + fn() + } + + for _, iface := range pr.ifaces { + iface.Complete() + } + + pkg.MarkComplete() + return pkg +} + +// A reader holds the state for reading a single unified IR element +// within a package. +type reader struct { + pkgbits.Decoder + + p *pkgReader + + dict *readerDict +} + +// A readerDict holds the state for type parameters that parameterize +// the current unified IR element. +type readerDict struct { + // bounds is a slice of typeInfos corresponding to the underlying + // bounds of the element's type parameters. + bounds []typeInfo + + // tparams is a slice of the constructed TypeParams for the element. + tparams []*types.TypeParam + + // devived is a slice of types derived from tparams, which may be + // instantiated while reading the current element. + derived []derivedInfo + derivedTypes []types.Type // lazily instantiated from derived +} + +func (pr *pkgReader) newReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { + return &reader{ + Decoder: pr.NewDecoder(k, idx, marker), + p: pr, + } +} + +func (pr *pkgReader) tempReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { + return &reader{ + Decoder: pr.TempDecoder(k, idx, marker), + p: pr, + } +} + +func (pr *pkgReader) retireReader(r *reader) { + pr.RetireDecoder(&r.Decoder) +} + +// @@@ Positions + +func (r *reader) pos() token.Pos { + r.Sync(pkgbits.SyncPos) + if !r.Bool() { + return token.NoPos + } + + // TODO(mdempsky): Delta encoding. + posBase := r.posBase() + line := r.Uint() + col := r.Uint() + return r.p.fake.pos(posBase, int(line), int(col)) +} + +func (r *reader) posBase() string { + return r.p.posBaseIdx(r.Reloc(pkgbits.RelocPosBase)) +} + +func (pr *pkgReader) posBaseIdx(idx pkgbits.Index) string { + if b := pr.posBases[idx]; b != "" { + return b + } + + var filename string + { + r := pr.tempReader(pkgbits.RelocPosBase, idx, pkgbits.SyncPosBase) + + // Within types2, position bases have a lot more details (e.g., + // keeping track of where //line directives appeared exactly). + // + // For go/types, we just track the file name. + + filename = r.String() + + if r.Bool() { // file base + // Was: "b = token.NewTrimmedFileBase(filename, true)" + } else { // line base + pos := r.pos() + line := r.Uint() + col := r.Uint() + + // Was: "b = token.NewLineBase(pos, filename, true, line, col)" + _, _, _ = pos, line, col + } + pr.retireReader(r) + } + b := filename + pr.posBases[idx] = b + return b +} + +// @@@ Packages + +func (r *reader) pkg() *types.Package { + r.Sync(pkgbits.SyncPkg) + return r.p.pkgIdx(r.Reloc(pkgbits.RelocPkg)) +} + +func (pr *pkgReader) pkgIdx(idx pkgbits.Index) *types.Package { + // TODO(mdempsky): Consider using some non-nil pointer to indicate + // the universe scope, so we don't need to keep re-reading it. + if pkg := pr.pkgs[idx]; pkg != nil { + return pkg + } + + pkg := pr.newReader(pkgbits.RelocPkg, idx, pkgbits.SyncPkgDef).doPkg() + pr.pkgs[idx] = pkg + return pkg +} + +func (r *reader) doPkg() *types.Package { + path := r.String() + switch path { + case "": + path = r.p.PkgPath() + case "builtin": + return nil // universe + case "unsafe": + return types.Unsafe + } + + if pkg := r.p.imports[path]; pkg != nil { + return pkg + } + + name := r.String() + + pkg := types.NewPackage(path, name) + r.p.imports[path] = pkg + + imports := make([]*types.Package, r.Len()) + for i := range imports { + imports[i] = r.pkg() + } + pkg.SetImports(flattenImports(imports)) + + return pkg +} + +// flattenImports returns the transitive closure of all imported +// packages rooted from pkgs. +func flattenImports(pkgs []*types.Package) []*types.Package { + var res []*types.Package + seen := make(map[*types.Package]struct{}) + for _, pkg := range pkgs { + if _, ok := seen[pkg]; ok { + continue + } + seen[pkg] = struct{}{} + res = append(res, pkg) + + // pkg.Imports() is already flattened. + for _, pkg := range pkg.Imports() { + if _, ok := seen[pkg]; ok { + continue + } + seen[pkg] = struct{}{} + res = append(res, pkg) + } + } + return res +} + +// @@@ Types + +func (r *reader) typ() types.Type { + return r.p.typIdx(r.typInfo(), r.dict) +} + +func (r *reader) typInfo() typeInfo { + r.Sync(pkgbits.SyncType) + if r.Bool() { + return typeInfo{idx: pkgbits.Index(r.Len()), derived: true} + } + return typeInfo{idx: r.Reloc(pkgbits.RelocType), derived: false} +} + +func (pr *pkgReader) typIdx(info typeInfo, dict *readerDict) types.Type { + idx := info.idx + var where *types.Type + if info.derived { + where = &dict.derivedTypes[idx] + idx = dict.derived[idx].idx + } else { + where = &pr.typs[idx] + } + + if typ := *where; typ != nil { + return typ + } + + var typ types.Type + { + r := pr.tempReader(pkgbits.RelocType, idx, pkgbits.SyncTypeIdx) + r.dict = dict + + typ = r.doTyp() + assert(typ != nil) + pr.retireReader(r) + } + // See comment in pkgReader.typIdx explaining how this happens. + if prev := *where; prev != nil { + return prev + } + + *where = typ + return typ +} + +func (r *reader) doTyp() (res types.Type) { + switch tag := pkgbits.CodeType(r.Code(pkgbits.SyncType)); tag { + default: + errorf("unhandled type tag: %v", tag) + panic("unreachable") + + case pkgbits.TypeBasic: + return types.Typ[r.Len()] + + case pkgbits.TypeNamed: + obj, targs := r.obj() + name := obj.(*types.TypeName) + if len(targs) != 0 { + t, _ := types.Instantiate(r.p.ctxt, name.Type(), targs, false) + return t + } + return name.Type() + + case pkgbits.TypeTypeParam: + return r.dict.tparams[r.Len()] + + case pkgbits.TypeArray: + len := int64(r.Uint64()) + return types.NewArray(r.typ(), len) + case pkgbits.TypeChan: + dir := types.ChanDir(r.Len()) + return types.NewChan(dir, r.typ()) + case pkgbits.TypeMap: + return types.NewMap(r.typ(), r.typ()) + case pkgbits.TypePointer: + return types.NewPointer(r.typ()) + case pkgbits.TypeSignature: + return r.signature(nil, nil, nil) + case pkgbits.TypeSlice: + return types.NewSlice(r.typ()) + case pkgbits.TypeStruct: + return r.structType() + case pkgbits.TypeInterface: + return r.interfaceType() + case pkgbits.TypeUnion: + return r.unionType() + } +} + +func (r *reader) structType() *types.Struct { + fields := make([]*types.Var, r.Len()) + var tags []string + for i := range fields { + pos := r.pos() + pkg, name := r.selector() + ftyp := r.typ() + tag := r.String() + embedded := r.Bool() + + fields[i] = types.NewField(pos, pkg, name, ftyp, embedded) + if tag != "" { + for len(tags) < i { + tags = append(tags, "") + } + tags = append(tags, tag) + } + } + return types.NewStruct(fields, tags) +} + +func (r *reader) unionType() *types.Union { + terms := make([]*types.Term, r.Len()) + for i := range terms { + terms[i] = types.NewTerm(r.Bool(), r.typ()) + } + return types.NewUnion(terms) +} + +func (r *reader) interfaceType() *types.Interface { + methods := make([]*types.Func, r.Len()) + embeddeds := make([]types.Type, r.Len()) + implicit := len(methods) == 0 && len(embeddeds) == 1 && r.Bool() + + for i := range methods { + pos := r.pos() + pkg, name := r.selector() + mtyp := r.signature(nil, nil, nil) + methods[i] = types.NewFunc(pos, pkg, name, mtyp) + } + + for i := range embeddeds { + embeddeds[i] = r.typ() + } + + iface := types.NewInterfaceType(methods, embeddeds) + if implicit { + iface.MarkImplicit() + } + + // We need to call iface.Complete(), but if there are any embedded + // defined types, then we may not have set their underlying + // interface type yet. So we need to defer calling Complete until + // after we've called SetUnderlying everywhere. + // + // TODO(mdempsky): After CL 424876 lands, it should be safe to call + // iface.Complete() immediately. + r.p.ifaces = append(r.p.ifaces, iface) + + return iface +} + +func (r *reader) signature(recv *types.Var, rtparams, tparams []*types.TypeParam) *types.Signature { + r.Sync(pkgbits.SyncSignature) + + params := r.params() + results := r.params() + variadic := r.Bool() + + return types.NewSignatureType(recv, rtparams, tparams, params, results, variadic) +} + +func (r *reader) params() *types.Tuple { + r.Sync(pkgbits.SyncParams) + + params := make([]*types.Var, r.Len()) + for i := range params { + params[i] = r.param() + } + + return types.NewTuple(params...) +} + +func (r *reader) param() *types.Var { + r.Sync(pkgbits.SyncParam) + + pos := r.pos() + pkg, name := r.localIdent() + typ := r.typ() + + return types.NewParam(pos, pkg, name, typ) +} + +// @@@ Objects + +func (r *reader) obj() (types.Object, []types.Type) { + r.Sync(pkgbits.SyncObject) + + assert(!r.Bool()) + + pkg, name := r.p.objIdx(r.Reloc(pkgbits.RelocObj)) + obj := pkgScope(pkg).Lookup(name) + + targs := make([]types.Type, r.Len()) + for i := range targs { + targs[i] = r.typ() + } + + return obj, targs +} + +func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { + + var objPkg *types.Package + var objName string + var tag pkgbits.CodeObj + { + rname := pr.tempReader(pkgbits.RelocName, idx, pkgbits.SyncObject1) + + objPkg, objName = rname.qualifiedIdent() + assert(objName != "") + + tag = pkgbits.CodeObj(rname.Code(pkgbits.SyncCodeObj)) + pr.retireReader(rname) + } + + if tag == pkgbits.ObjStub { + assert(objPkg == nil || objPkg == types.Unsafe) + return objPkg, objName + } + + // Ignore local types promoted to global scope (#55110). + if _, suffix := splitVargenSuffix(objName); suffix != "" { + return objPkg, objName + } + + if objPkg.Scope().Lookup(objName) == nil { + dict := pr.objDictIdx(idx) + + r := pr.newReader(pkgbits.RelocObj, idx, pkgbits.SyncObject1) + r.dict = dict + + declare := func(obj types.Object) { + objPkg.Scope().Insert(obj) + } + + switch tag { + default: + panic("weird") + + case pkgbits.ObjAlias: + pos := r.pos() + typ := r.typ() + declare(types.NewTypeName(pos, objPkg, objName, typ)) + + case pkgbits.ObjConst: + pos := r.pos() + typ := r.typ() + val := r.Value() + declare(types.NewConst(pos, objPkg, objName, typ, val)) + + case pkgbits.ObjFunc: + pos := r.pos() + tparams := r.typeParamNames() + sig := r.signature(nil, nil, tparams) + declare(types.NewFunc(pos, objPkg, objName, sig)) + + case pkgbits.ObjType: + pos := r.pos() + + obj := types.NewTypeName(pos, objPkg, objName, nil) + named := types.NewNamed(obj, nil, nil) + declare(obj) + + named.SetTypeParams(r.typeParamNames()) + + setUnderlying := func(underlying types.Type) { + // If the underlying type is an interface, we need to + // duplicate its methods so we can replace the receiver + // parameter's type (#49906). + if iface, ok := underlying.(*types.Interface); ok && iface.NumExplicitMethods() != 0 { + methods := make([]*types.Func, iface.NumExplicitMethods()) + for i := range methods { + fn := iface.ExplicitMethod(i) + sig := fn.Type().(*types.Signature) + + recv := types.NewVar(fn.Pos(), fn.Pkg(), "", named) + methods[i] = types.NewFunc(fn.Pos(), fn.Pkg(), fn.Name(), types.NewSignature(recv, sig.Params(), sig.Results(), sig.Variadic())) + } + + embeds := make([]types.Type, iface.NumEmbeddeds()) + for i := range embeds { + embeds[i] = iface.EmbeddedType(i) + } + + newIface := types.NewInterfaceType(methods, embeds) + r.p.ifaces = append(r.p.ifaces, newIface) + underlying = newIface + } + + named.SetUnderlying(underlying) + } + + // Since go.dev/cl/455279, we can assume rhs.Underlying() will + // always be non-nil. However, to temporarily support users of + // older snapshot releases, we continue to fallback to the old + // behavior for now. + // + // TODO(mdempsky): Remove fallback code and simplify after + // allowing time for snapshot users to upgrade. + rhs := r.typ() + if underlying := rhs.Underlying(); underlying != nil { + setUnderlying(underlying) + } else { + pk := r.p + pk.laterFor(named, func() { + // First be sure that the rhs is initialized, if it needs to be initialized. + delete(pk.laterFors, named) // prevent cycles + if i, ok := pk.laterFors[rhs]; ok { + f := pk.laterFns[i] + pk.laterFns[i] = func() {} // function is running now, so replace it with a no-op + f() // initialize RHS + } + setUnderlying(rhs.Underlying()) + }) + } + + for i, n := 0, r.Len(); i < n; i++ { + named.AddMethod(r.method()) + } + + case pkgbits.ObjVar: + pos := r.pos() + typ := r.typ() + declare(types.NewVar(pos, objPkg, objName, typ)) + } + } + + return objPkg, objName +} + +func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict { + + var dict readerDict + + { + r := pr.tempReader(pkgbits.RelocObjDict, idx, pkgbits.SyncObject1) + if implicits := r.Len(); implicits != 0 { + errorf("unexpected object with %v implicit type parameter(s)", implicits) + } + + dict.bounds = make([]typeInfo, r.Len()) + for i := range dict.bounds { + dict.bounds[i] = r.typInfo() + } + + dict.derived = make([]derivedInfo, r.Len()) + dict.derivedTypes = make([]types.Type, len(dict.derived)) + for i := range dict.derived { + dict.derived[i] = derivedInfo{r.Reloc(pkgbits.RelocType), r.Bool()} + } + + pr.retireReader(r) + } + // function references follow, but reader doesn't need those + + return &dict +} + +func (r *reader) typeParamNames() []*types.TypeParam { + r.Sync(pkgbits.SyncTypeParamNames) + + // Note: This code assumes it only processes objects without + // implement type parameters. This is currently fine, because + // reader is only used to read in exported declarations, which are + // always package scoped. + + if len(r.dict.bounds) == 0 { + return nil + } + + // Careful: Type parameter lists may have cycles. To allow for this, + // we construct the type parameter list in two passes: first we + // create all the TypeNames and TypeParams, then we construct and + // set the bound type. + + r.dict.tparams = make([]*types.TypeParam, len(r.dict.bounds)) + for i := range r.dict.bounds { + pos := r.pos() + pkg, name := r.localIdent() + + tname := types.NewTypeName(pos, pkg, name, nil) + r.dict.tparams[i] = types.NewTypeParam(tname, nil) + } + + typs := make([]types.Type, len(r.dict.bounds)) + for i, bound := range r.dict.bounds { + typs[i] = r.p.typIdx(bound, r.dict) + } + + // TODO(mdempsky): This is subtle, elaborate further. + // + // We have to save tparams outside of the closure, because + // typeParamNames() can be called multiple times with the same + // dictionary instance. + // + // Also, this needs to happen later to make sure SetUnderlying has + // been called. + // + // TODO(mdempsky): Is it safe to have a single "later" slice or do + // we need to have multiple passes? See comments on CL 386002 and + // go.dev/issue/52104. + tparams := r.dict.tparams + r.p.later(func() { + for i, typ := range typs { + tparams[i].SetConstraint(typ) + } + }) + + return r.dict.tparams +} + +func (r *reader) method() *types.Func { + r.Sync(pkgbits.SyncMethod) + pos := r.pos() + pkg, name := r.selector() + + rparams := r.typeParamNames() + sig := r.signature(r.param(), rparams, nil) + + _ = r.pos() // TODO(mdempsky): Remove; this is a hacker for linker.go. + return types.NewFunc(pos, pkg, name, sig) +} + +func (r *reader) qualifiedIdent() (*types.Package, string) { return r.ident(pkgbits.SyncSym) } +func (r *reader) localIdent() (*types.Package, string) { return r.ident(pkgbits.SyncLocalIdent) } +func (r *reader) selector() (*types.Package, string) { return r.ident(pkgbits.SyncSelector) } + +func (r *reader) ident(marker pkgbits.SyncMarker) (*types.Package, string) { + r.Sync(marker) + return r.pkg(), r.String() +} + +// pkgScope returns pkg.Scope(). +// If pkg is nil, it returns types.Universe instead. +// +// TODO(mdempsky): Remove after x/tools can depend on Go 1.19. +func pkgScope(pkg *types.Package) *types.Scope { + if pkg != nil { + return pkg.Scope() + } + return types.Universe +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go new file mode 100644 index 0000000000..d9950b1f0b --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go @@ -0,0 +1,30 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package packagesinternal exposes internal-only fields from go/packages. +package packagesinternal + +import ( + "golang.org/x/tools/internal/gocommand" +) + +var GetForTest = func(p interface{}) string { return "" } +var GetDepsErrors = func(p interface{}) []*PackageError { return nil } + +type PackageError struct { + ImportStack []string // shortest path from package named on command line to this one + Pos string // position of error (if present, file:line:col) + Err string // the error itself +} + +var GetGoCmdRunner = func(config interface{}) *gocommand.Runner { return nil } + +var SetGoCmdRunner = func(config interface{}, runner *gocommand.Runner) {} + +var TypecheckCgo int +var DepsErrors int // must be set as a LoadMode to call GetDepsErrors +var ForTest int // must be set as a LoadMode to call GetForTest + +var SetModFlag = func(config interface{}, value string) {} +var SetModFile = func(config interface{}, value string) {} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go new file mode 100644 index 0000000000..f0cabde96e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go @@ -0,0 +1,77 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +// A Code is an enum value that can be encoded into bitstreams. +// +// Code types are preferable for enum types, because they allow +// Decoder to detect desyncs. +type Code interface { + // Marker returns the SyncMarker for the Code's dynamic type. + Marker() SyncMarker + + // Value returns the Code's ordinal value. + Value() int +} + +// A CodeVal distinguishes among go/constant.Value encodings. +type CodeVal int + +func (c CodeVal) Marker() SyncMarker { return SyncVal } +func (c CodeVal) Value() int { return int(c) } + +// Note: These values are public and cannot be changed without +// updating the go/types importers. + +const ( + ValBool CodeVal = iota + ValString + ValInt64 + ValBigInt + ValBigRat + ValBigFloat +) + +// A CodeType distinguishes among go/types.Type encodings. +type CodeType int + +func (c CodeType) Marker() SyncMarker { return SyncType } +func (c CodeType) Value() int { return int(c) } + +// Note: These values are public and cannot be changed without +// updating the go/types importers. + +const ( + TypeBasic CodeType = iota + TypeNamed + TypePointer + TypeSlice + TypeArray + TypeChan + TypeMap + TypeSignature + TypeStruct + TypeInterface + TypeUnion + TypeTypeParam +) + +// A CodeObj distinguishes among go/types.Object encodings. +type CodeObj int + +func (c CodeObj) Marker() SyncMarker { return SyncCodeObj } +func (c CodeObj) Value() int { return int(c) } + +// Note: These values are public and cannot be changed without +// updating the go/types importers. + +const ( + ObjAlias CodeObj = iota + ObjConst + ObjType + ObjFunc + ObjVar + ObjStub +) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go new file mode 100644 index 0000000000..b92e8e6eb3 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go @@ -0,0 +1,517 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +import ( + "encoding/binary" + "errors" + "fmt" + "go/constant" + "go/token" + "io" + "math/big" + "os" + "runtime" + "strings" +) + +// A PkgDecoder provides methods for decoding a package's Unified IR +// export data. +type PkgDecoder struct { + // version is the file format version. + version uint32 + + // sync indicates whether the file uses sync markers. + sync bool + + // pkgPath is the package path for the package to be decoded. + // + // TODO(mdempsky): Remove; unneeded since CL 391014. + pkgPath string + + // elemData is the full data payload of the encoded package. + // Elements are densely and contiguously packed together. + // + // The last 8 bytes of elemData are the package fingerprint. + elemData string + + // elemEnds stores the byte-offset end positions of element + // bitstreams within elemData. + // + // For example, element I's bitstream data starts at elemEnds[I-1] + // (or 0, if I==0) and ends at elemEnds[I]. + // + // Note: elemEnds is indexed by absolute indices, not + // section-relative indices. + elemEnds []uint32 + + // elemEndsEnds stores the index-offset end positions of relocation + // sections within elemEnds. + // + // For example, section K's end positions start at elemEndsEnds[K-1] + // (or 0, if K==0) and end at elemEndsEnds[K]. + elemEndsEnds [numRelocs]uint32 + + scratchRelocEnt []RelocEnt +} + +// PkgPath returns the package path for the package +// +// TODO(mdempsky): Remove; unneeded since CL 391014. +func (pr *PkgDecoder) PkgPath() string { return pr.pkgPath } + +// SyncMarkers reports whether pr uses sync markers. +func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } + +// NewPkgDecoder returns a PkgDecoder initialized to read the Unified +// IR export data from input. pkgPath is the package path for the +// compilation unit that produced the export data. +// +// TODO(mdempsky): Remove pkgPath parameter; unneeded since CL 391014. +func NewPkgDecoder(pkgPath, input string) PkgDecoder { + pr := PkgDecoder{ + pkgPath: pkgPath, + } + + // TODO(mdempsky): Implement direct indexing of input string to + // avoid copying the position information. + + r := strings.NewReader(input) + + assert(binary.Read(r, binary.LittleEndian, &pr.version) == nil) + + switch pr.version { + default: + panic(fmt.Errorf("unsupported version: %v", pr.version)) + case 0: + // no flags + case 1: + var flags uint32 + assert(binary.Read(r, binary.LittleEndian, &flags) == nil) + pr.sync = flags&flagSyncMarkers != 0 + } + + assert(binary.Read(r, binary.LittleEndian, pr.elemEndsEnds[:]) == nil) + + pr.elemEnds = make([]uint32, pr.elemEndsEnds[len(pr.elemEndsEnds)-1]) + assert(binary.Read(r, binary.LittleEndian, pr.elemEnds[:]) == nil) + + pos, err := r.Seek(0, io.SeekCurrent) + assert(err == nil) + + pr.elemData = input[pos:] + assert(len(pr.elemData)-8 == int(pr.elemEnds[len(pr.elemEnds)-1])) + + return pr +} + +// NumElems returns the number of elements in section k. +func (pr *PkgDecoder) NumElems(k RelocKind) int { + count := int(pr.elemEndsEnds[k]) + if k > 0 { + count -= int(pr.elemEndsEnds[k-1]) + } + return count +} + +// TotalElems returns the total number of elements across all sections. +func (pr *PkgDecoder) TotalElems() int { + return len(pr.elemEnds) +} + +// Fingerprint returns the package fingerprint. +func (pr *PkgDecoder) Fingerprint() [8]byte { + var fp [8]byte + copy(fp[:], pr.elemData[len(pr.elemData)-8:]) + return fp +} + +// AbsIdx returns the absolute index for the given (section, index) +// pair. +func (pr *PkgDecoder) AbsIdx(k RelocKind, idx Index) int { + absIdx := int(idx) + if k > 0 { + absIdx += int(pr.elemEndsEnds[k-1]) + } + if absIdx >= int(pr.elemEndsEnds[k]) { + errorf("%v:%v is out of bounds; %v", k, idx, pr.elemEndsEnds) + } + return absIdx +} + +// DataIdx returns the raw element bitstream for the given (section, +// index) pair. +func (pr *PkgDecoder) DataIdx(k RelocKind, idx Index) string { + absIdx := pr.AbsIdx(k, idx) + + var start uint32 + if absIdx > 0 { + start = pr.elemEnds[absIdx-1] + } + end := pr.elemEnds[absIdx] + + return pr.elemData[start:end] +} + +// StringIdx returns the string value for the given string index. +func (pr *PkgDecoder) StringIdx(idx Index) string { + return pr.DataIdx(RelocString, idx) +} + +// NewDecoder returns a Decoder for the given (section, index) pair, +// and decodes the given SyncMarker from the element bitstream. +func (pr *PkgDecoder) NewDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { + r := pr.NewDecoderRaw(k, idx) + r.Sync(marker) + return r +} + +// TempDecoder returns a Decoder for the given (section, index) pair, +// and decodes the given SyncMarker from the element bitstream. +// If possible the Decoder should be RetireDecoder'd when it is no longer +// needed, this will avoid heap allocations. +func (pr *PkgDecoder) TempDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { + r := pr.TempDecoderRaw(k, idx) + r.Sync(marker) + return r +} + +func (pr *PkgDecoder) RetireDecoder(d *Decoder) { + pr.scratchRelocEnt = d.Relocs + d.Relocs = nil +} + +// NewDecoderRaw returns a Decoder for the given (section, index) pair. +// +// Most callers should use NewDecoder instead. +func (pr *PkgDecoder) NewDecoderRaw(k RelocKind, idx Index) Decoder { + r := Decoder{ + common: pr, + k: k, + Idx: idx, + } + + // TODO(mdempsky) r.data.Reset(...) after #44505 is resolved. + r.Data = *strings.NewReader(pr.DataIdx(k, idx)) + + r.Sync(SyncRelocs) + r.Relocs = make([]RelocEnt, r.Len()) + for i := range r.Relocs { + r.Sync(SyncReloc) + r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} + } + + return r +} + +func (pr *PkgDecoder) TempDecoderRaw(k RelocKind, idx Index) Decoder { + r := Decoder{ + common: pr, + k: k, + Idx: idx, + } + + r.Data.Reset(pr.DataIdx(k, idx)) + r.Sync(SyncRelocs) + l := r.Len() + if cap(pr.scratchRelocEnt) >= l { + r.Relocs = pr.scratchRelocEnt[:l] + pr.scratchRelocEnt = nil + } else { + r.Relocs = make([]RelocEnt, l) + } + for i := range r.Relocs { + r.Sync(SyncReloc) + r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} + } + + return r +} + +// A Decoder provides methods for decoding an individual element's +// bitstream data. +type Decoder struct { + common *PkgDecoder + + Relocs []RelocEnt + Data strings.Reader + + k RelocKind + Idx Index +} + +func (r *Decoder) checkErr(err error) { + if err != nil { + errorf("unexpected decoding error: %w", err) + } +} + +func (r *Decoder) rawUvarint() uint64 { + x, err := readUvarint(&r.Data) + r.checkErr(err) + return x +} + +// readUvarint is a type-specialized copy of encoding/binary.ReadUvarint. +// This avoids the interface conversion and thus has better escape properties, +// which flows up the stack. +func readUvarint(r *strings.Reader) (uint64, error) { + var x uint64 + var s uint + for i := 0; i < binary.MaxVarintLen64; i++ { + b, err := r.ReadByte() + if err != nil { + if i > 0 && err == io.EOF { + err = io.ErrUnexpectedEOF + } + return x, err + } + if b < 0x80 { + if i == binary.MaxVarintLen64-1 && b > 1 { + return x, overflow + } + return x | uint64(b)<> 1) + if ux&1 != 0 { + x = ^x + } + return x +} + +func (r *Decoder) rawReloc(k RelocKind, idx int) Index { + e := r.Relocs[idx] + assert(e.Kind == k) + return e.Idx +} + +// Sync decodes a sync marker from the element bitstream and asserts +// that it matches the expected marker. +// +// If r.common.sync is false, then Sync is a no-op. +func (r *Decoder) Sync(mWant SyncMarker) { + if !r.common.sync { + return + } + + pos, _ := r.Data.Seek(0, io.SeekCurrent) + mHave := SyncMarker(r.rawUvarint()) + writerPCs := make([]int, r.rawUvarint()) + for i := range writerPCs { + writerPCs[i] = int(r.rawUvarint()) + } + + if mHave == mWant { + return + } + + // There's some tension here between printing: + // + // (1) full file paths that tools can recognize (e.g., so emacs + // hyperlinks the "file:line" text for easy navigation), or + // + // (2) short file paths that are easier for humans to read (e.g., by + // omitting redundant or irrelevant details, so it's easier to + // focus on the useful bits that remain). + // + // The current formatting favors the former, as it seems more + // helpful in practice. But perhaps the formatting could be improved + // to better address both concerns. For example, use relative file + // paths if they would be shorter, or rewrite file paths to contain + // "$GOROOT" (like objabi.AbsFile does) if tools can be taught how + // to reliably expand that again. + + fmt.Printf("export data desync: package %q, section %v, index %v, offset %v\n", r.common.pkgPath, r.k, r.Idx, pos) + + fmt.Printf("\nfound %v, written at:\n", mHave) + if len(writerPCs) == 0 { + fmt.Printf("\t[stack trace unavailable; recompile package %q with -d=syncframes]\n", r.common.pkgPath) + } + for _, pc := range writerPCs { + fmt.Printf("\t%s\n", r.common.StringIdx(r.rawReloc(RelocString, pc))) + } + + fmt.Printf("\nexpected %v, reading at:\n", mWant) + var readerPCs [32]uintptr // TODO(mdempsky): Dynamically size? + n := runtime.Callers(2, readerPCs[:]) + for _, pc := range fmtFrames(readerPCs[:n]...) { + fmt.Printf("\t%s\n", pc) + } + + // We already printed a stack trace for the reader, so now we can + // simply exit. Printing a second one with panic or base.Fatalf + // would just be noise. + os.Exit(1) +} + +// Bool decodes and returns a bool value from the element bitstream. +func (r *Decoder) Bool() bool { + r.Sync(SyncBool) + x, err := r.Data.ReadByte() + r.checkErr(err) + assert(x < 2) + return x != 0 +} + +// Int64 decodes and returns an int64 value from the element bitstream. +func (r *Decoder) Int64() int64 { + r.Sync(SyncInt64) + return r.rawVarint() +} + +// Uint64 decodes and returns a uint64 value from the element bitstream. +func (r *Decoder) Uint64() uint64 { + r.Sync(SyncUint64) + return r.rawUvarint() +} + +// Len decodes and returns a non-negative int value from the element bitstream. +func (r *Decoder) Len() int { x := r.Uint64(); v := int(x); assert(uint64(v) == x); return v } + +// Int decodes and returns an int value from the element bitstream. +func (r *Decoder) Int() int { x := r.Int64(); v := int(x); assert(int64(v) == x); return v } + +// Uint decodes and returns a uint value from the element bitstream. +func (r *Decoder) Uint() uint { x := r.Uint64(); v := uint(x); assert(uint64(v) == x); return v } + +// Code decodes a Code value from the element bitstream and returns +// its ordinal value. It's the caller's responsibility to convert the +// result to an appropriate Code type. +// +// TODO(mdempsky): Ideally this method would have signature "Code[T +// Code] T" instead, but we don't allow generic methods and the +// compiler can't depend on generics yet anyway. +func (r *Decoder) Code(mark SyncMarker) int { + r.Sync(mark) + return r.Len() +} + +// Reloc decodes a relocation of expected section k from the element +// bitstream and returns an index to the referenced element. +func (r *Decoder) Reloc(k RelocKind) Index { + r.Sync(SyncUseReloc) + return r.rawReloc(k, r.Len()) +} + +// String decodes and returns a string value from the element +// bitstream. +func (r *Decoder) String() string { + r.Sync(SyncString) + return r.common.StringIdx(r.Reloc(RelocString)) +} + +// Strings decodes and returns a variable-length slice of strings from +// the element bitstream. +func (r *Decoder) Strings() []string { + res := make([]string, r.Len()) + for i := range res { + res[i] = r.String() + } + return res +} + +// Value decodes and returns a constant.Value from the element +// bitstream. +func (r *Decoder) Value() constant.Value { + r.Sync(SyncValue) + isComplex := r.Bool() + val := r.scalar() + if isComplex { + val = constant.BinaryOp(val, token.ADD, constant.MakeImag(r.scalar())) + } + return val +} + +func (r *Decoder) scalar() constant.Value { + switch tag := CodeVal(r.Code(SyncVal)); tag { + default: + panic(fmt.Errorf("unexpected scalar tag: %v", tag)) + + case ValBool: + return constant.MakeBool(r.Bool()) + case ValString: + return constant.MakeString(r.String()) + case ValInt64: + return constant.MakeInt64(r.Int64()) + case ValBigInt: + return constant.Make(r.bigInt()) + case ValBigRat: + num := r.bigInt() + denom := r.bigInt() + return constant.Make(new(big.Rat).SetFrac(num, denom)) + case ValBigFloat: + return constant.Make(r.bigFloat()) + } +} + +func (r *Decoder) bigInt() *big.Int { + v := new(big.Int).SetBytes([]byte(r.String())) + if r.Bool() { + v.Neg(v) + } + return v +} + +func (r *Decoder) bigFloat() *big.Float { + v := new(big.Float).SetPrec(512) + assert(v.UnmarshalText([]byte(r.String())) == nil) + return v +} + +// @@@ Helpers + +// TODO(mdempsky): These should probably be removed. I think they're a +// smell that the export data format is not yet quite right. + +// PeekPkgPath returns the package path for the specified package +// index. +func (pr *PkgDecoder) PeekPkgPath(idx Index) string { + var path string + { + r := pr.TempDecoder(RelocPkg, idx, SyncPkgDef) + path = r.String() + pr.RetireDecoder(&r) + } + if path == "" { + path = pr.pkgPath + } + return path +} + +// PeekObj returns the package path, object name, and CodeObj for the +// specified object index. +func (pr *PkgDecoder) PeekObj(idx Index) (string, string, CodeObj) { + var ridx Index + var name string + var rcode int + { + r := pr.TempDecoder(RelocName, idx, SyncObject1) + r.Sync(SyncSym) + r.Sync(SyncPkg) + ridx = r.Reloc(RelocPkg) + name = r.String() + rcode = r.Code(SyncCodeObj) + pr.RetireDecoder(&r) + } + + path := pr.PeekPkgPath(ridx) + assert(name != "") + + tag := CodeObj(rcode) + + return path, name, tag +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go new file mode 100644 index 0000000000..c8a2796b5e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go @@ -0,0 +1,32 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package pkgbits implements low-level coding abstractions for +// Unified IR's export data format. +// +// At a low-level, a package is a collection of bitstream elements. +// Each element has a "kind" and a dense, non-negative index. +// Elements can be randomly accessed given their kind and index. +// +// Individual elements are sequences of variable-length values (e.g., +// integers, booleans, strings, go/constant values, cross-references +// to other elements). Package pkgbits provides APIs for encoding and +// decoding these low-level values, but the details of mapping +// higher-level Go constructs into elements is left to higher-level +// abstractions. +// +// Elements may cross-reference each other with "relocations." For +// example, an element representing a pointer type has a relocation +// referring to the element type. +// +// Go constructs may be composed as a constellation of multiple +// elements. For example, a declared function may have one element to +// describe the object (e.g., its name, type, position), and a +// separate element to describe its function body. This allows readers +// some flexibility in efficiently seeking or re-reading data (e.g., +// inlining requires re-reading the function body for each inlined +// call, without needing to re-read the object-level details). +// +// This is a copy of internal/pkgbits in the Go implementation. +package pkgbits diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go new file mode 100644 index 0000000000..6482617a4f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go @@ -0,0 +1,383 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +import ( + "bytes" + "crypto/md5" + "encoding/binary" + "go/constant" + "io" + "math/big" + "runtime" +) + +// currentVersion is the current version number. +// +// - v0: initial prototype +// +// - v1: adds the flags uint32 word +const currentVersion uint32 = 1 + +// A PkgEncoder provides methods for encoding a package's Unified IR +// export data. +type PkgEncoder struct { + // elems holds the bitstream for previously encoded elements. + elems [numRelocs][]string + + // stringsIdx maps previously encoded strings to their index within + // the RelocString section, to allow deduplication. That is, + // elems[RelocString][stringsIdx[s]] == s (if present). + stringsIdx map[string]Index + + // syncFrames is the number of frames to write at each sync + // marker. A negative value means sync markers are omitted. + syncFrames int +} + +// SyncMarkers reports whether pw uses sync markers. +func (pw *PkgEncoder) SyncMarkers() bool { return pw.syncFrames >= 0 } + +// NewPkgEncoder returns an initialized PkgEncoder. +// +// syncFrames is the number of caller frames that should be serialized +// at Sync points. Serializing additional frames results in larger +// export data files, but can help diagnosing desync errors in +// higher-level Unified IR reader/writer code. If syncFrames is +// negative, then sync markers are omitted entirely. +func NewPkgEncoder(syncFrames int) PkgEncoder { + return PkgEncoder{ + stringsIdx: make(map[string]Index), + syncFrames: syncFrames, + } +} + +// DumpTo writes the package's encoded data to out0 and returns the +// package fingerprint. +func (pw *PkgEncoder) DumpTo(out0 io.Writer) (fingerprint [8]byte) { + h := md5.New() + out := io.MultiWriter(out0, h) + + writeUint32 := func(x uint32) { + assert(binary.Write(out, binary.LittleEndian, x) == nil) + } + + writeUint32(currentVersion) + + var flags uint32 + if pw.SyncMarkers() { + flags |= flagSyncMarkers + } + writeUint32(flags) + + // Write elemEndsEnds. + var sum uint32 + for _, elems := range &pw.elems { + sum += uint32(len(elems)) + writeUint32(sum) + } + + // Write elemEnds. + sum = 0 + for _, elems := range &pw.elems { + for _, elem := range elems { + sum += uint32(len(elem)) + writeUint32(sum) + } + } + + // Write elemData. + for _, elems := range &pw.elems { + for _, elem := range elems { + _, err := io.WriteString(out, elem) + assert(err == nil) + } + } + + // Write fingerprint. + copy(fingerprint[:], h.Sum(nil)) + _, err := out0.Write(fingerprint[:]) + assert(err == nil) + + return +} + +// StringIdx adds a string value to the strings section, if not +// already present, and returns its index. +func (pw *PkgEncoder) StringIdx(s string) Index { + if idx, ok := pw.stringsIdx[s]; ok { + assert(pw.elems[RelocString][idx] == s) + return idx + } + + idx := Index(len(pw.elems[RelocString])) + pw.elems[RelocString] = append(pw.elems[RelocString], s) + pw.stringsIdx[s] = idx + return idx +} + +// NewEncoder returns an Encoder for a new element within the given +// section, and encodes the given SyncMarker as the start of the +// element bitstream. +func (pw *PkgEncoder) NewEncoder(k RelocKind, marker SyncMarker) Encoder { + e := pw.NewEncoderRaw(k) + e.Sync(marker) + return e +} + +// NewEncoderRaw returns an Encoder for a new element within the given +// section. +// +// Most callers should use NewEncoder instead. +func (pw *PkgEncoder) NewEncoderRaw(k RelocKind) Encoder { + idx := Index(len(pw.elems[k])) + pw.elems[k] = append(pw.elems[k], "") // placeholder + + return Encoder{ + p: pw, + k: k, + Idx: idx, + } +} + +// An Encoder provides methods for encoding an individual element's +// bitstream data. +type Encoder struct { + p *PkgEncoder + + Relocs []RelocEnt + RelocMap map[RelocEnt]uint32 + Data bytes.Buffer // accumulated element bitstream data + + encodingRelocHeader bool + + k RelocKind + Idx Index // index within relocation section +} + +// Flush finalizes the element's bitstream and returns its Index. +func (w *Encoder) Flush() Index { + var sb bytes.Buffer // TODO(mdempsky): strings.Builder after #44505 is resolved + + // Backup the data so we write the relocations at the front. + var tmp bytes.Buffer + io.Copy(&tmp, &w.Data) + + // TODO(mdempsky): Consider writing these out separately so they're + // easier to strip, along with function bodies, so that we can prune + // down to just the data that's relevant to go/types. + if w.encodingRelocHeader { + panic("encodingRelocHeader already true; recursive flush?") + } + w.encodingRelocHeader = true + w.Sync(SyncRelocs) + w.Len(len(w.Relocs)) + for _, rEnt := range w.Relocs { + w.Sync(SyncReloc) + w.Len(int(rEnt.Kind)) + w.Len(int(rEnt.Idx)) + } + + io.Copy(&sb, &w.Data) + io.Copy(&sb, &tmp) + w.p.elems[w.k][w.Idx] = sb.String() + + return w.Idx +} + +func (w *Encoder) checkErr(err error) { + if err != nil { + errorf("unexpected encoding error: %v", err) + } +} + +func (w *Encoder) rawUvarint(x uint64) { + var buf [binary.MaxVarintLen64]byte + n := binary.PutUvarint(buf[:], x) + _, err := w.Data.Write(buf[:n]) + w.checkErr(err) +} + +func (w *Encoder) rawVarint(x int64) { + // Zig-zag encode. + ux := uint64(x) << 1 + if x < 0 { + ux = ^ux + } + + w.rawUvarint(ux) +} + +func (w *Encoder) rawReloc(r RelocKind, idx Index) int { + e := RelocEnt{r, idx} + if w.RelocMap != nil { + if i, ok := w.RelocMap[e]; ok { + return int(i) + } + } else { + w.RelocMap = make(map[RelocEnt]uint32) + } + + i := len(w.Relocs) + w.RelocMap[e] = uint32(i) + w.Relocs = append(w.Relocs, e) + return i +} + +func (w *Encoder) Sync(m SyncMarker) { + if !w.p.SyncMarkers() { + return + } + + // Writing out stack frame string references requires working + // relocations, but writing out the relocations themselves involves + // sync markers. To prevent infinite recursion, we simply trim the + // stack frame for sync markers within the relocation header. + var frames []string + if !w.encodingRelocHeader && w.p.syncFrames > 0 { + pcs := make([]uintptr, w.p.syncFrames) + n := runtime.Callers(2, pcs) + frames = fmtFrames(pcs[:n]...) + } + + // TODO(mdempsky): Save space by writing out stack frames as a + // linked list so we can share common stack frames. + w.rawUvarint(uint64(m)) + w.rawUvarint(uint64(len(frames))) + for _, frame := range frames { + w.rawUvarint(uint64(w.rawReloc(RelocString, w.p.StringIdx(frame)))) + } +} + +// Bool encodes and writes a bool value into the element bitstream, +// and then returns the bool value. +// +// For simple, 2-alternative encodings, the idiomatic way to call Bool +// is something like: +// +// if w.Bool(x != 0) { +// // alternative #1 +// } else { +// // alternative #2 +// } +// +// For multi-alternative encodings, use Code instead. +func (w *Encoder) Bool(b bool) bool { + w.Sync(SyncBool) + var x byte + if b { + x = 1 + } + err := w.Data.WriteByte(x) + w.checkErr(err) + return b +} + +// Int64 encodes and writes an int64 value into the element bitstream. +func (w *Encoder) Int64(x int64) { + w.Sync(SyncInt64) + w.rawVarint(x) +} + +// Uint64 encodes and writes a uint64 value into the element bitstream. +func (w *Encoder) Uint64(x uint64) { + w.Sync(SyncUint64) + w.rawUvarint(x) +} + +// Len encodes and writes a non-negative int value into the element bitstream. +func (w *Encoder) Len(x int) { assert(x >= 0); w.Uint64(uint64(x)) } + +// Int encodes and writes an int value into the element bitstream. +func (w *Encoder) Int(x int) { w.Int64(int64(x)) } + +// Uint encodes and writes a uint value into the element bitstream. +func (w *Encoder) Uint(x uint) { w.Uint64(uint64(x)) } + +// Reloc encodes and writes a relocation for the given (section, +// index) pair into the element bitstream. +// +// Note: Only the index is formally written into the element +// bitstream, so bitstream decoders must know from context which +// section an encoded relocation refers to. +func (w *Encoder) Reloc(r RelocKind, idx Index) { + w.Sync(SyncUseReloc) + w.Len(w.rawReloc(r, idx)) +} + +// Code encodes and writes a Code value into the element bitstream. +func (w *Encoder) Code(c Code) { + w.Sync(c.Marker()) + w.Len(c.Value()) +} + +// String encodes and writes a string value into the element +// bitstream. +// +// Internally, strings are deduplicated by adding them to the strings +// section (if not already present), and then writing a relocation +// into the element bitstream. +func (w *Encoder) String(s string) { + w.Sync(SyncString) + w.Reloc(RelocString, w.p.StringIdx(s)) +} + +// Strings encodes and writes a variable-length slice of strings into +// the element bitstream. +func (w *Encoder) Strings(ss []string) { + w.Len(len(ss)) + for _, s := range ss { + w.String(s) + } +} + +// Value encodes and writes a constant.Value into the element +// bitstream. +func (w *Encoder) Value(val constant.Value) { + w.Sync(SyncValue) + if w.Bool(val.Kind() == constant.Complex) { + w.scalar(constant.Real(val)) + w.scalar(constant.Imag(val)) + } else { + w.scalar(val) + } +} + +func (w *Encoder) scalar(val constant.Value) { + switch v := constant.Val(val).(type) { + default: + errorf("unhandled %v (%v)", val, val.Kind()) + case bool: + w.Code(ValBool) + w.Bool(v) + case string: + w.Code(ValString) + w.String(v) + case int64: + w.Code(ValInt64) + w.Int64(v) + case *big.Int: + w.Code(ValBigInt) + w.bigInt(v) + case *big.Rat: + w.Code(ValBigRat) + w.bigInt(v.Num()) + w.bigInt(v.Denom()) + case *big.Float: + w.Code(ValBigFloat) + w.bigFloat(v) + } +} + +func (w *Encoder) bigInt(v *big.Int) { + b := v.Bytes() + w.String(string(b)) // TODO: More efficient encoding. + w.Bool(v.Sign() < 0) +} + +func (w *Encoder) bigFloat(v *big.Float) { + b := v.Append(nil, 'p', -1) + w.String(string(b)) // TODO: More efficient encoding. +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go new file mode 100644 index 0000000000..654222745f --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go @@ -0,0 +1,9 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +const ( + flagSyncMarkers = 1 << iota // file format contains sync markers +) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go new file mode 100644 index 0000000000..5294f6a63e --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go @@ -0,0 +1,21 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build !go1.7 +// +build !go1.7 + +// TODO(mdempsky): Remove after #44505 is resolved + +package pkgbits + +import "runtime" + +func walkFrames(pcs []uintptr, visit frameVisitor) { + for _, pc := range pcs { + fn := runtime.FuncForPC(pc) + file, line := fn.FileLine(pc) + + visit(file, line, fn.Name(), pc-fn.Entry()) + } +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go new file mode 100644 index 0000000000..2324ae7adf --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go @@ -0,0 +1,28 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.7 +// +build go1.7 + +package pkgbits + +import "runtime" + +// walkFrames calls visit for each call frame represented by pcs. +// +// pcs should be a slice of PCs, as returned by runtime.Callers. +func walkFrames(pcs []uintptr, visit frameVisitor) { + if len(pcs) == 0 { + return + } + + frames := runtime.CallersFrames(pcs) + for { + frame, more := frames.Next() + visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry) + if !more { + return + } + } +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go new file mode 100644 index 0000000000..fcdfb97ca9 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go @@ -0,0 +1,42 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +// A RelocKind indicates a particular section within a unified IR export. +type RelocKind int32 + +// An Index represents a bitstream element index within a particular +// section. +type Index int32 + +// A relocEnt (relocation entry) is an entry in an element's local +// reference table. +// +// TODO(mdempsky): Rename this too. +type RelocEnt struct { + Kind RelocKind + Idx Index +} + +// Reserved indices within the meta relocation section. +const ( + PublicRootIdx Index = 0 + PrivateRootIdx Index = 1 +) + +const ( + RelocString RelocKind = iota + RelocMeta + RelocPosBase + RelocPkg + RelocName + RelocType + RelocObj + RelocObjExt + RelocObjDict + RelocBody + + numRelocs = iota +) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go new file mode 100644 index 0000000000..ad26d3b28c --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go @@ -0,0 +1,17 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +import "fmt" + +func assert(b bool) { + if !b { + panic("assertion failed") + } +} + +func errorf(format string, args ...interface{}) { + panic(fmt.Errorf(format, args...)) +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go new file mode 100644 index 0000000000..5bd51ef717 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go @@ -0,0 +1,113 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package pkgbits + +import ( + "fmt" + "strings" +) + +// fmtFrames formats a backtrace for reporting reader/writer desyncs. +func fmtFrames(pcs ...uintptr) []string { + res := make([]string, 0, len(pcs)) + walkFrames(pcs, func(file string, line int, name string, offset uintptr) { + // Trim package from function name. It's just redundant noise. + name = strings.TrimPrefix(name, "cmd/compile/internal/noder.") + + res = append(res, fmt.Sprintf("%s:%v: %s +0x%v", file, line, name, offset)) + }) + return res +} + +type frameVisitor func(file string, line int, name string, offset uintptr) + +// SyncMarker is an enum type that represents markers that may be +// written to export data to ensure the reader and writer stay +// synchronized. +type SyncMarker int + +//go:generate stringer -type=SyncMarker -trimprefix=Sync + +const ( + _ SyncMarker = iota + + // Public markers (known to go/types importers). + + // Low-level coding markers. + SyncEOF + SyncBool + SyncInt64 + SyncUint64 + SyncString + SyncValue + SyncVal + SyncRelocs + SyncReloc + SyncUseReloc + + // Higher-level object and type markers. + SyncPublic + SyncPos + SyncPosBase + SyncObject + SyncObject1 + SyncPkg + SyncPkgDef + SyncMethod + SyncType + SyncTypeIdx + SyncTypeParamNames + SyncSignature + SyncParams + SyncParam + SyncCodeObj + SyncSym + SyncLocalIdent + SyncSelector + + // Private markers (only known to cmd/compile). + SyncPrivate + + SyncFuncExt + SyncVarExt + SyncTypeExt + SyncPragma + + SyncExprList + SyncExprs + SyncExpr + SyncExprType + SyncAssign + SyncOp + SyncFuncLit + SyncCompLit + + SyncDecl + SyncFuncBody + SyncOpenScope + SyncCloseScope + SyncCloseAnotherScope + SyncDeclNames + SyncDeclName + + SyncStmts + SyncBlockStmt + SyncIfStmt + SyncForStmt + SyncSwitchStmt + SyncRangeStmt + SyncCaseClause + SyncCommClause + SyncSelectStmt + SyncDecls + SyncLabeledStmt + SyncUseObjLocal + SyncAddLocal + SyncLinkname + SyncStmt1 + SyncStmtsEnd + SyncLabel + SyncOptLabel +) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go new file mode 100644 index 0000000000..4a5b0ca5f2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go @@ -0,0 +1,89 @@ +// Code generated by "stringer -type=SyncMarker -trimprefix=Sync"; DO NOT EDIT. + +package pkgbits + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[SyncEOF-1] + _ = x[SyncBool-2] + _ = x[SyncInt64-3] + _ = x[SyncUint64-4] + _ = x[SyncString-5] + _ = x[SyncValue-6] + _ = x[SyncVal-7] + _ = x[SyncRelocs-8] + _ = x[SyncReloc-9] + _ = x[SyncUseReloc-10] + _ = x[SyncPublic-11] + _ = x[SyncPos-12] + _ = x[SyncPosBase-13] + _ = x[SyncObject-14] + _ = x[SyncObject1-15] + _ = x[SyncPkg-16] + _ = x[SyncPkgDef-17] + _ = x[SyncMethod-18] + _ = x[SyncType-19] + _ = x[SyncTypeIdx-20] + _ = x[SyncTypeParamNames-21] + _ = x[SyncSignature-22] + _ = x[SyncParams-23] + _ = x[SyncParam-24] + _ = x[SyncCodeObj-25] + _ = x[SyncSym-26] + _ = x[SyncLocalIdent-27] + _ = x[SyncSelector-28] + _ = x[SyncPrivate-29] + _ = x[SyncFuncExt-30] + _ = x[SyncVarExt-31] + _ = x[SyncTypeExt-32] + _ = x[SyncPragma-33] + _ = x[SyncExprList-34] + _ = x[SyncExprs-35] + _ = x[SyncExpr-36] + _ = x[SyncExprType-37] + _ = x[SyncAssign-38] + _ = x[SyncOp-39] + _ = x[SyncFuncLit-40] + _ = x[SyncCompLit-41] + _ = x[SyncDecl-42] + _ = x[SyncFuncBody-43] + _ = x[SyncOpenScope-44] + _ = x[SyncCloseScope-45] + _ = x[SyncCloseAnotherScope-46] + _ = x[SyncDeclNames-47] + _ = x[SyncDeclName-48] + _ = x[SyncStmts-49] + _ = x[SyncBlockStmt-50] + _ = x[SyncIfStmt-51] + _ = x[SyncForStmt-52] + _ = x[SyncSwitchStmt-53] + _ = x[SyncRangeStmt-54] + _ = x[SyncCaseClause-55] + _ = x[SyncCommClause-56] + _ = x[SyncSelectStmt-57] + _ = x[SyncDecls-58] + _ = x[SyncLabeledStmt-59] + _ = x[SyncUseObjLocal-60] + _ = x[SyncAddLocal-61] + _ = x[SyncLinkname-62] + _ = x[SyncStmt1-63] + _ = x[SyncStmtsEnd-64] + _ = x[SyncLabel-65] + _ = x[SyncOptLabel-66] +} + +const _SyncMarker_name = "EOFBoolInt64Uint64StringValueValRelocsRelocUseRelocPublicPosPosBaseObjectObject1PkgPkgDefMethodTypeTypeIdxTypeParamNamesSignatureParamsParamCodeObjSymLocalIdentSelectorPrivateFuncExtVarExtTypeExtPragmaExprListExprsExprExprTypeAssignOpFuncLitCompLitDeclFuncBodyOpenScopeCloseScopeCloseAnotherScopeDeclNamesDeclNameStmtsBlockStmtIfStmtForStmtSwitchStmtRangeStmtCaseClauseCommClauseSelectStmtDeclsLabeledStmtUseObjLocalAddLocalLinknameStmt1StmtsEndLabelOptLabel" + +var _SyncMarker_index = [...]uint16{0, 3, 7, 12, 18, 24, 29, 32, 38, 43, 51, 57, 60, 67, 73, 80, 83, 89, 95, 99, 106, 120, 129, 135, 140, 147, 150, 160, 168, 175, 182, 188, 195, 201, 209, 214, 218, 226, 232, 234, 241, 248, 252, 260, 269, 279, 296, 305, 313, 318, 327, 333, 340, 350, 359, 369, 379, 389, 394, 405, 416, 424, 432, 437, 445, 450, 458} + +func (i SyncMarker) String() string { + i -= 1 + if i < 0 || i >= SyncMarker(len(_SyncMarker_index)-1) { + return "SyncMarker(" + strconv.FormatInt(int64(i+1), 10) + ")" + } + return _SyncMarker_name[_SyncMarker_index[i]:_SyncMarker_index[i+1]] +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go b/ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go new file mode 100644 index 0000000000..a3fb2d4f29 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go @@ -0,0 +1,59 @@ +// Copyright 2023 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// package tokeninternal provides access to some internal features of the token +// package. +package tokeninternal + +import ( + "go/token" + "sync" + "unsafe" +) + +// GetLines returns the table of line-start offsets from a token.File. +func GetLines(file *token.File) []int { + // token.File has a Lines method on Go 1.21 and later. + if file, ok := (interface{})(file).(interface{ Lines() []int }); ok { + return file.Lines() + } + + // This declaration must match that of token.File. + // This creates a risk of dependency skew. + // For now we check that the size of the two + // declarations is the same, on the (fragile) assumption + // that future changes would add fields. + type tokenFile119 struct { + _ string + _ int + _ int + mu sync.Mutex // we're not complete monsters + lines []int + _ []struct{} + } + type tokenFile118 struct { + _ *token.FileSet // deleted in go1.19 + tokenFile119 + } + + type uP = unsafe.Pointer + switch unsafe.Sizeof(*file) { + case unsafe.Sizeof(tokenFile118{}): + var ptr *tokenFile118 + *(*uP)(uP(&ptr)) = uP(file) + ptr.mu.Lock() + defer ptr.mu.Unlock() + return ptr.lines + + case unsafe.Sizeof(tokenFile119{}): + var ptr *tokenFile119 + *(*uP)(uP(&ptr)) = uP(file) + ptr.mu.Lock() + defer ptr.mu.Unlock() + return ptr.lines + + default: + panic("unexpected token.File size") + } +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go new file mode 100644 index 0000000000..07484073a5 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go @@ -0,0 +1,1560 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +//go:generate stringer -type=ErrorCode + +type ErrorCode int + +// This file defines the error codes that can be produced during type-checking. +// Collectively, these codes provide an identifier that may be used to +// implement special handling for certain types of errors. +// +// Error codes should be fine-grained enough that the exact nature of the error +// can be easily determined, but coarse enough that they are not an +// implementation detail of the type checking algorithm. As a rule-of-thumb, +// errors should be considered equivalent if there is a theoretical refactoring +// of the type checker in which they are emitted in exactly one place. For +// example, the type checker emits different error messages for "too many +// arguments" and "too few arguments", but one can imagine an alternative type +// checker where this check instead just emits a single "wrong number of +// arguments", so these errors should have the same code. +// +// Error code names should be as brief as possible while retaining accuracy and +// distinctiveness. In most cases names should start with an adjective +// describing the nature of the error (e.g. "invalid", "unused", "misplaced"), +// and end with a noun identifying the relevant language object. For example, +// "DuplicateDecl" or "InvalidSliceExpr". For brevity, naming follows the +// convention that "bad" implies a problem with syntax, and "invalid" implies a +// problem with types. + +const ( + // InvalidSyntaxTree occurs if an invalid syntax tree is provided + // to the type checker. It should never happen. + InvalidSyntaxTree ErrorCode = -1 +) + +const ( + _ ErrorCode = iota + + // Test is reserved for errors that only apply while in self-test mode. + Test + + /* package names */ + + // BlankPkgName occurs when a package name is the blank identifier "_". + // + // Per the spec: + // "The PackageName must not be the blank identifier." + BlankPkgName + + // MismatchedPkgName occurs when a file's package name doesn't match the + // package name already established by other files. + MismatchedPkgName + + // InvalidPkgUse occurs when a package identifier is used outside of a + // selector expression. + // + // Example: + // import "fmt" + // + // var _ = fmt + InvalidPkgUse + + /* imports */ + + // BadImportPath occurs when an import path is not valid. + BadImportPath + + // BrokenImport occurs when importing a package fails. + // + // Example: + // import "amissingpackage" + BrokenImport + + // ImportCRenamed occurs when the special import "C" is renamed. "C" is a + // pseudo-package, and must not be renamed. + // + // Example: + // import _ "C" + ImportCRenamed + + // UnusedImport occurs when an import is unused. + // + // Example: + // import "fmt" + // + // func main() {} + UnusedImport + + /* initialization */ + + // InvalidInitCycle occurs when an invalid cycle is detected within the + // initialization graph. + // + // Example: + // var x int = f() + // + // func f() int { return x } + InvalidInitCycle + + /* decls */ + + // DuplicateDecl occurs when an identifier is declared multiple times. + // + // Example: + // var x = 1 + // var x = 2 + DuplicateDecl + + // InvalidDeclCycle occurs when a declaration cycle is not valid. + // + // Example: + // import "unsafe" + // + // type T struct { + // a [n]int + // } + // + // var n = unsafe.Sizeof(T{}) + InvalidDeclCycle + + // InvalidTypeCycle occurs when a cycle in type definitions results in a + // type that is not well-defined. + // + // Example: + // import "unsafe" + // + // type T [unsafe.Sizeof(T{})]int + InvalidTypeCycle + + /* decls > const */ + + // InvalidConstInit occurs when a const declaration has a non-constant + // initializer. + // + // Example: + // var x int + // const _ = x + InvalidConstInit + + // InvalidConstVal occurs when a const value cannot be converted to its + // target type. + // + // TODO(findleyr): this error code and example are not very clear. Consider + // removing it. + // + // Example: + // const _ = 1 << "hello" + InvalidConstVal + + // InvalidConstType occurs when the underlying type in a const declaration + // is not a valid constant type. + // + // Example: + // const c *int = 4 + InvalidConstType + + /* decls > var (+ other variable assignment codes) */ + + // UntypedNilUse occurs when the predeclared (untyped) value nil is used to + // initialize a variable declared without an explicit type. + // + // Example: + // var x = nil + UntypedNilUse + + // WrongAssignCount occurs when the number of values on the right-hand side + // of an assignment or or initialization expression does not match the number + // of variables on the left-hand side. + // + // Example: + // var x = 1, 2 + WrongAssignCount + + // UnassignableOperand occurs when the left-hand side of an assignment is + // not assignable. + // + // Example: + // func f() { + // const c = 1 + // c = 2 + // } + UnassignableOperand + + // NoNewVar occurs when a short variable declaration (':=') does not declare + // new variables. + // + // Example: + // func f() { + // x := 1 + // x := 2 + // } + NoNewVar + + // MultiValAssignOp occurs when an assignment operation (+=, *=, etc) does + // not have single-valued left-hand or right-hand side. + // + // Per the spec: + // "In assignment operations, both the left- and right-hand expression lists + // must contain exactly one single-valued expression" + // + // Example: + // func f() int { + // x, y := 1, 2 + // x, y += 1 + // return x + y + // } + MultiValAssignOp + + // InvalidIfaceAssign occurs when a value of type T is used as an + // interface, but T does not implement a method of the expected interface. + // + // Example: + // type I interface { + // f() + // } + // + // type T int + // + // var x I = T(1) + InvalidIfaceAssign + + // InvalidChanAssign occurs when a chan assignment is invalid. + // + // Per the spec, a value x is assignable to a channel type T if: + // "x is a bidirectional channel value, T is a channel type, x's type V and + // T have identical element types, and at least one of V or T is not a + // defined type." + // + // Example: + // type T1 chan int + // type T2 chan int + // + // var x T1 + // // Invalid assignment because both types are named + // var _ T2 = x + InvalidChanAssign + + // IncompatibleAssign occurs when the type of the right-hand side expression + // in an assignment cannot be assigned to the type of the variable being + // assigned. + // + // Example: + // var x []int + // var _ int = x + IncompatibleAssign + + // UnaddressableFieldAssign occurs when trying to assign to a struct field + // in a map value. + // + // Example: + // func f() { + // m := make(map[string]struct{i int}) + // m["foo"].i = 42 + // } + UnaddressableFieldAssign + + /* decls > type (+ other type expression codes) */ + + // NotAType occurs when the identifier used as the underlying type in a type + // declaration or the right-hand side of a type alias does not denote a type. + // + // Example: + // var S = 2 + // + // type T S + NotAType + + // InvalidArrayLen occurs when an array length is not a constant value. + // + // Example: + // var n = 3 + // var _ = [n]int{} + InvalidArrayLen + + // BlankIfaceMethod occurs when a method name is '_'. + // + // Per the spec: + // "The name of each explicitly specified method must be unique and not + // blank." + // + // Example: + // type T interface { + // _(int) + // } + BlankIfaceMethod + + // IncomparableMapKey occurs when a map key type does not support the == and + // != operators. + // + // Per the spec: + // "The comparison operators == and != must be fully defined for operands of + // the key type; thus the key type must not be a function, map, or slice." + // + // Example: + // var x map[T]int + // + // type T []int + IncomparableMapKey + + // InvalidIfaceEmbed occurs when a non-interface type is embedded in an + // interface. + // + // Example: + // type T struct {} + // + // func (T) m() + // + // type I interface { + // T + // } + InvalidIfaceEmbed + + // InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, + // and T itself is itself a pointer, an unsafe.Pointer, or an interface. + // + // Per the spec: + // "An embedded field must be specified as a type name T or as a pointer to + // a non-interface type name *T, and T itself may not be a pointer type." + // + // Example: + // type T *int + // + // type S struct { + // *T + // } + InvalidPtrEmbed + + /* decls > func and method */ + + // BadRecv occurs when a method declaration does not have exactly one + // receiver parameter. + // + // Example: + // func () _() {} + BadRecv + + // InvalidRecv occurs when a receiver type expression is not of the form T + // or *T, or T is a pointer type. + // + // Example: + // type T struct {} + // + // func (**T) m() {} + InvalidRecv + + // DuplicateFieldAndMethod occurs when an identifier appears as both a field + // and method name. + // + // Example: + // type T struct { + // m int + // } + // + // func (T) m() {} + DuplicateFieldAndMethod + + // DuplicateMethod occurs when two methods on the same receiver type have + // the same name. + // + // Example: + // type T struct {} + // func (T) m() {} + // func (T) m(i int) int { return i } + DuplicateMethod + + /* decls > special */ + + // InvalidBlank occurs when a blank identifier is used as a value or type. + // + // Per the spec: + // "The blank identifier may appear as an operand only on the left-hand side + // of an assignment." + // + // Example: + // var x = _ + InvalidBlank + + // InvalidIota occurs when the predeclared identifier iota is used outside + // of a constant declaration. + // + // Example: + // var x = iota + InvalidIota + + // MissingInitBody occurs when an init function is missing its body. + // + // Example: + // func init() + MissingInitBody + + // InvalidInitSig occurs when an init function declares parameters or + // results. + // + // Example: + // func init() int { return 1 } + InvalidInitSig + + // InvalidInitDecl occurs when init is declared as anything other than a + // function. + // + // Example: + // var init = 1 + InvalidInitDecl + + // InvalidMainDecl occurs when main is declared as anything other than a + // function, in a main package. + InvalidMainDecl + + /* exprs */ + + // TooManyValues occurs when a function returns too many values for the + // expression context in which it is used. + // + // Example: + // func ReturnTwo() (int, int) { + // return 1, 2 + // } + // + // var x = ReturnTwo() + TooManyValues + + // NotAnExpr occurs when a type expression is used where a value expression + // is expected. + // + // Example: + // type T struct {} + // + // func f() { + // T + // } + NotAnExpr + + /* exprs > const */ + + // TruncatedFloat occurs when a float constant is truncated to an integer + // value. + // + // Example: + // var _ int = 98.6 + TruncatedFloat + + // NumericOverflow occurs when a numeric constant overflows its target type. + // + // Example: + // var x int8 = 1000 + NumericOverflow + + /* exprs > operation */ + + // UndefinedOp occurs when an operator is not defined for the type(s) used + // in an operation. + // + // Example: + // var c = "a" - "b" + UndefinedOp + + // MismatchedTypes occurs when operand types are incompatible in a binary + // operation. + // + // Example: + // var a = "hello" + // var b = 1 + // var c = a - b + MismatchedTypes + + // DivByZero occurs when a division operation is provable at compile + // time to be a division by zero. + // + // Example: + // const divisor = 0 + // var x int = 1/divisor + DivByZero + + // NonNumericIncDec occurs when an increment or decrement operator is + // applied to a non-numeric value. + // + // Example: + // func f() { + // var c = "c" + // c++ + // } + NonNumericIncDec + + /* exprs > ptr */ + + // UnaddressableOperand occurs when the & operator is applied to an + // unaddressable expression. + // + // Example: + // var x = &1 + UnaddressableOperand + + // InvalidIndirection occurs when a non-pointer value is indirected via the + // '*' operator. + // + // Example: + // var x int + // var y = *x + InvalidIndirection + + /* exprs > [] */ + + // NonIndexableOperand occurs when an index operation is applied to a value + // that cannot be indexed. + // + // Example: + // var x = 1 + // var y = x[1] + NonIndexableOperand + + // InvalidIndex occurs when an index argument is not of integer type, + // negative, or out-of-bounds. + // + // Example: + // var s = [...]int{1,2,3} + // var x = s[5] + // + // Example: + // var s = []int{1,2,3} + // var _ = s[-1] + // + // Example: + // var s = []int{1,2,3} + // var i string + // var _ = s[i] + InvalidIndex + + // SwappedSliceIndices occurs when constant indices in a slice expression + // are decreasing in value. + // + // Example: + // var _ = []int{1,2,3}[2:1] + SwappedSliceIndices + + /* operators > slice */ + + // NonSliceableOperand occurs when a slice operation is applied to a value + // whose type is not sliceable, or is unaddressable. + // + // Example: + // var x = [...]int{1, 2, 3}[:1] + // + // Example: + // var x = 1 + // var y = 1[:1] + NonSliceableOperand + + // InvalidSliceExpr occurs when a three-index slice expression (a[x:y:z]) is + // applied to a string. + // + // Example: + // var s = "hello" + // var x = s[1:2:3] + InvalidSliceExpr + + /* exprs > shift */ + + // InvalidShiftCount occurs when the right-hand side of a shift operation is + // either non-integer, negative, or too large. + // + // Example: + // var ( + // x string + // y int = 1 << x + // ) + InvalidShiftCount + + // InvalidShiftOperand occurs when the shifted operand is not an integer. + // + // Example: + // var s = "hello" + // var x = s << 2 + InvalidShiftOperand + + /* exprs > chan */ + + // InvalidReceive occurs when there is a channel receive from a value that + // is either not a channel, or is a send-only channel. + // + // Example: + // func f() { + // var x = 1 + // <-x + // } + InvalidReceive + + // InvalidSend occurs when there is a channel send to a value that is not a + // channel, or is a receive-only channel. + // + // Example: + // func f() { + // var x = 1 + // x <- "hello!" + // } + InvalidSend + + /* exprs > literal */ + + // DuplicateLitKey occurs when an index is duplicated in a slice, array, or + // map literal. + // + // Example: + // var _ = []int{0:1, 0:2} + // + // Example: + // var _ = map[string]int{"a": 1, "a": 2} + DuplicateLitKey + + // MissingLitKey occurs when a map literal is missing a key expression. + // + // Example: + // var _ = map[string]int{1} + MissingLitKey + + // InvalidLitIndex occurs when the key in a key-value element of a slice or + // array literal is not an integer constant. + // + // Example: + // var i = 0 + // var x = []string{i: "world"} + InvalidLitIndex + + // OversizeArrayLit occurs when an array literal exceeds its length. + // + // Example: + // var _ = [2]int{1,2,3} + OversizeArrayLit + + // MixedStructLit occurs when a struct literal contains a mix of positional + // and named elements. + // + // Example: + // var _ = struct{i, j int}{i: 1, 2} + MixedStructLit + + // InvalidStructLit occurs when a positional struct literal has an incorrect + // number of values. + // + // Example: + // var _ = struct{i, j int}{1,2,3} + InvalidStructLit + + // MissingLitField occurs when a struct literal refers to a field that does + // not exist on the struct type. + // + // Example: + // var _ = struct{i int}{j: 2} + MissingLitField + + // DuplicateLitField occurs when a struct literal contains duplicated + // fields. + // + // Example: + // var _ = struct{i int}{i: 1, i: 2} + DuplicateLitField + + // UnexportedLitField occurs when a positional struct literal implicitly + // assigns an unexported field of an imported type. + UnexportedLitField + + // InvalidLitField occurs when a field name is not a valid identifier. + // + // Example: + // var _ = struct{i int}{1: 1} + InvalidLitField + + // UntypedLit occurs when a composite literal omits a required type + // identifier. + // + // Example: + // type outer struct{ + // inner struct { i int } + // } + // + // var _ = outer{inner: {1}} + UntypedLit + + // InvalidLit occurs when a composite literal expression does not match its + // type. + // + // Example: + // type P *struct{ + // x int + // } + // var _ = P {} + InvalidLit + + /* exprs > selector */ + + // AmbiguousSelector occurs when a selector is ambiguous. + // + // Example: + // type E1 struct { i int } + // type E2 struct { i int } + // type T struct { E1; E2 } + // + // var x T + // var _ = x.i + AmbiguousSelector + + // UndeclaredImportedName occurs when a package-qualified identifier is + // undeclared by the imported package. + // + // Example: + // import "go/types" + // + // var _ = types.NotAnActualIdentifier + UndeclaredImportedName + + // UnexportedName occurs when a selector refers to an unexported identifier + // of an imported package. + // + // Example: + // import "reflect" + // + // type _ reflect.flag + UnexportedName + + // UndeclaredName occurs when an identifier is not declared in the current + // scope. + // + // Example: + // var x T + UndeclaredName + + // MissingFieldOrMethod occurs when a selector references a field or method + // that does not exist. + // + // Example: + // type T struct {} + // + // var x = T{}.f + MissingFieldOrMethod + + /* exprs > ... */ + + // BadDotDotDotSyntax occurs when a "..." occurs in a context where it is + // not valid. + // + // Example: + // var _ = map[int][...]int{0: {}} + BadDotDotDotSyntax + + // NonVariadicDotDotDot occurs when a "..." is used on the final argument to + // a non-variadic function. + // + // Example: + // func printArgs(s []string) { + // for _, a := range s { + // println(a) + // } + // } + // + // func f() { + // s := []string{"a", "b", "c"} + // printArgs(s...) + // } + NonVariadicDotDotDot + + // MisplacedDotDotDot occurs when a "..." is used somewhere other than the + // final argument to a function call. + // + // Example: + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func f() { + // a := []int{1,2,3} + // printArgs(0, a...) + // } + MisplacedDotDotDot + + // InvalidDotDotDotOperand occurs when a "..." operator is applied to a + // single-valued operand. + // + // Example: + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func f() { + // a := 1 + // printArgs(a...) + // } + // + // Example: + // func args() (int, int) { + // return 1, 2 + // } + // + // func printArgs(args ...int) { + // for _, a := range args { + // println(a) + // } + // } + // + // func g() { + // printArgs(args()...) + // } + InvalidDotDotDotOperand + + // InvalidDotDotDot occurs when a "..." is used in a non-variadic built-in + // function. + // + // Example: + // var s = []int{1, 2, 3} + // var l = len(s...) + InvalidDotDotDot + + /* exprs > built-in */ + + // UncalledBuiltin occurs when a built-in function is used as a + // function-valued expression, instead of being called. + // + // Per the spec: + // "The built-in functions do not have standard Go types, so they can only + // appear in call expressions; they cannot be used as function values." + // + // Example: + // var _ = copy + UncalledBuiltin + + // InvalidAppend occurs when append is called with a first argument that is + // not a slice. + // + // Example: + // var _ = append(1, 2) + InvalidAppend + + // InvalidCap occurs when an argument to the cap built-in function is not of + // supported type. + // + // See https://golang.org/ref/spec#Lengthand_capacity for information on + // which underlying types are supported as arguments to cap and len. + // + // Example: + // var s = 2 + // var x = cap(s) + InvalidCap + + // InvalidClose occurs when close(...) is called with an argument that is + // not of channel type, or that is a receive-only channel. + // + // Example: + // func f() { + // var x int + // close(x) + // } + InvalidClose + + // InvalidCopy occurs when the arguments are not of slice type or do not + // have compatible type. + // + // See https://golang.org/ref/spec#Appendingand_copying_slices for more + // information on the type requirements for the copy built-in. + // + // Example: + // func f() { + // var x []int + // y := []int64{1,2,3} + // copy(x, y) + // } + InvalidCopy + + // InvalidComplex occurs when the complex built-in function is called with + // arguments with incompatible types. + // + // Example: + // var _ = complex(float32(1), float64(2)) + InvalidComplex + + // InvalidDelete occurs when the delete built-in function is called with a + // first argument that is not a map. + // + // Example: + // func f() { + // m := "hello" + // delete(m, "e") + // } + InvalidDelete + + // InvalidImag occurs when the imag built-in function is called with an + // argument that does not have complex type. + // + // Example: + // var _ = imag(int(1)) + InvalidImag + + // InvalidLen occurs when an argument to the len built-in function is not of + // supported type. + // + // See https://golang.org/ref/spec#Lengthand_capacity for information on + // which underlying types are supported as arguments to cap and len. + // + // Example: + // var s = 2 + // var x = len(s) + InvalidLen + + // SwappedMakeArgs occurs when make is called with three arguments, and its + // length argument is larger than its capacity argument. + // + // Example: + // var x = make([]int, 3, 2) + SwappedMakeArgs + + // InvalidMake occurs when make is called with an unsupported type argument. + // + // See https://golang.org/ref/spec#Makingslices_maps_and_channels for + // information on the types that may be created using make. + // + // Example: + // var x = make(int) + InvalidMake + + // InvalidReal occurs when the real built-in function is called with an + // argument that does not have complex type. + // + // Example: + // var _ = real(int(1)) + InvalidReal + + /* exprs > assertion */ + + // InvalidAssert occurs when a type assertion is applied to a + // value that is not of interface type. + // + // Example: + // var x = 1 + // var _ = x.(float64) + InvalidAssert + + // ImpossibleAssert occurs for a type assertion x.(T) when the value x of + // interface cannot have dynamic type T, due to a missing or mismatching + // method on T. + // + // Example: + // type T int + // + // func (t *T) m() int { return int(*t) } + // + // type I interface { m() int } + // + // var x I + // var _ = x.(T) + ImpossibleAssert + + /* exprs > conversion */ + + // InvalidConversion occurs when the argument type cannot be converted to the + // target. + // + // See https://golang.org/ref/spec#Conversions for the rules of + // convertibility. + // + // Example: + // var x float64 + // var _ = string(x) + InvalidConversion + + // InvalidUntypedConversion occurs when an there is no valid implicit + // conversion from an untyped value satisfying the type constraints of the + // context in which it is used. + // + // Example: + // var _ = 1 + "" + InvalidUntypedConversion + + /* offsetof */ + + // BadOffsetofSyntax occurs when unsafe.Offsetof is called with an argument + // that is not a selector expression. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Offsetof(x) + BadOffsetofSyntax + + // InvalidOffsetof occurs when unsafe.Offsetof is called with a method + // selector, rather than a field selector, or when the field is embedded via + // a pointer. + // + // Per the spec: + // + // "If f is an embedded field, it must be reachable without pointer + // indirections through fields of the struct. " + // + // Example: + // import "unsafe" + // + // type T struct { f int } + // type S struct { *T } + // var s S + // var _ = unsafe.Offsetof(s.f) + // + // Example: + // import "unsafe" + // + // type S struct{} + // + // func (S) m() {} + // + // var s S + // var _ = unsafe.Offsetof(s.m) + InvalidOffsetof + + /* control flow > scope */ + + // UnusedExpr occurs when a side-effect free expression is used as a + // statement. Such a statement has no effect. + // + // Example: + // func f(i int) { + // i*i + // } + UnusedExpr + + // UnusedVar occurs when a variable is declared but unused. + // + // Example: + // func f() { + // x := 1 + // } + UnusedVar + + // MissingReturn occurs when a function with results is missing a return + // statement. + // + // Example: + // func f() int {} + MissingReturn + + // WrongResultCount occurs when a return statement returns an incorrect + // number of values. + // + // Example: + // func ReturnOne() int { + // return 1, 2 + // } + WrongResultCount + + // OutOfScopeResult occurs when the name of a value implicitly returned by + // an empty return statement is shadowed in a nested scope. + // + // Example: + // func factor(n int) (i int) { + // for i := 2; i < n; i++ { + // if n%i == 0 { + // return + // } + // } + // return 0 + // } + OutOfScopeResult + + /* control flow > if */ + + // InvalidCond occurs when an if condition is not a boolean expression. + // + // Example: + // func checkReturn(i int) { + // if i { + // panic("non-zero return") + // } + // } + InvalidCond + + /* control flow > for */ + + // InvalidPostDecl occurs when there is a declaration in a for-loop post + // statement. + // + // Example: + // func f() { + // for i := 0; i < 10; j := 0 {} + // } + InvalidPostDecl + + // InvalidChanRange occurs when a send-only channel used in a range + // expression. + // + // Example: + // func sum(c chan<- int) { + // s := 0 + // for i := range c { + // s += i + // } + // } + InvalidChanRange + + // InvalidIterVar occurs when two iteration variables are used while ranging + // over a channel. + // + // Example: + // func f(c chan int) { + // for k, v := range c { + // println(k, v) + // } + // } + InvalidIterVar + + // InvalidRangeExpr occurs when the type of a range expression is not array, + // slice, string, map, or channel. + // + // Example: + // func f(i int) { + // for j := range i { + // println(j) + // } + // } + InvalidRangeExpr + + /* control flow > switch */ + + // MisplacedBreak occurs when a break statement is not within a for, switch, + // or select statement of the innermost function definition. + // + // Example: + // func f() { + // break + // } + MisplacedBreak + + // MisplacedContinue occurs when a continue statement is not within a for + // loop of the innermost function definition. + // + // Example: + // func sumeven(n int) int { + // proceed := func() { + // continue + // } + // sum := 0 + // for i := 1; i <= n; i++ { + // if i % 2 != 0 { + // proceed() + // } + // sum += i + // } + // return sum + // } + MisplacedContinue + + // MisplacedFallthrough occurs when a fallthrough statement is not within an + // expression switch. + // + // Example: + // func typename(i interface{}) string { + // switch i.(type) { + // case int64: + // fallthrough + // case int: + // return "int" + // } + // return "unsupported" + // } + MisplacedFallthrough + + // DuplicateCase occurs when a type or expression switch has duplicate + // cases. + // + // Example: + // func printInt(i int) { + // switch i { + // case 1: + // println("one") + // case 1: + // println("One") + // } + // } + DuplicateCase + + // DuplicateDefault occurs when a type or expression switch has multiple + // default clauses. + // + // Example: + // func printInt(i int) { + // switch i { + // case 1: + // println("one") + // default: + // println("One") + // default: + // println("1") + // } + // } + DuplicateDefault + + // BadTypeKeyword occurs when a .(type) expression is used anywhere other + // than a type switch. + // + // Example: + // type I interface { + // m() + // } + // var t I + // var _ = t.(type) + BadTypeKeyword + + // InvalidTypeSwitch occurs when .(type) is used on an expression that is + // not of interface type. + // + // Example: + // func f(i int) { + // switch x := i.(type) {} + // } + InvalidTypeSwitch + + // InvalidExprSwitch occurs when a switch expression is not comparable. + // + // Example: + // func _() { + // var a struct{ _ func() } + // switch a /* ERROR cannot switch on a */ { + // } + // } + InvalidExprSwitch + + /* control flow > select */ + + // InvalidSelectCase occurs when a select case is not a channel send or + // receive. + // + // Example: + // func checkChan(c <-chan int) bool { + // select { + // case c: + // return true + // default: + // return false + // } + // } + InvalidSelectCase + + /* control flow > labels and jumps */ + + // UndeclaredLabel occurs when an undeclared label is jumped to. + // + // Example: + // func f() { + // goto L + // } + UndeclaredLabel + + // DuplicateLabel occurs when a label is declared more than once. + // + // Example: + // func f() int { + // L: + // L: + // return 1 + // } + DuplicateLabel + + // MisplacedLabel occurs when a break or continue label is not on a for, + // switch, or select statement. + // + // Example: + // func f() { + // L: + // a := []int{1,2,3} + // for _, e := range a { + // if e > 10 { + // break L + // } + // println(a) + // } + // } + MisplacedLabel + + // UnusedLabel occurs when a label is declared but not used. + // + // Example: + // func f() { + // L: + // } + UnusedLabel + + // JumpOverDecl occurs when a label jumps over a variable declaration. + // + // Example: + // func f() int { + // goto L + // x := 2 + // L: + // x++ + // return x + // } + JumpOverDecl + + // JumpIntoBlock occurs when a forward jump goes to a label inside a nested + // block. + // + // Example: + // func f(x int) { + // goto L + // if x > 0 { + // L: + // print("inside block") + // } + // } + JumpIntoBlock + + /* control flow > calls */ + + // InvalidMethodExpr occurs when a pointer method is called but the argument + // is not addressable. + // + // Example: + // type T struct {} + // + // func (*T) m() int { return 1 } + // + // var _ = T.m(T{}) + InvalidMethodExpr + + // WrongArgCount occurs when too few or too many arguments are passed by a + // function call. + // + // Example: + // func f(i int) {} + // var x = f() + WrongArgCount + + // InvalidCall occurs when an expression is called that is not of function + // type. + // + // Example: + // var x = "x" + // var y = x() + InvalidCall + + /* control flow > suspended */ + + // UnusedResults occurs when a restricted expression-only built-in function + // is suspended via go or defer. Such a suspension discards the results of + // these side-effect free built-in functions, and therefore is ineffectual. + // + // Example: + // func f(a []int) int { + // defer len(a) + // return i + // } + UnusedResults + + // InvalidDefer occurs when a deferred expression is not a function call, + // for example if the expression is a type conversion. + // + // Example: + // func f(i int) int { + // defer int32(i) + // return i + // } + InvalidDefer + + // InvalidGo occurs when a go expression is not a function call, for example + // if the expression is a type conversion. + // + // Example: + // func f(i int) int { + // go int32(i) + // return i + // } + InvalidGo + + // All codes below were added in Go 1.17. + + /* decl */ + + // BadDecl occurs when a declaration has invalid syntax. + BadDecl + + // RepeatedDecl occurs when an identifier occurs more than once on the left + // hand side of a short variable declaration. + // + // Example: + // func _() { + // x, y, y := 1, 2, 3 + // } + RepeatedDecl + + /* unsafe */ + + // InvalidUnsafeAdd occurs when unsafe.Add is called with a + // length argument that is not of integer type. + // + // Example: + // import "unsafe" + // + // var p unsafe.Pointer + // var _ = unsafe.Add(p, float64(1)) + InvalidUnsafeAdd + + // InvalidUnsafeSlice occurs when unsafe.Slice is called with a + // pointer argument that is not of pointer type or a length argument + // that is not of integer type, negative, or out of bounds. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(x, 1) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, float64(1)) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, -1) + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.Slice(&x, uint64(1) << 63) + InvalidUnsafeSlice + + // All codes below were added in Go 1.18. + + /* features */ + + // UnsupportedFeature occurs when a language feature is used that is not + // supported at this Go version. + UnsupportedFeature + + /* type params */ + + // NotAGenericType occurs when a non-generic type is used where a generic + // type is expected: in type or function instantiation. + // + // Example: + // type T int + // + // var _ T[int] + NotAGenericType + + // WrongTypeArgCount occurs when a type or function is instantiated with an + // incorrent number of type arguments, including when a generic type or + // function is used without instantiation. + // + // Errors inolving failed type inference are assigned other error codes. + // + // Example: + // type T[p any] int + // + // var _ T[int, string] + // + // Example: + // func f[T any]() {} + // + // var x = f + WrongTypeArgCount + + // CannotInferTypeArgs occurs when type or function type argument inference + // fails to infer all type arguments. + // + // Example: + // func f[T any]() {} + // + // func _() { + // f() + // } + // + // Example: + // type N[P, Q any] struct{} + // + // var _ N[int] + CannotInferTypeArgs + + // InvalidTypeArg occurs when a type argument does not satisfy its + // corresponding type parameter constraints. + // + // Example: + // type T[P ~int] struct{} + // + // var _ T[string] + InvalidTypeArg // arguments? InferenceFailed + + // InvalidInstanceCycle occurs when an invalid cycle is detected + // within the instantiation graph. + // + // Example: + // func f[T any]() { f[*T]() } + InvalidInstanceCycle + + // InvalidUnion occurs when an embedded union or approximation element is + // not valid. + // + // Example: + // type _ interface { + // ~int | interface{ m() } + // } + InvalidUnion + + // MisplacedConstraintIface occurs when a constraint-type interface is used + // outside of constraint position. + // + // Example: + // type I interface { ~int } + // + // var _ I + MisplacedConstraintIface + + // InvalidMethodTypeParams occurs when methods have type parameters. + // + // It cannot be encountered with an AST parsed using go/parser. + InvalidMethodTypeParams + + // MisplacedTypeParam occurs when a type parameter is used in a place where + // it is not permitted. + // + // Example: + // type T[P any] P + // + // Example: + // type T[P any] struct{ *P } + MisplacedTypeParam + + // InvalidUnsafeSliceData occurs when unsafe.SliceData is called with + // an argument that is not of slice type. It also occurs if it is used + // in a package compiled for a language version before go1.20. + // + // Example: + // import "unsafe" + // + // var x int + // var _ = unsafe.SliceData(x) + InvalidUnsafeSliceData + + // InvalidUnsafeString occurs when unsafe.String is called with + // a length argument that is not of integer type, negative, or + // out of bounds. It also occurs if it is used in a package + // compiled for a language version before go1.20. + // + // Example: + // import "unsafe" + // + // var b [10]byte + // var _ = unsafe.String(&b[0], -1) + InvalidUnsafeString + + // InvalidUnsafeStringData occurs if it is used in a package + // compiled for a language version before go1.20. + _ // not used anymore + +) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go new file mode 100644 index 0000000000..15ecf7c5de --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go @@ -0,0 +1,179 @@ +// Code generated by "stringer -type=ErrorCode"; DO NOT EDIT. + +package typesinternal + +import "strconv" + +func _() { + // An "invalid array index" compiler error signifies that the constant values have changed. + // Re-run the stringer command to generate them again. + var x [1]struct{} + _ = x[InvalidSyntaxTree - -1] + _ = x[Test-1] + _ = x[BlankPkgName-2] + _ = x[MismatchedPkgName-3] + _ = x[InvalidPkgUse-4] + _ = x[BadImportPath-5] + _ = x[BrokenImport-6] + _ = x[ImportCRenamed-7] + _ = x[UnusedImport-8] + _ = x[InvalidInitCycle-9] + _ = x[DuplicateDecl-10] + _ = x[InvalidDeclCycle-11] + _ = x[InvalidTypeCycle-12] + _ = x[InvalidConstInit-13] + _ = x[InvalidConstVal-14] + _ = x[InvalidConstType-15] + _ = x[UntypedNilUse-16] + _ = x[WrongAssignCount-17] + _ = x[UnassignableOperand-18] + _ = x[NoNewVar-19] + _ = x[MultiValAssignOp-20] + _ = x[InvalidIfaceAssign-21] + _ = x[InvalidChanAssign-22] + _ = x[IncompatibleAssign-23] + _ = x[UnaddressableFieldAssign-24] + _ = x[NotAType-25] + _ = x[InvalidArrayLen-26] + _ = x[BlankIfaceMethod-27] + _ = x[IncomparableMapKey-28] + _ = x[InvalidIfaceEmbed-29] + _ = x[InvalidPtrEmbed-30] + _ = x[BadRecv-31] + _ = x[InvalidRecv-32] + _ = x[DuplicateFieldAndMethod-33] + _ = x[DuplicateMethod-34] + _ = x[InvalidBlank-35] + _ = x[InvalidIota-36] + _ = x[MissingInitBody-37] + _ = x[InvalidInitSig-38] + _ = x[InvalidInitDecl-39] + _ = x[InvalidMainDecl-40] + _ = x[TooManyValues-41] + _ = x[NotAnExpr-42] + _ = x[TruncatedFloat-43] + _ = x[NumericOverflow-44] + _ = x[UndefinedOp-45] + _ = x[MismatchedTypes-46] + _ = x[DivByZero-47] + _ = x[NonNumericIncDec-48] + _ = x[UnaddressableOperand-49] + _ = x[InvalidIndirection-50] + _ = x[NonIndexableOperand-51] + _ = x[InvalidIndex-52] + _ = x[SwappedSliceIndices-53] + _ = x[NonSliceableOperand-54] + _ = x[InvalidSliceExpr-55] + _ = x[InvalidShiftCount-56] + _ = x[InvalidShiftOperand-57] + _ = x[InvalidReceive-58] + _ = x[InvalidSend-59] + _ = x[DuplicateLitKey-60] + _ = x[MissingLitKey-61] + _ = x[InvalidLitIndex-62] + _ = x[OversizeArrayLit-63] + _ = x[MixedStructLit-64] + _ = x[InvalidStructLit-65] + _ = x[MissingLitField-66] + _ = x[DuplicateLitField-67] + _ = x[UnexportedLitField-68] + _ = x[InvalidLitField-69] + _ = x[UntypedLit-70] + _ = x[InvalidLit-71] + _ = x[AmbiguousSelector-72] + _ = x[UndeclaredImportedName-73] + _ = x[UnexportedName-74] + _ = x[UndeclaredName-75] + _ = x[MissingFieldOrMethod-76] + _ = x[BadDotDotDotSyntax-77] + _ = x[NonVariadicDotDotDot-78] + _ = x[MisplacedDotDotDot-79] + _ = x[InvalidDotDotDotOperand-80] + _ = x[InvalidDotDotDot-81] + _ = x[UncalledBuiltin-82] + _ = x[InvalidAppend-83] + _ = x[InvalidCap-84] + _ = x[InvalidClose-85] + _ = x[InvalidCopy-86] + _ = x[InvalidComplex-87] + _ = x[InvalidDelete-88] + _ = x[InvalidImag-89] + _ = x[InvalidLen-90] + _ = x[SwappedMakeArgs-91] + _ = x[InvalidMake-92] + _ = x[InvalidReal-93] + _ = x[InvalidAssert-94] + _ = x[ImpossibleAssert-95] + _ = x[InvalidConversion-96] + _ = x[InvalidUntypedConversion-97] + _ = x[BadOffsetofSyntax-98] + _ = x[InvalidOffsetof-99] + _ = x[UnusedExpr-100] + _ = x[UnusedVar-101] + _ = x[MissingReturn-102] + _ = x[WrongResultCount-103] + _ = x[OutOfScopeResult-104] + _ = x[InvalidCond-105] + _ = x[InvalidPostDecl-106] + _ = x[InvalidChanRange-107] + _ = x[InvalidIterVar-108] + _ = x[InvalidRangeExpr-109] + _ = x[MisplacedBreak-110] + _ = x[MisplacedContinue-111] + _ = x[MisplacedFallthrough-112] + _ = x[DuplicateCase-113] + _ = x[DuplicateDefault-114] + _ = x[BadTypeKeyword-115] + _ = x[InvalidTypeSwitch-116] + _ = x[InvalidExprSwitch-117] + _ = x[InvalidSelectCase-118] + _ = x[UndeclaredLabel-119] + _ = x[DuplicateLabel-120] + _ = x[MisplacedLabel-121] + _ = x[UnusedLabel-122] + _ = x[JumpOverDecl-123] + _ = x[JumpIntoBlock-124] + _ = x[InvalidMethodExpr-125] + _ = x[WrongArgCount-126] + _ = x[InvalidCall-127] + _ = x[UnusedResults-128] + _ = x[InvalidDefer-129] + _ = x[InvalidGo-130] + _ = x[BadDecl-131] + _ = x[RepeatedDecl-132] + _ = x[InvalidUnsafeAdd-133] + _ = x[InvalidUnsafeSlice-134] + _ = x[UnsupportedFeature-135] + _ = x[NotAGenericType-136] + _ = x[WrongTypeArgCount-137] + _ = x[CannotInferTypeArgs-138] + _ = x[InvalidTypeArg-139] + _ = x[InvalidInstanceCycle-140] + _ = x[InvalidUnion-141] + _ = x[MisplacedConstraintIface-142] + _ = x[InvalidMethodTypeParams-143] + _ = x[MisplacedTypeParam-144] + _ = x[InvalidUnsafeSliceData-145] + _ = x[InvalidUnsafeString-146] +} + +const ( + _ErrorCode_name_0 = "InvalidSyntaxTree" + _ErrorCode_name_1 = "TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKeyInvalidIfaceEmbedInvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDotInvalidDotDotDotOperandInvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDeclInvalidChanRangeInvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString" +) + +var ( + _ErrorCode_index_1 = [...]uint16{0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411, 428, 443, 450, 461, 484, 499, 511, 522, 537, 551, 566, 581, 594, 603, 617, 632, 643, 658, 667, 683, 703, 721, 740, 752, 771, 790, 806, 823, 842, 856, 867, 882, 895, 910, 926, 940, 956, 971, 988, 1006, 1021, 1031, 1041, 1058, 1080, 1094, 1108, 1128, 1146, 1166, 1184, 1207, 1223, 1238, 1251, 1261, 1273, 1284, 1298, 1311, 1322, 1332, 1347, 1358, 1369, 1382, 1398, 1415, 1439, 1456, 1471, 1481, 1490, 1503, 1519, 1535, 1546, 1561, 1577, 1591, 1607, 1621, 1638, 1658, 1671, 1687, 1701, 1718, 1735, 1752, 1767, 1781, 1795, 1806, 1818, 1831, 1848, 1861, 1872, 1885, 1897, 1906, 1913, 1925, 1941, 1959, 1977, 1992, 2009, 2028, 2042, 2062, 2074, 2098, 2121, 2139, 2161, 2180} +) + +func (i ErrorCode) String() string { + switch { + case i == -1: + return _ErrorCode_name_0 + case 1 <= i && i <= 146: + i -= 1 + return _ErrorCode_name_1[_ErrorCode_index_1[i]:_ErrorCode_index_1[i+1]] + default: + return "ErrorCode(" + strconv.FormatInt(int64(i), 10) + ")" + } +} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go new file mode 100644 index 0000000000..ce7d4351b2 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go @@ -0,0 +1,52 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package typesinternal provides access to internal go/types APIs that are not +// yet exported. +package typesinternal + +import ( + "go/token" + "go/types" + "reflect" + "unsafe" +) + +func SetUsesCgo(conf *types.Config) bool { + v := reflect.ValueOf(conf).Elem() + + f := v.FieldByName("go115UsesCgo") + if !f.IsValid() { + f = v.FieldByName("UsesCgo") + if !f.IsValid() { + return false + } + } + + addr := unsafe.Pointer(f.UnsafeAddr()) + *(*bool)(addr) = true + + return true +} + +// ReadGo116ErrorData extracts additional information from types.Error values +// generated by Go version 1.16 and later: the error code, start position, and +// end position. If all positions are valid, start <= err.Pos <= end. +// +// If the data could not be read, the final result parameter will be false. +func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) { + var data [3]int + // By coincidence all of these fields are ints, which simplifies things. + v := reflect.ValueOf(err) + for i, name := range []string{"go116code", "go116start", "go116end"} { + f := v.FieldByName(name) + if !f.IsValid() { + return 0, 0, 0, false + } + data[i] = int(f.Int()) + } + return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true +} + +var SetGoVersion = func(conf *types.Config, version string) bool { return false } diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go new file mode 100644 index 0000000000..a42b072a67 --- /dev/null +++ b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go @@ -0,0 +1,19 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.18 +// +build go1.18 + +package typesinternal + +import ( + "go/types" +) + +func init() { + SetGoVersion = func(conf *types.Config, version string) bool { + conf.GoVersion = version + return true + } +} diff --git a/ecs-agent/vendor/google.golang.org/genproto/LICENSE b/ecs-agent/vendor/google.golang.org/genproto/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/genproto/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go b/ecs-agent/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go new file mode 100644 index 0000000000..f34a38e4e9 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/genproto/googleapis/rpc/status/status.pb.go @@ -0,0 +1,201 @@ +// Copyright 2020 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.12.2 +// source: google/rpc/status.proto + +package status + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// The `Status` type defines a logical error model that is suitable for +// different programming environments, including REST APIs and RPC APIs. It is +// used by [gRPC](https://github.com/grpc). Each `Status` message contains +// three pieces of data: error code, error message, and error details. +// +// You can find out more about this error model and how to work with it in the +// [API Design Guide](https://cloud.google.com/apis/design/errors). +type Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code]. + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + // A developer-facing error message, which should be in English. Any + // user-facing error message should be localized and sent in the + // [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client. + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + // A list of messages that carry the error details. There is a common set of + // message types for APIs to use. + Details []*anypb.Any `protobuf:"bytes,3,rep,name=details,proto3" json:"details,omitempty"` +} + +func (x *Status) Reset() { + *x = Status{} + if protoimpl.UnsafeEnabled { + mi := &file_google_rpc_status_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Status) ProtoMessage() {} + +func (x *Status) ProtoReflect() protoreflect.Message { + mi := &file_google_rpc_status_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Status.ProtoReflect.Descriptor instead. +func (*Status) Descriptor() ([]byte, []int) { + return file_google_rpc_status_proto_rawDescGZIP(), []int{0} +} + +func (x *Status) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *Status) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *Status) GetDetails() []*anypb.Any { + if x != nil { + return x.Details + } + return nil +} + +var File_google_rpc_status_proto protoreflect.FileDescriptor + +var file_google_rpc_status_proto_rawDesc = []byte{ + 0x0a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x72, 0x70, 0x63, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0x66, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, + 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x61, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x42, 0x0b, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x37, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x52, 0x50, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_rpc_status_proto_rawDescOnce sync.Once + file_google_rpc_status_proto_rawDescData = file_google_rpc_status_proto_rawDesc +) + +func file_google_rpc_status_proto_rawDescGZIP() []byte { + file_google_rpc_status_proto_rawDescOnce.Do(func() { + file_google_rpc_status_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_rpc_status_proto_rawDescData) + }) + return file_google_rpc_status_proto_rawDescData +} + +var file_google_rpc_status_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_rpc_status_proto_goTypes = []interface{}{ + (*Status)(nil), // 0: google.rpc.Status + (*anypb.Any)(nil), // 1: google.protobuf.Any +} +var file_google_rpc_status_proto_depIdxs = []int32{ + 1, // 0: google.rpc.Status.details:type_name -> google.protobuf.Any + 1, // [1:1] is the sub-list for method output_type + 1, // [1:1] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_google_rpc_status_proto_init() } +func file_google_rpc_status_proto_init() { + if File_google_rpc_status_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_rpc_status_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Status); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_rpc_status_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_rpc_status_proto_goTypes, + DependencyIndexes: file_google_rpc_status_proto_depIdxs, + MessageInfos: file_google_rpc_status_proto_msgTypes, + }.Build() + File_google_rpc_status_proto = out.File + file_google_rpc_status_proto_rawDesc = nil + file_google_rpc_status_proto_goTypes = nil + file_google_rpc_status_proto_depIdxs = nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/AUTHORS b/ecs-agent/vendor/google.golang.org/grpc/AUTHORS new file mode 100644 index 0000000000..e491a9e7f7 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/AUTHORS @@ -0,0 +1 @@ +Google Inc. diff --git a/ecs-agent/vendor/google.golang.org/grpc/CODE-OF-CONDUCT.md b/ecs-agent/vendor/google.golang.org/grpc/CODE-OF-CONDUCT.md new file mode 100644 index 0000000000..9d4213ebca --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/CODE-OF-CONDUCT.md @@ -0,0 +1,3 @@ +## Community Code of Conduct + +gRPC follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). diff --git a/ecs-agent/vendor/google.golang.org/grpc/CONTRIBUTING.md b/ecs-agent/vendor/google.golang.org/grpc/CONTRIBUTING.md new file mode 100644 index 0000000000..52338d004c --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/CONTRIBUTING.md @@ -0,0 +1,60 @@ +# How to contribute + +We definitely welcome your patches and contributions to gRPC! Please read the gRPC +organization's [governance rules](https://github.com/grpc/grpc-community/blob/master/governance.md) +and [contribution guidelines](https://github.com/grpc/grpc-community/blob/master/CONTRIBUTING.md) before proceeding. + +If you are new to github, please start by reading [Pull Request howto](https://help.github.com/articles/about-pull-requests/) + +## Legal requirements + +In order to protect both you and ourselves, you will need to sign the +[Contributor License Agreement](https://identity.linuxfoundation.org/projects/cncf). + +## Guidelines for Pull Requests +How to get your contributions merged smoothly and quickly. + +- Create **small PRs** that are narrowly focused on **addressing a single + concern**. We often times receive PRs that are trying to fix several things at + a time, but only one fix is considered acceptable, nothing gets merged and + both author's & review's time is wasted. Create more PRs to address different + concerns and everyone will be happy. + +- The grpc package should only depend on standard Go packages and a small number + of exceptions. If your contribution introduces new dependencies which are NOT + in the [list](https://godoc.org/google.golang.org/grpc?imports), you need a + discussion with gRPC-Go authors and consultants. + +- For speculative changes, consider opening an issue and discussing it first. If + you are suggesting a behavioral or API change, consider starting with a [gRFC + proposal](https://github.com/grpc/proposal). + +- Provide a good **PR description** as a record of **what** change is being made + and **why** it was made. Link to a github issue if it exists. + +- Don't fix code style and formatting unless you are already changing that line + to address an issue. PRs with irrelevant changes won't be merged. If you do + want to fix formatting or style, do that in a separate PR. + +- Unless your PR is trivial, you should expect there will be reviewer comments + that you'll need to address before merging. We expect you to be reasonably + responsive to those comments, otherwise the PR will be closed after 2-3 weeks + of inactivity. + +- Maintain **clean commit history** and use **meaningful commit messages**. PRs + with messy commit history are difficult to review and won't be merged. Use + `rebase -i upstream/master` to curate your commit history and/or to bring in + latest changes from master (but avoid rebasing in the middle of a code + review). + +- Keep your PR up to date with upstream/master (if there are merge conflicts, we + can't really merge your change). + +- **All tests need to be passing** before your change can be merged. We + recommend you **run tests locally** before creating your PR to catch breakages + early on. + - `VET_SKIP_PROTO=1 ./vet.sh` to catch vet errors + - `go test -cpu 1,4 -timeout 7m ./...` to run the tests + - `go test -race -cpu 1,4 -timeout 7m ./...` to run tests in race mode + +- Exceptions to the rules can be made if there's a compelling reason for doing so. diff --git a/ecs-agent/vendor/google.golang.org/grpc/GOVERNANCE.md b/ecs-agent/vendor/google.golang.org/grpc/GOVERNANCE.md new file mode 100644 index 0000000000..d6ff267471 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/GOVERNANCE.md @@ -0,0 +1 @@ +This repository is governed by the gRPC organization's [governance rules](https://github.com/grpc/grpc-community/blob/master/governance.md). diff --git a/ecs-agent/vendor/google.golang.org/grpc/LICENSE b/ecs-agent/vendor/google.golang.org/grpc/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/google.golang.org/grpc/MAINTAINERS.md b/ecs-agent/vendor/google.golang.org/grpc/MAINTAINERS.md new file mode 100644 index 0000000000..c6672c0a3e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/MAINTAINERS.md @@ -0,0 +1,28 @@ +This page lists all active maintainers of this repository. If you were a +maintainer and would like to add your name to the Emeritus list, please send us a +PR. + +See [GOVERNANCE.md](https://github.com/grpc/grpc-community/blob/master/governance.md) +for governance guidelines and how to become a maintainer. +See [CONTRIBUTING.md](https://github.com/grpc/grpc-community/blob/master/CONTRIBUTING.md) +for general contribution guidelines. + +## Maintainers (in alphabetical order) + +- [cesarghali](https://github.com/cesarghali), Google LLC +- [dfawley](https://github.com/dfawley), Google LLC +- [easwars](https://github.com/easwars), Google LLC +- [menghanl](https://github.com/menghanl), Google LLC +- [srini100](https://github.com/srini100), Google LLC + +## Emeritus Maintainers (in alphabetical order) +- [adelez](https://github.com/adelez), Google LLC +- [canguler](https://github.com/canguler), Google LLC +- [iamqizhao](https://github.com/iamqizhao), Google LLC +- [jadekler](https://github.com/jadekler), Google LLC +- [jtattermusch](https://github.com/jtattermusch), Google LLC +- [lyuxuan](https://github.com/lyuxuan), Google LLC +- [makmukhi](https://github.com/makmukhi), Google LLC +- [matt-kwong](https://github.com/matt-kwong), Google LLC +- [nicolasnoble](https://github.com/nicolasnoble), Google LLC +- [yongni](https://github.com/yongni), Google LLC diff --git a/ecs-agent/vendor/google.golang.org/grpc/Makefile b/ecs-agent/vendor/google.golang.org/grpc/Makefile new file mode 100644 index 0000000000..1f8960922b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/Makefile @@ -0,0 +1,46 @@ +all: vet test testrace + +build: + go build google.golang.org/grpc/... + +clean: + go clean -i google.golang.org/grpc/... + +deps: + GO111MODULE=on go get -d -v google.golang.org/grpc/... + +proto: + @ if ! which protoc > /dev/null; then \ + echo "error: protoc not installed" >&2; \ + exit 1; \ + fi + go generate google.golang.org/grpc/... + +test: + go test -cpu 1,4 -timeout 7m google.golang.org/grpc/... + +testsubmodule: + cd security/advancedtls && go test -cpu 1,4 -timeout 7m google.golang.org/grpc/security/advancedtls/... + cd security/authorization && go test -cpu 1,4 -timeout 7m google.golang.org/grpc/security/authorization/... + +testrace: + go test -race -cpu 1,4 -timeout 7m google.golang.org/grpc/... + +testdeps: + GO111MODULE=on go get -d -v -t google.golang.org/grpc/... + +vet: vetdeps + ./vet.sh + +vetdeps: + ./vet.sh -install + +.PHONY: \ + all \ + build \ + clean \ + proto \ + test \ + testrace \ + vet \ + vetdeps diff --git a/ecs-agent/vendor/google.golang.org/grpc/NOTICE.txt b/ecs-agent/vendor/google.golang.org/grpc/NOTICE.txt new file mode 100644 index 0000000000..530197749e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/NOTICE.txt @@ -0,0 +1,13 @@ +Copyright 2014 gRPC authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/ecs-agent/vendor/google.golang.org/grpc/README.md b/ecs-agent/vendor/google.golang.org/grpc/README.md new file mode 100644 index 0000000000..0e6ae69a58 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/README.md @@ -0,0 +1,141 @@ +# gRPC-Go + +[![Build Status](https://travis-ci.org/grpc/grpc-go.svg)](https://travis-ci.org/grpc/grpc-go) +[![GoDoc](https://pkg.go.dev/badge/google.golang.org/grpc)][API] +[![GoReportCard](https://goreportcard.com/badge/grpc/grpc-go)](https://goreportcard.com/report/github.com/grpc/grpc-go) + +The [Go][] implementation of [gRPC][]: A high performance, open source, general +RPC framework that puts mobile and HTTP/2 first. For more information see the +[Go gRPC docs][], or jump directly into the [quick start][]. + +## Prerequisites + +- **[Go][]**: any one of the **three latest major** [releases][go-releases]. + +## Installation + +With [Go module][] support (Go 1.11+), simply add the following import + +```go +import "google.golang.org/grpc" +``` + +to your code, and then `go [build|run|test]` will automatically fetch the +necessary dependencies. + +Otherwise, to install the `grpc-go` package, run the following command: + +```console +$ go get -u google.golang.org/grpc +``` + +> **Note:** If you are trying to access `grpc-go` from **China**, see the +> [FAQ](#FAQ) below. + +## Learn more + +- [Go gRPC docs][], which include a [quick start][] and [API + reference][API] among other resources +- [Low-level technical docs](Documentation) from this repository +- [Performance benchmark][] +- [Examples](examples) + +## FAQ + +### I/O Timeout Errors + +The `golang.org` domain may be blocked from some countries. `go get` usually +produces an error like the following when this happens: + +```console +$ go get -u google.golang.org/grpc +package google.golang.org/grpc: unrecognized import path "google.golang.org/grpc" (https fetch: Get https://google.golang.org/grpc?go-get=1: dial tcp 216.239.37.1:443: i/o timeout) +``` + +To build Go code, there are several options: + +- Set up a VPN and access google.golang.org through that. + +- Without Go module support: `git clone` the repo manually: + + ```sh + git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc + ``` + + You will need to do the same for all of grpc's dependencies in `golang.org`, + e.g. `golang.org/x/net`. + +- With Go module support: it is possible to use the `replace` feature of `go + mod` to create aliases for golang.org packages. In your project's directory: + + ```sh + go mod edit -replace=google.golang.org/grpc=github.com/grpc/grpc-go@latest + go mod tidy + go mod vendor + go build -mod=vendor + ``` + + Again, this will need to be done for all transitive dependencies hosted on + golang.org as well. For details, refer to [golang/go issue #28652](https://github.com/golang/go/issues/28652). + +### Compiling error, undefined: grpc.SupportPackageIsVersion + +#### If you are using Go modules: + +Ensure your gRPC-Go version is `require`d at the appropriate version in +the same module containing the generated `.pb.go` files. For example, +`SupportPackageIsVersion6` needs `v1.27.0`, so in your `go.mod` file: + +```go +module + +require ( + google.golang.org/grpc v1.27.0 +) +``` + +#### If you are *not* using Go modules: + +Update the `proto` package, gRPC package, and rebuild the `.proto` files: + +```sh +go get -u github.com/golang/protobuf/{proto,protoc-gen-go} +go get -u google.golang.org/grpc +protoc --go_out=plugins=grpc:. *.proto +``` + +### How to turn on logging + +The default logger is controlled by environment variables. Turn everything on +like this: + +```console +$ export GRPC_GO_LOG_VERBOSITY_LEVEL=99 +$ export GRPC_GO_LOG_SEVERITY_LEVEL=info +``` + +### The RPC failed with error `"code = Unavailable desc = transport is closing"` + +This error means the connection the RPC is using was closed, and there are many +possible reasons, including: + 1. mis-configured transport credentials, connection failed on handshaking + 1. bytes disrupted, possibly by a proxy in between + 1. server shutdown + 1. Keepalive parameters caused connection shutdown, for example if you have configured + your server to terminate connections regularly to [trigger DNS lookups](https://github.com/grpc/grpc-go/issues/3170#issuecomment-552517779). + If this is the case, you may want to increase your [MaxConnectionAgeGrace](https://pkg.go.dev/google.golang.org/grpc/keepalive?tab=doc#ServerParameters), + to allow longer RPC calls to finish. + +It can be tricky to debug this because the error happens on the client side but +the root cause of the connection being closed is on the server side. Turn on +logging on __both client and server__, and see if there are any transport +errors. + +[API]: https://pkg.go.dev/google.golang.org/grpc +[Go]: https://golang.org +[Go module]: https://github.com/golang/go/wiki/Modules +[gRPC]: https://grpc.io +[Go gRPC docs]: https://grpc.io/docs/languages/go +[Performance benchmark]: https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5180705743044608 +[quick start]: https://grpc.io/docs/languages/go/quickstart +[go-releases]: https://golang.org/doc/devel/release.html diff --git a/ecs-agent/vendor/google.golang.org/grpc/SECURITY.md b/ecs-agent/vendor/google.golang.org/grpc/SECURITY.md new file mode 100644 index 0000000000..be6e108705 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/SECURITY.md @@ -0,0 +1,3 @@ +# Security Policy + +For information on gRPC Security Policy and reporting potentional security issues, please see [gRPC CVE Process](https://github.com/grpc/proposal/blob/master/P4-grpc-cve-process.md). diff --git a/ecs-agent/vendor/google.golang.org/grpc/attributes/attributes.go b/ecs-agent/vendor/google.golang.org/grpc/attributes/attributes.go new file mode 100644 index 0000000000..02f5dc5318 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/attributes/attributes.go @@ -0,0 +1,101 @@ +/* + * + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package attributes defines a generic key/value store used in various gRPC +// components. +// +// # Experimental +// +// Notice: This package is EXPERIMENTAL and may be changed or removed in a +// later release. +package attributes + +// Attributes is an immutable struct for storing and retrieving generic +// key/value pairs. Keys must be hashable, and users should define their own +// types for keys. Values should not be modified after they are added to an +// Attributes or if they were received from one. If values implement 'Equal(o +// interface{}) bool', it will be called by (*Attributes).Equal to determine +// whether two values with the same key should be considered equal. +type Attributes struct { + m map[interface{}]interface{} +} + +// New returns a new Attributes containing the key/value pair. +func New(key, value interface{}) *Attributes { + return &Attributes{m: map[interface{}]interface{}{key: value}} +} + +// WithValue returns a new Attributes containing the previous keys and values +// and the new key/value pair. If the same key appears multiple times, the +// last value overwrites all previous values for that key. To remove an +// existing key, use a nil value. value should not be modified later. +func (a *Attributes) WithValue(key, value interface{}) *Attributes { + if a == nil { + return New(key, value) + } + n := &Attributes{m: make(map[interface{}]interface{}, len(a.m)+1)} + for k, v := range a.m { + n.m[k] = v + } + n.m[key] = value + return n +} + +// Value returns the value associated with these attributes for key, or nil if +// no value is associated with key. The returned value should not be modified. +func (a *Attributes) Value(key interface{}) interface{} { + if a == nil { + return nil + } + return a.m[key] +} + +// Equal returns whether a and o are equivalent. If 'Equal(o interface{}) +// bool' is implemented for a value in the attributes, it is called to +// determine if the value matches the one stored in the other attributes. If +// Equal is not implemented, standard equality is used to determine if the two +// values are equal. Note that some types (e.g. maps) aren't comparable by +// default, so they must be wrapped in a struct, or in an alias type, with Equal +// defined. +func (a *Attributes) Equal(o *Attributes) bool { + if a == nil && o == nil { + return true + } + if a == nil || o == nil { + return false + } + if len(a.m) != len(o.m) { + return false + } + for k, v := range a.m { + ov, ok := o.m[k] + if !ok { + // o missing element of a + return false + } + if eq, ok := v.(interface{ Equal(o interface{}) bool }); ok { + if !eq.Equal(ov) { + return false + } + } else if v != ov { + // Fallback to a standard equality check if Value is unimplemented. + return false + } + } + return true +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/backoff.go b/ecs-agent/vendor/google.golang.org/grpc/backoff.go new file mode 100644 index 0000000000..29475e31c9 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/backoff.go @@ -0,0 +1,61 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// See internal/backoff package for the backoff implementation. This file is +// kept for the exported types and API backward compatibility. + +package grpc + +import ( + "time" + + "google.golang.org/grpc/backoff" +) + +// DefaultBackoffConfig uses values specified for backoff in +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +// +// Deprecated: use ConnectParams instead. Will be supported throughout 1.x. +var DefaultBackoffConfig = BackoffConfig{ + MaxDelay: 120 * time.Second, +} + +// BackoffConfig defines the parameters for the default gRPC backoff strategy. +// +// Deprecated: use ConnectParams instead. Will be supported throughout 1.x. +type BackoffConfig struct { + // MaxDelay is the upper bound of backoff delay. + MaxDelay time.Duration +} + +// ConnectParams defines the parameters for connecting and retrying. Users are +// encouraged to use this instead of the BackoffConfig type defined above. See +// here for more details: +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type ConnectParams struct { + // Backoff specifies the configuration options for connection backoff. + Backoff backoff.Config + // MinConnectTimeout is the minimum amount of time we are willing to give a + // connection to complete. + MinConnectTimeout time.Duration +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/backoff/backoff.go b/ecs-agent/vendor/google.golang.org/grpc/backoff/backoff.go new file mode 100644 index 0000000000..0787d0b50c --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/backoff/backoff.go @@ -0,0 +1,52 @@ +/* + * + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package backoff provides configuration options for backoff. +// +// More details can be found at: +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +// +// All APIs in this package are experimental. +package backoff + +import "time" + +// Config defines the configuration options for backoff. +type Config struct { + // BaseDelay is the amount of time to backoff after the first failure. + BaseDelay time.Duration + // Multiplier is the factor with which to multiply backoffs after a + // failed retry. Should ideally be greater than 1. + Multiplier float64 + // Jitter is the factor with which backoffs are randomized. + Jitter float64 + // MaxDelay is the upper bound of backoff delay. + MaxDelay time.Duration +} + +// DefaultConfig is a backoff configuration with the default values specfied +// at https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +// +// This should be useful for callers who want to configure backoff with +// non-default values only for a subset of the options. +var DefaultConfig = Config{ + BaseDelay: 1.0 * time.Second, + Multiplier: 1.6, + Jitter: 0.2, + MaxDelay: 120 * time.Second, +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer/balancer.go b/ecs-agent/vendor/google.golang.org/grpc/balancer/balancer.go new file mode 100644 index 0000000000..392b21fb2d --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer/balancer.go @@ -0,0 +1,396 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package balancer defines APIs for load balancing in gRPC. +// All APIs in this package are experimental. +package balancer + +import ( + "context" + "encoding/json" + "errors" + "net" + "strings" + + "google.golang.org/grpc/channelz" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/serviceconfig" +) + +var ( + // m is a map from name to balancer builder. + m = make(map[string]Builder) +) + +// Register registers the balancer builder to the balancer map. b.Name +// (lowercased) will be used as the name registered with this builder. If the +// Builder implements ConfigParser, ParseConfig will be called when new service +// configs are received by the resolver, and the result will be provided to the +// Balancer in UpdateClientConnState. +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. If multiple Balancers are +// registered with the same name, the one registered last will take effect. +func Register(b Builder) { + m[strings.ToLower(b.Name())] = b +} + +// unregisterForTesting deletes the balancer with the given name from the +// balancer map. +// +// This function is not thread-safe. +func unregisterForTesting(name string) { + delete(m, name) +} + +func init() { + internal.BalancerUnregister = unregisterForTesting +} + +// Get returns the resolver builder registered with the given name. +// Note that the compare is done in a case-insensitive fashion. +// If no builder is register with the name, nil will be returned. +func Get(name string) Builder { + if b, ok := m[strings.ToLower(name)]; ok { + return b + } + return nil +} + +// A SubConn represents a single connection to a gRPC backend service. +// +// Each SubConn contains a list of addresses. +// +// All SubConns start in IDLE, and will not try to connect. To trigger the +// connecting, Balancers must call Connect. If a connection re-enters IDLE, +// Balancers must call Connect again to trigger a new connection attempt. +// +// gRPC will try to connect to the addresses in sequence, and stop trying the +// remainder once the first connection is successful. If an attempt to connect +// to all addresses encounters an error, the SubConn will enter +// TRANSIENT_FAILURE for a backoff period, and then transition to IDLE. +// +// Once established, if a connection is lost, the SubConn will transition +// directly to IDLE. +// +// This interface is to be implemented by gRPC. Users should not need their own +// implementation of this interface. For situations like testing, any +// implementations should embed this interface. This allows gRPC to add new +// methods to this interface. +type SubConn interface { + // UpdateAddresses updates the addresses used in this SubConn. + // gRPC checks if currently-connected address is still in the new list. + // If it's in the list, the connection will be kept. + // If it's not in the list, the connection will gracefully closed, and + // a new connection will be created. + // + // This will trigger a state transition for the SubConn. + // + // Deprecated: This method is now part of the ClientConn interface and will + // eventually be removed from here. + UpdateAddresses([]resolver.Address) + // Connect starts the connecting for this SubConn. + Connect() + // GetOrBuildProducer returns a reference to the existing Producer for this + // ProducerBuilder in this SubConn, or, if one does not currently exist, + // creates a new one and returns it. Returns a close function which must + // be called when the Producer is no longer needed. + GetOrBuildProducer(ProducerBuilder) (p Producer, close func()) +} + +// NewSubConnOptions contains options to create new SubConn. +type NewSubConnOptions struct { + // CredsBundle is the credentials bundle that will be used in the created + // SubConn. If it's nil, the original creds from grpc DialOptions will be + // used. + // + // Deprecated: Use the Attributes field in resolver.Address to pass + // arbitrary data to the credential handshaker. + CredsBundle credentials.Bundle + // HealthCheckEnabled indicates whether health check service should be + // enabled on this SubConn + HealthCheckEnabled bool +} + +// State contains the balancer's state relevant to the gRPC ClientConn. +type State struct { + // State contains the connectivity state of the balancer, which is used to + // determine the state of the ClientConn. + ConnectivityState connectivity.State + // Picker is used to choose connections (SubConns) for RPCs. + Picker Picker +} + +// ClientConn represents a gRPC ClientConn. +// +// This interface is to be implemented by gRPC. Users should not need a +// brand new implementation of this interface. For the situations like +// testing, the new implementation should embed this interface. This allows +// gRPC to add new methods to this interface. +type ClientConn interface { + // NewSubConn is called by balancer to create a new SubConn. + // It doesn't block and wait for the connections to be established. + // Behaviors of the SubConn can be controlled by options. + NewSubConn([]resolver.Address, NewSubConnOptions) (SubConn, error) + // RemoveSubConn removes the SubConn from ClientConn. + // The SubConn will be shutdown. + RemoveSubConn(SubConn) + // UpdateAddresses updates the addresses used in the passed in SubConn. + // gRPC checks if the currently connected address is still in the new list. + // If so, the connection will be kept. Else, the connection will be + // gracefully closed, and a new connection will be created. + // + // This will trigger a state transition for the SubConn. + UpdateAddresses(SubConn, []resolver.Address) + + // UpdateState notifies gRPC that the balancer's internal state has + // changed. + // + // gRPC will update the connectivity state of the ClientConn, and will call + // Pick on the new Picker to pick new SubConns. + UpdateState(State) + + // ResolveNow is called by balancer to notify gRPC to do a name resolving. + ResolveNow(resolver.ResolveNowOptions) + + // Target returns the dial target for this ClientConn. + // + // Deprecated: Use the Target field in the BuildOptions instead. + Target() string +} + +// BuildOptions contains additional information for Build. +type BuildOptions struct { + // DialCreds is the transport credentials to use when communicating with a + // remote load balancer server. Balancer implementations which do not + // communicate with a remote load balancer server can ignore this field. + DialCreds credentials.TransportCredentials + // CredsBundle is the credentials bundle to use when communicating with a + // remote load balancer server. Balancer implementations which do not + // communicate with a remote load balancer server can ignore this field. + CredsBundle credentials.Bundle + // Dialer is the custom dialer to use when communicating with a remote load + // balancer server. Balancer implementations which do not communicate with a + // remote load balancer server can ignore this field. + Dialer func(context.Context, string) (net.Conn, error) + // Authority is the server name to use as part of the authentication + // handshake when communicating with a remote load balancer server. Balancer + // implementations which do not communicate with a remote load balancer + // server can ignore this field. + Authority string + // ChannelzParentID is the parent ClientConn's channelz ID. + ChannelzParentID *channelz.Identifier + // CustomUserAgent is the custom user agent set on the parent ClientConn. + // The balancer should set the same custom user agent if it creates a + // ClientConn. + CustomUserAgent string + // Target contains the parsed address info of the dial target. It is the + // same resolver.Target as passed to the resolver. See the documentation for + // the resolver.Target type for details about what it contains. + Target resolver.Target +} + +// Builder creates a balancer. +type Builder interface { + // Build creates a new balancer with the ClientConn. + Build(cc ClientConn, opts BuildOptions) Balancer + // Name returns the name of balancers built by this builder. + // It will be used to pick balancers (for example in service config). + Name() string +} + +// ConfigParser parses load balancer configs. +type ConfigParser interface { + // ParseConfig parses the JSON load balancer config provided into an + // internal form or returns an error if the config is invalid. For future + // compatibility reasons, unknown fields in the config should be ignored. + ParseConfig(LoadBalancingConfigJSON json.RawMessage) (serviceconfig.LoadBalancingConfig, error) +} + +// PickInfo contains additional information for the Pick operation. +type PickInfo struct { + // FullMethodName is the method name that NewClientStream() is called + // with. The canonical format is /service/Method. + FullMethodName string + // Ctx is the RPC's context, and may contain relevant RPC-level information + // like the outgoing header metadata. + Ctx context.Context +} + +// DoneInfo contains additional information for done. +type DoneInfo struct { + // Err is the rpc error the RPC finished with. It could be nil. + Err error + // Trailer contains the metadata from the RPC's trailer, if present. + Trailer metadata.MD + // BytesSent indicates if any bytes have been sent to the server. + BytesSent bool + // BytesReceived indicates if any byte has been received from the server. + BytesReceived bool + // ServerLoad is the load received from server. It's usually sent as part of + // trailing metadata. + // + // The only supported type now is *orca_v3.LoadReport. + ServerLoad interface{} +} + +var ( + // ErrNoSubConnAvailable indicates no SubConn is available for pick(). + // gRPC will block the RPC until a new picker is available via UpdateState(). + ErrNoSubConnAvailable = errors.New("no SubConn is available") + // ErrTransientFailure indicates all SubConns are in TransientFailure. + // WaitForReady RPCs will block, non-WaitForReady RPCs will fail. + // + // Deprecated: return an appropriate error based on the last resolution or + // connection attempt instead. The behavior is the same for any non-gRPC + // status error. + ErrTransientFailure = errors.New("all SubConns are in TransientFailure") +) + +// PickResult contains information related to a connection chosen for an RPC. +type PickResult struct { + // SubConn is the connection to use for this pick, if its state is Ready. + // If the state is not Ready, gRPC will block the RPC until a new Picker is + // provided by the balancer (using ClientConn.UpdateState). The SubConn + // must be one returned by ClientConn.NewSubConn. + SubConn SubConn + + // Done is called when the RPC is completed. If the SubConn is not ready, + // this will be called with a nil parameter. If the SubConn is not a valid + // type, Done may not be called. May be nil if the balancer does not wish + // to be notified when the RPC completes. + Done func(DoneInfo) +} + +// TransientFailureError returns e. It exists for backward compatibility and +// will be deleted soon. +// +// Deprecated: no longer necessary, picker errors are treated this way by +// default. +func TransientFailureError(e error) error { return e } + +// Picker is used by gRPC to pick a SubConn to send an RPC. +// Balancer is expected to generate a new picker from its snapshot every time its +// internal state has changed. +// +// The pickers used by gRPC can be updated by ClientConn.UpdateState(). +type Picker interface { + // Pick returns the connection to use for this RPC and related information. + // + // Pick should not block. If the balancer needs to do I/O or any blocking + // or time-consuming work to service this call, it should return + // ErrNoSubConnAvailable, and the Pick call will be repeated by gRPC when + // the Picker is updated (using ClientConn.UpdateState). + // + // If an error is returned: + // + // - If the error is ErrNoSubConnAvailable, gRPC will block until a new + // Picker is provided by the balancer (using ClientConn.UpdateState). + // + // - If the error is a status error (implemented by the grpc/status + // package), gRPC will terminate the RPC with the code and message + // provided. + // + // - For all other errors, wait for ready RPCs will wait, but non-wait for + // ready RPCs will be terminated with this error's Error() string and + // status code Unavailable. + Pick(info PickInfo) (PickResult, error) +} + +// Balancer takes input from gRPC, manages SubConns, and collects and aggregates +// the connectivity states. +// +// It also generates and updates the Picker used by gRPC to pick SubConns for RPCs. +// +// UpdateClientConnState, ResolverError, UpdateSubConnState, and Close are +// guaranteed to be called synchronously from the same goroutine. There's no +// guarantee on picker.Pick, it may be called anytime. +type Balancer interface { + // UpdateClientConnState is called by gRPC when the state of the ClientConn + // changes. If the error returned is ErrBadResolverState, the ClientConn + // will begin calling ResolveNow on the active name resolver with + // exponential backoff until a subsequent call to UpdateClientConnState + // returns a nil error. Any other errors are currently ignored. + UpdateClientConnState(ClientConnState) error + // ResolverError is called by gRPC when the name resolver reports an error. + ResolverError(error) + // UpdateSubConnState is called by gRPC when the state of a SubConn + // changes. + UpdateSubConnState(SubConn, SubConnState) + // Close closes the balancer. The balancer is not required to call + // ClientConn.RemoveSubConn for its existing SubConns. + Close() +} + +// ExitIdler is an optional interface for balancers to implement. If +// implemented, ExitIdle will be called when ClientConn.Connect is called, if +// the ClientConn is idle. If unimplemented, ClientConn.Connect will cause +// all SubConns to connect. +// +// Notice: it will be required for all balancers to implement this in a future +// release. +type ExitIdler interface { + // ExitIdle instructs the LB policy to reconnect to backends / exit the + // IDLE state, if appropriate and possible. Note that SubConns that enter + // the IDLE state will not reconnect until SubConn.Connect is called. + ExitIdle() +} + +// SubConnState describes the state of a SubConn. +type SubConnState struct { + // ConnectivityState is the connectivity state of the SubConn. + ConnectivityState connectivity.State + // ConnectionError is set if the ConnectivityState is TransientFailure, + // describing the reason the SubConn failed. Otherwise, it is nil. + ConnectionError error +} + +// ClientConnState describes the state of a ClientConn relevant to the +// balancer. +type ClientConnState struct { + ResolverState resolver.State + // The parsed load balancing configuration returned by the builder's + // ParseConfig method, if implemented. + BalancerConfig serviceconfig.LoadBalancingConfig +} + +// ErrBadResolverState may be returned by UpdateClientConnState to indicate a +// problem with the provided name resolver data. +var ErrBadResolverState = errors.New("bad resolver state") + +// A ProducerBuilder is a simple constructor for a Producer. It is used by the +// SubConn to create producers when needed. +type ProducerBuilder interface { + // Build creates a Producer. The first parameter is always a + // grpc.ClientConnInterface (a type to allow creating RPCs/streams on the + // associated SubConn), but is declared as interface{} to avoid a + // dependency cycle. Should also return a close function that will be + // called when all references to the Producer have been given up. + Build(grpcClientConnInterface interface{}) (p Producer, close func()) +} + +// A Producer is a type shared among potentially many consumers. It is +// associated with a SubConn, and an implementation will typically contain +// other methods to provide additional functionality, e.g. configuration or +// subscription registration. +type Producer interface { +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer/base/balancer.go b/ecs-agent/vendor/google.golang.org/grpc/balancer/base/balancer.go new file mode 100644 index 0000000000..3929c26d31 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer/base/balancer.go @@ -0,0 +1,254 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package base + +import ( + "errors" + "fmt" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/resolver" +) + +var logger = grpclog.Component("balancer") + +type baseBuilder struct { + name string + pickerBuilder PickerBuilder + config Config +} + +func (bb *baseBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { + bal := &baseBalancer{ + cc: cc, + pickerBuilder: bb.pickerBuilder, + + subConns: resolver.NewAddressMap(), + scStates: make(map[balancer.SubConn]connectivity.State), + csEvltr: &balancer.ConnectivityStateEvaluator{}, + config: bb.config, + state: connectivity.Connecting, + } + // Initialize picker to a picker that always returns + // ErrNoSubConnAvailable, because when state of a SubConn changes, we + // may call UpdateState with this picker. + bal.picker = NewErrPicker(balancer.ErrNoSubConnAvailable) + return bal +} + +func (bb *baseBuilder) Name() string { + return bb.name +} + +type baseBalancer struct { + cc balancer.ClientConn + pickerBuilder PickerBuilder + + csEvltr *balancer.ConnectivityStateEvaluator + state connectivity.State + + subConns *resolver.AddressMap + scStates map[balancer.SubConn]connectivity.State + picker balancer.Picker + config Config + + resolverErr error // the last error reported by the resolver; cleared on successful resolution + connErr error // the last connection error; cleared upon leaving TransientFailure +} + +func (b *baseBalancer) ResolverError(err error) { + b.resolverErr = err + if b.subConns.Len() == 0 { + b.state = connectivity.TransientFailure + } + + if b.state != connectivity.TransientFailure { + // The picker will not change since the balancer does not currently + // report an error. + return + } + b.regeneratePicker() + b.cc.UpdateState(balancer.State{ + ConnectivityState: b.state, + Picker: b.picker, + }) +} + +func (b *baseBalancer) UpdateClientConnState(s balancer.ClientConnState) error { + // TODO: handle s.ResolverState.ServiceConfig? + if logger.V(2) { + logger.Info("base.baseBalancer: got new ClientConn state: ", s) + } + // Successful resolution; clear resolver error and ensure we return nil. + b.resolverErr = nil + // addrsSet is the set converted from addrs, it's used for quick lookup of an address. + addrsSet := resolver.NewAddressMap() + for _, a := range s.ResolverState.Addresses { + addrsSet.Set(a, nil) + if _, ok := b.subConns.Get(a); !ok { + // a is a new address (not existing in b.subConns). + sc, err := b.cc.NewSubConn([]resolver.Address{a}, balancer.NewSubConnOptions{HealthCheckEnabled: b.config.HealthCheck}) + if err != nil { + logger.Warningf("base.baseBalancer: failed to create new SubConn: %v", err) + continue + } + b.subConns.Set(a, sc) + b.scStates[sc] = connectivity.Idle + b.csEvltr.RecordTransition(connectivity.Shutdown, connectivity.Idle) + sc.Connect() + } + } + for _, a := range b.subConns.Keys() { + sci, _ := b.subConns.Get(a) + sc := sci.(balancer.SubConn) + // a was removed by resolver. + if _, ok := addrsSet.Get(a); !ok { + b.cc.RemoveSubConn(sc) + b.subConns.Delete(a) + // Keep the state of this sc in b.scStates until sc's state becomes Shutdown. + // The entry will be deleted in UpdateSubConnState. + } + } + // If resolver state contains no addresses, return an error so ClientConn + // will trigger re-resolve. Also records this as an resolver error, so when + // the overall state turns transient failure, the error message will have + // the zero address information. + if len(s.ResolverState.Addresses) == 0 { + b.ResolverError(errors.New("produced zero addresses")) + return balancer.ErrBadResolverState + } + + b.regeneratePicker() + b.cc.UpdateState(balancer.State{ConnectivityState: b.state, Picker: b.picker}) + return nil +} + +// mergeErrors builds an error from the last connection error and the last +// resolver error. Must only be called if b.state is TransientFailure. +func (b *baseBalancer) mergeErrors() error { + // connErr must always be non-nil unless there are no SubConns, in which + // case resolverErr must be non-nil. + if b.connErr == nil { + return fmt.Errorf("last resolver error: %v", b.resolverErr) + } + if b.resolverErr == nil { + return fmt.Errorf("last connection error: %v", b.connErr) + } + return fmt.Errorf("last connection error: %v; last resolver error: %v", b.connErr, b.resolverErr) +} + +// regeneratePicker takes a snapshot of the balancer, and generates a picker +// from it. The picker is +// - errPicker if the balancer is in TransientFailure, +// - built by the pickerBuilder with all READY SubConns otherwise. +func (b *baseBalancer) regeneratePicker() { + if b.state == connectivity.TransientFailure { + b.picker = NewErrPicker(b.mergeErrors()) + return + } + readySCs := make(map[balancer.SubConn]SubConnInfo) + + // Filter out all ready SCs from full subConn map. + for _, addr := range b.subConns.Keys() { + sci, _ := b.subConns.Get(addr) + sc := sci.(balancer.SubConn) + if st, ok := b.scStates[sc]; ok && st == connectivity.Ready { + readySCs[sc] = SubConnInfo{Address: addr} + } + } + b.picker = b.pickerBuilder.Build(PickerBuildInfo{ReadySCs: readySCs}) +} + +func (b *baseBalancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { + s := state.ConnectivityState + if logger.V(2) { + logger.Infof("base.baseBalancer: handle SubConn state change: %p, %v", sc, s) + } + oldS, ok := b.scStates[sc] + if !ok { + if logger.V(2) { + logger.Infof("base.baseBalancer: got state changes for an unknown SubConn: %p, %v", sc, s) + } + return + } + if oldS == connectivity.TransientFailure && + (s == connectivity.Connecting || s == connectivity.Idle) { + // Once a subconn enters TRANSIENT_FAILURE, ignore subsequent IDLE or + // CONNECTING transitions to prevent the aggregated state from being + // always CONNECTING when many backends exist but are all down. + if s == connectivity.Idle { + sc.Connect() + } + return + } + b.scStates[sc] = s + switch s { + case connectivity.Idle: + sc.Connect() + case connectivity.Shutdown: + // When an address was removed by resolver, b called RemoveSubConn but + // kept the sc's state in scStates. Remove state for this sc here. + delete(b.scStates, sc) + case connectivity.TransientFailure: + // Save error to be reported via picker. + b.connErr = state.ConnectionError + } + + b.state = b.csEvltr.RecordTransition(oldS, s) + + // Regenerate picker when one of the following happens: + // - this sc entered or left ready + // - the aggregated state of balancer is TransientFailure + // (may need to update error message) + if (s == connectivity.Ready) != (oldS == connectivity.Ready) || + b.state == connectivity.TransientFailure { + b.regeneratePicker() + } + b.cc.UpdateState(balancer.State{ConnectivityState: b.state, Picker: b.picker}) +} + +// Close is a nop because base balancer doesn't have internal state to clean up, +// and it doesn't need to call RemoveSubConn for the SubConns. +func (b *baseBalancer) Close() { +} + +// ExitIdle is a nop because the base balancer attempts to stay connected to +// all SubConns at all times. +func (b *baseBalancer) ExitIdle() { +} + +// NewErrPicker returns a Picker that always returns err on Pick(). +func NewErrPicker(err error) balancer.Picker { + return &errPicker{err: err} +} + +// NewErrPickerV2 is temporarily defined for backward compatibility reasons. +// +// Deprecated: use NewErrPicker instead. +var NewErrPickerV2 = NewErrPicker + +type errPicker struct { + err error // Pick() always returns this err. +} + +func (p *errPicker) Pick(info balancer.PickInfo) (balancer.PickResult, error) { + return balancer.PickResult{}, p.err +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer/base/base.go b/ecs-agent/vendor/google.golang.org/grpc/balancer/base/base.go new file mode 100644 index 0000000000..e31d76e338 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer/base/base.go @@ -0,0 +1,71 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package base defines a balancer base that can be used to build balancers with +// different picking algorithms. +// +// The base balancer creates a new SubConn for each resolved address. The +// provided picker will only be notified about READY SubConns. +// +// This package is the base of round_robin balancer, its purpose is to be used +// to build round_robin like balancers with complex picking algorithms. +// Balancers with more complicated logic should try to implement a balancer +// builder from scratch. +// +// All APIs in this package are experimental. +package base + +import ( + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/resolver" +) + +// PickerBuilder creates balancer.Picker. +type PickerBuilder interface { + // Build returns a picker that will be used by gRPC to pick a SubConn. + Build(info PickerBuildInfo) balancer.Picker +} + +// PickerBuildInfo contains information needed by the picker builder to +// construct a picker. +type PickerBuildInfo struct { + // ReadySCs is a map from all ready SubConns to the Addresses used to + // create them. + ReadySCs map[balancer.SubConn]SubConnInfo +} + +// SubConnInfo contains information about a SubConn created by the base +// balancer. +type SubConnInfo struct { + Address resolver.Address // the address used to create this SubConn +} + +// Config contains the config info about the base balancer builder. +type Config struct { + // HealthCheck indicates whether health checking should be enabled for this specific balancer. + HealthCheck bool +} + +// NewBalancerBuilder returns a base balancer builder configured by the provided config. +func NewBalancerBuilder(name string, pb PickerBuilder, config Config) balancer.Builder { + return &baseBuilder{ + name: name, + pickerBuilder: pb, + config: config, + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer/conn_state_evaluator.go b/ecs-agent/vendor/google.golang.org/grpc/balancer/conn_state_evaluator.go new file mode 100644 index 0000000000..c334135810 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer/conn_state_evaluator.go @@ -0,0 +1,74 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package balancer + +import "google.golang.org/grpc/connectivity" + +// ConnectivityStateEvaluator takes the connectivity states of multiple SubConns +// and returns one aggregated connectivity state. +// +// It's not thread safe. +type ConnectivityStateEvaluator struct { + numReady uint64 // Number of addrConns in ready state. + numConnecting uint64 // Number of addrConns in connecting state. + numTransientFailure uint64 // Number of addrConns in transient failure state. + numIdle uint64 // Number of addrConns in idle state. +} + +// RecordTransition records state change happening in subConn and based on that +// it evaluates what aggregated state should be. +// +// - If at least one SubConn in Ready, the aggregated state is Ready; +// - Else if at least one SubConn in Connecting, the aggregated state is Connecting; +// - Else if at least one SubConn is Idle, the aggregated state is Idle; +// - Else if at least one SubConn is TransientFailure (or there are no SubConns), the aggregated state is Transient Failure. +// +// Shutdown is not considered. +func (cse *ConnectivityStateEvaluator) RecordTransition(oldState, newState connectivity.State) connectivity.State { + // Update counters. + for idx, state := range []connectivity.State{oldState, newState} { + updateVal := 2*uint64(idx) - 1 // -1 for oldState and +1 for new. + switch state { + case connectivity.Ready: + cse.numReady += updateVal + case connectivity.Connecting: + cse.numConnecting += updateVal + case connectivity.TransientFailure: + cse.numTransientFailure += updateVal + case connectivity.Idle: + cse.numIdle += updateVal + } + } + return cse.CurrentState() +} + +// CurrentState returns the current aggregate conn state by evaluating the counters +func (cse *ConnectivityStateEvaluator) CurrentState() connectivity.State { + // Evaluate. + if cse.numReady > 0 { + return connectivity.Ready + } + if cse.numConnecting > 0 { + return connectivity.Connecting + } + if cse.numIdle > 0 { + return connectivity.Idle + } + return connectivity.TransientFailure +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer/grpclb/grpclbstate/state.go b/ecs-agent/vendor/google.golang.org/grpc/balancer/grpclb/grpclbstate/state.go new file mode 100644 index 0000000000..cece046be3 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer/grpclb/grpclbstate/state.go @@ -0,0 +1,51 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpclbstate declares grpclb types to be set by resolvers wishing to +// pass information to grpclb via resolver.State Attributes. +package grpclbstate + +import ( + "google.golang.org/grpc/resolver" +) + +// keyType is the key to use for storing State in Attributes. +type keyType string + +const key = keyType("grpc.grpclb.grpclbstate") + +// State contains gRPCLB-relevant data passed from the name resolver. +type State struct { + // BalancerAddresses contains the remote load balancer address(es). If + // set, overrides any resolver-provided addresses with Type of GRPCLB. + BalancerAddresses []resolver.Address +} + +// Set returns a copy of the provided state with attributes containing s. s's +// data should not be mutated after calling Set. +func Set(state resolver.State, s *State) resolver.State { + state.Attributes = state.Attributes.WithValue(key, s) + return state +} + +// Get returns the grpclb State in the resolver.State, or nil if not present. +// The returned data should not be mutated. +func Get(state resolver.State) *State { + s, _ := state.Attributes.Value(key).(*State) + return s +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go b/ecs-agent/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go new file mode 100644 index 0000000000..f7031ad225 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer/roundrobin/roundrobin.go @@ -0,0 +1,81 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package roundrobin defines a roundrobin balancer. Roundrobin balancer is +// installed as one of the default balancers in gRPC, users don't need to +// explicitly install this balancer. +package roundrobin + +import ( + "sync/atomic" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/balancer/base" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/grpcrand" +) + +// Name is the name of round_robin balancer. +const Name = "round_robin" + +var logger = grpclog.Component("roundrobin") + +// newBuilder creates a new roundrobin balancer builder. +func newBuilder() balancer.Builder { + return base.NewBalancerBuilder(Name, &rrPickerBuilder{}, base.Config{HealthCheck: true}) +} + +func init() { + balancer.Register(newBuilder()) +} + +type rrPickerBuilder struct{} + +func (*rrPickerBuilder) Build(info base.PickerBuildInfo) balancer.Picker { + logger.Infof("roundrobinPicker: Build called with info: %v", info) + if len(info.ReadySCs) == 0 { + return base.NewErrPicker(balancer.ErrNoSubConnAvailable) + } + scs := make([]balancer.SubConn, 0, len(info.ReadySCs)) + for sc := range info.ReadySCs { + scs = append(scs, sc) + } + return &rrPicker{ + subConns: scs, + // Start at a random index, as the same RR balancer rebuilds a new + // picker when SubConn states change, and we don't want to apply excess + // load to the first server in the list. + next: uint32(grpcrand.Intn(len(scs))), + } +} + +type rrPicker struct { + // subConns is the snapshot of the roundrobin balancer when this picker was + // created. The slice is immutable. Each Get() will do a round robin + // selection from it and return the selected SubConn. + subConns []balancer.SubConn + next uint32 +} + +func (p *rrPicker) Pick(balancer.PickInfo) (balancer.PickResult, error) { + subConnsLen := uint32(len(p.subConns)) + nextIndex := atomic.AddUint32(&p.next, 1) + + sc := p.subConns[nextIndex%subConnsLen] + return balancer.PickResult{SubConn: sc}, nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/balancer_conn_wrappers.go b/ecs-agent/vendor/google.golang.org/grpc/balancer_conn_wrappers.go new file mode 100644 index 0000000000..0359956d36 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/balancer_conn_wrappers.go @@ -0,0 +1,481 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "fmt" + "strings" + "sync" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/internal/balancer/gracefulswitch" + "google.golang.org/grpc/internal/buffer" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/status" +) + +// ccBalancerWrapper sits between the ClientConn and the Balancer. +// +// ccBalancerWrapper implements methods corresponding to the ones on the +// balancer.Balancer interface. The ClientConn is free to call these methods +// concurrently and the ccBalancerWrapper ensures that calls from the ClientConn +// to the Balancer happen synchronously and in order. +// +// ccBalancerWrapper also implements the balancer.ClientConn interface and is +// passed to the Balancer implementations. It invokes unexported methods on the +// ClientConn to handle these calls from the Balancer. +// +// It uses the gracefulswitch.Balancer internally to ensure that balancer +// switches happen in a graceful manner. +type ccBalancerWrapper struct { + cc *ClientConn + + // Since these fields are accessed only from handleXxx() methods which are + // synchronized by the watcher goroutine, we do not need a mutex to protect + // these fields. + balancer *gracefulswitch.Balancer + curBalancerName string + + updateCh *buffer.Unbounded // Updates written on this channel are processed by watcher(). + resultCh *buffer.Unbounded // Results of calls to UpdateClientConnState() are pushed here. + closed *grpcsync.Event // Indicates if close has been called. + done *grpcsync.Event // Indicates if close has completed its work. +} + +// newCCBalancerWrapper creates a new balancer wrapper. The underlying balancer +// is not created until the switchTo() method is invoked. +func newCCBalancerWrapper(cc *ClientConn, bopts balancer.BuildOptions) *ccBalancerWrapper { + ccb := &ccBalancerWrapper{ + cc: cc, + updateCh: buffer.NewUnbounded(), + resultCh: buffer.NewUnbounded(), + closed: grpcsync.NewEvent(), + done: grpcsync.NewEvent(), + } + go ccb.watcher() + ccb.balancer = gracefulswitch.NewBalancer(ccb, bopts) + return ccb +} + +// The following xxxUpdate structs wrap the arguments received as part of the +// corresponding update. The watcher goroutine uses the 'type' of the update to +// invoke the appropriate handler routine to handle the update. + +type ccStateUpdate struct { + ccs *balancer.ClientConnState +} + +type scStateUpdate struct { + sc balancer.SubConn + state connectivity.State + err error +} + +type exitIdleUpdate struct{} + +type resolverErrorUpdate struct { + err error +} + +type switchToUpdate struct { + name string +} + +type subConnUpdate struct { + acbw *acBalancerWrapper +} + +// watcher is a long-running goroutine which reads updates from a channel and +// invokes corresponding methods on the underlying balancer. It ensures that +// these methods are invoked in a synchronous fashion. It also ensures that +// these methods are invoked in the order in which the updates were received. +func (ccb *ccBalancerWrapper) watcher() { + for { + select { + case u := <-ccb.updateCh.Get(): + ccb.updateCh.Load() + if ccb.closed.HasFired() { + break + } + switch update := u.(type) { + case *ccStateUpdate: + ccb.handleClientConnStateChange(update.ccs) + case *scStateUpdate: + ccb.handleSubConnStateChange(update) + case *exitIdleUpdate: + ccb.handleExitIdle() + case *resolverErrorUpdate: + ccb.handleResolverError(update.err) + case *switchToUpdate: + ccb.handleSwitchTo(update.name) + case *subConnUpdate: + ccb.handleRemoveSubConn(update.acbw) + default: + logger.Errorf("ccBalancerWrapper.watcher: unknown update %+v, type %T", update, update) + } + case <-ccb.closed.Done(): + } + + if ccb.closed.HasFired() { + ccb.handleClose() + return + } + } +} + +// updateClientConnState is invoked by grpc to push a ClientConnState update to +// the underlying balancer. +// +// Unlike other methods invoked by grpc to push updates to the underlying +// balancer, this method cannot simply push the update onto the update channel +// and return. It needs to return the error returned by the underlying balancer +// back to grpc which propagates that to the resolver. +func (ccb *ccBalancerWrapper) updateClientConnState(ccs *balancer.ClientConnState) error { + ccb.updateCh.Put(&ccStateUpdate{ccs: ccs}) + + var res interface{} + select { + case res = <-ccb.resultCh.Get(): + ccb.resultCh.Load() + case <-ccb.closed.Done(): + // Return early if the balancer wrapper is closed while we are waiting for + // the underlying balancer to process a ClientConnState update. + return nil + } + // If the returned error is nil, attempting to type assert to error leads to + // panic. So, this needs to handled separately. + if res == nil { + return nil + } + return res.(error) +} + +// handleClientConnStateChange handles a ClientConnState update from the update +// channel and invokes the appropriate method on the underlying balancer. +// +// If the addresses specified in the update contain addresses of type "grpclb" +// and the selected LB policy is not "grpclb", these addresses will be filtered +// out and ccs will be modified with the updated address list. +func (ccb *ccBalancerWrapper) handleClientConnStateChange(ccs *balancer.ClientConnState) { + if ccb.curBalancerName != grpclbName { + // Filter any grpclb addresses since we don't have the grpclb balancer. + var addrs []resolver.Address + for _, addr := range ccs.ResolverState.Addresses { + if addr.Type == resolver.GRPCLB { + continue + } + addrs = append(addrs, addr) + } + ccs.ResolverState.Addresses = addrs + } + ccb.resultCh.Put(ccb.balancer.UpdateClientConnState(*ccs)) +} + +// updateSubConnState is invoked by grpc to push a subConn state update to the +// underlying balancer. +func (ccb *ccBalancerWrapper) updateSubConnState(sc balancer.SubConn, s connectivity.State, err error) { + // When updating addresses for a SubConn, if the address in use is not in + // the new addresses, the old ac will be tearDown() and a new ac will be + // created. tearDown() generates a state change with Shutdown state, we + // don't want the balancer to receive this state change. So before + // tearDown() on the old ac, ac.acbw (acWrapper) will be set to nil, and + // this function will be called with (nil, Shutdown). We don't need to call + // balancer method in this case. + if sc == nil { + return + } + ccb.updateCh.Put(&scStateUpdate{ + sc: sc, + state: s, + err: err, + }) +} + +// handleSubConnStateChange handles a SubConnState update from the update +// channel and invokes the appropriate method on the underlying balancer. +func (ccb *ccBalancerWrapper) handleSubConnStateChange(update *scStateUpdate) { + ccb.balancer.UpdateSubConnState(update.sc, balancer.SubConnState{ConnectivityState: update.state, ConnectionError: update.err}) +} + +func (ccb *ccBalancerWrapper) exitIdle() { + ccb.updateCh.Put(&exitIdleUpdate{}) +} + +func (ccb *ccBalancerWrapper) handleExitIdle() { + if ccb.cc.GetState() != connectivity.Idle { + return + } + ccb.balancer.ExitIdle() +} + +func (ccb *ccBalancerWrapper) resolverError(err error) { + ccb.updateCh.Put(&resolverErrorUpdate{err: err}) +} + +func (ccb *ccBalancerWrapper) handleResolverError(err error) { + ccb.balancer.ResolverError(err) +} + +// switchTo is invoked by grpc to instruct the balancer wrapper to switch to the +// LB policy identified by name. +// +// ClientConn calls newCCBalancerWrapper() at creation time. Upon receipt of the +// first good update from the name resolver, it determines the LB policy to use +// and invokes the switchTo() method. Upon receipt of every subsequent update +// from the name resolver, it invokes this method. +// +// the ccBalancerWrapper keeps track of the current LB policy name, and skips +// the graceful balancer switching process if the name does not change. +func (ccb *ccBalancerWrapper) switchTo(name string) { + ccb.updateCh.Put(&switchToUpdate{name: name}) +} + +// handleSwitchTo handles a balancer switch update from the update channel. It +// calls the SwitchTo() method on the gracefulswitch.Balancer with a +// balancer.Builder corresponding to name. If no balancer.Builder is registered +// for the given name, it uses the default LB policy which is "pick_first". +func (ccb *ccBalancerWrapper) handleSwitchTo(name string) { + // TODO: Other languages use case-insensitive balancer registries. We should + // switch as well. See: https://github.com/grpc/grpc-go/issues/5288. + if strings.EqualFold(ccb.curBalancerName, name) { + return + } + + // TODO: Ensure that name is a registered LB policy when we get here. + // We currently only validate the `loadBalancingConfig` field. We need to do + // the same for the `loadBalancingPolicy` field and reject the service config + // if the specified policy is not registered. + builder := balancer.Get(name) + if builder == nil { + channelz.Warningf(logger, ccb.cc.channelzID, "Channel switches to new LB policy %q, since the specified LB policy %q was not registered", PickFirstBalancerName, name) + builder = newPickfirstBuilder() + } else { + channelz.Infof(logger, ccb.cc.channelzID, "Channel switches to new LB policy %q", name) + } + + if err := ccb.balancer.SwitchTo(builder); err != nil { + channelz.Errorf(logger, ccb.cc.channelzID, "Channel failed to build new LB policy %q: %v", name, err) + return + } + ccb.curBalancerName = builder.Name() +} + +// handleRemoveSucConn handles a request from the underlying balancer to remove +// a subConn. +// +// See comments in RemoveSubConn() for more details. +func (ccb *ccBalancerWrapper) handleRemoveSubConn(acbw *acBalancerWrapper) { + ccb.cc.removeAddrConn(acbw.getAddrConn(), errConnDrain) +} + +func (ccb *ccBalancerWrapper) close() { + ccb.closed.Fire() + <-ccb.done.Done() +} + +func (ccb *ccBalancerWrapper) handleClose() { + ccb.balancer.Close() + ccb.done.Fire() +} + +func (ccb *ccBalancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) { + if len(addrs) <= 0 { + return nil, fmt.Errorf("grpc: cannot create SubConn with empty address list") + } + ac, err := ccb.cc.newAddrConn(addrs, opts) + if err != nil { + channelz.Warningf(logger, ccb.cc.channelzID, "acBalancerWrapper: NewSubConn: failed to newAddrConn: %v", err) + return nil, err + } + acbw := &acBalancerWrapper{ac: ac, producers: make(map[balancer.ProducerBuilder]*refCountedProducer)} + acbw.ac.mu.Lock() + ac.acbw = acbw + acbw.ac.mu.Unlock() + return acbw, nil +} + +func (ccb *ccBalancerWrapper) RemoveSubConn(sc balancer.SubConn) { + // Before we switched the ccBalancerWrapper to use gracefulswitch.Balancer, it + // was required to handle the RemoveSubConn() method asynchronously by pushing + // the update onto the update channel. This was done to avoid a deadlock as + // switchBalancer() was holding cc.mu when calling Close() on the old + // balancer, which would in turn call RemoveSubConn(). + // + // With the use of gracefulswitch.Balancer in ccBalancerWrapper, handling this + // asynchronously is probably not required anymore since the switchTo() method + // handles the balancer switch by pushing the update onto the channel. + // TODO(easwars): Handle this inline. + acbw, ok := sc.(*acBalancerWrapper) + if !ok { + return + } + ccb.updateCh.Put(&subConnUpdate{acbw: acbw}) +} + +func (ccb *ccBalancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver.Address) { + acbw, ok := sc.(*acBalancerWrapper) + if !ok { + return + } + acbw.UpdateAddresses(addrs) +} + +func (ccb *ccBalancerWrapper) UpdateState(s balancer.State) { + // Update picker before updating state. Even though the ordering here does + // not matter, it can lead to multiple calls of Pick in the common start-up + // case where we wait for ready and then perform an RPC. If the picker is + // updated later, we could call the "connecting" picker when the state is + // updated, and then call the "ready" picker after the picker gets updated. + ccb.cc.blockingpicker.updatePicker(s.Picker) + ccb.cc.csMgr.updateState(s.ConnectivityState) +} + +func (ccb *ccBalancerWrapper) ResolveNow(o resolver.ResolveNowOptions) { + ccb.cc.resolveNow(o) +} + +func (ccb *ccBalancerWrapper) Target() string { + return ccb.cc.target +} + +// acBalancerWrapper is a wrapper on top of ac for balancers. +// It implements balancer.SubConn interface. +type acBalancerWrapper struct { + mu sync.Mutex + ac *addrConn + producers map[balancer.ProducerBuilder]*refCountedProducer +} + +func (acbw *acBalancerWrapper) UpdateAddresses(addrs []resolver.Address) { + acbw.mu.Lock() + defer acbw.mu.Unlock() + if len(addrs) <= 0 { + acbw.ac.cc.removeAddrConn(acbw.ac, errConnDrain) + return + } + if !acbw.ac.tryUpdateAddrs(addrs) { + cc := acbw.ac.cc + opts := acbw.ac.scopts + acbw.ac.mu.Lock() + // Set old ac.acbw to nil so the Shutdown state update will be ignored + // by balancer. + // + // TODO(bar) the state transition could be wrong when tearDown() old ac + // and creating new ac, fix the transition. + acbw.ac.acbw = nil + acbw.ac.mu.Unlock() + acState := acbw.ac.getState() + acbw.ac.cc.removeAddrConn(acbw.ac, errConnDrain) + + if acState == connectivity.Shutdown { + return + } + + newAC, err := cc.newAddrConn(addrs, opts) + if err != nil { + channelz.Warningf(logger, acbw.ac.channelzID, "acBalancerWrapper: UpdateAddresses: failed to newAddrConn: %v", err) + return + } + acbw.ac = newAC + newAC.mu.Lock() + newAC.acbw = acbw + newAC.mu.Unlock() + if acState != connectivity.Idle { + go newAC.connect() + } + } +} + +func (acbw *acBalancerWrapper) Connect() { + acbw.mu.Lock() + defer acbw.mu.Unlock() + go acbw.ac.connect() +} + +func (acbw *acBalancerWrapper) getAddrConn() *addrConn { + acbw.mu.Lock() + defer acbw.mu.Unlock() + return acbw.ac +} + +var errSubConnNotReady = status.Error(codes.Unavailable, "SubConn not currently connected") + +// NewStream begins a streaming RPC on the addrConn. If the addrConn is not +// ready, returns errSubConnNotReady. +func (acbw *acBalancerWrapper) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) { + transport := acbw.ac.getReadyTransport() + if transport == nil { + return nil, errSubConnNotReady + } + return newNonRetryClientStream(ctx, desc, method, transport, acbw.ac, opts...) +} + +// Invoke performs a unary RPC. If the addrConn is not ready, returns +// errSubConnNotReady. +func (acbw *acBalancerWrapper) Invoke(ctx context.Context, method string, args interface{}, reply interface{}, opts ...CallOption) error { + cs, err := acbw.NewStream(ctx, unaryStreamDesc, method, opts...) + if err != nil { + return err + } + if err := cs.SendMsg(args); err != nil { + return err + } + return cs.RecvMsg(reply) +} + +type refCountedProducer struct { + producer balancer.Producer + refs int // number of current refs to the producer + close func() // underlying producer's close function +} + +func (acbw *acBalancerWrapper) GetOrBuildProducer(pb balancer.ProducerBuilder) (balancer.Producer, func()) { + acbw.mu.Lock() + defer acbw.mu.Unlock() + + // Look up existing producer from this builder. + pData := acbw.producers[pb] + if pData == nil { + // Not found; create a new one and add it to the producers map. + p, close := pb.Build(acbw) + pData = &refCountedProducer{producer: p, close: close} + acbw.producers[pb] = pData + } + // Account for this new reference. + pData.refs++ + + // Return a cleanup function wrapped in a OnceFunc to remove this reference + // and delete the refCountedProducer from the map if the total reference + // count goes to zero. + unref := func() { + acbw.mu.Lock() + pData.refs-- + if pData.refs == 0 { + defer pData.close() // Run outside the acbw mutex + delete(acbw.producers, pb) + } + acbw.mu.Unlock() + } + return pData.producer, grpcsync.OnceFunc(unref) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go b/ecs-agent/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go new file mode 100644 index 0000000000..66d141fce7 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/binarylog/grpc_binarylog_v1/binarylog.pb.go @@ -0,0 +1,1183 @@ +// Copyright 2018 The gRPC Authors +// All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// The canonical version of this proto can be found at +// https://github.com/grpc/grpc-proto/blob/master/grpc/binlog/v1/binarylog.proto + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v3.14.0 +// source: grpc/binlog/v1/binarylog.proto + +package grpc_binarylog_v1 + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Enumerates the type of event +// Note the terminology is different from the RPC semantics +// definition, but the same meaning is expressed here. +type GrpcLogEntry_EventType int32 + +const ( + GrpcLogEntry_EVENT_TYPE_UNKNOWN GrpcLogEntry_EventType = 0 + // Header sent from client to server + GrpcLogEntry_EVENT_TYPE_CLIENT_HEADER GrpcLogEntry_EventType = 1 + // Header sent from server to client + GrpcLogEntry_EVENT_TYPE_SERVER_HEADER GrpcLogEntry_EventType = 2 + // Message sent from client to server + GrpcLogEntry_EVENT_TYPE_CLIENT_MESSAGE GrpcLogEntry_EventType = 3 + // Message sent from server to client + GrpcLogEntry_EVENT_TYPE_SERVER_MESSAGE GrpcLogEntry_EventType = 4 + // A signal that client is done sending + GrpcLogEntry_EVENT_TYPE_CLIENT_HALF_CLOSE GrpcLogEntry_EventType = 5 + // Trailer indicates the end of the RPC. + // On client side, this event means a trailer was either received + // from the network or the gRPC library locally generated a status + // to inform the application about a failure. + // On server side, this event means the server application requested + // to send a trailer. Note: EVENT_TYPE_CANCEL may still arrive after + // this due to races on server side. + GrpcLogEntry_EVENT_TYPE_SERVER_TRAILER GrpcLogEntry_EventType = 6 + // A signal that the RPC is cancelled. On client side, this + // indicates the client application requests a cancellation. + // On server side, this indicates that cancellation was detected. + // Note: This marks the end of the RPC. Events may arrive after + // this due to races. For example, on client side a trailer + // may arrive even though the application requested to cancel the RPC. + GrpcLogEntry_EVENT_TYPE_CANCEL GrpcLogEntry_EventType = 7 +) + +// Enum value maps for GrpcLogEntry_EventType. +var ( + GrpcLogEntry_EventType_name = map[int32]string{ + 0: "EVENT_TYPE_UNKNOWN", + 1: "EVENT_TYPE_CLIENT_HEADER", + 2: "EVENT_TYPE_SERVER_HEADER", + 3: "EVENT_TYPE_CLIENT_MESSAGE", + 4: "EVENT_TYPE_SERVER_MESSAGE", + 5: "EVENT_TYPE_CLIENT_HALF_CLOSE", + 6: "EVENT_TYPE_SERVER_TRAILER", + 7: "EVENT_TYPE_CANCEL", + } + GrpcLogEntry_EventType_value = map[string]int32{ + "EVENT_TYPE_UNKNOWN": 0, + "EVENT_TYPE_CLIENT_HEADER": 1, + "EVENT_TYPE_SERVER_HEADER": 2, + "EVENT_TYPE_CLIENT_MESSAGE": 3, + "EVENT_TYPE_SERVER_MESSAGE": 4, + "EVENT_TYPE_CLIENT_HALF_CLOSE": 5, + "EVENT_TYPE_SERVER_TRAILER": 6, + "EVENT_TYPE_CANCEL": 7, + } +) + +func (x GrpcLogEntry_EventType) Enum() *GrpcLogEntry_EventType { + p := new(GrpcLogEntry_EventType) + *p = x + return p +} + +func (x GrpcLogEntry_EventType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GrpcLogEntry_EventType) Descriptor() protoreflect.EnumDescriptor { + return file_grpc_binlog_v1_binarylog_proto_enumTypes[0].Descriptor() +} + +func (GrpcLogEntry_EventType) Type() protoreflect.EnumType { + return &file_grpc_binlog_v1_binarylog_proto_enumTypes[0] +} + +func (x GrpcLogEntry_EventType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GrpcLogEntry_EventType.Descriptor instead. +func (GrpcLogEntry_EventType) EnumDescriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{0, 0} +} + +// Enumerates the entity that generates the log entry +type GrpcLogEntry_Logger int32 + +const ( + GrpcLogEntry_LOGGER_UNKNOWN GrpcLogEntry_Logger = 0 + GrpcLogEntry_LOGGER_CLIENT GrpcLogEntry_Logger = 1 + GrpcLogEntry_LOGGER_SERVER GrpcLogEntry_Logger = 2 +) + +// Enum value maps for GrpcLogEntry_Logger. +var ( + GrpcLogEntry_Logger_name = map[int32]string{ + 0: "LOGGER_UNKNOWN", + 1: "LOGGER_CLIENT", + 2: "LOGGER_SERVER", + } + GrpcLogEntry_Logger_value = map[string]int32{ + "LOGGER_UNKNOWN": 0, + "LOGGER_CLIENT": 1, + "LOGGER_SERVER": 2, + } +) + +func (x GrpcLogEntry_Logger) Enum() *GrpcLogEntry_Logger { + p := new(GrpcLogEntry_Logger) + *p = x + return p +} + +func (x GrpcLogEntry_Logger) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GrpcLogEntry_Logger) Descriptor() protoreflect.EnumDescriptor { + return file_grpc_binlog_v1_binarylog_proto_enumTypes[1].Descriptor() +} + +func (GrpcLogEntry_Logger) Type() protoreflect.EnumType { + return &file_grpc_binlog_v1_binarylog_proto_enumTypes[1] +} + +func (x GrpcLogEntry_Logger) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GrpcLogEntry_Logger.Descriptor instead. +func (GrpcLogEntry_Logger) EnumDescriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{0, 1} +} + +type Address_Type int32 + +const ( + Address_TYPE_UNKNOWN Address_Type = 0 + // address is in 1.2.3.4 form + Address_TYPE_IPV4 Address_Type = 1 + // address is in IPv6 canonical form (RFC5952 section 4) + // The scope is NOT included in the address string. + Address_TYPE_IPV6 Address_Type = 2 + // address is UDS string + Address_TYPE_UNIX Address_Type = 3 +) + +// Enum value maps for Address_Type. +var ( + Address_Type_name = map[int32]string{ + 0: "TYPE_UNKNOWN", + 1: "TYPE_IPV4", + 2: "TYPE_IPV6", + 3: "TYPE_UNIX", + } + Address_Type_value = map[string]int32{ + "TYPE_UNKNOWN": 0, + "TYPE_IPV4": 1, + "TYPE_IPV6": 2, + "TYPE_UNIX": 3, + } +) + +func (x Address_Type) Enum() *Address_Type { + p := new(Address_Type) + *p = x + return p +} + +func (x Address_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Address_Type) Descriptor() protoreflect.EnumDescriptor { + return file_grpc_binlog_v1_binarylog_proto_enumTypes[2].Descriptor() +} + +func (Address_Type) Type() protoreflect.EnumType { + return &file_grpc_binlog_v1_binarylog_proto_enumTypes[2] +} + +func (x Address_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Address_Type.Descriptor instead. +func (Address_Type) EnumDescriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{7, 0} +} + +// Log entry we store in binary logs +type GrpcLogEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The timestamp of the binary log message + Timestamp *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + // Uniquely identifies a call. The value must not be 0 in order to disambiguate + // from an unset value. + // Each call may have several log entries, they will all have the same call_id. + // Nothing is guaranteed about their value other than they are unique across + // different RPCs in the same gRPC process. + CallId uint64 `protobuf:"varint,2,opt,name=call_id,json=callId,proto3" json:"call_id,omitempty"` + // The entry sequence id for this call. The first GrpcLogEntry has a + // value of 1, to disambiguate from an unset value. The purpose of + // this field is to detect missing entries in environments where + // durability or ordering is not guaranteed. + SequenceIdWithinCall uint64 `protobuf:"varint,3,opt,name=sequence_id_within_call,json=sequenceIdWithinCall,proto3" json:"sequence_id_within_call,omitempty"` + Type GrpcLogEntry_EventType `protobuf:"varint,4,opt,name=type,proto3,enum=grpc.binarylog.v1.GrpcLogEntry_EventType" json:"type,omitempty"` + Logger GrpcLogEntry_Logger `protobuf:"varint,5,opt,name=logger,proto3,enum=grpc.binarylog.v1.GrpcLogEntry_Logger" json:"logger,omitempty"` // One of the above Logger enum + // The logger uses one of the following fields to record the payload, + // according to the type of the log entry. + // + // Types that are assignable to Payload: + // + // *GrpcLogEntry_ClientHeader + // *GrpcLogEntry_ServerHeader + // *GrpcLogEntry_Message + // *GrpcLogEntry_Trailer + Payload isGrpcLogEntry_Payload `protobuf_oneof:"payload"` + // true if payload does not represent the full message or metadata. + PayloadTruncated bool `protobuf:"varint,10,opt,name=payload_truncated,json=payloadTruncated,proto3" json:"payload_truncated,omitempty"` + // Peer address information, will only be recorded on the first + // incoming event. On client side, peer is logged on + // EVENT_TYPE_SERVER_HEADER normally or EVENT_TYPE_SERVER_TRAILER in + // the case of trailers-only. On server side, peer is always + // logged on EVENT_TYPE_CLIENT_HEADER. + Peer *Address `protobuf:"bytes,11,opt,name=peer,proto3" json:"peer,omitempty"` +} + +func (x *GrpcLogEntry) Reset() { + *x = GrpcLogEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GrpcLogEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GrpcLogEntry) ProtoMessage() {} + +func (x *GrpcLogEntry) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GrpcLogEntry.ProtoReflect.Descriptor instead. +func (*GrpcLogEntry) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{0} +} + +func (x *GrpcLogEntry) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *GrpcLogEntry) GetCallId() uint64 { + if x != nil { + return x.CallId + } + return 0 +} + +func (x *GrpcLogEntry) GetSequenceIdWithinCall() uint64 { + if x != nil { + return x.SequenceIdWithinCall + } + return 0 +} + +func (x *GrpcLogEntry) GetType() GrpcLogEntry_EventType { + if x != nil { + return x.Type + } + return GrpcLogEntry_EVENT_TYPE_UNKNOWN +} + +func (x *GrpcLogEntry) GetLogger() GrpcLogEntry_Logger { + if x != nil { + return x.Logger + } + return GrpcLogEntry_LOGGER_UNKNOWN +} + +func (m *GrpcLogEntry) GetPayload() isGrpcLogEntry_Payload { + if m != nil { + return m.Payload + } + return nil +} + +func (x *GrpcLogEntry) GetClientHeader() *ClientHeader { + if x, ok := x.GetPayload().(*GrpcLogEntry_ClientHeader); ok { + return x.ClientHeader + } + return nil +} + +func (x *GrpcLogEntry) GetServerHeader() *ServerHeader { + if x, ok := x.GetPayload().(*GrpcLogEntry_ServerHeader); ok { + return x.ServerHeader + } + return nil +} + +func (x *GrpcLogEntry) GetMessage() *Message { + if x, ok := x.GetPayload().(*GrpcLogEntry_Message); ok { + return x.Message + } + return nil +} + +func (x *GrpcLogEntry) GetTrailer() *Trailer { + if x, ok := x.GetPayload().(*GrpcLogEntry_Trailer); ok { + return x.Trailer + } + return nil +} + +func (x *GrpcLogEntry) GetPayloadTruncated() bool { + if x != nil { + return x.PayloadTruncated + } + return false +} + +func (x *GrpcLogEntry) GetPeer() *Address { + if x != nil { + return x.Peer + } + return nil +} + +type isGrpcLogEntry_Payload interface { + isGrpcLogEntry_Payload() +} + +type GrpcLogEntry_ClientHeader struct { + ClientHeader *ClientHeader `protobuf:"bytes,6,opt,name=client_header,json=clientHeader,proto3,oneof"` +} + +type GrpcLogEntry_ServerHeader struct { + ServerHeader *ServerHeader `protobuf:"bytes,7,opt,name=server_header,json=serverHeader,proto3,oneof"` +} + +type GrpcLogEntry_Message struct { + // Used by EVENT_TYPE_CLIENT_MESSAGE, EVENT_TYPE_SERVER_MESSAGE + Message *Message `protobuf:"bytes,8,opt,name=message,proto3,oneof"` +} + +type GrpcLogEntry_Trailer struct { + Trailer *Trailer `protobuf:"bytes,9,opt,name=trailer,proto3,oneof"` +} + +func (*GrpcLogEntry_ClientHeader) isGrpcLogEntry_Payload() {} + +func (*GrpcLogEntry_ServerHeader) isGrpcLogEntry_Payload() {} + +func (*GrpcLogEntry_Message) isGrpcLogEntry_Payload() {} + +func (*GrpcLogEntry_Trailer) isGrpcLogEntry_Payload() {} + +type ClientHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This contains only the metadata from the application. + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // The name of the RPC method, which looks something like: + // // + // Note the leading "/" character. + MethodName string `protobuf:"bytes,2,opt,name=method_name,json=methodName,proto3" json:"method_name,omitempty"` + // A single process may be used to run multiple virtual + // servers with different identities. + // The authority is the name of such a server identitiy. + // It is typically a portion of the URI in the form of + // or : . + Authority string `protobuf:"bytes,3,opt,name=authority,proto3" json:"authority,omitempty"` + // the RPC timeout + Timeout *durationpb.Duration `protobuf:"bytes,4,opt,name=timeout,proto3" json:"timeout,omitempty"` +} + +func (x *ClientHeader) Reset() { + *x = ClientHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClientHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClientHeader) ProtoMessage() {} + +func (x *ClientHeader) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClientHeader.ProtoReflect.Descriptor instead. +func (*ClientHeader) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{1} +} + +func (x *ClientHeader) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ClientHeader) GetMethodName() string { + if x != nil { + return x.MethodName + } + return "" +} + +func (x *ClientHeader) GetAuthority() string { + if x != nil { + return x.Authority + } + return "" +} + +func (x *ClientHeader) GetTimeout() *durationpb.Duration { + if x != nil { + return x.Timeout + } + return nil +} + +type ServerHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This contains only the metadata from the application. + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *ServerHeader) Reset() { + *x = ServerHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerHeader) ProtoMessage() {} + +func (x *ServerHeader) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServerHeader.ProtoReflect.Descriptor instead. +func (*ServerHeader) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{2} +} + +func (x *ServerHeader) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +type Trailer struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This contains only the metadata from the application. + Metadata *Metadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // The gRPC status code. + StatusCode uint32 `protobuf:"varint,2,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"` + // An original status message before any transport specific + // encoding. + StatusMessage string `protobuf:"bytes,3,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // The value of the 'grpc-status-details-bin' metadata key. If + // present, this is always an encoded 'google.rpc.Status' message. + StatusDetails []byte `protobuf:"bytes,4,opt,name=status_details,json=statusDetails,proto3" json:"status_details,omitempty"` +} + +func (x *Trailer) Reset() { + *x = Trailer{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Trailer) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Trailer) ProtoMessage() {} + +func (x *Trailer) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Trailer.ProtoReflect.Descriptor instead. +func (*Trailer) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{3} +} + +func (x *Trailer) GetMetadata() *Metadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *Trailer) GetStatusCode() uint32 { + if x != nil { + return x.StatusCode + } + return 0 +} + +func (x *Trailer) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *Trailer) GetStatusDetails() []byte { + if x != nil { + return x.StatusDetails + } + return nil +} + +// Message payload, used by CLIENT_MESSAGE and SERVER_MESSAGE +type Message struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Length of the message. It may not be the same as the length of the + // data field, as the logging payload can be truncated or omitted. + Length uint32 `protobuf:"varint,1,opt,name=length,proto3" json:"length,omitempty"` + // May be truncated or omitted. + Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *Message) Reset() { + *x = Message{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Message) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Message) ProtoMessage() {} + +func (x *Message) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Message.ProtoReflect.Descriptor instead. +func (*Message) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{4} +} + +func (x *Message) GetLength() uint32 { + if x != nil { + return x.Length + } + return 0 +} + +func (x *Message) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +// A list of metadata pairs, used in the payload of client header, +// server header, and server trailer. +// Implementations may omit some entries to honor the header limits +// of GRPC_BINARY_LOG_CONFIG. +// +// Header keys added by gRPC are omitted. To be more specific, +// implementations will not log the following entries, and this is +// not to be treated as a truncation: +// - entries handled by grpc that are not user visible, such as those +// that begin with 'grpc-' (with exception of grpc-trace-bin) +// or keys like 'lb-token' +// - transport specific entries, including but not limited to: +// ':path', ':authority', 'content-encoding', 'user-agent', 'te', etc +// - entries added for call credentials +// +// Implementations must always log grpc-trace-bin if it is present. +// Practically speaking it will only be visible on server side because +// grpc-trace-bin is managed by low level client side mechanisms +// inaccessible from the application level. On server side, the +// header is just a normal metadata key. +// The pair will not count towards the size limit. +type Metadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Entry []*MetadataEntry `protobuf:"bytes,1,rep,name=entry,proto3" json:"entry,omitempty"` +} + +func (x *Metadata) Reset() { + *x = Metadata{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Metadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metadata) ProtoMessage() {} + +func (x *Metadata) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Metadata.ProtoReflect.Descriptor instead. +func (*Metadata) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{5} +} + +func (x *Metadata) GetEntry() []*MetadataEntry { + if x != nil { + return x.Entry + } + return nil +} + +// A metadata key value pair +type MetadataEntry struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *MetadataEntry) Reset() { + *x = MetadataEntry{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MetadataEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetadataEntry) ProtoMessage() {} + +func (x *MetadataEntry) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MetadataEntry.ProtoReflect.Descriptor instead. +func (*MetadataEntry) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{6} +} + +func (x *MetadataEntry) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *MetadataEntry) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +// Address information +type Address struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Type Address_Type `protobuf:"varint,1,opt,name=type,proto3,enum=grpc.binarylog.v1.Address_Type" json:"type,omitempty"` + Address string `protobuf:"bytes,2,opt,name=address,proto3" json:"address,omitempty"` + // only for TYPE_IPV4 and TYPE_IPV6 + IpPort uint32 `protobuf:"varint,3,opt,name=ip_port,json=ipPort,proto3" json:"ip_port,omitempty"` +} + +func (x *Address) Reset() { + *x = Address{} + if protoimpl.UnsafeEnabled { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Address) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Address) ProtoMessage() {} + +func (x *Address) ProtoReflect() protoreflect.Message { + mi := &file_grpc_binlog_v1_binarylog_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Address.ProtoReflect.Descriptor instead. +func (*Address) Descriptor() ([]byte, []int) { + return file_grpc_binlog_v1_binarylog_proto_rawDescGZIP(), []int{7} +} + +func (x *Address) GetType() Address_Type { + if x != nil { + return x.Type + } + return Address_TYPE_UNKNOWN +} + +func (x *Address) GetAddress() string { + if x != nil { + return x.Address + } + return "" +} + +func (x *Address) GetIpPort() uint32 { + if x != nil { + return x.IpPort + } + return 0 +} + +var File_grpc_binlog_v1_binarylog_proto protoreflect.FileDescriptor + +var file_grpc_binlog_v1_binarylog_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x62, 0x69, 0x6e, 0x6c, 0x6f, 0x67, 0x2f, 0x76, 0x31, + 0x2f, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x11, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, + 0x2e, 0x76, 0x31, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbb, 0x07, 0x0a, 0x0c, 0x47, 0x72, 0x70, 0x63, 0x4c, 0x6f, 0x67, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x17, 0x0a, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x73, 0x65, 0x71, 0x75, + 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5f, 0x63, + 0x61, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x14, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x43, 0x61, 0x6c, 0x6c, 0x12, + 0x3d, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x3e, + 0x0a, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x72, 0x70, 0x63, 0x4c, 0x6f, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x2e, + 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x52, 0x06, 0x6c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x12, 0x46, + 0x0a, 0x0d, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x00, + 0x52, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x36, + 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, + 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, + 0x6c, 0x65, 0x72, 0x48, 0x00, 0x52, 0x07, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x2b, + 0x0a, 0x11, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x04, 0x70, + 0x65, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x70, 0x63, + 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x04, 0x70, 0x65, 0x65, 0x72, 0x22, 0xf5, 0x01, 0x0a, 0x09, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x56, 0x45, + 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x01, 0x12, + 0x1c, 0x0a, 0x18, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, + 0x52, 0x56, 0x45, 0x52, 0x5f, 0x48, 0x45, 0x41, 0x44, 0x45, 0x52, 0x10, 0x02, 0x12, 0x1d, 0x0a, + 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x45, + 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x45, + 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, + 0x5f, 0x48, 0x41, 0x4c, 0x46, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x10, 0x05, 0x12, 0x1d, 0x0a, + 0x19, 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, + 0x45, 0x52, 0x5f, 0x54, 0x52, 0x41, 0x49, 0x4c, 0x45, 0x52, 0x10, 0x06, 0x12, 0x15, 0x0a, 0x11, + 0x45, 0x56, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, + 0x4c, 0x10, 0x07, 0x22, 0x42, 0x0a, 0x06, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x72, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x4f, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x49, 0x45, + 0x4e, 0x54, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x47, 0x47, 0x45, 0x52, 0x5f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x22, 0xbb, 0x01, 0x0a, 0x0c, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x07, 0x74, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x22, 0x47, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb1, 0x01, 0x0a, 0x07, 0x54, 0x72, + 0x61, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x35, 0x0a, + 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x42, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x36, 0x0a, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x05, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x37, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x22, 0xb8, 0x01, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x33, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x67, 0x72, + 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x17, 0x0a, 0x07, + 0x69, 0x70, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x69, + 0x70, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x45, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, + 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x34, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x50, 0x56, 0x36, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x49, 0x58, 0x10, 0x03, 0x42, 0x5c, 0x0a, 0x14, + 0x69, 0x6f, 0x2e, 0x67, 0x72, 0x70, 0x63, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, + 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x42, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4c, 0x6f, 0x67, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x62, + 0x69, 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x5f, 0x62, 0x69, + 0x6e, 0x61, 0x72, 0x79, 0x6c, 0x6f, 0x67, 0x5f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_grpc_binlog_v1_binarylog_proto_rawDescOnce sync.Once + file_grpc_binlog_v1_binarylog_proto_rawDescData = file_grpc_binlog_v1_binarylog_proto_rawDesc +) + +func file_grpc_binlog_v1_binarylog_proto_rawDescGZIP() []byte { + file_grpc_binlog_v1_binarylog_proto_rawDescOnce.Do(func() { + file_grpc_binlog_v1_binarylog_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_binlog_v1_binarylog_proto_rawDescData) + }) + return file_grpc_binlog_v1_binarylog_proto_rawDescData +} + +var file_grpc_binlog_v1_binarylog_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_grpc_binlog_v1_binarylog_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_grpc_binlog_v1_binarylog_proto_goTypes = []interface{}{ + (GrpcLogEntry_EventType)(0), // 0: grpc.binarylog.v1.GrpcLogEntry.EventType + (GrpcLogEntry_Logger)(0), // 1: grpc.binarylog.v1.GrpcLogEntry.Logger + (Address_Type)(0), // 2: grpc.binarylog.v1.Address.Type + (*GrpcLogEntry)(nil), // 3: grpc.binarylog.v1.GrpcLogEntry + (*ClientHeader)(nil), // 4: grpc.binarylog.v1.ClientHeader + (*ServerHeader)(nil), // 5: grpc.binarylog.v1.ServerHeader + (*Trailer)(nil), // 6: grpc.binarylog.v1.Trailer + (*Message)(nil), // 7: grpc.binarylog.v1.Message + (*Metadata)(nil), // 8: grpc.binarylog.v1.Metadata + (*MetadataEntry)(nil), // 9: grpc.binarylog.v1.MetadataEntry + (*Address)(nil), // 10: grpc.binarylog.v1.Address + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 12: google.protobuf.Duration +} +var file_grpc_binlog_v1_binarylog_proto_depIdxs = []int32{ + 11, // 0: grpc.binarylog.v1.GrpcLogEntry.timestamp:type_name -> google.protobuf.Timestamp + 0, // 1: grpc.binarylog.v1.GrpcLogEntry.type:type_name -> grpc.binarylog.v1.GrpcLogEntry.EventType + 1, // 2: grpc.binarylog.v1.GrpcLogEntry.logger:type_name -> grpc.binarylog.v1.GrpcLogEntry.Logger + 4, // 3: grpc.binarylog.v1.GrpcLogEntry.client_header:type_name -> grpc.binarylog.v1.ClientHeader + 5, // 4: grpc.binarylog.v1.GrpcLogEntry.server_header:type_name -> grpc.binarylog.v1.ServerHeader + 7, // 5: grpc.binarylog.v1.GrpcLogEntry.message:type_name -> grpc.binarylog.v1.Message + 6, // 6: grpc.binarylog.v1.GrpcLogEntry.trailer:type_name -> grpc.binarylog.v1.Trailer + 10, // 7: grpc.binarylog.v1.GrpcLogEntry.peer:type_name -> grpc.binarylog.v1.Address + 8, // 8: grpc.binarylog.v1.ClientHeader.metadata:type_name -> grpc.binarylog.v1.Metadata + 12, // 9: grpc.binarylog.v1.ClientHeader.timeout:type_name -> google.protobuf.Duration + 8, // 10: grpc.binarylog.v1.ServerHeader.metadata:type_name -> grpc.binarylog.v1.Metadata + 8, // 11: grpc.binarylog.v1.Trailer.metadata:type_name -> grpc.binarylog.v1.Metadata + 9, // 12: grpc.binarylog.v1.Metadata.entry:type_name -> grpc.binarylog.v1.MetadataEntry + 2, // 13: grpc.binarylog.v1.Address.type:type_name -> grpc.binarylog.v1.Address.Type + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name +} + +func init() { file_grpc_binlog_v1_binarylog_proto_init() } +func file_grpc_binlog_v1_binarylog_proto_init() { + if File_grpc_binlog_v1_binarylog_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_grpc_binlog_v1_binarylog_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GrpcLogEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClientHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Trailer); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetadataEntry); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Address); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_grpc_binlog_v1_binarylog_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*GrpcLogEntry_ClientHeader)(nil), + (*GrpcLogEntry_ServerHeader)(nil), + (*GrpcLogEntry_Message)(nil), + (*GrpcLogEntry_Trailer)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_grpc_binlog_v1_binarylog_proto_rawDesc, + NumEnums: 3, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_grpc_binlog_v1_binarylog_proto_goTypes, + DependencyIndexes: file_grpc_binlog_v1_binarylog_proto_depIdxs, + EnumInfos: file_grpc_binlog_v1_binarylog_proto_enumTypes, + MessageInfos: file_grpc_binlog_v1_binarylog_proto_msgTypes, + }.Build() + File_grpc_binlog_v1_binarylog_proto = out.File + file_grpc_binlog_v1_binarylog_proto_rawDesc = nil + file_grpc_binlog_v1_binarylog_proto_goTypes = nil + file_grpc_binlog_v1_binarylog_proto_depIdxs = nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/call.go b/ecs-agent/vendor/google.golang.org/grpc/call.go new file mode 100644 index 0000000000..9e20e4d385 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/call.go @@ -0,0 +1,74 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" +) + +// Invoke sends the RPC request on the wire and returns after response is +// received. This is typically called by generated code. +// +// All errors returned by Invoke are compatible with the status package. +func (cc *ClientConn) Invoke(ctx context.Context, method string, args, reply interface{}, opts ...CallOption) error { + // allow interceptor to see all applicable call options, which means those + // configured as defaults from dial option as well as per-call options + opts = combine(cc.dopts.callOptions, opts) + + if cc.dopts.unaryInt != nil { + return cc.dopts.unaryInt(ctx, method, args, reply, cc, invoke, opts...) + } + return invoke(ctx, method, args, reply, cc, opts...) +} + +func combine(o1 []CallOption, o2 []CallOption) []CallOption { + // we don't use append because o1 could have extra capacity whose + // elements would be overwritten, which could cause inadvertent + // sharing (and race conditions) between concurrent calls + if len(o1) == 0 { + return o2 + } else if len(o2) == 0 { + return o1 + } + ret := make([]CallOption, len(o1)+len(o2)) + copy(ret, o1) + copy(ret[len(o1):], o2) + return ret +} + +// Invoke sends the RPC request on the wire and returns after response is +// received. This is typically called by generated code. +// +// DEPRECATED: Use ClientConn.Invoke instead. +func Invoke(ctx context.Context, method string, args, reply interface{}, cc *ClientConn, opts ...CallOption) error { + return cc.Invoke(ctx, method, args, reply, opts...) +} + +var unaryStreamDesc = &StreamDesc{ServerStreams: false, ClientStreams: false} + +func invoke(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error { + cs, err := newClientStream(ctx, unaryStreamDesc, cc, method, opts...) + if err != nil { + return err + } + if err := cs.SendMsg(req); err != nil { + return err + } + return cs.RecvMsg(reply) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/channelz/channelz.go b/ecs-agent/vendor/google.golang.org/grpc/channelz/channelz.go new file mode 100644 index 0000000000..32b7fa5794 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/channelz/channelz.go @@ -0,0 +1,36 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package channelz exports internals of the channelz implementation as required +// by other gRPC packages. +// +// The implementation of the channelz spec as defined in +// https://github.com/grpc/proposal/blob/master/A14-channelz.md, is provided by +// the `internal/channelz` package. +// +// # Experimental +// +// Notice: All APIs in this package are experimental and may be removed in a +// later release. +package channelz + +import "google.golang.org/grpc/internal/channelz" + +// Identifier is an opaque identifier which uniquely identifies an entity in the +// channelz database. +type Identifier = channelz.Identifier diff --git a/ecs-agent/vendor/google.golang.org/grpc/clientconn.go b/ecs-agent/vendor/google.golang.org/grpc/clientconn.go new file mode 100644 index 0000000000..0456689045 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/clientconn.go @@ -0,0 +1,1664 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "errors" + "fmt" + "math" + "net/url" + "reflect" + "strings" + "sync" + "sync/atomic" + "time" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/balancer/base" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/backoff" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/grpcsync" + iresolver "google.golang.org/grpc/internal/resolver" + "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/serviceconfig" + "google.golang.org/grpc/status" + + _ "google.golang.org/grpc/balancer/roundrobin" // To register roundrobin. + _ "google.golang.org/grpc/internal/resolver/dns" // To register dns resolver. + _ "google.golang.org/grpc/internal/resolver/passthrough" // To register passthrough resolver. + _ "google.golang.org/grpc/internal/resolver/unix" // To register unix resolver. +) + +const ( + // minimum time to give a connection to complete + minConnectTimeout = 20 * time.Second + // must match grpclbName in grpclb/grpclb.go + grpclbName = "grpclb" +) + +var ( + // ErrClientConnClosing indicates that the operation is illegal because + // the ClientConn is closing. + // + // Deprecated: this error should not be relied upon by users; use the status + // code of Canceled instead. + ErrClientConnClosing = status.Error(codes.Canceled, "grpc: the client connection is closing") + // errConnDrain indicates that the connection starts to be drained and does not accept any new RPCs. + errConnDrain = errors.New("grpc: the connection is drained") + // errConnClosing indicates that the connection is closing. + errConnClosing = errors.New("grpc: the connection is closing") + // invalidDefaultServiceConfigErrPrefix is used to prefix the json parsing error for the default + // service config. + invalidDefaultServiceConfigErrPrefix = "grpc: the provided default service config is invalid" +) + +// The following errors are returned from Dial and DialContext +var ( + // errNoTransportSecurity indicates that there is no transport security + // being set for ClientConn. Users should either set one or explicitly + // call WithInsecure DialOption to disable security. + errNoTransportSecurity = errors.New("grpc: no transport security set (use grpc.WithTransportCredentials(insecure.NewCredentials()) explicitly or set credentials)") + // errTransportCredsAndBundle indicates that creds bundle is used together + // with other individual Transport Credentials. + errTransportCredsAndBundle = errors.New("grpc: credentials.Bundle may not be used with individual TransportCredentials") + // errNoTransportCredsInBundle indicated that the configured creds bundle + // returned a transport credentials which was nil. + errNoTransportCredsInBundle = errors.New("grpc: credentials.Bundle must return non-nil transport credentials") + // errTransportCredentialsMissing indicates that users want to transmit + // security information (e.g., OAuth2 token) which requires secure + // connection on an insecure connection. + errTransportCredentialsMissing = errors.New("grpc: the credentials require transport level security (use grpc.WithTransportCredentials() to set)") +) + +const ( + defaultClientMaxReceiveMessageSize = 1024 * 1024 * 4 + defaultClientMaxSendMessageSize = math.MaxInt32 + // http2IOBufSize specifies the buffer size for sending frames. + defaultWriteBufSize = 32 * 1024 + defaultReadBufSize = 32 * 1024 +) + +// Dial creates a client connection to the given target. +func Dial(target string, opts ...DialOption) (*ClientConn, error) { + return DialContext(context.Background(), target, opts...) +} + +type defaultConfigSelector struct { + sc *ServiceConfig +} + +func (dcs *defaultConfigSelector) SelectConfig(rpcInfo iresolver.RPCInfo) (*iresolver.RPCConfig, error) { + return &iresolver.RPCConfig{ + Context: rpcInfo.Context, + MethodConfig: getMethodConfig(dcs.sc, rpcInfo.Method), + }, nil +} + +// DialContext creates a client connection to the given target. By default, it's +// a non-blocking dial (the function won't wait for connections to be +// established, and connecting happens in the background). To make it a blocking +// dial, use WithBlock() dial option. +// +// In the non-blocking case, the ctx does not act against the connection. It +// only controls the setup steps. +// +// In the blocking case, ctx can be used to cancel or expire the pending +// connection. Once this function returns, the cancellation and expiration of +// ctx will be noop. Users should call ClientConn.Close to terminate all the +// pending operations after this function returns. +// +// The target name syntax is defined in +// https://github.com/grpc/grpc/blob/master/doc/naming.md. +// e.g. to use dns resolver, a "dns:///" prefix should be applied to the target. +func DialContext(ctx context.Context, target string, opts ...DialOption) (conn *ClientConn, err error) { + cc := &ClientConn{ + target: target, + csMgr: &connectivityStateManager{}, + conns: make(map[*addrConn]struct{}), + dopts: defaultDialOptions(), + blockingpicker: newPickerWrapper(), + czData: new(channelzData), + firstResolveEvent: grpcsync.NewEvent(), + } + cc.retryThrottler.Store((*retryThrottler)(nil)) + cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil}) + cc.ctx, cc.cancel = context.WithCancel(context.Background()) + + for _, opt := range extraDialOptions { + opt.apply(&cc.dopts) + } + + for _, opt := range opts { + opt.apply(&cc.dopts) + } + + chainUnaryClientInterceptors(cc) + chainStreamClientInterceptors(cc) + + defer func() { + if err != nil { + cc.Close() + } + }() + + pid := cc.dopts.channelzParentID + cc.channelzID = channelz.RegisterChannel(&channelzChannel{cc}, pid, target) + ted := &channelz.TraceEventDesc{ + Desc: "Channel created", + Severity: channelz.CtInfo, + } + if cc.dopts.channelzParentID != nil { + ted.Parent = &channelz.TraceEventDesc{ + Desc: fmt.Sprintf("Nested Channel(id:%d) created", cc.channelzID.Int()), + Severity: channelz.CtInfo, + } + } + channelz.AddTraceEvent(logger, cc.channelzID, 1, ted) + cc.csMgr.channelzID = cc.channelzID + + if cc.dopts.copts.TransportCredentials == nil && cc.dopts.copts.CredsBundle == nil { + return nil, errNoTransportSecurity + } + if cc.dopts.copts.TransportCredentials != nil && cc.dopts.copts.CredsBundle != nil { + return nil, errTransportCredsAndBundle + } + if cc.dopts.copts.CredsBundle != nil && cc.dopts.copts.CredsBundle.TransportCredentials() == nil { + return nil, errNoTransportCredsInBundle + } + transportCreds := cc.dopts.copts.TransportCredentials + if transportCreds == nil { + transportCreds = cc.dopts.copts.CredsBundle.TransportCredentials() + } + if transportCreds.Info().SecurityProtocol == "insecure" { + for _, cd := range cc.dopts.copts.PerRPCCredentials { + if cd.RequireTransportSecurity() { + return nil, errTransportCredentialsMissing + } + } + } + + if cc.dopts.defaultServiceConfigRawJSON != nil { + scpr := parseServiceConfig(*cc.dopts.defaultServiceConfigRawJSON) + if scpr.Err != nil { + return nil, fmt.Errorf("%s: %v", invalidDefaultServiceConfigErrPrefix, scpr.Err) + } + cc.dopts.defaultServiceConfig, _ = scpr.Config.(*ServiceConfig) + } + cc.mkp = cc.dopts.copts.KeepaliveParams + + if cc.dopts.copts.UserAgent != "" { + cc.dopts.copts.UserAgent += " " + grpcUA + } else { + cc.dopts.copts.UserAgent = grpcUA + } + + if cc.dopts.timeout > 0 { + var cancel context.CancelFunc + ctx, cancel = context.WithTimeout(ctx, cc.dopts.timeout) + defer cancel() + } + defer func() { + select { + case <-ctx.Done(): + switch { + case ctx.Err() == err: + conn = nil + case err == nil || !cc.dopts.returnLastError: + conn, err = nil, ctx.Err() + default: + conn, err = nil, fmt.Errorf("%v: %v", ctx.Err(), err) + } + default: + } + }() + + scSet := false + if cc.dopts.scChan != nil { + // Try to get an initial service config. + select { + case sc, ok := <-cc.dopts.scChan: + if ok { + cc.sc = &sc + cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{&sc}) + scSet = true + } + default: + } + } + if cc.dopts.bs == nil { + cc.dopts.bs = backoff.DefaultExponential + } + + // Determine the resolver to use. + resolverBuilder, err := cc.parseTargetAndFindResolver() + if err != nil { + return nil, err + } + cc.authority, err = determineAuthority(cc.parsedTarget.Endpoint, cc.target, cc.dopts) + if err != nil { + return nil, err + } + channelz.Infof(logger, cc.channelzID, "Channel authority set to %q", cc.authority) + + if cc.dopts.scChan != nil && !scSet { + // Blocking wait for the initial service config. + select { + case sc, ok := <-cc.dopts.scChan: + if ok { + cc.sc = &sc + cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{&sc}) + } + case <-ctx.Done(): + return nil, ctx.Err() + } + } + if cc.dopts.scChan != nil { + go cc.scWatcher() + } + + var credsClone credentials.TransportCredentials + if creds := cc.dopts.copts.TransportCredentials; creds != nil { + credsClone = creds.Clone() + } + cc.balancerWrapper = newCCBalancerWrapper(cc, balancer.BuildOptions{ + DialCreds: credsClone, + CredsBundle: cc.dopts.copts.CredsBundle, + Dialer: cc.dopts.copts.Dialer, + Authority: cc.authority, + CustomUserAgent: cc.dopts.copts.UserAgent, + ChannelzParentID: cc.channelzID, + Target: cc.parsedTarget, + }) + + // Build the resolver. + rWrapper, err := newCCResolverWrapper(cc, resolverBuilder) + if err != nil { + return nil, fmt.Errorf("failed to build resolver: %v", err) + } + cc.mu.Lock() + cc.resolverWrapper = rWrapper + cc.mu.Unlock() + + // A blocking dial blocks until the clientConn is ready. + if cc.dopts.block { + for { + cc.Connect() + s := cc.GetState() + if s == connectivity.Ready { + break + } else if cc.dopts.copts.FailOnNonTempDialError && s == connectivity.TransientFailure { + if err = cc.connectionError(); err != nil { + terr, ok := err.(interface { + Temporary() bool + }) + if ok && !terr.Temporary() { + return nil, err + } + } + } + if !cc.WaitForStateChange(ctx, s) { + // ctx got timeout or canceled. + if err = cc.connectionError(); err != nil && cc.dopts.returnLastError { + return nil, err + } + return nil, ctx.Err() + } + } + } + + return cc, nil +} + +// chainUnaryClientInterceptors chains all unary client interceptors into one. +func chainUnaryClientInterceptors(cc *ClientConn) { + interceptors := cc.dopts.chainUnaryInts + // Prepend dopts.unaryInt to the chaining interceptors if it exists, since unaryInt will + // be executed before any other chained interceptors. + if cc.dopts.unaryInt != nil { + interceptors = append([]UnaryClientInterceptor{cc.dopts.unaryInt}, interceptors...) + } + var chainedInt UnaryClientInterceptor + if len(interceptors) == 0 { + chainedInt = nil + } else if len(interceptors) == 1 { + chainedInt = interceptors[0] + } else { + chainedInt = func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error { + return interceptors[0](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, 0, invoker), opts...) + } + } + cc.dopts.unaryInt = chainedInt +} + +// getChainUnaryInvoker recursively generate the chained unary invoker. +func getChainUnaryInvoker(interceptors []UnaryClientInterceptor, curr int, finalInvoker UnaryInvoker) UnaryInvoker { + if curr == len(interceptors)-1 { + return finalInvoker + } + return func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error { + return interceptors[curr+1](ctx, method, req, reply, cc, getChainUnaryInvoker(interceptors, curr+1, finalInvoker), opts...) + } +} + +// chainStreamClientInterceptors chains all stream client interceptors into one. +func chainStreamClientInterceptors(cc *ClientConn) { + interceptors := cc.dopts.chainStreamInts + // Prepend dopts.streamInt to the chaining interceptors if it exists, since streamInt will + // be executed before any other chained interceptors. + if cc.dopts.streamInt != nil { + interceptors = append([]StreamClientInterceptor{cc.dopts.streamInt}, interceptors...) + } + var chainedInt StreamClientInterceptor + if len(interceptors) == 0 { + chainedInt = nil + } else if len(interceptors) == 1 { + chainedInt = interceptors[0] + } else { + chainedInt = func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error) { + return interceptors[0](ctx, desc, cc, method, getChainStreamer(interceptors, 0, streamer), opts...) + } + } + cc.dopts.streamInt = chainedInt +} + +// getChainStreamer recursively generate the chained client stream constructor. +func getChainStreamer(interceptors []StreamClientInterceptor, curr int, finalStreamer Streamer) Streamer { + if curr == len(interceptors)-1 { + return finalStreamer + } + return func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) { + return interceptors[curr+1](ctx, desc, cc, method, getChainStreamer(interceptors, curr+1, finalStreamer), opts...) + } +} + +// connectivityStateManager keeps the connectivity.State of ClientConn. +// This struct will eventually be exported so the balancers can access it. +type connectivityStateManager struct { + mu sync.Mutex + state connectivity.State + notifyChan chan struct{} + channelzID *channelz.Identifier +} + +// updateState updates the connectivity.State of ClientConn. +// If there's a change it notifies goroutines waiting on state change to +// happen. +func (csm *connectivityStateManager) updateState(state connectivity.State) { + csm.mu.Lock() + defer csm.mu.Unlock() + if csm.state == connectivity.Shutdown { + return + } + if csm.state == state { + return + } + csm.state = state + channelz.Infof(logger, csm.channelzID, "Channel Connectivity change to %v", state) + if csm.notifyChan != nil { + // There are other goroutines waiting on this channel. + close(csm.notifyChan) + csm.notifyChan = nil + } +} + +func (csm *connectivityStateManager) getState() connectivity.State { + csm.mu.Lock() + defer csm.mu.Unlock() + return csm.state +} + +func (csm *connectivityStateManager) getNotifyChan() <-chan struct{} { + csm.mu.Lock() + defer csm.mu.Unlock() + if csm.notifyChan == nil { + csm.notifyChan = make(chan struct{}) + } + return csm.notifyChan +} + +// ClientConnInterface defines the functions clients need to perform unary and +// streaming RPCs. It is implemented by *ClientConn, and is only intended to +// be referenced by generated code. +type ClientConnInterface interface { + // Invoke performs a unary RPC and returns after the response is received + // into reply. + Invoke(ctx context.Context, method string, args interface{}, reply interface{}, opts ...CallOption) error + // NewStream begins a streaming RPC. + NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) +} + +// Assert *ClientConn implements ClientConnInterface. +var _ ClientConnInterface = (*ClientConn)(nil) + +// ClientConn represents a virtual connection to a conceptual endpoint, to +// perform RPCs. +// +// A ClientConn is free to have zero or more actual connections to the endpoint +// based on configuration, load, etc. It is also free to determine which actual +// endpoints to use and may change it every RPC, permitting client-side load +// balancing. +// +// A ClientConn encapsulates a range of functionality including name +// resolution, TCP connection establishment (with retries and backoff) and TLS +// handshakes. It also handles errors on established connections by +// re-resolving the name and reconnecting. +type ClientConn struct { + ctx context.Context // Initialized using the background context at dial time. + cancel context.CancelFunc // Cancelled on close. + + // The following are initialized at dial time, and are read-only after that. + target string // User's dial target. + parsedTarget resolver.Target // See parseTargetAndFindResolver(). + authority string // See determineAuthority(). + dopts dialOptions // Default and user specified dial options. + channelzID *channelz.Identifier // Channelz identifier for the channel. + balancerWrapper *ccBalancerWrapper // Uses gracefulswitch.balancer underneath. + + // The following provide their own synchronization, and therefore don't + // require cc.mu to be held to access them. + csMgr *connectivityStateManager + blockingpicker *pickerWrapper + safeConfigSelector iresolver.SafeConfigSelector + czData *channelzData + retryThrottler atomic.Value // Updated from service config. + + // firstResolveEvent is used to track whether the name resolver sent us at + // least one update. RPCs block on this event. + firstResolveEvent *grpcsync.Event + + // mu protects the following fields. + // TODO: split mu so the same mutex isn't used for everything. + mu sync.RWMutex + resolverWrapper *ccResolverWrapper // Initialized in Dial; cleared in Close. + sc *ServiceConfig // Latest service config received from the resolver. + conns map[*addrConn]struct{} // Set to nil on close. + mkp keepalive.ClientParameters // May be updated upon receipt of a GoAway. + + lceMu sync.Mutex // protects lastConnectionError + lastConnectionError error +} + +// WaitForStateChange waits until the connectivity.State of ClientConn changes from sourceState or +// ctx expires. A true value is returned in former case and false in latter. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func (cc *ClientConn) WaitForStateChange(ctx context.Context, sourceState connectivity.State) bool { + ch := cc.csMgr.getNotifyChan() + if cc.csMgr.getState() != sourceState { + return true + } + select { + case <-ctx.Done(): + return false + case <-ch: + return true + } +} + +// GetState returns the connectivity.State of ClientConn. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a later +// release. +func (cc *ClientConn) GetState() connectivity.State { + return cc.csMgr.getState() +} + +// Connect causes all subchannels in the ClientConn to attempt to connect if +// the channel is idle. Does not wait for the connection attempts to begin +// before returning. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a later +// release. +func (cc *ClientConn) Connect() { + cc.balancerWrapper.exitIdle() +} + +func (cc *ClientConn) scWatcher() { + for { + select { + case sc, ok := <-cc.dopts.scChan: + if !ok { + return + } + cc.mu.Lock() + // TODO: load balance policy runtime change is ignored. + // We may revisit this decision in the future. + cc.sc = &sc + cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{&sc}) + cc.mu.Unlock() + case <-cc.ctx.Done(): + return + } + } +} + +// waitForResolvedAddrs blocks until the resolver has provided addresses or the +// context expires. Returns nil unless the context expires first; otherwise +// returns a status error based on the context. +func (cc *ClientConn) waitForResolvedAddrs(ctx context.Context) error { + // This is on the RPC path, so we use a fast path to avoid the + // more-expensive "select" below after the resolver has returned once. + if cc.firstResolveEvent.HasFired() { + return nil + } + select { + case <-cc.firstResolveEvent.Done(): + return nil + case <-ctx.Done(): + return status.FromContextError(ctx.Err()).Err() + case <-cc.ctx.Done(): + return ErrClientConnClosing + } +} + +var emptyServiceConfig *ServiceConfig + +func init() { + cfg := parseServiceConfig("{}") + if cfg.Err != nil { + panic(fmt.Sprintf("impossible error parsing empty service config: %v", cfg.Err)) + } + emptyServiceConfig = cfg.Config.(*ServiceConfig) +} + +func (cc *ClientConn) maybeApplyDefaultServiceConfig(addrs []resolver.Address) { + if cc.sc != nil { + cc.applyServiceConfigAndBalancer(cc.sc, nil, addrs) + return + } + if cc.dopts.defaultServiceConfig != nil { + cc.applyServiceConfigAndBalancer(cc.dopts.defaultServiceConfig, &defaultConfigSelector{cc.dopts.defaultServiceConfig}, addrs) + } else { + cc.applyServiceConfigAndBalancer(emptyServiceConfig, &defaultConfigSelector{emptyServiceConfig}, addrs) + } +} + +func (cc *ClientConn) updateResolverState(s resolver.State, err error) error { + defer cc.firstResolveEvent.Fire() + cc.mu.Lock() + // Check if the ClientConn is already closed. Some fields (e.g. + // balancerWrapper) are set to nil when closing the ClientConn, and could + // cause nil pointer panic if we don't have this check. + if cc.conns == nil { + cc.mu.Unlock() + return nil + } + + if err != nil { + // May need to apply the initial service config in case the resolver + // doesn't support service configs, or doesn't provide a service config + // with the new addresses. + cc.maybeApplyDefaultServiceConfig(nil) + + cc.balancerWrapper.resolverError(err) + + // No addresses are valid with err set; return early. + cc.mu.Unlock() + return balancer.ErrBadResolverState + } + + var ret error + if cc.dopts.disableServiceConfig { + channelz.Infof(logger, cc.channelzID, "ignoring service config from resolver (%v) and applying the default because service config is disabled", s.ServiceConfig) + cc.maybeApplyDefaultServiceConfig(s.Addresses) + } else if s.ServiceConfig == nil { + cc.maybeApplyDefaultServiceConfig(s.Addresses) + // TODO: do we need to apply a failing LB policy if there is no + // default, per the error handling design? + } else { + if sc, ok := s.ServiceConfig.Config.(*ServiceConfig); s.ServiceConfig.Err == nil && ok { + configSelector := iresolver.GetConfigSelector(s) + if configSelector != nil { + if len(s.ServiceConfig.Config.(*ServiceConfig).Methods) != 0 { + channelz.Infof(logger, cc.channelzID, "method configs in service config will be ignored due to presence of config selector") + } + } else { + configSelector = &defaultConfigSelector{sc} + } + cc.applyServiceConfigAndBalancer(sc, configSelector, s.Addresses) + } else { + ret = balancer.ErrBadResolverState + if cc.sc == nil { + // Apply the failing LB only if we haven't received valid service config + // from the name resolver in the past. + cc.applyFailingLB(s.ServiceConfig) + cc.mu.Unlock() + return ret + } + } + } + + var balCfg serviceconfig.LoadBalancingConfig + if cc.sc != nil && cc.sc.lbConfig != nil { + balCfg = cc.sc.lbConfig.cfg + } + bw := cc.balancerWrapper + cc.mu.Unlock() + + uccsErr := bw.updateClientConnState(&balancer.ClientConnState{ResolverState: s, BalancerConfig: balCfg}) + if ret == nil { + ret = uccsErr // prefer ErrBadResolver state since any other error is + // currently meaningless to the caller. + } + return ret +} + +// applyFailingLB is akin to configuring an LB policy on the channel which +// always fails RPCs. Here, an actual LB policy is not configured, but an always +// erroring picker is configured, which returns errors with information about +// what was invalid in the received service config. A config selector with no +// service config is configured, and the connectivity state of the channel is +// set to TransientFailure. +// +// Caller must hold cc.mu. +func (cc *ClientConn) applyFailingLB(sc *serviceconfig.ParseResult) { + var err error + if sc.Err != nil { + err = status.Errorf(codes.Unavailable, "error parsing service config: %v", sc.Err) + } else { + err = status.Errorf(codes.Unavailable, "illegal service config type: %T", sc.Config) + } + cc.safeConfigSelector.UpdateConfigSelector(&defaultConfigSelector{nil}) + cc.blockingpicker.updatePicker(base.NewErrPicker(err)) + cc.csMgr.updateState(connectivity.TransientFailure) +} + +func (cc *ClientConn) handleSubConnStateChange(sc balancer.SubConn, s connectivity.State, err error) { + cc.balancerWrapper.updateSubConnState(sc, s, err) +} + +// newAddrConn creates an addrConn for addrs and adds it to cc.conns. +// +// Caller needs to make sure len(addrs) > 0. +func (cc *ClientConn) newAddrConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (*addrConn, error) { + ac := &addrConn{ + state: connectivity.Idle, + cc: cc, + addrs: addrs, + scopts: opts, + dopts: cc.dopts, + czData: new(channelzData), + resetBackoff: make(chan struct{}), + } + ac.ctx, ac.cancel = context.WithCancel(cc.ctx) + // Track ac in cc. This needs to be done before any getTransport(...) is called. + cc.mu.Lock() + defer cc.mu.Unlock() + if cc.conns == nil { + return nil, ErrClientConnClosing + } + + var err error + ac.channelzID, err = channelz.RegisterSubChannel(ac, cc.channelzID, "") + if err != nil { + return nil, err + } + channelz.AddTraceEvent(logger, ac.channelzID, 0, &channelz.TraceEventDesc{ + Desc: "Subchannel created", + Severity: channelz.CtInfo, + Parent: &channelz.TraceEventDesc{ + Desc: fmt.Sprintf("Subchannel(id:%d) created", ac.channelzID.Int()), + Severity: channelz.CtInfo, + }, + }) + + cc.conns[ac] = struct{}{} + return ac, nil +} + +// removeAddrConn removes the addrConn in the subConn from clientConn. +// It also tears down the ac with the given error. +func (cc *ClientConn) removeAddrConn(ac *addrConn, err error) { + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return + } + delete(cc.conns, ac) + cc.mu.Unlock() + ac.tearDown(err) +} + +func (cc *ClientConn) channelzMetric() *channelz.ChannelInternalMetric { + return &channelz.ChannelInternalMetric{ + State: cc.GetState(), + Target: cc.target, + CallsStarted: atomic.LoadInt64(&cc.czData.callsStarted), + CallsSucceeded: atomic.LoadInt64(&cc.czData.callsSucceeded), + CallsFailed: atomic.LoadInt64(&cc.czData.callsFailed), + LastCallStartedTimestamp: time.Unix(0, atomic.LoadInt64(&cc.czData.lastCallStartedTime)), + } +} + +// Target returns the target string of the ClientConn. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func (cc *ClientConn) Target() string { + return cc.target +} + +func (cc *ClientConn) incrCallsStarted() { + atomic.AddInt64(&cc.czData.callsStarted, 1) + atomic.StoreInt64(&cc.czData.lastCallStartedTime, time.Now().UnixNano()) +} + +func (cc *ClientConn) incrCallsSucceeded() { + atomic.AddInt64(&cc.czData.callsSucceeded, 1) +} + +func (cc *ClientConn) incrCallsFailed() { + atomic.AddInt64(&cc.czData.callsFailed, 1) +} + +// connect starts creating a transport. +// It does nothing if the ac is not IDLE. +// TODO(bar) Move this to the addrConn section. +func (ac *addrConn) connect() error { + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + if logger.V(2) { + logger.Infof("connect called on shutdown addrConn; ignoring.") + } + ac.mu.Unlock() + return errConnClosing + } + if ac.state != connectivity.Idle { + if logger.V(2) { + logger.Infof("connect called on addrConn in non-idle state (%v); ignoring.", ac.state) + } + ac.mu.Unlock() + return nil + } + // Update connectivity state within the lock to prevent subsequent or + // concurrent calls from resetting the transport more than once. + ac.updateConnectivityState(connectivity.Connecting, nil) + ac.mu.Unlock() + + ac.resetTransport() + return nil +} + +func equalAddresses(a, b []resolver.Address) bool { + if len(a) != len(b) { + return false + } + for i, v := range a { + if !v.Equal(b[i]) { + return false + } + } + return true +} + +// tryUpdateAddrs tries to update ac.addrs with the new addresses list. +// +// If ac is TransientFailure, it updates ac.addrs and returns true. The updated +// addresses will be picked up by retry in the next iteration after backoff. +// +// If ac is Shutdown or Idle, it updates ac.addrs and returns true. +// +// If the addresses is the same as the old list, it does nothing and returns +// true. +// +// If ac is Connecting, it returns false. The caller should tear down the ac and +// create a new one. Note that the backoff will be reset when this happens. +// +// If ac is Ready, it checks whether current connected address of ac is in the +// new addrs list. +// - If true, it updates ac.addrs and returns true. The ac will keep using +// the existing connection. +// - If false, it does nothing and returns false. +func (ac *addrConn) tryUpdateAddrs(addrs []resolver.Address) bool { + ac.mu.Lock() + defer ac.mu.Unlock() + channelz.Infof(logger, ac.channelzID, "addrConn: tryUpdateAddrs curAddr: %v, addrs: %v", ac.curAddr, addrs) + if ac.state == connectivity.Shutdown || + ac.state == connectivity.TransientFailure || + ac.state == connectivity.Idle { + ac.addrs = addrs + return true + } + + if equalAddresses(ac.addrs, addrs) { + return true + } + + if ac.state == connectivity.Connecting { + return false + } + + // ac.state is Ready, try to find the connected address. + var curAddrFound bool + for _, a := range addrs { + a.ServerName = ac.cc.getServerName(a) + if reflect.DeepEqual(ac.curAddr, a) { + curAddrFound = true + break + } + } + channelz.Infof(logger, ac.channelzID, "addrConn: tryUpdateAddrs curAddrFound: %v", curAddrFound) + if curAddrFound { + ac.addrs = addrs + } + + return curAddrFound +} + +// getServerName determines the serverName to be used in the connection +// handshake. The default value for the serverName is the authority on the +// ClientConn, which either comes from the user's dial target or through an +// authority override specified using the WithAuthority dial option. Name +// resolvers can specify a per-address override for the serverName through the +// resolver.Address.ServerName field which is used only if the WithAuthority +// dial option was not used. The rationale is that per-address authority +// overrides specified by the name resolver can represent a security risk, while +// an override specified by the user is more dependable since they probably know +// what they are doing. +func (cc *ClientConn) getServerName(addr resolver.Address) string { + if cc.dopts.authority != "" { + return cc.dopts.authority + } + if addr.ServerName != "" { + return addr.ServerName + } + return cc.authority +} + +func getMethodConfig(sc *ServiceConfig, method string) MethodConfig { + if sc == nil { + return MethodConfig{} + } + if m, ok := sc.Methods[method]; ok { + return m + } + i := strings.LastIndex(method, "/") + if m, ok := sc.Methods[method[:i+1]]; ok { + return m + } + return sc.Methods[""] +} + +// GetMethodConfig gets the method config of the input method. +// If there's an exact match for input method (i.e. /service/method), we return +// the corresponding MethodConfig. +// If there isn't an exact match for the input method, we look for the service's default +// config under the service (i.e /service/) and then for the default for all services (empty string). +// +// If there is a default MethodConfig for the service, we return it. +// Otherwise, we return an empty MethodConfig. +func (cc *ClientConn) GetMethodConfig(method string) MethodConfig { + // TODO: Avoid the locking here. + cc.mu.RLock() + defer cc.mu.RUnlock() + return getMethodConfig(cc.sc, method) +} + +func (cc *ClientConn) healthCheckConfig() *healthCheckConfig { + cc.mu.RLock() + defer cc.mu.RUnlock() + if cc.sc == nil { + return nil + } + return cc.sc.healthCheckConfig +} + +func (cc *ClientConn) getTransport(ctx context.Context, failfast bool, method string) (transport.ClientTransport, func(balancer.DoneInfo), error) { + return cc.blockingpicker.pick(ctx, failfast, balancer.PickInfo{ + Ctx: ctx, + FullMethodName: method, + }) +} + +func (cc *ClientConn) applyServiceConfigAndBalancer(sc *ServiceConfig, configSelector iresolver.ConfigSelector, addrs []resolver.Address) { + if sc == nil { + // should never reach here. + return + } + cc.sc = sc + if configSelector != nil { + cc.safeConfigSelector.UpdateConfigSelector(configSelector) + } + + if cc.sc.retryThrottling != nil { + newThrottler := &retryThrottler{ + tokens: cc.sc.retryThrottling.MaxTokens, + max: cc.sc.retryThrottling.MaxTokens, + thresh: cc.sc.retryThrottling.MaxTokens / 2, + ratio: cc.sc.retryThrottling.TokenRatio, + } + cc.retryThrottler.Store(newThrottler) + } else { + cc.retryThrottler.Store((*retryThrottler)(nil)) + } + + var newBalancerName string + if cc.sc != nil && cc.sc.lbConfig != nil { + newBalancerName = cc.sc.lbConfig.name + } else { + var isGRPCLB bool + for _, a := range addrs { + if a.Type == resolver.GRPCLB { + isGRPCLB = true + break + } + } + if isGRPCLB { + newBalancerName = grpclbName + } else if cc.sc != nil && cc.sc.LB != nil { + newBalancerName = *cc.sc.LB + } else { + newBalancerName = PickFirstBalancerName + } + } + cc.balancerWrapper.switchTo(newBalancerName) +} + +func (cc *ClientConn) resolveNow(o resolver.ResolveNowOptions) { + cc.mu.RLock() + r := cc.resolverWrapper + cc.mu.RUnlock() + if r == nil { + return + } + go r.resolveNow(o) +} + +// ResetConnectBackoff wakes up all subchannels in transient failure and causes +// them to attempt another connection immediately. It also resets the backoff +// times used for subsequent attempts regardless of the current state. +// +// In general, this function should not be used. Typical service or network +// outages result in a reasonable client reconnection strategy by default. +// However, if a previously unavailable network becomes available, this may be +// used to trigger an immediate reconnect. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func (cc *ClientConn) ResetConnectBackoff() { + cc.mu.Lock() + conns := cc.conns + cc.mu.Unlock() + for ac := range conns { + ac.resetConnectBackoff() + } +} + +// Close tears down the ClientConn and all underlying connections. +func (cc *ClientConn) Close() error { + defer cc.cancel() + + cc.mu.Lock() + if cc.conns == nil { + cc.mu.Unlock() + return ErrClientConnClosing + } + conns := cc.conns + cc.conns = nil + cc.csMgr.updateState(connectivity.Shutdown) + + rWrapper := cc.resolverWrapper + cc.resolverWrapper = nil + bWrapper := cc.balancerWrapper + cc.mu.Unlock() + + // The order of closing matters here since the balancer wrapper assumes the + // picker is closed before it is closed. + cc.blockingpicker.close() + if bWrapper != nil { + bWrapper.close() + } + if rWrapper != nil { + rWrapper.close() + } + + for ac := range conns { + ac.tearDown(ErrClientConnClosing) + } + ted := &channelz.TraceEventDesc{ + Desc: "Channel deleted", + Severity: channelz.CtInfo, + } + if cc.dopts.channelzParentID != nil { + ted.Parent = &channelz.TraceEventDesc{ + Desc: fmt.Sprintf("Nested channel(id:%d) deleted", cc.channelzID.Int()), + Severity: channelz.CtInfo, + } + } + channelz.AddTraceEvent(logger, cc.channelzID, 0, ted) + // TraceEvent needs to be called before RemoveEntry, as TraceEvent may add + // trace reference to the entity being deleted, and thus prevent it from being + // deleted right away. + channelz.RemoveEntry(cc.channelzID) + + return nil +} + +// addrConn is a network connection to a given address. +type addrConn struct { + ctx context.Context + cancel context.CancelFunc + + cc *ClientConn + dopts dialOptions + acbw balancer.SubConn + scopts balancer.NewSubConnOptions + + // transport is set when there's a viable transport (note: ac state may not be READY as LB channel + // health checking may require server to report healthy to set ac to READY), and is reset + // to nil when the current transport should no longer be used to create a stream (e.g. after GoAway + // is received, transport is closed, ac has been torn down). + transport transport.ClientTransport // The current transport. + + mu sync.Mutex + curAddr resolver.Address // The current address. + addrs []resolver.Address // All addresses that the resolver resolved to. + + // Use updateConnectivityState for updating addrConn's connectivity state. + state connectivity.State + + backoffIdx int // Needs to be stateful for resetConnectBackoff. + resetBackoff chan struct{} + + channelzID *channelz.Identifier + czData *channelzData +} + +// Note: this requires a lock on ac.mu. +func (ac *addrConn) updateConnectivityState(s connectivity.State, lastErr error) { + if ac.state == s { + return + } + ac.state = s + channelz.Infof(logger, ac.channelzID, "Subchannel Connectivity change to %v", s) + ac.cc.handleSubConnStateChange(ac.acbw, s, lastErr) +} + +// adjustParams updates parameters used to create transports upon +// receiving a GoAway. +func (ac *addrConn) adjustParams(r transport.GoAwayReason) { + switch r { + case transport.GoAwayTooManyPings: + v := 2 * ac.dopts.copts.KeepaliveParams.Time + ac.cc.mu.Lock() + if v > ac.cc.mkp.Time { + ac.cc.mkp.Time = v + } + ac.cc.mu.Unlock() + } +} + +func (ac *addrConn) resetTransport() { + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return + } + + addrs := ac.addrs + backoffFor := ac.dopts.bs.Backoff(ac.backoffIdx) + // This will be the duration that dial gets to finish. + dialDuration := minConnectTimeout + if ac.dopts.minConnectTimeout != nil { + dialDuration = ac.dopts.minConnectTimeout() + } + + if dialDuration < backoffFor { + // Give dial more time as we keep failing to connect. + dialDuration = backoffFor + } + // We can potentially spend all the time trying the first address, and + // if the server accepts the connection and then hangs, the following + // addresses will never be tried. + // + // The spec doesn't mention what should be done for multiple addresses. + // https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md#proposed-backoff-algorithm + connectDeadline := time.Now().Add(dialDuration) + + ac.updateConnectivityState(connectivity.Connecting, nil) + ac.mu.Unlock() + + if err := ac.tryAllAddrs(addrs, connectDeadline); err != nil { + ac.cc.resolveNow(resolver.ResolveNowOptions{}) + // After exhausting all addresses, the addrConn enters + // TRANSIENT_FAILURE. + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return + } + ac.updateConnectivityState(connectivity.TransientFailure, err) + + // Backoff. + b := ac.resetBackoff + ac.mu.Unlock() + + timer := time.NewTimer(backoffFor) + select { + case <-timer.C: + ac.mu.Lock() + ac.backoffIdx++ + ac.mu.Unlock() + case <-b: + timer.Stop() + case <-ac.ctx.Done(): + timer.Stop() + return + } + + ac.mu.Lock() + if ac.state != connectivity.Shutdown { + ac.updateConnectivityState(connectivity.Idle, err) + } + ac.mu.Unlock() + return + } + // Success; reset backoff. + ac.mu.Lock() + ac.backoffIdx = 0 + ac.mu.Unlock() +} + +// tryAllAddrs tries to creates a connection to the addresses, and stop when at +// the first successful one. It returns an error if no address was successfully +// connected, or updates ac appropriately with the new transport. +func (ac *addrConn) tryAllAddrs(addrs []resolver.Address, connectDeadline time.Time) error { + var firstConnErr error + for _, addr := range addrs { + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return errConnClosing + } + + ac.cc.mu.RLock() + ac.dopts.copts.KeepaliveParams = ac.cc.mkp + ac.cc.mu.RUnlock() + + copts := ac.dopts.copts + if ac.scopts.CredsBundle != nil { + copts.CredsBundle = ac.scopts.CredsBundle + } + ac.mu.Unlock() + + channelz.Infof(logger, ac.channelzID, "Subchannel picks a new address %q to connect", addr.Addr) + + err := ac.createTransport(addr, copts, connectDeadline) + if err == nil { + return nil + } + if firstConnErr == nil { + firstConnErr = err + } + ac.cc.updateConnectionError(err) + } + + // Couldn't connect to any address. + return firstConnErr +} + +// createTransport creates a connection to addr. It returns an error if the +// address was not successfully connected, or updates ac appropriately with the +// new transport. +func (ac *addrConn) createTransport(addr resolver.Address, copts transport.ConnectOptions, connectDeadline time.Time) error { + addr.ServerName = ac.cc.getServerName(addr) + hctx, hcancel := context.WithCancel(ac.ctx) + + onClose := grpcsync.OnceFunc(func() { + ac.mu.Lock() + defer ac.mu.Unlock() + if ac.state == connectivity.Shutdown { + // Already shut down. tearDown() already cleared the transport and + // canceled hctx via ac.ctx, and we expected this connection to be + // closed, so do nothing here. + return + } + hcancel() + if ac.transport == nil { + // We're still connecting to this address, which could error. Do + // not update the connectivity state or resolve; these will happen + // at the end of the tryAllAddrs connection loop in the event of an + // error. + return + } + ac.transport = nil + // Refresh the name resolver on any connection loss. + ac.cc.resolveNow(resolver.ResolveNowOptions{}) + // Always go idle and wait for the LB policy to initiate a new + // connection attempt. + ac.updateConnectivityState(connectivity.Idle, nil) + }) + onGoAway := func(r transport.GoAwayReason) { + ac.mu.Lock() + ac.adjustParams(r) + ac.mu.Unlock() + onClose() + } + + connectCtx, cancel := context.WithDeadline(ac.ctx, connectDeadline) + defer cancel() + copts.ChannelzParentID = ac.channelzID + + newTr, err := transport.NewClientTransport(connectCtx, ac.cc.ctx, addr, copts, onGoAway, onClose) + if err != nil { + if logger.V(2) { + logger.Infof("Creating new client transport to %q: %v", addr, err) + } + // newTr is either nil, or closed. + hcancel() + channelz.Warningf(logger, ac.channelzID, "grpc: addrConn.createTransport failed to connect to %s. Err: %v", addr, err) + return err + } + + ac.mu.Lock() + defer ac.mu.Unlock() + if ac.state == connectivity.Shutdown { + // This can happen if the subConn was removed while in `Connecting` + // state. tearDown() would have set the state to `Shutdown`, but + // would not have closed the transport since ac.transport would not + // have been set at that point. + // + // We run this in a goroutine because newTr.Close() calls onClose() + // inline, which requires locking ac.mu. + // + // The error we pass to Close() is immaterial since there are no open + // streams at this point, so no trailers with error details will be sent + // out. We just need to pass a non-nil error. + go newTr.Close(transport.ErrConnClosing) + return nil + } + if hctx.Err() != nil { + // onClose was already called for this connection, but the connection + // was successfully established first. Consider it a success and set + // the new state to Idle. + ac.updateConnectivityState(connectivity.Idle, nil) + return nil + } + ac.curAddr = addr + ac.transport = newTr + ac.startHealthCheck(hctx) // Will set state to READY if appropriate. + return nil +} + +// startHealthCheck starts the health checking stream (RPC) to watch the health +// stats of this connection if health checking is requested and configured. +// +// LB channel health checking is enabled when all requirements below are met: +// 1. it is not disabled by the user with the WithDisableHealthCheck DialOption +// 2. internal.HealthCheckFunc is set by importing the grpc/health package +// 3. a service config with non-empty healthCheckConfig field is provided +// 4. the load balancer requests it +// +// It sets addrConn to READY if the health checking stream is not started. +// +// Caller must hold ac.mu. +func (ac *addrConn) startHealthCheck(ctx context.Context) { + var healthcheckManagingState bool + defer func() { + if !healthcheckManagingState { + ac.updateConnectivityState(connectivity.Ready, nil) + } + }() + + if ac.cc.dopts.disableHealthCheck { + return + } + healthCheckConfig := ac.cc.healthCheckConfig() + if healthCheckConfig == nil { + return + } + if !ac.scopts.HealthCheckEnabled { + return + } + healthCheckFunc := ac.cc.dopts.healthCheckFunc + if healthCheckFunc == nil { + // The health package is not imported to set health check function. + // + // TODO: add a link to the health check doc in the error message. + channelz.Error(logger, ac.channelzID, "Health check is requested but health check function is not set.") + return + } + + healthcheckManagingState = true + + // Set up the health check helper functions. + currentTr := ac.transport + newStream := func(method string) (interface{}, error) { + ac.mu.Lock() + if ac.transport != currentTr { + ac.mu.Unlock() + return nil, status.Error(codes.Canceled, "the provided transport is no longer valid to use") + } + ac.mu.Unlock() + return newNonRetryClientStream(ctx, &StreamDesc{ServerStreams: true}, method, currentTr, ac) + } + setConnectivityState := func(s connectivity.State, lastErr error) { + ac.mu.Lock() + defer ac.mu.Unlock() + if ac.transport != currentTr { + return + } + ac.updateConnectivityState(s, lastErr) + } + // Start the health checking stream. + go func() { + err := ac.cc.dopts.healthCheckFunc(ctx, newStream, setConnectivityState, healthCheckConfig.ServiceName) + if err != nil { + if status.Code(err) == codes.Unimplemented { + channelz.Error(logger, ac.channelzID, "Subchannel health check is unimplemented at server side, thus health check is disabled") + } else { + channelz.Errorf(logger, ac.channelzID, "HealthCheckFunc exits with unexpected error %v", err) + } + } + }() +} + +func (ac *addrConn) resetConnectBackoff() { + ac.mu.Lock() + close(ac.resetBackoff) + ac.backoffIdx = 0 + ac.resetBackoff = make(chan struct{}) + ac.mu.Unlock() +} + +// getReadyTransport returns the transport if ac's state is READY or nil if not. +func (ac *addrConn) getReadyTransport() transport.ClientTransport { + ac.mu.Lock() + defer ac.mu.Unlock() + if ac.state == connectivity.Ready { + return ac.transport + } + return nil +} + +// tearDown starts to tear down the addrConn. +// +// Note that tearDown doesn't remove ac from ac.cc.conns, so the addrConn struct +// will leak. In most cases, call cc.removeAddrConn() instead. +func (ac *addrConn) tearDown(err error) { + ac.mu.Lock() + if ac.state == connectivity.Shutdown { + ac.mu.Unlock() + return + } + curTr := ac.transport + ac.transport = nil + // We have to set the state to Shutdown before anything else to prevent races + // between setting the state and logic that waits on context cancellation / etc. + ac.updateConnectivityState(connectivity.Shutdown, nil) + ac.cancel() + ac.curAddr = resolver.Address{} + if err == errConnDrain && curTr != nil { + // GracefulClose(...) may be executed multiple times when + // i) receiving multiple GoAway frames from the server; or + // ii) there are concurrent name resolver/Balancer triggered + // address removal and GoAway. + // We have to unlock and re-lock here because GracefulClose => Close => onClose, which requires locking ac.mu. + ac.mu.Unlock() + curTr.GracefulClose() + ac.mu.Lock() + } + channelz.AddTraceEvent(logger, ac.channelzID, 0, &channelz.TraceEventDesc{ + Desc: "Subchannel deleted", + Severity: channelz.CtInfo, + Parent: &channelz.TraceEventDesc{ + Desc: fmt.Sprintf("Subchannel(id:%d) deleted", ac.channelzID.Int()), + Severity: channelz.CtInfo, + }, + }) + // TraceEvent needs to be called before RemoveEntry, as TraceEvent may add + // trace reference to the entity being deleted, and thus prevent it from + // being deleted right away. + channelz.RemoveEntry(ac.channelzID) + ac.mu.Unlock() +} + +func (ac *addrConn) getState() connectivity.State { + ac.mu.Lock() + defer ac.mu.Unlock() + return ac.state +} + +func (ac *addrConn) ChannelzMetric() *channelz.ChannelInternalMetric { + ac.mu.Lock() + addr := ac.curAddr.Addr + ac.mu.Unlock() + return &channelz.ChannelInternalMetric{ + State: ac.getState(), + Target: addr, + CallsStarted: atomic.LoadInt64(&ac.czData.callsStarted), + CallsSucceeded: atomic.LoadInt64(&ac.czData.callsSucceeded), + CallsFailed: atomic.LoadInt64(&ac.czData.callsFailed), + LastCallStartedTimestamp: time.Unix(0, atomic.LoadInt64(&ac.czData.lastCallStartedTime)), + } +} + +func (ac *addrConn) incrCallsStarted() { + atomic.AddInt64(&ac.czData.callsStarted, 1) + atomic.StoreInt64(&ac.czData.lastCallStartedTime, time.Now().UnixNano()) +} + +func (ac *addrConn) incrCallsSucceeded() { + atomic.AddInt64(&ac.czData.callsSucceeded, 1) +} + +func (ac *addrConn) incrCallsFailed() { + atomic.AddInt64(&ac.czData.callsFailed, 1) +} + +type retryThrottler struct { + max float64 + thresh float64 + ratio float64 + + mu sync.Mutex + tokens float64 // TODO(dfawley): replace with atomic and remove lock. +} + +// throttle subtracts a retry token from the pool and returns whether a retry +// should be throttled (disallowed) based upon the retry throttling policy in +// the service config. +func (rt *retryThrottler) throttle() bool { + if rt == nil { + return false + } + rt.mu.Lock() + defer rt.mu.Unlock() + rt.tokens-- + if rt.tokens < 0 { + rt.tokens = 0 + } + return rt.tokens <= rt.thresh +} + +func (rt *retryThrottler) successfulRPC() { + if rt == nil { + return + } + rt.mu.Lock() + defer rt.mu.Unlock() + rt.tokens += rt.ratio + if rt.tokens > rt.max { + rt.tokens = rt.max + } +} + +type channelzChannel struct { + cc *ClientConn +} + +func (c *channelzChannel) ChannelzMetric() *channelz.ChannelInternalMetric { + return c.cc.channelzMetric() +} + +// ErrClientConnTimeout indicates that the ClientConn cannot establish the +// underlying connections within the specified timeout. +// +// Deprecated: This error is never returned by grpc and should not be +// referenced by users. +var ErrClientConnTimeout = errors.New("grpc: timed out when dialing") + +func (cc *ClientConn) getResolver(scheme string) resolver.Builder { + for _, rb := range cc.dopts.resolvers { + if scheme == rb.Scheme() { + return rb + } + } + return resolver.Get(scheme) +} + +func (cc *ClientConn) updateConnectionError(err error) { + cc.lceMu.Lock() + cc.lastConnectionError = err + cc.lceMu.Unlock() +} + +func (cc *ClientConn) connectionError() error { + cc.lceMu.Lock() + defer cc.lceMu.Unlock() + return cc.lastConnectionError +} + +func (cc *ClientConn) parseTargetAndFindResolver() (resolver.Builder, error) { + channelz.Infof(logger, cc.channelzID, "original dial target is: %q", cc.target) + + var rb resolver.Builder + parsedTarget, err := parseTarget(cc.target) + if err != nil { + channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", cc.target, err) + } else { + channelz.Infof(logger, cc.channelzID, "parsed dial target is: %+v", parsedTarget) + rb = cc.getResolver(parsedTarget.URL.Scheme) + if rb != nil { + cc.parsedTarget = parsedTarget + return rb, nil + } + } + + // We are here because the user's dial target did not contain a scheme or + // specified an unregistered scheme. We should fallback to the default + // scheme, except when a custom dialer is specified in which case, we should + // always use passthrough scheme. + defScheme := resolver.GetDefaultScheme() + channelz.Infof(logger, cc.channelzID, "fallback to scheme %q", defScheme) + canonicalTarget := defScheme + ":///" + cc.target + + parsedTarget, err = parseTarget(canonicalTarget) + if err != nil { + channelz.Infof(logger, cc.channelzID, "dial target %q parse failed: %v", canonicalTarget, err) + return nil, err + } + channelz.Infof(logger, cc.channelzID, "parsed dial target is: %+v", parsedTarget) + rb = cc.getResolver(parsedTarget.URL.Scheme) + if rb == nil { + return nil, fmt.Errorf("could not get resolver for default scheme: %q", parsedTarget.URL.Scheme) + } + cc.parsedTarget = parsedTarget + return rb, nil +} + +// parseTarget uses RFC 3986 semantics to parse the given target into a +// resolver.Target struct containing scheme, authority and endpoint. Query +// params are stripped from the endpoint. +func parseTarget(target string) (resolver.Target, error) { + u, err := url.Parse(target) + if err != nil { + return resolver.Target{}, err + } + // For targets of the form "[scheme]://[authority]/endpoint, the endpoint + // value returned from url.Parse() contains a leading "/". Although this is + // in accordance with RFC 3986, we do not want to break existing resolver + // implementations which expect the endpoint without the leading "/". So, we + // end up stripping the leading "/" here. But this will result in an + // incorrect parsing for something like "unix:///path/to/socket". Since we + // own the "unix" resolver, we can workaround in the unix resolver by using + // the `URL` field instead of the `Endpoint` field. + endpoint := u.Path + if endpoint == "" { + endpoint = u.Opaque + } + endpoint = strings.TrimPrefix(endpoint, "/") + return resolver.Target{ + Scheme: u.Scheme, + Authority: u.Host, + Endpoint: endpoint, + URL: *u, + }, nil +} + +// Determine channel authority. The order of precedence is as follows: +// - user specified authority override using `WithAuthority` dial option +// - creds' notion of server name for the authentication handshake +// - endpoint from dial target of the form "scheme://[authority]/endpoint" +func determineAuthority(endpoint, target string, dopts dialOptions) (string, error) { + // Historically, we had two options for users to specify the serverName or + // authority for a channel. One was through the transport credentials + // (either in its constructor, or through the OverrideServerName() method). + // The other option (for cases where WithInsecure() dial option was used) + // was to use the WithAuthority() dial option. + // + // A few things have changed since: + // - `insecure` package with an implementation of the `TransportCredentials` + // interface for the insecure case + // - WithAuthority() dial option support for secure credentials + authorityFromCreds := "" + if creds := dopts.copts.TransportCredentials; creds != nil && creds.Info().ServerName != "" { + authorityFromCreds = creds.Info().ServerName + } + authorityFromDialOption := dopts.authority + if (authorityFromCreds != "" && authorityFromDialOption != "") && authorityFromCreds != authorityFromDialOption { + return "", fmt.Errorf("ClientConn's authority from transport creds %q and dial option %q don't match", authorityFromCreds, authorityFromDialOption) + } + + switch { + case authorityFromDialOption != "": + return authorityFromDialOption, nil + case authorityFromCreds != "": + return authorityFromCreds, nil + case strings.HasPrefix(target, "unix:") || strings.HasPrefix(target, "unix-abstract:"): + // TODO: remove when the unix resolver implements optional interface to + // return channel authority. + return "localhost", nil + case strings.HasPrefix(endpoint, ":"): + return "localhost" + endpoint, nil + default: + // TODO: Define an optional interface on the resolver builder to return + // the channel authority given the user's dial target. For resolvers + // which don't implement this interface, we will use the endpoint from + // "scheme://authority/endpoint" as the default authority. + return endpoint, nil + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/codec.go b/ecs-agent/vendor/google.golang.org/grpc/codec.go new file mode 100644 index 0000000000..1297765478 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/codec.go @@ -0,0 +1,50 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "google.golang.org/grpc/encoding" + _ "google.golang.org/grpc/encoding/proto" // to register the Codec for "proto" +) + +// baseCodec contains the functionality of both Codec and encoding.Codec, but +// omits the name/string, which vary between the two and are not needed for +// anything besides the registry in the encoding package. +type baseCodec interface { + Marshal(v interface{}) ([]byte, error) + Unmarshal(data []byte, v interface{}) error +} + +var _ baseCodec = Codec(nil) +var _ baseCodec = encoding.Codec(nil) + +// Codec defines the interface gRPC uses to encode and decode messages. +// Note that implementations of this interface must be thread safe; +// a Codec's methods can be called from concurrent goroutines. +// +// Deprecated: use encoding.Codec instead. +type Codec interface { + // Marshal returns the wire format of v. + Marshal(v interface{}) ([]byte, error) + // Unmarshal parses the wire format into v. + Unmarshal(data []byte, v interface{}) error + // String returns the name of the Codec implementation. This is unused by + // gRPC. + String() string +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/codegen.sh b/ecs-agent/vendor/google.golang.org/grpc/codegen.sh new file mode 100644 index 0000000000..4cdc6ba7c0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/codegen.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# This script serves as an example to demonstrate how to generate the gRPC-Go +# interface and the related messages from .proto file. +# +# It assumes the installation of i) Google proto buffer compiler at +# https://github.com/google/protobuf (after v2.6.1) and ii) the Go codegen +# plugin at https://github.com/golang/protobuf (after 2015-02-20). If you have +# not, please install them first. +# +# We recommend running this script at $GOPATH/src. +# +# If this is not what you need, feel free to make your own scripts. Again, this +# script is for demonstration purpose. +# +proto=$1 +protoc --go_out=plugins=grpc:. $proto diff --git a/ecs-agent/vendor/google.golang.org/grpc/codes/code_string.go b/ecs-agent/vendor/google.golang.org/grpc/codes/code_string.go new file mode 100644 index 0000000000..0b206a5782 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/codes/code_string.go @@ -0,0 +1,62 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package codes + +import "strconv" + +func (c Code) String() string { + switch c { + case OK: + return "OK" + case Canceled: + return "Canceled" + case Unknown: + return "Unknown" + case InvalidArgument: + return "InvalidArgument" + case DeadlineExceeded: + return "DeadlineExceeded" + case NotFound: + return "NotFound" + case AlreadyExists: + return "AlreadyExists" + case PermissionDenied: + return "PermissionDenied" + case ResourceExhausted: + return "ResourceExhausted" + case FailedPrecondition: + return "FailedPrecondition" + case Aborted: + return "Aborted" + case OutOfRange: + return "OutOfRange" + case Unimplemented: + return "Unimplemented" + case Internal: + return "Internal" + case Unavailable: + return "Unavailable" + case DataLoss: + return "DataLoss" + case Unauthenticated: + return "Unauthenticated" + default: + return "Code(" + strconv.FormatInt(int64(c), 10) + ")" + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/codes/codes.go b/ecs-agent/vendor/google.golang.org/grpc/codes/codes.go new file mode 100644 index 0000000000..11b106182d --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/codes/codes.go @@ -0,0 +1,244 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package codes defines the canonical error codes used by gRPC. It is +// consistent across various languages. +package codes // import "google.golang.org/grpc/codes" + +import ( + "fmt" + "strconv" +) + +// A Code is an unsigned 32-bit error code as defined in the gRPC spec. +type Code uint32 + +const ( + // OK is returned on success. + OK Code = 0 + + // Canceled indicates the operation was canceled (typically by the caller). + // + // The gRPC framework will generate this error code when cancellation + // is requested. + Canceled Code = 1 + + // Unknown error. An example of where this error may be returned is + // if a Status value received from another address space belongs to + // an error-space that is not known in this address space. Also + // errors raised by APIs that do not return enough error information + // may be converted to this error. + // + // The gRPC framework will generate this error code in the above two + // mentioned cases. + Unknown Code = 2 + + // InvalidArgument indicates client specified an invalid argument. + // Note that this differs from FailedPrecondition. It indicates arguments + // that are problematic regardless of the state of the system + // (e.g., a malformed file name). + // + // This error code will not be generated by the gRPC framework. + InvalidArgument Code = 3 + + // DeadlineExceeded means operation expired before completion. + // For operations that change the state of the system, this error may be + // returned even if the operation has completed successfully. For + // example, a successful response from a server could have been delayed + // long enough for the deadline to expire. + // + // The gRPC framework will generate this error code when the deadline is + // exceeded. + DeadlineExceeded Code = 4 + + // NotFound means some requested entity (e.g., file or directory) was + // not found. + // + // This error code will not be generated by the gRPC framework. + NotFound Code = 5 + + // AlreadyExists means an attempt to create an entity failed because one + // already exists. + // + // This error code will not be generated by the gRPC framework. + AlreadyExists Code = 6 + + // PermissionDenied indicates the caller does not have permission to + // execute the specified operation. It must not be used for rejections + // caused by exhausting some resource (use ResourceExhausted + // instead for those errors). It must not be + // used if the caller cannot be identified (use Unauthenticated + // instead for those errors). + // + // This error code will not be generated by the gRPC core framework, + // but expect authentication middleware to use it. + PermissionDenied Code = 7 + + // ResourceExhausted indicates some resource has been exhausted, perhaps + // a per-user quota, or perhaps the entire file system is out of space. + // + // This error code will be generated by the gRPC framework in + // out-of-memory and server overload situations, or when a message is + // larger than the configured maximum size. + ResourceExhausted Code = 8 + + // FailedPrecondition indicates operation was rejected because the + // system is not in a state required for the operation's execution. + // For example, directory to be deleted may be non-empty, an rmdir + // operation is applied to a non-directory, etc. + // + // A litmus test that may help a service implementor in deciding + // between FailedPrecondition, Aborted, and Unavailable: + // (a) Use Unavailable if the client can retry just the failing call. + // (b) Use Aborted if the client should retry at a higher-level + // (e.g., restarting a read-modify-write sequence). + // (c) Use FailedPrecondition if the client should not retry until + // the system state has been explicitly fixed. E.g., if an "rmdir" + // fails because the directory is non-empty, FailedPrecondition + // should be returned since the client should not retry unless + // they have first fixed up the directory by deleting files from it. + // (d) Use FailedPrecondition if the client performs conditional + // REST Get/Update/Delete on a resource and the resource on the + // server does not match the condition. E.g., conflicting + // read-modify-write on the same resource. + // + // This error code will not be generated by the gRPC framework. + FailedPrecondition Code = 9 + + // Aborted indicates the operation was aborted, typically due to a + // concurrency issue like sequencer check failures, transaction aborts, + // etc. + // + // See litmus test above for deciding between FailedPrecondition, + // Aborted, and Unavailable. + // + // This error code will not be generated by the gRPC framework. + Aborted Code = 10 + + // OutOfRange means operation was attempted past the valid range. + // E.g., seeking or reading past end of file. + // + // Unlike InvalidArgument, this error indicates a problem that may + // be fixed if the system state changes. For example, a 32-bit file + // system will generate InvalidArgument if asked to read at an + // offset that is not in the range [0,2^32-1], but it will generate + // OutOfRange if asked to read from an offset past the current + // file size. + // + // There is a fair bit of overlap between FailedPrecondition and + // OutOfRange. We recommend using OutOfRange (the more specific + // error) when it applies so that callers who are iterating through + // a space can easily look for an OutOfRange error to detect when + // they are done. + // + // This error code will not be generated by the gRPC framework. + OutOfRange Code = 11 + + // Unimplemented indicates operation is not implemented or not + // supported/enabled in this service. + // + // This error code will be generated by the gRPC framework. Most + // commonly, you will see this error code when a method implementation + // is missing on the server. It can also be generated for unknown + // compression algorithms or a disagreement as to whether an RPC should + // be streaming. + Unimplemented Code = 12 + + // Internal errors. Means some invariants expected by underlying + // system has been broken. If you see one of these errors, + // something is very broken. + // + // This error code will be generated by the gRPC framework in several + // internal error conditions. + Internal Code = 13 + + // Unavailable indicates the service is currently unavailable. + // This is a most likely a transient condition and may be corrected + // by retrying with a backoff. Note that it is not always safe to retry + // non-idempotent operations. + // + // See litmus test above for deciding between FailedPrecondition, + // Aborted, and Unavailable. + // + // This error code will be generated by the gRPC framework during + // abrupt shutdown of a server process or network connection. + Unavailable Code = 14 + + // DataLoss indicates unrecoverable data loss or corruption. + // + // This error code will not be generated by the gRPC framework. + DataLoss Code = 15 + + // Unauthenticated indicates the request does not have valid + // authentication credentials for the operation. + // + // The gRPC framework will generate this error code when the + // authentication metadata is invalid or a Credentials callback fails, + // but also expect authentication middleware to generate it. + Unauthenticated Code = 16 + + _maxCode = 17 +) + +var strToCode = map[string]Code{ + `"OK"`: OK, + `"CANCELLED"`:/* [sic] */ Canceled, + `"UNKNOWN"`: Unknown, + `"INVALID_ARGUMENT"`: InvalidArgument, + `"DEADLINE_EXCEEDED"`: DeadlineExceeded, + `"NOT_FOUND"`: NotFound, + `"ALREADY_EXISTS"`: AlreadyExists, + `"PERMISSION_DENIED"`: PermissionDenied, + `"RESOURCE_EXHAUSTED"`: ResourceExhausted, + `"FAILED_PRECONDITION"`: FailedPrecondition, + `"ABORTED"`: Aborted, + `"OUT_OF_RANGE"`: OutOfRange, + `"UNIMPLEMENTED"`: Unimplemented, + `"INTERNAL"`: Internal, + `"UNAVAILABLE"`: Unavailable, + `"DATA_LOSS"`: DataLoss, + `"UNAUTHENTICATED"`: Unauthenticated, +} + +// UnmarshalJSON unmarshals b into the Code. +func (c *Code) UnmarshalJSON(b []byte) error { + // From json.Unmarshaler: By convention, to approximate the behavior of + // Unmarshal itself, Unmarshalers implement UnmarshalJSON([]byte("null")) as + // a no-op. + if string(b) == "null" { + return nil + } + if c == nil { + return fmt.Errorf("nil receiver passed to UnmarshalJSON") + } + + if ci, err := strconv.ParseUint(string(b), 10, 32); err == nil { + if ci >= _maxCode { + return fmt.Errorf("invalid code: %q", ci) + } + + *c = Code(ci) + return nil + } + + if jc, ok := strToCode[string(b)]; ok { + *c = jc + return nil + } + return fmt.Errorf("invalid code: %q", string(b)) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/connectivity/connectivity.go b/ecs-agent/vendor/google.golang.org/grpc/connectivity/connectivity.go new file mode 100644 index 0000000000..4a89926422 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/connectivity/connectivity.go @@ -0,0 +1,94 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package connectivity defines connectivity semantics. +// For details, see https://github.com/grpc/grpc/blob/master/doc/connectivity-semantics-and-api.md. +package connectivity + +import ( + "google.golang.org/grpc/grpclog" +) + +var logger = grpclog.Component("core") + +// State indicates the state of connectivity. +// It can be the state of a ClientConn or SubConn. +type State int + +func (s State) String() string { + switch s { + case Idle: + return "IDLE" + case Connecting: + return "CONNECTING" + case Ready: + return "READY" + case TransientFailure: + return "TRANSIENT_FAILURE" + case Shutdown: + return "SHUTDOWN" + default: + logger.Errorf("unknown connectivity state: %d", s) + return "INVALID_STATE" + } +} + +const ( + // Idle indicates the ClientConn is idle. + Idle State = iota + // Connecting indicates the ClientConn is connecting. + Connecting + // Ready indicates the ClientConn is ready for work. + Ready + // TransientFailure indicates the ClientConn has seen a failure but expects to recover. + TransientFailure + // Shutdown indicates the ClientConn has started shutting down. + Shutdown +) + +// ServingMode indicates the current mode of operation of the server. +// +// Only xDS enabled gRPC servers currently report their serving mode. +type ServingMode int + +const ( + // ServingModeStarting indicates that the server is starting up. + ServingModeStarting ServingMode = iota + // ServingModeServing indicates that the server contains all required + // configuration and is serving RPCs. + ServingModeServing + // ServingModeNotServing indicates that the server is not accepting new + // connections. Existing connections will be closed gracefully, allowing + // in-progress RPCs to complete. A server enters this mode when it does not + // contain the required configuration to serve RPCs. + ServingModeNotServing +) + +func (s ServingMode) String() string { + switch s { + case ServingModeStarting: + return "STARTING" + case ServingModeServing: + return "SERVING" + case ServingModeNotServing: + return "NOT_SERVING" + default: + logger.Errorf("unknown serving mode: %d", s) + return "INVALID_MODE" + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/credentials/credentials.go b/ecs-agent/vendor/google.golang.org/grpc/credentials/credentials.go new file mode 100644 index 0000000000..5feac3aa0e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/credentials/credentials.go @@ -0,0 +1,291 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package credentials implements various credentials supported by gRPC library, +// which encapsulate all the state needed by a client to authenticate with a +// server and make various assertions, e.g., about the client's identity, role, +// or whether it is authorized to make a particular call. +package credentials // import "google.golang.org/grpc/credentials" + +import ( + "context" + "errors" + "fmt" + "net" + + "github.com/golang/protobuf/proto" + "google.golang.org/grpc/attributes" + icredentials "google.golang.org/grpc/internal/credentials" +) + +// PerRPCCredentials defines the common interface for the credentials which need to +// attach security information to every RPC (e.g., oauth2). +type PerRPCCredentials interface { + // GetRequestMetadata gets the current request metadata, refreshing tokens + // if required. This should be called by the transport layer on each + // request, and the data should be populated in headers or other + // context. If a status code is returned, it will be used as the status for + // the RPC (restricted to an allowable set of codes as defined by gRFC + // A54). uri is the URI of the entry point for the request. When supported + // by the underlying implementation, ctx can be used for timeout and + // cancellation. Additionally, RequestInfo data will be available via ctx + // to this call. TODO(zhaoq): Define the set of the qualified keys instead + // of leaving it as an arbitrary string. + GetRequestMetadata(ctx context.Context, uri ...string) (map[string]string, error) + // RequireTransportSecurity indicates whether the credentials requires + // transport security. + RequireTransportSecurity() bool +} + +// SecurityLevel defines the protection level on an established connection. +// +// This API is experimental. +type SecurityLevel int + +const ( + // InvalidSecurityLevel indicates an invalid security level. + // The zero SecurityLevel value is invalid for backward compatibility. + InvalidSecurityLevel SecurityLevel = iota + // NoSecurity indicates a connection is insecure. + NoSecurity + // IntegrityOnly indicates a connection only provides integrity protection. + IntegrityOnly + // PrivacyAndIntegrity indicates a connection provides both privacy and integrity protection. + PrivacyAndIntegrity +) + +// String returns SecurityLevel in a string format. +func (s SecurityLevel) String() string { + switch s { + case NoSecurity: + return "NoSecurity" + case IntegrityOnly: + return "IntegrityOnly" + case PrivacyAndIntegrity: + return "PrivacyAndIntegrity" + } + return fmt.Sprintf("invalid SecurityLevel: %v", int(s)) +} + +// CommonAuthInfo contains authenticated information common to AuthInfo implementations. +// It should be embedded in a struct implementing AuthInfo to provide additional information +// about the credentials. +// +// This API is experimental. +type CommonAuthInfo struct { + SecurityLevel SecurityLevel +} + +// GetCommonAuthInfo returns the pointer to CommonAuthInfo struct. +func (c CommonAuthInfo) GetCommonAuthInfo() CommonAuthInfo { + return c +} + +// ProtocolInfo provides information regarding the gRPC wire protocol version, +// security protocol, security protocol version in use, server name, etc. +type ProtocolInfo struct { + // ProtocolVersion is the gRPC wire protocol version. + ProtocolVersion string + // SecurityProtocol is the security protocol in use. + SecurityProtocol string + // SecurityVersion is the security protocol version. It is a static version string from the + // credentials, not a value that reflects per-connection protocol negotiation. To retrieve + // details about the credentials used for a connection, use the Peer's AuthInfo field instead. + // + // Deprecated: please use Peer.AuthInfo. + SecurityVersion string + // ServerName is the user-configured server name. + ServerName string +} + +// AuthInfo defines the common interface for the auth information the users are interested in. +// A struct that implements AuthInfo should embed CommonAuthInfo by including additional +// information about the credentials in it. +type AuthInfo interface { + AuthType() string +} + +// ErrConnDispatched indicates that rawConn has been dispatched out of gRPC +// and the caller should not close rawConn. +var ErrConnDispatched = errors.New("credentials: rawConn is dispatched out of gRPC") + +// TransportCredentials defines the common interface for all the live gRPC wire +// protocols and supported transport security protocols (e.g., TLS, SSL). +type TransportCredentials interface { + // ClientHandshake does the authentication handshake specified by the + // corresponding authentication protocol on rawConn for clients. It returns + // the authenticated connection and the corresponding auth information + // about the connection. The auth information should embed CommonAuthInfo + // to return additional information about the credentials. Implementations + // must use the provided context to implement timely cancellation. gRPC + // will try to reconnect if the error returned is a temporary error + // (io.EOF, context.DeadlineExceeded or err.Temporary() == true). If the + // returned error is a wrapper error, implementations should make sure that + // the error implements Temporary() to have the correct retry behaviors. + // Additionally, ClientHandshakeInfo data will be available via the context + // passed to this call. + // + // The second argument to this method is the `:authority` header value used + // while creating new streams on this connection after authentication + // succeeds. Implementations must use this as the server name during the + // authentication handshake. + // + // If the returned net.Conn is closed, it MUST close the net.Conn provided. + ClientHandshake(context.Context, string, net.Conn) (net.Conn, AuthInfo, error) + // ServerHandshake does the authentication handshake for servers. It returns + // the authenticated connection and the corresponding auth information about + // the connection. The auth information should embed CommonAuthInfo to return additional information + // about the credentials. + // + // If the returned net.Conn is closed, it MUST close the net.Conn provided. + ServerHandshake(net.Conn) (net.Conn, AuthInfo, error) + // Info provides the ProtocolInfo of this TransportCredentials. + Info() ProtocolInfo + // Clone makes a copy of this TransportCredentials. + Clone() TransportCredentials + // OverrideServerName specifies the value used for the following: + // - verifying the hostname on the returned certificates + // - as SNI in the client's handshake to support virtual hosting + // - as the value for `:authority` header at stream creation time + // + // Deprecated: use grpc.WithAuthority instead. Will be supported + // throughout 1.x. + OverrideServerName(string) error +} + +// Bundle is a combination of TransportCredentials and PerRPCCredentials. +// +// It also contains a mode switching method, so it can be used as a combination +// of different credential policies. +// +// Bundle cannot be used together with individual TransportCredentials. +// PerRPCCredentials from Bundle will be appended to other PerRPCCredentials. +// +// This API is experimental. +type Bundle interface { + // TransportCredentials returns the transport credentials from the Bundle. + // + // Implementations must return non-nil transport credentials. If transport + // security is not needed by the Bundle, implementations may choose to + // return insecure.NewCredentials(). + TransportCredentials() TransportCredentials + + // PerRPCCredentials returns the per-RPC credentials from the Bundle. + // + // May be nil if per-RPC credentials are not needed. + PerRPCCredentials() PerRPCCredentials + + // NewWithMode should make a copy of Bundle, and switch mode. Modifying the + // existing Bundle may cause races. + // + // NewWithMode returns nil if the requested mode is not supported. + NewWithMode(mode string) (Bundle, error) +} + +// RequestInfo contains request data attached to the context passed to GetRequestMetadata calls. +// +// This API is experimental. +type RequestInfo struct { + // The method passed to Invoke or NewStream for this RPC. (For proto methods, this has the format "/some.Service/Method") + Method string + // AuthInfo contains the information from a security handshake (TransportCredentials.ClientHandshake, TransportCredentials.ServerHandshake) + AuthInfo AuthInfo +} + +// RequestInfoFromContext extracts the RequestInfo from the context if it exists. +// +// This API is experimental. +func RequestInfoFromContext(ctx context.Context) (ri RequestInfo, ok bool) { + ri, ok = icredentials.RequestInfoFromContext(ctx).(RequestInfo) + return ri, ok +} + +// ClientHandshakeInfo holds data to be passed to ClientHandshake. This makes +// it possible to pass arbitrary data to the handshaker from gRPC, resolver, +// balancer etc. Individual credential implementations control the actual +// format of the data that they are willing to receive. +// +// This API is experimental. +type ClientHandshakeInfo struct { + // Attributes contains the attributes for the address. It could be provided + // by the gRPC, resolver, balancer etc. + Attributes *attributes.Attributes +} + +// ClientHandshakeInfoFromContext returns the ClientHandshakeInfo struct stored +// in ctx. +// +// This API is experimental. +func ClientHandshakeInfoFromContext(ctx context.Context) ClientHandshakeInfo { + chi, _ := icredentials.ClientHandshakeInfoFromContext(ctx).(ClientHandshakeInfo) + return chi +} + +// CheckSecurityLevel checks if a connection's security level is greater than or equal to the specified one. +// It returns success if 1) the condition is satisified or 2) AuthInfo struct does not implement GetCommonAuthInfo() method +// or 3) CommonAuthInfo.SecurityLevel has an invalid zero value. For 2) and 3), it is for the purpose of backward-compatibility. +// +// This API is experimental. +func CheckSecurityLevel(ai AuthInfo, level SecurityLevel) error { + type internalInfo interface { + GetCommonAuthInfo() CommonAuthInfo + } + if ai == nil { + return errors.New("AuthInfo is nil") + } + if ci, ok := ai.(internalInfo); ok { + // CommonAuthInfo.SecurityLevel has an invalid value. + if ci.GetCommonAuthInfo().SecurityLevel == InvalidSecurityLevel { + return nil + } + if ci.GetCommonAuthInfo().SecurityLevel < level { + return fmt.Errorf("requires SecurityLevel %v; connection has %v", level, ci.GetCommonAuthInfo().SecurityLevel) + } + } + // The condition is satisfied or AuthInfo struct does not implement GetCommonAuthInfo() method. + return nil +} + +// ChannelzSecurityInfo defines the interface that security protocols should implement +// in order to provide security info to channelz. +// +// This API is experimental. +type ChannelzSecurityInfo interface { + GetSecurityValue() ChannelzSecurityValue +} + +// ChannelzSecurityValue defines the interface that GetSecurityValue() return value +// should satisfy. This interface should only be satisfied by *TLSChannelzSecurityValue +// and *OtherChannelzSecurityValue. +// +// This API is experimental. +type ChannelzSecurityValue interface { + isChannelzSecurityValue() +} + +// OtherChannelzSecurityValue defines the struct that non-TLS protocol should return +// from GetSecurityValue(), which contains protocol specific security info. Note +// the Value field will be sent to users of channelz requesting channel info, and +// thus sensitive info should better be avoided. +// +// This API is experimental. +type OtherChannelzSecurityValue struct { + ChannelzSecurityValue + Name string + Value proto.Message +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/credentials/insecure/insecure.go b/ecs-agent/vendor/google.golang.org/grpc/credentials/insecure/insecure.go new file mode 100644 index 0000000000..82bee1443b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/credentials/insecure/insecure.go @@ -0,0 +1,98 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package insecure provides an implementation of the +// credentials.TransportCredentials interface which disables transport security. +package insecure + +import ( + "context" + "net" + + "google.golang.org/grpc/credentials" +) + +// NewCredentials returns a credentials which disables transport security. +// +// Note that using this credentials with per-RPC credentials which require +// transport security is incompatible and will cause grpc.Dial() to fail. +func NewCredentials() credentials.TransportCredentials { + return insecureTC{} +} + +// insecureTC implements the insecure transport credentials. The handshake +// methods simply return the passed in net.Conn and set the security level to +// NoSecurity. +type insecureTC struct{} + +func (insecureTC) ClientHandshake(ctx context.Context, _ string, conn net.Conn) (net.Conn, credentials.AuthInfo, error) { + return conn, info{credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity}}, nil +} + +func (insecureTC) ServerHandshake(conn net.Conn) (net.Conn, credentials.AuthInfo, error) { + return conn, info{credentials.CommonAuthInfo{SecurityLevel: credentials.NoSecurity}}, nil +} + +func (insecureTC) Info() credentials.ProtocolInfo { + return credentials.ProtocolInfo{SecurityProtocol: "insecure"} +} + +func (insecureTC) Clone() credentials.TransportCredentials { + return insecureTC{} +} + +func (insecureTC) OverrideServerName(string) error { + return nil +} + +// info contains the auth information for an insecure connection. +// It implements the AuthInfo interface. +type info struct { + credentials.CommonAuthInfo +} + +// AuthType returns the type of info as a string. +func (info) AuthType() string { + return "insecure" +} + +// insecureBundle implements an insecure bundle. +// An insecure bundle provides a thin wrapper around insecureTC to support +// the credentials.Bundle interface. +type insecureBundle struct{} + +// NewBundle returns a bundle with disabled transport security and no per rpc credential. +func NewBundle() credentials.Bundle { + return insecureBundle{} +} + +// NewWithMode returns a new insecure Bundle. The mode is ignored. +func (insecureBundle) NewWithMode(string) (credentials.Bundle, error) { + return insecureBundle{}, nil +} + +// PerRPCCredentials returns an nil implementation as insecure +// bundle does not support a per rpc credential. +func (insecureBundle) PerRPCCredentials() credentials.PerRPCCredentials { + return nil +} + +// TransportCredentials returns the underlying insecure transport credential. +func (insecureBundle) TransportCredentials() credentials.TransportCredentials { + return NewCredentials() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/credentials/tls.go b/ecs-agent/vendor/google.golang.org/grpc/credentials/tls.go new file mode 100644 index 0000000000..ce2bbc10a1 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/credentials/tls.go @@ -0,0 +1,236 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package credentials + +import ( + "context" + "crypto/tls" + "crypto/x509" + "fmt" + "io/ioutil" + "net" + "net/url" + + credinternal "google.golang.org/grpc/internal/credentials" +) + +// TLSInfo contains the auth information for a TLS authenticated connection. +// It implements the AuthInfo interface. +type TLSInfo struct { + State tls.ConnectionState + CommonAuthInfo + // This API is experimental. + SPIFFEID *url.URL +} + +// AuthType returns the type of TLSInfo as a string. +func (t TLSInfo) AuthType() string { + return "tls" +} + +// GetSecurityValue returns security info requested by channelz. +func (t TLSInfo) GetSecurityValue() ChannelzSecurityValue { + v := &TLSChannelzSecurityValue{ + StandardName: cipherSuiteLookup[t.State.CipherSuite], + } + // Currently there's no way to get LocalCertificate info from tls package. + if len(t.State.PeerCertificates) > 0 { + v.RemoteCertificate = t.State.PeerCertificates[0].Raw + } + return v +} + +// tlsCreds is the credentials required for authenticating a connection using TLS. +type tlsCreds struct { + // TLS configuration + config *tls.Config +} + +func (c tlsCreds) Info() ProtocolInfo { + return ProtocolInfo{ + SecurityProtocol: "tls", + SecurityVersion: "1.2", + ServerName: c.config.ServerName, + } +} + +func (c *tlsCreds) ClientHandshake(ctx context.Context, authority string, rawConn net.Conn) (_ net.Conn, _ AuthInfo, err error) { + // use local cfg to avoid clobbering ServerName if using multiple endpoints + cfg := credinternal.CloneTLSConfig(c.config) + if cfg.ServerName == "" { + serverName, _, err := net.SplitHostPort(authority) + if err != nil { + // If the authority had no host port or if the authority cannot be parsed, use it as-is. + serverName = authority + } + cfg.ServerName = serverName + } + conn := tls.Client(rawConn, cfg) + errChannel := make(chan error, 1) + go func() { + errChannel <- conn.Handshake() + close(errChannel) + }() + select { + case err := <-errChannel: + if err != nil { + conn.Close() + return nil, nil, err + } + case <-ctx.Done(): + conn.Close() + return nil, nil, ctx.Err() + } + tlsInfo := TLSInfo{ + State: conn.ConnectionState(), + CommonAuthInfo: CommonAuthInfo{ + SecurityLevel: PrivacyAndIntegrity, + }, + } + id := credinternal.SPIFFEIDFromState(conn.ConnectionState()) + if id != nil { + tlsInfo.SPIFFEID = id + } + return credinternal.WrapSyscallConn(rawConn, conn), tlsInfo, nil +} + +func (c *tlsCreds) ServerHandshake(rawConn net.Conn) (net.Conn, AuthInfo, error) { + conn := tls.Server(rawConn, c.config) + if err := conn.Handshake(); err != nil { + conn.Close() + return nil, nil, err + } + tlsInfo := TLSInfo{ + State: conn.ConnectionState(), + CommonAuthInfo: CommonAuthInfo{ + SecurityLevel: PrivacyAndIntegrity, + }, + } + id := credinternal.SPIFFEIDFromState(conn.ConnectionState()) + if id != nil { + tlsInfo.SPIFFEID = id + } + return credinternal.WrapSyscallConn(rawConn, conn), tlsInfo, nil +} + +func (c *tlsCreds) Clone() TransportCredentials { + return NewTLS(c.config) +} + +func (c *tlsCreds) OverrideServerName(serverNameOverride string) error { + c.config.ServerName = serverNameOverride + return nil +} + +// NewTLS uses c to construct a TransportCredentials based on TLS. +func NewTLS(c *tls.Config) TransportCredentials { + tc := &tlsCreds{credinternal.CloneTLSConfig(c)} + tc.config.NextProtos = credinternal.AppendH2ToNextProtos(tc.config.NextProtos) + return tc +} + +// NewClientTLSFromCert constructs TLS credentials from the provided root +// certificate authority certificate(s) to validate server connections. If +// certificates to establish the identity of the client need to be included in +// the credentials (eg: for mTLS), use NewTLS instead, where a complete +// tls.Config can be specified. +// serverNameOverride is for testing only. If set to a non empty string, +// it will override the virtual host name of authority (e.g. :authority header +// field) in requests. +func NewClientTLSFromCert(cp *x509.CertPool, serverNameOverride string) TransportCredentials { + return NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}) +} + +// NewClientTLSFromFile constructs TLS credentials from the provided root +// certificate authority certificate file(s) to validate server connections. If +// certificates to establish the identity of the client need to be included in +// the credentials (eg: for mTLS), use NewTLS instead, where a complete +// tls.Config can be specified. +// serverNameOverride is for testing only. If set to a non empty string, +// it will override the virtual host name of authority (e.g. :authority header +// field) in requests. +func NewClientTLSFromFile(certFile, serverNameOverride string) (TransportCredentials, error) { + b, err := ioutil.ReadFile(certFile) + if err != nil { + return nil, err + } + cp := x509.NewCertPool() + if !cp.AppendCertsFromPEM(b) { + return nil, fmt.Errorf("credentials: failed to append certificates") + } + return NewTLS(&tls.Config{ServerName: serverNameOverride, RootCAs: cp}), nil +} + +// NewServerTLSFromCert constructs TLS credentials from the input certificate for server. +func NewServerTLSFromCert(cert *tls.Certificate) TransportCredentials { + return NewTLS(&tls.Config{Certificates: []tls.Certificate{*cert}}) +} + +// NewServerTLSFromFile constructs TLS credentials from the input certificate file and key +// file for server. +func NewServerTLSFromFile(certFile, keyFile string) (TransportCredentials, error) { + cert, err := tls.LoadX509KeyPair(certFile, keyFile) + if err != nil { + return nil, err + } + return NewTLS(&tls.Config{Certificates: []tls.Certificate{cert}}), nil +} + +// TLSChannelzSecurityValue defines the struct that TLS protocol should return +// from GetSecurityValue(), containing security info like cipher and certificate used. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type TLSChannelzSecurityValue struct { + ChannelzSecurityValue + StandardName string + LocalCertificate []byte + RemoteCertificate []byte +} + +var cipherSuiteLookup = map[uint16]string{ + tls.TLS_RSA_WITH_RC4_128_SHA: "TLS_RSA_WITH_RC4_128_SHA", + tls.TLS_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + tls.TLS_RSA_WITH_AES_128_CBC_SHA: "TLS_RSA_WITH_AES_128_CBC_SHA", + tls.TLS_RSA_WITH_AES_256_CBC_SHA: "TLS_RSA_WITH_AES_256_CBC_SHA", + tls.TLS_RSA_WITH_AES_128_GCM_SHA256: "TLS_RSA_WITH_AES_128_GCM_SHA256", + tls.TLS_RSA_WITH_AES_256_GCM_SHA384: "TLS_RSA_WITH_AES_256_GCM_SHA384", + tls.TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", + tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + tls.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + tls.TLS_ECDHE_RSA_WITH_RC4_128_SHA: "TLS_ECDHE_RSA_WITH_RC4_128_SHA", + tls.TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + tls.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + tls.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + tls.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + tls.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + tls.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + tls.TLS_FALLBACK_SCSV: "TLS_FALLBACK_SCSV", + tls.TLS_RSA_WITH_AES_128_CBC_SHA256: "TLS_RSA_WITH_AES_128_CBC_SHA256", + tls.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + tls.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + tls.TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305", + tls.TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", + tls.TLS_AES_128_GCM_SHA256: "TLS_AES_128_GCM_SHA256", + tls.TLS_AES_256_GCM_SHA384: "TLS_AES_256_GCM_SHA384", + tls.TLS_CHACHA20_POLY1305_SHA256: "TLS_CHACHA20_POLY1305_SHA256", +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/dialoptions.go b/ecs-agent/vendor/google.golang.org/grpc/dialoptions.go new file mode 100644 index 0000000000..8f5b536f11 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/dialoptions.go @@ -0,0 +1,622 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "net" + "time" + + "google.golang.org/grpc/backoff" + "google.golang.org/grpc/channelz" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/credentials/insecure" + "google.golang.org/grpc/internal" + internalbackoff "google.golang.org/grpc/internal/backoff" + "google.golang.org/grpc/internal/binarylog" + "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/stats" +) + +func init() { + internal.AddGlobalDialOptions = func(opt ...DialOption) { + extraDialOptions = append(extraDialOptions, opt...) + } + internal.ClearGlobalDialOptions = func() { + extraDialOptions = nil + } + internal.WithBinaryLogger = withBinaryLogger +} + +// dialOptions configure a Dial call. dialOptions are set by the DialOption +// values passed to Dial. +type dialOptions struct { + unaryInt UnaryClientInterceptor + streamInt StreamClientInterceptor + + chainUnaryInts []UnaryClientInterceptor + chainStreamInts []StreamClientInterceptor + + cp Compressor + dc Decompressor + bs internalbackoff.Strategy + block bool + returnLastError bool + timeout time.Duration + scChan <-chan ServiceConfig + authority string + binaryLogger binarylog.Logger + copts transport.ConnectOptions + callOptions []CallOption + channelzParentID *channelz.Identifier + disableServiceConfig bool + disableRetry bool + disableHealthCheck bool + healthCheckFunc internal.HealthChecker + minConnectTimeout func() time.Duration + defaultServiceConfig *ServiceConfig // defaultServiceConfig is parsed from defaultServiceConfigRawJSON. + defaultServiceConfigRawJSON *string + resolvers []resolver.Builder +} + +// DialOption configures how we set up the connection. +type DialOption interface { + apply(*dialOptions) +} + +var extraDialOptions []DialOption + +// EmptyDialOption does not alter the dial configuration. It can be embedded in +// another structure to build custom dial options. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type EmptyDialOption struct{} + +func (EmptyDialOption) apply(*dialOptions) {} + +// funcDialOption wraps a function that modifies dialOptions into an +// implementation of the DialOption interface. +type funcDialOption struct { + f func(*dialOptions) +} + +func (fdo *funcDialOption) apply(do *dialOptions) { + fdo.f(do) +} + +func newFuncDialOption(f func(*dialOptions)) *funcDialOption { + return &funcDialOption{ + f: f, + } +} + +// WithWriteBufferSize determines how much data can be batched before doing a +// write on the wire. The corresponding memory allocation for this buffer will +// be twice the size to keep syscalls low. The default value for this buffer is +// 32KB. +// +// Zero or negative values will disable the write buffer such that each write +// will be on underlying connection. Note: A Send call may not directly +// translate to a write. +func WithWriteBufferSize(s int) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.WriteBufferSize = s + }) +} + +// WithReadBufferSize lets you set the size of read buffer, this determines how +// much data can be read at most for each read syscall. +// +// The default value for this buffer is 32KB. Zero or negative values will +// disable read buffer for a connection so data framer can access the +// underlying conn directly. +func WithReadBufferSize(s int) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.ReadBufferSize = s + }) +} + +// WithInitialWindowSize returns a DialOption which sets the value for initial +// window size on a stream. The lower bound for window size is 64K and any value +// smaller than that will be ignored. +func WithInitialWindowSize(s int32) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.InitialWindowSize = s + }) +} + +// WithInitialConnWindowSize returns a DialOption which sets the value for +// initial window size on a connection. The lower bound for window size is 64K +// and any value smaller than that will be ignored. +func WithInitialConnWindowSize(s int32) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.InitialConnWindowSize = s + }) +} + +// WithMaxMsgSize returns a DialOption which sets the maximum message size the +// client can receive. +// +// Deprecated: use WithDefaultCallOptions(MaxCallRecvMsgSize(s)) instead. Will +// be supported throughout 1.x. +func WithMaxMsgSize(s int) DialOption { + return WithDefaultCallOptions(MaxCallRecvMsgSize(s)) +} + +// WithDefaultCallOptions returns a DialOption which sets the default +// CallOptions for calls over the connection. +func WithDefaultCallOptions(cos ...CallOption) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.callOptions = append(o.callOptions, cos...) + }) +} + +// WithCodec returns a DialOption which sets a codec for message marshaling and +// unmarshaling. +// +// Deprecated: use WithDefaultCallOptions(ForceCodec(_)) instead. Will be +// supported throughout 1.x. +func WithCodec(c Codec) DialOption { + return WithDefaultCallOptions(CallCustomCodec(c)) +} + +// WithCompressor returns a DialOption which sets a Compressor to use for +// message compression. It has lower priority than the compressor set by the +// UseCompressor CallOption. +// +// Deprecated: use UseCompressor instead. Will be supported throughout 1.x. +func WithCompressor(cp Compressor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.cp = cp + }) +} + +// WithDecompressor returns a DialOption which sets a Decompressor to use for +// incoming message decompression. If incoming response messages are encoded +// using the decompressor's Type(), it will be used. Otherwise, the message +// encoding will be used to look up the compressor registered via +// encoding.RegisterCompressor, which will then be used to decompress the +// message. If no compressor is registered for the encoding, an Unimplemented +// status error will be returned. +// +// Deprecated: use encoding.RegisterCompressor instead. Will be supported +// throughout 1.x. +func WithDecompressor(dc Decompressor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.dc = dc + }) +} + +// WithServiceConfig returns a DialOption which has a channel to read the +// service configuration. +// +// Deprecated: service config should be received through name resolver or via +// WithDefaultServiceConfig, as specified at +// https://github.com/grpc/grpc/blob/master/doc/service_config.md. Will be +// removed in a future 1.x release. +func WithServiceConfig(c <-chan ServiceConfig) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.scChan = c + }) +} + +// WithConnectParams configures the ClientConn to use the provided ConnectParams +// for creating and maintaining connections to servers. +// +// The backoff configuration specified as part of the ConnectParams overrides +// all defaults specified in +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. Consider +// using the backoff.DefaultConfig as a base, in cases where you want to +// override only a subset of the backoff configuration. +func WithConnectParams(p ConnectParams) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.bs = internalbackoff.Exponential{Config: p.Backoff} + o.minConnectTimeout = func() time.Duration { + return p.MinConnectTimeout + } + }) +} + +// WithBackoffMaxDelay configures the dialer to use the provided maximum delay +// when backing off after failed connection attempts. +// +// Deprecated: use WithConnectParams instead. Will be supported throughout 1.x. +func WithBackoffMaxDelay(md time.Duration) DialOption { + return WithBackoffConfig(BackoffConfig{MaxDelay: md}) +} + +// WithBackoffConfig configures the dialer to use the provided backoff +// parameters after connection failures. +// +// Deprecated: use WithConnectParams instead. Will be supported throughout 1.x. +func WithBackoffConfig(b BackoffConfig) DialOption { + bc := backoff.DefaultConfig + bc.MaxDelay = b.MaxDelay + return withBackoff(internalbackoff.Exponential{Config: bc}) +} + +// withBackoff sets the backoff strategy used for connectRetryNum after a failed +// connection attempt. +// +// This can be exported if arbitrary backoff strategies are allowed by gRPC. +func withBackoff(bs internalbackoff.Strategy) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.bs = bs + }) +} + +// WithBlock returns a DialOption which makes callers of Dial block until the +// underlying connection is up. Without this, Dial returns immediately and +// connecting the server happens in background. +func WithBlock() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.block = true + }) +} + +// WithReturnConnectionError returns a DialOption which makes the client connection +// return a string containing both the last connection error that occurred and +// the context.DeadlineExceeded error. +// Implies WithBlock() +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithReturnConnectionError() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.block = true + o.returnLastError = true + }) +} + +// WithInsecure returns a DialOption which disables transport security for this +// ClientConn. Under the hood, it uses insecure.NewCredentials(). +// +// Note that using this DialOption with per-RPC credentials (through +// WithCredentialsBundle or WithPerRPCCredentials) which require transport +// security is incompatible and will cause grpc.Dial() to fail. +// +// Deprecated: use WithTransportCredentials and insecure.NewCredentials() +// instead. Will be supported throughout 1.x. +func WithInsecure() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.TransportCredentials = insecure.NewCredentials() + }) +} + +// WithNoProxy returns a DialOption which disables the use of proxies for this +// ClientConn. This is ignored if WithDialer or WithContextDialer are used. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithNoProxy() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.UseProxy = false + }) +} + +// WithTransportCredentials returns a DialOption which configures a connection +// level security credentials (e.g., TLS/SSL). This should not be used together +// with WithCredentialsBundle. +func WithTransportCredentials(creds credentials.TransportCredentials) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.TransportCredentials = creds + }) +} + +// WithPerRPCCredentials returns a DialOption which sets credentials and places +// auth state on each outbound RPC. +func WithPerRPCCredentials(creds credentials.PerRPCCredentials) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.PerRPCCredentials = append(o.copts.PerRPCCredentials, creds) + }) +} + +// WithCredentialsBundle returns a DialOption to set a credentials bundle for +// the ClientConn.WithCreds. This should not be used together with +// WithTransportCredentials. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithCredentialsBundle(b credentials.Bundle) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.CredsBundle = b + }) +} + +// WithTimeout returns a DialOption that configures a timeout for dialing a +// ClientConn initially. This is valid if and only if WithBlock() is present. +// +// Deprecated: use DialContext instead of Dial and context.WithTimeout +// instead. Will be supported throughout 1.x. +func WithTimeout(d time.Duration) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.timeout = d + }) +} + +// WithContextDialer returns a DialOption that sets a dialer to create +// connections. If FailOnNonTempDialError() is set to true, and an error is +// returned by f, gRPC checks the error's Temporary() method to decide if it +// should try to reconnect to the network address. +func WithContextDialer(f func(context.Context, string) (net.Conn, error)) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.Dialer = f + }) +} + +func init() { + internal.WithHealthCheckFunc = withHealthCheckFunc +} + +// WithDialer returns a DialOption that specifies a function to use for dialing +// network addresses. If FailOnNonTempDialError() is set to true, and an error +// is returned by f, gRPC checks the error's Temporary() method to decide if it +// should try to reconnect to the network address. +// +// Deprecated: use WithContextDialer instead. Will be supported throughout +// 1.x. +func WithDialer(f func(string, time.Duration) (net.Conn, error)) DialOption { + return WithContextDialer( + func(ctx context.Context, addr string) (net.Conn, error) { + if deadline, ok := ctx.Deadline(); ok { + return f(addr, time.Until(deadline)) + } + return f(addr, 0) + }) +} + +// WithStatsHandler returns a DialOption that specifies the stats handler for +// all the RPCs and underlying network connections in this ClientConn. +func WithStatsHandler(h stats.Handler) DialOption { + return newFuncDialOption(func(o *dialOptions) { + if h == nil { + logger.Error("ignoring nil parameter in grpc.WithStatsHandler ClientOption") + // Do not allow a nil stats handler, which would otherwise cause + // panics. + return + } + o.copts.StatsHandlers = append(o.copts.StatsHandlers, h) + }) +} + +// withBinaryLogger returns a DialOption that specifies the binary logger for +// this ClientConn. +func withBinaryLogger(bl binarylog.Logger) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.binaryLogger = bl + }) +} + +// FailOnNonTempDialError returns a DialOption that specifies if gRPC fails on +// non-temporary dial errors. If f is true, and dialer returns a non-temporary +// error, gRPC will fail the connection to the network address and won't try to +// reconnect. The default value of FailOnNonTempDialError is false. +// +// FailOnNonTempDialError only affects the initial dial, and does not do +// anything useful unless you are also using WithBlock(). +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func FailOnNonTempDialError(f bool) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.FailOnNonTempDialError = f + }) +} + +// WithUserAgent returns a DialOption that specifies a user agent string for all +// the RPCs. +func WithUserAgent(s string) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.UserAgent = s + }) +} + +// WithKeepaliveParams returns a DialOption that specifies keepalive parameters +// for the client transport. +func WithKeepaliveParams(kp keepalive.ClientParameters) DialOption { + if kp.Time < internal.KeepaliveMinPingTime { + logger.Warningf("Adjusting keepalive ping interval to minimum period of %v", internal.KeepaliveMinPingTime) + kp.Time = internal.KeepaliveMinPingTime + } + return newFuncDialOption(func(o *dialOptions) { + o.copts.KeepaliveParams = kp + }) +} + +// WithUnaryInterceptor returns a DialOption that specifies the interceptor for +// unary RPCs. +func WithUnaryInterceptor(f UnaryClientInterceptor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.unaryInt = f + }) +} + +// WithChainUnaryInterceptor returns a DialOption that specifies the chained +// interceptor for unary RPCs. The first interceptor will be the outer most, +// while the last interceptor will be the inner most wrapper around the real call. +// All interceptors added by this method will be chained, and the interceptor +// defined by WithUnaryInterceptor will always be prepended to the chain. +func WithChainUnaryInterceptor(interceptors ...UnaryClientInterceptor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.chainUnaryInts = append(o.chainUnaryInts, interceptors...) + }) +} + +// WithStreamInterceptor returns a DialOption that specifies the interceptor for +// streaming RPCs. +func WithStreamInterceptor(f StreamClientInterceptor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.streamInt = f + }) +} + +// WithChainStreamInterceptor returns a DialOption that specifies the chained +// interceptor for streaming RPCs. The first interceptor will be the outer most, +// while the last interceptor will be the inner most wrapper around the real call. +// All interceptors added by this method will be chained, and the interceptor +// defined by WithStreamInterceptor will always be prepended to the chain. +func WithChainStreamInterceptor(interceptors ...StreamClientInterceptor) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.chainStreamInts = append(o.chainStreamInts, interceptors...) + }) +} + +// WithAuthority returns a DialOption that specifies the value to be used as the +// :authority pseudo-header and as the server name in authentication handshake. +func WithAuthority(a string) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.authority = a + }) +} + +// WithChannelzParentID returns a DialOption that specifies the channelz ID of +// current ClientConn's parent. This function is used in nested channel creation +// (e.g. grpclb dial). +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithChannelzParentID(id *channelz.Identifier) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.channelzParentID = id + }) +} + +// WithDisableServiceConfig returns a DialOption that causes gRPC to ignore any +// service config provided by the resolver and provides a hint to the resolver +// to not fetch service configs. +// +// Note that this dial option only disables service config from resolver. If +// default service config is provided, gRPC will use the default service config. +func WithDisableServiceConfig() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.disableServiceConfig = true + }) +} + +// WithDefaultServiceConfig returns a DialOption that configures the default +// service config, which will be used in cases where: +// +// 1. WithDisableServiceConfig is also used, or +// +// 2. The name resolver does not provide a service config or provides an +// invalid service config. +// +// The parameter s is the JSON representation of the default service config. +// For more information about service configs, see: +// https://github.com/grpc/grpc/blob/master/doc/service_config.md +// For a simple example of usage, see: +// examples/features/load_balancing/client/main.go +func WithDefaultServiceConfig(s string) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.defaultServiceConfigRawJSON = &s + }) +} + +// WithDisableRetry returns a DialOption that disables retries, even if the +// service config enables them. This does not impact transparent retries, which +// will happen automatically if no data is written to the wire or if the RPC is +// unprocessed by the remote server. +func WithDisableRetry() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.disableRetry = true + }) +} + +// WithMaxHeaderListSize returns a DialOption that specifies the maximum +// (uncompressed) size of header list that the client is prepared to accept. +func WithMaxHeaderListSize(s uint32) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.copts.MaxHeaderListSize = &s + }) +} + +// WithDisableHealthCheck disables the LB channel health checking for all +// SubConns of this ClientConn. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithDisableHealthCheck() DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.disableHealthCheck = true + }) +} + +// withHealthCheckFunc replaces the default health check function with the +// provided one. It makes tests easier to change the health check function. +// +// For testing purpose only. +func withHealthCheckFunc(f internal.HealthChecker) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.healthCheckFunc = f + }) +} + +func defaultDialOptions() dialOptions { + return dialOptions{ + healthCheckFunc: internal.HealthCheckFunc, + copts: transport.ConnectOptions{ + WriteBufferSize: defaultWriteBufSize, + ReadBufferSize: defaultReadBufSize, + UseProxy: true, + }, + } +} + +// withGetMinConnectDeadline specifies the function that clientconn uses to +// get minConnectDeadline. This can be used to make connection attempts happen +// faster/slower. +// +// For testing purpose only. +func withMinConnectDeadline(f func() time.Duration) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.minConnectTimeout = f + }) +} + +// WithResolvers allows a list of resolver implementations to be registered +// locally with the ClientConn without needing to be globally registered via +// resolver.Register. They will be matched against the scheme used for the +// current Dial only, and will take precedence over the global registry. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func WithResolvers(rs ...resolver.Builder) DialOption { + return newFuncDialOption(func(o *dialOptions) { + o.resolvers = append(o.resolvers, rs...) + }) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/doc.go b/ecs-agent/vendor/google.golang.org/grpc/doc.go new file mode 100644 index 0000000000..0022859ad7 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/doc.go @@ -0,0 +1,26 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +//go:generate ./regenerate.sh + +/* +Package grpc implements an RPC system called gRPC. + +See grpc.io for more information about gRPC. +*/ +package grpc // import "google.golang.org/grpc" diff --git a/ecs-agent/vendor/google.golang.org/grpc/encoding/encoding.go b/ecs-agent/vendor/google.golang.org/grpc/encoding/encoding.go new file mode 100644 index 0000000000..711763d54f --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/encoding/encoding.go @@ -0,0 +1,133 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package encoding defines the interface for the compressor and codec, and +// functions to register and retrieve compressors and codecs. +// +// # Experimental +// +// Notice: This package is EXPERIMENTAL and may be changed or removed in a +// later release. +package encoding + +import ( + "io" + "strings" + + "google.golang.org/grpc/internal/grpcutil" +) + +// Identity specifies the optional encoding for uncompressed streams. +// It is intended for grpc internal use only. +const Identity = "identity" + +// Compressor is used for compressing and decompressing when sending or +// receiving messages. +type Compressor interface { + // Compress writes the data written to wc to w after compressing it. If an + // error occurs while initializing the compressor, that error is returned + // instead. + Compress(w io.Writer) (io.WriteCloser, error) + // Decompress reads data from r, decompresses it, and provides the + // uncompressed data via the returned io.Reader. If an error occurs while + // initializing the decompressor, that error is returned instead. + Decompress(r io.Reader) (io.Reader, error) + // Name is the name of the compression codec and is used to set the content + // coding header. The result must be static; the result cannot change + // between calls. + Name() string + // If a Compressor implements + // DecompressedSize(compressedBytes []byte) int, gRPC will call it + // to determine the size of the buffer allocated for the result of decompression. + // Return -1 to indicate unknown size. + // + // Experimental + // + // Notice: This API is EXPERIMENTAL and may be changed or removed in a + // later release. +} + +var registeredCompressor = make(map[string]Compressor) + +// RegisterCompressor registers the compressor with gRPC by its name. It can +// be activated when sending an RPC via grpc.UseCompressor(). It will be +// automatically accessed when receiving a message based on the content coding +// header. Servers also use it to send a response with the same encoding as +// the request. +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. If multiple Compressors are +// registered with the same name, the one registered last will take effect. +func RegisterCompressor(c Compressor) { + registeredCompressor[c.Name()] = c + grpcutil.RegisteredCompressorNames = append(grpcutil.RegisteredCompressorNames, c.Name()) +} + +// GetCompressor returns Compressor for the given compressor name. +func GetCompressor(name string) Compressor { + return registeredCompressor[name] +} + +// Codec defines the interface gRPC uses to encode and decode messages. Note +// that implementations of this interface must be thread safe; a Codec's +// methods can be called from concurrent goroutines. +type Codec interface { + // Marshal returns the wire format of v. + Marshal(v interface{}) ([]byte, error) + // Unmarshal parses the wire format into v. + Unmarshal(data []byte, v interface{}) error + // Name returns the name of the Codec implementation. The returned string + // will be used as part of content type in transmission. The result must be + // static; the result cannot change between calls. + Name() string +} + +var registeredCodecs = make(map[string]Codec) + +// RegisterCodec registers the provided Codec for use with all gRPC clients and +// servers. +// +// The Codec will be stored and looked up by result of its Name() method, which +// should match the content-subtype of the encoding handled by the Codec. This +// is case-insensitive, and is stored and looked up as lowercase. If the +// result of calling Name() is an empty string, RegisterCodec will panic. See +// Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. If multiple Codecs are +// registered with the same name, the one registered last will take effect. +func RegisterCodec(codec Codec) { + if codec == nil { + panic("cannot register a nil Codec") + } + if codec.Name() == "" { + panic("cannot register Codec with empty string result for Name()") + } + contentSubtype := strings.ToLower(codec.Name()) + registeredCodecs[contentSubtype] = codec +} + +// GetCodec gets a registered Codec by content-subtype, or nil if no Codec is +// registered for the content-subtype. +// +// The content-subtype is expected to be lowercase. +func GetCodec(contentSubtype string) Codec { + return registeredCodecs[contentSubtype] +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/encoding/proto/proto.go b/ecs-agent/vendor/google.golang.org/grpc/encoding/proto/proto.go new file mode 100644 index 0000000000..3009b35afe --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/encoding/proto/proto.go @@ -0,0 +1,58 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package proto defines the protobuf codec. Importing this package will +// register the codec. +package proto + +import ( + "fmt" + + "github.com/golang/protobuf/proto" + "google.golang.org/grpc/encoding" +) + +// Name is the name registered for the proto compressor. +const Name = "proto" + +func init() { + encoding.RegisterCodec(codec{}) +} + +// codec is a Codec implementation with protobuf. It is the default codec for gRPC. +type codec struct{} + +func (codec) Marshal(v interface{}) ([]byte, error) { + vv, ok := v.(proto.Message) + if !ok { + return nil, fmt.Errorf("failed to marshal, message is %T, want proto.Message", v) + } + return proto.Marshal(vv) +} + +func (codec) Unmarshal(data []byte, v interface{}) error { + vv, ok := v.(proto.Message) + if !ok { + return fmt.Errorf("failed to unmarshal, message is %T, want proto.Message", v) + } + return proto.Unmarshal(data, vv) +} + +func (codec) Name() string { + return Name +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/grpclog/component.go b/ecs-agent/vendor/google.golang.org/grpc/grpclog/component.go new file mode 100644 index 0000000000..8358dd6e2a --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/grpclog/component.go @@ -0,0 +1,117 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpclog + +import ( + "fmt" + + "google.golang.org/grpc/internal/grpclog" +) + +// componentData records the settings for a component. +type componentData struct { + name string +} + +var cache = map[string]*componentData{} + +func (c *componentData) InfoDepth(depth int, args ...interface{}) { + args = append([]interface{}{"[" + string(c.name) + "]"}, args...) + grpclog.InfoDepth(depth+1, args...) +} + +func (c *componentData) WarningDepth(depth int, args ...interface{}) { + args = append([]interface{}{"[" + string(c.name) + "]"}, args...) + grpclog.WarningDepth(depth+1, args...) +} + +func (c *componentData) ErrorDepth(depth int, args ...interface{}) { + args = append([]interface{}{"[" + string(c.name) + "]"}, args...) + grpclog.ErrorDepth(depth+1, args...) +} + +func (c *componentData) FatalDepth(depth int, args ...interface{}) { + args = append([]interface{}{"[" + string(c.name) + "]"}, args...) + grpclog.FatalDepth(depth+1, args...) +} + +func (c *componentData) Info(args ...interface{}) { + c.InfoDepth(1, args...) +} + +func (c *componentData) Warning(args ...interface{}) { + c.WarningDepth(1, args...) +} + +func (c *componentData) Error(args ...interface{}) { + c.ErrorDepth(1, args...) +} + +func (c *componentData) Fatal(args ...interface{}) { + c.FatalDepth(1, args...) +} + +func (c *componentData) Infof(format string, args ...interface{}) { + c.InfoDepth(1, fmt.Sprintf(format, args...)) +} + +func (c *componentData) Warningf(format string, args ...interface{}) { + c.WarningDepth(1, fmt.Sprintf(format, args...)) +} + +func (c *componentData) Errorf(format string, args ...interface{}) { + c.ErrorDepth(1, fmt.Sprintf(format, args...)) +} + +func (c *componentData) Fatalf(format string, args ...interface{}) { + c.FatalDepth(1, fmt.Sprintf(format, args...)) +} + +func (c *componentData) Infoln(args ...interface{}) { + c.InfoDepth(1, args...) +} + +func (c *componentData) Warningln(args ...interface{}) { + c.WarningDepth(1, args...) +} + +func (c *componentData) Errorln(args ...interface{}) { + c.ErrorDepth(1, args...) +} + +func (c *componentData) Fatalln(args ...interface{}) { + c.FatalDepth(1, args...) +} + +func (c *componentData) V(l int) bool { + return V(l) +} + +// Component creates a new component and returns it for logging. If a component +// with the name already exists, nothing will be created and it will be +// returned. SetLoggerV2 will panic if it is called with a logger created by +// Component. +func Component(componentName string) DepthLoggerV2 { + if cData, ok := cache[componentName]; ok { + return cData + } + c := &componentData{componentName} + cache[componentName] = c + return c +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/grpclog/grpclog.go b/ecs-agent/vendor/google.golang.org/grpc/grpclog/grpclog.go new file mode 100644 index 0000000000..c8bb2be34b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/grpclog/grpclog.go @@ -0,0 +1,132 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpclog defines logging for grpc. +// +// All logs in transport and grpclb packages only go to verbose level 2. +// All logs in other packages in grpc are logged in spite of the verbosity level. +// +// In the default logger, +// severity level can be set by environment variable GRPC_GO_LOG_SEVERITY_LEVEL, +// verbosity level can be set by GRPC_GO_LOG_VERBOSITY_LEVEL. +package grpclog // import "google.golang.org/grpc/grpclog" + +import ( + "os" + + "google.golang.org/grpc/internal/grpclog" +) + +func init() { + SetLoggerV2(newLoggerV2()) +} + +// V reports whether verbosity level l is at least the requested verbose level. +func V(l int) bool { + return grpclog.Logger.V(l) +} + +// Info logs to the INFO log. +func Info(args ...interface{}) { + grpclog.Logger.Info(args...) +} + +// Infof logs to the INFO log. Arguments are handled in the manner of fmt.Printf. +func Infof(format string, args ...interface{}) { + grpclog.Logger.Infof(format, args...) +} + +// Infoln logs to the INFO log. Arguments are handled in the manner of fmt.Println. +func Infoln(args ...interface{}) { + grpclog.Logger.Infoln(args...) +} + +// Warning logs to the WARNING log. +func Warning(args ...interface{}) { + grpclog.Logger.Warning(args...) +} + +// Warningf logs to the WARNING log. Arguments are handled in the manner of fmt.Printf. +func Warningf(format string, args ...interface{}) { + grpclog.Logger.Warningf(format, args...) +} + +// Warningln logs to the WARNING log. Arguments are handled in the manner of fmt.Println. +func Warningln(args ...interface{}) { + grpclog.Logger.Warningln(args...) +} + +// Error logs to the ERROR log. +func Error(args ...interface{}) { + grpclog.Logger.Error(args...) +} + +// Errorf logs to the ERROR log. Arguments are handled in the manner of fmt.Printf. +func Errorf(format string, args ...interface{}) { + grpclog.Logger.Errorf(format, args...) +} + +// Errorln logs to the ERROR log. Arguments are handled in the manner of fmt.Println. +func Errorln(args ...interface{}) { + grpclog.Logger.Errorln(args...) +} + +// Fatal logs to the FATAL log. Arguments are handled in the manner of fmt.Print. +// It calls os.Exit() with exit code 1. +func Fatal(args ...interface{}) { + grpclog.Logger.Fatal(args...) + // Make sure fatal logs will exit. + os.Exit(1) +} + +// Fatalf logs to the FATAL log. Arguments are handled in the manner of fmt.Printf. +// It calls os.Exit() with exit code 1. +func Fatalf(format string, args ...interface{}) { + grpclog.Logger.Fatalf(format, args...) + // Make sure fatal logs will exit. + os.Exit(1) +} + +// Fatalln logs to the FATAL log. Arguments are handled in the manner of fmt.Println. +// It calle os.Exit()) with exit code 1. +func Fatalln(args ...interface{}) { + grpclog.Logger.Fatalln(args...) + // Make sure fatal logs will exit. + os.Exit(1) +} + +// Print prints to the logger. Arguments are handled in the manner of fmt.Print. +// +// Deprecated: use Info. +func Print(args ...interface{}) { + grpclog.Logger.Info(args...) +} + +// Printf prints to the logger. Arguments are handled in the manner of fmt.Printf. +// +// Deprecated: use Infof. +func Printf(format string, args ...interface{}) { + grpclog.Logger.Infof(format, args...) +} + +// Println prints to the logger. Arguments are handled in the manner of fmt.Println. +// +// Deprecated: use Infoln. +func Println(args ...interface{}) { + grpclog.Logger.Infoln(args...) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/grpclog/logger.go b/ecs-agent/vendor/google.golang.org/grpc/grpclog/logger.go new file mode 100644 index 0000000000..ef06a4822b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/grpclog/logger.go @@ -0,0 +1,87 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpclog + +import "google.golang.org/grpc/internal/grpclog" + +// Logger mimics golang's standard Logger as an interface. +// +// Deprecated: use LoggerV2. +type Logger interface { + Fatal(args ...interface{}) + Fatalf(format string, args ...interface{}) + Fatalln(args ...interface{}) + Print(args ...interface{}) + Printf(format string, args ...interface{}) + Println(args ...interface{}) +} + +// SetLogger sets the logger that is used in grpc. Call only from +// init() functions. +// +// Deprecated: use SetLoggerV2. +func SetLogger(l Logger) { + grpclog.Logger = &loggerWrapper{Logger: l} +} + +// loggerWrapper wraps Logger into a LoggerV2. +type loggerWrapper struct { + Logger +} + +func (g *loggerWrapper) Info(args ...interface{}) { + g.Logger.Print(args...) +} + +func (g *loggerWrapper) Infoln(args ...interface{}) { + g.Logger.Println(args...) +} + +func (g *loggerWrapper) Infof(format string, args ...interface{}) { + g.Logger.Printf(format, args...) +} + +func (g *loggerWrapper) Warning(args ...interface{}) { + g.Logger.Print(args...) +} + +func (g *loggerWrapper) Warningln(args ...interface{}) { + g.Logger.Println(args...) +} + +func (g *loggerWrapper) Warningf(format string, args ...interface{}) { + g.Logger.Printf(format, args...) +} + +func (g *loggerWrapper) Error(args ...interface{}) { + g.Logger.Print(args...) +} + +func (g *loggerWrapper) Errorln(args ...interface{}) { + g.Logger.Println(args...) +} + +func (g *loggerWrapper) Errorf(format string, args ...interface{}) { + g.Logger.Printf(format, args...) +} + +func (g *loggerWrapper) V(l int) bool { + // Returns true for all verbose level. + return true +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/grpclog/loggerv2.go b/ecs-agent/vendor/google.golang.org/grpc/grpclog/loggerv2.go new file mode 100644 index 0000000000..b5560b47ec --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/grpclog/loggerv2.go @@ -0,0 +1,259 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpclog + +import ( + "encoding/json" + "fmt" + "io" + "io/ioutil" + "log" + "os" + "strconv" + "strings" + + "google.golang.org/grpc/internal/grpclog" +) + +// LoggerV2 does underlying logging work for grpclog. +type LoggerV2 interface { + // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. + Info(args ...interface{}) + // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. + Infoln(args ...interface{}) + // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. + Infof(format string, args ...interface{}) + // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. + Warning(args ...interface{}) + // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. + Warningln(args ...interface{}) + // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. + Warningf(format string, args ...interface{}) + // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. + Error(args ...interface{}) + // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. + Errorln(args ...interface{}) + // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. + Errorf(format string, args ...interface{}) + // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatal(args ...interface{}) + // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatalln(args ...interface{}) + // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatalf(format string, args ...interface{}) + // V reports whether verbosity level l is at least the requested verbose level. + V(l int) bool +} + +// SetLoggerV2 sets logger that is used in grpc to a V2 logger. +// Not mutex-protected, should be called before any gRPC functions. +func SetLoggerV2(l LoggerV2) { + if _, ok := l.(*componentData); ok { + panic("cannot use component logger as grpclog logger") + } + grpclog.Logger = l + grpclog.DepthLogger, _ = l.(grpclog.DepthLoggerV2) +} + +const ( + // infoLog indicates Info severity. + infoLog int = iota + // warningLog indicates Warning severity. + warningLog + // errorLog indicates Error severity. + errorLog + // fatalLog indicates Fatal severity. + fatalLog +) + +// severityName contains the string representation of each severity. +var severityName = []string{ + infoLog: "INFO", + warningLog: "WARNING", + errorLog: "ERROR", + fatalLog: "FATAL", +} + +// loggerT is the default logger used by grpclog. +type loggerT struct { + m []*log.Logger + v int + jsonFormat bool +} + +// NewLoggerV2 creates a loggerV2 with the provided writers. +// Fatal logs will be written to errorW, warningW, infoW, followed by exit(1). +// Error logs will be written to errorW, warningW and infoW. +// Warning logs will be written to warningW and infoW. +// Info logs will be written to infoW. +func NewLoggerV2(infoW, warningW, errorW io.Writer) LoggerV2 { + return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{}) +} + +// NewLoggerV2WithVerbosity creates a loggerV2 with the provided writers and +// verbosity level. +func NewLoggerV2WithVerbosity(infoW, warningW, errorW io.Writer, v int) LoggerV2 { + return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{verbose: v}) +} + +type loggerV2Config struct { + verbose int + jsonFormat bool +} + +func newLoggerV2WithConfig(infoW, warningW, errorW io.Writer, c loggerV2Config) LoggerV2 { + var m []*log.Logger + flag := log.LstdFlags + if c.jsonFormat { + flag = 0 + } + m = append(m, log.New(infoW, "", flag)) + m = append(m, log.New(io.MultiWriter(infoW, warningW), "", flag)) + ew := io.MultiWriter(infoW, warningW, errorW) // ew will be used for error and fatal. + m = append(m, log.New(ew, "", flag)) + m = append(m, log.New(ew, "", flag)) + return &loggerT{m: m, v: c.verbose, jsonFormat: c.jsonFormat} +} + +// newLoggerV2 creates a loggerV2 to be used as default logger. +// All logs are written to stderr. +func newLoggerV2() LoggerV2 { + errorW := ioutil.Discard + warningW := ioutil.Discard + infoW := ioutil.Discard + + logLevel := os.Getenv("GRPC_GO_LOG_SEVERITY_LEVEL") + switch logLevel { + case "", "ERROR", "error": // If env is unset, set level to ERROR. + errorW = os.Stderr + case "WARNING", "warning": + warningW = os.Stderr + case "INFO", "info": + infoW = os.Stderr + } + + var v int + vLevel := os.Getenv("GRPC_GO_LOG_VERBOSITY_LEVEL") + if vl, err := strconv.Atoi(vLevel); err == nil { + v = vl + } + + jsonFormat := strings.EqualFold(os.Getenv("GRPC_GO_LOG_FORMATTER"), "json") + + return newLoggerV2WithConfig(infoW, warningW, errorW, loggerV2Config{ + verbose: v, + jsonFormat: jsonFormat, + }) +} + +func (g *loggerT) output(severity int, s string) { + sevStr := severityName[severity] + if !g.jsonFormat { + g.m[severity].Output(2, fmt.Sprintf("%v: %v", sevStr, s)) + return + } + // TODO: we can also include the logging component, but that needs more + // (API) changes. + b, _ := json.Marshal(map[string]string{ + "severity": sevStr, + "message": s, + }) + g.m[severity].Output(2, string(b)) +} + +func (g *loggerT) Info(args ...interface{}) { + g.output(infoLog, fmt.Sprint(args...)) +} + +func (g *loggerT) Infoln(args ...interface{}) { + g.output(infoLog, fmt.Sprintln(args...)) +} + +func (g *loggerT) Infof(format string, args ...interface{}) { + g.output(infoLog, fmt.Sprintf(format, args...)) +} + +func (g *loggerT) Warning(args ...interface{}) { + g.output(warningLog, fmt.Sprint(args...)) +} + +func (g *loggerT) Warningln(args ...interface{}) { + g.output(warningLog, fmt.Sprintln(args...)) +} + +func (g *loggerT) Warningf(format string, args ...interface{}) { + g.output(warningLog, fmt.Sprintf(format, args...)) +} + +func (g *loggerT) Error(args ...interface{}) { + g.output(errorLog, fmt.Sprint(args...)) +} + +func (g *loggerT) Errorln(args ...interface{}) { + g.output(errorLog, fmt.Sprintln(args...)) +} + +func (g *loggerT) Errorf(format string, args ...interface{}) { + g.output(errorLog, fmt.Sprintf(format, args...)) +} + +func (g *loggerT) Fatal(args ...interface{}) { + g.output(fatalLog, fmt.Sprint(args...)) + os.Exit(1) +} + +func (g *loggerT) Fatalln(args ...interface{}) { + g.output(fatalLog, fmt.Sprintln(args...)) + os.Exit(1) +} + +func (g *loggerT) Fatalf(format string, args ...interface{}) { + g.output(fatalLog, fmt.Sprintf(format, args...)) + os.Exit(1) +} + +func (g *loggerT) V(l int) bool { + return l <= g.v +} + +// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements +// DepthLoggerV2, the below functions will be called with the appropriate stack +// depth set for trivial functions the logger may ignore. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type DepthLoggerV2 interface { + LoggerV2 + // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. + InfoDepth(depth int, args ...interface{}) + // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. + WarningDepth(depth int, args ...interface{}) + // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. + ErrorDepth(depth int, args ...interface{}) + // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. + FatalDepth(depth int, args ...interface{}) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/interceptor.go b/ecs-agent/vendor/google.golang.org/grpc/interceptor.go new file mode 100644 index 0000000000..bb96ef57be --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/interceptor.go @@ -0,0 +1,104 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" +) + +// UnaryInvoker is called by UnaryClientInterceptor to complete RPCs. +type UnaryInvoker func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, opts ...CallOption) error + +// UnaryClientInterceptor intercepts the execution of a unary RPC on the client. +// Unary interceptors can be specified as a DialOption, using +// WithUnaryInterceptor() or WithChainUnaryInterceptor(), when creating a +// ClientConn. When a unary interceptor(s) is set on a ClientConn, gRPC +// delegates all unary RPC invocations to the interceptor, and it is the +// responsibility of the interceptor to call invoker to complete the processing +// of the RPC. +// +// method is the RPC name. req and reply are the corresponding request and +// response messages. cc is the ClientConn on which the RPC was invoked. invoker +// is the handler to complete the RPC and it is the responsibility of the +// interceptor to call it. opts contain all applicable call options, including +// defaults from the ClientConn as well as per-call options. +// +// The returned error must be compatible with the status package. +type UnaryClientInterceptor func(ctx context.Context, method string, req, reply interface{}, cc *ClientConn, invoker UnaryInvoker, opts ...CallOption) error + +// Streamer is called by StreamClientInterceptor to create a ClientStream. +type Streamer func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) + +// StreamClientInterceptor intercepts the creation of a ClientStream. Stream +// interceptors can be specified as a DialOption, using WithStreamInterceptor() +// or WithChainStreamInterceptor(), when creating a ClientConn. When a stream +// interceptor(s) is set on the ClientConn, gRPC delegates all stream creations +// to the interceptor, and it is the responsibility of the interceptor to call +// streamer. +// +// desc contains a description of the stream. cc is the ClientConn on which the +// RPC was invoked. streamer is the handler to create a ClientStream and it is +// the responsibility of the interceptor to call it. opts contain all applicable +// call options, including defaults from the ClientConn as well as per-call +// options. +// +// StreamClientInterceptor may return a custom ClientStream to intercept all I/O +// operations. The returned error must be compatible with the status package. +type StreamClientInterceptor func(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, streamer Streamer, opts ...CallOption) (ClientStream, error) + +// UnaryServerInfo consists of various information about a unary RPC on +// server side. All per-rpc information may be mutated by the interceptor. +type UnaryServerInfo struct { + // Server is the service implementation the user provides. This is read-only. + Server interface{} + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string +} + +// UnaryHandler defines the handler invoked by UnaryServerInterceptor to complete the normal +// execution of a unary RPC. +// +// If a UnaryHandler returns an error, it should either be produced by the +// status package, or be one of the context errors. Otherwise, gRPC will use +// codes.Unknown as the status code and err.Error() as the status message of the +// RPC. +type UnaryHandler func(ctx context.Context, req interface{}) (interface{}, error) + +// UnaryServerInterceptor provides a hook to intercept the execution of a unary RPC on the server. info +// contains all the information of this RPC the interceptor can operate on. And handler is the wrapper +// of the service method implementation. It is the responsibility of the interceptor to invoke handler +// to complete the RPC. +type UnaryServerInterceptor func(ctx context.Context, req interface{}, info *UnaryServerInfo, handler UnaryHandler) (resp interface{}, err error) + +// StreamServerInfo consists of various information about a streaming RPC on +// server side. All per-rpc information may be mutated by the interceptor. +type StreamServerInfo struct { + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string + // IsClientStream indicates whether the RPC is a client streaming RPC. + IsClientStream bool + // IsServerStream indicates whether the RPC is a server streaming RPC. + IsServerStream bool +} + +// StreamServerInterceptor provides a hook to intercept the execution of a streaming RPC on the server. +// info contains all the information of this RPC the interceptor can operate on. And handler is the +// service method implementation. It is the responsibility of the interceptor to invoke handler to +// complete the RPC. +type StreamServerInterceptor func(srv interface{}, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/backoff/backoff.go b/ecs-agent/vendor/google.golang.org/grpc/internal/backoff/backoff.go new file mode 100644 index 0000000000..5fc0ee3da5 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/backoff/backoff.go @@ -0,0 +1,73 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package backoff implement the backoff strategy for gRPC. +// +// This is kept in internal until the gRPC project decides whether or not to +// allow alternative backoff strategies. +package backoff + +import ( + "time" + + grpcbackoff "google.golang.org/grpc/backoff" + "google.golang.org/grpc/internal/grpcrand" +) + +// Strategy defines the methodology for backing off after a grpc connection +// failure. +type Strategy interface { + // Backoff returns the amount of time to wait before the next retry given + // the number of consecutive failures. + Backoff(retries int) time.Duration +} + +// DefaultExponential is an exponential backoff implementation using the +// default values for all the configurable knobs defined in +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +var DefaultExponential = Exponential{Config: grpcbackoff.DefaultConfig} + +// Exponential implements exponential backoff algorithm as defined in +// https://github.com/grpc/grpc/blob/master/doc/connection-backoff.md. +type Exponential struct { + // Config contains all options to configure the backoff algorithm. + Config grpcbackoff.Config +} + +// Backoff returns the amount of time to wait before the next retry given the +// number of retries. +func (bc Exponential) Backoff(retries int) time.Duration { + if retries == 0 { + return bc.Config.BaseDelay + } + backoff, max := float64(bc.Config.BaseDelay), float64(bc.Config.MaxDelay) + for backoff < max && retries > 0 { + backoff *= bc.Config.Multiplier + retries-- + } + if backoff > max { + backoff = max + } + // Randomize backoff delays so that if a cluster of requests start at + // the same time, they won't operate in lockstep. + backoff *= 1 + bc.Config.Jitter*(grpcrand.Float64()*2-1) + if backoff < 0 { + return 0 + } + return time.Duration(backoff) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go b/ecs-agent/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go new file mode 100644 index 0000000000..08666f62a7 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/balancer/gracefulswitch/gracefulswitch.go @@ -0,0 +1,384 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package gracefulswitch implements a graceful switch load balancer. +package gracefulswitch + +import ( + "errors" + "fmt" + "sync" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/balancer/base" + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/resolver" +) + +var errBalancerClosed = errors.New("gracefulSwitchBalancer is closed") +var _ balancer.Balancer = (*Balancer)(nil) + +// NewBalancer returns a graceful switch Balancer. +func NewBalancer(cc balancer.ClientConn, opts balancer.BuildOptions) *Balancer { + return &Balancer{ + cc: cc, + bOpts: opts, + } +} + +// Balancer is a utility to gracefully switch from one balancer to +// a new balancer. It implements the balancer.Balancer interface. +type Balancer struct { + bOpts balancer.BuildOptions + cc balancer.ClientConn + + // mu protects the following fields and all fields within balancerCurrent + // and balancerPending. mu does not need to be held when calling into the + // child balancers, as all calls into these children happen only as a direct + // result of a call into the gracefulSwitchBalancer, which are also + // guaranteed to be synchronous. There is one exception: an UpdateState call + // from a child balancer when current and pending are populated can lead to + // calling Close() on the current. To prevent that racing with an + // UpdateSubConnState from the channel, we hold currentMu during Close and + // UpdateSubConnState calls. + mu sync.Mutex + balancerCurrent *balancerWrapper + balancerPending *balancerWrapper + closed bool // set to true when this balancer is closed + + // currentMu must be locked before mu. This mutex guards against this + // sequence of events: UpdateSubConnState() called, finds the + // balancerCurrent, gives up lock, updateState comes in, causes Close() on + // balancerCurrent before the UpdateSubConnState is called on the + // balancerCurrent. + currentMu sync.Mutex +} + +// swap swaps out the current lb with the pending lb and updates the ClientConn. +// The caller must hold gsb.mu. +func (gsb *Balancer) swap() { + gsb.cc.UpdateState(gsb.balancerPending.lastState) + cur := gsb.balancerCurrent + gsb.balancerCurrent = gsb.balancerPending + gsb.balancerPending = nil + go func() { + gsb.currentMu.Lock() + defer gsb.currentMu.Unlock() + cur.Close() + }() +} + +// Helper function that checks if the balancer passed in is current or pending. +// The caller must hold gsb.mu. +func (gsb *Balancer) balancerCurrentOrPending(bw *balancerWrapper) bool { + return bw == gsb.balancerCurrent || bw == gsb.balancerPending +} + +// SwitchTo initializes the graceful switch process, which completes based on +// connectivity state changes on the current/pending balancer. Thus, the switch +// process is not complete when this method returns. This method must be called +// synchronously alongside the rest of the balancer.Balancer methods this +// Graceful Switch Balancer implements. +func (gsb *Balancer) SwitchTo(builder balancer.Builder) error { + gsb.mu.Lock() + if gsb.closed { + gsb.mu.Unlock() + return errBalancerClosed + } + bw := &balancerWrapper{ + gsb: gsb, + lastState: balancer.State{ + ConnectivityState: connectivity.Connecting, + Picker: base.NewErrPicker(balancer.ErrNoSubConnAvailable), + }, + subconns: make(map[balancer.SubConn]bool), + } + balToClose := gsb.balancerPending // nil if there is no pending balancer + if gsb.balancerCurrent == nil { + gsb.balancerCurrent = bw + } else { + gsb.balancerPending = bw + } + gsb.mu.Unlock() + balToClose.Close() + // This function takes a builder instead of a balancer because builder.Build + // can call back inline, and this utility needs to handle the callbacks. + newBalancer := builder.Build(bw, gsb.bOpts) + if newBalancer == nil { + // This is illegal and should never happen; we clear the balancerWrapper + // we were constructing if it happens to avoid a potential panic. + gsb.mu.Lock() + if gsb.balancerPending != nil { + gsb.balancerPending = nil + } else { + gsb.balancerCurrent = nil + } + gsb.mu.Unlock() + return balancer.ErrBadResolverState + } + + // This write doesn't need to take gsb.mu because this field never gets read + // or written to on any calls from the current or pending. Calls from grpc + // to this balancer are guaranteed to be called synchronously, so this + // bw.Balancer field will never be forwarded to until this SwitchTo() + // function returns. + bw.Balancer = newBalancer + return nil +} + +// Returns nil if the graceful switch balancer is closed. +func (gsb *Balancer) latestBalancer() *balancerWrapper { + gsb.mu.Lock() + defer gsb.mu.Unlock() + if gsb.balancerPending != nil { + return gsb.balancerPending + } + return gsb.balancerCurrent +} + +// UpdateClientConnState forwards the update to the latest balancer created. +func (gsb *Balancer) UpdateClientConnState(state balancer.ClientConnState) error { + // The resolver data is only relevant to the most recent LB Policy. + balToUpdate := gsb.latestBalancer() + if balToUpdate == nil { + return errBalancerClosed + } + // Perform this call without gsb.mu to prevent deadlocks if the child calls + // back into the channel. The latest balancer can never be closed during a + // call from the channel, even without gsb.mu held. + return balToUpdate.UpdateClientConnState(state) +} + +// ResolverError forwards the error to the latest balancer created. +func (gsb *Balancer) ResolverError(err error) { + // The resolver data is only relevant to the most recent LB Policy. + balToUpdate := gsb.latestBalancer() + if balToUpdate == nil { + return + } + // Perform this call without gsb.mu to prevent deadlocks if the child calls + // back into the channel. The latest balancer can never be closed during a + // call from the channel, even without gsb.mu held. + balToUpdate.ResolverError(err) +} + +// ExitIdle forwards the call to the latest balancer created. +// +// If the latest balancer does not support ExitIdle, the subConns are +// re-connected to manually. +func (gsb *Balancer) ExitIdle() { + balToUpdate := gsb.latestBalancer() + if balToUpdate == nil { + return + } + // There is no need to protect this read with a mutex, as the write to the + // Balancer field happens in SwitchTo, which completes before this can be + // called. + if ei, ok := balToUpdate.Balancer.(balancer.ExitIdler); ok { + ei.ExitIdle() + return + } + gsb.mu.Lock() + defer gsb.mu.Unlock() + for sc := range balToUpdate.subconns { + sc.Connect() + } +} + +// UpdateSubConnState forwards the update to the appropriate child. +func (gsb *Balancer) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { + gsb.currentMu.Lock() + defer gsb.currentMu.Unlock() + gsb.mu.Lock() + // Forward update to the appropriate child. Even if there is a pending + // balancer, the current balancer should continue to get SubConn updates to + // maintain the proper state while the pending is still connecting. + var balToUpdate *balancerWrapper + if gsb.balancerCurrent != nil && gsb.balancerCurrent.subconns[sc] { + balToUpdate = gsb.balancerCurrent + } else if gsb.balancerPending != nil && gsb.balancerPending.subconns[sc] { + balToUpdate = gsb.balancerPending + } + gsb.mu.Unlock() + if balToUpdate == nil { + // SubConn belonged to a stale lb policy that has not yet fully closed, + // or the balancer was already closed. + return + } + balToUpdate.UpdateSubConnState(sc, state) +} + +// Close closes any active child balancers. +func (gsb *Balancer) Close() { + gsb.mu.Lock() + gsb.closed = true + currentBalancerToClose := gsb.balancerCurrent + gsb.balancerCurrent = nil + pendingBalancerToClose := gsb.balancerPending + gsb.balancerPending = nil + gsb.mu.Unlock() + + currentBalancerToClose.Close() + pendingBalancerToClose.Close() +} + +// balancerWrapper wraps a balancer.Balancer, and overrides some Balancer +// methods to help cleanup SubConns created by the wrapped balancer. +// +// It implements the balancer.ClientConn interface and is passed down in that +// capacity to the wrapped balancer. It maintains a set of subConns created by +// the wrapped balancer and calls from the latter to create/update/remove +// SubConns update this set before being forwarded to the parent ClientConn. +// State updates from the wrapped balancer can result in invocation of the +// graceful switch logic. +type balancerWrapper struct { + balancer.Balancer + gsb *Balancer + + lastState balancer.State + subconns map[balancer.SubConn]bool // subconns created by this balancer +} + +func (bw *balancerWrapper) UpdateSubConnState(sc balancer.SubConn, state balancer.SubConnState) { + if state.ConnectivityState == connectivity.Shutdown { + bw.gsb.mu.Lock() + delete(bw.subconns, sc) + bw.gsb.mu.Unlock() + } + // There is no need to protect this read with a mutex, as the write to the + // Balancer field happens in SwitchTo, which completes before this can be + // called. + bw.Balancer.UpdateSubConnState(sc, state) +} + +// Close closes the underlying LB policy and removes the subconns it created. bw +// must not be referenced via balancerCurrent or balancerPending in gsb when +// called. gsb.mu must not be held. Does not panic with a nil receiver. +func (bw *balancerWrapper) Close() { + // before Close is called. + if bw == nil { + return + } + // There is no need to protect this read with a mutex, as Close() is + // impossible to be called concurrently with the write in SwitchTo(). The + // callsites of Close() for this balancer in Graceful Switch Balancer will + // never be called until SwitchTo() returns. + bw.Balancer.Close() + bw.gsb.mu.Lock() + for sc := range bw.subconns { + bw.gsb.cc.RemoveSubConn(sc) + } + bw.gsb.mu.Unlock() +} + +func (bw *balancerWrapper) UpdateState(state balancer.State) { + // Hold the mutex for this entire call to ensure it cannot occur + // concurrently with other updateState() calls. This causes updates to + // lastState and calls to cc.UpdateState to happen atomically. + bw.gsb.mu.Lock() + defer bw.gsb.mu.Unlock() + bw.lastState = state + + if !bw.gsb.balancerCurrentOrPending(bw) { + return + } + + if bw == bw.gsb.balancerCurrent { + // In the case that the current balancer exits READY, and there is a pending + // balancer, you can forward the pending balancer's cached State up to + // ClientConn and swap the pending into the current. This is because there + // is no reason to gracefully switch from and keep using the old policy as + // the ClientConn is not connected to any backends. + if state.ConnectivityState != connectivity.Ready && bw.gsb.balancerPending != nil { + bw.gsb.swap() + return + } + // Even if there is a pending balancer waiting to be gracefully switched to, + // continue to forward current balancer updates to the Client Conn. Ignoring + // state + picker from the current would cause undefined behavior/cause the + // system to behave incorrectly from the current LB policies perspective. + // Also, the current LB is still being used by grpc to choose SubConns per + // RPC, and thus should use the most updated form of the current balancer. + bw.gsb.cc.UpdateState(state) + return + } + // This method is now dealing with a state update from the pending balancer. + // If the current balancer is currently in a state other than READY, the new + // policy can be swapped into place immediately. This is because there is no + // reason to gracefully switch from and keep using the old policy as the + // ClientConn is not connected to any backends. + if state.ConnectivityState != connectivity.Connecting || bw.gsb.balancerCurrent.lastState.ConnectivityState != connectivity.Ready { + bw.gsb.swap() + } +} + +func (bw *balancerWrapper) NewSubConn(addrs []resolver.Address, opts balancer.NewSubConnOptions) (balancer.SubConn, error) { + bw.gsb.mu.Lock() + if !bw.gsb.balancerCurrentOrPending(bw) { + bw.gsb.mu.Unlock() + return nil, fmt.Errorf("%T at address %p that called NewSubConn is deleted", bw, bw) + } + bw.gsb.mu.Unlock() + + sc, err := bw.gsb.cc.NewSubConn(addrs, opts) + if err != nil { + return nil, err + } + bw.gsb.mu.Lock() + if !bw.gsb.balancerCurrentOrPending(bw) { // balancer was closed during this call + bw.gsb.cc.RemoveSubConn(sc) + bw.gsb.mu.Unlock() + return nil, fmt.Errorf("%T at address %p that called NewSubConn is deleted", bw, bw) + } + bw.subconns[sc] = true + bw.gsb.mu.Unlock() + return sc, nil +} + +func (bw *balancerWrapper) ResolveNow(opts resolver.ResolveNowOptions) { + // Ignore ResolveNow requests from anything other than the most recent + // balancer, because older balancers were already removed from the config. + if bw != bw.gsb.latestBalancer() { + return + } + bw.gsb.cc.ResolveNow(opts) +} + +func (bw *balancerWrapper) RemoveSubConn(sc balancer.SubConn) { + bw.gsb.mu.Lock() + if !bw.gsb.balancerCurrentOrPending(bw) { + bw.gsb.mu.Unlock() + return + } + bw.gsb.mu.Unlock() + bw.gsb.cc.RemoveSubConn(sc) +} + +func (bw *balancerWrapper) UpdateAddresses(sc balancer.SubConn, addrs []resolver.Address) { + bw.gsb.mu.Lock() + if !bw.gsb.balancerCurrentOrPending(bw) { + bw.gsb.mu.Unlock() + return + } + bw.gsb.mu.Unlock() + bw.gsb.cc.UpdateAddresses(sc, addrs) +} + +func (bw *balancerWrapper) Target() string { + return bw.gsb.cc.Target() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/balancerload/load.go b/ecs-agent/vendor/google.golang.org/grpc/internal/balancerload/load.go new file mode 100644 index 0000000000..3a905d9665 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/balancerload/load.go @@ -0,0 +1,46 @@ +/* + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// Package balancerload defines APIs to parse server loads in trailers. The +// parsed loads are sent to balancers in DoneInfo. +package balancerload + +import ( + "google.golang.org/grpc/metadata" +) + +// Parser converts loads from metadata into a concrete type. +type Parser interface { + // Parse parses loads from metadata. + Parse(md metadata.MD) interface{} +} + +var parser Parser + +// SetParser sets the load parser. +// +// Not mutex-protected, should be called before any gRPC functions. +func SetParser(lr Parser) { + parser = lr +} + +// Parse calls parser.Read(). +func Parse(md metadata.MD) interface{} { + if parser == nil { + return nil + } + return parser.Parse(md) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go new file mode 100644 index 0000000000..809d73ccaf --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog.go @@ -0,0 +1,189 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package binarylog implementation binary logging as defined in +// https://github.com/grpc/proposal/blob/master/A16-binary-logging.md. +package binarylog + +import ( + "fmt" + "os" + + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/grpcutil" +) + +// Logger is the global binary logger. It can be used to get binary logger for +// each method. +type Logger interface { + GetMethodLogger(methodName string) MethodLogger +} + +// binLogger is the global binary logger for the binary. One of this should be +// built at init time from the configuration (environment variable or flags). +// +// It is used to get a MethodLogger for each individual method. +var binLogger Logger + +var grpclogLogger = grpclog.Component("binarylog") + +// SetLogger sets the binary logger. +// +// Only call this at init time. +func SetLogger(l Logger) { + binLogger = l +} + +// GetLogger gets the binary logger. +// +// Only call this at init time. +func GetLogger() Logger { + return binLogger +} + +// GetMethodLogger returns the MethodLogger for the given methodName. +// +// methodName should be in the format of "/service/method". +// +// Each MethodLogger returned by this method is a new instance. This is to +// generate sequence id within the call. +func GetMethodLogger(methodName string) MethodLogger { + if binLogger == nil { + return nil + } + return binLogger.GetMethodLogger(methodName) +} + +func init() { + const envStr = "GRPC_BINARY_LOG_FILTER" + configStr := os.Getenv(envStr) + binLogger = NewLoggerFromConfigString(configStr) +} + +// MethodLoggerConfig contains the setting for logging behavior of a method +// logger. Currently, it contains the max length of header and message. +type MethodLoggerConfig struct { + // Max length of header and message. + Header, Message uint64 +} + +// LoggerConfig contains the config for loggers to create method loggers. +type LoggerConfig struct { + All *MethodLoggerConfig + Services map[string]*MethodLoggerConfig + Methods map[string]*MethodLoggerConfig + + Blacklist map[string]struct{} +} + +type logger struct { + config LoggerConfig +} + +// NewLoggerFromConfig builds a logger with the given LoggerConfig. +func NewLoggerFromConfig(config LoggerConfig) Logger { + return &logger{config: config} +} + +// newEmptyLogger creates an empty logger. The map fields need to be filled in +// using the set* functions. +func newEmptyLogger() *logger { + return &logger{} +} + +// Set method logger for "*". +func (l *logger) setDefaultMethodLogger(ml *MethodLoggerConfig) error { + if l.config.All != nil { + return fmt.Errorf("conflicting global rules found") + } + l.config.All = ml + return nil +} + +// Set method logger for "service/*". +// +// New MethodLogger with same service overrides the old one. +func (l *logger) setServiceMethodLogger(service string, ml *MethodLoggerConfig) error { + if _, ok := l.config.Services[service]; ok { + return fmt.Errorf("conflicting service rules for service %v found", service) + } + if l.config.Services == nil { + l.config.Services = make(map[string]*MethodLoggerConfig) + } + l.config.Services[service] = ml + return nil +} + +// Set method logger for "service/method". +// +// New MethodLogger with same method overrides the old one. +func (l *logger) setMethodMethodLogger(method string, ml *MethodLoggerConfig) error { + if _, ok := l.config.Blacklist[method]; ok { + return fmt.Errorf("conflicting blacklist rules for method %v found", method) + } + if _, ok := l.config.Methods[method]; ok { + return fmt.Errorf("conflicting method rules for method %v found", method) + } + if l.config.Methods == nil { + l.config.Methods = make(map[string]*MethodLoggerConfig) + } + l.config.Methods[method] = ml + return nil +} + +// Set blacklist method for "-service/method". +func (l *logger) setBlacklist(method string) error { + if _, ok := l.config.Blacklist[method]; ok { + return fmt.Errorf("conflicting blacklist rules for method %v found", method) + } + if _, ok := l.config.Methods[method]; ok { + return fmt.Errorf("conflicting method rules for method %v found", method) + } + if l.config.Blacklist == nil { + l.config.Blacklist = make(map[string]struct{}) + } + l.config.Blacklist[method] = struct{}{} + return nil +} + +// getMethodLogger returns the MethodLogger for the given methodName. +// +// methodName should be in the format of "/service/method". +// +// Each MethodLogger returned by this method is a new instance. This is to +// generate sequence id within the call. +func (l *logger) GetMethodLogger(methodName string) MethodLogger { + s, m, err := grpcutil.ParseMethod(methodName) + if err != nil { + grpclogLogger.Infof("binarylogging: failed to parse %q: %v", methodName, err) + return nil + } + if ml, ok := l.config.Methods[s+"/"+m]; ok { + return NewTruncatingMethodLogger(ml.Header, ml.Message) + } + if _, ok := l.config.Blacklist[s+"/"+m]; ok { + return nil + } + if ml, ok := l.config.Services[s]; ok { + return NewTruncatingMethodLogger(ml.Header, ml.Message) + } + if l.config.All == nil { + return nil + } + return NewTruncatingMethodLogger(l.config.All.Header, l.config.All.Message) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go new file mode 100644 index 0000000000..1ee00a39ac --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/binarylog_testutil.go @@ -0,0 +1,42 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// This file contains exported variables/functions that are exported for testing +// only. +// +// An ideal way for this would be to put those in a *_test.go but in binarylog +// package. But this doesn't work with staticcheck with go module. Error was: +// "MdToMetadataProto not declared by package binarylog". This could be caused +// by the way staticcheck looks for files for a certain package, which doesn't +// support *_test.go files. +// +// Move those to binary_test.go when staticcheck is fixed. + +package binarylog + +var ( + // AllLogger is a logger that logs all headers/messages for all RPCs. It's + // for testing only. + AllLogger = NewLoggerFromConfigString("*") + // MdToMetadataProto converts metadata to a binary logging proto message. + // It's for testing only. + MdToMetadataProto = mdToMetadataProto + // AddrToProto converts an address to a binary logging proto message. It's + // for testing only. + AddrToProto = addrToProto +) diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/env_config.go b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/env_config.go new file mode 100644 index 0000000000..f9e80e27ab --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/env_config.go @@ -0,0 +1,208 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package binarylog + +import ( + "errors" + "fmt" + "regexp" + "strconv" + "strings" +) + +// NewLoggerFromConfigString reads the string and build a logger. It can be used +// to build a new logger and assign it to binarylog.Logger. +// +// Example filter config strings: +// - "" Nothing will be logged +// - "*" All headers and messages will be fully logged. +// - "*{h}" Only headers will be logged. +// - "*{m:256}" Only the first 256 bytes of each message will be logged. +// - "Foo/*" Logs every method in service Foo +// - "Foo/*,-Foo/Bar" Logs every method in service Foo except method /Foo/Bar +// - "Foo/*,Foo/Bar{m:256}" Logs the first 256 bytes of each message in method +// /Foo/Bar, logs all headers and messages in every other method in service +// Foo. +// +// If two configs exist for one certain method or service, the one specified +// later overrides the previous config. +func NewLoggerFromConfigString(s string) Logger { + if s == "" { + return nil + } + l := newEmptyLogger() + methods := strings.Split(s, ",") + for _, method := range methods { + if err := l.fillMethodLoggerWithConfigString(method); err != nil { + grpclogLogger.Warningf("failed to parse binary log config: %v", err) + return nil + } + } + return l +} + +// fillMethodLoggerWithConfigString parses config, creates TruncatingMethodLogger and adds +// it to the right map in the logger. +func (l *logger) fillMethodLoggerWithConfigString(config string) error { + // "" is invalid. + if config == "" { + return errors.New("empty string is not a valid method binary logging config") + } + + // "-service/method", blacklist, no * or {} allowed. + if config[0] == '-' { + s, m, suffix, err := parseMethodConfigAndSuffix(config[1:]) + if err != nil { + return fmt.Errorf("invalid config: %q, %v", config, err) + } + if m == "*" { + return fmt.Errorf("invalid config: %q, %v", config, "* not allowed in blacklist config") + } + if suffix != "" { + return fmt.Errorf("invalid config: %q, %v", config, "header/message limit not allowed in blacklist config") + } + if err := l.setBlacklist(s + "/" + m); err != nil { + return fmt.Errorf("invalid config: %v", err) + } + return nil + } + + // "*{h:256;m:256}" + if config[0] == '*' { + hdr, msg, err := parseHeaderMessageLengthConfig(config[1:]) + if err != nil { + return fmt.Errorf("invalid config: %q, %v", config, err) + } + if err := l.setDefaultMethodLogger(&MethodLoggerConfig{Header: hdr, Message: msg}); err != nil { + return fmt.Errorf("invalid config: %v", err) + } + return nil + } + + s, m, suffix, err := parseMethodConfigAndSuffix(config) + if err != nil { + return fmt.Errorf("invalid config: %q, %v", config, err) + } + hdr, msg, err := parseHeaderMessageLengthConfig(suffix) + if err != nil { + return fmt.Errorf("invalid header/message length config: %q, %v", suffix, err) + } + if m == "*" { + if err := l.setServiceMethodLogger(s, &MethodLoggerConfig{Header: hdr, Message: msg}); err != nil { + return fmt.Errorf("invalid config: %v", err) + } + } else { + if err := l.setMethodMethodLogger(s+"/"+m, &MethodLoggerConfig{Header: hdr, Message: msg}); err != nil { + return fmt.Errorf("invalid config: %v", err) + } + } + return nil +} + +const ( + // TODO: this const is only used by env_config now. But could be useful for + // other config. Move to binarylog.go if necessary. + maxUInt = ^uint64(0) + + // For "p.s/m" plus any suffix. Suffix will be parsed again. See test for + // expected output. + longMethodConfigRegexpStr = `^([\w./]+)/((?:\w+)|[*])(.+)?$` + + // For suffix from above, "{h:123,m:123}". See test for expected output. + optionalLengthRegexpStr = `(?::(\d+))?` // Optional ":123". + headerConfigRegexpStr = `^{h` + optionalLengthRegexpStr + `}$` + messageConfigRegexpStr = `^{m` + optionalLengthRegexpStr + `}$` + headerMessageConfigRegexpStr = `^{h` + optionalLengthRegexpStr + `;m` + optionalLengthRegexpStr + `}$` +) + +var ( + longMethodConfigRegexp = regexp.MustCompile(longMethodConfigRegexpStr) + headerConfigRegexp = regexp.MustCompile(headerConfigRegexpStr) + messageConfigRegexp = regexp.MustCompile(messageConfigRegexpStr) + headerMessageConfigRegexp = regexp.MustCompile(headerMessageConfigRegexpStr) +) + +// Turn "service/method{h;m}" into "service", "method", "{h;m}". +func parseMethodConfigAndSuffix(c string) (service, method, suffix string, _ error) { + // Regexp result: + // + // in: "p.s/m{h:123,m:123}", + // out: []string{"p.s/m{h:123,m:123}", "p.s", "m", "{h:123,m:123}"}, + match := longMethodConfigRegexp.FindStringSubmatch(c) + if match == nil { + return "", "", "", fmt.Errorf("%q contains invalid substring", c) + } + service = match[1] + method = match[2] + suffix = match[3] + return +} + +// Turn "{h:123;m:345}" into 123, 345. +// +// Return maxUInt if length is unspecified. +func parseHeaderMessageLengthConfig(c string) (hdrLenStr, msgLenStr uint64, err error) { + if c == "" { + return maxUInt, maxUInt, nil + } + // Header config only. + if match := headerConfigRegexp.FindStringSubmatch(c); match != nil { + if s := match[1]; s != "" { + hdrLenStr, err = strconv.ParseUint(s, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to convert %q to uint", s) + } + return hdrLenStr, 0, nil + } + return maxUInt, 0, nil + } + + // Message config only. + if match := messageConfigRegexp.FindStringSubmatch(c); match != nil { + if s := match[1]; s != "" { + msgLenStr, err = strconv.ParseUint(s, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to convert %q to uint", s) + } + return 0, msgLenStr, nil + } + return 0, maxUInt, nil + } + + // Header and message config both. + if match := headerMessageConfigRegexp.FindStringSubmatch(c); match != nil { + // Both hdr and msg are specified, but one or two of them might be empty. + hdrLenStr = maxUInt + msgLenStr = maxUInt + if s := match[1]; s != "" { + hdrLenStr, err = strconv.ParseUint(s, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to convert %q to uint", s) + } + } + if s := match[2]; s != "" { + msgLenStr, err = strconv.ParseUint(s, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to convert %q to uint", s) + } + } + return hdrLenStr, msgLenStr, nil + } + return 0, 0, fmt.Errorf("%q contains invalid substring", c) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go new file mode 100644 index 0000000000..85e3ff2816 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/method_logger.go @@ -0,0 +1,435 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package binarylog + +import ( + "net" + "strings" + "sync/atomic" + "time" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + pb "google.golang.org/grpc/binarylog/grpc_binarylog_v1" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" +) + +type callIDGenerator struct { + id uint64 +} + +func (g *callIDGenerator) next() uint64 { + id := atomic.AddUint64(&g.id, 1) + return id +} + +// reset is for testing only, and doesn't need to be thread safe. +func (g *callIDGenerator) reset() { + g.id = 0 +} + +var idGen callIDGenerator + +// MethodLogger is the sub-logger for each method. +type MethodLogger interface { + Log(LogEntryConfig) +} + +// TruncatingMethodLogger is a method logger that truncates headers and messages +// based on configured fields. +type TruncatingMethodLogger struct { + headerMaxLen, messageMaxLen uint64 + + callID uint64 + idWithinCallGen *callIDGenerator + + sink Sink // TODO(blog): make this plugable. +} + +// NewTruncatingMethodLogger returns a new truncating method logger. +func NewTruncatingMethodLogger(h, m uint64) *TruncatingMethodLogger { + return &TruncatingMethodLogger{ + headerMaxLen: h, + messageMaxLen: m, + + callID: idGen.next(), + idWithinCallGen: &callIDGenerator{}, + + sink: DefaultSink, // TODO(blog): make it plugable. + } +} + +// Build is an internal only method for building the proto message out of the +// input event. It's made public to enable other library to reuse as much logic +// in TruncatingMethodLogger as possible. +func (ml *TruncatingMethodLogger) Build(c LogEntryConfig) *pb.GrpcLogEntry { + m := c.toProto() + timestamp, _ := ptypes.TimestampProto(time.Now()) + m.Timestamp = timestamp + m.CallId = ml.callID + m.SequenceIdWithinCall = ml.idWithinCallGen.next() + + switch pay := m.Payload.(type) { + case *pb.GrpcLogEntry_ClientHeader: + m.PayloadTruncated = ml.truncateMetadata(pay.ClientHeader.GetMetadata()) + case *pb.GrpcLogEntry_ServerHeader: + m.PayloadTruncated = ml.truncateMetadata(pay.ServerHeader.GetMetadata()) + case *pb.GrpcLogEntry_Message: + m.PayloadTruncated = ml.truncateMessage(pay.Message) + } + return m +} + +// Log creates a proto binary log entry, and logs it to the sink. +func (ml *TruncatingMethodLogger) Log(c LogEntryConfig) { + ml.sink.Write(ml.Build(c)) +} + +func (ml *TruncatingMethodLogger) truncateMetadata(mdPb *pb.Metadata) (truncated bool) { + if ml.headerMaxLen == maxUInt { + return false + } + var ( + bytesLimit = ml.headerMaxLen + index int + ) + // At the end of the loop, index will be the first entry where the total + // size is greater than the limit: + // + // len(entry[:index]) <= ml.hdr && len(entry[:index+1]) > ml.hdr. + for ; index < len(mdPb.Entry); index++ { + entry := mdPb.Entry[index] + if entry.Key == "grpc-trace-bin" { + // "grpc-trace-bin" is a special key. It's kept in the log entry, + // but not counted towards the size limit. + continue + } + currentEntryLen := uint64(len(entry.GetKey())) + uint64(len(entry.GetValue())) + if currentEntryLen > bytesLimit { + break + } + bytesLimit -= currentEntryLen + } + truncated = index < len(mdPb.Entry) + mdPb.Entry = mdPb.Entry[:index] + return truncated +} + +func (ml *TruncatingMethodLogger) truncateMessage(msgPb *pb.Message) (truncated bool) { + if ml.messageMaxLen == maxUInt { + return false + } + if ml.messageMaxLen >= uint64(len(msgPb.Data)) { + return false + } + msgPb.Data = msgPb.Data[:ml.messageMaxLen] + return true +} + +// LogEntryConfig represents the configuration for binary log entry. +type LogEntryConfig interface { + toProto() *pb.GrpcLogEntry +} + +// ClientHeader configs the binary log entry to be a ClientHeader entry. +type ClientHeader struct { + OnClientSide bool + Header metadata.MD + MethodName string + Authority string + Timeout time.Duration + // PeerAddr is required only when it's on server side. + PeerAddr net.Addr +} + +func (c *ClientHeader) toProto() *pb.GrpcLogEntry { + // This function doesn't need to set all the fields (e.g. seq ID). The Log + // function will set the fields when necessary. + clientHeader := &pb.ClientHeader{ + Metadata: mdToMetadataProto(c.Header), + MethodName: c.MethodName, + Authority: c.Authority, + } + if c.Timeout > 0 { + clientHeader.Timeout = ptypes.DurationProto(c.Timeout) + } + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_CLIENT_HEADER, + Payload: &pb.GrpcLogEntry_ClientHeader{ + ClientHeader: clientHeader, + }, + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + if c.PeerAddr != nil { + ret.Peer = addrToProto(c.PeerAddr) + } + return ret +} + +// ServerHeader configs the binary log entry to be a ServerHeader entry. +type ServerHeader struct { + OnClientSide bool + Header metadata.MD + // PeerAddr is required only when it's on client side. + PeerAddr net.Addr +} + +func (c *ServerHeader) toProto() *pb.GrpcLogEntry { + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_SERVER_HEADER, + Payload: &pb.GrpcLogEntry_ServerHeader{ + ServerHeader: &pb.ServerHeader{ + Metadata: mdToMetadataProto(c.Header), + }, + }, + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + if c.PeerAddr != nil { + ret.Peer = addrToProto(c.PeerAddr) + } + return ret +} + +// ClientMessage configs the binary log entry to be a ClientMessage entry. +type ClientMessage struct { + OnClientSide bool + // Message can be a proto.Message or []byte. Other messages formats are not + // supported. + Message interface{} +} + +func (c *ClientMessage) toProto() *pb.GrpcLogEntry { + var ( + data []byte + err error + ) + if m, ok := c.Message.(proto.Message); ok { + data, err = proto.Marshal(m) + if err != nil { + grpclogLogger.Infof("binarylogging: failed to marshal proto message: %v", err) + } + } else if b, ok := c.Message.([]byte); ok { + data = b + } else { + grpclogLogger.Infof("binarylogging: message to log is neither proto.message nor []byte") + } + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_CLIENT_MESSAGE, + Payload: &pb.GrpcLogEntry_Message{ + Message: &pb.Message{ + Length: uint32(len(data)), + Data: data, + }, + }, + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + return ret +} + +// ServerMessage configs the binary log entry to be a ServerMessage entry. +type ServerMessage struct { + OnClientSide bool + // Message can be a proto.Message or []byte. Other messages formats are not + // supported. + Message interface{} +} + +func (c *ServerMessage) toProto() *pb.GrpcLogEntry { + var ( + data []byte + err error + ) + if m, ok := c.Message.(proto.Message); ok { + data, err = proto.Marshal(m) + if err != nil { + grpclogLogger.Infof("binarylogging: failed to marshal proto message: %v", err) + } + } else if b, ok := c.Message.([]byte); ok { + data = b + } else { + grpclogLogger.Infof("binarylogging: message to log is neither proto.message nor []byte") + } + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_SERVER_MESSAGE, + Payload: &pb.GrpcLogEntry_Message{ + Message: &pb.Message{ + Length: uint32(len(data)), + Data: data, + }, + }, + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + return ret +} + +// ClientHalfClose configs the binary log entry to be a ClientHalfClose entry. +type ClientHalfClose struct { + OnClientSide bool +} + +func (c *ClientHalfClose) toProto() *pb.GrpcLogEntry { + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_CLIENT_HALF_CLOSE, + Payload: nil, // No payload here. + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + return ret +} + +// ServerTrailer configs the binary log entry to be a ServerTrailer entry. +type ServerTrailer struct { + OnClientSide bool + Trailer metadata.MD + // Err is the status error. + Err error + // PeerAddr is required only when it's on client side and the RPC is trailer + // only. + PeerAddr net.Addr +} + +func (c *ServerTrailer) toProto() *pb.GrpcLogEntry { + st, ok := status.FromError(c.Err) + if !ok { + grpclogLogger.Info("binarylogging: error in trailer is not a status error") + } + var ( + detailsBytes []byte + err error + ) + stProto := st.Proto() + if stProto != nil && len(stProto.Details) != 0 { + detailsBytes, err = proto.Marshal(stProto) + if err != nil { + grpclogLogger.Infof("binarylogging: failed to marshal status proto: %v", err) + } + } + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_SERVER_TRAILER, + Payload: &pb.GrpcLogEntry_Trailer{ + Trailer: &pb.Trailer{ + Metadata: mdToMetadataProto(c.Trailer), + StatusCode: uint32(st.Code()), + StatusMessage: st.Message(), + StatusDetails: detailsBytes, + }, + }, + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + if c.PeerAddr != nil { + ret.Peer = addrToProto(c.PeerAddr) + } + return ret +} + +// Cancel configs the binary log entry to be a Cancel entry. +type Cancel struct { + OnClientSide bool +} + +func (c *Cancel) toProto() *pb.GrpcLogEntry { + ret := &pb.GrpcLogEntry{ + Type: pb.GrpcLogEntry_EVENT_TYPE_CANCEL, + Payload: nil, + } + if c.OnClientSide { + ret.Logger = pb.GrpcLogEntry_LOGGER_CLIENT + } else { + ret.Logger = pb.GrpcLogEntry_LOGGER_SERVER + } + return ret +} + +// metadataKeyOmit returns whether the metadata entry with this key should be +// omitted. +func metadataKeyOmit(key string) bool { + switch key { + case "lb-token", ":path", ":authority", "content-encoding", "content-type", "user-agent", "te": + return true + case "grpc-trace-bin": // grpc-trace-bin is special because it's visiable to users. + return false + } + return strings.HasPrefix(key, "grpc-") +} + +func mdToMetadataProto(md metadata.MD) *pb.Metadata { + ret := &pb.Metadata{} + for k, vv := range md { + if metadataKeyOmit(k) { + continue + } + for _, v := range vv { + ret.Entry = append(ret.Entry, + &pb.MetadataEntry{ + Key: k, + Value: []byte(v), + }, + ) + } + } + return ret +} + +func addrToProto(addr net.Addr) *pb.Address { + ret := &pb.Address{} + switch a := addr.(type) { + case *net.TCPAddr: + if a.IP.To4() != nil { + ret.Type = pb.Address_TYPE_IPV4 + } else if a.IP.To16() != nil { + ret.Type = pb.Address_TYPE_IPV6 + } else { + ret.Type = pb.Address_TYPE_UNKNOWN + // Do not set address and port fields. + break + } + ret.Address = a.IP.String() + ret.IpPort = uint32(a.Port) + case *net.UnixAddr: + ret.Type = pb.Address_TYPE_UNIX + ret.Address = a.String() + default: + ret.Type = pb.Address_TYPE_UNKNOWN + } + return ret +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/sink.go b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/sink.go new file mode 100644 index 0000000000..c2fdd58b31 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/binarylog/sink.go @@ -0,0 +1,170 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package binarylog + +import ( + "bufio" + "encoding/binary" + "io" + "sync" + "time" + + "github.com/golang/protobuf/proto" + pb "google.golang.org/grpc/binarylog/grpc_binarylog_v1" +) + +var ( + // DefaultSink is the sink where the logs will be written to. It's exported + // for the binarylog package to update. + DefaultSink Sink = &noopSink{} // TODO(blog): change this default (file in /tmp). +) + +// Sink writes log entry into the binary log sink. +// +// sink is a copy of the exported binarylog.Sink, to avoid circular dependency. +type Sink interface { + // Write will be called to write the log entry into the sink. + // + // It should be thread-safe so it can be called in parallel. + Write(*pb.GrpcLogEntry) error + // Close will be called when the Sink is replaced by a new Sink. + Close() error +} + +type noopSink struct{} + +func (ns *noopSink) Write(*pb.GrpcLogEntry) error { return nil } +func (ns *noopSink) Close() error { return nil } + +// newWriterSink creates a binary log sink with the given writer. +// +// Write() marshals the proto message and writes it to the given writer. Each +// message is prefixed with a 4 byte big endian unsigned integer as the length. +// +// No buffer is done, Close() doesn't try to close the writer. +func newWriterSink(w io.Writer) Sink { + return &writerSink{out: w} +} + +type writerSink struct { + out io.Writer +} + +func (ws *writerSink) Write(e *pb.GrpcLogEntry) error { + b, err := proto.Marshal(e) + if err != nil { + grpclogLogger.Errorf("binary logging: failed to marshal proto message: %v", err) + return err + } + hdr := make([]byte, 4) + binary.BigEndian.PutUint32(hdr, uint32(len(b))) + if _, err := ws.out.Write(hdr); err != nil { + return err + } + if _, err := ws.out.Write(b); err != nil { + return err + } + return nil +} + +func (ws *writerSink) Close() error { return nil } + +type bufferedSink struct { + mu sync.Mutex + closer io.Closer + out Sink // out is built on buf. + buf *bufio.Writer // buf is kept for flush. + flusherStarted bool + + writeTicker *time.Ticker + done chan struct{} +} + +func (fs *bufferedSink) Write(e *pb.GrpcLogEntry) error { + fs.mu.Lock() + defer fs.mu.Unlock() + if !fs.flusherStarted { + // Start the write loop when Write is called. + fs.startFlushGoroutine() + fs.flusherStarted = true + } + if err := fs.out.Write(e); err != nil { + return err + } + return nil +} + +const ( + bufFlushDuration = 60 * time.Second +) + +func (fs *bufferedSink) startFlushGoroutine() { + fs.writeTicker = time.NewTicker(bufFlushDuration) + go func() { + for { + select { + case <-fs.done: + return + case <-fs.writeTicker.C: + } + fs.mu.Lock() + if err := fs.buf.Flush(); err != nil { + grpclogLogger.Warningf("failed to flush to Sink: %v", err) + } + fs.mu.Unlock() + } + }() +} + +func (fs *bufferedSink) Close() error { + fs.mu.Lock() + defer fs.mu.Unlock() + if fs.writeTicker != nil { + fs.writeTicker.Stop() + } + close(fs.done) + if err := fs.buf.Flush(); err != nil { + grpclogLogger.Warningf("failed to flush to Sink: %v", err) + } + if err := fs.closer.Close(); err != nil { + grpclogLogger.Warningf("failed to close the underlying WriterCloser: %v", err) + } + if err := fs.out.Close(); err != nil { + grpclogLogger.Warningf("failed to close the Sink: %v", err) + } + return nil +} + +// NewBufferedSink creates a binary log sink with the given WriteCloser. +// +// Write() marshals the proto message and writes it to the given writer. Each +// message is prefixed with a 4 byte big endian unsigned integer as the length. +// +// Content is kept in a buffer, and is flushed every 60 seconds. +// +// Close closes the WriteCloser. +func NewBufferedSink(o io.WriteCloser) Sink { + bufW := bufio.NewWriter(o) + return &bufferedSink{ + closer: o, + out: newWriterSink(bufW), + buf: bufW, + done: make(chan struct{}), + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/buffer/unbounded.go b/ecs-agent/vendor/google.golang.org/grpc/internal/buffer/unbounded.go new file mode 100644 index 0000000000..9f6a0c1200 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/buffer/unbounded.go @@ -0,0 +1,85 @@ +/* + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package buffer provides an implementation of an unbounded buffer. +package buffer + +import "sync" + +// Unbounded is an implementation of an unbounded buffer which does not use +// extra goroutines. This is typically used for passing updates from one entity +// to another within gRPC. +// +// All methods on this type are thread-safe and don't block on anything except +// the underlying mutex used for synchronization. +// +// Unbounded supports values of any type to be stored in it by using a channel +// of `interface{}`. This means that a call to Put() incurs an extra memory +// allocation, and also that users need a type assertion while reading. For +// performance critical code paths, using Unbounded is strongly discouraged and +// defining a new type specific implementation of this buffer is preferred. See +// internal/transport/transport.go for an example of this. +type Unbounded struct { + c chan interface{} + mu sync.Mutex + backlog []interface{} +} + +// NewUnbounded returns a new instance of Unbounded. +func NewUnbounded() *Unbounded { + return &Unbounded{c: make(chan interface{}, 1)} +} + +// Put adds t to the unbounded buffer. +func (b *Unbounded) Put(t interface{}) { + b.mu.Lock() + if len(b.backlog) == 0 { + select { + case b.c <- t: + b.mu.Unlock() + return + default: + } + } + b.backlog = append(b.backlog, t) + b.mu.Unlock() +} + +// Load sends the earliest buffered data, if any, onto the read channel +// returned by Get(). Users are expected to call this every time they read a +// value from the read channel. +func (b *Unbounded) Load() { + b.mu.Lock() + if len(b.backlog) > 0 { + select { + case b.c <- b.backlog[0]: + b.backlog[0] = nil + b.backlog = b.backlog[1:] + default: + } + } + b.mu.Unlock() +} + +// Get returns a read channel on which values added to the buffer, via Put(), +// are sent on. +// +// Upon reading a value from this channel, users are expected to call Load() to +// send the next buffered value onto the channel if there is any. +func (b *Unbounded) Get() <-chan interface{} { + return b.c +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/funcs.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/funcs.go new file mode 100644 index 0000000000..777cbcd792 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/funcs.go @@ -0,0 +1,789 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package channelz defines APIs for enabling channelz service, entry +// registration/deletion, and accessing channelz data. It also defines channelz +// metric struct formats. +// +// All APIs in this package are experimental. +package channelz + +import ( + "context" + "errors" + "fmt" + "sort" + "sync" + "sync/atomic" + "time" + + "google.golang.org/grpc/grpclog" +) + +const ( + defaultMaxTraceEntry int32 = 30 +) + +var ( + db dbWrapper + idGen idGenerator + // EntryPerPage defines the number of channelz entries to be shown on a web page. + EntryPerPage = int64(50) + curState int32 + maxTraceEntry = defaultMaxTraceEntry +) + +// TurnOn turns on channelz data collection. +func TurnOn() { + if !IsOn() { + db.set(newChannelMap()) + idGen.reset() + atomic.StoreInt32(&curState, 1) + } +} + +// IsOn returns whether channelz data collection is on. +func IsOn() bool { + return atomic.CompareAndSwapInt32(&curState, 1, 1) +} + +// SetMaxTraceEntry sets maximum number of trace entry per entity (i.e. channel/subchannel). +// Setting it to 0 will disable channel tracing. +func SetMaxTraceEntry(i int32) { + atomic.StoreInt32(&maxTraceEntry, i) +} + +// ResetMaxTraceEntryToDefault resets the maximum number of trace entry per entity to default. +func ResetMaxTraceEntryToDefault() { + atomic.StoreInt32(&maxTraceEntry, defaultMaxTraceEntry) +} + +func getMaxTraceEntry() int { + i := atomic.LoadInt32(&maxTraceEntry) + return int(i) +} + +// dbWarpper wraps around a reference to internal channelz data storage, and +// provide synchronized functionality to set and get the reference. +type dbWrapper struct { + mu sync.RWMutex + DB *channelMap +} + +func (d *dbWrapper) set(db *channelMap) { + d.mu.Lock() + d.DB = db + d.mu.Unlock() +} + +func (d *dbWrapper) get() *channelMap { + d.mu.RLock() + defer d.mu.RUnlock() + return d.DB +} + +// NewChannelzStorageForTesting initializes channelz data storage and id +// generator for testing purposes. +// +// Returns a cleanup function to be invoked by the test, which waits for up to +// 10s for all channelz state to be reset by the grpc goroutines when those +// entities get closed. This cleanup function helps with ensuring that tests +// don't mess up each other. +func NewChannelzStorageForTesting() (cleanup func() error) { + db.set(newChannelMap()) + idGen.reset() + + return func() error { + cm := db.get() + if cm == nil { + return nil + } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + ticker := time.NewTicker(10 * time.Millisecond) + defer ticker.Stop() + for { + cm.mu.RLock() + topLevelChannels, servers, channels, subChannels, listenSockets, normalSockets := len(cm.topLevelChannels), len(cm.servers), len(cm.channels), len(cm.subChannels), len(cm.listenSockets), len(cm.normalSockets) + cm.mu.RUnlock() + + if err := ctx.Err(); err != nil { + return fmt.Errorf("after 10s the channelz map has not been cleaned up yet, topchannels: %d, servers: %d, channels: %d, subchannels: %d, listen sockets: %d, normal sockets: %d", topLevelChannels, servers, channels, subChannels, listenSockets, normalSockets) + } + if topLevelChannels == 0 && servers == 0 && channels == 0 && subChannels == 0 && listenSockets == 0 && normalSockets == 0 { + return nil + } + <-ticker.C + } + } +} + +// GetTopChannels returns a slice of top channel's ChannelMetric, along with a +// boolean indicating whether there's more top channels to be queried for. +// +// The arg id specifies that only top channel with id at or above it will be included +// in the result. The returned slice is up to a length of the arg maxResults or +// EntryPerPage if maxResults is zero, and is sorted in ascending id order. +func GetTopChannels(id int64, maxResults int64) ([]*ChannelMetric, bool) { + return db.get().GetTopChannels(id, maxResults) +} + +// GetServers returns a slice of server's ServerMetric, along with a +// boolean indicating whether there's more servers to be queried for. +// +// The arg id specifies that only server with id at or above it will be included +// in the result. The returned slice is up to a length of the arg maxResults or +// EntryPerPage if maxResults is zero, and is sorted in ascending id order. +func GetServers(id int64, maxResults int64) ([]*ServerMetric, bool) { + return db.get().GetServers(id, maxResults) +} + +// GetServerSockets returns a slice of server's (identified by id) normal socket's +// SocketMetric, along with a boolean indicating whether there's more sockets to +// be queried for. +// +// The arg startID specifies that only sockets with id at or above it will be +// included in the result. The returned slice is up to a length of the arg maxResults +// or EntryPerPage if maxResults is zero, and is sorted in ascending id order. +func GetServerSockets(id int64, startID int64, maxResults int64) ([]*SocketMetric, bool) { + return db.get().GetServerSockets(id, startID, maxResults) +} + +// GetChannel returns the ChannelMetric for the channel (identified by id). +func GetChannel(id int64) *ChannelMetric { + return db.get().GetChannel(id) +} + +// GetSubChannel returns the SubChannelMetric for the subchannel (identified by id). +func GetSubChannel(id int64) *SubChannelMetric { + return db.get().GetSubChannel(id) +} + +// GetSocket returns the SocketInternalMetric for the socket (identified by id). +func GetSocket(id int64) *SocketMetric { + return db.get().GetSocket(id) +} + +// GetServer returns the ServerMetric for the server (identified by id). +func GetServer(id int64) *ServerMetric { + return db.get().GetServer(id) +} + +// RegisterChannel registers the given channel c in the channelz database with +// ref as its reference name, and adds it to the child list of its parent +// (identified by pid). pid == nil means no parent. +// +// Returns a unique channelz identifier assigned to this channel. +// +// If channelz is not turned ON, the channelz database is not mutated. +func RegisterChannel(c Channel, pid *Identifier, ref string) *Identifier { + id := idGen.genID() + var parent int64 + isTopChannel := true + if pid != nil { + isTopChannel = false + parent = pid.Int() + } + + if !IsOn() { + return newIdentifer(RefChannel, id, pid) + } + + cn := &channel{ + refName: ref, + c: c, + subChans: make(map[int64]string), + nestedChans: make(map[int64]string), + id: id, + pid: parent, + trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())}, + } + db.get().addChannel(id, cn, isTopChannel, parent) + return newIdentifer(RefChannel, id, pid) +} + +// RegisterSubChannel registers the given subChannel c in the channelz database +// with ref as its reference name, and adds it to the child list of its parent +// (identified by pid). +// +// Returns a unique channelz identifier assigned to this subChannel. +// +// If channelz is not turned ON, the channelz database is not mutated. +func RegisterSubChannel(c Channel, pid *Identifier, ref string) (*Identifier, error) { + if pid == nil { + return nil, errors.New("a SubChannel's parent id cannot be nil") + } + id := idGen.genID() + if !IsOn() { + return newIdentifer(RefSubChannel, id, pid), nil + } + + sc := &subChannel{ + refName: ref, + c: c, + sockets: make(map[int64]string), + id: id, + pid: pid.Int(), + trace: &channelTrace{createdTime: time.Now(), events: make([]*TraceEvent, 0, getMaxTraceEntry())}, + } + db.get().addSubChannel(id, sc, pid.Int()) + return newIdentifer(RefSubChannel, id, pid), nil +} + +// RegisterServer registers the given server s in channelz database. It returns +// the unique channelz tracking id assigned to this server. +// +// If channelz is not turned ON, the channelz database is not mutated. +func RegisterServer(s Server, ref string) *Identifier { + id := idGen.genID() + if !IsOn() { + return newIdentifer(RefServer, id, nil) + } + + svr := &server{ + refName: ref, + s: s, + sockets: make(map[int64]string), + listenSockets: make(map[int64]string), + id: id, + } + db.get().addServer(id, svr) + return newIdentifer(RefServer, id, nil) +} + +// RegisterListenSocket registers the given listen socket s in channelz database +// with ref as its reference name, and add it to the child list of its parent +// (identified by pid). It returns the unique channelz tracking id assigned to +// this listen socket. +// +// If channelz is not turned ON, the channelz database is not mutated. +func RegisterListenSocket(s Socket, pid *Identifier, ref string) (*Identifier, error) { + if pid == nil { + return nil, errors.New("a ListenSocket's parent id cannot be 0") + } + id := idGen.genID() + if !IsOn() { + return newIdentifer(RefListenSocket, id, pid), nil + } + + ls := &listenSocket{refName: ref, s: s, id: id, pid: pid.Int()} + db.get().addListenSocket(id, ls, pid.Int()) + return newIdentifer(RefListenSocket, id, pid), nil +} + +// RegisterNormalSocket registers the given normal socket s in channelz database +// with ref as its reference name, and adds it to the child list of its parent +// (identified by pid). It returns the unique channelz tracking id assigned to +// this normal socket. +// +// If channelz is not turned ON, the channelz database is not mutated. +func RegisterNormalSocket(s Socket, pid *Identifier, ref string) (*Identifier, error) { + if pid == nil { + return nil, errors.New("a NormalSocket's parent id cannot be 0") + } + id := idGen.genID() + if !IsOn() { + return newIdentifer(RefNormalSocket, id, pid), nil + } + + ns := &normalSocket{refName: ref, s: s, id: id, pid: pid.Int()} + db.get().addNormalSocket(id, ns, pid.Int()) + return newIdentifer(RefNormalSocket, id, pid), nil +} + +// RemoveEntry removes an entry with unique channelz tracking id to be id from +// channelz database. +// +// If channelz is not turned ON, this function is a no-op. +func RemoveEntry(id *Identifier) { + if !IsOn() { + return + } + db.get().removeEntry(id.Int()) +} + +// TraceEventDesc is what the caller of AddTraceEvent should provide to describe +// the event to be added to the channel trace. +// +// The Parent field is optional. It is used for an event that will be recorded +// in the entity's parent trace. +type TraceEventDesc struct { + Desc string + Severity Severity + Parent *TraceEventDesc +} + +// AddTraceEvent adds trace related to the entity with specified id, using the +// provided TraceEventDesc. +// +// If channelz is not turned ON, this will simply log the event descriptions. +func AddTraceEvent(l grpclog.DepthLoggerV2, id *Identifier, depth int, desc *TraceEventDesc) { + // Log only the trace description associated with the bottom most entity. + switch desc.Severity { + case CtUnknown, CtInfo: + l.InfoDepth(depth+1, withParens(id)+desc.Desc) + case CtWarning: + l.WarningDepth(depth+1, withParens(id)+desc.Desc) + case CtError: + l.ErrorDepth(depth+1, withParens(id)+desc.Desc) + } + + if getMaxTraceEntry() == 0 { + return + } + if IsOn() { + db.get().traceEvent(id.Int(), desc) + } +} + +// channelMap is the storage data structure for channelz. +// Methods of channelMap can be divided in two two categories with respect to locking. +// 1. Methods acquire the global lock. +// 2. Methods that can only be called when global lock is held. +// A second type of method need always to be called inside a first type of method. +type channelMap struct { + mu sync.RWMutex + topLevelChannels map[int64]struct{} + servers map[int64]*server + channels map[int64]*channel + subChannels map[int64]*subChannel + listenSockets map[int64]*listenSocket + normalSockets map[int64]*normalSocket +} + +func newChannelMap() *channelMap { + return &channelMap{ + topLevelChannels: make(map[int64]struct{}), + channels: make(map[int64]*channel), + listenSockets: make(map[int64]*listenSocket), + normalSockets: make(map[int64]*normalSocket), + servers: make(map[int64]*server), + subChannels: make(map[int64]*subChannel), + } +} + +func (c *channelMap) addServer(id int64, s *server) { + c.mu.Lock() + s.cm = c + c.servers[id] = s + c.mu.Unlock() +} + +func (c *channelMap) addChannel(id int64, cn *channel, isTopChannel bool, pid int64) { + c.mu.Lock() + cn.cm = c + cn.trace.cm = c + c.channels[id] = cn + if isTopChannel { + c.topLevelChannels[id] = struct{}{} + } else { + c.findEntry(pid).addChild(id, cn) + } + c.mu.Unlock() +} + +func (c *channelMap) addSubChannel(id int64, sc *subChannel, pid int64) { + c.mu.Lock() + sc.cm = c + sc.trace.cm = c + c.subChannels[id] = sc + c.findEntry(pid).addChild(id, sc) + c.mu.Unlock() +} + +func (c *channelMap) addListenSocket(id int64, ls *listenSocket, pid int64) { + c.mu.Lock() + ls.cm = c + c.listenSockets[id] = ls + c.findEntry(pid).addChild(id, ls) + c.mu.Unlock() +} + +func (c *channelMap) addNormalSocket(id int64, ns *normalSocket, pid int64) { + c.mu.Lock() + ns.cm = c + c.normalSockets[id] = ns + c.findEntry(pid).addChild(id, ns) + c.mu.Unlock() +} + +// removeEntry triggers the removal of an entry, which may not indeed delete the entry, if it has to +// wait on the deletion of its children and until no other entity's channel trace references it. +// It may lead to a chain of entry deletion. For example, deleting the last socket of a gracefully +// shutting down server will lead to the server being also deleted. +func (c *channelMap) removeEntry(id int64) { + c.mu.Lock() + c.findEntry(id).triggerDelete() + c.mu.Unlock() +} + +// c.mu must be held by the caller +func (c *channelMap) decrTraceRefCount(id int64) { + e := c.findEntry(id) + if v, ok := e.(tracedChannel); ok { + v.decrTraceRefCount() + e.deleteSelfIfReady() + } +} + +// c.mu must be held by the caller. +func (c *channelMap) findEntry(id int64) entry { + var v entry + var ok bool + if v, ok = c.channels[id]; ok { + return v + } + if v, ok = c.subChannels[id]; ok { + return v + } + if v, ok = c.servers[id]; ok { + return v + } + if v, ok = c.listenSockets[id]; ok { + return v + } + if v, ok = c.normalSockets[id]; ok { + return v + } + return &dummyEntry{idNotFound: id} +} + +// c.mu must be held by the caller +// deleteEntry simply deletes an entry from the channelMap. Before calling this +// method, caller must check this entry is ready to be deleted, i.e removeEntry() +// has been called on it, and no children still exist. +// Conditionals are ordered by the expected frequency of deletion of each entity +// type, in order to optimize performance. +func (c *channelMap) deleteEntry(id int64) { + var ok bool + if _, ok = c.normalSockets[id]; ok { + delete(c.normalSockets, id) + return + } + if _, ok = c.subChannels[id]; ok { + delete(c.subChannels, id) + return + } + if _, ok = c.channels[id]; ok { + delete(c.channels, id) + delete(c.topLevelChannels, id) + return + } + if _, ok = c.listenSockets[id]; ok { + delete(c.listenSockets, id) + return + } + if _, ok = c.servers[id]; ok { + delete(c.servers, id) + return + } +} + +func (c *channelMap) traceEvent(id int64, desc *TraceEventDesc) { + c.mu.Lock() + child := c.findEntry(id) + childTC, ok := child.(tracedChannel) + if !ok { + c.mu.Unlock() + return + } + childTC.getChannelTrace().append(&TraceEvent{Desc: desc.Desc, Severity: desc.Severity, Timestamp: time.Now()}) + if desc.Parent != nil { + parent := c.findEntry(child.getParentID()) + var chanType RefChannelType + switch child.(type) { + case *channel: + chanType = RefChannel + case *subChannel: + chanType = RefSubChannel + } + if parentTC, ok := parent.(tracedChannel); ok { + parentTC.getChannelTrace().append(&TraceEvent{ + Desc: desc.Parent.Desc, + Severity: desc.Parent.Severity, + Timestamp: time.Now(), + RefID: id, + RefName: childTC.getRefName(), + RefType: chanType, + }) + childTC.incrTraceRefCount() + } + } + c.mu.Unlock() +} + +type int64Slice []int64 + +func (s int64Slice) Len() int { return len(s) } +func (s int64Slice) Swap(i, j int) { s[i], s[j] = s[j], s[i] } +func (s int64Slice) Less(i, j int) bool { return s[i] < s[j] } + +func copyMap(m map[int64]string) map[int64]string { + n := make(map[int64]string) + for k, v := range m { + n[k] = v + } + return n +} + +func min(a, b int64) int64 { + if a < b { + return a + } + return b +} + +func (c *channelMap) GetTopChannels(id int64, maxResults int64) ([]*ChannelMetric, bool) { + if maxResults <= 0 { + maxResults = EntryPerPage + } + c.mu.RLock() + l := int64(len(c.topLevelChannels)) + ids := make([]int64, 0, l) + cns := make([]*channel, 0, min(l, maxResults)) + + for k := range c.topLevelChannels { + ids = append(ids, k) + } + sort.Sort(int64Slice(ids)) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) + count := int64(0) + var end bool + var t []*ChannelMetric + for i, v := range ids[idx:] { + if count == maxResults { + break + } + if cn, ok := c.channels[v]; ok { + cns = append(cns, cn) + t = append(t, &ChannelMetric{ + NestedChans: copyMap(cn.nestedChans), + SubChans: copyMap(cn.subChans), + }) + count++ + } + if i == len(ids[idx:])-1 { + end = true + break + } + } + c.mu.RUnlock() + if count == 0 { + end = true + } + + for i, cn := range cns { + t[i].ChannelData = cn.c.ChannelzMetric() + t[i].ID = cn.id + t[i].RefName = cn.refName + t[i].Trace = cn.trace.dumpData() + } + return t, end +} + +func (c *channelMap) GetServers(id, maxResults int64) ([]*ServerMetric, bool) { + if maxResults <= 0 { + maxResults = EntryPerPage + } + c.mu.RLock() + l := int64(len(c.servers)) + ids := make([]int64, 0, l) + ss := make([]*server, 0, min(l, maxResults)) + for k := range c.servers { + ids = append(ids, k) + } + sort.Sort(int64Slice(ids)) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= id }) + count := int64(0) + var end bool + var s []*ServerMetric + for i, v := range ids[idx:] { + if count == maxResults { + break + } + if svr, ok := c.servers[v]; ok { + ss = append(ss, svr) + s = append(s, &ServerMetric{ + ListenSockets: copyMap(svr.listenSockets), + }) + count++ + } + if i == len(ids[idx:])-1 { + end = true + break + } + } + c.mu.RUnlock() + if count == 0 { + end = true + } + + for i, svr := range ss { + s[i].ServerData = svr.s.ChannelzMetric() + s[i].ID = svr.id + s[i].RefName = svr.refName + } + return s, end +} + +func (c *channelMap) GetServerSockets(id int64, startID int64, maxResults int64) ([]*SocketMetric, bool) { + if maxResults <= 0 { + maxResults = EntryPerPage + } + var svr *server + var ok bool + c.mu.RLock() + if svr, ok = c.servers[id]; !ok { + // server with id doesn't exist. + c.mu.RUnlock() + return nil, true + } + svrskts := svr.sockets + l := int64(len(svrskts)) + ids := make([]int64, 0, l) + sks := make([]*normalSocket, 0, min(l, maxResults)) + for k := range svrskts { + ids = append(ids, k) + } + sort.Sort(int64Slice(ids)) + idx := sort.Search(len(ids), func(i int) bool { return ids[i] >= startID }) + count := int64(0) + var end bool + for i, v := range ids[idx:] { + if count == maxResults { + break + } + if ns, ok := c.normalSockets[v]; ok { + sks = append(sks, ns) + count++ + } + if i == len(ids[idx:])-1 { + end = true + break + } + } + c.mu.RUnlock() + if count == 0 { + end = true + } + s := make([]*SocketMetric, 0, len(sks)) + for _, ns := range sks { + sm := &SocketMetric{} + sm.SocketData = ns.s.ChannelzMetric() + sm.ID = ns.id + sm.RefName = ns.refName + s = append(s, sm) + } + return s, end +} + +func (c *channelMap) GetChannel(id int64) *ChannelMetric { + cm := &ChannelMetric{} + var cn *channel + var ok bool + c.mu.RLock() + if cn, ok = c.channels[id]; !ok { + // channel with id doesn't exist. + c.mu.RUnlock() + return nil + } + cm.NestedChans = copyMap(cn.nestedChans) + cm.SubChans = copyMap(cn.subChans) + // cn.c can be set to &dummyChannel{} when deleteSelfFromMap is called. Save a copy of cn.c when + // holding the lock to prevent potential data race. + chanCopy := cn.c + c.mu.RUnlock() + cm.ChannelData = chanCopy.ChannelzMetric() + cm.ID = cn.id + cm.RefName = cn.refName + cm.Trace = cn.trace.dumpData() + return cm +} + +func (c *channelMap) GetSubChannel(id int64) *SubChannelMetric { + cm := &SubChannelMetric{} + var sc *subChannel + var ok bool + c.mu.RLock() + if sc, ok = c.subChannels[id]; !ok { + // subchannel with id doesn't exist. + c.mu.RUnlock() + return nil + } + cm.Sockets = copyMap(sc.sockets) + // sc.c can be set to &dummyChannel{} when deleteSelfFromMap is called. Save a copy of sc.c when + // holding the lock to prevent potential data race. + chanCopy := sc.c + c.mu.RUnlock() + cm.ChannelData = chanCopy.ChannelzMetric() + cm.ID = sc.id + cm.RefName = sc.refName + cm.Trace = sc.trace.dumpData() + return cm +} + +func (c *channelMap) GetSocket(id int64) *SocketMetric { + sm := &SocketMetric{} + c.mu.RLock() + if ls, ok := c.listenSockets[id]; ok { + c.mu.RUnlock() + sm.SocketData = ls.s.ChannelzMetric() + sm.ID = ls.id + sm.RefName = ls.refName + return sm + } + if ns, ok := c.normalSockets[id]; ok { + c.mu.RUnlock() + sm.SocketData = ns.s.ChannelzMetric() + sm.ID = ns.id + sm.RefName = ns.refName + return sm + } + c.mu.RUnlock() + return nil +} + +func (c *channelMap) GetServer(id int64) *ServerMetric { + sm := &ServerMetric{} + var svr *server + var ok bool + c.mu.RLock() + if svr, ok = c.servers[id]; !ok { + c.mu.RUnlock() + return nil + } + sm.ListenSockets = copyMap(svr.listenSockets) + c.mu.RUnlock() + sm.ID = svr.id + sm.RefName = svr.refName + sm.ServerData = svr.s.ChannelzMetric() + return sm +} + +type idGenerator struct { + id int64 +} + +func (i *idGenerator) reset() { + atomic.StoreInt64(&i.id, 0) +} + +func (i *idGenerator) genID() int64 { + return atomic.AddInt64(&i.id, 1) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/id.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/id.go new file mode 100644 index 0000000000..c9a27acd37 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/id.go @@ -0,0 +1,75 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import "fmt" + +// Identifier is an opaque identifier which uniquely identifies an entity in the +// channelz database. +type Identifier struct { + typ RefChannelType + id int64 + str string + pid *Identifier +} + +// Type returns the entity type corresponding to id. +func (id *Identifier) Type() RefChannelType { + return id.typ +} + +// Int returns the integer identifier corresponding to id. +func (id *Identifier) Int() int64 { + return id.id +} + +// String returns a string representation of the entity corresponding to id. +// +// This includes some information about the parent as well. Examples: +// Top-level channel: [Channel #channel-number] +// Nested channel: [Channel #parent-channel-number Channel #channel-number] +// Sub channel: [Channel #parent-channel SubChannel #subchannel-number] +func (id *Identifier) String() string { + return id.str +} + +// Equal returns true if other is the same as id. +func (id *Identifier) Equal(other *Identifier) bool { + if (id != nil) != (other != nil) { + return false + } + if id == nil && other == nil { + return true + } + return id.typ == other.typ && id.id == other.id && id.pid == other.pid +} + +// NewIdentifierForTesting returns a new opaque identifier to be used only for +// testing purposes. +func NewIdentifierForTesting(typ RefChannelType, id int64, pid *Identifier) *Identifier { + return newIdentifer(typ, id, pid) +} + +func newIdentifer(typ RefChannelType, id int64, pid *Identifier) *Identifier { + str := fmt.Sprintf("%s #%d", typ, id) + if pid != nil { + str = fmt.Sprintf("%s %s", pid, str) + } + return &Identifier{typ: typ, id: id, str: str, pid: pid} +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/logging.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/logging.go new file mode 100644 index 0000000000..8e13a3d2ce --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/logging.go @@ -0,0 +1,79 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import ( + "fmt" + + "google.golang.org/grpc/grpclog" +) + +var logger = grpclog.Component("channelz") + +func withParens(id *Identifier) string { + return "[" + id.String() + "] " +} + +// Info logs and adds a trace event if channelz is on. +func Info(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { + AddTraceEvent(l, id, 1, &TraceEventDesc{ + Desc: fmt.Sprint(args...), + Severity: CtInfo, + }) +} + +// Infof logs and adds a trace event if channelz is on. +func Infof(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...interface{}) { + AddTraceEvent(l, id, 1, &TraceEventDesc{ + Desc: fmt.Sprintf(format, args...), + Severity: CtInfo, + }) +} + +// Warning logs and adds a trace event if channelz is on. +func Warning(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { + AddTraceEvent(l, id, 1, &TraceEventDesc{ + Desc: fmt.Sprint(args...), + Severity: CtWarning, + }) +} + +// Warningf logs and adds a trace event if channelz is on. +func Warningf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...interface{}) { + AddTraceEvent(l, id, 1, &TraceEventDesc{ + Desc: fmt.Sprintf(format, args...), + Severity: CtWarning, + }) +} + +// Error logs and adds a trace event if channelz is on. +func Error(l grpclog.DepthLoggerV2, id *Identifier, args ...interface{}) { + AddTraceEvent(l, id, 1, &TraceEventDesc{ + Desc: fmt.Sprint(args...), + Severity: CtError, + }) +} + +// Errorf logs and adds a trace event if channelz is on. +func Errorf(l grpclog.DepthLoggerV2, id *Identifier, format string, args ...interface{}) { + AddTraceEvent(l, id, 1, &TraceEventDesc{ + Desc: fmt.Sprintf(format, args...), + Severity: CtError, + }) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types.go new file mode 100644 index 0000000000..7b2f350e2e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types.go @@ -0,0 +1,722 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import ( + "net" + "sync" + "sync/atomic" + "time" + + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/credentials" +) + +// entry represents a node in the channelz database. +type entry interface { + // addChild adds a child e, whose channelz id is id to child list + addChild(id int64, e entry) + // deleteChild deletes a child with channelz id to be id from child list + deleteChild(id int64) + // triggerDelete tries to delete self from channelz database. However, if child + // list is not empty, then deletion from the database is on hold until the last + // child is deleted from database. + triggerDelete() + // deleteSelfIfReady check whether triggerDelete() has been called before, and whether child + // list is now empty. If both conditions are met, then delete self from database. + deleteSelfIfReady() + // getParentID returns parent ID of the entry. 0 value parent ID means no parent. + getParentID() int64 +} + +// dummyEntry is a fake entry to handle entry not found case. +type dummyEntry struct { + idNotFound int64 +} + +func (d *dummyEntry) addChild(id int64, e entry) { + // Note: It is possible for a normal program to reach here under race condition. + // For example, there could be a race between ClientConn.Close() info being propagated + // to addrConn and http2Client. ClientConn.Close() cancel the context and result + // in http2Client to error. The error info is then caught by transport monitor + // and before addrConn.tearDown() is called in side ClientConn.Close(). Therefore, + // the addrConn will create a new transport. And when registering the new transport in + // channelz, its parent addrConn could have already been torn down and deleted + // from channelz tracking, and thus reach the code here. + logger.Infof("attempt to add child of type %T with id %d to a parent (id=%d) that doesn't currently exist", e, id, d.idNotFound) +} + +func (d *dummyEntry) deleteChild(id int64) { + // It is possible for a normal program to reach here under race condition. + // Refer to the example described in addChild(). + logger.Infof("attempt to delete child with id %d from a parent (id=%d) that doesn't currently exist", id, d.idNotFound) +} + +func (d *dummyEntry) triggerDelete() { + logger.Warningf("attempt to delete an entry (id=%d) that doesn't currently exist", d.idNotFound) +} + +func (*dummyEntry) deleteSelfIfReady() { + // code should not reach here. deleteSelfIfReady is always called on an existing entry. +} + +func (*dummyEntry) getParentID() int64 { + return 0 +} + +// ChannelMetric defines the info channelz provides for a specific Channel, which +// includes ChannelInternalMetric and channelz-specific data, such as channelz id, +// child list, etc. +type ChannelMetric struct { + // ID is the channelz id of this channel. + ID int64 + // RefName is the human readable reference string of this channel. + RefName string + // ChannelData contains channel internal metric reported by the channel through + // ChannelzMetric(). + ChannelData *ChannelInternalMetric + // NestedChans tracks the nested channel type children of this channel in the format of + // a map from nested channel channelz id to corresponding reference string. + NestedChans map[int64]string + // SubChans tracks the subchannel type children of this channel in the format of a + // map from subchannel channelz id to corresponding reference string. + SubChans map[int64]string + // Sockets tracks the socket type children of this channel in the format of a map + // from socket channelz id to corresponding reference string. + // Note current grpc implementation doesn't allow channel having sockets directly, + // therefore, this is field is unused. + Sockets map[int64]string + // Trace contains the most recent traced events. + Trace *ChannelTrace +} + +// SubChannelMetric defines the info channelz provides for a specific SubChannel, +// which includes ChannelInternalMetric and channelz-specific data, such as +// channelz id, child list, etc. +type SubChannelMetric struct { + // ID is the channelz id of this subchannel. + ID int64 + // RefName is the human readable reference string of this subchannel. + RefName string + // ChannelData contains subchannel internal metric reported by the subchannel + // through ChannelzMetric(). + ChannelData *ChannelInternalMetric + // NestedChans tracks the nested channel type children of this subchannel in the format of + // a map from nested channel channelz id to corresponding reference string. + // Note current grpc implementation doesn't allow subchannel to have nested channels + // as children, therefore, this field is unused. + NestedChans map[int64]string + // SubChans tracks the subchannel type children of this subchannel in the format of a + // map from subchannel channelz id to corresponding reference string. + // Note current grpc implementation doesn't allow subchannel to have subchannels + // as children, therefore, this field is unused. + SubChans map[int64]string + // Sockets tracks the socket type children of this subchannel in the format of a map + // from socket channelz id to corresponding reference string. + Sockets map[int64]string + // Trace contains the most recent traced events. + Trace *ChannelTrace +} + +// ChannelInternalMetric defines the struct that the implementor of Channel interface +// should return from ChannelzMetric(). +type ChannelInternalMetric struct { + // current connectivity state of the channel. + State connectivity.State + // The target this channel originally tried to connect to. May be absent + Target string + // The number of calls started on the channel. + CallsStarted int64 + // The number of calls that have completed with an OK status. + CallsSucceeded int64 + // The number of calls that have a completed with a non-OK status. + CallsFailed int64 + // The last time a call was started on the channel. + LastCallStartedTimestamp time.Time +} + +// ChannelTrace stores traced events on a channel/subchannel and related info. +type ChannelTrace struct { + // EventNum is the number of events that ever got traced (i.e. including those that have been deleted) + EventNum int64 + // CreationTime is the creation time of the trace. + CreationTime time.Time + // Events stores the most recent trace events (up to $maxTraceEntry, newer event will overwrite the + // oldest one) + Events []*TraceEvent +} + +// TraceEvent represent a single trace event +type TraceEvent struct { + // Desc is a simple description of the trace event. + Desc string + // Severity states the severity of this trace event. + Severity Severity + // Timestamp is the event time. + Timestamp time.Time + // RefID is the id of the entity that gets referenced in the event. RefID is 0 if no other entity is + // involved in this event. + // e.g. SubChannel (id: 4[]) Created. --> RefID = 4, RefName = "" (inside []) + RefID int64 + // RefName is the reference name for the entity that gets referenced in the event. + RefName string + // RefType indicates the referenced entity type, i.e Channel or SubChannel. + RefType RefChannelType +} + +// Channel is the interface that should be satisfied in order to be tracked by +// channelz as Channel or SubChannel. +type Channel interface { + ChannelzMetric() *ChannelInternalMetric +} + +type dummyChannel struct{} + +func (d *dummyChannel) ChannelzMetric() *ChannelInternalMetric { + return &ChannelInternalMetric{} +} + +type channel struct { + refName string + c Channel + closeCalled bool + nestedChans map[int64]string + subChans map[int64]string + id int64 + pid int64 + cm *channelMap + trace *channelTrace + // traceRefCount is the number of trace events that reference this channel. + // Non-zero traceRefCount means the trace of this channel cannot be deleted. + traceRefCount int32 +} + +func (c *channel) addChild(id int64, e entry) { + switch v := e.(type) { + case *subChannel: + c.subChans[id] = v.refName + case *channel: + c.nestedChans[id] = v.refName + default: + logger.Errorf("cannot add a child (id = %d) of type %T to a channel", id, e) + } +} + +func (c *channel) deleteChild(id int64) { + delete(c.subChans, id) + delete(c.nestedChans, id) + c.deleteSelfIfReady() +} + +func (c *channel) triggerDelete() { + c.closeCalled = true + c.deleteSelfIfReady() +} + +func (c *channel) getParentID() int64 { + return c.pid +} + +// deleteSelfFromTree tries to delete the channel from the channelz entry relation tree, which means +// deleting the channel reference from its parent's child list. +// +// In order for a channel to be deleted from the tree, it must meet the criteria that, removal of the +// corresponding grpc object has been invoked, and the channel does not have any children left. +// +// The returned boolean value indicates whether the channel has been successfully deleted from tree. +func (c *channel) deleteSelfFromTree() (deleted bool) { + if !c.closeCalled || len(c.subChans)+len(c.nestedChans) != 0 { + return false + } + // not top channel + if c.pid != 0 { + c.cm.findEntry(c.pid).deleteChild(c.id) + } + return true +} + +// deleteSelfFromMap checks whether it is valid to delete the channel from the map, which means +// deleting the channel from channelz's tracking entirely. Users can no longer use id to query the +// channel, and its memory will be garbage collected. +// +// The trace reference count of the channel must be 0 in order to be deleted from the map. This is +// specified in the channel tracing gRFC that as long as some other trace has reference to an entity, +// the trace of the referenced entity must not be deleted. In order to release the resource allocated +// by grpc, the reference to the grpc object is reset to a dummy object. +// +// deleteSelfFromMap must be called after deleteSelfFromTree returns true. +// +// It returns a bool to indicate whether the channel can be safely deleted from map. +func (c *channel) deleteSelfFromMap() (delete bool) { + if c.getTraceRefCount() != 0 { + c.c = &dummyChannel{} + return false + } + return true +} + +// deleteSelfIfReady tries to delete the channel itself from the channelz database. +// The delete process includes two steps: +// 1. delete the channel from the entry relation tree, i.e. delete the channel reference from its +// parent's child list. +// 2. delete the channel from the map, i.e. delete the channel entirely from channelz. Lookup by id +// will return entry not found error. +func (c *channel) deleteSelfIfReady() { + if !c.deleteSelfFromTree() { + return + } + if !c.deleteSelfFromMap() { + return + } + c.cm.deleteEntry(c.id) + c.trace.clear() +} + +func (c *channel) getChannelTrace() *channelTrace { + return c.trace +} + +func (c *channel) incrTraceRefCount() { + atomic.AddInt32(&c.traceRefCount, 1) +} + +func (c *channel) decrTraceRefCount() { + atomic.AddInt32(&c.traceRefCount, -1) +} + +func (c *channel) getTraceRefCount() int { + i := atomic.LoadInt32(&c.traceRefCount) + return int(i) +} + +func (c *channel) getRefName() string { + return c.refName +} + +type subChannel struct { + refName string + c Channel + closeCalled bool + sockets map[int64]string + id int64 + pid int64 + cm *channelMap + trace *channelTrace + traceRefCount int32 +} + +func (sc *subChannel) addChild(id int64, e entry) { + if v, ok := e.(*normalSocket); ok { + sc.sockets[id] = v.refName + } else { + logger.Errorf("cannot add a child (id = %d) of type %T to a subChannel", id, e) + } +} + +func (sc *subChannel) deleteChild(id int64) { + delete(sc.sockets, id) + sc.deleteSelfIfReady() +} + +func (sc *subChannel) triggerDelete() { + sc.closeCalled = true + sc.deleteSelfIfReady() +} + +func (sc *subChannel) getParentID() int64 { + return sc.pid +} + +// deleteSelfFromTree tries to delete the subchannel from the channelz entry relation tree, which +// means deleting the subchannel reference from its parent's child list. +// +// In order for a subchannel to be deleted from the tree, it must meet the criteria that, removal of +// the corresponding grpc object has been invoked, and the subchannel does not have any children left. +// +// The returned boolean value indicates whether the channel has been successfully deleted from tree. +func (sc *subChannel) deleteSelfFromTree() (deleted bool) { + if !sc.closeCalled || len(sc.sockets) != 0 { + return false + } + sc.cm.findEntry(sc.pid).deleteChild(sc.id) + return true +} + +// deleteSelfFromMap checks whether it is valid to delete the subchannel from the map, which means +// deleting the subchannel from channelz's tracking entirely. Users can no longer use id to query +// the subchannel, and its memory will be garbage collected. +// +// The trace reference count of the subchannel must be 0 in order to be deleted from the map. This is +// specified in the channel tracing gRFC that as long as some other trace has reference to an entity, +// the trace of the referenced entity must not be deleted. In order to release the resource allocated +// by grpc, the reference to the grpc object is reset to a dummy object. +// +// deleteSelfFromMap must be called after deleteSelfFromTree returns true. +// +// It returns a bool to indicate whether the channel can be safely deleted from map. +func (sc *subChannel) deleteSelfFromMap() (delete bool) { + if sc.getTraceRefCount() != 0 { + // free the grpc struct (i.e. addrConn) + sc.c = &dummyChannel{} + return false + } + return true +} + +// deleteSelfIfReady tries to delete the subchannel itself from the channelz database. +// The delete process includes two steps: +// 1. delete the subchannel from the entry relation tree, i.e. delete the subchannel reference from +// its parent's child list. +// 2. delete the subchannel from the map, i.e. delete the subchannel entirely from channelz. Lookup +// by id will return entry not found error. +func (sc *subChannel) deleteSelfIfReady() { + if !sc.deleteSelfFromTree() { + return + } + if !sc.deleteSelfFromMap() { + return + } + sc.cm.deleteEntry(sc.id) + sc.trace.clear() +} + +func (sc *subChannel) getChannelTrace() *channelTrace { + return sc.trace +} + +func (sc *subChannel) incrTraceRefCount() { + atomic.AddInt32(&sc.traceRefCount, 1) +} + +func (sc *subChannel) decrTraceRefCount() { + atomic.AddInt32(&sc.traceRefCount, -1) +} + +func (sc *subChannel) getTraceRefCount() int { + i := atomic.LoadInt32(&sc.traceRefCount) + return int(i) +} + +func (sc *subChannel) getRefName() string { + return sc.refName +} + +// SocketMetric defines the info channelz provides for a specific Socket, which +// includes SocketInternalMetric and channelz-specific data, such as channelz id, etc. +type SocketMetric struct { + // ID is the channelz id of this socket. + ID int64 + // RefName is the human readable reference string of this socket. + RefName string + // SocketData contains socket internal metric reported by the socket through + // ChannelzMetric(). + SocketData *SocketInternalMetric +} + +// SocketInternalMetric defines the struct that the implementor of Socket interface +// should return from ChannelzMetric(). +type SocketInternalMetric struct { + // The number of streams that have been started. + StreamsStarted int64 + // The number of streams that have ended successfully: + // On client side, receiving frame with eos bit set. + // On server side, sending frame with eos bit set. + StreamsSucceeded int64 + // The number of streams that have ended unsuccessfully: + // On client side, termination without receiving frame with eos bit set. + // On server side, termination without sending frame with eos bit set. + StreamsFailed int64 + // The number of messages successfully sent on this socket. + MessagesSent int64 + MessagesReceived int64 + // The number of keep alives sent. This is typically implemented with HTTP/2 + // ping messages. + KeepAlivesSent int64 + // The last time a stream was created by this endpoint. Usually unset for + // servers. + LastLocalStreamCreatedTimestamp time.Time + // The last time a stream was created by the remote endpoint. Usually unset + // for clients. + LastRemoteStreamCreatedTimestamp time.Time + // The last time a message was sent by this endpoint. + LastMessageSentTimestamp time.Time + // The last time a message was received by this endpoint. + LastMessageReceivedTimestamp time.Time + // The amount of window, granted to the local endpoint by the remote endpoint. + // This may be slightly out of date due to network latency. This does NOT + // include stream level or TCP level flow control info. + LocalFlowControlWindow int64 + // The amount of window, granted to the remote endpoint by the local endpoint. + // This may be slightly out of date due to network latency. This does NOT + // include stream level or TCP level flow control info. + RemoteFlowControlWindow int64 + // The locally bound address. + LocalAddr net.Addr + // The remote bound address. May be absent. + RemoteAddr net.Addr + // Optional, represents the name of the remote endpoint, if different than + // the original target name. + RemoteName string + SocketOptions *SocketOptionData + Security credentials.ChannelzSecurityValue +} + +// Socket is the interface that should be satisfied in order to be tracked by +// channelz as Socket. +type Socket interface { + ChannelzMetric() *SocketInternalMetric +} + +type listenSocket struct { + refName string + s Socket + id int64 + pid int64 + cm *channelMap +} + +func (ls *listenSocket) addChild(id int64, e entry) { + logger.Errorf("cannot add a child (id = %d) of type %T to a listen socket", id, e) +} + +func (ls *listenSocket) deleteChild(id int64) { + logger.Errorf("cannot delete a child (id = %d) from a listen socket", id) +} + +func (ls *listenSocket) triggerDelete() { + ls.cm.deleteEntry(ls.id) + ls.cm.findEntry(ls.pid).deleteChild(ls.id) +} + +func (ls *listenSocket) deleteSelfIfReady() { + logger.Errorf("cannot call deleteSelfIfReady on a listen socket") +} + +func (ls *listenSocket) getParentID() int64 { + return ls.pid +} + +type normalSocket struct { + refName string + s Socket + id int64 + pid int64 + cm *channelMap +} + +func (ns *normalSocket) addChild(id int64, e entry) { + logger.Errorf("cannot add a child (id = %d) of type %T to a normal socket", id, e) +} + +func (ns *normalSocket) deleteChild(id int64) { + logger.Errorf("cannot delete a child (id = %d) from a normal socket", id) +} + +func (ns *normalSocket) triggerDelete() { + ns.cm.deleteEntry(ns.id) + ns.cm.findEntry(ns.pid).deleteChild(ns.id) +} + +func (ns *normalSocket) deleteSelfIfReady() { + logger.Errorf("cannot call deleteSelfIfReady on a normal socket") +} + +func (ns *normalSocket) getParentID() int64 { + return ns.pid +} + +// ServerMetric defines the info channelz provides for a specific Server, which +// includes ServerInternalMetric and channelz-specific data, such as channelz id, +// child list, etc. +type ServerMetric struct { + // ID is the channelz id of this server. + ID int64 + // RefName is the human readable reference string of this server. + RefName string + // ServerData contains server internal metric reported by the server through + // ChannelzMetric(). + ServerData *ServerInternalMetric + // ListenSockets tracks the listener socket type children of this server in the + // format of a map from socket channelz id to corresponding reference string. + ListenSockets map[int64]string +} + +// ServerInternalMetric defines the struct that the implementor of Server interface +// should return from ChannelzMetric(). +type ServerInternalMetric struct { + // The number of incoming calls started on the server. + CallsStarted int64 + // The number of incoming calls that have completed with an OK status. + CallsSucceeded int64 + // The number of incoming calls that have a completed with a non-OK status. + CallsFailed int64 + // The last time a call was started on the server. + LastCallStartedTimestamp time.Time +} + +// Server is the interface to be satisfied in order to be tracked by channelz as +// Server. +type Server interface { + ChannelzMetric() *ServerInternalMetric +} + +type server struct { + refName string + s Server + closeCalled bool + sockets map[int64]string + listenSockets map[int64]string + id int64 + cm *channelMap +} + +func (s *server) addChild(id int64, e entry) { + switch v := e.(type) { + case *normalSocket: + s.sockets[id] = v.refName + case *listenSocket: + s.listenSockets[id] = v.refName + default: + logger.Errorf("cannot add a child (id = %d) of type %T to a server", id, e) + } +} + +func (s *server) deleteChild(id int64) { + delete(s.sockets, id) + delete(s.listenSockets, id) + s.deleteSelfIfReady() +} + +func (s *server) triggerDelete() { + s.closeCalled = true + s.deleteSelfIfReady() +} + +func (s *server) deleteSelfIfReady() { + if !s.closeCalled || len(s.sockets)+len(s.listenSockets) != 0 { + return + } + s.cm.deleteEntry(s.id) +} + +func (s *server) getParentID() int64 { + return 0 +} + +type tracedChannel interface { + getChannelTrace() *channelTrace + incrTraceRefCount() + decrTraceRefCount() + getRefName() string +} + +type channelTrace struct { + cm *channelMap + createdTime time.Time + eventCount int64 + mu sync.Mutex + events []*TraceEvent +} + +func (c *channelTrace) append(e *TraceEvent) { + c.mu.Lock() + if len(c.events) == getMaxTraceEntry() { + del := c.events[0] + c.events = c.events[1:] + if del.RefID != 0 { + // start recursive cleanup in a goroutine to not block the call originated from grpc. + go func() { + // need to acquire c.cm.mu lock to call the unlocked attemptCleanup func. + c.cm.mu.Lock() + c.cm.decrTraceRefCount(del.RefID) + c.cm.mu.Unlock() + }() + } + } + e.Timestamp = time.Now() + c.events = append(c.events, e) + c.eventCount++ + c.mu.Unlock() +} + +func (c *channelTrace) clear() { + c.mu.Lock() + for _, e := range c.events { + if e.RefID != 0 { + // caller should have already held the c.cm.mu lock. + c.cm.decrTraceRefCount(e.RefID) + } + } + c.mu.Unlock() +} + +// Severity is the severity level of a trace event. +// The canonical enumeration of all valid values is here: +// https://github.com/grpc/grpc-proto/blob/9b13d199cc0d4703c7ea26c9c330ba695866eb23/grpc/channelz/v1/channelz.proto#L126. +type Severity int + +const ( + // CtUnknown indicates unknown severity of a trace event. + CtUnknown Severity = iota + // CtInfo indicates info level severity of a trace event. + CtInfo + // CtWarning indicates warning level severity of a trace event. + CtWarning + // CtError indicates error level severity of a trace event. + CtError +) + +// RefChannelType is the type of the entity being referenced in a trace event. +type RefChannelType int + +const ( + // RefUnknown indicates an unknown entity type, the zero value for this type. + RefUnknown RefChannelType = iota + // RefChannel indicates the referenced entity is a Channel. + RefChannel + // RefSubChannel indicates the referenced entity is a SubChannel. + RefSubChannel + // RefServer indicates the referenced entity is a Server. + RefServer + // RefListenSocket indicates the referenced entity is a ListenSocket. + RefListenSocket + // RefNormalSocket indicates the referenced entity is a NormalSocket. + RefNormalSocket +) + +var refChannelTypeToString = map[RefChannelType]string{ + RefUnknown: "Unknown", + RefChannel: "Channel", + RefSubChannel: "SubChannel", + RefServer: "Server", + RefListenSocket: "ListenSocket", + RefNormalSocket: "NormalSocket", +} + +func (r RefChannelType) String() string { + return refChannelTypeToString[r] +} + +func (c *channelTrace) dumpData() *ChannelTrace { + c.mu.Lock() + ct := &ChannelTrace{EventNum: c.eventCount, CreationTime: c.createdTime} + ct.Events = c.events[:len(c.events)] + c.mu.Unlock() + return ct +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_linux.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_linux.go new file mode 100644 index 0000000000..1b1c4cce34 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_linux.go @@ -0,0 +1,51 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import ( + "syscall" + + "golang.org/x/sys/unix" +) + +// SocketOptionData defines the struct to hold socket option data, and related +// getter function to obtain info from fd. +type SocketOptionData struct { + Linger *unix.Linger + RecvTimeout *unix.Timeval + SendTimeout *unix.Timeval + TCPInfo *unix.TCPInfo +} + +// Getsockopt defines the function to get socket options requested by channelz. +// It is to be passed to syscall.RawConn.Control(). +func (s *SocketOptionData) Getsockopt(fd uintptr) { + if v, err := unix.GetsockoptLinger(int(fd), syscall.SOL_SOCKET, syscall.SO_LINGER); err == nil { + s.Linger = v + } + if v, err := unix.GetsockoptTimeval(int(fd), syscall.SOL_SOCKET, syscall.SO_RCVTIMEO); err == nil { + s.RecvTimeout = v + } + if v, err := unix.GetsockoptTimeval(int(fd), syscall.SOL_SOCKET, syscall.SO_SNDTIMEO); err == nil { + s.SendTimeout = v + } + if v, err := unix.GetsockoptTCPInfo(int(fd), syscall.SOL_TCP, syscall.TCP_INFO); err == nil { + s.TCPInfo = v + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go new file mode 100644 index 0000000000..8b06eed1ab --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/types_nonlinux.go @@ -0,0 +1,43 @@ +//go:build !linux +// +build !linux + +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import ( + "sync" +) + +var once sync.Once + +// SocketOptionData defines the struct to hold socket option data, and related +// getter function to obtain info from fd. +// Windows OS doesn't support Socket Option +type SocketOptionData struct { +} + +// Getsockopt defines the function to get socket options requested by channelz. +// It is to be passed to syscall.RawConn.Control(). +// Windows OS doesn't support Socket Option +func (s *SocketOptionData) Getsockopt(fd uintptr) { + once.Do(func() { + logger.Warning("Channelz: socket options are not supported on non-linux environments") + }) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_linux.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_linux.go new file mode 100644 index 0000000000..8d194e44e1 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_linux.go @@ -0,0 +1,37 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +import ( + "syscall" +) + +// GetSocketOption gets the socket option info of the conn. +func GetSocketOption(socket interface{}) *SocketOptionData { + c, ok := socket.(syscall.Conn) + if !ok { + return nil + } + data := &SocketOptionData{} + if rawConn, err := c.SyscallConn(); err == nil { + rawConn.Control(data.Getsockopt) + return data + } + return nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go new file mode 100644 index 0000000000..837ddc4024 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/channelz/util_nonlinux.go @@ -0,0 +1,27 @@ +//go:build !linux +// +build !linux + +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package channelz + +// GetSocketOption gets the socket option info of the conn. +func GetSocketOption(c interface{}) *SocketOptionData { + return nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/credentials.go b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/credentials.go new file mode 100644 index 0000000000..32c9b59033 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/credentials.go @@ -0,0 +1,49 @@ +/* + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package credentials + +import ( + "context" +) + +// requestInfoKey is a struct to be used as the key to store RequestInfo in a +// context. +type requestInfoKey struct{} + +// NewRequestInfoContext creates a context with ri. +func NewRequestInfoContext(ctx context.Context, ri interface{}) context.Context { + return context.WithValue(ctx, requestInfoKey{}, ri) +} + +// RequestInfoFromContext extracts the RequestInfo from ctx. +func RequestInfoFromContext(ctx context.Context) interface{} { + return ctx.Value(requestInfoKey{}) +} + +// clientHandshakeInfoKey is a struct used as the key to store +// ClientHandshakeInfo in a context. +type clientHandshakeInfoKey struct{} + +// ClientHandshakeInfoFromContext extracts the ClientHandshakeInfo from ctx. +func ClientHandshakeInfoFromContext(ctx context.Context) interface{} { + return ctx.Value(clientHandshakeInfoKey{}) +} + +// NewClientHandshakeInfoContext creates a context with chi. +func NewClientHandshakeInfoContext(ctx context.Context, chi interface{}) context.Context { + return context.WithValue(ctx, clientHandshakeInfoKey{}, chi) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/spiffe.go b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/spiffe.go new file mode 100644 index 0000000000..25ade62305 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/spiffe.go @@ -0,0 +1,75 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package credentials defines APIs for parsing SPIFFE ID. +// +// All APIs in this package are experimental. +package credentials + +import ( + "crypto/tls" + "crypto/x509" + "net/url" + + "google.golang.org/grpc/grpclog" +) + +var logger = grpclog.Component("credentials") + +// SPIFFEIDFromState parses the SPIFFE ID from State. If the SPIFFE ID format +// is invalid, return nil with warning. +func SPIFFEIDFromState(state tls.ConnectionState) *url.URL { + if len(state.PeerCertificates) == 0 || len(state.PeerCertificates[0].URIs) == 0 { + return nil + } + return SPIFFEIDFromCert(state.PeerCertificates[0]) +} + +// SPIFFEIDFromCert parses the SPIFFE ID from x509.Certificate. If the SPIFFE +// ID format is invalid, return nil with warning. +func SPIFFEIDFromCert(cert *x509.Certificate) *url.URL { + if cert == nil || cert.URIs == nil { + return nil + } + var spiffeID *url.URL + for _, uri := range cert.URIs { + if uri == nil || uri.Scheme != "spiffe" || uri.Opaque != "" || (uri.User != nil && uri.User.Username() != "") { + continue + } + // From this point, we assume the uri is intended for a SPIFFE ID. + if len(uri.String()) > 2048 { + logger.Warning("invalid SPIFFE ID: total ID length larger than 2048 bytes") + return nil + } + if len(uri.Host) == 0 || len(uri.Path) == 0 { + logger.Warning("invalid SPIFFE ID: domain or workload ID is empty") + return nil + } + if len(uri.Host) > 255 { + logger.Warning("invalid SPIFFE ID: domain length larger than 255 characters") + return nil + } + // A valid SPIFFE certificate can only have exactly one URI SAN field. + if len(cert.URIs) > 1 { + logger.Warning("invalid SPIFFE ID: multiple URI SANs") + return nil + } + spiffeID = uri + } + return spiffeID +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go new file mode 100644 index 0000000000..2919632d65 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/syscallconn.go @@ -0,0 +1,58 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package credentials + +import ( + "net" + "syscall" +) + +type sysConn = syscall.Conn + +// syscallConn keeps reference of rawConn to support syscall.Conn for channelz. +// SyscallConn() (the method in interface syscall.Conn) is explicitly +// implemented on this type, +// +// Interface syscall.Conn is implemented by most net.Conn implementations (e.g. +// TCPConn, UnixConn), but is not part of net.Conn interface. So wrapper conns +// that embed net.Conn don't implement syscall.Conn. (Side note: tls.Conn +// doesn't embed net.Conn, so even if syscall.Conn is part of net.Conn, it won't +// help here). +type syscallConn struct { + net.Conn + // sysConn is a type alias of syscall.Conn. It's necessary because the name + // `Conn` collides with `net.Conn`. + sysConn +} + +// WrapSyscallConn tries to wrap rawConn and newConn into a net.Conn that +// implements syscall.Conn. rawConn will be used to support syscall, and newConn +// will be used for read/write. +// +// This function returns newConn if rawConn doesn't implement syscall.Conn. +func WrapSyscallConn(rawConn, newConn net.Conn) net.Conn { + sysConn, ok := rawConn.(syscall.Conn) + if !ok { + return newConn + } + return &syscallConn{ + Conn: newConn, + sysConn: sysConn, + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/util.go b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/util.go new file mode 100644 index 0000000000..f792fd22ca --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/credentials/util.go @@ -0,0 +1,52 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package credentials + +import ( + "crypto/tls" +) + +const alpnProtoStrH2 = "h2" + +// AppendH2ToNextProtos appends h2 to next protos. +func AppendH2ToNextProtos(ps []string) []string { + for _, p := range ps { + if p == alpnProtoStrH2 { + return ps + } + } + ret := make([]string, 0, len(ps)+1) + ret = append(ret, ps...) + return append(ret, alpnProtoStrH2) +} + +// CloneTLSConfig returns a shallow clone of the exported +// fields of cfg, ignoring the unexported sync.Once, which +// contains a mutex and must not be copied. +// +// If cfg is nil, a new zero tls.Config is returned. +// +// TODO: inline this function if possible. +func CloneTLSConfig(cfg *tls.Config) *tls.Config { + if cfg == nil { + return &tls.Config{} + } + + return cfg.Clone() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go b/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go new file mode 100644 index 0000000000..7edd196bd3 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/envconfig.go @@ -0,0 +1,39 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package envconfig contains grpc settings configured by environment variables. +package envconfig + +import ( + "os" + "strings" +) + +const ( + prefix = "GRPC_GO_" + txtErrIgnoreStr = prefix + "IGNORE_TXT_ERRORS" + advertiseCompressorsStr = prefix + "ADVERTISE_COMPRESSORS" +) + +var ( + // TXTErrIgnore is set if TXT errors should be ignored ("GRPC_GO_IGNORE_TXT_ERRORS" is not "false"). + TXTErrIgnore = !strings.EqualFold(os.Getenv(txtErrIgnoreStr), "false") + // AdvertiseCompressors is set if registered compressor should be advertised + // ("GRPC_GO_ADVERTISE_COMPRESSORS" is not "false"). + AdvertiseCompressors = !strings.EqualFold(os.Getenv(advertiseCompressorsStr), "false") +) diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/observability.go b/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/observability.go new file mode 100644 index 0000000000..821dd0a7c1 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/observability.go @@ -0,0 +1,36 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package envconfig + +import "os" + +const ( + envObservabilityConfig = "GRPC_GCP_OBSERVABILITY_CONFIG" + envObservabilityConfigFile = "GRPC_GCP_OBSERVABILITY_CONFIG_FILE" +) + +var ( + // ObservabilityConfig is the json configuration for the gcp/observability + // package specified directly in the envObservabilityConfig env var. + ObservabilityConfig = os.Getenv(envObservabilityConfig) + // ObservabilityConfigFile is the json configuration for the + // gcp/observability specified in a file with the location specified in + // envObservabilityConfigFile env var. + ObservabilityConfigFile = os.Getenv(envObservabilityConfigFile) +) diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/xds.go b/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/xds.go new file mode 100644 index 0000000000..af09711a3e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/envconfig/xds.go @@ -0,0 +1,101 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package envconfig + +import ( + "os" + "strings" +) + +const ( + // XDSBootstrapFileNameEnv is the env variable to set bootstrap file name. + // Do not use this and read from env directly. Its value is read and kept in + // variable XDSBootstrapFileName. + // + // When both bootstrap FileName and FileContent are set, FileName is used. + XDSBootstrapFileNameEnv = "GRPC_XDS_BOOTSTRAP" + // XDSBootstrapFileContentEnv is the env variable to set bootstrap file + // content. Do not use this and read from env directly. Its value is read + // and kept in variable XDSBootstrapFileContent. + // + // When both bootstrap FileName and FileContent are set, FileName is used. + XDSBootstrapFileContentEnv = "GRPC_XDS_BOOTSTRAP_CONFIG" + + ringHashSupportEnv = "GRPC_XDS_EXPERIMENTAL_ENABLE_RING_HASH" + clientSideSecuritySupportEnv = "GRPC_XDS_EXPERIMENTAL_SECURITY_SUPPORT" + aggregateAndDNSSupportEnv = "GRPC_XDS_EXPERIMENTAL_ENABLE_AGGREGATE_AND_LOGICAL_DNS_CLUSTER" + rbacSupportEnv = "GRPC_XDS_EXPERIMENTAL_RBAC" + outlierDetectionSupportEnv = "GRPC_EXPERIMENTAL_ENABLE_OUTLIER_DETECTION" + federationEnv = "GRPC_EXPERIMENTAL_XDS_FEDERATION" + rlsInXDSEnv = "GRPC_EXPERIMENTAL_XDS_RLS_LB" + + c2pResolverTestOnlyTrafficDirectorURIEnv = "GRPC_TEST_ONLY_GOOGLE_C2P_RESOLVER_TRAFFIC_DIRECTOR_URI" +) + +var ( + // XDSBootstrapFileName holds the name of the file which contains xDS + // bootstrap configuration. Users can specify the location of the bootstrap + // file by setting the environment variable "GRPC_XDS_BOOTSTRAP". + // + // When both bootstrap FileName and FileContent are set, FileName is used. + XDSBootstrapFileName = os.Getenv(XDSBootstrapFileNameEnv) + // XDSBootstrapFileContent holds the content of the xDS bootstrap + // configuration. Users can specify the bootstrap config by setting the + // environment variable "GRPC_XDS_BOOTSTRAP_CONFIG". + // + // When both bootstrap FileName and FileContent are set, FileName is used. + XDSBootstrapFileContent = os.Getenv(XDSBootstrapFileContentEnv) + // XDSRingHash indicates whether ring hash support is enabled, which can be + // disabled by setting the environment variable + // "GRPC_XDS_EXPERIMENTAL_ENABLE_RING_HASH" to "false". + XDSRingHash = !strings.EqualFold(os.Getenv(ringHashSupportEnv), "false") + // XDSClientSideSecurity is used to control processing of security + // configuration on the client-side. + // + // Note that there is no env var protection for the server-side because we + // have a brand new API on the server-side and users explicitly need to use + // the new API to get security integration on the server. + XDSClientSideSecurity = !strings.EqualFold(os.Getenv(clientSideSecuritySupportEnv), "false") + // XDSAggregateAndDNS indicates whether processing of aggregated cluster + // and DNS cluster is enabled, which can be enabled by setting the + // environment variable + // "GRPC_XDS_EXPERIMENTAL_ENABLE_AGGREGATE_AND_LOGICAL_DNS_CLUSTER" to + // "true". + XDSAggregateAndDNS = !strings.EqualFold(os.Getenv(aggregateAndDNSSupportEnv), "false") + + // XDSRBAC indicates whether xDS configured RBAC HTTP Filter is enabled, + // which can be disabled by setting the environment variable + // "GRPC_XDS_EXPERIMENTAL_RBAC" to "false". + XDSRBAC = !strings.EqualFold(os.Getenv(rbacSupportEnv), "false") + // XDSOutlierDetection indicates whether outlier detection support is + // enabled, which can be disabled by setting the environment variable + // "GRPC_EXPERIMENTAL_ENABLE_OUTLIER_DETECTION" to "false". + XDSOutlierDetection = !strings.EqualFold(os.Getenv(outlierDetectionSupportEnv), "false") + // XDSFederation indicates whether federation support is enabled. + XDSFederation = strings.EqualFold(os.Getenv(federationEnv), "true") + + // XDSRLS indicates whether processing of Cluster Specifier plugins and + // support for the RLS CLuster Specifier is enabled, which can be enabled by + // setting the environment variable "GRPC_EXPERIMENTAL_XDS_RLS_LB" to + // "true". + XDSRLS = strings.EqualFold(os.Getenv(rlsInXDSEnv), "true") + + // C2PResolverTestOnlyTrafficDirectorURI is the TD URI for testing. + C2PResolverTestOnlyTrafficDirectorURI = os.Getenv(c2pResolverTestOnlyTrafficDirectorURIEnv) +) diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go new file mode 100644 index 0000000000..b68e26a364 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/grpclog.go @@ -0,0 +1,126 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpclog (internal) defines depth logging for grpc. +package grpclog + +import ( + "os" +) + +// Logger is the logger used for the non-depth log functions. +var Logger LoggerV2 + +// DepthLogger is the logger used for the depth log functions. +var DepthLogger DepthLoggerV2 + +// InfoDepth logs to the INFO log at the specified depth. +func InfoDepth(depth int, args ...interface{}) { + if DepthLogger != nil { + DepthLogger.InfoDepth(depth, args...) + } else { + Logger.Infoln(args...) + } +} + +// WarningDepth logs to the WARNING log at the specified depth. +func WarningDepth(depth int, args ...interface{}) { + if DepthLogger != nil { + DepthLogger.WarningDepth(depth, args...) + } else { + Logger.Warningln(args...) + } +} + +// ErrorDepth logs to the ERROR log at the specified depth. +func ErrorDepth(depth int, args ...interface{}) { + if DepthLogger != nil { + DepthLogger.ErrorDepth(depth, args...) + } else { + Logger.Errorln(args...) + } +} + +// FatalDepth logs to the FATAL log at the specified depth. +func FatalDepth(depth int, args ...interface{}) { + if DepthLogger != nil { + DepthLogger.FatalDepth(depth, args...) + } else { + Logger.Fatalln(args...) + } + os.Exit(1) +} + +// LoggerV2 does underlying logging work for grpclog. +// This is a copy of the LoggerV2 defined in the external grpclog package. It +// is defined here to avoid a circular dependency. +type LoggerV2 interface { + // Info logs to INFO log. Arguments are handled in the manner of fmt.Print. + Info(args ...interface{}) + // Infoln logs to INFO log. Arguments are handled in the manner of fmt.Println. + Infoln(args ...interface{}) + // Infof logs to INFO log. Arguments are handled in the manner of fmt.Printf. + Infof(format string, args ...interface{}) + // Warning logs to WARNING log. Arguments are handled in the manner of fmt.Print. + Warning(args ...interface{}) + // Warningln logs to WARNING log. Arguments are handled in the manner of fmt.Println. + Warningln(args ...interface{}) + // Warningf logs to WARNING log. Arguments are handled in the manner of fmt.Printf. + Warningf(format string, args ...interface{}) + // Error logs to ERROR log. Arguments are handled in the manner of fmt.Print. + Error(args ...interface{}) + // Errorln logs to ERROR log. Arguments are handled in the manner of fmt.Println. + Errorln(args ...interface{}) + // Errorf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. + Errorf(format string, args ...interface{}) + // Fatal logs to ERROR log. Arguments are handled in the manner of fmt.Print. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatal(args ...interface{}) + // Fatalln logs to ERROR log. Arguments are handled in the manner of fmt.Println. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatalln(args ...interface{}) + // Fatalf logs to ERROR log. Arguments are handled in the manner of fmt.Printf. + // gRPC ensures that all Fatal logs will exit with os.Exit(1). + // Implementations may also call os.Exit() with a non-zero exit code. + Fatalf(format string, args ...interface{}) + // V reports whether verbosity level l is at least the requested verbose level. + V(l int) bool +} + +// DepthLoggerV2 logs at a specified call frame. If a LoggerV2 also implements +// DepthLoggerV2, the below functions will be called with the appropriate stack +// depth set for trivial functions the logger may ignore. +// This is a copy of the DepthLoggerV2 defined in the external grpclog package. +// It is defined here to avoid a circular dependency. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type DepthLoggerV2 interface { + // InfoDepth logs to INFO log at the specified depth. Arguments are handled in the manner of fmt.Println. + InfoDepth(depth int, args ...interface{}) + // WarningDepth logs to WARNING log at the specified depth. Arguments are handled in the manner of fmt.Println. + WarningDepth(depth int, args ...interface{}) + // ErrorDepth logs to ERROR log at the specified depth. Arguments are handled in the manner of fmt.Println. + ErrorDepth(depth int, args ...interface{}) + // FatalDepth logs to FATAL log at the specified depth. Arguments are handled in the manner of fmt.Println. + FatalDepth(depth int, args ...interface{}) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go new file mode 100644 index 0000000000..82af70e96f --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpclog/prefixLogger.go @@ -0,0 +1,81 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpclog + +import ( + "fmt" +) + +// PrefixLogger does logging with a prefix. +// +// Logging method on a nil logs without any prefix. +type PrefixLogger struct { + logger DepthLoggerV2 + prefix string +} + +// Infof does info logging. +func (pl *PrefixLogger) Infof(format string, args ...interface{}) { + if pl != nil { + // Handle nil, so the tests can pass in a nil logger. + format = pl.prefix + format + pl.logger.InfoDepth(1, fmt.Sprintf(format, args...)) + return + } + InfoDepth(1, fmt.Sprintf(format, args...)) +} + +// Warningf does warning logging. +func (pl *PrefixLogger) Warningf(format string, args ...interface{}) { + if pl != nil { + format = pl.prefix + format + pl.logger.WarningDepth(1, fmt.Sprintf(format, args...)) + return + } + WarningDepth(1, fmt.Sprintf(format, args...)) +} + +// Errorf does error logging. +func (pl *PrefixLogger) Errorf(format string, args ...interface{}) { + if pl != nil { + format = pl.prefix + format + pl.logger.ErrorDepth(1, fmt.Sprintf(format, args...)) + return + } + ErrorDepth(1, fmt.Sprintf(format, args...)) +} + +// Debugf does info logging at verbose level 2. +func (pl *PrefixLogger) Debugf(format string, args ...interface{}) { + if !Logger.V(2) { + return + } + if pl != nil { + // Handle nil, so the tests can pass in a nil logger. + format = pl.prefix + format + pl.logger.InfoDepth(1, fmt.Sprintf(format, args...)) + return + } + InfoDepth(1, fmt.Sprintf(format, args...)) +} + +// NewPrefixLogger creates a prefix logger with the given prefix. +func NewPrefixLogger(logger DepthLoggerV2, prefix string) *PrefixLogger { + return &PrefixLogger{logger: logger, prefix: prefix} +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go new file mode 100644 index 0000000000..517ea70642 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcrand/grpcrand.go @@ -0,0 +1,74 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpcrand implements math/rand functions in a concurrent-safe way +// with a global random source, independent of math/rand's global source. +package grpcrand + +import ( + "math/rand" + "sync" + "time" +) + +var ( + r = rand.New(rand.NewSource(time.Now().UnixNano())) + mu sync.Mutex +) + +// Int implements rand.Int on the grpcrand global source. +func Int() int { + mu.Lock() + defer mu.Unlock() + return r.Int() +} + +// Int63n implements rand.Int63n on the grpcrand global source. +func Int63n(n int64) int64 { + mu.Lock() + defer mu.Unlock() + return r.Int63n(n) +} + +// Intn implements rand.Intn on the grpcrand global source. +func Intn(n int) int { + mu.Lock() + defer mu.Unlock() + return r.Intn(n) +} + +// Int31n implements rand.Int31n on the grpcrand global source. +func Int31n(n int32) int32 { + mu.Lock() + defer mu.Unlock() + return r.Int31n(n) +} + +// Float64 implements rand.Float64 on the grpcrand global source. +func Float64() float64 { + mu.Lock() + defer mu.Unlock() + return r.Float64() +} + +// Uint64 implements rand.Uint64 on the grpcrand global source. +func Uint64() uint64 { + mu.Lock() + defer mu.Unlock() + return r.Uint64() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/event.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/event.go new file mode 100644 index 0000000000..fbe697c376 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/event.go @@ -0,0 +1,61 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpcsync implements additional synchronization primitives built upon +// the sync package. +package grpcsync + +import ( + "sync" + "sync/atomic" +) + +// Event represents a one-time event that may occur in the future. +type Event struct { + fired int32 + c chan struct{} + o sync.Once +} + +// Fire causes e to complete. It is safe to call multiple times, and +// concurrently. It returns true iff this call to Fire caused the signaling +// channel returned by Done to close. +func (e *Event) Fire() bool { + ret := false + e.o.Do(func() { + atomic.StoreInt32(&e.fired, 1) + close(e.c) + ret = true + }) + return ret +} + +// Done returns a channel that will be closed when Fire is called. +func (e *Event) Done() <-chan struct{} { + return e.c +} + +// HasFired returns true if Fire has been called. +func (e *Event) HasFired() bool { + return atomic.LoadInt32(&e.fired) == 1 +} + +// NewEvent returns a new, ready-to-use Event. +func NewEvent() *Event { + return &Event{c: make(chan struct{})} +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go new file mode 100644 index 0000000000..6635f7bca9 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcsync/oncefunc.go @@ -0,0 +1,32 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcsync + +import ( + "sync" +) + +// OnceFunc returns a function wrapping f which ensures f is only executed +// once even if the returned function is executed multiple times. +func OnceFunc(f func()) func() { + var once sync.Once + return func() { + once.Do(f) + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go new file mode 100644 index 0000000000..9f40909679 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/compressor.go @@ -0,0 +1,47 @@ +/* + * + * Copyright 2022 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcutil + +import ( + "strings" + + "google.golang.org/grpc/internal/envconfig" +) + +// RegisteredCompressorNames holds names of the registered compressors. +var RegisteredCompressorNames []string + +// IsCompressorNameRegistered returns true when name is available in registry. +func IsCompressorNameRegistered(name string) bool { + for _, compressor := range RegisteredCompressorNames { + if compressor == name { + return true + } + } + return false +} + +// RegisteredCompressors returns a string of registered compressor names +// separated by comma. +func RegisteredCompressors() string { + if !envconfig.AdvertiseCompressors { + return "" + } + return strings.Join(RegisteredCompressorNames, ",") +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go new file mode 100644 index 0000000000..b25b0baec3 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/encode_duration.go @@ -0,0 +1,63 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcutil + +import ( + "strconv" + "time" +) + +const maxTimeoutValue int64 = 100000000 - 1 + +// div does integer division and round-up the result. Note that this is +// equivalent to (d+r-1)/r but has less chance to overflow. +func div(d, r time.Duration) int64 { + if d%r > 0 { + return int64(d/r + 1) + } + return int64(d / r) +} + +// EncodeDuration encodes the duration to the format grpc-timeout header +// accepts. +// +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests +func EncodeDuration(t time.Duration) string { + // TODO: This is simplistic and not bandwidth efficient. Improve it. + if t <= 0 { + return "0n" + } + if d := div(t, time.Nanosecond); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "n" + } + if d := div(t, time.Microsecond); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "u" + } + if d := div(t, time.Millisecond); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "m" + } + if d := div(t, time.Second); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "S" + } + if d := div(t, time.Minute); d <= maxTimeoutValue { + return strconv.FormatInt(d, 10) + "M" + } + // Note that maxTimeoutValue * time.Hour > MaxInt64. + return strconv.FormatInt(div(t, time.Hour), 10) + "H" +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/grpcutil.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/grpcutil.go new file mode 100644 index 0000000000..e2f948e8f4 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/grpcutil.go @@ -0,0 +1,20 @@ +/* + * + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package grpcutil provides utility functions used across the gRPC codebase. +package grpcutil diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/metadata.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/metadata.go new file mode 100644 index 0000000000..6f22bd8911 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/metadata.go @@ -0,0 +1,40 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcutil + +import ( + "context" + + "google.golang.org/grpc/metadata" +) + +type mdExtraKey struct{} + +// WithExtraMetadata creates a new context with incoming md attached. +func WithExtraMetadata(ctx context.Context, md metadata.MD) context.Context { + return context.WithValue(ctx, mdExtraKey{}, md) +} + +// ExtraMetadata returns the incoming metadata in ctx if it exists. The +// returned MD should not be modified. Writing to it may cause races. +// Modification should be made to copies of the returned MD. +func ExtraMetadata(ctx context.Context) (md metadata.MD, ok bool) { + md, ok = ctx.Value(mdExtraKey{}).(metadata.MD) + return +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/method.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/method.go new file mode 100644 index 0000000000..ec62b4775e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/method.go @@ -0,0 +1,88 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcutil + +import ( + "errors" + "strings" +) + +// ParseMethod splits service and method from the input. It expects format +// "/service/method". +func ParseMethod(methodName string) (service, method string, _ error) { + if !strings.HasPrefix(methodName, "/") { + return "", "", errors.New("invalid method name: should start with /") + } + methodName = methodName[1:] + + pos := strings.LastIndex(methodName, "/") + if pos < 0 { + return "", "", errors.New("invalid method name: suffix /method is missing") + } + return methodName[:pos], methodName[pos+1:], nil +} + +// baseContentType is the base content-type for gRPC. This is a valid +// content-type on it's own, but can also include a content-subtype such as +// "proto" as a suffix after "+" or ";". See +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests +// for more details. +const baseContentType = "application/grpc" + +// ContentSubtype returns the content-subtype for the given content-type. The +// given content-type must be a valid content-type that starts with +// "application/grpc". A content-subtype will follow "application/grpc" after a +// "+" or ";". See +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +// +// If contentType is not a valid content-type for gRPC, the boolean +// will be false, otherwise true. If content-type == "application/grpc", +// "application/grpc+", or "application/grpc;", the boolean will be true, +// but no content-subtype will be returned. +// +// contentType is assumed to be lowercase already. +func ContentSubtype(contentType string) (string, bool) { + if contentType == baseContentType { + return "", true + } + if !strings.HasPrefix(contentType, baseContentType) { + return "", false + } + // guaranteed since != baseContentType and has baseContentType prefix + switch contentType[len(baseContentType)] { + case '+', ';': + // this will return true for "application/grpc+" or "application/grpc;" + // which the previous validContentType function tested to be valid, so we + // just say that no content-subtype is specified in this case + return contentType[len(baseContentType)+1:], true + default: + return "", false + } +} + +// ContentType builds full content type with the given sub-type. +// +// contentSubtype is assumed to be lowercase +func ContentType(contentSubtype string) string { + if contentSubtype == "" { + return baseContentType + } + return baseContentType + "+" + contentSubtype +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/regex.go b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/regex.go new file mode 100644 index 0000000000..7a092b2b80 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/grpcutil/regex.go @@ -0,0 +1,31 @@ +/* + * + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpcutil + +import "regexp" + +// FullMatchWithRegex returns whether the full text matches the regex provided. +func FullMatchWithRegex(re *regexp.Regexp, text string) bool { + if len(text) == 0 { + return re.MatchString(text) + } + re.Longest() + rem := re.FindString(text) + return len(rem) == len(text) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/internal.go b/ecs-agent/vendor/google.golang.org/grpc/internal/internal.go new file mode 100644 index 0000000000..fd0ee3dcaf --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/internal.go @@ -0,0 +1,157 @@ +/* + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package internal contains gRPC-internal code, to avoid polluting +// the godoc of the top-level grpc package. It must not import any grpc +// symbols to avoid circular dependencies. +package internal + +import ( + "context" + "time" + + "google.golang.org/grpc/connectivity" + "google.golang.org/grpc/serviceconfig" +) + +var ( + // WithHealthCheckFunc is set by dialoptions.go + WithHealthCheckFunc interface{} // func (HealthChecker) DialOption + // HealthCheckFunc is used to provide client-side LB channel health checking + HealthCheckFunc HealthChecker + // BalancerUnregister is exported by package balancer to unregister a balancer. + BalancerUnregister func(name string) + // KeepaliveMinPingTime is the minimum ping interval. This must be 10s by + // default, but tests may wish to set it lower for convenience. + KeepaliveMinPingTime = 10 * time.Second + // ParseServiceConfig parses a JSON representation of the service config. + ParseServiceConfig interface{} // func(string) *serviceconfig.ParseResult + // EqualServiceConfigForTesting is for testing service config generation and + // parsing. Both a and b should be returned by ParseServiceConfig. + // This function compares the config without rawJSON stripped, in case the + // there's difference in white space. + EqualServiceConfigForTesting func(a, b serviceconfig.Config) bool + // GetCertificateProviderBuilder returns the registered builder for the + // given name. This is set by package certprovider for use from xDS + // bootstrap code while parsing certificate provider configs in the + // bootstrap file. + GetCertificateProviderBuilder interface{} // func(string) certprovider.Builder + // GetXDSHandshakeInfoForTesting returns a pointer to the xds.HandshakeInfo + // stored in the passed in attributes. This is set by + // credentials/xds/xds.go. + GetXDSHandshakeInfoForTesting interface{} // func (*attributes.Attributes) *xds.HandshakeInfo + // GetServerCredentials returns the transport credentials configured on a + // gRPC server. An xDS-enabled server needs to know what type of credentials + // is configured on the underlying gRPC server. This is set by server.go. + GetServerCredentials interface{} // func (*grpc.Server) credentials.TransportCredentials + // DrainServerTransports initiates a graceful close of existing connections + // on a gRPC server accepted on the provided listener address. An + // xDS-enabled server invokes this method on a grpc.Server when a particular + // listener moves to "not-serving" mode. + DrainServerTransports interface{} // func(*grpc.Server, string) + // AddGlobalServerOptions adds an array of ServerOption that will be + // effective globally for newly created servers. The priority will be: 1. + // user-provided; 2. this method; 3. default values. + AddGlobalServerOptions interface{} // func(opt ...ServerOption) + // ClearGlobalServerOptions clears the array of extra ServerOption. This + // method is useful in testing and benchmarking. + ClearGlobalServerOptions func() + // AddGlobalDialOptions adds an array of DialOption that will be effective + // globally for newly created client channels. The priority will be: 1. + // user-provided; 2. this method; 3. default values. + AddGlobalDialOptions interface{} // func(opt ...DialOption) + // ClearGlobalDialOptions clears the array of extra DialOption. This + // method is useful in testing and benchmarking. + ClearGlobalDialOptions func() + // JoinServerOptions combines the server options passed as arguments into a + // single server option. + JoinServerOptions interface{} // func(...grpc.ServerOption) grpc.ServerOption + + // WithBinaryLogger returns a DialOption that specifies the binary logger + // for a ClientConn. + WithBinaryLogger interface{} // func(binarylog.Logger) grpc.DialOption + // BinaryLogger returns a ServerOption that can set the binary logger for a + // server. + BinaryLogger interface{} // func(binarylog.Logger) grpc.ServerOption + + // NewXDSResolverWithConfigForTesting creates a new xds resolver builder using + // the provided xds bootstrap config instead of the global configuration from + // the supported environment variables. The resolver.Builder is meant to be + // used in conjunction with the grpc.WithResolvers DialOption. + // + // Testing Only + // + // This function should ONLY be used for testing and may not work with some + // other features, including the CSDS service. + NewXDSResolverWithConfigForTesting interface{} // func([]byte) (resolver.Builder, error) + + // RegisterRLSClusterSpecifierPluginForTesting registers the RLS Cluster + // Specifier Plugin for testing purposes, regardless of the XDSRLS environment + // variable. + // + // TODO: Remove this function once the RLS env var is removed. + RegisterRLSClusterSpecifierPluginForTesting func() + + // UnregisterRLSClusterSpecifierPluginForTesting unregisters the RLS Cluster + // Specifier Plugin for testing purposes. This is needed because there is no way + // to unregister the RLS Cluster Specifier Plugin after registering it solely + // for testing purposes using RegisterRLSClusterSpecifierPluginForTesting(). + // + // TODO: Remove this function once the RLS env var is removed. + UnregisterRLSClusterSpecifierPluginForTesting func() + + // RegisterRBACHTTPFilterForTesting registers the RBAC HTTP Filter for testing + // purposes, regardless of the RBAC environment variable. + // + // TODO: Remove this function once the RBAC env var is removed. + RegisterRBACHTTPFilterForTesting func() + + // UnregisterRBACHTTPFilterForTesting unregisters the RBAC HTTP Filter for + // testing purposes. This is needed because there is no way to unregister the + // HTTP Filter after registering it solely for testing purposes using + // RegisterRBACHTTPFilterForTesting(). + // + // TODO: Remove this function once the RBAC env var is removed. + UnregisterRBACHTTPFilterForTesting func() +) + +// HealthChecker defines the signature of the client-side LB channel health checking function. +// +// The implementation is expected to create a health checking RPC stream by +// calling newStream(), watch for the health status of serviceName, and report +// it's health back by calling setConnectivityState(). +// +// The health checking protocol is defined at: +// https://github.com/grpc/grpc/blob/master/doc/health-checking.md +type HealthChecker func(ctx context.Context, newStream func(string) (interface{}, error), setConnectivityState func(connectivity.State, error), serviceName string) error + +const ( + // CredsBundleModeFallback switches GoogleDefaultCreds to fallback mode. + CredsBundleModeFallback = "fallback" + // CredsBundleModeBalancer switches GoogleDefaultCreds to grpclb balancer + // mode. + CredsBundleModeBalancer = "balancer" + // CredsBundleModeBackendFromBalancer switches GoogleDefaultCreds to mode + // that supports backend returned by grpclb balancer. + CredsBundleModeBackendFromBalancer = "backend-from-balancer" +) + +// RLSLoadBalancingPolicyName is the name of the RLS LB policy. +// +// It currently has an experimental suffix which would be removed once +// end-to-end testing of the policy is completed. +const RLSLoadBalancingPolicyName = "rls_experimental" diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/metadata/metadata.go b/ecs-agent/vendor/google.golang.org/grpc/internal/metadata/metadata.go new file mode 100644 index 0000000000..b2980f8ac4 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/metadata/metadata.go @@ -0,0 +1,120 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package metadata contains functions to set and get metadata from addresses. +// +// This package is experimental. +package metadata + +import ( + "fmt" + "strings" + + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/resolver" +) + +type mdKeyType string + +const mdKey = mdKeyType("grpc.internal.address.metadata") + +type mdValue metadata.MD + +func (m mdValue) Equal(o interface{}) bool { + om, ok := o.(mdValue) + if !ok { + return false + } + if len(m) != len(om) { + return false + } + for k, v := range m { + ov := om[k] + if len(ov) != len(v) { + return false + } + for i, ve := range v { + if ov[i] != ve { + return false + } + } + } + return true +} + +// Get returns the metadata of addr. +func Get(addr resolver.Address) metadata.MD { + attrs := addr.Attributes + if attrs == nil { + return nil + } + md, _ := attrs.Value(mdKey).(mdValue) + return metadata.MD(md) +} + +// Set sets (overrides) the metadata in addr. +// +// When a SubConn is created with this address, the RPCs sent on it will all +// have this metadata. +func Set(addr resolver.Address, md metadata.MD) resolver.Address { + addr.Attributes = addr.Attributes.WithValue(mdKey, mdValue(md)) + return addr +} + +// Validate returns an error if the input md contains invalid keys or values. +// +// If the header is not a pseudo-header, the following items are checked: +// - header names must contain one or more characters from this set [0-9 a-z _ - .]. +// - if the header-name ends with a "-bin" suffix, no validation of the header value is performed. +// - otherwise, the header value must contain one or more characters from the set [%x20-%x7E]. +func Validate(md metadata.MD) error { + for k, vals := range md { + // pseudo-header will be ignored + if k[0] == ':' { + continue + } + // check key, for i that saving a conversion if not using for range + for i := 0; i < len(k); i++ { + r := k[i] + if !(r >= 'a' && r <= 'z') && !(r >= '0' && r <= '9') && r != '.' && r != '-' && r != '_' { + return fmt.Errorf("header key %q contains illegal characters not in [0-9a-z-_.]", k) + } + } + if strings.HasSuffix(k, "-bin") { + continue + } + // check value + for _, val := range vals { + if hasNotPrintable(val) { + return fmt.Errorf("header key %q contains value with non-printable ASCII characters", k) + } + } + } + return nil +} + +// hasNotPrintable return true if msg contains any characters which are not in %x20-%x7E +func hasNotPrintable(msg string) bool { + // for i that saving a conversion if not using for range + for i := 0; i < len(msg); i++ { + if msg[i] < 0x20 || msg[i] > 0x7E { + return true + } + } + return false +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/pretty/pretty.go b/ecs-agent/vendor/google.golang.org/grpc/internal/pretty/pretty.go new file mode 100644 index 0000000000..0177af4b51 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/pretty/pretty.go @@ -0,0 +1,82 @@ +/* + * + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package pretty defines helper functions to pretty-print structs for logging. +package pretty + +import ( + "bytes" + "encoding/json" + "fmt" + + "github.com/golang/protobuf/jsonpb" + protov1 "github.com/golang/protobuf/proto" + "google.golang.org/protobuf/encoding/protojson" + protov2 "google.golang.org/protobuf/proto" +) + +const jsonIndent = " " + +// ToJSON marshals the input into a json string. +// +// If marshal fails, it falls back to fmt.Sprintf("%+v"). +func ToJSON(e interface{}) string { + switch ee := e.(type) { + case protov1.Message: + mm := jsonpb.Marshaler{Indent: jsonIndent} + ret, err := mm.MarshalToString(ee) + if err != nil { + // This may fail for proto.Anys, e.g. for xDS v2, LDS, the v2 + // messages are not imported, and this will fail because the message + // is not found. + return fmt.Sprintf("%+v", ee) + } + return ret + case protov2.Message: + mm := protojson.MarshalOptions{ + Multiline: true, + Indent: jsonIndent, + } + ret, err := mm.Marshal(ee) + if err != nil { + // This may fail for proto.Anys, e.g. for xDS v2, LDS, the v2 + // messages are not imported, and this will fail because the message + // is not found. + return fmt.Sprintf("%+v", ee) + } + return string(ret) + default: + ret, err := json.MarshalIndent(ee, "", jsonIndent) + if err != nil { + return fmt.Sprintf("%+v", ee) + } + return string(ret) + } +} + +// FormatJSON formats the input json bytes with indentation. +// +// If Indent fails, it returns the unchanged input as string. +func FormatJSON(b []byte) string { + var out bytes.Buffer + err := json.Indent(&out, b, "", jsonIndent) + if err != nil { + return string(b) + } + return out.String() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/config_selector.go b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/config_selector.go new file mode 100644 index 0000000000..c7a18a948a --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/config_selector.go @@ -0,0 +1,167 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package resolver provides internal resolver-related functionality. +package resolver + +import ( + "context" + "sync" + + "google.golang.org/grpc/internal/serviceconfig" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/resolver" +) + +// ConfigSelector controls what configuration to use for every RPC. +type ConfigSelector interface { + // Selects the configuration for the RPC, or terminates it using the error. + // This error will be converted by the gRPC library to a status error with + // code UNKNOWN if it is not returned as a status error. + SelectConfig(RPCInfo) (*RPCConfig, error) +} + +// RPCInfo contains RPC information needed by a ConfigSelector. +type RPCInfo struct { + // Context is the user's context for the RPC and contains headers and + // application timeout. It is passed for interception purposes and for + // efficiency reasons. SelectConfig should not be blocking. + Context context.Context + Method string // i.e. "/Service/Method" +} + +// RPCConfig describes the configuration to use for each RPC. +type RPCConfig struct { + // The context to use for the remainder of the RPC; can pass info to LB + // policy or affect timeout or metadata. + Context context.Context + MethodConfig serviceconfig.MethodConfig // configuration to use for this RPC + OnCommitted func() // Called when the RPC has been committed (retries no longer possible) + Interceptor ClientInterceptor +} + +// ClientStream is the same as grpc.ClientStream, but defined here for circular +// dependency reasons. +type ClientStream interface { + // Header returns the header metadata received from the server if there + // is any. It blocks if the metadata is not ready to read. + Header() (metadata.MD, error) + // Trailer returns the trailer metadata from the server, if there is any. + // It must only be called after stream.CloseAndRecv has returned, or + // stream.Recv has returned a non-nil error (including io.EOF). + Trailer() metadata.MD + // CloseSend closes the send direction of the stream. It closes the stream + // when non-nil error is met. It is also not safe to call CloseSend + // concurrently with SendMsg. + CloseSend() error + // Context returns the context for this stream. + // + // It should not be called until after Header or RecvMsg has returned. Once + // called, subsequent client-side retries are disabled. + Context() context.Context + // SendMsg is generally called by generated code. On error, SendMsg aborts + // the stream. If the error was generated by the client, the status is + // returned directly; otherwise, io.EOF is returned and the status of + // the stream may be discovered using RecvMsg. + // + // SendMsg blocks until: + // - There is sufficient flow control to schedule m with the transport, or + // - The stream is done, or + // - The stream breaks. + // + // SendMsg does not wait until the message is received by the server. An + // untimely stream closure may result in lost messages. To ensure delivery, + // users should ensure the RPC completed successfully using RecvMsg. + // + // It is safe to have a goroutine calling SendMsg and another goroutine + // calling RecvMsg on the same stream at the same time, but it is not safe + // to call SendMsg on the same stream in different goroutines. It is also + // not safe to call CloseSend concurrently with SendMsg. + SendMsg(m interface{}) error + // RecvMsg blocks until it receives a message into m or the stream is + // done. It returns io.EOF when the stream completes successfully. On + // any other error, the stream is aborted and the error contains the RPC + // status. + // + // It is safe to have a goroutine calling SendMsg and another goroutine + // calling RecvMsg on the same stream at the same time, but it is not + // safe to call RecvMsg on the same stream in different goroutines. + RecvMsg(m interface{}) error +} + +// ClientInterceptor is an interceptor for gRPC client streams. +type ClientInterceptor interface { + // NewStream produces a ClientStream for an RPC which may optionally use + // the provided function to produce a stream for delegation. Note: + // RPCInfo.Context should not be used (will be nil). + // + // done is invoked when the RPC is finished using its connection, or could + // not be assigned a connection. RPC operations may still occur on + // ClientStream after done is called, since the interceptor is invoked by + // application-layer operations. done must never be nil when called. + NewStream(ctx context.Context, ri RPCInfo, done func(), newStream func(ctx context.Context, done func()) (ClientStream, error)) (ClientStream, error) +} + +// ServerInterceptor is an interceptor for incoming RPC's on gRPC server side. +type ServerInterceptor interface { + // AllowRPC checks if an incoming RPC is allowed to proceed based on + // information about connection RPC was received on, and HTTP Headers. This + // information will be piped into context. + AllowRPC(ctx context.Context) error // TODO: Make this a real interceptor for filters such as rate limiting. +} + +type csKeyType string + +const csKey = csKeyType("grpc.internal.resolver.configSelector") + +// SetConfigSelector sets the config selector in state and returns the new +// state. +func SetConfigSelector(state resolver.State, cs ConfigSelector) resolver.State { + state.Attributes = state.Attributes.WithValue(csKey, cs) + return state +} + +// GetConfigSelector retrieves the config selector from state, if present, and +// returns it or nil if absent. +func GetConfigSelector(state resolver.State) ConfigSelector { + cs, _ := state.Attributes.Value(csKey).(ConfigSelector) + return cs +} + +// SafeConfigSelector allows for safe switching of ConfigSelector +// implementations such that previous values are guaranteed to not be in use +// when UpdateConfigSelector returns. +type SafeConfigSelector struct { + mu sync.RWMutex + cs ConfigSelector +} + +// UpdateConfigSelector swaps to the provided ConfigSelector and blocks until +// all uses of the previous ConfigSelector have completed. +func (scs *SafeConfigSelector) UpdateConfigSelector(cs ConfigSelector) { + scs.mu.Lock() + defer scs.mu.Unlock() + scs.cs = cs +} + +// SelectConfig defers to the current ConfigSelector in scs. +func (scs *SafeConfigSelector) SelectConfig(r RPCInfo) (*RPCConfig, error) { + scs.mu.RLock() + defer scs.mu.RUnlock() + return scs.cs.SelectConfig(r) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go new file mode 100644 index 0000000000..d51302e65c --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/dns/dns_resolver.go @@ -0,0 +1,458 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package dns implements a dns resolver to be installed as the default resolver +// in grpc. +package dns + +import ( + "context" + "encoding/json" + "errors" + "fmt" + "net" + "os" + "strconv" + "strings" + "sync" + "time" + + grpclbstate "google.golang.org/grpc/balancer/grpclb/grpclbstate" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal/backoff" + "google.golang.org/grpc/internal/envconfig" + "google.golang.org/grpc/internal/grpcrand" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/serviceconfig" +) + +// EnableSRVLookups controls whether the DNS resolver attempts to fetch gRPCLB +// addresses from SRV records. Must not be changed after init time. +var EnableSRVLookups = false + +var logger = grpclog.Component("dns") + +// Globals to stub out in tests. TODO: Perhaps these two can be combined into a +// single variable for testing the resolver? +var ( + newTimer = time.NewTimer + newTimerDNSResRate = time.NewTimer +) + +func init() { + resolver.Register(NewBuilder()) +} + +const ( + defaultPort = "443" + defaultDNSSvrPort = "53" + golang = "GO" + // txtPrefix is the prefix string to be prepended to the host name for txt record lookup. + txtPrefix = "_grpc_config." + // In DNS, service config is encoded in a TXT record via the mechanism + // described in RFC-1464 using the attribute name grpc_config. + txtAttribute = "grpc_config=" +) + +var ( + errMissingAddr = errors.New("dns resolver: missing address") + + // Addresses ending with a colon that is supposed to be the separator + // between host and port is not allowed. E.g. "::" is a valid address as + // it is an IPv6 address (host only) and "[::]:" is invalid as it ends with + // a colon as the host and port separator + errEndsWithColon = errors.New("dns resolver: missing port after port-separator colon") +) + +var ( + defaultResolver netResolver = net.DefaultResolver + // To prevent excessive re-resolution, we enforce a rate limit on DNS + // resolution requests. + minDNSResRate = 30 * time.Second +) + +var customAuthorityDialler = func(authority string) func(ctx context.Context, network, address string) (net.Conn, error) { + return func(ctx context.Context, network, address string) (net.Conn, error) { + var dialer net.Dialer + return dialer.DialContext(ctx, network, authority) + } +} + +var customAuthorityResolver = func(authority string) (netResolver, error) { + host, port, err := parseTarget(authority, defaultDNSSvrPort) + if err != nil { + return nil, err + } + + authorityWithPort := net.JoinHostPort(host, port) + + return &net.Resolver{ + PreferGo: true, + Dial: customAuthorityDialler(authorityWithPort), + }, nil +} + +// NewBuilder creates a dnsBuilder which is used to factory DNS resolvers. +func NewBuilder() resolver.Builder { + return &dnsBuilder{} +} + +type dnsBuilder struct{} + +// Build creates and starts a DNS resolver that watches the name resolution of the target. +func (b *dnsBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { + host, port, err := parseTarget(target.Endpoint, defaultPort) + if err != nil { + return nil, err + } + + // IP address. + if ipAddr, ok := formatIP(host); ok { + addr := []resolver.Address{{Addr: ipAddr + ":" + port}} + cc.UpdateState(resolver.State{Addresses: addr}) + return deadResolver{}, nil + } + + // DNS address (non-IP). + ctx, cancel := context.WithCancel(context.Background()) + d := &dnsResolver{ + host: host, + port: port, + ctx: ctx, + cancel: cancel, + cc: cc, + rn: make(chan struct{}, 1), + disableServiceConfig: opts.DisableServiceConfig, + } + + if target.URL.Host == "" { + d.resolver = defaultResolver + } else { + d.resolver, err = customAuthorityResolver(target.URL.Host) + if err != nil { + return nil, err + } + } + + d.wg.Add(1) + go d.watcher() + return d, nil +} + +// Scheme returns the naming scheme of this resolver builder, which is "dns". +func (b *dnsBuilder) Scheme() string { + return "dns" +} + +type netResolver interface { + LookupHost(ctx context.Context, host string) (addrs []string, err error) + LookupSRV(ctx context.Context, service, proto, name string) (cname string, addrs []*net.SRV, err error) + LookupTXT(ctx context.Context, name string) (txts []string, err error) +} + +// deadResolver is a resolver that does nothing. +type deadResolver struct{} + +func (deadResolver) ResolveNow(resolver.ResolveNowOptions) {} + +func (deadResolver) Close() {} + +// dnsResolver watches for the name resolution update for a non-IP target. +type dnsResolver struct { + host string + port string + resolver netResolver + ctx context.Context + cancel context.CancelFunc + cc resolver.ClientConn + // rn channel is used by ResolveNow() to force an immediate resolution of the target. + rn chan struct{} + // wg is used to enforce Close() to return after the watcher() goroutine has finished. + // Otherwise, data race will be possible. [Race Example] in dns_resolver_test we + // replace the real lookup functions with mocked ones to facilitate testing. + // If Close() doesn't wait for watcher() goroutine finishes, race detector sometimes + // will warns lookup (READ the lookup function pointers) inside watcher() goroutine + // has data race with replaceNetFunc (WRITE the lookup function pointers). + wg sync.WaitGroup + disableServiceConfig bool +} + +// ResolveNow invoke an immediate resolution of the target that this dnsResolver watches. +func (d *dnsResolver) ResolveNow(resolver.ResolveNowOptions) { + select { + case d.rn <- struct{}{}: + default: + } +} + +// Close closes the dnsResolver. +func (d *dnsResolver) Close() { + d.cancel() + d.wg.Wait() +} + +func (d *dnsResolver) watcher() { + defer d.wg.Done() + backoffIndex := 1 + for { + state, err := d.lookup() + if err != nil { + // Report error to the underlying grpc.ClientConn. + d.cc.ReportError(err) + } else { + err = d.cc.UpdateState(*state) + } + + var timer *time.Timer + if err == nil { + // Success resolving, wait for the next ResolveNow. However, also wait 30 seconds at the very least + // to prevent constantly re-resolving. + backoffIndex = 1 + timer = newTimerDNSResRate(minDNSResRate) + select { + case <-d.ctx.Done(): + timer.Stop() + return + case <-d.rn: + } + } else { + // Poll on an error found in DNS Resolver or an error received from ClientConn. + timer = newTimer(backoff.DefaultExponential.Backoff(backoffIndex)) + backoffIndex++ + } + select { + case <-d.ctx.Done(): + timer.Stop() + return + case <-timer.C: + } + } +} + +func (d *dnsResolver) lookupSRV() ([]resolver.Address, error) { + if !EnableSRVLookups { + return nil, nil + } + var newAddrs []resolver.Address + _, srvs, err := d.resolver.LookupSRV(d.ctx, "grpclb", "tcp", d.host) + if err != nil { + err = handleDNSError(err, "SRV") // may become nil + return nil, err + } + for _, s := range srvs { + lbAddrs, err := d.resolver.LookupHost(d.ctx, s.Target) + if err != nil { + err = handleDNSError(err, "A") // may become nil + if err == nil { + // If there are other SRV records, look them up and ignore this + // one that does not exist. + continue + } + return nil, err + } + for _, a := range lbAddrs { + ip, ok := formatIP(a) + if !ok { + return nil, fmt.Errorf("dns: error parsing A record IP address %v", a) + } + addr := ip + ":" + strconv.Itoa(int(s.Port)) + newAddrs = append(newAddrs, resolver.Address{Addr: addr, ServerName: s.Target}) + } + } + return newAddrs, nil +} + +func handleDNSError(err error, lookupType string) error { + if dnsErr, ok := err.(*net.DNSError); ok && !dnsErr.IsTimeout && !dnsErr.IsTemporary { + // Timeouts and temporary errors should be communicated to gRPC to + // attempt another DNS query (with backoff). Other errors should be + // suppressed (they may represent the absence of a TXT record). + return nil + } + if err != nil { + err = fmt.Errorf("dns: %v record lookup error: %v", lookupType, err) + logger.Info(err) + } + return err +} + +func (d *dnsResolver) lookupTXT() *serviceconfig.ParseResult { + ss, err := d.resolver.LookupTXT(d.ctx, txtPrefix+d.host) + if err != nil { + if envconfig.TXTErrIgnore { + return nil + } + if err = handleDNSError(err, "TXT"); err != nil { + return &serviceconfig.ParseResult{Err: err} + } + return nil + } + var res string + for _, s := range ss { + res += s + } + + // TXT record must have "grpc_config=" attribute in order to be used as service config. + if !strings.HasPrefix(res, txtAttribute) { + logger.Warningf("dns: TXT record %v missing %v attribute", res, txtAttribute) + // This is not an error; it is the equivalent of not having a service config. + return nil + } + sc := canaryingSC(strings.TrimPrefix(res, txtAttribute)) + return d.cc.ParseServiceConfig(sc) +} + +func (d *dnsResolver) lookupHost() ([]resolver.Address, error) { + addrs, err := d.resolver.LookupHost(d.ctx, d.host) + if err != nil { + err = handleDNSError(err, "A") + return nil, err + } + newAddrs := make([]resolver.Address, 0, len(addrs)) + for _, a := range addrs { + ip, ok := formatIP(a) + if !ok { + return nil, fmt.Errorf("dns: error parsing A record IP address %v", a) + } + addr := ip + ":" + d.port + newAddrs = append(newAddrs, resolver.Address{Addr: addr}) + } + return newAddrs, nil +} + +func (d *dnsResolver) lookup() (*resolver.State, error) { + srv, srvErr := d.lookupSRV() + addrs, hostErr := d.lookupHost() + if hostErr != nil && (srvErr != nil || len(srv) == 0) { + return nil, hostErr + } + + state := resolver.State{Addresses: addrs} + if len(srv) > 0 { + state = grpclbstate.Set(state, &grpclbstate.State{BalancerAddresses: srv}) + } + if !d.disableServiceConfig { + state.ServiceConfig = d.lookupTXT() + } + return &state, nil +} + +// formatIP returns ok = false if addr is not a valid textual representation of an IP address. +// If addr is an IPv4 address, return the addr and ok = true. +// If addr is an IPv6 address, return the addr enclosed in square brackets and ok = true. +func formatIP(addr string) (addrIP string, ok bool) { + ip := net.ParseIP(addr) + if ip == nil { + return "", false + } + if ip.To4() != nil { + return addr, true + } + return "[" + addr + "]", true +} + +// parseTarget takes the user input target string and default port, returns formatted host and port info. +// If target doesn't specify a port, set the port to be the defaultPort. +// If target is in IPv6 format and host-name is enclosed in square brackets, brackets +// are stripped when setting the host. +// examples: +// target: "www.google.com" defaultPort: "443" returns host: "www.google.com", port: "443" +// target: "ipv4-host:80" defaultPort: "443" returns host: "ipv4-host", port: "80" +// target: "[ipv6-host]" defaultPort: "443" returns host: "ipv6-host", port: "443" +// target: ":80" defaultPort: "443" returns host: "localhost", port: "80" +func parseTarget(target, defaultPort string) (host, port string, err error) { + if target == "" { + return "", "", errMissingAddr + } + if ip := net.ParseIP(target); ip != nil { + // target is an IPv4 or IPv6(without brackets) address + return target, defaultPort, nil + } + if host, port, err = net.SplitHostPort(target); err == nil { + if port == "" { + // If the port field is empty (target ends with colon), e.g. "[::1]:", this is an error. + return "", "", errEndsWithColon + } + // target has port, i.e ipv4-host:port, [ipv6-host]:port, host-name:port + if host == "" { + // Keep consistent with net.Dial(): If the host is empty, as in ":80", the local system is assumed. + host = "localhost" + } + return host, port, nil + } + if host, port, err = net.SplitHostPort(target + ":" + defaultPort); err == nil { + // target doesn't have port + return host, port, nil + } + return "", "", fmt.Errorf("invalid target address %v, error info: %v", target, err) +} + +type rawChoice struct { + ClientLanguage *[]string `json:"clientLanguage,omitempty"` + Percentage *int `json:"percentage,omitempty"` + ClientHostName *[]string `json:"clientHostName,omitempty"` + ServiceConfig *json.RawMessage `json:"serviceConfig,omitempty"` +} + +func containsString(a *[]string, b string) bool { + if a == nil { + return true + } + for _, c := range *a { + if c == b { + return true + } + } + return false +} + +func chosenByPercentage(a *int) bool { + if a == nil { + return true + } + return grpcrand.Intn(100)+1 <= *a +} + +func canaryingSC(js string) string { + if js == "" { + return "" + } + var rcs []rawChoice + err := json.Unmarshal([]byte(js), &rcs) + if err != nil { + logger.Warningf("dns: error parsing service config json: %v", err) + return "" + } + cliHostname, err := os.Hostname() + if err != nil { + logger.Warningf("dns: error getting client hostname: %v", err) + return "" + } + var sc string + for _, c := range rcs { + if !containsString(c.ClientLanguage, golang) || + !chosenByPercentage(c.Percentage) || + !containsString(c.ClientHostName, cliHostname) || + c.ServiceConfig == nil { + continue + } + sc = string(*c.ServiceConfig) + break + } + return sc +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/passthrough/passthrough.go b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/passthrough/passthrough.go new file mode 100644 index 0000000000..c6e08221ff --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/passthrough/passthrough.go @@ -0,0 +1,64 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package passthrough implements a pass-through resolver. It sends the target +// name without scheme back to gRPC as resolved address. +package passthrough + +import ( + "errors" + + "google.golang.org/grpc/resolver" +) + +const scheme = "passthrough" + +type passthroughBuilder struct{} + +func (*passthroughBuilder) Build(target resolver.Target, cc resolver.ClientConn, opts resolver.BuildOptions) (resolver.Resolver, error) { + if target.Endpoint == "" && opts.Dialer == nil { + return nil, errors.New("passthrough: received empty target in Build()") + } + r := &passthroughResolver{ + target: target, + cc: cc, + } + r.start() + return r, nil +} + +func (*passthroughBuilder) Scheme() string { + return scheme +} + +type passthroughResolver struct { + target resolver.Target + cc resolver.ClientConn +} + +func (r *passthroughResolver) start() { + r.cc.UpdateState(resolver.State{Addresses: []resolver.Address{{Addr: r.target.Endpoint}}}) +} + +func (*passthroughResolver) ResolveNow(o resolver.ResolveNowOptions) {} + +func (*passthroughResolver) Close() {} + +func init() { + resolver.Register(&passthroughBuilder{}) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/unix/unix.go b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/unix/unix.go new file mode 100644 index 0000000000..1609116877 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/resolver/unix/unix.go @@ -0,0 +1,74 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package unix implements a resolver for unix targets. +package unix + +import ( + "fmt" + + "google.golang.org/grpc/internal/transport/networktype" + "google.golang.org/grpc/resolver" +) + +const unixScheme = "unix" +const unixAbstractScheme = "unix-abstract" + +type builder struct { + scheme string +} + +func (b *builder) Build(target resolver.Target, cc resolver.ClientConn, _ resolver.BuildOptions) (resolver.Resolver, error) { + if target.URL.Host != "" { + return nil, fmt.Errorf("invalid (non-empty) authority: %v", target.URL.Host) + } + + // gRPC was parsing the dial target manually before PR #4817, and we + // switched to using url.Parse() in that PR. To avoid breaking existing + // resolver implementations we ended up stripping the leading "/" from the + // endpoint. This obviously does not work for the "unix" scheme. Hence we + // end up using the parsed URL instead. + endpoint := target.URL.Path + if endpoint == "" { + endpoint = target.URL.Opaque + } + addr := resolver.Address{Addr: endpoint} + if b.scheme == unixAbstractScheme { + // We can not prepend \0 as c++ gRPC does, as in Golang '@' is used to signify we do + // not want trailing \0 in address. + addr.Addr = "@" + addr.Addr + } + cc.UpdateState(resolver.State{Addresses: []resolver.Address{networktype.Set(addr, "unix")}}) + return &nopResolver{}, nil +} + +func (b *builder) Scheme() string { + return b.scheme +} + +type nopResolver struct { +} + +func (*nopResolver) ResolveNow(resolver.ResolveNowOptions) {} + +func (*nopResolver) Close() {} + +func init() { + resolver.Register(&builder{scheme: unixScheme}) + resolver.Register(&builder{scheme: unixAbstractScheme}) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/serviceconfig/serviceconfig.go b/ecs-agent/vendor/google.golang.org/grpc/internal/serviceconfig/serviceconfig.go new file mode 100644 index 0000000000..51e733e495 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/serviceconfig/serviceconfig.go @@ -0,0 +1,180 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package serviceconfig contains utility functions to parse service config. +package serviceconfig + +import ( + "encoding/json" + "fmt" + "time" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + externalserviceconfig "google.golang.org/grpc/serviceconfig" +) + +var logger = grpclog.Component("core") + +// BalancerConfig wraps the name and config associated with one load balancing +// policy. It corresponds to a single entry of the loadBalancingConfig field +// from ServiceConfig. +// +// It implements the json.Unmarshaler interface. +// +// https://github.com/grpc/grpc-proto/blob/54713b1e8bc6ed2d4f25fb4dff527842150b91b2/grpc/service_config/service_config.proto#L247 +type BalancerConfig struct { + Name string + Config externalserviceconfig.LoadBalancingConfig +} + +type intermediateBalancerConfig []map[string]json.RawMessage + +// MarshalJSON implements the json.Marshaler interface. +// +// It marshals the balancer and config into a length-1 slice +// ([]map[string]config). +func (bc *BalancerConfig) MarshalJSON() ([]byte, error) { + if bc.Config == nil { + // If config is nil, return empty config `{}`. + return []byte(fmt.Sprintf(`[{%q: %v}]`, bc.Name, "{}")), nil + } + c, err := json.Marshal(bc.Config) + if err != nil { + return nil, err + } + return []byte(fmt.Sprintf(`[{%q: %s}]`, bc.Name, c)), nil +} + +// UnmarshalJSON implements the json.Unmarshaler interface. +// +// ServiceConfig contains a list of loadBalancingConfigs, each with a name and +// config. This method iterates through that list in order, and stops at the +// first policy that is supported. +// - If the config for the first supported policy is invalid, the whole service +// config is invalid. +// - If the list doesn't contain any supported policy, the whole service config +// is invalid. +func (bc *BalancerConfig) UnmarshalJSON(b []byte) error { + var ir intermediateBalancerConfig + err := json.Unmarshal(b, &ir) + if err != nil { + return err + } + + var names []string + for i, lbcfg := range ir { + if len(lbcfg) != 1 { + return fmt.Errorf("invalid loadBalancingConfig: entry %v does not contain exactly 1 policy/config pair: %q", i, lbcfg) + } + + var ( + name string + jsonCfg json.RawMessage + ) + // Get the key:value pair from the map. We have already made sure that + // the map contains a single entry. + for name, jsonCfg = range lbcfg { + } + + names = append(names, name) + builder := balancer.Get(name) + if builder == nil { + // If the balancer is not registered, move on to the next config. + // This is not an error. + continue + } + bc.Name = name + + parser, ok := builder.(balancer.ConfigParser) + if !ok { + if string(jsonCfg) != "{}" { + logger.Warningf("non-empty balancer configuration %q, but balancer does not implement ParseConfig", string(jsonCfg)) + } + // Stop at this, though the builder doesn't support parsing config. + return nil + } + + cfg, err := parser.ParseConfig(jsonCfg) + if err != nil { + return fmt.Errorf("error parsing loadBalancingConfig for policy %q: %v", name, err) + } + bc.Config = cfg + return nil + } + // This is reached when the for loop iterates over all entries, but didn't + // return. This means we had a loadBalancingConfig slice but did not + // encounter a registered policy. The config is considered invalid in this + // case. + return fmt.Errorf("invalid loadBalancingConfig: no supported policies found in %v", names) +} + +// MethodConfig defines the configuration recommended by the service providers for a +// particular method. +type MethodConfig struct { + // WaitForReady indicates whether RPCs sent to this method should wait until + // the connection is ready by default (!failfast). The value specified via the + // gRPC client API will override the value set here. + WaitForReady *bool + // Timeout is the default timeout for RPCs sent to this method. The actual + // deadline used will be the minimum of the value specified here and the value + // set by the application via the gRPC client API. If either one is not set, + // then the other will be used. If neither is set, then the RPC has no deadline. + Timeout *time.Duration + // MaxReqSize is the maximum allowed payload size for an individual request in a + // stream (client->server) in bytes. The size which is measured is the serialized + // payload after per-message compression (but before stream compression) in bytes. + // The actual value used is the minimum of the value specified here and the value set + // by the application via the gRPC client API. If either one is not set, then the other + // will be used. If neither is set, then the built-in default is used. + MaxReqSize *int + // MaxRespSize is the maximum allowed payload size for an individual response in a + // stream (server->client) in bytes. + MaxRespSize *int + // RetryPolicy configures retry options for the method. + RetryPolicy *RetryPolicy +} + +// RetryPolicy defines the go-native version of the retry policy defined by the +// service config here: +// https://github.com/grpc/proposal/blob/master/A6-client-retries.md#integration-with-service-config +type RetryPolicy struct { + // MaxAttempts is the maximum number of attempts, including the original RPC. + // + // This field is required and must be two or greater. + MaxAttempts int + + // Exponential backoff parameters. The initial retry attempt will occur at + // random(0, initialBackoff). In general, the nth attempt will occur at + // random(0, + // min(initialBackoff*backoffMultiplier**(n-1), maxBackoff)). + // + // These fields are required and must be greater than zero. + InitialBackoff time.Duration + MaxBackoff time.Duration + BackoffMultiplier float64 + + // The set of status codes which may be retried. + // + // Status codes are specified as strings, e.g., "UNAVAILABLE". + // + // This field is required and must be non-empty. + // Note: a set is used to store this for easy lookup. + RetryableStatusCodes map[codes.Code]bool +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/status/status.go b/ecs-agent/vendor/google.golang.org/grpc/internal/status/status.go new file mode 100644 index 0000000000..b0ead4f54f --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/status/status.go @@ -0,0 +1,176 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package status implements errors returned by gRPC. These errors are +// serialized and transmitted on the wire between server and client, and allow +// for additional data to be transmitted via the Details field in the status +// proto. gRPC service handlers should return an error created by this +// package, and gRPC clients should expect a corresponding error to be +// returned from the RPC call. +// +// This package upholds the invariants that a non-nil error may not +// contain an OK code, and an OK code must result in a nil error. +package status + +import ( + "errors" + "fmt" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/ptypes" + spb "google.golang.org/genproto/googleapis/rpc/status" + "google.golang.org/grpc/codes" +) + +// Status represents an RPC status code, message, and details. It is immutable +// and should be created with New, Newf, or FromProto. +type Status struct { + s *spb.Status +} + +// New returns a Status representing c and msg. +func New(c codes.Code, msg string) *Status { + return &Status{s: &spb.Status{Code: int32(c), Message: msg}} +} + +// Newf returns New(c, fmt.Sprintf(format, a...)). +func Newf(c codes.Code, format string, a ...interface{}) *Status { + return New(c, fmt.Sprintf(format, a...)) +} + +// FromProto returns a Status representing s. +func FromProto(s *spb.Status) *Status { + return &Status{s: proto.Clone(s).(*spb.Status)} +} + +// Err returns an error representing c and msg. If c is OK, returns nil. +func Err(c codes.Code, msg string) error { + return New(c, msg).Err() +} + +// Errorf returns Error(c, fmt.Sprintf(format, a...)). +func Errorf(c codes.Code, format string, a ...interface{}) error { + return Err(c, fmt.Sprintf(format, a...)) +} + +// Code returns the status code contained in s. +func (s *Status) Code() codes.Code { + if s == nil || s.s == nil { + return codes.OK + } + return codes.Code(s.s.Code) +} + +// Message returns the message contained in s. +func (s *Status) Message() string { + if s == nil || s.s == nil { + return "" + } + return s.s.Message +} + +// Proto returns s's status as an spb.Status proto message. +func (s *Status) Proto() *spb.Status { + if s == nil { + return nil + } + return proto.Clone(s.s).(*spb.Status) +} + +// Err returns an immutable error representing s; returns nil if s.Code() is OK. +func (s *Status) Err() error { + if s.Code() == codes.OK { + return nil + } + return &Error{s: s} +} + +// WithDetails returns a new status with the provided details messages appended to the status. +// If any errors are encountered, it returns nil and the first error encountered. +func (s *Status) WithDetails(details ...proto.Message) (*Status, error) { + if s.Code() == codes.OK { + return nil, errors.New("no error details for status with code OK") + } + // s.Code() != OK implies that s.Proto() != nil. + p := s.Proto() + for _, detail := range details { + any, err := ptypes.MarshalAny(detail) + if err != nil { + return nil, err + } + p.Details = append(p.Details, any) + } + return &Status{s: p}, nil +} + +// Details returns a slice of details messages attached to the status. +// If a detail cannot be decoded, the error is returned in place of the detail. +func (s *Status) Details() []interface{} { + if s == nil || s.s == nil { + return nil + } + details := make([]interface{}, 0, len(s.s.Details)) + for _, any := range s.s.Details { + detail := &ptypes.DynamicAny{} + if err := ptypes.UnmarshalAny(any, detail); err != nil { + details = append(details, err) + continue + } + details = append(details, detail.Message) + } + return details +} + +func (s *Status) String() string { + return fmt.Sprintf("rpc error: code = %s desc = %s", s.Code(), s.Message()) +} + +// Error wraps a pointer of a status proto. It implements error and Status, +// and a nil *Error should never be returned by this package. +type Error struct { + s *Status +} + +func (e *Error) Error() string { + return e.s.String() +} + +// GRPCStatus returns the Status represented by se. +func (e *Error) GRPCStatus() *Status { + return e.s +} + +// Is implements future error.Is functionality. +// A Error is equivalent if the code and message are identical. +func (e *Error) Is(target error) bool { + tse, ok := target.(*Error) + if !ok { + return false + } + return proto.Equal(e.s.s, tse.s.s) +} + +// IsRestrictedControlPlaneCode returns whether the status includes a code +// restricted for control plane usage as defined by gRFC A54. +func IsRestrictedControlPlaneCode(s *Status) bool { + switch s.Code() { + case codes.InvalidArgument, codes.NotFound, codes.AlreadyExists, codes.FailedPrecondition, codes.Aborted, codes.OutOfRange, codes.DataLoss: + return true + } + return false +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go b/ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go new file mode 100644 index 0000000000..b3a72276de --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_linux.go @@ -0,0 +1,112 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package syscall provides functionalities that grpc uses to get low-level operating system +// stats/info. +package syscall + +import ( + "fmt" + "net" + "syscall" + "time" + + "golang.org/x/sys/unix" + "google.golang.org/grpc/grpclog" +) + +var logger = grpclog.Component("core") + +// GetCPUTime returns the how much CPU time has passed since the start of this process. +func GetCPUTime() int64 { + var ts unix.Timespec + if err := unix.ClockGettime(unix.CLOCK_PROCESS_CPUTIME_ID, &ts); err != nil { + logger.Fatal(err) + } + return ts.Nano() +} + +// Rusage is an alias for syscall.Rusage under linux environment. +type Rusage = syscall.Rusage + +// GetRusage returns the resource usage of current process. +func GetRusage() *Rusage { + rusage := new(Rusage) + syscall.Getrusage(syscall.RUSAGE_SELF, rusage) + return rusage +} + +// CPUTimeDiff returns the differences of user CPU time and system CPU time used +// between two Rusage structs. +func CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) { + var ( + utimeDiffs = latest.Utime.Sec - first.Utime.Sec + utimeDiffus = latest.Utime.Usec - first.Utime.Usec + stimeDiffs = latest.Stime.Sec - first.Stime.Sec + stimeDiffus = latest.Stime.Usec - first.Stime.Usec + ) + + uTimeElapsed := float64(utimeDiffs) + float64(utimeDiffus)*1.0e-6 + sTimeElapsed := float64(stimeDiffs) + float64(stimeDiffus)*1.0e-6 + + return uTimeElapsed, sTimeElapsed +} + +// SetTCPUserTimeout sets the TCP user timeout on a connection's socket +func SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error { + tcpconn, ok := conn.(*net.TCPConn) + if !ok { + // not a TCP connection. exit early + return nil + } + rawConn, err := tcpconn.SyscallConn() + if err != nil { + return fmt.Errorf("error getting raw connection: %v", err) + } + err = rawConn.Control(func(fd uintptr) { + err = syscall.SetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT, int(timeout/time.Millisecond)) + }) + if err != nil { + return fmt.Errorf("error setting option on socket: %v", err) + } + + return nil +} + +// GetTCPUserTimeout gets the TCP user timeout on a connection's socket +func GetTCPUserTimeout(conn net.Conn) (opt int, err error) { + tcpconn, ok := conn.(*net.TCPConn) + if !ok { + err = fmt.Errorf("conn is not *net.TCPConn. got %T", conn) + return + } + rawConn, err := tcpconn.SyscallConn() + if err != nil { + err = fmt.Errorf("error getting raw connection: %v", err) + return + } + err = rawConn.Control(func(fd uintptr) { + opt, err = syscall.GetsockoptInt(int(fd), syscall.IPPROTO_TCP, unix.TCP_USER_TIMEOUT) + }) + if err != nil { + err = fmt.Errorf("error getting option on socket: %v", err) + return + } + + return +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go b/ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go new file mode 100644 index 0000000000..999f52cd75 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/syscall/syscall_nonlinux.go @@ -0,0 +1,77 @@ +//go:build !linux +// +build !linux + +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package syscall provides functionalities that grpc uses to get low-level +// operating system stats/info. +package syscall + +import ( + "net" + "sync" + "time" + + "google.golang.org/grpc/grpclog" +) + +var once sync.Once +var logger = grpclog.Component("core") + +func log() { + once.Do(func() { + logger.Info("CPU time info is unavailable on non-linux environments.") + }) +} + +// GetCPUTime returns the how much CPU time has passed since the start of this +// process. It always returns 0 under non-linux environments. +func GetCPUTime() int64 { + log() + return 0 +} + +// Rusage is an empty struct under non-linux environments. +type Rusage struct{} + +// GetRusage is a no-op function under non-linux environments. +func GetRusage() *Rusage { + log() + return nil +} + +// CPUTimeDiff returns the differences of user CPU time and system CPU time used +// between two Rusage structs. It a no-op function for non-linux environments. +func CPUTimeDiff(first *Rusage, latest *Rusage) (float64, float64) { + log() + return 0, 0 +} + +// SetTCPUserTimeout is a no-op function under non-linux environments. +func SetTCPUserTimeout(conn net.Conn, timeout time.Duration) error { + log() + return nil +} + +// GetTCPUserTimeout is a no-op function under non-linux environments. +// A negative return value indicates the operation is not supported +func GetTCPUserTimeout(conn net.Conn) (int, error) { + log() + return -1, nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go new file mode 100644 index 0000000000..070680edba --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/bdp_estimator.go @@ -0,0 +1,141 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "sync" + "time" +) + +const ( + // bdpLimit is the maximum value the flow control windows will be increased + // to. TCP typically limits this to 4MB, but some systems go up to 16MB. + // Since this is only a limit, it is safe to make it optimistic. + bdpLimit = (1 << 20) * 16 + // alpha is a constant factor used to keep a moving average + // of RTTs. + alpha = 0.9 + // If the current bdp sample is greater than or equal to + // our beta * our estimated bdp and the current bandwidth + // sample is the maximum bandwidth observed so far, we + // increase our bbp estimate by a factor of gamma. + beta = 0.66 + // To put our bdp to be smaller than or equal to twice the real BDP, + // we should multiply our current sample with 4/3, however to round things out + // we use 2 as the multiplication factor. + gamma = 2 +) + +// Adding arbitrary data to ping so that its ack can be identified. +// Easter-egg: what does the ping message say? +var bdpPing = &ping{data: [8]byte{2, 4, 16, 16, 9, 14, 7, 7}} + +type bdpEstimator struct { + // sentAt is the time when the ping was sent. + sentAt time.Time + + mu sync.Mutex + // bdp is the current bdp estimate. + bdp uint32 + // sample is the number of bytes received in one measurement cycle. + sample uint32 + // bwMax is the maximum bandwidth noted so far (bytes/sec). + bwMax float64 + // bool to keep track of the beginning of a new measurement cycle. + isSent bool + // Callback to update the window sizes. + updateFlowControl func(n uint32) + // sampleCount is the number of samples taken so far. + sampleCount uint64 + // round trip time (seconds) + rtt float64 +} + +// timesnap registers the time bdp ping was sent out so that +// network rtt can be calculated when its ack is received. +// It is called (by controller) when the bdpPing is +// being written on the wire. +func (b *bdpEstimator) timesnap(d [8]byte) { + if bdpPing.data != d { + return + } + b.sentAt = time.Now() +} + +// add adds bytes to the current sample for calculating bdp. +// It returns true only if a ping must be sent. This can be used +// by the caller (handleData) to make decision about batching +// a window update with it. +func (b *bdpEstimator) add(n uint32) bool { + b.mu.Lock() + defer b.mu.Unlock() + if b.bdp == bdpLimit { + return false + } + if !b.isSent { + b.isSent = true + b.sample = n + b.sentAt = time.Time{} + b.sampleCount++ + return true + } + b.sample += n + return false +} + +// calculate is called when an ack for a bdp ping is received. +// Here we calculate the current bdp and bandwidth sample and +// decide if the flow control windows should go up. +func (b *bdpEstimator) calculate(d [8]byte) { + // Check if the ping acked for was the bdp ping. + if bdpPing.data != d { + return + } + b.mu.Lock() + rttSample := time.Since(b.sentAt).Seconds() + if b.sampleCount < 10 { + // Bootstrap rtt with an average of first 10 rtt samples. + b.rtt += (rttSample - b.rtt) / float64(b.sampleCount) + } else { + // Heed to the recent past more. + b.rtt += (rttSample - b.rtt) * float64(alpha) + } + b.isSent = false + // The number of bytes accumulated so far in the sample is smaller + // than or equal to 1.5 times the real BDP on a saturated connection. + bwCurrent := float64(b.sample) / (b.rtt * float64(1.5)) + if bwCurrent > b.bwMax { + b.bwMax = bwCurrent + } + // If the current sample (which is smaller than or equal to the 1.5 times the real BDP) is + // greater than or equal to 2/3rd our perceived bdp AND this is the maximum bandwidth seen so far, we + // should update our perception of the network BDP. + if float64(b.sample) >= beta*float64(b.bdp) && bwCurrent == b.bwMax && b.bdp != bdpLimit { + sampleFloat := float64(b.sample) + b.bdp = uint32(gamma * sampleFloat) + if b.bdp > bdpLimit { + b.bdp = bdpLimit + } + bdp := b.bdp + b.mu.Unlock() + b.updateFlowControl(bdp) + return + } + b.mu.Unlock() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/controlbuf.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/controlbuf.go new file mode 100644 index 0000000000..aaa9c859a3 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/controlbuf.go @@ -0,0 +1,994 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bytes" + "errors" + "fmt" + "runtime" + "strconv" + "sync" + "sync/atomic" + + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/internal/grpcutil" + "google.golang.org/grpc/status" +) + +var updateHeaderTblSize = func(e *hpack.Encoder, v uint32) { + e.SetMaxDynamicTableSizeLimit(v) +} + +type itemNode struct { + it interface{} + next *itemNode +} + +type itemList struct { + head *itemNode + tail *itemNode +} + +func (il *itemList) enqueue(i interface{}) { + n := &itemNode{it: i} + if il.tail == nil { + il.head, il.tail = n, n + return + } + il.tail.next = n + il.tail = n +} + +// peek returns the first item in the list without removing it from the +// list. +func (il *itemList) peek() interface{} { + return il.head.it +} + +func (il *itemList) dequeue() interface{} { + if il.head == nil { + return nil + } + i := il.head.it + il.head = il.head.next + if il.head == nil { + il.tail = nil + } + return i +} + +func (il *itemList) dequeueAll() *itemNode { + h := il.head + il.head, il.tail = nil, nil + return h +} + +func (il *itemList) isEmpty() bool { + return il.head == nil +} + +// The following defines various control items which could flow through +// the control buffer of transport. They represent different aspects of +// control tasks, e.g., flow control, settings, streaming resetting, etc. + +// maxQueuedTransportResponseFrames is the most queued "transport response" +// frames we will buffer before preventing new reads from occurring on the +// transport. These are control frames sent in response to client requests, +// such as RST_STREAM due to bad headers or settings acks. +const maxQueuedTransportResponseFrames = 50 + +type cbItem interface { + isTransportResponseFrame() bool +} + +// registerStream is used to register an incoming stream with loopy writer. +type registerStream struct { + streamID uint32 + wq *writeQuota +} + +func (*registerStream) isTransportResponseFrame() bool { return false } + +// headerFrame is also used to register stream on the client-side. +type headerFrame struct { + streamID uint32 + hf []hpack.HeaderField + endStream bool // Valid on server side. + initStream func(uint32) error // Used only on the client side. + onWrite func() + wq *writeQuota // write quota for the stream created. + cleanup *cleanupStream // Valid on the server side. + onOrphaned func(error) // Valid on client-side +} + +func (h *headerFrame) isTransportResponseFrame() bool { + return h.cleanup != nil && h.cleanup.rst // Results in a RST_STREAM +} + +type cleanupStream struct { + streamID uint32 + rst bool + rstCode http2.ErrCode + onWrite func() +} + +func (c *cleanupStream) isTransportResponseFrame() bool { return c.rst } // Results in a RST_STREAM + +type earlyAbortStream struct { + httpStatus uint32 + streamID uint32 + contentSubtype string + status *status.Status + rst bool +} + +func (*earlyAbortStream) isTransportResponseFrame() bool { return false } + +type dataFrame struct { + streamID uint32 + endStream bool + h []byte + d []byte + // onEachWrite is called every time + // a part of d is written out. + onEachWrite func() +} + +func (*dataFrame) isTransportResponseFrame() bool { return false } + +type incomingWindowUpdate struct { + streamID uint32 + increment uint32 +} + +func (*incomingWindowUpdate) isTransportResponseFrame() bool { return false } + +type outgoingWindowUpdate struct { + streamID uint32 + increment uint32 +} + +func (*outgoingWindowUpdate) isTransportResponseFrame() bool { + return false // window updates are throttled by thresholds +} + +type incomingSettings struct { + ss []http2.Setting +} + +func (*incomingSettings) isTransportResponseFrame() bool { return true } // Results in a settings ACK + +type outgoingSettings struct { + ss []http2.Setting +} + +func (*outgoingSettings) isTransportResponseFrame() bool { return false } + +type incomingGoAway struct { +} + +func (*incomingGoAway) isTransportResponseFrame() bool { return false } + +type goAway struct { + code http2.ErrCode + debugData []byte + headsUp bool + closeConn error // if set, loopyWriter will exit, resulting in conn closure +} + +func (*goAway) isTransportResponseFrame() bool { return false } + +type ping struct { + ack bool + data [8]byte +} + +func (*ping) isTransportResponseFrame() bool { return true } + +type outFlowControlSizeRequest struct { + resp chan uint32 +} + +func (*outFlowControlSizeRequest) isTransportResponseFrame() bool { return false } + +// closeConnection is an instruction to tell the loopy writer to flush the +// framer and exit, which will cause the transport's connection to be closed +// (by the client or server). The transport itself will close after the reader +// encounters the EOF caused by the connection closure. +type closeConnection struct{} + +func (closeConnection) isTransportResponseFrame() bool { return false } + +type outStreamState int + +const ( + active outStreamState = iota + empty + waitingOnStreamQuota +) + +type outStream struct { + id uint32 + state outStreamState + itl *itemList + bytesOutStanding int + wq *writeQuota + + next *outStream + prev *outStream +} + +func (s *outStream) deleteSelf() { + if s.prev != nil { + s.prev.next = s.next + } + if s.next != nil { + s.next.prev = s.prev + } + s.next, s.prev = nil, nil +} + +type outStreamList struct { + // Following are sentinel objects that mark the + // beginning and end of the list. They do not + // contain any item lists. All valid objects are + // inserted in between them. + // This is needed so that an outStream object can + // deleteSelf() in O(1) time without knowing which + // list it belongs to. + head *outStream + tail *outStream +} + +func newOutStreamList() *outStreamList { + head, tail := new(outStream), new(outStream) + head.next = tail + tail.prev = head + return &outStreamList{ + head: head, + tail: tail, + } +} + +func (l *outStreamList) enqueue(s *outStream) { + e := l.tail.prev + e.next = s + s.prev = e + s.next = l.tail + l.tail.prev = s +} + +// remove from the beginning of the list. +func (l *outStreamList) dequeue() *outStream { + b := l.head.next + if b == l.tail { + return nil + } + b.deleteSelf() + return b +} + +// controlBuffer is a way to pass information to loopy. +// Information is passed as specific struct types called control frames. +// A control frame not only represents data, messages or headers to be sent out +// but can also be used to instruct loopy to update its internal state. +// It shouldn't be confused with an HTTP2 frame, although some of the control frames +// like dataFrame and headerFrame do go out on wire as HTTP2 frames. +type controlBuffer struct { + ch chan struct{} + done <-chan struct{} + mu sync.Mutex + consumerWaiting bool + list *itemList + err error + + // transportResponseFrames counts the number of queued items that represent + // the response of an action initiated by the peer. trfChan is created + // when transportResponseFrames >= maxQueuedTransportResponseFrames and is + // closed and nilled when transportResponseFrames drops below the + // threshold. Both fields are protected by mu. + transportResponseFrames int + trfChan atomic.Value // chan struct{} +} + +func newControlBuffer(done <-chan struct{}) *controlBuffer { + return &controlBuffer{ + ch: make(chan struct{}, 1), + list: &itemList{}, + done: done, + } +} + +// throttle blocks if there are too many incomingSettings/cleanupStreams in the +// controlbuf. +func (c *controlBuffer) throttle() { + ch, _ := c.trfChan.Load().(chan struct{}) + if ch != nil { + select { + case <-ch: + case <-c.done: + } + } +} + +func (c *controlBuffer) put(it cbItem) error { + _, err := c.executeAndPut(nil, it) + return err +} + +func (c *controlBuffer) executeAndPut(f func(it interface{}) bool, it cbItem) (bool, error) { + var wakeUp bool + c.mu.Lock() + if c.err != nil { + c.mu.Unlock() + return false, c.err + } + if f != nil { + if !f(it) { // f wasn't successful + c.mu.Unlock() + return false, nil + } + } + if c.consumerWaiting { + wakeUp = true + c.consumerWaiting = false + } + c.list.enqueue(it) + if it.isTransportResponseFrame() { + c.transportResponseFrames++ + if c.transportResponseFrames == maxQueuedTransportResponseFrames { + // We are adding the frame that puts us over the threshold; create + // a throttling channel. + c.trfChan.Store(make(chan struct{})) + } + } + c.mu.Unlock() + if wakeUp { + select { + case c.ch <- struct{}{}: + default: + } + } + return true, nil +} + +// Note argument f should never be nil. +func (c *controlBuffer) execute(f func(it interface{}) bool, it interface{}) (bool, error) { + c.mu.Lock() + if c.err != nil { + c.mu.Unlock() + return false, c.err + } + if !f(it) { // f wasn't successful + c.mu.Unlock() + return false, nil + } + c.mu.Unlock() + return true, nil +} + +func (c *controlBuffer) get(block bool) (interface{}, error) { + for { + c.mu.Lock() + if c.err != nil { + c.mu.Unlock() + return nil, c.err + } + if !c.list.isEmpty() { + h := c.list.dequeue().(cbItem) + if h.isTransportResponseFrame() { + if c.transportResponseFrames == maxQueuedTransportResponseFrames { + // We are removing the frame that put us over the + // threshold; close and clear the throttling channel. + ch := c.trfChan.Load().(chan struct{}) + close(ch) + c.trfChan.Store((chan struct{})(nil)) + } + c.transportResponseFrames-- + } + c.mu.Unlock() + return h, nil + } + if !block { + c.mu.Unlock() + return nil, nil + } + c.consumerWaiting = true + c.mu.Unlock() + select { + case <-c.ch: + case <-c.done: + return nil, errors.New("transport closed by client") + } + } +} + +func (c *controlBuffer) finish() { + c.mu.Lock() + if c.err != nil { + c.mu.Unlock() + return + } + c.err = ErrConnClosing + // There may be headers for streams in the control buffer. + // These streams need to be cleaned out since the transport + // is still not aware of these yet. + for head := c.list.dequeueAll(); head != nil; head = head.next { + hdr, ok := head.it.(*headerFrame) + if !ok { + continue + } + if hdr.onOrphaned != nil { // It will be nil on the server-side. + hdr.onOrphaned(ErrConnClosing) + } + } + // In case throttle() is currently in flight, it needs to be unblocked. + // Otherwise, the transport may not close, since the transport is closed by + // the reader encountering the connection error. + ch, _ := c.trfChan.Load().(chan struct{}) + if ch != nil { + close(ch) + } + c.trfChan.Store((chan struct{})(nil)) + c.mu.Unlock() +} + +type side int + +const ( + clientSide side = iota + serverSide +) + +// Loopy receives frames from the control buffer. +// Each frame is handled individually; most of the work done by loopy goes +// into handling data frames. Loopy maintains a queue of active streams, and each +// stream maintains a queue of data frames; as loopy receives data frames +// it gets added to the queue of the relevant stream. +// Loopy goes over this list of active streams by processing one node every iteration, +// thereby closely resemebling to a round-robin scheduling over all streams. While +// processing a stream, loopy writes out data bytes from this stream capped by the min +// of http2MaxFrameLen, connection-level flow control and stream-level flow control. +type loopyWriter struct { + side side + cbuf *controlBuffer + sendQuota uint32 + oiws uint32 // outbound initial window size. + // estdStreams is map of all established streams that are not cleaned-up yet. + // On client-side, this is all streams whose headers were sent out. + // On server-side, this is all streams whose headers were received. + estdStreams map[uint32]*outStream // Established streams. + // activeStreams is a linked-list of all streams that have data to send and some + // stream-level flow control quota. + // Each of these streams internally have a list of data items(and perhaps trailers + // on the server-side) to be sent out. + activeStreams *outStreamList + framer *framer + hBuf *bytes.Buffer // The buffer for HPACK encoding. + hEnc *hpack.Encoder // HPACK encoder. + bdpEst *bdpEstimator + draining bool + + // Side-specific handlers + ssGoAwayHandler func(*goAway) (bool, error) +} + +func newLoopyWriter(s side, fr *framer, cbuf *controlBuffer, bdpEst *bdpEstimator) *loopyWriter { + var buf bytes.Buffer + l := &loopyWriter{ + side: s, + cbuf: cbuf, + sendQuota: defaultWindowSize, + oiws: defaultWindowSize, + estdStreams: make(map[uint32]*outStream), + activeStreams: newOutStreamList(), + framer: fr, + hBuf: &buf, + hEnc: hpack.NewEncoder(&buf), + bdpEst: bdpEst, + } + return l +} + +const minBatchSize = 1000 + +// run should be run in a separate goroutine. +// It reads control frames from controlBuf and processes them by: +// 1. Updating loopy's internal state, or/and +// 2. Writing out HTTP2 frames on the wire. +// +// Loopy keeps all active streams with data to send in a linked-list. +// All streams in the activeStreams linked-list must have both: +// 1. Data to send, and +// 2. Stream level flow control quota available. +// +// In each iteration of run loop, other than processing the incoming control +// frame, loopy calls processData, which processes one node from the activeStreams linked-list. +// This results in writing of HTTP2 frames into an underlying write buffer. +// When there's no more control frames to read from controlBuf, loopy flushes the write buffer. +// As an optimization, to increase the batch size for each flush, loopy yields the processor, once +// if the batch size is too low to give stream goroutines a chance to fill it up. +func (l *loopyWriter) run() (err error) { + for { + it, err := l.cbuf.get(true) + if err != nil { + return err + } + if err = l.handle(it); err != nil { + return err + } + if _, err = l.processData(); err != nil { + return err + } + gosched := true + hasdata: + for { + it, err := l.cbuf.get(false) + if err != nil { + return err + } + if it != nil { + if err = l.handle(it); err != nil { + return err + } + if _, err = l.processData(); err != nil { + return err + } + continue hasdata + } + isEmpty, err := l.processData() + if err != nil { + return err + } + if !isEmpty { + continue hasdata + } + if gosched { + gosched = false + if l.framer.writer.offset < minBatchSize { + runtime.Gosched() + continue hasdata + } + } + l.framer.writer.Flush() + break hasdata + } + } +} + +func (l *loopyWriter) outgoingWindowUpdateHandler(w *outgoingWindowUpdate) error { + return l.framer.fr.WriteWindowUpdate(w.streamID, w.increment) +} + +func (l *loopyWriter) incomingWindowUpdateHandler(w *incomingWindowUpdate) error { + // Otherwise update the quota. + if w.streamID == 0 { + l.sendQuota += w.increment + return nil + } + // Find the stream and update it. + if str, ok := l.estdStreams[w.streamID]; ok { + str.bytesOutStanding -= int(w.increment) + if strQuota := int(l.oiws) - str.bytesOutStanding; strQuota > 0 && str.state == waitingOnStreamQuota { + str.state = active + l.activeStreams.enqueue(str) + return nil + } + } + return nil +} + +func (l *loopyWriter) outgoingSettingsHandler(s *outgoingSettings) error { + return l.framer.fr.WriteSettings(s.ss...) +} + +func (l *loopyWriter) incomingSettingsHandler(s *incomingSettings) error { + if err := l.applySettings(s.ss); err != nil { + return err + } + return l.framer.fr.WriteSettingsAck() +} + +func (l *loopyWriter) registerStreamHandler(h *registerStream) error { + str := &outStream{ + id: h.streamID, + state: empty, + itl: &itemList{}, + wq: h.wq, + } + l.estdStreams[h.streamID] = str + return nil +} + +func (l *loopyWriter) headerHandler(h *headerFrame) error { + if l.side == serverSide { + str, ok := l.estdStreams[h.streamID] + if !ok { + if logger.V(logLevel) { + logger.Warningf("transport: loopy doesn't recognize the stream: %d", h.streamID) + } + return nil + } + // Case 1.A: Server is responding back with headers. + if !h.endStream { + return l.writeHeader(h.streamID, h.endStream, h.hf, h.onWrite) + } + // else: Case 1.B: Server wants to close stream. + + if str.state != empty { // either active or waiting on stream quota. + // add it str's list of items. + str.itl.enqueue(h) + return nil + } + if err := l.writeHeader(h.streamID, h.endStream, h.hf, h.onWrite); err != nil { + return err + } + return l.cleanupStreamHandler(h.cleanup) + } + // Case 2: Client wants to originate stream. + str := &outStream{ + id: h.streamID, + state: empty, + itl: &itemList{}, + wq: h.wq, + } + str.itl.enqueue(h) + return l.originateStream(str) +} + +func (l *loopyWriter) originateStream(str *outStream) error { + hdr := str.itl.dequeue().(*headerFrame) + if err := hdr.initStream(str.id); err != nil { + if err == errStreamDrain { // errStreamDrain need not close transport + return nil + } + return err + } + if err := l.writeHeader(str.id, hdr.endStream, hdr.hf, hdr.onWrite); err != nil { + return err + } + l.estdStreams[str.id] = str + return nil +} + +func (l *loopyWriter) writeHeader(streamID uint32, endStream bool, hf []hpack.HeaderField, onWrite func()) error { + if onWrite != nil { + onWrite() + } + l.hBuf.Reset() + for _, f := range hf { + if err := l.hEnc.WriteField(f); err != nil { + if logger.V(logLevel) { + logger.Warningf("transport: loopyWriter.writeHeader encountered error while encoding headers: %v", err) + } + } + } + var ( + err error + endHeaders, first bool + ) + first = true + for !endHeaders { + size := l.hBuf.Len() + if size > http2MaxFrameLen { + size = http2MaxFrameLen + } else { + endHeaders = true + } + if first { + first = false + err = l.framer.fr.WriteHeaders(http2.HeadersFrameParam{ + StreamID: streamID, + BlockFragment: l.hBuf.Next(size), + EndStream: endStream, + EndHeaders: endHeaders, + }) + } else { + err = l.framer.fr.WriteContinuation( + streamID, + endHeaders, + l.hBuf.Next(size), + ) + } + if err != nil { + return err + } + } + return nil +} + +func (l *loopyWriter) preprocessData(df *dataFrame) error { + str, ok := l.estdStreams[df.streamID] + if !ok { + return nil + } + // If we got data for a stream it means that + // stream was originated and the headers were sent out. + str.itl.enqueue(df) + if str.state == empty { + str.state = active + l.activeStreams.enqueue(str) + } + return nil +} + +func (l *loopyWriter) pingHandler(p *ping) error { + if !p.ack { + l.bdpEst.timesnap(p.data) + } + return l.framer.fr.WritePing(p.ack, p.data) + +} + +func (l *loopyWriter) outFlowControlSizeRequestHandler(o *outFlowControlSizeRequest) error { + o.resp <- l.sendQuota + return nil +} + +func (l *loopyWriter) cleanupStreamHandler(c *cleanupStream) error { + c.onWrite() + if str, ok := l.estdStreams[c.streamID]; ok { + // On the server side it could be a trailers-only response or + // a RST_STREAM before stream initialization thus the stream might + // not be established yet. + delete(l.estdStreams, c.streamID) + str.deleteSelf() + } + if c.rst { // If RST_STREAM needs to be sent. + if err := l.framer.fr.WriteRSTStream(c.streamID, c.rstCode); err != nil { + return err + } + } + if l.side == clientSide && l.draining && len(l.estdStreams) == 0 { + return errors.New("finished processing active streams while in draining mode") + } + return nil +} + +func (l *loopyWriter) earlyAbortStreamHandler(eas *earlyAbortStream) error { + if l.side == clientSide { + return errors.New("earlyAbortStream not handled on client") + } + // In case the caller forgets to set the http status, default to 200. + if eas.httpStatus == 0 { + eas.httpStatus = 200 + } + headerFields := []hpack.HeaderField{ + {Name: ":status", Value: strconv.Itoa(int(eas.httpStatus))}, + {Name: "content-type", Value: grpcutil.ContentType(eas.contentSubtype)}, + {Name: "grpc-status", Value: strconv.Itoa(int(eas.status.Code()))}, + {Name: "grpc-message", Value: encodeGrpcMessage(eas.status.Message())}, + } + + if err := l.writeHeader(eas.streamID, true, headerFields, nil); err != nil { + return err + } + if eas.rst { + if err := l.framer.fr.WriteRSTStream(eas.streamID, http2.ErrCodeNo); err != nil { + return err + } + } + return nil +} + +func (l *loopyWriter) incomingGoAwayHandler(*incomingGoAway) error { + if l.side == clientSide { + l.draining = true + if len(l.estdStreams) == 0 { + return errors.New("received GOAWAY with no active streams") + } + } + return nil +} + +func (l *loopyWriter) goAwayHandler(g *goAway) error { + // Handling of outgoing GoAway is very specific to side. + if l.ssGoAwayHandler != nil { + draining, err := l.ssGoAwayHandler(g) + if err != nil { + return err + } + l.draining = draining + } + return nil +} + +func (l *loopyWriter) closeConnectionHandler() error { + l.framer.writer.Flush() + // Exit loopyWriter entirely by returning an error here. This will lead to + // the transport closing the connection, and, ultimately, transport + // closure. + return ErrConnClosing +} + +func (l *loopyWriter) handle(i interface{}) error { + switch i := i.(type) { + case *incomingWindowUpdate: + return l.incomingWindowUpdateHandler(i) + case *outgoingWindowUpdate: + return l.outgoingWindowUpdateHandler(i) + case *incomingSettings: + return l.incomingSettingsHandler(i) + case *outgoingSettings: + return l.outgoingSettingsHandler(i) + case *headerFrame: + return l.headerHandler(i) + case *registerStream: + return l.registerStreamHandler(i) + case *cleanupStream: + return l.cleanupStreamHandler(i) + case *earlyAbortStream: + return l.earlyAbortStreamHandler(i) + case *incomingGoAway: + return l.incomingGoAwayHandler(i) + case *dataFrame: + return l.preprocessData(i) + case *ping: + return l.pingHandler(i) + case *goAway: + return l.goAwayHandler(i) + case *outFlowControlSizeRequest: + return l.outFlowControlSizeRequestHandler(i) + case closeConnection: + return l.closeConnectionHandler() + default: + return fmt.Errorf("transport: unknown control message type %T", i) + } +} + +func (l *loopyWriter) applySettings(ss []http2.Setting) error { + for _, s := range ss { + switch s.ID { + case http2.SettingInitialWindowSize: + o := l.oiws + l.oiws = s.Val + if o < l.oiws { + // If the new limit is greater make all depleted streams active. + for _, stream := range l.estdStreams { + if stream.state == waitingOnStreamQuota { + stream.state = active + l.activeStreams.enqueue(stream) + } + } + } + case http2.SettingHeaderTableSize: + updateHeaderTblSize(l.hEnc, s.Val) + } + } + return nil +} + +// processData removes the first stream from active streams, writes out at most 16KB +// of its data and then puts it at the end of activeStreams if there's still more data +// to be sent and stream has some stream-level flow control. +func (l *loopyWriter) processData() (bool, error) { + if l.sendQuota == 0 { + return true, nil + } + str := l.activeStreams.dequeue() // Remove the first stream. + if str == nil { + return true, nil + } + dataItem := str.itl.peek().(*dataFrame) // Peek at the first data item this stream. + // A data item is represented by a dataFrame, since it later translates into + // multiple HTTP2 data frames. + // Every dataFrame has two buffers; h that keeps grpc-message header and d that is actual data. + // As an optimization to keep wire traffic low, data from d is copied to h to make as big as the + // maximum possible HTTP2 frame size. + + if len(dataItem.h) == 0 && len(dataItem.d) == 0 { // Empty data frame + // Client sends out empty data frame with endStream = true + if err := l.framer.fr.WriteData(dataItem.streamID, dataItem.endStream, nil); err != nil { + return false, err + } + str.itl.dequeue() // remove the empty data item from stream + if str.itl.isEmpty() { + str.state = empty + } else if trailer, ok := str.itl.peek().(*headerFrame); ok { // the next item is trailers. + if err := l.writeHeader(trailer.streamID, trailer.endStream, trailer.hf, trailer.onWrite); err != nil { + return false, err + } + if err := l.cleanupStreamHandler(trailer.cleanup); err != nil { + return false, nil + } + } else { + l.activeStreams.enqueue(str) + } + return false, nil + } + var ( + buf []byte + ) + // Figure out the maximum size we can send + maxSize := http2MaxFrameLen + if strQuota := int(l.oiws) - str.bytesOutStanding; strQuota <= 0 { // stream-level flow control. + str.state = waitingOnStreamQuota + return false, nil + } else if maxSize > strQuota { + maxSize = strQuota + } + if maxSize > int(l.sendQuota) { // connection-level flow control. + maxSize = int(l.sendQuota) + } + // Compute how much of the header and data we can send within quota and max frame length + hSize := min(maxSize, len(dataItem.h)) + dSize := min(maxSize-hSize, len(dataItem.d)) + if hSize != 0 { + if dSize == 0 { + buf = dataItem.h + } else { + // We can add some data to grpc message header to distribute bytes more equally across frames. + // Copy on the stack to avoid generating garbage + var localBuf [http2MaxFrameLen]byte + copy(localBuf[:hSize], dataItem.h) + copy(localBuf[hSize:], dataItem.d[:dSize]) + buf = localBuf[:hSize+dSize] + } + } else { + buf = dataItem.d + } + + size := hSize + dSize + + // Now that outgoing flow controls are checked we can replenish str's write quota + str.wq.replenish(size) + var endStream bool + // If this is the last data message on this stream and all of it can be written in this iteration. + if dataItem.endStream && len(dataItem.h)+len(dataItem.d) <= size { + endStream = true + } + if dataItem.onEachWrite != nil { + dataItem.onEachWrite() + } + if err := l.framer.fr.WriteData(dataItem.streamID, endStream, buf[:size]); err != nil { + return false, err + } + str.bytesOutStanding += size + l.sendQuota -= uint32(size) + dataItem.h = dataItem.h[hSize:] + dataItem.d = dataItem.d[dSize:] + + if len(dataItem.h) == 0 && len(dataItem.d) == 0 { // All the data from that message was written out. + str.itl.dequeue() + } + if str.itl.isEmpty() { + str.state = empty + } else if trailer, ok := str.itl.peek().(*headerFrame); ok { // The next item is trailers. + if err := l.writeHeader(trailer.streamID, trailer.endStream, trailer.hf, trailer.onWrite); err != nil { + return false, err + } + if err := l.cleanupStreamHandler(trailer.cleanup); err != nil { + return false, err + } + } else if int(l.oiws)-str.bytesOutStanding <= 0 { // Ran out of stream quota. + str.state = waitingOnStreamQuota + } else { // Otherwise add it back to the list of active streams. + l.activeStreams.enqueue(str) + } + return false, nil +} + +func min(a, b int) int { + if a < b { + return a + } + return b +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/defaults.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/defaults.go new file mode 100644 index 0000000000..9fa306b2e0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/defaults.go @@ -0,0 +1,49 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "math" + "time" +) + +const ( + // The default value of flow control window size in HTTP2 spec. + defaultWindowSize = 65535 + // The initial window size for flow control. + initialWindowSize = defaultWindowSize // for an RPC + infinity = time.Duration(math.MaxInt64) + defaultClientKeepaliveTime = infinity + defaultClientKeepaliveTimeout = 20 * time.Second + defaultMaxStreamsClient = 100 + defaultMaxConnectionIdle = infinity + defaultMaxConnectionAge = infinity + defaultMaxConnectionAgeGrace = infinity + defaultServerKeepaliveTime = 2 * time.Hour + defaultServerKeepaliveTimeout = 20 * time.Second + defaultKeepalivePolicyMinTime = 5 * time.Minute + // max window limit set by HTTP2 Specs. + maxWindowSize = math.MaxInt32 + // defaultWriteQuota is the default value for number of data + // bytes that each stream can schedule before some of it being + // flushed out. + defaultWriteQuota = 64 * 1024 + defaultClientMaxHeaderListSize = uint32(16 << 20) + defaultServerMaxHeaderListSize = uint32(16 << 20) +) diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go new file mode 100644 index 0000000000..97198c5158 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/flowcontrol.go @@ -0,0 +1,215 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "fmt" + "math" + "sync" + "sync/atomic" +) + +// writeQuota is a soft limit on the amount of data a stream can +// schedule before some of it is written out. +type writeQuota struct { + quota int32 + // get waits on read from when quota goes less than or equal to zero. + // replenish writes on it when quota goes positive again. + ch chan struct{} + // done is triggered in error case. + done <-chan struct{} + // replenish is called by loopyWriter to give quota back to. + // It is implemented as a field so that it can be updated + // by tests. + replenish func(n int) +} + +func newWriteQuota(sz int32, done <-chan struct{}) *writeQuota { + w := &writeQuota{ + quota: sz, + ch: make(chan struct{}, 1), + done: done, + } + w.replenish = w.realReplenish + return w +} + +func (w *writeQuota) get(sz int32) error { + for { + if atomic.LoadInt32(&w.quota) > 0 { + atomic.AddInt32(&w.quota, -sz) + return nil + } + select { + case <-w.ch: + continue + case <-w.done: + return errStreamDone + } + } +} + +func (w *writeQuota) realReplenish(n int) { + sz := int32(n) + a := atomic.AddInt32(&w.quota, sz) + b := a - sz + if b <= 0 && a > 0 { + select { + case w.ch <- struct{}{}: + default: + } + } +} + +type trInFlow struct { + limit uint32 + unacked uint32 + effectiveWindowSize uint32 +} + +func (f *trInFlow) newLimit(n uint32) uint32 { + d := n - f.limit + f.limit = n + f.updateEffectiveWindowSize() + return d +} + +func (f *trInFlow) onData(n uint32) uint32 { + f.unacked += n + if f.unacked >= f.limit/4 { + w := f.unacked + f.unacked = 0 + f.updateEffectiveWindowSize() + return w + } + f.updateEffectiveWindowSize() + return 0 +} + +func (f *trInFlow) reset() uint32 { + w := f.unacked + f.unacked = 0 + f.updateEffectiveWindowSize() + return w +} + +func (f *trInFlow) updateEffectiveWindowSize() { + atomic.StoreUint32(&f.effectiveWindowSize, f.limit-f.unacked) +} + +func (f *trInFlow) getSize() uint32 { + return atomic.LoadUint32(&f.effectiveWindowSize) +} + +// TODO(mmukhi): Simplify this code. +// inFlow deals with inbound flow control +type inFlow struct { + mu sync.Mutex + // The inbound flow control limit for pending data. + limit uint32 + // pendingData is the overall data which have been received but not been + // consumed by applications. + pendingData uint32 + // The amount of data the application has consumed but grpc has not sent + // window update for them. Used to reduce window update frequency. + pendingUpdate uint32 + // delta is the extra window update given by receiver when an application + // is reading data bigger in size than the inFlow limit. + delta uint32 +} + +// newLimit updates the inflow window to a new value n. +// It assumes that n is always greater than the old limit. +func (f *inFlow) newLimit(n uint32) { + f.mu.Lock() + f.limit = n + f.mu.Unlock() +} + +func (f *inFlow) maybeAdjust(n uint32) uint32 { + if n > uint32(math.MaxInt32) { + n = uint32(math.MaxInt32) + } + f.mu.Lock() + defer f.mu.Unlock() + // estSenderQuota is the receiver's view of the maximum number of bytes the sender + // can send without a window update. + estSenderQuota := int32(f.limit - (f.pendingData + f.pendingUpdate)) + // estUntransmittedData is the maximum number of bytes the sends might not have put + // on the wire yet. A value of 0 or less means that we have already received all or + // more bytes than the application is requesting to read. + estUntransmittedData := int32(n - f.pendingData) // Casting into int32 since it could be negative. + // This implies that unless we send a window update, the sender won't be able to send all the bytes + // for this message. Therefore we must send an update over the limit since there's an active read + // request from the application. + if estUntransmittedData > estSenderQuota { + // Sender's window shouldn't go more than 2^31 - 1 as specified in the HTTP spec. + if f.limit+n > maxWindowSize { + f.delta = maxWindowSize - f.limit + } else { + // Send a window update for the whole message and not just the difference between + // estUntransmittedData and estSenderQuota. This will be helpful in case the message + // is padded; We will fallback on the current available window(at least a 1/4th of the limit). + f.delta = n + } + return f.delta + } + return 0 +} + +// onData is invoked when some data frame is received. It updates pendingData. +func (f *inFlow) onData(n uint32) error { + f.mu.Lock() + f.pendingData += n + if f.pendingData+f.pendingUpdate > f.limit+f.delta { + limit := f.limit + rcvd := f.pendingData + f.pendingUpdate + f.mu.Unlock() + return fmt.Errorf("received %d-bytes data exceeding the limit %d bytes", rcvd, limit) + } + f.mu.Unlock() + return nil +} + +// onRead is invoked when the application reads the data. It returns the window size +// to be sent to the peer. +func (f *inFlow) onRead(n uint32) uint32 { + f.mu.Lock() + if f.pendingData == 0 { + f.mu.Unlock() + return 0 + } + f.pendingData -= n + if n > f.delta { + n -= f.delta + f.delta = 0 + } else { + f.delta -= n + n = 0 + } + f.pendingUpdate += n + if f.pendingUpdate >= f.limit/4 { + wu := f.pendingUpdate + f.pendingUpdate = 0 + f.mu.Unlock() + return wu + } + f.mu.Unlock() + return 0 +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/handler_server.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/handler_server.go new file mode 100644 index 0000000000..ebe8bfe330 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/handler_server.go @@ -0,0 +1,477 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// This file is the implementation of a gRPC server using HTTP/2 which +// uses the standard Go http2 Server implementation (via the +// http.Handler interface), rather than speaking low-level HTTP/2 +// frames itself. It is the implementation of *grpc.Server.ServeHTTP. + +package transport + +import ( + "bytes" + "context" + "errors" + "fmt" + "io" + "net" + "net/http" + "strings" + "sync" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/http2" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/grpcutil" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" +) + +// NewServerHandlerTransport returns a ServerTransport handling gRPC from +// inside an http.Handler, or writes an HTTP error to w and returns an error. +// It requires that the http Server supports HTTP/2. +func NewServerHandlerTransport(w http.ResponseWriter, r *http.Request, stats []stats.Handler) (ServerTransport, error) { + if r.ProtoMajor != 2 { + msg := "gRPC requires HTTP/2" + http.Error(w, msg, http.StatusBadRequest) + return nil, errors.New(msg) + } + if r.Method != "POST" { + msg := fmt.Sprintf("invalid gRPC request method %q", r.Method) + http.Error(w, msg, http.StatusBadRequest) + return nil, errors.New(msg) + } + contentType := r.Header.Get("Content-Type") + // TODO: do we assume contentType is lowercase? we did before + contentSubtype, validContentType := grpcutil.ContentSubtype(contentType) + if !validContentType { + msg := fmt.Sprintf("invalid gRPC request content-type %q", contentType) + http.Error(w, msg, http.StatusBadRequest) + return nil, errors.New(msg) + } + if _, ok := w.(http.Flusher); !ok { + msg := "gRPC requires a ResponseWriter supporting http.Flusher" + http.Error(w, msg, http.StatusInternalServerError) + return nil, errors.New(msg) + } + + st := &serverHandlerTransport{ + rw: w, + req: r, + closedCh: make(chan struct{}), + writes: make(chan func()), + contentType: contentType, + contentSubtype: contentSubtype, + stats: stats, + } + + if v := r.Header.Get("grpc-timeout"); v != "" { + to, err := decodeTimeout(v) + if err != nil { + msg := fmt.Sprintf("malformed time-out: %v", err) + http.Error(w, msg, http.StatusBadRequest) + return nil, status.Error(codes.Internal, msg) + } + st.timeoutSet = true + st.timeout = to + } + + metakv := []string{"content-type", contentType} + if r.Host != "" { + metakv = append(metakv, ":authority", r.Host) + } + for k, vv := range r.Header { + k = strings.ToLower(k) + if isReservedHeader(k) && !isWhitelistedHeader(k) { + continue + } + for _, v := range vv { + v, err := decodeMetadataHeader(k, v) + if err != nil { + msg := fmt.Sprintf("malformed binary metadata %q in header %q: %v", v, k, err) + http.Error(w, msg, http.StatusBadRequest) + return nil, status.Error(codes.Internal, msg) + } + metakv = append(metakv, k, v) + } + } + st.headerMD = metadata.Pairs(metakv...) + + return st, nil +} + +// serverHandlerTransport is an implementation of ServerTransport +// which replies to exactly one gRPC request (exactly one HTTP request), +// using the net/http.Handler interface. This http.Handler is guaranteed +// at this point to be speaking over HTTP/2, so it's able to speak valid +// gRPC. +type serverHandlerTransport struct { + rw http.ResponseWriter + req *http.Request + timeoutSet bool + timeout time.Duration + + headerMD metadata.MD + + closeOnce sync.Once + closedCh chan struct{} // closed on Close + + // writes is a channel of code to run serialized in the + // ServeHTTP (HandleStreams) goroutine. The channel is closed + // when WriteStatus is called. + writes chan func() + + // block concurrent WriteStatus calls + // e.g. grpc/(*serverStream).SendMsg/RecvMsg + writeStatusMu sync.Mutex + + // we just mirror the request content-type + contentType string + // we store both contentType and contentSubtype so we don't keep recreating them + // TODO make sure this is consistent across handler_server and http2_server + contentSubtype string + + stats []stats.Handler +} + +func (ht *serverHandlerTransport) Close(err error) { + ht.closeOnce.Do(func() { + if logger.V(logLevel) { + logger.Infof("Closing serverHandlerTransport: %v", err) + } + close(ht.closedCh) + }) +} + +func (ht *serverHandlerTransport) RemoteAddr() net.Addr { return strAddr(ht.req.RemoteAddr) } + +// strAddr is a net.Addr backed by either a TCP "ip:port" string, or +// the empty string if unknown. +type strAddr string + +func (a strAddr) Network() string { + if a != "" { + // Per the documentation on net/http.Request.RemoteAddr, if this is + // set, it's set to the IP:port of the peer (hence, TCP): + // https://golang.org/pkg/net/http/#Request + // + // If we want to support Unix sockets later, we can + // add our own grpc-specific convention within the + // grpc codebase to set RemoteAddr to a different + // format, or probably better: we can attach it to the + // context and use that from serverHandlerTransport.RemoteAddr. + return "tcp" + } + return "" +} + +func (a strAddr) String() string { return string(a) } + +// do runs fn in the ServeHTTP goroutine. +func (ht *serverHandlerTransport) do(fn func()) error { + select { + case <-ht.closedCh: + return ErrConnClosing + case ht.writes <- fn: + return nil + } +} + +func (ht *serverHandlerTransport) WriteStatus(s *Stream, st *status.Status) error { + ht.writeStatusMu.Lock() + defer ht.writeStatusMu.Unlock() + + headersWritten := s.updateHeaderSent() + err := ht.do(func() { + if !headersWritten { + ht.writePendingHeaders(s) + } + + // And flush, in case no header or body has been sent yet. + // This forces a separation of headers and trailers if this is the + // first call (for example, in end2end tests's TestNoService). + ht.rw.(http.Flusher).Flush() + + h := ht.rw.Header() + h.Set("Grpc-Status", fmt.Sprintf("%d", st.Code())) + if m := st.Message(); m != "" { + h.Set("Grpc-Message", encodeGrpcMessage(m)) + } + + if p := st.Proto(); p != nil && len(p.Details) > 0 { + stBytes, err := proto.Marshal(p) + if err != nil { + // TODO: return error instead, when callers are able to handle it. + panic(err) + } + + h.Set("Grpc-Status-Details-Bin", encodeBinHeader(stBytes)) + } + + if md := s.Trailer(); len(md) > 0 { + for k, vv := range md { + // Clients don't tolerate reading restricted headers after some non restricted ones were sent. + if isReservedHeader(k) { + continue + } + for _, v := range vv { + // http2 ResponseWriter mechanism to send undeclared Trailers after + // the headers have possibly been written. + h.Add(http2.TrailerPrefix+k, encodeMetadataHeader(k, v)) + } + } + } + }) + + if err == nil { // transport has not been closed + // Note: The trailer fields are compressed with hpack after this call returns. + // No WireLength field is set here. + for _, sh := range ht.stats { + sh.HandleRPC(s.Context(), &stats.OutTrailer{ + Trailer: s.trailer.Copy(), + }) + } + } + ht.Close(errors.New("finished writing status")) + return err +} + +// writePendingHeaders sets common and custom headers on the first +// write call (Write, WriteHeader, or WriteStatus) +func (ht *serverHandlerTransport) writePendingHeaders(s *Stream) { + ht.writeCommonHeaders(s) + ht.writeCustomHeaders(s) +} + +// writeCommonHeaders sets common headers on the first write +// call (Write, WriteHeader, or WriteStatus). +func (ht *serverHandlerTransport) writeCommonHeaders(s *Stream) { + h := ht.rw.Header() + h["Date"] = nil // suppress Date to make tests happy; TODO: restore + h.Set("Content-Type", ht.contentType) + + // Predeclare trailers we'll set later in WriteStatus (after the body). + // This is a SHOULD in the HTTP RFC, and the way you add (known) + // Trailers per the net/http.ResponseWriter contract. + // See https://golang.org/pkg/net/http/#ResponseWriter + // and https://golang.org/pkg/net/http/#example_ResponseWriter_trailers + h.Add("Trailer", "Grpc-Status") + h.Add("Trailer", "Grpc-Message") + h.Add("Trailer", "Grpc-Status-Details-Bin") + + if s.sendCompress != "" { + h.Set("Grpc-Encoding", s.sendCompress) + } +} + +// writeCustomHeaders sets custom headers set on the stream via SetHeader +// on the first write call (Write, WriteHeader, or WriteStatus). +func (ht *serverHandlerTransport) writeCustomHeaders(s *Stream) { + h := ht.rw.Header() + + s.hdrMu.Lock() + for k, vv := range s.header { + if isReservedHeader(k) { + continue + } + for _, v := range vv { + h.Add(k, encodeMetadataHeader(k, v)) + } + } + + s.hdrMu.Unlock() +} + +func (ht *serverHandlerTransport) Write(s *Stream, hdr []byte, data []byte, opts *Options) error { + headersWritten := s.updateHeaderSent() + return ht.do(func() { + if !headersWritten { + ht.writePendingHeaders(s) + } + ht.rw.Write(hdr) + ht.rw.Write(data) + ht.rw.(http.Flusher).Flush() + }) +} + +func (ht *serverHandlerTransport) WriteHeader(s *Stream, md metadata.MD) error { + if err := s.SetHeader(md); err != nil { + return err + } + + headersWritten := s.updateHeaderSent() + err := ht.do(func() { + if !headersWritten { + ht.writePendingHeaders(s) + } + + ht.rw.WriteHeader(200) + ht.rw.(http.Flusher).Flush() + }) + + if err == nil { + for _, sh := range ht.stats { + // Note: The header fields are compressed with hpack after this call returns. + // No WireLength field is set here. + sh.HandleRPC(s.Context(), &stats.OutHeader{ + Header: md.Copy(), + Compression: s.sendCompress, + }) + } + } + return err +} + +func (ht *serverHandlerTransport) HandleStreams(startStream func(*Stream), traceCtx func(context.Context, string) context.Context) { + // With this transport type there will be exactly 1 stream: this HTTP request. + + ctx := ht.req.Context() + var cancel context.CancelFunc + if ht.timeoutSet { + ctx, cancel = context.WithTimeout(ctx, ht.timeout) + } else { + ctx, cancel = context.WithCancel(ctx) + } + + // requestOver is closed when the status has been written via WriteStatus. + requestOver := make(chan struct{}) + go func() { + select { + case <-requestOver: + case <-ht.closedCh: + case <-ht.req.Context().Done(): + } + cancel() + ht.Close(errors.New("request is done processing")) + }() + + req := ht.req + + s := &Stream{ + id: 0, // irrelevant + requestRead: func(int) {}, + cancel: cancel, + buf: newRecvBuffer(), + st: ht, + method: req.URL.Path, + recvCompress: req.Header.Get("grpc-encoding"), + contentSubtype: ht.contentSubtype, + } + pr := &peer.Peer{ + Addr: ht.RemoteAddr(), + } + if req.TLS != nil { + pr.AuthInfo = credentials.TLSInfo{State: *req.TLS, CommonAuthInfo: credentials.CommonAuthInfo{SecurityLevel: credentials.PrivacyAndIntegrity}} + } + ctx = metadata.NewIncomingContext(ctx, ht.headerMD) + s.ctx = peer.NewContext(ctx, pr) + for _, sh := range ht.stats { + s.ctx = sh.TagRPC(s.ctx, &stats.RPCTagInfo{FullMethodName: s.method}) + inHeader := &stats.InHeader{ + FullMethod: s.method, + RemoteAddr: ht.RemoteAddr(), + Compression: s.recvCompress, + } + sh.HandleRPC(s.ctx, inHeader) + } + s.trReader = &transportReader{ + reader: &recvBufferReader{ctx: s.ctx, ctxDone: s.ctx.Done(), recv: s.buf, freeBuffer: func(*bytes.Buffer) {}}, + windowHandler: func(int) {}, + } + + // readerDone is closed when the Body.Read-ing goroutine exits. + readerDone := make(chan struct{}) + go func() { + defer close(readerDone) + + // TODO: minimize garbage, optimize recvBuffer code/ownership + const readSize = 8196 + for buf := make([]byte, readSize); ; { + n, err := req.Body.Read(buf) + if n > 0 { + s.buf.put(recvMsg{buffer: bytes.NewBuffer(buf[:n:n])}) + buf = buf[n:] + } + if err != nil { + s.buf.put(recvMsg{err: mapRecvMsgError(err)}) + return + } + if len(buf) == 0 { + buf = make([]byte, readSize) + } + } + }() + + // startStream is provided by the *grpc.Server's serveStreams. + // It starts a goroutine serving s and exits immediately. + // The goroutine that is started is the one that then calls + // into ht, calling WriteHeader, Write, WriteStatus, Close, etc. + startStream(s) + + ht.runStream() + close(requestOver) + + // Wait for reading goroutine to finish. + req.Body.Close() + <-readerDone +} + +func (ht *serverHandlerTransport) runStream() { + for { + select { + case fn := <-ht.writes: + fn() + case <-ht.closedCh: + return + } + } +} + +func (ht *serverHandlerTransport) IncrMsgSent() {} + +func (ht *serverHandlerTransport) IncrMsgRecv() {} + +func (ht *serverHandlerTransport) Drain() { + panic("Drain() is not implemented") +} + +// mapRecvMsgError returns the non-nil err into the appropriate +// error value as expected by callers of *grpc.parser.recvMsg. +// In particular, in can only be: +// - io.EOF +// - io.ErrUnexpectedEOF +// - of type transport.ConnectionError +// - an error from the status package +func mapRecvMsgError(err error) error { + if err == io.EOF || err == io.ErrUnexpectedEOF { + return err + } + if se, ok := err.(http2.StreamError); ok { + if code, ok := http2ErrConvTab[se.Code]; ok { + return status.Error(code, se.Error()) + } + } + if strings.Contains(err.Error(), "body closed by handler") { + return status.Error(codes.Canceled, err.Error()) + } + return connectionErrorf(true, err, err.Error()) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_client.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_client.go new file mode 100644 index 0000000000..3e582a2853 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_client.go @@ -0,0 +1,1782 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "context" + "fmt" + "io" + "math" + "net" + "net/http" + "path/filepath" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/channelz" + icredentials "google.golang.org/grpc/internal/credentials" + "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/internal/grpcutil" + imetadata "google.golang.org/grpc/internal/metadata" + istatus "google.golang.org/grpc/internal/status" + "google.golang.org/grpc/internal/syscall" + "google.golang.org/grpc/internal/transport/networktype" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" +) + +// clientConnectionCounter counts the number of connections a client has +// initiated (equal to the number of http2Clients created). Must be accessed +// atomically. +var clientConnectionCounter uint64 + +// http2Client implements the ClientTransport interface with HTTP2. +type http2Client struct { + lastRead int64 // Keep this field 64-bit aligned. Accessed atomically. + ctx context.Context + cancel context.CancelFunc + ctxDone <-chan struct{} // Cache the ctx.Done() chan. + userAgent string + // address contains the resolver returned address for this transport. + // If the `ServerName` field is set, it takes precedence over `CallHdr.Host` + // passed to `NewStream`, when determining the :authority header. + address resolver.Address + md metadata.MD + conn net.Conn // underlying communication channel + loopy *loopyWriter + remoteAddr net.Addr + localAddr net.Addr + authInfo credentials.AuthInfo // auth info about the connection + + readerDone chan struct{} // sync point to enable testing. + writerDone chan struct{} // sync point to enable testing. + // goAway is closed to notify the upper layer (i.e., addrConn.transportMonitor) + // that the server sent GoAway on this transport. + goAway chan struct{} + + framer *framer + // controlBuf delivers all the control related tasks (e.g., window + // updates, reset streams, and various settings) to the controller. + // Do not access controlBuf with mu held. + controlBuf *controlBuffer + fc *trInFlow + // The scheme used: https if TLS is on, http otherwise. + scheme string + + isSecure bool + + perRPCCreds []credentials.PerRPCCredentials + + kp keepalive.ClientParameters + keepaliveEnabled bool + + statsHandlers []stats.Handler + + initialWindowSize int32 + + // configured by peer through SETTINGS_MAX_HEADER_LIST_SIZE + maxSendHeaderListSize *uint32 + + bdpEst *bdpEstimator + + maxConcurrentStreams uint32 + streamQuota int64 + streamsQuotaAvailable chan struct{} + waitingStreams uint32 + nextID uint32 + registeredCompressors string + + // Do not access controlBuf with mu held. + mu sync.Mutex // guard the following variables + state transportState + activeStreams map[uint32]*Stream + // prevGoAway ID records the Last-Stream-ID in the previous GOAway frame. + prevGoAwayID uint32 + // goAwayReason records the http2.ErrCode and debug data received with the + // GoAway frame. + goAwayReason GoAwayReason + // goAwayDebugMessage contains a detailed human readable string about a + // GoAway frame, useful for error messages. + goAwayDebugMessage string + // A condition variable used to signal when the keepalive goroutine should + // go dormant. The condition for dormancy is based on the number of active + // streams and the `PermitWithoutStream` keepalive client parameter. And + // since the number of active streams is guarded by the above mutex, we use + // the same for this condition variable as well. + kpDormancyCond *sync.Cond + // A boolean to track whether the keepalive goroutine is dormant or not. + // This is checked before attempting to signal the above condition + // variable. + kpDormant bool + + // Fields below are for channelz metric collection. + channelzID *channelz.Identifier + czData *channelzData + + onGoAway func(GoAwayReason) + onClose func() + + bufferPool *bufferPool + + connectionID uint64 +} + +func dial(ctx context.Context, fn func(context.Context, string) (net.Conn, error), addr resolver.Address, useProxy bool, grpcUA string) (net.Conn, error) { + address := addr.Addr + networkType, ok := networktype.Get(addr) + if fn != nil { + // Special handling for unix scheme with custom dialer. Back in the day, + // we did not have a unix resolver and therefore targets with a unix + // scheme would end up using the passthrough resolver. So, user's used a + // custom dialer in this case and expected the original dial target to + // be passed to the custom dialer. Now, we have a unix resolver. But if + // a custom dialer is specified, we want to retain the old behavior in + // terms of the address being passed to the custom dialer. + if networkType == "unix" && !strings.HasPrefix(address, "\x00") { + // Supported unix targets are either "unix://absolute-path" or + // "unix:relative-path". + if filepath.IsAbs(address) { + return fn(ctx, "unix://"+address) + } + return fn(ctx, "unix:"+address) + } + return fn(ctx, address) + } + if !ok { + networkType, address = parseDialTarget(address) + } + if networkType == "tcp" && useProxy { + return proxyDial(ctx, address, grpcUA) + } + return (&net.Dialer{}).DialContext(ctx, networkType, address) +} + +func isTemporary(err error) bool { + switch err := err.(type) { + case interface { + Temporary() bool + }: + return err.Temporary() + case interface { + Timeout() bool + }: + // Timeouts may be resolved upon retry, and are thus treated as + // temporary. + return err.Timeout() + } + return true +} + +// newHTTP2Client constructs a connected ClientTransport to addr based on HTTP2 +// and starts to receive messages on it. Non-nil error returns if construction +// fails. +func newHTTP2Client(connectCtx, ctx context.Context, addr resolver.Address, opts ConnectOptions, onGoAway func(GoAwayReason), onClose func()) (_ *http2Client, err error) { + scheme := "http" + ctx, cancel := context.WithCancel(ctx) + defer func() { + if err != nil { + cancel() + } + }() + + // gRPC, resolver, balancer etc. can specify arbitrary data in the + // Attributes field of resolver.Address, which is shoved into connectCtx + // and passed to the dialer and credential handshaker. This makes it possible for + // address specific arbitrary data to reach custom dialers and credential handshakers. + connectCtx = icredentials.NewClientHandshakeInfoContext(connectCtx, credentials.ClientHandshakeInfo{Attributes: addr.Attributes}) + + conn, err := dial(connectCtx, opts.Dialer, addr, opts.UseProxy, opts.UserAgent) + if err != nil { + if opts.FailOnNonTempDialError { + return nil, connectionErrorf(isTemporary(err), err, "transport: error while dialing: %v", err) + } + return nil, connectionErrorf(true, err, "transport: Error while dialing %v", err) + } + + // Any further errors will close the underlying connection + defer func(conn net.Conn) { + if err != nil { + conn.Close() + } + }(conn) + + // The following defer and goroutine monitor the connectCtx for cancelation + // and deadline. On context expiration, the connection is hard closed and + // this function will naturally fail as a result. Otherwise, the defer + // waits for the goroutine to exit to prevent the context from being + // monitored (and to prevent the connection from ever being closed) after + // returning from this function. + ctxMonitorDone := grpcsync.NewEvent() + newClientCtx, newClientDone := context.WithCancel(connectCtx) + defer func() { + newClientDone() // Awaken the goroutine below if connectCtx hasn't expired. + <-ctxMonitorDone.Done() // Wait for the goroutine below to exit. + }() + go func(conn net.Conn) { + defer ctxMonitorDone.Fire() // Signal this goroutine has exited. + <-newClientCtx.Done() // Block until connectCtx expires or the defer above executes. + if err := connectCtx.Err(); err != nil { + // connectCtx expired before exiting the function. Hard close the connection. + if logger.V(logLevel) { + logger.Infof("newClientTransport: aborting due to connectCtx: %v", err) + } + conn.Close() + } + }(conn) + + kp := opts.KeepaliveParams + // Validate keepalive parameters. + if kp.Time == 0 { + kp.Time = defaultClientKeepaliveTime + } + if kp.Timeout == 0 { + kp.Timeout = defaultClientKeepaliveTimeout + } + keepaliveEnabled := false + if kp.Time != infinity { + if err = syscall.SetTCPUserTimeout(conn, kp.Timeout); err != nil { + return nil, connectionErrorf(false, err, "transport: failed to set TCP_USER_TIMEOUT: %v", err) + } + keepaliveEnabled = true + } + var ( + isSecure bool + authInfo credentials.AuthInfo + ) + transportCreds := opts.TransportCredentials + perRPCCreds := opts.PerRPCCredentials + + if b := opts.CredsBundle; b != nil { + if t := b.TransportCredentials(); t != nil { + transportCreds = t + } + if t := b.PerRPCCredentials(); t != nil { + perRPCCreds = append(perRPCCreds, t) + } + } + if transportCreds != nil { + conn, authInfo, err = transportCreds.ClientHandshake(connectCtx, addr.ServerName, conn) + if err != nil { + return nil, connectionErrorf(isTemporary(err), err, "transport: authentication handshake failed: %v", err) + } + for _, cd := range perRPCCreds { + if cd.RequireTransportSecurity() { + if ci, ok := authInfo.(interface { + GetCommonAuthInfo() credentials.CommonAuthInfo + }); ok { + secLevel := ci.GetCommonAuthInfo().SecurityLevel + if secLevel != credentials.InvalidSecurityLevel && secLevel < credentials.PrivacyAndIntegrity { + return nil, connectionErrorf(true, nil, "transport: cannot send secure credentials on an insecure connection") + } + } + } + } + isSecure = true + if transportCreds.Info().SecurityProtocol == "tls" { + scheme = "https" + } + } + dynamicWindow := true + icwz := int32(initialWindowSize) + if opts.InitialConnWindowSize >= defaultWindowSize { + icwz = opts.InitialConnWindowSize + dynamicWindow = false + } + writeBufSize := opts.WriteBufferSize + readBufSize := opts.ReadBufferSize + maxHeaderListSize := defaultClientMaxHeaderListSize + if opts.MaxHeaderListSize != nil { + maxHeaderListSize = *opts.MaxHeaderListSize + } + t := &http2Client{ + ctx: ctx, + ctxDone: ctx.Done(), // Cache Done chan. + cancel: cancel, + userAgent: opts.UserAgent, + registeredCompressors: grpcutil.RegisteredCompressors(), + address: addr, + conn: conn, + remoteAddr: conn.RemoteAddr(), + localAddr: conn.LocalAddr(), + authInfo: authInfo, + readerDone: make(chan struct{}), + writerDone: make(chan struct{}), + goAway: make(chan struct{}), + framer: newFramer(conn, writeBufSize, readBufSize, maxHeaderListSize), + fc: &trInFlow{limit: uint32(icwz)}, + scheme: scheme, + activeStreams: make(map[uint32]*Stream), + isSecure: isSecure, + perRPCCreds: perRPCCreds, + kp: kp, + statsHandlers: opts.StatsHandlers, + initialWindowSize: initialWindowSize, + nextID: 1, + maxConcurrentStreams: defaultMaxStreamsClient, + streamQuota: defaultMaxStreamsClient, + streamsQuotaAvailable: make(chan struct{}, 1), + czData: new(channelzData), + onGoAway: onGoAway, + keepaliveEnabled: keepaliveEnabled, + bufferPool: newBufferPool(), + onClose: onClose, + } + // Add peer information to the http2client context. + t.ctx = peer.NewContext(t.ctx, t.getPeer()) + + if md, ok := addr.Metadata.(*metadata.MD); ok { + t.md = *md + } else if md := imetadata.Get(addr); md != nil { + t.md = md + } + t.controlBuf = newControlBuffer(t.ctxDone) + if opts.InitialWindowSize >= defaultWindowSize { + t.initialWindowSize = opts.InitialWindowSize + dynamicWindow = false + } + if dynamicWindow { + t.bdpEst = &bdpEstimator{ + bdp: initialWindowSize, + updateFlowControl: t.updateFlowControl, + } + } + for _, sh := range t.statsHandlers { + t.ctx = sh.TagConn(t.ctx, &stats.ConnTagInfo{ + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + }) + connBegin := &stats.ConnBegin{ + Client: true, + } + sh.HandleConn(t.ctx, connBegin) + } + t.channelzID, err = channelz.RegisterNormalSocket(t, opts.ChannelzParentID, fmt.Sprintf("%s -> %s", t.localAddr, t.remoteAddr)) + if err != nil { + return nil, err + } + if t.keepaliveEnabled { + t.kpDormancyCond = sync.NewCond(&t.mu) + go t.keepalive() + } + + // Start the reader goroutine for incoming messages. Each transport has a + // dedicated goroutine which reads HTTP2 frames from the network. Then it + // dispatches the frame to the corresponding stream entity. When the + // server preface is received, readerErrCh is closed. If an error occurs + // first, an error is pushed to the channel. This must be checked before + // returning from this function. + readerErrCh := make(chan error, 1) + go t.reader(readerErrCh) + defer func() { + if err == nil { + err = <-readerErrCh + } + if err != nil { + t.Close(err) + } + }() + + // Send connection preface to server. + n, err := t.conn.Write(clientPreface) + if err != nil { + err = connectionErrorf(true, err, "transport: failed to write client preface: %v", err) + return nil, err + } + if n != len(clientPreface) { + err = connectionErrorf(true, nil, "transport: preface mismatch, wrote %d bytes; want %d", n, len(clientPreface)) + return nil, err + } + var ss []http2.Setting + + if t.initialWindowSize != defaultWindowSize { + ss = append(ss, http2.Setting{ + ID: http2.SettingInitialWindowSize, + Val: uint32(t.initialWindowSize), + }) + } + if opts.MaxHeaderListSize != nil { + ss = append(ss, http2.Setting{ + ID: http2.SettingMaxHeaderListSize, + Val: *opts.MaxHeaderListSize, + }) + } + err = t.framer.fr.WriteSettings(ss...) + if err != nil { + err = connectionErrorf(true, err, "transport: failed to write initial settings frame: %v", err) + return nil, err + } + // Adjust the connection flow control window if needed. + if delta := uint32(icwz - defaultWindowSize); delta > 0 { + if err := t.framer.fr.WriteWindowUpdate(0, delta); err != nil { + err = connectionErrorf(true, err, "transport: failed to write window update: %v", err) + return nil, err + } + } + + t.connectionID = atomic.AddUint64(&clientConnectionCounter, 1) + + if err := t.framer.writer.Flush(); err != nil { + return nil, err + } + go func() { + t.loopy = newLoopyWriter(clientSide, t.framer, t.controlBuf, t.bdpEst) + err := t.loopy.run() + if logger.V(logLevel) { + logger.Infof("transport: loopyWriter exited. Closing connection. Err: %v", err) + } + // Do not close the transport. Let reader goroutine handle it since + // there might be data in the buffers. + t.conn.Close() + t.controlBuf.finish() + close(t.writerDone) + }() + return t, nil +} + +func (t *http2Client) newStream(ctx context.Context, callHdr *CallHdr) *Stream { + // TODO(zhaoq): Handle uint32 overflow of Stream.id. + s := &Stream{ + ct: t, + done: make(chan struct{}), + method: callHdr.Method, + sendCompress: callHdr.SendCompress, + buf: newRecvBuffer(), + headerChan: make(chan struct{}), + contentSubtype: callHdr.ContentSubtype, + doneFunc: callHdr.DoneFunc, + } + s.wq = newWriteQuota(defaultWriteQuota, s.done) + s.requestRead = func(n int) { + t.adjustWindow(s, uint32(n)) + } + // The client side stream context should have exactly the same life cycle with the user provided context. + // That means, s.ctx should be read-only. And s.ctx is done iff ctx is done. + // So we use the original context here instead of creating a copy. + s.ctx = ctx + s.trReader = &transportReader{ + reader: &recvBufferReader{ + ctx: s.ctx, + ctxDone: s.ctx.Done(), + recv: s.buf, + closeStream: func(err error) { + t.CloseStream(s, err) + }, + freeBuffer: t.bufferPool.put, + }, + windowHandler: func(n int) { + t.updateWindow(s, uint32(n)) + }, + } + return s +} + +func (t *http2Client) getPeer() *peer.Peer { + return &peer.Peer{ + Addr: t.remoteAddr, + AuthInfo: t.authInfo, // Can be nil + } +} + +func (t *http2Client) createHeaderFields(ctx context.Context, callHdr *CallHdr) ([]hpack.HeaderField, error) { + aud := t.createAudience(callHdr) + ri := credentials.RequestInfo{ + Method: callHdr.Method, + AuthInfo: t.authInfo, + } + ctxWithRequestInfo := icredentials.NewRequestInfoContext(ctx, ri) + authData, err := t.getTrAuthData(ctxWithRequestInfo, aud) + if err != nil { + return nil, err + } + callAuthData, err := t.getCallAuthData(ctxWithRequestInfo, aud, callHdr) + if err != nil { + return nil, err + } + // TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields + // first and create a slice of that exact size. + // Make the slice of certain predictable size to reduce allocations made by append. + hfLen := 7 // :method, :scheme, :path, :authority, content-type, user-agent, te + hfLen += len(authData) + len(callAuthData) + headerFields := make([]hpack.HeaderField, 0, hfLen) + headerFields = append(headerFields, hpack.HeaderField{Name: ":method", Value: "POST"}) + headerFields = append(headerFields, hpack.HeaderField{Name: ":scheme", Value: t.scheme}) + headerFields = append(headerFields, hpack.HeaderField{Name: ":path", Value: callHdr.Method}) + headerFields = append(headerFields, hpack.HeaderField{Name: ":authority", Value: callHdr.Host}) + headerFields = append(headerFields, hpack.HeaderField{Name: "content-type", Value: grpcutil.ContentType(callHdr.ContentSubtype)}) + headerFields = append(headerFields, hpack.HeaderField{Name: "user-agent", Value: t.userAgent}) + headerFields = append(headerFields, hpack.HeaderField{Name: "te", Value: "trailers"}) + if callHdr.PreviousAttempts > 0 { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-previous-rpc-attempts", Value: strconv.Itoa(callHdr.PreviousAttempts)}) + } + + registeredCompressors := t.registeredCompressors + if callHdr.SendCompress != "" { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: callHdr.SendCompress}) + // Include the outgoing compressor name when compressor is not registered + // via encoding.RegisterCompressor. This is possible when client uses + // WithCompressor dial option. + if !grpcutil.IsCompressorNameRegistered(callHdr.SendCompress) { + if registeredCompressors != "" { + registeredCompressors += "," + } + registeredCompressors += callHdr.SendCompress + } + } + + if registeredCompressors != "" { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-accept-encoding", Value: registeredCompressors}) + } + if dl, ok := ctx.Deadline(); ok { + // Send out timeout regardless its value. The server can detect timeout context by itself. + // TODO(mmukhi): Perhaps this field should be updated when actually writing out to the wire. + timeout := time.Until(dl) + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-timeout", Value: grpcutil.EncodeDuration(timeout)}) + } + for k, v := range authData { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + for k, v := range callAuthData { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + if b := stats.OutgoingTags(ctx); b != nil { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-tags-bin", Value: encodeBinHeader(b)}) + } + if b := stats.OutgoingTrace(ctx); b != nil { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-trace-bin", Value: encodeBinHeader(b)}) + } + + if md, added, ok := metadata.FromOutgoingContextRaw(ctx); ok { + var k string + for k, vv := range md { + // HTTP doesn't allow you to set pseudoheaders after non pseudoheaders were set. + if isReservedHeader(k) { + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + for _, vv := range added { + for i, v := range vv { + if i%2 == 0 { + k = strings.ToLower(v) + continue + } + // HTTP doesn't allow you to set pseudoheaders after non pseudoheaders were set. + if isReservedHeader(k) { + continue + } + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + } + for k, vv := range t.md { + if isReservedHeader(k) { + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + return headerFields, nil +} + +func (t *http2Client) createAudience(callHdr *CallHdr) string { + // Create an audience string only if needed. + if len(t.perRPCCreds) == 0 && callHdr.Creds == nil { + return "" + } + // Construct URI required to get auth request metadata. + // Omit port if it is the default one. + host := strings.TrimSuffix(callHdr.Host, ":443") + pos := strings.LastIndex(callHdr.Method, "/") + if pos == -1 { + pos = len(callHdr.Method) + } + return "https://" + host + callHdr.Method[:pos] +} + +func (t *http2Client) getTrAuthData(ctx context.Context, audience string) (map[string]string, error) { + if len(t.perRPCCreds) == 0 { + return nil, nil + } + authData := map[string]string{} + for _, c := range t.perRPCCreds { + data, err := c.GetRequestMetadata(ctx, audience) + if err != nil { + if st, ok := status.FromError(err); ok { + // Restrict the code to the list allowed by gRFC A54. + if istatus.IsRestrictedControlPlaneCode(st) { + err = status.Errorf(codes.Internal, "transport: received per-RPC creds error with illegal status: %v", err) + } + return nil, err + } + + return nil, status.Errorf(codes.Unauthenticated, "transport: per-RPC creds failed due to error: %v", err) + } + for k, v := range data { + // Capital header names are illegal in HTTP/2. + k = strings.ToLower(k) + authData[k] = v + } + } + return authData, nil +} + +func (t *http2Client) getCallAuthData(ctx context.Context, audience string, callHdr *CallHdr) (map[string]string, error) { + var callAuthData map[string]string + // Check if credentials.PerRPCCredentials were provided via call options. + // Note: if these credentials are provided both via dial options and call + // options, then both sets of credentials will be applied. + if callCreds := callHdr.Creds; callCreds != nil { + if callCreds.RequireTransportSecurity() { + ri, _ := credentials.RequestInfoFromContext(ctx) + if !t.isSecure || credentials.CheckSecurityLevel(ri.AuthInfo, credentials.PrivacyAndIntegrity) != nil { + return nil, status.Error(codes.Unauthenticated, "transport: cannot send secure credentials on an insecure connection") + } + } + data, err := callCreds.GetRequestMetadata(ctx, audience) + if err != nil { + if st, ok := status.FromError(err); ok { + // Restrict the code to the list allowed by gRFC A54. + if istatus.IsRestrictedControlPlaneCode(st) { + err = status.Errorf(codes.Internal, "transport: received per-RPC creds error with illegal status: %v", err) + } + return nil, err + } + return nil, status.Errorf(codes.Internal, "transport: per-RPC creds failed due to error: %v", err) + } + callAuthData = make(map[string]string, len(data)) + for k, v := range data { + // Capital header names are illegal in HTTP/2 + k = strings.ToLower(k) + callAuthData[k] = v + } + } + return callAuthData, nil +} + +// NewStreamError wraps an error and reports additional information. Typically +// NewStream errors result in transparent retry, as they mean nothing went onto +// the wire. However, there are two notable exceptions: +// +// 1. If the stream headers violate the max header list size allowed by the +// server. It's possible this could succeed on another transport, even if +// it's unlikely, but do not transparently retry. +// 2. If the credentials errored when requesting their headers. In this case, +// it's possible a retry can fix the problem, but indefinitely transparently +// retrying is not appropriate as it is likely the credentials, if they can +// eventually succeed, would need I/O to do so. +type NewStreamError struct { + Err error + + AllowTransparentRetry bool +} + +func (e NewStreamError) Error() string { + return e.Err.Error() +} + +// NewStream creates a stream and registers it into the transport as "active" +// streams. All non-nil errors returned will be *NewStreamError. +func (t *http2Client) NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, error) { + ctx = peer.NewContext(ctx, t.getPeer()) + + // ServerName field of the resolver returned address takes precedence over + // Host field of CallHdr to determine the :authority header. This is because, + // the ServerName field takes precedence for server authentication during + // TLS handshake, and the :authority header should match the value used + // for server authentication. + if t.address.ServerName != "" { + newCallHdr := *callHdr + newCallHdr.Host = t.address.ServerName + callHdr = &newCallHdr + } + + headerFields, err := t.createHeaderFields(ctx, callHdr) + if err != nil { + return nil, &NewStreamError{Err: err, AllowTransparentRetry: false} + } + s := t.newStream(ctx, callHdr) + cleanup := func(err error) { + if s.swapState(streamDone) == streamDone { + // If it was already done, return. + return + } + // The stream was unprocessed by the server. + atomic.StoreUint32(&s.unprocessed, 1) + s.write(recvMsg{err: err}) + close(s.done) + // If headerChan isn't closed, then close it. + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { + close(s.headerChan) + } + } + hdr := &headerFrame{ + hf: headerFields, + endStream: false, + initStream: func(id uint32) error { + t.mu.Lock() + if state := t.state; state != reachable { + t.mu.Unlock() + // Do a quick cleanup. + err := error(errStreamDrain) + if state == closing { + err = ErrConnClosing + } + cleanup(err) + return err + } + if channelz.IsOn() { + atomic.AddInt64(&t.czData.streamsStarted, 1) + atomic.StoreInt64(&t.czData.lastStreamCreatedTime, time.Now().UnixNano()) + } + // If the keepalive goroutine has gone dormant, wake it up. + if t.kpDormant { + t.kpDormancyCond.Signal() + } + t.mu.Unlock() + return nil + }, + onOrphaned: cleanup, + wq: s.wq, + } + firstTry := true + var ch chan struct{} + checkForStreamQuota := func(it interface{}) bool { + if t.streamQuota <= 0 { // Can go negative if server decreases it. + if firstTry { + t.waitingStreams++ + } + ch = t.streamsQuotaAvailable + return false + } + if !firstTry { + t.waitingStreams-- + } + t.streamQuota-- + h := it.(*headerFrame) + h.streamID = t.nextID + t.nextID += 2 + s.id = h.streamID + s.fc = &inFlow{limit: uint32(t.initialWindowSize)} + t.mu.Lock() + if t.activeStreams == nil { // Can be niled from Close(). + t.mu.Unlock() + return false // Don't create a stream if the transport is already closed. + } + t.activeStreams[s.id] = s + t.mu.Unlock() + if t.streamQuota > 0 && t.waitingStreams > 0 { + select { + case t.streamsQuotaAvailable <- struct{}{}: + default: + } + } + return true + } + var hdrListSizeErr error + checkForHeaderListSize := func(it interface{}) bool { + if t.maxSendHeaderListSize == nil { + return true + } + hdrFrame := it.(*headerFrame) + var sz int64 + for _, f := range hdrFrame.hf { + if sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) { + hdrListSizeErr = status.Errorf(codes.Internal, "header list size to send violates the maximum size (%d bytes) set by server", *t.maxSendHeaderListSize) + return false + } + } + return true + } + for { + success, err := t.controlBuf.executeAndPut(func(it interface{}) bool { + return checkForHeaderListSize(it) && checkForStreamQuota(it) + }, hdr) + if err != nil { + // Connection closed. + return nil, &NewStreamError{Err: err, AllowTransparentRetry: true} + } + if success { + break + } + if hdrListSizeErr != nil { + return nil, &NewStreamError{Err: hdrListSizeErr} + } + firstTry = false + select { + case <-ch: + case <-ctx.Done(): + return nil, &NewStreamError{Err: ContextErr(ctx.Err())} + case <-t.goAway: + return nil, &NewStreamError{Err: errStreamDrain, AllowTransparentRetry: true} + case <-t.ctx.Done(): + return nil, &NewStreamError{Err: ErrConnClosing, AllowTransparentRetry: true} + } + } + if len(t.statsHandlers) != 0 { + header, ok := metadata.FromOutgoingContext(ctx) + if ok { + header.Set("user-agent", t.userAgent) + } else { + header = metadata.Pairs("user-agent", t.userAgent) + } + for _, sh := range t.statsHandlers { + // Note: The header fields are compressed with hpack after this call returns. + // No WireLength field is set here. + // Note: Creating a new stats object to prevent pollution. + outHeader := &stats.OutHeader{ + Client: true, + FullMethod: callHdr.Method, + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + Compression: callHdr.SendCompress, + Header: header, + } + sh.HandleRPC(s.ctx, outHeader) + } + } + return s, nil +} + +// CloseStream clears the footprint of a stream when the stream is not needed any more. +// This must not be executed in reader's goroutine. +func (t *http2Client) CloseStream(s *Stream, err error) { + var ( + rst bool + rstCode http2.ErrCode + ) + if err != nil { + rst = true + rstCode = http2.ErrCodeCancel + } + t.closeStream(s, err, rst, rstCode, status.Convert(err), nil, false) +} + +func (t *http2Client) closeStream(s *Stream, err error, rst bool, rstCode http2.ErrCode, st *status.Status, mdata map[string][]string, eosReceived bool) { + // Set stream status to done. + if s.swapState(streamDone) == streamDone { + // If it was already done, return. If multiple closeStream calls + // happen simultaneously, wait for the first to finish. + <-s.done + return + } + // status and trailers can be updated here without any synchronization because the stream goroutine will + // only read it after it sees an io.EOF error from read or write and we'll write those errors + // only after updating this. + s.status = st + if len(mdata) > 0 { + s.trailer = mdata + } + if err != nil { + // This will unblock reads eventually. + s.write(recvMsg{err: err}) + } + // If headerChan isn't closed, then close it. + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { + s.noHeaders = true + close(s.headerChan) + } + cleanup := &cleanupStream{ + streamID: s.id, + onWrite: func() { + t.mu.Lock() + if t.activeStreams != nil { + delete(t.activeStreams, s.id) + } + t.mu.Unlock() + if channelz.IsOn() { + if eosReceived { + atomic.AddInt64(&t.czData.streamsSucceeded, 1) + } else { + atomic.AddInt64(&t.czData.streamsFailed, 1) + } + } + }, + rst: rst, + rstCode: rstCode, + } + addBackStreamQuota := func(interface{}) bool { + t.streamQuota++ + if t.streamQuota > 0 && t.waitingStreams > 0 { + select { + case t.streamsQuotaAvailable <- struct{}{}: + default: + } + } + return true + } + t.controlBuf.executeAndPut(addBackStreamQuota, cleanup) + // This will unblock write. + close(s.done) + if s.doneFunc != nil { + s.doneFunc() + } +} + +// Close kicks off the shutdown process of the transport. This should be called +// only once on a transport. Once it is called, the transport should not be +// accessed any more. +func (t *http2Client) Close(err error) { + t.mu.Lock() + // Make sure we only close once. + if t.state == closing { + t.mu.Unlock() + return + } + if logger.V(logLevel) { + logger.Infof("transport: closing: %v", err) + } + // Call t.onClose ASAP to prevent the client from attempting to create new + // streams. + t.onClose() + t.state = closing + streams := t.activeStreams + t.activeStreams = nil + if t.kpDormant { + // If the keepalive goroutine is blocked on this condition variable, we + // should unblock it so that the goroutine eventually exits. + t.kpDormancyCond.Signal() + } + t.mu.Unlock() + t.controlBuf.finish() + t.cancel() + t.conn.Close() + channelz.RemoveEntry(t.channelzID) + // Append info about previous goaways if there were any, since this may be important + // for understanding the root cause for this connection to be closed. + _, goAwayDebugMessage := t.GetGoAwayReason() + + var st *status.Status + if len(goAwayDebugMessage) > 0 { + st = status.Newf(codes.Unavailable, "closing transport due to: %v, received prior goaway: %v", err, goAwayDebugMessage) + err = st.Err() + } else { + st = status.New(codes.Unavailable, err.Error()) + } + + // Notify all active streams. + for _, s := range streams { + t.closeStream(s, err, false, http2.ErrCodeNo, st, nil, false) + } + for _, sh := range t.statsHandlers { + connEnd := &stats.ConnEnd{ + Client: true, + } + sh.HandleConn(t.ctx, connEnd) + } +} + +// GracefulClose sets the state to draining, which prevents new streams from +// being created and causes the transport to be closed when the last active +// stream is closed. If there are no active streams, the transport is closed +// immediately. This does nothing if the transport is already draining or +// closing. +func (t *http2Client) GracefulClose() { + t.mu.Lock() + // Make sure we move to draining only from active. + if t.state == draining || t.state == closing { + t.mu.Unlock() + return + } + if logger.V(logLevel) { + logger.Infof("transport: GracefulClose called") + } + t.state = draining + active := len(t.activeStreams) + t.mu.Unlock() + if active == 0 { + t.Close(connectionErrorf(true, nil, "no active streams left to process while draining")) + return + } + t.controlBuf.put(&incomingGoAway{}) +} + +// Write formats the data into HTTP2 data frame(s) and sends it out. The caller +// should proceed only if Write returns nil. +func (t *http2Client) Write(s *Stream, hdr []byte, data []byte, opts *Options) error { + if opts.Last { + // If it's the last message, update stream state. + if !s.compareAndSwapState(streamActive, streamWriteDone) { + return errStreamDone + } + } else if s.getState() != streamActive { + return errStreamDone + } + df := &dataFrame{ + streamID: s.id, + endStream: opts.Last, + h: hdr, + d: data, + } + if hdr != nil || data != nil { // If it's not an empty data frame, check quota. + if err := s.wq.get(int32(len(hdr) + len(data))); err != nil { + return err + } + } + return t.controlBuf.put(df) +} + +func (t *http2Client) getStream(f http2.Frame) *Stream { + t.mu.Lock() + s := t.activeStreams[f.Header().StreamID] + t.mu.Unlock() + return s +} + +// adjustWindow sends out extra window update over the initial window size +// of stream if the application is requesting data larger in size than +// the window. +func (t *http2Client) adjustWindow(s *Stream, n uint32) { + if w := s.fc.maybeAdjust(n); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, increment: w}) + } +} + +// updateWindow adjusts the inbound quota for the stream. +// Window updates will be sent out when the cumulative quota +// exceeds the corresponding threshold. +func (t *http2Client) updateWindow(s *Stream, n uint32) { + if w := s.fc.onRead(n); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, increment: w}) + } +} + +// updateFlowControl updates the incoming flow control windows +// for the transport and the stream based on the current bdp +// estimation. +func (t *http2Client) updateFlowControl(n uint32) { + updateIWS := func(interface{}) bool { + t.initialWindowSize = int32(n) + t.mu.Lock() + for _, s := range t.activeStreams { + s.fc.newLimit(n) + } + t.mu.Unlock() + return true + } + t.controlBuf.executeAndPut(updateIWS, &outgoingWindowUpdate{streamID: 0, increment: t.fc.newLimit(n)}) + t.controlBuf.put(&outgoingSettings{ + ss: []http2.Setting{ + { + ID: http2.SettingInitialWindowSize, + Val: n, + }, + }, + }) +} + +func (t *http2Client) handleData(f *http2.DataFrame) { + size := f.Header().Length + var sendBDPPing bool + if t.bdpEst != nil { + sendBDPPing = t.bdpEst.add(size) + } + // Decouple connection's flow control from application's read. + // An update on connection's flow control should not depend on + // whether user application has read the data or not. Such a + // restriction is already imposed on the stream's flow control, + // and therefore the sender will be blocked anyways. + // Decoupling the connection flow control will prevent other + // active(fast) streams from starving in presence of slow or + // inactive streams. + // + if w := t.fc.onData(size); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: 0, + increment: w, + }) + } + if sendBDPPing { + // Avoid excessive ping detection (e.g. in an L7 proxy) + // by sending a window update prior to the BDP ping. + + if w := t.fc.reset(); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: 0, + increment: w, + }) + } + + t.controlBuf.put(bdpPing) + } + // Select the right stream to dispatch. + s := t.getStream(f) + if s == nil { + return + } + if size > 0 { + if err := s.fc.onData(size); err != nil { + t.closeStream(s, io.EOF, true, http2.ErrCodeFlowControl, status.New(codes.Internal, err.Error()), nil, false) + return + } + if f.Header().Flags.Has(http2.FlagDataPadded) { + if w := s.fc.onRead(size - uint32(len(f.Data()))); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{s.id, w}) + } + } + // TODO(bradfitz, zhaoq): A copy is required here because there is no + // guarantee f.Data() is consumed before the arrival of next frame. + // Can this copy be eliminated? + if len(f.Data()) > 0 { + buffer := t.bufferPool.get() + buffer.Reset() + buffer.Write(f.Data()) + s.write(recvMsg{buffer: buffer}) + } + } + // The server has closed the stream without sending trailers. Record that + // the read direction is closed, and set the status appropriately. + if f.StreamEnded() { + t.closeStream(s, io.EOF, false, http2.ErrCodeNo, status.New(codes.Internal, "server closed the stream without sending trailers"), nil, true) + } +} + +func (t *http2Client) handleRSTStream(f *http2.RSTStreamFrame) { + s := t.getStream(f) + if s == nil { + return + } + if f.ErrCode == http2.ErrCodeRefusedStream { + // The stream was unprocessed by the server. + atomic.StoreUint32(&s.unprocessed, 1) + } + statusCode, ok := http2ErrConvTab[f.ErrCode] + if !ok { + if logger.V(logLevel) { + logger.Warningf("transport: http2Client.handleRSTStream found no mapped gRPC status for the received http2 error %v", f.ErrCode) + } + statusCode = codes.Unknown + } + if statusCode == codes.Canceled { + if d, ok := s.ctx.Deadline(); ok && !d.After(time.Now()) { + // Our deadline was already exceeded, and that was likely the cause + // of this cancelation. Alter the status code accordingly. + statusCode = codes.DeadlineExceeded + } + } + t.closeStream(s, io.EOF, false, http2.ErrCodeNo, status.Newf(statusCode, "stream terminated by RST_STREAM with error code: %v", f.ErrCode), nil, false) +} + +func (t *http2Client) handleSettings(f *http2.SettingsFrame, isFirst bool) { + if f.IsAck() { + return + } + var maxStreams *uint32 + var ss []http2.Setting + var updateFuncs []func() + f.ForeachSetting(func(s http2.Setting) error { + switch s.ID { + case http2.SettingMaxConcurrentStreams: + maxStreams = new(uint32) + *maxStreams = s.Val + case http2.SettingMaxHeaderListSize: + updateFuncs = append(updateFuncs, func() { + t.maxSendHeaderListSize = new(uint32) + *t.maxSendHeaderListSize = s.Val + }) + default: + ss = append(ss, s) + } + return nil + }) + if isFirst && maxStreams == nil { + maxStreams = new(uint32) + *maxStreams = math.MaxUint32 + } + sf := &incomingSettings{ + ss: ss, + } + if maxStreams != nil { + updateStreamQuota := func() { + delta := int64(*maxStreams) - int64(t.maxConcurrentStreams) + t.maxConcurrentStreams = *maxStreams + t.streamQuota += delta + if delta > 0 && t.waitingStreams > 0 { + close(t.streamsQuotaAvailable) // wake all of them up. + t.streamsQuotaAvailable = make(chan struct{}, 1) + } + } + updateFuncs = append(updateFuncs, updateStreamQuota) + } + t.controlBuf.executeAndPut(func(interface{}) bool { + for _, f := range updateFuncs { + f() + } + return true + }, sf) +} + +func (t *http2Client) handlePing(f *http2.PingFrame) { + if f.IsAck() { + // Maybe it's a BDP ping. + if t.bdpEst != nil { + t.bdpEst.calculate(f.Data) + } + return + } + pingAck := &ping{ack: true} + copy(pingAck.data[:], f.Data[:]) + t.controlBuf.put(pingAck) +} + +func (t *http2Client) handleGoAway(f *http2.GoAwayFrame) { + t.mu.Lock() + if t.state == closing { + t.mu.Unlock() + return + } + if f.ErrCode == http2.ErrCodeEnhanceYourCalm { + if logger.V(logLevel) { + logger.Infof("Client received GoAway with http2.ErrCodeEnhanceYourCalm.") + } + } + id := f.LastStreamID + if id > 0 && id%2 == 0 { + t.mu.Unlock() + t.Close(connectionErrorf(true, nil, "received goaway with non-zero even-numbered numbered stream id: %v", id)) + return + } + // A client can receive multiple GoAways from the server (see + // https://github.com/grpc/grpc-go/issues/1387). The idea is that the first + // GoAway will be sent with an ID of MaxInt32 and the second GoAway will be + // sent after an RTT delay with the ID of the last stream the server will + // process. + // + // Therefore, when we get the first GoAway we don't necessarily close any + // streams. While in case of second GoAway we close all streams created after + // the GoAwayId. This way streams that were in-flight while the GoAway from + // server was being sent don't get killed. + select { + case <-t.goAway: // t.goAway has been closed (i.e.,multiple GoAways). + // If there are multiple GoAways the first one should always have an ID greater than the following ones. + if id > t.prevGoAwayID { + t.mu.Unlock() + t.Close(connectionErrorf(true, nil, "received goaway with stream id: %v, which exceeds stream id of previous goaway: %v", id, t.prevGoAwayID)) + return + } + default: + t.setGoAwayReason(f) + close(t.goAway) + defer t.controlBuf.put(&incomingGoAway{}) // Defer as t.mu is currently held. + // Notify the clientconn about the GOAWAY before we set the state to + // draining, to allow the client to stop attempting to create streams + // before disallowing new streams on this connection. + t.onGoAway(t.goAwayReason) + t.state = draining + } + // All streams with IDs greater than the GoAwayId + // and smaller than the previous GoAway ID should be killed. + upperLimit := t.prevGoAwayID + if upperLimit == 0 { // This is the first GoAway Frame. + upperLimit = math.MaxUint32 // Kill all streams after the GoAway ID. + } + + t.prevGoAwayID = id + if len(t.activeStreams) == 0 { + t.mu.Unlock() + t.Close(connectionErrorf(true, nil, "received goaway and there are no active streams")) + return + } + + streamsToClose := make([]*Stream, 0) + for streamID, stream := range t.activeStreams { + if streamID > id && streamID <= upperLimit { + // The stream was unprocessed by the server. + if streamID > id && streamID <= upperLimit { + atomic.StoreUint32(&stream.unprocessed, 1) + streamsToClose = append(streamsToClose, stream) + } + } + } + t.mu.Unlock() + // Called outside t.mu because closeStream can take controlBuf's mu, which + // could induce deadlock and is not allowed. + for _, stream := range streamsToClose { + t.closeStream(stream, errStreamDrain, false, http2.ErrCodeNo, statusGoAway, nil, false) + } +} + +// setGoAwayReason sets the value of t.goAwayReason based +// on the GoAway frame received. +// It expects a lock on transport's mutext to be held by +// the caller. +func (t *http2Client) setGoAwayReason(f *http2.GoAwayFrame) { + t.goAwayReason = GoAwayNoReason + switch f.ErrCode { + case http2.ErrCodeEnhanceYourCalm: + if string(f.DebugData()) == "too_many_pings" { + t.goAwayReason = GoAwayTooManyPings + } + } + if len(f.DebugData()) == 0 { + t.goAwayDebugMessage = fmt.Sprintf("code: %s", f.ErrCode) + } else { + t.goAwayDebugMessage = fmt.Sprintf("code: %s, debug data: %q", f.ErrCode, string(f.DebugData())) + } +} + +func (t *http2Client) GetGoAwayReason() (GoAwayReason, string) { + t.mu.Lock() + defer t.mu.Unlock() + return t.goAwayReason, t.goAwayDebugMessage +} + +func (t *http2Client) handleWindowUpdate(f *http2.WindowUpdateFrame) { + t.controlBuf.put(&incomingWindowUpdate{ + streamID: f.Header().StreamID, + increment: f.Increment, + }) +} + +// operateHeaders takes action on the decoded headers. +func (t *http2Client) operateHeaders(frame *http2.MetaHeadersFrame) { + s := t.getStream(frame) + if s == nil { + return + } + endStream := frame.StreamEnded() + atomic.StoreUint32(&s.bytesReceived, 1) + initialHeader := atomic.LoadUint32(&s.headerChanClosed) == 0 + + if !initialHeader && !endStream { + // As specified by gRPC over HTTP2, a HEADERS frame (and associated CONTINUATION frames) can only appear at the start or end of a stream. Therefore, second HEADERS frame must have EOS bit set. + st := status.New(codes.Internal, "a HEADERS frame cannot appear in the middle of a stream") + t.closeStream(s, st.Err(), true, http2.ErrCodeProtocol, st, nil, false) + return + } + + // frame.Truncated is set to true when framer detects that the current header + // list size hits MaxHeaderListSize limit. + if frame.Truncated { + se := status.New(codes.Internal, "peer header list size exceeded limit") + t.closeStream(s, se.Err(), true, http2.ErrCodeFrameSize, se, nil, endStream) + return + } + + var ( + // If a gRPC Response-Headers has already been received, then it means + // that the peer is speaking gRPC and we are in gRPC mode. + isGRPC = !initialHeader + mdata = make(map[string][]string) + contentTypeErr = "malformed header: missing HTTP content-type" + grpcMessage string + statusGen *status.Status + recvCompress string + httpStatusCode *int + httpStatusErr string + rawStatusCode = codes.Unknown + // headerError is set if an error is encountered while parsing the headers + headerError string + ) + + if initialHeader { + httpStatusErr = "malformed header: missing HTTP status" + } + + for _, hf := range frame.Fields { + switch hf.Name { + case "content-type": + if _, validContentType := grpcutil.ContentSubtype(hf.Value); !validContentType { + contentTypeErr = fmt.Sprintf("transport: received unexpected content-type %q", hf.Value) + break + } + contentTypeErr = "" + mdata[hf.Name] = append(mdata[hf.Name], hf.Value) + isGRPC = true + case "grpc-encoding": + recvCompress = hf.Value + case "grpc-status": + code, err := strconv.ParseInt(hf.Value, 10, 32) + if err != nil { + se := status.New(codes.Internal, fmt.Sprintf("transport: malformed grpc-status: %v", err)) + t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream) + return + } + rawStatusCode = codes.Code(uint32(code)) + case "grpc-message": + grpcMessage = decodeGrpcMessage(hf.Value) + case "grpc-status-details-bin": + var err error + statusGen, err = decodeGRPCStatusDetails(hf.Value) + if err != nil { + headerError = fmt.Sprintf("transport: malformed grpc-status-details-bin: %v", err) + } + case ":status": + if hf.Value == "200" { + httpStatusErr = "" + statusCode := 200 + httpStatusCode = &statusCode + break + } + + c, err := strconv.ParseInt(hf.Value, 10, 32) + if err != nil { + se := status.New(codes.Internal, fmt.Sprintf("transport: malformed http-status: %v", err)) + t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream) + return + } + statusCode := int(c) + httpStatusCode = &statusCode + + httpStatusErr = fmt.Sprintf( + "unexpected HTTP status code received from server: %d (%s)", + statusCode, + http.StatusText(statusCode), + ) + default: + if isReservedHeader(hf.Name) && !isWhitelistedHeader(hf.Name) { + break + } + v, err := decodeMetadataHeader(hf.Name, hf.Value) + if err != nil { + headerError = fmt.Sprintf("transport: malformed %s: %v", hf.Name, err) + logger.Warningf("Failed to decode metadata header (%q, %q): %v", hf.Name, hf.Value, err) + break + } + mdata[hf.Name] = append(mdata[hf.Name], v) + } + } + + if !isGRPC || httpStatusErr != "" { + var code = codes.Internal // when header does not include HTTP status, return INTERNAL + + if httpStatusCode != nil { + var ok bool + code, ok = HTTPStatusConvTab[*httpStatusCode] + if !ok { + code = codes.Unknown + } + } + var errs []string + if httpStatusErr != "" { + errs = append(errs, httpStatusErr) + } + if contentTypeErr != "" { + errs = append(errs, contentTypeErr) + } + // Verify the HTTP response is a 200. + se := status.New(code, strings.Join(errs, "; ")) + t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream) + return + } + + if headerError != "" { + se := status.New(codes.Internal, headerError) + t.closeStream(s, se.Err(), true, http2.ErrCodeProtocol, se, nil, endStream) + return + } + + isHeader := false + + // If headerChan hasn't been closed yet + if atomic.CompareAndSwapUint32(&s.headerChanClosed, 0, 1) { + s.headerValid = true + if !endStream { + // HEADERS frame block carries a Response-Headers. + isHeader = true + // These values can be set without any synchronization because + // stream goroutine will read it only after seeing a closed + // headerChan which we'll close after setting this. + s.recvCompress = recvCompress + if len(mdata) > 0 { + s.header = mdata + } + } else { + // HEADERS frame block carries a Trailers-Only. + s.noHeaders = true + } + close(s.headerChan) + } + + for _, sh := range t.statsHandlers { + if isHeader { + inHeader := &stats.InHeader{ + Client: true, + WireLength: int(frame.Header().Length), + Header: metadata.MD(mdata).Copy(), + Compression: s.recvCompress, + } + sh.HandleRPC(s.ctx, inHeader) + } else { + inTrailer := &stats.InTrailer{ + Client: true, + WireLength: int(frame.Header().Length), + Trailer: metadata.MD(mdata).Copy(), + } + sh.HandleRPC(s.ctx, inTrailer) + } + } + + if !endStream { + return + } + + if statusGen == nil { + statusGen = status.New(rawStatusCode, grpcMessage) + } + + // if client received END_STREAM from server while stream was still active, send RST_STREAM + rst := s.getState() == streamActive + t.closeStream(s, io.EOF, rst, http2.ErrCodeNo, statusGen, mdata, true) +} + +// readServerPreface reads and handles the initial settings frame from the +// server. +func (t *http2Client) readServerPreface() error { + frame, err := t.framer.fr.ReadFrame() + if err != nil { + return connectionErrorf(true, err, "error reading server preface: %v", err) + } + sf, ok := frame.(*http2.SettingsFrame) + if !ok { + return connectionErrorf(true, nil, "initial http2 frame from server is not a settings frame: %T", frame) + } + t.handleSettings(sf, true) + return nil +} + +// reader verifies the server preface and reads all subsequent data from +// network connection. If the server preface is not read successfully, an +// error is pushed to errCh; otherwise errCh is closed with no error. +func (t *http2Client) reader(errCh chan<- error) { + defer close(t.readerDone) + + if err := t.readServerPreface(); err != nil { + errCh <- err + return + } + close(errCh) + if t.keepaliveEnabled { + atomic.StoreInt64(&t.lastRead, time.Now().UnixNano()) + } + + // loop to keep reading incoming messages on this transport. + for { + t.controlBuf.throttle() + frame, err := t.framer.fr.ReadFrame() + if t.keepaliveEnabled { + atomic.StoreInt64(&t.lastRead, time.Now().UnixNano()) + } + if err != nil { + // Abort an active stream if the http2.Framer returns a + // http2.StreamError. This can happen only if the server's response + // is malformed http2. + if se, ok := err.(http2.StreamError); ok { + t.mu.Lock() + s := t.activeStreams[se.StreamID] + t.mu.Unlock() + if s != nil { + // use error detail to provide better err message + code := http2ErrConvTab[se.Code] + errorDetail := t.framer.fr.ErrorDetail() + var msg string + if errorDetail != nil { + msg = errorDetail.Error() + } else { + msg = "received invalid frame" + } + t.closeStream(s, status.Error(code, msg), true, http2.ErrCodeProtocol, status.New(code, msg), nil, false) + } + continue + } else { + // Transport error. + t.Close(connectionErrorf(true, err, "error reading from server: %v", err)) + return + } + } + switch frame := frame.(type) { + case *http2.MetaHeadersFrame: + t.operateHeaders(frame) + case *http2.DataFrame: + t.handleData(frame) + case *http2.RSTStreamFrame: + t.handleRSTStream(frame) + case *http2.SettingsFrame: + t.handleSettings(frame, false) + case *http2.PingFrame: + t.handlePing(frame) + case *http2.GoAwayFrame: + t.handleGoAway(frame) + case *http2.WindowUpdateFrame: + t.handleWindowUpdate(frame) + default: + if logger.V(logLevel) { + logger.Errorf("transport: http2Client.reader got unhandled frame type %v.", frame) + } + } + } +} + +func minTime(a, b time.Duration) time.Duration { + if a < b { + return a + } + return b +} + +// keepalive running in a separate goroutine makes sure the connection is alive by sending pings. +func (t *http2Client) keepalive() { + p := &ping{data: [8]byte{}} + // True iff a ping has been sent, and no data has been received since then. + outstandingPing := false + // Amount of time remaining before which we should receive an ACK for the + // last sent ping. + timeoutLeft := time.Duration(0) + // Records the last value of t.lastRead before we go block on the timer. + // This is required to check for read activity since then. + prevNano := time.Now().UnixNano() + timer := time.NewTimer(t.kp.Time) + for { + select { + case <-timer.C: + lastRead := atomic.LoadInt64(&t.lastRead) + if lastRead > prevNano { + // There has been read activity since the last time we were here. + outstandingPing = false + // Next timer should fire at kp.Time seconds from lastRead time. + timer.Reset(time.Duration(lastRead) + t.kp.Time - time.Duration(time.Now().UnixNano())) + prevNano = lastRead + continue + } + if outstandingPing && timeoutLeft <= 0 { + t.Close(connectionErrorf(true, nil, "keepalive ping failed to receive ACK within timeout")) + return + } + t.mu.Lock() + if t.state == closing { + // If the transport is closing, we should exit from the + // keepalive goroutine here. If not, we could have a race + // between the call to Signal() from Close() and the call to + // Wait() here, whereby the keepalive goroutine ends up + // blocking on the condition variable which will never be + // signalled again. + t.mu.Unlock() + return + } + if len(t.activeStreams) < 1 && !t.kp.PermitWithoutStream { + // If a ping was sent out previously (because there were active + // streams at that point) which wasn't acked and its timeout + // hadn't fired, but we got here and are about to go dormant, + // we should make sure that we unconditionally send a ping once + // we awaken. + outstandingPing = false + t.kpDormant = true + t.kpDormancyCond.Wait() + } + t.kpDormant = false + t.mu.Unlock() + + // We get here either because we were dormant and a new stream was + // created which unblocked the Wait() call, or because the + // keepalive timer expired. In both cases, we need to send a ping. + if !outstandingPing { + if channelz.IsOn() { + atomic.AddInt64(&t.czData.kpCount, 1) + } + t.controlBuf.put(p) + timeoutLeft = t.kp.Timeout + outstandingPing = true + } + // The amount of time to sleep here is the minimum of kp.Time and + // timeoutLeft. This will ensure that we wait only for kp.Time + // before sending out the next ping (for cases where the ping is + // acked). + sleepDuration := minTime(t.kp.Time, timeoutLeft) + timeoutLeft -= sleepDuration + timer.Reset(sleepDuration) + case <-t.ctx.Done(): + if !timer.Stop() { + <-timer.C + } + return + } + } +} + +func (t *http2Client) Error() <-chan struct{} { + return t.ctx.Done() +} + +func (t *http2Client) GoAway() <-chan struct{} { + return t.goAway +} + +func (t *http2Client) ChannelzMetric() *channelz.SocketInternalMetric { + s := channelz.SocketInternalMetric{ + StreamsStarted: atomic.LoadInt64(&t.czData.streamsStarted), + StreamsSucceeded: atomic.LoadInt64(&t.czData.streamsSucceeded), + StreamsFailed: atomic.LoadInt64(&t.czData.streamsFailed), + MessagesSent: atomic.LoadInt64(&t.czData.msgSent), + MessagesReceived: atomic.LoadInt64(&t.czData.msgRecv), + KeepAlivesSent: atomic.LoadInt64(&t.czData.kpCount), + LastLocalStreamCreatedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastStreamCreatedTime)), + LastMessageSentTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgSentTime)), + LastMessageReceivedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgRecvTime)), + LocalFlowControlWindow: int64(t.fc.getSize()), + SocketOptions: channelz.GetSocketOption(t.conn), + LocalAddr: t.localAddr, + RemoteAddr: t.remoteAddr, + // RemoteName : + } + if au, ok := t.authInfo.(credentials.ChannelzSecurityInfo); ok { + s.Security = au.GetSecurityValue() + } + s.RemoteFlowControlWindow = t.getOutFlowWindow() + return &s +} + +func (t *http2Client) RemoteAddr() net.Addr { return t.remoteAddr } + +func (t *http2Client) IncrMsgSent() { + atomic.AddInt64(&t.czData.msgSent, 1) + atomic.StoreInt64(&t.czData.lastMsgSentTime, time.Now().UnixNano()) +} + +func (t *http2Client) IncrMsgRecv() { + atomic.AddInt64(&t.czData.msgRecv, 1) + atomic.StoreInt64(&t.czData.lastMsgRecvTime, time.Now().UnixNano()) +} + +func (t *http2Client) getOutFlowWindow() int64 { + resp := make(chan uint32, 1) + timer := time.NewTimer(time.Second) + defer timer.Stop() + t.controlBuf.put(&outFlowControlSizeRequest{resp}) + select { + case sz := <-resp: + return int64(sz) + case <-t.ctxDone: + return -1 + case <-timer.C: + return -2 + } +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_server.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_server.go new file mode 100644 index 0000000000..37e089bc84 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http2_server.go @@ -0,0 +1,1439 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bytes" + "context" + "errors" + "fmt" + "io" + "math" + "net" + "net/http" + "strconv" + "sync" + "sync/atomic" + "time" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + "google.golang.org/grpc/internal/grpcutil" + "google.golang.org/grpc/internal/syscall" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/grpcrand" + "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/tap" +) + +var ( + // ErrIllegalHeaderWrite indicates that setting header is illegal because of + // the stream's state. + ErrIllegalHeaderWrite = status.Error(codes.Internal, "transport: SendHeader called multiple times") + // ErrHeaderListSizeLimitViolation indicates that the header list size is larger + // than the limit set by peer. + ErrHeaderListSizeLimitViolation = status.Error(codes.Internal, "transport: trying to send header list size larger than the limit set by peer") +) + +// serverConnectionCounter counts the number of connections a server has seen +// (equal to the number of http2Servers created). Must be accessed atomically. +var serverConnectionCounter uint64 + +// http2Server implements the ServerTransport interface with HTTP2. +type http2Server struct { + lastRead int64 // Keep this field 64-bit aligned. Accessed atomically. + ctx context.Context + done chan struct{} + conn net.Conn + loopy *loopyWriter + readerDone chan struct{} // sync point to enable testing. + writerDone chan struct{} // sync point to enable testing. + remoteAddr net.Addr + localAddr net.Addr + authInfo credentials.AuthInfo // auth info about the connection + inTapHandle tap.ServerInHandle + framer *framer + // The max number of concurrent streams. + maxStreams uint32 + // controlBuf delivers all the control related tasks (e.g., window + // updates, reset streams, and various settings) to the controller. + controlBuf *controlBuffer + fc *trInFlow + stats []stats.Handler + // Keepalive and max-age parameters for the server. + kp keepalive.ServerParameters + // Keepalive enforcement policy. + kep keepalive.EnforcementPolicy + // The time instance last ping was received. + lastPingAt time.Time + // Number of times the client has violated keepalive ping policy so far. + pingStrikes uint8 + // Flag to signify that number of ping strikes should be reset to 0. + // This is set whenever data or header frames are sent. + // 1 means yes. + resetPingStrikes uint32 // Accessed atomically. + initialWindowSize int32 + bdpEst *bdpEstimator + maxSendHeaderListSize *uint32 + + mu sync.Mutex // guard the following + + // drainEvent is initialized when Drain() is called the first time. After + // which the server writes out the first GoAway(with ID 2^31-1) frame. Then + // an independent goroutine will be launched to later send the second + // GoAway. During this time we don't want to write another first GoAway(with + // ID 2^31 -1) frame. Thus call to Drain() will be a no-op if drainEvent is + // already initialized since draining is already underway. + drainEvent *grpcsync.Event + state transportState + activeStreams map[uint32]*Stream + // idle is the time instant when the connection went idle. + // This is either the beginning of the connection or when the number of + // RPCs go down to 0. + // When the connection is busy, this value is set to 0. + idle time.Time + + // Fields below are for channelz metric collection. + channelzID *channelz.Identifier + czData *channelzData + bufferPool *bufferPool + + connectionID uint64 + + // maxStreamMu guards the maximum stream ID + // This lock may not be taken if mu is already held. + maxStreamMu sync.Mutex + maxStreamID uint32 // max stream ID ever seen +} + +// NewServerTransport creates a http2 transport with conn and configuration +// options from config. +// +// It returns a non-nil transport and a nil error on success. On failure, it +// returns a nil transport and a non-nil error. For a special case where the +// underlying conn gets closed before the client preface could be read, it +// returns a nil transport and a nil error. +func NewServerTransport(conn net.Conn, config *ServerConfig) (_ ServerTransport, err error) { + var authInfo credentials.AuthInfo + rawConn := conn + if config.Credentials != nil { + var err error + conn, authInfo, err = config.Credentials.ServerHandshake(rawConn) + if err != nil { + // ErrConnDispatched means that the connection was dispatched away + // from gRPC; those connections should be left open. io.EOF means + // the connection was closed before handshaking completed, which can + // happen naturally from probers. Return these errors directly. + if err == credentials.ErrConnDispatched || err == io.EOF { + return nil, err + } + return nil, connectionErrorf(false, err, "ServerHandshake(%q) failed: %v", rawConn.RemoteAddr(), err) + } + } + writeBufSize := config.WriteBufferSize + readBufSize := config.ReadBufferSize + maxHeaderListSize := defaultServerMaxHeaderListSize + if config.MaxHeaderListSize != nil { + maxHeaderListSize = *config.MaxHeaderListSize + } + framer := newFramer(conn, writeBufSize, readBufSize, maxHeaderListSize) + // Send initial settings as connection preface to client. + isettings := []http2.Setting{{ + ID: http2.SettingMaxFrameSize, + Val: http2MaxFrameLen, + }} + // TODO(zhaoq): Have a better way to signal "no limit" because 0 is + // permitted in the HTTP2 spec. + maxStreams := config.MaxStreams + if maxStreams == 0 { + maxStreams = math.MaxUint32 + } else { + isettings = append(isettings, http2.Setting{ + ID: http2.SettingMaxConcurrentStreams, + Val: maxStreams, + }) + } + dynamicWindow := true + iwz := int32(initialWindowSize) + if config.InitialWindowSize >= defaultWindowSize { + iwz = config.InitialWindowSize + dynamicWindow = false + } + icwz := int32(initialWindowSize) + if config.InitialConnWindowSize >= defaultWindowSize { + icwz = config.InitialConnWindowSize + dynamicWindow = false + } + if iwz != defaultWindowSize { + isettings = append(isettings, http2.Setting{ + ID: http2.SettingInitialWindowSize, + Val: uint32(iwz)}) + } + if config.MaxHeaderListSize != nil { + isettings = append(isettings, http2.Setting{ + ID: http2.SettingMaxHeaderListSize, + Val: *config.MaxHeaderListSize, + }) + } + if config.HeaderTableSize != nil { + isettings = append(isettings, http2.Setting{ + ID: http2.SettingHeaderTableSize, + Val: *config.HeaderTableSize, + }) + } + if err := framer.fr.WriteSettings(isettings...); err != nil { + return nil, connectionErrorf(false, err, "transport: %v", err) + } + // Adjust the connection flow control window if needed. + if delta := uint32(icwz - defaultWindowSize); delta > 0 { + if err := framer.fr.WriteWindowUpdate(0, delta); err != nil { + return nil, connectionErrorf(false, err, "transport: %v", err) + } + } + kp := config.KeepaliveParams + if kp.MaxConnectionIdle == 0 { + kp.MaxConnectionIdle = defaultMaxConnectionIdle + } + if kp.MaxConnectionAge == 0 { + kp.MaxConnectionAge = defaultMaxConnectionAge + } + // Add a jitter to MaxConnectionAge. + kp.MaxConnectionAge += getJitter(kp.MaxConnectionAge) + if kp.MaxConnectionAgeGrace == 0 { + kp.MaxConnectionAgeGrace = defaultMaxConnectionAgeGrace + } + if kp.Time == 0 { + kp.Time = defaultServerKeepaliveTime + } + if kp.Timeout == 0 { + kp.Timeout = defaultServerKeepaliveTimeout + } + if kp.Time != infinity { + if err = syscall.SetTCPUserTimeout(conn, kp.Timeout); err != nil { + return nil, connectionErrorf(false, err, "transport: failed to set TCP_USER_TIMEOUT: %v", err) + } + } + kep := config.KeepalivePolicy + if kep.MinTime == 0 { + kep.MinTime = defaultKeepalivePolicyMinTime + } + + done := make(chan struct{}) + t := &http2Server{ + ctx: setConnection(context.Background(), rawConn), + done: done, + conn: conn, + remoteAddr: conn.RemoteAddr(), + localAddr: conn.LocalAddr(), + authInfo: authInfo, + framer: framer, + readerDone: make(chan struct{}), + writerDone: make(chan struct{}), + maxStreams: maxStreams, + inTapHandle: config.InTapHandle, + fc: &trInFlow{limit: uint32(icwz)}, + state: reachable, + activeStreams: make(map[uint32]*Stream), + stats: config.StatsHandlers, + kp: kp, + idle: time.Now(), + kep: kep, + initialWindowSize: iwz, + czData: new(channelzData), + bufferPool: newBufferPool(), + } + // Add peer information to the http2server context. + t.ctx = peer.NewContext(t.ctx, t.getPeer()) + + t.controlBuf = newControlBuffer(t.done) + if dynamicWindow { + t.bdpEst = &bdpEstimator{ + bdp: initialWindowSize, + updateFlowControl: t.updateFlowControl, + } + } + for _, sh := range t.stats { + t.ctx = sh.TagConn(t.ctx, &stats.ConnTagInfo{ + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + }) + connBegin := &stats.ConnBegin{} + sh.HandleConn(t.ctx, connBegin) + } + t.channelzID, err = channelz.RegisterNormalSocket(t, config.ChannelzParentID, fmt.Sprintf("%s -> %s", t.remoteAddr, t.localAddr)) + if err != nil { + return nil, err + } + + t.connectionID = atomic.AddUint64(&serverConnectionCounter, 1) + t.framer.writer.Flush() + + defer func() { + if err != nil { + t.Close(err) + } + }() + + // Check the validity of client preface. + preface := make([]byte, len(clientPreface)) + if _, err := io.ReadFull(t.conn, preface); err != nil { + // In deployments where a gRPC server runs behind a cloud load balancer + // which performs regular TCP level health checks, the connection is + // closed immediately by the latter. Returning io.EOF here allows the + // grpc server implementation to recognize this scenario and suppress + // logging to reduce spam. + if err == io.EOF { + return nil, io.EOF + } + return nil, connectionErrorf(false, err, "transport: http2Server.HandleStreams failed to receive the preface from client: %v", err) + } + if !bytes.Equal(preface, clientPreface) { + return nil, connectionErrorf(false, nil, "transport: http2Server.HandleStreams received bogus greeting from client: %q", preface) + } + + frame, err := t.framer.fr.ReadFrame() + if err == io.EOF || err == io.ErrUnexpectedEOF { + return nil, err + } + if err != nil { + return nil, connectionErrorf(false, err, "transport: http2Server.HandleStreams failed to read initial settings frame: %v", err) + } + atomic.StoreInt64(&t.lastRead, time.Now().UnixNano()) + sf, ok := frame.(*http2.SettingsFrame) + if !ok { + return nil, connectionErrorf(false, nil, "transport: http2Server.HandleStreams saw invalid preface type %T from client", frame) + } + t.handleSettings(sf) + + go func() { + t.loopy = newLoopyWriter(serverSide, t.framer, t.controlBuf, t.bdpEst) + t.loopy.ssGoAwayHandler = t.outgoingGoAwayHandler + err := t.loopy.run() + if logger.V(logLevel) { + logger.Infof("transport: loopyWriter exited. Closing connection. Err: %v", err) + } + t.conn.Close() + t.controlBuf.finish() + close(t.writerDone) + }() + go t.keepalive() + return t, nil +} + +// operateHeaders takes action on the decoded headers. Returns an error if fatal +// error encountered and transport needs to close, otherwise returns nil. +func (t *http2Server) operateHeaders(frame *http2.MetaHeadersFrame, handle func(*Stream), traceCtx func(context.Context, string) context.Context) error { + // Acquire max stream ID lock for entire duration + t.maxStreamMu.Lock() + defer t.maxStreamMu.Unlock() + + streamID := frame.Header().StreamID + + // frame.Truncated is set to true when framer detects that the current header + // list size hits MaxHeaderListSize limit. + if frame.Truncated { + t.controlBuf.put(&cleanupStream{ + streamID: streamID, + rst: true, + rstCode: http2.ErrCodeFrameSize, + onWrite: func() {}, + }) + return nil + } + + if streamID%2 != 1 || streamID <= t.maxStreamID { + // illegal gRPC stream id. + return fmt.Errorf("received an illegal stream id: %v. headers frame: %+v", streamID, frame) + } + t.maxStreamID = streamID + + buf := newRecvBuffer() + s := &Stream{ + id: streamID, + st: t, + buf: buf, + fc: &inFlow{limit: uint32(t.initialWindowSize)}, + } + var ( + // If a gRPC Response-Headers has already been received, then it means + // that the peer is speaking gRPC and we are in gRPC mode. + isGRPC = false + mdata = make(map[string][]string) + httpMethod string + // headerError is set if an error is encountered while parsing the headers + headerError bool + + timeoutSet bool + timeout time.Duration + ) + + for _, hf := range frame.Fields { + switch hf.Name { + case "content-type": + contentSubtype, validContentType := grpcutil.ContentSubtype(hf.Value) + if !validContentType { + break + } + mdata[hf.Name] = append(mdata[hf.Name], hf.Value) + s.contentSubtype = contentSubtype + isGRPC = true + case "grpc-encoding": + s.recvCompress = hf.Value + case ":method": + httpMethod = hf.Value + case ":path": + s.method = hf.Value + case "grpc-timeout": + timeoutSet = true + var err error + if timeout, err = decodeTimeout(hf.Value); err != nil { + headerError = true + } + // "Transports must consider requests containing the Connection header + // as malformed." - A41 + case "connection": + if logger.V(logLevel) { + logger.Errorf("transport: http2Server.operateHeaders parsed a :connection header which makes a request malformed as per the HTTP/2 spec") + } + headerError = true + default: + if isReservedHeader(hf.Name) && !isWhitelistedHeader(hf.Name) { + break + } + v, err := decodeMetadataHeader(hf.Name, hf.Value) + if err != nil { + headerError = true + logger.Warningf("Failed to decode metadata header (%q, %q): %v", hf.Name, hf.Value, err) + break + } + mdata[hf.Name] = append(mdata[hf.Name], v) + } + } + + // "If multiple Host headers or multiple :authority headers are present, the + // request must be rejected with an HTTP status code 400 as required by Host + // validation in RFC 7230 §5.4, gRPC status code INTERNAL, or RST_STREAM + // with HTTP/2 error code PROTOCOL_ERROR." - A41. Since this is a HTTP/2 + // error, this takes precedence over a client not speaking gRPC. + if len(mdata[":authority"]) > 1 || len(mdata["host"]) > 1 { + errMsg := fmt.Sprintf("num values of :authority: %v, num values of host: %v, both must only have 1 value as per HTTP/2 spec", len(mdata[":authority"]), len(mdata["host"])) + if logger.V(logLevel) { + logger.Errorf("transport: %v", errMsg) + } + t.controlBuf.put(&earlyAbortStream{ + httpStatus: 400, + streamID: streamID, + contentSubtype: s.contentSubtype, + status: status.New(codes.Internal, errMsg), + rst: !frame.StreamEnded(), + }) + return nil + } + + if !isGRPC || headerError { + t.controlBuf.put(&cleanupStream{ + streamID: streamID, + rst: true, + rstCode: http2.ErrCodeProtocol, + onWrite: func() {}, + }) + return nil + } + + // "If :authority is missing, Host must be renamed to :authority." - A41 + if len(mdata[":authority"]) == 0 { + // No-op if host isn't present, no eventual :authority header is a valid + // RPC. + if host, ok := mdata["host"]; ok { + mdata[":authority"] = host + delete(mdata, "host") + } + } else { + // "If :authority is present, Host must be discarded" - A41 + delete(mdata, "host") + } + + if frame.StreamEnded() { + // s is just created by the caller. No lock needed. + s.state = streamReadDone + } + if timeoutSet { + s.ctx, s.cancel = context.WithTimeout(t.ctx, timeout) + } else { + s.ctx, s.cancel = context.WithCancel(t.ctx) + } + + // Attach the received metadata to the context. + if len(mdata) > 0 { + s.ctx = metadata.NewIncomingContext(s.ctx, mdata) + if statsTags := mdata["grpc-tags-bin"]; len(statsTags) > 0 { + s.ctx = stats.SetIncomingTags(s.ctx, []byte(statsTags[len(statsTags)-1])) + } + if statsTrace := mdata["grpc-trace-bin"]; len(statsTrace) > 0 { + s.ctx = stats.SetIncomingTrace(s.ctx, []byte(statsTrace[len(statsTrace)-1])) + } + } + t.mu.Lock() + if t.state != reachable { + t.mu.Unlock() + s.cancel() + return nil + } + if uint32(len(t.activeStreams)) >= t.maxStreams { + t.mu.Unlock() + t.controlBuf.put(&cleanupStream{ + streamID: streamID, + rst: true, + rstCode: http2.ErrCodeRefusedStream, + onWrite: func() {}, + }) + s.cancel() + return nil + } + if httpMethod != http.MethodPost { + t.mu.Unlock() + errMsg := fmt.Sprintf("http2Server.operateHeaders parsed a :method field: %v which should be POST", httpMethod) + if logger.V(logLevel) { + logger.Infof("transport: %v", errMsg) + } + t.controlBuf.put(&earlyAbortStream{ + httpStatus: 405, + streamID: streamID, + contentSubtype: s.contentSubtype, + status: status.New(codes.Internal, errMsg), + rst: !frame.StreamEnded(), + }) + s.cancel() + return nil + } + if t.inTapHandle != nil { + var err error + if s.ctx, err = t.inTapHandle(s.ctx, &tap.Info{FullMethodName: s.method}); err != nil { + t.mu.Unlock() + if logger.V(logLevel) { + logger.Infof("transport: http2Server.operateHeaders got an error from InTapHandle: %v", err) + } + stat, ok := status.FromError(err) + if !ok { + stat = status.New(codes.PermissionDenied, err.Error()) + } + t.controlBuf.put(&earlyAbortStream{ + httpStatus: 200, + streamID: s.id, + contentSubtype: s.contentSubtype, + status: stat, + rst: !frame.StreamEnded(), + }) + return nil + } + } + t.activeStreams[streamID] = s + if len(t.activeStreams) == 1 { + t.idle = time.Time{} + } + t.mu.Unlock() + if channelz.IsOn() { + atomic.AddInt64(&t.czData.streamsStarted, 1) + atomic.StoreInt64(&t.czData.lastStreamCreatedTime, time.Now().UnixNano()) + } + s.requestRead = func(n int) { + t.adjustWindow(s, uint32(n)) + } + s.ctx = traceCtx(s.ctx, s.method) + for _, sh := range t.stats { + s.ctx = sh.TagRPC(s.ctx, &stats.RPCTagInfo{FullMethodName: s.method}) + inHeader := &stats.InHeader{ + FullMethod: s.method, + RemoteAddr: t.remoteAddr, + LocalAddr: t.localAddr, + Compression: s.recvCompress, + WireLength: int(frame.Header().Length), + Header: metadata.MD(mdata).Copy(), + } + sh.HandleRPC(s.ctx, inHeader) + } + s.ctxDone = s.ctx.Done() + s.wq = newWriteQuota(defaultWriteQuota, s.ctxDone) + s.trReader = &transportReader{ + reader: &recvBufferReader{ + ctx: s.ctx, + ctxDone: s.ctxDone, + recv: s.buf, + freeBuffer: t.bufferPool.put, + }, + windowHandler: func(n int) { + t.updateWindow(s, uint32(n)) + }, + } + // Register the stream with loopy. + t.controlBuf.put(®isterStream{ + streamID: s.id, + wq: s.wq, + }) + handle(s) + return nil +} + +// HandleStreams receives incoming streams using the given handler. This is +// typically run in a separate goroutine. +// traceCtx attaches trace to ctx and returns the new context. +func (t *http2Server) HandleStreams(handle func(*Stream), traceCtx func(context.Context, string) context.Context) { + defer close(t.readerDone) + for { + t.controlBuf.throttle() + frame, err := t.framer.fr.ReadFrame() + atomic.StoreInt64(&t.lastRead, time.Now().UnixNano()) + if err != nil { + if se, ok := err.(http2.StreamError); ok { + if logger.V(logLevel) { + logger.Warningf("transport: http2Server.HandleStreams encountered http2.StreamError: %v", se) + } + t.mu.Lock() + s := t.activeStreams[se.StreamID] + t.mu.Unlock() + if s != nil { + t.closeStream(s, true, se.Code, false) + } else { + t.controlBuf.put(&cleanupStream{ + streamID: se.StreamID, + rst: true, + rstCode: se.Code, + onWrite: func() {}, + }) + } + continue + } + if err == io.EOF || err == io.ErrUnexpectedEOF { + t.Close(err) + return + } + t.Close(err) + return + } + switch frame := frame.(type) { + case *http2.MetaHeadersFrame: + if err := t.operateHeaders(frame, handle, traceCtx); err != nil { + t.Close(err) + break + } + case *http2.DataFrame: + t.handleData(frame) + case *http2.RSTStreamFrame: + t.handleRSTStream(frame) + case *http2.SettingsFrame: + t.handleSettings(frame) + case *http2.PingFrame: + t.handlePing(frame) + case *http2.WindowUpdateFrame: + t.handleWindowUpdate(frame) + case *http2.GoAwayFrame: + // TODO: Handle GoAway from the client appropriately. + default: + if logger.V(logLevel) { + logger.Errorf("transport: http2Server.HandleStreams found unhandled frame type %v.", frame) + } + } + } +} + +func (t *http2Server) getStream(f http2.Frame) (*Stream, bool) { + t.mu.Lock() + defer t.mu.Unlock() + if t.activeStreams == nil { + // The transport is closing. + return nil, false + } + s, ok := t.activeStreams[f.Header().StreamID] + if !ok { + // The stream is already done. + return nil, false + } + return s, true +} + +// adjustWindow sends out extra window update over the initial window size +// of stream if the application is requesting data larger in size than +// the window. +func (t *http2Server) adjustWindow(s *Stream, n uint32) { + if w := s.fc.maybeAdjust(n); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, increment: w}) + } + +} + +// updateWindow adjusts the inbound quota for the stream and the transport. +// Window updates will deliver to the controller for sending when +// the cumulative quota exceeds the corresponding threshold. +func (t *http2Server) updateWindow(s *Stream, n uint32) { + if w := s.fc.onRead(n); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{streamID: s.id, + increment: w, + }) + } +} + +// updateFlowControl updates the incoming flow control windows +// for the transport and the stream based on the current bdp +// estimation. +func (t *http2Server) updateFlowControl(n uint32) { + t.mu.Lock() + for _, s := range t.activeStreams { + s.fc.newLimit(n) + } + t.initialWindowSize = int32(n) + t.mu.Unlock() + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: 0, + increment: t.fc.newLimit(n), + }) + t.controlBuf.put(&outgoingSettings{ + ss: []http2.Setting{ + { + ID: http2.SettingInitialWindowSize, + Val: n, + }, + }, + }) + +} + +func (t *http2Server) handleData(f *http2.DataFrame) { + size := f.Header().Length + var sendBDPPing bool + if t.bdpEst != nil { + sendBDPPing = t.bdpEst.add(size) + } + // Decouple connection's flow control from application's read. + // An update on connection's flow control should not depend on + // whether user application has read the data or not. Such a + // restriction is already imposed on the stream's flow control, + // and therefore the sender will be blocked anyways. + // Decoupling the connection flow control will prevent other + // active(fast) streams from starving in presence of slow or + // inactive streams. + if w := t.fc.onData(size); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: 0, + increment: w, + }) + } + if sendBDPPing { + // Avoid excessive ping detection (e.g. in an L7 proxy) + // by sending a window update prior to the BDP ping. + if w := t.fc.reset(); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{ + streamID: 0, + increment: w, + }) + } + t.controlBuf.put(bdpPing) + } + // Select the right stream to dispatch. + s, ok := t.getStream(f) + if !ok { + return + } + if s.getState() == streamReadDone { + t.closeStream(s, true, http2.ErrCodeStreamClosed, false) + return + } + if size > 0 { + if err := s.fc.onData(size); err != nil { + t.closeStream(s, true, http2.ErrCodeFlowControl, false) + return + } + if f.Header().Flags.Has(http2.FlagDataPadded) { + if w := s.fc.onRead(size - uint32(len(f.Data()))); w > 0 { + t.controlBuf.put(&outgoingWindowUpdate{s.id, w}) + } + } + // TODO(bradfitz, zhaoq): A copy is required here because there is no + // guarantee f.Data() is consumed before the arrival of next frame. + // Can this copy be eliminated? + if len(f.Data()) > 0 { + buffer := t.bufferPool.get() + buffer.Reset() + buffer.Write(f.Data()) + s.write(recvMsg{buffer: buffer}) + } + } + if f.StreamEnded() { + // Received the end of stream from the client. + s.compareAndSwapState(streamActive, streamReadDone) + s.write(recvMsg{err: io.EOF}) + } +} + +func (t *http2Server) handleRSTStream(f *http2.RSTStreamFrame) { + // If the stream is not deleted from the transport's active streams map, then do a regular close stream. + if s, ok := t.getStream(f); ok { + t.closeStream(s, false, 0, false) + return + } + // If the stream is already deleted from the active streams map, then put a cleanupStream item into controlbuf to delete the stream from loopy writer's established streams map. + t.controlBuf.put(&cleanupStream{ + streamID: f.Header().StreamID, + rst: false, + rstCode: 0, + onWrite: func() {}, + }) +} + +func (t *http2Server) handleSettings(f *http2.SettingsFrame) { + if f.IsAck() { + return + } + var ss []http2.Setting + var updateFuncs []func() + f.ForeachSetting(func(s http2.Setting) error { + switch s.ID { + case http2.SettingMaxHeaderListSize: + updateFuncs = append(updateFuncs, func() { + t.maxSendHeaderListSize = new(uint32) + *t.maxSendHeaderListSize = s.Val + }) + default: + ss = append(ss, s) + } + return nil + }) + t.controlBuf.executeAndPut(func(interface{}) bool { + for _, f := range updateFuncs { + f() + } + return true + }, &incomingSettings{ + ss: ss, + }) +} + +const ( + maxPingStrikes = 2 + defaultPingTimeout = 2 * time.Hour +) + +func (t *http2Server) handlePing(f *http2.PingFrame) { + if f.IsAck() { + if f.Data == goAwayPing.data && t.drainEvent != nil { + t.drainEvent.Fire() + return + } + // Maybe it's a BDP ping. + if t.bdpEst != nil { + t.bdpEst.calculate(f.Data) + } + return + } + pingAck := &ping{ack: true} + copy(pingAck.data[:], f.Data[:]) + t.controlBuf.put(pingAck) + + now := time.Now() + defer func() { + t.lastPingAt = now + }() + // A reset ping strikes means that we don't need to check for policy + // violation for this ping and the pingStrikes counter should be set + // to 0. + if atomic.CompareAndSwapUint32(&t.resetPingStrikes, 1, 0) { + t.pingStrikes = 0 + return + } + t.mu.Lock() + ns := len(t.activeStreams) + t.mu.Unlock() + if ns < 1 && !t.kep.PermitWithoutStream { + // Keepalive shouldn't be active thus, this new ping should + // have come after at least defaultPingTimeout. + if t.lastPingAt.Add(defaultPingTimeout).After(now) { + t.pingStrikes++ + } + } else { + // Check if keepalive policy is respected. + if t.lastPingAt.Add(t.kep.MinTime).After(now) { + t.pingStrikes++ + } + } + + if t.pingStrikes > maxPingStrikes { + // Send goaway and close the connection. + t.controlBuf.put(&goAway{code: http2.ErrCodeEnhanceYourCalm, debugData: []byte("too_many_pings"), closeConn: errors.New("got too many pings from the client")}) + } +} + +func (t *http2Server) handleWindowUpdate(f *http2.WindowUpdateFrame) { + t.controlBuf.put(&incomingWindowUpdate{ + streamID: f.Header().StreamID, + increment: f.Increment, + }) +} + +func appendHeaderFieldsFromMD(headerFields []hpack.HeaderField, md metadata.MD) []hpack.HeaderField { + for k, vv := range md { + if isReservedHeader(k) { + // Clients don't tolerate reading restricted headers after some non restricted ones were sent. + continue + } + for _, v := range vv { + headerFields = append(headerFields, hpack.HeaderField{Name: k, Value: encodeMetadataHeader(k, v)}) + } + } + return headerFields +} + +func (t *http2Server) checkForHeaderListSize(it interface{}) bool { + if t.maxSendHeaderListSize == nil { + return true + } + hdrFrame := it.(*headerFrame) + var sz int64 + for _, f := range hdrFrame.hf { + if sz += int64(f.Size()); sz > int64(*t.maxSendHeaderListSize) { + if logger.V(logLevel) { + logger.Errorf("header list size to send violates the maximum size (%d bytes) set by client", *t.maxSendHeaderListSize) + } + return false + } + } + return true +} + +func (t *http2Server) streamContextErr(s *Stream) error { + select { + case <-t.done: + return ErrConnClosing + default: + } + return ContextErr(s.ctx.Err()) +} + +// WriteHeader sends the header metadata md back to the client. +func (t *http2Server) WriteHeader(s *Stream, md metadata.MD) error { + s.hdrMu.Lock() + defer s.hdrMu.Unlock() + if s.getState() == streamDone { + return t.streamContextErr(s) + } + + if s.updateHeaderSent() { + return ErrIllegalHeaderWrite + } + + if md.Len() > 0 { + if s.header.Len() > 0 { + s.header = metadata.Join(s.header, md) + } else { + s.header = md + } + } + if err := t.writeHeaderLocked(s); err != nil { + return status.Convert(err).Err() + } + return nil +} + +func (t *http2Server) setResetPingStrikes() { + atomic.StoreUint32(&t.resetPingStrikes, 1) +} + +func (t *http2Server) writeHeaderLocked(s *Stream) error { + // TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields + // first and create a slice of that exact size. + headerFields := make([]hpack.HeaderField, 0, 2) // at least :status, content-type will be there if none else. + headerFields = append(headerFields, hpack.HeaderField{Name: ":status", Value: "200"}) + headerFields = append(headerFields, hpack.HeaderField{Name: "content-type", Value: grpcutil.ContentType(s.contentSubtype)}) + if s.sendCompress != "" { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-encoding", Value: s.sendCompress}) + } + headerFields = appendHeaderFieldsFromMD(headerFields, s.header) + success, err := t.controlBuf.executeAndPut(t.checkForHeaderListSize, &headerFrame{ + streamID: s.id, + hf: headerFields, + endStream: false, + onWrite: t.setResetPingStrikes, + }) + if !success { + if err != nil { + return err + } + t.closeStream(s, true, http2.ErrCodeInternal, false) + return ErrHeaderListSizeLimitViolation + } + for _, sh := range t.stats { + // Note: Headers are compressed with hpack after this call returns. + // No WireLength field is set here. + outHeader := &stats.OutHeader{ + Header: s.header.Copy(), + Compression: s.sendCompress, + } + sh.HandleRPC(s.Context(), outHeader) + } + return nil +} + +// WriteStatus sends stream status to the client and terminates the stream. +// There is no further I/O operations being able to perform on this stream. +// TODO(zhaoq): Now it indicates the end of entire stream. Revisit if early +// OK is adopted. +func (t *http2Server) WriteStatus(s *Stream, st *status.Status) error { + s.hdrMu.Lock() + defer s.hdrMu.Unlock() + + if s.getState() == streamDone { + return nil + } + + // TODO(mmukhi): Benchmark if the performance gets better if count the metadata and other header fields + // first and create a slice of that exact size. + headerFields := make([]hpack.HeaderField, 0, 2) // grpc-status and grpc-message will be there if none else. + if !s.updateHeaderSent() { // No headers have been sent. + if len(s.header) > 0 { // Send a separate header frame. + if err := t.writeHeaderLocked(s); err != nil { + return err + } + } else { // Send a trailer only response. + headerFields = append(headerFields, hpack.HeaderField{Name: ":status", Value: "200"}) + headerFields = append(headerFields, hpack.HeaderField{Name: "content-type", Value: grpcutil.ContentType(s.contentSubtype)}) + } + } + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-status", Value: strconv.Itoa(int(st.Code()))}) + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-message", Value: encodeGrpcMessage(st.Message())}) + + if p := st.Proto(); p != nil && len(p.Details) > 0 { + stBytes, err := proto.Marshal(p) + if err != nil { + // TODO: return error instead, when callers are able to handle it. + logger.Errorf("transport: failed to marshal rpc status: %v, error: %v", p, err) + } else { + headerFields = append(headerFields, hpack.HeaderField{Name: "grpc-status-details-bin", Value: encodeBinHeader(stBytes)}) + } + } + + // Attach the trailer metadata. + headerFields = appendHeaderFieldsFromMD(headerFields, s.trailer) + trailingHeader := &headerFrame{ + streamID: s.id, + hf: headerFields, + endStream: true, + onWrite: t.setResetPingStrikes, + } + + success, err := t.controlBuf.execute(t.checkForHeaderListSize, trailingHeader) + if !success { + if err != nil { + return err + } + t.closeStream(s, true, http2.ErrCodeInternal, false) + return ErrHeaderListSizeLimitViolation + } + // Send a RST_STREAM after the trailers if the client has not already half-closed. + rst := s.getState() == streamActive + t.finishStream(s, rst, http2.ErrCodeNo, trailingHeader, true) + for _, sh := range t.stats { + // Note: The trailer fields are compressed with hpack after this call returns. + // No WireLength field is set here. + sh.HandleRPC(s.Context(), &stats.OutTrailer{ + Trailer: s.trailer.Copy(), + }) + } + return nil +} + +// Write converts the data into HTTP2 data frame and sends it out. Non-nil error +// is returns if it fails (e.g., framing error, transport error). +func (t *http2Server) Write(s *Stream, hdr []byte, data []byte, opts *Options) error { + if !s.isHeaderSent() { // Headers haven't been written yet. + if err := t.WriteHeader(s, nil); err != nil { + return err + } + } else { + // Writing headers checks for this condition. + if s.getState() == streamDone { + return t.streamContextErr(s) + } + } + df := &dataFrame{ + streamID: s.id, + h: hdr, + d: data, + onEachWrite: t.setResetPingStrikes, + } + if err := s.wq.get(int32(len(hdr) + len(data))); err != nil { + return t.streamContextErr(s) + } + return t.controlBuf.put(df) +} + +// keepalive running in a separate goroutine does the following: +// 1. Gracefully closes an idle connection after a duration of keepalive.MaxConnectionIdle. +// 2. Gracefully closes any connection after a duration of keepalive.MaxConnectionAge. +// 3. Forcibly closes a connection after an additive period of keepalive.MaxConnectionAgeGrace over keepalive.MaxConnectionAge. +// 4. Makes sure a connection is alive by sending pings with a frequency of keepalive.Time and closes a non-responsive connection +// after an additional duration of keepalive.Timeout. +func (t *http2Server) keepalive() { + p := &ping{} + // True iff a ping has been sent, and no data has been received since then. + outstandingPing := false + // Amount of time remaining before which we should receive an ACK for the + // last sent ping. + kpTimeoutLeft := time.Duration(0) + // Records the last value of t.lastRead before we go block on the timer. + // This is required to check for read activity since then. + prevNano := time.Now().UnixNano() + // Initialize the different timers to their default values. + idleTimer := time.NewTimer(t.kp.MaxConnectionIdle) + ageTimer := time.NewTimer(t.kp.MaxConnectionAge) + kpTimer := time.NewTimer(t.kp.Time) + defer func() { + // We need to drain the underlying channel in these timers after a call + // to Stop(), only if we are interested in resetting them. Clearly we + // are not interested in resetting them here. + idleTimer.Stop() + ageTimer.Stop() + kpTimer.Stop() + }() + + for { + select { + case <-idleTimer.C: + t.mu.Lock() + idle := t.idle + if idle.IsZero() { // The connection is non-idle. + t.mu.Unlock() + idleTimer.Reset(t.kp.MaxConnectionIdle) + continue + } + val := t.kp.MaxConnectionIdle - time.Since(idle) + t.mu.Unlock() + if val <= 0 { + // The connection has been idle for a duration of keepalive.MaxConnectionIdle or more. + // Gracefully close the connection. + t.Drain() + return + } + idleTimer.Reset(val) + case <-ageTimer.C: + t.Drain() + ageTimer.Reset(t.kp.MaxConnectionAgeGrace) + select { + case <-ageTimer.C: + // Close the connection after grace period. + if logger.V(logLevel) { + logger.Infof("transport: closing server transport due to maximum connection age.") + } + t.controlBuf.put(closeConnection{}) + case <-t.done: + } + return + case <-kpTimer.C: + lastRead := atomic.LoadInt64(&t.lastRead) + if lastRead > prevNano { + // There has been read activity since the last time we were + // here. Setup the timer to fire at kp.Time seconds from + // lastRead time and continue. + outstandingPing = false + kpTimer.Reset(time.Duration(lastRead) + t.kp.Time - time.Duration(time.Now().UnixNano())) + prevNano = lastRead + continue + } + if outstandingPing && kpTimeoutLeft <= 0 { + t.Close(fmt.Errorf("keepalive ping not acked within timeout %s", t.kp.Time)) + return + } + if !outstandingPing { + if channelz.IsOn() { + atomic.AddInt64(&t.czData.kpCount, 1) + } + t.controlBuf.put(p) + kpTimeoutLeft = t.kp.Timeout + outstandingPing = true + } + // The amount of time to sleep here is the minimum of kp.Time and + // timeoutLeft. This will ensure that we wait only for kp.Time + // before sending out the next ping (for cases where the ping is + // acked). + sleepDuration := minTime(t.kp.Time, kpTimeoutLeft) + kpTimeoutLeft -= sleepDuration + kpTimer.Reset(sleepDuration) + case <-t.done: + return + } + } +} + +// Close starts shutting down the http2Server transport. +// TODO(zhaoq): Now the destruction is not blocked on any pending streams. This +// could cause some resource issue. Revisit this later. +func (t *http2Server) Close(err error) { + t.mu.Lock() + if t.state == closing { + t.mu.Unlock() + return + } + if logger.V(logLevel) { + logger.Infof("transport: closing: %v", err) + } + t.state = closing + streams := t.activeStreams + t.activeStreams = nil + t.mu.Unlock() + t.controlBuf.finish() + close(t.done) + if err := t.conn.Close(); err != nil && logger.V(logLevel) { + logger.Infof("transport: error closing conn during Close: %v", err) + } + channelz.RemoveEntry(t.channelzID) + // Cancel all active streams. + for _, s := range streams { + s.cancel() + } + for _, sh := range t.stats { + connEnd := &stats.ConnEnd{} + sh.HandleConn(t.ctx, connEnd) + } +} + +// deleteStream deletes the stream s from transport's active streams. +func (t *http2Server) deleteStream(s *Stream, eosReceived bool) { + + t.mu.Lock() + if _, ok := t.activeStreams[s.id]; ok { + delete(t.activeStreams, s.id) + if len(t.activeStreams) == 0 { + t.idle = time.Now() + } + } + t.mu.Unlock() + + if channelz.IsOn() { + if eosReceived { + atomic.AddInt64(&t.czData.streamsSucceeded, 1) + } else { + atomic.AddInt64(&t.czData.streamsFailed, 1) + } + } +} + +// finishStream closes the stream and puts the trailing headerFrame into controlbuf. +func (t *http2Server) finishStream(s *Stream, rst bool, rstCode http2.ErrCode, hdr *headerFrame, eosReceived bool) { + // In case stream sending and receiving are invoked in separate + // goroutines (e.g., bi-directional streaming), cancel needs to be + // called to interrupt the potential blocking on other goroutines. + s.cancel() + + oldState := s.swapState(streamDone) + if oldState == streamDone { + // If the stream was already done, return. + return + } + + hdr.cleanup = &cleanupStream{ + streamID: s.id, + rst: rst, + rstCode: rstCode, + onWrite: func() { + t.deleteStream(s, eosReceived) + }, + } + t.controlBuf.put(hdr) +} + +// closeStream clears the footprint of a stream when the stream is not needed any more. +func (t *http2Server) closeStream(s *Stream, rst bool, rstCode http2.ErrCode, eosReceived bool) { + // In case stream sending and receiving are invoked in separate + // goroutines (e.g., bi-directional streaming), cancel needs to be + // called to interrupt the potential blocking on other goroutines. + s.cancel() + + s.swapState(streamDone) + t.deleteStream(s, eosReceived) + + t.controlBuf.put(&cleanupStream{ + streamID: s.id, + rst: rst, + rstCode: rstCode, + onWrite: func() {}, + }) +} + +func (t *http2Server) RemoteAddr() net.Addr { + return t.remoteAddr +} + +func (t *http2Server) Drain() { + t.mu.Lock() + defer t.mu.Unlock() + if t.drainEvent != nil { + return + } + t.drainEvent = grpcsync.NewEvent() + t.controlBuf.put(&goAway{code: http2.ErrCodeNo, debugData: []byte{}, headsUp: true}) +} + +var goAwayPing = &ping{data: [8]byte{1, 6, 1, 8, 0, 3, 3, 9}} + +// Handles outgoing GoAway and returns true if loopy needs to put itself +// in draining mode. +func (t *http2Server) outgoingGoAwayHandler(g *goAway) (bool, error) { + t.maxStreamMu.Lock() + t.mu.Lock() + if t.state == closing { // TODO(mmukhi): This seems unnecessary. + t.mu.Unlock() + t.maxStreamMu.Unlock() + // The transport is closing. + return false, ErrConnClosing + } + if !g.headsUp { + // Stop accepting more streams now. + t.state = draining + sid := t.maxStreamID + retErr := g.closeConn + if len(t.activeStreams) == 0 { + retErr = errors.New("second GOAWAY written and no active streams left to process") + } + t.mu.Unlock() + t.maxStreamMu.Unlock() + if err := t.framer.fr.WriteGoAway(sid, g.code, g.debugData); err != nil { + return false, err + } + if retErr != nil { + // Abruptly close the connection following the GoAway (via + // loopywriter). But flush out what's inside the buffer first. + t.framer.writer.Flush() + return false, retErr + } + return true, nil + } + t.mu.Unlock() + t.maxStreamMu.Unlock() + // For a graceful close, send out a GoAway with stream ID of MaxUInt32, + // Follow that with a ping and wait for the ack to come back or a timer + // to expire. During this time accept new streams since they might have + // originated before the GoAway reaches the client. + // After getting the ack or timer expiration send out another GoAway this + // time with an ID of the max stream server intends to process. + if err := t.framer.fr.WriteGoAway(math.MaxUint32, http2.ErrCodeNo, []byte{}); err != nil { + return false, err + } + if err := t.framer.fr.WritePing(false, goAwayPing.data); err != nil { + return false, err + } + go func() { + timer := time.NewTimer(time.Minute) + defer timer.Stop() + select { + case <-t.drainEvent.Done(): + case <-timer.C: + case <-t.done: + return + } + t.controlBuf.put(&goAway{code: g.code, debugData: g.debugData}) + }() + return false, nil +} + +func (t *http2Server) ChannelzMetric() *channelz.SocketInternalMetric { + s := channelz.SocketInternalMetric{ + StreamsStarted: atomic.LoadInt64(&t.czData.streamsStarted), + StreamsSucceeded: atomic.LoadInt64(&t.czData.streamsSucceeded), + StreamsFailed: atomic.LoadInt64(&t.czData.streamsFailed), + MessagesSent: atomic.LoadInt64(&t.czData.msgSent), + MessagesReceived: atomic.LoadInt64(&t.czData.msgRecv), + KeepAlivesSent: atomic.LoadInt64(&t.czData.kpCount), + LastRemoteStreamCreatedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastStreamCreatedTime)), + LastMessageSentTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgSentTime)), + LastMessageReceivedTimestamp: time.Unix(0, atomic.LoadInt64(&t.czData.lastMsgRecvTime)), + LocalFlowControlWindow: int64(t.fc.getSize()), + SocketOptions: channelz.GetSocketOption(t.conn), + LocalAddr: t.localAddr, + RemoteAddr: t.remoteAddr, + // RemoteName : + } + if au, ok := t.authInfo.(credentials.ChannelzSecurityInfo); ok { + s.Security = au.GetSecurityValue() + } + s.RemoteFlowControlWindow = t.getOutFlowWindow() + return &s +} + +func (t *http2Server) IncrMsgSent() { + atomic.AddInt64(&t.czData.msgSent, 1) + atomic.StoreInt64(&t.czData.lastMsgSentTime, time.Now().UnixNano()) +} + +func (t *http2Server) IncrMsgRecv() { + atomic.AddInt64(&t.czData.msgRecv, 1) + atomic.StoreInt64(&t.czData.lastMsgRecvTime, time.Now().UnixNano()) +} + +func (t *http2Server) getOutFlowWindow() int64 { + resp := make(chan uint32, 1) + timer := time.NewTimer(time.Second) + defer timer.Stop() + t.controlBuf.put(&outFlowControlSizeRequest{resp}) + select { + case sz := <-resp: + return int64(sz) + case <-t.done: + return -1 + case <-timer.C: + return -2 + } +} + +func (t *http2Server) getPeer() *peer.Peer { + return &peer.Peer{ + Addr: t.remoteAddr, + AuthInfo: t.authInfo, // Can be nil + } +} + +func getJitter(v time.Duration) time.Duration { + if v == infinity { + return 0 + } + // Generate a jitter between +/- 10% of the value. + r := int64(v / 10) + j := grpcrand.Int63n(2*r) - r + return time.Duration(j) +} + +type connectionKey struct{} + +// GetConnection gets the connection from the context. +func GetConnection(ctx context.Context) net.Conn { + conn, _ := ctx.Value(connectionKey{}).(net.Conn) + return conn +} + +// SetConnection adds the connection to the context to be able to get +// information about the destination ip and port for an incoming RPC. This also +// allows any unary or streaming interceptors to see the connection. +func setConnection(ctx context.Context, conn net.Conn) context.Context { + return context.WithValue(ctx, connectionKey{}, conn) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http_util.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http_util.go new file mode 100644 index 0000000000..2c601a864d --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/http_util.go @@ -0,0 +1,412 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bufio" + "encoding/base64" + "fmt" + "io" + "math" + "net" + "net/http" + "net/url" + "strconv" + "strings" + "time" + "unicode/utf8" + + "github.com/golang/protobuf/proto" + "golang.org/x/net/http2" + "golang.org/x/net/http2/hpack" + spb "google.golang.org/genproto/googleapis/rpc/status" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/status" +) + +const ( + // http2MaxFrameLen specifies the max length of a HTTP2 frame. + http2MaxFrameLen = 16384 // 16KB frame + // https://httpwg.org/specs/rfc7540.html#SettingValues + http2InitHeaderTableSize = 4096 +) + +var ( + clientPreface = []byte(http2.ClientPreface) + http2ErrConvTab = map[http2.ErrCode]codes.Code{ + http2.ErrCodeNo: codes.Internal, + http2.ErrCodeProtocol: codes.Internal, + http2.ErrCodeInternal: codes.Internal, + http2.ErrCodeFlowControl: codes.ResourceExhausted, + http2.ErrCodeSettingsTimeout: codes.Internal, + http2.ErrCodeStreamClosed: codes.Internal, + http2.ErrCodeFrameSize: codes.Internal, + http2.ErrCodeRefusedStream: codes.Unavailable, + http2.ErrCodeCancel: codes.Canceled, + http2.ErrCodeCompression: codes.Internal, + http2.ErrCodeConnect: codes.Internal, + http2.ErrCodeEnhanceYourCalm: codes.ResourceExhausted, + http2.ErrCodeInadequateSecurity: codes.PermissionDenied, + http2.ErrCodeHTTP11Required: codes.Internal, + } + // HTTPStatusConvTab is the HTTP status code to gRPC error code conversion table. + HTTPStatusConvTab = map[int]codes.Code{ + // 400 Bad Request - INTERNAL. + http.StatusBadRequest: codes.Internal, + // 401 Unauthorized - UNAUTHENTICATED. + http.StatusUnauthorized: codes.Unauthenticated, + // 403 Forbidden - PERMISSION_DENIED. + http.StatusForbidden: codes.PermissionDenied, + // 404 Not Found - UNIMPLEMENTED. + http.StatusNotFound: codes.Unimplemented, + // 429 Too Many Requests - UNAVAILABLE. + http.StatusTooManyRequests: codes.Unavailable, + // 502 Bad Gateway - UNAVAILABLE. + http.StatusBadGateway: codes.Unavailable, + // 503 Service Unavailable - UNAVAILABLE. + http.StatusServiceUnavailable: codes.Unavailable, + // 504 Gateway timeout - UNAVAILABLE. + http.StatusGatewayTimeout: codes.Unavailable, + } + logger = grpclog.Component("transport") +) + +// isReservedHeader checks whether hdr belongs to HTTP2 headers +// reserved by gRPC protocol. Any other headers are classified as the +// user-specified metadata. +func isReservedHeader(hdr string) bool { + if hdr != "" && hdr[0] == ':' { + return true + } + switch hdr { + case "content-type", + "user-agent", + "grpc-message-type", + "grpc-encoding", + "grpc-message", + "grpc-status", + "grpc-timeout", + "grpc-status-details-bin", + // Intentionally exclude grpc-previous-rpc-attempts and + // grpc-retry-pushback-ms, which are "reserved", but their API + // intentionally works via metadata. + "te": + return true + default: + return false + } +} + +// isWhitelistedHeader checks whether hdr should be propagated into metadata +// visible to users, even though it is classified as "reserved", above. +func isWhitelistedHeader(hdr string) bool { + switch hdr { + case ":authority", "user-agent": + return true + default: + return false + } +} + +const binHdrSuffix = "-bin" + +func encodeBinHeader(v []byte) string { + return base64.RawStdEncoding.EncodeToString(v) +} + +func decodeBinHeader(v string) ([]byte, error) { + if len(v)%4 == 0 { + // Input was padded, or padding was not necessary. + return base64.StdEncoding.DecodeString(v) + } + return base64.RawStdEncoding.DecodeString(v) +} + +func encodeMetadataHeader(k, v string) string { + if strings.HasSuffix(k, binHdrSuffix) { + return encodeBinHeader(([]byte)(v)) + } + return v +} + +func decodeMetadataHeader(k, v string) (string, error) { + if strings.HasSuffix(k, binHdrSuffix) { + b, err := decodeBinHeader(v) + return string(b), err + } + return v, nil +} + +func decodeGRPCStatusDetails(rawDetails string) (*status.Status, error) { + v, err := decodeBinHeader(rawDetails) + if err != nil { + return nil, err + } + st := &spb.Status{} + if err = proto.Unmarshal(v, st); err != nil { + return nil, err + } + return status.FromProto(st), nil +} + +type timeoutUnit uint8 + +const ( + hour timeoutUnit = 'H' + minute timeoutUnit = 'M' + second timeoutUnit = 'S' + millisecond timeoutUnit = 'm' + microsecond timeoutUnit = 'u' + nanosecond timeoutUnit = 'n' +) + +func timeoutUnitToDuration(u timeoutUnit) (d time.Duration, ok bool) { + switch u { + case hour: + return time.Hour, true + case minute: + return time.Minute, true + case second: + return time.Second, true + case millisecond: + return time.Millisecond, true + case microsecond: + return time.Microsecond, true + case nanosecond: + return time.Nanosecond, true + default: + } + return +} + +func decodeTimeout(s string) (time.Duration, error) { + size := len(s) + if size < 2 { + return 0, fmt.Errorf("transport: timeout string is too short: %q", s) + } + if size > 9 { + // Spec allows for 8 digits plus the unit. + return 0, fmt.Errorf("transport: timeout string is too long: %q", s) + } + unit := timeoutUnit(s[size-1]) + d, ok := timeoutUnitToDuration(unit) + if !ok { + return 0, fmt.Errorf("transport: timeout unit is not recognized: %q", s) + } + t, err := strconv.ParseInt(s[:size-1], 10, 64) + if err != nil { + return 0, err + } + const maxHours = math.MaxInt64 / int64(time.Hour) + if d == time.Hour && t > maxHours { + // This timeout would overflow math.MaxInt64; clamp it. + return time.Duration(math.MaxInt64), nil + } + return d * time.Duration(t), nil +} + +const ( + spaceByte = ' ' + tildeByte = '~' + percentByte = '%' +) + +// encodeGrpcMessage is used to encode status code in header field +// "grpc-message". It does percent encoding and also replaces invalid utf-8 +// characters with Unicode replacement character. +// +// It checks to see if each individual byte in msg is an allowable byte, and +// then either percent encoding or passing it through. When percent encoding, +// the byte is converted into hexadecimal notation with a '%' prepended. +func encodeGrpcMessage(msg string) string { + if msg == "" { + return "" + } + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + c := msg[i] + if !(c >= spaceByte && c <= tildeByte && c != percentByte) { + return encodeGrpcMessageUnchecked(msg) + } + } + return msg +} + +func encodeGrpcMessageUnchecked(msg string) string { + var sb strings.Builder + for len(msg) > 0 { + r, size := utf8.DecodeRuneInString(msg) + for _, b := range []byte(string(r)) { + if size > 1 { + // If size > 1, r is not ascii. Always do percent encoding. + fmt.Fprintf(&sb, "%%%02X", b) + continue + } + + // The for loop is necessary even if size == 1. r could be + // utf8.RuneError. + // + // fmt.Sprintf("%%%02X", utf8.RuneError) gives "%FFFD". + if b >= spaceByte && b <= tildeByte && b != percentByte { + sb.WriteByte(b) + } else { + fmt.Fprintf(&sb, "%%%02X", b) + } + } + msg = msg[size:] + } + return sb.String() +} + +// decodeGrpcMessage decodes the msg encoded by encodeGrpcMessage. +func decodeGrpcMessage(msg string) string { + if msg == "" { + return "" + } + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + if msg[i] == percentByte && i+2 < lenMsg { + return decodeGrpcMessageUnchecked(msg) + } + } + return msg +} + +func decodeGrpcMessageUnchecked(msg string) string { + var sb strings.Builder + lenMsg := len(msg) + for i := 0; i < lenMsg; i++ { + c := msg[i] + if c == percentByte && i+2 < lenMsg { + parsed, err := strconv.ParseUint(msg[i+1:i+3], 16, 8) + if err != nil { + sb.WriteByte(c) + } else { + sb.WriteByte(byte(parsed)) + i += 2 + } + } else { + sb.WriteByte(c) + } + } + return sb.String() +} + +type bufWriter struct { + buf []byte + offset int + batchSize int + conn net.Conn + err error +} + +func newBufWriter(conn net.Conn, batchSize int) *bufWriter { + return &bufWriter{ + buf: make([]byte, batchSize*2), + batchSize: batchSize, + conn: conn, + } +} + +func (w *bufWriter) Write(b []byte) (n int, err error) { + if w.err != nil { + return 0, w.err + } + if w.batchSize == 0 { // Buffer has been disabled. + return w.conn.Write(b) + } + for len(b) > 0 { + nn := copy(w.buf[w.offset:], b) + b = b[nn:] + w.offset += nn + n += nn + if w.offset >= w.batchSize { + err = w.Flush() + } + } + return n, err +} + +func (w *bufWriter) Flush() error { + if w.err != nil { + return w.err + } + if w.offset == 0 { + return nil + } + _, w.err = w.conn.Write(w.buf[:w.offset]) + w.offset = 0 + return w.err +} + +type framer struct { + writer *bufWriter + fr *http2.Framer +} + +func newFramer(conn net.Conn, writeBufferSize, readBufferSize int, maxHeaderListSize uint32) *framer { + if writeBufferSize < 0 { + writeBufferSize = 0 + } + var r io.Reader = conn + if readBufferSize > 0 { + r = bufio.NewReaderSize(r, readBufferSize) + } + w := newBufWriter(conn, writeBufferSize) + f := &framer{ + writer: w, + fr: http2.NewFramer(w, r), + } + f.fr.SetMaxReadFrameSize(http2MaxFrameLen) + // Opt-in to Frame reuse API on framer to reduce garbage. + // Frames aren't safe to read from after a subsequent call to ReadFrame. + f.fr.SetReuseFrames() + f.fr.MaxHeaderListSize = maxHeaderListSize + f.fr.ReadMetaHeaders = hpack.NewDecoder(http2InitHeaderTableSize, nil) + return f +} + +// parseDialTarget returns the network and address to pass to dialer. +func parseDialTarget(target string) (string, string) { + net := "tcp" + m1 := strings.Index(target, ":") + m2 := strings.Index(target, ":/") + // handle unix:addr which will fail with url.Parse + if m1 >= 0 && m2 < 0 { + if n := target[0:m1]; n == "unix" { + return n, target[m1+1:] + } + } + if m2 >= 0 { + t, err := url.Parse(target) + if err != nil { + return net, target + } + scheme := t.Scheme + addr := t.Path + if scheme == "unix" { + if addr == "" { + addr = t.Host + } + return scheme, addr + } + } + return net, target +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/networktype/networktype.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/networktype/networktype.go new file mode 100644 index 0000000000..c11b527827 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/networktype/networktype.go @@ -0,0 +1,46 @@ +/* + * + * Copyright 2020 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package networktype declares the network type to be used in the default +// dialer. Attribute of a resolver.Address. +package networktype + +import ( + "google.golang.org/grpc/resolver" +) + +// keyType is the key to use for storing State in Attributes. +type keyType string + +const key = keyType("grpc.internal.transport.networktype") + +// Set returns a copy of the provided address with attributes containing networkType. +func Set(address resolver.Address, networkType string) resolver.Address { + address.Attributes = address.Attributes.WithValue(key, networkType) + return address +} + +// Get returns the network type in the resolver.Address and true, or "", false +// if not present. +func Get(address resolver.Address) (string, bool) { + v := address.Attributes.Value(key) + if v == nil { + return "", false + } + return v.(string), true +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/proxy.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/proxy.go new file mode 100644 index 0000000000..4159619878 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/proxy.go @@ -0,0 +1,142 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package transport + +import ( + "bufio" + "context" + "encoding/base64" + "fmt" + "io" + "net" + "net/http" + "net/http/httputil" + "net/url" +) + +const proxyAuthHeaderKey = "Proxy-Authorization" + +var ( + // The following variable will be overwritten in the tests. + httpProxyFromEnvironment = http.ProxyFromEnvironment +) + +func mapAddress(address string) (*url.URL, error) { + req := &http.Request{ + URL: &url.URL{ + Scheme: "https", + Host: address, + }, + } + url, err := httpProxyFromEnvironment(req) + if err != nil { + return nil, err + } + return url, nil +} + +// To read a response from a net.Conn, http.ReadResponse() takes a bufio.Reader. +// It's possible that this reader reads more than what's need for the response and stores +// those bytes in the buffer. +// bufConn wraps the original net.Conn and the bufio.Reader to make sure we don't lose the +// bytes in the buffer. +type bufConn struct { + net.Conn + r io.Reader +} + +func (c *bufConn) Read(b []byte) (int, error) { + return c.r.Read(b) +} + +func basicAuth(username, password string) string { + auth := username + ":" + password + return base64.StdEncoding.EncodeToString([]byte(auth)) +} + +func doHTTPConnectHandshake(ctx context.Context, conn net.Conn, backendAddr string, proxyURL *url.URL, grpcUA string) (_ net.Conn, err error) { + defer func() { + if err != nil { + conn.Close() + } + }() + + req := &http.Request{ + Method: http.MethodConnect, + URL: &url.URL{Host: backendAddr}, + Header: map[string][]string{"User-Agent": {grpcUA}}, + } + if t := proxyURL.User; t != nil { + u := t.Username() + p, _ := t.Password() + req.Header.Add(proxyAuthHeaderKey, "Basic "+basicAuth(u, p)) + } + + if err := sendHTTPRequest(ctx, req, conn); err != nil { + return nil, fmt.Errorf("failed to write the HTTP request: %v", err) + } + + r := bufio.NewReader(conn) + resp, err := http.ReadResponse(r, req) + if err != nil { + return nil, fmt.Errorf("reading server HTTP response: %v", err) + } + defer resp.Body.Close() + if resp.StatusCode != http.StatusOK { + dump, err := httputil.DumpResponse(resp, true) + if err != nil { + return nil, fmt.Errorf("failed to do connect handshake, status code: %s", resp.Status) + } + return nil, fmt.Errorf("failed to do connect handshake, response: %q", dump) + } + + return &bufConn{Conn: conn, r: r}, nil +} + +// proxyDial dials, connecting to a proxy first if necessary. Checks if a proxy +// is necessary, dials, does the HTTP CONNECT handshake, and returns the +// connection. +func proxyDial(ctx context.Context, addr string, grpcUA string) (conn net.Conn, err error) { + newAddr := addr + proxyURL, err := mapAddress(addr) + if err != nil { + return nil, err + } + if proxyURL != nil { + newAddr = proxyURL.Host + } + + conn, err = (&net.Dialer{}).DialContext(ctx, "tcp", newAddr) + if err != nil { + return + } + if proxyURL != nil { + // proxy is disabled if proxyURL is nil. + conn, err = doHTTPConnectHandshake(ctx, conn, addr, proxyURL, grpcUA) + } + return +} + +func sendHTTPRequest(ctx context.Context, req *http.Request, conn net.Conn) error { + req = req.WithContext(ctx) + if err := req.Write(conn); err != nil { + return fmt.Errorf("failed to write the HTTP request: %v", err) + } + return nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/transport/transport.go b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/transport.go new file mode 100644 index 0000000000..6cff20c8e0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/transport/transport.go @@ -0,0 +1,823 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package transport defines and implements message oriented communication +// channel to complete various transactions (e.g., an RPC). It is meant for +// grpc-internal usage and is not intended to be imported directly by users. +package transport + +import ( + "bytes" + "context" + "errors" + "fmt" + "io" + "net" + "sync" + "sync/atomic" + "time" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/tap" +) + +// ErrNoHeaders is used as a signal that a trailers only response was received, +// and is not a real error. +var ErrNoHeaders = errors.New("stream has no headers") + +const logLevel = 2 + +type bufferPool struct { + pool sync.Pool +} + +func newBufferPool() *bufferPool { + return &bufferPool{ + pool: sync.Pool{ + New: func() interface{} { + return new(bytes.Buffer) + }, + }, + } +} + +func (p *bufferPool) get() *bytes.Buffer { + return p.pool.Get().(*bytes.Buffer) +} + +func (p *bufferPool) put(b *bytes.Buffer) { + p.pool.Put(b) +} + +// recvMsg represents the received msg from the transport. All transport +// protocol specific info has been removed. +type recvMsg struct { + buffer *bytes.Buffer + // nil: received some data + // io.EOF: stream is completed. data is nil. + // other non-nil error: transport failure. data is nil. + err error +} + +// recvBuffer is an unbounded channel of recvMsg structs. +// +// Note: recvBuffer differs from buffer.Unbounded only in the fact that it +// holds a channel of recvMsg structs instead of objects implementing "item" +// interface. recvBuffer is written to much more often and using strict recvMsg +// structs helps avoid allocation in "recvBuffer.put" +type recvBuffer struct { + c chan recvMsg + mu sync.Mutex + backlog []recvMsg + err error +} + +func newRecvBuffer() *recvBuffer { + b := &recvBuffer{ + c: make(chan recvMsg, 1), + } + return b +} + +func (b *recvBuffer) put(r recvMsg) { + b.mu.Lock() + if b.err != nil { + b.mu.Unlock() + // An error had occurred earlier, don't accept more + // data or errors. + return + } + b.err = r.err + if len(b.backlog) == 0 { + select { + case b.c <- r: + b.mu.Unlock() + return + default: + } + } + b.backlog = append(b.backlog, r) + b.mu.Unlock() +} + +func (b *recvBuffer) load() { + b.mu.Lock() + if len(b.backlog) > 0 { + select { + case b.c <- b.backlog[0]: + b.backlog[0] = recvMsg{} + b.backlog = b.backlog[1:] + default: + } + } + b.mu.Unlock() +} + +// get returns the channel that receives a recvMsg in the buffer. +// +// Upon receipt of a recvMsg, the caller should call load to send another +// recvMsg onto the channel if there is any. +func (b *recvBuffer) get() <-chan recvMsg { + return b.c +} + +// recvBufferReader implements io.Reader interface to read the data from +// recvBuffer. +type recvBufferReader struct { + closeStream func(error) // Closes the client transport stream with the given error and nil trailer metadata. + ctx context.Context + ctxDone <-chan struct{} // cache of ctx.Done() (for performance). + recv *recvBuffer + last *bytes.Buffer // Stores the remaining data in the previous calls. + err error + freeBuffer func(*bytes.Buffer) +} + +// Read reads the next len(p) bytes from last. If last is drained, it tries to +// read additional data from recv. It blocks if there no additional data available +// in recv. If Read returns any non-nil error, it will continue to return that error. +func (r *recvBufferReader) Read(p []byte) (n int, err error) { + if r.err != nil { + return 0, r.err + } + if r.last != nil { + // Read remaining data left in last call. + copied, _ := r.last.Read(p) + if r.last.Len() == 0 { + r.freeBuffer(r.last) + r.last = nil + } + return copied, nil + } + if r.closeStream != nil { + n, r.err = r.readClient(p) + } else { + n, r.err = r.read(p) + } + return n, r.err +} + +func (r *recvBufferReader) read(p []byte) (n int, err error) { + select { + case <-r.ctxDone: + return 0, ContextErr(r.ctx.Err()) + case m := <-r.recv.get(): + return r.readAdditional(m, p) + } +} + +func (r *recvBufferReader) readClient(p []byte) (n int, err error) { + // If the context is canceled, then closes the stream with nil metadata. + // closeStream writes its error parameter to r.recv as a recvMsg. + // r.readAdditional acts on that message and returns the necessary error. + select { + case <-r.ctxDone: + // Note that this adds the ctx error to the end of recv buffer, and + // reads from the head. This will delay the error until recv buffer is + // empty, thus will delay ctx cancellation in Recv(). + // + // It's done this way to fix a race between ctx cancel and trailer. The + // race was, stream.Recv() may return ctx error if ctxDone wins the + // race, but stream.Trailer() may return a non-nil md because the stream + // was not marked as done when trailer is received. This closeStream + // call will mark stream as done, thus fix the race. + // + // TODO: delaying ctx error seems like a unnecessary side effect. What + // we really want is to mark the stream as done, and return ctx error + // faster. + r.closeStream(ContextErr(r.ctx.Err())) + m := <-r.recv.get() + return r.readAdditional(m, p) + case m := <-r.recv.get(): + return r.readAdditional(m, p) + } +} + +func (r *recvBufferReader) readAdditional(m recvMsg, p []byte) (n int, err error) { + r.recv.load() + if m.err != nil { + return 0, m.err + } + copied, _ := m.buffer.Read(p) + if m.buffer.Len() == 0 { + r.freeBuffer(m.buffer) + r.last = nil + } else { + r.last = m.buffer + } + return copied, nil +} + +type streamState uint32 + +const ( + streamActive streamState = iota + streamWriteDone // EndStream sent + streamReadDone // EndStream received + streamDone // the entire stream is finished. +) + +// Stream represents an RPC in the transport layer. +type Stream struct { + id uint32 + st ServerTransport // nil for client side Stream + ct *http2Client // nil for server side Stream + ctx context.Context // the associated context of the stream + cancel context.CancelFunc // always nil for client side Stream + done chan struct{} // closed at the end of stream to unblock writers. On the client side. + doneFunc func() // invoked at the end of stream on client side. + ctxDone <-chan struct{} // same as done chan but for server side. Cache of ctx.Done() (for performance) + method string // the associated RPC method of the stream + recvCompress string + sendCompress string + buf *recvBuffer + trReader io.Reader + fc *inFlow + wq *writeQuota + + // Callback to state application's intentions to read data. This + // is used to adjust flow control, if needed. + requestRead func(int) + + headerChan chan struct{} // closed to indicate the end of header metadata. + headerChanClosed uint32 // set when headerChan is closed. Used to avoid closing headerChan multiple times. + // headerValid indicates whether a valid header was received. Only + // meaningful after headerChan is closed (always call waitOnHeader() before + // reading its value). Not valid on server side. + headerValid bool + + // hdrMu protects header and trailer metadata on the server-side. + hdrMu sync.Mutex + // On client side, header keeps the received header metadata. + // + // On server side, header keeps the header set by SetHeader(). The complete + // header will merged into this after t.WriteHeader() is called. + header metadata.MD + trailer metadata.MD // the key-value map of trailer metadata. + + noHeaders bool // set if the client never received headers (set only after the stream is done). + + // On the server-side, headerSent is atomically set to 1 when the headers are sent out. + headerSent uint32 + + state streamState + + // On client-side it is the status error received from the server. + // On server-side it is unused. + status *status.Status + + bytesReceived uint32 // indicates whether any bytes have been received on this stream + unprocessed uint32 // set if the server sends a refused stream or GOAWAY including this stream + + // contentSubtype is the content-subtype for requests. + // this must be lowercase or the behavior is undefined. + contentSubtype string +} + +// isHeaderSent is only valid on the server-side. +func (s *Stream) isHeaderSent() bool { + return atomic.LoadUint32(&s.headerSent) == 1 +} + +// updateHeaderSent updates headerSent and returns true +// if it was alreay set. It is valid only on server-side. +func (s *Stream) updateHeaderSent() bool { + return atomic.SwapUint32(&s.headerSent, 1) == 1 +} + +func (s *Stream) swapState(st streamState) streamState { + return streamState(atomic.SwapUint32((*uint32)(&s.state), uint32(st))) +} + +func (s *Stream) compareAndSwapState(oldState, newState streamState) bool { + return atomic.CompareAndSwapUint32((*uint32)(&s.state), uint32(oldState), uint32(newState)) +} + +func (s *Stream) getState() streamState { + return streamState(atomic.LoadUint32((*uint32)(&s.state))) +} + +func (s *Stream) waitOnHeader() { + if s.headerChan == nil { + // On the server headerChan is always nil since a stream originates + // only after having received headers. + return + } + select { + case <-s.ctx.Done(): + // Close the stream to prevent headers/trailers from changing after + // this function returns. + s.ct.CloseStream(s, ContextErr(s.ctx.Err())) + // headerChan could possibly not be closed yet if closeStream raced + // with operateHeaders; wait until it is closed explicitly here. + <-s.headerChan + case <-s.headerChan: + } +} + +// RecvCompress returns the compression algorithm applied to the inbound +// message. It is empty string if there is no compression applied. +func (s *Stream) RecvCompress() string { + s.waitOnHeader() + return s.recvCompress +} + +// SetSendCompress sets the compression algorithm to the stream. +func (s *Stream) SetSendCompress(str string) { + s.sendCompress = str +} + +// Done returns a channel which is closed when it receives the final status +// from the server. +func (s *Stream) Done() <-chan struct{} { + return s.done +} + +// Header returns the header metadata of the stream. +// +// On client side, it acquires the key-value pairs of header metadata once it is +// available. It blocks until i) the metadata is ready or ii) there is no header +// metadata or iii) the stream is canceled/expired. +// +// On server side, it returns the out header after t.WriteHeader is called. It +// does not block and must not be called until after WriteHeader. +func (s *Stream) Header() (metadata.MD, error) { + if s.headerChan == nil { + // On server side, return the header in stream. It will be the out + // header after t.WriteHeader is called. + return s.header.Copy(), nil + } + s.waitOnHeader() + + if !s.headerValid { + return nil, s.status.Err() + } + + if s.noHeaders { + return nil, ErrNoHeaders + } + + return s.header.Copy(), nil +} + +// TrailersOnly blocks until a header or trailers-only frame is received and +// then returns true if the stream was trailers-only. If the stream ends +// before headers are received, returns true, nil. Client-side only. +func (s *Stream) TrailersOnly() bool { + s.waitOnHeader() + return s.noHeaders +} + +// Trailer returns the cached trailer metedata. Note that if it is not called +// after the entire stream is done, it could return an empty MD. Client +// side only. +// It can be safely read only after stream has ended that is either read +// or write have returned io.EOF. +func (s *Stream) Trailer() metadata.MD { + c := s.trailer.Copy() + return c +} + +// ContentSubtype returns the content-subtype for a request. For example, a +// content-subtype of "proto" will result in a content-type of +// "application/grpc+proto". This will always be lowercase. See +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +func (s *Stream) ContentSubtype() string { + return s.contentSubtype +} + +// Context returns the context of the stream. +func (s *Stream) Context() context.Context { + return s.ctx +} + +// Method returns the method for the stream. +func (s *Stream) Method() string { + return s.method +} + +// Status returns the status received from the server. +// Status can be read safely only after the stream has ended, +// that is, after Done() is closed. +func (s *Stream) Status() *status.Status { + return s.status +} + +// SetHeader sets the header metadata. This can be called multiple times. +// Server side only. +// This should not be called in parallel to other data writes. +func (s *Stream) SetHeader(md metadata.MD) error { + if md.Len() == 0 { + return nil + } + if s.isHeaderSent() || s.getState() == streamDone { + return ErrIllegalHeaderWrite + } + s.hdrMu.Lock() + s.header = metadata.Join(s.header, md) + s.hdrMu.Unlock() + return nil +} + +// SendHeader sends the given header metadata. The given metadata is +// combined with any metadata set by previous calls to SetHeader and +// then written to the transport stream. +func (s *Stream) SendHeader(md metadata.MD) error { + return s.st.WriteHeader(s, md) +} + +// SetTrailer sets the trailer metadata which will be sent with the RPC status +// by the server. This can be called multiple times. Server side only. +// This should not be called parallel to other data writes. +func (s *Stream) SetTrailer(md metadata.MD) error { + if md.Len() == 0 { + return nil + } + if s.getState() == streamDone { + return ErrIllegalHeaderWrite + } + s.hdrMu.Lock() + s.trailer = metadata.Join(s.trailer, md) + s.hdrMu.Unlock() + return nil +} + +func (s *Stream) write(m recvMsg) { + s.buf.put(m) +} + +// Read reads all p bytes from the wire for this stream. +func (s *Stream) Read(p []byte) (n int, err error) { + // Don't request a read if there was an error earlier + if er := s.trReader.(*transportReader).er; er != nil { + return 0, er + } + s.requestRead(len(p)) + return io.ReadFull(s.trReader, p) +} + +// tranportReader reads all the data available for this Stream from the transport and +// passes them into the decoder, which converts them into a gRPC message stream. +// The error is io.EOF when the stream is done or another non-nil error if +// the stream broke. +type transportReader struct { + reader io.Reader + // The handler to control the window update procedure for both this + // particular stream and the associated transport. + windowHandler func(int) + er error +} + +func (t *transportReader) Read(p []byte) (n int, err error) { + n, err = t.reader.Read(p) + if err != nil { + t.er = err + return + } + t.windowHandler(n) + return +} + +// BytesReceived indicates whether any bytes have been received on this stream. +func (s *Stream) BytesReceived() bool { + return atomic.LoadUint32(&s.bytesReceived) == 1 +} + +// Unprocessed indicates whether the server did not process this stream -- +// i.e. it sent a refused stream or GOAWAY including this stream ID. +func (s *Stream) Unprocessed() bool { + return atomic.LoadUint32(&s.unprocessed) == 1 +} + +// GoString is implemented by Stream so context.String() won't +// race when printing %#v. +func (s *Stream) GoString() string { + return fmt.Sprintf("", s, s.method) +} + +// state of transport +type transportState int + +const ( + reachable transportState = iota + closing + draining +) + +// ServerConfig consists of all the configurations to establish a server transport. +type ServerConfig struct { + MaxStreams uint32 + ConnectionTimeout time.Duration + Credentials credentials.TransportCredentials + InTapHandle tap.ServerInHandle + StatsHandlers []stats.Handler + KeepaliveParams keepalive.ServerParameters + KeepalivePolicy keepalive.EnforcementPolicy + InitialWindowSize int32 + InitialConnWindowSize int32 + WriteBufferSize int + ReadBufferSize int + ChannelzParentID *channelz.Identifier + MaxHeaderListSize *uint32 + HeaderTableSize *uint32 +} + +// ConnectOptions covers all relevant options for communicating with the server. +type ConnectOptions struct { + // UserAgent is the application user agent. + UserAgent string + // Dialer specifies how to dial a network address. + Dialer func(context.Context, string) (net.Conn, error) + // FailOnNonTempDialError specifies if gRPC fails on non-temporary dial errors. + FailOnNonTempDialError bool + // PerRPCCredentials stores the PerRPCCredentials required to issue RPCs. + PerRPCCredentials []credentials.PerRPCCredentials + // TransportCredentials stores the Authenticator required to setup a client + // connection. Only one of TransportCredentials and CredsBundle is non-nil. + TransportCredentials credentials.TransportCredentials + // CredsBundle is the credentials bundle to be used. Only one of + // TransportCredentials and CredsBundle is non-nil. + CredsBundle credentials.Bundle + // KeepaliveParams stores the keepalive parameters. + KeepaliveParams keepalive.ClientParameters + // StatsHandlers stores the handler for stats. + StatsHandlers []stats.Handler + // InitialWindowSize sets the initial window size for a stream. + InitialWindowSize int32 + // InitialConnWindowSize sets the initial window size for a connection. + InitialConnWindowSize int32 + // WriteBufferSize sets the size of write buffer which in turn determines how much data can be batched before it's written on the wire. + WriteBufferSize int + // ReadBufferSize sets the size of read buffer, which in turn determines how much data can be read at most for one read syscall. + ReadBufferSize int + // ChannelzParentID sets the addrConn id which initiate the creation of this client transport. + ChannelzParentID *channelz.Identifier + // MaxHeaderListSize sets the max (uncompressed) size of header list that is prepared to be received. + MaxHeaderListSize *uint32 + // UseProxy specifies if a proxy should be used. + UseProxy bool +} + +// NewClientTransport establishes the transport with the required ConnectOptions +// and returns it to the caller. +func NewClientTransport(connectCtx, ctx context.Context, addr resolver.Address, opts ConnectOptions, onGoAway func(GoAwayReason), onClose func()) (ClientTransport, error) { + return newHTTP2Client(connectCtx, ctx, addr, opts, onGoAway, onClose) +} + +// Options provides additional hints and information for message +// transmission. +type Options struct { + // Last indicates whether this write is the last piece for + // this stream. + Last bool +} + +// CallHdr carries the information of a particular RPC. +type CallHdr struct { + // Host specifies the peer's host. + Host string + + // Method specifies the operation to perform. + Method string + + // SendCompress specifies the compression algorithm applied on + // outbound message. + SendCompress string + + // Creds specifies credentials.PerRPCCredentials for a call. + Creds credentials.PerRPCCredentials + + // ContentSubtype specifies the content-subtype for a request. For example, a + // content-subtype of "proto" will result in a content-type of + // "application/grpc+proto". The value of ContentSubtype must be all + // lowercase, otherwise the behavior is undefined. See + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests + // for more details. + ContentSubtype string + + PreviousAttempts int // value of grpc-previous-rpc-attempts header to set + + DoneFunc func() // called when the stream is finished +} + +// ClientTransport is the common interface for all gRPC client-side transport +// implementations. +type ClientTransport interface { + // Close tears down this transport. Once it returns, the transport + // should not be accessed any more. The caller must make sure this + // is called only once. + Close(err error) + + // GracefulClose starts to tear down the transport: the transport will stop + // accepting new RPCs and NewStream will return error. Once all streams are + // finished, the transport will close. + // + // It does not block. + GracefulClose() + + // Write sends the data for the given stream. A nil stream indicates + // the write is to be performed on the transport as a whole. + Write(s *Stream, hdr []byte, data []byte, opts *Options) error + + // NewStream creates a Stream for an RPC. + NewStream(ctx context.Context, callHdr *CallHdr) (*Stream, error) + + // CloseStream clears the footprint of a stream when the stream is + // not needed any more. The err indicates the error incurred when + // CloseStream is called. Must be called when a stream is finished + // unless the associated transport is closing. + CloseStream(stream *Stream, err error) + + // Error returns a channel that is closed when some I/O error + // happens. Typically the caller should have a goroutine to monitor + // this in order to take action (e.g., close the current transport + // and create a new one) in error case. It should not return nil + // once the transport is initiated. + Error() <-chan struct{} + + // GoAway returns a channel that is closed when ClientTransport + // receives the draining signal from the server (e.g., GOAWAY frame in + // HTTP/2). + GoAway() <-chan struct{} + + // GetGoAwayReason returns the reason why GoAway frame was received, along + // with a human readable string with debug info. + GetGoAwayReason() (GoAwayReason, string) + + // RemoteAddr returns the remote network address. + RemoteAddr() net.Addr + + // IncrMsgSent increments the number of message sent through this transport. + IncrMsgSent() + + // IncrMsgRecv increments the number of message received through this transport. + IncrMsgRecv() +} + +// ServerTransport is the common interface for all gRPC server-side transport +// implementations. +// +// Methods may be called concurrently from multiple goroutines, but +// Write methods for a given Stream will be called serially. +type ServerTransport interface { + // HandleStreams receives incoming streams using the given handler. + HandleStreams(func(*Stream), func(context.Context, string) context.Context) + + // WriteHeader sends the header metadata for the given stream. + // WriteHeader may not be called on all streams. + WriteHeader(s *Stream, md metadata.MD) error + + // Write sends the data for the given stream. + // Write may not be called on all streams. + Write(s *Stream, hdr []byte, data []byte, opts *Options) error + + // WriteStatus sends the status of a stream to the client. WriteStatus is + // the final call made on a stream and always occurs. + WriteStatus(s *Stream, st *status.Status) error + + // Close tears down the transport. Once it is called, the transport + // should not be accessed any more. All the pending streams and their + // handlers will be terminated asynchronously. + Close(err error) + + // RemoteAddr returns the remote network address. + RemoteAddr() net.Addr + + // Drain notifies the client this ServerTransport stops accepting new RPCs. + Drain() + + // IncrMsgSent increments the number of message sent through this transport. + IncrMsgSent() + + // IncrMsgRecv increments the number of message received through this transport. + IncrMsgRecv() +} + +// connectionErrorf creates an ConnectionError with the specified error description. +func connectionErrorf(temp bool, e error, format string, a ...interface{}) ConnectionError { + return ConnectionError{ + Desc: fmt.Sprintf(format, a...), + temp: temp, + err: e, + } +} + +// ConnectionError is an error that results in the termination of the +// entire connection and the retry of all the active streams. +type ConnectionError struct { + Desc string + temp bool + err error +} + +func (e ConnectionError) Error() string { + return fmt.Sprintf("connection error: desc = %q", e.Desc) +} + +// Temporary indicates if this connection error is temporary or fatal. +func (e ConnectionError) Temporary() bool { + return e.temp +} + +// Origin returns the original error of this connection error. +func (e ConnectionError) Origin() error { + // Never return nil error here. + // If the original error is nil, return itself. + if e.err == nil { + return e + } + return e.err +} + +// Unwrap returns the original error of this connection error or nil when the +// origin is nil. +func (e ConnectionError) Unwrap() error { + return e.err +} + +var ( + // ErrConnClosing indicates that the transport is closing. + ErrConnClosing = connectionErrorf(true, nil, "transport is closing") + // errStreamDrain indicates that the stream is rejected because the + // connection is draining. This could be caused by goaway or balancer + // removing the address. + errStreamDrain = status.Error(codes.Unavailable, "the connection is draining") + // errStreamDone is returned from write at the client side to indiacte application + // layer of an error. + errStreamDone = errors.New("the stream is done") + // StatusGoAway indicates that the server sent a GOAWAY that included this + // stream's ID in unprocessed RPCs. + statusGoAway = status.New(codes.Unavailable, "the stream is rejected because server is draining the connection") +) + +// GoAwayReason contains the reason for the GoAway frame received. +type GoAwayReason uint8 + +const ( + // GoAwayInvalid indicates that no GoAway frame is received. + GoAwayInvalid GoAwayReason = 0 + // GoAwayNoReason is the default value when GoAway frame is received. + GoAwayNoReason GoAwayReason = 1 + // GoAwayTooManyPings indicates that a GoAway frame with + // ErrCodeEnhanceYourCalm was received and that the debug data said + // "too_many_pings". + GoAwayTooManyPings GoAwayReason = 2 +) + +// channelzData is used to store channelz related data for http2Client and http2Server. +// These fields cannot be embedded in the original structs (e.g. http2Client), since to do atomic +// operation on int64 variable on 32-bit machine, user is responsible to enforce memory alignment. +// Here, by grouping those int64 fields inside a struct, we are enforcing the alignment. +type channelzData struct { + kpCount int64 + // The number of streams that have started, including already finished ones. + streamsStarted int64 + // Client side: The number of streams that have ended successfully by receiving + // EoS bit set frame from server. + // Server side: The number of streams that have ended successfully by sending + // frame with EoS bit set. + streamsSucceeded int64 + streamsFailed int64 + // lastStreamCreatedTime stores the timestamp that the last stream gets created. It is of int64 type + // instead of time.Time since it's more costly to atomically update time.Time variable than int64 + // variable. The same goes for lastMsgSentTime and lastMsgRecvTime. + lastStreamCreatedTime int64 + msgSent int64 + msgRecv int64 + lastMsgSentTime int64 + lastMsgRecvTime int64 +} + +// ContextErr converts the error from context package into a status error. +func ContextErr(err error) error { + switch err { + case context.DeadlineExceeded: + return status.Error(codes.DeadlineExceeded, err.Error()) + case context.Canceled: + return status.Error(codes.Canceled, err.Error()) + } + return status.Errorf(codes.Internal, "Unexpected error from context packet: %v", err) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go b/ecs-agent/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go new file mode 100644 index 0000000000..e8b492774d --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/internal/xds_handshake_cluster.go @@ -0,0 +1,40 @@ +/* + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package internal + +import ( + "google.golang.org/grpc/attributes" + "google.golang.org/grpc/resolver" +) + +// handshakeClusterNameKey is the type used as the key to store cluster name in +// the Attributes field of resolver.Address. +type handshakeClusterNameKey struct{} + +// SetXDSHandshakeClusterName returns a copy of addr in which the Attributes field +// is updated with the cluster name. +func SetXDSHandshakeClusterName(addr resolver.Address, clusterName string) resolver.Address { + addr.Attributes = addr.Attributes.WithValue(handshakeClusterNameKey{}, clusterName) + return addr +} + +// GetXDSHandshakeClusterName returns cluster name stored in attr. +func GetXDSHandshakeClusterName(attr *attributes.Attributes) (string, bool) { + v := attr.Value(handshakeClusterNameKey{}) + name, ok := v.(string) + return name, ok +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/keepalive/keepalive.go b/ecs-agent/vendor/google.golang.org/grpc/keepalive/keepalive.go new file mode 100644 index 0000000000..34d31b5e7d --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/keepalive/keepalive.go @@ -0,0 +1,85 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package keepalive defines configurable parameters for point-to-point +// healthcheck. +package keepalive + +import ( + "time" +) + +// ClientParameters is used to set keepalive parameters on the client-side. +// These configure how the client will actively probe to notice when a +// connection is broken and send pings so intermediaries will be aware of the +// liveness of the connection. Make sure these parameters are set in +// coordination with the keepalive policy on the server, as incompatible +// settings can result in closing of connection. +type ClientParameters struct { + // After a duration of this time if the client doesn't see any activity it + // pings the server to see if the transport is still alive. + // If set below 10s, a minimum value of 10s will be used instead. + Time time.Duration // The current default value is infinity. + // After having pinged for keepalive check, the client waits for a duration + // of Timeout and if no activity is seen even after that the connection is + // closed. + Timeout time.Duration // The current default value is 20 seconds. + // If true, client sends keepalive pings even with no active RPCs. If false, + // when there are no active RPCs, Time and Timeout will be ignored and no + // keepalive pings will be sent. + PermitWithoutStream bool // false by default. +} + +// ServerParameters is used to set keepalive and max-age parameters on the +// server-side. +type ServerParameters struct { + // MaxConnectionIdle is a duration for the amount of time after which an + // idle connection would be closed by sending a GoAway. Idleness duration is + // defined since the most recent time the number of outstanding RPCs became + // zero or the connection establishment. + MaxConnectionIdle time.Duration // The current default value is infinity. + // MaxConnectionAge is a duration for the maximum amount of time a + // connection may exist before it will be closed by sending a GoAway. A + // random jitter of +/-10% will be added to MaxConnectionAge to spread out + // connection storms. + MaxConnectionAge time.Duration // The current default value is infinity. + // MaxConnectionAgeGrace is an additive period after MaxConnectionAge after + // which the connection will be forcibly closed. + MaxConnectionAgeGrace time.Duration // The current default value is infinity. + // After a duration of this time if the server doesn't see any activity it + // pings the client to see if the transport is still alive. + // If set below 1s, a minimum value of 1s will be used instead. + Time time.Duration // The current default value is 2 hours. + // After having pinged for keepalive check, the server waits for a duration + // of Timeout and if no activity is seen even after that the connection is + // closed. + Timeout time.Duration // The current default value is 20 seconds. +} + +// EnforcementPolicy is used to set keepalive enforcement policy on the +// server-side. Server will close connection with a client that violates this +// policy. +type EnforcementPolicy struct { + // MinTime is the minimum amount of time a client should wait before sending + // a keepalive ping. + MinTime time.Duration // The current default value is 5 minutes. + // If true, server allows keepalive pings even when there are no active + // streams(RPCs). If false, and client sends ping when there are no active + // streams, server will send GOAWAY and close the connection. + PermitWithoutStream bool // false by default. +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/metadata/metadata.go b/ecs-agent/vendor/google.golang.org/grpc/metadata/metadata.go new file mode 100644 index 0000000000..fb4a88f59b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/metadata/metadata.go @@ -0,0 +1,288 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package metadata define the structure of the metadata supported by gRPC library. +// Please refer to https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md +// for more information about custom-metadata. +package metadata // import "google.golang.org/grpc/metadata" + +import ( + "context" + "fmt" + "strings" +) + +// DecodeKeyValue returns k, v, nil. +// +// Deprecated: use k and v directly instead. +func DecodeKeyValue(k, v string) (string, string, error) { + return k, v, nil +} + +// MD is a mapping from metadata keys to values. Users should use the following +// two convenience functions New and Pairs to generate MD. +type MD map[string][]string + +// New creates an MD from a given key-value map. +// +// Only the following ASCII characters are allowed in keys: +// - digits: 0-9 +// - uppercase letters: A-Z (normalized to lower) +// - lowercase letters: a-z +// - special characters: -_. +// +// Uppercase letters are automatically converted to lowercase. +// +// Keys beginning with "grpc-" are reserved for grpc-internal use only and may +// result in errors if set in metadata. +func New(m map[string]string) MD { + md := make(MD, len(m)) + for k, val := range m { + key := strings.ToLower(k) + md[key] = append(md[key], val) + } + return md +} + +// Pairs returns an MD formed by the mapping of key, value ... +// Pairs panics if len(kv) is odd. +// +// Only the following ASCII characters are allowed in keys: +// - digits: 0-9 +// - uppercase letters: A-Z (normalized to lower) +// - lowercase letters: a-z +// - special characters: -_. +// +// Uppercase letters are automatically converted to lowercase. +// +// Keys beginning with "grpc-" are reserved for grpc-internal use only and may +// result in errors if set in metadata. +func Pairs(kv ...string) MD { + if len(kv)%2 == 1 { + panic(fmt.Sprintf("metadata: Pairs got the odd number of input pairs for metadata: %d", len(kv))) + } + md := make(MD, len(kv)/2) + for i := 0; i < len(kv); i += 2 { + key := strings.ToLower(kv[i]) + md[key] = append(md[key], kv[i+1]) + } + return md +} + +// Len returns the number of items in md. +func (md MD) Len() int { + return len(md) +} + +// Copy returns a copy of md. +func (md MD) Copy() MD { + return Join(md) +} + +// Get obtains the values for a given key. +// +// k is converted to lowercase before searching in md. +func (md MD) Get(k string) []string { + k = strings.ToLower(k) + return md[k] +} + +// Set sets the value of a given key with a slice of values. +// +// k is converted to lowercase before storing in md. +func (md MD) Set(k string, vals ...string) { + if len(vals) == 0 { + return + } + k = strings.ToLower(k) + md[k] = vals +} + +// Append adds the values to key k, not overwriting what was already stored at +// that key. +// +// k is converted to lowercase before storing in md. +func (md MD) Append(k string, vals ...string) { + if len(vals) == 0 { + return + } + k = strings.ToLower(k) + md[k] = append(md[k], vals...) +} + +// Delete removes the values for a given key k which is converted to lowercase +// before removing it from md. +func (md MD) Delete(k string) { + k = strings.ToLower(k) + delete(md, k) +} + +// Join joins any number of mds into a single MD. +// +// The order of values for each key is determined by the order in which the mds +// containing those values are presented to Join. +func Join(mds ...MD) MD { + out := MD{} + for _, md := range mds { + for k, v := range md { + out[k] = append(out[k], v...) + } + } + return out +} + +type mdIncomingKey struct{} +type mdOutgoingKey struct{} + +// NewIncomingContext creates a new context with incoming md attached. +func NewIncomingContext(ctx context.Context, md MD) context.Context { + return context.WithValue(ctx, mdIncomingKey{}, md) +} + +// NewOutgoingContext creates a new context with outgoing md attached. If used +// in conjunction with AppendToOutgoingContext, NewOutgoingContext will +// overwrite any previously-appended metadata. +func NewOutgoingContext(ctx context.Context, md MD) context.Context { + return context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md}) +} + +// AppendToOutgoingContext returns a new context with the provided kv merged +// with any existing metadata in the context. Please refer to the documentation +// of Pairs for a description of kv. +func AppendToOutgoingContext(ctx context.Context, kv ...string) context.Context { + if len(kv)%2 == 1 { + panic(fmt.Sprintf("metadata: AppendToOutgoingContext got an odd number of input pairs for metadata: %d", len(kv))) + } + md, _ := ctx.Value(mdOutgoingKey{}).(rawMD) + added := make([][]string, len(md.added)+1) + copy(added, md.added) + added[len(added)-1] = make([]string, len(kv)) + copy(added[len(added)-1], kv) + return context.WithValue(ctx, mdOutgoingKey{}, rawMD{md: md.md, added: added}) +} + +// FromIncomingContext returns the incoming metadata in ctx if it exists. +// +// All keys in the returned MD are lowercase. +func FromIncomingContext(ctx context.Context) (MD, bool) { + md, ok := ctx.Value(mdIncomingKey{}).(MD) + if !ok { + return nil, false + } + out := make(MD, len(md)) + for k, v := range md { + // We need to manually convert all keys to lower case, because MD is a + // map, and there's no guarantee that the MD attached to the context is + // created using our helper functions. + key := strings.ToLower(k) + out[key] = copyOf(v) + } + return out, true +} + +// ValueFromIncomingContext returns the metadata value corresponding to the metadata +// key from the incoming metadata if it exists. Key must be lower-case. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func ValueFromIncomingContext(ctx context.Context, key string) []string { + md, ok := ctx.Value(mdIncomingKey{}).(MD) + if !ok { + return nil + } + + if v, ok := md[key]; ok { + return copyOf(v) + } + for k, v := range md { + // We need to manually convert all keys to lower case, because MD is a + // map, and there's no guarantee that the MD attached to the context is + // created using our helper functions. + if strings.ToLower(k) == key { + return copyOf(v) + } + } + return nil +} + +// the returned slice must not be modified in place +func copyOf(v []string) []string { + vals := make([]string, len(v)) + copy(vals, v) + return vals +} + +// FromOutgoingContextRaw returns the un-merged, intermediary contents of rawMD. +// +// Remember to perform strings.ToLower on the keys, for both the returned MD (MD +// is a map, there's no guarantee it's created using our helper functions) and +// the extra kv pairs (AppendToOutgoingContext doesn't turn them into +// lowercase). +// +// This is intended for gRPC-internal use ONLY. Users should use +// FromOutgoingContext instead. +func FromOutgoingContextRaw(ctx context.Context) (MD, [][]string, bool) { + raw, ok := ctx.Value(mdOutgoingKey{}).(rawMD) + if !ok { + return nil, nil, false + } + + return raw.md, raw.added, true +} + +// FromOutgoingContext returns the outgoing metadata in ctx if it exists. +// +// All keys in the returned MD are lowercase. +func FromOutgoingContext(ctx context.Context) (MD, bool) { + raw, ok := ctx.Value(mdOutgoingKey{}).(rawMD) + if !ok { + return nil, false + } + + mdSize := len(raw.md) + for i := range raw.added { + mdSize += len(raw.added[i]) / 2 + } + + out := make(MD, mdSize) + for k, v := range raw.md { + // We need to manually convert all keys to lower case, because MD is a + // map, and there's no guarantee that the MD attached to the context is + // created using our helper functions. + key := strings.ToLower(k) + out[key] = copyOf(v) + } + for _, added := range raw.added { + if len(added)%2 == 1 { + panic(fmt.Sprintf("metadata: FromOutgoingContext got an odd number of input pairs for metadata: %d", len(added))) + } + + for i := 0; i < len(added); i += 2 { + key := strings.ToLower(added[i]) + out[key] = append(out[key], added[i+1]) + } + } + return out, ok +} + +type rawMD struct { + md MD + added [][]string +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/peer/peer.go b/ecs-agent/vendor/google.golang.org/grpc/peer/peer.go new file mode 100644 index 0000000000..e01d219ffb --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/peer/peer.go @@ -0,0 +1,51 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package peer defines various peer information associated with RPCs and +// corresponding utils. +package peer + +import ( + "context" + "net" + + "google.golang.org/grpc/credentials" +) + +// Peer contains the information of the peer for an RPC, such as the address +// and authentication information. +type Peer struct { + // Addr is the peer address. + Addr net.Addr + // AuthInfo is the authentication information of the transport. + // It is nil if there is no transport security being used. + AuthInfo credentials.AuthInfo +} + +type peerKey struct{} + +// NewContext creates a new context with peer information attached. +func NewContext(ctx context.Context, p *Peer) context.Context { + return context.WithValue(ctx, peerKey{}, p) +} + +// FromContext returns the peer information in ctx if it exists. +func FromContext(ctx context.Context) (p *Peer, ok bool) { + p, ok = ctx.Value(peerKey{}).(*Peer) + return +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/picker_wrapper.go b/ecs-agent/vendor/google.golang.org/grpc/picker_wrapper.go new file mode 100644 index 0000000000..a5d5516ee0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/picker_wrapper.go @@ -0,0 +1,188 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "io" + "sync" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/internal/channelz" + istatus "google.golang.org/grpc/internal/status" + "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/status" +) + +// pickerWrapper is a wrapper of balancer.Picker. It blocks on certain pick +// actions and unblock when there's a picker update. +type pickerWrapper struct { + mu sync.Mutex + done bool + blockingCh chan struct{} + picker balancer.Picker +} + +func newPickerWrapper() *pickerWrapper { + return &pickerWrapper{blockingCh: make(chan struct{})} +} + +// updatePicker is called by UpdateBalancerState. It unblocks all blocked pick. +func (pw *pickerWrapper) updatePicker(p balancer.Picker) { + pw.mu.Lock() + if pw.done { + pw.mu.Unlock() + return + } + pw.picker = p + // pw.blockingCh should never be nil. + close(pw.blockingCh) + pw.blockingCh = make(chan struct{}) + pw.mu.Unlock() +} + +func doneChannelzWrapper(acw *acBalancerWrapper, done func(balancer.DoneInfo)) func(balancer.DoneInfo) { + acw.mu.Lock() + ac := acw.ac + acw.mu.Unlock() + ac.incrCallsStarted() + return func(b balancer.DoneInfo) { + if b.Err != nil && b.Err != io.EOF { + ac.incrCallsFailed() + } else { + ac.incrCallsSucceeded() + } + if done != nil { + done(b) + } + } +} + +// pick returns the transport that will be used for the RPC. +// It may block in the following cases: +// - there's no picker +// - the current picker returns ErrNoSubConnAvailable +// - the current picker returns other errors and failfast is false. +// - the subConn returned by the current picker is not READY +// When one of these situations happens, pick blocks until the picker gets updated. +func (pw *pickerWrapper) pick(ctx context.Context, failfast bool, info balancer.PickInfo) (transport.ClientTransport, func(balancer.DoneInfo), error) { + var ch chan struct{} + + var lastPickErr error + for { + pw.mu.Lock() + if pw.done { + pw.mu.Unlock() + return nil, nil, ErrClientConnClosing + } + + if pw.picker == nil { + ch = pw.blockingCh + } + if ch == pw.blockingCh { + // This could happen when either: + // - pw.picker is nil (the previous if condition), or + // - has called pick on the current picker. + pw.mu.Unlock() + select { + case <-ctx.Done(): + var errStr string + if lastPickErr != nil { + errStr = "latest balancer error: " + lastPickErr.Error() + } else { + errStr = ctx.Err().Error() + } + switch ctx.Err() { + case context.DeadlineExceeded: + return nil, nil, status.Error(codes.DeadlineExceeded, errStr) + case context.Canceled: + return nil, nil, status.Error(codes.Canceled, errStr) + } + case <-ch: + } + continue + } + + ch = pw.blockingCh + p := pw.picker + pw.mu.Unlock() + + pickResult, err := p.Pick(info) + + if err != nil { + if err == balancer.ErrNoSubConnAvailable { + continue + } + if st, ok := status.FromError(err); ok { + // Status error: end the RPC unconditionally with this status. + // First restrict the code to the list allowed by gRFC A54. + if istatus.IsRestrictedControlPlaneCode(st) { + err = status.Errorf(codes.Internal, "received picker error with illegal status: %v", err) + } + return nil, nil, dropError{error: err} + } + // For all other errors, wait for ready RPCs should block and other + // RPCs should fail with unavailable. + if !failfast { + lastPickErr = err + continue + } + return nil, nil, status.Error(codes.Unavailable, err.Error()) + } + + acw, ok := pickResult.SubConn.(*acBalancerWrapper) + if !ok { + logger.Errorf("subconn returned from pick is type %T, not *acBalancerWrapper", pickResult.SubConn) + continue + } + if t := acw.getAddrConn().getReadyTransport(); t != nil { + if channelz.IsOn() { + return t, doneChannelzWrapper(acw, pickResult.Done), nil + } + return t, pickResult.Done, nil + } + if pickResult.Done != nil { + // Calling done with nil error, no bytes sent and no bytes received. + // DoneInfo with default value works. + pickResult.Done(balancer.DoneInfo{}) + } + logger.Infof("blockingPicker: the picked transport is not ready, loop back to repick") + // If ok == false, ac.state is not READY. + // A valid picker always returns READY subConn. This means the state of ac + // just changed, and picker will be updated shortly. + // continue back to the beginning of the for loop to repick. + } +} + +func (pw *pickerWrapper) close() { + pw.mu.Lock() + defer pw.mu.Unlock() + if pw.done { + return + } + pw.done = true + close(pw.blockingCh) +} + +// dropError is a wrapper error that indicates the LB policy wishes to drop the +// RPC and not retry it. +type dropError struct { + error +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/pickfirst.go b/ecs-agent/vendor/google.golang.org/grpc/pickfirst.go new file mode 100644 index 0000000000..b3a55481b9 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/pickfirst.go @@ -0,0 +1,183 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "errors" + "fmt" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/connectivity" +) + +// PickFirstBalancerName is the name of the pick_first balancer. +const PickFirstBalancerName = "pick_first" + +func newPickfirstBuilder() balancer.Builder { + return &pickfirstBuilder{} +} + +type pickfirstBuilder struct{} + +func (*pickfirstBuilder) Build(cc balancer.ClientConn, opt balancer.BuildOptions) balancer.Balancer { + return &pickfirstBalancer{cc: cc} +} + +func (*pickfirstBuilder) Name() string { + return PickFirstBalancerName +} + +type pickfirstBalancer struct { + state connectivity.State + cc balancer.ClientConn + subConn balancer.SubConn +} + +func (b *pickfirstBalancer) ResolverError(err error) { + if logger.V(2) { + logger.Infof("pickfirstBalancer: ResolverError called with error %v", err) + } + if b.subConn == nil { + b.state = connectivity.TransientFailure + } + + if b.state != connectivity.TransientFailure { + // The picker will not change since the balancer does not currently + // report an error. + return + } + b.cc.UpdateState(balancer.State{ + ConnectivityState: connectivity.TransientFailure, + Picker: &picker{err: fmt.Errorf("name resolver error: %v", err)}, + }) +} + +func (b *pickfirstBalancer) UpdateClientConnState(state balancer.ClientConnState) error { + if len(state.ResolverState.Addresses) == 0 { + // The resolver reported an empty address list. Treat it like an error by + // calling b.ResolverError. + if b.subConn != nil { + // Remove the old subConn. All addresses were removed, so it is no longer + // valid. + b.cc.RemoveSubConn(b.subConn) + b.subConn = nil + } + b.ResolverError(errors.New("produced zero addresses")) + return balancer.ErrBadResolverState + } + + if b.subConn != nil { + b.cc.UpdateAddresses(b.subConn, state.ResolverState.Addresses) + return nil + } + + subConn, err := b.cc.NewSubConn(state.ResolverState.Addresses, balancer.NewSubConnOptions{}) + if err != nil { + if logger.V(2) { + logger.Errorf("pickfirstBalancer: failed to NewSubConn: %v", err) + } + b.state = connectivity.TransientFailure + b.cc.UpdateState(balancer.State{ + ConnectivityState: connectivity.TransientFailure, + Picker: &picker{err: fmt.Errorf("error creating connection: %v", err)}, + }) + return balancer.ErrBadResolverState + } + b.subConn = subConn + b.state = connectivity.Idle + b.cc.UpdateState(balancer.State{ + ConnectivityState: connectivity.Connecting, + Picker: &picker{err: balancer.ErrNoSubConnAvailable}, + }) + b.subConn.Connect() + return nil +} + +func (b *pickfirstBalancer) UpdateSubConnState(subConn balancer.SubConn, state balancer.SubConnState) { + if logger.V(2) { + logger.Infof("pickfirstBalancer: UpdateSubConnState: %p, %v", subConn, state) + } + if b.subConn != subConn { + if logger.V(2) { + logger.Infof("pickfirstBalancer: ignored state change because subConn is not recognized") + } + return + } + b.state = state.ConnectivityState + if state.ConnectivityState == connectivity.Shutdown { + b.subConn = nil + return + } + + switch state.ConnectivityState { + case connectivity.Ready: + b.cc.UpdateState(balancer.State{ + ConnectivityState: state.ConnectivityState, + Picker: &picker{result: balancer.PickResult{SubConn: subConn}}, + }) + case connectivity.Connecting: + b.cc.UpdateState(balancer.State{ + ConnectivityState: state.ConnectivityState, + Picker: &picker{err: balancer.ErrNoSubConnAvailable}, + }) + case connectivity.Idle: + b.cc.UpdateState(balancer.State{ + ConnectivityState: state.ConnectivityState, + Picker: &idlePicker{subConn: subConn}, + }) + case connectivity.TransientFailure: + b.cc.UpdateState(balancer.State{ + ConnectivityState: state.ConnectivityState, + Picker: &picker{err: state.ConnectionError}, + }) + } +} + +func (b *pickfirstBalancer) Close() { +} + +func (b *pickfirstBalancer) ExitIdle() { + if b.subConn != nil && b.state == connectivity.Idle { + b.subConn.Connect() + } +} + +type picker struct { + result balancer.PickResult + err error +} + +func (p *picker) Pick(balancer.PickInfo) (balancer.PickResult, error) { + return p.result, p.err +} + +// idlePicker is used when the SubConn is IDLE and kicks the SubConn into +// CONNECTING when Pick is called. +type idlePicker struct { + subConn balancer.SubConn +} + +func (i *idlePicker) Pick(balancer.PickInfo) (balancer.PickResult, error) { + i.subConn.Connect() + return balancer.PickResult{}, balancer.ErrNoSubConnAvailable +} + +func init() { + balancer.Register(newPickfirstBuilder()) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/preloader.go b/ecs-agent/vendor/google.golang.org/grpc/preloader.go new file mode 100644 index 0000000000..cd45547854 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/preloader.go @@ -0,0 +1,67 @@ +/* + * + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" +) + +// PreparedMsg is responsible for creating a Marshalled and Compressed object. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type PreparedMsg struct { + // Struct for preparing msg before sending them + encodedData []byte + hdr []byte + payload []byte +} + +// Encode marshalls and compresses the message using the codec and compressor for the stream. +func (p *PreparedMsg) Encode(s Stream, msg interface{}) error { + ctx := s.Context() + rpcInfo, ok := rpcInfoFromContext(ctx) + if !ok { + return status.Errorf(codes.Internal, "grpc: unable to get rpcInfo") + } + + // check if the context has the relevant information to prepareMsg + if rpcInfo.preloaderInfo == nil { + return status.Errorf(codes.Internal, "grpc: rpcInfo.preloaderInfo is nil") + } + if rpcInfo.preloaderInfo.codec == nil { + return status.Errorf(codes.Internal, "grpc: rpcInfo.preloaderInfo.codec is nil") + } + + // prepare the msg + data, err := encode(rpcInfo.preloaderInfo.codec, msg) + if err != nil { + return err + } + p.encodedData = data + compData, err := compress(data, rpcInfo.preloaderInfo.cp, rpcInfo.preloaderInfo.comp) + if err != nil { + return err + } + p.hdr, p.payload = msgHeader(data, compData) + return nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/regenerate.sh b/ecs-agent/vendor/google.golang.org/grpc/regenerate.sh new file mode 100644 index 0000000000..a6f26c8ab0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/regenerate.sh @@ -0,0 +1,123 @@ +#!/bin/bash +# Copyright 2020 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eu -o pipefail + +WORKDIR=$(mktemp -d) + +function finish { + rm -rf "$WORKDIR" +} +trap finish EXIT + +export GOBIN=${WORKDIR}/bin +export PATH=${GOBIN}:${PATH} +mkdir -p ${GOBIN} + +echo "remove existing generated files" +# grpc_testing_not_regenerate/*.pb.go is not re-generated, +# see grpc_testing_not_regenerate/README.md for details. +rm -f $(find . -name '*.pb.go' | grep -v 'grpc_testing_not_regenerate') + +echo "go install google.golang.org/protobuf/cmd/protoc-gen-go" +(cd test/tools && go install google.golang.org/protobuf/cmd/protoc-gen-go) + +echo "go install cmd/protoc-gen-go-grpc" +(cd cmd/protoc-gen-go-grpc && go install .) + +echo "git clone https://github.com/grpc/grpc-proto" +git clone --quiet https://github.com/grpc/grpc-proto ${WORKDIR}/grpc-proto + +echo "git clone https://github.com/protocolbuffers/protobuf" +git clone --quiet https://github.com/protocolbuffers/protobuf ${WORKDIR}/protobuf + +# Pull in code.proto as a proto dependency +mkdir -p ${WORKDIR}/googleapis/google/rpc +echo "curl https://raw.githubusercontent.com/googleapis/googleapis/master/google/rpc/code.proto" +curl --silent https://raw.githubusercontent.com/googleapis/googleapis/master/google/rpc/code.proto > ${WORKDIR}/googleapis/google/rpc/code.proto + +mkdir -p ${WORKDIR}/out + +# Generates sources without the embed requirement +LEGACY_SOURCES=( + ${WORKDIR}/grpc-proto/grpc/binlog/v1/binarylog.proto + ${WORKDIR}/grpc-proto/grpc/channelz/v1/channelz.proto + ${WORKDIR}/grpc-proto/grpc/health/v1/health.proto + ${WORKDIR}/grpc-proto/grpc/lb/v1/load_balancer.proto + profiling/proto/service.proto + ${WORKDIR}/grpc-proto/grpc/reflection/v1alpha/reflection.proto + ${WORKDIR}/grpc-proto/grpc/reflection/v1/reflection.proto +) + +# Generates only the new gRPC Service symbols +SOURCES=( + $(git ls-files --exclude-standard --cached --others "*.proto" | grep -v '^\(profiling/proto/service.proto\|reflection/grpc_reflection_v1alpha/reflection.proto\)$') + ${WORKDIR}/grpc-proto/grpc/gcp/altscontext.proto + ${WORKDIR}/grpc-proto/grpc/gcp/handshaker.proto + ${WORKDIR}/grpc-proto/grpc/gcp/transport_security_common.proto + ${WORKDIR}/grpc-proto/grpc/lookup/v1/rls.proto + ${WORKDIR}/grpc-proto/grpc/lookup/v1/rls_config.proto + ${WORKDIR}/grpc-proto/grpc/testing/*.proto + ${WORKDIR}/grpc-proto/grpc/core/*.proto +) + +# These options of the form 'Mfoo.proto=bar' instruct the codegen to use an +# import path of 'bar' in the generated code when 'foo.proto' is imported in +# one of the sources. +# +# Note that the protos listed here are all for testing purposes. All protos to +# be used externally should have a go_package option (and they don't need to be +# listed here). +OPTS=Mgrpc/core/stats.proto=google.golang.org/grpc/interop/grpc_testing/core,\ +Mgrpc/testing/benchmark_service.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/stats.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/report_qps_scenario_service.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/messages.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/worker_service.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/control.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/test.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/payloads.proto=google.golang.org/grpc/interop/grpc_testing,\ +Mgrpc/testing/empty.proto=google.golang.org/grpc/interop/grpc_testing + +for src in ${SOURCES[@]}; do + echo "protoc ${src}" + protoc --go_out=${OPTS}:${WORKDIR}/out --go-grpc_out=${OPTS}:${WORKDIR}/out \ + -I"." \ + -I${WORKDIR}/grpc-proto \ + -I${WORKDIR}/googleapis \ + -I${WORKDIR}/protobuf/src \ + ${src} +done + +for src in ${LEGACY_SOURCES[@]}; do + echo "protoc ${src}" + protoc --go_out=${OPTS}:${WORKDIR}/out --go-grpc_out=${OPTS},require_unimplemented_servers=false:${WORKDIR}/out \ + -I"." \ + -I${WORKDIR}/grpc-proto \ + -I${WORKDIR}/googleapis \ + -I${WORKDIR}/protobuf/src \ + ${src} +done + +# The go_package option in grpc/lookup/v1/rls.proto doesn't match the +# current location. Move it into the right place. +mkdir -p ${WORKDIR}/out/google.golang.org/grpc/internal/proto/grpc_lookup_v1 +mv ${WORKDIR}/out/google.golang.org/grpc/lookup/grpc_lookup_v1/* ${WORKDIR}/out/google.golang.org/grpc/internal/proto/grpc_lookup_v1 + +# grpc_testing_not_regenerate/*.pb.go are not re-generated, +# see grpc_testing_not_regenerate/README.md for details. +rm ${WORKDIR}/out/google.golang.org/grpc/reflection/grpc_testing_not_regenerate/*.pb.go + +cp -R ${WORKDIR}/out/google.golang.org/grpc/* . diff --git a/ecs-agent/vendor/google.golang.org/grpc/resolver/map.go b/ecs-agent/vendor/google.golang.org/grpc/resolver/map.go new file mode 100644 index 0000000000..efcb7f3efd --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/resolver/map.go @@ -0,0 +1,138 @@ +/* + * + * Copyright 2021 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package resolver + +type addressMapEntry struct { + addr Address + value interface{} +} + +// AddressMap is a map of addresses to arbitrary values taking into account +// Attributes. BalancerAttributes are ignored, as are Metadata and Type. +// Multiple accesses may not be performed concurrently. Must be created via +// NewAddressMap; do not construct directly. +type AddressMap struct { + // The underlying map is keyed by an Address with fields that we don't care + // about being set to their zero values. The only fields that we care about + // are `Addr`, `ServerName` and `Attributes`. Since we need to be able to + // distinguish between addresses with same `Addr` and `ServerName`, but + // different `Attributes`, we cannot store the `Attributes` in the map key. + // + // The comparison operation for structs work as follows: + // Struct values are comparable if all their fields are comparable. Two + // struct values are equal if their corresponding non-blank fields are equal. + // + // The value type of the map contains a slice of addresses which match the key + // in their `Addr` and `ServerName` fields and contain the corresponding value + // associated with them. + m map[Address]addressMapEntryList +} + +func toMapKey(addr *Address) Address { + return Address{Addr: addr.Addr, ServerName: addr.ServerName} +} + +type addressMapEntryList []*addressMapEntry + +// NewAddressMap creates a new AddressMap. +func NewAddressMap() *AddressMap { + return &AddressMap{m: make(map[Address]addressMapEntryList)} +} + +// find returns the index of addr in the addressMapEntry slice, or -1 if not +// present. +func (l addressMapEntryList) find(addr Address) int { + for i, entry := range l { + // Attributes are the only thing to match on here, since `Addr` and + // `ServerName` are already equal. + if entry.addr.Attributes.Equal(addr.Attributes) { + return i + } + } + return -1 +} + +// Get returns the value for the address in the map, if present. +func (a *AddressMap) Get(addr Address) (value interface{}, ok bool) { + addrKey := toMapKey(&addr) + entryList := a.m[addrKey] + if entry := entryList.find(addr); entry != -1 { + return entryList[entry].value, true + } + return nil, false +} + +// Set updates or adds the value to the address in the map. +func (a *AddressMap) Set(addr Address, value interface{}) { + addrKey := toMapKey(&addr) + entryList := a.m[addrKey] + if entry := entryList.find(addr); entry != -1 { + entryList[entry].value = value + return + } + a.m[addrKey] = append(entryList, &addressMapEntry{addr: addr, value: value}) +} + +// Delete removes addr from the map. +func (a *AddressMap) Delete(addr Address) { + addrKey := toMapKey(&addr) + entryList := a.m[addrKey] + entry := entryList.find(addr) + if entry == -1 { + return + } + if len(entryList) == 1 { + entryList = nil + } else { + copy(entryList[entry:], entryList[entry+1:]) + entryList = entryList[:len(entryList)-1] + } + a.m[addrKey] = entryList +} + +// Len returns the number of entries in the map. +func (a *AddressMap) Len() int { + ret := 0 + for _, entryList := range a.m { + ret += len(entryList) + } + return ret +} + +// Keys returns a slice of all current map keys. +func (a *AddressMap) Keys() []Address { + ret := make([]Address, 0, a.Len()) + for _, entryList := range a.m { + for _, entry := range entryList { + ret = append(ret, entry.addr) + } + } + return ret +} + +// Values returns a slice of all current map values. +func (a *AddressMap) Values() []interface{} { + ret := make([]interface{}, 0, a.Len()) + for _, entryList := range a.m { + for _, entry := range entryList { + ret = append(ret, entry.value) + } + } + return ret +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/resolver/resolver.go b/ecs-agent/vendor/google.golang.org/grpc/resolver/resolver.go new file mode 100644 index 0000000000..967cbc7373 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/resolver/resolver.go @@ -0,0 +1,292 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package resolver defines APIs for name resolution in gRPC. +// All APIs in this package are experimental. +package resolver + +import ( + "context" + "net" + "net/url" + + "google.golang.org/grpc/attributes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/pretty" + "google.golang.org/grpc/serviceconfig" +) + +var ( + // m is a map from scheme to resolver builder. + m = make(map[string]Builder) + // defaultScheme is the default scheme to use. + defaultScheme = "passthrough" +) + +// TODO(bar) install dns resolver in init(){}. + +// Register registers the resolver builder to the resolver map. b.Scheme will be +// used as the scheme registered with this builder. +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. If multiple Resolvers are +// registered with the same name, the one registered last will take effect. +func Register(b Builder) { + m[b.Scheme()] = b +} + +// Get returns the resolver builder registered with the given scheme. +// +// If no builder is register with the scheme, nil will be returned. +func Get(scheme string) Builder { + if b, ok := m[scheme]; ok { + return b + } + return nil +} + +// SetDefaultScheme sets the default scheme that will be used. The default +// default scheme is "passthrough". +// +// NOTE: this function must only be called during initialization time (i.e. in +// an init() function), and is not thread-safe. The scheme set last overrides +// previously set values. +func SetDefaultScheme(scheme string) { + defaultScheme = scheme +} + +// GetDefaultScheme gets the default scheme that will be used. +func GetDefaultScheme() string { + return defaultScheme +} + +// AddressType indicates the address type returned by name resolution. +// +// Deprecated: use Attributes in Address instead. +type AddressType uint8 + +const ( + // Backend indicates the address is for a backend server. + // + // Deprecated: use Attributes in Address instead. + Backend AddressType = iota + // GRPCLB indicates the address is for a grpclb load balancer. + // + // Deprecated: to select the GRPCLB load balancing policy, use a service + // config with a corresponding loadBalancingConfig. To supply balancer + // addresses to the GRPCLB load balancing policy, set State.Attributes + // using balancer/grpclb/state.Set. + GRPCLB +) + +// Address represents a server the client connects to. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type Address struct { + // Addr is the server address on which a connection will be established. + Addr string + + // ServerName is the name of this address. + // If non-empty, the ServerName is used as the transport certification authority for + // the address, instead of the hostname from the Dial target string. In most cases, + // this should not be set. + // + // If Type is GRPCLB, ServerName should be the name of the remote load + // balancer, not the name of the backend. + // + // WARNING: ServerName must only be populated with trusted values. It + // is insecure to populate it with data from untrusted inputs since untrusted + // values could be used to bypass the authority checks performed by TLS. + ServerName string + + // Attributes contains arbitrary data about this address intended for + // consumption by the SubConn. + Attributes *attributes.Attributes + + // BalancerAttributes contains arbitrary data about this address intended + // for consumption by the LB policy. These attribes do not affect SubConn + // creation, connection establishment, handshaking, etc. + BalancerAttributes *attributes.Attributes + + // Type is the type of this address. + // + // Deprecated: use Attributes instead. + Type AddressType + + // Metadata is the information associated with Addr, which may be used + // to make load balancing decision. + // + // Deprecated: use Attributes instead. + Metadata interface{} +} + +// Equal returns whether a and o are identical. Metadata is compared directly, +// not with any recursive introspection. +func (a Address) Equal(o Address) bool { + return a.Addr == o.Addr && a.ServerName == o.ServerName && + a.Attributes.Equal(o.Attributes) && + a.BalancerAttributes.Equal(o.BalancerAttributes) && + a.Type == o.Type && a.Metadata == o.Metadata +} + +// String returns JSON formatted string representation of the address. +func (a Address) String() string { + return pretty.ToJSON(a) +} + +// BuildOptions includes additional information for the builder to create +// the resolver. +type BuildOptions struct { + // DisableServiceConfig indicates whether a resolver implementation should + // fetch service config data. + DisableServiceConfig bool + // DialCreds is the transport credentials used by the ClientConn for + // communicating with the target gRPC service (set via + // WithTransportCredentials). In cases where a name resolution service + // requires the same credentials, the resolver may use this field. In most + // cases though, it is not appropriate, and this field may be ignored. + DialCreds credentials.TransportCredentials + // CredsBundle is the credentials bundle used by the ClientConn for + // communicating with the target gRPC service (set via + // WithCredentialsBundle). In cases where a name resolution service + // requires the same credentials, the resolver may use this field. In most + // cases though, it is not appropriate, and this field may be ignored. + CredsBundle credentials.Bundle + // Dialer is the custom dialer used by the ClientConn for dialling the + // target gRPC service (set via WithDialer). In cases where a name + // resolution service requires the same dialer, the resolver may use this + // field. In most cases though, it is not appropriate, and this field may + // be ignored. + Dialer func(context.Context, string) (net.Conn, error) +} + +// State contains the current Resolver state relevant to the ClientConn. +type State struct { + // Addresses is the latest set of resolved addresses for the target. + Addresses []Address + + // ServiceConfig contains the result from parsing the latest service + // config. If it is nil, it indicates no service config is present or the + // resolver does not provide service configs. + ServiceConfig *serviceconfig.ParseResult + + // Attributes contains arbitrary data about the resolver intended for + // consumption by the load balancing policy. + Attributes *attributes.Attributes +} + +// ClientConn contains the callbacks for resolver to notify any updates +// to the gRPC ClientConn. +// +// This interface is to be implemented by gRPC. Users should not need a +// brand new implementation of this interface. For the situations like +// testing, the new implementation should embed this interface. This allows +// gRPC to add new methods to this interface. +type ClientConn interface { + // UpdateState updates the state of the ClientConn appropriately. + UpdateState(State) error + // ReportError notifies the ClientConn that the Resolver encountered an + // error. The ClientConn will notify the load balancer and begin calling + // ResolveNow on the Resolver with exponential backoff. + ReportError(error) + // NewAddress is called by resolver to notify ClientConn a new list + // of resolved addresses. + // The address list should be the complete list of resolved addresses. + // + // Deprecated: Use UpdateState instead. + NewAddress(addresses []Address) + // NewServiceConfig is called by resolver to notify ClientConn a new + // service config. The service config should be provided as a json string. + // + // Deprecated: Use UpdateState instead. + NewServiceConfig(serviceConfig string) + // ParseServiceConfig parses the provided service config and returns an + // object that provides the parsed config. + ParseServiceConfig(serviceConfigJSON string) *serviceconfig.ParseResult +} + +// Target represents a target for gRPC, as specified in: +// https://github.com/grpc/grpc/blob/master/doc/naming.md. +// It is parsed from the target string that gets passed into Dial or DialContext +// by the user. And gRPC passes it to the resolver and the balancer. +// +// If the target follows the naming spec, and the parsed scheme is registered +// with gRPC, we will parse the target string according to the spec. If the +// target does not contain a scheme or if the parsed scheme is not registered +// (i.e. no corresponding resolver available to resolve the endpoint), we will +// apply the default scheme, and will attempt to reparse it. +// +// Examples: +// +// - "dns://some_authority/foo.bar" +// Target{Scheme: "dns", Authority: "some_authority", Endpoint: "foo.bar"} +// - "foo.bar" +// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "foo.bar"} +// - "unknown_scheme://authority/endpoint" +// Target{Scheme: resolver.GetDefaultScheme(), Endpoint: "unknown_scheme://authority/endpoint"} +type Target struct { + // Deprecated: use URL.Scheme instead. + Scheme string + // Deprecated: use URL.Host instead. + Authority string + // Deprecated: use URL.Path or URL.Opaque instead. The latter is set when + // the former is empty. + Endpoint string + // URL contains the parsed dial target with an optional default scheme added + // to it if the original dial target contained no scheme or contained an + // unregistered scheme. Any query params specified in the original dial + // target can be accessed from here. + URL url.URL +} + +// Builder creates a resolver that will be used to watch name resolution updates. +type Builder interface { + // Build creates a new resolver for the given target. + // + // gRPC dial calls Build synchronously, and fails if the returned error is + // not nil. + Build(target Target, cc ClientConn, opts BuildOptions) (Resolver, error) + // Scheme returns the scheme supported by this resolver. + // Scheme is defined at https://github.com/grpc/grpc/blob/master/doc/naming.md. + Scheme() string +} + +// ResolveNowOptions includes additional information for ResolveNow. +type ResolveNowOptions struct{} + +// Resolver watches for the updates on the specified target. +// Updates include address updates and service config updates. +type Resolver interface { + // ResolveNow will be called by gRPC to try to resolve the target name + // again. It's just a hint, resolver can ignore this if it's not necessary. + // + // It could be called multiple times concurrently. + ResolveNow(ResolveNowOptions) + // Close closes the resolver. + Close() +} + +// UnregisterForTesting removes the resolver builder with the given scheme from the +// resolver map. +// This function is for testing only. +func UnregisterForTesting(scheme string) { + delete(m, scheme) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/resolver_conn_wrapper.go b/ecs-agent/vendor/google.golang.org/grpc/resolver_conn_wrapper.go new file mode 100644 index 0000000000..05a9d4e0ba --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/resolver_conn_wrapper.go @@ -0,0 +1,176 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "strings" + "sync" + + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/internal/pretty" + "google.golang.org/grpc/resolver" + "google.golang.org/grpc/serviceconfig" +) + +// ccResolverWrapper is a wrapper on top of cc for resolvers. +// It implements resolver.ClientConn interface. +type ccResolverWrapper struct { + cc *ClientConn + resolverMu sync.Mutex + resolver resolver.Resolver + done *grpcsync.Event + curState resolver.State + + incomingMu sync.Mutex // Synchronizes all the incoming calls. +} + +// newCCResolverWrapper uses the resolver.Builder to build a Resolver and +// returns a ccResolverWrapper object which wraps the newly built resolver. +func newCCResolverWrapper(cc *ClientConn, rb resolver.Builder) (*ccResolverWrapper, error) { + ccr := &ccResolverWrapper{ + cc: cc, + done: grpcsync.NewEvent(), + } + + var credsClone credentials.TransportCredentials + if creds := cc.dopts.copts.TransportCredentials; creds != nil { + credsClone = creds.Clone() + } + rbo := resolver.BuildOptions{ + DisableServiceConfig: cc.dopts.disableServiceConfig, + DialCreds: credsClone, + CredsBundle: cc.dopts.copts.CredsBundle, + Dialer: cc.dopts.copts.Dialer, + } + + var err error + // We need to hold the lock here while we assign to the ccr.resolver field + // to guard against a data race caused by the following code path, + // rb.Build-->ccr.ReportError-->ccr.poll-->ccr.resolveNow, would end up + // accessing ccr.resolver which is being assigned here. + ccr.resolverMu.Lock() + defer ccr.resolverMu.Unlock() + ccr.resolver, err = rb.Build(cc.parsedTarget, ccr, rbo) + if err != nil { + return nil, err + } + return ccr, nil +} + +func (ccr *ccResolverWrapper) resolveNow(o resolver.ResolveNowOptions) { + ccr.resolverMu.Lock() + if !ccr.done.HasFired() { + ccr.resolver.ResolveNow(o) + } + ccr.resolverMu.Unlock() +} + +func (ccr *ccResolverWrapper) close() { + ccr.resolverMu.Lock() + ccr.resolver.Close() + ccr.done.Fire() + ccr.resolverMu.Unlock() +} + +func (ccr *ccResolverWrapper) UpdateState(s resolver.State) error { + ccr.incomingMu.Lock() + defer ccr.incomingMu.Unlock() + if ccr.done.HasFired() { + return nil + } + ccr.addChannelzTraceEvent(s) + ccr.curState = s + if err := ccr.cc.updateResolverState(ccr.curState, nil); err == balancer.ErrBadResolverState { + return balancer.ErrBadResolverState + } + return nil +} + +func (ccr *ccResolverWrapper) ReportError(err error) { + ccr.incomingMu.Lock() + defer ccr.incomingMu.Unlock() + if ccr.done.HasFired() { + return + } + channelz.Warningf(logger, ccr.cc.channelzID, "ccResolverWrapper: reporting error to cc: %v", err) + ccr.cc.updateResolverState(resolver.State{}, err) +} + +// NewAddress is called by the resolver implementation to send addresses to gRPC. +func (ccr *ccResolverWrapper) NewAddress(addrs []resolver.Address) { + ccr.incomingMu.Lock() + defer ccr.incomingMu.Unlock() + if ccr.done.HasFired() { + return + } + ccr.addChannelzTraceEvent(resolver.State{Addresses: addrs, ServiceConfig: ccr.curState.ServiceConfig}) + ccr.curState.Addresses = addrs + ccr.cc.updateResolverState(ccr.curState, nil) +} + +// NewServiceConfig is called by the resolver implementation to send service +// configs to gRPC. +func (ccr *ccResolverWrapper) NewServiceConfig(sc string) { + ccr.incomingMu.Lock() + defer ccr.incomingMu.Unlock() + if ccr.done.HasFired() { + return + } + channelz.Infof(logger, ccr.cc.channelzID, "ccResolverWrapper: got new service config: %s", sc) + if ccr.cc.dopts.disableServiceConfig { + channelz.Info(logger, ccr.cc.channelzID, "Service config lookups disabled; ignoring config") + return + } + scpr := parseServiceConfig(sc) + if scpr.Err != nil { + channelz.Warningf(logger, ccr.cc.channelzID, "ccResolverWrapper: error parsing service config: %v", scpr.Err) + return + } + ccr.addChannelzTraceEvent(resolver.State{Addresses: ccr.curState.Addresses, ServiceConfig: scpr}) + ccr.curState.ServiceConfig = scpr + ccr.cc.updateResolverState(ccr.curState, nil) +} + +func (ccr *ccResolverWrapper) ParseServiceConfig(scJSON string) *serviceconfig.ParseResult { + return parseServiceConfig(scJSON) +} + +func (ccr *ccResolverWrapper) addChannelzTraceEvent(s resolver.State) { + var updates []string + var oldSC, newSC *ServiceConfig + var oldOK, newOK bool + if ccr.curState.ServiceConfig != nil { + oldSC, oldOK = ccr.curState.ServiceConfig.Config.(*ServiceConfig) + } + if s.ServiceConfig != nil { + newSC, newOK = s.ServiceConfig.Config.(*ServiceConfig) + } + if oldOK != newOK || (oldOK && newOK && oldSC.rawJSONString != newSC.rawJSONString) { + updates = append(updates, "service config updated") + } + if len(ccr.curState.Addresses) > 0 && len(s.Addresses) == 0 { + updates = append(updates, "resolver returned an empty address list") + } else if len(ccr.curState.Addresses) == 0 && len(s.Addresses) > 0 { + updates = append(updates, "resolver returned new addresses") + } + channelz.Infof(logger, ccr.cc.channelzID, "Resolver state updated: %s (%v)", pretty.ToJSON(s), strings.Join(updates, "; ")) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/rpc_util.go b/ecs-agent/vendor/google.golang.org/grpc/rpc_util.go new file mode 100644 index 0000000000..934fc1aa01 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/rpc_util.go @@ -0,0 +1,915 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "bytes" + "compress/gzip" + "context" + "encoding/binary" + "fmt" + "io" + "io/ioutil" + "math" + "strings" + "sync" + "time" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/encoding/proto" + "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" +) + +// Compressor defines the interface gRPC uses to compress a message. +// +// Deprecated: use package encoding. +type Compressor interface { + // Do compresses p into w. + Do(w io.Writer, p []byte) error + // Type returns the compression algorithm the Compressor uses. + Type() string +} + +type gzipCompressor struct { + pool sync.Pool +} + +// NewGZIPCompressor creates a Compressor based on GZIP. +// +// Deprecated: use package encoding/gzip. +func NewGZIPCompressor() Compressor { + c, _ := NewGZIPCompressorWithLevel(gzip.DefaultCompression) + return c +} + +// NewGZIPCompressorWithLevel is like NewGZIPCompressor but specifies the gzip compression level instead +// of assuming DefaultCompression. +// +// The error returned will be nil if the level is valid. +// +// Deprecated: use package encoding/gzip. +func NewGZIPCompressorWithLevel(level int) (Compressor, error) { + if level < gzip.DefaultCompression || level > gzip.BestCompression { + return nil, fmt.Errorf("grpc: invalid compression level: %d", level) + } + return &gzipCompressor{ + pool: sync.Pool{ + New: func() interface{} { + w, err := gzip.NewWriterLevel(ioutil.Discard, level) + if err != nil { + panic(err) + } + return w + }, + }, + }, nil +} + +func (c *gzipCompressor) Do(w io.Writer, p []byte) error { + z := c.pool.Get().(*gzip.Writer) + defer c.pool.Put(z) + z.Reset(w) + if _, err := z.Write(p); err != nil { + return err + } + return z.Close() +} + +func (c *gzipCompressor) Type() string { + return "gzip" +} + +// Decompressor defines the interface gRPC uses to decompress a message. +// +// Deprecated: use package encoding. +type Decompressor interface { + // Do reads the data from r and uncompress them. + Do(r io.Reader) ([]byte, error) + // Type returns the compression algorithm the Decompressor uses. + Type() string +} + +type gzipDecompressor struct { + pool sync.Pool +} + +// NewGZIPDecompressor creates a Decompressor based on GZIP. +// +// Deprecated: use package encoding/gzip. +func NewGZIPDecompressor() Decompressor { + return &gzipDecompressor{} +} + +func (d *gzipDecompressor) Do(r io.Reader) ([]byte, error) { + var z *gzip.Reader + switch maybeZ := d.pool.Get().(type) { + case nil: + newZ, err := gzip.NewReader(r) + if err != nil { + return nil, err + } + z = newZ + case *gzip.Reader: + z = maybeZ + if err := z.Reset(r); err != nil { + d.pool.Put(z) + return nil, err + } + } + + defer func() { + z.Close() + d.pool.Put(z) + }() + return ioutil.ReadAll(z) +} + +func (d *gzipDecompressor) Type() string { + return "gzip" +} + +// callInfo contains all related configuration and information about an RPC. +type callInfo struct { + compressorType string + failFast bool + maxReceiveMessageSize *int + maxSendMessageSize *int + creds credentials.PerRPCCredentials + contentSubtype string + codec baseCodec + maxRetryRPCBufferSize int +} + +func defaultCallInfo() *callInfo { + return &callInfo{ + failFast: true, + maxRetryRPCBufferSize: 256 * 1024, // 256KB + } +} + +// CallOption configures a Call before it starts or extracts information from +// a Call after it completes. +type CallOption interface { + // before is called before the call is sent to any server. If before + // returns a non-nil error, the RPC fails with that error. + before(*callInfo) error + + // after is called after the call has completed. after cannot return an + // error, so any failures should be reported via output parameters. + after(*callInfo, *csAttempt) +} + +// EmptyCallOption does not alter the Call configuration. +// It can be embedded in another structure to carry satellite data for use +// by interceptors. +type EmptyCallOption struct{} + +func (EmptyCallOption) before(*callInfo) error { return nil } +func (EmptyCallOption) after(*callInfo, *csAttempt) {} + +// Header returns a CallOptions that retrieves the header metadata +// for a unary RPC. +func Header(md *metadata.MD) CallOption { + return HeaderCallOption{HeaderAddr: md} +} + +// HeaderCallOption is a CallOption for collecting response header metadata. +// The metadata field will be populated *after* the RPC completes. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type HeaderCallOption struct { + HeaderAddr *metadata.MD +} + +func (o HeaderCallOption) before(c *callInfo) error { return nil } +func (o HeaderCallOption) after(c *callInfo, attempt *csAttempt) { + *o.HeaderAddr, _ = attempt.s.Header() +} + +// Trailer returns a CallOptions that retrieves the trailer metadata +// for a unary RPC. +func Trailer(md *metadata.MD) CallOption { + return TrailerCallOption{TrailerAddr: md} +} + +// TrailerCallOption is a CallOption for collecting response trailer metadata. +// The metadata field will be populated *after* the RPC completes. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type TrailerCallOption struct { + TrailerAddr *metadata.MD +} + +func (o TrailerCallOption) before(c *callInfo) error { return nil } +func (o TrailerCallOption) after(c *callInfo, attempt *csAttempt) { + *o.TrailerAddr = attempt.s.Trailer() +} + +// Peer returns a CallOption that retrieves peer information for a unary RPC. +// The peer field will be populated *after* the RPC completes. +func Peer(p *peer.Peer) CallOption { + return PeerCallOption{PeerAddr: p} +} + +// PeerCallOption is a CallOption for collecting the identity of the remote +// peer. The peer field will be populated *after* the RPC completes. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type PeerCallOption struct { + PeerAddr *peer.Peer +} + +func (o PeerCallOption) before(c *callInfo) error { return nil } +func (o PeerCallOption) after(c *callInfo, attempt *csAttempt) { + if x, ok := peer.FromContext(attempt.s.Context()); ok { + *o.PeerAddr = *x + } +} + +// WaitForReady configures the action to take when an RPC is attempted on broken +// connections or unreachable servers. If waitForReady is false and the +// connection is in the TRANSIENT_FAILURE state, the RPC will fail +// immediately. Otherwise, the RPC client will block the call until a +// connection is available (or the call is canceled or times out) and will +// retry the call if it fails due to a transient error. gRPC will not retry if +// data was written to the wire unless the server indicates it did not process +// the data. Please refer to +// https://github.com/grpc/grpc/blob/master/doc/wait-for-ready.md. +// +// By default, RPCs don't "wait for ready". +func WaitForReady(waitForReady bool) CallOption { + return FailFastCallOption{FailFast: !waitForReady} +} + +// FailFast is the opposite of WaitForReady. +// +// Deprecated: use WaitForReady. +func FailFast(failFast bool) CallOption { + return FailFastCallOption{FailFast: failFast} +} + +// FailFastCallOption is a CallOption for indicating whether an RPC should fail +// fast or not. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type FailFastCallOption struct { + FailFast bool +} + +func (o FailFastCallOption) before(c *callInfo) error { + c.failFast = o.FailFast + return nil +} +func (o FailFastCallOption) after(c *callInfo, attempt *csAttempt) {} + +// MaxCallRecvMsgSize returns a CallOption which sets the maximum message size +// in bytes the client can receive. +func MaxCallRecvMsgSize(bytes int) CallOption { + return MaxRecvMsgSizeCallOption{MaxRecvMsgSize: bytes} +} + +// MaxRecvMsgSizeCallOption is a CallOption that indicates the maximum message +// size in bytes the client can receive. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type MaxRecvMsgSizeCallOption struct { + MaxRecvMsgSize int +} + +func (o MaxRecvMsgSizeCallOption) before(c *callInfo) error { + c.maxReceiveMessageSize = &o.MaxRecvMsgSize + return nil +} +func (o MaxRecvMsgSizeCallOption) after(c *callInfo, attempt *csAttempt) {} + +// MaxCallSendMsgSize returns a CallOption which sets the maximum message size +// in bytes the client can send. +func MaxCallSendMsgSize(bytes int) CallOption { + return MaxSendMsgSizeCallOption{MaxSendMsgSize: bytes} +} + +// MaxSendMsgSizeCallOption is a CallOption that indicates the maximum message +// size in bytes the client can send. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type MaxSendMsgSizeCallOption struct { + MaxSendMsgSize int +} + +func (o MaxSendMsgSizeCallOption) before(c *callInfo) error { + c.maxSendMessageSize = &o.MaxSendMsgSize + return nil +} +func (o MaxSendMsgSizeCallOption) after(c *callInfo, attempt *csAttempt) {} + +// PerRPCCredentials returns a CallOption that sets credentials.PerRPCCredentials +// for a call. +func PerRPCCredentials(creds credentials.PerRPCCredentials) CallOption { + return PerRPCCredsCallOption{Creds: creds} +} + +// PerRPCCredsCallOption is a CallOption that indicates the per-RPC +// credentials to use for the call. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type PerRPCCredsCallOption struct { + Creds credentials.PerRPCCredentials +} + +func (o PerRPCCredsCallOption) before(c *callInfo) error { + c.creds = o.Creds + return nil +} +func (o PerRPCCredsCallOption) after(c *callInfo, attempt *csAttempt) {} + +// UseCompressor returns a CallOption which sets the compressor used when +// sending the request. If WithCompressor is also set, UseCompressor has +// higher priority. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func UseCompressor(name string) CallOption { + return CompressorCallOption{CompressorType: name} +} + +// CompressorCallOption is a CallOption that indicates the compressor to use. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type CompressorCallOption struct { + CompressorType string +} + +func (o CompressorCallOption) before(c *callInfo) error { + c.compressorType = o.CompressorType + return nil +} +func (o CompressorCallOption) after(c *callInfo, attempt *csAttempt) {} + +// CallContentSubtype returns a CallOption that will set the content-subtype +// for a call. For example, if content-subtype is "json", the Content-Type over +// the wire will be "application/grpc+json". The content-subtype is converted +// to lowercase before being included in Content-Type. See Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. +// +// If ForceCodec is not also used, the content-subtype will be used to look up +// the Codec to use in the registry controlled by RegisterCodec. See the +// documentation on RegisterCodec for details on registration. The lookup of +// content-subtype is case-insensitive. If no such Codec is found, the call +// will result in an error with code codes.Internal. +// +// If ForceCodec is also used, that Codec will be used for all request and +// response messages, with the content-subtype set to the given contentSubtype +// here for requests. +func CallContentSubtype(contentSubtype string) CallOption { + return ContentSubtypeCallOption{ContentSubtype: strings.ToLower(contentSubtype)} +} + +// ContentSubtypeCallOption is a CallOption that indicates the content-subtype +// used for marshaling messages. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type ContentSubtypeCallOption struct { + ContentSubtype string +} + +func (o ContentSubtypeCallOption) before(c *callInfo) error { + c.contentSubtype = o.ContentSubtype + return nil +} +func (o ContentSubtypeCallOption) after(c *callInfo, attempt *csAttempt) {} + +// ForceCodec returns a CallOption that will set codec to be used for all +// request and response messages for a call. The result of calling Name() will +// be used as the content-subtype after converting to lowercase, unless +// CallContentSubtype is also used. +// +// See Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. Also see the documentation on RegisterCodec and +// CallContentSubtype for more details on the interaction between Codec and +// content-subtype. +// +// This function is provided for advanced users; prefer to use only +// CallContentSubtype to select a registered codec instead. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func ForceCodec(codec encoding.Codec) CallOption { + return ForceCodecCallOption{Codec: codec} +} + +// ForceCodecCallOption is a CallOption that indicates the codec used for +// marshaling messages. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type ForceCodecCallOption struct { + Codec encoding.Codec +} + +func (o ForceCodecCallOption) before(c *callInfo) error { + c.codec = o.Codec + return nil +} +func (o ForceCodecCallOption) after(c *callInfo, attempt *csAttempt) {} + +// CallCustomCodec behaves like ForceCodec, but accepts a grpc.Codec instead of +// an encoding.Codec. +// +// Deprecated: use ForceCodec instead. +func CallCustomCodec(codec Codec) CallOption { + return CustomCodecCallOption{Codec: codec} +} + +// CustomCodecCallOption is a CallOption that indicates the codec used for +// marshaling messages. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type CustomCodecCallOption struct { + Codec Codec +} + +func (o CustomCodecCallOption) before(c *callInfo) error { + c.codec = o.Codec + return nil +} +func (o CustomCodecCallOption) after(c *callInfo, attempt *csAttempt) {} + +// MaxRetryRPCBufferSize returns a CallOption that limits the amount of memory +// used for buffering this RPC's requests for retry purposes. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func MaxRetryRPCBufferSize(bytes int) CallOption { + return MaxRetryRPCBufferSizeCallOption{bytes} +} + +// MaxRetryRPCBufferSizeCallOption is a CallOption indicating the amount of +// memory to be used for caching this RPC for retry purposes. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type MaxRetryRPCBufferSizeCallOption struct { + MaxRetryRPCBufferSize int +} + +func (o MaxRetryRPCBufferSizeCallOption) before(c *callInfo) error { + c.maxRetryRPCBufferSize = o.MaxRetryRPCBufferSize + return nil +} +func (o MaxRetryRPCBufferSizeCallOption) after(c *callInfo, attempt *csAttempt) {} + +// The format of the payload: compressed or not? +type payloadFormat uint8 + +const ( + compressionNone payloadFormat = 0 // no compression + compressionMade payloadFormat = 1 // compressed +) + +// parser reads complete gRPC messages from the underlying reader. +type parser struct { + // r is the underlying reader. + // See the comment on recvMsg for the permissible + // error types. + r io.Reader + + // The header of a gRPC message. Find more detail at + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md + header [5]byte +} + +// recvMsg reads a complete gRPC message from the stream. +// +// It returns the message and its payload (compression/encoding) +// format. The caller owns the returned msg memory. +// +// If there is an error, possible values are: +// - io.EOF, when no messages remain +// - io.ErrUnexpectedEOF +// - of type transport.ConnectionError +// - an error from the status package +// +// No other error values or types must be returned, which also means +// that the underlying io.Reader must not return an incompatible +// error. +func (p *parser) recvMsg(maxReceiveMessageSize int) (pf payloadFormat, msg []byte, err error) { + if _, err := p.r.Read(p.header[:]); err != nil { + return 0, nil, err + } + + pf = payloadFormat(p.header[0]) + length := binary.BigEndian.Uint32(p.header[1:]) + + if length == 0 { + return pf, nil, nil + } + if int64(length) > int64(maxInt) { + return 0, nil, status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max length allowed on current machine (%d vs. %d)", length, maxInt) + } + if int(length) > maxReceiveMessageSize { + return 0, nil, status.Errorf(codes.ResourceExhausted, "grpc: received message larger than max (%d vs. %d)", length, maxReceiveMessageSize) + } + // TODO(bradfitz,zhaoq): garbage. reuse buffer after proto decoding instead + // of making it for each message: + msg = make([]byte, int(length)) + if _, err := p.r.Read(msg); err != nil { + if err == io.EOF { + err = io.ErrUnexpectedEOF + } + return 0, nil, err + } + return pf, msg, nil +} + +// encode serializes msg and returns a buffer containing the message, or an +// error if it is too large to be transmitted by grpc. If msg is nil, it +// generates an empty message. +func encode(c baseCodec, msg interface{}) ([]byte, error) { + if msg == nil { // NOTE: typed nils will not be caught by this check + return nil, nil + } + b, err := c.Marshal(msg) + if err != nil { + return nil, status.Errorf(codes.Internal, "grpc: error while marshaling: %v", err.Error()) + } + if uint(len(b)) > math.MaxUint32 { + return nil, status.Errorf(codes.ResourceExhausted, "grpc: message too large (%d bytes)", len(b)) + } + return b, nil +} + +// compress returns the input bytes compressed by compressor or cp. If both +// compressors are nil, returns nil. +// +// TODO(dfawley): eliminate cp parameter by wrapping Compressor in an encoding.Compressor. +func compress(in []byte, cp Compressor, compressor encoding.Compressor) ([]byte, error) { + if compressor == nil && cp == nil { + return nil, nil + } + wrapErr := func(err error) error { + return status.Errorf(codes.Internal, "grpc: error while compressing: %v", err.Error()) + } + cbuf := &bytes.Buffer{} + if compressor != nil { + z, err := compressor.Compress(cbuf) + if err != nil { + return nil, wrapErr(err) + } + if _, err := z.Write(in); err != nil { + return nil, wrapErr(err) + } + if err := z.Close(); err != nil { + return nil, wrapErr(err) + } + } else { + if err := cp.Do(cbuf, in); err != nil { + return nil, wrapErr(err) + } + } + return cbuf.Bytes(), nil +} + +const ( + payloadLen = 1 + sizeLen = 4 + headerLen = payloadLen + sizeLen +) + +// msgHeader returns a 5-byte header for the message being transmitted and the +// payload, which is compData if non-nil or data otherwise. +func msgHeader(data, compData []byte) (hdr []byte, payload []byte) { + hdr = make([]byte, headerLen) + if compData != nil { + hdr[0] = byte(compressionMade) + data = compData + } else { + hdr[0] = byte(compressionNone) + } + + // Write length of payload into buf + binary.BigEndian.PutUint32(hdr[payloadLen:], uint32(len(data))) + return hdr, data +} + +func outPayload(client bool, msg interface{}, data, payload []byte, t time.Time) *stats.OutPayload { + return &stats.OutPayload{ + Client: client, + Payload: msg, + Data: data, + Length: len(data), + WireLength: len(payload) + headerLen, + SentTime: t, + } +} + +func checkRecvPayload(pf payloadFormat, recvCompress string, haveCompressor bool) *status.Status { + switch pf { + case compressionNone: + case compressionMade: + if recvCompress == "" || recvCompress == encoding.Identity { + return status.New(codes.Internal, "grpc: compressed flag set with identity or empty encoding") + } + if !haveCompressor { + return status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", recvCompress) + } + default: + return status.Newf(codes.Internal, "grpc: received unexpected payload format %d", pf) + } + return nil +} + +type payloadInfo struct { + wireLength int // The compressed length got from wire. + uncompressedBytes []byte +} + +func recvAndDecompress(p *parser, s *transport.Stream, dc Decompressor, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) ([]byte, error) { + pf, d, err := p.recvMsg(maxReceiveMessageSize) + if err != nil { + return nil, err + } + if payInfo != nil { + payInfo.wireLength = len(d) + } + + if st := checkRecvPayload(pf, s.RecvCompress(), compressor != nil || dc != nil); st != nil { + return nil, st.Err() + } + + var size int + if pf == compressionMade { + // To match legacy behavior, if the decompressor is set by WithDecompressor or RPCDecompressor, + // use this decompressor as the default. + if dc != nil { + d, err = dc.Do(bytes.NewReader(d)) + size = len(d) + } else { + d, size, err = decompress(compressor, d, maxReceiveMessageSize) + } + if err != nil { + return nil, status.Errorf(codes.Internal, "grpc: failed to decompress the received message %v", err) + } + if size > maxReceiveMessageSize { + // TODO: Revisit the error code. Currently keep it consistent with java + // implementation. + return nil, status.Errorf(codes.ResourceExhausted, "grpc: received message after decompression larger than max (%d vs. %d)", size, maxReceiveMessageSize) + } + } + return d, nil +} + +// Using compressor, decompress d, returning data and size. +// Optionally, if data will be over maxReceiveMessageSize, just return the size. +func decompress(compressor encoding.Compressor, d []byte, maxReceiveMessageSize int) ([]byte, int, error) { + dcReader, err := compressor.Decompress(bytes.NewReader(d)) + if err != nil { + return nil, 0, err + } + if sizer, ok := compressor.(interface { + DecompressedSize(compressedBytes []byte) int + }); ok { + if size := sizer.DecompressedSize(d); size >= 0 { + if size > maxReceiveMessageSize { + return nil, size, nil + } + // size is used as an estimate to size the buffer, but we + // will read more data if available. + // +MinRead so ReadFrom will not reallocate if size is correct. + buf := bytes.NewBuffer(make([]byte, 0, size+bytes.MinRead)) + bytesRead, err := buf.ReadFrom(io.LimitReader(dcReader, int64(maxReceiveMessageSize)+1)) + return buf.Bytes(), int(bytesRead), err + } + } + // Read from LimitReader with limit max+1. So if the underlying + // reader is over limit, the result will be bigger than max. + d, err = ioutil.ReadAll(io.LimitReader(dcReader, int64(maxReceiveMessageSize)+1)) + return d, len(d), err +} + +// For the two compressor parameters, both should not be set, but if they are, +// dc takes precedence over compressor. +// TODO(dfawley): wrap the old compressor/decompressor using the new API? +func recv(p *parser, c baseCodec, s *transport.Stream, dc Decompressor, m interface{}, maxReceiveMessageSize int, payInfo *payloadInfo, compressor encoding.Compressor) error { + d, err := recvAndDecompress(p, s, dc, maxReceiveMessageSize, payInfo, compressor) + if err != nil { + return err + } + if err := c.Unmarshal(d, m); err != nil { + return status.Errorf(codes.Internal, "grpc: failed to unmarshal the received message %v", err) + } + if payInfo != nil { + payInfo.uncompressedBytes = d + } + return nil +} + +// Information about RPC +type rpcInfo struct { + failfast bool + preloaderInfo *compressorInfo +} + +// Information about Preloader +// Responsible for storing codec, and compressors +// If stream (s) has context s.Context which stores rpcInfo that has non nil +// pointers to codec, and compressors, then we can use preparedMsg for Async message prep +// and reuse marshalled bytes +type compressorInfo struct { + codec baseCodec + cp Compressor + comp encoding.Compressor +} + +type rpcInfoContextKey struct{} + +func newContextWithRPCInfo(ctx context.Context, failfast bool, codec baseCodec, cp Compressor, comp encoding.Compressor) context.Context { + return context.WithValue(ctx, rpcInfoContextKey{}, &rpcInfo{ + failfast: failfast, + preloaderInfo: &compressorInfo{ + codec: codec, + cp: cp, + comp: comp, + }, + }) +} + +func rpcInfoFromContext(ctx context.Context) (s *rpcInfo, ok bool) { + s, ok = ctx.Value(rpcInfoContextKey{}).(*rpcInfo) + return +} + +// Code returns the error code for err if it was produced by the rpc system. +// Otherwise, it returns codes.Unknown. +// +// Deprecated: use status.Code instead. +func Code(err error) codes.Code { + return status.Code(err) +} + +// ErrorDesc returns the error description of err if it was produced by the rpc system. +// Otherwise, it returns err.Error() or empty string when err is nil. +// +// Deprecated: use status.Convert and Message method instead. +func ErrorDesc(err error) string { + return status.Convert(err).Message() +} + +// Errorf returns an error containing an error code and a description; +// Errorf returns nil if c is OK. +// +// Deprecated: use status.Errorf instead. +func Errorf(c codes.Code, format string, a ...interface{}) error { + return status.Errorf(c, format, a...) +} + +// toRPCErr converts an error into an error from the status package. +func toRPCErr(err error) error { + switch err { + case nil, io.EOF: + return err + case context.DeadlineExceeded: + return status.Error(codes.DeadlineExceeded, err.Error()) + case context.Canceled: + return status.Error(codes.Canceled, err.Error()) + case io.ErrUnexpectedEOF: + return status.Error(codes.Internal, err.Error()) + } + + switch e := err.(type) { + case transport.ConnectionError: + return status.Error(codes.Unavailable, e.Desc) + case *transport.NewStreamError: + return toRPCErr(e.Err) + } + + if _, ok := status.FromError(err); ok { + return err + } + + return status.Error(codes.Unknown, err.Error()) +} + +// setCallInfoCodec should only be called after CallOptions have been applied. +func setCallInfoCodec(c *callInfo) error { + if c.codec != nil { + // codec was already set by a CallOption; use it, but set the content + // subtype if it is not set. + if c.contentSubtype == "" { + // c.codec is a baseCodec to hide the difference between grpc.Codec and + // encoding.Codec (Name vs. String method name). We only support + // setting content subtype from encoding.Codec to avoid a behavior + // change with the deprecated version. + if ec, ok := c.codec.(encoding.Codec); ok { + c.contentSubtype = strings.ToLower(ec.Name()) + } + } + return nil + } + + if c.contentSubtype == "" { + // No codec specified in CallOptions; use proto by default. + c.codec = encoding.GetCodec(proto.Name) + return nil + } + + // c.contentSubtype is already lowercased in CallContentSubtype + c.codec = encoding.GetCodec(c.contentSubtype) + if c.codec == nil { + return status.Errorf(codes.Internal, "no codec registered for content-subtype %s", c.contentSubtype) + } + return nil +} + +// channelzData is used to store channelz related data for ClientConn, addrConn and Server. +// These fields cannot be embedded in the original structs (e.g. ClientConn), since to do atomic +// operation on int64 variable on 32-bit machine, user is responsible to enforce memory alignment. +// Here, by grouping those int64 fields inside a struct, we are enforcing the alignment. +type channelzData struct { + callsStarted int64 + callsFailed int64 + callsSucceeded int64 + // lastCallStartedTime stores the timestamp that last call starts. It is of int64 type instead of + // time.Time since it's more costly to atomically update time.Time variable than int64 variable. + lastCallStartedTime int64 +} + +// The SupportPackageIsVersion variables are referenced from generated protocol +// buffer files to ensure compatibility with the gRPC version used. The latest +// support package version is 7. +// +// Older versions are kept for compatibility. +// +// These constants should not be referenced from any other code. +const ( + SupportPackageIsVersion3 = true + SupportPackageIsVersion4 = true + SupportPackageIsVersion5 = true + SupportPackageIsVersion6 = true + SupportPackageIsVersion7 = true +) + +const grpcUA = "grpc-go/" + Version diff --git a/ecs-agent/vendor/google.golang.org/grpc/server.go b/ecs-agent/vendor/google.golang.org/grpc/server.go new file mode 100644 index 0000000000..2808b7c83e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/server.go @@ -0,0 +1,1971 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "errors" + "fmt" + "io" + "math" + "net" + "net/http" + "reflect" + "runtime" + "strings" + "sync" + "sync/atomic" + "time" + + "golang.org/x/net/trace" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/credentials" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/encoding/proto" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/internal" + "google.golang.org/grpc/internal/binarylog" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/grpcrand" + "google.golang.org/grpc/internal/grpcsync" + "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/keepalive" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" + "google.golang.org/grpc/tap" +) + +const ( + defaultServerMaxReceiveMessageSize = 1024 * 1024 * 4 + defaultServerMaxSendMessageSize = math.MaxInt32 + + // Server transports are tracked in a map which is keyed on listener + // address. For regular gRPC traffic, connections are accepted in Serve() + // through a call to Accept(), and we use the actual listener address as key + // when we add it to the map. But for connections received through + // ServeHTTP(), we do not have a listener and hence use this dummy value. + listenerAddressForServeHTTP = "listenerAddressForServeHTTP" +) + +func init() { + internal.GetServerCredentials = func(srv *Server) credentials.TransportCredentials { + return srv.opts.creds + } + internal.DrainServerTransports = func(srv *Server, addr string) { + srv.drainServerTransports(addr) + } + internal.AddGlobalServerOptions = func(opt ...ServerOption) { + extraServerOptions = append(extraServerOptions, opt...) + } + internal.ClearGlobalServerOptions = func() { + extraServerOptions = nil + } + internal.BinaryLogger = binaryLogger + internal.JoinServerOptions = newJoinServerOption +} + +var statusOK = status.New(codes.OK, "") +var logger = grpclog.Component("core") + +type methodHandler func(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor UnaryServerInterceptor) (interface{}, error) + +// MethodDesc represents an RPC service's method specification. +type MethodDesc struct { + MethodName string + Handler methodHandler +} + +// ServiceDesc represents an RPC service's specification. +type ServiceDesc struct { + ServiceName string + // The pointer to the service interface. Used to check whether the user + // provided implementation satisfies the interface requirements. + HandlerType interface{} + Methods []MethodDesc + Streams []StreamDesc + Metadata interface{} +} + +// serviceInfo wraps information about a service. It is very similar to +// ServiceDesc and is constructed from it for internal purposes. +type serviceInfo struct { + // Contains the implementation for the methods in this service. + serviceImpl interface{} + methods map[string]*MethodDesc + streams map[string]*StreamDesc + mdata interface{} +} + +type serverWorkerData struct { + st transport.ServerTransport + wg *sync.WaitGroup + stream *transport.Stream +} + +// Server is a gRPC server to serve RPC requests. +type Server struct { + opts serverOptions + + mu sync.Mutex // guards following + lis map[net.Listener]bool + // conns contains all active server transports. It is a map keyed on a + // listener address with the value being the set of active transports + // belonging to that listener. + conns map[string]map[transport.ServerTransport]bool + serve bool + drain bool + cv *sync.Cond // signaled when connections close for GracefulStop + services map[string]*serviceInfo // service name -> service info + events trace.EventLog + + quit *grpcsync.Event + done *grpcsync.Event + channelzRemoveOnce sync.Once + serveWG sync.WaitGroup // counts active Serve goroutines for GracefulStop + + channelzID *channelz.Identifier + czData *channelzData + + serverWorkerChannels []chan *serverWorkerData +} + +type serverOptions struct { + creds credentials.TransportCredentials + codec baseCodec + cp Compressor + dc Decompressor + unaryInt UnaryServerInterceptor + streamInt StreamServerInterceptor + chainUnaryInts []UnaryServerInterceptor + chainStreamInts []StreamServerInterceptor + binaryLogger binarylog.Logger + inTapHandle tap.ServerInHandle + statsHandlers []stats.Handler + maxConcurrentStreams uint32 + maxReceiveMessageSize int + maxSendMessageSize int + unknownStreamDesc *StreamDesc + keepaliveParams keepalive.ServerParameters + keepalivePolicy keepalive.EnforcementPolicy + initialWindowSize int32 + initialConnWindowSize int32 + writeBufferSize int + readBufferSize int + connectionTimeout time.Duration + maxHeaderListSize *uint32 + headerTableSize *uint32 + numServerWorkers uint32 +} + +var defaultServerOptions = serverOptions{ + maxReceiveMessageSize: defaultServerMaxReceiveMessageSize, + maxSendMessageSize: defaultServerMaxSendMessageSize, + connectionTimeout: 120 * time.Second, + writeBufferSize: defaultWriteBufSize, + readBufferSize: defaultReadBufSize, +} +var extraServerOptions []ServerOption + +// A ServerOption sets options such as credentials, codec and keepalive parameters, etc. +type ServerOption interface { + apply(*serverOptions) +} + +// EmptyServerOption does not alter the server configuration. It can be embedded +// in another structure to build custom server options. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type EmptyServerOption struct{} + +func (EmptyServerOption) apply(*serverOptions) {} + +// funcServerOption wraps a function that modifies serverOptions into an +// implementation of the ServerOption interface. +type funcServerOption struct { + f func(*serverOptions) +} + +func (fdo *funcServerOption) apply(do *serverOptions) { + fdo.f(do) +} + +func newFuncServerOption(f func(*serverOptions)) *funcServerOption { + return &funcServerOption{ + f: f, + } +} + +// joinServerOption provides a way to combine arbitrary number of server +// options into one. +type joinServerOption struct { + opts []ServerOption +} + +func (mdo *joinServerOption) apply(do *serverOptions) { + for _, opt := range mdo.opts { + opt.apply(do) + } +} + +func newJoinServerOption(opts ...ServerOption) ServerOption { + return &joinServerOption{opts: opts} +} + +// WriteBufferSize determines how much data can be batched before doing a write +// on the wire. The corresponding memory allocation for this buffer will be +// twice the size to keep syscalls low. The default value for this buffer is +// 32KB. Zero or negative values will disable the write buffer such that each +// write will be on underlying connection. +// Note: A Send call may not directly translate to a write. +func WriteBufferSize(s int) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.writeBufferSize = s + }) +} + +// ReadBufferSize lets you set the size of read buffer, this determines how much +// data can be read at most for one read syscall. The default value for this +// buffer is 32KB. Zero or negative values will disable read buffer for a +// connection so data framer can access the underlying conn directly. +func ReadBufferSize(s int) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.readBufferSize = s + }) +} + +// InitialWindowSize returns a ServerOption that sets window size for stream. +// The lower bound for window size is 64K and any value smaller than that will be ignored. +func InitialWindowSize(s int32) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.initialWindowSize = s + }) +} + +// InitialConnWindowSize returns a ServerOption that sets window size for a connection. +// The lower bound for window size is 64K and any value smaller than that will be ignored. +func InitialConnWindowSize(s int32) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.initialConnWindowSize = s + }) +} + +// KeepaliveParams returns a ServerOption that sets keepalive and max-age parameters for the server. +func KeepaliveParams(kp keepalive.ServerParameters) ServerOption { + if kp.Time > 0 && kp.Time < time.Second { + logger.Warning("Adjusting keepalive ping interval to minimum period of 1s") + kp.Time = time.Second + } + + return newFuncServerOption(func(o *serverOptions) { + o.keepaliveParams = kp + }) +} + +// KeepaliveEnforcementPolicy returns a ServerOption that sets keepalive enforcement policy for the server. +func KeepaliveEnforcementPolicy(kep keepalive.EnforcementPolicy) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.keepalivePolicy = kep + }) +} + +// CustomCodec returns a ServerOption that sets a codec for message marshaling and unmarshaling. +// +// This will override any lookups by content-subtype for Codecs registered with RegisterCodec. +// +// Deprecated: register codecs using encoding.RegisterCodec. The server will +// automatically use registered codecs based on the incoming requests' headers. +// See also +// https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec. +// Will be supported throughout 1.x. +func CustomCodec(codec Codec) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.codec = codec + }) +} + +// ForceServerCodec returns a ServerOption that sets a codec for message +// marshaling and unmarshaling. +// +// This will override any lookups by content-subtype for Codecs registered +// with RegisterCodec. +// +// See Content-Type on +// https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#requests for +// more details. Also see the documentation on RegisterCodec and +// CallContentSubtype for more details on the interaction between encoding.Codec +// and content-subtype. +// +// This function is provided for advanced users; prefer to register codecs +// using encoding.RegisterCodec. +// The server will automatically use registered codecs based on the incoming +// requests' headers. See also +// https://github.com/grpc/grpc-go/blob/master/Documentation/encoding.md#using-a-codec. +// Will be supported throughout 1.x. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func ForceServerCodec(codec encoding.Codec) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.codec = codec + }) +} + +// RPCCompressor returns a ServerOption that sets a compressor for outbound +// messages. For backward compatibility, all outbound messages will be sent +// using this compressor, regardless of incoming message compression. By +// default, server messages will be sent using the same compressor with which +// request messages were sent. +// +// Deprecated: use encoding.RegisterCompressor instead. Will be supported +// throughout 1.x. +func RPCCompressor(cp Compressor) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.cp = cp + }) +} + +// RPCDecompressor returns a ServerOption that sets a decompressor for inbound +// messages. It has higher priority than decompressors registered via +// encoding.RegisterCompressor. +// +// Deprecated: use encoding.RegisterCompressor instead. Will be supported +// throughout 1.x. +func RPCDecompressor(dc Decompressor) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.dc = dc + }) +} + +// MaxMsgSize returns a ServerOption to set the max message size in bytes the server can receive. +// If this is not set, gRPC uses the default limit. +// +// Deprecated: use MaxRecvMsgSize instead. Will be supported throughout 1.x. +func MaxMsgSize(m int) ServerOption { + return MaxRecvMsgSize(m) +} + +// MaxRecvMsgSize returns a ServerOption to set the max message size in bytes the server can receive. +// If this is not set, gRPC uses the default 4MB. +func MaxRecvMsgSize(m int) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.maxReceiveMessageSize = m + }) +} + +// MaxSendMsgSize returns a ServerOption to set the max message size in bytes the server can send. +// If this is not set, gRPC uses the default `math.MaxInt32`. +func MaxSendMsgSize(m int) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.maxSendMessageSize = m + }) +} + +// MaxConcurrentStreams returns a ServerOption that will apply a limit on the number +// of concurrent streams to each ServerTransport. +func MaxConcurrentStreams(n uint32) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.maxConcurrentStreams = n + }) +} + +// Creds returns a ServerOption that sets credentials for server connections. +func Creds(c credentials.TransportCredentials) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.creds = c + }) +} + +// UnaryInterceptor returns a ServerOption that sets the UnaryServerInterceptor for the +// server. Only one unary interceptor can be installed. The construction of multiple +// interceptors (e.g., chaining) can be implemented at the caller. +func UnaryInterceptor(i UnaryServerInterceptor) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + if o.unaryInt != nil { + panic("The unary server interceptor was already set and may not be reset.") + } + o.unaryInt = i + }) +} + +// ChainUnaryInterceptor returns a ServerOption that specifies the chained interceptor +// for unary RPCs. The first interceptor will be the outer most, +// while the last interceptor will be the inner most wrapper around the real call. +// All unary interceptors added by this method will be chained. +func ChainUnaryInterceptor(interceptors ...UnaryServerInterceptor) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.chainUnaryInts = append(o.chainUnaryInts, interceptors...) + }) +} + +// StreamInterceptor returns a ServerOption that sets the StreamServerInterceptor for the +// server. Only one stream interceptor can be installed. +func StreamInterceptor(i StreamServerInterceptor) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + if o.streamInt != nil { + panic("The stream server interceptor was already set and may not be reset.") + } + o.streamInt = i + }) +} + +// ChainStreamInterceptor returns a ServerOption that specifies the chained interceptor +// for streaming RPCs. The first interceptor will be the outer most, +// while the last interceptor will be the inner most wrapper around the real call. +// All stream interceptors added by this method will be chained. +func ChainStreamInterceptor(interceptors ...StreamServerInterceptor) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.chainStreamInts = append(o.chainStreamInts, interceptors...) + }) +} + +// InTapHandle returns a ServerOption that sets the tap handle for all the server +// transport to be created. Only one can be installed. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func InTapHandle(h tap.ServerInHandle) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + if o.inTapHandle != nil { + panic("The tap handle was already set and may not be reset.") + } + o.inTapHandle = h + }) +} + +// StatsHandler returns a ServerOption that sets the stats handler for the server. +func StatsHandler(h stats.Handler) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + if h == nil { + logger.Error("ignoring nil parameter in grpc.StatsHandler ServerOption") + // Do not allow a nil stats handler, which would otherwise cause + // panics. + return + } + o.statsHandlers = append(o.statsHandlers, h) + }) +} + +// binaryLogger returns a ServerOption that can set the binary logger for the +// server. +func binaryLogger(bl binarylog.Logger) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.binaryLogger = bl + }) +} + +// UnknownServiceHandler returns a ServerOption that allows for adding a custom +// unknown service handler. The provided method is a bidi-streaming RPC service +// handler that will be invoked instead of returning the "unimplemented" gRPC +// error whenever a request is received for an unregistered service or method. +// The handling function and stream interceptor (if set) have full access to +// the ServerStream, including its Context. +func UnknownServiceHandler(streamHandler StreamHandler) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.unknownStreamDesc = &StreamDesc{ + StreamName: "unknown_service_handler", + Handler: streamHandler, + // We need to assume that the users of the streamHandler will want to use both. + ClientStreams: true, + ServerStreams: true, + } + }) +} + +// ConnectionTimeout returns a ServerOption that sets the timeout for +// connection establishment (up to and including HTTP/2 handshaking) for all +// new connections. If this is not set, the default is 120 seconds. A zero or +// negative value will result in an immediate timeout. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func ConnectionTimeout(d time.Duration) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.connectionTimeout = d + }) +} + +// MaxHeaderListSize returns a ServerOption that sets the max (uncompressed) size +// of header list that the server is prepared to accept. +func MaxHeaderListSize(s uint32) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.maxHeaderListSize = &s + }) +} + +// HeaderTableSize returns a ServerOption that sets the size of dynamic +// header table for stream. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func HeaderTableSize(s uint32) ServerOption { + return newFuncServerOption(func(o *serverOptions) { + o.headerTableSize = &s + }) +} + +// NumStreamWorkers returns a ServerOption that sets the number of worker +// goroutines that should be used to process incoming streams. Setting this to +// zero (default) will disable workers and spawn a new goroutine for each +// stream. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func NumStreamWorkers(numServerWorkers uint32) ServerOption { + // TODO: If/when this API gets stabilized (i.e. stream workers become the + // only way streams are processed), change the behavior of the zero value to + // a sane default. Preliminary experiments suggest that a value equal to the + // number of CPUs available is most performant; requires thorough testing. + return newFuncServerOption(func(o *serverOptions) { + o.numServerWorkers = numServerWorkers + }) +} + +// serverWorkerResetThreshold defines how often the stack must be reset. Every +// N requests, by spawning a new goroutine in its place, a worker can reset its +// stack so that large stacks don't live in memory forever. 2^16 should allow +// each goroutine stack to live for at least a few seconds in a typical +// workload (assuming a QPS of a few thousand requests/sec). +const serverWorkerResetThreshold = 1 << 16 + +// serverWorkers blocks on a *transport.Stream channel forever and waits for +// data to be fed by serveStreams. This allows different requests to be +// processed by the same goroutine, removing the need for expensive stack +// re-allocations (see the runtime.morestack problem [1]). +// +// [1] https://github.com/golang/go/issues/18138 +func (s *Server) serverWorker(ch chan *serverWorkerData) { + // To make sure all server workers don't reset at the same time, choose a + // random number of iterations before resetting. + threshold := serverWorkerResetThreshold + grpcrand.Intn(serverWorkerResetThreshold) + for completed := 0; completed < threshold; completed++ { + data, ok := <-ch + if !ok { + return + } + s.handleStream(data.st, data.stream, s.traceInfo(data.st, data.stream)) + data.wg.Done() + } + go s.serverWorker(ch) +} + +// initServerWorkers creates worker goroutines and channels to process incoming +// connections to reduce the time spent overall on runtime.morestack. +func (s *Server) initServerWorkers() { + s.serverWorkerChannels = make([]chan *serverWorkerData, s.opts.numServerWorkers) + for i := uint32(0); i < s.opts.numServerWorkers; i++ { + s.serverWorkerChannels[i] = make(chan *serverWorkerData) + go s.serverWorker(s.serverWorkerChannels[i]) + } +} + +func (s *Server) stopServerWorkers() { + for i := uint32(0); i < s.opts.numServerWorkers; i++ { + close(s.serverWorkerChannels[i]) + } +} + +// NewServer creates a gRPC server which has no service registered and has not +// started to accept requests yet. +func NewServer(opt ...ServerOption) *Server { + opts := defaultServerOptions + for _, o := range extraServerOptions { + o.apply(&opts) + } + for _, o := range opt { + o.apply(&opts) + } + s := &Server{ + lis: make(map[net.Listener]bool), + opts: opts, + conns: make(map[string]map[transport.ServerTransport]bool), + services: make(map[string]*serviceInfo), + quit: grpcsync.NewEvent(), + done: grpcsync.NewEvent(), + czData: new(channelzData), + } + chainUnaryServerInterceptors(s) + chainStreamServerInterceptors(s) + s.cv = sync.NewCond(&s.mu) + if EnableTracing { + _, file, line, _ := runtime.Caller(1) + s.events = trace.NewEventLog("grpc.Server", fmt.Sprintf("%s:%d", file, line)) + } + + if s.opts.numServerWorkers > 0 { + s.initServerWorkers() + } + + s.channelzID = channelz.RegisterServer(&channelzServer{s}, "") + channelz.Info(logger, s.channelzID, "Server created") + return s +} + +// printf records an event in s's event log, unless s has been stopped. +// REQUIRES s.mu is held. +func (s *Server) printf(format string, a ...interface{}) { + if s.events != nil { + s.events.Printf(format, a...) + } +} + +// errorf records an error in s's event log, unless s has been stopped. +// REQUIRES s.mu is held. +func (s *Server) errorf(format string, a ...interface{}) { + if s.events != nil { + s.events.Errorf(format, a...) + } +} + +// ServiceRegistrar wraps a single method that supports service registration. It +// enables users to pass concrete types other than grpc.Server to the service +// registration methods exported by the IDL generated code. +type ServiceRegistrar interface { + // RegisterService registers a service and its implementation to the + // concrete type implementing this interface. It may not be called + // once the server has started serving. + // desc describes the service and its methods and handlers. impl is the + // service implementation which is passed to the method handlers. + RegisterService(desc *ServiceDesc, impl interface{}) +} + +// RegisterService registers a service and its implementation to the gRPC +// server. It is called from the IDL generated code. This must be called before +// invoking Serve. If ss is non-nil (for legacy code), its type is checked to +// ensure it implements sd.HandlerType. +func (s *Server) RegisterService(sd *ServiceDesc, ss interface{}) { + if ss != nil { + ht := reflect.TypeOf(sd.HandlerType).Elem() + st := reflect.TypeOf(ss) + if !st.Implements(ht) { + logger.Fatalf("grpc: Server.RegisterService found the handler of type %v that does not satisfy %v", st, ht) + } + } + s.register(sd, ss) +} + +func (s *Server) register(sd *ServiceDesc, ss interface{}) { + s.mu.Lock() + defer s.mu.Unlock() + s.printf("RegisterService(%q)", sd.ServiceName) + if s.serve { + logger.Fatalf("grpc: Server.RegisterService after Server.Serve for %q", sd.ServiceName) + } + if _, ok := s.services[sd.ServiceName]; ok { + logger.Fatalf("grpc: Server.RegisterService found duplicate service registration for %q", sd.ServiceName) + } + info := &serviceInfo{ + serviceImpl: ss, + methods: make(map[string]*MethodDesc), + streams: make(map[string]*StreamDesc), + mdata: sd.Metadata, + } + for i := range sd.Methods { + d := &sd.Methods[i] + info.methods[d.MethodName] = d + } + for i := range sd.Streams { + d := &sd.Streams[i] + info.streams[d.StreamName] = d + } + s.services[sd.ServiceName] = info +} + +// MethodInfo contains the information of an RPC including its method name and type. +type MethodInfo struct { + // Name is the method name only, without the service name or package name. + Name string + // IsClientStream indicates whether the RPC is a client streaming RPC. + IsClientStream bool + // IsServerStream indicates whether the RPC is a server streaming RPC. + IsServerStream bool +} + +// ServiceInfo contains unary RPC method info, streaming RPC method info and metadata for a service. +type ServiceInfo struct { + Methods []MethodInfo + // Metadata is the metadata specified in ServiceDesc when registering service. + Metadata interface{} +} + +// GetServiceInfo returns a map from service names to ServiceInfo. +// Service names include the package names, in the form of .. +func (s *Server) GetServiceInfo() map[string]ServiceInfo { + ret := make(map[string]ServiceInfo) + for n, srv := range s.services { + methods := make([]MethodInfo, 0, len(srv.methods)+len(srv.streams)) + for m := range srv.methods { + methods = append(methods, MethodInfo{ + Name: m, + IsClientStream: false, + IsServerStream: false, + }) + } + for m, d := range srv.streams { + methods = append(methods, MethodInfo{ + Name: m, + IsClientStream: d.ClientStreams, + IsServerStream: d.ServerStreams, + }) + } + + ret[n] = ServiceInfo{ + Methods: methods, + Metadata: srv.mdata, + } + } + return ret +} + +// ErrServerStopped indicates that the operation is now illegal because of +// the server being stopped. +var ErrServerStopped = errors.New("grpc: the server has been stopped") + +type listenSocket struct { + net.Listener + channelzID *channelz.Identifier +} + +func (l *listenSocket) ChannelzMetric() *channelz.SocketInternalMetric { + return &channelz.SocketInternalMetric{ + SocketOptions: channelz.GetSocketOption(l.Listener), + LocalAddr: l.Listener.Addr(), + } +} + +func (l *listenSocket) Close() error { + err := l.Listener.Close() + channelz.RemoveEntry(l.channelzID) + channelz.Info(logger, l.channelzID, "ListenSocket deleted") + return err +} + +// Serve accepts incoming connections on the listener lis, creating a new +// ServerTransport and service goroutine for each. The service goroutines +// read gRPC requests and then call the registered handlers to reply to them. +// Serve returns when lis.Accept fails with fatal errors. lis will be closed when +// this method returns. +// Serve will return a non-nil error unless Stop or GracefulStop is called. +func (s *Server) Serve(lis net.Listener) error { + s.mu.Lock() + s.printf("serving") + s.serve = true + if s.lis == nil { + // Serve called after Stop or GracefulStop. + s.mu.Unlock() + lis.Close() + return ErrServerStopped + } + + s.serveWG.Add(1) + defer func() { + s.serveWG.Done() + if s.quit.HasFired() { + // Stop or GracefulStop called; block until done and return nil. + <-s.done.Done() + } + }() + + ls := &listenSocket{Listener: lis} + s.lis[ls] = true + + defer func() { + s.mu.Lock() + if s.lis != nil && s.lis[ls] { + ls.Close() + delete(s.lis, ls) + } + s.mu.Unlock() + }() + + var err error + ls.channelzID, err = channelz.RegisterListenSocket(ls, s.channelzID, lis.Addr().String()) + if err != nil { + s.mu.Unlock() + return err + } + s.mu.Unlock() + channelz.Info(logger, ls.channelzID, "ListenSocket created") + + var tempDelay time.Duration // how long to sleep on accept failure + for { + rawConn, err := lis.Accept() + if err != nil { + if ne, ok := err.(interface { + Temporary() bool + }); ok && ne.Temporary() { + if tempDelay == 0 { + tempDelay = 5 * time.Millisecond + } else { + tempDelay *= 2 + } + if max := 1 * time.Second; tempDelay > max { + tempDelay = max + } + s.mu.Lock() + s.printf("Accept error: %v; retrying in %v", err, tempDelay) + s.mu.Unlock() + timer := time.NewTimer(tempDelay) + select { + case <-timer.C: + case <-s.quit.Done(): + timer.Stop() + return nil + } + continue + } + s.mu.Lock() + s.printf("done serving; Accept = %v", err) + s.mu.Unlock() + + if s.quit.HasFired() { + return nil + } + return err + } + tempDelay = 0 + // Start a new goroutine to deal with rawConn so we don't stall this Accept + // loop goroutine. + // + // Make sure we account for the goroutine so GracefulStop doesn't nil out + // s.conns before this conn can be added. + s.serveWG.Add(1) + go func() { + s.handleRawConn(lis.Addr().String(), rawConn) + s.serveWG.Done() + }() + } +} + +// handleRawConn forks a goroutine to handle a just-accepted connection that +// has not had any I/O performed on it yet. +func (s *Server) handleRawConn(lisAddr string, rawConn net.Conn) { + if s.quit.HasFired() { + rawConn.Close() + return + } + rawConn.SetDeadline(time.Now().Add(s.opts.connectionTimeout)) + + // Finish handshaking (HTTP2) + st := s.newHTTP2Transport(rawConn) + rawConn.SetDeadline(time.Time{}) + if st == nil { + return + } + + if !s.addConn(lisAddr, st) { + return + } + go func() { + s.serveStreams(st) + s.removeConn(lisAddr, st) + }() +} + +func (s *Server) drainServerTransports(addr string) { + s.mu.Lock() + conns := s.conns[addr] + for st := range conns { + st.Drain() + } + s.mu.Unlock() +} + +// newHTTP2Transport sets up a http/2 transport (using the +// gRPC http2 server transport in transport/http2_server.go). +func (s *Server) newHTTP2Transport(c net.Conn) transport.ServerTransport { + config := &transport.ServerConfig{ + MaxStreams: s.opts.maxConcurrentStreams, + ConnectionTimeout: s.opts.connectionTimeout, + Credentials: s.opts.creds, + InTapHandle: s.opts.inTapHandle, + StatsHandlers: s.opts.statsHandlers, + KeepaliveParams: s.opts.keepaliveParams, + KeepalivePolicy: s.opts.keepalivePolicy, + InitialWindowSize: s.opts.initialWindowSize, + InitialConnWindowSize: s.opts.initialConnWindowSize, + WriteBufferSize: s.opts.writeBufferSize, + ReadBufferSize: s.opts.readBufferSize, + ChannelzParentID: s.channelzID, + MaxHeaderListSize: s.opts.maxHeaderListSize, + HeaderTableSize: s.opts.headerTableSize, + } + st, err := transport.NewServerTransport(c, config) + if err != nil { + s.mu.Lock() + s.errorf("NewServerTransport(%q) failed: %v", c.RemoteAddr(), err) + s.mu.Unlock() + // ErrConnDispatched means that the connection was dispatched away from + // gRPC; those connections should be left open. + if err != credentials.ErrConnDispatched { + // Don't log on ErrConnDispatched and io.EOF to prevent log spam. + if err != io.EOF { + channelz.Info(logger, s.channelzID, "grpc: Server.Serve failed to create ServerTransport: ", err) + } + c.Close() + } + return nil + } + + return st +} + +func (s *Server) serveStreams(st transport.ServerTransport) { + defer st.Close(errors.New("finished serving streams for the server transport")) + var wg sync.WaitGroup + + var roundRobinCounter uint32 + st.HandleStreams(func(stream *transport.Stream) { + wg.Add(1) + if s.opts.numServerWorkers > 0 { + data := &serverWorkerData{st: st, wg: &wg, stream: stream} + select { + case s.serverWorkerChannels[atomic.AddUint32(&roundRobinCounter, 1)%s.opts.numServerWorkers] <- data: + default: + // If all stream workers are busy, fallback to the default code path. + go func() { + s.handleStream(st, stream, s.traceInfo(st, stream)) + wg.Done() + }() + } + } else { + go func() { + defer wg.Done() + s.handleStream(st, stream, s.traceInfo(st, stream)) + }() + } + }, func(ctx context.Context, method string) context.Context { + if !EnableTracing { + return ctx + } + tr := trace.New("grpc.Recv."+methodFamily(method), method) + return trace.NewContext(ctx, tr) + }) + wg.Wait() +} + +var _ http.Handler = (*Server)(nil) + +// ServeHTTP implements the Go standard library's http.Handler +// interface by responding to the gRPC request r, by looking up +// the requested gRPC method in the gRPC server s. +// +// The provided HTTP request must have arrived on an HTTP/2 +// connection. When using the Go standard library's server, +// practically this means that the Request must also have arrived +// over TLS. +// +// To share one port (such as 443 for https) between gRPC and an +// existing http.Handler, use a root http.Handler such as: +// +// if r.ProtoMajor == 2 && strings.HasPrefix( +// r.Header.Get("Content-Type"), "application/grpc") { +// grpcServer.ServeHTTP(w, r) +// } else { +// yourMux.ServeHTTP(w, r) +// } +// +// Note that ServeHTTP uses Go's HTTP/2 server implementation which is totally +// separate from grpc-go's HTTP/2 server. Performance and features may vary +// between the two paths. ServeHTTP does not support some gRPC features +// available through grpc-go's HTTP/2 server. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { + st, err := transport.NewServerHandlerTransport(w, r, s.opts.statsHandlers) + if err != nil { + // Errors returned from transport.NewServerHandlerTransport have + // already been written to w. + return + } + if !s.addConn(listenerAddressForServeHTTP, st) { + return + } + defer s.removeConn(listenerAddressForServeHTTP, st) + s.serveStreams(st) +} + +// traceInfo returns a traceInfo and associates it with stream, if tracing is enabled. +// If tracing is not enabled, it returns nil. +func (s *Server) traceInfo(st transport.ServerTransport, stream *transport.Stream) (trInfo *traceInfo) { + if !EnableTracing { + return nil + } + tr, ok := trace.FromContext(stream.Context()) + if !ok { + return nil + } + + trInfo = &traceInfo{ + tr: tr, + firstLine: firstLine{ + client: false, + remoteAddr: st.RemoteAddr(), + }, + } + if dl, ok := stream.Context().Deadline(); ok { + trInfo.firstLine.deadline = time.Until(dl) + } + return trInfo +} + +func (s *Server) addConn(addr string, st transport.ServerTransport) bool { + s.mu.Lock() + defer s.mu.Unlock() + if s.conns == nil { + st.Close(errors.New("Server.addConn called when server has already been stopped")) + return false + } + if s.drain { + // Transport added after we drained our existing conns: drain it + // immediately. + st.Drain() + } + + if s.conns[addr] == nil { + // Create a map entry if this is the first connection on this listener. + s.conns[addr] = make(map[transport.ServerTransport]bool) + } + s.conns[addr][st] = true + return true +} + +func (s *Server) removeConn(addr string, st transport.ServerTransport) { + s.mu.Lock() + defer s.mu.Unlock() + + conns := s.conns[addr] + if conns != nil { + delete(conns, st) + if len(conns) == 0 { + // If the last connection for this address is being removed, also + // remove the map entry corresponding to the address. This is used + // in GracefulStop() when waiting for all connections to be closed. + delete(s.conns, addr) + } + s.cv.Broadcast() + } +} + +func (s *Server) channelzMetric() *channelz.ServerInternalMetric { + return &channelz.ServerInternalMetric{ + CallsStarted: atomic.LoadInt64(&s.czData.callsStarted), + CallsSucceeded: atomic.LoadInt64(&s.czData.callsSucceeded), + CallsFailed: atomic.LoadInt64(&s.czData.callsFailed), + LastCallStartedTimestamp: time.Unix(0, atomic.LoadInt64(&s.czData.lastCallStartedTime)), + } +} + +func (s *Server) incrCallsStarted() { + atomic.AddInt64(&s.czData.callsStarted, 1) + atomic.StoreInt64(&s.czData.lastCallStartedTime, time.Now().UnixNano()) +} + +func (s *Server) incrCallsSucceeded() { + atomic.AddInt64(&s.czData.callsSucceeded, 1) +} + +func (s *Server) incrCallsFailed() { + atomic.AddInt64(&s.czData.callsFailed, 1) +} + +func (s *Server) sendResponse(t transport.ServerTransport, stream *transport.Stream, msg interface{}, cp Compressor, opts *transport.Options, comp encoding.Compressor) error { + data, err := encode(s.getCodec(stream.ContentSubtype()), msg) + if err != nil { + channelz.Error(logger, s.channelzID, "grpc: server failed to encode response: ", err) + return err + } + compData, err := compress(data, cp, comp) + if err != nil { + channelz.Error(logger, s.channelzID, "grpc: server failed to compress response: ", err) + return err + } + hdr, payload := msgHeader(data, compData) + // TODO(dfawley): should we be checking len(data) instead? + if len(payload) > s.opts.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "grpc: trying to send message larger than max (%d vs. %d)", len(payload), s.opts.maxSendMessageSize) + } + err = t.Write(stream, hdr, payload, opts) + if err == nil { + for _, sh := range s.opts.statsHandlers { + sh.HandleRPC(stream.Context(), outPayload(false, msg, data, payload, time.Now())) + } + } + return err +} + +// chainUnaryServerInterceptors chains all unary server interceptors into one. +func chainUnaryServerInterceptors(s *Server) { + // Prepend opts.unaryInt to the chaining interceptors if it exists, since unaryInt will + // be executed before any other chained interceptors. + interceptors := s.opts.chainUnaryInts + if s.opts.unaryInt != nil { + interceptors = append([]UnaryServerInterceptor{s.opts.unaryInt}, s.opts.chainUnaryInts...) + } + + var chainedInt UnaryServerInterceptor + if len(interceptors) == 0 { + chainedInt = nil + } else if len(interceptors) == 1 { + chainedInt = interceptors[0] + } else { + chainedInt = chainUnaryInterceptors(interceptors) + } + + s.opts.unaryInt = chainedInt +} + +func chainUnaryInterceptors(interceptors []UnaryServerInterceptor) UnaryServerInterceptor { + return func(ctx context.Context, req interface{}, info *UnaryServerInfo, handler UnaryHandler) (interface{}, error) { + return interceptors[0](ctx, req, info, getChainUnaryHandler(interceptors, 0, info, handler)) + } +} + +func getChainUnaryHandler(interceptors []UnaryServerInterceptor, curr int, info *UnaryServerInfo, finalHandler UnaryHandler) UnaryHandler { + if curr == len(interceptors)-1 { + return finalHandler + } + return func(ctx context.Context, req interface{}) (interface{}, error) { + return interceptors[curr+1](ctx, req, info, getChainUnaryHandler(interceptors, curr+1, info, finalHandler)) + } +} + +func (s *Server) processUnaryRPC(t transport.ServerTransport, stream *transport.Stream, info *serviceInfo, md *MethodDesc, trInfo *traceInfo) (err error) { + shs := s.opts.statsHandlers + if len(shs) != 0 || trInfo != nil || channelz.IsOn() { + if channelz.IsOn() { + s.incrCallsStarted() + } + var statsBegin *stats.Begin + for _, sh := range shs { + beginTime := time.Now() + statsBegin = &stats.Begin{ + BeginTime: beginTime, + IsClientStream: false, + IsServerStream: false, + } + sh.HandleRPC(stream.Context(), statsBegin) + } + if trInfo != nil { + trInfo.tr.LazyLog(&trInfo.firstLine, false) + } + // The deferred error handling for tracing, stats handler and channelz are + // combined into one function to reduce stack usage -- a defer takes ~56-64 + // bytes on the stack, so overflowing the stack will require a stack + // re-allocation, which is expensive. + // + // To maintain behavior similar to separate deferred statements, statements + // should be executed in the reverse order. That is, tracing first, stats + // handler second, and channelz last. Note that panics *within* defers will + // lead to different behavior, but that's an acceptable compromise; that + // would be undefined behavior territory anyway. + defer func() { + if trInfo != nil { + if err != nil && err != io.EOF { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + trInfo.tr.Finish() + } + + for _, sh := range shs { + end := &stats.End{ + BeginTime: statsBegin.BeginTime, + EndTime: time.Now(), + } + if err != nil && err != io.EOF { + end.Error = toRPCErr(err) + } + sh.HandleRPC(stream.Context(), end) + } + + if channelz.IsOn() { + if err != nil && err != io.EOF { + s.incrCallsFailed() + } else { + s.incrCallsSucceeded() + } + } + }() + } + var binlogs []binarylog.MethodLogger + if ml := binarylog.GetMethodLogger(stream.Method()); ml != nil { + binlogs = append(binlogs, ml) + } + if s.opts.binaryLogger != nil { + if ml := s.opts.binaryLogger.GetMethodLogger(stream.Method()); ml != nil { + binlogs = append(binlogs, ml) + } + } + if len(binlogs) != 0 { + ctx := stream.Context() + md, _ := metadata.FromIncomingContext(ctx) + logEntry := &binarylog.ClientHeader{ + Header: md, + MethodName: stream.Method(), + PeerAddr: nil, + } + if deadline, ok := ctx.Deadline(); ok { + logEntry.Timeout = time.Until(deadline) + if logEntry.Timeout < 0 { + logEntry.Timeout = 0 + } + } + if a := md[":authority"]; len(a) > 0 { + logEntry.Authority = a[0] + } + if peer, ok := peer.FromContext(ctx); ok { + logEntry.PeerAddr = peer.Addr + } + for _, binlog := range binlogs { + binlog.Log(logEntry) + } + } + + // comp and cp are used for compression. decomp and dc are used for + // decompression. If comp and decomp are both set, they are the same; + // however they are kept separate to ensure that at most one of the + // compressor/decompressor variable pairs are set for use later. + var comp, decomp encoding.Compressor + var cp Compressor + var dc Decompressor + + // If dc is set and matches the stream's compression, use it. Otherwise, try + // to find a matching registered compressor for decomp. + if rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc { + dc = s.opts.dc + } else if rc != "" && rc != encoding.Identity { + decomp = encoding.GetCompressor(rc) + if decomp == nil { + st := status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", rc) + t.WriteStatus(stream, st) + return st.Err() + } + } + + // If cp is set, use it. Otherwise, attempt to compress the response using + // the incoming message compression method. + // + // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. + if s.opts.cp != nil { + cp = s.opts.cp + stream.SetSendCompress(cp.Type()) + } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { + // Legacy compressor not specified; attempt to respond with same encoding. + comp = encoding.GetCompressor(rc) + if comp != nil { + stream.SetSendCompress(rc) + } + } + + var payInfo *payloadInfo + if len(shs) != 0 || len(binlogs) != 0 { + payInfo = &payloadInfo{} + } + d, err := recvAndDecompress(&parser{r: stream}, stream, dc, s.opts.maxReceiveMessageSize, payInfo, decomp) + if err != nil { + if e := t.WriteStatus(stream, status.Convert(err)); e != nil { + channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status %v", e) + } + return err + } + if channelz.IsOn() { + t.IncrMsgRecv() + } + df := func(v interface{}) error { + if err := s.getCodec(stream.ContentSubtype()).Unmarshal(d, v); err != nil { + return status.Errorf(codes.Internal, "grpc: error unmarshalling request: %v", err) + } + for _, sh := range shs { + sh.HandleRPC(stream.Context(), &stats.InPayload{ + RecvTime: time.Now(), + Payload: v, + WireLength: payInfo.wireLength + headerLen, + Data: d, + Length: len(d), + }) + } + if len(binlogs) != 0 { + cm := &binarylog.ClientMessage{ + Message: d, + } + for _, binlog := range binlogs { + binlog.Log(cm) + } + } + if trInfo != nil { + trInfo.tr.LazyLog(&payload{sent: false, msg: v}, true) + } + return nil + } + ctx := NewContextWithServerTransportStream(stream.Context(), stream) + reply, appErr := md.Handler(info.serviceImpl, ctx, df, s.opts.unaryInt) + if appErr != nil { + appStatus, ok := status.FromError(appErr) + if !ok { + // Convert non-status application error to a status error with code + // Unknown, but handle context errors specifically. + appStatus = status.FromContextError(appErr) + appErr = appStatus.Err() + } + if trInfo != nil { + trInfo.tr.LazyLog(stringer(appStatus.Message()), true) + trInfo.tr.SetError() + } + if e := t.WriteStatus(stream, appStatus); e != nil { + channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status: %v", e) + } + if len(binlogs) != 0 { + if h, _ := stream.Header(); h.Len() > 0 { + // Only log serverHeader if there was header. Otherwise it can + // be trailer only. + sh := &binarylog.ServerHeader{ + Header: h, + } + for _, binlog := range binlogs { + binlog.Log(sh) + } + } + st := &binarylog.ServerTrailer{ + Trailer: stream.Trailer(), + Err: appErr, + } + for _, binlog := range binlogs { + binlog.Log(st) + } + } + return appErr + } + if trInfo != nil { + trInfo.tr.LazyLog(stringer("OK"), false) + } + opts := &transport.Options{Last: true} + + if err := s.sendResponse(t, stream, reply, cp, opts, comp); err != nil { + if err == io.EOF { + // The entire stream is done (for unary RPC only). + return err + } + if sts, ok := status.FromError(err); ok { + if e := t.WriteStatus(stream, sts); e != nil { + channelz.Warningf(logger, s.channelzID, "grpc: Server.processUnaryRPC failed to write status: %v", e) + } + } else { + switch st := err.(type) { + case transport.ConnectionError: + // Nothing to do here. + default: + panic(fmt.Sprintf("grpc: Unexpected error (%T) from sendResponse: %v", st, st)) + } + } + if len(binlogs) != 0 { + h, _ := stream.Header() + sh := &binarylog.ServerHeader{ + Header: h, + } + st := &binarylog.ServerTrailer{ + Trailer: stream.Trailer(), + Err: appErr, + } + for _, binlog := range binlogs { + binlog.Log(sh) + binlog.Log(st) + } + } + return err + } + if len(binlogs) != 0 { + h, _ := stream.Header() + sh := &binarylog.ServerHeader{ + Header: h, + } + sm := &binarylog.ServerMessage{ + Message: reply, + } + for _, binlog := range binlogs { + binlog.Log(sh) + binlog.Log(sm) + } + } + if channelz.IsOn() { + t.IncrMsgSent() + } + if trInfo != nil { + trInfo.tr.LazyLog(&payload{sent: true, msg: reply}, true) + } + // TODO: Should we be logging if writing status failed here, like above? + // Should the logging be in WriteStatus? Should we ignore the WriteStatus + // error or allow the stats handler to see it? + err = t.WriteStatus(stream, statusOK) + if len(binlogs) != 0 { + st := &binarylog.ServerTrailer{ + Trailer: stream.Trailer(), + Err: appErr, + } + for _, binlog := range binlogs { + binlog.Log(st) + } + } + return err +} + +// chainStreamServerInterceptors chains all stream server interceptors into one. +func chainStreamServerInterceptors(s *Server) { + // Prepend opts.streamInt to the chaining interceptors if it exists, since streamInt will + // be executed before any other chained interceptors. + interceptors := s.opts.chainStreamInts + if s.opts.streamInt != nil { + interceptors = append([]StreamServerInterceptor{s.opts.streamInt}, s.opts.chainStreamInts...) + } + + var chainedInt StreamServerInterceptor + if len(interceptors) == 0 { + chainedInt = nil + } else if len(interceptors) == 1 { + chainedInt = interceptors[0] + } else { + chainedInt = chainStreamInterceptors(interceptors) + } + + s.opts.streamInt = chainedInt +} + +func chainStreamInterceptors(interceptors []StreamServerInterceptor) StreamServerInterceptor { + return func(srv interface{}, ss ServerStream, info *StreamServerInfo, handler StreamHandler) error { + return interceptors[0](srv, ss, info, getChainStreamHandler(interceptors, 0, info, handler)) + } +} + +func getChainStreamHandler(interceptors []StreamServerInterceptor, curr int, info *StreamServerInfo, finalHandler StreamHandler) StreamHandler { + if curr == len(interceptors)-1 { + return finalHandler + } + return func(srv interface{}, stream ServerStream) error { + return interceptors[curr+1](srv, stream, info, getChainStreamHandler(interceptors, curr+1, info, finalHandler)) + } +} + +func (s *Server) processStreamingRPC(t transport.ServerTransport, stream *transport.Stream, info *serviceInfo, sd *StreamDesc, trInfo *traceInfo) (err error) { + if channelz.IsOn() { + s.incrCallsStarted() + } + shs := s.opts.statsHandlers + var statsBegin *stats.Begin + if len(shs) != 0 { + beginTime := time.Now() + statsBegin = &stats.Begin{ + BeginTime: beginTime, + IsClientStream: sd.ClientStreams, + IsServerStream: sd.ServerStreams, + } + for _, sh := range shs { + sh.HandleRPC(stream.Context(), statsBegin) + } + } + ctx := NewContextWithServerTransportStream(stream.Context(), stream) + ss := &serverStream{ + ctx: ctx, + t: t, + s: stream, + p: &parser{r: stream}, + codec: s.getCodec(stream.ContentSubtype()), + maxReceiveMessageSize: s.opts.maxReceiveMessageSize, + maxSendMessageSize: s.opts.maxSendMessageSize, + trInfo: trInfo, + statsHandler: shs, + } + + if len(shs) != 0 || trInfo != nil || channelz.IsOn() { + // See comment in processUnaryRPC on defers. + defer func() { + if trInfo != nil { + ss.mu.Lock() + if err != nil && err != io.EOF { + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.SetError() + } + ss.trInfo.tr.Finish() + ss.trInfo.tr = nil + ss.mu.Unlock() + } + + if len(shs) != 0 { + end := &stats.End{ + BeginTime: statsBegin.BeginTime, + EndTime: time.Now(), + } + if err != nil && err != io.EOF { + end.Error = toRPCErr(err) + } + for _, sh := range shs { + sh.HandleRPC(stream.Context(), end) + } + } + + if channelz.IsOn() { + if err != nil && err != io.EOF { + s.incrCallsFailed() + } else { + s.incrCallsSucceeded() + } + } + }() + } + + if ml := binarylog.GetMethodLogger(stream.Method()); ml != nil { + ss.binlogs = append(ss.binlogs, ml) + } + if s.opts.binaryLogger != nil { + if ml := s.opts.binaryLogger.GetMethodLogger(stream.Method()); ml != nil { + ss.binlogs = append(ss.binlogs, ml) + } + } + if len(ss.binlogs) != 0 { + md, _ := metadata.FromIncomingContext(ctx) + logEntry := &binarylog.ClientHeader{ + Header: md, + MethodName: stream.Method(), + PeerAddr: nil, + } + if deadline, ok := ctx.Deadline(); ok { + logEntry.Timeout = time.Until(deadline) + if logEntry.Timeout < 0 { + logEntry.Timeout = 0 + } + } + if a := md[":authority"]; len(a) > 0 { + logEntry.Authority = a[0] + } + if peer, ok := peer.FromContext(ss.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + for _, binlog := range ss.binlogs { + binlog.Log(logEntry) + } + } + + // If dc is set and matches the stream's compression, use it. Otherwise, try + // to find a matching registered compressor for decomp. + if rc := stream.RecvCompress(); s.opts.dc != nil && s.opts.dc.Type() == rc { + ss.dc = s.opts.dc + } else if rc != "" && rc != encoding.Identity { + ss.decomp = encoding.GetCompressor(rc) + if ss.decomp == nil { + st := status.Newf(codes.Unimplemented, "grpc: Decompressor is not installed for grpc-encoding %q", rc) + t.WriteStatus(ss.s, st) + return st.Err() + } + } + + // If cp is set, use it. Otherwise, attempt to compress the response using + // the incoming message compression method. + // + // NOTE: this needs to be ahead of all handling, https://github.com/grpc/grpc-go/issues/686. + if s.opts.cp != nil { + ss.cp = s.opts.cp + stream.SetSendCompress(s.opts.cp.Type()) + } else if rc := stream.RecvCompress(); rc != "" && rc != encoding.Identity { + // Legacy compressor not specified; attempt to respond with same encoding. + ss.comp = encoding.GetCompressor(rc) + if ss.comp != nil { + stream.SetSendCompress(rc) + } + } + + ss.ctx = newContextWithRPCInfo(ss.ctx, false, ss.codec, ss.cp, ss.comp) + + if trInfo != nil { + trInfo.tr.LazyLog(&trInfo.firstLine, false) + } + var appErr error + var server interface{} + if info != nil { + server = info.serviceImpl + } + if s.opts.streamInt == nil { + appErr = sd.Handler(server, ss) + } else { + info := &StreamServerInfo{ + FullMethod: stream.Method(), + IsClientStream: sd.ClientStreams, + IsServerStream: sd.ServerStreams, + } + appErr = s.opts.streamInt(server, ss, info, sd.Handler) + } + if appErr != nil { + appStatus, ok := status.FromError(appErr) + if !ok { + // Convert non-status application error to a status error with code + // Unknown, but handle context errors specifically. + appStatus = status.FromContextError(appErr) + appErr = appStatus.Err() + } + if trInfo != nil { + ss.mu.Lock() + ss.trInfo.tr.LazyLog(stringer(appStatus.Message()), true) + ss.trInfo.tr.SetError() + ss.mu.Unlock() + } + t.WriteStatus(ss.s, appStatus) + if len(ss.binlogs) != 0 { + st := &binarylog.ServerTrailer{ + Trailer: ss.s.Trailer(), + Err: appErr, + } + for _, binlog := range ss.binlogs { + binlog.Log(st) + } + } + // TODO: Should we log an error from WriteStatus here and below? + return appErr + } + if trInfo != nil { + ss.mu.Lock() + ss.trInfo.tr.LazyLog(stringer("OK"), false) + ss.mu.Unlock() + } + err = t.WriteStatus(ss.s, statusOK) + if len(ss.binlogs) != 0 { + st := &binarylog.ServerTrailer{ + Trailer: ss.s.Trailer(), + Err: appErr, + } + for _, binlog := range ss.binlogs { + binlog.Log(st) + } + } + return err +} + +func (s *Server) handleStream(t transport.ServerTransport, stream *transport.Stream, trInfo *traceInfo) { + sm := stream.Method() + if sm != "" && sm[0] == '/' { + sm = sm[1:] + } + pos := strings.LastIndex(sm, "/") + if pos == -1 { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"Malformed method name %q", []interface{}{sm}}, true) + trInfo.tr.SetError() + } + errDesc := fmt.Sprintf("malformed method name: %q", stream.Method()) + if err := t.WriteStatus(stream, status.New(codes.Unimplemented, errDesc)); err != nil { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + channelz.Warningf(logger, s.channelzID, "grpc: Server.handleStream failed to write status: %v", err) + } + if trInfo != nil { + trInfo.tr.Finish() + } + return + } + service := sm[:pos] + method := sm[pos+1:] + + srv, knownService := s.services[service] + if knownService { + if md, ok := srv.methods[method]; ok { + s.processUnaryRPC(t, stream, srv, md, trInfo) + return + } + if sd, ok := srv.streams[method]; ok { + s.processStreamingRPC(t, stream, srv, sd, trInfo) + return + } + } + // Unknown service, or known server unknown method. + if unknownDesc := s.opts.unknownStreamDesc; unknownDesc != nil { + s.processStreamingRPC(t, stream, nil, unknownDesc, trInfo) + return + } + var errDesc string + if !knownService { + errDesc = fmt.Sprintf("unknown service %v", service) + } else { + errDesc = fmt.Sprintf("unknown method %v for service %v", method, service) + } + if trInfo != nil { + trInfo.tr.LazyPrintf("%s", errDesc) + trInfo.tr.SetError() + } + if err := t.WriteStatus(stream, status.New(codes.Unimplemented, errDesc)); err != nil { + if trInfo != nil { + trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + trInfo.tr.SetError() + } + channelz.Warningf(logger, s.channelzID, "grpc: Server.handleStream failed to write status: %v", err) + } + if trInfo != nil { + trInfo.tr.Finish() + } +} + +// The key to save ServerTransportStream in the context. +type streamKey struct{} + +// NewContextWithServerTransportStream creates a new context from ctx and +// attaches stream to it. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func NewContextWithServerTransportStream(ctx context.Context, stream ServerTransportStream) context.Context { + return context.WithValue(ctx, streamKey{}, stream) +} + +// ServerTransportStream is a minimal interface that a transport stream must +// implement. This can be used to mock an actual transport stream for tests of +// handler code that use, for example, grpc.SetHeader (which requires some +// stream to be in context). +// +// See also NewContextWithServerTransportStream. +// +// # Experimental +// +// Notice: This type is EXPERIMENTAL and may be changed or removed in a +// later release. +type ServerTransportStream interface { + Method() string + SetHeader(md metadata.MD) error + SendHeader(md metadata.MD) error + SetTrailer(md metadata.MD) error +} + +// ServerTransportStreamFromContext returns the ServerTransportStream saved in +// ctx. Returns nil if the given context has no stream associated with it +// (which implies it is not an RPC invocation context). +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +func ServerTransportStreamFromContext(ctx context.Context) ServerTransportStream { + s, _ := ctx.Value(streamKey{}).(ServerTransportStream) + return s +} + +// Stop stops the gRPC server. It immediately closes all open +// connections and listeners. +// It cancels all active RPCs on the server side and the corresponding +// pending RPCs on the client side will get notified by connection +// errors. +func (s *Server) Stop() { + s.quit.Fire() + + defer func() { + s.serveWG.Wait() + s.done.Fire() + }() + + s.channelzRemoveOnce.Do(func() { channelz.RemoveEntry(s.channelzID) }) + + s.mu.Lock() + listeners := s.lis + s.lis = nil + conns := s.conns + s.conns = nil + // interrupt GracefulStop if Stop and GracefulStop are called concurrently. + s.cv.Broadcast() + s.mu.Unlock() + + for lis := range listeners { + lis.Close() + } + for _, cs := range conns { + for st := range cs { + st.Close(errors.New("Server.Stop called")) + } + } + if s.opts.numServerWorkers > 0 { + s.stopServerWorkers() + } + + s.mu.Lock() + if s.events != nil { + s.events.Finish() + s.events = nil + } + s.mu.Unlock() +} + +// GracefulStop stops the gRPC server gracefully. It stops the server from +// accepting new connections and RPCs and blocks until all the pending RPCs are +// finished. +func (s *Server) GracefulStop() { + s.quit.Fire() + defer s.done.Fire() + + s.channelzRemoveOnce.Do(func() { channelz.RemoveEntry(s.channelzID) }) + s.mu.Lock() + if s.conns == nil { + s.mu.Unlock() + return + } + + for lis := range s.lis { + lis.Close() + } + s.lis = nil + if !s.drain { + for _, conns := range s.conns { + for st := range conns { + st.Drain() + } + } + s.drain = true + } + + // Wait for serving threads to be ready to exit. Only then can we be sure no + // new conns will be created. + s.mu.Unlock() + s.serveWG.Wait() + s.mu.Lock() + + for len(s.conns) != 0 { + s.cv.Wait() + } + s.conns = nil + if s.events != nil { + s.events.Finish() + s.events = nil + } + s.mu.Unlock() +} + +// contentSubtype must be lowercase +// cannot return nil +func (s *Server) getCodec(contentSubtype string) baseCodec { + if s.opts.codec != nil { + return s.opts.codec + } + if contentSubtype == "" { + return encoding.GetCodec(proto.Name) + } + codec := encoding.GetCodec(contentSubtype) + if codec == nil { + return encoding.GetCodec(proto.Name) + } + return codec +} + +// SetHeader sets the header metadata to be sent from the server to the client. +// The context provided must be the context passed to the server's handler. +// +// Streaming RPCs should prefer the SetHeader method of the ServerStream. +// +// When called multiple times, all the provided metadata will be merged. All +// the metadata will be sent out when one of the following happens: +// +// - grpc.SendHeader is called, or for streaming handlers, stream.SendHeader. +// - The first response message is sent. For unary handlers, this occurs when +// the handler returns; for streaming handlers, this can happen when stream's +// SendMsg method is called. +// - An RPC status is sent out (error or success). This occurs when the handler +// returns. +// +// SetHeader will fail if called after any of the events above. +// +// The error returned is compatible with the status package. However, the +// status code will often not match the RPC status as seen by the client +// application, and therefore, should not be relied upon for this purpose. +func SetHeader(ctx context.Context, md metadata.MD) error { + if md.Len() == 0 { + return nil + } + stream := ServerTransportStreamFromContext(ctx) + if stream == nil { + return status.Errorf(codes.Internal, "grpc: failed to fetch the stream from the context %v", ctx) + } + return stream.SetHeader(md) +} + +// SendHeader sends header metadata. It may be called at most once, and may not +// be called after any event that causes headers to be sent (see SetHeader for +// a complete list). The provided md and headers set by SetHeader() will be +// sent. +// +// The error returned is compatible with the status package. However, the +// status code will often not match the RPC status as seen by the client +// application, and therefore, should not be relied upon for this purpose. +func SendHeader(ctx context.Context, md metadata.MD) error { + stream := ServerTransportStreamFromContext(ctx) + if stream == nil { + return status.Errorf(codes.Internal, "grpc: failed to fetch the stream from the context %v", ctx) + } + if err := stream.SendHeader(md); err != nil { + return toRPCErr(err) + } + return nil +} + +// SetTrailer sets the trailer metadata that will be sent when an RPC returns. +// When called more than once, all the provided metadata will be merged. +// +// The error returned is compatible with the status package. However, the +// status code will often not match the RPC status as seen by the client +// application, and therefore, should not be relied upon for this purpose. +func SetTrailer(ctx context.Context, md metadata.MD) error { + if md.Len() == 0 { + return nil + } + stream := ServerTransportStreamFromContext(ctx) + if stream == nil { + return status.Errorf(codes.Internal, "grpc: failed to fetch the stream from the context %v", ctx) + } + return stream.SetTrailer(md) +} + +// Method returns the method string for the server context. The returned +// string is in the format of "/service/method". +func Method(ctx context.Context) (string, bool) { + s := ServerTransportStreamFromContext(ctx) + if s == nil { + return "", false + } + return s.Method(), true +} + +type channelzServer struct { + s *Server +} + +func (c *channelzServer) ChannelzMetric() *channelz.ServerInternalMetric { + return c.s.channelzMetric() +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/service_config.go b/ecs-agent/vendor/google.golang.org/grpc/service_config.go new file mode 100644 index 0000000000..01bbb2025a --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/service_config.go @@ -0,0 +1,406 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "encoding/json" + "errors" + "fmt" + "reflect" + "strconv" + "strings" + "time" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/internal" + internalserviceconfig "google.golang.org/grpc/internal/serviceconfig" + "google.golang.org/grpc/serviceconfig" +) + +const maxInt = int(^uint(0) >> 1) + +// MethodConfig defines the configuration recommended by the service providers for a +// particular method. +// +// Deprecated: Users should not use this struct. Service config should be received +// through name resolver, as specified here +// https://github.com/grpc/grpc/blob/master/doc/service_config.md +type MethodConfig = internalserviceconfig.MethodConfig + +type lbConfig struct { + name string + cfg serviceconfig.LoadBalancingConfig +} + +// ServiceConfig is provided by the service provider and contains parameters for how +// clients that connect to the service should behave. +// +// Deprecated: Users should not use this struct. Service config should be received +// through name resolver, as specified here +// https://github.com/grpc/grpc/blob/master/doc/service_config.md +type ServiceConfig struct { + serviceconfig.Config + + // LB is the load balancer the service providers recommends. This is + // deprecated; lbConfigs is preferred. If lbConfig and LB are both present, + // lbConfig will be used. + LB *string + + // lbConfig is the service config's load balancing configuration. If + // lbConfig and LB are both present, lbConfig will be used. + lbConfig *lbConfig + + // Methods contains a map for the methods in this service. If there is an + // exact match for a method (i.e. /service/method) in the map, use the + // corresponding MethodConfig. If there's no exact match, look for the + // default config for the service (/service/) and use the corresponding + // MethodConfig if it exists. Otherwise, the method has no MethodConfig to + // use. + Methods map[string]MethodConfig + + // If a retryThrottlingPolicy is provided, gRPC will automatically throttle + // retry attempts and hedged RPCs when the client’s ratio of failures to + // successes exceeds a threshold. + // + // For each server name, the gRPC client will maintain a token_count which is + // initially set to maxTokens, and can take values between 0 and maxTokens. + // + // Every outgoing RPC (regardless of service or method invoked) will change + // token_count as follows: + // + // - Every failed RPC will decrement the token_count by 1. + // - Every successful RPC will increment the token_count by tokenRatio. + // + // If token_count is less than or equal to maxTokens / 2, then RPCs will not + // be retried and hedged RPCs will not be sent. + retryThrottling *retryThrottlingPolicy + // healthCheckConfig must be set as one of the requirement to enable LB channel + // health check. + healthCheckConfig *healthCheckConfig + // rawJSONString stores service config json string that get parsed into + // this service config struct. + rawJSONString string +} + +// healthCheckConfig defines the go-native version of the LB channel health check config. +type healthCheckConfig struct { + // serviceName is the service name to use in the health-checking request. + ServiceName string +} + +type jsonRetryPolicy struct { + MaxAttempts int + InitialBackoff string + MaxBackoff string + BackoffMultiplier float64 + RetryableStatusCodes []codes.Code +} + +// retryThrottlingPolicy defines the go-native version of the retry throttling +// policy defined by the service config here: +// https://github.com/grpc/proposal/blob/master/A6-client-retries.md#integration-with-service-config +type retryThrottlingPolicy struct { + // The number of tokens starts at maxTokens. The token_count will always be + // between 0 and maxTokens. + // + // This field is required and must be greater than zero. + MaxTokens float64 + // The amount of tokens to add on each successful RPC. Typically this will + // be some number between 0 and 1, e.g., 0.1. + // + // This field is required and must be greater than zero. Up to 3 decimal + // places are supported. + TokenRatio float64 +} + +func parseDuration(s *string) (*time.Duration, error) { + if s == nil { + return nil, nil + } + if !strings.HasSuffix(*s, "s") { + return nil, fmt.Errorf("malformed duration %q", *s) + } + ss := strings.SplitN((*s)[:len(*s)-1], ".", 3) + if len(ss) > 2 { + return nil, fmt.Errorf("malformed duration %q", *s) + } + // hasDigits is set if either the whole or fractional part of the number is + // present, since both are optional but one is required. + hasDigits := false + var d time.Duration + if len(ss[0]) > 0 { + i, err := strconv.ParseInt(ss[0], 10, 32) + if err != nil { + return nil, fmt.Errorf("malformed duration %q: %v", *s, err) + } + d = time.Duration(i) * time.Second + hasDigits = true + } + if len(ss) == 2 && len(ss[1]) > 0 { + if len(ss[1]) > 9 { + return nil, fmt.Errorf("malformed duration %q", *s) + } + f, err := strconv.ParseInt(ss[1], 10, 64) + if err != nil { + return nil, fmt.Errorf("malformed duration %q: %v", *s, err) + } + for i := 9; i > len(ss[1]); i-- { + f *= 10 + } + d += time.Duration(f) + hasDigits = true + } + if !hasDigits { + return nil, fmt.Errorf("malformed duration %q", *s) + } + + return &d, nil +} + +type jsonName struct { + Service string + Method string +} + +var ( + errDuplicatedName = errors.New("duplicated name") + errEmptyServiceNonEmptyMethod = errors.New("cannot combine empty 'service' and non-empty 'method'") +) + +func (j jsonName) generatePath() (string, error) { + if j.Service == "" { + if j.Method != "" { + return "", errEmptyServiceNonEmptyMethod + } + return "", nil + } + res := "/" + j.Service + "/" + if j.Method != "" { + res += j.Method + } + return res, nil +} + +// TODO(lyuxuan): delete this struct after cleaning up old service config implementation. +type jsonMC struct { + Name *[]jsonName + WaitForReady *bool + Timeout *string + MaxRequestMessageBytes *int64 + MaxResponseMessageBytes *int64 + RetryPolicy *jsonRetryPolicy +} + +// TODO(lyuxuan): delete this struct after cleaning up old service config implementation. +type jsonSC struct { + LoadBalancingPolicy *string + LoadBalancingConfig *internalserviceconfig.BalancerConfig + MethodConfig *[]jsonMC + RetryThrottling *retryThrottlingPolicy + HealthCheckConfig *healthCheckConfig +} + +func init() { + internal.ParseServiceConfig = parseServiceConfig +} +func parseServiceConfig(js string) *serviceconfig.ParseResult { + if len(js) == 0 { + return &serviceconfig.ParseResult{Err: fmt.Errorf("no JSON service config provided")} + } + var rsc jsonSC + err := json.Unmarshal([]byte(js), &rsc) + if err != nil { + logger.Warningf("grpc: parseServiceConfig error unmarshaling %s due to %v", js, err) + return &serviceconfig.ParseResult{Err: err} + } + sc := ServiceConfig{ + LB: rsc.LoadBalancingPolicy, + Methods: make(map[string]MethodConfig), + retryThrottling: rsc.RetryThrottling, + healthCheckConfig: rsc.HealthCheckConfig, + rawJSONString: js, + } + if c := rsc.LoadBalancingConfig; c != nil { + sc.lbConfig = &lbConfig{ + name: c.Name, + cfg: c.Config, + } + } + + if rsc.MethodConfig == nil { + return &serviceconfig.ParseResult{Config: &sc} + } + + paths := map[string]struct{}{} + for _, m := range *rsc.MethodConfig { + if m.Name == nil { + continue + } + d, err := parseDuration(m.Timeout) + if err != nil { + logger.Warningf("grpc: parseServiceConfig error unmarshaling %s due to %v", js, err) + return &serviceconfig.ParseResult{Err: err} + } + + mc := MethodConfig{ + WaitForReady: m.WaitForReady, + Timeout: d, + } + if mc.RetryPolicy, err = convertRetryPolicy(m.RetryPolicy); err != nil { + logger.Warningf("grpc: parseServiceConfig error unmarshaling %s due to %v", js, err) + return &serviceconfig.ParseResult{Err: err} + } + if m.MaxRequestMessageBytes != nil { + if *m.MaxRequestMessageBytes > int64(maxInt) { + mc.MaxReqSize = newInt(maxInt) + } else { + mc.MaxReqSize = newInt(int(*m.MaxRequestMessageBytes)) + } + } + if m.MaxResponseMessageBytes != nil { + if *m.MaxResponseMessageBytes > int64(maxInt) { + mc.MaxRespSize = newInt(maxInt) + } else { + mc.MaxRespSize = newInt(int(*m.MaxResponseMessageBytes)) + } + } + for i, n := range *m.Name { + path, err := n.generatePath() + if err != nil { + logger.Warningf("grpc: parseServiceConfig error unmarshaling %s due to methodConfig[%d]: %v", js, i, err) + return &serviceconfig.ParseResult{Err: err} + } + + if _, ok := paths[path]; ok { + err = errDuplicatedName + logger.Warningf("grpc: parseServiceConfig error unmarshaling %s due to methodConfig[%d]: %v", js, i, err) + return &serviceconfig.ParseResult{Err: err} + } + paths[path] = struct{}{} + sc.Methods[path] = mc + } + } + + if sc.retryThrottling != nil { + if mt := sc.retryThrottling.MaxTokens; mt <= 0 || mt > 1000 { + return &serviceconfig.ParseResult{Err: fmt.Errorf("invalid retry throttling config: maxTokens (%v) out of range (0, 1000]", mt)} + } + if tr := sc.retryThrottling.TokenRatio; tr <= 0 { + return &serviceconfig.ParseResult{Err: fmt.Errorf("invalid retry throttling config: tokenRatio (%v) may not be negative", tr)} + } + } + return &serviceconfig.ParseResult{Config: &sc} +} + +func convertRetryPolicy(jrp *jsonRetryPolicy) (p *internalserviceconfig.RetryPolicy, err error) { + if jrp == nil { + return nil, nil + } + ib, err := parseDuration(&jrp.InitialBackoff) + if err != nil { + return nil, err + } + mb, err := parseDuration(&jrp.MaxBackoff) + if err != nil { + return nil, err + } + + if jrp.MaxAttempts <= 1 || + *ib <= 0 || + *mb <= 0 || + jrp.BackoffMultiplier <= 0 || + len(jrp.RetryableStatusCodes) == 0 { + logger.Warningf("grpc: ignoring retry policy %v due to illegal configuration", jrp) + return nil, nil + } + + rp := &internalserviceconfig.RetryPolicy{ + MaxAttempts: jrp.MaxAttempts, + InitialBackoff: *ib, + MaxBackoff: *mb, + BackoffMultiplier: jrp.BackoffMultiplier, + RetryableStatusCodes: make(map[codes.Code]bool), + } + if rp.MaxAttempts > 5 { + // TODO(retry): Make the max maxAttempts configurable. + rp.MaxAttempts = 5 + } + for _, code := range jrp.RetryableStatusCodes { + rp.RetryableStatusCodes[code] = true + } + return rp, nil +} + +func min(a, b *int) *int { + if *a < *b { + return a + } + return b +} + +func getMaxSize(mcMax, doptMax *int, defaultVal int) *int { + if mcMax == nil && doptMax == nil { + return &defaultVal + } + if mcMax != nil && doptMax != nil { + return min(mcMax, doptMax) + } + if mcMax != nil { + return mcMax + } + return doptMax +} + +func newInt(b int) *int { + return &b +} + +func init() { + internal.EqualServiceConfigForTesting = equalServiceConfig +} + +// equalServiceConfig compares two configs. The rawJSONString field is ignored, +// because they may diff in white spaces. +// +// If any of them is NOT *ServiceConfig, return false. +func equalServiceConfig(a, b serviceconfig.Config) bool { + if a == nil && b == nil { + return true + } + aa, ok := a.(*ServiceConfig) + if !ok { + return false + } + bb, ok := b.(*ServiceConfig) + if !ok { + return false + } + aaRaw := aa.rawJSONString + aa.rawJSONString = "" + bbRaw := bb.rawJSONString + bb.rawJSONString = "" + defer func() { + aa.rawJSONString = aaRaw + bb.rawJSONString = bbRaw + }() + // Using reflect.DeepEqual instead of cmp.Equal because many balancer + // configs are unexported, and cmp.Equal cannot compare unexported fields + // from unexported structs. + return reflect.DeepEqual(aa, bb) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go b/ecs-agent/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go new file mode 100644 index 0000000000..35e7a20a04 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/serviceconfig/serviceconfig.go @@ -0,0 +1,44 @@ +/* + * + * Copyright 2019 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package serviceconfig defines types and methods for operating on gRPC +// service configs. +// +// # Experimental +// +// Notice: This package is EXPERIMENTAL and may be changed or removed in a +// later release. +package serviceconfig + +// Config represents an opaque data structure holding a service config. +type Config interface { + isServiceConfig() +} + +// LoadBalancingConfig represents an opaque data structure holding a load +// balancing config. +type LoadBalancingConfig interface { + isLoadBalancingConfig() +} + +// ParseResult contains a service config or an error. Exactly one must be +// non-nil. +type ParseResult struct { + Config Config + Err error +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/stats/handlers.go b/ecs-agent/vendor/google.golang.org/grpc/stats/handlers.go new file mode 100644 index 0000000000..dc03731e45 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/stats/handlers.go @@ -0,0 +1,63 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package stats + +import ( + "context" + "net" +) + +// ConnTagInfo defines the relevant information needed by connection context tagger. +type ConnTagInfo struct { + // RemoteAddr is the remote address of the corresponding connection. + RemoteAddr net.Addr + // LocalAddr is the local address of the corresponding connection. + LocalAddr net.Addr +} + +// RPCTagInfo defines the relevant information needed by RPC context tagger. +type RPCTagInfo struct { + // FullMethodName is the RPC method in the format of /package.service/method. + FullMethodName string + // FailFast indicates if this RPC is failfast. + // This field is only valid on client side, it's always false on server side. + FailFast bool +} + +// Handler defines the interface for the related stats handling (e.g., RPCs, connections). +type Handler interface { + // TagRPC can attach some information to the given context. + // The context used for the rest lifetime of the RPC will be derived from + // the returned context. + TagRPC(context.Context, *RPCTagInfo) context.Context + // HandleRPC processes the RPC stats. + HandleRPC(context.Context, RPCStats) + + // TagConn can attach some information to the given context. + // The returned context will be used for stats handling. + // For conn stats handling, the context used in HandleConn for this + // connection will be derived from the context returned. + // For RPC stats handling, + // - On server side, the context used in HandleRPC for all RPCs on this + // connection will be derived from the context returned. + // - On client side, the context is not derived from the context returned. + TagConn(context.Context, *ConnTagInfo) context.Context + // HandleConn processes the Conn stats. + HandleConn(context.Context, ConnStats) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/stats/stats.go b/ecs-agent/vendor/google.golang.org/grpc/stats/stats.go new file mode 100644 index 0000000000..0285dcc6a2 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/stats/stats.go @@ -0,0 +1,319 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package stats is for collecting and reporting various network and RPC stats. +// This package is for monitoring purpose only. All fields are read-only. +// All APIs are experimental. +package stats // import "google.golang.org/grpc/stats" + +import ( + "context" + "net" + "time" + + "google.golang.org/grpc/metadata" +) + +// RPCStats contains stats information about RPCs. +type RPCStats interface { + isRPCStats() + // IsClient returns true if this RPCStats is from client side. + IsClient() bool +} + +// Begin contains stats when an RPC attempt begins. +// FailFast is only valid if this Begin is from client side. +type Begin struct { + // Client is true if this Begin is from client side. + Client bool + // BeginTime is the time when the RPC attempt begins. + BeginTime time.Time + // FailFast indicates if this RPC is failfast. + FailFast bool + // IsClientStream indicates whether the RPC is a client streaming RPC. + IsClientStream bool + // IsServerStream indicates whether the RPC is a server streaming RPC. + IsServerStream bool + // IsTransparentRetryAttempt indicates whether this attempt was initiated + // due to transparently retrying a previous attempt. + IsTransparentRetryAttempt bool +} + +// IsClient indicates if the stats information is from client side. +func (s *Begin) IsClient() bool { return s.Client } + +func (s *Begin) isRPCStats() {} + +// InPayload contains the information for an incoming payload. +type InPayload struct { + // Client is true if this InPayload is from client side. + Client bool + // Payload is the payload with original type. + Payload interface{} + // Data is the serialized message payload. + Data []byte + // Length is the length of uncompressed data. + Length int + // WireLength is the length of data on wire (compressed, signed, encrypted). + WireLength int + // RecvTime is the time when the payload is received. + RecvTime time.Time +} + +// IsClient indicates if the stats information is from client side. +func (s *InPayload) IsClient() bool { return s.Client } + +func (s *InPayload) isRPCStats() {} + +// InHeader contains stats when a header is received. +type InHeader struct { + // Client is true if this InHeader is from client side. + Client bool + // WireLength is the wire length of header. + WireLength int + // Compression is the compression algorithm used for the RPC. + Compression string + // Header contains the header metadata received. + Header metadata.MD + + // The following fields are valid only if Client is false. + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string + // RemoteAddr is the remote address of the corresponding connection. + RemoteAddr net.Addr + // LocalAddr is the local address of the corresponding connection. + LocalAddr net.Addr +} + +// IsClient indicates if the stats information is from client side. +func (s *InHeader) IsClient() bool { return s.Client } + +func (s *InHeader) isRPCStats() {} + +// InTrailer contains stats when a trailer is received. +type InTrailer struct { + // Client is true if this InTrailer is from client side. + Client bool + // WireLength is the wire length of trailer. + WireLength int + // Trailer contains the trailer metadata received from the server. This + // field is only valid if this InTrailer is from the client side. + Trailer metadata.MD +} + +// IsClient indicates if the stats information is from client side. +func (s *InTrailer) IsClient() bool { return s.Client } + +func (s *InTrailer) isRPCStats() {} + +// OutPayload contains the information for an outgoing payload. +type OutPayload struct { + // Client is true if this OutPayload is from client side. + Client bool + // Payload is the payload with original type. + Payload interface{} + // Data is the serialized message payload. + Data []byte + // Length is the length of uncompressed data. + Length int + // WireLength is the length of data on wire (compressed, signed, encrypted). + WireLength int + // SentTime is the time when the payload is sent. + SentTime time.Time +} + +// IsClient indicates if this stats information is from client side. +func (s *OutPayload) IsClient() bool { return s.Client } + +func (s *OutPayload) isRPCStats() {} + +// OutHeader contains stats when a header is sent. +type OutHeader struct { + // Client is true if this OutHeader is from client side. + Client bool + // Compression is the compression algorithm used for the RPC. + Compression string + // Header contains the header metadata sent. + Header metadata.MD + + // The following fields are valid only if Client is true. + // FullMethod is the full RPC method string, i.e., /package.service/method. + FullMethod string + // RemoteAddr is the remote address of the corresponding connection. + RemoteAddr net.Addr + // LocalAddr is the local address of the corresponding connection. + LocalAddr net.Addr +} + +// IsClient indicates if this stats information is from client side. +func (s *OutHeader) IsClient() bool { return s.Client } + +func (s *OutHeader) isRPCStats() {} + +// OutTrailer contains stats when a trailer is sent. +type OutTrailer struct { + // Client is true if this OutTrailer is from client side. + Client bool + // WireLength is the wire length of trailer. + // + // Deprecated: This field is never set. The length is not known when this message is + // emitted because the trailer fields are compressed with hpack after that. + WireLength int + // Trailer contains the trailer metadata sent to the client. This + // field is only valid if this OutTrailer is from the server side. + Trailer metadata.MD +} + +// IsClient indicates if this stats information is from client side. +func (s *OutTrailer) IsClient() bool { return s.Client } + +func (s *OutTrailer) isRPCStats() {} + +// End contains stats when an RPC ends. +type End struct { + // Client is true if this End is from client side. + Client bool + // BeginTime is the time when the RPC began. + BeginTime time.Time + // EndTime is the time when the RPC ends. + EndTime time.Time + // Trailer contains the trailer metadata received from the server. This + // field is only valid if this End is from the client side. + // Deprecated: use Trailer in InTrailer instead. + Trailer metadata.MD + // Error is the error the RPC ended with. It is an error generated from + // status.Status and can be converted back to status.Status using + // status.FromError if non-nil. + Error error +} + +// IsClient indicates if this is from client side. +func (s *End) IsClient() bool { return s.Client } + +func (s *End) isRPCStats() {} + +// ConnStats contains stats information about connections. +type ConnStats interface { + isConnStats() + // IsClient returns true if this ConnStats is from client side. + IsClient() bool +} + +// ConnBegin contains the stats of a connection when it is established. +type ConnBegin struct { + // Client is true if this ConnBegin is from client side. + Client bool +} + +// IsClient indicates if this is from client side. +func (s *ConnBegin) IsClient() bool { return s.Client } + +func (s *ConnBegin) isConnStats() {} + +// ConnEnd contains the stats of a connection when it ends. +type ConnEnd struct { + // Client is true if this ConnEnd is from client side. + Client bool +} + +// IsClient indicates if this is from client side. +func (s *ConnEnd) IsClient() bool { return s.Client } + +func (s *ConnEnd) isConnStats() {} + +type incomingTagsKey struct{} +type outgoingTagsKey struct{} + +// SetTags attaches stats tagging data to the context, which will be sent in +// the outgoing RPC with the header grpc-tags-bin. Subsequent calls to +// SetTags will overwrite the values from earlier calls. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func SetTags(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, outgoingTagsKey{}, b) +} + +// Tags returns the tags from the context for the inbound RPC. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func Tags(ctx context.Context) []byte { + b, _ := ctx.Value(incomingTagsKey{}).([]byte) + return b +} + +// SetIncomingTags attaches stats tagging data to the context, to be read by +// the application (not sent in outgoing RPCs). +// +// This is intended for gRPC-internal use ONLY. +func SetIncomingTags(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, incomingTagsKey{}, b) +} + +// OutgoingTags returns the tags from the context for the outbound RPC. +// +// This is intended for gRPC-internal use ONLY. +func OutgoingTags(ctx context.Context) []byte { + b, _ := ctx.Value(outgoingTagsKey{}).([]byte) + return b +} + +type incomingTraceKey struct{} +type outgoingTraceKey struct{} + +// SetTrace attaches stats tagging data to the context, which will be sent in +// the outgoing RPC with the header grpc-trace-bin. Subsequent calls to +// SetTrace will overwrite the values from earlier calls. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func SetTrace(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, outgoingTraceKey{}, b) +} + +// Trace returns the trace from the context for the inbound RPC. +// +// NOTE: this is provided only for backward compatibility with existing clients +// and will likely be removed in an upcoming release. New uses should transmit +// this type of data using metadata with a different, non-reserved (i.e. does +// not begin with "grpc-") header name. +func Trace(ctx context.Context) []byte { + b, _ := ctx.Value(incomingTraceKey{}).([]byte) + return b +} + +// SetIncomingTrace attaches stats tagging data to the context, to be read by +// the application (not sent in outgoing RPCs). It is intended for +// gRPC-internal use. +func SetIncomingTrace(ctx context.Context, b []byte) context.Context { + return context.WithValue(ctx, incomingTraceKey{}, b) +} + +// OutgoingTrace returns the trace from the context for the outbound RPC. It is +// intended for gRPC-internal use. +func OutgoingTrace(ctx context.Context) []byte { + b, _ := ctx.Value(outgoingTraceKey{}).([]byte) + return b +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/status/status.go b/ecs-agent/vendor/google.golang.org/grpc/status/status.go new file mode 100644 index 0000000000..623be39f26 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/status/status.go @@ -0,0 +1,135 @@ +/* + * + * Copyright 2017 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package status implements errors returned by gRPC. These errors are +// serialized and transmitted on the wire between server and client, and allow +// for additional data to be transmitted via the Details field in the status +// proto. gRPC service handlers should return an error created by this +// package, and gRPC clients should expect a corresponding error to be +// returned from the RPC call. +// +// This package upholds the invariants that a non-nil error may not +// contain an OK code, and an OK code must result in a nil error. +package status + +import ( + "context" + "errors" + "fmt" + + spb "google.golang.org/genproto/googleapis/rpc/status" + + "google.golang.org/grpc/codes" + "google.golang.org/grpc/internal/status" +) + +// Status references google.golang.org/grpc/internal/status. It represents an +// RPC status code, message, and details. It is immutable and should be +// created with New, Newf, or FromProto. +// https://godoc.org/google.golang.org/grpc/internal/status +type Status = status.Status + +// New returns a Status representing c and msg. +func New(c codes.Code, msg string) *Status { + return status.New(c, msg) +} + +// Newf returns New(c, fmt.Sprintf(format, a...)). +func Newf(c codes.Code, format string, a ...interface{}) *Status { + return New(c, fmt.Sprintf(format, a...)) +} + +// Error returns an error representing c and msg. If c is OK, returns nil. +func Error(c codes.Code, msg string) error { + return New(c, msg).Err() +} + +// Errorf returns Error(c, fmt.Sprintf(format, a...)). +func Errorf(c codes.Code, format string, a ...interface{}) error { + return Error(c, fmt.Sprintf(format, a...)) +} + +// ErrorProto returns an error representing s. If s.Code is OK, returns nil. +func ErrorProto(s *spb.Status) error { + return FromProto(s).Err() +} + +// FromProto returns a Status representing s. +func FromProto(s *spb.Status) *Status { + return status.FromProto(s) +} + +// FromError returns a Status representation of err. +// +// - If err was produced by this package or implements the method `GRPCStatus() +// *Status`, the appropriate Status is returned. +// +// - If err is nil, a Status is returned with codes.OK and no message. +// +// - Otherwise, err is an error not compatible with this package. In this +// case, a Status is returned with codes.Unknown and err's Error() message, +// and ok is false. +func FromError(err error) (s *Status, ok bool) { + if err == nil { + return nil, true + } + if se, ok := err.(interface { + GRPCStatus() *Status + }); ok { + return se.GRPCStatus(), true + } + return New(codes.Unknown, err.Error()), false +} + +// Convert is a convenience function which removes the need to handle the +// boolean return value from FromError. +func Convert(err error) *Status { + s, _ := FromError(err) + return s +} + +// Code returns the Code of the error if it is a Status error, codes.OK if err +// is nil, or codes.Unknown otherwise. +func Code(err error) codes.Code { + // Don't use FromError to avoid allocation of OK status. + if err == nil { + return codes.OK + } + if se, ok := err.(interface { + GRPCStatus() *Status + }); ok { + return se.GRPCStatus().Code() + } + return codes.Unknown +} + +// FromContextError converts a context error or wrapped context error into a +// Status. It returns a Status with codes.OK if err is nil, or a Status with +// codes.Unknown if err is non-nil and not a context error. +func FromContextError(err error) *Status { + if err == nil { + return nil + } + if errors.Is(err, context.DeadlineExceeded) { + return New(codes.DeadlineExceeded, err.Error()) + } + if errors.Is(err, context.Canceled) { + return New(codes.Canceled, err.Error()) + } + return New(codes.Unknown, err.Error()) +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/stream.go b/ecs-agent/vendor/google.golang.org/grpc/stream.go new file mode 100644 index 0000000000..0f8e6c0149 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/stream.go @@ -0,0 +1,1718 @@ +/* + * + * Copyright 2014 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "context" + "errors" + "io" + "math" + "strconv" + "sync" + "time" + + "golang.org/x/net/trace" + "google.golang.org/grpc/balancer" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/encoding" + "google.golang.org/grpc/internal/balancerload" + "google.golang.org/grpc/internal/binarylog" + "google.golang.org/grpc/internal/channelz" + "google.golang.org/grpc/internal/grpcrand" + "google.golang.org/grpc/internal/grpcutil" + imetadata "google.golang.org/grpc/internal/metadata" + iresolver "google.golang.org/grpc/internal/resolver" + "google.golang.org/grpc/internal/serviceconfig" + istatus "google.golang.org/grpc/internal/status" + "google.golang.org/grpc/internal/transport" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/peer" + "google.golang.org/grpc/stats" + "google.golang.org/grpc/status" +) + +// StreamHandler defines the handler called by gRPC server to complete the +// execution of a streaming RPC. +// +// If a StreamHandler returns an error, it should either be produced by the +// status package, or be one of the context errors. Otherwise, gRPC will use +// codes.Unknown as the status code and err.Error() as the status message of the +// RPC. +type StreamHandler func(srv interface{}, stream ServerStream) error + +// StreamDesc represents a streaming RPC service's method specification. Used +// on the server when registering services and on the client when initiating +// new streams. +type StreamDesc struct { + // StreamName and Handler are only used when registering handlers on a + // server. + StreamName string // the name of the method excluding the service + Handler StreamHandler // the handler called for the method + + // ServerStreams and ClientStreams are used for registering handlers on a + // server as well as defining RPC behavior when passed to NewClientStream + // and ClientConn.NewStream. At least one must be true. + ServerStreams bool // indicates the server can perform streaming sends + ClientStreams bool // indicates the client can perform streaming sends +} + +// Stream defines the common interface a client or server stream has to satisfy. +// +// Deprecated: See ClientStream and ServerStream documentation instead. +type Stream interface { + // Deprecated: See ClientStream and ServerStream documentation instead. + Context() context.Context + // Deprecated: See ClientStream and ServerStream documentation instead. + SendMsg(m interface{}) error + // Deprecated: See ClientStream and ServerStream documentation instead. + RecvMsg(m interface{}) error +} + +// ClientStream defines the client-side behavior of a streaming RPC. +// +// All errors returned from ClientStream methods are compatible with the +// status package. +type ClientStream interface { + // Header returns the header metadata received from the server if there + // is any. It blocks if the metadata is not ready to read. + Header() (metadata.MD, error) + // Trailer returns the trailer metadata from the server, if there is any. + // It must only be called after stream.CloseAndRecv has returned, or + // stream.Recv has returned a non-nil error (including io.EOF). + Trailer() metadata.MD + // CloseSend closes the send direction of the stream. It closes the stream + // when non-nil error is met. It is also not safe to call CloseSend + // concurrently with SendMsg. + CloseSend() error + // Context returns the context for this stream. + // + // It should not be called until after Header or RecvMsg has returned. Once + // called, subsequent client-side retries are disabled. + Context() context.Context + // SendMsg is generally called by generated code. On error, SendMsg aborts + // the stream. If the error was generated by the client, the status is + // returned directly; otherwise, io.EOF is returned and the status of + // the stream may be discovered using RecvMsg. + // + // SendMsg blocks until: + // - There is sufficient flow control to schedule m with the transport, or + // - The stream is done, or + // - The stream breaks. + // + // SendMsg does not wait until the message is received by the server. An + // untimely stream closure may result in lost messages. To ensure delivery, + // users should ensure the RPC completed successfully using RecvMsg. + // + // It is safe to have a goroutine calling SendMsg and another goroutine + // calling RecvMsg on the same stream at the same time, but it is not safe + // to call SendMsg on the same stream in different goroutines. It is also + // not safe to call CloseSend concurrently with SendMsg. + SendMsg(m interface{}) error + // RecvMsg blocks until it receives a message into m or the stream is + // done. It returns io.EOF when the stream completes successfully. On + // any other error, the stream is aborted and the error contains the RPC + // status. + // + // It is safe to have a goroutine calling SendMsg and another goroutine + // calling RecvMsg on the same stream at the same time, but it is not + // safe to call RecvMsg on the same stream in different goroutines. + RecvMsg(m interface{}) error +} + +// NewStream creates a new Stream for the client side. This is typically +// called by generated code. ctx is used for the lifetime of the stream. +// +// To ensure resources are not leaked due to the stream returned, one of the following +// actions must be performed: +// +// 1. Call Close on the ClientConn. +// 2. Cancel the context provided. +// 3. Call RecvMsg until a non-nil error is returned. A protobuf-generated +// client-streaming RPC, for instance, might use the helper function +// CloseAndRecv (note that CloseSend does not Recv, therefore is not +// guaranteed to release all resources). +// 4. Receive a non-nil, non-io.EOF error from Header or SendMsg. +// +// If none of the above happen, a goroutine and a context will be leaked, and grpc +// will not call the optionally-configured stats handler with a stats.End message. +func (cc *ClientConn) NewStream(ctx context.Context, desc *StreamDesc, method string, opts ...CallOption) (ClientStream, error) { + // allow interceptor to see all applicable call options, which means those + // configured as defaults from dial option as well as per-call options + opts = combine(cc.dopts.callOptions, opts) + + if cc.dopts.streamInt != nil { + return cc.dopts.streamInt(ctx, desc, cc, method, newClientStream, opts...) + } + return newClientStream(ctx, desc, cc, method, opts...) +} + +// NewClientStream is a wrapper for ClientConn.NewStream. +func NewClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (ClientStream, error) { + return cc.NewStream(ctx, desc, method, opts...) +} + +func newClientStream(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, opts ...CallOption) (_ ClientStream, err error) { + if md, _, ok := metadata.FromOutgoingContextRaw(ctx); ok { + if err := imetadata.Validate(md); err != nil { + return nil, status.Error(codes.Internal, err.Error()) + } + } + if channelz.IsOn() { + cc.incrCallsStarted() + defer func() { + if err != nil { + cc.incrCallsFailed() + } + }() + } + // Provide an opportunity for the first RPC to see the first service config + // provided by the resolver. + if err := cc.waitForResolvedAddrs(ctx); err != nil { + return nil, err + } + + var mc serviceconfig.MethodConfig + var onCommit func() + var newStream = func(ctx context.Context, done func()) (iresolver.ClientStream, error) { + return newClientStreamWithParams(ctx, desc, cc, method, mc, onCommit, done, opts...) + } + + rpcInfo := iresolver.RPCInfo{Context: ctx, Method: method} + rpcConfig, err := cc.safeConfigSelector.SelectConfig(rpcInfo) + if err != nil { + if st, ok := status.FromError(err); ok { + // Restrict the code to the list allowed by gRFC A54. + if istatus.IsRestrictedControlPlaneCode(st) { + err = status.Errorf(codes.Internal, "config selector returned illegal status: %v", err) + } + return nil, err + } + return nil, toRPCErr(err) + } + + if rpcConfig != nil { + if rpcConfig.Context != nil { + ctx = rpcConfig.Context + } + mc = rpcConfig.MethodConfig + onCommit = rpcConfig.OnCommitted + if rpcConfig.Interceptor != nil { + rpcInfo.Context = nil + ns := newStream + newStream = func(ctx context.Context, done func()) (iresolver.ClientStream, error) { + cs, err := rpcConfig.Interceptor.NewStream(ctx, rpcInfo, done, ns) + if err != nil { + return nil, toRPCErr(err) + } + return cs, nil + } + } + } + + return newStream(ctx, func() {}) +} + +func newClientStreamWithParams(ctx context.Context, desc *StreamDesc, cc *ClientConn, method string, mc serviceconfig.MethodConfig, onCommit, doneFunc func(), opts ...CallOption) (_ iresolver.ClientStream, err error) { + c := defaultCallInfo() + if mc.WaitForReady != nil { + c.failFast = !*mc.WaitForReady + } + + // Possible context leak: + // The cancel function for the child context we create will only be called + // when RecvMsg returns a non-nil error, if the ClientConn is closed, or if + // an error is generated by SendMsg. + // https://github.com/grpc/grpc-go/issues/1818. + var cancel context.CancelFunc + if mc.Timeout != nil && *mc.Timeout >= 0 { + ctx, cancel = context.WithTimeout(ctx, *mc.Timeout) + } else { + ctx, cancel = context.WithCancel(ctx) + } + defer func() { + if err != nil { + cancel() + } + }() + + for _, o := range opts { + if err := o.before(c); err != nil { + return nil, toRPCErr(err) + } + } + c.maxSendMessageSize = getMaxSize(mc.MaxReqSize, c.maxSendMessageSize, defaultClientMaxSendMessageSize) + c.maxReceiveMessageSize = getMaxSize(mc.MaxRespSize, c.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize) + if err := setCallInfoCodec(c); err != nil { + return nil, err + } + + callHdr := &transport.CallHdr{ + Host: cc.authority, + Method: method, + ContentSubtype: c.contentSubtype, + DoneFunc: doneFunc, + } + + // Set our outgoing compression according to the UseCompressor CallOption, if + // set. In that case, also find the compressor from the encoding package. + // Otherwise, use the compressor configured by the WithCompressor DialOption, + // if set. + var cp Compressor + var comp encoding.Compressor + if ct := c.compressorType; ct != "" { + callHdr.SendCompress = ct + if ct != encoding.Identity { + comp = encoding.GetCompressor(ct) + if comp == nil { + return nil, status.Errorf(codes.Internal, "grpc: Compressor is not installed for requested grpc-encoding %q", ct) + } + } + } else if cc.dopts.cp != nil { + callHdr.SendCompress = cc.dopts.cp.Type() + cp = cc.dopts.cp + } + if c.creds != nil { + callHdr.Creds = c.creds + } + + cs := &clientStream{ + callHdr: callHdr, + ctx: ctx, + methodConfig: &mc, + opts: opts, + callInfo: c, + cc: cc, + desc: desc, + codec: c.codec, + cp: cp, + comp: comp, + cancel: cancel, + firstAttempt: true, + onCommit: onCommit, + } + if !cc.dopts.disableRetry { + cs.retryThrottler = cc.retryThrottler.Load().(*retryThrottler) + } + if ml := binarylog.GetMethodLogger(method); ml != nil { + cs.binlogs = append(cs.binlogs, ml) + } + if cc.dopts.binaryLogger != nil { + if ml := cc.dopts.binaryLogger.GetMethodLogger(method); ml != nil { + cs.binlogs = append(cs.binlogs, ml) + } + } + + // Pick the transport to use and create a new stream on the transport. + // Assign cs.attempt upon success. + op := func(a *csAttempt) error { + if err := a.getTransport(); err != nil { + return err + } + if err := a.newStream(); err != nil { + return err + } + // Because this operation is always called either here (while creating + // the clientStream) or by the retry code while locked when replaying + // the operation, it is safe to access cs.attempt directly. + cs.attempt = a + return nil + } + if err := cs.withRetry(op, func() { cs.bufferForRetryLocked(0, op) }); err != nil { + return nil, err + } + + if len(cs.binlogs) != 0 { + md, _ := metadata.FromOutgoingContext(ctx) + logEntry := &binarylog.ClientHeader{ + OnClientSide: true, + Header: md, + MethodName: method, + Authority: cs.cc.authority, + } + if deadline, ok := ctx.Deadline(); ok { + logEntry.Timeout = time.Until(deadline) + if logEntry.Timeout < 0 { + logEntry.Timeout = 0 + } + } + for _, binlog := range cs.binlogs { + binlog.Log(logEntry) + } + } + + if desc != unaryStreamDesc { + // Listen on cc and stream contexts to cleanup when the user closes the + // ClientConn or cancels the stream context. In all other cases, an error + // should already be injected into the recv buffer by the transport, which + // the client will eventually receive, and then we will cancel the stream's + // context in clientStream.finish. + go func() { + select { + case <-cc.ctx.Done(): + cs.finish(ErrClientConnClosing) + case <-ctx.Done(): + cs.finish(toRPCErr(ctx.Err())) + } + }() + } + return cs, nil +} + +// newAttemptLocked creates a new csAttempt without a transport or stream. +func (cs *clientStream) newAttemptLocked(isTransparent bool) (*csAttempt, error) { + if err := cs.ctx.Err(); err != nil { + return nil, toRPCErr(err) + } + if err := cs.cc.ctx.Err(); err != nil { + return nil, ErrClientConnClosing + } + + ctx := newContextWithRPCInfo(cs.ctx, cs.callInfo.failFast, cs.callInfo.codec, cs.cp, cs.comp) + method := cs.callHdr.Method + var beginTime time.Time + shs := cs.cc.dopts.copts.StatsHandlers + for _, sh := range shs { + ctx = sh.TagRPC(ctx, &stats.RPCTagInfo{FullMethodName: method, FailFast: cs.callInfo.failFast}) + beginTime = time.Now() + begin := &stats.Begin{ + Client: true, + BeginTime: beginTime, + FailFast: cs.callInfo.failFast, + IsClientStream: cs.desc.ClientStreams, + IsServerStream: cs.desc.ServerStreams, + IsTransparentRetryAttempt: isTransparent, + } + sh.HandleRPC(ctx, begin) + } + + var trInfo *traceInfo + if EnableTracing { + trInfo = &traceInfo{ + tr: trace.New("grpc.Sent."+methodFamily(method), method), + firstLine: firstLine{ + client: true, + }, + } + if deadline, ok := ctx.Deadline(); ok { + trInfo.firstLine.deadline = time.Until(deadline) + } + trInfo.tr.LazyLog(&trInfo.firstLine, false) + ctx = trace.NewContext(ctx, trInfo.tr) + } + + if cs.cc.parsedTarget.URL.Scheme == "xds" { + // Add extra metadata (metadata that will be added by transport) to context + // so the balancer can see them. + ctx = grpcutil.WithExtraMetadata(ctx, metadata.Pairs( + "content-type", grpcutil.ContentType(cs.callHdr.ContentSubtype), + )) + } + + return &csAttempt{ + ctx: ctx, + beginTime: beginTime, + cs: cs, + dc: cs.cc.dopts.dc, + statsHandlers: shs, + trInfo: trInfo, + }, nil +} + +func (a *csAttempt) getTransport() error { + cs := a.cs + + var err error + a.t, a.done, err = cs.cc.getTransport(a.ctx, cs.callInfo.failFast, cs.callHdr.Method) + if err != nil { + if de, ok := err.(dropError); ok { + err = de.error + a.drop = true + } + return err + } + if a.trInfo != nil { + a.trInfo.firstLine.SetRemoteAddr(a.t.RemoteAddr()) + } + return nil +} + +func (a *csAttempt) newStream() error { + cs := a.cs + cs.callHdr.PreviousAttempts = cs.numRetries + s, err := a.t.NewStream(a.ctx, cs.callHdr) + if err != nil { + nse, ok := err.(*transport.NewStreamError) + if !ok { + // Unexpected. + return err + } + + if nse.AllowTransparentRetry { + a.allowTransparentRetry = true + } + + // Unwrap and convert error. + return toRPCErr(nse.Err) + } + a.s = s + a.p = &parser{r: s} + return nil +} + +// clientStream implements a client side Stream. +type clientStream struct { + callHdr *transport.CallHdr + opts []CallOption + callInfo *callInfo + cc *ClientConn + desc *StreamDesc + + codec baseCodec + cp Compressor + comp encoding.Compressor + + cancel context.CancelFunc // cancels all attempts + + sentLast bool // sent an end stream + + methodConfig *MethodConfig + + ctx context.Context // the application's context, wrapped by stats/tracing + + retryThrottler *retryThrottler // The throttler active when the RPC began. + + binlogs []binarylog.MethodLogger + // serverHeaderBinlogged is a boolean for whether server header has been + // logged. Server header will be logged when the first time one of those + // happens: stream.Header(), stream.Recv(). + // + // It's only read and used by Recv() and Header(), so it doesn't need to be + // synchronized. + serverHeaderBinlogged bool + + mu sync.Mutex + firstAttempt bool // if true, transparent retry is valid + numRetries int // exclusive of transparent retry attempt(s) + numRetriesSincePushback int // retries since pushback; to reset backoff + finished bool // TODO: replace with atomic cmpxchg or sync.Once? + // attempt is the active client stream attempt. + // The only place where it is written is the newAttemptLocked method and this method never writes nil. + // So, attempt can be nil only inside newClientStream function when clientStream is first created. + // One of the first things done after clientStream's creation, is to call newAttemptLocked which either + // assigns a non nil value to the attempt or returns an error. If an error is returned from newAttemptLocked, + // then newClientStream calls finish on the clientStream and returns. So, finish method is the only + // place where we need to check if the attempt is nil. + attempt *csAttempt + // TODO(hedging): hedging will have multiple attempts simultaneously. + committed bool // active attempt committed for retry? + onCommit func() + buffer []func(a *csAttempt) error // operations to replay on retry + bufferSize int // current size of buffer +} + +// csAttempt implements a single transport stream attempt within a +// clientStream. +type csAttempt struct { + ctx context.Context + cs *clientStream + t transport.ClientTransport + s *transport.Stream + p *parser + done func(balancer.DoneInfo) + + finished bool + dc Decompressor + decomp encoding.Compressor + decompSet bool + + mu sync.Mutex // guards trInfo.tr + // trInfo may be nil (if EnableTracing is false). + // trInfo.tr is set when created (if EnableTracing is true), + // and cleared when the finish method is called. + trInfo *traceInfo + + statsHandlers []stats.Handler + beginTime time.Time + + // set for newStream errors that may be transparently retried + allowTransparentRetry bool + // set for pick errors that are returned as a status + drop bool +} + +func (cs *clientStream) commitAttemptLocked() { + if !cs.committed && cs.onCommit != nil { + cs.onCommit() + } + cs.committed = true + cs.buffer = nil +} + +func (cs *clientStream) commitAttempt() { + cs.mu.Lock() + cs.commitAttemptLocked() + cs.mu.Unlock() +} + +// shouldRetry returns nil if the RPC should be retried; otherwise it returns +// the error that should be returned by the operation. If the RPC should be +// retried, the bool indicates whether it is being retried transparently. +func (a *csAttempt) shouldRetry(err error) (bool, error) { + cs := a.cs + + if cs.finished || cs.committed || a.drop { + // RPC is finished or committed or was dropped by the picker; cannot retry. + return false, err + } + if a.s == nil && a.allowTransparentRetry { + return true, nil + } + // Wait for the trailers. + unprocessed := false + if a.s != nil { + <-a.s.Done() + unprocessed = a.s.Unprocessed() + } + if cs.firstAttempt && unprocessed { + // First attempt, stream unprocessed: transparently retry. + return true, nil + } + if cs.cc.dopts.disableRetry { + return false, err + } + + pushback := 0 + hasPushback := false + if a.s != nil { + if !a.s.TrailersOnly() { + return false, err + } + + // TODO(retry): Move down if the spec changes to not check server pushback + // before considering this a failure for throttling. + sps := a.s.Trailer()["grpc-retry-pushback-ms"] + if len(sps) == 1 { + var e error + if pushback, e = strconv.Atoi(sps[0]); e != nil || pushback < 0 { + channelz.Infof(logger, cs.cc.channelzID, "Server retry pushback specified to abort (%q).", sps[0]) + cs.retryThrottler.throttle() // This counts as a failure for throttling. + return false, err + } + hasPushback = true + } else if len(sps) > 1 { + channelz.Warningf(logger, cs.cc.channelzID, "Server retry pushback specified multiple values (%q); not retrying.", sps) + cs.retryThrottler.throttle() // This counts as a failure for throttling. + return false, err + } + } + + var code codes.Code + if a.s != nil { + code = a.s.Status().Code() + } else { + code = status.Code(err) + } + + rp := cs.methodConfig.RetryPolicy + if rp == nil || !rp.RetryableStatusCodes[code] { + return false, err + } + + // Note: the ordering here is important; we count this as a failure + // only if the code matched a retryable code. + if cs.retryThrottler.throttle() { + return false, err + } + if cs.numRetries+1 >= rp.MaxAttempts { + return false, err + } + + var dur time.Duration + if hasPushback { + dur = time.Millisecond * time.Duration(pushback) + cs.numRetriesSincePushback = 0 + } else { + fact := math.Pow(rp.BackoffMultiplier, float64(cs.numRetriesSincePushback)) + cur := float64(rp.InitialBackoff) * fact + if max := float64(rp.MaxBackoff); cur > max { + cur = max + } + dur = time.Duration(grpcrand.Int63n(int64(cur))) + cs.numRetriesSincePushback++ + } + + // TODO(dfawley): we could eagerly fail here if dur puts us past the + // deadline, but unsure if it is worth doing. + t := time.NewTimer(dur) + select { + case <-t.C: + cs.numRetries++ + return false, nil + case <-cs.ctx.Done(): + t.Stop() + return false, status.FromContextError(cs.ctx.Err()).Err() + } +} + +// Returns nil if a retry was performed and succeeded; error otherwise. +func (cs *clientStream) retryLocked(attempt *csAttempt, lastErr error) error { + for { + attempt.finish(toRPCErr(lastErr)) + isTransparent, err := attempt.shouldRetry(lastErr) + if err != nil { + cs.commitAttemptLocked() + return err + } + cs.firstAttempt = false + attempt, err = cs.newAttemptLocked(isTransparent) + if err != nil { + // Only returns error if the clientconn is closed or the context of + // the stream is canceled. + return err + } + // Note that the first op in the replay buffer always sets cs.attempt + // if it is able to pick a transport and create a stream. + if lastErr = cs.replayBufferLocked(attempt); lastErr == nil { + return nil + } + } +} + +func (cs *clientStream) Context() context.Context { + cs.commitAttempt() + // No need to lock before using attempt, since we know it is committed and + // cannot change. + if cs.attempt.s != nil { + return cs.attempt.s.Context() + } + return cs.ctx +} + +func (cs *clientStream) withRetry(op func(a *csAttempt) error, onSuccess func()) error { + cs.mu.Lock() + for { + if cs.committed { + cs.mu.Unlock() + // toRPCErr is used in case the error from the attempt comes from + // NewClientStream, which intentionally doesn't return a status + // error to allow for further inspection; all other errors should + // already be status errors. + return toRPCErr(op(cs.attempt)) + } + if len(cs.buffer) == 0 { + // For the first op, which controls creation of the stream and + // assigns cs.attempt, we need to create a new attempt inline + // before executing the first op. On subsequent ops, the attempt + // is created immediately before replaying the ops. + var err error + if cs.attempt, err = cs.newAttemptLocked(false /* isTransparent */); err != nil { + cs.mu.Unlock() + cs.finish(err) + return err + } + } + a := cs.attempt + cs.mu.Unlock() + err := op(a) + cs.mu.Lock() + if a != cs.attempt { + // We started another attempt already. + continue + } + if err == io.EOF { + <-a.s.Done() + } + if err == nil || (err == io.EOF && a.s.Status().Code() == codes.OK) { + onSuccess() + cs.mu.Unlock() + return err + } + if err := cs.retryLocked(a, err); err != nil { + cs.mu.Unlock() + return err + } + } +} + +func (cs *clientStream) Header() (metadata.MD, error) { + var m metadata.MD + noHeader := false + err := cs.withRetry(func(a *csAttempt) error { + var err error + m, err = a.s.Header() + if err == transport.ErrNoHeaders { + noHeader = true + return nil + } + return toRPCErr(err) + }, cs.commitAttemptLocked) + + if err != nil { + cs.finish(err) + return nil, err + } + + if len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged && !noHeader { + // Only log if binary log is on and header has not been logged, and + // there is actually headers to log. + logEntry := &binarylog.ServerHeader{ + OnClientSide: true, + Header: m, + PeerAddr: nil, + } + if peer, ok := peer.FromContext(cs.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + cs.serverHeaderBinlogged = true + for _, binlog := range cs.binlogs { + binlog.Log(logEntry) + } + } + return m, nil +} + +func (cs *clientStream) Trailer() metadata.MD { + // On RPC failure, we never need to retry, because usage requires that + // RecvMsg() returned a non-nil error before calling this function is valid. + // We would have retried earlier if necessary. + // + // Commit the attempt anyway, just in case users are not following those + // directions -- it will prevent races and should not meaningfully impact + // performance. + cs.commitAttempt() + if cs.attempt.s == nil { + return nil + } + return cs.attempt.s.Trailer() +} + +func (cs *clientStream) replayBufferLocked(attempt *csAttempt) error { + for _, f := range cs.buffer { + if err := f(attempt); err != nil { + return err + } + } + return nil +} + +func (cs *clientStream) bufferForRetryLocked(sz int, op func(a *csAttempt) error) { + // Note: we still will buffer if retry is disabled (for transparent retries). + if cs.committed { + return + } + cs.bufferSize += sz + if cs.bufferSize > cs.callInfo.maxRetryRPCBufferSize { + cs.commitAttemptLocked() + return + } + cs.buffer = append(cs.buffer, op) +} + +func (cs *clientStream) SendMsg(m interface{}) (err error) { + defer func() { + if err != nil && err != io.EOF { + // Call finish on the client stream for errors generated by this SendMsg + // call, as these indicate problems created by this client. (Transport + // errors are converted to an io.EOF error in csAttempt.sendMsg; the real + // error will be returned from RecvMsg eventually in that case, or be + // retried.) + cs.finish(err) + } + }() + if cs.sentLast { + return status.Errorf(codes.Internal, "SendMsg called after CloseSend") + } + if !cs.desc.ClientStreams { + cs.sentLast = true + } + + // load hdr, payload, data + hdr, payload, data, err := prepareMsg(m, cs.codec, cs.cp, cs.comp) + if err != nil { + return err + } + + // TODO(dfawley): should we be checking len(data) instead? + if len(payload) > *cs.callInfo.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), *cs.callInfo.maxSendMessageSize) + } + op := func(a *csAttempt) error { + return a.sendMsg(m, hdr, payload, data) + } + err = cs.withRetry(op, func() { cs.bufferForRetryLocked(len(hdr)+len(payload), op) }) + if len(cs.binlogs) != 0 && err == nil { + cm := &binarylog.ClientMessage{ + OnClientSide: true, + Message: data, + } + for _, binlog := range cs.binlogs { + binlog.Log(cm) + } + } + return err +} + +func (cs *clientStream) RecvMsg(m interface{}) error { + if len(cs.binlogs) != 0 && !cs.serverHeaderBinlogged { + // Call Header() to binary log header if it's not already logged. + cs.Header() + } + var recvInfo *payloadInfo + if len(cs.binlogs) != 0 { + recvInfo = &payloadInfo{} + } + err := cs.withRetry(func(a *csAttempt) error { + return a.recvMsg(m, recvInfo) + }, cs.commitAttemptLocked) + if len(cs.binlogs) != 0 && err == nil { + sm := &binarylog.ServerMessage{ + OnClientSide: true, + Message: recvInfo.uncompressedBytes, + } + for _, binlog := range cs.binlogs { + binlog.Log(sm) + } + } + if err != nil || !cs.desc.ServerStreams { + // err != nil or non-server-streaming indicates end of stream. + cs.finish(err) + + if len(cs.binlogs) != 0 { + // finish will not log Trailer. Log Trailer here. + logEntry := &binarylog.ServerTrailer{ + OnClientSide: true, + Trailer: cs.Trailer(), + Err: err, + } + if logEntry.Err == io.EOF { + logEntry.Err = nil + } + if peer, ok := peer.FromContext(cs.Context()); ok { + logEntry.PeerAddr = peer.Addr + } + for _, binlog := range cs.binlogs { + binlog.Log(logEntry) + } + } + } + return err +} + +func (cs *clientStream) CloseSend() error { + if cs.sentLast { + // TODO: return an error and finish the stream instead, due to API misuse? + return nil + } + cs.sentLast = true + op := func(a *csAttempt) error { + a.t.Write(a.s, nil, nil, &transport.Options{Last: true}) + // Always return nil; io.EOF is the only error that might make sense + // instead, but there is no need to signal the client to call RecvMsg + // as the only use left for the stream after CloseSend is to call + // RecvMsg. This also matches historical behavior. + return nil + } + cs.withRetry(op, func() { cs.bufferForRetryLocked(0, op) }) + if len(cs.binlogs) != 0 { + chc := &binarylog.ClientHalfClose{ + OnClientSide: true, + } + for _, binlog := range cs.binlogs { + binlog.Log(chc) + } + } + // We never returned an error here for reasons. + return nil +} + +func (cs *clientStream) finish(err error) { + if err == io.EOF { + // Ending a stream with EOF indicates a success. + err = nil + } + cs.mu.Lock() + if cs.finished { + cs.mu.Unlock() + return + } + cs.finished = true + cs.commitAttemptLocked() + if cs.attempt != nil { + cs.attempt.finish(err) + // after functions all rely upon having a stream. + if cs.attempt.s != nil { + for _, o := range cs.opts { + o.after(cs.callInfo, cs.attempt) + } + } + } + cs.mu.Unlock() + // For binary logging. only log cancel in finish (could be caused by RPC ctx + // canceled or ClientConn closed). Trailer will be logged in RecvMsg. + // + // Only one of cancel or trailer needs to be logged. In the cases where + // users don't call RecvMsg, users must have already canceled the RPC. + if len(cs.binlogs) != 0 && status.Code(err) == codes.Canceled { + c := &binarylog.Cancel{ + OnClientSide: true, + } + for _, binlog := range cs.binlogs { + binlog.Log(c) + } + } + if err == nil { + cs.retryThrottler.successfulRPC() + } + if channelz.IsOn() { + if err != nil { + cs.cc.incrCallsFailed() + } else { + cs.cc.incrCallsSucceeded() + } + } + cs.cancel() +} + +func (a *csAttempt) sendMsg(m interface{}, hdr, payld, data []byte) error { + cs := a.cs + if a.trInfo != nil { + a.mu.Lock() + if a.trInfo.tr != nil { + a.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true) + } + a.mu.Unlock() + } + if err := a.t.Write(a.s, hdr, payld, &transport.Options{Last: !cs.desc.ClientStreams}); err != nil { + if !cs.desc.ClientStreams { + // For non-client-streaming RPCs, we return nil instead of EOF on error + // because the generated code requires it. finish is not called; RecvMsg() + // will call it with the stream's status independently. + return nil + } + return io.EOF + } + for _, sh := range a.statsHandlers { + sh.HandleRPC(a.ctx, outPayload(true, m, data, payld, time.Now())) + } + if channelz.IsOn() { + a.t.IncrMsgSent() + } + return nil +} + +func (a *csAttempt) recvMsg(m interface{}, payInfo *payloadInfo) (err error) { + cs := a.cs + if len(a.statsHandlers) != 0 && payInfo == nil { + payInfo = &payloadInfo{} + } + + if !a.decompSet { + // Block until we receive headers containing received message encoding. + if ct := a.s.RecvCompress(); ct != "" && ct != encoding.Identity { + if a.dc == nil || a.dc.Type() != ct { + // No configured decompressor, or it does not match the incoming + // message encoding; attempt to find a registered compressor that does. + a.dc = nil + a.decomp = encoding.GetCompressor(ct) + } + } else { + // No compression is used; disable our decompressor. + a.dc = nil + } + // Only initialize this state once per stream. + a.decompSet = true + } + err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, payInfo, a.decomp) + if err != nil { + if err == io.EOF { + if statusErr := a.s.Status().Err(); statusErr != nil { + return statusErr + } + return io.EOF // indicates successful end of stream. + } + + return toRPCErr(err) + } + if a.trInfo != nil { + a.mu.Lock() + if a.trInfo.tr != nil { + a.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true) + } + a.mu.Unlock() + } + for _, sh := range a.statsHandlers { + sh.HandleRPC(a.ctx, &stats.InPayload{ + Client: true, + RecvTime: time.Now(), + Payload: m, + // TODO truncate large payload. + Data: payInfo.uncompressedBytes, + WireLength: payInfo.wireLength + headerLen, + Length: len(payInfo.uncompressedBytes), + }) + } + if channelz.IsOn() { + a.t.IncrMsgRecv() + } + if cs.desc.ServerStreams { + // Subsequent messages should be received by subsequent RecvMsg calls. + return nil + } + // Special handling for non-server-stream rpcs. + // This recv expects EOF or errors, so we don't collect inPayload. + err = recv(a.p, cs.codec, a.s, a.dc, m, *cs.callInfo.maxReceiveMessageSize, nil, a.decomp) + if err == nil { + return toRPCErr(errors.New("grpc: client streaming protocol violation: get , want ")) + } + if err == io.EOF { + return a.s.Status().Err() // non-server streaming Recv returns nil on success + } + return toRPCErr(err) +} + +func (a *csAttempt) finish(err error) { + a.mu.Lock() + if a.finished { + a.mu.Unlock() + return + } + a.finished = true + if err == io.EOF { + // Ending a stream with EOF indicates a success. + err = nil + } + var tr metadata.MD + if a.s != nil { + a.t.CloseStream(a.s, err) + tr = a.s.Trailer() + } + + if a.done != nil { + br := false + if a.s != nil { + br = a.s.BytesReceived() + } + a.done(balancer.DoneInfo{ + Err: err, + Trailer: tr, + BytesSent: a.s != nil, + BytesReceived: br, + ServerLoad: balancerload.Parse(tr), + }) + } + for _, sh := range a.statsHandlers { + end := &stats.End{ + Client: true, + BeginTime: a.beginTime, + EndTime: time.Now(), + Trailer: tr, + Error: err, + } + sh.HandleRPC(a.ctx, end) + } + if a.trInfo != nil && a.trInfo.tr != nil { + if err == nil { + a.trInfo.tr.LazyPrintf("RPC: [OK]") + } else { + a.trInfo.tr.LazyPrintf("RPC: [%v]", err) + a.trInfo.tr.SetError() + } + a.trInfo.tr.Finish() + a.trInfo.tr = nil + } + a.mu.Unlock() +} + +// newClientStream creates a ClientStream with the specified transport, on the +// given addrConn. +// +// It's expected that the given transport is either the same one in addrConn, or +// is already closed. To avoid race, transport is specified separately, instead +// of using ac.transpot. +// +// Main difference between this and ClientConn.NewStream: +// - no retry +// - no service config (or wait for service config) +// - no tracing or stats +func newNonRetryClientStream(ctx context.Context, desc *StreamDesc, method string, t transport.ClientTransport, ac *addrConn, opts ...CallOption) (_ ClientStream, err error) { + if t == nil { + // TODO: return RPC error here? + return nil, errors.New("transport provided is nil") + } + // defaultCallInfo contains unnecessary info(i.e. failfast, maxRetryRPCBufferSize), so we just initialize an empty struct. + c := &callInfo{} + + // Possible context leak: + // The cancel function for the child context we create will only be called + // when RecvMsg returns a non-nil error, if the ClientConn is closed, or if + // an error is generated by SendMsg. + // https://github.com/grpc/grpc-go/issues/1818. + ctx, cancel := context.WithCancel(ctx) + defer func() { + if err != nil { + cancel() + } + }() + + for _, o := range opts { + if err := o.before(c); err != nil { + return nil, toRPCErr(err) + } + } + c.maxReceiveMessageSize = getMaxSize(nil, c.maxReceiveMessageSize, defaultClientMaxReceiveMessageSize) + c.maxSendMessageSize = getMaxSize(nil, c.maxSendMessageSize, defaultServerMaxSendMessageSize) + if err := setCallInfoCodec(c); err != nil { + return nil, err + } + + callHdr := &transport.CallHdr{ + Host: ac.cc.authority, + Method: method, + ContentSubtype: c.contentSubtype, + } + + // Set our outgoing compression according to the UseCompressor CallOption, if + // set. In that case, also find the compressor from the encoding package. + // Otherwise, use the compressor configured by the WithCompressor DialOption, + // if set. + var cp Compressor + var comp encoding.Compressor + if ct := c.compressorType; ct != "" { + callHdr.SendCompress = ct + if ct != encoding.Identity { + comp = encoding.GetCompressor(ct) + if comp == nil { + return nil, status.Errorf(codes.Internal, "grpc: Compressor is not installed for requested grpc-encoding %q", ct) + } + } + } else if ac.cc.dopts.cp != nil { + callHdr.SendCompress = ac.cc.dopts.cp.Type() + cp = ac.cc.dopts.cp + } + if c.creds != nil { + callHdr.Creds = c.creds + } + + // Use a special addrConnStream to avoid retry. + as := &addrConnStream{ + callHdr: callHdr, + ac: ac, + ctx: ctx, + cancel: cancel, + opts: opts, + callInfo: c, + desc: desc, + codec: c.codec, + cp: cp, + comp: comp, + t: t, + } + + s, err := as.t.NewStream(as.ctx, as.callHdr) + if err != nil { + err = toRPCErr(err) + return nil, err + } + as.s = s + as.p = &parser{r: s} + ac.incrCallsStarted() + if desc != unaryStreamDesc { + // Listen on cc and stream contexts to cleanup when the user closes the + // ClientConn or cancels the stream context. In all other cases, an error + // should already be injected into the recv buffer by the transport, which + // the client will eventually receive, and then we will cancel the stream's + // context in clientStream.finish. + go func() { + select { + case <-ac.ctx.Done(): + as.finish(status.Error(codes.Canceled, "grpc: the SubConn is closing")) + case <-ctx.Done(): + as.finish(toRPCErr(ctx.Err())) + } + }() + } + return as, nil +} + +type addrConnStream struct { + s *transport.Stream + ac *addrConn + callHdr *transport.CallHdr + cancel context.CancelFunc + opts []CallOption + callInfo *callInfo + t transport.ClientTransport + ctx context.Context + sentLast bool + desc *StreamDesc + codec baseCodec + cp Compressor + comp encoding.Compressor + decompSet bool + dc Decompressor + decomp encoding.Compressor + p *parser + mu sync.Mutex + finished bool +} + +func (as *addrConnStream) Header() (metadata.MD, error) { + m, err := as.s.Header() + if err != nil { + as.finish(toRPCErr(err)) + } + return m, err +} + +func (as *addrConnStream) Trailer() metadata.MD { + return as.s.Trailer() +} + +func (as *addrConnStream) CloseSend() error { + if as.sentLast { + // TODO: return an error and finish the stream instead, due to API misuse? + return nil + } + as.sentLast = true + + as.t.Write(as.s, nil, nil, &transport.Options{Last: true}) + // Always return nil; io.EOF is the only error that might make sense + // instead, but there is no need to signal the client to call RecvMsg + // as the only use left for the stream after CloseSend is to call + // RecvMsg. This also matches historical behavior. + return nil +} + +func (as *addrConnStream) Context() context.Context { + return as.s.Context() +} + +func (as *addrConnStream) SendMsg(m interface{}) (err error) { + defer func() { + if err != nil && err != io.EOF { + // Call finish on the client stream for errors generated by this SendMsg + // call, as these indicate problems created by this client. (Transport + // errors are converted to an io.EOF error in csAttempt.sendMsg; the real + // error will be returned from RecvMsg eventually in that case, or be + // retried.) + as.finish(err) + } + }() + if as.sentLast { + return status.Errorf(codes.Internal, "SendMsg called after CloseSend") + } + if !as.desc.ClientStreams { + as.sentLast = true + } + + // load hdr, payload, data + hdr, payld, _, err := prepareMsg(m, as.codec, as.cp, as.comp) + if err != nil { + return err + } + + // TODO(dfawley): should we be checking len(data) instead? + if len(payld) > *as.callInfo.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payld), *as.callInfo.maxSendMessageSize) + } + + if err := as.t.Write(as.s, hdr, payld, &transport.Options{Last: !as.desc.ClientStreams}); err != nil { + if !as.desc.ClientStreams { + // For non-client-streaming RPCs, we return nil instead of EOF on error + // because the generated code requires it. finish is not called; RecvMsg() + // will call it with the stream's status independently. + return nil + } + return io.EOF + } + + if channelz.IsOn() { + as.t.IncrMsgSent() + } + return nil +} + +func (as *addrConnStream) RecvMsg(m interface{}) (err error) { + defer func() { + if err != nil || !as.desc.ServerStreams { + // err != nil or non-server-streaming indicates end of stream. + as.finish(err) + } + }() + + if !as.decompSet { + // Block until we receive headers containing received message encoding. + if ct := as.s.RecvCompress(); ct != "" && ct != encoding.Identity { + if as.dc == nil || as.dc.Type() != ct { + // No configured decompressor, or it does not match the incoming + // message encoding; attempt to find a registered compressor that does. + as.dc = nil + as.decomp = encoding.GetCompressor(ct) + } + } else { + // No compression is used; disable our decompressor. + as.dc = nil + } + // Only initialize this state once per stream. + as.decompSet = true + } + err = recv(as.p, as.codec, as.s, as.dc, m, *as.callInfo.maxReceiveMessageSize, nil, as.decomp) + if err != nil { + if err == io.EOF { + if statusErr := as.s.Status().Err(); statusErr != nil { + return statusErr + } + return io.EOF // indicates successful end of stream. + } + return toRPCErr(err) + } + + if channelz.IsOn() { + as.t.IncrMsgRecv() + } + if as.desc.ServerStreams { + // Subsequent messages should be received by subsequent RecvMsg calls. + return nil + } + + // Special handling for non-server-stream rpcs. + // This recv expects EOF or errors, so we don't collect inPayload. + err = recv(as.p, as.codec, as.s, as.dc, m, *as.callInfo.maxReceiveMessageSize, nil, as.decomp) + if err == nil { + return toRPCErr(errors.New("grpc: client streaming protocol violation: get , want ")) + } + if err == io.EOF { + return as.s.Status().Err() // non-server streaming Recv returns nil on success + } + return toRPCErr(err) +} + +func (as *addrConnStream) finish(err error) { + as.mu.Lock() + if as.finished { + as.mu.Unlock() + return + } + as.finished = true + if err == io.EOF { + // Ending a stream with EOF indicates a success. + err = nil + } + if as.s != nil { + as.t.CloseStream(as.s, err) + } + + if err != nil { + as.ac.incrCallsFailed() + } else { + as.ac.incrCallsSucceeded() + } + as.cancel() + as.mu.Unlock() +} + +// ServerStream defines the server-side behavior of a streaming RPC. +// +// Errors returned from ServerStream methods are compatible with the status +// package. However, the status code will often not match the RPC status as +// seen by the client application, and therefore, should not be relied upon for +// this purpose. +type ServerStream interface { + // SetHeader sets the header metadata. It may be called multiple times. + // When call multiple times, all the provided metadata will be merged. + // All the metadata will be sent out when one of the following happens: + // - ServerStream.SendHeader() is called; + // - The first response is sent out; + // - An RPC status is sent out (error or success). + SetHeader(metadata.MD) error + // SendHeader sends the header metadata. + // The provided md and headers set by SetHeader() will be sent. + // It fails if called multiple times. + SendHeader(metadata.MD) error + // SetTrailer sets the trailer metadata which will be sent with the RPC status. + // When called more than once, all the provided metadata will be merged. + SetTrailer(metadata.MD) + // Context returns the context for this stream. + Context() context.Context + // SendMsg sends a message. On error, SendMsg aborts the stream and the + // error is returned directly. + // + // SendMsg blocks until: + // - There is sufficient flow control to schedule m with the transport, or + // - The stream is done, or + // - The stream breaks. + // + // SendMsg does not wait until the message is received by the client. An + // untimely stream closure may result in lost messages. + // + // It is safe to have a goroutine calling SendMsg and another goroutine + // calling RecvMsg on the same stream at the same time, but it is not safe + // to call SendMsg on the same stream in different goroutines. + SendMsg(m interface{}) error + // RecvMsg blocks until it receives a message into m or the stream is + // done. It returns io.EOF when the client has performed a CloseSend. On + // any non-EOF error, the stream is aborted and the error contains the + // RPC status. + // + // It is safe to have a goroutine calling SendMsg and another goroutine + // calling RecvMsg on the same stream at the same time, but it is not + // safe to call RecvMsg on the same stream in different goroutines. + RecvMsg(m interface{}) error +} + +// serverStream implements a server side Stream. +type serverStream struct { + ctx context.Context + t transport.ServerTransport + s *transport.Stream + p *parser + codec baseCodec + + cp Compressor + dc Decompressor + comp encoding.Compressor + decomp encoding.Compressor + + maxReceiveMessageSize int + maxSendMessageSize int + trInfo *traceInfo + + statsHandler []stats.Handler + + binlogs []binarylog.MethodLogger + // serverHeaderBinlogged indicates whether server header has been logged. It + // will happen when one of the following two happens: stream.SendHeader(), + // stream.Send(). + // + // It's only checked in send and sendHeader, doesn't need to be + // synchronized. + serverHeaderBinlogged bool + + mu sync.Mutex // protects trInfo.tr after the service handler runs. +} + +func (ss *serverStream) Context() context.Context { + return ss.ctx +} + +func (ss *serverStream) SetHeader(md metadata.MD) error { + if md.Len() == 0 { + return nil + } + err := imetadata.Validate(md) + if err != nil { + return status.Error(codes.Internal, err.Error()) + } + return ss.s.SetHeader(md) +} + +func (ss *serverStream) SendHeader(md metadata.MD) error { + err := imetadata.Validate(md) + if err != nil { + return status.Error(codes.Internal, err.Error()) + } + + err = ss.t.WriteHeader(ss.s, md) + if len(ss.binlogs) != 0 && !ss.serverHeaderBinlogged { + h, _ := ss.s.Header() + sh := &binarylog.ServerHeader{ + Header: h, + } + ss.serverHeaderBinlogged = true + for _, binlog := range ss.binlogs { + binlog.Log(sh) + } + } + return err +} + +func (ss *serverStream) SetTrailer(md metadata.MD) { + if md.Len() == 0 { + return + } + if err := imetadata.Validate(md); err != nil { + logger.Errorf("stream: failed to validate md when setting trailer, err: %v", err) + } + ss.s.SetTrailer(md) +} + +func (ss *serverStream) SendMsg(m interface{}) (err error) { + defer func() { + if ss.trInfo != nil { + ss.mu.Lock() + if ss.trInfo.tr != nil { + if err == nil { + ss.trInfo.tr.LazyLog(&payload{sent: true, msg: m}, true) + } else { + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.SetError() + } + } + ss.mu.Unlock() + } + if err != nil && err != io.EOF { + st, _ := status.FromError(toRPCErr(err)) + ss.t.WriteStatus(ss.s, st) + // Non-user specified status was sent out. This should be an error + // case (as a server side Cancel maybe). + // + // This is not handled specifically now. User will return a final + // status from the service handler, we will log that error instead. + // This behavior is similar to an interceptor. + } + if channelz.IsOn() && err == nil { + ss.t.IncrMsgSent() + } + }() + + // load hdr, payload, data + hdr, payload, data, err := prepareMsg(m, ss.codec, ss.cp, ss.comp) + if err != nil { + return err + } + + // TODO(dfawley): should we be checking len(data) instead? + if len(payload) > ss.maxSendMessageSize { + return status.Errorf(codes.ResourceExhausted, "trying to send message larger than max (%d vs. %d)", len(payload), ss.maxSendMessageSize) + } + if err := ss.t.Write(ss.s, hdr, payload, &transport.Options{Last: false}); err != nil { + return toRPCErr(err) + } + if len(ss.binlogs) != 0 { + if !ss.serverHeaderBinlogged { + h, _ := ss.s.Header() + sh := &binarylog.ServerHeader{ + Header: h, + } + ss.serverHeaderBinlogged = true + for _, binlog := range ss.binlogs { + binlog.Log(sh) + } + } + sm := &binarylog.ServerMessage{ + Message: data, + } + for _, binlog := range ss.binlogs { + binlog.Log(sm) + } + } + if len(ss.statsHandler) != 0 { + for _, sh := range ss.statsHandler { + sh.HandleRPC(ss.s.Context(), outPayload(false, m, data, payload, time.Now())) + } + } + return nil +} + +func (ss *serverStream) RecvMsg(m interface{}) (err error) { + defer func() { + if ss.trInfo != nil { + ss.mu.Lock() + if ss.trInfo.tr != nil { + if err == nil { + ss.trInfo.tr.LazyLog(&payload{sent: false, msg: m}, true) + } else if err != io.EOF { + ss.trInfo.tr.LazyLog(&fmtStringer{"%v", []interface{}{err}}, true) + ss.trInfo.tr.SetError() + } + } + ss.mu.Unlock() + } + if err != nil && err != io.EOF { + st, _ := status.FromError(toRPCErr(err)) + ss.t.WriteStatus(ss.s, st) + // Non-user specified status was sent out. This should be an error + // case (as a server side Cancel maybe). + // + // This is not handled specifically now. User will return a final + // status from the service handler, we will log that error instead. + // This behavior is similar to an interceptor. + } + if channelz.IsOn() && err == nil { + ss.t.IncrMsgRecv() + } + }() + var payInfo *payloadInfo + if len(ss.statsHandler) != 0 || len(ss.binlogs) != 0 { + payInfo = &payloadInfo{} + } + if err := recv(ss.p, ss.codec, ss.s, ss.dc, m, ss.maxReceiveMessageSize, payInfo, ss.decomp); err != nil { + if err == io.EOF { + if len(ss.binlogs) != 0 { + chc := &binarylog.ClientHalfClose{} + for _, binlog := range ss.binlogs { + binlog.Log(chc) + } + } + return err + } + if err == io.ErrUnexpectedEOF { + err = status.Errorf(codes.Internal, io.ErrUnexpectedEOF.Error()) + } + return toRPCErr(err) + } + if len(ss.statsHandler) != 0 { + for _, sh := range ss.statsHandler { + sh.HandleRPC(ss.s.Context(), &stats.InPayload{ + RecvTime: time.Now(), + Payload: m, + // TODO truncate large payload. + Data: payInfo.uncompressedBytes, + WireLength: payInfo.wireLength + headerLen, + Length: len(payInfo.uncompressedBytes), + }) + } + } + if len(ss.binlogs) != 0 { + cm := &binarylog.ClientMessage{ + Message: payInfo.uncompressedBytes, + } + for _, binlog := range ss.binlogs { + binlog.Log(cm) + } + } + return nil +} + +// MethodFromServerStream returns the method string for the input stream. +// The returned string is in the format of "/service/method". +func MethodFromServerStream(stream ServerStream) (string, bool) { + return Method(stream.Context()) +} + +// prepareMsg returns the hdr, payload and data +// using the compressors passed or using the +// passed preparedmsg +func prepareMsg(m interface{}, codec baseCodec, cp Compressor, comp encoding.Compressor) (hdr, payload, data []byte, err error) { + if preparedMsg, ok := m.(*PreparedMsg); ok { + return preparedMsg.hdr, preparedMsg.payload, preparedMsg.encodedData, nil + } + // The input interface is not a prepared msg. + // Marshal and Compress the data at this point + data, err = encode(codec, m) + if err != nil { + return nil, nil, nil, err + } + compData, err := compress(data, cp, comp) + if err != nil { + return nil, nil, nil, err + } + hdr, payload = msgHeader(data, compData) + return hdr, payload, data, nil +} diff --git a/ecs-agent/vendor/google.golang.org/grpc/tap/tap.go b/ecs-agent/vendor/google.golang.org/grpc/tap/tap.go new file mode 100644 index 0000000000..bfa5dfa40e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/tap/tap.go @@ -0,0 +1,56 @@ +/* + * + * Copyright 2016 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +// Package tap defines the function handles which are executed on the transport +// layer of gRPC-Go and related information. +// +// # Experimental +// +// Notice: This API is EXPERIMENTAL and may be changed or removed in a +// later release. +package tap + +import ( + "context" +) + +// Info defines the relevant information needed by the handles. +type Info struct { + // FullMethodName is the string of grpc method (in the format of + // /package.service/method). + FullMethodName string + // TODO: More to be added. +} + +// ServerInHandle defines the function which runs before a new stream is +// created on the server side. If it returns a non-nil error, the stream will +// not be created and an error will be returned to the client. If the error +// returned is a status error, that status code and message will be used, +// otherwise PermissionDenied will be the code and err.Error() will be the +// message. +// +// It's intended to be used in situations where you don't want to waste the +// resources to accept the new stream (e.g. rate-limiting). For other general +// usages, please use interceptors. +// +// Note that it is executed in the per-connection I/O goroutine(s) instead of +// per-RPC goroutine. Therefore, users should NOT have any +// blocking/time-consuming work in this handle. Otherwise all the RPCs would +// slow down. Also, for the same reason, this handle won't be called +// concurrently by gRPC. +type ServerInHandle func(ctx context.Context, info *Info) (context.Context, error) diff --git a/ecs-agent/vendor/google.golang.org/grpc/trace.go b/ecs-agent/vendor/google.golang.org/grpc/trace.go new file mode 100644 index 0000000000..07a2d26b3e --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/trace.go @@ -0,0 +1,123 @@ +/* + * + * Copyright 2015 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +import ( + "bytes" + "fmt" + "io" + "net" + "strings" + "sync" + "time" + + "golang.org/x/net/trace" +) + +// EnableTracing controls whether to trace RPCs using the golang.org/x/net/trace package. +// This should only be set before any RPCs are sent or received by this program. +var EnableTracing bool + +// methodFamily returns the trace family for the given method. +// It turns "/pkg.Service/GetFoo" into "pkg.Service". +func methodFamily(m string) string { + m = strings.TrimPrefix(m, "/") // remove leading slash + if i := strings.Index(m, "/"); i >= 0 { + m = m[:i] // remove everything from second slash + } + return m +} + +// traceInfo contains tracing information for an RPC. +type traceInfo struct { + tr trace.Trace + firstLine firstLine +} + +// firstLine is the first line of an RPC trace. +// It may be mutated after construction; remoteAddr specifically may change +// during client-side use. +type firstLine struct { + mu sync.Mutex + client bool // whether this is a client (outgoing) RPC + remoteAddr net.Addr + deadline time.Duration // may be zero +} + +func (f *firstLine) SetRemoteAddr(addr net.Addr) { + f.mu.Lock() + f.remoteAddr = addr + f.mu.Unlock() +} + +func (f *firstLine) String() string { + f.mu.Lock() + defer f.mu.Unlock() + + var line bytes.Buffer + io.WriteString(&line, "RPC: ") + if f.client { + io.WriteString(&line, "to") + } else { + io.WriteString(&line, "from") + } + fmt.Fprintf(&line, " %v deadline:", f.remoteAddr) + if f.deadline != 0 { + fmt.Fprint(&line, f.deadline) + } else { + io.WriteString(&line, "none") + } + return line.String() +} + +const truncateSize = 100 + +func truncate(x string, l int) string { + if l > len(x) { + return x + } + return x[:l] +} + +// payload represents an RPC request or response payload. +type payload struct { + sent bool // whether this is an outgoing payload + msg interface{} // e.g. a proto.Message + // TODO(dsymonds): add stringifying info to codec, and limit how much we hold here? +} + +func (p payload) String() string { + if p.sent { + return truncate(fmt.Sprintf("sent: %v", p.msg), truncateSize) + } + return truncate(fmt.Sprintf("recv: %v", p.msg), truncateSize) +} + +type fmtStringer struct { + format string + a []interface{} +} + +func (f *fmtStringer) String() string { + return fmt.Sprintf(f.format, f.a...) +} + +type stringer string + +func (s stringer) String() string { return string(s) } diff --git a/ecs-agent/vendor/google.golang.org/grpc/version.go b/ecs-agent/vendor/google.golang.org/grpc/version.go new file mode 100644 index 0000000000..243e06e8d3 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/version.go @@ -0,0 +1,22 @@ +/* + * + * Copyright 2018 gRPC authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package grpc + +// Version is the current grpc version. +const Version = "1.52.0" diff --git a/ecs-agent/vendor/google.golang.org/grpc/vet.sh b/ecs-agent/vendor/google.golang.org/grpc/vet.sh new file mode 100644 index 0000000000..1d03c09148 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/grpc/vet.sh @@ -0,0 +1,213 @@ +#!/bin/bash + +set -ex # Exit on error; debugging enabled. +set -o pipefail # Fail a pipe if any sub-command fails. + +# not makes sure the command passed to it does not exit with a return code of 0. +not() { + # This is required instead of the earlier (! $COMMAND) because subshells and + # pipefail don't work the same on Darwin as in Linux. + ! "$@" +} + +die() { + echo "$@" >&2 + exit 1 +} + +fail_on_output() { + tee /dev/stderr | not read +} + +# Check to make sure it's safe to modify the user's git repo. +git status --porcelain | fail_on_output + +# Undo any edits made by this script. +cleanup() { + git reset --hard HEAD +} +trap cleanup EXIT + +PATH="${HOME}/go/bin:${GOROOT}/bin:${PATH}" +go version + +if [[ "$1" = "-install" ]]; then + # Install the pinned versions as defined in module tools. + pushd ./test/tools + go install \ + golang.org/x/lint/golint \ + golang.org/x/tools/cmd/goimports \ + honnef.co/go/tools/cmd/staticcheck \ + github.com/client9/misspell/cmd/misspell + popd + if [[ -z "${VET_SKIP_PROTO}" ]]; then + if [[ "${TRAVIS}" = "true" ]]; then + PROTOBUF_VERSION=3.14.0 + PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip + pushd /home/travis + wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} + unzip ${PROTOC_FILENAME} + bin/protoc --version + popd + elif [[ "${GITHUB_ACTIONS}" = "true" ]]; then + PROTOBUF_VERSION=3.14.0 + PROTOC_FILENAME=protoc-${PROTOBUF_VERSION}-linux-x86_64.zip + pushd /home/runner/go + wget https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/${PROTOC_FILENAME} + unzip ${PROTOC_FILENAME} + bin/protoc --version + popd + elif not which protoc > /dev/null; then + die "Please install protoc into your path" + fi + fi + exit 0 +elif [[ "$#" -ne 0 ]]; then + die "Unknown argument(s): $*" +fi + +# - Ensure all source files contain a copyright message. +# (Done in two parts because Darwin "git grep" has broken support for compound +# exclusion matches.) +(grep -L "DO NOT EDIT" $(git grep -L "\(Copyright [0-9]\{4,\} gRPC authors\)" -- '*.go') || true) | fail_on_output + +# - Make sure all tests in grpc and grpc/test use leakcheck via Teardown. +not grep 'func Test[^(]' *_test.go +not grep 'func Test[^(]' test/*.go + +# - Do not import x/net/context. +not git grep -l 'x/net/context' -- "*.go" + +# - Do not import math/rand for real library code. Use internal/grpcrand for +# thread safety. +git grep -l '"math/rand"' -- "*.go" 2>&1 | not grep -v '^examples\|^stress\|grpcrand\|^benchmark\|wrr_test' + +# - Do not call grpclog directly. Use grpclog.Component instead. +git grep -l -e 'grpclog.I' --or -e 'grpclog.W' --or -e 'grpclog.E' --or -e 'grpclog.F' --or -e 'grpclog.V' -- "*.go" | not grep -v '^grpclog/component.go\|^internal/grpctest/tlogger_test.go' + +# - Ensure all ptypes proto packages are renamed when importing. +not git grep "\(import \|^\s*\)\"github.com/golang/protobuf/ptypes/" -- "*.go" + +# - Ensure all xds proto imports are renamed to *pb or *grpc. +git grep '"github.com/envoyproxy/go-control-plane/envoy' -- '*.go' ':(exclude)*.pb.go' | not grep -v 'pb "\|grpc "' + +misspell -error . + +# - Check that generated proto files are up to date. +if [[ -z "${VET_SKIP_PROTO}" ]]; then + PATH="/home/travis/bin:${PATH}" make proto && \ + git status --porcelain 2>&1 | fail_on_output || \ + (git status; git --no-pager diff; exit 1) +fi + +# - gofmt, goimports, golint (with exceptions for generated code), go vet, +# go mod tidy. +# Perform these checks on each module inside gRPC. +for MOD_FILE in $(find . -name 'go.mod'); do + MOD_DIR=$(dirname ${MOD_FILE}) + pushd ${MOD_DIR} + go vet -all ./... | fail_on_output + gofmt -s -d -l . 2>&1 | fail_on_output + goimports -l . 2>&1 | not grep -vE "\.pb\.go" + golint ./... 2>&1 | not grep -vE "/grpc_testing_not_regenerate/.*\.pb\.go:" + + go mod tidy + git status --porcelain 2>&1 | fail_on_output || \ + (git status; git --no-pager diff; exit 1) + popd +done + +# - Collection of static analysis checks +# +# TODO(dfawley): don't use deprecated functions in examples or first-party +# plugins. +# TODO(dfawley): enable ST1019 (duplicate imports) but allow for protobufs. +SC_OUT="$(mktemp)" +staticcheck -go 1.19 -checks 'inherit,-ST1015,-ST1019,-SA1019' ./... > "${SC_OUT}" || true +# Error if anything other than deprecation warnings are printed. +not grep -v "is deprecated:.*SA1019" "${SC_OUT}" +# Only ignore the following deprecated types/fields/functions. +not grep -Fv '.CredsBundle +.HeaderMap +.Metadata is deprecated: use Attributes +.NewAddress +.NewServiceConfig +.Type is deprecated: use Attributes +BuildVersion is deprecated +balancer.ErrTransientFailure +balancer.Picker +extDesc.Filename is deprecated +github.com/golang/protobuf/jsonpb is deprecated +grpc.CallCustomCodec +grpc.Code +grpc.Compressor +grpc.CustomCodec +grpc.Decompressor +grpc.MaxMsgSize +grpc.MethodConfig +grpc.NewGZIPCompressor +grpc.NewGZIPDecompressor +grpc.RPCCompressor +grpc.RPCDecompressor +grpc.ServiceConfig +grpc.WithCompressor +grpc.WithDecompressor +grpc.WithDialer +grpc.WithMaxMsgSize +grpc.WithServiceConfig +grpc.WithTimeout +http.CloseNotifier +info.SecurityVersion +proto is deprecated +proto.InternalMessageInfo is deprecated +proto.EnumName is deprecated +proto.ErrInternalBadWireType is deprecated +proto.FileDescriptor is deprecated +proto.Marshaler is deprecated +proto.MessageType is deprecated +proto.RegisterEnum is deprecated +proto.RegisterFile is deprecated +proto.RegisterType is deprecated +proto.RegisterExtension is deprecated +proto.RegisteredExtension is deprecated +proto.RegisteredExtensions is deprecated +proto.RegisterMapType is deprecated +proto.Unmarshaler is deprecated +resolver.Backend +resolver.GRPCLB +Target is deprecated: Use the Target field in the BuildOptions instead. +xxx_messageInfo_ +' "${SC_OUT}" + +# - special golint on package comments. +lint_package_comment_per_package() { + # Number of files in this go package. + fileCount=$(go list -f '{{len .GoFiles}}' $1) + if [ ${fileCount} -eq 0 ]; then + return 0 + fi + # Number of package errors generated by golint. + lintPackageCommentErrorsCount=$(golint --min_confidence 0 $1 | grep -c "should have a package comment") + # golint complains about every file that's missing the package comment. If the + # number of files for this package is greater than the number of errors, there's + # at least one file with package comment, good. Otherwise, fail. + if [ ${fileCount} -le ${lintPackageCommentErrorsCount} ]; then + echo "Package $1 (with ${fileCount} files) is missing package comment" + return 1 + fi +} +lint_package_comment() { + set +ex + + count=0 + for i in $(go list ./...); do + lint_package_comment_per_package "$i" + ((count += $?)) + done + + set -ex + return $count +} +lint_package_comment + +echo SUCCESS diff --git a/ecs-agent/vendor/google.golang.org/protobuf/AUTHORS b/ecs-agent/vendor/google.golang.org/protobuf/AUTHORS deleted file mode 100644 index 2b00ddba0d..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at https://tip.golang.org/AUTHORS. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/CONTRIBUTORS b/ecs-agent/vendor/google.golang.org/protobuf/CONTRIBUTORS deleted file mode 100644 index 1fbd3e976f..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at https://tip.golang.org/CONTRIBUTORS. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/decode.go new file mode 100644 index 0000000000..5f28148d80 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/decode.go @@ -0,0 +1,665 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protojson + +import ( + "encoding/base64" + "fmt" + "math" + "strconv" + "strings" + + "google.golang.org/protobuf/internal/encoding/json" + "google.golang.org/protobuf/internal/encoding/messageset" + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/internal/pragma" + "google.golang.org/protobuf/internal/set" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" +) + +// Unmarshal reads the given []byte into the given proto.Message. +// The provided message must be mutable (e.g., a non-nil pointer to a message). +func Unmarshal(b []byte, m proto.Message) error { + return UnmarshalOptions{}.Unmarshal(b, m) +} + +// UnmarshalOptions is a configurable JSON format parser. +type UnmarshalOptions struct { + pragma.NoUnkeyedLiterals + + // If AllowPartial is set, input for messages that will result in missing + // required fields will not return an error. + AllowPartial bool + + // If DiscardUnknown is set, unknown fields are ignored. + DiscardUnknown bool + + // Resolver is used for looking up types when unmarshaling + // google.protobuf.Any messages or extension fields. + // If nil, this defaults to using protoregistry.GlobalTypes. + Resolver interface { + protoregistry.MessageTypeResolver + protoregistry.ExtensionTypeResolver + } +} + +// Unmarshal reads the given []byte and populates the given proto.Message +// using options in the UnmarshalOptions object. +// It will clear the message first before setting the fields. +// If it returns an error, the given message may be partially set. +// The provided message must be mutable (e.g., a non-nil pointer to a message). +func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { + return o.unmarshal(b, m) +} + +// unmarshal is a centralized function that all unmarshal operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for unmarshal that do not go through this. +func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error { + proto.Reset(m) + + if o.Resolver == nil { + o.Resolver = protoregistry.GlobalTypes + } + + dec := decoder{json.NewDecoder(b), o} + if err := dec.unmarshalMessage(m.ProtoReflect(), false); err != nil { + return err + } + + // Check for EOF. + tok, err := dec.Read() + if err != nil { + return err + } + if tok.Kind() != json.EOF { + return dec.unexpectedTokenError(tok) + } + + if o.AllowPartial { + return nil + } + return proto.CheckInitialized(m) +} + +type decoder struct { + *json.Decoder + opts UnmarshalOptions +} + +// newError returns an error object with position info. +func (d decoder) newError(pos int, f string, x ...interface{}) error { + line, column := d.Position(pos) + head := fmt.Sprintf("(line %d:%d): ", line, column) + return errors.New(head+f, x...) +} + +// unexpectedTokenError returns a syntax error for the given unexpected token. +func (d decoder) unexpectedTokenError(tok json.Token) error { + return d.syntaxError(tok.Pos(), "unexpected token %s", tok.RawString()) +} + +// syntaxError returns a syntax error for given position. +func (d decoder) syntaxError(pos int, f string, x ...interface{}) error { + line, column := d.Position(pos) + head := fmt.Sprintf("syntax error (line %d:%d): ", line, column) + return errors.New(head+f, x...) +} + +// unmarshalMessage unmarshals a message into the given protoreflect.Message. +func (d decoder) unmarshalMessage(m protoreflect.Message, skipTypeURL bool) error { + if unmarshal := wellKnownTypeUnmarshaler(m.Descriptor().FullName()); unmarshal != nil { + return unmarshal(d, m) + } + + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.ObjectOpen { + return d.unexpectedTokenError(tok) + } + + messageDesc := m.Descriptor() + if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { + return errors.New("no support for proto1 MessageSets") + } + + var seenNums set.Ints + var seenOneofs set.Ints + fieldDescs := messageDesc.Fields() + for { + // Read field name. + tok, err := d.Read() + if err != nil { + return err + } + switch tok.Kind() { + default: + return d.unexpectedTokenError(tok) + case json.ObjectClose: + return nil + case json.Name: + // Continue below. + } + + name := tok.Name() + // Unmarshaling a non-custom embedded message in Any will contain the + // JSON field "@type" which should be skipped because it is not a field + // of the embedded message, but simply an artifact of the Any format. + if skipTypeURL && name == "@type" { + d.Read() + continue + } + + // Get the FieldDescriptor. + var fd protoreflect.FieldDescriptor + if strings.HasPrefix(name, "[") && strings.HasSuffix(name, "]") { + // Only extension names are in [name] format. + extName := protoreflect.FullName(name[1 : len(name)-1]) + extType, err := d.opts.Resolver.FindExtensionByName(extName) + if err != nil && err != protoregistry.NotFound { + return d.newError(tok.Pos(), "unable to resolve %s: %v", tok.RawString(), err) + } + if extType != nil { + fd = extType.TypeDescriptor() + if !messageDesc.ExtensionRanges().Has(fd.Number()) || fd.ContainingMessage().FullName() != messageDesc.FullName() { + return d.newError(tok.Pos(), "message %v cannot be extended by %v", messageDesc.FullName(), fd.FullName()) + } + } + } else { + // The name can either be the JSON name or the proto field name. + fd = fieldDescs.ByJSONName(name) + if fd == nil { + fd = fieldDescs.ByTextName(name) + } + } + if flags.ProtoLegacy { + if fd != nil && fd.IsWeak() && fd.Message().IsPlaceholder() { + fd = nil // reset since the weak reference is not linked in + } + } + + if fd == nil { + // Field is unknown. + if d.opts.DiscardUnknown { + if err := d.skipJSONValue(); err != nil { + return err + } + continue + } + return d.newError(tok.Pos(), "unknown field %v", tok.RawString()) + } + + // Do not allow duplicate fields. + num := uint64(fd.Number()) + if seenNums.Has(num) { + return d.newError(tok.Pos(), "duplicate field %v", tok.RawString()) + } + seenNums.Set(num) + + // No need to set values for JSON null unless the field type is + // google.protobuf.Value or google.protobuf.NullValue. + if tok, _ := d.Peek(); tok.Kind() == json.Null && !isKnownValue(fd) && !isNullValue(fd) { + d.Read() + continue + } + + switch { + case fd.IsList(): + list := m.Mutable(fd).List() + if err := d.unmarshalList(list, fd); err != nil { + return err + } + case fd.IsMap(): + mmap := m.Mutable(fd).Map() + if err := d.unmarshalMap(mmap, fd); err != nil { + return err + } + default: + // If field is a oneof, check if it has already been set. + if od := fd.ContainingOneof(); od != nil { + idx := uint64(od.Index()) + if seenOneofs.Has(idx) { + return d.newError(tok.Pos(), "error parsing %s, oneof %v is already set", tok.RawString(), od.FullName()) + } + seenOneofs.Set(idx) + } + + // Required or optional fields. + if err := d.unmarshalSingular(m, fd); err != nil { + return err + } + } + } +} + +func isKnownValue(fd protoreflect.FieldDescriptor) bool { + md := fd.Message() + return md != nil && md.FullName() == genid.Value_message_fullname +} + +func isNullValue(fd protoreflect.FieldDescriptor) bool { + ed := fd.Enum() + return ed != nil && ed.FullName() == genid.NullValue_enum_fullname +} + +// unmarshalSingular unmarshals to the non-repeated field specified +// by the given FieldDescriptor. +func (d decoder) unmarshalSingular(m protoreflect.Message, fd protoreflect.FieldDescriptor) error { + var val protoreflect.Value + var err error + switch fd.Kind() { + case protoreflect.MessageKind, protoreflect.GroupKind: + val = m.NewField(fd) + err = d.unmarshalMessage(val.Message(), false) + default: + val, err = d.unmarshalScalar(fd) + } + + if err != nil { + return err + } + m.Set(fd, val) + return nil +} + +// unmarshalScalar unmarshals to a scalar/enum protoreflect.Value specified by +// the given FieldDescriptor. +func (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { + const b32 int = 32 + const b64 int = 64 + + tok, err := d.Read() + if err != nil { + return protoreflect.Value{}, err + } + + kind := fd.Kind() + switch kind { + case protoreflect.BoolKind: + if tok.Kind() == json.Bool { + return protoreflect.ValueOfBool(tok.Bool()), nil + } + + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + if v, ok := unmarshalInt(tok, b32); ok { + return v, nil + } + + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + if v, ok := unmarshalInt(tok, b64); ok { + return v, nil + } + + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + if v, ok := unmarshalUint(tok, b32); ok { + return v, nil + } + + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + if v, ok := unmarshalUint(tok, b64); ok { + return v, nil + } + + case protoreflect.FloatKind: + if v, ok := unmarshalFloat(tok, b32); ok { + return v, nil + } + + case protoreflect.DoubleKind: + if v, ok := unmarshalFloat(tok, b64); ok { + return v, nil + } + + case protoreflect.StringKind: + if tok.Kind() == json.String { + return protoreflect.ValueOfString(tok.ParsedString()), nil + } + + case protoreflect.BytesKind: + if v, ok := unmarshalBytes(tok); ok { + return v, nil + } + + case protoreflect.EnumKind: + if v, ok := unmarshalEnum(tok, fd); ok { + return v, nil + } + + default: + panic(fmt.Sprintf("unmarshalScalar: invalid scalar kind %v", kind)) + } + + return protoreflect.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString()) +} + +func unmarshalInt(tok json.Token, bitSize int) (protoreflect.Value, bool) { + switch tok.Kind() { + case json.Number: + return getInt(tok, bitSize) + + case json.String: + // Decode number from string. + s := strings.TrimSpace(tok.ParsedString()) + if len(s) != len(tok.ParsedString()) { + return protoreflect.Value{}, false + } + dec := json.NewDecoder([]byte(s)) + tok, err := dec.Read() + if err != nil { + return protoreflect.Value{}, false + } + return getInt(tok, bitSize) + } + return protoreflect.Value{}, false +} + +func getInt(tok json.Token, bitSize int) (protoreflect.Value, bool) { + n, ok := tok.Int(bitSize) + if !ok { + return protoreflect.Value{}, false + } + if bitSize == 32 { + return protoreflect.ValueOfInt32(int32(n)), true + } + return protoreflect.ValueOfInt64(n), true +} + +func unmarshalUint(tok json.Token, bitSize int) (protoreflect.Value, bool) { + switch tok.Kind() { + case json.Number: + return getUint(tok, bitSize) + + case json.String: + // Decode number from string. + s := strings.TrimSpace(tok.ParsedString()) + if len(s) != len(tok.ParsedString()) { + return protoreflect.Value{}, false + } + dec := json.NewDecoder([]byte(s)) + tok, err := dec.Read() + if err != nil { + return protoreflect.Value{}, false + } + return getUint(tok, bitSize) + } + return protoreflect.Value{}, false +} + +func getUint(tok json.Token, bitSize int) (protoreflect.Value, bool) { + n, ok := tok.Uint(bitSize) + if !ok { + return protoreflect.Value{}, false + } + if bitSize == 32 { + return protoreflect.ValueOfUint32(uint32(n)), true + } + return protoreflect.ValueOfUint64(n), true +} + +func unmarshalFloat(tok json.Token, bitSize int) (protoreflect.Value, bool) { + switch tok.Kind() { + case json.Number: + return getFloat(tok, bitSize) + + case json.String: + s := tok.ParsedString() + switch s { + case "NaN": + if bitSize == 32 { + return protoreflect.ValueOfFloat32(float32(math.NaN())), true + } + return protoreflect.ValueOfFloat64(math.NaN()), true + case "Infinity": + if bitSize == 32 { + return protoreflect.ValueOfFloat32(float32(math.Inf(+1))), true + } + return protoreflect.ValueOfFloat64(math.Inf(+1)), true + case "-Infinity": + if bitSize == 32 { + return protoreflect.ValueOfFloat32(float32(math.Inf(-1))), true + } + return protoreflect.ValueOfFloat64(math.Inf(-1)), true + } + + // Decode number from string. + if len(s) != len(strings.TrimSpace(s)) { + return protoreflect.Value{}, false + } + dec := json.NewDecoder([]byte(s)) + tok, err := dec.Read() + if err != nil { + return protoreflect.Value{}, false + } + return getFloat(tok, bitSize) + } + return protoreflect.Value{}, false +} + +func getFloat(tok json.Token, bitSize int) (protoreflect.Value, bool) { + n, ok := tok.Float(bitSize) + if !ok { + return protoreflect.Value{}, false + } + if bitSize == 32 { + return protoreflect.ValueOfFloat32(float32(n)), true + } + return protoreflect.ValueOfFloat64(n), true +} + +func unmarshalBytes(tok json.Token) (protoreflect.Value, bool) { + if tok.Kind() != json.String { + return protoreflect.Value{}, false + } + + s := tok.ParsedString() + enc := base64.StdEncoding + if strings.ContainsAny(s, "-_") { + enc = base64.URLEncoding + } + if len(s)%4 != 0 { + enc = enc.WithPadding(base64.NoPadding) + } + b, err := enc.DecodeString(s) + if err != nil { + return protoreflect.Value{}, false + } + return protoreflect.ValueOfBytes(b), true +} + +func unmarshalEnum(tok json.Token, fd protoreflect.FieldDescriptor) (protoreflect.Value, bool) { + switch tok.Kind() { + case json.String: + // Lookup EnumNumber based on name. + s := tok.ParsedString() + if enumVal := fd.Enum().Values().ByName(protoreflect.Name(s)); enumVal != nil { + return protoreflect.ValueOfEnum(enumVal.Number()), true + } + + case json.Number: + if n, ok := tok.Int(32); ok { + return protoreflect.ValueOfEnum(protoreflect.EnumNumber(n)), true + } + + case json.Null: + // This is only valid for google.protobuf.NullValue. + if isNullValue(fd) { + return protoreflect.ValueOfEnum(0), true + } + } + + return protoreflect.Value{}, false +} + +func (d decoder) unmarshalList(list protoreflect.List, fd protoreflect.FieldDescriptor) error { + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.ArrayOpen { + return d.unexpectedTokenError(tok) + } + + switch fd.Kind() { + case protoreflect.MessageKind, protoreflect.GroupKind: + for { + tok, err := d.Peek() + if err != nil { + return err + } + + if tok.Kind() == json.ArrayClose { + d.Read() + return nil + } + + val := list.NewElement() + if err := d.unmarshalMessage(val.Message(), false); err != nil { + return err + } + list.Append(val) + } + default: + for { + tok, err := d.Peek() + if err != nil { + return err + } + + if tok.Kind() == json.ArrayClose { + d.Read() + return nil + } + + val, err := d.unmarshalScalar(fd) + if err != nil { + return err + } + list.Append(val) + } + } + + return nil +} + +func (d decoder) unmarshalMap(mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error { + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.ObjectOpen { + return d.unexpectedTokenError(tok) + } + + // Determine ahead whether map entry is a scalar type or a message type in + // order to call the appropriate unmarshalMapValue func inside the for loop + // below. + var unmarshalMapValue func() (protoreflect.Value, error) + switch fd.MapValue().Kind() { + case protoreflect.MessageKind, protoreflect.GroupKind: + unmarshalMapValue = func() (protoreflect.Value, error) { + val := mmap.NewValue() + if err := d.unmarshalMessage(val.Message(), false); err != nil { + return protoreflect.Value{}, err + } + return val, nil + } + default: + unmarshalMapValue = func() (protoreflect.Value, error) { + return d.unmarshalScalar(fd.MapValue()) + } + } + +Loop: + for { + // Read field name. + tok, err := d.Read() + if err != nil { + return err + } + switch tok.Kind() { + default: + return d.unexpectedTokenError(tok) + case json.ObjectClose: + break Loop + case json.Name: + // Continue. + } + + // Unmarshal field name. + pkey, err := d.unmarshalMapKey(tok, fd.MapKey()) + if err != nil { + return err + } + + // Check for duplicate field name. + if mmap.Has(pkey) { + return d.newError(tok.Pos(), "duplicate map key %v", tok.RawString()) + } + + // Read and unmarshal field value. + pval, err := unmarshalMapValue() + if err != nil { + return err + } + + mmap.Set(pkey, pval) + } + + return nil +} + +// unmarshalMapKey converts given token of Name kind into a protoreflect.MapKey. +// A map key type is any integral or string type. +func (d decoder) unmarshalMapKey(tok json.Token, fd protoreflect.FieldDescriptor) (protoreflect.MapKey, error) { + const b32 = 32 + const b64 = 64 + const base10 = 10 + + name := tok.Name() + kind := fd.Kind() + switch kind { + case protoreflect.StringKind: + return protoreflect.ValueOfString(name).MapKey(), nil + + case protoreflect.BoolKind: + switch name { + case "true": + return protoreflect.ValueOfBool(true).MapKey(), nil + case "false": + return protoreflect.ValueOfBool(false).MapKey(), nil + } + + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + if n, err := strconv.ParseInt(name, base10, b32); err == nil { + return protoreflect.ValueOfInt32(int32(n)).MapKey(), nil + } + + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + if n, err := strconv.ParseInt(name, base10, b64); err == nil { + return protoreflect.ValueOfInt64(int64(n)).MapKey(), nil + } + + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + if n, err := strconv.ParseUint(name, base10, b32); err == nil { + return protoreflect.ValueOfUint32(uint32(n)).MapKey(), nil + } + + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + if n, err := strconv.ParseUint(name, base10, b64); err == nil { + return protoreflect.ValueOfUint64(uint64(n)).MapKey(), nil + } + + default: + panic(fmt.Sprintf("invalid kind for map key: %v", kind)) + } + + return protoreflect.MapKey{}, d.newError(tok.Pos(), "invalid value for %v key: %s", kind, tok.RawString()) +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go new file mode 100644 index 0000000000..21d5d2cb18 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package protojson marshals and unmarshals protocol buffer messages as JSON +// format. It follows the guide at +// https://protobuf.dev/programming-guides/proto3#json. +// +// This package produces a different output than the standard "encoding/json" +// package, which does not operate correctly on protocol buffer messages. +package protojson diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/encode.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/encode.go new file mode 100644 index 0000000000..d09d22e139 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/encode.go @@ -0,0 +1,343 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protojson + +import ( + "encoding/base64" + "fmt" + + "google.golang.org/protobuf/internal/encoding/json" + "google.golang.org/protobuf/internal/encoding/messageset" + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/internal/order" + "google.golang.org/protobuf/internal/pragma" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" +) + +const defaultIndent = " " + +// Format formats the message as a multiline string. +// This function is only intended for human consumption and ignores errors. +// Do not depend on the output being stable. It may change over time across +// different versions of the program. +func Format(m proto.Message) string { + return MarshalOptions{Multiline: true}.Format(m) +} + +// Marshal writes the given proto.Message in JSON format using default options. +// Do not depend on the output being stable. It may change over time across +// different versions of the program. +func Marshal(m proto.Message) ([]byte, error) { + return MarshalOptions{}.Marshal(m) +} + +// MarshalOptions is a configurable JSON format marshaler. +type MarshalOptions struct { + pragma.NoUnkeyedLiterals + + // Multiline specifies whether the marshaler should format the output in + // indented-form with every textual element on a new line. + // If Indent is an empty string, then an arbitrary indent is chosen. + Multiline bool + + // Indent specifies the set of indentation characters to use in a multiline + // formatted output such that every entry is preceded by Indent and + // terminated by a newline. If non-empty, then Multiline is treated as true. + // Indent can only be composed of space or tab characters. + Indent string + + // AllowPartial allows messages that have missing required fields to marshal + // without returning an error. If AllowPartial is false (the default), + // Marshal will return error if there are any missing required fields. + AllowPartial bool + + // UseProtoNames uses proto field name instead of lowerCamelCase name in JSON + // field names. + UseProtoNames bool + + // UseEnumNumbers emits enum values as numbers. + UseEnumNumbers bool + + // EmitUnpopulated specifies whether to emit unpopulated fields. It does not + // emit unpopulated oneof fields or unpopulated extension fields. + // The JSON value emitted for unpopulated fields are as follows: + // ╔═══════╤════════════════════════════╗ + // ║ JSON │ Protobuf field ║ + // ╠═══════╪════════════════════════════╣ + // ║ false │ proto3 boolean fields ║ + // ║ 0 │ proto3 numeric fields ║ + // ║ "" │ proto3 string/bytes fields ║ + // ║ null │ proto2 scalar fields ║ + // ║ null │ message fields ║ + // ║ [] │ list fields ║ + // ║ {} │ map fields ║ + // ╚═══════╧════════════════════════════╝ + EmitUnpopulated bool + + // Resolver is used for looking up types when expanding google.protobuf.Any + // messages. If nil, this defaults to using protoregistry.GlobalTypes. + Resolver interface { + protoregistry.ExtensionTypeResolver + protoregistry.MessageTypeResolver + } +} + +// Format formats the message as a string. +// This method is only intended for human consumption and ignores errors. +// Do not depend on the output being stable. It may change over time across +// different versions of the program. +func (o MarshalOptions) Format(m proto.Message) string { + if m == nil || !m.ProtoReflect().IsValid() { + return "" // invalid syntax, but okay since this is for debugging + } + o.AllowPartial = true + b, _ := o.Marshal(m) + return string(b) +} + +// Marshal marshals the given proto.Message in the JSON format using options in +// MarshalOptions. Do not depend on the output being stable. It may change over +// time across different versions of the program. +func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { + return o.marshal(m) +} + +// marshal is a centralized function that all marshal operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for marshal that do not go through this. +func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { + if o.Multiline && o.Indent == "" { + o.Indent = defaultIndent + } + if o.Resolver == nil { + o.Resolver = protoregistry.GlobalTypes + } + + internalEnc, err := json.NewEncoder(o.Indent) + if err != nil { + return nil, err + } + + // Treat nil message interface as an empty message, + // in which case the output in an empty JSON object. + if m == nil { + return []byte("{}"), nil + } + + enc := encoder{internalEnc, o} + if err := enc.marshalMessage(m.ProtoReflect(), ""); err != nil { + return nil, err + } + if o.AllowPartial { + return enc.Bytes(), nil + } + return enc.Bytes(), proto.CheckInitialized(m) +} + +type encoder struct { + *json.Encoder + opts MarshalOptions +} + +// typeFieldDesc is a synthetic field descriptor used for the "@type" field. +var typeFieldDesc = func() protoreflect.FieldDescriptor { + var fd filedesc.Field + fd.L0.FullName = "@type" + fd.L0.Index = -1 + fd.L1.Cardinality = protoreflect.Optional + fd.L1.Kind = protoreflect.StringKind + return &fd +}() + +// typeURLFieldRanger wraps a protoreflect.Message and modifies its Range method +// to additionally iterate over a synthetic field for the type URL. +type typeURLFieldRanger struct { + order.FieldRanger + typeURL string +} + +func (m typeURLFieldRanger) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if !f(typeFieldDesc, protoreflect.ValueOfString(m.typeURL)) { + return + } + m.FieldRanger.Range(f) +} + +// unpopulatedFieldRanger wraps a protoreflect.Message and modifies its Range +// method to additionally iterate over unpopulated fields. +type unpopulatedFieldRanger struct{ protoreflect.Message } + +func (m unpopulatedFieldRanger) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + fds := m.Descriptor().Fields() + for i := 0; i < fds.Len(); i++ { + fd := fds.Get(i) + if m.Has(fd) || fd.ContainingOneof() != nil { + continue // ignore populated fields and fields within a oneofs + } + + v := m.Get(fd) + isProto2Scalar := fd.Syntax() == protoreflect.Proto2 && fd.Default().IsValid() + isSingularMessage := fd.Cardinality() != protoreflect.Repeated && fd.Message() != nil + if isProto2Scalar || isSingularMessage { + v = protoreflect.Value{} // use invalid value to emit null + } + if !f(fd, v) { + return + } + } + m.Message.Range(f) +} + +// marshalMessage marshals the fields in the given protoreflect.Message. +// If the typeURL is non-empty, then a synthetic "@type" field is injected +// containing the URL as the value. +func (e encoder) marshalMessage(m protoreflect.Message, typeURL string) error { + if !flags.ProtoLegacy && messageset.IsMessageSet(m.Descriptor()) { + return errors.New("no support for proto1 MessageSets") + } + + if marshal := wellKnownTypeMarshaler(m.Descriptor().FullName()); marshal != nil { + return marshal(e, m) + } + + e.StartObject() + defer e.EndObject() + + var fields order.FieldRanger = m + if e.opts.EmitUnpopulated { + fields = unpopulatedFieldRanger{m} + } + if typeURL != "" { + fields = typeURLFieldRanger{fields, typeURL} + } + + var err error + order.RangeFields(fields, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + name := fd.JSONName() + if e.opts.UseProtoNames { + name = fd.TextName() + } + + if err = e.WriteName(name); err != nil { + return false + } + if err = e.marshalValue(v, fd); err != nil { + return false + } + return true + }) + return err +} + +// marshalValue marshals the given protoreflect.Value. +func (e encoder) marshalValue(val protoreflect.Value, fd protoreflect.FieldDescriptor) error { + switch { + case fd.IsList(): + return e.marshalList(val.List(), fd) + case fd.IsMap(): + return e.marshalMap(val.Map(), fd) + default: + return e.marshalSingular(val, fd) + } +} + +// marshalSingular marshals the given non-repeated field value. This includes +// all scalar types, enums, messages, and groups. +func (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error { + if !val.IsValid() { + e.WriteNull() + return nil + } + + switch kind := fd.Kind(); kind { + case protoreflect.BoolKind: + e.WriteBool(val.Bool()) + + case protoreflect.StringKind: + if e.WriteString(val.String()) != nil { + return errors.InvalidUTF8(string(fd.FullName())) + } + + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + e.WriteInt(val.Int()) + + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + e.WriteUint(val.Uint()) + + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Uint64Kind, + protoreflect.Sfixed64Kind, protoreflect.Fixed64Kind: + // 64-bit integers are written out as JSON string. + e.WriteString(val.String()) + + case protoreflect.FloatKind: + // Encoder.WriteFloat handles the special numbers NaN and infinites. + e.WriteFloat(val.Float(), 32) + + case protoreflect.DoubleKind: + // Encoder.WriteFloat handles the special numbers NaN and infinites. + e.WriteFloat(val.Float(), 64) + + case protoreflect.BytesKind: + e.WriteString(base64.StdEncoding.EncodeToString(val.Bytes())) + + case protoreflect.EnumKind: + if fd.Enum().FullName() == genid.NullValue_enum_fullname { + e.WriteNull() + } else { + desc := fd.Enum().Values().ByNumber(val.Enum()) + if e.opts.UseEnumNumbers || desc == nil { + e.WriteInt(int64(val.Enum())) + } else { + e.WriteString(string(desc.Name())) + } + } + + case protoreflect.MessageKind, protoreflect.GroupKind: + if err := e.marshalMessage(val.Message(), ""); err != nil { + return err + } + + default: + panic(fmt.Sprintf("%v has unknown kind: %v", fd.FullName(), kind)) + } + return nil +} + +// marshalList marshals the given protoreflect.List. +func (e encoder) marshalList(list protoreflect.List, fd protoreflect.FieldDescriptor) error { + e.StartArray() + defer e.EndArray() + + for i := 0; i < list.Len(); i++ { + item := list.Get(i) + if err := e.marshalSingular(item, fd); err != nil { + return err + } + } + return nil +} + +// marshalMap marshals given protoreflect.Map. +func (e encoder) marshalMap(mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error { + e.StartObject() + defer e.EndObject() + + var err error + order.RangeEntries(mmap, order.GenericKeyOrder, func(k protoreflect.MapKey, v protoreflect.Value) bool { + if err = e.WriteName(k.String()); err != nil { + return false + } + if err = e.marshalSingular(v, fd.MapValue()); err != nil { + return false + } + return true + }) + return err +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go new file mode 100644 index 0000000000..6c37d41744 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go @@ -0,0 +1,895 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protojson + +import ( + "bytes" + "fmt" + "math" + "strconv" + "strings" + "time" + + "google.golang.org/protobuf/internal/encoding/json" + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/internal/strs" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" +) + +type marshalFunc func(encoder, protoreflect.Message) error + +// wellKnownTypeMarshaler returns a marshal function if the message type +// has specialized serialization behavior. It returns nil otherwise. +func wellKnownTypeMarshaler(name protoreflect.FullName) marshalFunc { + if name.Parent() == genid.GoogleProtobuf_package { + switch name.Name() { + case genid.Any_message_name: + return encoder.marshalAny + case genid.Timestamp_message_name: + return encoder.marshalTimestamp + case genid.Duration_message_name: + return encoder.marshalDuration + case genid.BoolValue_message_name, + genid.Int32Value_message_name, + genid.Int64Value_message_name, + genid.UInt32Value_message_name, + genid.UInt64Value_message_name, + genid.FloatValue_message_name, + genid.DoubleValue_message_name, + genid.StringValue_message_name, + genid.BytesValue_message_name: + return encoder.marshalWrapperType + case genid.Struct_message_name: + return encoder.marshalStruct + case genid.ListValue_message_name: + return encoder.marshalListValue + case genid.Value_message_name: + return encoder.marshalKnownValue + case genid.FieldMask_message_name: + return encoder.marshalFieldMask + case genid.Empty_message_name: + return encoder.marshalEmpty + } + } + return nil +} + +type unmarshalFunc func(decoder, protoreflect.Message) error + +// wellKnownTypeUnmarshaler returns a unmarshal function if the message type +// has specialized serialization behavior. It returns nil otherwise. +func wellKnownTypeUnmarshaler(name protoreflect.FullName) unmarshalFunc { + if name.Parent() == genid.GoogleProtobuf_package { + switch name.Name() { + case genid.Any_message_name: + return decoder.unmarshalAny + case genid.Timestamp_message_name: + return decoder.unmarshalTimestamp + case genid.Duration_message_name: + return decoder.unmarshalDuration + case genid.BoolValue_message_name, + genid.Int32Value_message_name, + genid.Int64Value_message_name, + genid.UInt32Value_message_name, + genid.UInt64Value_message_name, + genid.FloatValue_message_name, + genid.DoubleValue_message_name, + genid.StringValue_message_name, + genid.BytesValue_message_name: + return decoder.unmarshalWrapperType + case genid.Struct_message_name: + return decoder.unmarshalStruct + case genid.ListValue_message_name: + return decoder.unmarshalListValue + case genid.Value_message_name: + return decoder.unmarshalKnownValue + case genid.FieldMask_message_name: + return decoder.unmarshalFieldMask + case genid.Empty_message_name: + return decoder.unmarshalEmpty + } + } + return nil +} + +// The JSON representation of an Any message uses the regular representation of +// the deserialized, embedded message, with an additional field `@type` which +// contains the type URL. If the embedded message type is well-known and has a +// custom JSON representation, that representation will be embedded adding a +// field `value` which holds the custom JSON in addition to the `@type` field. + +func (e encoder) marshalAny(m protoreflect.Message) error { + fds := m.Descriptor().Fields() + fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) + fdValue := fds.ByNumber(genid.Any_Value_field_number) + + if !m.Has(fdType) { + if !m.Has(fdValue) { + // If message is empty, marshal out empty JSON object. + e.StartObject() + e.EndObject() + return nil + } else { + // Return error if type_url field is not set, but value is set. + return errors.New("%s: %v is not set", genid.Any_message_fullname, genid.Any_TypeUrl_field_name) + } + } + + typeVal := m.Get(fdType) + valueVal := m.Get(fdValue) + + // Resolve the type in order to unmarshal value field. + typeURL := typeVal.String() + emt, err := e.opts.Resolver.FindMessageByURL(typeURL) + if err != nil { + return errors.New("%s: unable to resolve %q: %v", genid.Any_message_fullname, typeURL, err) + } + + em := emt.New() + err = proto.UnmarshalOptions{ + AllowPartial: true, // never check required fields inside an Any + Resolver: e.opts.Resolver, + }.Unmarshal(valueVal.Bytes(), em.Interface()) + if err != nil { + return errors.New("%s: unable to unmarshal %q: %v", genid.Any_message_fullname, typeURL, err) + } + + // If type of value has custom JSON encoding, marshal out a field "value" + // with corresponding custom JSON encoding of the embedded message as a + // field. + if marshal := wellKnownTypeMarshaler(emt.Descriptor().FullName()); marshal != nil { + e.StartObject() + defer e.EndObject() + + // Marshal out @type field. + e.WriteName("@type") + if err := e.WriteString(typeURL); err != nil { + return err + } + + e.WriteName("value") + return marshal(e, em) + } + + // Else, marshal out the embedded message's fields in this Any object. + if err := e.marshalMessage(em, typeURL); err != nil { + return err + } + + return nil +} + +func (d decoder) unmarshalAny(m protoreflect.Message) error { + // Peek to check for json.ObjectOpen to avoid advancing a read. + start, err := d.Peek() + if err != nil { + return err + } + if start.Kind() != json.ObjectOpen { + return d.unexpectedTokenError(start) + } + + // Use another decoder to parse the unread bytes for @type field. This + // avoids advancing a read from current decoder because the current JSON + // object may contain the fields of the embedded type. + dec := decoder{d.Clone(), UnmarshalOptions{}} + tok, err := findTypeURL(dec) + switch err { + case errEmptyObject: + // An empty JSON object translates to an empty Any message. + d.Read() // Read json.ObjectOpen. + d.Read() // Read json.ObjectClose. + return nil + + case errMissingType: + if d.opts.DiscardUnknown { + // Treat all fields as unknowns, similar to an empty object. + return d.skipJSONValue() + } + // Use start.Pos() for line position. + return d.newError(start.Pos(), err.Error()) + + default: + if err != nil { + return err + } + } + + typeURL := tok.ParsedString() + emt, err := d.opts.Resolver.FindMessageByURL(typeURL) + if err != nil { + return d.newError(tok.Pos(), "unable to resolve %v: %q", tok.RawString(), err) + } + + // Create new message for the embedded message type and unmarshal into it. + em := emt.New() + if unmarshal := wellKnownTypeUnmarshaler(emt.Descriptor().FullName()); unmarshal != nil { + // If embedded message is a custom type, + // unmarshal the JSON "value" field into it. + if err := d.unmarshalAnyValue(unmarshal, em); err != nil { + return err + } + } else { + // Else unmarshal the current JSON object into it. + if err := d.unmarshalMessage(em, true); err != nil { + return err + } + } + // Serialize the embedded message and assign the resulting bytes to the + // proto value field. + b, err := proto.MarshalOptions{ + AllowPartial: true, // No need to check required fields inside an Any. + Deterministic: true, + }.Marshal(em.Interface()) + if err != nil { + return d.newError(start.Pos(), "error in marshaling Any.value field: %v", err) + } + + fds := m.Descriptor().Fields() + fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) + fdValue := fds.ByNumber(genid.Any_Value_field_number) + + m.Set(fdType, protoreflect.ValueOfString(typeURL)) + m.Set(fdValue, protoreflect.ValueOfBytes(b)) + return nil +} + +var errEmptyObject = fmt.Errorf(`empty object`) +var errMissingType = fmt.Errorf(`missing "@type" field`) + +// findTypeURL returns the token for the "@type" field value from the given +// JSON bytes. It is expected that the given bytes start with json.ObjectOpen. +// It returns errEmptyObject if the JSON object is empty or errMissingType if +// @type field does not exist. It returns other error if the @type field is not +// valid or other decoding issues. +func findTypeURL(d decoder) (json.Token, error) { + var typeURL string + var typeTok json.Token + numFields := 0 + // Skip start object. + d.Read() + +Loop: + for { + tok, err := d.Read() + if err != nil { + return json.Token{}, err + } + + switch tok.Kind() { + case json.ObjectClose: + if typeURL == "" { + // Did not find @type field. + if numFields > 0 { + return json.Token{}, errMissingType + } + return json.Token{}, errEmptyObject + } + break Loop + + case json.Name: + numFields++ + if tok.Name() != "@type" { + // Skip value. + if err := d.skipJSONValue(); err != nil { + return json.Token{}, err + } + continue + } + + // Return error if this was previously set already. + if typeURL != "" { + return json.Token{}, d.newError(tok.Pos(), `duplicate "@type" field`) + } + // Read field value. + tok, err := d.Read() + if err != nil { + return json.Token{}, err + } + if tok.Kind() != json.String { + return json.Token{}, d.newError(tok.Pos(), `@type field value is not a string: %v`, tok.RawString()) + } + typeURL = tok.ParsedString() + if typeURL == "" { + return json.Token{}, d.newError(tok.Pos(), `@type field contains empty value`) + } + typeTok = tok + } + } + + return typeTok, nil +} + +// skipJSONValue parses a JSON value (null, boolean, string, number, object and +// array) in order to advance the read to the next JSON value. It relies on +// the decoder returning an error if the types are not in valid sequence. +func (d decoder) skipJSONValue() error { + tok, err := d.Read() + if err != nil { + return err + } + // Only need to continue reading for objects and arrays. + switch tok.Kind() { + case json.ObjectOpen: + for { + tok, err := d.Read() + if err != nil { + return err + } + switch tok.Kind() { + case json.ObjectClose: + return nil + case json.Name: + // Skip object field value. + if err := d.skipJSONValue(); err != nil { + return err + } + } + } + + case json.ArrayOpen: + for { + tok, err := d.Peek() + if err != nil { + return err + } + switch tok.Kind() { + case json.ArrayClose: + d.Read() + return nil + default: + // Skip array item. + if err := d.skipJSONValue(); err != nil { + return err + } + } + } + } + return nil +} + +// unmarshalAnyValue unmarshals the given custom-type message from the JSON +// object's "value" field. +func (d decoder) unmarshalAnyValue(unmarshal unmarshalFunc, m protoreflect.Message) error { + // Skip ObjectOpen, and start reading the fields. + d.Read() + + var found bool // Used for detecting duplicate "value". + for { + tok, err := d.Read() + if err != nil { + return err + } + switch tok.Kind() { + case json.ObjectClose: + if !found { + return d.newError(tok.Pos(), `missing "value" field`) + } + return nil + + case json.Name: + switch tok.Name() { + case "@type": + // Skip the value as this was previously parsed already. + d.Read() + + case "value": + if found { + return d.newError(tok.Pos(), `duplicate "value" field`) + } + // Unmarshal the field value into the given message. + if err := unmarshal(d, m); err != nil { + return err + } + found = true + + default: + if d.opts.DiscardUnknown { + if err := d.skipJSONValue(); err != nil { + return err + } + continue + } + return d.newError(tok.Pos(), "unknown field %v", tok.RawString()) + } + } + } +} + +// Wrapper types are encoded as JSON primitives like string, number or boolean. + +func (e encoder) marshalWrapperType(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.WrapperValue_Value_field_number) + val := m.Get(fd) + return e.marshalSingular(val, fd) +} + +func (d decoder) unmarshalWrapperType(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.WrapperValue_Value_field_number) + val, err := d.unmarshalScalar(fd) + if err != nil { + return err + } + m.Set(fd, val) + return nil +} + +// The JSON representation for Empty is an empty JSON object. + +func (e encoder) marshalEmpty(protoreflect.Message) error { + e.StartObject() + e.EndObject() + return nil +} + +func (d decoder) unmarshalEmpty(protoreflect.Message) error { + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.ObjectOpen { + return d.unexpectedTokenError(tok) + } + + for { + tok, err := d.Read() + if err != nil { + return err + } + switch tok.Kind() { + case json.ObjectClose: + return nil + + case json.Name: + if d.opts.DiscardUnknown { + if err := d.skipJSONValue(); err != nil { + return err + } + continue + } + return d.newError(tok.Pos(), "unknown field %v", tok.RawString()) + + default: + return d.unexpectedTokenError(tok) + } + } +} + +// The JSON representation for Struct is a JSON object that contains the encoded +// Struct.fields map and follows the serialization rules for a map. + +func (e encoder) marshalStruct(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.Struct_Fields_field_number) + return e.marshalMap(m.Get(fd).Map(), fd) +} + +func (d decoder) unmarshalStruct(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.Struct_Fields_field_number) + return d.unmarshalMap(m.Mutable(fd).Map(), fd) +} + +// The JSON representation for ListValue is JSON array that contains the encoded +// ListValue.values repeated field and follows the serialization rules for a +// repeated field. + +func (e encoder) marshalListValue(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.ListValue_Values_field_number) + return e.marshalList(m.Get(fd).List(), fd) +} + +func (d decoder) unmarshalListValue(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.ListValue_Values_field_number) + return d.unmarshalList(m.Mutable(fd).List(), fd) +} + +// The JSON representation for a Value is dependent on the oneof field that is +// set. Each of the field in the oneof has its own custom serialization rule. A +// Value message needs to be a oneof field set, else it is an error. + +func (e encoder) marshalKnownValue(m protoreflect.Message) error { + od := m.Descriptor().Oneofs().ByName(genid.Value_Kind_oneof_name) + fd := m.WhichOneof(od) + if fd == nil { + return errors.New("%s: none of the oneof fields is set", genid.Value_message_fullname) + } + if fd.Number() == genid.Value_NumberValue_field_number { + if v := m.Get(fd).Float(); math.IsNaN(v) || math.IsInf(v, 0) { + return errors.New("%s: invalid %v value", genid.Value_NumberValue_field_fullname, v) + } + } + return e.marshalSingular(m.Get(fd), fd) +} + +func (d decoder) unmarshalKnownValue(m protoreflect.Message) error { + tok, err := d.Peek() + if err != nil { + return err + } + + var fd protoreflect.FieldDescriptor + var val protoreflect.Value + switch tok.Kind() { + case json.Null: + d.Read() + fd = m.Descriptor().Fields().ByNumber(genid.Value_NullValue_field_number) + val = protoreflect.ValueOfEnum(0) + + case json.Bool: + tok, err := d.Read() + if err != nil { + return err + } + fd = m.Descriptor().Fields().ByNumber(genid.Value_BoolValue_field_number) + val = protoreflect.ValueOfBool(tok.Bool()) + + case json.Number: + tok, err := d.Read() + if err != nil { + return err + } + fd = m.Descriptor().Fields().ByNumber(genid.Value_NumberValue_field_number) + var ok bool + val, ok = unmarshalFloat(tok, 64) + if !ok { + return d.newError(tok.Pos(), "invalid %v: %v", genid.Value_message_fullname, tok.RawString()) + } + + case json.String: + // A JSON string may have been encoded from the number_value field, + // e.g. "NaN", "Infinity", etc. Parsing a proto double type also allows + // for it to be in JSON string form. Given this custom encoding spec, + // however, there is no way to identify that and hence a JSON string is + // always assigned to the string_value field, which means that certain + // encoding cannot be parsed back to the same field. + tok, err := d.Read() + if err != nil { + return err + } + fd = m.Descriptor().Fields().ByNumber(genid.Value_StringValue_field_number) + val = protoreflect.ValueOfString(tok.ParsedString()) + + case json.ObjectOpen: + fd = m.Descriptor().Fields().ByNumber(genid.Value_StructValue_field_number) + val = m.NewField(fd) + if err := d.unmarshalStruct(val.Message()); err != nil { + return err + } + + case json.ArrayOpen: + fd = m.Descriptor().Fields().ByNumber(genid.Value_ListValue_field_number) + val = m.NewField(fd) + if err := d.unmarshalListValue(val.Message()); err != nil { + return err + } + + default: + return d.newError(tok.Pos(), "invalid %v: %v", genid.Value_message_fullname, tok.RawString()) + } + + m.Set(fd, val) + return nil +} + +// The JSON representation for a Duration is a JSON string that ends in the +// suffix "s" (indicating seconds) and is preceded by the number of seconds, +// with nanoseconds expressed as fractional seconds. +// +// Durations less than one second are represented with a 0 seconds field and a +// positive or negative nanos field. For durations of one second or more, a +// non-zero value for the nanos field must be of the same sign as the seconds +// field. +// +// Duration.seconds must be from -315,576,000,000 to +315,576,000,000 inclusive. +// Duration.nanos must be from -999,999,999 to +999,999,999 inclusive. + +const ( + secondsInNanos = 999999999 + maxSecondsInDuration = 315576000000 +) + +func (e encoder) marshalDuration(m protoreflect.Message) error { + fds := m.Descriptor().Fields() + fdSeconds := fds.ByNumber(genid.Duration_Seconds_field_number) + fdNanos := fds.ByNumber(genid.Duration_Nanos_field_number) + + secsVal := m.Get(fdSeconds) + nanosVal := m.Get(fdNanos) + secs := secsVal.Int() + nanos := nanosVal.Int() + if secs < -maxSecondsInDuration || secs > maxSecondsInDuration { + return errors.New("%s: seconds out of range %v", genid.Duration_message_fullname, secs) + } + if nanos < -secondsInNanos || nanos > secondsInNanos { + return errors.New("%s: nanos out of range %v", genid.Duration_message_fullname, nanos) + } + if (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0) { + return errors.New("%s: signs of seconds and nanos do not match", genid.Duration_message_fullname) + } + // Generated output always contains 0, 3, 6, or 9 fractional digits, + // depending on required precision, followed by the suffix "s". + var sign string + if secs < 0 || nanos < 0 { + sign, secs, nanos = "-", -1*secs, -1*nanos + } + x := fmt.Sprintf("%s%d.%09d", sign, secs, nanos) + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, ".000") + e.WriteString(x + "s") + return nil +} + +func (d decoder) unmarshalDuration(m protoreflect.Message) error { + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.String { + return d.unexpectedTokenError(tok) + } + + secs, nanos, ok := parseDuration(tok.ParsedString()) + if !ok { + return d.newError(tok.Pos(), "invalid %v value %v", genid.Duration_message_fullname, tok.RawString()) + } + // Validate seconds. No need to validate nanos because parseDuration would + // have covered that already. + if secs < -maxSecondsInDuration || secs > maxSecondsInDuration { + return d.newError(tok.Pos(), "%v value out of range: %v", genid.Duration_message_fullname, tok.RawString()) + } + + fds := m.Descriptor().Fields() + fdSeconds := fds.ByNumber(genid.Duration_Seconds_field_number) + fdNanos := fds.ByNumber(genid.Duration_Nanos_field_number) + + m.Set(fdSeconds, protoreflect.ValueOfInt64(secs)) + m.Set(fdNanos, protoreflect.ValueOfInt32(nanos)) + return nil +} + +// parseDuration parses the given input string for seconds and nanoseconds value +// for the Duration JSON format. The format is a decimal number with a suffix +// 's'. It can have optional plus/minus sign. There needs to be at least an +// integer or fractional part. Fractional part is limited to 9 digits only for +// nanoseconds precision, regardless of whether there are trailing zero digits. +// Example values are 1s, 0.1s, 1.s, .1s, +1s, -1s, -.1s. +func parseDuration(input string) (int64, int32, bool) { + b := []byte(input) + size := len(b) + if size < 2 { + return 0, 0, false + } + if b[size-1] != 's' { + return 0, 0, false + } + b = b[:size-1] + + // Read optional plus/minus symbol. + var neg bool + switch b[0] { + case '-': + neg = true + b = b[1:] + case '+': + b = b[1:] + } + if len(b) == 0 { + return 0, 0, false + } + + // Read the integer part. + var intp []byte + switch { + case b[0] == '0': + b = b[1:] + + case '1' <= b[0] && b[0] <= '9': + intp = b[0:] + b = b[1:] + n := 1 + for len(b) > 0 && '0' <= b[0] && b[0] <= '9' { + n++ + b = b[1:] + } + intp = intp[:n] + + case b[0] == '.': + // Continue below. + + default: + return 0, 0, false + } + + hasFrac := false + var frac [9]byte + if len(b) > 0 { + if b[0] != '.' { + return 0, 0, false + } + // Read the fractional part. + b = b[1:] + n := 0 + for len(b) > 0 && n < 9 && '0' <= b[0] && b[0] <= '9' { + frac[n] = b[0] + n++ + b = b[1:] + } + // It is not valid if there are more bytes left. + if len(b) > 0 { + return 0, 0, false + } + // Pad fractional part with 0s. + for i := n; i < 9; i++ { + frac[i] = '0' + } + hasFrac = true + } + + var secs int64 + if len(intp) > 0 { + var err error + secs, err = strconv.ParseInt(string(intp), 10, 64) + if err != nil { + return 0, 0, false + } + } + + var nanos int64 + if hasFrac { + nanob := bytes.TrimLeft(frac[:], "0") + if len(nanob) > 0 { + var err error + nanos, err = strconv.ParseInt(string(nanob), 10, 32) + if err != nil { + return 0, 0, false + } + } + } + + if neg { + if secs > 0 { + secs = -secs + } + if nanos > 0 { + nanos = -nanos + } + } + return secs, int32(nanos), true +} + +// The JSON representation for a Timestamp is a JSON string in the RFC 3339 +// format, i.e. "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" where +// {year} is always expressed using four digits while {month}, {day}, {hour}, +// {min}, and {sec} are zero-padded to two digits each. The fractional seconds, +// which can go up to 9 digits, up to 1 nanosecond resolution, is optional. The +// "Z" suffix indicates the timezone ("UTC"); the timezone is required. Encoding +// should always use UTC (as indicated by "Z") and a decoder should be able to +// accept both UTC and other timezones (as indicated by an offset). +// +// Timestamp.seconds must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z +// inclusive. +// Timestamp.nanos must be from 0 to 999,999,999 inclusive. + +const ( + maxTimestampSeconds = 253402300799 + minTimestampSeconds = -62135596800 +) + +func (e encoder) marshalTimestamp(m protoreflect.Message) error { + fds := m.Descriptor().Fields() + fdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number) + fdNanos := fds.ByNumber(genid.Timestamp_Nanos_field_number) + + secsVal := m.Get(fdSeconds) + nanosVal := m.Get(fdNanos) + secs := secsVal.Int() + nanos := nanosVal.Int() + if secs < minTimestampSeconds || secs > maxTimestampSeconds { + return errors.New("%s: seconds out of range %v", genid.Timestamp_message_fullname, secs) + } + if nanos < 0 || nanos > secondsInNanos { + return errors.New("%s: nanos out of range %v", genid.Timestamp_message_fullname, nanos) + } + // Uses RFC 3339, where generated output will be Z-normalized and uses 0, 3, + // 6 or 9 fractional digits. + t := time.Unix(secs, nanos).UTC() + x := t.Format("2006-01-02T15:04:05.000000000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, "000") + x = strings.TrimSuffix(x, ".000") + e.WriteString(x + "Z") + return nil +} + +func (d decoder) unmarshalTimestamp(m protoreflect.Message) error { + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.String { + return d.unexpectedTokenError(tok) + } + + s := tok.ParsedString() + t, err := time.Parse(time.RFC3339Nano, s) + if err != nil { + return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) + } + // Validate seconds. + secs := t.Unix() + if secs < minTimestampSeconds || secs > maxTimestampSeconds { + return d.newError(tok.Pos(), "%v value out of range: %v", genid.Timestamp_message_fullname, tok.RawString()) + } + // Validate subseconds. + i := strings.LastIndexByte(s, '.') // start of subsecond field + j := strings.LastIndexAny(s, "Z-+") // start of timezone field + if i >= 0 && j >= i && j-i > len(".999999999") { + return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) + } + + fds := m.Descriptor().Fields() + fdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number) + fdNanos := fds.ByNumber(genid.Timestamp_Nanos_field_number) + + m.Set(fdSeconds, protoreflect.ValueOfInt64(secs)) + m.Set(fdNanos, protoreflect.ValueOfInt32(int32(t.Nanosecond()))) + return nil +} + +// The JSON representation for a FieldMask is a JSON string where paths are +// separated by a comma. Fields name in each path are converted to/from +// lower-camel naming conventions. Encoding should fail if the path name would +// end up differently after a round-trip. + +func (e encoder) marshalFieldMask(m protoreflect.Message) error { + fd := m.Descriptor().Fields().ByNumber(genid.FieldMask_Paths_field_number) + list := m.Get(fd).List() + paths := make([]string, 0, list.Len()) + + for i := 0; i < list.Len(); i++ { + s := list.Get(i).String() + if !protoreflect.FullName(s).IsValid() { + return errors.New("%s contains invalid path: %q", genid.FieldMask_Paths_field_fullname, s) + } + // Return error if conversion to camelCase is not reversible. + cc := strs.JSONCamelCase(s) + if s != strs.JSONSnakeCase(cc) { + return errors.New("%s contains irreversible value %q", genid.FieldMask_Paths_field_fullname, s) + } + paths = append(paths, cc) + } + + e.WriteString(strings.Join(paths, ",")) + return nil +} + +func (d decoder) unmarshalFieldMask(m protoreflect.Message) error { + tok, err := d.Read() + if err != nil { + return err + } + if tok.Kind() != json.String { + return d.unexpectedTokenError(tok) + } + str := strings.TrimSpace(tok.ParsedString()) + if str == "" { + return nil + } + paths := strings.Split(str, ",") + + fd := m.Descriptor().Fields().ByNumber(genid.FieldMask_Paths_field_number) + list := m.Mutable(fd).List() + + for _, s0 := range paths { + s := strs.JSONSnakeCase(s0) + if strings.Contains(s0, "_") || !protoreflect.FullName(s).IsValid() { + return d.newError(tok.Pos(), "%v contains invalid path: %q", genid.FieldMask_Paths_field_fullname, s0) + } + list.Append(protoreflect.ValueOfString(s)) + } + return nil +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/decode.go index 77dbe1b5c8..4921b2d4a7 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/decode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/decode.go @@ -6,23 +6,23 @@ package prototext import ( "fmt" - "strings" "unicode/utf8" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/encoding/text" "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/fieldnum" "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/set" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) // Unmarshal reads the given []byte into the given proto.Message. +// The provided message must be mutable (e.g., a non-nil pointer to a message). func Unmarshal(b []byte, m proto.Message) error { return UnmarshalOptions{}.Unmarshal(b, m) } @@ -51,9 +51,17 @@ type UnmarshalOptions struct { } } -// Unmarshal reads the given []byte and populates the given proto.Message using options in -// UnmarshalOptions object. +// Unmarshal reads the given []byte and populates the given proto.Message +// using options in the UnmarshalOptions object. +// The provided message must be mutable (e.g., a non-nil pointer to a message). func (o UnmarshalOptions) Unmarshal(b []byte, m proto.Message) error { + return o.unmarshal(b, m) +} + +// unmarshal is a centralized function that all unmarshal operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for unmarshal that do not go through this. +func (o UnmarshalOptions) unmarshal(b []byte, m proto.Message) error { proto.Reset(m) if o.Resolver == nil { @@ -95,13 +103,13 @@ func (d decoder) syntaxError(pos int, f string, x ...interface{}) error { } // unmarshalMessage unmarshals into the given protoreflect.Message. -func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error { +func (d decoder) unmarshalMessage(m protoreflect.Message, checkDelims bool) error { messageDesc := m.Descriptor() if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { return errors.New("no support for proto1 MessageSets") } - if messageDesc.FullName() == "google.protobuf.Any" { + if messageDesc.FullName() == genid.Any_message_fullname { return d.unmarshalAny(m, checkDelims) } @@ -142,34 +150,24 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error { } // Resolve the field descriptor. - var name pref.Name - var fd pref.FieldDescriptor - var xt pref.ExtensionType + var name protoreflect.Name + var fd protoreflect.FieldDescriptor + var xt protoreflect.ExtensionType var xtErr error var isFieldNumberName bool switch tok.NameKind() { case text.IdentName: - name = pref.Name(tok.IdentName()) - fd = fieldDescs.ByName(name) - if fd == nil { - // The proto name of a group field is in all lowercase, - // while the textproto field name is the group message name. - gd := fieldDescs.ByName(pref.Name(strings.ToLower(string(name)))) - if gd != nil && gd.Kind() == pref.GroupKind && gd.Message().Name() == name { - fd = gd - } - } else if fd.Kind() == pref.GroupKind && fd.Message().Name() != name { - fd = nil // reset since field name is actually the message name - } + name = protoreflect.Name(tok.IdentName()) + fd = fieldDescs.ByTextName(string(name)) case text.TypeName: // Handle extensions only. This code path is not for Any. - xt, xtErr = d.findExtension(pref.FullName(tok.TypeName())) + xt, xtErr = d.opts.Resolver.FindExtensionByName(protoreflect.FullName(tok.TypeName())) case text.FieldNumber: isFieldNumberName = true - num := pref.FieldNumber(tok.FieldNumber()) + num := protoreflect.FieldNumber(tok.FieldNumber()) if !num.IsValid() { return d.newError(tok.Pos(), "invalid field number: %d", num) } @@ -217,7 +215,7 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error { switch { case fd.IsList(): kind := fd.Kind() - if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() { + if kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } @@ -234,7 +232,7 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error { default: kind := fd.Kind() - if kind != pref.MessageKind && kind != pref.GroupKind && !tok.HasSeparator() { + if kind != protoreflect.MessageKind && kind != protoreflect.GroupKind && !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } @@ -262,22 +260,13 @@ func (d decoder) unmarshalMessage(m pref.Message, checkDelims bool) error { return nil } -// findExtension returns protoreflect.ExtensionType from the Resolver if found. -func (d decoder) findExtension(xtName pref.FullName) (pref.ExtensionType, error) { - xt, err := d.opts.Resolver.FindExtensionByName(xtName) - if err == nil { - return xt, nil - } - return messageset.FindMessageSetExtension(d.opts.Resolver, xtName) -} - // unmarshalSingular unmarshals a non-repeated field value specified by the // given FieldDescriptor. -func (d decoder) unmarshalSingular(fd pref.FieldDescriptor, m pref.Message) error { - var val pref.Value +func (d decoder) unmarshalSingular(fd protoreflect.FieldDescriptor, m protoreflect.Message) error { + var val protoreflect.Value var err error switch fd.Kind() { - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: val = m.NewField(fd) err = d.unmarshalMessage(val.Message(), true) default: @@ -291,94 +280,94 @@ func (d decoder) unmarshalSingular(fd pref.FieldDescriptor, m pref.Message) erro // unmarshalScalar unmarshals a scalar/enum protoreflect.Value specified by the // given FieldDescriptor. -func (d decoder) unmarshalScalar(fd pref.FieldDescriptor) (pref.Value, error) { +func (d decoder) unmarshalScalar(fd protoreflect.FieldDescriptor) (protoreflect.Value, error) { tok, err := d.Read() if err != nil { - return pref.Value{}, err + return protoreflect.Value{}, err } if tok.Kind() != text.Scalar { - return pref.Value{}, d.unexpectedTokenError(tok) + return protoreflect.Value{}, d.unexpectedTokenError(tok) } kind := fd.Kind() switch kind { - case pref.BoolKind: + case protoreflect.BoolKind: if b, ok := tok.Bool(); ok { - return pref.ValueOfBool(b), nil + return protoreflect.ValueOfBool(b), nil } - case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: if n, ok := tok.Int32(); ok { - return pref.ValueOfInt32(n), nil + return protoreflect.ValueOfInt32(n), nil } - case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: if n, ok := tok.Int64(); ok { - return pref.ValueOfInt64(n), nil + return protoreflect.ValueOfInt64(n), nil } - case pref.Uint32Kind, pref.Fixed32Kind: + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: if n, ok := tok.Uint32(); ok { - return pref.ValueOfUint32(n), nil + return protoreflect.ValueOfUint32(n), nil } - case pref.Uint64Kind, pref.Fixed64Kind: + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: if n, ok := tok.Uint64(); ok { - return pref.ValueOfUint64(n), nil + return protoreflect.ValueOfUint64(n), nil } - case pref.FloatKind: + case protoreflect.FloatKind: if n, ok := tok.Float32(); ok { - return pref.ValueOfFloat32(n), nil + return protoreflect.ValueOfFloat32(n), nil } - case pref.DoubleKind: + case protoreflect.DoubleKind: if n, ok := tok.Float64(); ok { - return pref.ValueOfFloat64(n), nil + return protoreflect.ValueOfFloat64(n), nil } - case pref.StringKind: + case protoreflect.StringKind: if s, ok := tok.String(); ok { if strs.EnforceUTF8(fd) && !utf8.ValidString(s) { - return pref.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8") + return protoreflect.Value{}, d.newError(tok.Pos(), "contains invalid UTF-8") } - return pref.ValueOfString(s), nil + return protoreflect.ValueOfString(s), nil } - case pref.BytesKind: + case protoreflect.BytesKind: if b, ok := tok.String(); ok { - return pref.ValueOfBytes([]byte(b)), nil + return protoreflect.ValueOfBytes([]byte(b)), nil } - case pref.EnumKind: + case protoreflect.EnumKind: if lit, ok := tok.Enum(); ok { // Lookup EnumNumber based on name. - if enumVal := fd.Enum().Values().ByName(pref.Name(lit)); enumVal != nil { - return pref.ValueOfEnum(enumVal.Number()), nil + if enumVal := fd.Enum().Values().ByName(protoreflect.Name(lit)); enumVal != nil { + return protoreflect.ValueOfEnum(enumVal.Number()), nil } } if num, ok := tok.Int32(); ok { - return pref.ValueOfEnum(pref.EnumNumber(num)), nil + return protoreflect.ValueOfEnum(protoreflect.EnumNumber(num)), nil } default: panic(fmt.Sprintf("invalid scalar kind %v", kind)) } - return pref.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString()) + return protoreflect.Value{}, d.newError(tok.Pos(), "invalid value for %v type: %v", kind, tok.RawString()) } // unmarshalList unmarshals into given protoreflect.List. A list value can // either be in [] syntax or simply just a single scalar/message value. -func (d decoder) unmarshalList(fd pref.FieldDescriptor, list pref.List) error { +func (d decoder) unmarshalList(fd protoreflect.FieldDescriptor, list protoreflect.List) error { tok, err := d.Peek() if err != nil { return err } switch fd.Kind() { - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: switch tok.Kind() { case text.ListOpen: d.Read() @@ -452,22 +441,22 @@ func (d decoder) unmarshalList(fd pref.FieldDescriptor, list pref.List) error { // unmarshalMap unmarshals into given protoreflect.Map. A map value is a // textproto message containing {key: , value: }. -func (d decoder) unmarshalMap(fd pref.FieldDescriptor, mmap pref.Map) error { +func (d decoder) unmarshalMap(fd protoreflect.FieldDescriptor, mmap protoreflect.Map) error { // Determine ahead whether map entry is a scalar type or a message type in // order to call the appropriate unmarshalMapValue func inside // unmarshalMapEntry. - var unmarshalMapValue func() (pref.Value, error) + var unmarshalMapValue func() (protoreflect.Value, error) switch fd.MapValue().Kind() { - case pref.MessageKind, pref.GroupKind: - unmarshalMapValue = func() (pref.Value, error) { + case protoreflect.MessageKind, protoreflect.GroupKind: + unmarshalMapValue = func() (protoreflect.Value, error) { pval := mmap.NewValue() if err := d.unmarshalMessage(pval.Message(), true); err != nil { - return pref.Value{}, err + return protoreflect.Value{}, err } return pval, nil } default: - unmarshalMapValue = func() (pref.Value, error) { + unmarshalMapValue = func() (protoreflect.Value, error) { return d.unmarshalScalar(fd.MapValue()) } } @@ -505,9 +494,9 @@ func (d decoder) unmarshalMap(fd pref.FieldDescriptor, mmap pref.Map) error { // unmarshalMap unmarshals into given protoreflect.Map. A map value is a // textproto message containing {key: , value: }. -func (d decoder) unmarshalMapEntry(fd pref.FieldDescriptor, mmap pref.Map, unmarshalMapValue func() (pref.Value, error)) error { - var key pref.MapKey - var pval pref.Value +func (d decoder) unmarshalMapEntry(fd protoreflect.FieldDescriptor, mmap protoreflect.Map, unmarshalMapValue func() (protoreflect.Value, error)) error { + var key protoreflect.MapKey + var pval protoreflect.Value Loop: for { // Read field name. @@ -531,14 +520,13 @@ Loop: return d.unexpectedTokenError(tok) } - name := tok.IdentName() - switch name { - case "key": + switch name := protoreflect.Name(tok.IdentName()); name { + case genid.MapEntry_Key_field_name: if !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } if key.IsValid() { - return d.newError(tok.Pos(), `map entry "key" cannot be repeated`) + return d.newError(tok.Pos(), "map entry %q cannot be repeated", name) } val, err := d.unmarshalScalar(fd.MapKey()) if err != nil { @@ -546,14 +534,14 @@ Loop: } key = val.MapKey() - case "value": - if kind := fd.MapValue().Kind(); (kind != pref.MessageKind) && (kind != pref.GroupKind) { + case genid.MapEntry_Value_field_name: + if kind := fd.MapValue().Kind(); (kind != protoreflect.MessageKind) && (kind != protoreflect.GroupKind) { if !tok.HasSeparator() { return d.syntaxError(tok.Pos(), "missing field separator :") } } if pval.IsValid() { - return d.newError(tok.Pos(), `map entry "value" cannot be repeated`) + return d.newError(tok.Pos(), "map entry %q cannot be repeated", name) } pval, err = unmarshalMapValue() if err != nil { @@ -573,7 +561,7 @@ Loop: } if !pval.IsValid() { switch fd.MapValue().Kind() { - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: // If value field is not set for message/group types, construct an // empty one as default. pval = mmap.NewValue() @@ -587,16 +575,12 @@ Loop: // unmarshalAny unmarshals an Any textproto. It can either be in expanded form // or non-expanded form. -func (d decoder) unmarshalAny(m pref.Message, checkDelims bool) error { +func (d decoder) unmarshalAny(m protoreflect.Message, checkDelims bool) error { var typeURL string var bValue []byte - - // hasFields tracks which valid fields have been seen in the loop below in - // order to flag an error if there are duplicates or conflicts. It may - // contain the strings "type_url", "value" and "expanded". The literal - // "expanded" is used to indicate that the expanded form has been - // encountered already. - hasFields := map[string]bool{} + var seenTypeUrl bool + var seenValue bool + var isExpanded bool if checkDelims { tok, err := d.Read() @@ -635,12 +619,12 @@ Loop: return d.syntaxError(tok.Pos(), "missing field separator :") } - switch tok.IdentName() { - case "type_url": - if hasFields["type_url"] { - return d.newError(tok.Pos(), "duplicate Any type_url field") + switch name := protoreflect.Name(tok.IdentName()); name { + case genid.Any_TypeUrl_field_name: + if seenTypeUrl { + return d.newError(tok.Pos(), "duplicate %v field", genid.Any_TypeUrl_field_fullname) } - if hasFields["expanded"] { + if isExpanded { return d.newError(tok.Pos(), "conflict with [%s] field", typeURL) } tok, err := d.Read() @@ -650,15 +634,15 @@ Loop: var ok bool typeURL, ok = tok.String() if !ok { - return d.newError(tok.Pos(), "invalid Any type_url: %v", tok.RawString()) + return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_TypeUrl_field_fullname, tok.RawString()) } - hasFields["type_url"] = true + seenTypeUrl = true - case "value": - if hasFields["value"] { - return d.newError(tok.Pos(), "duplicate Any value field") + case genid.Any_Value_field_name: + if seenValue { + return d.newError(tok.Pos(), "duplicate %v field", genid.Any_Value_field_fullname) } - if hasFields["expanded"] { + if isExpanded { return d.newError(tok.Pos(), "conflict with [%s] field", typeURL) } tok, err := d.Read() @@ -667,22 +651,22 @@ Loop: } s, ok := tok.String() if !ok { - return d.newError(tok.Pos(), "invalid Any value: %v", tok.RawString()) + return d.newError(tok.Pos(), "invalid %v field value: %v", genid.Any_Value_field_fullname, tok.RawString()) } bValue = []byte(s) - hasFields["value"] = true + seenValue = true default: if !d.opts.DiscardUnknown { - return d.newError(tok.Pos(), "invalid field name %q in google.protobuf.Any message", tok.RawString()) + return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname) } } case text.TypeName: - if hasFields["expanded"] { + if isExpanded { return d.newError(tok.Pos(), "cannot have more than one type") } - if hasFields["type_url"] { + if seenTypeUrl { return d.newError(tok.Pos(), "conflict with type_url field") } typeURL = tok.TypeName() @@ -691,21 +675,21 @@ Loop: if err != nil { return err } - hasFields["expanded"] = true + isExpanded = true default: if !d.opts.DiscardUnknown { - return d.newError(tok.Pos(), "invalid field name %q in google.protobuf.Any message", tok.RawString()) + return d.newError(tok.Pos(), "invalid field name %q in %v message", tok.RawString(), genid.Any_message_fullname) } } } fds := m.Descriptor().Fields() if len(typeURL) > 0 { - m.Set(fds.ByNumber(fieldnum.Any_TypeUrl), pref.ValueOfString(typeURL)) + m.Set(fds.ByNumber(genid.Any_TypeUrl_field_number), protoreflect.ValueOfString(typeURL)) } if len(bValue) > 0 { - m.Set(fds.ByNumber(fieldnum.Any_Value), pref.ValueOfBytes(bValue)) + m.Set(fds.ByNumber(genid.Any_Value_field_number), protoreflect.ValueOfBytes(bValue)) } return nil } @@ -760,9 +744,6 @@ func (d decoder) skipValue() error { // Skip items. This will not validate whether skipped values are // of the same type or not, same behavior as C++ // TextFormat::Parser::AllowUnknownField(true) version 3.8.0. - if err := d.skipValue(); err != nil { - return err - } } } } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/encode.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/encode.go index dece229730..ebf6c65284 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/encode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/prototext/encode.go @@ -6,7 +6,6 @@ package prototext import ( "fmt" - "sort" "strconv" "unicode/utf8" @@ -14,13 +13,13 @@ import ( "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/encoding/text" "google.golang.org/protobuf/internal/errors" - "google.golang.org/protobuf/internal/fieldnum" "google.golang.org/protobuf/internal/flags" - "google.golang.org/protobuf/internal/mapsort" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) @@ -102,6 +101,13 @@ func (o MarshalOptions) Format(m proto.Message) string { // MarshalOptions object. Do not depend on the output being stable. It may // change over time across different versions of the program. func (o MarshalOptions) Marshal(m proto.Message) ([]byte, error) { + return o.marshal(m) +} + +// marshal is a centralized function that all marshal operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for marshal that do not go through this. +func (o MarshalOptions) marshal(m proto.Message) ([]byte, error) { var delims = [2]byte{'{', '}'} if o.Multiline && o.Indent == "" { @@ -143,7 +149,7 @@ type encoder struct { } // marshalMessage marshals the given protoreflect.Message. -func (e encoder) marshalMessage(m pref.Message, inclDelims bool) error { +func (e encoder) marshalMessage(m protoreflect.Message, inclDelims bool) error { messageDesc := m.Descriptor() if !flags.ProtoLegacy && messageset.IsMessageSet(messageDesc) { return errors.New("no support for proto1 MessageSets") @@ -155,42 +161,22 @@ func (e encoder) marshalMessage(m pref.Message, inclDelims bool) error { } // Handle Any expansion. - if messageDesc.FullName() == "google.protobuf.Any" { + if messageDesc.FullName() == genid.Any_message_fullname { if e.marshalAny(m) { return nil } // If unable to expand, continue on to marshal Any as a regular message. } - // Marshal known fields. - fieldDescs := messageDesc.Fields() - size := fieldDescs.Len() - for i := 0; i < size; { - fd := fieldDescs.Get(i) - if od := fd.ContainingOneof(); od != nil { - fd = m.WhichOneof(od) - i += od.Fields().Len() - } else { - i++ - } - - if fd == nil || !m.Has(fd) { - continue - } - - name := fd.Name() - // Use type name for group field name. - if fd.Kind() == pref.GroupKind { - name = fd.Message().Name() - } - val := m.Get(fd) - if err := e.marshalField(string(name), val, fd); err != nil { - return err + // Marshal fields. + var err error + order.RangeFields(m, order.IndexNameFieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + if err = e.marshalField(fd.TextName(), v, fd); err != nil { + return false } - } - - // Marshal extensions. - if err := e.marshalExtensions(m); err != nil { + return true + }) + if err != nil { return err } @@ -203,7 +189,7 @@ func (e encoder) marshalMessage(m pref.Message, inclDelims bool) error { } // marshalField marshals the given field with protoreflect.Value. -func (e encoder) marshalField(name string, val pref.Value, fd pref.FieldDescriptor) error { +func (e encoder) marshalField(name string, val protoreflect.Value, fd protoreflect.FieldDescriptor) error { switch { case fd.IsList(): return e.marshalList(name, val.List(), fd) @@ -217,40 +203,40 @@ func (e encoder) marshalField(name string, val pref.Value, fd pref.FieldDescript // marshalSingular marshals the given non-repeated field value. This includes // all scalar types, enums, messages, and groups. -func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error { +func (e encoder) marshalSingular(val protoreflect.Value, fd protoreflect.FieldDescriptor) error { kind := fd.Kind() switch kind { - case pref.BoolKind: + case protoreflect.BoolKind: e.WriteBool(val.Bool()) - case pref.StringKind: + case protoreflect.StringKind: s := val.String() if !e.opts.allowInvalidUTF8 && strs.EnforceUTF8(fd) && !utf8.ValidString(s) { return errors.InvalidUTF8(string(fd.FullName())) } e.WriteString(s) - case pref.Int32Kind, pref.Int64Kind, - pref.Sint32Kind, pref.Sint64Kind, - pref.Sfixed32Kind, pref.Sfixed64Kind: + case protoreflect.Int32Kind, protoreflect.Int64Kind, + protoreflect.Sint32Kind, protoreflect.Sint64Kind, + protoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind: e.WriteInt(val.Int()) - case pref.Uint32Kind, pref.Uint64Kind, - pref.Fixed32Kind, pref.Fixed64Kind: + case protoreflect.Uint32Kind, protoreflect.Uint64Kind, + protoreflect.Fixed32Kind, protoreflect.Fixed64Kind: e.WriteUint(val.Uint()) - case pref.FloatKind: + case protoreflect.FloatKind: // Encoder.WriteFloat handles the special numbers NaN and infinites. e.WriteFloat(val.Float(), 32) - case pref.DoubleKind: + case protoreflect.DoubleKind: // Encoder.WriteFloat handles the special numbers NaN and infinites. e.WriteFloat(val.Float(), 64) - case pref.BytesKind: + case protoreflect.BytesKind: e.WriteString(string(val.Bytes())) - case pref.EnumKind: + case protoreflect.EnumKind: num := val.Enum() if desc := fd.Enum().Values().ByNumber(num); desc != nil { e.WriteLiteral(string(desc.Name())) @@ -259,7 +245,7 @@ func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error e.WriteInt(int64(num)) } - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: return e.marshalMessage(val.Message(), true) default: @@ -269,7 +255,7 @@ func (e encoder) marshalSingular(val pref.Value, fd pref.FieldDescriptor) error } // marshalList marshals the given protoreflect.List as multiple name-value fields. -func (e encoder) marshalList(name string, list pref.List, fd pref.FieldDescriptor) error { +func (e encoder) marshalList(name string, list protoreflect.List, fd protoreflect.FieldDescriptor) error { size := list.Len() for i := 0; i < size; i++ { e.WriteName(name) @@ -281,20 +267,20 @@ func (e encoder) marshalList(name string, list pref.List, fd pref.FieldDescripto } // marshalMap marshals the given protoreflect.Map as multiple name-value fields. -func (e encoder) marshalMap(name string, mmap pref.Map, fd pref.FieldDescriptor) error { +func (e encoder) marshalMap(name string, mmap protoreflect.Map, fd protoreflect.FieldDescriptor) error { var err error - mapsort.Range(mmap, fd.MapKey().Kind(), func(key pref.MapKey, val pref.Value) bool { + order.RangeEntries(mmap, order.GenericKeyOrder, func(key protoreflect.MapKey, val protoreflect.Value) bool { e.WriteName(name) e.StartMessage() defer e.EndMessage() - e.WriteName("key") + e.WriteName(string(genid.MapEntry_Key_field_name)) err = e.marshalSingular(key.Value(), fd.MapKey()) if err != nil { return false } - e.WriteName("value") + e.WriteName(string(genid.MapEntry_Value_field_name)) err = e.marshalSingular(val, fd.MapValue()) if err != nil { return false @@ -304,48 +290,6 @@ func (e encoder) marshalMap(name string, mmap pref.Map, fd pref.FieldDescriptor) return err } -// marshalExtensions marshals extension fields. -func (e encoder) marshalExtensions(m pref.Message) error { - type entry struct { - key string - value pref.Value - desc pref.FieldDescriptor - } - - // Get a sorted list based on field key first. - var entries []entry - m.Range(func(fd pref.FieldDescriptor, v pref.Value) bool { - if !fd.IsExtension() { - return true - } - // For MessageSet extensions, the name used is the parent message. - name := fd.FullName() - if messageset.IsMessageSetExtension(fd) { - name = name.Parent() - } - entries = append(entries, entry{ - key: string(name), - value: v, - desc: fd, - }) - return true - }) - // Sort extensions lexicographically. - sort.Slice(entries, func(i, j int) bool { - return entries[i].key < entries[j].key - }) - - // Write out sorted list. - for _, entry := range entries { - // Extension field name is the proto field name enclosed in []. - name := "[" + entry.key + "]" - if err := e.marshalField(name, entry.value, entry.desc); err != nil { - return err - } - } - return nil -} - // marshalUnknown parses the given []byte and marshals fields out. // This function assumes proper encoding in the given []byte. func (e encoder) marshalUnknown(b []byte) { @@ -389,10 +333,10 @@ func (e encoder) marshalUnknown(b []byte) { // marshalAny marshals the given google.protobuf.Any message in expanded form. // It returns true if it was able to marshal, else false. -func (e encoder) marshalAny(any pref.Message) bool { +func (e encoder) marshalAny(any protoreflect.Message) bool { // Construct the embedded message. fds := any.Descriptor().Fields() - fdType := fds.ByNumber(fieldnum.Any_TypeUrl) + fdType := fds.ByNumber(genid.Any_TypeUrl_field_number) typeURL := any.Get(fdType).String() mt, err := e.opts.Resolver.FindMessageByURL(typeURL) if err != nil { @@ -401,7 +345,7 @@ func (e encoder) marshalAny(any pref.Message) bool { m := mt.New().Interface() // Unmarshal bytes into embedded message. - fdValue := fds.ByNumber(fieldnum.Any_Value) + fdValue := fds.ByNumber(genid.Any_Value_field_number) value := any.Get(fdValue) err = proto.UnmarshalOptions{ AllowPartial: true, diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go index a427f8b704..f4b4686cf9 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go @@ -3,7 +3,7 @@ // license that can be found in the LICENSE file. // Package protowire parses and formats the raw wire encoding. -// See https://developers.google.com/protocol-buffers/docs/encoding. +// See https://protobuf.dev/programming-guides/encoding. // // For marshaling and unmarshaling entire protobuf messages, // use the "google.golang.org/protobuf/proto" package instead. @@ -21,19 +21,16 @@ import ( type Number int32 const ( - MinValidNumber Number = 1 - FirstReservedNumber Number = 19000 - LastReservedNumber Number = 19999 - MaxValidNumber Number = 1<<29 - 1 + MinValidNumber Number = 1 + FirstReservedNumber Number = 19000 + LastReservedNumber Number = 19999 + MaxValidNumber Number = 1<<29 - 1 + DefaultRecursionLimit = 10000 ) // IsValid reports whether the field number is semantically valid. -// -// Note that while numbers within the reserved range are semantically invalid, -// they are syntactically valid in the wire format. -// Implementations may treat records with reserved field numbers as unknown. func (n Number) IsValid() bool { - return MinValidNumber <= n && n < FirstReservedNumber || LastReservedNumber < n && n <= MaxValidNumber + return MinValidNumber <= n && n <= MaxValidNumber } // Type represents the wire type. @@ -55,6 +52,7 @@ const ( errCodeOverflow errCodeReserved errCodeEndGroup + errCodeRecursionDepth ) var ( @@ -112,6 +110,10 @@ func ConsumeField(b []byte) (Number, Type, int) { // When parsing a group, the length includes the end group marker and // the end group is verified to match the starting field number. func ConsumeFieldValue(num Number, typ Type, b []byte) (n int) { + return consumeFieldValueD(num, typ, b, DefaultRecursionLimit) +} + +func consumeFieldValueD(num Number, typ Type, b []byte, depth int) (n int) { switch typ { case VarintType: _, n = ConsumeVarint(b) @@ -126,6 +128,9 @@ func ConsumeFieldValue(num Number, typ Type, b []byte) (n int) { _, n = ConsumeBytes(b) return n case StartGroupType: + if depth < 0 { + return errCodeRecursionDepth + } n0 := len(b) for { num2, typ2, n := ConsumeTag(b) @@ -140,7 +145,7 @@ func ConsumeFieldValue(num Number, typ Type, b []byte) (n int) { return n0 - len(b) } - n = ConsumeFieldValue(num2, typ2, b) + n = consumeFieldValueD(num2, typ2, b, depth-1) if n < 0 { return n // forward error code } @@ -507,6 +512,7 @@ func EncodeTag(num Number, typ Type) uint64 { } // DecodeZigZag decodes a zig-zag-encoded uint64 as an int64. +// // Input: {…, 5, 3, 1, 0, 2, 4, 6, …} // Output: {…, -3, -2, -1, 0, +1, +2, +3, …} func DecodeZigZag(x uint64) int64 { @@ -514,6 +520,7 @@ func DecodeZigZag(x uint64) int64 { } // EncodeZigZag encodes an int64 as a zig-zag-encoded uint64. +// // Input: {…, -3, -2, -1, 0, +1, +2, +3, …} // Output: {…, 5, 3, 1, 0, 2, 4, 6, …} func EncodeZigZag(x int64) uint64 { @@ -521,6 +528,7 @@ func EncodeZigZag(x int64) uint64 { } // DecodeBool decodes a uint64 as a bool. +// // Input: { 0, 1, 2, …} // Output: {false, true, true, …} func DecodeBool(x uint64) bool { @@ -528,6 +536,7 @@ func DecodeBool(x uint64) bool { } // EncodeBool encodes a bool as a uint64. +// // Input: {false, true} // Output: { 0, 1} func EncodeBool(x bool) uint64 { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go index e7af0fe0de..db5248e1b5 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/descfmt/stringer.go @@ -14,7 +14,7 @@ import ( "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/pragma" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) type list interface { @@ -30,35 +30,37 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { if isRoot { var name string switch vs.(type) { - case pref.Names: + case protoreflect.Names: name = "Names" - case pref.FieldNumbers: + case protoreflect.FieldNumbers: name = "FieldNumbers" - case pref.FieldRanges: + case protoreflect.FieldRanges: name = "FieldRanges" - case pref.EnumRanges: + case protoreflect.EnumRanges: name = "EnumRanges" - case pref.FileImports: + case protoreflect.FileImports: name = "FileImports" - case pref.Descriptor: + case protoreflect.Descriptor: name = reflect.ValueOf(vs).MethodByName("Get").Type().Out(0).Name() + "s" + default: + name = reflect.ValueOf(vs).Elem().Type().Name() } start, end = name+"{", "}" } var ss []string switch vs := vs.(type) { - case pref.Names: + case protoreflect.Names: for i := 0; i < vs.Len(); i++ { ss = append(ss, fmt.Sprint(vs.Get(i))) } return start + joinStrings(ss, false) + end - case pref.FieldNumbers: + case protoreflect.FieldNumbers: for i := 0; i < vs.Len(); i++ { ss = append(ss, fmt.Sprint(vs.Get(i))) } return start + joinStrings(ss, false) + end - case pref.FieldRanges: + case protoreflect.FieldRanges: for i := 0; i < vs.Len(); i++ { r := vs.Get(i) if r[0]+1 == r[1] { @@ -68,7 +70,7 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { } } return start + joinStrings(ss, false) + end - case pref.EnumRanges: + case protoreflect.EnumRanges: for i := 0; i < vs.Len(); i++ { r := vs.Get(i) if r[0] == r[1] { @@ -78,7 +80,7 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { } } return start + joinStrings(ss, false) + end - case pref.FileImports: + case protoreflect.FileImports: for i := 0; i < vs.Len(); i++ { var rs records rs.Append(reflect.ValueOf(vs.Get(i)), "Path", "Package", "IsPublic", "IsWeak") @@ -86,11 +88,11 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { } return start + joinStrings(ss, allowMulti) + end default: - _, isEnumValue := vs.(pref.EnumValueDescriptors) + _, isEnumValue := vs.(protoreflect.EnumValueDescriptors) for i := 0; i < vs.Len(); i++ { m := reflect.ValueOf(vs).MethodByName("Get") v := m.Call([]reflect.Value{reflect.ValueOf(i)})[0].Interface() - ss = append(ss, formatDescOpt(v.(pref.Descriptor), false, allowMulti && !isEnumValue)) + ss = append(ss, formatDescOpt(v.(protoreflect.Descriptor), false, allowMulti && !isEnumValue)) } return start + joinStrings(ss, allowMulti && isEnumValue) + end } @@ -104,20 +106,20 @@ func formatListOpt(vs list, isRoot, allowMulti bool) string { // // Using a list allows us to print the accessors in a sensible order. var descriptorAccessors = map[reflect.Type][]string{ - reflect.TypeOf((*pref.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, - reflect.TypeOf((*pref.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, - reflect.TypeOf((*pref.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, - reflect.TypeOf((*pref.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt - reflect.TypeOf((*pref.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, - reflect.TypeOf((*pref.EnumValueDescriptor)(nil)).Elem(): {"Number"}, - reflect.TypeOf((*pref.ServiceDescriptor)(nil)).Elem(): {"Methods"}, - reflect.TypeOf((*pref.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, + reflect.TypeOf((*protoreflect.FileDescriptor)(nil)).Elem(): {"Path", "Package", "Imports", "Messages", "Enums", "Extensions", "Services"}, + reflect.TypeOf((*protoreflect.MessageDescriptor)(nil)).Elem(): {"IsMapEntry", "Fields", "Oneofs", "ReservedNames", "ReservedRanges", "RequiredNumbers", "ExtensionRanges", "Messages", "Enums", "Extensions"}, + reflect.TypeOf((*protoreflect.FieldDescriptor)(nil)).Elem(): {"Number", "Cardinality", "Kind", "HasJSONName", "JSONName", "HasPresence", "IsExtension", "IsPacked", "IsWeak", "IsList", "IsMap", "MapKey", "MapValue", "HasDefault", "Default", "ContainingOneof", "ContainingMessage", "Message", "Enum"}, + reflect.TypeOf((*protoreflect.OneofDescriptor)(nil)).Elem(): {"Fields"}, // not directly used; must keep in sync with formatDescOpt + reflect.TypeOf((*protoreflect.EnumDescriptor)(nil)).Elem(): {"Values", "ReservedNames", "ReservedRanges"}, + reflect.TypeOf((*protoreflect.EnumValueDescriptor)(nil)).Elem(): {"Number"}, + reflect.TypeOf((*protoreflect.ServiceDescriptor)(nil)).Elem(): {"Methods"}, + reflect.TypeOf((*protoreflect.MethodDescriptor)(nil)).Elem(): {"Input", "Output", "IsStreamingClient", "IsStreamingServer"}, } -func FormatDesc(s fmt.State, r rune, t pref.Descriptor) { +func FormatDesc(s fmt.State, r rune, t protoreflect.Descriptor) { io.WriteString(s, formatDescOpt(t, true, r == 'v' && (s.Flag('+') || s.Flag('#')))) } -func formatDescOpt(t pref.Descriptor, isRoot, allowMulti bool) string { +func formatDescOpt(t protoreflect.Descriptor, isRoot, allowMulti bool) string { rv := reflect.ValueOf(t) rt := rv.MethodByName("ProtoType").Type().In(0) @@ -126,7 +128,7 @@ func formatDescOpt(t pref.Descriptor, isRoot, allowMulti bool) string { start = rt.Name() + "{" } - _, isFile := t.(pref.FileDescriptor) + _, isFile := t.(protoreflect.FileDescriptor) rs := records{allowMulti: allowMulti} if t.IsPlaceholder() { if isFile { @@ -144,7 +146,7 @@ func formatDescOpt(t pref.Descriptor, isRoot, allowMulti bool) string { rs.Append(rv, "Name") } switch t := t.(type) { - case pref.FieldDescriptor: + case protoreflect.FieldDescriptor: for _, s := range descriptorAccessors[rt] { switch s { case "MapKey": @@ -154,9 +156,9 @@ func formatDescOpt(t pref.Descriptor, isRoot, allowMulti bool) string { case "MapValue": if v := t.MapValue(); v != nil { switch v.Kind() { - case pref.EnumKind: + case protoreflect.EnumKind: rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Enum().FullName())}) - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: rs.recs = append(rs.recs, [2]string{"MapValue", string(v.Message().FullName())}) default: rs.recs = append(rs.recs, [2]string{"MapValue", v.Kind().String()}) @@ -178,7 +180,7 @@ func formatDescOpt(t pref.Descriptor, isRoot, allowMulti bool) string { rs.Append(rv, s) } } - case pref.OneofDescriptor: + case protoreflect.OneofDescriptor: var ss []string fs := t.Fields() for i := 0; i < fs.Len(); i++ { @@ -214,7 +216,7 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { if !rv.IsValid() { panic(fmt.Sprintf("unknown accessor: %v.%s", v.Type(), a)) } - if _, ok := rv.Interface().(pref.Value); ok { + if _, ok := rv.Interface().(protoreflect.Value); ok { rv = rv.MethodByName("Interface").Call(nil)[0] if !rv.IsNil() { rv = rv.Elem() @@ -248,9 +250,9 @@ func (rs *records) Append(v reflect.Value, accessors ...string) { switch v := v.(type) { case list: s = formatListOpt(v, false, rs.allowMulti) - case pref.FieldDescriptor, pref.OneofDescriptor, pref.EnumValueDescriptor, pref.MethodDescriptor: - s = string(v.(pref.Descriptor).Name()) - case pref.Descriptor: + case protoreflect.FieldDescriptor, protoreflect.OneofDescriptor, protoreflect.EnumValueDescriptor, protoreflect.MethodDescriptor: + s = string(v.(protoreflect.Descriptor).Name()) + case protoreflect.Descriptor: s = string(v.FullName()) case string: s = strconv.Quote(v) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/detrand/rand.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/detrand/rand.go index a904dd1f91..49c8676d48 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/detrand/rand.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/detrand/rand.go @@ -26,6 +26,14 @@ func Bool() bool { return randSeed%2 == 1 } +// Intn returns a deterministically random integer between 0 and n-1, inclusive. +func Intn(n int) int { + if n <= 0 { + panic("must be positive") + } + return int(randSeed % uint64(n)) +} + // randSeed is a best-effort at an approximate hash of the Go binary. var randSeed = binaryHash() diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go index fdd9b13f2f..328dc733b0 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/defval/default.go @@ -15,8 +15,8 @@ import ( "strconv" ptext "google.golang.org/protobuf/internal/encoding/text" - errors "google.golang.org/protobuf/internal/errors" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/reflect/protoreflect" ) // Format is the serialization format used to represent the default value. @@ -35,56 +35,56 @@ const ( // Unmarshal deserializes the default string s according to the given kind k. // When k is an enum, a list of enum value descriptors must be provided. -func Unmarshal(s string, k pref.Kind, evs pref.EnumValueDescriptors, f Format) (pref.Value, pref.EnumValueDescriptor, error) { +func Unmarshal(s string, k protoreflect.Kind, evs protoreflect.EnumValueDescriptors, f Format) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { switch k { - case pref.BoolKind: + case protoreflect.BoolKind: if f == GoTag { switch s { case "1": - return pref.ValueOfBool(true), nil, nil + return protoreflect.ValueOfBool(true), nil, nil case "0": - return pref.ValueOfBool(false), nil, nil + return protoreflect.ValueOfBool(false), nil, nil } } else { switch s { case "true": - return pref.ValueOfBool(true), nil, nil + return protoreflect.ValueOfBool(true), nil, nil case "false": - return pref.ValueOfBool(false), nil, nil + return protoreflect.ValueOfBool(false), nil, nil } } - case pref.EnumKind: + case protoreflect.EnumKind: if f == GoTag { // Go tags use the numeric form of the enum value. if n, err := strconv.ParseInt(s, 10, 32); err == nil { - if ev := evs.ByNumber(pref.EnumNumber(n)); ev != nil { - return pref.ValueOfEnum(ev.Number()), ev, nil + if ev := evs.ByNumber(protoreflect.EnumNumber(n)); ev != nil { + return protoreflect.ValueOfEnum(ev.Number()), ev, nil } } } else { // Descriptor default_value use the enum identifier. - ev := evs.ByName(pref.Name(s)) + ev := evs.ByName(protoreflect.Name(s)) if ev != nil { - return pref.ValueOfEnum(ev.Number()), ev, nil + return protoreflect.ValueOfEnum(ev.Number()), ev, nil } } - case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: if v, err := strconv.ParseInt(s, 10, 32); err == nil { - return pref.ValueOfInt32(int32(v)), nil, nil + return protoreflect.ValueOfInt32(int32(v)), nil, nil } - case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: if v, err := strconv.ParseInt(s, 10, 64); err == nil { - return pref.ValueOfInt64(int64(v)), nil, nil + return protoreflect.ValueOfInt64(int64(v)), nil, nil } - case pref.Uint32Kind, pref.Fixed32Kind: + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: if v, err := strconv.ParseUint(s, 10, 32); err == nil { - return pref.ValueOfUint32(uint32(v)), nil, nil + return protoreflect.ValueOfUint32(uint32(v)), nil, nil } - case pref.Uint64Kind, pref.Fixed64Kind: + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: if v, err := strconv.ParseUint(s, 10, 64); err == nil { - return pref.ValueOfUint64(uint64(v)), nil, nil + return protoreflect.ValueOfUint64(uint64(v)), nil, nil } - case pref.FloatKind, pref.DoubleKind: + case protoreflect.FloatKind, protoreflect.DoubleKind: var v float64 var err error switch s { @@ -98,29 +98,29 @@ func Unmarshal(s string, k pref.Kind, evs pref.EnumValueDescriptors, f Format) ( v, err = strconv.ParseFloat(s, 64) } if err == nil { - if k == pref.FloatKind { - return pref.ValueOfFloat32(float32(v)), nil, nil + if k == protoreflect.FloatKind { + return protoreflect.ValueOfFloat32(float32(v)), nil, nil } else { - return pref.ValueOfFloat64(float64(v)), nil, nil + return protoreflect.ValueOfFloat64(float64(v)), nil, nil } } - case pref.StringKind: + case protoreflect.StringKind: // String values are already unescaped and can be used as is. - return pref.ValueOfString(s), nil, nil - case pref.BytesKind: + return protoreflect.ValueOfString(s), nil, nil + case protoreflect.BytesKind: if b, ok := unmarshalBytes(s); ok { - return pref.ValueOfBytes(b), nil, nil + return protoreflect.ValueOfBytes(b), nil, nil } } - return pref.Value{}, nil, errors.New("could not parse value for %v: %q", k, s) + return protoreflect.Value{}, nil, errors.New("could not parse value for %v: %q", k, s) } // Marshal serializes v as the default string according to the given kind k. // When specifying the Descriptor format for an enum kind, the associated // enum value descriptor must be provided. -func Marshal(v pref.Value, ev pref.EnumValueDescriptor, k pref.Kind, f Format) (string, error) { +func Marshal(v protoreflect.Value, ev protoreflect.EnumValueDescriptor, k protoreflect.Kind, f Format) (string, error) { switch k { - case pref.BoolKind: + case protoreflect.BoolKind: if f == GoTag { if v.Bool() { return "1", nil @@ -134,17 +134,17 @@ func Marshal(v pref.Value, ev pref.EnumValueDescriptor, k pref.Kind, f Format) ( return "false", nil } } - case pref.EnumKind: + case protoreflect.EnumKind: if f == GoTag { return strconv.FormatInt(int64(v.Enum()), 10), nil } else { return string(ev.Name()), nil } - case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind, pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: return strconv.FormatInt(v.Int(), 10), nil - case pref.Uint32Kind, pref.Fixed32Kind, pref.Uint64Kind, pref.Fixed64Kind: + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, protoreflect.Uint64Kind, protoreflect.Fixed64Kind: return strconv.FormatUint(v.Uint(), 10), nil - case pref.FloatKind, pref.DoubleKind: + case protoreflect.FloatKind, protoreflect.DoubleKind: f := v.Float() switch { case math.IsInf(f, -1): @@ -154,16 +154,16 @@ func Marshal(v pref.Value, ev pref.EnumValueDescriptor, k pref.Kind, f Format) ( case math.IsNaN(f): return "nan", nil default: - if k == pref.FloatKind { + if k == protoreflect.FloatKind { return strconv.FormatFloat(f, 'g', -1, 32), nil } else { return strconv.FormatFloat(f, 'g', -1, 64), nil } } - case pref.StringKind: + case protoreflect.StringKind: // String values are serialized as is without any escaping. return v.String(), nil - case pref.BytesKind: + case protoreflect.BytesKind: if s, ok := marshalBytes(v.Bytes()); ok { return s, nil } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go new file mode 100644 index 0000000000..d043a6ebe0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go @@ -0,0 +1,340 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package json + +import ( + "bytes" + "fmt" + "io" + "regexp" + "unicode/utf8" + + "google.golang.org/protobuf/internal/errors" +) + +// call specifies which Decoder method was invoked. +type call uint8 + +const ( + readCall call = iota + peekCall +) + +const unexpectedFmt = "unexpected token %s" + +// ErrUnexpectedEOF means that EOF was encountered in the middle of the input. +var ErrUnexpectedEOF = errors.New("%v", io.ErrUnexpectedEOF) + +// Decoder is a token-based JSON decoder. +type Decoder struct { + // lastCall is last method called, either readCall or peekCall. + // Initial value is readCall. + lastCall call + + // lastToken contains the last read token. + lastToken Token + + // lastErr contains the last read error. + lastErr error + + // openStack is a stack containing ObjectOpen and ArrayOpen values. The + // top of stack represents the object or the array the current value is + // directly located in. + openStack []Kind + + // orig is used in reporting line and column. + orig []byte + // in contains the unconsumed input. + in []byte +} + +// NewDecoder returns a Decoder to read the given []byte. +func NewDecoder(b []byte) *Decoder { + return &Decoder{orig: b, in: b} +} + +// Peek looks ahead and returns the next token kind without advancing a read. +func (d *Decoder) Peek() (Token, error) { + defer func() { d.lastCall = peekCall }() + if d.lastCall == readCall { + d.lastToken, d.lastErr = d.Read() + } + return d.lastToken, d.lastErr +} + +// Read returns the next JSON token. +// It will return an error if there is no valid token. +func (d *Decoder) Read() (Token, error) { + const scalar = Null | Bool | Number | String + + defer func() { d.lastCall = readCall }() + if d.lastCall == peekCall { + return d.lastToken, d.lastErr + } + + tok, err := d.parseNext() + if err != nil { + return Token{}, err + } + + switch tok.kind { + case EOF: + if len(d.openStack) != 0 || + d.lastToken.kind&scalar|ObjectClose|ArrayClose == 0 { + return Token{}, ErrUnexpectedEOF + } + + case Null: + if !d.isValueNext() { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + + case Bool, Number: + if !d.isValueNext() { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + + case String: + if d.isValueNext() { + break + } + // This string token should only be for a field name. + if d.lastToken.kind&(ObjectOpen|comma) == 0 { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + if len(d.in) == 0 { + return Token{}, ErrUnexpectedEOF + } + if c := d.in[0]; c != ':' { + return Token{}, d.newSyntaxError(d.currPos(), `unexpected character %s, missing ":" after field name`, string(c)) + } + tok.kind = Name + d.consume(1) + + case ObjectOpen, ArrayOpen: + if !d.isValueNext() { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + d.openStack = append(d.openStack, tok.kind) + + case ObjectClose: + if len(d.openStack) == 0 || + d.lastToken.kind == comma || + d.openStack[len(d.openStack)-1] != ObjectOpen { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + d.openStack = d.openStack[:len(d.openStack)-1] + + case ArrayClose: + if len(d.openStack) == 0 || + d.lastToken.kind == comma || + d.openStack[len(d.openStack)-1] != ArrayOpen { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + d.openStack = d.openStack[:len(d.openStack)-1] + + case comma: + if len(d.openStack) == 0 || + d.lastToken.kind&(scalar|ObjectClose|ArrayClose) == 0 { + return Token{}, d.newSyntaxError(tok.pos, unexpectedFmt, tok.RawString()) + } + } + + // Update d.lastToken only after validating token to be in the right sequence. + d.lastToken = tok + + if d.lastToken.kind == comma { + return d.Read() + } + return tok, nil +} + +// Any sequence that looks like a non-delimiter (for error reporting). +var errRegexp = regexp.MustCompile(`^([-+._a-zA-Z0-9]{1,32}|.)`) + +// parseNext parses for the next JSON token. It returns a Token object for +// different types, except for Name. It does not handle whether the next token +// is in a valid sequence or not. +func (d *Decoder) parseNext() (Token, error) { + // Trim leading spaces. + d.consume(0) + + in := d.in + if len(in) == 0 { + return d.consumeToken(EOF, 0), nil + } + + switch in[0] { + case 'n': + if n := matchWithDelim("null", in); n != 0 { + return d.consumeToken(Null, n), nil + } + + case 't': + if n := matchWithDelim("true", in); n != 0 { + return d.consumeBoolToken(true, n), nil + } + + case 'f': + if n := matchWithDelim("false", in); n != 0 { + return d.consumeBoolToken(false, n), nil + } + + case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + if n, ok := parseNumber(in); ok { + return d.consumeToken(Number, n), nil + } + + case '"': + s, n, err := d.parseString(in) + if err != nil { + return Token{}, err + } + return d.consumeStringToken(s, n), nil + + case '{': + return d.consumeToken(ObjectOpen, 1), nil + + case '}': + return d.consumeToken(ObjectClose, 1), nil + + case '[': + return d.consumeToken(ArrayOpen, 1), nil + + case ']': + return d.consumeToken(ArrayClose, 1), nil + + case ',': + return d.consumeToken(comma, 1), nil + } + return Token{}, d.newSyntaxError(d.currPos(), "invalid value %s", errRegexp.Find(in)) +} + +// newSyntaxError returns an error with line and column information useful for +// syntax errors. +func (d *Decoder) newSyntaxError(pos int, f string, x ...interface{}) error { + e := errors.New(f, x...) + line, column := d.Position(pos) + return errors.New("syntax error (line %d:%d): %v", line, column, e) +} + +// Position returns line and column number of given index of the original input. +// It will panic if index is out of range. +func (d *Decoder) Position(idx int) (line int, column int) { + b := d.orig[:idx] + line = bytes.Count(b, []byte("\n")) + 1 + if i := bytes.LastIndexByte(b, '\n'); i >= 0 { + b = b[i+1:] + } + column = utf8.RuneCount(b) + 1 // ignore multi-rune characters + return line, column +} + +// currPos returns the current index position of d.in from d.orig. +func (d *Decoder) currPos() int { + return len(d.orig) - len(d.in) +} + +// matchWithDelim matches s with the input b and verifies that the match +// terminates with a delimiter of some form (e.g., r"[^-+_.a-zA-Z0-9]"). +// As a special case, EOF is considered a delimiter. It returns the length of s +// if there is a match, else 0. +func matchWithDelim(s string, b []byte) int { + if !bytes.HasPrefix(b, []byte(s)) { + return 0 + } + + n := len(s) + if n < len(b) && isNotDelim(b[n]) { + return 0 + } + return n +} + +// isNotDelim returns true if given byte is a not delimiter character. +func isNotDelim(c byte) bool { + return (c == '-' || c == '+' || c == '.' || c == '_' || + ('a' <= c && c <= 'z') || + ('A' <= c && c <= 'Z') || + ('0' <= c && c <= '9')) +} + +// consume consumes n bytes of input and any subsequent whitespace. +func (d *Decoder) consume(n int) { + d.in = d.in[n:] + for len(d.in) > 0 { + switch d.in[0] { + case ' ', '\n', '\r', '\t': + d.in = d.in[1:] + default: + return + } + } +} + +// isValueNext returns true if next type should be a JSON value: Null, +// Number, String or Bool. +func (d *Decoder) isValueNext() bool { + if len(d.openStack) == 0 { + return d.lastToken.kind == 0 + } + + start := d.openStack[len(d.openStack)-1] + switch start { + case ObjectOpen: + return d.lastToken.kind&Name != 0 + case ArrayOpen: + return d.lastToken.kind&(ArrayOpen|comma) != 0 + } + panic(fmt.Sprintf( + "unreachable logic in Decoder.isValueNext, lastToken.kind: %v, openStack: %v", + d.lastToken.kind, start)) +} + +// consumeToken constructs a Token for given Kind with raw value derived from +// current d.in and given size, and consumes the given size-length of it. +func (d *Decoder) consumeToken(kind Kind, size int) Token { + tok := Token{ + kind: kind, + raw: d.in[:size], + pos: len(d.orig) - len(d.in), + } + d.consume(size) + return tok +} + +// consumeBoolToken constructs a Token for a Bool kind with raw value derived from +// current d.in and given size. +func (d *Decoder) consumeBoolToken(b bool, size int) Token { + tok := Token{ + kind: Bool, + raw: d.in[:size], + pos: len(d.orig) - len(d.in), + boo: b, + } + d.consume(size) + return tok +} + +// consumeStringToken constructs a Token for a String kind with raw value derived +// from current d.in and given size. +func (d *Decoder) consumeStringToken(s string, size int) Token { + tok := Token{ + kind: String, + raw: d.in[:size], + pos: len(d.orig) - len(d.in), + str: s, + } + d.consume(size) + return tok +} + +// Clone returns a copy of the Decoder for use in reading ahead the next JSON +// object, array or other values without affecting current Decoder. +func (d *Decoder) Clone() *Decoder { + ret := *d + ret.openStack = append([]Kind(nil), ret.openStack...) + return &ret +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go new file mode 100644 index 0000000000..2999d71332 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_number.go @@ -0,0 +1,254 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package json + +import ( + "bytes" + "strconv" +) + +// parseNumber reads the given []byte for a valid JSON number. If it is valid, +// it returns the number of bytes. Parsing logic follows the definition in +// https://tools.ietf.org/html/rfc7159#section-6, and is based off +// encoding/json.isValidNumber function. +func parseNumber(input []byte) (int, bool) { + var n int + + s := input + if len(s) == 0 { + return 0, false + } + + // Optional - + if s[0] == '-' { + s = s[1:] + n++ + if len(s) == 0 { + return 0, false + } + } + + // Digits + switch { + case s[0] == '0': + s = s[1:] + n++ + + case '1' <= s[0] && s[0] <= '9': + s = s[1:] + n++ + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + n++ + } + + default: + return 0, false + } + + // . followed by 1 or more digits. + if len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' { + s = s[2:] + n += 2 + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + n++ + } + } + + // e or E followed by an optional - or + and + // 1 or more digits. + if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { + s = s[1:] + n++ + if s[0] == '+' || s[0] == '-' { + s = s[1:] + n++ + if len(s) == 0 { + return 0, false + } + } + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + n++ + } + } + + // Check that next byte is a delimiter or it is at the end. + if n < len(input) && isNotDelim(input[n]) { + return 0, false + } + + return n, true +} + +// numberParts is the result of parsing out a valid JSON number. It contains +// the parts of a number. The parts are used for integer conversion. +type numberParts struct { + neg bool + intp []byte + frac []byte + exp []byte +} + +// parseNumber constructs numberParts from given []byte. The logic here is +// similar to consumeNumber above with the difference of having to construct +// numberParts. The slice fields in numberParts are subslices of the input. +func parseNumberParts(input []byte) (numberParts, bool) { + var neg bool + var intp []byte + var frac []byte + var exp []byte + + s := input + if len(s) == 0 { + return numberParts{}, false + } + + // Optional - + if s[0] == '-' { + neg = true + s = s[1:] + if len(s) == 0 { + return numberParts{}, false + } + } + + // Digits + switch { + case s[0] == '0': + // Skip first 0 and no need to store. + s = s[1:] + + case '1' <= s[0] && s[0] <= '9': + intp = s + n := 1 + s = s[1:] + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + n++ + } + intp = intp[:n] + + default: + return numberParts{}, false + } + + // . followed by 1 or more digits. + if len(s) >= 2 && s[0] == '.' && '0' <= s[1] && s[1] <= '9' { + frac = s[1:] + n := 1 + s = s[2:] + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + n++ + } + frac = frac[:n] + } + + // e or E followed by an optional - or + and + // 1 or more digits. + if len(s) >= 2 && (s[0] == 'e' || s[0] == 'E') { + s = s[1:] + exp = s + n := 0 + if s[0] == '+' || s[0] == '-' { + s = s[1:] + n++ + if len(s) == 0 { + return numberParts{}, false + } + } + for len(s) > 0 && '0' <= s[0] && s[0] <= '9' { + s = s[1:] + n++ + } + exp = exp[:n] + } + + return numberParts{ + neg: neg, + intp: intp, + frac: bytes.TrimRight(frac, "0"), // Remove unnecessary 0s to the right. + exp: exp, + }, true +} + +// normalizeToIntString returns an integer string in normal form without the +// E-notation for given numberParts. It will return false if it is not an +// integer or if the exponent exceeds than max/min int value. +func normalizeToIntString(n numberParts) (string, bool) { + intpSize := len(n.intp) + fracSize := len(n.frac) + + if intpSize == 0 && fracSize == 0 { + return "0", true + } + + var exp int + if len(n.exp) > 0 { + i, err := strconv.ParseInt(string(n.exp), 10, 32) + if err != nil { + return "", false + } + exp = int(i) + } + + var num []byte + if exp >= 0 { + // For positive E, shift fraction digits into integer part and also pad + // with zeroes as needed. + + // If there are more digits in fraction than the E value, then the + // number is not an integer. + if fracSize > exp { + return "", false + } + + // Make sure resulting digits are within max value limit to avoid + // unnecessarily constructing a large byte slice that may simply fail + // later on. + const maxDigits = 20 // Max uint64 value has 20 decimal digits. + if intpSize+exp > maxDigits { + return "", false + } + + // Set cap to make a copy of integer part when appended. + num = n.intp[:len(n.intp):len(n.intp)] + num = append(num, n.frac...) + for i := 0; i < exp-fracSize; i++ { + num = append(num, '0') + } + } else { + // For negative E, shift digits in integer part out. + + // If there are fractions, then the number is not an integer. + if fracSize > 0 { + return "", false + } + + // index is where the decimal point will be after adjusting for negative + // exponent. + index := intpSize + exp + if index < 0 { + return "", false + } + + num = n.intp + // If any of the digits being shifted to the right of the decimal point + // is non-zero, then the number is not an integer. + for i := index; i < intpSize; i++ { + if num[i] != '0' { + return "", false + } + } + num = num[:index] + } + + if n.neg { + return "-" + string(num), true + } + return string(num), true +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go new file mode 100644 index 0000000000..f7fea7d8dd --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_string.go @@ -0,0 +1,91 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package json + +import ( + "strconv" + "unicode" + "unicode/utf16" + "unicode/utf8" + + "google.golang.org/protobuf/internal/strs" +) + +func (d *Decoder) parseString(in []byte) (string, int, error) { + in0 := in + if len(in) == 0 { + return "", 0, ErrUnexpectedEOF + } + if in[0] != '"' { + return "", 0, d.newSyntaxError(d.currPos(), "invalid character %q at start of string", in[0]) + } + in = in[1:] + i := indexNeedEscapeInBytes(in) + in, out := in[i:], in[:i:i] // set cap to prevent mutations + for len(in) > 0 { + switch r, n := utf8.DecodeRune(in); { + case r == utf8.RuneError && n == 1: + return "", 0, d.newSyntaxError(d.currPos(), "invalid UTF-8 in string") + case r < ' ': + return "", 0, d.newSyntaxError(d.currPos(), "invalid character %q in string", r) + case r == '"': + in = in[1:] + n := len(in0) - len(in) + return string(out), n, nil + case r == '\\': + if len(in) < 2 { + return "", 0, ErrUnexpectedEOF + } + switch r := in[1]; r { + case '"', '\\', '/': + in, out = in[2:], append(out, r) + case 'b': + in, out = in[2:], append(out, '\b') + case 'f': + in, out = in[2:], append(out, '\f') + case 'n': + in, out = in[2:], append(out, '\n') + case 'r': + in, out = in[2:], append(out, '\r') + case 't': + in, out = in[2:], append(out, '\t') + case 'u': + if len(in) < 6 { + return "", 0, ErrUnexpectedEOF + } + v, err := strconv.ParseUint(string(in[2:6]), 16, 16) + if err != nil { + return "", 0, d.newSyntaxError(d.currPos(), "invalid escape code %q in string", in[:6]) + } + in = in[6:] + + r := rune(v) + if utf16.IsSurrogate(r) { + if len(in) < 6 { + return "", 0, ErrUnexpectedEOF + } + v, err := strconv.ParseUint(string(in[2:6]), 16, 16) + r = utf16.DecodeRune(r, rune(v)) + if in[0] != '\\' || in[1] != 'u' || + r == unicode.ReplacementChar || err != nil { + return "", 0, d.newSyntaxError(d.currPos(), "invalid escape code %q in string", in[:6]) + } + in = in[6:] + } + out = append(out, string(r)...) + default: + return "", 0, d.newSyntaxError(d.currPos(), "invalid escape code %q in string", in[:2]) + } + default: + i := indexNeedEscapeInBytes(in[n:]) + in, out = in[n+i:], append(out, in[:n+i]...) + } + } + return "", 0, ErrUnexpectedEOF +} + +// indexNeedEscapeInBytes returns the index of the character that needs +// escaping. If no characters need escaping, this returns the input length. +func indexNeedEscapeInBytes(b []byte) int { return indexNeedEscapeInString(strs.UnsafeString(b)) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go new file mode 100644 index 0000000000..50578d6593 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode_token.go @@ -0,0 +1,192 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package json + +import ( + "bytes" + "fmt" + "strconv" +) + +// Kind represents a token kind expressible in the JSON format. +type Kind uint16 + +const ( + Invalid Kind = (1 << iota) / 2 + EOF + Null + Bool + Number + String + Name + ObjectOpen + ObjectClose + ArrayOpen + ArrayClose + + // comma is only for parsing in between tokens and + // does not need to be exported. + comma +) + +func (k Kind) String() string { + switch k { + case EOF: + return "eof" + case Null: + return "null" + case Bool: + return "bool" + case Number: + return "number" + case String: + return "string" + case ObjectOpen: + return "{" + case ObjectClose: + return "}" + case Name: + return "name" + case ArrayOpen: + return "[" + case ArrayClose: + return "]" + case comma: + return "," + } + return "" +} + +// Token provides a parsed token kind and value. +// +// Values are provided by the difference accessor methods. The accessor methods +// Name, Bool, and ParsedString will panic if called on the wrong kind. There +// are different accessor methods for the Number kind for converting to the +// appropriate Go numeric type and those methods have the ok return value. +type Token struct { + // Token kind. + kind Kind + // pos provides the position of the token in the original input. + pos int + // raw bytes of the serialized token. + // This is a subslice into the original input. + raw []byte + // boo is parsed boolean value. + boo bool + // str is parsed string value. + str string +} + +// Kind returns the token kind. +func (t Token) Kind() Kind { + return t.kind +} + +// RawString returns the read value in string. +func (t Token) RawString() string { + return string(t.raw) +} + +// Pos returns the token position from the input. +func (t Token) Pos() int { + return t.pos +} + +// Name returns the object name if token is Name, else it panics. +func (t Token) Name() string { + if t.kind == Name { + return t.str + } + panic(fmt.Sprintf("Token is not a Name: %v", t.RawString())) +} + +// Bool returns the bool value if token kind is Bool, else it panics. +func (t Token) Bool() bool { + if t.kind == Bool { + return t.boo + } + panic(fmt.Sprintf("Token is not a Bool: %v", t.RawString())) +} + +// ParsedString returns the string value for a JSON string token or the read +// value in string if token is not a string. +func (t Token) ParsedString() string { + if t.kind == String { + return t.str + } + panic(fmt.Sprintf("Token is not a String: %v", t.RawString())) +} + +// Float returns the floating-point number if token kind is Number. +// +// The floating-point precision is specified by the bitSize parameter: 32 for +// float32 or 64 for float64. If bitSize=32, the result still has type float64, +// but it will be convertible to float32 without changing its value. It will +// return false if the number exceeds the floating point limits for given +// bitSize. +func (t Token) Float(bitSize int) (float64, bool) { + if t.kind != Number { + return 0, false + } + f, err := strconv.ParseFloat(t.RawString(), bitSize) + if err != nil { + return 0, false + } + return f, true +} + +// Int returns the signed integer number if token is Number. +// +// The given bitSize specifies the integer type that the result must fit into. +// It returns false if the number is not an integer value or if the result +// exceeds the limits for given bitSize. +func (t Token) Int(bitSize int) (int64, bool) { + s, ok := t.getIntStr() + if !ok { + return 0, false + } + n, err := strconv.ParseInt(s, 10, bitSize) + if err != nil { + return 0, false + } + return n, true +} + +// Uint returns the signed integer number if token is Number. +// +// The given bitSize specifies the unsigned integer type that the result must +// fit into. It returns false if the number is not an unsigned integer value +// or if the result exceeds the limits for given bitSize. +func (t Token) Uint(bitSize int) (uint64, bool) { + s, ok := t.getIntStr() + if !ok { + return 0, false + } + n, err := strconv.ParseUint(s, 10, bitSize) + if err != nil { + return 0, false + } + return n, true +} + +func (t Token) getIntStr() (string, bool) { + if t.kind != Number { + return "", false + } + parts, ok := parseNumberParts(t.raw) + if !ok { + return "", false + } + return normalizeToIntString(parts) +} + +// TokenEquals returns true if given Tokens are equal, else false. +func TokenEquals(x, y Token) bool { + return x.kind == y.kind && + x.pos == y.pos && + bytes.Equal(x.raw, y.raw) && + x.boo == y.boo && + x.str == y.str +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go new file mode 100644 index 0000000000..fbdf348734 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/encode.go @@ -0,0 +1,276 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package json + +import ( + "math" + "math/bits" + "strconv" + "strings" + "unicode/utf8" + + "google.golang.org/protobuf/internal/detrand" + "google.golang.org/protobuf/internal/errors" +) + +// kind represents an encoding type. +type kind uint8 + +const ( + _ kind = (1 << iota) / 2 + name + scalar + objectOpen + objectClose + arrayOpen + arrayClose +) + +// Encoder provides methods to write out JSON constructs and values. The user is +// responsible for producing valid sequences of JSON constructs and values. +type Encoder struct { + indent string + lastKind kind + indents []byte + out []byte +} + +// NewEncoder returns an Encoder. +// +// If indent is a non-empty string, it causes every entry for an Array or Object +// to be preceded by the indent and trailed by a newline. +func NewEncoder(indent string) (*Encoder, error) { + e := &Encoder{} + if len(indent) > 0 { + if strings.Trim(indent, " \t") != "" { + return nil, errors.New("indent may only be composed of space or tab characters") + } + e.indent = indent + } + return e, nil +} + +// Bytes returns the content of the written bytes. +func (e *Encoder) Bytes() []byte { + return e.out +} + +// WriteNull writes out the null value. +func (e *Encoder) WriteNull() { + e.prepareNext(scalar) + e.out = append(e.out, "null"...) +} + +// WriteBool writes out the given boolean value. +func (e *Encoder) WriteBool(b bool) { + e.prepareNext(scalar) + if b { + e.out = append(e.out, "true"...) + } else { + e.out = append(e.out, "false"...) + } +} + +// WriteString writes out the given string in JSON string value. Returns error +// if input string contains invalid UTF-8. +func (e *Encoder) WriteString(s string) error { + e.prepareNext(scalar) + var err error + if e.out, err = appendString(e.out, s); err != nil { + return err + } + return nil +} + +// Sentinel error used for indicating invalid UTF-8. +var errInvalidUTF8 = errors.New("invalid UTF-8") + +func appendString(out []byte, in string) ([]byte, error) { + out = append(out, '"') + i := indexNeedEscapeInString(in) + in, out = in[i:], append(out, in[:i]...) + for len(in) > 0 { + switch r, n := utf8.DecodeRuneInString(in); { + case r == utf8.RuneError && n == 1: + return out, errInvalidUTF8 + case r < ' ' || r == '"' || r == '\\': + out = append(out, '\\') + switch r { + case '"', '\\': + out = append(out, byte(r)) + case '\b': + out = append(out, 'b') + case '\f': + out = append(out, 'f') + case '\n': + out = append(out, 'n') + case '\r': + out = append(out, 'r') + case '\t': + out = append(out, 't') + default: + out = append(out, 'u') + out = append(out, "0000"[1+(bits.Len32(uint32(r))-1)/4:]...) + out = strconv.AppendUint(out, uint64(r), 16) + } + in = in[n:] + default: + i := indexNeedEscapeInString(in[n:]) + in, out = in[n+i:], append(out, in[:n+i]...) + } + } + out = append(out, '"') + return out, nil +} + +// indexNeedEscapeInString returns the index of the character that needs +// escaping. If no characters need escaping, this returns the input length. +func indexNeedEscapeInString(s string) int { + for i, r := range s { + if r < ' ' || r == '\\' || r == '"' || r == utf8.RuneError { + return i + } + } + return len(s) +} + +// WriteFloat writes out the given float and bitSize in JSON number value. +func (e *Encoder) WriteFloat(n float64, bitSize int) { + e.prepareNext(scalar) + e.out = appendFloat(e.out, n, bitSize) +} + +// appendFloat formats given float in bitSize, and appends to the given []byte. +func appendFloat(out []byte, n float64, bitSize int) []byte { + switch { + case math.IsNaN(n): + return append(out, `"NaN"`...) + case math.IsInf(n, +1): + return append(out, `"Infinity"`...) + case math.IsInf(n, -1): + return append(out, `"-Infinity"`...) + } + + // JSON number formatting logic based on encoding/json. + // See floatEncoder.encode for reference. + fmt := byte('f') + if abs := math.Abs(n); abs != 0 { + if bitSize == 64 && (abs < 1e-6 || abs >= 1e21) || + bitSize == 32 && (float32(abs) < 1e-6 || float32(abs) >= 1e21) { + fmt = 'e' + } + } + out = strconv.AppendFloat(out, n, fmt, -1, bitSize) + if fmt == 'e' { + n := len(out) + if n >= 4 && out[n-4] == 'e' && out[n-3] == '-' && out[n-2] == '0' { + out[n-2] = out[n-1] + out = out[:n-1] + } + } + return out +} + +// WriteInt writes out the given signed integer in JSON number value. +func (e *Encoder) WriteInt(n int64) { + e.prepareNext(scalar) + e.out = append(e.out, strconv.FormatInt(n, 10)...) +} + +// WriteUint writes out the given unsigned integer in JSON number value. +func (e *Encoder) WriteUint(n uint64) { + e.prepareNext(scalar) + e.out = append(e.out, strconv.FormatUint(n, 10)...) +} + +// StartObject writes out the '{' symbol. +func (e *Encoder) StartObject() { + e.prepareNext(objectOpen) + e.out = append(e.out, '{') +} + +// EndObject writes out the '}' symbol. +func (e *Encoder) EndObject() { + e.prepareNext(objectClose) + e.out = append(e.out, '}') +} + +// WriteName writes out the given string in JSON string value and the name +// separator ':'. Returns error if input string contains invalid UTF-8, which +// should not be likely as protobuf field names should be valid. +func (e *Encoder) WriteName(s string) error { + e.prepareNext(name) + var err error + // Append to output regardless of error. + e.out, err = appendString(e.out, s) + e.out = append(e.out, ':') + return err +} + +// StartArray writes out the '[' symbol. +func (e *Encoder) StartArray() { + e.prepareNext(arrayOpen) + e.out = append(e.out, '[') +} + +// EndArray writes out the ']' symbol. +func (e *Encoder) EndArray() { + e.prepareNext(arrayClose) + e.out = append(e.out, ']') +} + +// prepareNext adds possible comma and indentation for the next value based +// on last type and indent option. It also updates lastKind to next. +func (e *Encoder) prepareNext(next kind) { + defer func() { + // Set lastKind to next. + e.lastKind = next + }() + + if len(e.indent) == 0 { + // Need to add comma on the following condition. + if e.lastKind&(scalar|objectClose|arrayClose) != 0 && + next&(name|scalar|objectOpen|arrayOpen) != 0 { + e.out = append(e.out, ',') + // For single-line output, add a random extra space after each + // comma to make output unstable. + if detrand.Bool() { + e.out = append(e.out, ' ') + } + } + return + } + + switch { + case e.lastKind&(objectOpen|arrayOpen) != 0: + // If next type is NOT closing, add indent and newline. + if next&(objectClose|arrayClose) == 0 { + e.indents = append(e.indents, e.indent...) + e.out = append(e.out, '\n') + e.out = append(e.out, e.indents...) + } + + case e.lastKind&(scalar|objectClose|arrayClose) != 0: + switch { + // If next type is either a value or name, add comma and newline. + case next&(name|scalar|objectOpen|arrayOpen) != 0: + e.out = append(e.out, ',', '\n') + + // If next type is a closing object or array, adjust indentation. + case next&(objectClose|arrayClose) != 0: + e.indents = e.indents[:len(e.indents)-len(e.indent)] + e.out = append(e.out, '\n') + } + e.out = append(e.out, e.indents...) + + case e.lastKind&name != 0: + e.out = append(e.out, ' ') + // For multi-line output, add a random extra space after key: to make + // output unstable. + if detrand.Bool() { + e.out = append(e.out, ' ') + } + } +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go index b1eeea5079..a6693f0a2f 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/messageset/messageset.go @@ -10,11 +10,10 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/reflect/protoreflect" ) -// The MessageSet wire format is equivalent to a message defiend as follows, +// The MessageSet wire format is equivalent to a message defined as follows, // where each Item defines an extension field with a field number of 'type_id' // and content of 'message'. MessageSet extensions must be non-repeated message // fields. @@ -34,6 +33,7 @@ const ( // ExtensionName is the field name for extensions of MessageSet. // // A valid MessageSet extension must be of the form: +// // message MyMessage { // extend proto2.bridge.MessageSet { // optional MyMessage message_set_extension = 1234; @@ -43,38 +43,22 @@ const ( const ExtensionName = "message_set_extension" // IsMessageSet returns whether the message uses the MessageSet wire format. -func IsMessageSet(md pref.MessageDescriptor) bool { +func IsMessageSet(md protoreflect.MessageDescriptor) bool { xmd, ok := md.(interface{ IsMessageSet() bool }) return ok && xmd.IsMessageSet() } -// IsMessageSetExtension reports this field extends a MessageSet. -func IsMessageSetExtension(fd pref.FieldDescriptor) bool { - if fd.Name() != ExtensionName { +// IsMessageSetExtension reports this field properly extends a MessageSet. +func IsMessageSetExtension(fd protoreflect.FieldDescriptor) bool { + switch { + case fd.Name() != ExtensionName: return false - } - if fd.FullName().Parent() != fd.Message().FullName() { + case !IsMessageSet(fd.ContainingMessage()): + return false + case fd.FullName().Parent() != fd.Message().FullName(): return false } - return IsMessageSet(fd.ContainingMessage()) -} - -// FindMessageSetExtension locates a MessageSet extension field by name. -// In text and JSON formats, the extension name used is the message itself. -// The extension field name is derived by appending ExtensionName. -func FindMessageSetExtension(r preg.ExtensionTypeResolver, s pref.FullName) (pref.ExtensionType, error) { - name := s.Append(ExtensionName) - xt, err := r.FindExtensionByName(name) - if err != nil { - if err == preg.NotFound { - return nil, err - } - return nil, errors.Wrap(err, "%q", name) - } - if !IsMessageSetExtension(xt.TypeDescriptor()) { - return nil, preg.NotFound - } - return xt, nil + return true } // SizeField returns the size of a MessageSet item field containing an extension diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go index 16c02d7b62..373d208374 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/tag/tag.go @@ -11,10 +11,10 @@ import ( "strconv" "strings" - defval "google.golang.org/protobuf/internal/encoding/defval" - fdesc "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/internal/encoding/defval" + "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) var byteType = reflect.TypeOf(byte(0)) @@ -29,9 +29,9 @@ var byteType = reflect.TypeOf(byte(0)) // This does not populate the Enum or Message (except for weak message). // // This function is a best effort attempt; parsing errors are ignored. -func Unmarshal(tag string, goType reflect.Type, evs pref.EnumValueDescriptors) pref.FieldDescriptor { - f := new(fdesc.Field) - f.L0.ParentFile = fdesc.SurrogateProto2 +func Unmarshal(tag string, goType reflect.Type, evs protoreflect.EnumValueDescriptors) protoreflect.FieldDescriptor { + f := new(filedesc.Field) + f.L0.ParentFile = filedesc.SurrogateProto2 for len(tag) > 0 { i := strings.IndexByte(tag, ',') if i < 0 { @@ -39,95 +39,95 @@ func Unmarshal(tag string, goType reflect.Type, evs pref.EnumValueDescriptors) p } switch s := tag[:i]; { case strings.HasPrefix(s, "name="): - f.L0.FullName = pref.FullName(s[len("name="):]) + f.L0.FullName = protoreflect.FullName(s[len("name="):]) case strings.Trim(s, "0123456789") == "": n, _ := strconv.ParseUint(s, 10, 32) - f.L1.Number = pref.FieldNumber(n) + f.L1.Number = protoreflect.FieldNumber(n) case s == "opt": - f.L1.Cardinality = pref.Optional + f.L1.Cardinality = protoreflect.Optional case s == "req": - f.L1.Cardinality = pref.Required + f.L1.Cardinality = protoreflect.Required case s == "rep": - f.L1.Cardinality = pref.Repeated + f.L1.Cardinality = protoreflect.Repeated case s == "varint": switch goType.Kind() { case reflect.Bool: - f.L1.Kind = pref.BoolKind + f.L1.Kind = protoreflect.BoolKind case reflect.Int32: - f.L1.Kind = pref.Int32Kind + f.L1.Kind = protoreflect.Int32Kind case reflect.Int64: - f.L1.Kind = pref.Int64Kind + f.L1.Kind = protoreflect.Int64Kind case reflect.Uint32: - f.L1.Kind = pref.Uint32Kind + f.L1.Kind = protoreflect.Uint32Kind case reflect.Uint64: - f.L1.Kind = pref.Uint64Kind + f.L1.Kind = protoreflect.Uint64Kind } case s == "zigzag32": if goType.Kind() == reflect.Int32 { - f.L1.Kind = pref.Sint32Kind + f.L1.Kind = protoreflect.Sint32Kind } case s == "zigzag64": if goType.Kind() == reflect.Int64 { - f.L1.Kind = pref.Sint64Kind + f.L1.Kind = protoreflect.Sint64Kind } case s == "fixed32": switch goType.Kind() { case reflect.Int32: - f.L1.Kind = pref.Sfixed32Kind + f.L1.Kind = protoreflect.Sfixed32Kind case reflect.Uint32: - f.L1.Kind = pref.Fixed32Kind + f.L1.Kind = protoreflect.Fixed32Kind case reflect.Float32: - f.L1.Kind = pref.FloatKind + f.L1.Kind = protoreflect.FloatKind } case s == "fixed64": switch goType.Kind() { case reflect.Int64: - f.L1.Kind = pref.Sfixed64Kind + f.L1.Kind = protoreflect.Sfixed64Kind case reflect.Uint64: - f.L1.Kind = pref.Fixed64Kind + f.L1.Kind = protoreflect.Fixed64Kind case reflect.Float64: - f.L1.Kind = pref.DoubleKind + f.L1.Kind = protoreflect.DoubleKind } case s == "bytes": switch { case goType.Kind() == reflect.String: - f.L1.Kind = pref.StringKind + f.L1.Kind = protoreflect.StringKind case goType.Kind() == reflect.Slice && goType.Elem() == byteType: - f.L1.Kind = pref.BytesKind + f.L1.Kind = protoreflect.BytesKind default: - f.L1.Kind = pref.MessageKind + f.L1.Kind = protoreflect.MessageKind } case s == "group": - f.L1.Kind = pref.GroupKind + f.L1.Kind = protoreflect.GroupKind case strings.HasPrefix(s, "enum="): - f.L1.Kind = pref.EnumKind + f.L1.Kind = protoreflect.EnumKind case strings.HasPrefix(s, "json="): jsonName := s[len("json="):] if jsonName != strs.JSONCamelCase(string(f.L0.FullName.Name())) { - f.L1.JSONName.Init(jsonName) + f.L1.StringName.InitJSON(jsonName) } case s == "packed": f.L1.HasPacked = true f.L1.IsPacked = true case strings.HasPrefix(s, "weak="): f.L1.IsWeak = true - f.L1.Message = fdesc.PlaceholderMessage(pref.FullName(s[len("weak="):])) + f.L1.Message = filedesc.PlaceholderMessage(protoreflect.FullName(s[len("weak="):])) case strings.HasPrefix(s, "def="): // The default tag is special in that everything afterwards is the // default regardless of the presence of commas. s, i = tag[len("def="):], len(tag) v, ev, _ := defval.Unmarshal(s, f.L1.Kind, evs, defval.GoTag) - f.L1.Default = fdesc.DefaultValue(v, ev) + f.L1.Default = filedesc.DefaultValue(v, ev) case s == "proto3": - f.L0.ParentFile = fdesc.SurrogateProto3 + f.L0.ParentFile = filedesc.SurrogateProto3 } tag = strings.TrimPrefix(tag[i:], ",") } // The generator uses the group message name instead of the field name. // We obtain the real field name by lowercasing the group name. - if f.L1.Kind == pref.GroupKind { - f.L0.FullName = pref.FullName(strings.ToLower(string(f.L0.FullName))) + if f.L1.Kind == protoreflect.GroupKind { + f.L0.FullName = protoreflect.FullName(strings.ToLower(string(f.L0.FullName))) } return f } @@ -140,38 +140,38 @@ func Unmarshal(tag string, goType reflect.Type, evs pref.EnumValueDescriptors) p // Depending on the context on how Marshal is called, there are different ways // through which that information is determined. As such it is the caller's // responsibility to provide a function to obtain that information. -func Marshal(fd pref.FieldDescriptor, enumName string) string { +func Marshal(fd protoreflect.FieldDescriptor, enumName string) string { var tag []string switch fd.Kind() { - case pref.BoolKind, pref.EnumKind, pref.Int32Kind, pref.Uint32Kind, pref.Int64Kind, pref.Uint64Kind: + case protoreflect.BoolKind, protoreflect.EnumKind, protoreflect.Int32Kind, protoreflect.Uint32Kind, protoreflect.Int64Kind, protoreflect.Uint64Kind: tag = append(tag, "varint") - case pref.Sint32Kind: + case protoreflect.Sint32Kind: tag = append(tag, "zigzag32") - case pref.Sint64Kind: + case protoreflect.Sint64Kind: tag = append(tag, "zigzag64") - case pref.Sfixed32Kind, pref.Fixed32Kind, pref.FloatKind: + case protoreflect.Sfixed32Kind, protoreflect.Fixed32Kind, protoreflect.FloatKind: tag = append(tag, "fixed32") - case pref.Sfixed64Kind, pref.Fixed64Kind, pref.DoubleKind: + case protoreflect.Sfixed64Kind, protoreflect.Fixed64Kind, protoreflect.DoubleKind: tag = append(tag, "fixed64") - case pref.StringKind, pref.BytesKind, pref.MessageKind: + case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind: tag = append(tag, "bytes") - case pref.GroupKind: + case protoreflect.GroupKind: tag = append(tag, "group") } tag = append(tag, strconv.Itoa(int(fd.Number()))) switch fd.Cardinality() { - case pref.Optional: + case protoreflect.Optional: tag = append(tag, "opt") - case pref.Required: + case protoreflect.Required: tag = append(tag, "req") - case pref.Repeated: + case protoreflect.Repeated: tag = append(tag, "rep") } if fd.IsPacked() { tag = append(tag, "packed") } name := string(fd.Name()) - if fd.Kind() == pref.GroupKind { + if fd.Kind() == protoreflect.GroupKind { // The name of the FieldDescriptor for a group field is // lowercased. To find the original capitalization, we // look in the field's MessageType. @@ -189,10 +189,10 @@ func Marshal(fd pref.FieldDescriptor, enumName string) string { // The previous implementation does not tag extension fields as proto3, // even when the field is defined in a proto3 file. Match that behavior // for consistency. - if fd.Syntax() == pref.Proto3 && !fd.IsExtension() { + if fd.Syntax() == protoreflect.Proto3 && !fd.IsExtension() { tag = append(tag, "proto3") } - if fd.Kind() == pref.EnumKind && enumName != "" { + if fd.Kind() == protoreflect.EnumKind && enumName != "" { tag = append(tag, "enum="+enumName) } if fd.ContainingOneof() != nil { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go index eb10ea1026..87853e786d 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go @@ -8,7 +8,6 @@ import ( "bytes" "fmt" "io" - "regexp" "strconv" "unicode/utf8" @@ -381,7 +380,7 @@ func (d *Decoder) currentOpenKind() (Kind, byte) { case '[': return ListOpen, ']' } - panic(fmt.Sprintf("Decoder: openStack contains invalid byte %s", string(openCh))) + panic(fmt.Sprintf("Decoder: openStack contains invalid byte %c", openCh)) } func (d *Decoder) pushOpenStack(ch byte) { @@ -413,15 +412,16 @@ func (d *Decoder) parseFieldName() (tok Token, err error) { // Field number. Identify if input is a valid number that is not negative // and is decimal integer within 32-bit range. if num := parseNumber(d.in); num.size > 0 { + str := num.string(d.in) if !num.neg && num.kind == numDec { - if _, err := strconv.ParseInt(string(d.in[:num.size]), 10, 32); err == nil { + if _, err := strconv.ParseInt(str, 10, 32); err == nil { return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil } } - return Token{}, d.newSyntaxError("invalid field number: %s", d.in[:num.size]) + return Token{}, d.newSyntaxError("invalid field number: %s", str) } - return Token{}, d.newSyntaxError("invalid field name: %s", errRegexp.Find(d.in)) + return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in)) } // parseTypeName parses Any type URL or extension field name. The name is @@ -571,7 +571,7 @@ func (d *Decoder) parseScalar() (Token, error) { return tok, nil } - return Token{}, d.newSyntaxError("invalid scalar value: %s", errRegexp.Find(d.in)) + return Token{}, d.newSyntaxError("invalid scalar value: %s", errId(d.in)) } // parseLiteralValue parses a literal value. A literal value is used for @@ -653,8 +653,29 @@ func consume(b []byte, n int) []byte { return b } -// Any sequence that looks like a non-delimiter (for error reporting). -var errRegexp = regexp.MustCompile(`^([-+._a-zA-Z0-9\/]+|.)`) +// errId extracts a byte sequence that looks like an invalid ID +// (for the purposes of error reporting). +func errId(seq []byte) []byte { + const maxLen = 32 + for i := 0; i < len(seq); { + if i > maxLen { + return append(seq[:i:i], "…"...) + } + r, size := utf8.DecodeRune(seq[i:]) + if r > utf8.RuneSelf || (r != '/' && isDelim(byte(r))) { + if i == 0 { + // Either the first byte is invalid UTF-8 or a + // delimiter, or the first rune is non-ASCII. + // Return it as-is. + i = size + } + return seq[:i:i] + } + i += size + } + // No delimiter found. + return seq +} // isDelim returns true if given byte is a delimiter character. func isDelim(c byte) bool { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go index f2d90b7899..45c81f0298 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go @@ -15,17 +15,12 @@ func (d *Decoder) parseNumberValue() (Token, bool) { if num.neg { numAttrs |= isNegative } - strSize := num.size - last := num.size - 1 - if num.kind == numFloat && (d.in[last] == 'f' || d.in[last] == 'F') { - strSize = last - } tok := Token{ kind: Scalar, attrs: numberValue, pos: len(d.orig) - len(d.in), raw: d.in[:num.size], - str: string(d.in[:strSize]), + str: num.string(d.in), numAttrs: numAttrs, } d.consume(num.size) @@ -46,12 +41,35 @@ type number struct { kind uint8 neg bool size int + // if neg, this is the length of whitespace and comments between + // the minus sign and the rest fo the number literal + sep int +} + +func (num number) string(data []byte) string { + strSize := num.size + last := num.size - 1 + if num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') { + strSize = last + } + if num.neg && num.sep > 0 { + // strip whitespace/comments between negative sign and the rest + strLen := strSize - num.sep + str := make([]byte, strLen) + str[0] = data[0] + copy(str[1:], data[num.sep+1:strSize]) + return string(str) + } + return string(data[:strSize]) + } // parseNumber constructs a number object from given input. It allows for the // following patterns: -// integer: ^-?([1-9][0-9]*|0[xX][0-9a-fA-F]+|0[0-7]*) -// float: ^-?((0|[1-9][0-9]*)?([.][0-9]*)?([eE][+-]?[0-9]+)?[fF]?) +// +// integer: ^-?([1-9][0-9]*|0[xX][0-9a-fA-F]+|0[0-7]*) +// float: ^-?((0|[1-9][0-9]*)?([.][0-9]*)?([eE][+-]?[0-9]+)?[fF]?) +// // It also returns the number of parsed bytes for the given number, 0 if it is // not a number. func parseNumber(input []byte) number { @@ -65,19 +83,22 @@ func parseNumber(input []byte) number { } // Optional - + var sep int if s[0] == '-' { neg = true s = s[1:] size++ + // Consume any whitespace or comments between the + // negative sign and the rest of the number + lenBefore := len(s) + s = consume(s, 0) + sep = lenBefore - len(s) + size += sep if len(s) == 0 { return number{} } } - // C++ allows for whitespace and comments in between the negative sign and - // the rest of the number. This logic currently does not but is consistent - // with v1. - switch { case s[0] == '0': if len(s) > 1 { @@ -114,7 +135,7 @@ func parseNumber(input []byte) number { if len(s) > 0 && !isDelim(s[0]) { return number{} } - return number{kind: kind, neg: neg, size: size} + return number{kind: kind, neg: neg, size: size, sep: sep} } } s = s[1:] @@ -186,5 +207,5 @@ func parseNumber(input []byte) number { return number{} } - return number{kind: kind, neg: neg, size: size} + return number{kind: kind, neg: neg, size: size, sep: sep} } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go index 0ce8d6fb83..7ae6c2a3c2 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/doc.go @@ -24,6 +24,6 @@ // the Go implementation should as well. // // The text format is almost a superset of JSON except: -// * message keys are not quoted strings, but identifiers -// * the top-level value must be a message without the delimiters +// - message keys are not quoted strings, but identifiers +// - the top-level value must be a message without the delimiters package text diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go index c4ba1c598f..da289ccce6 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/encode.go @@ -32,7 +32,6 @@ type Encoder struct { encoderState indent string - newline string // set to "\n" if len(indent) > 0 delims [2]byte outputASCII bool } @@ -61,7 +60,6 @@ func NewEncoder(indent string, delims [2]byte, outputASCII bool) (*Encoder, erro return nil, errors.New("indent may only be composed of space and tab characters") } e.indent = indent - e.newline = "\n" } switch delims { case [2]byte{0, 0}: @@ -126,7 +124,7 @@ func appendString(out []byte, in string, outputASCII bool) []byte { // are used to represent both the proto string and bytes type. r = rune(in[0]) fallthrough - case r < ' ' || r == '"' || r == '\\': + case r < ' ' || r == '"' || r == '\\' || r == 0x7f: out = append(out, '\\') switch r { case '"', '\\': @@ -143,7 +141,7 @@ func appendString(out []byte, in string, outputASCII bool) []byte { out = strconv.AppendUint(out, uint64(r), 16) } in = in[n:] - case outputASCII && r >= utf8.RuneSelf: + case r >= utf8.RuneSelf && (outputASCII || r <= 0x009f): out = append(out, '\\') if r <= math.MaxUint16 { out = append(out, 'u') @@ -168,7 +166,7 @@ func appendString(out []byte, in string, outputASCII bool) []byte { // escaping. If no characters need escaping, this returns the input length. func indexNeedEscapeInString(s string) int { for i := 0; i < len(s); i++ { - if c := s[i]; c < ' ' || c == '"' || c == '\'' || c == '\\' || c >= utf8.RuneSelf { + if c := s[i]; c < ' ' || c == '"' || c == '\'' || c == '\\' || c >= 0x7f { return i } } @@ -265,3 +263,8 @@ func (e *Encoder) Snapshot() encoderState { func (e *Encoder) Reset(es encoderState) { e.encoderState = es } + +// AppendString appends the escaped form of the input string to b. +func AppendString(b []byte, s string) []byte { + return appendString(b, s, false) +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go112.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go112.go index f90e909b37..fbcd349207 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go112.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go112.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.13 // +build !go1.13 package errors diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go113.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go113.go index dc05f4191c..5e72f1cde9 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go113.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/errors/is_go113.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.13 // +build go1.13 package errors diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/any_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/any_gen.go deleted file mode 100644 index 74c5fef240..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/any_gen.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Any. -const ( - Any_TypeUrl = 1 // optional string - Any_Value = 2 // optional bytes -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/api_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/api_gen.go deleted file mode 100644 index 9a6b5f29b5..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/api_gen.go +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Api. -const ( - Api_Name = 1 // optional string - Api_Methods = 2 // repeated google.protobuf.Method - Api_Options = 3 // repeated google.protobuf.Option - Api_Version = 4 // optional string - Api_SourceContext = 5 // optional google.protobuf.SourceContext - Api_Mixins = 6 // repeated google.protobuf.Mixin - Api_Syntax = 7 // optional google.protobuf.Syntax -) - -// Field numbers for google.protobuf.Method. -const ( - Method_Name = 1 // optional string - Method_RequestTypeUrl = 2 // optional string - Method_RequestStreaming = 3 // optional bool - Method_ResponseTypeUrl = 4 // optional string - Method_ResponseStreaming = 5 // optional bool - Method_Options = 6 // repeated google.protobuf.Option - Method_Syntax = 7 // optional google.protobuf.Syntax -) - -// Field numbers for google.protobuf.Mixin. -const ( - Mixin_Name = 1 // optional string - Mixin_Root = 2 // optional string -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/descriptor_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/descriptor_gen.go deleted file mode 100644 index 6e37b59e92..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/descriptor_gen.go +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.FileDescriptorSet. -const ( - FileDescriptorSet_File = 1 // repeated google.protobuf.FileDescriptorProto -) - -// Field numbers for google.protobuf.FileDescriptorProto. -const ( - FileDescriptorProto_Name = 1 // optional string - FileDescriptorProto_Package = 2 // optional string - FileDescriptorProto_Dependency = 3 // repeated string - FileDescriptorProto_PublicDependency = 10 // repeated int32 - FileDescriptorProto_WeakDependency = 11 // repeated int32 - FileDescriptorProto_MessageType = 4 // repeated google.protobuf.DescriptorProto - FileDescriptorProto_EnumType = 5 // repeated google.protobuf.EnumDescriptorProto - FileDescriptorProto_Service = 6 // repeated google.protobuf.ServiceDescriptorProto - FileDescriptorProto_Extension = 7 // repeated google.protobuf.FieldDescriptorProto - FileDescriptorProto_Options = 8 // optional google.protobuf.FileOptions - FileDescriptorProto_SourceCodeInfo = 9 // optional google.protobuf.SourceCodeInfo - FileDescriptorProto_Syntax = 12 // optional string -) - -// Field numbers for google.protobuf.DescriptorProto. -const ( - DescriptorProto_Name = 1 // optional string - DescriptorProto_Field = 2 // repeated google.protobuf.FieldDescriptorProto - DescriptorProto_Extension = 6 // repeated google.protobuf.FieldDescriptorProto - DescriptorProto_NestedType = 3 // repeated google.protobuf.DescriptorProto - DescriptorProto_EnumType = 4 // repeated google.protobuf.EnumDescriptorProto - DescriptorProto_ExtensionRange = 5 // repeated google.protobuf.DescriptorProto.ExtensionRange - DescriptorProto_OneofDecl = 8 // repeated google.protobuf.OneofDescriptorProto - DescriptorProto_Options = 7 // optional google.protobuf.MessageOptions - DescriptorProto_ReservedRange = 9 // repeated google.protobuf.DescriptorProto.ReservedRange - DescriptorProto_ReservedName = 10 // repeated string -) - -// Field numbers for google.protobuf.DescriptorProto.ExtensionRange. -const ( - DescriptorProto_ExtensionRange_Start = 1 // optional int32 - DescriptorProto_ExtensionRange_End = 2 // optional int32 - DescriptorProto_ExtensionRange_Options = 3 // optional google.protobuf.ExtensionRangeOptions -) - -// Field numbers for google.protobuf.DescriptorProto.ReservedRange. -const ( - DescriptorProto_ReservedRange_Start = 1 // optional int32 - DescriptorProto_ReservedRange_End = 2 // optional int32 -) - -// Field numbers for google.protobuf.ExtensionRangeOptions. -const ( - ExtensionRangeOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.FieldDescriptorProto. -const ( - FieldDescriptorProto_Name = 1 // optional string - FieldDescriptorProto_Number = 3 // optional int32 - FieldDescriptorProto_Label = 4 // optional google.protobuf.FieldDescriptorProto.Label - FieldDescriptorProto_Type = 5 // optional google.protobuf.FieldDescriptorProto.Type - FieldDescriptorProto_TypeName = 6 // optional string - FieldDescriptorProto_Extendee = 2 // optional string - FieldDescriptorProto_DefaultValue = 7 // optional string - FieldDescriptorProto_OneofIndex = 9 // optional int32 - FieldDescriptorProto_JsonName = 10 // optional string - FieldDescriptorProto_Options = 8 // optional google.protobuf.FieldOptions - FieldDescriptorProto_Proto3Optional = 17 // optional bool -) - -// Field numbers for google.protobuf.OneofDescriptorProto. -const ( - OneofDescriptorProto_Name = 1 // optional string - OneofDescriptorProto_Options = 2 // optional google.protobuf.OneofOptions -) - -// Field numbers for google.protobuf.EnumDescriptorProto. -const ( - EnumDescriptorProto_Name = 1 // optional string - EnumDescriptorProto_Value = 2 // repeated google.protobuf.EnumValueDescriptorProto - EnumDescriptorProto_Options = 3 // optional google.protobuf.EnumOptions - EnumDescriptorProto_ReservedRange = 4 // repeated google.protobuf.EnumDescriptorProto.EnumReservedRange - EnumDescriptorProto_ReservedName = 5 // repeated string -) - -// Field numbers for google.protobuf.EnumDescriptorProto.EnumReservedRange. -const ( - EnumDescriptorProto_EnumReservedRange_Start = 1 // optional int32 - EnumDescriptorProto_EnumReservedRange_End = 2 // optional int32 -) - -// Field numbers for google.protobuf.EnumValueDescriptorProto. -const ( - EnumValueDescriptorProto_Name = 1 // optional string - EnumValueDescriptorProto_Number = 2 // optional int32 - EnumValueDescriptorProto_Options = 3 // optional google.protobuf.EnumValueOptions -) - -// Field numbers for google.protobuf.ServiceDescriptorProto. -const ( - ServiceDescriptorProto_Name = 1 // optional string - ServiceDescriptorProto_Method = 2 // repeated google.protobuf.MethodDescriptorProto - ServiceDescriptorProto_Options = 3 // optional google.protobuf.ServiceOptions -) - -// Field numbers for google.protobuf.MethodDescriptorProto. -const ( - MethodDescriptorProto_Name = 1 // optional string - MethodDescriptorProto_InputType = 2 // optional string - MethodDescriptorProto_OutputType = 3 // optional string - MethodDescriptorProto_Options = 4 // optional google.protobuf.MethodOptions - MethodDescriptorProto_ClientStreaming = 5 // optional bool - MethodDescriptorProto_ServerStreaming = 6 // optional bool -) - -// Field numbers for google.protobuf.FileOptions. -const ( - FileOptions_JavaPackage = 1 // optional string - FileOptions_JavaOuterClassname = 8 // optional string - FileOptions_JavaMultipleFiles = 10 // optional bool - FileOptions_JavaGenerateEqualsAndHash = 20 // optional bool - FileOptions_JavaStringCheckUtf8 = 27 // optional bool - FileOptions_OptimizeFor = 9 // optional google.protobuf.FileOptions.OptimizeMode - FileOptions_GoPackage = 11 // optional string - FileOptions_CcGenericServices = 16 // optional bool - FileOptions_JavaGenericServices = 17 // optional bool - FileOptions_PyGenericServices = 18 // optional bool - FileOptions_PhpGenericServices = 42 // optional bool - FileOptions_Deprecated = 23 // optional bool - FileOptions_CcEnableArenas = 31 // optional bool - FileOptions_ObjcClassPrefix = 36 // optional string - FileOptions_CsharpNamespace = 37 // optional string - FileOptions_SwiftPrefix = 39 // optional string - FileOptions_PhpClassPrefix = 40 // optional string - FileOptions_PhpNamespace = 41 // optional string - FileOptions_PhpMetadataNamespace = 44 // optional string - FileOptions_RubyPackage = 45 // optional string - FileOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.MessageOptions. -const ( - MessageOptions_MessageSetWireFormat = 1 // optional bool - MessageOptions_NoStandardDescriptorAccessor = 2 // optional bool - MessageOptions_Deprecated = 3 // optional bool - MessageOptions_MapEntry = 7 // optional bool - MessageOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.FieldOptions. -const ( - FieldOptions_Ctype = 1 // optional google.protobuf.FieldOptions.CType - FieldOptions_Packed = 2 // optional bool - FieldOptions_Jstype = 6 // optional google.protobuf.FieldOptions.JSType - FieldOptions_Lazy = 5 // optional bool - FieldOptions_Deprecated = 3 // optional bool - FieldOptions_Weak = 10 // optional bool - FieldOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.OneofOptions. -const ( - OneofOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.EnumOptions. -const ( - EnumOptions_AllowAlias = 2 // optional bool - EnumOptions_Deprecated = 3 // optional bool - EnumOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.EnumValueOptions. -const ( - EnumValueOptions_Deprecated = 1 // optional bool - EnumValueOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.ServiceOptions. -const ( - ServiceOptions_Deprecated = 33 // optional bool - ServiceOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.MethodOptions. -const ( - MethodOptions_Deprecated = 33 // optional bool - MethodOptions_IdempotencyLevel = 34 // optional google.protobuf.MethodOptions.IdempotencyLevel - MethodOptions_UninterpretedOption = 999 // repeated google.protobuf.UninterpretedOption -) - -// Field numbers for google.protobuf.UninterpretedOption. -const ( - UninterpretedOption_Name = 2 // repeated google.protobuf.UninterpretedOption.NamePart - UninterpretedOption_IdentifierValue = 3 // optional string - UninterpretedOption_PositiveIntValue = 4 // optional uint64 - UninterpretedOption_NegativeIntValue = 5 // optional int64 - UninterpretedOption_DoubleValue = 6 // optional double - UninterpretedOption_StringValue = 7 // optional bytes - UninterpretedOption_AggregateValue = 8 // optional string -) - -// Field numbers for google.protobuf.UninterpretedOption.NamePart. -const ( - UninterpretedOption_NamePart_NamePart = 1 // required string - UninterpretedOption_NamePart_IsExtension = 2 // required bool -) - -// Field numbers for google.protobuf.SourceCodeInfo. -const ( - SourceCodeInfo_Location = 1 // repeated google.protobuf.SourceCodeInfo.Location -) - -// Field numbers for google.protobuf.SourceCodeInfo.Location. -const ( - SourceCodeInfo_Location_Path = 1 // repeated int32 - SourceCodeInfo_Location_Span = 2 // repeated int32 - SourceCodeInfo_Location_LeadingComments = 3 // optional string - SourceCodeInfo_Location_TrailingComments = 4 // optional string - SourceCodeInfo_Location_LeadingDetachedComments = 6 // repeated string -) - -// Field numbers for google.protobuf.GeneratedCodeInfo. -const ( - GeneratedCodeInfo_Annotation = 1 // repeated google.protobuf.GeneratedCodeInfo.Annotation -) - -// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation. -const ( - GeneratedCodeInfo_Annotation_Path = 1 // repeated int32 - GeneratedCodeInfo_Annotation_SourceFile = 2 // optional string - GeneratedCodeInfo_Annotation_Begin = 3 // optional int32 - GeneratedCodeInfo_Annotation_End = 4 // optional int32 -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/doc.go deleted file mode 100644 index e597885998..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package fieldnum contains constants for field numbers of fields in messages -// declared in descriptor.proto and any of the well-known types. -package fieldnum diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/duration_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/duration_gen.go deleted file mode 100644 index 8816c7358d..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/duration_gen.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Duration. -const ( - Duration_Seconds = 1 // optional int64 - Duration_Nanos = 2 // optional int32 -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/empty_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/empty_gen.go deleted file mode 100644 index b5130a6dd1..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/empty_gen.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Empty. -const () diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/field_mask_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/field_mask_gen.go deleted file mode 100644 index 7e3bfa27bb..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/field_mask_gen.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.FieldMask. -const ( - FieldMask_Paths = 1 // repeated string -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/source_context_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/source_context_gen.go deleted file mode 100644 index 241972b1f7..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/source_context_gen.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.SourceContext. -const ( - SourceContext_FileName = 1 // optional string -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/struct_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/struct_gen.go deleted file mode 100644 index c460aab44a..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/struct_gen.go +++ /dev/null @@ -1,33 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Struct. -const ( - Struct_Fields = 1 // repeated google.protobuf.Struct.FieldsEntry -) - -// Field numbers for google.protobuf.Struct.FieldsEntry. -const ( - Struct_FieldsEntry_Key = 1 // optional string - Struct_FieldsEntry_Value = 2 // optional google.protobuf.Value -) - -// Field numbers for google.protobuf.Value. -const ( - Value_NullValue = 1 // optional google.protobuf.NullValue - Value_NumberValue = 2 // optional double - Value_StringValue = 3 // optional string - Value_BoolValue = 4 // optional bool - Value_StructValue = 5 // optional google.protobuf.Struct - Value_ListValue = 6 // optional google.protobuf.ListValue -) - -// Field numbers for google.protobuf.ListValue. -const ( - ListValue_Values = 1 // repeated google.protobuf.Value -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/timestamp_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/timestamp_gen.go deleted file mode 100644 index b4346fba54..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/timestamp_gen.go +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Timestamp. -const ( - Timestamp_Seconds = 1 // optional int64 - Timestamp_Nanos = 2 // optional int32 -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/type_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/type_gen.go deleted file mode 100644 index b392e95981..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/type_gen.go +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.Type. -const ( - Type_Name = 1 // optional string - Type_Fields = 2 // repeated google.protobuf.Field - Type_Oneofs = 3 // repeated string - Type_Options = 4 // repeated google.protobuf.Option - Type_SourceContext = 5 // optional google.protobuf.SourceContext - Type_Syntax = 6 // optional google.protobuf.Syntax -) - -// Field numbers for google.protobuf.Field. -const ( - Field_Kind = 1 // optional google.protobuf.Field.Kind - Field_Cardinality = 2 // optional google.protobuf.Field.Cardinality - Field_Number = 3 // optional int32 - Field_Name = 4 // optional string - Field_TypeUrl = 6 // optional string - Field_OneofIndex = 7 // optional int32 - Field_Packed = 8 // optional bool - Field_Options = 9 // repeated google.protobuf.Option - Field_JsonName = 10 // optional string - Field_DefaultValue = 11 // optional string -) - -// Field numbers for google.protobuf.Enum. -const ( - Enum_Name = 1 // optional string - Enum_Enumvalue = 2 // repeated google.protobuf.EnumValue - Enum_Options = 3 // repeated google.protobuf.Option - Enum_SourceContext = 4 // optional google.protobuf.SourceContext - Enum_Syntax = 5 // optional google.protobuf.Syntax -) - -// Field numbers for google.protobuf.EnumValue. -const ( - EnumValue_Name = 1 // optional string - EnumValue_Number = 2 // optional int32 - EnumValue_Options = 3 // repeated google.protobuf.Option -) - -// Field numbers for google.protobuf.Option. -const ( - Option_Name = 1 // optional string - Option_Value = 2 // optional google.protobuf.Any -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/wrappers_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/wrappers_gen.go deleted file mode 100644 index 42f846a9f7..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldnum/wrappers_gen.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by generate-protos. DO NOT EDIT. - -package fieldnum - -// Field numbers for google.protobuf.DoubleValue. -const ( - DoubleValue_Value = 1 // optional double -) - -// Field numbers for google.protobuf.FloatValue. -const ( - FloatValue_Value = 1 // optional float -) - -// Field numbers for google.protobuf.Int64Value. -const ( - Int64Value_Value = 1 // optional int64 -) - -// Field numbers for google.protobuf.UInt64Value. -const ( - UInt64Value_Value = 1 // optional uint64 -) - -// Field numbers for google.protobuf.Int32Value. -const ( - Int32Value_Value = 1 // optional int32 -) - -// Field numbers for google.protobuf.UInt32Value. -const ( - UInt32Value_Value = 1 // optional uint32 -) - -// Field numbers for google.protobuf.BoolValue. -const ( - BoolValue_Value = 1 // optional bool -) - -// Field numbers for google.protobuf.StringValue. -const ( - StringValue_Value = 1 // optional string -) - -// Field numbers for google.protobuf.BytesValue. -const ( - BytesValue_Value = 1 // optional bytes -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldsort/fieldsort.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldsort/fieldsort.go deleted file mode 100644 index 517c4e2a04..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/fieldsort/fieldsort.go +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package fieldsort defines an ordering of fields. -// -// The ordering defined by this package matches the historic behavior of the proto -// package, placing extensions first and oneofs last. -// -// There is no guarantee about stability of the wire encoding, and users should not -// depend on the order defined in this package as it is subject to change without -// notice. -package fieldsort - -import ( - "google.golang.org/protobuf/reflect/protoreflect" -) - -// Less returns true if field a comes before field j in ordered wire marshal output. -func Less(a, b protoreflect.FieldDescriptor) bool { - ea := a.IsExtension() - eb := b.IsExtension() - oa := a.ContainingOneof() - ob := b.ContainingOneof() - switch { - case ea != eb: - return ea - case oa != nil && ob != nil: - if oa == ob { - return a.Number() < b.Number() - } - return oa.Index() < ob.Index() - case oa != nil && !oa.IsSynthetic(): - return false - case ob != nil && !ob.IsSynthetic(): - return true - default: - return a.Number() < b.Number() - } -} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/build.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/build.go index 462d384e9f..7cac1c1901 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/build.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/build.go @@ -3,14 +3,16 @@ // license that can be found in the LICENSE file. // Package filedesc provides functionality for constructing descriptors. +// +// The types in this package implement interfaces in the protoreflect package +// related to protobuf descripriptors. package filedesc import ( "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/internal/fieldnum" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/reflect/protoregistry" ) // Builder construct a protoreflect.FileDescriptor from the raw descriptor. @@ -35,7 +37,7 @@ type Builder struct { // TypeResolver resolves extension field types for descriptor options. // If nil, it uses protoregistry.GlobalTypes. TypeResolver interface { - preg.ExtensionTypeResolver + protoregistry.ExtensionTypeResolver } // FileRegistry is use to lookup file, enum, and message dependencies. @@ -43,8 +45,8 @@ type Builder struct { // If nil, it uses protoregistry.GlobalFiles. FileRegistry interface { FindFileByPath(string) (protoreflect.FileDescriptor, error) - FindDescriptorByName(pref.FullName) (pref.Descriptor, error) - RegisterFile(pref.FileDescriptor) error + FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) + RegisterFile(protoreflect.FileDescriptor) error } } @@ -52,8 +54,8 @@ type Builder struct { // If so, it permits looking up an enum or message dependency based on the // sub-list and element index into filetype.Builder.DependencyIndexes. type resolverByIndex interface { - FindEnumByIndex(int32, int32, []Enum, []Message) pref.EnumDescriptor - FindMessageByIndex(int32, int32, []Enum, []Message) pref.MessageDescriptor + FindEnumByIndex(int32, int32, []Enum, []Message) protoreflect.EnumDescriptor + FindMessageByIndex(int32, int32, []Enum, []Message) protoreflect.MessageDescriptor } // Indexes of each sub-list in filetype.Builder.DependencyIndexes. @@ -67,7 +69,7 @@ const ( // Out is the output of the Builder. type Out struct { - File pref.FileDescriptor + File protoreflect.FileDescriptor // Enums is all enum descriptors in "flattened ordering". Enums []Enum @@ -94,10 +96,10 @@ func (db Builder) Build() (out Out) { // Initialize resolvers and registries if unpopulated. if db.TypeResolver == nil { - db.TypeResolver = preg.GlobalTypes + db.TypeResolver = protoregistry.GlobalTypes } if db.FileRegistry == nil { - db.FileRegistry = preg.GlobalFiles + db.FileRegistry = protoregistry.GlobalFiles } fd := newRawFile(db) @@ -126,24 +128,24 @@ func (db *Builder) unmarshalCounts(b []byte, isFile bool) { b = b[m:] if isFile { switch num { - case fieldnum.FileDescriptorProto_EnumType: + case genid.FileDescriptorProto_EnumType_field_number: db.NumEnums++ - case fieldnum.FileDescriptorProto_MessageType: + case genid.FileDescriptorProto_MessageType_field_number: db.unmarshalCounts(v, false) db.NumMessages++ - case fieldnum.FileDescriptorProto_Extension: + case genid.FileDescriptorProto_Extension_field_number: db.NumExtensions++ - case fieldnum.FileDescriptorProto_Service: + case genid.FileDescriptorProto_Service_field_number: db.NumServices++ } } else { switch num { - case fieldnum.DescriptorProto_EnumType: + case genid.DescriptorProto_EnumType_field_number: db.NumEnums++ - case fieldnum.DescriptorProto_NestedType: + case genid.DescriptorProto_NestedType_field_number: db.unmarshalCounts(v, false) db.NumMessages++ - case fieldnum.DescriptorProto_Extension: + case genid.DescriptorProto_Extension_field_number: db.NumExtensions++ } } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc.go index 2540befd64..7c3689baee 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc.go @@ -13,9 +13,11 @@ import ( "google.golang.org/protobuf/internal/descfmt" "google.golang.org/protobuf/internal/descopts" "google.golang.org/protobuf/internal/encoding/defval" + "google.golang.org/protobuf/internal/encoding/messageset" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/internal/strs" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) @@ -41,9 +43,9 @@ type ( L2 *FileL2 } FileL1 struct { - Syntax pref.Syntax + Syntax protoreflect.Syntax Path string - Package pref.FullName + Package protoreflect.FullName Enums Enums Messages Messages @@ -51,36 +53,36 @@ type ( Services Services } FileL2 struct { - Options func() pref.ProtoMessage + Options func() protoreflect.ProtoMessage Imports FileImports Locations SourceLocations } ) -func (fd *File) ParentFile() pref.FileDescriptor { return fd } -func (fd *File) Parent() pref.Descriptor { return nil } -func (fd *File) Index() int { return 0 } -func (fd *File) Syntax() pref.Syntax { return fd.L1.Syntax } -func (fd *File) Name() pref.Name { return fd.L1.Package.Name() } -func (fd *File) FullName() pref.FullName { return fd.L1.Package } -func (fd *File) IsPlaceholder() bool { return false } -func (fd *File) Options() pref.ProtoMessage { +func (fd *File) ParentFile() protoreflect.FileDescriptor { return fd } +func (fd *File) Parent() protoreflect.Descriptor { return nil } +func (fd *File) Index() int { return 0 } +func (fd *File) Syntax() protoreflect.Syntax { return fd.L1.Syntax } +func (fd *File) Name() protoreflect.Name { return fd.L1.Package.Name() } +func (fd *File) FullName() protoreflect.FullName { return fd.L1.Package } +func (fd *File) IsPlaceholder() bool { return false } +func (fd *File) Options() protoreflect.ProtoMessage { if f := fd.lazyInit().Options; f != nil { return f() } return descopts.File } -func (fd *File) Path() string { return fd.L1.Path } -func (fd *File) Package() pref.FullName { return fd.L1.Package } -func (fd *File) Imports() pref.FileImports { return &fd.lazyInit().Imports } -func (fd *File) Enums() pref.EnumDescriptors { return &fd.L1.Enums } -func (fd *File) Messages() pref.MessageDescriptors { return &fd.L1.Messages } -func (fd *File) Extensions() pref.ExtensionDescriptors { return &fd.L1.Extensions } -func (fd *File) Services() pref.ServiceDescriptors { return &fd.L1.Services } -func (fd *File) SourceLocations() pref.SourceLocations { return &fd.lazyInit().Locations } -func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } -func (fd *File) ProtoType(pref.FileDescriptor) {} -func (fd *File) ProtoInternal(pragma.DoNotImplement) {} +func (fd *File) Path() string { return fd.L1.Path } +func (fd *File) Package() protoreflect.FullName { return fd.L1.Package } +func (fd *File) Imports() protoreflect.FileImports { return &fd.lazyInit().Imports } +func (fd *File) Enums() protoreflect.EnumDescriptors { return &fd.L1.Enums } +func (fd *File) Messages() protoreflect.MessageDescriptors { return &fd.L1.Messages } +func (fd *File) Extensions() protoreflect.ExtensionDescriptors { return &fd.L1.Extensions } +func (fd *File) Services() protoreflect.ServiceDescriptors { return &fd.L1.Services } +func (fd *File) SourceLocations() protoreflect.SourceLocations { return &fd.lazyInit().Locations } +func (fd *File) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } +func (fd *File) ProtoType(protoreflect.FileDescriptor) {} +func (fd *File) ProtoInternal(pragma.DoNotImplement) {} func (fd *File) lazyInit() *FileL2 { if atomic.LoadUint32(&fd.once) == 0 { @@ -98,15 +100,6 @@ func (fd *File) lazyInitOnce() { fd.mu.Unlock() } -// ProtoLegacyRawDesc is a pseudo-internal API for allowing the v1 code -// to be able to retrieve the raw descriptor. -// -// WARNING: This method is exempt from the compatibility promise and may be -// removed in the future without warning. -func (fd *File) ProtoLegacyRawDesc() []byte { - return fd.builder.RawDescriptor -} - // GoPackagePath is a pseudo-internal API for determining the Go package path // that this file descriptor is declared in. // @@ -126,7 +119,7 @@ type ( eagerValues bool // controls whether EnumL2.Values is already populated } EnumL2 struct { - Options func() pref.ProtoMessage + Options func() protoreflect.ProtoMessage Values EnumValues ReservedNames Names ReservedRanges EnumRanges @@ -137,41 +130,41 @@ type ( L1 EnumValueL1 } EnumValueL1 struct { - Options func() pref.ProtoMessage - Number pref.EnumNumber + Options func() protoreflect.ProtoMessage + Number protoreflect.EnumNumber } ) -func (ed *Enum) Options() pref.ProtoMessage { +func (ed *Enum) Options() protoreflect.ProtoMessage { if f := ed.lazyInit().Options; f != nil { return f() } return descopts.Enum } -func (ed *Enum) Values() pref.EnumValueDescriptors { +func (ed *Enum) Values() protoreflect.EnumValueDescriptors { if ed.L1.eagerValues { return &ed.L2.Values } return &ed.lazyInit().Values } -func (ed *Enum) ReservedNames() pref.Names { return &ed.lazyInit().ReservedNames } -func (ed *Enum) ReservedRanges() pref.EnumRanges { return &ed.lazyInit().ReservedRanges } -func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } -func (ed *Enum) ProtoType(pref.EnumDescriptor) {} +func (ed *Enum) ReservedNames() protoreflect.Names { return &ed.lazyInit().ReservedNames } +func (ed *Enum) ReservedRanges() protoreflect.EnumRanges { return &ed.lazyInit().ReservedRanges } +func (ed *Enum) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } +func (ed *Enum) ProtoType(protoreflect.EnumDescriptor) {} func (ed *Enum) lazyInit() *EnumL2 { ed.L0.ParentFile.lazyInit() // implicitly initializes L2 return ed.L2 } -func (ed *EnumValue) Options() pref.ProtoMessage { +func (ed *EnumValue) Options() protoreflect.ProtoMessage { if f := ed.L1.Options; f != nil { return f() } return descopts.EnumValue } -func (ed *EnumValue) Number() pref.EnumNumber { return ed.L1.Number } -func (ed *EnumValue) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } -func (ed *EnumValue) ProtoType(pref.EnumValueDescriptor) {} +func (ed *EnumValue) Number() protoreflect.EnumNumber { return ed.L1.Number } +func (ed *EnumValue) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, ed) } +func (ed *EnumValue) ProtoType(protoreflect.EnumValueDescriptor) {} type ( Message struct { @@ -187,14 +180,14 @@ type ( IsMessageSet bool // promoted from google.protobuf.MessageOptions } MessageL2 struct { - Options func() pref.ProtoMessage + Options func() protoreflect.ProtoMessage Fields Fields Oneofs Oneofs ReservedNames Names ReservedRanges FieldRanges RequiredNumbers FieldNumbers // must be consistent with Fields.Cardinality ExtensionRanges FieldRanges - ExtensionRangeOptions []func() pref.ProtoMessage // must be same length as ExtensionRanges + ExtensionRangeOptions []func() protoreflect.ProtoMessage // must be same length as ExtensionRanges } Field struct { @@ -202,11 +195,11 @@ type ( L1 FieldL1 } FieldL1 struct { - Options func() pref.ProtoMessage - Number pref.FieldNumber - Cardinality pref.Cardinality // must be consistent with Message.RequiredNumbers - Kind pref.Kind - JSONName jsonName + Options func() protoreflect.ProtoMessage + Number protoreflect.FieldNumber + Cardinality protoreflect.Cardinality // must be consistent with Message.RequiredNumbers + Kind protoreflect.Kind + StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsWeak bool // promoted from google.protobuf.FieldOptions HasPacked bool // promoted from google.protobuf.FieldOptions @@ -214,9 +207,9 @@ type ( HasEnforceUTF8 bool // promoted from google.protobuf.FieldOptions EnforceUTF8 bool // promoted from google.protobuf.FieldOptions Default defaultValue - ContainingOneof pref.OneofDescriptor // must be consistent with Message.Oneofs.Fields - Enum pref.EnumDescriptor - Message pref.MessageDescriptor + ContainingOneof protoreflect.OneofDescriptor // must be consistent with Message.Oneofs.Fields + Enum protoreflect.EnumDescriptor + Message protoreflect.MessageDescriptor } Oneof struct { @@ -224,35 +217,35 @@ type ( L1 OneofL1 } OneofL1 struct { - Options func() pref.ProtoMessage + Options func() protoreflect.ProtoMessage Fields OneofFields // must be consistent with Message.Fields.ContainingOneof } ) -func (md *Message) Options() pref.ProtoMessage { +func (md *Message) Options() protoreflect.ProtoMessage { if f := md.lazyInit().Options; f != nil { return f() } return descopts.Message } -func (md *Message) IsMapEntry() bool { return md.L1.IsMapEntry } -func (md *Message) Fields() pref.FieldDescriptors { return &md.lazyInit().Fields } -func (md *Message) Oneofs() pref.OneofDescriptors { return &md.lazyInit().Oneofs } -func (md *Message) ReservedNames() pref.Names { return &md.lazyInit().ReservedNames } -func (md *Message) ReservedRanges() pref.FieldRanges { return &md.lazyInit().ReservedRanges } -func (md *Message) RequiredNumbers() pref.FieldNumbers { return &md.lazyInit().RequiredNumbers } -func (md *Message) ExtensionRanges() pref.FieldRanges { return &md.lazyInit().ExtensionRanges } -func (md *Message) ExtensionRangeOptions(i int) pref.ProtoMessage { +func (md *Message) IsMapEntry() bool { return md.L1.IsMapEntry } +func (md *Message) Fields() protoreflect.FieldDescriptors { return &md.lazyInit().Fields } +func (md *Message) Oneofs() protoreflect.OneofDescriptors { return &md.lazyInit().Oneofs } +func (md *Message) ReservedNames() protoreflect.Names { return &md.lazyInit().ReservedNames } +func (md *Message) ReservedRanges() protoreflect.FieldRanges { return &md.lazyInit().ReservedRanges } +func (md *Message) RequiredNumbers() protoreflect.FieldNumbers { return &md.lazyInit().RequiredNumbers } +func (md *Message) ExtensionRanges() protoreflect.FieldRanges { return &md.lazyInit().ExtensionRanges } +func (md *Message) ExtensionRangeOptions(i int) protoreflect.ProtoMessage { if f := md.lazyInit().ExtensionRangeOptions[i]; f != nil { return f() } return descopts.ExtensionRange } -func (md *Message) Enums() pref.EnumDescriptors { return &md.L1.Enums } -func (md *Message) Messages() pref.MessageDescriptors { return &md.L1.Messages } -func (md *Message) Extensions() pref.ExtensionDescriptors { return &md.L1.Extensions } -func (md *Message) ProtoType(pref.MessageDescriptor) {} -func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } +func (md *Message) Enums() protoreflect.EnumDescriptors { return &md.L1.Enums } +func (md *Message) Messages() protoreflect.MessageDescriptors { return &md.L1.Messages } +func (md *Message) Extensions() protoreflect.ExtensionDescriptors { return &md.L1.Extensions } +func (md *Message) ProtoType(protoreflect.MessageDescriptor) {} +func (md *Message) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } func (md *Message) lazyInit() *MessageL2 { md.L0.ParentFile.lazyInit() // implicitly initializes L2 return md.L2 @@ -267,27 +260,28 @@ func (md *Message) IsMessageSet() bool { return md.L1.IsMessageSet } -func (fd *Field) Options() pref.ProtoMessage { +func (fd *Field) Options() protoreflect.ProtoMessage { if f := fd.L1.Options; f != nil { return f() } return descopts.Field } -func (fd *Field) Number() pref.FieldNumber { return fd.L1.Number } -func (fd *Field) Cardinality() pref.Cardinality { return fd.L1.Cardinality } -func (fd *Field) Kind() pref.Kind { return fd.L1.Kind } -func (fd *Field) HasJSONName() bool { return fd.L1.JSONName.has } -func (fd *Field) JSONName() string { return fd.L1.JSONName.get(fd) } +func (fd *Field) Number() protoreflect.FieldNumber { return fd.L1.Number } +func (fd *Field) Cardinality() protoreflect.Cardinality { return fd.L1.Cardinality } +func (fd *Field) Kind() protoreflect.Kind { return fd.L1.Kind } +func (fd *Field) HasJSONName() bool { return fd.L1.StringName.hasJSON } +func (fd *Field) JSONName() string { return fd.L1.StringName.getJSON(fd) } +func (fd *Field) TextName() string { return fd.L1.StringName.getText(fd) } func (fd *Field) HasPresence() bool { - return fd.L1.Cardinality != pref.Repeated && (fd.L0.ParentFile.L1.Syntax == pref.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) + return fd.L1.Cardinality != protoreflect.Repeated && (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 || fd.L1.Message != nil || fd.L1.ContainingOneof != nil) } func (fd *Field) HasOptionalKeyword() bool { - return (fd.L0.ParentFile.L1.Syntax == pref.Proto2 && fd.L1.Cardinality == pref.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional + return (fd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Optional && fd.L1.ContainingOneof == nil) || fd.L1.IsProto3Optional } func (fd *Field) IsPacked() bool { - if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != pref.Proto2 && fd.L1.Cardinality == pref.Repeated { + if !fd.L1.HasPacked && fd.L0.ParentFile.L1.Syntax != protoreflect.Proto2 && fd.L1.Cardinality == protoreflect.Repeated { switch fd.L1.Kind { - case pref.StringKind, pref.BytesKind, pref.MessageKind, pref.GroupKind: + case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: default: return true } @@ -296,40 +290,40 @@ func (fd *Field) IsPacked() bool { } func (fd *Field) IsExtension() bool { return false } func (fd *Field) IsWeak() bool { return fd.L1.IsWeak } -func (fd *Field) IsList() bool { return fd.Cardinality() == pref.Repeated && !fd.IsMap() } +func (fd *Field) IsList() bool { return fd.Cardinality() == protoreflect.Repeated && !fd.IsMap() } func (fd *Field) IsMap() bool { return fd.Message() != nil && fd.Message().IsMapEntry() } -func (fd *Field) MapKey() pref.FieldDescriptor { +func (fd *Field) MapKey() protoreflect.FieldDescriptor { if !fd.IsMap() { return nil } - return fd.Message().Fields().ByNumber(1) + return fd.Message().Fields().ByNumber(genid.MapEntry_Key_field_number) } -func (fd *Field) MapValue() pref.FieldDescriptor { +func (fd *Field) MapValue() protoreflect.FieldDescriptor { if !fd.IsMap() { return nil } - return fd.Message().Fields().ByNumber(2) + return fd.Message().Fields().ByNumber(genid.MapEntry_Value_field_number) } -func (fd *Field) HasDefault() bool { return fd.L1.Default.has } -func (fd *Field) Default() pref.Value { return fd.L1.Default.get(fd) } -func (fd *Field) DefaultEnumValue() pref.EnumValueDescriptor { return fd.L1.Default.enum } -func (fd *Field) ContainingOneof() pref.OneofDescriptor { return fd.L1.ContainingOneof } -func (fd *Field) ContainingMessage() pref.MessageDescriptor { - return fd.L0.Parent.(pref.MessageDescriptor) +func (fd *Field) HasDefault() bool { return fd.L1.Default.has } +func (fd *Field) Default() protoreflect.Value { return fd.L1.Default.get(fd) } +func (fd *Field) DefaultEnumValue() protoreflect.EnumValueDescriptor { return fd.L1.Default.enum } +func (fd *Field) ContainingOneof() protoreflect.OneofDescriptor { return fd.L1.ContainingOneof } +func (fd *Field) ContainingMessage() protoreflect.MessageDescriptor { + return fd.L0.Parent.(protoreflect.MessageDescriptor) } -func (fd *Field) Enum() pref.EnumDescriptor { +func (fd *Field) Enum() protoreflect.EnumDescriptor { return fd.L1.Enum } -func (fd *Field) Message() pref.MessageDescriptor { +func (fd *Field) Message() protoreflect.MessageDescriptor { if fd.L1.IsWeak { if d, _ := protoregistry.GlobalFiles.FindDescriptorByName(fd.L1.Message.FullName()); d != nil { - return d.(pref.MessageDescriptor) + return d.(protoreflect.MessageDescriptor) } } return fd.L1.Message } -func (fd *Field) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } -func (fd *Field) ProtoType(pref.FieldDescriptor) {} +func (fd *Field) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, fd) } +func (fd *Field) ProtoType(protoreflect.FieldDescriptor) {} // EnforceUTF8 is a pseudo-internal API to determine whether to enforce UTF-8 // validation for the string field. This exists for Google-internal use only @@ -342,21 +336,21 @@ func (fd *Field) EnforceUTF8() bool { if fd.L1.HasEnforceUTF8 { return fd.L1.EnforceUTF8 } - return fd.L0.ParentFile.L1.Syntax == pref.Proto3 + return fd.L0.ParentFile.L1.Syntax == protoreflect.Proto3 } func (od *Oneof) IsSynthetic() bool { - return od.L0.ParentFile.L1.Syntax == pref.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword() + return od.L0.ParentFile.L1.Syntax == protoreflect.Proto3 && len(od.L1.Fields.List) == 1 && od.L1.Fields.List[0].HasOptionalKeyword() } -func (od *Oneof) Options() pref.ProtoMessage { +func (od *Oneof) Options() protoreflect.ProtoMessage { if f := od.L1.Options; f != nil { return f() } return descopts.Oneof } -func (od *Oneof) Fields() pref.FieldDescriptors { return &od.L1.Fields } -func (od *Oneof) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, od) } -func (od *Oneof) ProtoType(pref.OneofDescriptor) {} +func (od *Oneof) Fields() protoreflect.FieldDescriptors { return &od.L1.Fields } +func (od *Oneof) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, od) } +func (od *Oneof) ProtoType(protoreflect.OneofDescriptor) {} type ( Extension struct { @@ -365,54 +359,57 @@ type ( L2 *ExtensionL2 // protected by fileDesc.once } ExtensionL1 struct { - Number pref.FieldNumber - Extendee pref.MessageDescriptor - Cardinality pref.Cardinality - Kind pref.Kind + Number protoreflect.FieldNumber + Extendee protoreflect.MessageDescriptor + Cardinality protoreflect.Cardinality + Kind protoreflect.Kind } ExtensionL2 struct { - Options func() pref.ProtoMessage - JSONName jsonName + Options func() protoreflect.ProtoMessage + StringName stringName IsProto3Optional bool // promoted from google.protobuf.FieldDescriptorProto IsPacked bool // promoted from google.protobuf.FieldOptions Default defaultValue - Enum pref.EnumDescriptor - Message pref.MessageDescriptor + Enum protoreflect.EnumDescriptor + Message protoreflect.MessageDescriptor } ) -func (xd *Extension) Options() pref.ProtoMessage { +func (xd *Extension) Options() protoreflect.ProtoMessage { if f := xd.lazyInit().Options; f != nil { return f() } return descopts.Field } -func (xd *Extension) Number() pref.FieldNumber { return xd.L1.Number } -func (xd *Extension) Cardinality() pref.Cardinality { return xd.L1.Cardinality } -func (xd *Extension) Kind() pref.Kind { return xd.L1.Kind } -func (xd *Extension) HasJSONName() bool { return xd.lazyInit().JSONName.has } -func (xd *Extension) JSONName() string { return xd.lazyInit().JSONName.get(xd) } -func (xd *Extension) HasPresence() bool { return xd.L1.Cardinality != pref.Repeated } +func (xd *Extension) Number() protoreflect.FieldNumber { return xd.L1.Number } +func (xd *Extension) Cardinality() protoreflect.Cardinality { return xd.L1.Cardinality } +func (xd *Extension) Kind() protoreflect.Kind { return xd.L1.Kind } +func (xd *Extension) HasJSONName() bool { return xd.lazyInit().StringName.hasJSON } +func (xd *Extension) JSONName() string { return xd.lazyInit().StringName.getJSON(xd) } +func (xd *Extension) TextName() string { return xd.lazyInit().StringName.getText(xd) } +func (xd *Extension) HasPresence() bool { return xd.L1.Cardinality != protoreflect.Repeated } func (xd *Extension) HasOptionalKeyword() bool { - return (xd.L0.ParentFile.L1.Syntax == pref.Proto2 && xd.L1.Cardinality == pref.Optional) || xd.lazyInit().IsProto3Optional -} -func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } -func (xd *Extension) IsExtension() bool { return true } -func (xd *Extension) IsWeak() bool { return false } -func (xd *Extension) IsList() bool { return xd.Cardinality() == pref.Repeated } -func (xd *Extension) IsMap() bool { return false } -func (xd *Extension) MapKey() pref.FieldDescriptor { return nil } -func (xd *Extension) MapValue() pref.FieldDescriptor { return nil } -func (xd *Extension) HasDefault() bool { return xd.lazyInit().Default.has } -func (xd *Extension) Default() pref.Value { return xd.lazyInit().Default.get(xd) } -func (xd *Extension) DefaultEnumValue() pref.EnumValueDescriptor { return xd.lazyInit().Default.enum } -func (xd *Extension) ContainingOneof() pref.OneofDescriptor { return nil } -func (xd *Extension) ContainingMessage() pref.MessageDescriptor { return xd.L1.Extendee } -func (xd *Extension) Enum() pref.EnumDescriptor { return xd.lazyInit().Enum } -func (xd *Extension) Message() pref.MessageDescriptor { return xd.lazyInit().Message } -func (xd *Extension) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, xd) } -func (xd *Extension) ProtoType(pref.FieldDescriptor) {} -func (xd *Extension) ProtoInternal(pragma.DoNotImplement) {} + return (xd.L0.ParentFile.L1.Syntax == protoreflect.Proto2 && xd.L1.Cardinality == protoreflect.Optional) || xd.lazyInit().IsProto3Optional +} +func (xd *Extension) IsPacked() bool { return xd.lazyInit().IsPacked } +func (xd *Extension) IsExtension() bool { return true } +func (xd *Extension) IsWeak() bool { return false } +func (xd *Extension) IsList() bool { return xd.Cardinality() == protoreflect.Repeated } +func (xd *Extension) IsMap() bool { return false } +func (xd *Extension) MapKey() protoreflect.FieldDescriptor { return nil } +func (xd *Extension) MapValue() protoreflect.FieldDescriptor { return nil } +func (xd *Extension) HasDefault() bool { return xd.lazyInit().Default.has } +func (xd *Extension) Default() protoreflect.Value { return xd.lazyInit().Default.get(xd) } +func (xd *Extension) DefaultEnumValue() protoreflect.EnumValueDescriptor { + return xd.lazyInit().Default.enum +} +func (xd *Extension) ContainingOneof() protoreflect.OneofDescriptor { return nil } +func (xd *Extension) ContainingMessage() protoreflect.MessageDescriptor { return xd.L1.Extendee } +func (xd *Extension) Enum() protoreflect.EnumDescriptor { return xd.lazyInit().Enum } +func (xd *Extension) Message() protoreflect.MessageDescriptor { return xd.lazyInit().Message } +func (xd *Extension) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, xd) } +func (xd *Extension) ProtoType(protoreflect.FieldDescriptor) {} +func (xd *Extension) ProtoInternal(pragma.DoNotImplement) {} func (xd *Extension) lazyInit() *ExtensionL2 { xd.L0.ParentFile.lazyInit() // implicitly initializes L2 return xd.L2 @@ -426,7 +423,7 @@ type ( } ServiceL1 struct{} ServiceL2 struct { - Options func() pref.ProtoMessage + Options func() protoreflect.ProtoMessage Methods Methods } @@ -435,48 +432,48 @@ type ( L1 MethodL1 } MethodL1 struct { - Options func() pref.ProtoMessage - Input pref.MessageDescriptor - Output pref.MessageDescriptor + Options func() protoreflect.ProtoMessage + Input protoreflect.MessageDescriptor + Output protoreflect.MessageDescriptor IsStreamingClient bool IsStreamingServer bool } ) -func (sd *Service) Options() pref.ProtoMessage { +func (sd *Service) Options() protoreflect.ProtoMessage { if f := sd.lazyInit().Options; f != nil { return f() } return descopts.Service } -func (sd *Service) Methods() pref.MethodDescriptors { return &sd.lazyInit().Methods } -func (sd *Service) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, sd) } -func (sd *Service) ProtoType(pref.ServiceDescriptor) {} -func (sd *Service) ProtoInternal(pragma.DoNotImplement) {} +func (sd *Service) Methods() protoreflect.MethodDescriptors { return &sd.lazyInit().Methods } +func (sd *Service) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, sd) } +func (sd *Service) ProtoType(protoreflect.ServiceDescriptor) {} +func (sd *Service) ProtoInternal(pragma.DoNotImplement) {} func (sd *Service) lazyInit() *ServiceL2 { sd.L0.ParentFile.lazyInit() // implicitly initializes L2 return sd.L2 } -func (md *Method) Options() pref.ProtoMessage { +func (md *Method) Options() protoreflect.ProtoMessage { if f := md.L1.Options; f != nil { return f() } return descopts.Method } -func (md *Method) Input() pref.MessageDescriptor { return md.L1.Input } -func (md *Method) Output() pref.MessageDescriptor { return md.L1.Output } -func (md *Method) IsStreamingClient() bool { return md.L1.IsStreamingClient } -func (md *Method) IsStreamingServer() bool { return md.L1.IsStreamingServer } -func (md *Method) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } -func (md *Method) ProtoType(pref.MethodDescriptor) {} -func (md *Method) ProtoInternal(pragma.DoNotImplement) {} +func (md *Method) Input() protoreflect.MessageDescriptor { return md.L1.Input } +func (md *Method) Output() protoreflect.MessageDescriptor { return md.L1.Output } +func (md *Method) IsStreamingClient() bool { return md.L1.IsStreamingClient } +func (md *Method) IsStreamingServer() bool { return md.L1.IsStreamingServer } +func (md *Method) Format(s fmt.State, r rune) { descfmt.FormatDesc(s, r, md) } +func (md *Method) ProtoType(protoreflect.MethodDescriptor) {} +func (md *Method) ProtoInternal(pragma.DoNotImplement) {} // Surrogate files are can be used to create standalone descriptors // where the syntax is only information derived from the parent file. var ( - SurrogateProto2 = &File{L1: FileL1{Syntax: pref.Proto2}, L2: &FileL2{}} - SurrogateProto3 = &File{L1: FileL1{Syntax: pref.Proto3}, L2: &FileL2{}} + SurrogateProto2 = &File{L1: FileL1{Syntax: protoreflect.Proto2}, L2: &FileL2{}} + SurrogateProto3 = &File{L1: FileL1{Syntax: protoreflect.Proto3}, L2: &FileL2{}} ) type ( @@ -484,49 +481,72 @@ type ( L0 BaseL0 } BaseL0 struct { - FullName pref.FullName // must be populated - ParentFile *File // must be populated - Parent pref.Descriptor + FullName protoreflect.FullName // must be populated + ParentFile *File // must be populated + Parent protoreflect.Descriptor Index int } ) -func (d *Base) Name() pref.Name { return d.L0.FullName.Name() } -func (d *Base) FullName() pref.FullName { return d.L0.FullName } -func (d *Base) ParentFile() pref.FileDescriptor { +func (d *Base) Name() protoreflect.Name { return d.L0.FullName.Name() } +func (d *Base) FullName() protoreflect.FullName { return d.L0.FullName } +func (d *Base) ParentFile() protoreflect.FileDescriptor { if d.L0.ParentFile == SurrogateProto2 || d.L0.ParentFile == SurrogateProto3 { return nil // surrogate files are not real parents } return d.L0.ParentFile } -func (d *Base) Parent() pref.Descriptor { return d.L0.Parent } +func (d *Base) Parent() protoreflect.Descriptor { return d.L0.Parent } func (d *Base) Index() int { return d.L0.Index } -func (d *Base) Syntax() pref.Syntax { return d.L0.ParentFile.Syntax() } +func (d *Base) Syntax() protoreflect.Syntax { return d.L0.ParentFile.Syntax() } func (d *Base) IsPlaceholder() bool { return false } func (d *Base) ProtoInternal(pragma.DoNotImplement) {} -type jsonName struct { - has bool - once sync.Once - name string +type stringName struct { + hasJSON bool + once sync.Once + nameJSON string + nameText string } -// Init initializes the name. It is exported for use by other internal packages. -func (js *jsonName) Init(s string) { - js.has = true - js.name = s +// InitJSON initializes the name. It is exported for use by other internal packages. +func (s *stringName) InitJSON(name string) { + s.hasJSON = true + s.nameJSON = name } -func (js *jsonName) get(fd pref.FieldDescriptor) string { - if !js.has { - js.once.Do(func() { - js.name = strs.JSONCamelCase(string(fd.Name())) - }) - } - return js.name +func (s *stringName) lazyInit(fd protoreflect.FieldDescriptor) *stringName { + s.once.Do(func() { + if fd.IsExtension() { + // For extensions, JSON and text are formatted the same way. + var name string + if messageset.IsMessageSetExtension(fd) { + name = string("[" + fd.FullName().Parent() + "]") + } else { + name = string("[" + fd.FullName() + "]") + } + s.nameJSON = name + s.nameText = name + } else { + // Format the JSON name. + if !s.hasJSON { + s.nameJSON = strs.JSONCamelCase(string(fd.Name())) + } + + // Format the text name. + s.nameText = string(fd.Name()) + if fd.Kind() == protoreflect.GroupKind { + s.nameText = string(fd.Message().Name()) + } + } + }) + return s } -func DefaultValue(v pref.Value, ev pref.EnumValueDescriptor) defaultValue { +func (s *stringName) getJSON(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameJSON } +func (s *stringName) getText(fd protoreflect.FieldDescriptor) string { return s.lazyInit(fd).nameText } + +func DefaultValue(v protoreflect.Value, ev protoreflect.EnumValueDescriptor) defaultValue { dv := defaultValue{has: v.IsValid(), val: v, enum: ev} if b, ok := v.Interface().([]byte); ok { // Store a copy of the default bytes, so that we can detect @@ -536,9 +556,9 @@ func DefaultValue(v pref.Value, ev pref.EnumValueDescriptor) defaultValue { return dv } -func unmarshalDefault(b []byte, k pref.Kind, pf *File, ed pref.EnumDescriptor) defaultValue { - var evs pref.EnumValueDescriptors - if k == pref.EnumKind { +func unmarshalDefault(b []byte, k protoreflect.Kind, pf *File, ed protoreflect.EnumDescriptor) defaultValue { + var evs protoreflect.EnumValueDescriptors + if k == protoreflect.EnumKind { // If the enum is declared within the same file, be careful not to // blindly call the Values method, lest we bind ourselves in a deadlock. if e, ok := ed.(*Enum); ok && e.L0.ParentFile == pf { @@ -549,9 +569,9 @@ func unmarshalDefault(b []byte, k pref.Kind, pf *File, ed pref.EnumDescriptor) d // If we are unable to resolve the enum dependency, use a placeholder // enum value since we will not be able to parse the default value. - if ed.IsPlaceholder() && pref.Name(b).IsValid() { - v := pref.ValueOfEnum(0) - ev := PlaceholderEnumValue(ed.FullName().Parent().Append(pref.Name(b))) + if ed.IsPlaceholder() && protoreflect.Name(b).IsValid() { + v := protoreflect.ValueOfEnum(0) + ev := PlaceholderEnumValue(ed.FullName().Parent().Append(protoreflect.Name(b))) return DefaultValue(v, ev) } } @@ -565,41 +585,41 @@ func unmarshalDefault(b []byte, k pref.Kind, pf *File, ed pref.EnumDescriptor) d type defaultValue struct { has bool - val pref.Value - enum pref.EnumValueDescriptor + val protoreflect.Value + enum protoreflect.EnumValueDescriptor bytes []byte } -func (dv *defaultValue) get(fd pref.FieldDescriptor) pref.Value { +func (dv *defaultValue) get(fd protoreflect.FieldDescriptor) protoreflect.Value { // Return the zero value as the default if unpopulated. if !dv.has { - if fd.Cardinality() == pref.Repeated { - return pref.Value{} + if fd.Cardinality() == protoreflect.Repeated { + return protoreflect.Value{} } switch fd.Kind() { - case pref.BoolKind: - return pref.ValueOfBool(false) - case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: - return pref.ValueOfInt32(0) - case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: - return pref.ValueOfInt64(0) - case pref.Uint32Kind, pref.Fixed32Kind: - return pref.ValueOfUint32(0) - case pref.Uint64Kind, pref.Fixed64Kind: - return pref.ValueOfUint64(0) - case pref.FloatKind: - return pref.ValueOfFloat32(0) - case pref.DoubleKind: - return pref.ValueOfFloat64(0) - case pref.StringKind: - return pref.ValueOfString("") - case pref.BytesKind: - return pref.ValueOfBytes(nil) - case pref.EnumKind: + case protoreflect.BoolKind: + return protoreflect.ValueOfBool(false) + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + return protoreflect.ValueOfInt32(0) + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + return protoreflect.ValueOfInt64(0) + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + return protoreflect.ValueOfUint32(0) + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + return protoreflect.ValueOfUint64(0) + case protoreflect.FloatKind: + return protoreflect.ValueOfFloat32(0) + case protoreflect.DoubleKind: + return protoreflect.ValueOfFloat64(0) + case protoreflect.StringKind: + return protoreflect.ValueOfString("") + case protoreflect.BytesKind: + return protoreflect.ValueOfBytes(nil) + case protoreflect.EnumKind: if evs := fd.Enum().Values(); evs.Len() > 0 { - return pref.ValueOfEnum(evs.Get(0).Number()) + return protoreflect.ValueOfEnum(evs.Get(0).Number()) } - return pref.ValueOfEnum(0) + return protoreflect.ValueOfEnum(0) } } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go index c0cddf86a4..4a1584c9d2 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_init.go @@ -8,9 +8,9 @@ import ( "sync" "google.golang.org/protobuf/encoding/protowire" - "google.golang.org/protobuf/internal/fieldnum" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) // fileRaw is a data struct used when initializing a file descriptor from @@ -95,7 +95,7 @@ func (fd *File) unmarshalSeed(b []byte) { sb := getBuilder() defer putBuilder(sb) - var prevField pref.FieldNumber + var prevField protoreflect.FieldNumber var numEnums, numMessages, numExtensions, numServices int var posEnums, posMessages, posExtensions, posServices int b0 := b @@ -107,45 +107,45 @@ func (fd *File) unmarshalSeed(b []byte) { v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.FileDescriptorProto_Syntax: + case genid.FileDescriptorProto_Syntax_field_number: switch string(v) { case "proto2": - fd.L1.Syntax = pref.Proto2 + fd.L1.Syntax = protoreflect.Proto2 case "proto3": - fd.L1.Syntax = pref.Proto3 + fd.L1.Syntax = protoreflect.Proto3 default: panic("invalid syntax") } - case fieldnum.FileDescriptorProto_Name: + case genid.FileDescriptorProto_Name_field_number: fd.L1.Path = sb.MakeString(v) - case fieldnum.FileDescriptorProto_Package: - fd.L1.Package = pref.FullName(sb.MakeString(v)) - case fieldnum.FileDescriptorProto_EnumType: - if prevField != fieldnum.FileDescriptorProto_EnumType { + case genid.FileDescriptorProto_Package_field_number: + fd.L1.Package = protoreflect.FullName(sb.MakeString(v)) + case genid.FileDescriptorProto_EnumType_field_number: + if prevField != genid.FileDescriptorProto_EnumType_field_number { if numEnums > 0 { panic("non-contiguous repeated field") } posEnums = len(b0) - len(b) - n - m } numEnums++ - case fieldnum.FileDescriptorProto_MessageType: - if prevField != fieldnum.FileDescriptorProto_MessageType { + case genid.FileDescriptorProto_MessageType_field_number: + if prevField != genid.FileDescriptorProto_MessageType_field_number { if numMessages > 0 { panic("non-contiguous repeated field") } posMessages = len(b0) - len(b) - n - m } numMessages++ - case fieldnum.FileDescriptorProto_Extension: - if prevField != fieldnum.FileDescriptorProto_Extension { + case genid.FileDescriptorProto_Extension_field_number: + if prevField != genid.FileDescriptorProto_Extension_field_number { if numExtensions > 0 { panic("non-contiguous repeated field") } posExtensions = len(b0) - len(b) - n - m } numExtensions++ - case fieldnum.FileDescriptorProto_Service: - if prevField != fieldnum.FileDescriptorProto_Service { + case genid.FileDescriptorProto_Service_field_number: + if prevField != genid.FileDescriptorProto_Service_field_number { if numServices > 0 { panic("non-contiguous repeated field") } @@ -163,7 +163,7 @@ func (fd *File) unmarshalSeed(b []byte) { // If syntax is missing, it is assumed to be proto2. if fd.L1.Syntax == 0 { - fd.L1.Syntax = pref.Proto2 + fd.L1.Syntax = protoreflect.Proto2 } // Must allocate all declarations before parsing each descriptor type @@ -219,7 +219,7 @@ func (fd *File) unmarshalSeed(b []byte) { } } -func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { ed.L0.ParentFile = pf ed.L0.Parent = pd ed.L0.Index = i @@ -233,9 +233,9 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Desc v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.EnumDescriptorProto_Name: + case genid.EnumDescriptorProto_Name_field_number: ed.L0.FullName = appendFullName(sb, pd.FullName(), v) - case fieldnum.EnumDescriptorProto_Value: + case genid.EnumDescriptorProto_Value_field_number: numValues++ } default: @@ -260,7 +260,7 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Desc v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.EnumDescriptorProto_Value: + case genid.EnumDescriptorProto_Value_field_number: ed.L2.Values.List[i].unmarshalFull(v, sb, pf, ed, i) i++ } @@ -271,12 +271,12 @@ func (ed *Enum) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Desc } } -func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { md.L0.ParentFile = pf md.L0.Parent = pd md.L0.Index = i - var prevField pref.FieldNumber + var prevField protoreflect.FieldNumber var numEnums, numMessages, numExtensions int var posEnums, posMessages, posExtensions int b0 := b @@ -288,33 +288,33 @@ func (md *Message) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.D v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.DescriptorProto_Name: + case genid.DescriptorProto_Name_field_number: md.L0.FullName = appendFullName(sb, pd.FullName(), v) - case fieldnum.DescriptorProto_EnumType: - if prevField != fieldnum.DescriptorProto_EnumType { + case genid.DescriptorProto_EnumType_field_number: + if prevField != genid.DescriptorProto_EnumType_field_number { if numEnums > 0 { panic("non-contiguous repeated field") } posEnums = len(b0) - len(b) - n - m } numEnums++ - case fieldnum.DescriptorProto_NestedType: - if prevField != fieldnum.DescriptorProto_NestedType { + case genid.DescriptorProto_NestedType_field_number: + if prevField != genid.DescriptorProto_NestedType_field_number { if numMessages > 0 { panic("non-contiguous repeated field") } posMessages = len(b0) - len(b) - n - m } numMessages++ - case fieldnum.DescriptorProto_Extension: - if prevField != fieldnum.DescriptorProto_Extension { + case genid.DescriptorProto_Extension_field_number: + if prevField != genid.DescriptorProto_Extension_field_number { if numExtensions > 0 { panic("non-contiguous repeated field") } posExtensions = len(b0) - len(b) - n - m } numExtensions++ - case fieldnum.DescriptorProto_Options: + case genid.DescriptorProto_Options_field_number: md.unmarshalSeedOptions(v) } prevField = num @@ -375,9 +375,9 @@ func (md *Message) unmarshalSeedOptions(b []byte) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.MessageOptions_MapEntry: + case genid.MessageOptions_MapEntry_field_number: md.L1.IsMapEntry = protowire.DecodeBool(v) - case fieldnum.MessageOptions_MessageSetWireFormat: + case genid.MessageOptions_MessageSetWireFormat_field_number: md.L1.IsMessageSet = protowire.DecodeBool(v) } default: @@ -387,7 +387,7 @@ func (md *Message) unmarshalSeedOptions(b []byte) { } } -func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { xd.L0.ParentFile = pf xd.L0.Parent = pd xd.L0.Index = i @@ -400,20 +400,20 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.FieldDescriptorProto_Number: - xd.L1.Number = pref.FieldNumber(v) - case fieldnum.FieldDescriptorProto_Label: - xd.L1.Cardinality = pref.Cardinality(v) - case fieldnum.FieldDescriptorProto_Type: - xd.L1.Kind = pref.Kind(v) + case genid.FieldDescriptorProto_Number_field_number: + xd.L1.Number = protoreflect.FieldNumber(v) + case genid.FieldDescriptorProto_Label_field_number: + xd.L1.Cardinality = protoreflect.Cardinality(v) + case genid.FieldDescriptorProto_Type_field_number: + xd.L1.Kind = protoreflect.Kind(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.FieldDescriptorProto_Name: + case genid.FieldDescriptorProto_Name_field_number: xd.L0.FullName = appendFullName(sb, pd.FullName(), v) - case fieldnum.FieldDescriptorProto_Extendee: + case genid.FieldDescriptorProto_Extendee_field_number: xd.L1.Extendee = PlaceholderMessage(makeFullName(sb, v)) } default: @@ -423,7 +423,7 @@ func (xd *Extension) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref } } -func (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { sd.L0.ParentFile = pf sd.L0.Parent = pd sd.L0.Index = i @@ -436,7 +436,7 @@ func (sd *Service) unmarshalSeed(b []byte, sb *strs.Builder, pf *File, pd pref.D v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.ServiceDescriptorProto_Name: + case genid.ServiceDescriptorProto_Name_field_number: sd.L0.FullName = appendFullName(sb, pd.FullName(), v) } default: @@ -459,13 +459,13 @@ func putBuilder(b *strs.Builder) { // makeFullName converts b to a protoreflect.FullName, // where b must start with a leading dot. -func makeFullName(sb *strs.Builder, b []byte) pref.FullName { +func makeFullName(sb *strs.Builder, b []byte) protoreflect.FullName { if len(b) == 0 || b[0] != '.' { panic("name reference must be fully qualified") } - return pref.FullName(sb.MakeString(b[1:])) + return protoreflect.FullName(sb.MakeString(b[1:])) } -func appendFullName(sb *strs.Builder, prefix pref.FullName, suffix []byte) pref.FullName { - return sb.AppendFullName(prefix, pref.Name(strs.UnsafeString(suffix))) +func appendFullName(sb *strs.Builder, prefix protoreflect.FullName, suffix []byte) protoreflect.FullName { + return sb.AppendFullName(prefix, protoreflect.Name(strs.UnsafeString(suffix))) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go index bc215944a3..736a19a75b 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_lazy.go @@ -10,10 +10,10 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/descopts" - "google.golang.org/protobuf/internal/fieldnum" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/proto" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) func (fd *File) lazyRawInit() { @@ -39,10 +39,10 @@ func (file *File) resolveMessages() { // Resolve message field dependency. switch fd.L1.Kind { - case pref.EnumKind: + case protoreflect.EnumKind: fd.L1.Enum = file.resolveEnumDependency(fd.L1.Enum, listFieldDeps, depIdx) depIdx++ - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: fd.L1.Message = file.resolveMessageDependency(fd.L1.Message, listFieldDeps, depIdx) depIdx++ } @@ -62,10 +62,10 @@ func (file *File) resolveExtensions() { // Resolve extension field dependency. switch xd.L1.Kind { - case pref.EnumKind: + case protoreflect.EnumKind: xd.L2.Enum = file.resolveEnumDependency(xd.L2.Enum, listExtDeps, depIdx) depIdx++ - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: xd.L2.Message = file.resolveMessageDependency(xd.L2.Message, listExtDeps, depIdx) depIdx++ } @@ -92,7 +92,7 @@ func (file *File) resolveServices() { } } -func (file *File) resolveEnumDependency(ed pref.EnumDescriptor, i, j int32) pref.EnumDescriptor { +func (file *File) resolveEnumDependency(ed protoreflect.EnumDescriptor, i, j int32) protoreflect.EnumDescriptor { r := file.builder.FileRegistry if r, ok := r.(resolverByIndex); ok { if ed2 := r.FindEnumByIndex(i, j, file.allEnums, file.allMessages); ed2 != nil { @@ -105,12 +105,12 @@ func (file *File) resolveEnumDependency(ed pref.EnumDescriptor, i, j int32) pref } } if d, _ := r.FindDescriptorByName(ed.FullName()); d != nil { - return d.(pref.EnumDescriptor) + return d.(protoreflect.EnumDescriptor) } return ed } -func (file *File) resolveMessageDependency(md pref.MessageDescriptor, i, j int32) pref.MessageDescriptor { +func (file *File) resolveMessageDependency(md protoreflect.MessageDescriptor, i, j int32) protoreflect.MessageDescriptor { r := file.builder.FileRegistry if r, ok := r.(resolverByIndex); ok { if md2 := r.FindMessageByIndex(i, j, file.allEnums, file.allMessages); md2 != nil { @@ -123,7 +123,7 @@ func (file *File) resolveMessageDependency(md pref.MessageDescriptor, i, j int32 } } if d, _ := r.FindDescriptorByName(md.FullName()); d != nil { - return d.(pref.MessageDescriptor) + return d.(protoreflect.MessageDescriptor) } return md } @@ -143,35 +143,35 @@ func (fd *File) unmarshalFull(b []byte) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.FileDescriptorProto_PublicDependency: + case genid.FileDescriptorProto_PublicDependency_field_number: fd.L2.Imports[v].IsPublic = true - case fieldnum.FileDescriptorProto_WeakDependency: + case genid.FileDescriptorProto_WeakDependency_field_number: fd.L2.Imports[v].IsWeak = true } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.FileDescriptorProto_Dependency: + case genid.FileDescriptorProto_Dependency_field_number: path := sb.MakeString(v) imp, _ := fd.builder.FileRegistry.FindFileByPath(path) if imp == nil { imp = PlaceholderFile(path) } - fd.L2.Imports = append(fd.L2.Imports, pref.FileImport{FileDescriptor: imp}) - case fieldnum.FileDescriptorProto_EnumType: + fd.L2.Imports = append(fd.L2.Imports, protoreflect.FileImport{FileDescriptor: imp}) + case genid.FileDescriptorProto_EnumType_field_number: fd.L1.Enums.List[enumIdx].unmarshalFull(v, sb) enumIdx++ - case fieldnum.FileDescriptorProto_MessageType: + case genid.FileDescriptorProto_MessageType_field_number: fd.L1.Messages.List[messageIdx].unmarshalFull(v, sb) messageIdx++ - case fieldnum.FileDescriptorProto_Extension: + case genid.FileDescriptorProto_Extension_field_number: fd.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb) extensionIdx++ - case fieldnum.FileDescriptorProto_Service: + case genid.FileDescriptorProto_Service_field_number: fd.L1.Services.List[serviceIdx].unmarshalFull(v, sb) serviceIdx++ - case fieldnum.FileDescriptorProto_Options: + case genid.FileDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -196,13 +196,13 @@ func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) { v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.EnumDescriptorProto_Value: + case genid.EnumDescriptorProto_Value_field_number: rawValues = append(rawValues, v) - case fieldnum.EnumDescriptorProto_ReservedName: - ed.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, pref.Name(sb.MakeString(v))) - case fieldnum.EnumDescriptorProto_ReservedRange: + case genid.EnumDescriptorProto_ReservedName_field_number: + ed.L2.ReservedNames.List = append(ed.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v))) + case genid.EnumDescriptorProto_ReservedRange_field_number: ed.L2.ReservedRanges.List = append(ed.L2.ReservedRanges.List, unmarshalEnumReservedRange(v)) - case fieldnum.EnumDescriptorProto_Options: + case genid.EnumDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -219,7 +219,7 @@ func (ed *Enum) unmarshalFull(b []byte, sb *strs.Builder) { ed.L2.Options = ed.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Enum, rawOptions) } -func unmarshalEnumReservedRange(b []byte) (r [2]pref.EnumNumber) { +func unmarshalEnumReservedRange(b []byte) (r [2]protoreflect.EnumNumber) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] @@ -228,10 +228,10 @@ func unmarshalEnumReservedRange(b []byte) (r [2]pref.EnumNumber) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.EnumDescriptorProto_EnumReservedRange_Start: - r[0] = pref.EnumNumber(v) - case fieldnum.EnumDescriptorProto_EnumReservedRange_End: - r[1] = pref.EnumNumber(v) + case genid.EnumDescriptorProto_EnumReservedRange_Start_field_number: + r[0] = protoreflect.EnumNumber(v) + case genid.EnumDescriptorProto_EnumReservedRange_End_field_number: + r[1] = protoreflect.EnumNumber(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) @@ -241,7 +241,7 @@ func unmarshalEnumReservedRange(b []byte) (r [2]pref.EnumNumber) { return r } -func (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { vd.L0.ParentFile = pf vd.L0.Parent = pd vd.L0.Index = i @@ -255,17 +255,17 @@ func (vd *EnumValue) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.EnumValueDescriptorProto_Number: - vd.L1.Number = pref.EnumNumber(v) + case genid.EnumValueDescriptorProto_Number_field_number: + vd.L1.Number = protoreflect.EnumNumber(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.EnumValueDescriptorProto_Name: + case genid.EnumValueDescriptorProto_Name_field_number: // NOTE: Enum values are in the same scope as the enum parent. vd.L0.FullName = appendFullName(sb, pd.Parent().FullName(), v) - case fieldnum.EnumValueDescriptorProto_Options: + case genid.EnumValueDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -289,29 +289,29 @@ func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) { v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.DescriptorProto_Field: + case genid.DescriptorProto_Field_field_number: rawFields = append(rawFields, v) - case fieldnum.DescriptorProto_OneofDecl: + case genid.DescriptorProto_OneofDecl_field_number: rawOneofs = append(rawOneofs, v) - case fieldnum.DescriptorProto_ReservedName: - md.L2.ReservedNames.List = append(md.L2.ReservedNames.List, pref.Name(sb.MakeString(v))) - case fieldnum.DescriptorProto_ReservedRange: + case genid.DescriptorProto_ReservedName_field_number: + md.L2.ReservedNames.List = append(md.L2.ReservedNames.List, protoreflect.Name(sb.MakeString(v))) + case genid.DescriptorProto_ReservedRange_field_number: md.L2.ReservedRanges.List = append(md.L2.ReservedRanges.List, unmarshalMessageReservedRange(v)) - case fieldnum.DescriptorProto_ExtensionRange: + case genid.DescriptorProto_ExtensionRange_field_number: r, rawOptions := unmarshalMessageExtensionRange(v) opts := md.L0.ParentFile.builder.optionsUnmarshaler(&descopts.ExtensionRange, rawOptions) md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, r) md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, opts) - case fieldnum.DescriptorProto_EnumType: + case genid.DescriptorProto_EnumType_field_number: md.L1.Enums.List[enumIdx].unmarshalFull(v, sb) enumIdx++ - case fieldnum.DescriptorProto_NestedType: + case genid.DescriptorProto_NestedType_field_number: md.L1.Messages.List[messageIdx].unmarshalFull(v, sb) messageIdx++ - case fieldnum.DescriptorProto_Extension: + case genid.DescriptorProto_Extension_field_number: md.L1.Extensions.List[extensionIdx].unmarshalFull(v, sb) extensionIdx++ - case fieldnum.DescriptorProto_Options: + case genid.DescriptorProto_Options_field_number: md.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } @@ -326,7 +326,7 @@ func (md *Message) unmarshalFull(b []byte, sb *strs.Builder) { for i, b := range rawFields { fd := &md.L2.Fields.List[i] fd.unmarshalFull(b, sb, md.L0.ParentFile, md, i) - if fd.L1.Cardinality == pref.Required { + if fd.L1.Cardinality == protoreflect.Required { md.L2.RequiredNumbers.List = append(md.L2.RequiredNumbers.List, fd.L1.Number) } } @@ -347,9 +347,9 @@ func (md *Message) unmarshalOptions(b []byte) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.MessageOptions_MapEntry: + case genid.MessageOptions_MapEntry_field_number: md.L1.IsMapEntry = protowire.DecodeBool(v) - case fieldnum.MessageOptions_MessageSetWireFormat: + case genid.MessageOptions_MessageSetWireFormat_field_number: md.L1.IsMessageSet = protowire.DecodeBool(v) } default: @@ -359,7 +359,7 @@ func (md *Message) unmarshalOptions(b []byte) { } } -func unmarshalMessageReservedRange(b []byte) (r [2]pref.FieldNumber) { +func unmarshalMessageReservedRange(b []byte) (r [2]protoreflect.FieldNumber) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] @@ -368,10 +368,10 @@ func unmarshalMessageReservedRange(b []byte) (r [2]pref.FieldNumber) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.DescriptorProto_ReservedRange_Start: - r[0] = pref.FieldNumber(v) - case fieldnum.DescriptorProto_ReservedRange_End: - r[1] = pref.FieldNumber(v) + case genid.DescriptorProto_ReservedRange_Start_field_number: + r[0] = protoreflect.FieldNumber(v) + case genid.DescriptorProto_ReservedRange_End_field_number: + r[1] = protoreflect.FieldNumber(v) } default: m := protowire.ConsumeFieldValue(num, typ, b) @@ -381,7 +381,7 @@ func unmarshalMessageReservedRange(b []byte) (r [2]pref.FieldNumber) { return r } -func unmarshalMessageExtensionRange(b []byte) (r [2]pref.FieldNumber, rawOptions []byte) { +func unmarshalMessageExtensionRange(b []byte) (r [2]protoreflect.FieldNumber, rawOptions []byte) { for len(b) > 0 { num, typ, n := protowire.ConsumeTag(b) b = b[n:] @@ -390,16 +390,16 @@ func unmarshalMessageExtensionRange(b []byte) (r [2]pref.FieldNumber, rawOptions v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.DescriptorProto_ExtensionRange_Start: - r[0] = pref.FieldNumber(v) - case fieldnum.DescriptorProto_ExtensionRange_End: - r[1] = pref.FieldNumber(v) + case genid.DescriptorProto_ExtensionRange_Start_field_number: + r[0] = protoreflect.FieldNumber(v) + case genid.DescriptorProto_ExtensionRange_End_field_number: + r[1] = protoreflect.FieldNumber(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.DescriptorProto_ExtensionRange_Options: + case genid.DescriptorProto_ExtensionRange_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -410,7 +410,7 @@ func unmarshalMessageExtensionRange(b []byte) (r [2]pref.FieldNumber, rawOptions return r, rawOptions } -func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { fd.L0.ParentFile = pf fd.L0.Parent = pd fd.L0.Index = i @@ -425,13 +425,13 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Des v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.FieldDescriptorProto_Number: - fd.L1.Number = pref.FieldNumber(v) - case fieldnum.FieldDescriptorProto_Label: - fd.L1.Cardinality = pref.Cardinality(v) - case fieldnum.FieldDescriptorProto_Type: - fd.L1.Kind = pref.Kind(v) - case fieldnum.FieldDescriptorProto_OneofIndex: + case genid.FieldDescriptorProto_Number_field_number: + fd.L1.Number = protoreflect.FieldNumber(v) + case genid.FieldDescriptorProto_Label_field_number: + fd.L1.Cardinality = protoreflect.Cardinality(v) + case genid.FieldDescriptorProto_Type_field_number: + fd.L1.Kind = protoreflect.Kind(v) + case genid.FieldDescriptorProto_OneofIndex_field_number: // In Message.unmarshalFull, we allocate slices for both // the field and oneof descriptors before unmarshaling either // of them. This ensures pointers to slice elements are stable. @@ -441,22 +441,22 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Des panic("oneof type already set") } fd.L1.ContainingOneof = od - case fieldnum.FieldDescriptorProto_Proto3Optional: + case genid.FieldDescriptorProto_Proto3Optional_field_number: fd.L1.IsProto3Optional = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.FieldDescriptorProto_Name: + case genid.FieldDescriptorProto_Name_field_number: fd.L0.FullName = appendFullName(sb, pd.FullName(), v) - case fieldnum.FieldDescriptorProto_JsonName: - fd.L1.JSONName.Init(sb.MakeString(v)) - case fieldnum.FieldDescriptorProto_DefaultValue: - fd.L1.Default.val = pref.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages - case fieldnum.FieldDescriptorProto_TypeName: + case genid.FieldDescriptorProto_JsonName_field_number: + fd.L1.StringName.InitJSON(sb.MakeString(v)) + case genid.FieldDescriptorProto_DefaultValue_field_number: + fd.L1.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveMessages + case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v - case fieldnum.FieldDescriptorProto_Options: + case genid.FieldDescriptorProto_Options_field_number: fd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } @@ -468,9 +468,9 @@ func (fd *Field) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Des if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch fd.L1.Kind { - case pref.EnumKind: + case protoreflect.EnumKind: fd.L1.Enum = PlaceholderEnum(name) - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: fd.L1.Message = PlaceholderMessage(name) } } @@ -488,10 +488,10 @@ func (fd *Field) unmarshalOptions(b []byte) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.FieldOptions_Packed: + case genid.FieldOptions_Packed_field_number: fd.L1.HasPacked = true fd.L1.IsPacked = protowire.DecodeBool(v) - case fieldnum.FieldOptions_Weak: + case genid.FieldOptions_Weak_field_number: fd.L1.IsWeak = protowire.DecodeBool(v) case FieldOptions_EnforceUTF8: fd.L1.HasEnforceUTF8 = true @@ -504,7 +504,7 @@ func (fd *Field) unmarshalOptions(b []byte) { } } -func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { od.L0.ParentFile = pf od.L0.Parent = pd od.L0.Index = i @@ -518,9 +518,9 @@ func (od *Oneof) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Des v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.OneofDescriptorProto_Name: + case genid.OneofDescriptorProto_Name_field_number: od.L0.FullName = appendFullName(sb, pd.FullName(), v) - case fieldnum.OneofDescriptorProto_Options: + case genid.OneofDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -543,20 +543,20 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.FieldDescriptorProto_Proto3Optional: + case genid.FieldDescriptorProto_Proto3Optional_field_number: xd.L2.IsProto3Optional = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.FieldDescriptorProto_JsonName: - xd.L2.JSONName.Init(sb.MakeString(v)) - case fieldnum.FieldDescriptorProto_DefaultValue: - xd.L2.Default.val = pref.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions - case fieldnum.FieldDescriptorProto_TypeName: + case genid.FieldDescriptorProto_JsonName_field_number: + xd.L2.StringName.InitJSON(sb.MakeString(v)) + case genid.FieldDescriptorProto_DefaultValue_field_number: + xd.L2.Default.val = protoreflect.ValueOfBytes(v) // temporarily store as bytes; later resolved in resolveExtensions + case genid.FieldDescriptorProto_TypeName_field_number: rawTypeName = v - case fieldnum.FieldDescriptorProto_Options: + case genid.FieldDescriptorProto_Options_field_number: xd.unmarshalOptions(v) rawOptions = appendOptions(rawOptions, v) } @@ -568,9 +568,9 @@ func (xd *Extension) unmarshalFull(b []byte, sb *strs.Builder) { if rawTypeName != nil { name := makeFullName(sb, rawTypeName) switch xd.L1.Kind { - case pref.EnumKind: + case protoreflect.EnumKind: xd.L2.Enum = PlaceholderEnum(name) - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: xd.L2.Message = PlaceholderMessage(name) } } @@ -586,7 +586,7 @@ func (xd *Extension) unmarshalOptions(b []byte) { v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.FieldOptions_Packed: + case genid.FieldOptions_Packed_field_number: xd.L2.IsPacked = protowire.DecodeBool(v) } default: @@ -608,9 +608,9 @@ func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.ServiceDescriptorProto_Method: + case genid.ServiceDescriptorProto_Method_field_number: rawMethods = append(rawMethods, v) - case fieldnum.ServiceDescriptorProto_Options: + case genid.ServiceDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -627,7 +627,7 @@ func (sd *Service) unmarshalFull(b []byte, sb *strs.Builder) { sd.L2.Options = sd.L0.ParentFile.builder.optionsUnmarshaler(&descopts.Service, rawOptions) } -func (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.Descriptor, i int) { +func (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd protoreflect.Descriptor, i int) { md.L0.ParentFile = pf md.L0.Parent = pd md.L0.Index = i @@ -641,22 +641,22 @@ func (md *Method) unmarshalFull(b []byte, sb *strs.Builder, pf *File, pd pref.De v, m := protowire.ConsumeVarint(b) b = b[m:] switch num { - case fieldnum.MethodDescriptorProto_ClientStreaming: + case genid.MethodDescriptorProto_ClientStreaming_field_number: md.L1.IsStreamingClient = protowire.DecodeBool(v) - case fieldnum.MethodDescriptorProto_ServerStreaming: + case genid.MethodDescriptorProto_ServerStreaming_field_number: md.L1.IsStreamingServer = protowire.DecodeBool(v) } case protowire.BytesType: v, m := protowire.ConsumeBytes(b) b = b[m:] switch num { - case fieldnum.MethodDescriptorProto_Name: + case genid.MethodDescriptorProto_Name_field_number: md.L0.FullName = appendFullName(sb, pd.FullName(), v) - case fieldnum.MethodDescriptorProto_InputType: + case genid.MethodDescriptorProto_InputType_field_number: md.L1.Input = PlaceholderMessage(makeFullName(sb, v)) - case fieldnum.MethodDescriptorProto_OutputType: + case genid.MethodDescriptorProto_OutputType_field_number: md.L1.Output = PlaceholderMessage(makeFullName(sb, v)) - case fieldnum.MethodDescriptorProto_Options: + case genid.MethodDescriptorProto_Options_field_number: rawOptions = appendOptions(rawOptions, v) } default: @@ -680,18 +680,18 @@ func appendOptions(dst, src []byte) []byte { // // The type of message to unmarshal to is passed as a pointer since the // vars in descopts may not yet be populated at the time this function is called. -func (db *Builder) optionsUnmarshaler(p *pref.ProtoMessage, b []byte) func() pref.ProtoMessage { +func (db *Builder) optionsUnmarshaler(p *protoreflect.ProtoMessage, b []byte) func() protoreflect.ProtoMessage { if b == nil { return nil } - var opts pref.ProtoMessage + var opts protoreflect.ProtoMessage var once sync.Once - return func() pref.ProtoMessage { + return func() protoreflect.ProtoMessage { once.Do(func() { if *p == nil { panic("Descriptor.Options called without importing the descriptor package") } - opts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(pref.ProtoMessage) + opts = reflect.New(reflect.TypeOf(*p).Elem()).Interface().(protoreflect.ProtoMessage) if err := (proto.UnmarshalOptions{ AllowPartial: true, Resolver: db.TypeResolver, diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go index 1b7089b643..e3b6587da6 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list.go @@ -10,36 +10,37 @@ import ( "sort" "sync" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/descfmt" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" - pref "google.golang.org/protobuf/reflect/protoreflect" ) -type FileImports []pref.FileImport +type FileImports []protoreflect.FileImport func (p *FileImports) Len() int { return len(*p) } -func (p *FileImports) Get(i int) pref.FileImport { return (*p)[i] } +func (p *FileImports) Get(i int) protoreflect.FileImport { return (*p)[i] } func (p *FileImports) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *FileImports) ProtoInternal(pragma.DoNotImplement) {} type Names struct { - List []pref.Name + List []protoreflect.Name once sync.Once - has map[pref.Name]int // protected by once + has map[protoreflect.Name]int // protected by once } func (p *Names) Len() int { return len(p.List) } -func (p *Names) Get(i int) pref.Name { return p.List[i] } -func (p *Names) Has(s pref.Name) bool { return p.lazyInit().has[s] > 0 } +func (p *Names) Get(i int) protoreflect.Name { return p.List[i] } +func (p *Names) Has(s protoreflect.Name) bool { return p.lazyInit().has[s] > 0 } func (p *Names) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } func (p *Names) ProtoInternal(pragma.DoNotImplement) {} func (p *Names) lazyInit() *Names { p.once.Do(func() { if len(p.List) > 0 { - p.has = make(map[pref.Name]int, len(p.List)) + p.has = make(map[protoreflect.Name]int, len(p.List)) for _, s := range p.List { p.has[s] = p.has[s] + 1 } @@ -65,14 +66,14 @@ func (p *Names) CheckValid() error { } type EnumRanges struct { - List [][2]pref.EnumNumber // start inclusive; end inclusive + List [][2]protoreflect.EnumNumber // start inclusive; end inclusive once sync.Once - sorted [][2]pref.EnumNumber // protected by once + sorted [][2]protoreflect.EnumNumber // protected by once } -func (p *EnumRanges) Len() int { return len(p.List) } -func (p *EnumRanges) Get(i int) [2]pref.EnumNumber { return p.List[i] } -func (p *EnumRanges) Has(n pref.EnumNumber) bool { +func (p *EnumRanges) Len() int { return len(p.List) } +func (p *EnumRanges) Get(i int) [2]protoreflect.EnumNumber { return p.List[i] } +func (p *EnumRanges) Has(n protoreflect.EnumNumber) bool { for ls := p.lazyInit().sorted; len(ls) > 0; { i := len(ls) / 2 switch r := enumRange(ls[i]); { @@ -127,14 +128,14 @@ func (r enumRange) String() string { } type FieldRanges struct { - List [][2]pref.FieldNumber // start inclusive; end exclusive + List [][2]protoreflect.FieldNumber // start inclusive; end exclusive once sync.Once - sorted [][2]pref.FieldNumber // protected by once + sorted [][2]protoreflect.FieldNumber // protected by once } -func (p *FieldRanges) Len() int { return len(p.List) } -func (p *FieldRanges) Get(i int) [2]pref.FieldNumber { return p.List[i] } -func (p *FieldRanges) Has(n pref.FieldNumber) bool { +func (p *FieldRanges) Len() int { return len(p.List) } +func (p *FieldRanges) Get(i int) [2]protoreflect.FieldNumber { return p.List[i] } +func (p *FieldRanges) Has(n protoreflect.FieldNumber) bool { for ls := p.lazyInit().sorted; len(ls) > 0; { i := len(ls) / 2 switch r := fieldRange(ls[i]); { @@ -185,10 +186,7 @@ func (p *FieldRanges) CheckValid(isMessageSet bool) error { // Unlike the FieldNumber.IsValid method, it allows ranges that cover the // reserved number range. func isValidFieldNumber(n protoreflect.FieldNumber, isMessageSet bool) bool { - if isMessageSet { - return protowire.MinValidNumber <= n && n <= math.MaxInt32 - } - return protowire.MinValidNumber <= n && n <= protowire.MaxValidNumber + return protowire.MinValidNumber <= n && (n <= protowire.MaxValidNumber || isMessageSet) } // CheckOverlap reports an error if p and q overlap. @@ -222,17 +220,17 @@ func (r fieldRange) String() string { } type FieldNumbers struct { - List []pref.FieldNumber + List []protoreflect.FieldNumber once sync.Once - has map[pref.FieldNumber]struct{} // protected by once + has map[protoreflect.FieldNumber]struct{} // protected by once } -func (p *FieldNumbers) Len() int { return len(p.List) } -func (p *FieldNumbers) Get(i int) pref.FieldNumber { return p.List[i] } -func (p *FieldNumbers) Has(n pref.FieldNumber) bool { +func (p *FieldNumbers) Len() int { return len(p.List) } +func (p *FieldNumbers) Get(i int) protoreflect.FieldNumber { return p.List[i] } +func (p *FieldNumbers) Has(n protoreflect.FieldNumber) bool { p.once.Do(func() { if len(p.List) > 0 { - p.has = make(map[pref.FieldNumber]struct{}, len(p.List)) + p.has = make(map[protoreflect.FieldNumber]struct{}, len(p.List)) for _, n := range p.List { p.has[n] = struct{}{} } @@ -245,31 +243,43 @@ func (p *FieldNumbers) Format(s fmt.State, r rune) { descfmt.FormatList func (p *FieldNumbers) ProtoInternal(pragma.DoNotImplement) {} type OneofFields struct { - List []pref.FieldDescriptor + List []protoreflect.FieldDescriptor once sync.Once - byName map[pref.Name]pref.FieldDescriptor // protected by once - byJSON map[string]pref.FieldDescriptor // protected by once - byNum map[pref.FieldNumber]pref.FieldDescriptor // protected by once + byName map[protoreflect.Name]protoreflect.FieldDescriptor // protected by once + byJSON map[string]protoreflect.FieldDescriptor // protected by once + byText map[string]protoreflect.FieldDescriptor // protected by once + byNum map[protoreflect.FieldNumber]protoreflect.FieldDescriptor // protected by once } -func (p *OneofFields) Len() int { return len(p.List) } -func (p *OneofFields) Get(i int) pref.FieldDescriptor { return p.List[i] } -func (p *OneofFields) ByName(s pref.Name) pref.FieldDescriptor { return p.lazyInit().byName[s] } -func (p *OneofFields) ByJSONName(s string) pref.FieldDescriptor { return p.lazyInit().byJSON[s] } -func (p *OneofFields) ByNumber(n pref.FieldNumber) pref.FieldDescriptor { return p.lazyInit().byNum[n] } -func (p *OneofFields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } -func (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {} +func (p *OneofFields) Len() int { return len(p.List) } +func (p *OneofFields) Get(i int) protoreflect.FieldDescriptor { return p.List[i] } +func (p *OneofFields) ByName(s protoreflect.Name) protoreflect.FieldDescriptor { + return p.lazyInit().byName[s] +} +func (p *OneofFields) ByJSONName(s string) protoreflect.FieldDescriptor { + return p.lazyInit().byJSON[s] +} +func (p *OneofFields) ByTextName(s string) protoreflect.FieldDescriptor { + return p.lazyInit().byText[s] +} +func (p *OneofFields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor { + return p.lazyInit().byNum[n] +} +func (p *OneofFields) Format(s fmt.State, r rune) { descfmt.FormatList(s, r, p) } +func (p *OneofFields) ProtoInternal(pragma.DoNotImplement) {} func (p *OneofFields) lazyInit() *OneofFields { p.once.Do(func() { if len(p.List) > 0 { - p.byName = make(map[pref.Name]pref.FieldDescriptor, len(p.List)) - p.byJSON = make(map[string]pref.FieldDescriptor, len(p.List)) - p.byNum = make(map[pref.FieldNumber]pref.FieldDescriptor, len(p.List)) + p.byName = make(map[protoreflect.Name]protoreflect.FieldDescriptor, len(p.List)) + p.byJSON = make(map[string]protoreflect.FieldDescriptor, len(p.List)) + p.byText = make(map[string]protoreflect.FieldDescriptor, len(p.List)) + p.byNum = make(map[protoreflect.FieldNumber]protoreflect.FieldDescriptor, len(p.List)) for _, f := range p.List { // Field names and numbers are guaranteed to be unique. p.byName[f.Name()] = f p.byJSON[f.JSONName()] = f + p.byText[f.TextName()] = f p.byNum[f.Number()] = f } } @@ -278,9 +288,170 @@ func (p *OneofFields) lazyInit() *OneofFields { } type SourceLocations struct { - List []pref.SourceLocation + // List is a list of SourceLocations. + // The SourceLocation.Next field does not need to be populated + // as it will be lazily populated upon first need. + List []protoreflect.SourceLocation + + // File is the parent file descriptor that these locations are relative to. + // If non-nil, ByDescriptor verifies that the provided descriptor + // is a child of this file descriptor. + File protoreflect.FileDescriptor + + once sync.Once + byPath map[pathKey]int } -func (p *SourceLocations) Len() int { return len(p.List) } -func (p *SourceLocations) Get(i int) pref.SourceLocation { return p.List[i] } +func (p *SourceLocations) Len() int { return len(p.List) } +func (p *SourceLocations) Get(i int) protoreflect.SourceLocation { return p.lazyInit().List[i] } +func (p *SourceLocations) byKey(k pathKey) protoreflect.SourceLocation { + if i, ok := p.lazyInit().byPath[k]; ok { + return p.List[i] + } + return protoreflect.SourceLocation{} +} +func (p *SourceLocations) ByPath(path protoreflect.SourcePath) protoreflect.SourceLocation { + return p.byKey(newPathKey(path)) +} +func (p *SourceLocations) ByDescriptor(desc protoreflect.Descriptor) protoreflect.SourceLocation { + if p.File != nil && desc != nil && p.File != desc.ParentFile() { + return protoreflect.SourceLocation{} // mismatching parent files + } + var pathArr [16]int32 + path := pathArr[:0] + for { + switch desc.(type) { + case protoreflect.FileDescriptor: + // Reverse the path since it was constructed in reverse. + for i, j := 0, len(path)-1; i < j; i, j = i+1, j-1 { + path[i], path[j] = path[j], path[i] + } + return p.byKey(newPathKey(path)) + case protoreflect.MessageDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(genid.FileDescriptorProto_MessageType_field_number)) + case protoreflect.MessageDescriptor: + path = append(path, int32(genid.DescriptorProto_NestedType_field_number)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.FieldDescriptor: + isExtension := desc.(protoreflect.FieldDescriptor).IsExtension() + path = append(path, int32(desc.Index())) + desc = desc.Parent() + if isExtension { + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(genid.FileDescriptorProto_Extension_field_number)) + case protoreflect.MessageDescriptor: + path = append(path, int32(genid.DescriptorProto_Extension_field_number)) + default: + return protoreflect.SourceLocation{} + } + } else { + switch desc.(type) { + case protoreflect.MessageDescriptor: + path = append(path, int32(genid.DescriptorProto_Field_field_number)) + default: + return protoreflect.SourceLocation{} + } + } + case protoreflect.OneofDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.MessageDescriptor: + path = append(path, int32(genid.DescriptorProto_OneofDecl_field_number)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.EnumDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(genid.FileDescriptorProto_EnumType_field_number)) + case protoreflect.MessageDescriptor: + path = append(path, int32(genid.DescriptorProto_EnumType_field_number)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.EnumValueDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.EnumDescriptor: + path = append(path, int32(genid.EnumDescriptorProto_Value_field_number)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.ServiceDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.FileDescriptor: + path = append(path, int32(genid.FileDescriptorProto_Service_field_number)) + default: + return protoreflect.SourceLocation{} + } + case protoreflect.MethodDescriptor: + path = append(path, int32(desc.Index())) + desc = desc.Parent() + switch desc.(type) { + case protoreflect.ServiceDescriptor: + path = append(path, int32(genid.ServiceDescriptorProto_Method_field_number)) + default: + return protoreflect.SourceLocation{} + } + default: + return protoreflect.SourceLocation{} + } + } +} +func (p *SourceLocations) lazyInit() *SourceLocations { + p.once.Do(func() { + if len(p.List) > 0 { + // Collect all the indexes for a given path. + pathIdxs := make(map[pathKey][]int, len(p.List)) + for i, l := range p.List { + k := newPathKey(l.Path) + pathIdxs[k] = append(pathIdxs[k], i) + } + + // Update the next index for all locations. + p.byPath = make(map[pathKey]int, len(p.List)) + for k, idxs := range pathIdxs { + for i := 0; i < len(idxs)-1; i++ { + p.List[idxs[i]].Next = idxs[i+1] + } + p.List[idxs[len(idxs)-1]].Next = 0 + p.byPath[k] = idxs[0] // record the first location for this path + } + } + }) + return p +} func (p *SourceLocations) ProtoInternal(pragma.DoNotImplement) {} + +// pathKey is a comparable representation of protoreflect.SourcePath. +type pathKey struct { + arr [16]uint8 // first n-1 path segments; last element is the length + str string // used if the path does not fit in arr +} + +func newPathKey(p protoreflect.SourcePath) (k pathKey) { + if len(p) < len(k.arr) { + for i, ps := range p { + if ps < 0 || math.MaxUint8 <= ps { + return pathKey{str: p.String()} + } + k.arr[i] = uint8(ps) + } + k.arr[len(k.arr)-1] = uint8(len(p)) + return k + } + return pathKey{str: p.String()} +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go index 6a8825e802..30db19fdc7 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/desc_list_gen.go @@ -142,6 +142,7 @@ type Fields struct { once sync.Once byName map[protoreflect.Name]*Field // protected by once byJSON map[string]*Field // protected by once + byText map[string]*Field // protected by once byNum map[protoreflect.FieldNumber]*Field // protected by once } @@ -163,6 +164,12 @@ func (p *Fields) ByJSONName(s string) protoreflect.FieldDescriptor { } return nil } +func (p *Fields) ByTextName(s string) protoreflect.FieldDescriptor { + if d := p.lazyInit().byText[s]; d != nil { + return d + } + return nil +} func (p *Fields) ByNumber(n protoreflect.FieldNumber) protoreflect.FieldDescriptor { if d := p.lazyInit().byNum[n]; d != nil { return d @@ -178,6 +185,7 @@ func (p *Fields) lazyInit() *Fields { if len(p.List) > 0 { p.byName = make(map[protoreflect.Name]*Field, len(p.List)) p.byJSON = make(map[string]*Field, len(p.List)) + p.byText = make(map[string]*Field, len(p.List)) p.byNum = make(map[protoreflect.FieldNumber]*Field, len(p.List)) for i := range p.List { d := &p.List[i] @@ -187,6 +195,9 @@ func (p *Fields) lazyInit() *Fields { if _, ok := p.byJSON[d.JSONName()]; !ok { p.byJSON[d.JSONName()] = d } + if _, ok := p.byText[d.TextName()]; !ok { + p.byText[d.TextName()] = d + } if _, ok := p.byNum[d.Number()]; !ok { p.byNum[d.Number()] = d } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go index dbf2c605bf..28240ebc5c 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filedesc/placeholder.go @@ -7,7 +7,7 @@ package filedesc import ( "google.golang.org/protobuf/internal/descopts" "google.golang.org/protobuf/internal/pragma" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) var ( @@ -30,78 +30,80 @@ var ( // PlaceholderFile is a placeholder, representing only the file path. type PlaceholderFile string -func (f PlaceholderFile) ParentFile() pref.FileDescriptor { return f } -func (f PlaceholderFile) Parent() pref.Descriptor { return nil } -func (f PlaceholderFile) Index() int { return 0 } -func (f PlaceholderFile) Syntax() pref.Syntax { return 0 } -func (f PlaceholderFile) Name() pref.Name { return "" } -func (f PlaceholderFile) FullName() pref.FullName { return "" } -func (f PlaceholderFile) IsPlaceholder() bool { return true } -func (f PlaceholderFile) Options() pref.ProtoMessage { return descopts.File } -func (f PlaceholderFile) Path() string { return string(f) } -func (f PlaceholderFile) Package() pref.FullName { return "" } -func (f PlaceholderFile) Imports() pref.FileImports { return emptyFiles } -func (f PlaceholderFile) Messages() pref.MessageDescriptors { return emptyMessages } -func (f PlaceholderFile) Enums() pref.EnumDescriptors { return emptyEnums } -func (f PlaceholderFile) Extensions() pref.ExtensionDescriptors { return emptyExtensions } -func (f PlaceholderFile) Services() pref.ServiceDescriptors { return emptyServices } -func (f PlaceholderFile) SourceLocations() pref.SourceLocations { return emptySourceLocations } -func (f PlaceholderFile) ProtoType(pref.FileDescriptor) { return } -func (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement) { return } +func (f PlaceholderFile) ParentFile() protoreflect.FileDescriptor { return f } +func (f PlaceholderFile) Parent() protoreflect.Descriptor { return nil } +func (f PlaceholderFile) Index() int { return 0 } +func (f PlaceholderFile) Syntax() protoreflect.Syntax { return 0 } +func (f PlaceholderFile) Name() protoreflect.Name { return "" } +func (f PlaceholderFile) FullName() protoreflect.FullName { return "" } +func (f PlaceholderFile) IsPlaceholder() bool { return true } +func (f PlaceholderFile) Options() protoreflect.ProtoMessage { return descopts.File } +func (f PlaceholderFile) Path() string { return string(f) } +func (f PlaceholderFile) Package() protoreflect.FullName { return "" } +func (f PlaceholderFile) Imports() protoreflect.FileImports { return emptyFiles } +func (f PlaceholderFile) Messages() protoreflect.MessageDescriptors { return emptyMessages } +func (f PlaceholderFile) Enums() protoreflect.EnumDescriptors { return emptyEnums } +func (f PlaceholderFile) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions } +func (f PlaceholderFile) Services() protoreflect.ServiceDescriptors { return emptyServices } +func (f PlaceholderFile) SourceLocations() protoreflect.SourceLocations { return emptySourceLocations } +func (f PlaceholderFile) ProtoType(protoreflect.FileDescriptor) { return } +func (f PlaceholderFile) ProtoInternal(pragma.DoNotImplement) { return } // PlaceholderEnum is a placeholder, representing only the full name. -type PlaceholderEnum pref.FullName +type PlaceholderEnum protoreflect.FullName -func (e PlaceholderEnum) ParentFile() pref.FileDescriptor { return nil } -func (e PlaceholderEnum) Parent() pref.Descriptor { return nil } -func (e PlaceholderEnum) Index() int { return 0 } -func (e PlaceholderEnum) Syntax() pref.Syntax { return 0 } -func (e PlaceholderEnum) Name() pref.Name { return pref.FullName(e).Name() } -func (e PlaceholderEnum) FullName() pref.FullName { return pref.FullName(e) } -func (e PlaceholderEnum) IsPlaceholder() bool { return true } -func (e PlaceholderEnum) Options() pref.ProtoMessage { return descopts.Enum } -func (e PlaceholderEnum) Values() pref.EnumValueDescriptors { return emptyEnumValues } -func (e PlaceholderEnum) ReservedNames() pref.Names { return emptyNames } -func (e PlaceholderEnum) ReservedRanges() pref.EnumRanges { return emptyEnumRanges } -func (e PlaceholderEnum) ProtoType(pref.EnumDescriptor) { return } -func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } +func (e PlaceholderEnum) ParentFile() protoreflect.FileDescriptor { return nil } +func (e PlaceholderEnum) Parent() protoreflect.Descriptor { return nil } +func (e PlaceholderEnum) Index() int { return 0 } +func (e PlaceholderEnum) Syntax() protoreflect.Syntax { return 0 } +func (e PlaceholderEnum) Name() protoreflect.Name { return protoreflect.FullName(e).Name() } +func (e PlaceholderEnum) FullName() protoreflect.FullName { return protoreflect.FullName(e) } +func (e PlaceholderEnum) IsPlaceholder() bool { return true } +func (e PlaceholderEnum) Options() protoreflect.ProtoMessage { return descopts.Enum } +func (e PlaceholderEnum) Values() protoreflect.EnumValueDescriptors { return emptyEnumValues } +func (e PlaceholderEnum) ReservedNames() protoreflect.Names { return emptyNames } +func (e PlaceholderEnum) ReservedRanges() protoreflect.EnumRanges { return emptyEnumRanges } +func (e PlaceholderEnum) ProtoType(protoreflect.EnumDescriptor) { return } +func (e PlaceholderEnum) ProtoInternal(pragma.DoNotImplement) { return } // PlaceholderEnumValue is a placeholder, representing only the full name. -type PlaceholderEnumValue pref.FullName +type PlaceholderEnumValue protoreflect.FullName -func (e PlaceholderEnumValue) ParentFile() pref.FileDescriptor { return nil } -func (e PlaceholderEnumValue) Parent() pref.Descriptor { return nil } -func (e PlaceholderEnumValue) Index() int { return 0 } -func (e PlaceholderEnumValue) Syntax() pref.Syntax { return 0 } -func (e PlaceholderEnumValue) Name() pref.Name { return pref.FullName(e).Name() } -func (e PlaceholderEnumValue) FullName() pref.FullName { return pref.FullName(e) } -func (e PlaceholderEnumValue) IsPlaceholder() bool { return true } -func (e PlaceholderEnumValue) Options() pref.ProtoMessage { return descopts.EnumValue } -func (e PlaceholderEnumValue) Number() pref.EnumNumber { return 0 } -func (e PlaceholderEnumValue) ProtoType(pref.EnumValueDescriptor) { return } -func (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement) { return } +func (e PlaceholderEnumValue) ParentFile() protoreflect.FileDescriptor { return nil } +func (e PlaceholderEnumValue) Parent() protoreflect.Descriptor { return nil } +func (e PlaceholderEnumValue) Index() int { return 0 } +func (e PlaceholderEnumValue) Syntax() protoreflect.Syntax { return 0 } +func (e PlaceholderEnumValue) Name() protoreflect.Name { return protoreflect.FullName(e).Name() } +func (e PlaceholderEnumValue) FullName() protoreflect.FullName { return protoreflect.FullName(e) } +func (e PlaceholderEnumValue) IsPlaceholder() bool { return true } +func (e PlaceholderEnumValue) Options() protoreflect.ProtoMessage { return descopts.EnumValue } +func (e PlaceholderEnumValue) Number() protoreflect.EnumNumber { return 0 } +func (e PlaceholderEnumValue) ProtoType(protoreflect.EnumValueDescriptor) { return } +func (e PlaceholderEnumValue) ProtoInternal(pragma.DoNotImplement) { return } // PlaceholderMessage is a placeholder, representing only the full name. -type PlaceholderMessage pref.FullName +type PlaceholderMessage protoreflect.FullName -func (m PlaceholderMessage) ParentFile() pref.FileDescriptor { return nil } -func (m PlaceholderMessage) Parent() pref.Descriptor { return nil } -func (m PlaceholderMessage) Index() int { return 0 } -func (m PlaceholderMessage) Syntax() pref.Syntax { return 0 } -func (m PlaceholderMessage) Name() pref.Name { return pref.FullName(m).Name() } -func (m PlaceholderMessage) FullName() pref.FullName { return pref.FullName(m) } -func (m PlaceholderMessage) IsPlaceholder() bool { return true } -func (m PlaceholderMessage) Options() pref.ProtoMessage { return descopts.Message } -func (m PlaceholderMessage) IsMapEntry() bool { return false } -func (m PlaceholderMessage) Fields() pref.FieldDescriptors { return emptyFields } -func (m PlaceholderMessage) Oneofs() pref.OneofDescriptors { return emptyOneofs } -func (m PlaceholderMessage) ReservedNames() pref.Names { return emptyNames } -func (m PlaceholderMessage) ReservedRanges() pref.FieldRanges { return emptyFieldRanges } -func (m PlaceholderMessage) RequiredNumbers() pref.FieldNumbers { return emptyFieldNumbers } -func (m PlaceholderMessage) ExtensionRanges() pref.FieldRanges { return emptyFieldRanges } -func (m PlaceholderMessage) ExtensionRangeOptions(int) pref.ProtoMessage { panic("index out of range") } -func (m PlaceholderMessage) Messages() pref.MessageDescriptors { return emptyMessages } -func (m PlaceholderMessage) Enums() pref.EnumDescriptors { return emptyEnums } -func (m PlaceholderMessage) Extensions() pref.ExtensionDescriptors { return emptyExtensions } -func (m PlaceholderMessage) ProtoType(pref.MessageDescriptor) { return } -func (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement) { return } +func (m PlaceholderMessage) ParentFile() protoreflect.FileDescriptor { return nil } +func (m PlaceholderMessage) Parent() protoreflect.Descriptor { return nil } +func (m PlaceholderMessage) Index() int { return 0 } +func (m PlaceholderMessage) Syntax() protoreflect.Syntax { return 0 } +func (m PlaceholderMessage) Name() protoreflect.Name { return protoreflect.FullName(m).Name() } +func (m PlaceholderMessage) FullName() protoreflect.FullName { return protoreflect.FullName(m) } +func (m PlaceholderMessage) IsPlaceholder() bool { return true } +func (m PlaceholderMessage) Options() protoreflect.ProtoMessage { return descopts.Message } +func (m PlaceholderMessage) IsMapEntry() bool { return false } +func (m PlaceholderMessage) Fields() protoreflect.FieldDescriptors { return emptyFields } +func (m PlaceholderMessage) Oneofs() protoreflect.OneofDescriptors { return emptyOneofs } +func (m PlaceholderMessage) ReservedNames() protoreflect.Names { return emptyNames } +func (m PlaceholderMessage) ReservedRanges() protoreflect.FieldRanges { return emptyFieldRanges } +func (m PlaceholderMessage) RequiredNumbers() protoreflect.FieldNumbers { return emptyFieldNumbers } +func (m PlaceholderMessage) ExtensionRanges() protoreflect.FieldRanges { return emptyFieldRanges } +func (m PlaceholderMessage) ExtensionRangeOptions(int) protoreflect.ProtoMessage { + panic("index out of range") +} +func (m PlaceholderMessage) Messages() protoreflect.MessageDescriptors { return emptyMessages } +func (m PlaceholderMessage) Enums() protoreflect.EnumDescriptors { return emptyEnums } +func (m PlaceholderMessage) Extensions() protoreflect.ExtensionDescriptors { return emptyExtensions } +func (m PlaceholderMessage) ProtoType(protoreflect.MessageDescriptor) { return } +func (m PlaceholderMessage) ProtoInternal(pragma.DoNotImplement) { return } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/filetype/build.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/filetype/build.go index 0a0dd35de5..f0e38c4ef4 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/filetype/build.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/filetype/build.go @@ -10,17 +10,16 @@ import ( "reflect" "google.golang.org/protobuf/internal/descopts" - fdesc "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/internal/filedesc" pimpl "google.golang.org/protobuf/internal/impl" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" ) // Builder constructs type descriptors from a raw file descriptor // and associated Go types for each enum and message declaration. // -// -// Flattened Ordering +// # Flattened Ordering // // The protobuf type system represents declarations as a tree. Certain nodes in // the tree require us to either associate it with a concrete Go type or to @@ -52,7 +51,7 @@ import ( // that children themselves may have. type Builder struct { // File is the underlying file descriptor builder. - File fdesc.Builder + File filedesc.Builder // GoTypes is a unique set of the Go types for all declarations and // dependencies. Each type is represented as a zero value of the Go type. @@ -108,22 +107,22 @@ type Builder struct { // TypeRegistry is the registry to register each type descriptor. // If nil, it uses protoregistry.GlobalTypes. TypeRegistry interface { - RegisterMessage(pref.MessageType) error - RegisterEnum(pref.EnumType) error - RegisterExtension(pref.ExtensionType) error + RegisterMessage(protoreflect.MessageType) error + RegisterEnum(protoreflect.EnumType) error + RegisterExtension(protoreflect.ExtensionType) error } } // Out is the output of the builder. type Out struct { - File pref.FileDescriptor + File protoreflect.FileDescriptor } func (tb Builder) Build() (out Out) { // Replace the resolver with one that resolves dependencies by index, // which is faster and more reliable than relying on the global registry. if tb.File.FileRegistry == nil { - tb.File.FileRegistry = preg.GlobalFiles + tb.File.FileRegistry = protoregistry.GlobalFiles } tb.File.FileRegistry = &resolverByIndex{ goTypes: tb.GoTypes, @@ -133,7 +132,7 @@ func (tb Builder) Build() (out Out) { // Initialize registry if unpopulated. if tb.TypeRegistry == nil { - tb.TypeRegistry = preg.GlobalTypes + tb.TypeRegistry = protoregistry.GlobalTypes } fbOut := tb.File.Build() @@ -183,23 +182,23 @@ func (tb Builder) Build() (out Out) { for i := range fbOut.Messages { switch fbOut.Messages[i].Name() { case "FileOptions": - descopts.File = messageGoTypes[i].(pref.ProtoMessage) + descopts.File = messageGoTypes[i].(protoreflect.ProtoMessage) case "EnumOptions": - descopts.Enum = messageGoTypes[i].(pref.ProtoMessage) + descopts.Enum = messageGoTypes[i].(protoreflect.ProtoMessage) case "EnumValueOptions": - descopts.EnumValue = messageGoTypes[i].(pref.ProtoMessage) + descopts.EnumValue = messageGoTypes[i].(protoreflect.ProtoMessage) case "MessageOptions": - descopts.Message = messageGoTypes[i].(pref.ProtoMessage) + descopts.Message = messageGoTypes[i].(protoreflect.ProtoMessage) case "FieldOptions": - descopts.Field = messageGoTypes[i].(pref.ProtoMessage) + descopts.Field = messageGoTypes[i].(protoreflect.ProtoMessage) case "OneofOptions": - descopts.Oneof = messageGoTypes[i].(pref.ProtoMessage) + descopts.Oneof = messageGoTypes[i].(protoreflect.ProtoMessage) case "ExtensionRangeOptions": - descopts.ExtensionRange = messageGoTypes[i].(pref.ProtoMessage) + descopts.ExtensionRange = messageGoTypes[i].(protoreflect.ProtoMessage) case "ServiceOptions": - descopts.Service = messageGoTypes[i].(pref.ProtoMessage) + descopts.Service = messageGoTypes[i].(protoreflect.ProtoMessage) case "MethodOptions": - descopts.Method = messageGoTypes[i].(pref.ProtoMessage) + descopts.Method = messageGoTypes[i].(protoreflect.ProtoMessage) } } } @@ -216,11 +215,11 @@ func (tb Builder) Build() (out Out) { const listExtDeps = 2 var goType reflect.Type switch fbOut.Extensions[i].L1.Kind { - case pref.EnumKind: + case protoreflect.EnumKind: j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx) goType = reflect.TypeOf(tb.GoTypes[j]) depIdx++ - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: j := depIdxs.Get(tb.DependencyIndexes, listExtDeps, depIdx) goType = reflect.TypeOf(tb.GoTypes[j]) depIdx++ @@ -242,22 +241,22 @@ func (tb Builder) Build() (out Out) { return out } -var goTypeForPBKind = map[pref.Kind]reflect.Type{ - pref.BoolKind: reflect.TypeOf(bool(false)), - pref.Int32Kind: reflect.TypeOf(int32(0)), - pref.Sint32Kind: reflect.TypeOf(int32(0)), - pref.Sfixed32Kind: reflect.TypeOf(int32(0)), - pref.Int64Kind: reflect.TypeOf(int64(0)), - pref.Sint64Kind: reflect.TypeOf(int64(0)), - pref.Sfixed64Kind: reflect.TypeOf(int64(0)), - pref.Uint32Kind: reflect.TypeOf(uint32(0)), - pref.Fixed32Kind: reflect.TypeOf(uint32(0)), - pref.Uint64Kind: reflect.TypeOf(uint64(0)), - pref.Fixed64Kind: reflect.TypeOf(uint64(0)), - pref.FloatKind: reflect.TypeOf(float32(0)), - pref.DoubleKind: reflect.TypeOf(float64(0)), - pref.StringKind: reflect.TypeOf(string("")), - pref.BytesKind: reflect.TypeOf([]byte(nil)), +var goTypeForPBKind = map[protoreflect.Kind]reflect.Type{ + protoreflect.BoolKind: reflect.TypeOf(bool(false)), + protoreflect.Int32Kind: reflect.TypeOf(int32(0)), + protoreflect.Sint32Kind: reflect.TypeOf(int32(0)), + protoreflect.Sfixed32Kind: reflect.TypeOf(int32(0)), + protoreflect.Int64Kind: reflect.TypeOf(int64(0)), + protoreflect.Sint64Kind: reflect.TypeOf(int64(0)), + protoreflect.Sfixed64Kind: reflect.TypeOf(int64(0)), + protoreflect.Uint32Kind: reflect.TypeOf(uint32(0)), + protoreflect.Fixed32Kind: reflect.TypeOf(uint32(0)), + protoreflect.Uint64Kind: reflect.TypeOf(uint64(0)), + protoreflect.Fixed64Kind: reflect.TypeOf(uint64(0)), + protoreflect.FloatKind: reflect.TypeOf(float32(0)), + protoreflect.DoubleKind: reflect.TypeOf(float64(0)), + protoreflect.StringKind: reflect.TypeOf(string("")), + protoreflect.BytesKind: reflect.TypeOf([]byte(nil)), } type depIdxs []int32 @@ -274,13 +273,13 @@ type ( fileRegistry } fileRegistry interface { - FindFileByPath(string) (pref.FileDescriptor, error) - FindDescriptorByName(pref.FullName) (pref.Descriptor, error) - RegisterFile(pref.FileDescriptor) error + FindFileByPath(string) (protoreflect.FileDescriptor, error) + FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) + RegisterFile(protoreflect.FileDescriptor) error } ) -func (r *resolverByIndex) FindEnumByIndex(i, j int32, es []fdesc.Enum, ms []fdesc.Message) pref.EnumDescriptor { +func (r *resolverByIndex) FindEnumByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.EnumDescriptor { if depIdx := int(r.depIdxs.Get(i, j)); int(depIdx) < len(es)+len(ms) { return &es[depIdx] } else { @@ -288,7 +287,7 @@ func (r *resolverByIndex) FindEnumByIndex(i, j int32, es []fdesc.Enum, ms []fdes } } -func (r *resolverByIndex) FindMessageByIndex(i, j int32, es []fdesc.Enum, ms []fdesc.Message) pref.MessageDescriptor { +func (r *resolverByIndex) FindMessageByIndex(i, j int32, es []filedesc.Enum, ms []filedesc.Message) protoreflect.MessageDescriptor { if depIdx := int(r.depIdxs.Get(i, j)); depIdx < len(es)+len(ms) { return &ms[depIdx-len(es)] } else { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go index a72995f02d..bda8e8cf3f 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_disable.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !protolegacy // +build !protolegacy package flags diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go index 772e2f0e4d..6d8d9bd6b0 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/flags/proto_legacy_enable.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build protolegacy // +build protolegacy package flags diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/any_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/any_gen.go new file mode 100644 index 0000000000..e6f7d47ab6 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/any_gen.go @@ -0,0 +1,34 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_any_proto = "google/protobuf/any.proto" + +// Names for google.protobuf.Any. +const ( + Any_message_name protoreflect.Name = "Any" + Any_message_fullname protoreflect.FullName = "google.protobuf.Any" +) + +// Field names for google.protobuf.Any. +const ( + Any_TypeUrl_field_name protoreflect.Name = "type_url" + Any_Value_field_name protoreflect.Name = "value" + + Any_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Any.type_url" + Any_Value_field_fullname protoreflect.FullName = "google.protobuf.Any.value" +) + +// Field numbers for google.protobuf.Any. +const ( + Any_TypeUrl_field_number protoreflect.FieldNumber = 1 + Any_Value_field_number protoreflect.FieldNumber = 2 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/api_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/api_gen.go new file mode 100644 index 0000000000..df8f918501 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/api_gen.go @@ -0,0 +1,106 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_api_proto = "google/protobuf/api.proto" + +// Names for google.protobuf.Api. +const ( + Api_message_name protoreflect.Name = "Api" + Api_message_fullname protoreflect.FullName = "google.protobuf.Api" +) + +// Field names for google.protobuf.Api. +const ( + Api_Name_field_name protoreflect.Name = "name" + Api_Methods_field_name protoreflect.Name = "methods" + Api_Options_field_name protoreflect.Name = "options" + Api_Version_field_name protoreflect.Name = "version" + Api_SourceContext_field_name protoreflect.Name = "source_context" + Api_Mixins_field_name protoreflect.Name = "mixins" + Api_Syntax_field_name protoreflect.Name = "syntax" + + Api_Name_field_fullname protoreflect.FullName = "google.protobuf.Api.name" + Api_Methods_field_fullname protoreflect.FullName = "google.protobuf.Api.methods" + Api_Options_field_fullname protoreflect.FullName = "google.protobuf.Api.options" + Api_Version_field_fullname protoreflect.FullName = "google.protobuf.Api.version" + Api_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Api.source_context" + Api_Mixins_field_fullname protoreflect.FullName = "google.protobuf.Api.mixins" + Api_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Api.syntax" +) + +// Field numbers for google.protobuf.Api. +const ( + Api_Name_field_number protoreflect.FieldNumber = 1 + Api_Methods_field_number protoreflect.FieldNumber = 2 + Api_Options_field_number protoreflect.FieldNumber = 3 + Api_Version_field_number protoreflect.FieldNumber = 4 + Api_SourceContext_field_number protoreflect.FieldNumber = 5 + Api_Mixins_field_number protoreflect.FieldNumber = 6 + Api_Syntax_field_number protoreflect.FieldNumber = 7 +) + +// Names for google.protobuf.Method. +const ( + Method_message_name protoreflect.Name = "Method" + Method_message_fullname protoreflect.FullName = "google.protobuf.Method" +) + +// Field names for google.protobuf.Method. +const ( + Method_Name_field_name protoreflect.Name = "name" + Method_RequestTypeUrl_field_name protoreflect.Name = "request_type_url" + Method_RequestStreaming_field_name protoreflect.Name = "request_streaming" + Method_ResponseTypeUrl_field_name protoreflect.Name = "response_type_url" + Method_ResponseStreaming_field_name protoreflect.Name = "response_streaming" + Method_Options_field_name protoreflect.Name = "options" + Method_Syntax_field_name protoreflect.Name = "syntax" + + Method_Name_field_fullname protoreflect.FullName = "google.protobuf.Method.name" + Method_RequestTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.request_type_url" + Method_RequestStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.request_streaming" + Method_ResponseTypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Method.response_type_url" + Method_ResponseStreaming_field_fullname protoreflect.FullName = "google.protobuf.Method.response_streaming" + Method_Options_field_fullname protoreflect.FullName = "google.protobuf.Method.options" + Method_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Method.syntax" +) + +// Field numbers for google.protobuf.Method. +const ( + Method_Name_field_number protoreflect.FieldNumber = 1 + Method_RequestTypeUrl_field_number protoreflect.FieldNumber = 2 + Method_RequestStreaming_field_number protoreflect.FieldNumber = 3 + Method_ResponseTypeUrl_field_number protoreflect.FieldNumber = 4 + Method_ResponseStreaming_field_number protoreflect.FieldNumber = 5 + Method_Options_field_number protoreflect.FieldNumber = 6 + Method_Syntax_field_number protoreflect.FieldNumber = 7 +) + +// Names for google.protobuf.Mixin. +const ( + Mixin_message_name protoreflect.Name = "Mixin" + Mixin_message_fullname protoreflect.FullName = "google.protobuf.Mixin" +) + +// Field names for google.protobuf.Mixin. +const ( + Mixin_Name_field_name protoreflect.Name = "name" + Mixin_Root_field_name protoreflect.Name = "root" + + Mixin_Name_field_fullname protoreflect.FullName = "google.protobuf.Mixin.name" + Mixin_Root_field_fullname protoreflect.FullName = "google.protobuf.Mixin.root" +) + +// Field numbers for google.protobuf.Mixin. +const ( + Mixin_Name_field_number protoreflect.FieldNumber = 1 + Mixin_Root_field_number protoreflect.FieldNumber = 2 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go new file mode 100644 index 0000000000..5c0e8f73f4 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go @@ -0,0 +1,871 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_descriptor_proto = "google/protobuf/descriptor.proto" + +// Names for google.protobuf.FileDescriptorSet. +const ( + FileDescriptorSet_message_name protoreflect.Name = "FileDescriptorSet" + FileDescriptorSet_message_fullname protoreflect.FullName = "google.protobuf.FileDescriptorSet" +) + +// Field names for google.protobuf.FileDescriptorSet. +const ( + FileDescriptorSet_File_field_name protoreflect.Name = "file" + + FileDescriptorSet_File_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorSet.file" +) + +// Field numbers for google.protobuf.FileDescriptorSet. +const ( + FileDescriptorSet_File_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.FileDescriptorProto. +const ( + FileDescriptorProto_message_name protoreflect.Name = "FileDescriptorProto" + FileDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto" +) + +// Field names for google.protobuf.FileDescriptorProto. +const ( + FileDescriptorProto_Name_field_name protoreflect.Name = "name" + FileDescriptorProto_Package_field_name protoreflect.Name = "package" + FileDescriptorProto_Dependency_field_name protoreflect.Name = "dependency" + FileDescriptorProto_PublicDependency_field_name protoreflect.Name = "public_dependency" + FileDescriptorProto_WeakDependency_field_name protoreflect.Name = "weak_dependency" + FileDescriptorProto_MessageType_field_name protoreflect.Name = "message_type" + FileDescriptorProto_EnumType_field_name protoreflect.Name = "enum_type" + FileDescriptorProto_Service_field_name protoreflect.Name = "service" + FileDescriptorProto_Extension_field_name protoreflect.Name = "extension" + FileDescriptorProto_Options_field_name protoreflect.Name = "options" + FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info" + FileDescriptorProto_Syntax_field_name protoreflect.Name = "syntax" + FileDescriptorProto_Edition_field_name protoreflect.Name = "edition" + + FileDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.name" + FileDescriptorProto_Package_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.package" + FileDescriptorProto_Dependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.dependency" + FileDescriptorProto_PublicDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.public_dependency" + FileDescriptorProto_WeakDependency_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.weak_dependency" + FileDescriptorProto_MessageType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.message_type" + FileDescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.enum_type" + FileDescriptorProto_Service_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.service" + FileDescriptorProto_Extension_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.extension" + FileDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.options" + FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info" + FileDescriptorProto_Syntax_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax" + FileDescriptorProto_Edition_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.edition" +) + +// Field numbers for google.protobuf.FileDescriptorProto. +const ( + FileDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + FileDescriptorProto_Package_field_number protoreflect.FieldNumber = 2 + FileDescriptorProto_Dependency_field_number protoreflect.FieldNumber = 3 + FileDescriptorProto_PublicDependency_field_number protoreflect.FieldNumber = 10 + FileDescriptorProto_WeakDependency_field_number protoreflect.FieldNumber = 11 + FileDescriptorProto_MessageType_field_number protoreflect.FieldNumber = 4 + FileDescriptorProto_EnumType_field_number protoreflect.FieldNumber = 5 + FileDescriptorProto_Service_field_number protoreflect.FieldNumber = 6 + FileDescriptorProto_Extension_field_number protoreflect.FieldNumber = 7 + FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 + FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 + FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 + FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 +) + +// Names for google.protobuf.DescriptorProto. +const ( + DescriptorProto_message_name protoreflect.Name = "DescriptorProto" + DescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto" +) + +// Field names for google.protobuf.DescriptorProto. +const ( + DescriptorProto_Name_field_name protoreflect.Name = "name" + DescriptorProto_Field_field_name protoreflect.Name = "field" + DescriptorProto_Extension_field_name protoreflect.Name = "extension" + DescriptorProto_NestedType_field_name protoreflect.Name = "nested_type" + DescriptorProto_EnumType_field_name protoreflect.Name = "enum_type" + DescriptorProto_ExtensionRange_field_name protoreflect.Name = "extension_range" + DescriptorProto_OneofDecl_field_name protoreflect.Name = "oneof_decl" + DescriptorProto_Options_field_name protoreflect.Name = "options" + DescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range" + DescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name" + + DescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.name" + DescriptorProto_Field_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.field" + DescriptorProto_Extension_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.extension" + DescriptorProto_NestedType_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.nested_type" + DescriptorProto_EnumType_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.enum_type" + DescriptorProto_ExtensionRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.extension_range" + DescriptorProto_OneofDecl_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.oneof_decl" + DescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.options" + DescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_range" + DescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.reserved_name" +) + +// Field numbers for google.protobuf.DescriptorProto. +const ( + DescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + DescriptorProto_Field_field_number protoreflect.FieldNumber = 2 + DescriptorProto_Extension_field_number protoreflect.FieldNumber = 6 + DescriptorProto_NestedType_field_number protoreflect.FieldNumber = 3 + DescriptorProto_EnumType_field_number protoreflect.FieldNumber = 4 + DescriptorProto_ExtensionRange_field_number protoreflect.FieldNumber = 5 + DescriptorProto_OneofDecl_field_number protoreflect.FieldNumber = 8 + DescriptorProto_Options_field_number protoreflect.FieldNumber = 7 + DescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 9 + DescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 10 +) + +// Names for google.protobuf.DescriptorProto.ExtensionRange. +const ( + DescriptorProto_ExtensionRange_message_name protoreflect.Name = "ExtensionRange" + DescriptorProto_ExtensionRange_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange" +) + +// Field names for google.protobuf.DescriptorProto.ExtensionRange. +const ( + DescriptorProto_ExtensionRange_Start_field_name protoreflect.Name = "start" + DescriptorProto_ExtensionRange_End_field_name protoreflect.Name = "end" + DescriptorProto_ExtensionRange_Options_field_name protoreflect.Name = "options" + + DescriptorProto_ExtensionRange_Start_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.start" + DescriptorProto_ExtensionRange_End_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.end" + DescriptorProto_ExtensionRange_Options_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ExtensionRange.options" +) + +// Field numbers for google.protobuf.DescriptorProto.ExtensionRange. +const ( + DescriptorProto_ExtensionRange_Start_field_number protoreflect.FieldNumber = 1 + DescriptorProto_ExtensionRange_End_field_number protoreflect.FieldNumber = 2 + DescriptorProto_ExtensionRange_Options_field_number protoreflect.FieldNumber = 3 +) + +// Names for google.protobuf.DescriptorProto.ReservedRange. +const ( + DescriptorProto_ReservedRange_message_name protoreflect.Name = "ReservedRange" + DescriptorProto_ReservedRange_message_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange" +) + +// Field names for google.protobuf.DescriptorProto.ReservedRange. +const ( + DescriptorProto_ReservedRange_Start_field_name protoreflect.Name = "start" + DescriptorProto_ReservedRange_End_field_name protoreflect.Name = "end" + + DescriptorProto_ReservedRange_Start_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange.start" + DescriptorProto_ReservedRange_End_field_fullname protoreflect.FullName = "google.protobuf.DescriptorProto.ReservedRange.end" +) + +// Field numbers for google.protobuf.DescriptorProto.ReservedRange. +const ( + DescriptorProto_ReservedRange_Start_field_number protoreflect.FieldNumber = 1 + DescriptorProto_ReservedRange_End_field_number protoreflect.FieldNumber = 2 +) + +// Names for google.protobuf.ExtensionRangeOptions. +const ( + ExtensionRangeOptions_message_name protoreflect.Name = "ExtensionRangeOptions" + ExtensionRangeOptions_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions" +) + +// Field names for google.protobuf.ExtensionRangeOptions. +const ( + ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.ExtensionRangeOptions. +const ( + ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Names for google.protobuf.FieldDescriptorProto. +const ( + FieldDescriptorProto_message_name protoreflect.Name = "FieldDescriptorProto" + FieldDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto" +) + +// Field names for google.protobuf.FieldDescriptorProto. +const ( + FieldDescriptorProto_Name_field_name protoreflect.Name = "name" + FieldDescriptorProto_Number_field_name protoreflect.Name = "number" + FieldDescriptorProto_Label_field_name protoreflect.Name = "label" + FieldDescriptorProto_Type_field_name protoreflect.Name = "type" + FieldDescriptorProto_TypeName_field_name protoreflect.Name = "type_name" + FieldDescriptorProto_Extendee_field_name protoreflect.Name = "extendee" + FieldDescriptorProto_DefaultValue_field_name protoreflect.Name = "default_value" + FieldDescriptorProto_OneofIndex_field_name protoreflect.Name = "oneof_index" + FieldDescriptorProto_JsonName_field_name protoreflect.Name = "json_name" + FieldDescriptorProto_Options_field_name protoreflect.Name = "options" + FieldDescriptorProto_Proto3Optional_field_name protoreflect.Name = "proto3_optional" + + FieldDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.name" + FieldDescriptorProto_Number_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.number" + FieldDescriptorProto_Label_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.label" + FieldDescriptorProto_Type_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.type" + FieldDescriptorProto_TypeName_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.type_name" + FieldDescriptorProto_Extendee_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.extendee" + FieldDescriptorProto_DefaultValue_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.default_value" + FieldDescriptorProto_OneofIndex_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.oneof_index" + FieldDescriptorProto_JsonName_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.json_name" + FieldDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.options" + FieldDescriptorProto_Proto3Optional_field_fullname protoreflect.FullName = "google.protobuf.FieldDescriptorProto.proto3_optional" +) + +// Field numbers for google.protobuf.FieldDescriptorProto. +const ( + FieldDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + FieldDescriptorProto_Number_field_number protoreflect.FieldNumber = 3 + FieldDescriptorProto_Label_field_number protoreflect.FieldNumber = 4 + FieldDescriptorProto_Type_field_number protoreflect.FieldNumber = 5 + FieldDescriptorProto_TypeName_field_number protoreflect.FieldNumber = 6 + FieldDescriptorProto_Extendee_field_number protoreflect.FieldNumber = 2 + FieldDescriptorProto_DefaultValue_field_number protoreflect.FieldNumber = 7 + FieldDescriptorProto_OneofIndex_field_number protoreflect.FieldNumber = 9 + FieldDescriptorProto_JsonName_field_number protoreflect.FieldNumber = 10 + FieldDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 + FieldDescriptorProto_Proto3Optional_field_number protoreflect.FieldNumber = 17 +) + +// Full and short names for google.protobuf.FieldDescriptorProto.Type. +const ( + FieldDescriptorProto_Type_enum_fullname = "google.protobuf.FieldDescriptorProto.Type" + FieldDescriptorProto_Type_enum_name = "Type" +) + +// Full and short names for google.protobuf.FieldDescriptorProto.Label. +const ( + FieldDescriptorProto_Label_enum_fullname = "google.protobuf.FieldDescriptorProto.Label" + FieldDescriptorProto_Label_enum_name = "Label" +) + +// Names for google.protobuf.OneofDescriptorProto. +const ( + OneofDescriptorProto_message_name protoreflect.Name = "OneofDescriptorProto" + OneofDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto" +) + +// Field names for google.protobuf.OneofDescriptorProto. +const ( + OneofDescriptorProto_Name_field_name protoreflect.Name = "name" + OneofDescriptorProto_Options_field_name protoreflect.Name = "options" + + OneofDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto.name" + OneofDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.OneofDescriptorProto.options" +) + +// Field numbers for google.protobuf.OneofDescriptorProto. +const ( + OneofDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + OneofDescriptorProto_Options_field_number protoreflect.FieldNumber = 2 +) + +// Names for google.protobuf.EnumDescriptorProto. +const ( + EnumDescriptorProto_message_name protoreflect.Name = "EnumDescriptorProto" + EnumDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto" +) + +// Field names for google.protobuf.EnumDescriptorProto. +const ( + EnumDescriptorProto_Name_field_name protoreflect.Name = "name" + EnumDescriptorProto_Value_field_name protoreflect.Name = "value" + EnumDescriptorProto_Options_field_name protoreflect.Name = "options" + EnumDescriptorProto_ReservedRange_field_name protoreflect.Name = "reserved_range" + EnumDescriptorProto_ReservedName_field_name protoreflect.Name = "reserved_name" + + EnumDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.name" + EnumDescriptorProto_Value_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.value" + EnumDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.options" + EnumDescriptorProto_ReservedRange_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_range" + EnumDescriptorProto_ReservedName_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.reserved_name" +) + +// Field numbers for google.protobuf.EnumDescriptorProto. +const ( + EnumDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + EnumDescriptorProto_Value_field_number protoreflect.FieldNumber = 2 + EnumDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 + EnumDescriptorProto_ReservedRange_field_number protoreflect.FieldNumber = 4 + EnumDescriptorProto_ReservedName_field_number protoreflect.FieldNumber = 5 +) + +// Names for google.protobuf.EnumDescriptorProto.EnumReservedRange. +const ( + EnumDescriptorProto_EnumReservedRange_message_name protoreflect.Name = "EnumReservedRange" + EnumDescriptorProto_EnumReservedRange_message_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange" +) + +// Field names for google.protobuf.EnumDescriptorProto.EnumReservedRange. +const ( + EnumDescriptorProto_EnumReservedRange_Start_field_name protoreflect.Name = "start" + EnumDescriptorProto_EnumReservedRange_End_field_name protoreflect.Name = "end" + + EnumDescriptorProto_EnumReservedRange_Start_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange.start" + EnumDescriptorProto_EnumReservedRange_End_field_fullname protoreflect.FullName = "google.protobuf.EnumDescriptorProto.EnumReservedRange.end" +) + +// Field numbers for google.protobuf.EnumDescriptorProto.EnumReservedRange. +const ( + EnumDescriptorProto_EnumReservedRange_Start_field_number protoreflect.FieldNumber = 1 + EnumDescriptorProto_EnumReservedRange_End_field_number protoreflect.FieldNumber = 2 +) + +// Names for google.protobuf.EnumValueDescriptorProto. +const ( + EnumValueDescriptorProto_message_name protoreflect.Name = "EnumValueDescriptorProto" + EnumValueDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto" +) + +// Field names for google.protobuf.EnumValueDescriptorProto. +const ( + EnumValueDescriptorProto_Name_field_name protoreflect.Name = "name" + EnumValueDescriptorProto_Number_field_name protoreflect.Name = "number" + EnumValueDescriptorProto_Options_field_name protoreflect.Name = "options" + + EnumValueDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.name" + EnumValueDescriptorProto_Number_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.number" + EnumValueDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumValueDescriptorProto.options" +) + +// Field numbers for google.protobuf.EnumValueDescriptorProto. +const ( + EnumValueDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + EnumValueDescriptorProto_Number_field_number protoreflect.FieldNumber = 2 + EnumValueDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 +) + +// Names for google.protobuf.ServiceDescriptorProto. +const ( + ServiceDescriptorProto_message_name protoreflect.Name = "ServiceDescriptorProto" + ServiceDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto" +) + +// Field names for google.protobuf.ServiceDescriptorProto. +const ( + ServiceDescriptorProto_Name_field_name protoreflect.Name = "name" + ServiceDescriptorProto_Method_field_name protoreflect.Name = "method" + ServiceDescriptorProto_Options_field_name protoreflect.Name = "options" + + ServiceDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.name" + ServiceDescriptorProto_Method_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.method" + ServiceDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.ServiceDescriptorProto.options" +) + +// Field numbers for google.protobuf.ServiceDescriptorProto. +const ( + ServiceDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + ServiceDescriptorProto_Method_field_number protoreflect.FieldNumber = 2 + ServiceDescriptorProto_Options_field_number protoreflect.FieldNumber = 3 +) + +// Names for google.protobuf.MethodDescriptorProto. +const ( + MethodDescriptorProto_message_name protoreflect.Name = "MethodDescriptorProto" + MethodDescriptorProto_message_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto" +) + +// Field names for google.protobuf.MethodDescriptorProto. +const ( + MethodDescriptorProto_Name_field_name protoreflect.Name = "name" + MethodDescriptorProto_InputType_field_name protoreflect.Name = "input_type" + MethodDescriptorProto_OutputType_field_name protoreflect.Name = "output_type" + MethodDescriptorProto_Options_field_name protoreflect.Name = "options" + MethodDescriptorProto_ClientStreaming_field_name protoreflect.Name = "client_streaming" + MethodDescriptorProto_ServerStreaming_field_name protoreflect.Name = "server_streaming" + + MethodDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.name" + MethodDescriptorProto_InputType_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.input_type" + MethodDescriptorProto_OutputType_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.output_type" + MethodDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.options" + MethodDescriptorProto_ClientStreaming_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.client_streaming" + MethodDescriptorProto_ServerStreaming_field_fullname protoreflect.FullName = "google.protobuf.MethodDescriptorProto.server_streaming" +) + +// Field numbers for google.protobuf.MethodDescriptorProto. +const ( + MethodDescriptorProto_Name_field_number protoreflect.FieldNumber = 1 + MethodDescriptorProto_InputType_field_number protoreflect.FieldNumber = 2 + MethodDescriptorProto_OutputType_field_number protoreflect.FieldNumber = 3 + MethodDescriptorProto_Options_field_number protoreflect.FieldNumber = 4 + MethodDescriptorProto_ClientStreaming_field_number protoreflect.FieldNumber = 5 + MethodDescriptorProto_ServerStreaming_field_number protoreflect.FieldNumber = 6 +) + +// Names for google.protobuf.FileOptions. +const ( + FileOptions_message_name protoreflect.Name = "FileOptions" + FileOptions_message_fullname protoreflect.FullName = "google.protobuf.FileOptions" +) + +// Field names for google.protobuf.FileOptions. +const ( + FileOptions_JavaPackage_field_name protoreflect.Name = "java_package" + FileOptions_JavaOuterClassname_field_name protoreflect.Name = "java_outer_classname" + FileOptions_JavaMultipleFiles_field_name protoreflect.Name = "java_multiple_files" + FileOptions_JavaGenerateEqualsAndHash_field_name protoreflect.Name = "java_generate_equals_and_hash" + FileOptions_JavaStringCheckUtf8_field_name protoreflect.Name = "java_string_check_utf8" + FileOptions_OptimizeFor_field_name protoreflect.Name = "optimize_for" + FileOptions_GoPackage_field_name protoreflect.Name = "go_package" + FileOptions_CcGenericServices_field_name protoreflect.Name = "cc_generic_services" + FileOptions_JavaGenericServices_field_name protoreflect.Name = "java_generic_services" + FileOptions_PyGenericServices_field_name protoreflect.Name = "py_generic_services" + FileOptions_PhpGenericServices_field_name protoreflect.Name = "php_generic_services" + FileOptions_Deprecated_field_name protoreflect.Name = "deprecated" + FileOptions_CcEnableArenas_field_name protoreflect.Name = "cc_enable_arenas" + FileOptions_ObjcClassPrefix_field_name protoreflect.Name = "objc_class_prefix" + FileOptions_CsharpNamespace_field_name protoreflect.Name = "csharp_namespace" + FileOptions_SwiftPrefix_field_name protoreflect.Name = "swift_prefix" + FileOptions_PhpClassPrefix_field_name protoreflect.Name = "php_class_prefix" + FileOptions_PhpNamespace_field_name protoreflect.Name = "php_namespace" + FileOptions_PhpMetadataNamespace_field_name protoreflect.Name = "php_metadata_namespace" + FileOptions_RubyPackage_field_name protoreflect.Name = "ruby_package" + FileOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + FileOptions_JavaPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_package" + FileOptions_JavaOuterClassname_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_outer_classname" + FileOptions_JavaMultipleFiles_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_multiple_files" + FileOptions_JavaGenerateEqualsAndHash_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generate_equals_and_hash" + FileOptions_JavaStringCheckUtf8_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_string_check_utf8" + FileOptions_OptimizeFor_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.optimize_for" + FileOptions_GoPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.go_package" + FileOptions_CcGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_generic_services" + FileOptions_JavaGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.java_generic_services" + FileOptions_PyGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.py_generic_services" + FileOptions_PhpGenericServices_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_generic_services" + FileOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.deprecated" + FileOptions_CcEnableArenas_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.cc_enable_arenas" + FileOptions_ObjcClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.objc_class_prefix" + FileOptions_CsharpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.csharp_namespace" + FileOptions_SwiftPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.swift_prefix" + FileOptions_PhpClassPrefix_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_class_prefix" + FileOptions_PhpNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_namespace" + FileOptions_PhpMetadataNamespace_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.php_metadata_namespace" + FileOptions_RubyPackage_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.ruby_package" + FileOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FileOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.FileOptions. +const ( + FileOptions_JavaPackage_field_number protoreflect.FieldNumber = 1 + FileOptions_JavaOuterClassname_field_number protoreflect.FieldNumber = 8 + FileOptions_JavaMultipleFiles_field_number protoreflect.FieldNumber = 10 + FileOptions_JavaGenerateEqualsAndHash_field_number protoreflect.FieldNumber = 20 + FileOptions_JavaStringCheckUtf8_field_number protoreflect.FieldNumber = 27 + FileOptions_OptimizeFor_field_number protoreflect.FieldNumber = 9 + FileOptions_GoPackage_field_number protoreflect.FieldNumber = 11 + FileOptions_CcGenericServices_field_number protoreflect.FieldNumber = 16 + FileOptions_JavaGenericServices_field_number protoreflect.FieldNumber = 17 + FileOptions_PyGenericServices_field_number protoreflect.FieldNumber = 18 + FileOptions_PhpGenericServices_field_number protoreflect.FieldNumber = 42 + FileOptions_Deprecated_field_number protoreflect.FieldNumber = 23 + FileOptions_CcEnableArenas_field_number protoreflect.FieldNumber = 31 + FileOptions_ObjcClassPrefix_field_number protoreflect.FieldNumber = 36 + FileOptions_CsharpNamespace_field_number protoreflect.FieldNumber = 37 + FileOptions_SwiftPrefix_field_number protoreflect.FieldNumber = 39 + FileOptions_PhpClassPrefix_field_number protoreflect.FieldNumber = 40 + FileOptions_PhpNamespace_field_number protoreflect.FieldNumber = 41 + FileOptions_PhpMetadataNamespace_field_number protoreflect.FieldNumber = 44 + FileOptions_RubyPackage_field_number protoreflect.FieldNumber = 45 + FileOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Full and short names for google.protobuf.FileOptions.OptimizeMode. +const ( + FileOptions_OptimizeMode_enum_fullname = "google.protobuf.FileOptions.OptimizeMode" + FileOptions_OptimizeMode_enum_name = "OptimizeMode" +) + +// Names for google.protobuf.MessageOptions. +const ( + MessageOptions_message_name protoreflect.Name = "MessageOptions" + MessageOptions_message_fullname protoreflect.FullName = "google.protobuf.MessageOptions" +) + +// Field names for google.protobuf.MessageOptions. +const ( + MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" + MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" + MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" + MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" + MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" + MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" + MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" + MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" + MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" + MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" + MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.MessageOptions. +const ( + MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 + MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 + MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 + MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 + MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Names for google.protobuf.FieldOptions. +const ( + FieldOptions_message_name protoreflect.Name = "FieldOptions" + FieldOptions_message_fullname protoreflect.FullName = "google.protobuf.FieldOptions" +) + +// Field names for google.protobuf.FieldOptions. +const ( + FieldOptions_Ctype_field_name protoreflect.Name = "ctype" + FieldOptions_Packed_field_name protoreflect.Name = "packed" + FieldOptions_Jstype_field_name protoreflect.Name = "jstype" + FieldOptions_Lazy_field_name protoreflect.Name = "lazy" + FieldOptions_UnverifiedLazy_field_name protoreflect.Name = "unverified_lazy" + FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated" + FieldOptions_Weak_field_name protoreflect.Name = "weak" + FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" + FieldOptions_Retention_field_name protoreflect.Name = "retention" + FieldOptions_Target_field_name protoreflect.Name = "target" + FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" + FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed" + FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype" + FieldOptions_Lazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.lazy" + FieldOptions_UnverifiedLazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.unverified_lazy" + FieldOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.deprecated" + FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" + FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" + FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" + FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" + FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.FieldOptions. +const ( + FieldOptions_Ctype_field_number protoreflect.FieldNumber = 1 + FieldOptions_Packed_field_number protoreflect.FieldNumber = 2 + FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6 + FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5 + FieldOptions_UnverifiedLazy_field_number protoreflect.FieldNumber = 15 + FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 + FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 + FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 + FieldOptions_Target_field_number protoreflect.FieldNumber = 18 + FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Full and short names for google.protobuf.FieldOptions.CType. +const ( + FieldOptions_CType_enum_fullname = "google.protobuf.FieldOptions.CType" + FieldOptions_CType_enum_name = "CType" +) + +// Full and short names for google.protobuf.FieldOptions.JSType. +const ( + FieldOptions_JSType_enum_fullname = "google.protobuf.FieldOptions.JSType" + FieldOptions_JSType_enum_name = "JSType" +) + +// Full and short names for google.protobuf.FieldOptions.OptionRetention. +const ( + FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" + FieldOptions_OptionRetention_enum_name = "OptionRetention" +) + +// Full and short names for google.protobuf.FieldOptions.OptionTargetType. +const ( + FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" + FieldOptions_OptionTargetType_enum_name = "OptionTargetType" +) + +// Names for google.protobuf.OneofOptions. +const ( + OneofOptions_message_name protoreflect.Name = "OneofOptions" + OneofOptions_message_fullname protoreflect.FullName = "google.protobuf.OneofOptions" +) + +// Field names for google.protobuf.OneofOptions. +const ( + OneofOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + OneofOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.OneofOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.OneofOptions. +const ( + OneofOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Names for google.protobuf.EnumOptions. +const ( + EnumOptions_message_name protoreflect.Name = "EnumOptions" + EnumOptions_message_fullname protoreflect.FullName = "google.protobuf.EnumOptions" +) + +// Field names for google.protobuf.EnumOptions. +const ( + EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" + EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" + EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" + EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" + EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" + EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" + EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.EnumOptions. +const ( + EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 + EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 + EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Names for google.protobuf.EnumValueOptions. +const ( + EnumValueOptions_message_name protoreflect.Name = "EnumValueOptions" + EnumValueOptions_message_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions" +) + +// Field names for google.protobuf.EnumValueOptions. +const ( + EnumValueOptions_Deprecated_field_name protoreflect.Name = "deprecated" + EnumValueOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + EnumValueOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.deprecated" + EnumValueOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumValueOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.EnumValueOptions. +const ( + EnumValueOptions_Deprecated_field_number protoreflect.FieldNumber = 1 + EnumValueOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Names for google.protobuf.ServiceOptions. +const ( + ServiceOptions_message_name protoreflect.Name = "ServiceOptions" + ServiceOptions_message_fullname protoreflect.FullName = "google.protobuf.ServiceOptions" +) + +// Field names for google.protobuf.ServiceOptions. +const ( + ServiceOptions_Deprecated_field_name protoreflect.Name = "deprecated" + ServiceOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + ServiceOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.deprecated" + ServiceOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ServiceOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.ServiceOptions. +const ( + ServiceOptions_Deprecated_field_number protoreflect.FieldNumber = 33 + ServiceOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Names for google.protobuf.MethodOptions. +const ( + MethodOptions_message_name protoreflect.Name = "MethodOptions" + MethodOptions_message_fullname protoreflect.FullName = "google.protobuf.MethodOptions" +) + +// Field names for google.protobuf.MethodOptions. +const ( + MethodOptions_Deprecated_field_name protoreflect.Name = "deprecated" + MethodOptions_IdempotencyLevel_field_name protoreflect.Name = "idempotency_level" + MethodOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + + MethodOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.deprecated" + MethodOptions_IdempotencyLevel_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.idempotency_level" + MethodOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MethodOptions.uninterpreted_option" +) + +// Field numbers for google.protobuf.MethodOptions. +const ( + MethodOptions_Deprecated_field_number protoreflect.FieldNumber = 33 + MethodOptions_IdempotencyLevel_field_number protoreflect.FieldNumber = 34 + MethodOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 +) + +// Full and short names for google.protobuf.MethodOptions.IdempotencyLevel. +const ( + MethodOptions_IdempotencyLevel_enum_fullname = "google.protobuf.MethodOptions.IdempotencyLevel" + MethodOptions_IdempotencyLevel_enum_name = "IdempotencyLevel" +) + +// Names for google.protobuf.UninterpretedOption. +const ( + UninterpretedOption_message_name protoreflect.Name = "UninterpretedOption" + UninterpretedOption_message_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption" +) + +// Field names for google.protobuf.UninterpretedOption. +const ( + UninterpretedOption_Name_field_name protoreflect.Name = "name" + UninterpretedOption_IdentifierValue_field_name protoreflect.Name = "identifier_value" + UninterpretedOption_PositiveIntValue_field_name protoreflect.Name = "positive_int_value" + UninterpretedOption_NegativeIntValue_field_name protoreflect.Name = "negative_int_value" + UninterpretedOption_DoubleValue_field_name protoreflect.Name = "double_value" + UninterpretedOption_StringValue_field_name protoreflect.Name = "string_value" + UninterpretedOption_AggregateValue_field_name protoreflect.Name = "aggregate_value" + + UninterpretedOption_Name_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.name" + UninterpretedOption_IdentifierValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.identifier_value" + UninterpretedOption_PositiveIntValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.positive_int_value" + UninterpretedOption_NegativeIntValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.negative_int_value" + UninterpretedOption_DoubleValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.double_value" + UninterpretedOption_StringValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.string_value" + UninterpretedOption_AggregateValue_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.aggregate_value" +) + +// Field numbers for google.protobuf.UninterpretedOption. +const ( + UninterpretedOption_Name_field_number protoreflect.FieldNumber = 2 + UninterpretedOption_IdentifierValue_field_number protoreflect.FieldNumber = 3 + UninterpretedOption_PositiveIntValue_field_number protoreflect.FieldNumber = 4 + UninterpretedOption_NegativeIntValue_field_number protoreflect.FieldNumber = 5 + UninterpretedOption_DoubleValue_field_number protoreflect.FieldNumber = 6 + UninterpretedOption_StringValue_field_number protoreflect.FieldNumber = 7 + UninterpretedOption_AggregateValue_field_number protoreflect.FieldNumber = 8 +) + +// Names for google.protobuf.UninterpretedOption.NamePart. +const ( + UninterpretedOption_NamePart_message_name protoreflect.Name = "NamePart" + UninterpretedOption_NamePart_message_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart" +) + +// Field names for google.protobuf.UninterpretedOption.NamePart. +const ( + UninterpretedOption_NamePart_NamePart_field_name protoreflect.Name = "name_part" + UninterpretedOption_NamePart_IsExtension_field_name protoreflect.Name = "is_extension" + + UninterpretedOption_NamePart_NamePart_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart.name_part" + UninterpretedOption_NamePart_IsExtension_field_fullname protoreflect.FullName = "google.protobuf.UninterpretedOption.NamePart.is_extension" +) + +// Field numbers for google.protobuf.UninterpretedOption.NamePart. +const ( + UninterpretedOption_NamePart_NamePart_field_number protoreflect.FieldNumber = 1 + UninterpretedOption_NamePart_IsExtension_field_number protoreflect.FieldNumber = 2 +) + +// Names for google.protobuf.SourceCodeInfo. +const ( + SourceCodeInfo_message_name protoreflect.Name = "SourceCodeInfo" + SourceCodeInfo_message_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo" +) + +// Field names for google.protobuf.SourceCodeInfo. +const ( + SourceCodeInfo_Location_field_name protoreflect.Name = "location" + + SourceCodeInfo_Location_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.location" +) + +// Field numbers for google.protobuf.SourceCodeInfo. +const ( + SourceCodeInfo_Location_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.SourceCodeInfo.Location. +const ( + SourceCodeInfo_Location_message_name protoreflect.Name = "Location" + SourceCodeInfo_Location_message_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location" +) + +// Field names for google.protobuf.SourceCodeInfo.Location. +const ( + SourceCodeInfo_Location_Path_field_name protoreflect.Name = "path" + SourceCodeInfo_Location_Span_field_name protoreflect.Name = "span" + SourceCodeInfo_Location_LeadingComments_field_name protoreflect.Name = "leading_comments" + SourceCodeInfo_Location_TrailingComments_field_name protoreflect.Name = "trailing_comments" + SourceCodeInfo_Location_LeadingDetachedComments_field_name protoreflect.Name = "leading_detached_comments" + + SourceCodeInfo_Location_Path_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.path" + SourceCodeInfo_Location_Span_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.span" + SourceCodeInfo_Location_LeadingComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.leading_comments" + SourceCodeInfo_Location_TrailingComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.trailing_comments" + SourceCodeInfo_Location_LeadingDetachedComments_field_fullname protoreflect.FullName = "google.protobuf.SourceCodeInfo.Location.leading_detached_comments" +) + +// Field numbers for google.protobuf.SourceCodeInfo.Location. +const ( + SourceCodeInfo_Location_Path_field_number protoreflect.FieldNumber = 1 + SourceCodeInfo_Location_Span_field_number protoreflect.FieldNumber = 2 + SourceCodeInfo_Location_LeadingComments_field_number protoreflect.FieldNumber = 3 + SourceCodeInfo_Location_TrailingComments_field_number protoreflect.FieldNumber = 4 + SourceCodeInfo_Location_LeadingDetachedComments_field_number protoreflect.FieldNumber = 6 +) + +// Names for google.protobuf.GeneratedCodeInfo. +const ( + GeneratedCodeInfo_message_name protoreflect.Name = "GeneratedCodeInfo" + GeneratedCodeInfo_message_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo" +) + +// Field names for google.protobuf.GeneratedCodeInfo. +const ( + GeneratedCodeInfo_Annotation_field_name protoreflect.Name = "annotation" + + GeneratedCodeInfo_Annotation_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.annotation" +) + +// Field numbers for google.protobuf.GeneratedCodeInfo. +const ( + GeneratedCodeInfo_Annotation_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.GeneratedCodeInfo.Annotation. +const ( + GeneratedCodeInfo_Annotation_message_name protoreflect.Name = "Annotation" + GeneratedCodeInfo_Annotation_message_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation" +) + +// Field names for google.protobuf.GeneratedCodeInfo.Annotation. +const ( + GeneratedCodeInfo_Annotation_Path_field_name protoreflect.Name = "path" + GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file" + GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin" + GeneratedCodeInfo_Annotation_End_field_name protoreflect.Name = "end" + GeneratedCodeInfo_Annotation_Semantic_field_name protoreflect.Name = "semantic" + + GeneratedCodeInfo_Annotation_Path_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.path" + GeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.source_file" + GeneratedCodeInfo_Annotation_Begin_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin" + GeneratedCodeInfo_Annotation_End_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end" + GeneratedCodeInfo_Annotation_Semantic_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.semantic" +) + +// Field numbers for google.protobuf.GeneratedCodeInfo.Annotation. +const ( + GeneratedCodeInfo_Annotation_Path_field_number protoreflect.FieldNumber = 1 + GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2 + GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3 + GeneratedCodeInfo_Annotation_End_field_number protoreflect.FieldNumber = 4 + GeneratedCodeInfo_Annotation_Semantic_field_number protoreflect.FieldNumber = 5 +) + +// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. +const ( + GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" + GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/doc.go new file mode 100644 index 0000000000..45ccd01211 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/doc.go @@ -0,0 +1,11 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package genid contains constants for declarations in descriptor.proto +// and the well-known types. +package genid + +import protoreflect "google.golang.org/protobuf/reflect/protoreflect" + +const GoogleProtobuf_package protoreflect.FullName = "google.protobuf" diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go new file mode 100644 index 0000000000..b070ef4fd6 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/duration_gen.go @@ -0,0 +1,34 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_duration_proto = "google/protobuf/duration.proto" + +// Names for google.protobuf.Duration. +const ( + Duration_message_name protoreflect.Name = "Duration" + Duration_message_fullname protoreflect.FullName = "google.protobuf.Duration" +) + +// Field names for google.protobuf.Duration. +const ( + Duration_Seconds_field_name protoreflect.Name = "seconds" + Duration_Nanos_field_name protoreflect.Name = "nanos" + + Duration_Seconds_field_fullname protoreflect.FullName = "google.protobuf.Duration.seconds" + Duration_Nanos_field_fullname protoreflect.FullName = "google.protobuf.Duration.nanos" +) + +// Field numbers for google.protobuf.Duration. +const ( + Duration_Seconds_field_number protoreflect.FieldNumber = 1 + Duration_Nanos_field_number protoreflect.FieldNumber = 2 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go new file mode 100644 index 0000000000..762abb34a4 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/empty_gen.go @@ -0,0 +1,19 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_empty_proto = "google/protobuf/empty.proto" + +// Names for google.protobuf.Empty. +const ( + Empty_message_name protoreflect.Name = "Empty" + Empty_message_fullname protoreflect.FullName = "google.protobuf.Empty" +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go new file mode 100644 index 0000000000..70bed453fe --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/field_mask_gen.go @@ -0,0 +1,31 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_field_mask_proto = "google/protobuf/field_mask.proto" + +// Names for google.protobuf.FieldMask. +const ( + FieldMask_message_name protoreflect.Name = "FieldMask" + FieldMask_message_fullname protoreflect.FullName = "google.protobuf.FieldMask" +) + +// Field names for google.protobuf.FieldMask. +const ( + FieldMask_Paths_field_name protoreflect.Name = "paths" + + FieldMask_Paths_field_fullname protoreflect.FullName = "google.protobuf.FieldMask.paths" +) + +// Field numbers for google.protobuf.FieldMask. +const ( + FieldMask_Paths_field_number protoreflect.FieldNumber = 1 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/goname.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/goname.go new file mode 100644 index 0000000000..693d2e9e1f --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/goname.go @@ -0,0 +1,25 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package genid + +// Go names of implementation-specific struct fields in generated messages. +const ( + State_goname = "state" + + SizeCache_goname = "sizeCache" + SizeCacheA_goname = "XXX_sizecache" + + WeakFields_goname = "weakFields" + WeakFieldsA_goname = "XXX_weak" + + UnknownFields_goname = "unknownFields" + UnknownFieldsA_goname = "XXX_unrecognized" + + ExtensionFields_goname = "extensionFields" + ExtensionFieldsA_goname = "XXX_InternalExtensions" + ExtensionFieldsB_goname = "XXX_extensions" + + WeakFieldPrefix_goname = "XXX_weak_" +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/map_entry.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/map_entry.go new file mode 100644 index 0000000000..8f9ea02ff2 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/map_entry.go @@ -0,0 +1,16 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package genid + +import protoreflect "google.golang.org/protobuf/reflect/protoreflect" + +// Generic field names and numbers for synthetic map entry messages. +const ( + MapEntry_Key_field_name protoreflect.Name = "key" + MapEntry_Value_field_name protoreflect.Name = "value" + + MapEntry_Key_field_number protoreflect.FieldNumber = 1 + MapEntry_Value_field_number protoreflect.FieldNumber = 2 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go new file mode 100644 index 0000000000..3e99ae16c8 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/source_context_gen.go @@ -0,0 +1,31 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_source_context_proto = "google/protobuf/source_context.proto" + +// Names for google.protobuf.SourceContext. +const ( + SourceContext_message_name protoreflect.Name = "SourceContext" + SourceContext_message_fullname protoreflect.FullName = "google.protobuf.SourceContext" +) + +// Field names for google.protobuf.SourceContext. +const ( + SourceContext_FileName_field_name protoreflect.Name = "file_name" + + SourceContext_FileName_field_fullname protoreflect.FullName = "google.protobuf.SourceContext.file_name" +) + +// Field numbers for google.protobuf.SourceContext. +const ( + SourceContext_FileName_field_number protoreflect.FieldNumber = 1 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go new file mode 100644 index 0000000000..1a38944b26 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/struct_gen.go @@ -0,0 +1,116 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_struct_proto = "google/protobuf/struct.proto" + +// Full and short names for google.protobuf.NullValue. +const ( + NullValue_enum_fullname = "google.protobuf.NullValue" + NullValue_enum_name = "NullValue" +) + +// Names for google.protobuf.Struct. +const ( + Struct_message_name protoreflect.Name = "Struct" + Struct_message_fullname protoreflect.FullName = "google.protobuf.Struct" +) + +// Field names for google.protobuf.Struct. +const ( + Struct_Fields_field_name protoreflect.Name = "fields" + + Struct_Fields_field_fullname protoreflect.FullName = "google.protobuf.Struct.fields" +) + +// Field numbers for google.protobuf.Struct. +const ( + Struct_Fields_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.Struct.FieldsEntry. +const ( + Struct_FieldsEntry_message_name protoreflect.Name = "FieldsEntry" + Struct_FieldsEntry_message_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry" +) + +// Field names for google.protobuf.Struct.FieldsEntry. +const ( + Struct_FieldsEntry_Key_field_name protoreflect.Name = "key" + Struct_FieldsEntry_Value_field_name protoreflect.Name = "value" + + Struct_FieldsEntry_Key_field_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry.key" + Struct_FieldsEntry_Value_field_fullname protoreflect.FullName = "google.protobuf.Struct.FieldsEntry.value" +) + +// Field numbers for google.protobuf.Struct.FieldsEntry. +const ( + Struct_FieldsEntry_Key_field_number protoreflect.FieldNumber = 1 + Struct_FieldsEntry_Value_field_number protoreflect.FieldNumber = 2 +) + +// Names for google.protobuf.Value. +const ( + Value_message_name protoreflect.Name = "Value" + Value_message_fullname protoreflect.FullName = "google.protobuf.Value" +) + +// Field names for google.protobuf.Value. +const ( + Value_NullValue_field_name protoreflect.Name = "null_value" + Value_NumberValue_field_name protoreflect.Name = "number_value" + Value_StringValue_field_name protoreflect.Name = "string_value" + Value_BoolValue_field_name protoreflect.Name = "bool_value" + Value_StructValue_field_name protoreflect.Name = "struct_value" + Value_ListValue_field_name protoreflect.Name = "list_value" + + Value_NullValue_field_fullname protoreflect.FullName = "google.protobuf.Value.null_value" + Value_NumberValue_field_fullname protoreflect.FullName = "google.protobuf.Value.number_value" + Value_StringValue_field_fullname protoreflect.FullName = "google.protobuf.Value.string_value" + Value_BoolValue_field_fullname protoreflect.FullName = "google.protobuf.Value.bool_value" + Value_StructValue_field_fullname protoreflect.FullName = "google.protobuf.Value.struct_value" + Value_ListValue_field_fullname protoreflect.FullName = "google.protobuf.Value.list_value" +) + +// Field numbers for google.protobuf.Value. +const ( + Value_NullValue_field_number protoreflect.FieldNumber = 1 + Value_NumberValue_field_number protoreflect.FieldNumber = 2 + Value_StringValue_field_number protoreflect.FieldNumber = 3 + Value_BoolValue_field_number protoreflect.FieldNumber = 4 + Value_StructValue_field_number protoreflect.FieldNumber = 5 + Value_ListValue_field_number protoreflect.FieldNumber = 6 +) + +// Oneof names for google.protobuf.Value. +const ( + Value_Kind_oneof_name protoreflect.Name = "kind" + + Value_Kind_oneof_fullname protoreflect.FullName = "google.protobuf.Value.kind" +) + +// Names for google.protobuf.ListValue. +const ( + ListValue_message_name protoreflect.Name = "ListValue" + ListValue_message_fullname protoreflect.FullName = "google.protobuf.ListValue" +) + +// Field names for google.protobuf.ListValue. +const ( + ListValue_Values_field_name protoreflect.Name = "values" + + ListValue_Values_field_fullname protoreflect.FullName = "google.protobuf.ListValue.values" +) + +// Field numbers for google.protobuf.ListValue. +const ( + ListValue_Values_field_number protoreflect.FieldNumber = 1 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go new file mode 100644 index 0000000000..f5cd5634c2 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/timestamp_gen.go @@ -0,0 +1,34 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_timestamp_proto = "google/protobuf/timestamp.proto" + +// Names for google.protobuf.Timestamp. +const ( + Timestamp_message_name protoreflect.Name = "Timestamp" + Timestamp_message_fullname protoreflect.FullName = "google.protobuf.Timestamp" +) + +// Field names for google.protobuf.Timestamp. +const ( + Timestamp_Seconds_field_name protoreflect.Name = "seconds" + Timestamp_Nanos_field_name protoreflect.Name = "nanos" + + Timestamp_Seconds_field_fullname protoreflect.FullName = "google.protobuf.Timestamp.seconds" + Timestamp_Nanos_field_fullname protoreflect.FullName = "google.protobuf.Timestamp.nanos" +) + +// Field numbers for google.protobuf.Timestamp. +const ( + Timestamp_Seconds_field_number protoreflect.FieldNumber = 1 + Timestamp_Nanos_field_number protoreflect.FieldNumber = 2 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/type_gen.go new file mode 100644 index 0000000000..3bc710138a --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/type_gen.go @@ -0,0 +1,184 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_type_proto = "google/protobuf/type.proto" + +// Full and short names for google.protobuf.Syntax. +const ( + Syntax_enum_fullname = "google.protobuf.Syntax" + Syntax_enum_name = "Syntax" +) + +// Names for google.protobuf.Type. +const ( + Type_message_name protoreflect.Name = "Type" + Type_message_fullname protoreflect.FullName = "google.protobuf.Type" +) + +// Field names for google.protobuf.Type. +const ( + Type_Name_field_name protoreflect.Name = "name" + Type_Fields_field_name protoreflect.Name = "fields" + Type_Oneofs_field_name protoreflect.Name = "oneofs" + Type_Options_field_name protoreflect.Name = "options" + Type_SourceContext_field_name protoreflect.Name = "source_context" + Type_Syntax_field_name protoreflect.Name = "syntax" + + Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" + Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" + Type_Oneofs_field_fullname protoreflect.FullName = "google.protobuf.Type.oneofs" + Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" + Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" + Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" +) + +// Field numbers for google.protobuf.Type. +const ( + Type_Name_field_number protoreflect.FieldNumber = 1 + Type_Fields_field_number protoreflect.FieldNumber = 2 + Type_Oneofs_field_number protoreflect.FieldNumber = 3 + Type_Options_field_number protoreflect.FieldNumber = 4 + Type_SourceContext_field_number protoreflect.FieldNumber = 5 + Type_Syntax_field_number protoreflect.FieldNumber = 6 +) + +// Names for google.protobuf.Field. +const ( + Field_message_name protoreflect.Name = "Field" + Field_message_fullname protoreflect.FullName = "google.protobuf.Field" +) + +// Field names for google.protobuf.Field. +const ( + Field_Kind_field_name protoreflect.Name = "kind" + Field_Cardinality_field_name protoreflect.Name = "cardinality" + Field_Number_field_name protoreflect.Name = "number" + Field_Name_field_name protoreflect.Name = "name" + Field_TypeUrl_field_name protoreflect.Name = "type_url" + Field_OneofIndex_field_name protoreflect.Name = "oneof_index" + Field_Packed_field_name protoreflect.Name = "packed" + Field_Options_field_name protoreflect.Name = "options" + Field_JsonName_field_name protoreflect.Name = "json_name" + Field_DefaultValue_field_name protoreflect.Name = "default_value" + + Field_Kind_field_fullname protoreflect.FullName = "google.protobuf.Field.kind" + Field_Cardinality_field_fullname protoreflect.FullName = "google.protobuf.Field.cardinality" + Field_Number_field_fullname protoreflect.FullName = "google.protobuf.Field.number" + Field_Name_field_fullname protoreflect.FullName = "google.protobuf.Field.name" + Field_TypeUrl_field_fullname protoreflect.FullName = "google.protobuf.Field.type_url" + Field_OneofIndex_field_fullname protoreflect.FullName = "google.protobuf.Field.oneof_index" + Field_Packed_field_fullname protoreflect.FullName = "google.protobuf.Field.packed" + Field_Options_field_fullname protoreflect.FullName = "google.protobuf.Field.options" + Field_JsonName_field_fullname protoreflect.FullName = "google.protobuf.Field.json_name" + Field_DefaultValue_field_fullname protoreflect.FullName = "google.protobuf.Field.default_value" +) + +// Field numbers for google.protobuf.Field. +const ( + Field_Kind_field_number protoreflect.FieldNumber = 1 + Field_Cardinality_field_number protoreflect.FieldNumber = 2 + Field_Number_field_number protoreflect.FieldNumber = 3 + Field_Name_field_number protoreflect.FieldNumber = 4 + Field_TypeUrl_field_number protoreflect.FieldNumber = 6 + Field_OneofIndex_field_number protoreflect.FieldNumber = 7 + Field_Packed_field_number protoreflect.FieldNumber = 8 + Field_Options_field_number protoreflect.FieldNumber = 9 + Field_JsonName_field_number protoreflect.FieldNumber = 10 + Field_DefaultValue_field_number protoreflect.FieldNumber = 11 +) + +// Full and short names for google.protobuf.Field.Kind. +const ( + Field_Kind_enum_fullname = "google.protobuf.Field.Kind" + Field_Kind_enum_name = "Kind" +) + +// Full and short names for google.protobuf.Field.Cardinality. +const ( + Field_Cardinality_enum_fullname = "google.protobuf.Field.Cardinality" + Field_Cardinality_enum_name = "Cardinality" +) + +// Names for google.protobuf.Enum. +const ( + Enum_message_name protoreflect.Name = "Enum" + Enum_message_fullname protoreflect.FullName = "google.protobuf.Enum" +) + +// Field names for google.protobuf.Enum. +const ( + Enum_Name_field_name protoreflect.Name = "name" + Enum_Enumvalue_field_name protoreflect.Name = "enumvalue" + Enum_Options_field_name protoreflect.Name = "options" + Enum_SourceContext_field_name protoreflect.Name = "source_context" + Enum_Syntax_field_name protoreflect.Name = "syntax" + + Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" + Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" + Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" + Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" + Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" +) + +// Field numbers for google.protobuf.Enum. +const ( + Enum_Name_field_number protoreflect.FieldNumber = 1 + Enum_Enumvalue_field_number protoreflect.FieldNumber = 2 + Enum_Options_field_number protoreflect.FieldNumber = 3 + Enum_SourceContext_field_number protoreflect.FieldNumber = 4 + Enum_Syntax_field_number protoreflect.FieldNumber = 5 +) + +// Names for google.protobuf.EnumValue. +const ( + EnumValue_message_name protoreflect.Name = "EnumValue" + EnumValue_message_fullname protoreflect.FullName = "google.protobuf.EnumValue" +) + +// Field names for google.protobuf.EnumValue. +const ( + EnumValue_Name_field_name protoreflect.Name = "name" + EnumValue_Number_field_name protoreflect.Name = "number" + EnumValue_Options_field_name protoreflect.Name = "options" + + EnumValue_Name_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.name" + EnumValue_Number_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.number" + EnumValue_Options_field_fullname protoreflect.FullName = "google.protobuf.EnumValue.options" +) + +// Field numbers for google.protobuf.EnumValue. +const ( + EnumValue_Name_field_number protoreflect.FieldNumber = 1 + EnumValue_Number_field_number protoreflect.FieldNumber = 2 + EnumValue_Options_field_number protoreflect.FieldNumber = 3 +) + +// Names for google.protobuf.Option. +const ( + Option_message_name protoreflect.Name = "Option" + Option_message_fullname protoreflect.FullName = "google.protobuf.Option" +) + +// Field names for google.protobuf.Option. +const ( + Option_Name_field_name protoreflect.Name = "name" + Option_Value_field_name protoreflect.Name = "value" + + Option_Name_field_fullname protoreflect.FullName = "google.protobuf.Option.name" + Option_Value_field_fullname protoreflect.FullName = "google.protobuf.Option.value" +) + +// Field numbers for google.protobuf.Option. +const ( + Option_Name_field_number protoreflect.FieldNumber = 1 + Option_Value_field_number protoreflect.FieldNumber = 2 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers.go new file mode 100644 index 0000000000..429384b85b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers.go @@ -0,0 +1,13 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package genid + +import protoreflect "google.golang.org/protobuf/reflect/protoreflect" + +// Generic field name and number for messages in wrappers.proto. +const ( + WrapperValue_Value_field_name protoreflect.Name = "value" + WrapperValue_Value_field_number protoreflect.FieldNumber = 1 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go new file mode 100644 index 0000000000..72527d2ab0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/wrappers_gen.go @@ -0,0 +1,175 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package genid + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" +) + +const File_google_protobuf_wrappers_proto = "google/protobuf/wrappers.proto" + +// Names for google.protobuf.DoubleValue. +const ( + DoubleValue_message_name protoreflect.Name = "DoubleValue" + DoubleValue_message_fullname protoreflect.FullName = "google.protobuf.DoubleValue" +) + +// Field names for google.protobuf.DoubleValue. +const ( + DoubleValue_Value_field_name protoreflect.Name = "value" + + DoubleValue_Value_field_fullname protoreflect.FullName = "google.protobuf.DoubleValue.value" +) + +// Field numbers for google.protobuf.DoubleValue. +const ( + DoubleValue_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.FloatValue. +const ( + FloatValue_message_name protoreflect.Name = "FloatValue" + FloatValue_message_fullname protoreflect.FullName = "google.protobuf.FloatValue" +) + +// Field names for google.protobuf.FloatValue. +const ( + FloatValue_Value_field_name protoreflect.Name = "value" + + FloatValue_Value_field_fullname protoreflect.FullName = "google.protobuf.FloatValue.value" +) + +// Field numbers for google.protobuf.FloatValue. +const ( + FloatValue_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.Int64Value. +const ( + Int64Value_message_name protoreflect.Name = "Int64Value" + Int64Value_message_fullname protoreflect.FullName = "google.protobuf.Int64Value" +) + +// Field names for google.protobuf.Int64Value. +const ( + Int64Value_Value_field_name protoreflect.Name = "value" + + Int64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int64Value.value" +) + +// Field numbers for google.protobuf.Int64Value. +const ( + Int64Value_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.UInt64Value. +const ( + UInt64Value_message_name protoreflect.Name = "UInt64Value" + UInt64Value_message_fullname protoreflect.FullName = "google.protobuf.UInt64Value" +) + +// Field names for google.protobuf.UInt64Value. +const ( + UInt64Value_Value_field_name protoreflect.Name = "value" + + UInt64Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt64Value.value" +) + +// Field numbers for google.protobuf.UInt64Value. +const ( + UInt64Value_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.Int32Value. +const ( + Int32Value_message_name protoreflect.Name = "Int32Value" + Int32Value_message_fullname protoreflect.FullName = "google.protobuf.Int32Value" +) + +// Field names for google.protobuf.Int32Value. +const ( + Int32Value_Value_field_name protoreflect.Name = "value" + + Int32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.Int32Value.value" +) + +// Field numbers for google.protobuf.Int32Value. +const ( + Int32Value_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.UInt32Value. +const ( + UInt32Value_message_name protoreflect.Name = "UInt32Value" + UInt32Value_message_fullname protoreflect.FullName = "google.protobuf.UInt32Value" +) + +// Field names for google.protobuf.UInt32Value. +const ( + UInt32Value_Value_field_name protoreflect.Name = "value" + + UInt32Value_Value_field_fullname protoreflect.FullName = "google.protobuf.UInt32Value.value" +) + +// Field numbers for google.protobuf.UInt32Value. +const ( + UInt32Value_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.BoolValue. +const ( + BoolValue_message_name protoreflect.Name = "BoolValue" + BoolValue_message_fullname protoreflect.FullName = "google.protobuf.BoolValue" +) + +// Field names for google.protobuf.BoolValue. +const ( + BoolValue_Value_field_name protoreflect.Name = "value" + + BoolValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BoolValue.value" +) + +// Field numbers for google.protobuf.BoolValue. +const ( + BoolValue_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.StringValue. +const ( + StringValue_message_name protoreflect.Name = "StringValue" + StringValue_message_fullname protoreflect.FullName = "google.protobuf.StringValue" +) + +// Field names for google.protobuf.StringValue. +const ( + StringValue_Value_field_name protoreflect.Name = "value" + + StringValue_Value_field_fullname protoreflect.FullName = "google.protobuf.StringValue.value" +) + +// Field numbers for google.protobuf.StringValue. +const ( + StringValue_Value_field_number protoreflect.FieldNumber = 1 +) + +// Names for google.protobuf.BytesValue. +const ( + BytesValue_message_name protoreflect.Name = "BytesValue" + BytesValue_message_fullname protoreflect.FullName = "google.protobuf.BytesValue" +) + +// Field names for google.protobuf.BytesValue. +const ( + BytesValue_Value_field_name protoreflect.Name = "value" + + BytesValue_Value_field_fullname protoreflect.FullName = "google.protobuf.BytesValue.value" +) + +// Field numbers for google.protobuf.BytesValue. +const ( + BytesValue_Value_field_number protoreflect.FieldNumber = 1 +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genname/name.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genname/name.go deleted file mode 100644 index f45509fbdf..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/genname/name.go +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package genname contains constants for generated names. -package genname - -const ( - State = "state" - - SizeCache = "sizeCache" - SizeCacheA = "XXX_sizecache" - - WeakFields = "weakFields" - WeakFieldsA = "XXX_weak" - - UnknownFields = "unknownFields" - UnknownFieldsA = "XXX_unrecognized" - - ExtensionFields = "extensionFields" - ExtensionFieldsA = "XXX_InternalExtensions" - ExtensionFieldsB = "XXX_extensions" - - WeakFieldPrefix = "XXX_weak_" -) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/api_export.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/api_export.go index 4d22c96042..a371f98de1 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/api_export.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/api_export.go @@ -10,26 +10,33 @@ import ( "strconv" "google.golang.org/protobuf/encoding/prototext" + "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/proto" - pref "google.golang.org/protobuf/reflect/protoreflect" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoiface" ) // Export is a zero-length named type that exists only to export a set of // functions that we do not want to appear in godoc. type Export struct{} +// NewError formats a string according to the format specifier and arguments and +// returns an error that has a "proto" prefix. +func (Export) NewError(f string, x ...interface{}) error { + return errors.New(f, x...) +} + // enum is any enum type generated by protoc-gen-go // and must be a named int32 type. type enum = interface{} // EnumOf returns the protoreflect.Enum interface over e. // It returns nil if e is nil. -func (Export) EnumOf(e enum) pref.Enum { +func (Export) EnumOf(e enum) protoreflect.Enum { switch e := e.(type) { case nil: return nil - case pref.Enum: + case protoreflect.Enum: return e default: return legacyWrapEnum(reflect.ValueOf(e)) @@ -38,11 +45,11 @@ func (Export) EnumOf(e enum) pref.Enum { // EnumDescriptorOf returns the protoreflect.EnumDescriptor for e. // It returns nil if e is nil. -func (Export) EnumDescriptorOf(e enum) pref.EnumDescriptor { +func (Export) EnumDescriptorOf(e enum) protoreflect.EnumDescriptor { switch e := e.(type) { case nil: return nil - case pref.Enum: + case protoreflect.Enum: return e.Descriptor() default: return LegacyLoadEnumDesc(reflect.TypeOf(e)) @@ -51,11 +58,11 @@ func (Export) EnumDescriptorOf(e enum) pref.EnumDescriptor { // EnumTypeOf returns the protoreflect.EnumType for e. // It returns nil if e is nil. -func (Export) EnumTypeOf(e enum) pref.EnumType { +func (Export) EnumTypeOf(e enum) protoreflect.EnumType { switch e := e.(type) { case nil: return nil - case pref.Enum: + case protoreflect.Enum: return e.Type() default: return legacyLoadEnumType(reflect.TypeOf(e)) @@ -64,7 +71,7 @@ func (Export) EnumTypeOf(e enum) pref.EnumType { // EnumStringOf returns the enum value as a string, either as the name if // the number is resolvable, or the number formatted as a string. -func (Export) EnumStringOf(ed pref.EnumDescriptor, n pref.EnumNumber) string { +func (Export) EnumStringOf(ed protoreflect.EnumDescriptor, n protoreflect.EnumNumber) string { ev := ed.Values().ByNumber(n) if ev != nil { return string(ev.Name()) @@ -77,7 +84,7 @@ func (Export) EnumStringOf(ed pref.EnumDescriptor, n pref.EnumNumber) string { type message = interface{} // legacyMessageWrapper wraps a v2 message as a v1 message. -type legacyMessageWrapper struct{ m pref.ProtoMessage } +type legacyMessageWrapper struct{ m protoreflect.ProtoMessage } func (m legacyMessageWrapper) Reset() { proto.Reset(m.m) } func (m legacyMessageWrapper) String() string { return Export{}.MessageStringOf(m.m) } @@ -85,30 +92,30 @@ func (m legacyMessageWrapper) ProtoMessage() {} // ProtoMessageV1Of converts either a v1 or v2 message to a v1 message. // It returns nil if m is nil. -func (Export) ProtoMessageV1Of(m message) piface.MessageV1 { +func (Export) ProtoMessageV1Of(m message) protoiface.MessageV1 { switch mv := m.(type) { case nil: return nil - case piface.MessageV1: + case protoiface.MessageV1: return mv case unwrapper: return Export{}.ProtoMessageV1Of(mv.protoUnwrap()) - case pref.ProtoMessage: + case protoreflect.ProtoMessage: return legacyMessageWrapper{mv} default: panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m)) } } -func (Export) protoMessageV2Of(m message) pref.ProtoMessage { +func (Export) protoMessageV2Of(m message) protoreflect.ProtoMessage { switch mv := m.(type) { case nil: return nil - case pref.ProtoMessage: + case protoreflect.ProtoMessage: return mv case legacyMessageWrapper: return mv.m - case piface.MessageV1: + case protoiface.MessageV1: return nil default: panic(fmt.Sprintf("message %T is neither a v1 or v2 Message", m)) @@ -117,7 +124,7 @@ func (Export) protoMessageV2Of(m message) pref.ProtoMessage { // ProtoMessageV2Of converts either a v1 or v2 message to a v2 message. // It returns nil if m is nil. -func (Export) ProtoMessageV2Of(m message) pref.ProtoMessage { +func (Export) ProtoMessageV2Of(m message) protoreflect.ProtoMessage { if m == nil { return nil } @@ -129,7 +136,7 @@ func (Export) ProtoMessageV2Of(m message) pref.ProtoMessage { // MessageOf returns the protoreflect.Message interface over m. // It returns nil if m is nil. -func (Export) MessageOf(m message) pref.Message { +func (Export) MessageOf(m message) protoreflect.Message { if m == nil { return nil } @@ -141,7 +148,7 @@ func (Export) MessageOf(m message) pref.Message { // MessageDescriptorOf returns the protoreflect.MessageDescriptor for m. // It returns nil if m is nil. -func (Export) MessageDescriptorOf(m message) pref.MessageDescriptor { +func (Export) MessageDescriptorOf(m message) protoreflect.MessageDescriptor { if m == nil { return nil } @@ -153,18 +160,18 @@ func (Export) MessageDescriptorOf(m message) pref.MessageDescriptor { // MessageTypeOf returns the protoreflect.MessageType for m. // It returns nil if m is nil. -func (Export) MessageTypeOf(m message) pref.MessageType { +func (Export) MessageTypeOf(m message) protoreflect.MessageType { if m == nil { return nil } if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect().Type() } - return legacyLoadMessageInfo(reflect.TypeOf(m), "") + return legacyLoadMessageType(reflect.TypeOf(m), "") } // MessageStringOf returns the message value as a string, // which is the message serialized in the protobuf text format. -func (Export) MessageStringOf(m pref.ProtoMessage) string { +func (Export) MessageStringOf(m protoreflect.ProtoMessage) string { return prototext.MarshalOptions{Multiline: false}.Format(m) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/checkinit.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/checkinit.go index b82341e575..bff041edc9 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/checkinit.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/checkinit.go @@ -8,18 +8,18 @@ import ( "sync" "google.golang.org/protobuf/internal/errors" - pref "google.golang.org/protobuf/reflect/protoreflect" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoiface" ) -func (mi *MessageInfo) checkInitialized(in piface.CheckInitializedInput) (piface.CheckInitializedOutput, error) { +func (mi *MessageInfo) checkInitialized(in protoiface.CheckInitializedInput) (protoiface.CheckInitializedOutput, error) { var p pointer if ms, ok := in.Message.(*messageState); ok { p = ms.pointer() } else { p = in.Message.(*messageReflectWrapper).pointer() } - return piface.CheckInitializedOutput{}, mi.checkInitializedPointer(p) + return protoiface.CheckInitializedOutput{}, mi.checkInitializedPointer(p) } func (mi *MessageInfo) checkInitializedPointer(p pointer) error { @@ -90,7 +90,7 @@ var ( // needsInitCheck reports whether a message needs to be checked for partial initialization. // // It returns true if the message transitively includes any required or extension fields. -func needsInitCheck(md pref.MessageDescriptor) bool { +func needsInitCheck(md protoreflect.MessageDescriptor) bool { if v, ok := needsInitCheckMap.Load(md); ok { if has, ok := v.(bool); ok { return has @@ -101,7 +101,7 @@ func needsInitCheck(md pref.MessageDescriptor) bool { return needsInitCheckLocked(md) } -func needsInitCheckLocked(md pref.MessageDescriptor) (has bool) { +func needsInitCheckLocked(md protoreflect.MessageDescriptor) (has bool) { if v, ok := needsInitCheckMap.Load(md); ok { // If has is true, we've previously determined that this message // needs init checks. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go index 08d35170b6..e74cefdc50 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_extension.go @@ -10,7 +10,7 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/errors" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) type extensionFieldInfo struct { @@ -23,7 +23,7 @@ type extensionFieldInfo struct { var legacyExtensionFieldInfoCache sync.Map // map[protoreflect.ExtensionType]*extensionFieldInfo -func getExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo { +func getExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { if xi, ok := xt.(*ExtensionInfo); ok { xi.lazyInit() return xi.info @@ -32,7 +32,7 @@ func getExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo { } // legacyLoadExtensionFieldInfo dynamically loads a *ExtensionInfo for xt. -func legacyLoadExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo { +func legacyLoadExtensionFieldInfo(xt protoreflect.ExtensionType) *extensionFieldInfo { if xi, ok := legacyExtensionFieldInfoCache.Load(xt); ok { return xi.(*extensionFieldInfo) } @@ -43,7 +43,7 @@ func legacyLoadExtensionFieldInfo(xt pref.ExtensionType) *extensionFieldInfo { return e } -func makeExtensionFieldInfo(xd pref.ExtensionDescriptor) *extensionFieldInfo { +func makeExtensionFieldInfo(xd protoreflect.ExtensionDescriptor) *extensionFieldInfo { var wiretag uint64 if !xd.IsPacked() { wiretag = protowire.EncodeTag(xd.Number(), wireTypes[xd.Kind()]) @@ -59,10 +59,10 @@ func makeExtensionFieldInfo(xd pref.ExtensionDescriptor) *extensionFieldInfo { // This is true for composite types, where we pass in a message, list, or map to fill in, // and for enums, where we pass in a prototype value to specify the concrete enum type. switch xd.Kind() { - case pref.MessageKind, pref.GroupKind, pref.EnumKind: + case protoreflect.MessageKind, protoreflect.GroupKind, protoreflect.EnumKind: e.unmarshalNeedsValue = true default: - if xd.Cardinality() == pref.Repeated { + if xd.Cardinality() == protoreflect.Repeated { e.unmarshalNeedsValue = true } } @@ -73,21 +73,21 @@ type lazyExtensionValue struct { atomicOnce uint32 // atomically set if value is valid mu sync.Mutex xi *extensionFieldInfo - value pref.Value + value protoreflect.Value b []byte - fn func() pref.Value + fn func() protoreflect.Value } type ExtensionField struct { - typ pref.ExtensionType + typ protoreflect.ExtensionType // value is either the value of GetValue, // or a *lazyExtensionValue that then returns the value of GetValue. - value pref.Value + value protoreflect.Value lazy *lazyExtensionValue } -func (f *ExtensionField) appendLazyBytes(xt pref.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) { +func (f *ExtensionField) appendLazyBytes(xt protoreflect.ExtensionType, xi *extensionFieldInfo, num protowire.Number, wtyp protowire.Type, b []byte) { if f.lazy == nil { f.lazy = &lazyExtensionValue{xi: xi} } @@ -97,7 +97,7 @@ func (f *ExtensionField) appendLazyBytes(xt pref.ExtensionType, xi *extensionFie f.lazy.b = append(f.lazy.b, b...) } -func (f *ExtensionField) canLazy(xt pref.ExtensionType) bool { +func (f *ExtensionField) canLazy(xt protoreflect.ExtensionType) bool { if f.typ == nil { return true } @@ -154,7 +154,7 @@ func (f *ExtensionField) lazyInit() { // Set sets the type and value of the extension field. // This must not be called concurrently. -func (f *ExtensionField) Set(t pref.ExtensionType, v pref.Value) { +func (f *ExtensionField) Set(t protoreflect.ExtensionType, v protoreflect.Value) { f.typ = t f.value = v f.lazy = nil @@ -162,14 +162,14 @@ func (f *ExtensionField) Set(t pref.ExtensionType, v pref.Value) { // SetLazy sets the type and a value that is to be lazily evaluated upon first use. // This must not be called concurrently. -func (f *ExtensionField) SetLazy(t pref.ExtensionType, fn func() pref.Value) { +func (f *ExtensionField) SetLazy(t protoreflect.ExtensionType, fn func() protoreflect.Value) { f.typ = t f.lazy = &lazyExtensionValue{fn: fn} } // Value returns the value of the extension field. // This may be called concurrently. -func (f *ExtensionField) Value() pref.Value { +func (f *ExtensionField) Value() protoreflect.Value { if f.lazy != nil { if atomic.LoadUint32(&f.lazy.atomicOnce) == 0 { f.lazyInit() @@ -181,7 +181,7 @@ func (f *ExtensionField) Value() pref.Value { // Type returns the type of the extension field. // This may be called concurrently. -func (f ExtensionField) Type() pref.ExtensionType { +func (f ExtensionField) Type() protoreflect.ExtensionType { return f.typ } @@ -193,7 +193,7 @@ func (f ExtensionField) IsSet() bool { // IsLazy reports whether a field is lazily encoded. // It is exported for testing. -func IsLazy(m pref.Message, fd pref.FieldDescriptor) bool { +func IsLazy(m protoreflect.Message, fd protoreflect.FieldDescriptor) bool { var mi *MessageInfo var p pointer switch m := m.(type) { @@ -206,7 +206,7 @@ func IsLazy(m pref.Message, fd pref.FieldDescriptor) bool { default: return false } - xd, ok := fd.(pref.ExtensionTypeDescriptor) + xd, ok := fd.(protoreflect.ExtensionTypeDescriptor) if !ok { return false } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_field.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_field.go index c00744d385..3fadd241e1 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_field.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_field.go @@ -10,16 +10,18 @@ import ( "sync" "google.golang.org/protobuf/encoding/protowire" + "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/proto" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/runtime/protoiface" ) type errInvalidUTF8 struct{} func (errInvalidUTF8) Error() string { return "string field contains invalid UTF-8" } func (errInvalidUTF8) InvalidUTF8() bool { return true } +func (errInvalidUTF8) Unwrap() error { return errors.Error } // initOneofFieldCoders initializes the fast-path functions for the fields in a oneof. // @@ -28,7 +30,7 @@ func (errInvalidUTF8) InvalidUTF8() bool { return true } // to the appropriate field-specific function as necessary. // // The unmarshal function is set on each field individually as usual. -func (mi *MessageInfo) initOneofFieldCoders(od pref.OneofDescriptor, si structInfo) { +func (mi *MessageInfo) initOneofFieldCoders(od protoreflect.OneofDescriptor, si structInfo) { fs := si.oneofsByName[od.Name()] ft := fs.Type oneofFields := make(map[reflect.Type]*coderFieldInfo) @@ -116,13 +118,13 @@ func (mi *MessageInfo) initOneofFieldCoders(od pref.OneofDescriptor, si structIn } } -func makeWeakMessageFieldCoder(fd pref.FieldDescriptor) pointerCoderFuncs { +func makeWeakMessageFieldCoder(fd protoreflect.FieldDescriptor) pointerCoderFuncs { var once sync.Once - var messageType pref.MessageType + var messageType protoreflect.MessageType lazyInit := func() { once.Do(func() { messageName := fd.Message().FullName() - messageType, _ = preg.GlobalTypes.FindMessageByName(messageName) + messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName) }) } @@ -188,7 +190,7 @@ func makeWeakMessageFieldCoder(fd pref.FieldDescriptor) pointerCoderFuncs { } } -func makeMessageFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { +func makeMessageFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ size: sizeMessageInfo, @@ -242,7 +244,7 @@ func consumeMessageInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if p.Elem().IsNil() { p.SetPointer(pointerOfValue(reflect.New(f.mi.GoReflectType.Elem()))) @@ -276,9 +278,9 @@ func consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarsh } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ + o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ Buf: v, Message: m.ProtoReflect(), }) @@ -286,27 +288,27 @@ func consumeMessage(b []byte, m proto.Message, wtyp protowire.Type, opts unmarsh return out, err } out.n = n - out.initialized = o.Flags&piface.UnmarshalInitialized != 0 + out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 return out, nil } -func sizeMessageValue(v pref.Value, tagsize int, opts marshalOptions) int { +func sizeMessageValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { m := v.Message().Interface() return sizeMessage(m, tagsize, opts) } -func appendMessageValue(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { +func appendMessageValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { m := v.Message().Interface() return appendMessage(b, m, wiretag, opts) } -func consumeMessageValue(b []byte, v pref.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error) { +func consumeMessageValue(b []byte, v protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) { m := v.Message().Interface() out, err := consumeMessage(b, m, wtyp, opts) return v, out, err } -func isInitMessageValue(v pref.Value) error { +func isInitMessageValue(v protoreflect.Value) error { m := v.Message().Interface() return proto.CheckInitialized(m) } @@ -319,17 +321,17 @@ var coderMessageValue = valueCoderFuncs{ merge: mergeMessageValue, } -func sizeGroupValue(v pref.Value, tagsize int, opts marshalOptions) int { +func sizeGroupValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { m := v.Message().Interface() return sizeGroup(m, tagsize, opts) } -func appendGroupValue(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { +func appendGroupValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { m := v.Message().Interface() return appendGroup(b, m, wiretag, opts) } -func consumeGroupValue(b []byte, v pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error) { +func consumeGroupValue(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) { m := v.Message().Interface() out, err := consumeGroup(b, m, num, wtyp, opts) return v, out, err @@ -343,7 +345,7 @@ var coderGroupValue = valueCoderFuncs{ merge: mergeMessageValue, } -func makeGroupFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { +func makeGroupFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { num := fd.Number() if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ @@ -420,9 +422,9 @@ func consumeGroup(b []byte, m proto.Message, num protowire.Number, wtyp protowir } b, n := protowire.ConsumeGroup(num, b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ + o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ Buf: b, Message: m.ProtoReflect(), }) @@ -430,11 +432,11 @@ func consumeGroup(b []byte, m proto.Message, num protowire.Number, wtyp protowir return out, err } out.n = n - out.initialized = o.Flags&piface.UnmarshalInitialized != 0 + out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 return out, nil } -func makeMessageSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { +func makeMessageSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ size: sizeMessageSliceInfo, @@ -494,7 +496,7 @@ func consumeMessageSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderF } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } m := reflect.New(f.mi.GoReflectType.Elem()).Interface() mp := pointerOfIface(m) @@ -550,10 +552,10 @@ func consumeMessageSlice(b []byte, p pointer, goType reflect.Type, wtyp protowir } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } mp := reflect.New(goType.Elem()) - o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ + o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ Buf: v, Message: asMessage(mp).ProtoReflect(), }) @@ -562,7 +564,7 @@ func consumeMessageSlice(b []byte, p pointer, goType reflect.Type, wtyp protowir } p.AppendPointerSlice(pointerOfValue(mp)) out.n = n - out.initialized = o.Flags&piface.UnmarshalInitialized != 0 + out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 return out, nil } @@ -579,7 +581,7 @@ func isInitMessageSlice(p pointer, goType reflect.Type) error { // Slices of messages -func sizeMessageSliceValue(listv pref.Value, tagsize int, opts marshalOptions) int { +func sizeMessageSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { @@ -589,7 +591,7 @@ func sizeMessageSliceValue(listv pref.Value, tagsize int, opts marshalOptions) i return n } -func appendMessageSliceValue(b []byte, listv pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { +func appendMessageSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() mopts := opts.Options() for i, llen := 0, list.Len(); i < llen; i++ { @@ -606,30 +608,30 @@ func appendMessageSliceValue(b []byte, listv pref.Value, wiretag uint64, opts ma return b, nil } -func consumeMessageSliceValue(b []byte, listv pref.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ pref.Value, out unmarshalOutput, err error) { +func consumeMessageSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.BytesType { - return pref.Value{}, out, errUnknown + return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return pref.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } m := list.NewElement() - o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ + o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ Buf: v, Message: m.Message(), }) if err != nil { - return pref.Value{}, out, err + return protoreflect.Value{}, out, err } list.Append(m) out.n = n - out.initialized = o.Flags&piface.UnmarshalInitialized != 0 + out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 return listv, out, nil } -func isInitMessageSliceValue(listv pref.Value) error { +func isInitMessageSliceValue(listv protoreflect.Value) error { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { m := list.Get(i).Message().Interface() @@ -648,7 +650,7 @@ var coderMessageSliceValue = valueCoderFuncs{ merge: mergeMessageListValue, } -func sizeGroupSliceValue(listv pref.Value, tagsize int, opts marshalOptions) int { +func sizeGroupSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) int { list := listv.List() n := 0 for i, llen := 0, list.Len(); i < llen; i++ { @@ -658,7 +660,7 @@ func sizeGroupSliceValue(listv pref.Value, tagsize int, opts marshalOptions) int return n } -func appendGroupSliceValue(b []byte, listv pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { +func appendGroupSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() mopts := opts.Options() for i, llen := 0, list.Len(); i < llen; i++ { @@ -674,26 +676,26 @@ func appendGroupSliceValue(b []byte, listv pref.Value, wiretag uint64, opts mars return b, nil } -func consumeGroupSliceValue(b []byte, listv pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ pref.Value, out unmarshalOutput, err error) { +func consumeGroupSliceValue(b []byte, listv protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.StartGroupType { - return pref.Value{}, out, errUnknown + return protoreflect.Value{}, out, errUnknown } b, n := protowire.ConsumeGroup(num, b) if n < 0 { - return pref.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } m := list.NewElement() - o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ + o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ Buf: b, Message: m.Message(), }) if err != nil { - return pref.Value{}, out, err + return protoreflect.Value{}, out, err } list.Append(m) out.n = n - out.initialized = o.Flags&piface.UnmarshalInitialized != 0 + out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 return listv, out, nil } @@ -705,7 +707,7 @@ var coderGroupSliceValue = valueCoderFuncs{ merge: mergeMessageListValue, } -func makeGroupSliceFieldCoder(fd pref.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { +func makeGroupSliceFieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) pointerCoderFuncs { num := fd.Number() if mi := getMessageInfo(ft); mi != nil { funcs := pointerCoderFuncs{ @@ -767,10 +769,10 @@ func consumeGroupSlice(b []byte, p pointer, num protowire.Number, wtyp protowire } b, n := protowire.ConsumeGroup(num, b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } mp := reflect.New(goType.Elem()) - o, err := opts.Options().UnmarshalState(piface.UnmarshalInput{ + o, err := opts.Options().UnmarshalState(protoiface.UnmarshalInput{ Buf: b, Message: asMessage(mp).ProtoReflect(), }) @@ -779,7 +781,7 @@ func consumeGroupSlice(b []byte, p pointer, num protowire.Number, wtyp protowire } p.AppendPointerSlice(pointerOfValue(mp)) out.n = n - out.initialized = o.Flags&piface.UnmarshalInitialized != 0 + out.initialized = o.Flags&protoiface.UnmarshalInitialized != 0 return out, nil } @@ -820,8 +822,8 @@ func consumeGroupSliceInfo(b []byte, p pointer, wtyp protowire.Type, f *coderFie return out, nil } -func asMessage(v reflect.Value) pref.ProtoMessage { - if m, ok := v.Interface().(pref.ProtoMessage); ok { +func asMessage(v reflect.Value) protoreflect.ProtoMessage { + if m, ok := v.Interface().(protoreflect.ProtoMessage); ok { return m } return legacyWrapMessage(v).Interface() diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go index ff198d0a15..1a509b63eb 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_gen.go @@ -15,13 +15,13 @@ import ( ) // sizeBool returns the size of wire encoding a bool pointer as a Bool. -func sizeBool(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBool(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bool() return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) } // appendBool wire encodes a bool pointer as a Bool. -func appendBool(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBool(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bool() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v)) @@ -29,7 +29,7 @@ func appendBool(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byt } // consumeBool wire decodes a bool pointer as a Bool. -func consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -45,7 +45,7 @@ func consumeBool(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Bool() = protowire.DecodeBool(v) out.n = n @@ -61,7 +61,7 @@ var coderBool = pointerCoderFuncs{ // sizeBoolNoZero returns the size of wire encoding a bool pointer as a Bool. // The zero value is not encoded. -func sizeBoolNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBoolNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bool() if v == false { return 0 @@ -71,7 +71,7 @@ func sizeBoolNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { // appendBoolNoZero wire encodes a bool pointer as a Bool. // The zero value is not encoded. -func appendBoolNoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBoolNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bool() if v == false { return b, nil @@ -90,14 +90,14 @@ var coderBoolNoZero = pointerCoderFuncs{ // sizeBoolPtr returns the size of wire encoding a *bool pointer as a Bool. // It panics if the pointer is nil. -func sizeBoolPtr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBoolPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.BoolPtr() return f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) } // appendBoolPtr wire encodes a *bool pointer as a Bool. // It panics if the pointer is nil. -func appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.BoolPtr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v)) @@ -105,7 +105,7 @@ func appendBoolPtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([] } // consumeBoolPtr wire decodes a *bool pointer as a Bool. -func consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -121,7 +121,7 @@ func consumeBoolPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.BoolPtr() if *vp == nil { @@ -140,7 +140,7 @@ var coderBoolPtr = pointerCoderFuncs{ } // sizeBoolSlice returns the size of wire encoding a []bool pointer as a repeated Bool. -func sizeBoolSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBoolSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.BoolSlice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(protowire.EncodeBool(v)) @@ -149,7 +149,7 @@ func sizeBoolSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { } // appendBoolSlice encodes a []bool pointer as a repeated Bool. -func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BoolSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -159,13 +159,13 @@ func appendBoolSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeBoolSlice wire decodes a []bool pointer as a repeated Bool. -func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.BoolSlice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -180,7 +180,7 @@ func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, protowire.DecodeBool(v)) b = b[n:] @@ -204,7 +204,7 @@ func consumeBoolSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, protowire.DecodeBool(v)) out.n = n @@ -219,7 +219,7 @@ var coderBoolSlice = pointerCoderFuncs{ } // sizeBoolPackedSlice returns the size of wire encoding a []bool pointer as a packed repeated Bool. -func sizeBoolPackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBoolPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.BoolSlice() if len(s) == 0 { return 0 @@ -232,7 +232,7 @@ func sizeBoolPackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size i } // appendBoolPackedSlice encodes a []bool pointer as a packed repeated Bool. -func appendBoolPackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBoolPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BoolSlice() if len(s) == 0 { return b, nil @@ -257,19 +257,19 @@ var coderBoolPackedSlice = pointerCoderFuncs{ } // sizeBoolValue returns the size of wire encoding a bool value as a Bool. -func sizeBoolValue(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeBoolValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(protowire.EncodeBool(v.Bool())) } // appendBoolValue encodes a bool value as a Bool. -func appendBoolValue(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendBoolValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeBool(v.Bool())) return b, nil } // consumeBoolValue decodes a bool value as a Bool. -func consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -285,7 +285,7 @@ func consumeBoolValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp p v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfBool(protowire.DecodeBool(v)), out, nil @@ -299,7 +299,7 @@ var coderBoolValue = valueCoderFuncs{ } // sizeBoolSliceValue returns the size of wire encoding a []bool value as a repeated Bool. -func sizeBoolSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeBoolSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -309,7 +309,7 @@ func sizeBoolSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) } // appendBoolSliceValue encodes a []bool value as a repeated Bool. -func appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -320,12 +320,12 @@ func appendBoolSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ } // consumeBoolSliceValue wire decodes a []bool value as a repeated Bool. -func consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -340,7 +340,7 @@ func consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Numbe v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) b = b[n:] @@ -363,7 +363,7 @@ func consumeBoolSliceValue(b []byte, listv protoreflect.Value, _ protowire.Numbe v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) out.n = n @@ -378,7 +378,7 @@ var coderBoolSliceValue = valueCoderFuncs{ } // sizeBoolPackedSliceValue returns the size of wire encoding a []bool value as a packed repeated Bool. -func sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -393,7 +393,7 @@ func sizeBoolPackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOp } // appendBoolPackedSliceValue encodes a []bool value as a packed repeated Bool. -func appendBoolPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendBoolPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -421,19 +421,19 @@ var coderBoolPackedSliceValue = valueCoderFuncs{ } // sizeEnumValue returns the size of wire encoding a value as a Enum. -func sizeEnumValue(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeEnumValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(v.Enum())) } // appendEnumValue encodes a value as a Enum. -func appendEnumValue(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendEnumValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(v.Enum())) return b, nil } // consumeEnumValue decodes a value as a Enum. -func consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -449,7 +449,7 @@ func consumeEnumValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp p v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), out, nil @@ -463,7 +463,7 @@ var coderEnumValue = valueCoderFuncs{ } // sizeEnumSliceValue returns the size of wire encoding a [] value as a repeated Enum. -func sizeEnumSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeEnumSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -473,7 +473,7 @@ func sizeEnumSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) } // appendEnumSliceValue encodes a [] value as a repeated Enum. -func appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -484,12 +484,12 @@ func appendEnumSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ } // consumeEnumSliceValue wire decodes a [] value as a repeated Enum. -func consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -504,7 +504,7 @@ func consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Numbe v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) b = b[n:] @@ -527,7 +527,7 @@ func consumeEnumSliceValue(b []byte, listv protoreflect.Value, _ protowire.Numbe v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) out.n = n @@ -542,7 +542,7 @@ var coderEnumSliceValue = valueCoderFuncs{ } // sizeEnumPackedSliceValue returns the size of wire encoding a [] value as a packed repeated Enum. -func sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -557,7 +557,7 @@ func sizeEnumPackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOp } // appendEnumPackedSliceValue encodes a [] value as a packed repeated Enum. -func appendEnumPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendEnumPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -585,13 +585,13 @@ var coderEnumPackedSliceValue = valueCoderFuncs{ } // sizeInt32 returns the size of wire encoding a int32 pointer as a Int32. -func sizeInt32(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt32 wire encodes a int32 pointer as a Int32. -func appendInt32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) @@ -599,7 +599,7 @@ func appendInt32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]by } // consumeInt32 wire decodes a int32 pointer as a Int32. -func consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -615,7 +615,7 @@ func consumeInt32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Int32() = int32(v) out.n = n @@ -631,7 +631,7 @@ var coderInt32 = pointerCoderFuncs{ // sizeInt32NoZero returns the size of wire encoding a int32 pointer as a Int32. // The zero value is not encoded. -func sizeInt32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() if v == 0 { return 0 @@ -641,7 +641,7 @@ func sizeInt32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendInt32NoZero wire encodes a int32 pointer as a Int32. // The zero value is not encoded. -func appendInt32NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() if v == 0 { return b, nil @@ -660,14 +660,14 @@ var coderInt32NoZero = pointerCoderFuncs{ // sizeInt32Ptr returns the size of wire encoding a *int32 pointer as a Int32. // It panics if the pointer is nil. -func sizeInt32Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int32Ptr() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt32Ptr wire encodes a *int32 pointer as a Int32. // It panics if the pointer is nil. -func appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) @@ -675,7 +675,7 @@ func appendInt32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([ } // consumeInt32Ptr wire decodes a *int32 pointer as a Int32. -func consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -691,7 +691,7 @@ func consumeInt32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Int32Ptr() if *vp == nil { @@ -710,7 +710,7 @@ var coderInt32Ptr = pointerCoderFuncs{ } // sizeInt32Slice returns the size of wire encoding a []int32 pointer as a repeated Int32. -func sizeInt32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(uint64(v)) @@ -719,7 +719,7 @@ func sizeInt32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { } // appendInt32Slice encodes a []int32 pointer as a repeated Int32. -func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -729,13 +729,13 @@ func appendInt32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeInt32Slice wire decodes a []int32 pointer as a repeated Int32. -func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -750,7 +750,7 @@ func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldIn v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, int32(v)) b = b[n:] @@ -774,7 +774,7 @@ func consumeInt32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldIn v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, int32(v)) out.n = n @@ -789,7 +789,7 @@ var coderInt32Slice = pointerCoderFuncs{ } // sizeInt32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Int32. -func sizeInt32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() if len(s) == 0 { return 0 @@ -802,7 +802,7 @@ func sizeInt32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendInt32PackedSlice encodes a []int32 pointer as a packed repeated Int32. -func appendInt32PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() if len(s) == 0 { return b, nil @@ -827,19 +827,19 @@ var coderInt32PackedSlice = pointerCoderFuncs{ } // sizeInt32Value returns the size of wire encoding a int32 value as a Int32. -func sizeInt32Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeInt32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(int32(v.Int()))) } // appendInt32Value encodes a int32 value as a Int32. -func appendInt32Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendInt32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(int32(v.Int()))) return b, nil } // consumeInt32Value decodes a int32 value as a Int32. -func consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -855,7 +855,7 @@ func consumeInt32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt32(int32(v)), out, nil @@ -869,7 +869,7 @@ var coderInt32Value = valueCoderFuncs{ } // sizeInt32SliceValue returns the size of wire encoding a []int32 value as a repeated Int32. -func sizeInt32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeInt32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -879,7 +879,7 @@ func sizeInt32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions } // appendInt32SliceValue encodes a []int32 value as a repeated Int32. -func appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -890,12 +890,12 @@ func appendInt32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ } // consumeInt32SliceValue wire decodes a []int32 value as a repeated Int32. -func consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -910,7 +910,7 @@ func consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Numb v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) b = b[n:] @@ -933,7 +933,7 @@ func consumeInt32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Numb v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) out.n = n @@ -948,7 +948,7 @@ var coderInt32SliceValue = valueCoderFuncs{ } // sizeInt32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Int32. -func sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -963,7 +963,7 @@ func sizeInt32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalO } // appendInt32PackedSliceValue encodes a []int32 value as a packed repeated Int32. -func appendInt32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendInt32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -991,13 +991,13 @@ var coderInt32PackedSliceValue = valueCoderFuncs{ } // sizeSint32 returns the size of wire encoding a int32 pointer as a Sint32. -func sizeSint32(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } // appendSint32 wire encodes a int32 pointer as a Sint32. -func appendSint32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) @@ -1005,7 +1005,7 @@ func appendSint32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]b } // consumeSint32 wire decodes a int32 pointer as a Sint32. -func consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -1021,7 +1021,7 @@ func consumeSint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Int32() = int32(protowire.DecodeZigZag(v & math.MaxUint32)) out.n = n @@ -1037,7 +1037,7 @@ var coderSint32 = pointerCoderFuncs{ // sizeSint32NoZero returns the size of wire encoding a int32 pointer as a Sint32. // The zero value is not encoded. -func sizeSint32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() if v == 0 { return 0 @@ -1047,7 +1047,7 @@ func sizeSint32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendSint32NoZero wire encodes a int32 pointer as a Sint32. // The zero value is not encoded. -func appendSint32NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() if v == 0 { return b, nil @@ -1066,14 +1066,14 @@ var coderSint32NoZero = pointerCoderFuncs{ // sizeSint32Ptr returns the size of wire encoding a *int32 pointer as a Sint32. // It panics if the pointer is nil. -func sizeSint32Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int32Ptr() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) } // appendSint32Ptr wire encodes a *int32 pointer as a Sint32. // It panics if the pointer is nil. -func appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(v))) @@ -1081,7 +1081,7 @@ func appendSint32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeSint32Ptr wire decodes a *int32 pointer as a Sint32. -func consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -1097,7 +1097,7 @@ func consumeSint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Int32Ptr() if *vp == nil { @@ -1116,7 +1116,7 @@ var coderSint32Ptr = pointerCoderFuncs{ } // sizeSint32Slice returns the size of wire encoding a []int32 pointer as a repeated Sint32. -func sizeSint32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(v))) @@ -1125,7 +1125,7 @@ func sizeSint32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) } // appendSint32Slice encodes a []int32 pointer as a repeated Sint32. -func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -1135,13 +1135,13 @@ func appendSint32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeSint32Slice wire decodes a []int32 pointer as a repeated Sint32. -func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -1156,7 +1156,7 @@ func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, int32(protowire.DecodeZigZag(v&math.MaxUint32))) b = b[n:] @@ -1180,7 +1180,7 @@ func consumeSint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, int32(protowire.DecodeZigZag(v&math.MaxUint32))) out.n = n @@ -1195,7 +1195,7 @@ var coderSint32Slice = pointerCoderFuncs{ } // sizeSint32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sint32. -func sizeSint32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() if len(s) == 0 { return 0 @@ -1208,7 +1208,7 @@ func sizeSint32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendSint32PackedSlice encodes a []int32 pointer as a packed repeated Sint32. -func appendSint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() if len(s) == 0 { return b, nil @@ -1233,19 +1233,19 @@ var coderSint32PackedSlice = pointerCoderFuncs{ } // sizeSint32Value returns the size of wire encoding a int32 value as a Sint32. -func sizeSint32Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeSint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(protowire.EncodeZigZag(int64(int32(v.Int())))) } // appendSint32Value encodes a int32 value as a Sint32. -func appendSint32Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(int64(int32(v.Int())))) return b, nil } // consumeSint32Value decodes a int32 value as a Sint32. -func consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -1261,7 +1261,7 @@ func consumeSint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), out, nil @@ -1275,7 +1275,7 @@ var coderSint32Value = valueCoderFuncs{ } // sizeSint32SliceValue returns the size of wire encoding a []int32 value as a repeated Sint32. -func sizeSint32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -1285,7 +1285,7 @@ func sizeSint32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOption } // appendSint32SliceValue encodes a []int32 value as a repeated Sint32. -func appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -1296,12 +1296,12 @@ func appendSint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeSint32SliceValue wire decodes a []int32 value as a repeated Sint32. -func consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -1316,7 +1316,7 @@ func consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) b = b[n:] @@ -1339,7 +1339,7 @@ func consumeSint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) out.n = n @@ -1354,7 +1354,7 @@ var coderSint32SliceValue = valueCoderFuncs{ } // sizeSint32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sint32. -func sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -1369,7 +1369,7 @@ func sizeSint32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshal } // appendSint32PackedSliceValue encodes a []int32 value as a packed repeated Sint32. -func appendSint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -1397,13 +1397,13 @@ var coderSint32PackedSliceValue = valueCoderFuncs{ } // sizeUint32 returns the size of wire encoding a uint32 pointer as a Uint32. -func sizeUint32(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint32() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendUint32 wire encodes a uint32 pointer as a Uint32. -func appendUint32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) @@ -1411,7 +1411,7 @@ func appendUint32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]b } // consumeUint32 wire decodes a uint32 pointer as a Uint32. -func consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -1427,7 +1427,7 @@ func consumeUint32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Uint32() = uint32(v) out.n = n @@ -1443,7 +1443,7 @@ var coderUint32 = pointerCoderFuncs{ // sizeUint32NoZero returns the size of wire encoding a uint32 pointer as a Uint32. // The zero value is not encoded. -func sizeUint32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint32() if v == 0 { return 0 @@ -1453,7 +1453,7 @@ func sizeUint32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendUint32NoZero wire encodes a uint32 pointer as a Uint32. // The zero value is not encoded. -func appendUint32NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() if v == 0 { return b, nil @@ -1472,14 +1472,14 @@ var coderUint32NoZero = pointerCoderFuncs{ // sizeUint32Ptr returns the size of wire encoding a *uint32 pointer as a Uint32. // It panics if the pointer is nil. -func sizeUint32Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Uint32Ptr() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendUint32Ptr wire encodes a *uint32 pointer as a Uint32. // It panics if the pointer is nil. -func appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) @@ -1487,7 +1487,7 @@ func appendUint32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeUint32Ptr wire decodes a *uint32 pointer as a Uint32. -func consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -1503,7 +1503,7 @@ func consumeUint32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Uint32Ptr() if *vp == nil { @@ -1522,7 +1522,7 @@ var coderUint32Ptr = pointerCoderFuncs{ } // sizeUint32Slice returns the size of wire encoding a []uint32 pointer as a repeated Uint32. -func sizeUint32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(uint64(v)) @@ -1531,7 +1531,7 @@ func sizeUint32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) } // appendUint32Slice encodes a []uint32 pointer as a repeated Uint32. -func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -1541,13 +1541,13 @@ func appendUint32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeUint32Slice wire decodes a []uint32 pointer as a repeated Uint32. -func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -1562,7 +1562,7 @@ func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, uint32(v)) b = b[n:] @@ -1586,7 +1586,7 @@ func consumeUint32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, uint32(v)) out.n = n @@ -1601,7 +1601,7 @@ var coderUint32Slice = pointerCoderFuncs{ } // sizeUint32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Uint32. -func sizeUint32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() if len(s) == 0 { return 0 @@ -1614,7 +1614,7 @@ func sizeUint32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendUint32PackedSlice encodes a []uint32 pointer as a packed repeated Uint32. -func appendUint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() if len(s) == 0 { return b, nil @@ -1639,19 +1639,19 @@ var coderUint32PackedSlice = pointerCoderFuncs{ } // sizeUint32Value returns the size of wire encoding a uint32 value as a Uint32. -func sizeUint32Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeUint32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(uint32(v.Uint()))) } // appendUint32Value encodes a uint32 value as a Uint32. -func appendUint32Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendUint32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(uint32(v.Uint()))) return b, nil } // consumeUint32Value decodes a uint32 value as a Uint32. -func consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -1667,7 +1667,7 @@ func consumeUint32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint32(uint32(v)), out, nil @@ -1681,7 +1681,7 @@ var coderUint32Value = valueCoderFuncs{ } // sizeUint32SliceValue returns the size of wire encoding a []uint32 value as a repeated Uint32. -func sizeUint32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeUint32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -1691,7 +1691,7 @@ func sizeUint32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOption } // appendUint32SliceValue encodes a []uint32 value as a repeated Uint32. -func appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -1702,12 +1702,12 @@ func appendUint32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeUint32SliceValue wire decodes a []uint32 value as a repeated Uint32. -func consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -1722,7 +1722,7 @@ func consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) b = b[n:] @@ -1745,7 +1745,7 @@ func consumeUint32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) out.n = n @@ -1760,7 +1760,7 @@ var coderUint32SliceValue = valueCoderFuncs{ } // sizeUint32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Uint32. -func sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -1775,7 +1775,7 @@ func sizeUint32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshal } // appendUint32PackedSliceValue encodes a []uint32 value as a packed repeated Uint32. -func appendUint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendUint32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -1803,13 +1803,13 @@ var coderUint32PackedSliceValue = valueCoderFuncs{ } // sizeInt64 returns the size of wire encoding a int64 pointer as a Int64. -func sizeInt64(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt64 wire encodes a int64 pointer as a Int64. -func appendInt64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) @@ -1817,7 +1817,7 @@ func appendInt64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]by } // consumeInt64 wire decodes a int64 pointer as a Int64. -func consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -1833,7 +1833,7 @@ func consumeInt64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Int64() = int64(v) out.n = n @@ -1849,7 +1849,7 @@ var coderInt64 = pointerCoderFuncs{ // sizeInt64NoZero returns the size of wire encoding a int64 pointer as a Int64. // The zero value is not encoded. -func sizeInt64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() if v == 0 { return 0 @@ -1859,7 +1859,7 @@ func sizeInt64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendInt64NoZero wire encodes a int64 pointer as a Int64. // The zero value is not encoded. -func appendInt64NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() if v == 0 { return b, nil @@ -1878,14 +1878,14 @@ var coderInt64NoZero = pointerCoderFuncs{ // sizeInt64Ptr returns the size of wire encoding a *int64 pointer as a Int64. // It panics if the pointer is nil. -func sizeInt64Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int64Ptr() return f.tagsize + protowire.SizeVarint(uint64(v)) } // appendInt64Ptr wire encodes a *int64 pointer as a Int64. // It panics if the pointer is nil. -func appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, uint64(v)) @@ -1893,7 +1893,7 @@ func appendInt64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([ } // consumeInt64Ptr wire decodes a *int64 pointer as a Int64. -func consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -1909,7 +1909,7 @@ func consumeInt64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Int64Ptr() if *vp == nil { @@ -1928,7 +1928,7 @@ var coderInt64Ptr = pointerCoderFuncs{ } // sizeInt64Slice returns the size of wire encoding a []int64 pointer as a repeated Int64. -func sizeInt64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(uint64(v)) @@ -1937,7 +1937,7 @@ func sizeInt64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { } // appendInt64Slice encodes a []int64 pointer as a repeated Int64. -func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -1947,13 +1947,13 @@ func appendInt64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeInt64Slice wire decodes a []int64 pointer as a repeated Int64. -func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -1968,7 +1968,7 @@ func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldIn v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, int64(v)) b = b[n:] @@ -1992,7 +1992,7 @@ func consumeInt64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldIn v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, int64(v)) out.n = n @@ -2007,7 +2007,7 @@ var coderInt64Slice = pointerCoderFuncs{ } // sizeInt64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Int64. -func sizeInt64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeInt64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() if len(s) == 0 { return 0 @@ -2020,7 +2020,7 @@ func sizeInt64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendInt64PackedSlice encodes a []int64 pointer as a packed repeated Int64. -func appendInt64PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendInt64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() if len(s) == 0 { return b, nil @@ -2045,19 +2045,19 @@ var coderInt64PackedSlice = pointerCoderFuncs{ } // sizeInt64Value returns the size of wire encoding a int64 value as a Int64. -func sizeInt64Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeInt64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(uint64(v.Int())) } // appendInt64Value encodes a int64 value as a Int64. -func appendInt64Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendInt64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, uint64(v.Int())) return b, nil } // consumeInt64Value decodes a int64 value as a Int64. -func consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -2073,7 +2073,7 @@ func consumeInt64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt64(int64(v)), out, nil @@ -2087,7 +2087,7 @@ var coderInt64Value = valueCoderFuncs{ } // sizeInt64SliceValue returns the size of wire encoding a []int64 value as a repeated Int64. -func sizeInt64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeInt64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -2097,7 +2097,7 @@ func sizeInt64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions } // appendInt64SliceValue encodes a []int64 value as a repeated Int64. -func appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -2108,12 +2108,12 @@ func appendInt64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ } // consumeInt64SliceValue wire decodes a []int64 value as a repeated Int64. -func consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -2128,7 +2128,7 @@ func consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Numb v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) b = b[n:] @@ -2151,7 +2151,7 @@ func consumeInt64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Numb v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) out.n = n @@ -2166,7 +2166,7 @@ var coderInt64SliceValue = valueCoderFuncs{ } // sizeInt64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Int64. -func sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -2181,7 +2181,7 @@ func sizeInt64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalO } // appendInt64PackedSliceValue encodes a []int64 value as a packed repeated Int64. -func appendInt64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendInt64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -2209,13 +2209,13 @@ var coderInt64PackedSliceValue = valueCoderFuncs{ } // sizeSint64 returns the size of wire encoding a int64 pointer as a Sint64. -func sizeSint64(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) } // appendSint64 wire encodes a int64 pointer as a Sint64. -func appendSint64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) @@ -2223,7 +2223,7 @@ func appendSint64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]b } // consumeSint64 wire decodes a int64 pointer as a Sint64. -func consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -2239,7 +2239,7 @@ func consumeSint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Int64() = protowire.DecodeZigZag(v) out.n = n @@ -2255,7 +2255,7 @@ var coderSint64 = pointerCoderFuncs{ // sizeSint64NoZero returns the size of wire encoding a int64 pointer as a Sint64. // The zero value is not encoded. -func sizeSint64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() if v == 0 { return 0 @@ -2265,7 +2265,7 @@ func sizeSint64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendSint64NoZero wire encodes a int64 pointer as a Sint64. // The zero value is not encoded. -func appendSint64NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() if v == 0 { return b, nil @@ -2284,14 +2284,14 @@ var coderSint64NoZero = pointerCoderFuncs{ // sizeSint64Ptr returns the size of wire encoding a *int64 pointer as a Sint64. // It panics if the pointer is nil. -func sizeSint64Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Int64Ptr() return f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) } // appendSint64Ptr wire encodes a *int64 pointer as a Sint64. // It panics if the pointer is nil. -func appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v)) @@ -2299,7 +2299,7 @@ func appendSint64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeSint64Ptr wire decodes a *int64 pointer as a Sint64. -func consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -2315,7 +2315,7 @@ func consumeSint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Int64Ptr() if *vp == nil { @@ -2334,7 +2334,7 @@ var coderSint64Ptr = pointerCoderFuncs{ } // sizeSint64Slice returns the size of wire encoding a []int64 pointer as a repeated Sint64. -func sizeSint64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v)) @@ -2343,7 +2343,7 @@ func sizeSint64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) } // appendSint64Slice encodes a []int64 pointer as a repeated Sint64. -func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -2353,13 +2353,13 @@ func appendSint64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeSint64Slice wire decodes a []int64 pointer as a repeated Sint64. -func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -2374,7 +2374,7 @@ func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, protowire.DecodeZigZag(v)) b = b[n:] @@ -2398,7 +2398,7 @@ func consumeSint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, protowire.DecodeZigZag(v)) out.n = n @@ -2413,7 +2413,7 @@ var coderSint64Slice = pointerCoderFuncs{ } // sizeSint64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sint64. -func sizeSint64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() if len(s) == 0 { return 0 @@ -2426,7 +2426,7 @@ func sizeSint64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendSint64PackedSlice encodes a []int64 pointer as a packed repeated Sint64. -func appendSint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() if len(s) == 0 { return b, nil @@ -2451,19 +2451,19 @@ var coderSint64PackedSlice = pointerCoderFuncs{ } // sizeSint64Value returns the size of wire encoding a int64 value as a Sint64. -func sizeSint64Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeSint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(protowire.EncodeZigZag(v.Int())) } // appendSint64Value encodes a int64 value as a Sint64. -func appendSint64Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, protowire.EncodeZigZag(v.Int())) return b, nil } // consumeSint64Value decodes a int64 value as a Sint64. -func consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -2479,7 +2479,7 @@ func consumeSint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), out, nil @@ -2493,7 +2493,7 @@ var coderSint64Value = valueCoderFuncs{ } // sizeSint64SliceValue returns the size of wire encoding a []int64 value as a repeated Sint64. -func sizeSint64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -2503,7 +2503,7 @@ func sizeSint64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOption } // appendSint64SliceValue encodes a []int64 value as a repeated Sint64. -func appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -2514,12 +2514,12 @@ func appendSint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeSint64SliceValue wire decodes a []int64 value as a repeated Sint64. -func consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -2534,7 +2534,7 @@ func consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) b = b[n:] @@ -2557,7 +2557,7 @@ func consumeSint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) out.n = n @@ -2572,7 +2572,7 @@ var coderSint64SliceValue = valueCoderFuncs{ } // sizeSint64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sint64. -func sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -2587,7 +2587,7 @@ func sizeSint64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshal } // appendSint64PackedSliceValue encodes a []int64 value as a packed repeated Sint64. -func appendSint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -2615,13 +2615,13 @@ var coderSint64PackedSliceValue = valueCoderFuncs{ } // sizeUint64 returns the size of wire encoding a uint64 pointer as a Uint64. -func sizeUint64(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint64() return f.tagsize + protowire.SizeVarint(v) } // appendUint64 wire encodes a uint64 pointer as a Uint64. -func appendUint64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, v) @@ -2629,7 +2629,7 @@ func appendUint64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]b } // consumeUint64 wire decodes a uint64 pointer as a Uint64. -func consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -2645,7 +2645,7 @@ func consumeUint64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Uint64() = v out.n = n @@ -2661,7 +2661,7 @@ var coderUint64 = pointerCoderFuncs{ // sizeUint64NoZero returns the size of wire encoding a uint64 pointer as a Uint64. // The zero value is not encoded. -func sizeUint64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint64() if v == 0 { return 0 @@ -2671,7 +2671,7 @@ func sizeUint64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendUint64NoZero wire encodes a uint64 pointer as a Uint64. // The zero value is not encoded. -func appendUint64NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() if v == 0 { return b, nil @@ -2690,14 +2690,14 @@ var coderUint64NoZero = pointerCoderFuncs{ // sizeUint64Ptr returns the size of wire encoding a *uint64 pointer as a Uint64. // It panics if the pointer is nil. -func sizeUint64Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.Uint64Ptr() return f.tagsize + protowire.SizeVarint(v) } // appendUint64Ptr wire encodes a *uint64 pointer as a Uint64. // It panics if the pointer is nil. -func appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendVarint(b, v) @@ -2705,7 +2705,7 @@ func appendUint64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeUint64Ptr wire decodes a *uint64 pointer as a Uint64. -func consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return out, errUnknown } @@ -2721,7 +2721,7 @@ func consumeUint64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Uint64Ptr() if *vp == nil { @@ -2740,7 +2740,7 @@ var coderUint64Ptr = pointerCoderFuncs{ } // sizeUint64Slice returns the size of wire encoding a []uint64 pointer as a repeated Uint64. -func sizeUint64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() for _, v := range s { size += f.tagsize + protowire.SizeVarint(v) @@ -2749,7 +2749,7 @@ func sizeUint64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) } // appendUint64Slice encodes a []uint64 pointer as a repeated Uint64. -func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -2759,13 +2759,13 @@ func appendUint64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeUint64Slice wire decodes a []uint64 pointer as a repeated Uint64. -func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { var v uint64 @@ -2780,7 +2780,7 @@ func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, v) b = b[n:] @@ -2804,7 +2804,7 @@ func consumeUint64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI v, n = protowire.ConsumeVarint(b) } if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, v) out.n = n @@ -2819,7 +2819,7 @@ var coderUint64Slice = pointerCoderFuncs{ } // sizeUint64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Uint64. -func sizeUint64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeUint64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() if len(s) == 0 { return 0 @@ -2832,7 +2832,7 @@ func sizeUint64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendUint64PackedSlice encodes a []uint64 pointer as a packed repeated Uint64. -func appendUint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendUint64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() if len(s) == 0 { return b, nil @@ -2857,19 +2857,19 @@ var coderUint64PackedSlice = pointerCoderFuncs{ } // sizeUint64Value returns the size of wire encoding a uint64 value as a Uint64. -func sizeUint64Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeUint64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeVarint(v.Uint()) } // appendUint64Value encodes a uint64 value as a Uint64. -func appendUint64Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendUint64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendVarint(b, v.Uint()) return b, nil } // consumeUint64Value decodes a uint64 value as a Uint64. -func consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.VarintType { return protoreflect.Value{}, out, errUnknown } @@ -2885,7 +2885,7 @@ func consumeUint64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint64(v), out, nil @@ -2899,7 +2899,7 @@ var coderUint64Value = valueCoderFuncs{ } // sizeUint64SliceValue returns the size of wire encoding a []uint64 value as a repeated Uint64. -func sizeUint64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeUint64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -2909,7 +2909,7 @@ func sizeUint64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOption } // appendUint64SliceValue encodes a []uint64 value as a repeated Uint64. -func appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -2920,12 +2920,12 @@ func appendUint64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeUint64SliceValue wire decodes a []uint64 value as a repeated Uint64. -func consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { var v uint64 @@ -2940,7 +2940,7 @@ func consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) b = b[n:] @@ -2963,7 +2963,7 @@ func consumeUint64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Num v, n = protowire.ConsumeVarint(b) } if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) out.n = n @@ -2978,7 +2978,7 @@ var coderUint64SliceValue = valueCoderFuncs{ } // sizeUint64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Uint64. -func sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -2993,7 +2993,7 @@ func sizeUint64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshal } // appendUint64PackedSliceValue encodes a []uint64 value as a packed repeated Uint64. -func appendUint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendUint64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3021,13 +3021,13 @@ var coderUint64PackedSliceValue = valueCoderFuncs{ } // sizeSfixed32 returns the size of wire encoding a int32 pointer as a Sfixed32. -func sizeSfixed32(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendSfixed32 wire encodes a int32 pointer as a Sfixed32. -func appendSfixed32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, uint32(v)) @@ -3035,13 +3035,13 @@ func appendSfixed32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([ } // consumeSfixed32 wire decodes a int32 pointer as a Sfixed32. -func consumeSfixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSfixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Int32() = int32(v) out.n = n @@ -3057,7 +3057,7 @@ var coderSfixed32 = pointerCoderFuncs{ // sizeSfixed32NoZero returns the size of wire encoding a int32 pointer as a Sfixed32. // The zero value is not encoded. -func sizeSfixed32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int32() if v == 0 { return 0 @@ -3067,7 +3067,7 @@ func sizeSfixed32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size in // appendSfixed32NoZero wire encodes a int32 pointer as a Sfixed32. // The zero value is not encoded. -func appendSfixed32NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int32() if v == 0 { return b, nil @@ -3086,13 +3086,13 @@ var coderSfixed32NoZero = pointerCoderFuncs{ // sizeSfixed32Ptr returns the size of wire encoding a *int32 pointer as a Sfixed32. // It panics if the pointer is nil. -func sizeSfixed32Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendSfixed32Ptr wire encodes a *int32 pointer as a Sfixed32. // It panics if the pointer is nil. -func appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, uint32(v)) @@ -3100,13 +3100,13 @@ func appendSfixed32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeSfixed32Ptr wire decodes a *int32 pointer as a Sfixed32. -func consumeSfixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSfixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Int32Ptr() if *vp == nil { @@ -3125,14 +3125,14 @@ var coderSfixed32Ptr = pointerCoderFuncs{ } // sizeSfixed32Slice returns the size of wire encoding a []int32 pointer as a repeated Sfixed32. -func sizeSfixed32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() size = len(s) * (f.tagsize + protowire.SizeFixed32()) return size } // appendSfixed32Slice encodes a []int32 pointer as a repeated Sfixed32. -func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -3142,18 +3142,18 @@ func appendSfixed32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOption } // consumeSfixed32Slice wire decodes a []int32 pointer as a repeated Sfixed32. -func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, int32(v)) b = b[n:] @@ -3167,7 +3167,7 @@ func consumeSfixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFiel } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, int32(v)) out.n = n @@ -3182,7 +3182,7 @@ var coderSfixed32Slice = pointerCoderFuncs{ } // sizeSfixed32PackedSlice returns the size of wire encoding a []int32 pointer as a packed repeated Sfixed32. -func sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int32Slice() if len(s) == 0 { return 0 @@ -3192,7 +3192,7 @@ func sizeSfixed32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (si } // appendSfixed32PackedSlice encodes a []int32 pointer as a packed repeated Sfixed32. -func appendSfixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int32Slice() if len(s) == 0 { return b, nil @@ -3214,25 +3214,25 @@ var coderSfixed32PackedSlice = pointerCoderFuncs{ } // sizeSfixed32Value returns the size of wire encoding a int32 value as a Sfixed32. -func sizeSfixed32Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeSfixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed32() } // appendSfixed32Value encodes a int32 value as a Sfixed32. -func appendSfixed32Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSfixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, uint32(v.Int())) return b, nil } // consumeSfixed32Value decodes a int32 value as a Sfixed32. -func consumeSfixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSfixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt32(int32(v)), out, nil @@ -3246,14 +3246,14 @@ var coderSfixed32Value = valueCoderFuncs{ } // sizeSfixed32SliceValue returns the size of wire encoding a []int32 value as a repeated Sfixed32. -func sizeSfixed32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSfixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed32()) return size } // appendSfixed32SliceValue encodes a []int32 value as a repeated Sfixed32. -func appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -3264,17 +3264,17 @@ func appendSfixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64 } // consumeSfixed32SliceValue wire decodes a []int32 value as a repeated Sfixed32. -func consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) b = b[n:] @@ -3287,7 +3287,7 @@ func consumeSfixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.N } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) out.n = n @@ -3302,7 +3302,7 @@ var coderSfixed32SliceValue = valueCoderFuncs{ } // sizeSfixed32PackedSliceValue returns the size of wire encoding a []int32 value as a packed repeated Sfixed32. -func sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3313,7 +3313,7 @@ func sizeSfixed32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marsh } // appendSfixed32PackedSliceValue encodes a []int32 value as a packed repeated Sfixed32. -func appendSfixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSfixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3337,13 +3337,13 @@ var coderSfixed32PackedSliceValue = valueCoderFuncs{ } // sizeFixed32 returns the size of wire encoding a uint32 pointer as a Fixed32. -func sizeFixed32(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed32(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFixed32 wire encodes a uint32 pointer as a Fixed32. -func appendFixed32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed32(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, v) @@ -3351,13 +3351,13 @@ func appendFixed32(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([] } // consumeFixed32 wire decodes a uint32 pointer as a Fixed32. -func consumeFixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFixed32(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Uint32() = v out.n = n @@ -3373,7 +3373,7 @@ var coderFixed32 = pointerCoderFuncs{ // sizeFixed32NoZero returns the size of wire encoding a uint32 pointer as a Fixed32. // The zero value is not encoded. -func sizeFixed32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed32NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint32() if v == 0 { return 0 @@ -3383,7 +3383,7 @@ func sizeFixed32NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int // appendFixed32NoZero wire encodes a uint32 pointer as a Fixed32. // The zero value is not encoded. -func appendFixed32NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed32NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint32() if v == 0 { return b, nil @@ -3402,13 +3402,13 @@ var coderFixed32NoZero = pointerCoderFuncs{ // sizeFixed32Ptr returns the size of wire encoding a *uint32 pointer as a Fixed32. // It panics if the pointer is nil. -func sizeFixed32Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed32Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFixed32Ptr wire encodes a *uint32 pointer as a Fixed32. // It panics if the pointer is nil. -func appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, v) @@ -3416,13 +3416,13 @@ func appendFixed32Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeFixed32Ptr wire decodes a *uint32 pointer as a Fixed32. -func consumeFixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFixed32Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Uint32Ptr() if *vp == nil { @@ -3441,14 +3441,14 @@ var coderFixed32Ptr = pointerCoderFuncs{ } // sizeFixed32Slice returns the size of wire encoding a []uint32 pointer as a repeated Fixed32. -func sizeFixed32Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed32Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() size = len(s) * (f.tagsize + protowire.SizeFixed32()) return size } // appendFixed32Slice encodes a []uint32 pointer as a repeated Fixed32. -func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -3458,18 +3458,18 @@ func appendFixed32Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions } // consumeFixed32Slice wire decodes a []uint32 pointer as a repeated Fixed32. -func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, v) b = b[n:] @@ -3483,7 +3483,7 @@ func consumeFixed32Slice(b []byte, p pointer, wtyp protowire.Type, f *coderField } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, v) out.n = n @@ -3498,7 +3498,7 @@ var coderFixed32Slice = pointerCoderFuncs{ } // sizeFixed32PackedSlice returns the size of wire encoding a []uint32 pointer as a packed repeated Fixed32. -func sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint32Slice() if len(s) == 0 { return 0 @@ -3508,7 +3508,7 @@ func sizeFixed32PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (siz } // appendFixed32PackedSlice encodes a []uint32 pointer as a packed repeated Fixed32. -func appendFixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed32PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint32Slice() if len(s) == 0 { return b, nil @@ -3530,25 +3530,25 @@ var coderFixed32PackedSlice = pointerCoderFuncs{ } // sizeFixed32Value returns the size of wire encoding a uint32 value as a Fixed32. -func sizeFixed32Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeFixed32Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed32() } // appendFixed32Value encodes a uint32 value as a Fixed32. -func appendFixed32Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFixed32Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, uint32(v.Uint())) return b, nil } // consumeFixed32Value decodes a uint32 value as a Fixed32. -func consumeFixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeFixed32Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint32(uint32(v)), out, nil @@ -3562,14 +3562,14 @@ var coderFixed32Value = valueCoderFuncs{ } // sizeFixed32SliceValue returns the size of wire encoding a []uint32 value as a repeated Fixed32. -func sizeFixed32SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeFixed32SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed32()) return size } // appendFixed32SliceValue encodes a []uint32 value as a repeated Fixed32. -func appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -3580,17 +3580,17 @@ func appendFixed32SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeFixed32SliceValue wire decodes a []uint32 value as a repeated Fixed32. -func consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) b = b[n:] @@ -3603,7 +3603,7 @@ func consumeFixed32SliceValue(b []byte, listv protoreflect.Value, _ protowire.Nu } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) out.n = n @@ -3618,7 +3618,7 @@ var coderFixed32SliceValue = valueCoderFuncs{ } // sizeFixed32PackedSliceValue returns the size of wire encoding a []uint32 value as a packed repeated Fixed32. -func sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3629,7 +3629,7 @@ func sizeFixed32PackedSliceValue(listv protoreflect.Value, tagsize int, _ marsha } // appendFixed32PackedSliceValue encodes a []uint32 value as a packed repeated Fixed32. -func appendFixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFixed32PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3653,13 +3653,13 @@ var coderFixed32PackedSliceValue = valueCoderFuncs{ } // sizeFloat returns the size of wire encoding a float32 pointer as a Float. -func sizeFloat(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFloat(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFloat wire encodes a float32 pointer as a Float. -func appendFloat(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFloat(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float32() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, math.Float32bits(v)) @@ -3667,13 +3667,13 @@ func appendFloat(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]by } // consumeFloat wire decodes a float32 pointer as a Float. -func consumeFloat(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFloat(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Float32() = math.Float32frombits(v) out.n = n @@ -3689,7 +3689,7 @@ var coderFloat = pointerCoderFuncs{ // sizeFloatNoZero returns the size of wire encoding a float32 pointer as a Float. // The zero value is not encoded. -func sizeFloatNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFloatNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Float32() if v == 0 && !math.Signbit(float64(v)) { return 0 @@ -3699,7 +3699,7 @@ func sizeFloatNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendFloatNoZero wire encodes a float32 pointer as a Float. // The zero value is not encoded. -func appendFloatNoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFloatNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float32() if v == 0 && !math.Signbit(float64(v)) { return b, nil @@ -3718,13 +3718,13 @@ var coderFloatNoZero = pointerCoderFuncs{ // sizeFloatPtr returns the size of wire encoding a *float32 pointer as a Float. // It panics if the pointer is nil. -func sizeFloatPtr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFloatPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed32() } // appendFloatPtr wire encodes a *float32 pointer as a Float. // It panics if the pointer is nil. -func appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Float32Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed32(b, math.Float32bits(v)) @@ -3732,13 +3732,13 @@ func appendFloatPtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([ } // consumeFloatPtr wire decodes a *float32 pointer as a Float. -func consumeFloatPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFloatPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Float32Ptr() if *vp == nil { @@ -3757,14 +3757,14 @@ var coderFloatPtr = pointerCoderFuncs{ } // sizeFloatSlice returns the size of wire encoding a []float32 pointer as a repeated Float. -func sizeFloatSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFloatSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float32Slice() size = len(s) * (f.tagsize + protowire.SizeFixed32()) return size } // appendFloatSlice encodes a []float32 pointer as a repeated Float. -func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float32Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -3774,18 +3774,18 @@ func appendFloatSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeFloatSlice wire decodes a []float32 pointer as a repeated Float. -func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Float32Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, math.Float32frombits(v)) b = b[n:] @@ -3799,7 +3799,7 @@ func consumeFloatSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldIn } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, math.Float32frombits(v)) out.n = n @@ -3814,7 +3814,7 @@ var coderFloatSlice = pointerCoderFuncs{ } // sizeFloatPackedSlice returns the size of wire encoding a []float32 pointer as a packed repeated Float. -func sizeFloatPackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFloatPackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float32Slice() if len(s) == 0 { return 0 @@ -3824,7 +3824,7 @@ func sizeFloatPackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendFloatPackedSlice encodes a []float32 pointer as a packed repeated Float. -func appendFloatPackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFloatPackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float32Slice() if len(s) == 0 { return b, nil @@ -3846,25 +3846,25 @@ var coderFloatPackedSlice = pointerCoderFuncs{ } // sizeFloatValue returns the size of wire encoding a float32 value as a Float. -func sizeFloatValue(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeFloatValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed32() } // appendFloatValue encodes a float32 value as a Float. -func appendFloatValue(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFloatValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed32(b, math.Float32bits(float32(v.Float()))) return b, nil } // consumeFloatValue decodes a float32 value as a Float. -func consumeFloatValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeFloatValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed32Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), out, nil @@ -3878,14 +3878,14 @@ var coderFloatValue = valueCoderFuncs{ } // sizeFloatSliceValue returns the size of wire encoding a []float32 value as a repeated Float. -func sizeFloatSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeFloatSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed32()) return size } // appendFloatSliceValue encodes a []float32 value as a repeated Float. -func appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -3896,17 +3896,17 @@ func appendFloatSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ } // consumeFloatSliceValue wire decodes a []float32 value as a repeated Float. -func consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) b = b[n:] @@ -3919,7 +3919,7 @@ func consumeFloatSliceValue(b []byte, listv protoreflect.Value, _ protowire.Numb } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) out.n = n @@ -3934,7 +3934,7 @@ var coderFloatSliceValue = valueCoderFuncs{ } // sizeFloatPackedSliceValue returns the size of wire encoding a []float32 value as a packed repeated Float. -func sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3945,7 +3945,7 @@ func sizeFloatPackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalO } // appendFloatPackedSliceValue encodes a []float32 value as a packed repeated Float. -func appendFloatPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFloatPackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -3969,13 +3969,13 @@ var coderFloatPackedSliceValue = valueCoderFuncs{ } // sizeSfixed64 returns the size of wire encoding a int64 pointer as a Sfixed64. -func sizeSfixed64(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendSfixed64 wire encodes a int64 pointer as a Sfixed64. -func appendSfixed64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, uint64(v)) @@ -3983,13 +3983,13 @@ func appendSfixed64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([ } // consumeSfixed64 wire decodes a int64 pointer as a Sfixed64. -func consumeSfixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSfixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Int64() = int64(v) out.n = n @@ -4005,7 +4005,7 @@ var coderSfixed64 = pointerCoderFuncs{ // sizeSfixed64NoZero returns the size of wire encoding a int64 pointer as a Sfixed64. // The zero value is not encoded. -func sizeSfixed64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Int64() if v == 0 { return 0 @@ -4015,7 +4015,7 @@ func sizeSfixed64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size in // appendSfixed64NoZero wire encodes a int64 pointer as a Sfixed64. // The zero value is not encoded. -func appendSfixed64NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Int64() if v == 0 { return b, nil @@ -4034,13 +4034,13 @@ var coderSfixed64NoZero = pointerCoderFuncs{ // sizeSfixed64Ptr returns the size of wire encoding a *int64 pointer as a Sfixed64. // It panics if the pointer is nil. -func sizeSfixed64Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendSfixed64Ptr wire encodes a *int64 pointer as a Sfixed64. // It panics if the pointer is nil. -func appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Int64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, uint64(v)) @@ -4048,13 +4048,13 @@ func appendSfixed64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeSfixed64Ptr wire decodes a *int64 pointer as a Sfixed64. -func consumeSfixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSfixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Int64Ptr() if *vp == nil { @@ -4073,14 +4073,14 @@ var coderSfixed64Ptr = pointerCoderFuncs{ } // sizeSfixed64Slice returns the size of wire encoding a []int64 pointer as a repeated Sfixed64. -func sizeSfixed64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() size = len(s) * (f.tagsize + protowire.SizeFixed64()) return size } // appendSfixed64Slice encodes a []int64 pointer as a repeated Sfixed64. -func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -4090,18 +4090,18 @@ func appendSfixed64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOption } // consumeSfixed64Slice wire decodes a []int64 pointer as a repeated Sfixed64. -func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Int64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, int64(v)) b = b[n:] @@ -4115,7 +4115,7 @@ func consumeSfixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFiel } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, int64(v)) out.n = n @@ -4130,7 +4130,7 @@ var coderSfixed64Slice = pointerCoderFuncs{ } // sizeSfixed64PackedSlice returns the size of wire encoding a []int64 pointer as a packed repeated Sfixed64. -func sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Int64Slice() if len(s) == 0 { return 0 @@ -4140,7 +4140,7 @@ func sizeSfixed64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (si } // appendSfixed64PackedSlice encodes a []int64 pointer as a packed repeated Sfixed64. -func appendSfixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendSfixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Int64Slice() if len(s) == 0 { return b, nil @@ -4162,25 +4162,25 @@ var coderSfixed64PackedSlice = pointerCoderFuncs{ } // sizeSfixed64Value returns the size of wire encoding a int64 value as a Sfixed64. -func sizeSfixed64Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeSfixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed64() } // appendSfixed64Value encodes a int64 value as a Sfixed64. -func appendSfixed64Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSfixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, uint64(v.Int())) return b, nil } // consumeSfixed64Value decodes a int64 value as a Sfixed64. -func consumeSfixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSfixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfInt64(int64(v)), out, nil @@ -4194,14 +4194,14 @@ var coderSfixed64Value = valueCoderFuncs{ } // sizeSfixed64SliceValue returns the size of wire encoding a []int64 value as a repeated Sfixed64. -func sizeSfixed64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSfixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed64()) return size } // appendSfixed64SliceValue encodes a []int64 value as a repeated Sfixed64. -func appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -4212,17 +4212,17 @@ func appendSfixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64 } // consumeSfixed64SliceValue wire decodes a []int64 value as a repeated Sfixed64. -func consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) b = b[n:] @@ -4235,7 +4235,7 @@ func consumeSfixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.N } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) out.n = n @@ -4250,7 +4250,7 @@ var coderSfixed64SliceValue = valueCoderFuncs{ } // sizeSfixed64PackedSliceValue returns the size of wire encoding a []int64 value as a packed repeated Sfixed64. -func sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -4261,7 +4261,7 @@ func sizeSfixed64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marsh } // appendSfixed64PackedSliceValue encodes a []int64 value as a packed repeated Sfixed64. -func appendSfixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendSfixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -4285,13 +4285,13 @@ var coderSfixed64PackedSliceValue = valueCoderFuncs{ } // sizeFixed64 returns the size of wire encoding a uint64 pointer as a Fixed64. -func sizeFixed64(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed64(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendFixed64 wire encodes a uint64 pointer as a Fixed64. -func appendFixed64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed64(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, v) @@ -4299,13 +4299,13 @@ func appendFixed64(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([] } // consumeFixed64 wire decodes a uint64 pointer as a Fixed64. -func consumeFixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFixed64(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Uint64() = v out.n = n @@ -4321,7 +4321,7 @@ var coderFixed64 = pointerCoderFuncs{ // sizeFixed64NoZero returns the size of wire encoding a uint64 pointer as a Fixed64. // The zero value is not encoded. -func sizeFixed64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed64NoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Uint64() if v == 0 { return 0 @@ -4331,7 +4331,7 @@ func sizeFixed64NoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int // appendFixed64NoZero wire encodes a uint64 pointer as a Fixed64. // The zero value is not encoded. -func appendFixed64NoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed64NoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Uint64() if v == 0 { return b, nil @@ -4350,13 +4350,13 @@ var coderFixed64NoZero = pointerCoderFuncs{ // sizeFixed64Ptr returns the size of wire encoding a *uint64 pointer as a Fixed64. // It panics if the pointer is nil. -func sizeFixed64Ptr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed64Ptr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendFixed64Ptr wire encodes a *uint64 pointer as a Fixed64. // It panics if the pointer is nil. -func appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Uint64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, v) @@ -4364,13 +4364,13 @@ func appendFixed64Ptr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeFixed64Ptr wire decodes a *uint64 pointer as a Fixed64. -func consumeFixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFixed64Ptr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Uint64Ptr() if *vp == nil { @@ -4389,14 +4389,14 @@ var coderFixed64Ptr = pointerCoderFuncs{ } // sizeFixed64Slice returns the size of wire encoding a []uint64 pointer as a repeated Fixed64. -func sizeFixed64Slice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed64Slice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() size = len(s) * (f.tagsize + protowire.SizeFixed64()) return size } // appendFixed64Slice encodes a []uint64 pointer as a repeated Fixed64. -func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -4406,18 +4406,18 @@ func appendFixed64Slice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions } // consumeFixed64Slice wire decodes a []uint64 pointer as a repeated Fixed64. -func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Uint64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, v) b = b[n:] @@ -4431,7 +4431,7 @@ func consumeFixed64Slice(b []byte, p pointer, wtyp protowire.Type, f *coderField } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, v) out.n = n @@ -4446,7 +4446,7 @@ var coderFixed64Slice = pointerCoderFuncs{ } // sizeFixed64PackedSlice returns the size of wire encoding a []uint64 pointer as a packed repeated Fixed64. -func sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Uint64Slice() if len(s) == 0 { return 0 @@ -4456,7 +4456,7 @@ func sizeFixed64PackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (siz } // appendFixed64PackedSlice encodes a []uint64 pointer as a packed repeated Fixed64. -func appendFixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendFixed64PackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Uint64Slice() if len(s) == 0 { return b, nil @@ -4478,25 +4478,25 @@ var coderFixed64PackedSlice = pointerCoderFuncs{ } // sizeFixed64Value returns the size of wire encoding a uint64 value as a Fixed64. -func sizeFixed64Value(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeFixed64Value(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed64() } // appendFixed64Value encodes a uint64 value as a Fixed64. -func appendFixed64Value(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFixed64Value(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, v.Uint()) return b, nil } // consumeFixed64Value decodes a uint64 value as a Fixed64. -func consumeFixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeFixed64Value(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfUint64(v), out, nil @@ -4510,14 +4510,14 @@ var coderFixed64Value = valueCoderFuncs{ } // sizeFixed64SliceValue returns the size of wire encoding a []uint64 value as a repeated Fixed64. -func sizeFixed64SliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeFixed64SliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed64()) return size } // appendFixed64SliceValue encodes a []uint64 value as a repeated Fixed64. -func appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -4528,17 +4528,17 @@ func appendFixed64SliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeFixed64SliceValue wire decodes a []uint64 value as a repeated Fixed64. -func consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) b = b[n:] @@ -4551,7 +4551,7 @@ func consumeFixed64SliceValue(b []byte, listv protoreflect.Value, _ protowire.Nu } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfUint64(v)) out.n = n @@ -4566,7 +4566,7 @@ var coderFixed64SliceValue = valueCoderFuncs{ } // sizeFixed64PackedSliceValue returns the size of wire encoding a []uint64 value as a packed repeated Fixed64. -func sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -4577,7 +4577,7 @@ func sizeFixed64PackedSliceValue(listv protoreflect.Value, tagsize int, _ marsha } // appendFixed64PackedSliceValue encodes a []uint64 value as a packed repeated Fixed64. -func appendFixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendFixed64PackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -4601,13 +4601,13 @@ var coderFixed64PackedSliceValue = valueCoderFuncs{ } // sizeDouble returns the size of wire encoding a float64 pointer as a Double. -func sizeDouble(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeDouble(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendDouble wire encodes a float64 pointer as a Double. -func appendDouble(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendDouble(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float64() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v)) @@ -4615,13 +4615,13 @@ func appendDouble(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]b } // consumeDouble wire decodes a float64 pointer as a Double. -func consumeDouble(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeDouble(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Float64() = math.Float64frombits(v) out.n = n @@ -4637,7 +4637,7 @@ var coderDouble = pointerCoderFuncs{ // sizeDoubleNoZero returns the size of wire encoding a float64 pointer as a Double. // The zero value is not encoded. -func sizeDoubleNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeDoubleNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Float64() if v == 0 && !math.Signbit(float64(v)) { return 0 @@ -4647,7 +4647,7 @@ func sizeDoubleNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendDoubleNoZero wire encodes a float64 pointer as a Double. // The zero value is not encoded. -func appendDoubleNoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendDoubleNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Float64() if v == 0 && !math.Signbit(float64(v)) { return b, nil @@ -4666,13 +4666,13 @@ var coderDoubleNoZero = pointerCoderFuncs{ // sizeDoublePtr returns the size of wire encoding a *float64 pointer as a Double. // It panics if the pointer is nil. -func sizeDoublePtr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeDoublePtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { return f.tagsize + protowire.SizeFixed64() } // appendDoublePtr wire encodes a *float64 pointer as a Double. // It panics if the pointer is nil. -func appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.Float64Ptr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v)) @@ -4680,13 +4680,13 @@ func appendDoublePtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeDoublePtr wire decodes a *float64 pointer as a Double. -func consumeDoublePtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeDoublePtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.Float64Ptr() if *vp == nil { @@ -4705,14 +4705,14 @@ var coderDoublePtr = pointerCoderFuncs{ } // sizeDoubleSlice returns the size of wire encoding a []float64 pointer as a repeated Double. -func sizeDoubleSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeDoubleSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float64Slice() size = len(s) * (f.tagsize + protowire.SizeFixed64()) return size } // appendDoubleSlice encodes a []float64 pointer as a repeated Double. -func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float64Slice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -4722,18 +4722,18 @@ func appendDoubleSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeDoubleSlice wire decodes a []float64 pointer as a repeated Double. -func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.Float64Slice() if wtyp == protowire.BytesType { s := *sp b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } s = append(s, math.Float64frombits(v)) b = b[n:] @@ -4747,7 +4747,7 @@ func consumeDoubleSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldI } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, math.Float64frombits(v)) out.n = n @@ -4762,7 +4762,7 @@ var coderDoubleSlice = pointerCoderFuncs{ } // sizeDoublePackedSlice returns the size of wire encoding a []float64 pointer as a packed repeated Double. -func sizeDoublePackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeDoublePackedSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.Float64Slice() if len(s) == 0 { return 0 @@ -4772,7 +4772,7 @@ func sizeDoublePackedSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size } // appendDoublePackedSlice encodes a []float64 pointer as a packed repeated Double. -func appendDoublePackedSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendDoublePackedSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.Float64Slice() if len(s) == 0 { return b, nil @@ -4794,25 +4794,25 @@ var coderDoublePackedSlice = pointerCoderFuncs{ } // sizeDoubleValue returns the size of wire encoding a float64 value as a Double. -func sizeDoubleValue(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeDoubleValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeFixed64() } // appendDoubleValue encodes a float64 value as a Double. -func appendDoubleValue(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendDoubleValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendFixed64(b, math.Float64bits(v.Float())) return b, nil } // consumeDoubleValue decodes a float64 value as a Double. -func consumeDoubleValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeDoubleValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.Fixed64Type { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfFloat64(math.Float64frombits(v)), out, nil @@ -4826,14 +4826,14 @@ var coderDoubleValue = valueCoderFuncs{ } // sizeDoubleSliceValue returns the size of wire encoding a []float64 value as a repeated Double. -func sizeDoubleSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeDoubleSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() size = list.Len() * (tagsize + protowire.SizeFixed64()) return size } // appendDoubleSliceValue encodes a []float64 value as a repeated Double. -func appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -4844,17 +4844,17 @@ func appendDoubleSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeDoubleSliceValue wire decodes a []float64 value as a repeated Double. -func consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) b = b[n:] @@ -4867,7 +4867,7 @@ func consumeDoubleSliceValue(b []byte, listv protoreflect.Value, _ protowire.Num } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) out.n = n @@ -4882,7 +4882,7 @@ var coderDoubleSliceValue = valueCoderFuncs{ } // sizeDoublePackedSliceValue returns the size of wire encoding a []float64 value as a packed repeated Double. -func sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() llen := list.Len() if llen == 0 { @@ -4893,7 +4893,7 @@ func sizeDoublePackedSliceValue(listv protoreflect.Value, tagsize int, _ marshal } // appendDoublePackedSliceValue encodes a []float64 value as a packed repeated Double. -func appendDoublePackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendDoublePackedSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() llen := list.Len() if llen == 0 { @@ -4917,13 +4917,13 @@ var coderDoublePackedSliceValue = valueCoderFuncs{ } // sizeString returns the size of wire encoding a string pointer as a String. -func sizeString(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeString(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.String() return f.tagsize + protowire.SizeBytes(len(v)) } // appendString wire encodes a string pointer as a String. -func appendString(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendString(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) @@ -4931,15 +4931,15 @@ func appendString(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]b } // consumeString wire decodes a string pointer as a String. -func consumeString(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeString(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - *p.String() = v + *p.String() = string(v) out.n = n return out, nil } @@ -4952,7 +4952,7 @@ var coderString = pointerCoderFuncs{ } // appendStringValidateUTF8 wire encodes a string pointer as a String. -func appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) @@ -4963,18 +4963,18 @@ func appendStringValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalO } // consumeStringValidateUTF8 wire decodes a string pointer as a String. -func consumeStringValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeStringValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - if !utf8.ValidString(v) { + if !utf8.Valid(v) { return out, errInvalidUTF8{} } - *p.String() = v + *p.String() = string(v) out.n = n return out, nil } @@ -4988,7 +4988,7 @@ var coderStringValidateUTF8 = pointerCoderFuncs{ // sizeStringNoZero returns the size of wire encoding a string pointer as a String. // The zero value is not encoded. -func sizeStringNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeStringNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.String() if len(v) == 0 { return 0 @@ -4998,7 +4998,7 @@ func sizeStringNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendStringNoZero wire encodes a string pointer as a String. // The zero value is not encoded. -func appendStringNoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() if len(v) == 0 { return b, nil @@ -5017,7 +5017,7 @@ var coderStringNoZero = pointerCoderFuncs{ // appendStringNoZeroValidateUTF8 wire encodes a string pointer as a String. // The zero value is not encoded. -func appendStringNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.String() if len(v) == 0 { return b, nil @@ -5039,14 +5039,14 @@ var coderStringNoZeroValidateUTF8 = pointerCoderFuncs{ // sizeStringPtr returns the size of wire encoding a *string pointer as a String. // It panics if the pointer is nil. -func sizeStringPtr(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeStringPtr(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := **p.StringPtr() return f.tagsize + protowire.SizeBytes(len(v)) } // appendStringPtr wire encodes a *string pointer as a String. // It panics if the pointer is nil. -func appendStringPtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringPtr(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.StringPtr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) @@ -5054,19 +5054,19 @@ func appendStringPtr(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ( } // consumeStringPtr wire decodes a *string pointer as a String. -func consumeStringPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeStringPtr(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } vp := p.StringPtr() if *vp == nil { *vp = new(string) } - **vp = v + **vp = string(v) out.n = n return out, nil } @@ -5080,7 +5080,7 @@ var coderStringPtr = pointerCoderFuncs{ // appendStringPtrValidateUTF8 wire encodes a *string pointer as a String. // It panics if the pointer is nil. -func appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := **p.StringPtr() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendString(b, v) @@ -5091,22 +5091,22 @@ func appendStringPtrValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marsh } // consumeStringPtrValidateUTF8 wire decodes a *string pointer as a String. -func consumeStringPtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeStringPtrValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - if !utf8.ValidString(v) { + if !utf8.Valid(v) { return out, errInvalidUTF8{} } vp := p.StringPtr() if *vp == nil { *vp = new(string) } - **vp = v + **vp = string(v) out.n = n return out, nil } @@ -5119,7 +5119,7 @@ var coderStringPtrValidateUTF8 = pointerCoderFuncs{ } // sizeStringSlice returns the size of wire encoding a []string pointer as a repeated String. -func sizeStringSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeStringSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.StringSlice() for _, v := range s { size += f.tagsize + protowire.SizeBytes(len(v)) @@ -5128,7 +5128,7 @@ func sizeStringSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) } // appendStringSlice encodes a []string pointer as a repeated String. -func appendStringSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.StringSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -5138,16 +5138,16 @@ func appendStringSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeStringSlice wire decodes a []string pointer as a repeated String. -func consumeStringSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeStringSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.StringSlice() if wtyp != protowire.BytesType { return out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - *sp = append(*sp, v) + *sp = append(*sp, string(v)) out.n = n return out, nil } @@ -5160,7 +5160,7 @@ var coderStringSlice = pointerCoderFuncs{ } // appendStringSliceValidateUTF8 encodes a []string pointer as a repeated String. -func appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.StringSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -5173,19 +5173,19 @@ func appendStringSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ mar } // consumeStringSliceValidateUTF8 wire decodes a []string pointer as a repeated String. -func consumeStringSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.StringSlice() +func consumeStringSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } - if !utf8.ValidString(v) { + if !utf8.Valid(v) { return out, errInvalidUTF8{} } - *sp = append(*sp, v) + sp := p.StringSlice() + *sp = append(*sp, string(v)) out.n = n return out, nil } @@ -5198,25 +5198,25 @@ var coderStringSliceValidateUTF8 = pointerCoderFuncs{ } // sizeStringValue returns the size of wire encoding a string value as a String. -func sizeStringValue(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeStringValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeBytes(len(v.String())) } // appendStringValue encodes a string value as a String. -func appendStringValue(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendStringValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendString(b, v.String()) return b, nil } // consumeStringValue decodes a string value as a String. -func consumeStringValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeStringValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfString(string(v)), out, nil @@ -5230,7 +5230,7 @@ var coderStringValue = valueCoderFuncs{ } // appendStringValueValidateUTF8 encodes a string value as a String. -func appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendString(b, v.String()) if !utf8.ValidString(v.String()) { @@ -5240,15 +5240,15 @@ func appendStringValueValidateUTF8(b []byte, v protoreflect.Value, wiretag uint6 } // consumeStringValueValidateUTF8 decodes a string value as a String. -func consumeStringValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeStringValueValidateUTF8(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } - if !utf8.ValidString(v) { + if !utf8.Valid(v) { return protoreflect.Value{}, out, errInvalidUTF8{} } out.n = n @@ -5263,7 +5263,7 @@ var coderStringValueValidateUTF8 = valueCoderFuncs{ } // sizeStringSliceValue returns the size of wire encoding a []string value as a repeated String. -func sizeStringSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeStringSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -5273,7 +5273,7 @@ func sizeStringSliceValue(listv protoreflect.Value, tagsize int, _ marshalOption } // appendStringSliceValue encodes a []string value as a repeated String. -func appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -5284,14 +5284,14 @@ func appendStringSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, } // consumeStringSliceValue wire decodes a []string value as a repeated String. -func consumeStringSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeStringSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } - v, n := protowire.ConsumeString(b) + v, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfString(string(v))) out.n = n @@ -5306,13 +5306,13 @@ var coderStringSliceValue = valueCoderFuncs{ } // sizeBytes returns the size of wire encoding a []byte pointer as a Bytes. -func sizeBytes(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBytes(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bytes() return f.tagsize + protowire.SizeBytes(len(v)) } // appendBytes wire encodes a []byte pointer as a Bytes. -func appendBytes(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBytes(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) @@ -5320,13 +5320,13 @@ func appendBytes(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]by } // consumeBytes wire decodes a []byte pointer as a Bytes. -func consumeBytes(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBytes(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Bytes() = append(emptyBuf[:], v...) out.n = n @@ -5341,7 +5341,7 @@ var coderBytes = pointerCoderFuncs{ } // appendBytesValidateUTF8 wire encodes a []byte pointer as a Bytes. -func appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() b = protowire.AppendVarint(b, f.wiretag) b = protowire.AppendBytes(b, v) @@ -5352,13 +5352,13 @@ func appendBytesValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOp } // consumeBytesValidateUTF8 wire decodes a []byte pointer as a Bytes. -func consumeBytesValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBytesValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} @@ -5377,7 +5377,7 @@ var coderBytesValidateUTF8 = pointerCoderFuncs{ // sizeBytesNoZero returns the size of wire encoding a []byte pointer as a Bytes. // The zero value is not encoded. -func sizeBytesNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBytesNoZero(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { v := *p.Bytes() if len(v) == 0 { return 0 @@ -5387,7 +5387,7 @@ func sizeBytesNoZero(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) // appendBytesNoZero wire encodes a []byte pointer as a Bytes. // The zero value is not encoded. -func appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() if len(v) == 0 { return b, nil @@ -5399,13 +5399,13 @@ func appendBytesNoZero(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) // consumeBytesNoZero wire decodes a []byte pointer as a Bytes. // The zero value is not decoded. -func consumeBytesNoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBytesNoZero(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *p.Bytes() = append(([]byte)(nil), v...) out.n = n @@ -5421,7 +5421,7 @@ var coderBytesNoZero = pointerCoderFuncs{ // appendBytesNoZeroValidateUTF8 wire encodes a []byte pointer as a Bytes. // The zero value is not encoded. -func appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { v := *p.Bytes() if len(v) == 0 { return b, nil @@ -5435,13 +5435,13 @@ func appendBytesNoZeroValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ mar } // consumeBytesNoZeroValidateUTF8 wire decodes a []byte pointer as a Bytes. -func consumeBytesNoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBytesNoZeroValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} @@ -5459,7 +5459,7 @@ var coderBytesNoZeroValidateUTF8 = pointerCoderFuncs{ } // sizeBytesSlice returns the size of wire encoding a [][]byte pointer as a repeated Bytes. -func sizeBytesSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { +func sizeBytesSlice(p pointer, f *coderFieldInfo, opts marshalOptions) (size int) { s := *p.BytesSlice() for _, v := range s { size += f.tagsize + protowire.SizeBytes(len(v)) @@ -5468,7 +5468,7 @@ func sizeBytesSlice(p pointer, f *coderFieldInfo, _ marshalOptions) (size int) { } // appendBytesSlice encodes a [][]byte pointer as a repeated Bytes. -func appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BytesSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -5478,14 +5478,14 @@ func appendBytesSlice(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) } // consumeBytesSlice wire decodes a [][]byte pointer as a repeated Bytes. -func consumeBytesSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { +func consumeBytesSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { sp := p.BytesSlice() if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } *sp = append(*sp, append(emptyBuf[:], v...)) out.n = n @@ -5500,7 +5500,7 @@ var coderBytesSlice = pointerCoderFuncs{ } // appendBytesSliceValidateUTF8 encodes a [][]byte pointer as a repeated Bytes. -func appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ marshalOptions) ([]byte, error) { +func appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { s := *p.BytesSlice() for _, v := range s { b = protowire.AppendVarint(b, f.wiretag) @@ -5513,18 +5513,18 @@ func appendBytesSliceValidateUTF8(b []byte, p pointer, f *coderFieldInfo, _ mars } // consumeBytesSliceValidateUTF8 wire decodes a [][]byte pointer as a repeated Bytes. -func consumeBytesSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ unmarshalOptions) (out unmarshalOutput, err error) { - sp := p.BytesSlice() +func consumeBytesSliceValidateUTF8(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if !utf8.Valid(v) { return out, errInvalidUTF8{} } + sp := p.BytesSlice() *sp = append(*sp, append(emptyBuf[:], v...)) out.n = n return out, nil @@ -5538,25 +5538,25 @@ var coderBytesSliceValidateUTF8 = pointerCoderFuncs{ } // sizeBytesValue returns the size of wire encoding a []byte value as a Bytes. -func sizeBytesValue(v protoreflect.Value, tagsize int, _ marshalOptions) int { +func sizeBytesValue(v protoreflect.Value, tagsize int, opts marshalOptions) int { return tagsize + protowire.SizeBytes(len(v.Bytes())) } // appendBytesValue encodes a []byte value as a Bytes. -func appendBytesValue(b []byte, v protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendBytesValue(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { b = protowire.AppendVarint(b, wiretag) b = protowire.AppendBytes(b, v.Bytes()) return b, nil } // consumeBytesValue decodes a []byte value as a Bytes. -func consumeBytesValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeBytesValue(b []byte, _ protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } out.n = n return protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), out, nil @@ -5570,7 +5570,7 @@ var coderBytesValue = valueCoderFuncs{ } // sizeBytesSliceValue returns the size of wire encoding a [][]byte value as a repeated Bytes. -func sizeBytesSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions) (size int) { +func sizeBytesSliceValue(listv protoreflect.Value, tagsize int, opts marshalOptions) (size int) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -5580,7 +5580,7 @@ func sizeBytesSliceValue(listv protoreflect.Value, tagsize int, _ marshalOptions } // appendBytesSliceValue encodes a [][]byte value as a repeated Bytes. -func appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ marshalOptions) ([]byte, error) { +func appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) { list := listv.List() for i, llen := 0, list.Len(); i < llen; i++ { v := list.Get(i) @@ -5591,14 +5591,14 @@ func appendBytesSliceValue(b []byte, listv protoreflect.Value, wiretag uint64, _ } // consumeBytesSliceValue wire decodes a [][]byte value as a repeated Bytes. -func consumeBytesSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, _ unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { +func consumeBytesSliceValue(b []byte, listv protoreflect.Value, _ protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (_ protoreflect.Value, out unmarshalOutput, err error) { list := listv.List() if wtyp != protowire.BytesType { return protoreflect.Value{}, out, errUnknown } v, n := protowire.ConsumeBytes(b) if n < 0 { - return protoreflect.Value{}, out, protowire.ParseError(n) + return protoreflect.Value{}, out, errDecode } list.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...))) out.n = n diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map.go index 35a67c25bf..111b9d16f9 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map.go @@ -5,12 +5,12 @@ package impl import ( - "errors" "reflect" "sort" "google.golang.org/protobuf/encoding/protowire" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/reflect/protoreflect" ) type mapInfo struct { @@ -19,12 +19,12 @@ type mapInfo struct { valWiretag uint64 keyFuncs valueCoderFuncs valFuncs valueCoderFuncs - keyZero pref.Value - keyKind pref.Kind + keyZero protoreflect.Value + keyKind protoreflect.Kind conv *mapConverter } -func encoderFuncsForMap(fd pref.FieldDescriptor, ft reflect.Type) (valueMessage *MessageInfo, funcs pointerCoderFuncs) { +func encoderFuncsForMap(fd protoreflect.FieldDescriptor, ft reflect.Type) (valueMessage *MessageInfo, funcs pointerCoderFuncs) { // TODO: Consider generating specialized map coders. keyField := fd.MapKey() valField := fd.MapValue() @@ -44,7 +44,7 @@ func encoderFuncsForMap(fd pref.FieldDescriptor, ft reflect.Type) (valueMessage keyKind: keyField.Kind(), conv: conv, } - if valField.Kind() == pref.MessageKind { + if valField.Kind() == protoreflect.MessageKind { valueMessage = getMessageInfo(ft.Elem()) } @@ -68,9 +68,9 @@ func encoderFuncsForMap(fd pref.FieldDescriptor, ft reflect.Type) (valueMessage }, } switch valField.Kind() { - case pref.MessageKind: + case protoreflect.MessageKind: funcs.merge = mergeMapOfMessage - case pref.BytesKind: + case protoreflect.BytesKind: funcs.merge = mergeMapOfBytes default: funcs.merge = mergeMap @@ -117,7 +117,7 @@ func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo } b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } var ( key = mapi.keyZero @@ -126,16 +126,16 @@ func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if num > protowire.MaxValidNumber { - return out, errors.New("invalid field number") + return out, errDecode } b = b[n:] err := errUnknown switch num { - case 1: - var v pref.Value + case genid.MapEntry_Key_field_number: + var v protoreflect.Value var o unmarshalOutput v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts) if err != nil { @@ -143,8 +143,8 @@ func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo } key = v n = o.n - case 2: - var v pref.Value + case genid.MapEntry_Value_field_number: + var v protoreflect.Value var o unmarshalOutput v, o, err = mapi.valFuncs.unmarshal(b, val, num, wtyp, opts) if err != nil { @@ -156,7 +156,7 @@ func consumeMap(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi *mapInfo if err == errUnknown { n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } } else if err != nil { return out, err @@ -174,7 +174,7 @@ func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi } b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } var ( key = mapi.keyZero @@ -183,16 +183,16 @@ func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if num > protowire.MaxValidNumber { - return out, errors.New("invalid field number") + return out, errDecode } b = b[n:] err := errUnknown switch num { case 1: - var v pref.Value + var v protoreflect.Value var o unmarshalOutput v, o, err = mapi.keyFuncs.unmarshal(b, key, num, wtyp, opts) if err != nil { @@ -207,7 +207,7 @@ func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi var v []byte v, n = protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } var o unmarshalOutput o, err = f.mi.unmarshalPointer(v, pointerOfValue(val), 0, opts) @@ -220,7 +220,7 @@ func consumeMapOfMessage(b []byte, mapv reflect.Value, wtyp protowire.Type, mapi if err == errUnknown { n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } } else if err != nil { return out, err diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go index 2706bb67f5..4b15493f2f 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go111.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !go1.12 // +build !go1.12 package impl diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go index 1533ef600c..0b31b66eaf 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_map_go112.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build go1.12 // +build go1.12 package impl diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_message.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_message.go index 0e176d565d..6b2fdbb739 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_message.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_message.go @@ -11,22 +11,23 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" - "google.golang.org/protobuf/internal/fieldsort" - pref "google.golang.org/protobuf/reflect/protoreflect" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/internal/order" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoiface" ) // coderMessageInfo contains per-message information used by the fast-path functions. // This is a different type from MessageInfo to keep MessageInfo as general-purpose as // possible. type coderMessageInfo struct { - methods piface.Methods + methods protoiface.Methods orderedCoderFields []*coderFieldInfo denseCoderFields []*coderFieldInfo coderFields map[protowire.Number]*coderFieldInfo sizecacheOffset offset unknownOffset offset + unknownPtrKind bool extensionOffset offset needsInitCheck bool isMessageSet bool @@ -37,19 +38,30 @@ type coderFieldInfo struct { funcs pointerCoderFuncs // fast-path per-field functions mi *MessageInfo // field's message ft reflect.Type - validation validationInfo // information used by message validation - num pref.FieldNumber // field number - offset offset // struct field offset - wiretag uint64 // field tag (number + wire type) - tagsize int // size of the varint-encoded tag - isPointer bool // true if IsNil may be called on the struct field - isRequired bool // true if field is required + validation validationInfo // information used by message validation + num protoreflect.FieldNumber // field number + offset offset // struct field offset + wiretag uint64 // field tag (number + wire type) + tagsize int // size of the varint-encoded tag + isPointer bool // true if IsNil may be called on the struct field + isRequired bool // true if field is required } func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { - mi.sizecacheOffset = si.sizecacheOffset - mi.unknownOffset = si.unknownOffset - mi.extensionOffset = si.extensionOffset + mi.sizecacheOffset = invalidOffset + mi.unknownOffset = invalidOffset + mi.extensionOffset = invalidOffset + + if si.sizecacheOffset.IsValid() && si.sizecacheType == sizecacheType { + mi.sizecacheOffset = si.sizecacheOffset + } + if si.unknownOffset.IsValid() && (si.unknownType == unknownFieldsAType || si.unknownType == unknownFieldsBType) { + mi.unknownOffset = si.unknownOffset + mi.unknownPtrKind = si.unknownType.Kind() == reflect.Ptr + } + if si.extensionOffset.IsValid() && si.extensionType == extensionFieldsType { + mi.extensionOffset = si.extensionOffset + } mi.coderFields = make(map[protowire.Number]*coderFieldInfo) fields := mi.Desc.Fields() @@ -73,6 +85,27 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { var funcs pointerCoderFuncs var childMessage *MessageInfo switch { + case ft == nil: + // This never occurs for generated message types. + // It implies that a hand-crafted type has missing Go fields + // for specific protobuf message fields. + funcs = pointerCoderFuncs{ + size: func(p pointer, f *coderFieldInfo, opts marshalOptions) int { + return 0 + }, + marshal: func(b []byte, p pointer, f *coderFieldInfo, opts marshalOptions) ([]byte, error) { + return nil, nil + }, + unmarshal: func(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, opts unmarshalOptions) (unmarshalOutput, error) { + panic("missing Go struct field for " + string(fd.FullName())) + }, + isInit: func(p pointer, f *coderFieldInfo) error { + panic("missing Go struct field for " + string(fd.FullName())) + }, + merge: func(dst, src pointer, f *coderFieldInfo, opts mergeOptions) { + panic("missing Go struct field for " + string(fd.FullName())) + }, + } case isOneof: fieldOffset = offsetOf(fs, mi.Exporter) case fd.IsWeak(): @@ -92,8 +125,8 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { funcs: funcs, mi: childMessage, validation: newFieldValidationInfo(mi, si, fd, ft), - isPointer: fd.Cardinality() == pref.Repeated || fd.HasPresence(), - isRequired: fd.Cardinality() == pref.Required, + isPointer: fd.Cardinality() == protoreflect.Repeated || fd.HasPresence(), + isRequired: fd.Cardinality() == protoreflect.Required, } mi.orderedCoderFields = append(mi.orderedCoderFields, cf) mi.coderFields[cf.num] = cf @@ -116,7 +149,7 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { return mi.orderedCoderFields[i].num < mi.orderedCoderFields[j].num }) - var maxDense pref.FieldNumber + var maxDense protoreflect.FieldNumber for _, cf := range mi.orderedCoderFields { if cf.num >= 16 && cf.num >= 2*maxDense { break @@ -136,18 +169,18 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { sort.Slice(mi.orderedCoderFields, func(i, j int) bool { fi := fields.ByNumber(mi.orderedCoderFields[i].num) fj := fields.ByNumber(mi.orderedCoderFields[j].num) - return fieldsort.Less(fi, fj) + return order.LegacyFieldOrder(fi, fj) }) } mi.needsInitCheck = needsInitCheck(mi.Desc) if mi.methods.Marshal == nil && mi.methods.Size == nil { - mi.methods.Flags |= piface.SupportMarshalDeterministic + mi.methods.Flags |= protoiface.SupportMarshalDeterministic mi.methods.Marshal = mi.marshal mi.methods.Size = mi.size } if mi.methods.Unmarshal == nil { - mi.methods.Flags |= piface.SupportUnmarshalDiscardUnknown + mi.methods.Flags |= protoiface.SupportUnmarshalDiscardUnknown mi.methods.Unmarshal = mi.unmarshal } if mi.methods.CheckInitialized == nil { @@ -157,3 +190,28 @@ func (mi *MessageInfo) makeCoderMethods(t reflect.Type, si structInfo) { mi.methods.Merge = mi.merge } } + +// getUnknownBytes returns a *[]byte for the unknown fields. +// It is the caller's responsibility to check whether the pointer is nil. +// This function is specially designed to be inlineable. +func (mi *MessageInfo) getUnknownBytes(p pointer) *[]byte { + if mi.unknownPtrKind { + return *p.Apply(mi.unknownOffset).BytesPtr() + } else { + return p.Apply(mi.unknownOffset).Bytes() + } +} + +// mutableUnknownBytes returns a *[]byte for the unknown fields. +// The returned pointer is guaranteed to not be nil. +func (mi *MessageInfo) mutableUnknownBytes(p pointer) *[]byte { + if mi.unknownPtrKind { + bp := p.Apply(mi.unknownOffset).BytesPtr() + if *bp == nil { + *bp = new([]byte) + } + return *bp + } else { + return p.Apply(mi.unknownOffset).Bytes() + } +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go index cfb68e12fb..b7a23faf1e 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_messageset.go @@ -29,8 +29,9 @@ func sizeMessageSet(mi *MessageInfo, p pointer, opts marshalOptions) (size int) size += xi.funcs.size(x.Value(), protowire.SizeTag(messageset.FieldMessage), opts) } - unknown := *p.Apply(mi.unknownOffset).Bytes() - size += messageset.SizeUnknown(unknown) + if u := mi.getUnknownBytes(p); u != nil { + size += messageset.SizeUnknown(*u) + } return size } @@ -69,10 +70,12 @@ func marshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts marshalOptions } } - unknown := *p.Apply(mi.unknownOffset).Bytes() - b, err := messageset.AppendUnknown(b, unknown) - if err != nil { - return b, err + if u := mi.getUnknownBytes(p); u != nil { + var err error + b, err = messageset.AppendUnknown(b, *u) + if err != nil { + return b, err + } } return b, nil @@ -100,13 +103,13 @@ func unmarshalMessageSet(mi *MessageInfo, b []byte, p pointer, opts unmarshalOpt *ep = make(map[int32]ExtensionField) } ext := *ep - unknown := p.Apply(mi.unknownOffset).Bytes() initialized := true err = messageset.Unmarshal(b, true, func(num protowire.Number, v []byte) error { o, err := mi.unmarshalExtension(v, num, protowire.BytesType, ext, opts) if err == errUnknown { - *unknown = protowire.AppendTag(*unknown, num, protowire.BytesType) - *unknown = append(*unknown, v...) + u := mi.mutableUnknownBytes(p) + *u = protowire.AppendTag(*u, num, protowire.BytesType) + *u = append(*u, v...) return nil } if !o.initialized { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go index 86f7dc3c9d..145c577bd6 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_reflect.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build purego || appengine // +build purego appengine package impl @@ -30,7 +31,7 @@ func consumeEnum(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInfo, _ } v, n := protowire.ConsumeVarint(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } p.v.Elem().SetInt(int64(v)) out.n = n @@ -130,12 +131,12 @@ func consumeEnumSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf if wtyp == protowire.BytesType { b, n := protowire.ConsumeBytes(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } for len(b) > 0 { v, n := protowire.ConsumeVarint(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } rv := reflect.New(s.Type().Elem()).Elem() rv.SetInt(int64(v)) @@ -150,7 +151,7 @@ func consumeEnumSlice(b []byte, p pointer, wtyp protowire.Type, f *coderFieldInf } v, n := protowire.ConsumeVarint(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } rv := reflect.New(s.Type().Elem()).Elem() rv.SetInt(int64(v)) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go index e899712388..576dcf3aac 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_tables.go @@ -10,7 +10,7 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/strs" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) // pointerCoderFuncs is a set of pointer encoding functions. @@ -25,83 +25,83 @@ type pointerCoderFuncs struct { // valueCoderFuncs is a set of protoreflect.Value encoding functions. type valueCoderFuncs struct { - size func(v pref.Value, tagsize int, opts marshalOptions) int - marshal func(b []byte, v pref.Value, wiretag uint64, opts marshalOptions) ([]byte, error) - unmarshal func(b []byte, v pref.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (pref.Value, unmarshalOutput, error) - isInit func(v pref.Value) error - merge func(dst, src pref.Value, opts mergeOptions) pref.Value + size func(v protoreflect.Value, tagsize int, opts marshalOptions) int + marshal func(b []byte, v protoreflect.Value, wiretag uint64, opts marshalOptions) ([]byte, error) + unmarshal func(b []byte, v protoreflect.Value, num protowire.Number, wtyp protowire.Type, opts unmarshalOptions) (protoreflect.Value, unmarshalOutput, error) + isInit func(v protoreflect.Value) error + merge func(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value } // fieldCoder returns pointer functions for a field, used for operating on // struct fields. -func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) { +func fieldCoder(fd protoreflect.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointerCoderFuncs) { switch { case fd.IsMap(): return encoderFuncsForMap(fd, ft) - case fd.Cardinality() == pref.Repeated && !fd.IsPacked(): + case fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked(): // Repeated fields (not packed). if ft.Kind() != reflect.Slice { break } ft := ft.Elem() switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolSlice } - case pref.EnumKind: + case protoreflect.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumSlice } - case pref.Int32Kind: + case protoreflect.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32Slice } - case pref.Sint32Kind: + case protoreflect.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32Slice } - case pref.Uint32Kind: + case protoreflect.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32Slice } - case pref.Int64Kind: + case protoreflect.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64Slice } - case pref.Sint64Kind: + case protoreflect.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64Slice } - case pref.Uint64Kind: + case protoreflect.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64Slice } - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32Slice } - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32Slice } - case pref.FloatKind: + case protoreflect.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatSlice } - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64Slice } - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64Slice } - case pref.DoubleKind: + case protoreflect.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoubleSlice } - case pref.StringKind: + case protoreflect.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringSliceValidateUTF8 } @@ -114,19 +114,19 @@ func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointer if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesSlice } - case pref.BytesKind: + case protoreflect.BytesKind: if ft.Kind() == reflect.String { return nil, coderStringSlice } if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesSlice } - case pref.MessageKind: + case protoreflect.MessageKind: return getMessageInfo(ft), makeMessageSliceFieldCoder(fd, ft) - case pref.GroupKind: + case protoreflect.GroupKind: return getMessageInfo(ft), makeGroupSliceFieldCoder(fd, ft) } - case fd.Cardinality() == pref.Repeated && fd.IsPacked(): + case fd.Cardinality() == protoreflect.Repeated && fd.IsPacked(): // Packed repeated fields. // // Only repeated fields of primitive numeric types @@ -136,128 +136,128 @@ func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointer } ft := ft.Elem() switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolPackedSlice } - case pref.EnumKind: + case protoreflect.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumPackedSlice } - case pref.Int32Kind: + case protoreflect.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32PackedSlice } - case pref.Sint32Kind: + case protoreflect.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32PackedSlice } - case pref.Uint32Kind: + case protoreflect.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32PackedSlice } - case pref.Int64Kind: + case protoreflect.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64PackedSlice } - case pref.Sint64Kind: + case protoreflect.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64PackedSlice } - case pref.Uint64Kind: + case protoreflect.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64PackedSlice } - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32PackedSlice } - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32PackedSlice } - case pref.FloatKind: + case protoreflect.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatPackedSlice } - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64PackedSlice } - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64PackedSlice } - case pref.DoubleKind: + case protoreflect.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoublePackedSlice } } - case fd.Kind() == pref.MessageKind: + case fd.Kind() == protoreflect.MessageKind: return getMessageInfo(ft), makeMessageFieldCoder(fd, ft) - case fd.Kind() == pref.GroupKind: + case fd.Kind() == protoreflect.GroupKind: return getMessageInfo(ft), makeGroupFieldCoder(fd, ft) - case fd.Syntax() == pref.Proto3 && fd.ContainingOneof() == nil: + case fd.Syntax() == protoreflect.Proto3 && fd.ContainingOneof() == nil: // Populated oneof fields always encode even if set to the zero value, // which normally are not encoded in proto3. switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolNoZero } - case pref.EnumKind: + case protoreflect.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumNoZero } - case pref.Int32Kind: + case protoreflect.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32NoZero } - case pref.Sint32Kind: + case protoreflect.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32NoZero } - case pref.Uint32Kind: + case protoreflect.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32NoZero } - case pref.Int64Kind: + case protoreflect.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64NoZero } - case pref.Sint64Kind: + case protoreflect.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64NoZero } - case pref.Uint64Kind: + case protoreflect.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64NoZero } - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32NoZero } - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32NoZero } - case pref.FloatKind: + case protoreflect.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatNoZero } - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64NoZero } - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64NoZero } - case pref.DoubleKind: + case protoreflect.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoubleNoZero } - case pref.StringKind: + case protoreflect.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringNoZeroValidateUTF8 } @@ -270,7 +270,7 @@ func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointer if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytesNoZero } - case pref.BytesKind: + case protoreflect.BytesKind: if ft.Kind() == reflect.String { return nil, coderStringNoZero } @@ -281,133 +281,133 @@ func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointer case ft.Kind() == reflect.Ptr: ft := ft.Elem() switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBoolPtr } - case pref.EnumKind: + case protoreflect.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnumPtr } - case pref.Int32Kind: + case protoreflect.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32Ptr } - case pref.Sint32Kind: + case protoreflect.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32Ptr } - case pref.Uint32Kind: + case protoreflect.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32Ptr } - case pref.Int64Kind: + case protoreflect.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64Ptr } - case pref.Sint64Kind: + case protoreflect.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64Ptr } - case pref.Uint64Kind: + case protoreflect.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64Ptr } - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32Ptr } - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32Ptr } - case pref.FloatKind: + case protoreflect.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloatPtr } - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64Ptr } - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64Ptr } - case pref.DoubleKind: + case protoreflect.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDoublePtr } - case pref.StringKind: + case protoreflect.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringPtrValidateUTF8 } if ft.Kind() == reflect.String { return nil, coderStringPtr } - case pref.BytesKind: + case protoreflect.BytesKind: if ft.Kind() == reflect.String { return nil, coderStringPtr } } default: switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: if ft.Kind() == reflect.Bool { return nil, coderBool } - case pref.EnumKind: + case protoreflect.EnumKind: if ft.Kind() == reflect.Int32 { return nil, coderEnum } - case pref.Int32Kind: + case protoreflect.Int32Kind: if ft.Kind() == reflect.Int32 { return nil, coderInt32 } - case pref.Sint32Kind: + case protoreflect.Sint32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSint32 } - case pref.Uint32Kind: + case protoreflect.Uint32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderUint32 } - case pref.Int64Kind: + case protoreflect.Int64Kind: if ft.Kind() == reflect.Int64 { return nil, coderInt64 } - case pref.Sint64Kind: + case protoreflect.Sint64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSint64 } - case pref.Uint64Kind: + case protoreflect.Uint64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderUint64 } - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: if ft.Kind() == reflect.Int32 { return nil, coderSfixed32 } - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: if ft.Kind() == reflect.Uint32 { return nil, coderFixed32 } - case pref.FloatKind: + case protoreflect.FloatKind: if ft.Kind() == reflect.Float32 { return nil, coderFloat } - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: if ft.Kind() == reflect.Int64 { return nil, coderSfixed64 } - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: if ft.Kind() == reflect.Uint64 { return nil, coderFixed64 } - case pref.DoubleKind: + case protoreflect.DoubleKind: if ft.Kind() == reflect.Float64 { return nil, coderDouble } - case pref.StringKind: + case protoreflect.StringKind: if ft.Kind() == reflect.String && strs.EnforceUTF8(fd) { return nil, coderStringValidateUTF8 } @@ -420,7 +420,7 @@ func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointer if ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 { return nil, coderBytes } - case pref.BytesKind: + case protoreflect.BytesKind: if ft.Kind() == reflect.String { return nil, coderString } @@ -434,122 +434,122 @@ func fieldCoder(fd pref.FieldDescriptor, ft reflect.Type) (*MessageInfo, pointer // encoderFuncsForValue returns value functions for a field, used for // extension values and map encoding. -func encoderFuncsForValue(fd pref.FieldDescriptor) valueCoderFuncs { +func encoderFuncsForValue(fd protoreflect.FieldDescriptor) valueCoderFuncs { switch { - case fd.Cardinality() == pref.Repeated && !fd.IsPacked(): + case fd.Cardinality() == protoreflect.Repeated && !fd.IsPacked(): switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: return coderBoolSliceValue - case pref.EnumKind: + case protoreflect.EnumKind: return coderEnumSliceValue - case pref.Int32Kind: + case protoreflect.Int32Kind: return coderInt32SliceValue - case pref.Sint32Kind: + case protoreflect.Sint32Kind: return coderSint32SliceValue - case pref.Uint32Kind: + case protoreflect.Uint32Kind: return coderUint32SliceValue - case pref.Int64Kind: + case protoreflect.Int64Kind: return coderInt64SliceValue - case pref.Sint64Kind: + case protoreflect.Sint64Kind: return coderSint64SliceValue - case pref.Uint64Kind: + case protoreflect.Uint64Kind: return coderUint64SliceValue - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: return coderSfixed32SliceValue - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: return coderFixed32SliceValue - case pref.FloatKind: + case protoreflect.FloatKind: return coderFloatSliceValue - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: return coderSfixed64SliceValue - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: return coderFixed64SliceValue - case pref.DoubleKind: + case protoreflect.DoubleKind: return coderDoubleSliceValue - case pref.StringKind: + case protoreflect.StringKind: // We don't have a UTF-8 validating coder for repeated string fields. // Value coders are used for extensions and maps. // Extensions are never proto3, and maps never contain lists. return coderStringSliceValue - case pref.BytesKind: + case protoreflect.BytesKind: return coderBytesSliceValue - case pref.MessageKind: + case protoreflect.MessageKind: return coderMessageSliceValue - case pref.GroupKind: + case protoreflect.GroupKind: return coderGroupSliceValue } - case fd.Cardinality() == pref.Repeated && fd.IsPacked(): + case fd.Cardinality() == protoreflect.Repeated && fd.IsPacked(): switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: return coderBoolPackedSliceValue - case pref.EnumKind: + case protoreflect.EnumKind: return coderEnumPackedSliceValue - case pref.Int32Kind: + case protoreflect.Int32Kind: return coderInt32PackedSliceValue - case pref.Sint32Kind: + case protoreflect.Sint32Kind: return coderSint32PackedSliceValue - case pref.Uint32Kind: + case protoreflect.Uint32Kind: return coderUint32PackedSliceValue - case pref.Int64Kind: + case protoreflect.Int64Kind: return coderInt64PackedSliceValue - case pref.Sint64Kind: + case protoreflect.Sint64Kind: return coderSint64PackedSliceValue - case pref.Uint64Kind: + case protoreflect.Uint64Kind: return coderUint64PackedSliceValue - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: return coderSfixed32PackedSliceValue - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: return coderFixed32PackedSliceValue - case pref.FloatKind: + case protoreflect.FloatKind: return coderFloatPackedSliceValue - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: return coderSfixed64PackedSliceValue - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: return coderFixed64PackedSliceValue - case pref.DoubleKind: + case protoreflect.DoubleKind: return coderDoublePackedSliceValue } default: switch fd.Kind() { default: - case pref.BoolKind: + case protoreflect.BoolKind: return coderBoolValue - case pref.EnumKind: + case protoreflect.EnumKind: return coderEnumValue - case pref.Int32Kind: + case protoreflect.Int32Kind: return coderInt32Value - case pref.Sint32Kind: + case protoreflect.Sint32Kind: return coderSint32Value - case pref.Uint32Kind: + case protoreflect.Uint32Kind: return coderUint32Value - case pref.Int64Kind: + case protoreflect.Int64Kind: return coderInt64Value - case pref.Sint64Kind: + case protoreflect.Sint64Kind: return coderSint64Value - case pref.Uint64Kind: + case protoreflect.Uint64Kind: return coderUint64Value - case pref.Sfixed32Kind: + case protoreflect.Sfixed32Kind: return coderSfixed32Value - case pref.Fixed32Kind: + case protoreflect.Fixed32Kind: return coderFixed32Value - case pref.FloatKind: + case protoreflect.FloatKind: return coderFloatValue - case pref.Sfixed64Kind: + case protoreflect.Sfixed64Kind: return coderSfixed64Value - case pref.Fixed64Kind: + case protoreflect.Fixed64Kind: return coderFixed64Value - case pref.DoubleKind: + case protoreflect.DoubleKind: return coderDoubleValue - case pref.StringKind: + case protoreflect.StringKind: if strs.EnforceUTF8(fd) { return coderStringValueValidateUTF8 } return coderStringValue - case pref.BytesKind: + case protoreflect.BytesKind: return coderBytesValue - case pref.MessageKind: + case protoreflect.MessageKind: return coderMessageValue - case pref.GroupKind: + case protoreflect.GroupKind: return coderGroupValue } } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go index e118af1e20..757642e23c 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/codec_unsafe.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !purego && !appengine // +build !purego,!appengine package impl diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go index 36a90dff38..185ef2efa5 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go @@ -8,7 +8,7 @@ import ( "fmt" "reflect" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) // unwrapper unwraps the value to the underlying value. @@ -20,13 +20,13 @@ type unwrapper interface { // A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types. type Converter interface { // PBValueOf converts a reflect.Value to a protoreflect.Value. - PBValueOf(reflect.Value) pref.Value + PBValueOf(reflect.Value) protoreflect.Value // GoValueOf converts a protoreflect.Value to a reflect.Value. - GoValueOf(pref.Value) reflect.Value + GoValueOf(protoreflect.Value) reflect.Value // IsValidPB returns whether a protoreflect.Value is compatible with this type. - IsValidPB(pref.Value) bool + IsValidPB(protoreflect.Value) bool // IsValidGo returns whether a reflect.Value is compatible with this type. IsValidGo(reflect.Value) bool @@ -34,12 +34,12 @@ type Converter interface { // New returns a new field value. // For scalars, it returns the default value of the field. // For composite types, it returns a new mutable value. - New() pref.Value + New() protoreflect.Value // Zero returns a new field value. // For scalars, it returns the default value of the field. // For composite types, it returns an immutable, empty value. - Zero() pref.Value + Zero() protoreflect.Value } // NewConverter matches a Go type with a protobuf field and returns a Converter @@ -50,7 +50,7 @@ type Converter interface { // This matcher deliberately supports a wider range of Go types than what // protoc-gen-go historically generated to be able to automatically wrap some // v1 messages generated by other forks of protoc-gen-go. -func NewConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { +func NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { switch { case fd.IsList(): return newListConverter(t, fd) @@ -59,7 +59,6 @@ func NewConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { default: return newSingularConverter(t, fd) } - panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } var ( @@ -76,68 +75,68 @@ var ( ) var ( - boolZero = pref.ValueOfBool(false) - int32Zero = pref.ValueOfInt32(0) - int64Zero = pref.ValueOfInt64(0) - uint32Zero = pref.ValueOfUint32(0) - uint64Zero = pref.ValueOfUint64(0) - float32Zero = pref.ValueOfFloat32(0) - float64Zero = pref.ValueOfFloat64(0) - stringZero = pref.ValueOfString("") - bytesZero = pref.ValueOfBytes(nil) + boolZero = protoreflect.ValueOfBool(false) + int32Zero = protoreflect.ValueOfInt32(0) + int64Zero = protoreflect.ValueOfInt64(0) + uint32Zero = protoreflect.ValueOfUint32(0) + uint64Zero = protoreflect.ValueOfUint64(0) + float32Zero = protoreflect.ValueOfFloat32(0) + float64Zero = protoreflect.ValueOfFloat64(0) + stringZero = protoreflect.ValueOfString("") + bytesZero = protoreflect.ValueOfBytes(nil) ) -func newSingularConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { - defVal := func(fd pref.FieldDescriptor, zero pref.Value) pref.Value { - if fd.Cardinality() == pref.Repeated { +func newSingularConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { + defVal := func(fd protoreflect.FieldDescriptor, zero protoreflect.Value) protoreflect.Value { + if fd.Cardinality() == protoreflect.Repeated { // Default isn't defined for repeated fields. return zero } return fd.Default() } switch fd.Kind() { - case pref.BoolKind: + case protoreflect.BoolKind: if t.Kind() == reflect.Bool { return &boolConverter{t, defVal(fd, boolZero)} } - case pref.Int32Kind, pref.Sint32Kind, pref.Sfixed32Kind: + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: if t.Kind() == reflect.Int32 { return &int32Converter{t, defVal(fd, int32Zero)} } - case pref.Int64Kind, pref.Sint64Kind, pref.Sfixed64Kind: + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: if t.Kind() == reflect.Int64 { return &int64Converter{t, defVal(fd, int64Zero)} } - case pref.Uint32Kind, pref.Fixed32Kind: + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: if t.Kind() == reflect.Uint32 { return &uint32Converter{t, defVal(fd, uint32Zero)} } - case pref.Uint64Kind, pref.Fixed64Kind: + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: if t.Kind() == reflect.Uint64 { return &uint64Converter{t, defVal(fd, uint64Zero)} } - case pref.FloatKind: + case protoreflect.FloatKind: if t.Kind() == reflect.Float32 { return &float32Converter{t, defVal(fd, float32Zero)} } - case pref.DoubleKind: + case protoreflect.DoubleKind: if t.Kind() == reflect.Float64 { return &float64Converter{t, defVal(fd, float64Zero)} } - case pref.StringKind: + case protoreflect.StringKind: if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) { return &stringConverter{t, defVal(fd, stringZero)} } - case pref.BytesKind: + case protoreflect.BytesKind: if t.Kind() == reflect.String || (t.Kind() == reflect.Slice && t.Elem() == byteType) { return &bytesConverter{t, defVal(fd, bytesZero)} } - case pref.EnumKind: + case protoreflect.EnumKind: // Handle enums, which must be a named int32 type. if t.Kind() == reflect.Int32 { return newEnumConverter(t, fd) } - case pref.MessageKind, pref.GroupKind: + case protoreflect.MessageKind, protoreflect.GroupKind: return newMessageConverter(t) } panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) @@ -145,184 +144,184 @@ func newSingularConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { type boolConverter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *boolConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *boolConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfBool(v.Bool()) + return protoreflect.ValueOfBool(v.Bool()) } -func (c *boolConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *boolConverter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(v.Bool()).Convert(c.goType) } -func (c *boolConverter) IsValidPB(v pref.Value) bool { +func (c *boolConverter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(bool) return ok } func (c *boolConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *boolConverter) New() pref.Value { return c.def } -func (c *boolConverter) Zero() pref.Value { return c.def } +func (c *boolConverter) New() protoreflect.Value { return c.def } +func (c *boolConverter) Zero() protoreflect.Value { return c.def } type int32Converter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *int32Converter) PBValueOf(v reflect.Value) pref.Value { +func (c *int32Converter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfInt32(int32(v.Int())) + return protoreflect.ValueOfInt32(int32(v.Int())) } -func (c *int32Converter) GoValueOf(v pref.Value) reflect.Value { +func (c *int32Converter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(int32(v.Int())).Convert(c.goType) } -func (c *int32Converter) IsValidPB(v pref.Value) bool { +func (c *int32Converter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(int32) return ok } func (c *int32Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *int32Converter) New() pref.Value { return c.def } -func (c *int32Converter) Zero() pref.Value { return c.def } +func (c *int32Converter) New() protoreflect.Value { return c.def } +func (c *int32Converter) Zero() protoreflect.Value { return c.def } type int64Converter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *int64Converter) PBValueOf(v reflect.Value) pref.Value { +func (c *int64Converter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfInt64(int64(v.Int())) + return protoreflect.ValueOfInt64(int64(v.Int())) } -func (c *int64Converter) GoValueOf(v pref.Value) reflect.Value { +func (c *int64Converter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(int64(v.Int())).Convert(c.goType) } -func (c *int64Converter) IsValidPB(v pref.Value) bool { +func (c *int64Converter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(int64) return ok } func (c *int64Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *int64Converter) New() pref.Value { return c.def } -func (c *int64Converter) Zero() pref.Value { return c.def } +func (c *int64Converter) New() protoreflect.Value { return c.def } +func (c *int64Converter) Zero() protoreflect.Value { return c.def } type uint32Converter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *uint32Converter) PBValueOf(v reflect.Value) pref.Value { +func (c *uint32Converter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfUint32(uint32(v.Uint())) + return protoreflect.ValueOfUint32(uint32(v.Uint())) } -func (c *uint32Converter) GoValueOf(v pref.Value) reflect.Value { +func (c *uint32Converter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(uint32(v.Uint())).Convert(c.goType) } -func (c *uint32Converter) IsValidPB(v pref.Value) bool { +func (c *uint32Converter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(uint32) return ok } func (c *uint32Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *uint32Converter) New() pref.Value { return c.def } -func (c *uint32Converter) Zero() pref.Value { return c.def } +func (c *uint32Converter) New() protoreflect.Value { return c.def } +func (c *uint32Converter) Zero() protoreflect.Value { return c.def } type uint64Converter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *uint64Converter) PBValueOf(v reflect.Value) pref.Value { +func (c *uint64Converter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfUint64(uint64(v.Uint())) + return protoreflect.ValueOfUint64(uint64(v.Uint())) } -func (c *uint64Converter) GoValueOf(v pref.Value) reflect.Value { +func (c *uint64Converter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(uint64(v.Uint())).Convert(c.goType) } -func (c *uint64Converter) IsValidPB(v pref.Value) bool { +func (c *uint64Converter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(uint64) return ok } func (c *uint64Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *uint64Converter) New() pref.Value { return c.def } -func (c *uint64Converter) Zero() pref.Value { return c.def } +func (c *uint64Converter) New() protoreflect.Value { return c.def } +func (c *uint64Converter) Zero() protoreflect.Value { return c.def } type float32Converter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *float32Converter) PBValueOf(v reflect.Value) pref.Value { +func (c *float32Converter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfFloat32(float32(v.Float())) + return protoreflect.ValueOfFloat32(float32(v.Float())) } -func (c *float32Converter) GoValueOf(v pref.Value) reflect.Value { +func (c *float32Converter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(float32(v.Float())).Convert(c.goType) } -func (c *float32Converter) IsValidPB(v pref.Value) bool { +func (c *float32Converter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(float32) return ok } func (c *float32Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *float32Converter) New() pref.Value { return c.def } -func (c *float32Converter) Zero() pref.Value { return c.def } +func (c *float32Converter) New() protoreflect.Value { return c.def } +func (c *float32Converter) Zero() protoreflect.Value { return c.def } type float64Converter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *float64Converter) PBValueOf(v reflect.Value) pref.Value { +func (c *float64Converter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfFloat64(float64(v.Float())) + return protoreflect.ValueOfFloat64(float64(v.Float())) } -func (c *float64Converter) GoValueOf(v pref.Value) reflect.Value { +func (c *float64Converter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(float64(v.Float())).Convert(c.goType) } -func (c *float64Converter) IsValidPB(v pref.Value) bool { +func (c *float64Converter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(float64) return ok } func (c *float64Converter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *float64Converter) New() pref.Value { return c.def } -func (c *float64Converter) Zero() pref.Value { return c.def } +func (c *float64Converter) New() protoreflect.Value { return c.def } +func (c *float64Converter) Zero() protoreflect.Value { return c.def } type stringConverter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *stringConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *stringConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfString(v.Convert(stringType).String()) + return protoreflect.ValueOfString(v.Convert(stringType).String()) } -func (c *stringConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *stringConverter) GoValueOf(v protoreflect.Value) reflect.Value { // pref.Value.String never panics, so we go through an interface // conversion here to check the type. s := v.Interface().(string) @@ -331,71 +330,71 @@ func (c *stringConverter) GoValueOf(v pref.Value) reflect.Value { } return reflect.ValueOf(s).Convert(c.goType) } -func (c *stringConverter) IsValidPB(v pref.Value) bool { +func (c *stringConverter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().(string) return ok } func (c *stringConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *stringConverter) New() pref.Value { return c.def } -func (c *stringConverter) Zero() pref.Value { return c.def } +func (c *stringConverter) New() protoreflect.Value { return c.def } +func (c *stringConverter) Zero() protoreflect.Value { return c.def } type bytesConverter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func (c *bytesConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *bytesConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } if c.goType.Kind() == reflect.String && v.Len() == 0 { - return pref.ValueOfBytes(nil) // ensure empty string is []byte(nil) + return protoreflect.ValueOfBytes(nil) // ensure empty string is []byte(nil) } - return pref.ValueOfBytes(v.Convert(bytesType).Bytes()) + return protoreflect.ValueOfBytes(v.Convert(bytesType).Bytes()) } -func (c *bytesConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *bytesConverter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(v.Bytes()).Convert(c.goType) } -func (c *bytesConverter) IsValidPB(v pref.Value) bool { +func (c *bytesConverter) IsValidPB(v protoreflect.Value) bool { _, ok := v.Interface().([]byte) return ok } func (c *bytesConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *bytesConverter) New() pref.Value { return c.def } -func (c *bytesConverter) Zero() pref.Value { return c.def } +func (c *bytesConverter) New() protoreflect.Value { return c.def } +func (c *bytesConverter) Zero() protoreflect.Value { return c.def } type enumConverter struct { goType reflect.Type - def pref.Value + def protoreflect.Value } -func newEnumConverter(goType reflect.Type, fd pref.FieldDescriptor) Converter { - var def pref.Value - if fd.Cardinality() == pref.Repeated { - def = pref.ValueOfEnum(fd.Enum().Values().Get(0).Number()) +func newEnumConverter(goType reflect.Type, fd protoreflect.FieldDescriptor) Converter { + var def protoreflect.Value + if fd.Cardinality() == protoreflect.Repeated { + def = protoreflect.ValueOfEnum(fd.Enum().Values().Get(0).Number()) } else { def = fd.Default() } return &enumConverter{goType, def} } -func (c *enumConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *enumConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfEnum(pref.EnumNumber(v.Int())) + return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v.Int())) } -func (c *enumConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *enumConverter) GoValueOf(v protoreflect.Value) reflect.Value { return reflect.ValueOf(v.Enum()).Convert(c.goType) } -func (c *enumConverter) IsValidPB(v pref.Value) bool { - _, ok := v.Interface().(pref.EnumNumber) +func (c *enumConverter) IsValidPB(v protoreflect.Value) bool { + _, ok := v.Interface().(protoreflect.EnumNumber) return ok } @@ -403,11 +402,11 @@ func (c *enumConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *enumConverter) New() pref.Value { +func (c *enumConverter) New() protoreflect.Value { return c.def } -func (c *enumConverter) Zero() pref.Value { +func (c *enumConverter) Zero() protoreflect.Value { return c.def } @@ -419,17 +418,24 @@ func newMessageConverter(goType reflect.Type) Converter { return &messageConverter{goType} } -func (c *messageConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *messageConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - if m, ok := v.Interface().(pref.ProtoMessage); ok { - return pref.ValueOfMessage(m.ProtoReflect()) + if c.isNonPointer() { + if v.CanAddr() { + v = v.Addr() // T => *T + } else { + v = reflect.Zero(reflect.PtrTo(v.Type())) + } + } + if m, ok := v.Interface().(protoreflect.ProtoMessage); ok { + return protoreflect.ValueOfMessage(m.ProtoReflect()) } - return pref.ValueOfMessage(legacyWrapMessage(v)) + return protoreflect.ValueOfMessage(legacyWrapMessage(v)) } -func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *messageConverter) GoValueOf(v protoreflect.Value) reflect.Value { m := v.Message() var rv reflect.Value if u, ok := m.(unwrapper); ok { @@ -437,13 +443,23 @@ func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value { } else { rv = reflect.ValueOf(m.Interface()) } + if c.isNonPointer() { + if rv.Type() != reflect.PtrTo(c.goType) { + panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), reflect.PtrTo(c.goType))) + } + if !rv.IsNil() { + rv = rv.Elem() // *T => T + } else { + rv = reflect.Zero(rv.Type().Elem()) + } + } if rv.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", rv.Type(), c.goType)) } return rv } -func (c *messageConverter) IsValidPB(v pref.Value) bool { +func (c *messageConverter) IsValidPB(v protoreflect.Value) bool { m := v.Message() var rv reflect.Value if u, ok := m.(unwrapper); ok { @@ -451,6 +467,9 @@ func (c *messageConverter) IsValidPB(v pref.Value) bool { } else { rv = reflect.ValueOf(m.Interface()) } + if c.isNonPointer() { + return rv.Type() == reflect.PtrTo(c.goType) + } return rv.Type() == c.goType } @@ -458,10 +477,19 @@ func (c *messageConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *messageConverter) New() pref.Value { +func (c *messageConverter) New() protoreflect.Value { + if c.isNonPointer() { + return c.PBValueOf(reflect.New(c.goType).Elem()) + } return c.PBValueOf(reflect.New(c.goType.Elem())) } -func (c *messageConverter) Zero() pref.Value { +func (c *messageConverter) Zero() protoreflect.Value { return c.PBValueOf(reflect.Zero(c.goType)) } + +// isNonPointer reports whether the type is a non-pointer type. +// This never occurs for generated message types. +func (c *messageConverter) isNonPointer() bool { + return c.goType.Kind() != reflect.Ptr +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_list.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_list.go index 6fccab520e..f89136516f 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_list.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_list.go @@ -8,10 +8,10 @@ import ( "fmt" "reflect" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) -func newListConverter(t reflect.Type, fd pref.FieldDescriptor) Converter { +func newListConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { switch { case t.Kind() == reflect.Ptr && t.Elem().Kind() == reflect.Slice: return &listPtrConverter{t, newSingularConverter(t.Elem().Elem(), fd)} @@ -26,16 +26,16 @@ type listConverter struct { c Converter } -func (c *listConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *listConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } pv := reflect.New(c.goType) pv.Elem().Set(v) - return pref.ValueOfList(&listReflect{pv, c.c}) + return protoreflect.ValueOfList(&listReflect{pv, c.c}) } -func (c *listConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *listConverter) GoValueOf(v protoreflect.Value) reflect.Value { rv := v.List().(*listReflect).v if rv.IsNil() { return reflect.Zero(c.goType) @@ -43,7 +43,7 @@ func (c *listConverter) GoValueOf(v pref.Value) reflect.Value { return rv.Elem() } -func (c *listConverter) IsValidPB(v pref.Value) bool { +func (c *listConverter) IsValidPB(v protoreflect.Value) bool { list, ok := v.Interface().(*listReflect) if !ok { return false @@ -55,12 +55,12 @@ func (c *listConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *listConverter) New() pref.Value { - return pref.ValueOfList(&listReflect{reflect.New(c.goType), c.c}) +func (c *listConverter) New() protoreflect.Value { + return protoreflect.ValueOfList(&listReflect{reflect.New(c.goType), c.c}) } -func (c *listConverter) Zero() pref.Value { - return pref.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c}) +func (c *listConverter) Zero() protoreflect.Value { + return protoreflect.ValueOfList(&listReflect{reflect.Zero(reflect.PtrTo(c.goType)), c.c}) } type listPtrConverter struct { @@ -68,18 +68,18 @@ type listPtrConverter struct { c Converter } -func (c *listPtrConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *listPtrConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfList(&listReflect{v, c.c}) + return protoreflect.ValueOfList(&listReflect{v, c.c}) } -func (c *listPtrConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *listPtrConverter) GoValueOf(v protoreflect.Value) reflect.Value { return v.List().(*listReflect).v } -func (c *listPtrConverter) IsValidPB(v pref.Value) bool { +func (c *listPtrConverter) IsValidPB(v protoreflect.Value) bool { list, ok := v.Interface().(*listReflect) if !ok { return false @@ -91,11 +91,11 @@ func (c *listPtrConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *listPtrConverter) New() pref.Value { +func (c *listPtrConverter) New() protoreflect.Value { return c.PBValueOf(reflect.New(c.goType.Elem())) } -func (c *listPtrConverter) Zero() pref.Value { +func (c *listPtrConverter) Zero() protoreflect.Value { return c.PBValueOf(reflect.Zero(c.goType)) } @@ -110,16 +110,16 @@ func (ls *listReflect) Len() int { } return ls.v.Elem().Len() } -func (ls *listReflect) Get(i int) pref.Value { +func (ls *listReflect) Get(i int) protoreflect.Value { return ls.conv.PBValueOf(ls.v.Elem().Index(i)) } -func (ls *listReflect) Set(i int, v pref.Value) { +func (ls *listReflect) Set(i int, v protoreflect.Value) { ls.v.Elem().Index(i).Set(ls.conv.GoValueOf(v)) } -func (ls *listReflect) Append(v pref.Value) { +func (ls *listReflect) Append(v protoreflect.Value) { ls.v.Elem().Set(reflect.Append(ls.v.Elem(), ls.conv.GoValueOf(v))) } -func (ls *listReflect) AppendMutable() pref.Value { +func (ls *listReflect) AppendMutable() protoreflect.Value { if _, ok := ls.conv.(*messageConverter); !ok { panic("invalid AppendMutable on list with non-message type") } @@ -130,7 +130,7 @@ func (ls *listReflect) AppendMutable() pref.Value { func (ls *listReflect) Truncate(i int) { ls.v.Elem().Set(ls.v.Elem().Slice(0, i)) } -func (ls *listReflect) NewElement() pref.Value { +func (ls *listReflect) NewElement() protoreflect.Value { return ls.conv.New() } func (ls *listReflect) IsValid() bool { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_map.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_map.go index de06b2593f..f30b0a0576 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_map.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert_map.go @@ -8,7 +8,7 @@ import ( "fmt" "reflect" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) type mapConverter struct { @@ -16,7 +16,7 @@ type mapConverter struct { keyConv, valConv Converter } -func newMapConverter(t reflect.Type, fd pref.FieldDescriptor) *mapConverter { +func newMapConverter(t reflect.Type, fd protoreflect.FieldDescriptor) *mapConverter { if t.Kind() != reflect.Map { panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } @@ -27,18 +27,18 @@ func newMapConverter(t reflect.Type, fd pref.FieldDescriptor) *mapConverter { } } -func (c *mapConverter) PBValueOf(v reflect.Value) pref.Value { +func (c *mapConverter) PBValueOf(v reflect.Value) protoreflect.Value { if v.Type() != c.goType { panic(fmt.Sprintf("invalid type: got %v, want %v", v.Type(), c.goType)) } - return pref.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv}) + return protoreflect.ValueOfMap(&mapReflect{v, c.keyConv, c.valConv}) } -func (c *mapConverter) GoValueOf(v pref.Value) reflect.Value { +func (c *mapConverter) GoValueOf(v protoreflect.Value) reflect.Value { return v.Map().(*mapReflect).v } -func (c *mapConverter) IsValidPB(v pref.Value) bool { +func (c *mapConverter) IsValidPB(v protoreflect.Value) bool { mapv, ok := v.Interface().(*mapReflect) if !ok { return false @@ -50,11 +50,11 @@ func (c *mapConverter) IsValidGo(v reflect.Value) bool { return v.IsValid() && v.Type() == c.goType } -func (c *mapConverter) New() pref.Value { +func (c *mapConverter) New() protoreflect.Value { return c.PBValueOf(reflect.MakeMap(c.goType)) } -func (c *mapConverter) Zero() pref.Value { +func (c *mapConverter) Zero() protoreflect.Value { return c.PBValueOf(reflect.Zero(c.goType)) } @@ -67,29 +67,29 @@ type mapReflect struct { func (ms *mapReflect) Len() int { return ms.v.Len() } -func (ms *mapReflect) Has(k pref.MapKey) bool { +func (ms *mapReflect) Has(k protoreflect.MapKey) bool { rk := ms.keyConv.GoValueOf(k.Value()) rv := ms.v.MapIndex(rk) return rv.IsValid() } -func (ms *mapReflect) Get(k pref.MapKey) pref.Value { +func (ms *mapReflect) Get(k protoreflect.MapKey) protoreflect.Value { rk := ms.keyConv.GoValueOf(k.Value()) rv := ms.v.MapIndex(rk) if !rv.IsValid() { - return pref.Value{} + return protoreflect.Value{} } return ms.valConv.PBValueOf(rv) } -func (ms *mapReflect) Set(k pref.MapKey, v pref.Value) { +func (ms *mapReflect) Set(k protoreflect.MapKey, v protoreflect.Value) { rk := ms.keyConv.GoValueOf(k.Value()) rv := ms.valConv.GoValueOf(v) ms.v.SetMapIndex(rk, rv) } -func (ms *mapReflect) Clear(k pref.MapKey) { +func (ms *mapReflect) Clear(k protoreflect.MapKey) { rk := ms.keyConv.GoValueOf(k.Value()) ms.v.SetMapIndex(rk, reflect.Value{}) } -func (ms *mapReflect) Mutable(k pref.MapKey) pref.Value { +func (ms *mapReflect) Mutable(k protoreflect.MapKey) protoreflect.Value { if _, ok := ms.valConv.(*messageConverter); !ok { panic("invalid Mutable on map with non-message value type") } @@ -100,7 +100,7 @@ func (ms *mapReflect) Mutable(k pref.MapKey) pref.Value { } return v } -func (ms *mapReflect) Range(f func(pref.MapKey, pref.Value) bool) { +func (ms *mapReflect) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) { iter := mapRange(ms.v) for iter.Next() { k := ms.keyConv.PBValueOf(iter.Key()).MapKey() @@ -110,7 +110,7 @@ func (ms *mapReflect) Range(f func(pref.MapKey, pref.Value) bool) { } } } -func (ms *mapReflect) NewValue() pref.Value { +func (ms *mapReflect) NewValue() protoreflect.Value { return ms.valConv.New() } func (ms *mapReflect) IsValid() bool { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/decode.go index 85ba1d3b33..cda0520c27 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/decode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/decode.go @@ -12,17 +12,20 @@ import ( "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/runtime/protoiface" - piface "google.golang.org/protobuf/runtime/protoiface" ) +var errDecode = errors.New("cannot parse invalid wire-format data") +var errRecursionDepth = errors.New("exceeded maximum recursion depth") + type unmarshalOptions struct { flags protoiface.UnmarshalInputFlags resolver interface { FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } + depth int } func (o unmarshalOptions) Options() proto.UnmarshalOptions { @@ -34,14 +37,17 @@ func (o unmarshalOptions) Options() proto.UnmarshalOptions { } } -func (o unmarshalOptions) DiscardUnknown() bool { return o.flags&piface.UnmarshalDiscardUnknown != 0 } +func (o unmarshalOptions) DiscardUnknown() bool { + return o.flags&protoiface.UnmarshalDiscardUnknown != 0 +} func (o unmarshalOptions) IsDefault() bool { - return o.flags == 0 && o.resolver == preg.GlobalTypes + return o.flags == 0 && o.resolver == protoregistry.GlobalTypes } var lazyUnmarshalOptions = unmarshalOptions{ - resolver: preg.GlobalTypes, + resolver: protoregistry.GlobalTypes, + depth: protowire.DefaultRecursionLimit, } type unmarshalOutput struct { @@ -50,7 +56,7 @@ type unmarshalOutput struct { } // unmarshal is protoreflect.Methods.Unmarshal. -func (mi *MessageInfo) unmarshal(in piface.UnmarshalInput) (piface.UnmarshalOutput, error) { +func (mi *MessageInfo) unmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { var p pointer if ms, ok := in.Message.(*messageState); ok { p = ms.pointer() @@ -60,12 +66,13 @@ func (mi *MessageInfo) unmarshal(in piface.UnmarshalInput) (piface.UnmarshalOutp out, err := mi.unmarshalPointer(in.Buf, p, 0, unmarshalOptions{ flags: in.Flags, resolver: in.Resolver, + depth: in.Depth, }) - var flags piface.UnmarshalOutputFlags + var flags protoiface.UnmarshalOutputFlags if out.initialized { - flags |= piface.UnmarshalInitialized + flags |= protoiface.UnmarshalInitialized } - return piface.UnmarshalOutput{ + return protoiface.UnmarshalOutput{ Flags: flags, }, err } @@ -80,6 +87,10 @@ var errUnknown = errors.New("unknown") func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire.Number, opts unmarshalOptions) (out unmarshalOutput, err error) { mi.init() + opts.depth-- + if opts.depth < 0 { + return out, errRecursionDepth + } if flags.ProtoLegacy && mi.isMessageSet { return unmarshalMessageSet(mi, b, p, opts) } @@ -100,13 +111,13 @@ func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire. var n int tag, n = protowire.ConsumeVarint(b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } b = b[n:] } var num protowire.Number if n := tag >> 3; n < uint64(protowire.MinValidNumber) || n > uint64(protowire.MaxValidNumber) { - return out, errors.New("invalid field number") + return out, errDecode } else { num = protowire.Number(n) } @@ -114,7 +125,7 @@ func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire. if wtyp == protowire.EndGroupType { if num != groupTag { - return out, errors.New("mismatching end group marker") + return out, errDecode } groupTag = 0 break @@ -170,10 +181,10 @@ func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire. } n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { - return out, protowire.ParseError(n) + return out, errDecode } if !opts.DiscardUnknown() && mi.unknownOffset.IsValid() { - u := p.Apply(mi.unknownOffset).Bytes() + u := mi.mutableUnknownBytes(p) *u = protowire.AppendTag(*u, num, wtyp) *u = append(*u, b[:n]...) } @@ -181,7 +192,7 @@ func (mi *MessageInfo) unmarshalPointer(b []byte, p pointer, groupTag protowire. b = b[n:] } if groupTag != 0 { - return out, errors.New("missing end group marker") + return out, errDecode } if mi.numRequiredFields > 0 && bits.OnesCount64(requiredMask) != int(mi.numRequiredFields) { initialized = false @@ -200,7 +211,7 @@ func (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp p var err error xt, err = opts.resolver.FindExtensionByNumber(mi.Desc.FullName(), num) if err != nil { - if err == preg.NotFound { + if err == protoregistry.NotFound { return out, errUnknown } return out, errors.New("%v: unable to resolve extension %v: %v", mi.Desc.FullName(), num, err) @@ -221,7 +232,7 @@ func (mi *MessageInfo) unmarshalExtension(b []byte, num protowire.Number, wtyp p return out, nil } case ValidationInvalid: - return out, errors.New("invalid wire format") + return out, errDecode case ValidationUnknown: } } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/encode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/encode.go index 8c8a794c63..845c67d6e7 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/encode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/encode.go @@ -79,8 +79,9 @@ func (mi *MessageInfo) sizePointerSlow(p pointer, opts marshalOptions) (size int size += f.funcs.size(fptr, f, opts) } if mi.unknownOffset.IsValid() { - u := *p.Apply(mi.unknownOffset).Bytes() - size += len(u) + if u := mi.getUnknownBytes(p); u != nil { + size += len(*u) + } } if mi.sizecacheOffset.IsValid() { if size > math.MaxInt32 { @@ -141,8 +142,9 @@ func (mi *MessageInfo) marshalAppendPointer(b []byte, p pointer, opts marshalOpt } } if mi.unknownOffset.IsValid() && !mi.isMessageSet { - u := *p.Apply(mi.unknownOffset).Bytes() - b = append(b, u...) + if u := mi.getUnknownBytes(p); u != nil { + b = append(b, (*u)...) + } } return b, nil } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/enum.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/enum.go index 8c1eab4bfd..5f3ef5ad73 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/enum.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/enum.go @@ -7,15 +7,15 @@ package impl import ( "reflect" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) type EnumInfo struct { GoReflectType reflect.Type // int32 kind - Desc pref.EnumDescriptor + Desc protoreflect.EnumDescriptor } -func (t *EnumInfo) New(n pref.EnumNumber) pref.Enum { - return reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(pref.Enum) +func (t *EnumInfo) New(n protoreflect.EnumNumber) protoreflect.Enum { + return reflect.ValueOf(n).Convert(t.GoReflectType).Interface().(protoreflect.Enum) } -func (t *EnumInfo) Descriptor() pref.EnumDescriptor { return t.Desc } +func (t *EnumInfo) Descriptor() protoreflect.EnumDescriptor { return t.Desc } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/extension.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/extension.go index e904fd9936..cb25b0bae1 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/extension.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/extension.go @@ -9,8 +9,8 @@ import ( "sync" "sync/atomic" - pref "google.golang.org/protobuf/reflect/protoreflect" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoiface" ) // ExtensionInfo implements ExtensionType. @@ -45,7 +45,7 @@ type ExtensionInfo struct { // since the message may no longer implement the MessageV1 interface. // // Deprecated: Use the ExtendedType method instead. - ExtendedType piface.MessageV1 + ExtendedType protoiface.MessageV1 // ExtensionType is the zero value of the extension type. // @@ -83,31 +83,31 @@ const ( extensionInfoFullInit = 2 ) -func InitExtensionInfo(xi *ExtensionInfo, xd pref.ExtensionDescriptor, goType reflect.Type) { +func InitExtensionInfo(xi *ExtensionInfo, xd protoreflect.ExtensionDescriptor, goType reflect.Type) { xi.goType = goType xi.desc = extensionTypeDescriptor{xd, xi} xi.init = extensionInfoDescInit } -func (xi *ExtensionInfo) New() pref.Value { +func (xi *ExtensionInfo) New() protoreflect.Value { return xi.lazyInit().New() } -func (xi *ExtensionInfo) Zero() pref.Value { +func (xi *ExtensionInfo) Zero() protoreflect.Value { return xi.lazyInit().Zero() } -func (xi *ExtensionInfo) ValueOf(v interface{}) pref.Value { +func (xi *ExtensionInfo) ValueOf(v interface{}) protoreflect.Value { return xi.lazyInit().PBValueOf(reflect.ValueOf(v)) } -func (xi *ExtensionInfo) InterfaceOf(v pref.Value) interface{} { +func (xi *ExtensionInfo) InterfaceOf(v protoreflect.Value) interface{} { return xi.lazyInit().GoValueOf(v).Interface() } -func (xi *ExtensionInfo) IsValidValue(v pref.Value) bool { +func (xi *ExtensionInfo) IsValidValue(v protoreflect.Value) bool { return xi.lazyInit().IsValidPB(v) } func (xi *ExtensionInfo) IsValidInterface(v interface{}) bool { return xi.lazyInit().IsValidGo(reflect.ValueOf(v)) } -func (xi *ExtensionInfo) TypeDescriptor() pref.ExtensionTypeDescriptor { +func (xi *ExtensionInfo) TypeDescriptor() protoreflect.ExtensionTypeDescriptor { if atomic.LoadUint32(&xi.init) < extensionInfoDescInit { xi.lazyInitSlow() } @@ -144,13 +144,13 @@ func (xi *ExtensionInfo) lazyInitSlow() { } type extensionTypeDescriptor struct { - pref.ExtensionDescriptor + protoreflect.ExtensionDescriptor xi *ExtensionInfo } -func (xtd *extensionTypeDescriptor) Type() pref.ExtensionType { +func (xtd *extensionTypeDescriptor) Type() protoreflect.ExtensionType { return xtd.xi } -func (xtd *extensionTypeDescriptor) Descriptor() pref.ExtensionDescriptor { +func (xtd *extensionTypeDescriptor) Descriptor() protoreflect.ExtensionDescriptor { return xtd.ExtensionDescriptor } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go index f7d7ffb510..c2a803bb2f 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_enum.go @@ -13,13 +13,12 @@ import ( "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" - pref "google.golang.org/protobuf/reflect/protoreflect" ) // legacyEnumName returns the name of enums used in legacy code. // It is neither the protobuf full name nor the qualified Go name, // but rather an odd hybrid of both. -func legacyEnumName(ed pref.EnumDescriptor) string { +func legacyEnumName(ed protoreflect.EnumDescriptor) string { var protoPkg string enumName := string(ed.FullName()) if fd := ed.ParentFile(); fd != nil { @@ -34,68 +33,68 @@ func legacyEnumName(ed pref.EnumDescriptor) string { // legacyWrapEnum wraps v as a protoreflect.Enum, // where v must be a int32 kind and not implement the v2 API already. -func legacyWrapEnum(v reflect.Value) pref.Enum { +func legacyWrapEnum(v reflect.Value) protoreflect.Enum { et := legacyLoadEnumType(v.Type()) - return et.New(pref.EnumNumber(v.Int())) + return et.New(protoreflect.EnumNumber(v.Int())) } var legacyEnumTypeCache sync.Map // map[reflect.Type]protoreflect.EnumType // legacyLoadEnumType dynamically loads a protoreflect.EnumType for t, // where t must be an int32 kind and not implement the v2 API already. -func legacyLoadEnumType(t reflect.Type) pref.EnumType { +func legacyLoadEnumType(t reflect.Type) protoreflect.EnumType { // Fast-path: check if a EnumType is cached for this concrete type. if et, ok := legacyEnumTypeCache.Load(t); ok { - return et.(pref.EnumType) + return et.(protoreflect.EnumType) } // Slow-path: derive enum descriptor and initialize EnumType. - var et pref.EnumType + var et protoreflect.EnumType ed := LegacyLoadEnumDesc(t) et = &legacyEnumType{ desc: ed, goType: t, } if et, ok := legacyEnumTypeCache.LoadOrStore(t, et); ok { - return et.(pref.EnumType) + return et.(protoreflect.EnumType) } return et } type legacyEnumType struct { - desc pref.EnumDescriptor + desc protoreflect.EnumDescriptor goType reflect.Type m sync.Map // map[protoreflect.EnumNumber]proto.Enum } -func (t *legacyEnumType) New(n pref.EnumNumber) pref.Enum { +func (t *legacyEnumType) New(n protoreflect.EnumNumber) protoreflect.Enum { if e, ok := t.m.Load(n); ok { - return e.(pref.Enum) + return e.(protoreflect.Enum) } e := &legacyEnumWrapper{num: n, pbTyp: t, goTyp: t.goType} t.m.Store(n, e) return e } -func (t *legacyEnumType) Descriptor() pref.EnumDescriptor { +func (t *legacyEnumType) Descriptor() protoreflect.EnumDescriptor { return t.desc } type legacyEnumWrapper struct { - num pref.EnumNumber - pbTyp pref.EnumType + num protoreflect.EnumNumber + pbTyp protoreflect.EnumType goTyp reflect.Type } -func (e *legacyEnumWrapper) Descriptor() pref.EnumDescriptor { +func (e *legacyEnumWrapper) Descriptor() protoreflect.EnumDescriptor { return e.pbTyp.Descriptor() } -func (e *legacyEnumWrapper) Type() pref.EnumType { +func (e *legacyEnumWrapper) Type() protoreflect.EnumType { return e.pbTyp } -func (e *legacyEnumWrapper) Number() pref.EnumNumber { +func (e *legacyEnumWrapper) Number() protoreflect.EnumNumber { return e.num } -func (e *legacyEnumWrapper) ProtoReflect() pref.Enum { +func (e *legacyEnumWrapper) ProtoReflect() protoreflect.Enum { return e } func (e *legacyEnumWrapper) protoUnwrap() interface{} { @@ -105,8 +104,8 @@ func (e *legacyEnumWrapper) protoUnwrap() interface{} { } var ( - _ pref.Enum = (*legacyEnumWrapper)(nil) - _ unwrapper = (*legacyEnumWrapper)(nil) + _ protoreflect.Enum = (*legacyEnumWrapper)(nil) + _ unwrapper = (*legacyEnumWrapper)(nil) ) var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor @@ -115,15 +114,15 @@ var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor // which must be an int32 kind and not implement the v2 API already. // // This is exported for testing purposes. -func LegacyLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { +func LegacyLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { // Fast-path: check if an EnumDescriptor is cached for this concrete type. if ed, ok := legacyEnumDescCache.Load(t); ok { - return ed.(pref.EnumDescriptor) + return ed.(protoreflect.EnumDescriptor) } // Slow-path: initialize EnumDescriptor from the raw descriptor. ev := reflect.Zero(t).Interface() - if _, ok := ev.(pref.Enum); ok { + if _, ok := ev.(protoreflect.Enum); ok { panic(fmt.Sprintf("%v already implements proto.Enum", t)) } edV1, ok := ev.(enumV1) @@ -132,7 +131,7 @@ func LegacyLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { } b, idxs := edV1.EnumDescriptor() - var ed pref.EnumDescriptor + var ed protoreflect.EnumDescriptor if len(idxs) == 1 { ed = legacyLoadFileDesc(b).Enums().Get(idxs[0]) } else { @@ -158,10 +157,10 @@ var aberrantEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescript // We are unable to use the global enum registry since it is // unfortunately keyed by the protobuf full name, which we also do not know. // Thus, this produces some bogus enum descriptor based on the Go type name. -func aberrantLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { +func aberrantLoadEnumDesc(t reflect.Type) protoreflect.EnumDescriptor { // Fast-path: check if an EnumDescriptor is cached for this concrete type. if ed, ok := aberrantEnumDescCache.Load(t); ok { - return ed.(pref.EnumDescriptor) + return ed.(protoreflect.EnumDescriptor) } // Slow-path: construct a bogus, but unique EnumDescriptor. @@ -182,7 +181,7 @@ func aberrantLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { // An exhaustive query is clearly impractical, but can be best-effort. if ed, ok := aberrantEnumDescCache.LoadOrStore(t, ed); ok { - return ed.(pref.EnumDescriptor) + return ed.(protoreflect.EnumDescriptor) } return ed } @@ -192,7 +191,7 @@ func aberrantLoadEnumDesc(t reflect.Type) pref.EnumDescriptor { // It should be sufficiently unique within a program. // // This is exported for testing purposes. -func AberrantDeriveFullName(t reflect.Type) pref.FullName { +func AberrantDeriveFullName(t reflect.Type) protoreflect.FullName { sanitize := func(r rune) rune { switch { case r == '/': @@ -215,5 +214,5 @@ func AberrantDeriveFullName(t reflect.Type) pref.FullName { ss[i] = "x" + s } } - return pref.FullName(strings.Join(ss, ".")) + return protoreflect.FullName(strings.Join(ss, ".")) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go index c3d741c2f0..9b64ad5bba 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_export.go @@ -12,33 +12,33 @@ import ( "reflect" "google.golang.org/protobuf/internal/errors" - pref "google.golang.org/protobuf/reflect/protoreflect" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoiface" ) // These functions exist to support exported APIs in generated protobufs. // While these are deprecated, they cannot be removed for compatibility reasons. // LegacyEnumName returns the name of enums used in legacy code. -func (Export) LegacyEnumName(ed pref.EnumDescriptor) string { +func (Export) LegacyEnumName(ed protoreflect.EnumDescriptor) string { return legacyEnumName(ed) } // LegacyMessageTypeOf returns the protoreflect.MessageType for m, // with name used as the message name if necessary. -func (Export) LegacyMessageTypeOf(m piface.MessageV1, name pref.FullName) pref.MessageType { +func (Export) LegacyMessageTypeOf(m protoiface.MessageV1, name protoreflect.FullName) protoreflect.MessageType { if mv := (Export{}).protoMessageV2Of(m); mv != nil { return mv.ProtoReflect().Type() } - return legacyLoadMessageInfo(reflect.TypeOf(m), name) + return legacyLoadMessageType(reflect.TypeOf(m), name) } // UnmarshalJSONEnum unmarshals an enum from a JSON-encoded input. // The input can either be a string representing the enum value by name, // or a number representing the enum number itself. -func (Export) UnmarshalJSONEnum(ed pref.EnumDescriptor, b []byte) (pref.EnumNumber, error) { +func (Export) UnmarshalJSONEnum(ed protoreflect.EnumDescriptor, b []byte) (protoreflect.EnumNumber, error) { if b[0] == '"' { - var name pref.Name + var name protoreflect.Name if err := json.Unmarshal(b, &name); err != nil { return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b) } @@ -48,7 +48,7 @@ func (Export) UnmarshalJSONEnum(ed pref.EnumDescriptor, b []byte) (pref.EnumNumb } return ev.Number(), nil } else { - var num pref.EnumNumber + var num protoreflect.EnumNumber if err := json.Unmarshal(b, &num); err != nil { return 0, errors.New("invalid input for enum %v: %s", ed.FullName(), b) } @@ -81,8 +81,8 @@ func (Export) CompressGZIP(in []byte) (out []byte) { blockHeader[0] = 0x01 // final bit per RFC 1951, section 3.2.3. blockSize = len(in) } - binary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize)^0x0000) - binary.LittleEndian.PutUint16(blockHeader[3:5], uint16(blockSize)^0xffff) + binary.LittleEndian.PutUint16(blockHeader[1:3], uint16(blockSize)) + binary.LittleEndian.PutUint16(blockHeader[3:5], ^uint16(blockSize)) out = append(out, blockHeader[:]...) out = append(out, in[:blockSize]...) in = in[blockSize:] diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go index 61757ce50a..87b30d0504 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_extension.go @@ -12,16 +12,16 @@ import ( ptag "google.golang.org/protobuf/internal/encoding/tag" "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/pragma" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/runtime/protoiface" ) func (xi *ExtensionInfo) initToLegacy() { xd := xi.desc - var parent piface.MessageV1 + var parent protoiface.MessageV1 messageName := xd.ContainingMessage().FullName() - if mt, _ := preg.GlobalTypes.FindMessageByName(messageName); mt != nil { + if mt, _ := protoregistry.GlobalTypes.FindMessageByName(messageName); mt != nil { // Create a new parent message and unwrap it if possible. mv := mt.New().Interface() t := reflect.TypeOf(mv) @@ -31,7 +31,7 @@ func (xi *ExtensionInfo) initToLegacy() { // Check whether the message implements the legacy v1 Message interface. mz := reflect.Zero(t).Interface() - if mz, ok := mz.(piface.MessageV1); ok { + if mz, ok := mz.(protoiface.MessageV1); ok { parent = mz } } @@ -46,7 +46,7 @@ func (xi *ExtensionInfo) initToLegacy() { // Reconstruct the legacy enum full name. var enumName string - if xd.Kind() == pref.EnumKind { + if xd.Kind() == protoreflect.EnumKind { enumName = legacyEnumName(xd.Enum()) } @@ -77,16 +77,16 @@ func (xi *ExtensionInfo) initFromLegacy() { // field number is specified. In such a case, use a placeholder. if xi.ExtendedType == nil || xi.ExtensionType == nil { xd := placeholderExtension{ - name: pref.FullName(xi.Name), - number: pref.FieldNumber(xi.Field), + name: protoreflect.FullName(xi.Name), + number: protoreflect.FieldNumber(xi.Field), } xi.desc = extensionTypeDescriptor{xd, xi} return } // Resolve enum or message dependencies. - var ed pref.EnumDescriptor - var md pref.MessageDescriptor + var ed protoreflect.EnumDescriptor + var md protoreflect.MessageDescriptor t := reflect.TypeOf(xi.ExtensionType) isOptional := t.Kind() == reflect.Ptr && t.Elem().Kind() != reflect.Struct isRepeated := t.Kind() == reflect.Slice && t.Elem().Kind() != reflect.Uint8 @@ -94,18 +94,18 @@ func (xi *ExtensionInfo) initFromLegacy() { t = t.Elem() } switch v := reflect.Zero(t).Interface().(type) { - case pref.Enum: + case protoreflect.Enum: ed = v.Descriptor() case enumV1: ed = LegacyLoadEnumDesc(t) - case pref.ProtoMessage: + case protoreflect.ProtoMessage: md = v.ProtoReflect().Descriptor() case messageV1: md = LegacyLoadMessageDesc(t) } // Derive basic field information from the struct tag. - var evs pref.EnumValueDescriptors + var evs protoreflect.EnumValueDescriptors if ed != nil { evs = ed.Values() } @@ -114,8 +114,8 @@ func (xi *ExtensionInfo) initFromLegacy() { // Construct a v2 ExtensionType. xd := &filedesc.Extension{L2: new(filedesc.ExtensionL2)} xd.L0.ParentFile = filedesc.SurrogateProto2 - xd.L0.FullName = pref.FullName(xi.Name) - xd.L1.Number = pref.FieldNumber(xi.Field) + xd.L0.FullName = protoreflect.FullName(xi.Name) + xd.L1.Number = protoreflect.FieldNumber(xi.Field) xd.L1.Cardinality = fd.L1.Cardinality xd.L1.Kind = fd.L1.Kind xd.L2.IsPacked = fd.L1.IsPacked @@ -138,38 +138,39 @@ func (xi *ExtensionInfo) initFromLegacy() { } type placeholderExtension struct { - name pref.FullName - number pref.FieldNumber + name protoreflect.FullName + number protoreflect.FieldNumber } -func (x placeholderExtension) ParentFile() pref.FileDescriptor { return nil } -func (x placeholderExtension) Parent() pref.Descriptor { return nil } -func (x placeholderExtension) Index() int { return 0 } -func (x placeholderExtension) Syntax() pref.Syntax { return 0 } -func (x placeholderExtension) Name() pref.Name { return x.name.Name() } -func (x placeholderExtension) FullName() pref.FullName { return x.name } -func (x placeholderExtension) IsPlaceholder() bool { return true } -func (x placeholderExtension) Options() pref.ProtoMessage { return descopts.Field } -func (x placeholderExtension) Number() pref.FieldNumber { return x.number } -func (x placeholderExtension) Cardinality() pref.Cardinality { return 0 } -func (x placeholderExtension) Kind() pref.Kind { return 0 } -func (x placeholderExtension) HasJSONName() bool { return false } -func (x placeholderExtension) JSONName() string { return "" } -func (x placeholderExtension) HasPresence() bool { return false } -func (x placeholderExtension) HasOptionalKeyword() bool { return false } -func (x placeholderExtension) IsExtension() bool { return true } -func (x placeholderExtension) IsWeak() bool { return false } -func (x placeholderExtension) IsPacked() bool { return false } -func (x placeholderExtension) IsList() bool { return false } -func (x placeholderExtension) IsMap() bool { return false } -func (x placeholderExtension) MapKey() pref.FieldDescriptor { return nil } -func (x placeholderExtension) MapValue() pref.FieldDescriptor { return nil } -func (x placeholderExtension) HasDefault() bool { return false } -func (x placeholderExtension) Default() pref.Value { return pref.Value{} } -func (x placeholderExtension) DefaultEnumValue() pref.EnumValueDescriptor { return nil } -func (x placeholderExtension) ContainingOneof() pref.OneofDescriptor { return nil } -func (x placeholderExtension) ContainingMessage() pref.MessageDescriptor { return nil } -func (x placeholderExtension) Enum() pref.EnumDescriptor { return nil } -func (x placeholderExtension) Message() pref.MessageDescriptor { return nil } -func (x placeholderExtension) ProtoType(pref.FieldDescriptor) { return } -func (x placeholderExtension) ProtoInternal(pragma.DoNotImplement) { return } +func (x placeholderExtension) ParentFile() protoreflect.FileDescriptor { return nil } +func (x placeholderExtension) Parent() protoreflect.Descriptor { return nil } +func (x placeholderExtension) Index() int { return 0 } +func (x placeholderExtension) Syntax() protoreflect.Syntax { return 0 } +func (x placeholderExtension) Name() protoreflect.Name { return x.name.Name() } +func (x placeholderExtension) FullName() protoreflect.FullName { return x.name } +func (x placeholderExtension) IsPlaceholder() bool { return true } +func (x placeholderExtension) Options() protoreflect.ProtoMessage { return descopts.Field } +func (x placeholderExtension) Number() protoreflect.FieldNumber { return x.number } +func (x placeholderExtension) Cardinality() protoreflect.Cardinality { return 0 } +func (x placeholderExtension) Kind() protoreflect.Kind { return 0 } +func (x placeholderExtension) HasJSONName() bool { return false } +func (x placeholderExtension) JSONName() string { return "[" + string(x.name) + "]" } +func (x placeholderExtension) TextName() string { return "[" + string(x.name) + "]" } +func (x placeholderExtension) HasPresence() bool { return false } +func (x placeholderExtension) HasOptionalKeyword() bool { return false } +func (x placeholderExtension) IsExtension() bool { return true } +func (x placeholderExtension) IsWeak() bool { return false } +func (x placeholderExtension) IsPacked() bool { return false } +func (x placeholderExtension) IsList() bool { return false } +func (x placeholderExtension) IsMap() bool { return false } +func (x placeholderExtension) MapKey() protoreflect.FieldDescriptor { return nil } +func (x placeholderExtension) MapValue() protoreflect.FieldDescriptor { return nil } +func (x placeholderExtension) HasDefault() bool { return false } +func (x placeholderExtension) Default() protoreflect.Value { return protoreflect.Value{} } +func (x placeholderExtension) DefaultEnumValue() protoreflect.EnumValueDescriptor { return nil } +func (x placeholderExtension) ContainingOneof() protoreflect.OneofDescriptor { return nil } +func (x placeholderExtension) ContainingMessage() protoreflect.MessageDescriptor { return nil } +func (x placeholderExtension) Enum() protoreflect.EnumDescriptor { return nil } +func (x placeholderExtension) Message() protoreflect.MessageDescriptor { return nil } +func (x placeholderExtension) ProtoType(protoreflect.FieldDescriptor) { return } +func (x placeholderExtension) ProtoInternal(pragma.DoNotImplement) { return } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go index 06c68e1170..61c483fac0 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/legacy_message.go @@ -16,28 +16,36 @@ import ( "google.golang.org/protobuf/internal/filedesc" "google.golang.org/protobuf/internal/strs" "google.golang.org/protobuf/reflect/protoreflect" - pref "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" - piface "google.golang.org/protobuf/runtime/protoiface" ) // legacyWrapMessage wraps v as a protoreflect.Message, // where v must be a *struct kind and not implement the v2 API already. -func legacyWrapMessage(v reflect.Value) pref.Message { - typ := v.Type() - if typ.Kind() != reflect.Ptr || typ.Elem().Kind() != reflect.Struct { +func legacyWrapMessage(v reflect.Value) protoreflect.Message { + t := v.Type() + if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { return aberrantMessage{v: v} } - mt := legacyLoadMessageInfo(typ, "") + mt := legacyLoadMessageInfo(t, "") return mt.MessageOf(v.Interface()) } +// legacyLoadMessageType dynamically loads a protoreflect.Type for t, +// where t must be not implement the v2 API already. +// The provided name is used if it cannot be determined from the message. +func legacyLoadMessageType(t reflect.Type, name protoreflect.FullName) protoreflect.MessageType { + if t.Kind() != reflect.Ptr || t.Elem().Kind() != reflect.Struct { + return aberrantMessageType{t} + } + return legacyLoadMessageInfo(t, name) +} + var legacyMessageTypeCache sync.Map // map[reflect.Type]*MessageInfo // legacyLoadMessageInfo dynamically loads a *MessageInfo for t, // where t must be a *struct kind and not implement the v2 API already. // The provided name is used if it cannot be determined from the message. -func legacyLoadMessageInfo(t reflect.Type, name pref.FullName) *MessageInfo { +func legacyLoadMessageInfo(t reflect.Type, name protoreflect.FullName) *MessageInfo { // Fast-path: check if a MessageInfo is cached for this concrete type. if mt, ok := legacyMessageTypeCache.Load(t); ok { return mt.(*MessageInfo) @@ -49,20 +57,21 @@ func legacyLoadMessageInfo(t reflect.Type, name pref.FullName) *MessageInfo { GoReflectType: t, } + var hasMarshal, hasUnmarshal bool v := reflect.Zero(t).Interface() - if _, ok := v.(legacyMarshaler); ok { + if _, hasMarshal = v.(legacyMarshaler); hasMarshal { mi.methods.Marshal = legacyMarshal // We have no way to tell whether the type's Marshal method // supports deterministic serialization or not, but this // preserves the v1 implementation's behavior of always // calling Marshal methods when present. - mi.methods.Flags |= piface.SupportMarshalDeterministic + mi.methods.Flags |= protoiface.SupportMarshalDeterministic } - if _, ok := v.(legacyUnmarshaler); ok { + if _, hasUnmarshal = v.(legacyUnmarshaler); hasUnmarshal { mi.methods.Unmarshal = legacyUnmarshal } - if _, ok := v.(legacyMerger); ok { + if _, hasMerge := v.(legacyMerger); hasMerge || (hasMarshal && hasUnmarshal) { mi.methods.Merge = legacyMerge } @@ -75,21 +84,21 @@ func legacyLoadMessageInfo(t reflect.Type, name pref.FullName) *MessageInfo { var legacyMessageDescCache sync.Map // map[reflect.Type]protoreflect.MessageDescriptor // LegacyLoadMessageDesc returns an MessageDescriptor derived from the Go type, -// which must be a *struct kind and not implement the v2 API already. +// which should be a *struct kind and must not implement the v2 API already. // // This is exported for testing purposes. -func LegacyLoadMessageDesc(t reflect.Type) pref.MessageDescriptor { +func LegacyLoadMessageDesc(t reflect.Type) protoreflect.MessageDescriptor { return legacyLoadMessageDesc(t, "") } -func legacyLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescriptor { +func legacyLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor { // Fast-path: check if a MessageDescriptor is cached for this concrete type. if mi, ok := legacyMessageDescCache.Load(t); ok { - return mi.(pref.MessageDescriptor) + return mi.(protoreflect.MessageDescriptor) } // Slow-path: initialize MessageDescriptor from the raw descriptor. mv := reflect.Zero(t).Interface() - if _, ok := mv.(pref.ProtoMessage); ok { + if _, ok := mv.(protoreflect.ProtoMessage); ok { panic(fmt.Sprintf("%v already implements proto.Message", t)) } mdV1, ok := mv.(messageV1) @@ -114,17 +123,19 @@ func legacyLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescr // If the Go type has no fields, then this might be a proto3 empty message // from before the size cache was added. If there are any fields, check to // see that at least one of them looks like something we generated. - if nfield := t.Elem().NumField(); nfield > 0 { - hasProtoField := false - for i := 0; i < nfield; i++ { - f := t.Elem().Field(i) - if f.Tag.Get("protobuf") != "" || f.Tag.Get("protobuf_oneof") != "" || strings.HasPrefix(f.Name, "XXX_") { - hasProtoField = true - break + if t.Elem().Kind() == reflect.Struct { + if nfield := t.Elem().NumField(); nfield > 0 { + hasProtoField := false + for i := 0; i < nfield; i++ { + f := t.Elem().Field(i) + if f.Tag.Get("protobuf") != "" || f.Tag.Get("protobuf_oneof") != "" || strings.HasPrefix(f.Name, "XXX_") { + hasProtoField = true + break + } + } + if !hasProtoField { + return aberrantLoadMessageDesc(t, name) } - } - if !hasProtoField { - return aberrantLoadMessageDesc(t, name) } } @@ -151,7 +162,7 @@ var ( // // This is a best-effort derivation of the message descriptor using the protobuf // tags on the struct fields. -func aberrantLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDescriptor { +func aberrantLoadMessageDesc(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor { aberrantMessageDescLock.Lock() defer aberrantMessageDescLock.Unlock() if aberrantMessageDescCache == nil { @@ -159,7 +170,7 @@ func aberrantLoadMessageDesc(t reflect.Type, name pref.FullName) pref.MessageDes } return aberrantLoadMessageDescReentrant(t, name) } -func aberrantLoadMessageDescReentrant(t reflect.Type, name pref.FullName) pref.MessageDescriptor { +func aberrantLoadMessageDescReentrant(t reflect.Type, name protoreflect.FullName) protoreflect.MessageDescriptor { // Fast-path: check if an MessageDescriptor is cached for this concrete type. if md, ok := aberrantMessageDescCache[t]; ok { return md @@ -212,9 +223,9 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name pref.FullName) pref.M vs := fn.Func.Call([]reflect.Value{reflect.Zero(fn.Type.In(0))})[0] for i := 0; i < vs.Len(); i++ { v := vs.Index(i) - md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]pref.FieldNumber{ - pref.FieldNumber(v.FieldByName("Start").Int()), - pref.FieldNumber(v.FieldByName("End").Int() + 1), + md.L2.ExtensionRanges.List = append(md.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ + protoreflect.FieldNumber(v.FieldByName("Start").Int()), + protoreflect.FieldNumber(v.FieldByName("End").Int() + 1), }) md.L2.ExtensionRangeOptions = append(md.L2.ExtensionRangeOptions, nil) } @@ -232,7 +243,7 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name pref.FullName) pref.M n := len(md.L2.Oneofs.List) md.L2.Oneofs.List = append(md.L2.Oneofs.List, filedesc.Oneof{}) od := &md.L2.Oneofs.List[n] - od.L0.FullName = md.FullName().Append(pref.Name(tag)) + od.L0.FullName = md.FullName().Append(protoreflect.Name(tag)) od.L0.ParentFile = md.L0.ParentFile od.L0.Parent = md od.L0.Index = n @@ -254,14 +265,14 @@ func aberrantLoadMessageDescReentrant(t reflect.Type, name pref.FullName) pref.M return md } -func aberrantDeriveMessageName(t reflect.Type, name pref.FullName) pref.FullName { +func aberrantDeriveMessageName(t reflect.Type, name protoreflect.FullName) protoreflect.FullName { if name.IsValid() { return name } func() { defer func() { recover() }() // swallow possible nil panics if m, ok := reflect.Zero(t).Interface().(interface{ XXX_MessageName() string }); ok { - name = pref.FullName(m.XXX_MessageName()) + name = protoreflect.FullName(m.XXX_MessageName()) } }() if name.IsValid() { @@ -292,7 +303,7 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, fd.L0.Index = n if fd.L1.IsWeak || fd.L1.HasPacked { - fd.L1.Options = func() pref.ProtoMessage { + fd.L1.Options = func() protoreflect.ProtoMessage { opts := descopts.Field.ProtoReflect().New() if fd.L1.IsWeak { opts.Set(opts.Descriptor().Fields().ByName("weak"), protoreflect.ValueOfBool(true)) @@ -305,17 +316,17 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, } // Populate Enum and Message. - if fd.Enum() == nil && fd.Kind() == pref.EnumKind { + if fd.Enum() == nil && fd.Kind() == protoreflect.EnumKind { switch v := reflect.Zero(t).Interface().(type) { - case pref.Enum: + case protoreflect.Enum: fd.L1.Enum = v.Descriptor() default: fd.L1.Enum = LegacyLoadEnumDesc(t) } } - if fd.Message() == nil && (fd.Kind() == pref.MessageKind || fd.Kind() == pref.GroupKind) { + if fd.Message() == nil && (fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind) { switch v := reflect.Zero(t).Interface().(type) { - case pref.ProtoMessage: + case protoreflect.ProtoMessage: fd.L1.Message = v.ProtoReflect().Descriptor() case messageV1: fd.L1.Message = LegacyLoadMessageDesc(t) @@ -324,13 +335,13 @@ func aberrantAppendField(md *filedesc.Message, goType reflect.Type, tag, tagKey, n := len(md.L1.Messages.List) md.L1.Messages.List = append(md.L1.Messages.List, filedesc.Message{L2: new(filedesc.MessageL2)}) md2 := &md.L1.Messages.List[n] - md2.L0.FullName = md.FullName().Append(pref.Name(strs.MapEntryName(string(fd.Name())))) + md2.L0.FullName = md.FullName().Append(protoreflect.Name(strs.MapEntryName(string(fd.Name())))) md2.L0.ParentFile = md.L0.ParentFile md2.L0.Parent = md md2.L0.Index = n md2.L1.IsMapEntry = true - md2.L2.Options = func() pref.ProtoMessage { + md2.L2.Options = func() protoreflect.ProtoMessage { opts := descopts.Message.ProtoReflect().New() opts.Set(opts.Descriptor().Fields().ByName("map_entry"), protoreflect.ValueOfBool(true)) return opts.Interface() @@ -351,8 +362,8 @@ type placeholderEnumValues struct { protoreflect.EnumValueDescriptors } -func (placeholderEnumValues) ByNumber(n pref.EnumNumber) pref.EnumValueDescriptor { - return filedesc.PlaceholderEnumValue(pref.FullName(fmt.Sprintf("UNKNOWN_%d", n))) +func (placeholderEnumValues) ByNumber(n protoreflect.EnumNumber) protoreflect.EnumValueDescriptor { + return filedesc.PlaceholderEnumValue(protoreflect.FullName(fmt.Sprintf("UNKNOWN_%d", n))) } // legacyMarshaler is the proto.Marshaler interface superseded by protoiface.Methoder. @@ -370,7 +381,7 @@ type legacyMerger interface { Merge(protoiface.MessageV1) } -var legacyProtoMethods = &piface.Methods{ +var aberrantProtoMethods = &protoiface.Methods{ Marshal: legacyMarshal, Unmarshal: legacyUnmarshal, Merge: legacyMerge, @@ -379,41 +390,70 @@ var legacyProtoMethods = &piface.Methods{ // supports deterministic serialization or not, but this // preserves the v1 implementation's behavior of always // calling Marshal methods when present. - Flags: piface.SupportMarshalDeterministic, + Flags: protoiface.SupportMarshalDeterministic, } -func legacyMarshal(in piface.MarshalInput) (piface.MarshalOutput, error) { +func legacyMarshal(in protoiface.MarshalInput) (protoiface.MarshalOutput, error) { v := in.Message.(unwrapper).protoUnwrap() marshaler, ok := v.(legacyMarshaler) if !ok { - return piface.MarshalOutput{}, errors.New("%T does not implement Marshal", v) + return protoiface.MarshalOutput{}, errors.New("%T does not implement Marshal", v) } out, err := marshaler.Marshal() if in.Buf != nil { out = append(in.Buf, out...) } - return piface.MarshalOutput{ + return protoiface.MarshalOutput{ Buf: out, }, err } -func legacyUnmarshal(in piface.UnmarshalInput) (piface.UnmarshalOutput, error) { +func legacyUnmarshal(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { v := in.Message.(unwrapper).protoUnwrap() unmarshaler, ok := v.(legacyUnmarshaler) if !ok { - return piface.UnmarshalOutput{}, errors.New("%T does not implement Marshal", v) + return protoiface.UnmarshalOutput{}, errors.New("%T does not implement Unmarshal", v) } - return piface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf) + return protoiface.UnmarshalOutput{}, unmarshaler.Unmarshal(in.Buf) } -func legacyMerge(in piface.MergeInput) piface.MergeOutput { +func legacyMerge(in protoiface.MergeInput) protoiface.MergeOutput { + // Check whether this supports the legacy merger. dstv := in.Destination.(unwrapper).protoUnwrap() merger, ok := dstv.(legacyMerger) + if ok { + merger.Merge(Export{}.ProtoMessageV1Of(in.Source)) + return protoiface.MergeOutput{Flags: protoiface.MergeComplete} + } + + // If legacy merger is unavailable, implement merge in terms of + // a marshal and unmarshal operation. + srcv := in.Source.(unwrapper).protoUnwrap() + marshaler, ok := srcv.(legacyMarshaler) if !ok { - return piface.MergeOutput{} + return protoiface.MergeOutput{} } - merger.Merge(Export{}.ProtoMessageV1Of(in.Source)) - return piface.MergeOutput{Flags: piface.MergeComplete} + dstv = in.Destination.(unwrapper).protoUnwrap() + unmarshaler, ok := dstv.(legacyUnmarshaler) + if !ok { + return protoiface.MergeOutput{} + } + if !in.Source.IsValid() { + // Legacy Marshal methods may not function on nil messages. + // Check for a typed nil source only after we confirm that + // legacy Marshal/Unmarshal methods are present, for + // consistency. + return protoiface.MergeOutput{Flags: protoiface.MergeComplete} + } + b, err := marshaler.Marshal() + if err != nil { + return protoiface.MergeOutput{} + } + err = unmarshaler.Unmarshal(b) + if err != nil { + return protoiface.MergeOutput{} + } + return protoiface.MergeOutput{Flags: protoiface.MergeComplete} } // aberrantMessageType implements MessageType for all types other than pointer-to-struct. @@ -421,16 +461,19 @@ type aberrantMessageType struct { t reflect.Type } -func (mt aberrantMessageType) New() pref.Message { +func (mt aberrantMessageType) New() protoreflect.Message { + if mt.t.Kind() == reflect.Ptr { + return aberrantMessage{reflect.New(mt.t.Elem())} + } return aberrantMessage{reflect.Zero(mt.t)} } -func (mt aberrantMessageType) Zero() pref.Message { +func (mt aberrantMessageType) Zero() protoreflect.Message { return aberrantMessage{reflect.Zero(mt.t)} } func (mt aberrantMessageType) GoType() reflect.Type { return mt.t } -func (mt aberrantMessageType) Descriptor() pref.MessageDescriptor { +func (mt aberrantMessageType) Descriptor() protoreflect.MessageDescriptor { return LegacyLoadMessageDesc(mt.t) } @@ -443,59 +486,77 @@ type aberrantMessage struct { v reflect.Value } -func (m aberrantMessage) ProtoReflect() pref.Message { +// Reset implements the v1 proto.Message.Reset method. +func (m aberrantMessage) Reset() { + if mr, ok := m.v.Interface().(interface{ Reset() }); ok { + mr.Reset() + return + } + if m.v.Kind() == reflect.Ptr && !m.v.IsNil() { + m.v.Elem().Set(reflect.Zero(m.v.Type().Elem())) + } +} + +func (m aberrantMessage) ProtoReflect() protoreflect.Message { return m } -func (m aberrantMessage) Descriptor() pref.MessageDescriptor { +func (m aberrantMessage) Descriptor() protoreflect.MessageDescriptor { return LegacyLoadMessageDesc(m.v.Type()) } -func (m aberrantMessage) Type() pref.MessageType { +func (m aberrantMessage) Type() protoreflect.MessageType { return aberrantMessageType{m.v.Type()} } -func (m aberrantMessage) New() pref.Message { +func (m aberrantMessage) New() protoreflect.Message { + if m.v.Type().Kind() == reflect.Ptr { + return aberrantMessage{reflect.New(m.v.Type().Elem())} + } return aberrantMessage{reflect.Zero(m.v.Type())} } -func (m aberrantMessage) Interface() pref.ProtoMessage { +func (m aberrantMessage) Interface() protoreflect.ProtoMessage { return m } -func (m aberrantMessage) Range(f func(pref.FieldDescriptor, pref.Value) bool) { +func (m aberrantMessage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + return } -func (m aberrantMessage) Has(pref.FieldDescriptor) bool { - panic("invalid field descriptor") +func (m aberrantMessage) Has(protoreflect.FieldDescriptor) bool { + return false } -func (m aberrantMessage) Clear(pref.FieldDescriptor) { - panic("invalid field descriptor") +func (m aberrantMessage) Clear(protoreflect.FieldDescriptor) { + panic("invalid Message.Clear on " + string(m.Descriptor().FullName())) } -func (m aberrantMessage) Get(pref.FieldDescriptor) pref.Value { - panic("invalid field descriptor") +func (m aberrantMessage) Get(fd protoreflect.FieldDescriptor) protoreflect.Value { + if fd.Default().IsValid() { + return fd.Default() + } + panic("invalid Message.Get on " + string(m.Descriptor().FullName())) } -func (m aberrantMessage) Set(pref.FieldDescriptor, pref.Value) { - panic("invalid field descriptor") +func (m aberrantMessage) Set(protoreflect.FieldDescriptor, protoreflect.Value) { + panic("invalid Message.Set on " + string(m.Descriptor().FullName())) } -func (m aberrantMessage) Mutable(pref.FieldDescriptor) pref.Value { - panic("invalid field descriptor") +func (m aberrantMessage) Mutable(protoreflect.FieldDescriptor) protoreflect.Value { + panic("invalid Message.Mutable on " + string(m.Descriptor().FullName())) } -func (m aberrantMessage) NewField(pref.FieldDescriptor) pref.Value { - panic("invalid field descriptor") +func (m aberrantMessage) NewField(protoreflect.FieldDescriptor) protoreflect.Value { + panic("invalid Message.NewField on " + string(m.Descriptor().FullName())) } -func (m aberrantMessage) WhichOneof(pref.OneofDescriptor) pref.FieldDescriptor { - panic("invalid oneof descriptor") +func (m aberrantMessage) WhichOneof(protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + panic("invalid Message.WhichOneof descriptor on " + string(m.Descriptor().FullName())) } -func (m aberrantMessage) GetUnknown() pref.RawFields { +func (m aberrantMessage) GetUnknown() protoreflect.RawFields { return nil } -func (m aberrantMessage) SetUnknown(pref.RawFields) { +func (m aberrantMessage) SetUnknown(protoreflect.RawFields) { // SetUnknown discards its input on messages which don't support unknown field storage. } func (m aberrantMessage) IsValid() bool { - // An invalid message is a read-only, empty message. Since we don't know anything - // about the alleged contents of this message, we can't say with confidence that - // it is invalid in this sense. Therefore, report it as valid. - return true + if m.v.Kind() == reflect.Ptr { + return !m.v.IsNil() + } + return false } -func (m aberrantMessage) ProtoMethods() *piface.Methods { - return legacyProtoMethods +func (m aberrantMessage) ProtoMethods() *protoiface.Methods { + return aberrantProtoMethods } func (m aberrantMessage) protoUnwrap() interface{} { return m.v.Interface() diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/merge.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/merge.go index cdc4267dfa..7e65f64f28 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/merge.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/merge.go @@ -9,8 +9,8 @@ import ( "reflect" "google.golang.org/protobuf/proto" - pref "google.golang.org/protobuf/reflect/protoreflect" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/runtime/protoiface" ) type mergeOptions struct{} @@ -20,17 +20,17 @@ func (o mergeOptions) Merge(dst, src proto.Message) { } // merge is protoreflect.Methods.Merge. -func (mi *MessageInfo) merge(in piface.MergeInput) piface.MergeOutput { +func (mi *MessageInfo) merge(in protoiface.MergeInput) protoiface.MergeOutput { dp, ok := mi.getPointer(in.Destination) if !ok { - return piface.MergeOutput{} + return protoiface.MergeOutput{} } sp, ok := mi.getPointer(in.Source) if !ok { - return piface.MergeOutput{} + return protoiface.MergeOutput{} } mi.mergePointer(dp, sp, mergeOptions{}) - return piface.MergeOutput{Flags: piface.MergeComplete} + return protoiface.MergeOutput{Flags: protoiface.MergeComplete} } func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) { @@ -64,7 +64,7 @@ func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) { continue } dx := (*dext)[num] - var dv pref.Value + var dv protoreflect.Value if dx.Type() == sx.Type() { dv = dx.Value() } @@ -77,23 +77,23 @@ func (mi *MessageInfo) mergePointer(dst, src pointer, opts mergeOptions) { } } if mi.unknownOffset.IsValid() { - du := dst.Apply(mi.unknownOffset).Bytes() - su := src.Apply(mi.unknownOffset).Bytes() - if len(*su) > 0 { + su := mi.getUnknownBytes(src) + if su != nil && len(*su) > 0 { + du := mi.mutableUnknownBytes(dst) *du = append(*du, *su...) } } } -func mergeScalarValue(dst, src pref.Value, opts mergeOptions) pref.Value { +func mergeScalarValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { return src } -func mergeBytesValue(dst, src pref.Value, opts mergeOptions) pref.Value { - return pref.ValueOfBytes(append(emptyBuf[:], src.Bytes()...)) +func mergeBytesValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { + return protoreflect.ValueOfBytes(append(emptyBuf[:], src.Bytes()...)) } -func mergeListValue(dst, src pref.Value, opts mergeOptions) pref.Value { +func mergeListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { dstl := dst.List() srcl := src.List() for i, llen := 0, srcl.Len(); i < llen; i++ { @@ -102,29 +102,29 @@ func mergeListValue(dst, src pref.Value, opts mergeOptions) pref.Value { return dst } -func mergeBytesListValue(dst, src pref.Value, opts mergeOptions) pref.Value { +func mergeBytesListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { dstl := dst.List() srcl := src.List() for i, llen := 0, srcl.Len(); i < llen; i++ { sb := srcl.Get(i).Bytes() db := append(emptyBuf[:], sb...) - dstl.Append(pref.ValueOfBytes(db)) + dstl.Append(protoreflect.ValueOfBytes(db)) } return dst } -func mergeMessageListValue(dst, src pref.Value, opts mergeOptions) pref.Value { +func mergeMessageListValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { dstl := dst.List() srcl := src.List() for i, llen := 0, srcl.Len(); i < llen; i++ { sm := srcl.Get(i).Message() dm := proto.Clone(sm.Interface()).ProtoReflect() - dstl.Append(pref.ValueOfMessage(dm)) + dstl.Append(protoreflect.ValueOfMessage(dm)) } return dst } -func mergeMessageValue(dst, src pref.Value, opts mergeOptions) pref.Value { +func mergeMessageValue(dst, src protoreflect.Value, opts mergeOptions) protoreflect.Value { opts.Merge(dst.Message().Interface(), src.Message().Interface()) return dst } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message.go index 7dd994bd95..4f5fb67a0d 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message.go @@ -12,9 +12,9 @@ import ( "sync" "sync/atomic" - "google.golang.org/protobuf/internal/genname" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/reflect/protoreflect" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" ) // MessageInfo provides protobuf related functionality for a given Go type @@ -28,7 +28,7 @@ type MessageInfo struct { GoReflectType reflect.Type // pointer to struct // Desc is the underlying message descriptor type and must be populated. - Desc pref.MessageDescriptor + Desc protoreflect.MessageDescriptor // Exporter must be provided in a purego environment in order to provide // access to unexported fields. @@ -53,7 +53,7 @@ type exporter func(v interface{}, i int) interface{} // is generated by our implementation of protoc-gen-go (for v2 and on). // If it is unable to obtain a MessageInfo, it returns nil. func getMessageInfo(mt reflect.Type) *MessageInfo { - m, ok := reflect.Zero(mt).Interface().(pref.ProtoMessage) + m, ok := reflect.Zero(mt).Interface().(protoreflect.ProtoMessage) if !ok { return nil } @@ -96,7 +96,7 @@ func (mi *MessageInfo) initOnce() { // getPointer returns the pointer for a message, which should be of // the type of the MessageInfo. If the message is of a different type, // it returns ok==false. -func (mi *MessageInfo) getPointer(m pref.Message) (p pointer, ok bool) { +func (mi *MessageInfo) getPointer(m protoreflect.Message) (p pointer, ok bool) { switch m := m.(type) { case *messageState: return m.pointer(), m.messageInfo() == mi @@ -109,27 +109,34 @@ func (mi *MessageInfo) getPointer(m pref.Message) (p pointer, ok bool) { type ( SizeCache = int32 WeakFields = map[int32]protoreflect.ProtoMessage - UnknownFields = []byte + UnknownFields = unknownFieldsA // TODO: switch to unknownFieldsB + unknownFieldsA = []byte + unknownFieldsB = *[]byte ExtensionFields = map[int32]ExtensionField ) var ( sizecacheType = reflect.TypeOf(SizeCache(0)) weakFieldsType = reflect.TypeOf(WeakFields(nil)) - unknownFieldsType = reflect.TypeOf(UnknownFields(nil)) + unknownFieldsAType = reflect.TypeOf(unknownFieldsA(nil)) + unknownFieldsBType = reflect.TypeOf(unknownFieldsB(nil)) extensionFieldsType = reflect.TypeOf(ExtensionFields(nil)) ) type structInfo struct { sizecacheOffset offset + sizecacheType reflect.Type weakOffset offset + weakType reflect.Type unknownOffset offset + unknownType reflect.Type extensionOffset offset + extensionType reflect.Type - fieldsByNumber map[pref.FieldNumber]reflect.StructField - oneofsByName map[pref.Name]reflect.StructField - oneofWrappersByType map[reflect.Type]pref.FieldNumber - oneofWrappersByNumber map[pref.FieldNumber]reflect.Type + fieldsByNumber map[protoreflect.FieldNumber]reflect.StructField + oneofsByName map[protoreflect.Name]reflect.StructField + oneofWrappersByType map[reflect.Type]protoreflect.FieldNumber + oneofWrappersByNumber map[protoreflect.FieldNumber]reflect.Type } func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo { @@ -139,41 +146,45 @@ func (mi *MessageInfo) makeStructInfo(t reflect.Type) structInfo { unknownOffset: invalidOffset, extensionOffset: invalidOffset, - fieldsByNumber: map[pref.FieldNumber]reflect.StructField{}, - oneofsByName: map[pref.Name]reflect.StructField{}, - oneofWrappersByType: map[reflect.Type]pref.FieldNumber{}, - oneofWrappersByNumber: map[pref.FieldNumber]reflect.Type{}, + fieldsByNumber: map[protoreflect.FieldNumber]reflect.StructField{}, + oneofsByName: map[protoreflect.Name]reflect.StructField{}, + oneofWrappersByType: map[reflect.Type]protoreflect.FieldNumber{}, + oneofWrappersByNumber: map[protoreflect.FieldNumber]reflect.Type{}, } fieldLoop: for i := 0; i < t.NumField(); i++ { switch f := t.Field(i); f.Name { - case genname.SizeCache, genname.SizeCacheA: + case genid.SizeCache_goname, genid.SizeCacheA_goname: if f.Type == sizecacheType { si.sizecacheOffset = offsetOf(f, mi.Exporter) + si.sizecacheType = f.Type } - case genname.WeakFields, genname.WeakFieldsA: + case genid.WeakFields_goname, genid.WeakFieldsA_goname: if f.Type == weakFieldsType { si.weakOffset = offsetOf(f, mi.Exporter) + si.weakType = f.Type } - case genname.UnknownFields, genname.UnknownFieldsA: - if f.Type == unknownFieldsType { + case genid.UnknownFields_goname, genid.UnknownFieldsA_goname: + if f.Type == unknownFieldsAType || f.Type == unknownFieldsBType { si.unknownOffset = offsetOf(f, mi.Exporter) + si.unknownType = f.Type } - case genname.ExtensionFields, genname.ExtensionFieldsA, genname.ExtensionFieldsB: + case genid.ExtensionFields_goname, genid.ExtensionFieldsA_goname, genid.ExtensionFieldsB_goname: if f.Type == extensionFieldsType { si.extensionOffset = offsetOf(f, mi.Exporter) + si.extensionType = f.Type } default: for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { if len(s) > 0 && strings.Trim(s, "0123456789") == "" { n, _ := strconv.ParseUint(s, 10, 64) - si.fieldsByNumber[pref.FieldNumber(n)] = f + si.fieldsByNumber[protoreflect.FieldNumber(n)] = f continue fieldLoop } } if s := f.Tag.Get("protobuf_oneof"); len(s) > 0 { - si.oneofsByName[pref.Name(s)] = f + si.oneofsByName[protoreflect.Name(s)] = f continue fieldLoop } } @@ -196,8 +207,8 @@ fieldLoop: for _, s := range strings.Split(f.Tag.Get("protobuf"), ",") { if len(s) > 0 && strings.Trim(s, "0123456789") == "" { n, _ := strconv.ParseUint(s, 10, 64) - si.oneofWrappersByType[tf] = pref.FieldNumber(n) - si.oneofWrappersByNumber[pref.FieldNumber(n)] = tf + si.oneofWrappersByType[tf] = protoreflect.FieldNumber(n) + si.oneofWrappersByNumber[protoreflect.FieldNumber(n)] = tf break } } @@ -207,9 +218,62 @@ fieldLoop: } func (mi *MessageInfo) New() protoreflect.Message { - return mi.MessageOf(reflect.New(mi.GoReflectType.Elem()).Interface()) + m := reflect.New(mi.GoReflectType.Elem()).Interface() + if r, ok := m.(protoreflect.ProtoMessage); ok { + return r.ProtoReflect() + } + return mi.MessageOf(m) } func (mi *MessageInfo) Zero() protoreflect.Message { return mi.MessageOf(reflect.Zero(mi.GoReflectType).Interface()) } -func (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor { return mi.Desc } +func (mi *MessageInfo) Descriptor() protoreflect.MessageDescriptor { + return mi.Desc +} +func (mi *MessageInfo) Enum(i int) protoreflect.EnumType { + mi.init() + fd := mi.Desc.Fields().Get(i) + return Export{}.EnumTypeOf(mi.fieldTypes[fd.Number()]) +} +func (mi *MessageInfo) Message(i int) protoreflect.MessageType { + mi.init() + fd := mi.Desc.Fields().Get(i) + switch { + case fd.IsWeak(): + mt, _ := protoregistry.GlobalTypes.FindMessageByName(fd.Message().FullName()) + return mt + case fd.IsMap(): + return mapEntryType{fd.Message(), mi.fieldTypes[fd.Number()]} + default: + return Export{}.MessageTypeOf(mi.fieldTypes[fd.Number()]) + } +} + +type mapEntryType struct { + desc protoreflect.MessageDescriptor + valType interface{} // zero value of enum or message type +} + +func (mt mapEntryType) New() protoreflect.Message { + return nil +} +func (mt mapEntryType) Zero() protoreflect.Message { + return nil +} +func (mt mapEntryType) Descriptor() protoreflect.MessageDescriptor { + return mt.desc +} +func (mt mapEntryType) Enum(i int) protoreflect.EnumType { + fd := mt.desc.Fields().Get(i) + if fd.Enum() == nil { + return nil + } + return Export{}.EnumTypeOf(mt.valType) +} +func (mt mapEntryType) Message(i int) protoreflect.MessageType { + fd := mt.desc.Fields().Get(i) + if fd.Message() == nil { + return nil + } + return Export{}.MessageTypeOf(mt.valType) +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go index 0f4b8db760..d9ea010bef 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect.go @@ -8,13 +8,19 @@ import ( "fmt" "reflect" + "google.golang.org/protobuf/internal/detrand" "google.golang.org/protobuf/internal/pragma" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) type reflectMessageInfo struct { - fields map[pref.FieldNumber]*fieldInfo - oneofs map[pref.Name]*oneofInfo + fields map[protoreflect.FieldNumber]*fieldInfo + oneofs map[protoreflect.Name]*oneofInfo + + // fieldTypes contains the zero value of an enum or message field. + // For lists, it contains the element type. + // For maps, it contains the entry value type. + fieldTypes map[protoreflect.FieldNumber]interface{} // denseFields is a subset of fields where: // 0 < fieldDesc.Number() < len(denseFields) @@ -24,8 +30,8 @@ type reflectMessageInfo struct { // rangeInfos is a list of all fields (not belonging to a oneof) and oneofs. rangeInfos []interface{} // either *fieldInfo or *oneofInfo - getUnknown func(pointer) pref.RawFields - setUnknown func(pointer, pref.RawFields) + getUnknown func(pointer) protoreflect.RawFields + setUnknown func(pointer, protoreflect.RawFields) extensionMap func(pointer) *extensionMap nilMessage atomicNilMessage @@ -36,6 +42,7 @@ func (mi *MessageInfo) makeReflectFuncs(t reflect.Type, si structInfo) { mi.makeKnownFieldsFunc(si) mi.makeUnknownFieldsFunc(t, si) mi.makeExtensionFieldsFunc(t, si) + mi.makeFieldTypes(si) } // makeKnownFieldsFunc generates functions for operations that can be performed @@ -45,23 +52,29 @@ func (mi *MessageInfo) makeReflectFuncs(t reflect.Type, si structInfo) { // This code assumes that the struct is well-formed and panics if there are // any discrepancies. func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) { - mi.fields = map[pref.FieldNumber]*fieldInfo{} + mi.fields = map[protoreflect.FieldNumber]*fieldInfo{} md := mi.Desc fds := md.Fields() for i := 0; i < fds.Len(); i++ { fd := fds.Get(i) fs := si.fieldsByNumber[fd.Number()] + isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() + if isOneof { + fs = si.oneofsByName[fd.ContainingOneof().Name()] + } var fi fieldInfo switch { - case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): - fi = fieldInfoForOneof(fd, si.oneofsByName[fd.ContainingOneof().Name()], mi.Exporter, si.oneofWrappersByNumber[fd.Number()]) + case fs.Type == nil: + fi = fieldInfoForMissing(fd) // never occurs for officially generated message types + case isOneof: + fi = fieldInfoForOneof(fd, fs, mi.Exporter, si.oneofWrappersByNumber[fd.Number()]) case fd.IsMap(): fi = fieldInfoForMap(fd, fs, mi.Exporter) case fd.IsList(): fi = fieldInfoForList(fd, fs, mi.Exporter) case fd.IsWeak(): fi = fieldInfoForWeakMessage(fd, si.weakOffset) - case fd.Kind() == pref.MessageKind || fd.Kind() == pref.GroupKind: + case fd.Message() != nil: fi = fieldInfoForMessage(fd, fs, mi.Exporter) default: fi = fieldInfoForScalar(fd, fs, mi.Exporter) @@ -69,7 +82,7 @@ func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) { mi.fields[fd.Number()] = &fi } - mi.oneofs = map[pref.Name]*oneofInfo{} + mi.oneofs = map[protoreflect.Name]*oneofInfo{} for i := 0; i < md.Oneofs().Len(); i++ { od := md.Oneofs().Get(i) mi.oneofs[od.Name()] = makeOneofInfo(od, si, mi.Exporter) @@ -92,31 +105,57 @@ func (mi *MessageInfo) makeKnownFieldsFunc(si structInfo) { i++ } } + + // Introduce instability to iteration order, but keep it deterministic. + if len(mi.rangeInfos) > 1 && detrand.Bool() { + i := detrand.Intn(len(mi.rangeInfos) - 1) + mi.rangeInfos[i], mi.rangeInfos[i+1] = mi.rangeInfos[i+1], mi.rangeInfos[i] + } } func (mi *MessageInfo) makeUnknownFieldsFunc(t reflect.Type, si structInfo) { - mi.getUnknown = func(pointer) pref.RawFields { return nil } - mi.setUnknown = func(pointer, pref.RawFields) { return } - if si.unknownOffset.IsValid() { - mi.getUnknown = func(p pointer) pref.RawFields { + switch { + case si.unknownOffset.IsValid() && si.unknownType == unknownFieldsAType: + // Handle as []byte. + mi.getUnknown = func(p pointer) protoreflect.RawFields { if p.IsNil() { return nil } - rv := p.Apply(si.unknownOffset).AsValueOf(unknownFieldsType) - return pref.RawFields(*rv.Interface().(*[]byte)) + return *p.Apply(mi.unknownOffset).Bytes() } - mi.setUnknown = func(p pointer, b pref.RawFields) { + mi.setUnknown = func(p pointer, b protoreflect.RawFields) { if p.IsNil() { panic("invalid SetUnknown on nil Message") } - rv := p.Apply(si.unknownOffset).AsValueOf(unknownFieldsType) - *rv.Interface().(*[]byte) = []byte(b) + *p.Apply(mi.unknownOffset).Bytes() = b } - } else { - mi.getUnknown = func(pointer) pref.RawFields { + case si.unknownOffset.IsValid() && si.unknownType == unknownFieldsBType: + // Handle as *[]byte. + mi.getUnknown = func(p pointer) protoreflect.RawFields { + if p.IsNil() { + return nil + } + bp := p.Apply(mi.unknownOffset).BytesPtr() + if *bp == nil { + return nil + } + return **bp + } + mi.setUnknown = func(p pointer, b protoreflect.RawFields) { + if p.IsNil() { + panic("invalid SetUnknown on nil Message") + } + bp := p.Apply(mi.unknownOffset).BytesPtr() + if *bp == nil { + *bp = new([]byte) + } + **bp = b + } + default: + mi.getUnknown = func(pointer) protoreflect.RawFields { return nil } - mi.setUnknown = func(p pointer, _ pref.RawFields) { + mi.setUnknown = func(p pointer, _ protoreflect.RawFields) { if p.IsNil() { panic("invalid SetUnknown on nil Message") } @@ -139,10 +178,62 @@ func (mi *MessageInfo) makeExtensionFieldsFunc(t reflect.Type, si structInfo) { } } } +func (mi *MessageInfo) makeFieldTypes(si structInfo) { + md := mi.Desc + fds := md.Fields() + for i := 0; i < fds.Len(); i++ { + var ft reflect.Type + fd := fds.Get(i) + fs := si.fieldsByNumber[fd.Number()] + isOneof := fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic() + if isOneof { + fs = si.oneofsByName[fd.ContainingOneof().Name()] + } + var isMessage bool + switch { + case fs.Type == nil: + continue // never occurs for officially generated message types + case isOneof: + if fd.Enum() != nil || fd.Message() != nil { + ft = si.oneofWrappersByNumber[fd.Number()].Field(0).Type + } + case fd.IsMap(): + if fd.MapValue().Enum() != nil || fd.MapValue().Message() != nil { + ft = fs.Type.Elem() + } + isMessage = fd.MapValue().Message() != nil + case fd.IsList(): + if fd.Enum() != nil || fd.Message() != nil { + ft = fs.Type.Elem() + } + isMessage = fd.Message() != nil + case fd.Enum() != nil: + ft = fs.Type + if fd.HasPresence() && ft.Kind() == reflect.Ptr { + ft = ft.Elem() + } + case fd.Message() != nil: + ft = fs.Type + if fd.IsWeak() { + ft = nil + } + isMessage = true + } + if isMessage && ft != nil && ft.Kind() != reflect.Ptr { + ft = reflect.PtrTo(ft) // never occurs for officially generated message types + } + if ft != nil { + if mi.fieldTypes == nil { + mi.fieldTypes = make(map[protoreflect.FieldNumber]interface{}) + } + mi.fieldTypes[fd.Number()] = reflect.Zero(ft).Interface() + } + } +} type extensionMap map[int32]ExtensionField -func (m *extensionMap) Range(f func(pref.FieldDescriptor, pref.Value) bool) { +func (m *extensionMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { if m != nil { for _, x := range *m { xd := x.Type().TypeDescriptor() @@ -156,7 +247,7 @@ func (m *extensionMap) Range(f func(pref.FieldDescriptor, pref.Value) bool) { } } } -func (m *extensionMap) Has(xt pref.ExtensionType) (ok bool) { +func (m *extensionMap) Has(xt protoreflect.ExtensionType) (ok bool) { if m == nil { return false } @@ -175,10 +266,10 @@ func (m *extensionMap) Has(xt pref.ExtensionType) (ok bool) { } return true } -func (m *extensionMap) Clear(xt pref.ExtensionType) { +func (m *extensionMap) Clear(xt protoreflect.ExtensionType) { delete(*m, int32(xt.TypeDescriptor().Number())) } -func (m *extensionMap) Get(xt pref.ExtensionType) pref.Value { +func (m *extensionMap) Get(xt protoreflect.ExtensionType) protoreflect.Value { xd := xt.TypeDescriptor() if m != nil { if x, ok := (*m)[int32(xd.Number())]; ok { @@ -187,7 +278,7 @@ func (m *extensionMap) Get(xt pref.ExtensionType) pref.Value { } return xt.Zero() } -func (m *extensionMap) Set(xt pref.ExtensionType, v pref.Value) { +func (m *extensionMap) Set(xt protoreflect.ExtensionType, v protoreflect.Value) { xd := xt.TypeDescriptor() isValid := true switch { @@ -211,9 +302,9 @@ func (m *extensionMap) Set(xt pref.ExtensionType, v pref.Value) { x.Set(xt, v) (*m)[int32(xd.Number())] = x } -func (m *extensionMap) Mutable(xt pref.ExtensionType) pref.Value { +func (m *extensionMap) Mutable(xt protoreflect.ExtensionType) protoreflect.Value { xd := xt.TypeDescriptor() - if xd.Kind() != pref.MessageKind && xd.Kind() != pref.GroupKind && !xd.IsList() && !xd.IsMap() { + if xd.Kind() != protoreflect.MessageKind && xd.Kind() != protoreflect.GroupKind && !xd.IsList() && !xd.IsMap() { panic("invalid Mutable on field with non-composite type") } if x, ok := (*m)[int32(xd.Number())]; ok { @@ -229,7 +320,6 @@ func (m *extensionMap) Mutable(xt pref.ExtensionType) pref.Value { // in an allocation-free way without needing to have a shadow Go type generated // for every message type. This technique only works using unsafe. // -// // Example generated code: // // type M struct { @@ -260,12 +350,11 @@ func (m *extensionMap) Mutable(xt pref.ExtensionType) pref.Value { // It has access to the message info as its first field, and a pointer to the // MessageState is identical to a pointer to the concrete message value. // -// // Requirements: -// • The type M must implement protoreflect.ProtoMessage. -// • The address of m must not be nil. -// • The address of m and the address of m.state must be equal, -// even though they are different Go types. +// - The type M must implement protoreflect.ProtoMessage. +// - The address of m must not be nil. +// - The address of m and the address of m.state must be equal, +// even though they are different Go types. type MessageState struct { pragma.NoUnkeyedLiterals pragma.DoNotCompare @@ -277,8 +366,8 @@ type MessageState struct { type messageState MessageState var ( - _ pref.Message = (*messageState)(nil) - _ unwrapper = (*messageState)(nil) + _ protoreflect.Message = (*messageState)(nil) + _ unwrapper = (*messageState)(nil) ) // messageDataType is a tuple of a pointer to the message data and @@ -296,17 +385,16 @@ type ( ) var ( - _ pref.Message = (*messageReflectWrapper)(nil) - _ unwrapper = (*messageReflectWrapper)(nil) - _ pref.ProtoMessage = (*messageIfaceWrapper)(nil) - _ unwrapper = (*messageIfaceWrapper)(nil) + _ protoreflect.Message = (*messageReflectWrapper)(nil) + _ unwrapper = (*messageReflectWrapper)(nil) + _ protoreflect.ProtoMessage = (*messageIfaceWrapper)(nil) + _ unwrapper = (*messageIfaceWrapper)(nil) ) // MessageOf returns a reflective view over a message. The input must be a // pointer to a named Go struct. If the provided type has a ProtoReflect method, // it must be implemented by calling this method. -func (mi *MessageInfo) MessageOf(m interface{}) pref.Message { - // TODO: Switch the input to be an opaque Pointer. +func (mi *MessageInfo) MessageOf(m interface{}) protoreflect.Message { if reflect.TypeOf(m) != mi.GoReflectType { panic(fmt.Sprintf("type mismatch: got %T, want %v", m, mi.GoReflectType)) } @@ -320,7 +408,18 @@ func (mi *MessageInfo) MessageOf(m interface{}) pref.Message { func (m *messageReflectWrapper) pointer() pointer { return m.p } func (m *messageReflectWrapper) messageInfo() *MessageInfo { return m.mi } -func (m *messageIfaceWrapper) ProtoReflect() pref.Message { +// Reset implements the v1 proto.Message.Reset method. +func (m *messageIfaceWrapper) Reset() { + if mr, ok := m.protoUnwrap().(interface{ Reset() }); ok { + mr.Reset() + return + } + rv := reflect.ValueOf(m.protoUnwrap()) + if rv.Kind() == reflect.Ptr && !rv.IsNil() { + rv.Elem().Set(reflect.Zero(rv.Type().Elem())) + } +} +func (m *messageIfaceWrapper) ProtoReflect() protoreflect.Message { return (*messageReflectWrapper)(m) } func (m *messageIfaceWrapper) protoUnwrap() interface{} { @@ -329,7 +428,7 @@ func (m *messageIfaceWrapper) protoUnwrap() interface{} { // checkField verifies that the provided field descriptor is valid. // Exactly one of the returned values is populated. -func (mi *MessageInfo) checkField(fd pref.FieldDescriptor) (*fieldInfo, pref.ExtensionType) { +func (mi *MessageInfo) checkField(fd protoreflect.FieldDescriptor) (*fieldInfo, protoreflect.ExtensionType) { var fi *fieldInfo if n := fd.Number(); 0 < n && int(n) < len(mi.denseFields) { fi = mi.denseFields[n] @@ -354,7 +453,7 @@ func (mi *MessageInfo) checkField(fd pref.FieldDescriptor) (*fieldInfo, pref.Ext if !mi.Desc.ExtensionRanges().Has(fd.Number()) { panic(fmt.Sprintf("extension %v extends %v outside the extension range", fd.FullName(), mi.Desc.FullName())) } - xtd, ok := fd.(pref.ExtensionTypeDescriptor) + xtd, ok := fd.(protoreflect.ExtensionTypeDescriptor) if !ok { panic(fmt.Sprintf("extension %v does not implement protoreflect.ExtensionTypeDescriptor", fd.FullName())) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go index 23124a86e4..5e736c60ef 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/message_reflect_field.go @@ -11,24 +11,57 @@ import ( "sync" "google.golang.org/protobuf/internal/flags" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" ) type fieldInfo struct { - fieldDesc pref.FieldDescriptor + fieldDesc protoreflect.FieldDescriptor // These fields are used for protobuf reflection support. has func(pointer) bool clear func(pointer) - get func(pointer) pref.Value - set func(pointer, pref.Value) - mutable func(pointer) pref.Value - newMessage func() pref.Message - newField func() pref.Value + get func(pointer) protoreflect.Value + set func(pointer, protoreflect.Value) + mutable func(pointer) protoreflect.Value + newMessage func() protoreflect.Message + newField func() protoreflect.Value } -func fieldInfoForOneof(fd pref.FieldDescriptor, fs reflect.StructField, x exporter, ot reflect.Type) fieldInfo { +func fieldInfoForMissing(fd protoreflect.FieldDescriptor) fieldInfo { + // This never occurs for generated message types. + // It implies that a hand-crafted type has missing Go fields + // for specific protobuf message fields. + return fieldInfo{ + fieldDesc: fd, + has: func(p pointer) bool { + return false + }, + clear: func(p pointer) { + panic("missing Go struct field for " + string(fd.FullName())) + }, + get: func(p pointer) protoreflect.Value { + return fd.Default() + }, + set: func(p pointer, v protoreflect.Value) { + panic("missing Go struct field for " + string(fd.FullName())) + }, + mutable: func(p pointer) protoreflect.Value { + panic("missing Go struct field for " + string(fd.FullName())) + }, + newMessage: func() protoreflect.Message { + panic("missing Go struct field for " + string(fd.FullName())) + }, + newField: func() protoreflect.Value { + if v := fd.Default(); v.IsValid() { + return v + } + panic("missing Go struct field for " + string(fd.FullName())) + }, + } +} + +func fieldInfoForOneof(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter, ot reflect.Type) fieldInfo { ft := fs.Type if ft.Kind() != reflect.Interface { panic(fmt.Sprintf("field %v has invalid type: got %v, want interface kind", fd.FullName(), ft)) @@ -69,7 +102,7 @@ func fieldInfoForOneof(fd pref.FieldDescriptor, fs reflect.StructField, x export } rv.Set(reflect.Zero(rv.Type())) }, - get: func(p pointer) pref.Value { + get: func(p pointer) protoreflect.Value { if p.IsNil() { return conv.Zero() } @@ -80,7 +113,7 @@ func fieldInfoForOneof(fd pref.FieldDescriptor, fs reflect.StructField, x export rv = rv.Elem().Elem().Field(0) return conv.PBValueOf(rv) }, - set: func(p pointer, v pref.Value) { + set: func(p pointer, v protoreflect.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if rv.IsNil() || rv.Elem().Type().Elem() != ot || rv.Elem().IsNil() { rv.Set(reflect.New(ot)) @@ -88,7 +121,7 @@ func fieldInfoForOneof(fd pref.FieldDescriptor, fs reflect.StructField, x export rv = rv.Elem().Elem().Field(0) rv.Set(conv.GoValueOf(v)) }, - mutable: func(p pointer) pref.Value { + mutable: func(p pointer) protoreflect.Value { if !isMessage { panic(fmt.Sprintf("field %v with invalid Mutable call on field with non-composite type", fd.FullName())) } @@ -97,21 +130,21 @@ func fieldInfoForOneof(fd pref.FieldDescriptor, fs reflect.StructField, x export rv.Set(reflect.New(ot)) } rv = rv.Elem().Elem().Field(0) - if rv.IsNil() { - rv.Set(conv.GoValueOf(pref.ValueOfMessage(conv.New().Message()))) + if rv.Kind() == reflect.Ptr && rv.IsNil() { + rv.Set(conv.GoValueOf(protoreflect.ValueOfMessage(conv.New().Message()))) } return conv.PBValueOf(rv) }, - newMessage: func() pref.Message { + newMessage: func() protoreflect.Message { return conv.New().Message() }, - newField: func() pref.Value { + newField: func() protoreflect.Value { return conv.New() }, } } -func fieldInfoForMap(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { +func fieldInfoForMap(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type if ft.Kind() != reflect.Map { panic(fmt.Sprintf("field %v has invalid type: got %v, want map kind", fd.FullName(), ft)) @@ -133,7 +166,7 @@ func fieldInfoForMap(fd pref.FieldDescriptor, fs reflect.StructField, x exporter rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, - get: func(p pointer) pref.Value { + get: func(p pointer) protoreflect.Value { if p.IsNil() { return conv.Zero() } @@ -143,7 +176,7 @@ func fieldInfoForMap(fd pref.FieldDescriptor, fs reflect.StructField, x exporter } return conv.PBValueOf(rv) }, - set: func(p pointer, v pref.Value) { + set: func(p pointer, v protoreflect.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() pv := conv.GoValueOf(v) if pv.IsNil() { @@ -151,20 +184,20 @@ func fieldInfoForMap(fd pref.FieldDescriptor, fs reflect.StructField, x exporter } rv.Set(pv) }, - mutable: func(p pointer) pref.Value { + mutable: func(p pointer) protoreflect.Value { v := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if v.IsNil() { v.Set(reflect.MakeMap(fs.Type)) } return conv.PBValueOf(v) }, - newField: func() pref.Value { + newField: func() protoreflect.Value { return conv.New() }, } } -func fieldInfoForList(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { +func fieldInfoForList(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type if ft.Kind() != reflect.Slice { panic(fmt.Sprintf("field %v has invalid type: got %v, want slice kind", fd.FullName(), ft)) @@ -186,7 +219,7 @@ func fieldInfoForList(fd pref.FieldDescriptor, fs reflect.StructField, x exporte rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, - get: func(p pointer) pref.Value { + get: func(p pointer) protoreflect.Value { if p.IsNil() { return conv.Zero() } @@ -196,7 +229,7 @@ func fieldInfoForList(fd pref.FieldDescriptor, fs reflect.StructField, x exporte } return conv.PBValueOf(rv) }, - set: func(p pointer, v pref.Value) { + set: func(p pointer, v protoreflect.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() pv := conv.GoValueOf(v) if pv.IsNil() { @@ -204,11 +237,11 @@ func fieldInfoForList(fd pref.FieldDescriptor, fs reflect.StructField, x exporte } rv.Set(pv.Elem()) }, - mutable: func(p pointer) pref.Value { + mutable: func(p pointer) protoreflect.Value { v := p.Apply(fieldOffset).AsValueOf(fs.Type) return conv.PBValueOf(v) }, - newField: func() pref.Value { + newField: func() protoreflect.Value { return conv.New() }, } @@ -219,13 +252,16 @@ var ( emptyBytes = reflect.ValueOf([]byte{}) ) -func fieldInfoForScalar(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { +func fieldInfoForScalar(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type nullable := fd.HasPresence() isBytes := ft.Kind() == reflect.Slice && ft.Elem().Kind() == reflect.Uint8 if nullable { if ft.Kind() != reflect.Ptr && ft.Kind() != reflect.Slice { - panic(fmt.Sprintf("field %v has invalid type: got %v, want pointer", fd.FullName(), ft)) + // This never occurs for generated message types. + // Despite the protobuf type system specifying presence, + // the Go field type cannot represent it. + nullable = false } if ft.Kind() == reflect.Ptr { ft = ft.Elem() @@ -264,7 +300,7 @@ func fieldInfoForScalar(fd pref.FieldDescriptor, fs reflect.StructField, x expor rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, - get: func(p pointer) pref.Value { + get: func(p pointer) protoreflect.Value { if p.IsNil() { return conv.Zero() } @@ -279,7 +315,7 @@ func fieldInfoForScalar(fd pref.FieldDescriptor, fs reflect.StructField, x expor } return conv.PBValueOf(rv) }, - set: func(p pointer, v pref.Value) { + set: func(p pointer, v protoreflect.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() if nullable && rv.Kind() == reflect.Ptr { if rv.IsNil() { @@ -296,23 +332,23 @@ func fieldInfoForScalar(fd pref.FieldDescriptor, fs reflect.StructField, x expor } } }, - newField: func() pref.Value { + newField: func() protoreflect.Value { return conv.New() }, } } -func fieldInfoForWeakMessage(fd pref.FieldDescriptor, weakOffset offset) fieldInfo { +func fieldInfoForWeakMessage(fd protoreflect.FieldDescriptor, weakOffset offset) fieldInfo { if !flags.ProtoLegacy { panic("no support for proto1 weak fields") } var once sync.Once - var messageType pref.MessageType + var messageType protoreflect.MessageType lazyInit := func() { once.Do(func() { messageName := fd.Message().FullName() - messageType, _ = preg.GlobalTypes.FindMessageByName(messageName) + messageType, _ = protoregistry.GlobalTypes.FindMessageByName(messageName) if messageType == nil { panic(fmt.Sprintf("weak message %v for field %v is not linked in", messageName, fd.FullName())) } @@ -332,18 +368,18 @@ func fieldInfoForWeakMessage(fd pref.FieldDescriptor, weakOffset offset) fieldIn clear: func(p pointer) { p.Apply(weakOffset).WeakFields().clear(num) }, - get: func(p pointer) pref.Value { + get: func(p pointer) protoreflect.Value { lazyInit() if p.IsNil() { - return pref.ValueOfMessage(messageType.Zero()) + return protoreflect.ValueOfMessage(messageType.Zero()) } m, ok := p.Apply(weakOffset).WeakFields().get(num) if !ok { - return pref.ValueOfMessage(messageType.Zero()) + return protoreflect.ValueOfMessage(messageType.Zero()) } - return pref.ValueOfMessage(m.ProtoReflect()) + return protoreflect.ValueOfMessage(m.ProtoReflect()) }, - set: func(p pointer, v pref.Value) { + set: func(p pointer, v protoreflect.Value) { lazyInit() m := v.Message() if m.Descriptor() != messageType.Descriptor() { @@ -354,7 +390,7 @@ func fieldInfoForWeakMessage(fd pref.FieldDescriptor, weakOffset offset) fieldIn } p.Apply(weakOffset).WeakFields().set(num, m.Interface()) }, - mutable: func(p pointer) pref.Value { + mutable: func(p pointer) protoreflect.Value { lazyInit() fs := p.Apply(weakOffset).WeakFields() m, ok := fs.get(num) @@ -362,20 +398,20 @@ func fieldInfoForWeakMessage(fd pref.FieldDescriptor, weakOffset offset) fieldIn m = messageType.New().Interface() fs.set(num, m) } - return pref.ValueOfMessage(m.ProtoReflect()) + return protoreflect.ValueOfMessage(m.ProtoReflect()) }, - newMessage: func() pref.Message { + newMessage: func() protoreflect.Message { lazyInit() return messageType.New() }, - newField: func() pref.Value { + newField: func() protoreflect.Value { lazyInit() - return pref.ValueOfMessage(messageType.New()) + return protoreflect.ValueOfMessage(messageType.New()) }, } } -func fieldInfoForMessage(fd pref.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { +func fieldInfoForMessage(fd protoreflect.FieldDescriptor, fs reflect.StructField, x exporter) fieldInfo { ft := fs.Type conv := NewConverter(ft, fd) @@ -388,53 +424,56 @@ func fieldInfoForMessage(fd pref.FieldDescriptor, fs reflect.StructField, x expo return false } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() + if fs.Type.Kind() != reflect.Ptr { + return !isZero(rv) + } return !rv.IsNil() }, clear: func(p pointer) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(reflect.Zero(rv.Type())) }, - get: func(p pointer) pref.Value { + get: func(p pointer) protoreflect.Value { if p.IsNil() { return conv.Zero() } rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() return conv.PBValueOf(rv) }, - set: func(p pointer, v pref.Value) { + set: func(p pointer, v protoreflect.Value) { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() rv.Set(conv.GoValueOf(v)) - if rv.IsNil() { + if fs.Type.Kind() == reflect.Ptr && rv.IsNil() { panic(fmt.Sprintf("field %v has invalid nil pointer", fd.FullName())) } }, - mutable: func(p pointer) pref.Value { + mutable: func(p pointer) protoreflect.Value { rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem() - if rv.IsNil() { + if fs.Type.Kind() == reflect.Ptr && rv.IsNil() { rv.Set(conv.GoValueOf(conv.New())) } return conv.PBValueOf(rv) }, - newMessage: func() pref.Message { + newMessage: func() protoreflect.Message { return conv.New().Message() }, - newField: func() pref.Value { + newField: func() protoreflect.Value { return conv.New() }, } } type oneofInfo struct { - oneofDesc pref.OneofDescriptor - which func(pointer) pref.FieldNumber + oneofDesc protoreflect.OneofDescriptor + which func(pointer) protoreflect.FieldNumber } -func makeOneofInfo(od pref.OneofDescriptor, si structInfo, x exporter) *oneofInfo { +func makeOneofInfo(od protoreflect.OneofDescriptor, si structInfo, x exporter) *oneofInfo { oi := &oneofInfo{oneofDesc: od} if od.IsSynthetic() { fs := si.fieldsByNumber[od.Fields().Get(0).Number()] fieldOffset := offsetOf(fs, x) - oi.which = func(p pointer) pref.FieldNumber { + oi.which = func(p pointer) protoreflect.FieldNumber { if p.IsNil() { return 0 } @@ -447,7 +486,7 @@ func makeOneofInfo(od pref.OneofDescriptor, si structInfo, x exporter) *oneofInf } else { fs := si.oneofsByName[od.Name()] fieldOffset := offsetOf(fs, x) - oi.which = func(p pointer) pref.FieldNumber { + oi.which = func(p pointer) protoreflect.FieldNumber { if p.IsNil() { return 0 } @@ -464,3 +503,41 @@ func makeOneofInfo(od pref.OneofDescriptor, si structInfo, x exporter) *oneofInf } return oi } + +// isZero is identical to reflect.Value.IsZero. +// TODO: Remove this when Go1.13 is the minimally supported Go version. +func isZero(v reflect.Value) bool { + switch v.Kind() { + case reflect.Bool: + return !v.Bool() + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return v.Int() == 0 + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: + return v.Uint() == 0 + case reflect.Float32, reflect.Float64: + return math.Float64bits(v.Float()) == 0 + case reflect.Complex64, reflect.Complex128: + c := v.Complex() + return math.Float64bits(real(c)) == 0 && math.Float64bits(imag(c)) == 0 + case reflect.Array: + for i := 0; i < v.Len(); i++ { + if !isZero(v.Index(i)) { + return false + } + } + return true + case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice, reflect.UnsafePointer: + return v.IsNil() + case reflect.String: + return v.Len() == 0 + case reflect.Struct: + for i := 0; i < v.NumField(); i++ { + if !isZero(v.Field(i)) { + return false + } + } + return true + default: + panic(&reflect.ValueError{"reflect.Value.IsZero", v.Kind()}) + } +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go index 67b4ede670..4c491bdf48 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_reflect.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build purego || appengine // +build purego appengine package impl @@ -121,6 +122,7 @@ func (p pointer) String() *string { return p.v.Interface().(*string) } func (p pointer) StringPtr() **string { return p.v.Interface().(**string) } func (p pointer) StringSlice() *[]string { return p.v.Interface().(*[]string) } func (p pointer) Bytes() *[]byte { return p.v.Interface().(*[]byte) } +func (p pointer) BytesPtr() **[]byte { return p.v.Interface().(**[]byte) } func (p pointer) BytesSlice() *[][]byte { return p.v.Interface().(*[][]byte) } func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.v.Interface().(*WeakFields)) } func (p pointer) Extensions() *map[int32]ExtensionField { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go index 088aa85d48..ee0e0573e3 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/pointer_unsafe.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !purego && !appengine // +build !purego,!appengine package impl @@ -109,6 +110,7 @@ func (p pointer) String() *string { return (*string)(p.p) func (p pointer) StringPtr() **string { return (**string)(p.p) } func (p pointer) StringSlice() *[]string { return (*[]string)(p.p) } func (p pointer) Bytes() *[]byte { return (*[]byte)(p.p) } +func (p pointer) BytesPtr() **[]byte { return (**[]byte)(p.p) } func (p pointer) BytesSlice() *[][]byte { return (*[][]byte)(p.p) } func (p pointer) WeakFields() *weakFields { return (*weakFields)(p.p) } func (p pointer) Extensions() *map[int32]ExtensionField { return (*map[int32]ExtensionField)(p.p) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/validate.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/validate.go index 57de9cc85b..a24e6bbd7a 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/validate.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/validate.go @@ -14,10 +14,11 @@ import ( "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/strs" - pref "google.golang.org/protobuf/reflect/protoreflect" - preg "google.golang.org/protobuf/reflect/protoregistry" - piface "google.golang.org/protobuf/runtime/protoiface" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/runtime/protoiface" ) // ValidationStatus is the result of validating the wire-format encoding of a message. @@ -55,20 +56,20 @@ func (v ValidationStatus) String() string { // of the message type. // // This function is exposed for testing. -func Validate(mt pref.MessageType, in piface.UnmarshalInput) (out piface.UnmarshalOutput, _ ValidationStatus) { +func Validate(mt protoreflect.MessageType, in protoiface.UnmarshalInput) (out protoiface.UnmarshalOutput, _ ValidationStatus) { mi, ok := mt.(*MessageInfo) if !ok { return out, ValidationUnknown } if in.Resolver == nil { - in.Resolver = preg.GlobalTypes + in.Resolver = protoregistry.GlobalTypes } o, st := mi.validate(in.Buf, 0, unmarshalOptions{ flags: in.Flags, resolver: in.Resolver, }) if o.initialized { - out.Flags |= piface.UnmarshalInitialized + out.Flags |= protoiface.UnmarshalInitialized } return out, st } @@ -105,22 +106,22 @@ const ( validationTypeMessageSetItem ) -func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd pref.FieldDescriptor, ft reflect.Type) validationInfo { +func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo { var vi validationInfo switch { case fd.ContainingOneof() != nil && !fd.ContainingOneof().IsSynthetic(): switch fd.Kind() { - case pref.MessageKind: + case protoreflect.MessageKind: vi.typ = validationTypeMessage if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok { vi.mi = getMessageInfo(ot.Field(0).Type) } - case pref.GroupKind: + case protoreflect.GroupKind: vi.typ = validationTypeGroup if ot, ok := si.oneofWrappersByNumber[fd.Number()]; ok { vi.mi = getMessageInfo(ot.Field(0).Type) } - case pref.StringKind: + case protoreflect.StringKind: if strs.EnforceUTF8(fd) { vi.typ = validationTypeUTF8String } @@ -128,7 +129,7 @@ func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd pref.FieldDescrip default: vi = newValidationInfo(fd, ft) } - if fd.Cardinality() == pref.Required { + if fd.Cardinality() == protoreflect.Required { // Avoid overflow. The required field check is done with a 64-bit mask, with // any message containing more than 64 required fields always reported as // potentially uninitialized, so it is not important to get a precise count @@ -141,22 +142,22 @@ func newFieldValidationInfo(mi *MessageInfo, si structInfo, fd pref.FieldDescrip return vi } -func newValidationInfo(fd pref.FieldDescriptor, ft reflect.Type) validationInfo { +func newValidationInfo(fd protoreflect.FieldDescriptor, ft reflect.Type) validationInfo { var vi validationInfo switch { case fd.IsList(): switch fd.Kind() { - case pref.MessageKind: + case protoreflect.MessageKind: vi.typ = validationTypeMessage if ft.Kind() == reflect.Slice { vi.mi = getMessageInfo(ft.Elem()) } - case pref.GroupKind: + case protoreflect.GroupKind: vi.typ = validationTypeGroup if ft.Kind() == reflect.Slice { vi.mi = getMessageInfo(ft.Elem()) } - case pref.StringKind: + case protoreflect.StringKind: vi.typ = validationTypeBytes if strs.EnforceUTF8(fd) { vi.typ = validationTypeUTF8String @@ -174,33 +175,33 @@ func newValidationInfo(fd pref.FieldDescriptor, ft reflect.Type) validationInfo case fd.IsMap(): vi.typ = validationTypeMap switch fd.MapKey().Kind() { - case pref.StringKind: + case protoreflect.StringKind: if strs.EnforceUTF8(fd) { vi.keyType = validationTypeUTF8String } } switch fd.MapValue().Kind() { - case pref.MessageKind: + case protoreflect.MessageKind: vi.valType = validationTypeMessage if ft.Kind() == reflect.Map { vi.mi = getMessageInfo(ft.Elem()) } - case pref.StringKind: + case protoreflect.StringKind: if strs.EnforceUTF8(fd) { vi.valType = validationTypeUTF8String } } default: switch fd.Kind() { - case pref.MessageKind: + case protoreflect.MessageKind: vi.typ = validationTypeMessage if !fd.IsWeak() { vi.mi = getMessageInfo(ft) } - case pref.GroupKind: + case protoreflect.GroupKind: vi.typ = validationTypeGroup vi.mi = getMessageInfo(ft) - case pref.StringKind: + case protoreflect.StringKind: vi.typ = validationTypeBytes if strs.EnforceUTF8(fd) { vi.typ = validationTypeUTF8String @@ -282,9 +283,9 @@ State: switch { case st.typ == validationTypeMap: switch num { - case 1: + case genid.MapEntry_Key_field_number: vi.typ = st.keyType - case 2: + case genid.MapEntry_Value_field_number: vi.typ = st.valType vi.mi = st.mi vi.requiredBit = 1 @@ -313,11 +314,11 @@ State: break } messageName := fd.Message().FullName() - messageType, err := preg.GlobalTypes.FindMessageByName(messageName) + messageType, err := protoregistry.GlobalTypes.FindMessageByName(messageName) switch err { case nil: vi.mi, _ = messageType.(*MessageInfo) - case preg.NotFound: + case protoregistry.NotFound: vi.typ = validationTypeBytes default: return out, ValidationUnknown @@ -334,7 +335,7 @@ State: // unmarshaling to begin failing. Supporting this requires some way to // determine if the resolver is frozen. xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), num) - if err != nil && err != preg.NotFound { + if err != nil && err != protoregistry.NotFound { return out, ValidationUnknown } if err == nil { @@ -512,7 +513,7 @@ State: } xt, err := opts.resolver.FindExtensionByNumber(st.mi.Desc.FullName(), typeid) switch { - case err == preg.NotFound: + case err == protoregistry.NotFound: b = b[n:] case err != nil: return out, ValidationUnknown diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/weak.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/weak.go index 009cbefd1e..eb79a7ba94 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/weak.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/weak.go @@ -7,7 +7,7 @@ package impl import ( "fmt" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) @@ -17,32 +17,32 @@ import ( // defined directly on it. type weakFields WeakFields -func (w weakFields) get(num pref.FieldNumber) (pref.ProtoMessage, bool) { +func (w weakFields) get(num protoreflect.FieldNumber) (protoreflect.ProtoMessage, bool) { m, ok := w[int32(num)] return m, ok } -func (w *weakFields) set(num pref.FieldNumber, m pref.ProtoMessage) { +func (w *weakFields) set(num protoreflect.FieldNumber, m protoreflect.ProtoMessage) { if *w == nil { *w = make(weakFields) } (*w)[int32(num)] = m } -func (w *weakFields) clear(num pref.FieldNumber) { +func (w *weakFields) clear(num protoreflect.FieldNumber) { delete(*w, int32(num)) } -func (Export) HasWeak(w WeakFields, num pref.FieldNumber) bool { +func (Export) HasWeak(w WeakFields, num protoreflect.FieldNumber) bool { _, ok := w[int32(num)] return ok } -func (Export) ClearWeak(w *WeakFields, num pref.FieldNumber) { +func (Export) ClearWeak(w *WeakFields, num protoreflect.FieldNumber) { delete(*w, int32(num)) } -func (Export) GetWeak(w WeakFields, num pref.FieldNumber, name pref.FullName) pref.ProtoMessage { +func (Export) GetWeak(w WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName) protoreflect.ProtoMessage { if m, ok := w[int32(num)]; ok { return m } @@ -53,7 +53,7 @@ func (Export) GetWeak(w WeakFields, num pref.FieldNumber, name pref.FullName) pr return mt.Zero().Interface() } -func (Export) SetWeak(w *WeakFields, num pref.FieldNumber, name pref.FullName, m pref.ProtoMessage) { +func (Export) SetWeak(w *WeakFields, num protoreflect.FieldNumber, name protoreflect.FullName, m protoreflect.ProtoMessage) { if m != nil { mt, _ := protoregistry.GlobalTypes.FindMessageByName(name) if mt == nil { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/mapsort/mapsort.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/mapsort/mapsort.go deleted file mode 100644 index a3de1cf324..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/mapsort/mapsort.go +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package mapsort provides sorted access to maps. -package mapsort - -import ( - "sort" - - "google.golang.org/protobuf/reflect/protoreflect" -) - -// Range iterates over every map entry in sorted key order, -// calling f for each key and value encountered. -func Range(mapv protoreflect.Map, keyKind protoreflect.Kind, f func(protoreflect.MapKey, protoreflect.Value) bool) { - var keys []protoreflect.MapKey - mapv.Range(func(key protoreflect.MapKey, _ protoreflect.Value) bool { - keys = append(keys, key) - return true - }) - sort.Slice(keys, func(i, j int) bool { - switch keyKind { - case protoreflect.BoolKind: - return !keys[i].Bool() && keys[j].Bool() - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind, - protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - return keys[i].Int() < keys[j].Int() - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind, - protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - return keys[i].Uint() < keys[j].Uint() - case protoreflect.StringKind: - return keys[i].String() < keys[j].String() - default: - panic("invalid kind: " + keyKind.String()) - } - }) - for _, key := range keys { - if !f(key, mapv.Get(key)) { - break - } - } -} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/order/order.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/order/order.go new file mode 100644 index 0000000000..33745ed062 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/order/order.go @@ -0,0 +1,89 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package order + +import ( + "google.golang.org/protobuf/reflect/protoreflect" +) + +// FieldOrder specifies the ordering to visit message fields. +// It is a function that reports whether x is ordered before y. +type FieldOrder func(x, y protoreflect.FieldDescriptor) bool + +var ( + // AnyFieldOrder specifies no specific field ordering. + AnyFieldOrder FieldOrder = nil + + // LegacyFieldOrder sorts fields in the same ordering as emitted by + // wire serialization in the github.com/golang/protobuf implementation. + LegacyFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool { + ox, oy := x.ContainingOneof(), y.ContainingOneof() + inOneof := func(od protoreflect.OneofDescriptor) bool { + return od != nil && !od.IsSynthetic() + } + + // Extension fields sort before non-extension fields. + if x.IsExtension() != y.IsExtension() { + return x.IsExtension() && !y.IsExtension() + } + // Fields not within a oneof sort before those within a oneof. + if inOneof(ox) != inOneof(oy) { + return !inOneof(ox) && inOneof(oy) + } + // Fields in disjoint oneof sets are sorted by declaration index. + if ox != nil && oy != nil && ox != oy { + return ox.Index() < oy.Index() + } + // Fields sorted by field number. + return x.Number() < y.Number() + } + + // NumberFieldOrder sorts fields by their field number. + NumberFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool { + return x.Number() < y.Number() + } + + // IndexNameFieldOrder sorts non-extension fields before extension fields. + // Non-extensions are sorted according to their declaration index. + // Extensions are sorted according to their full name. + IndexNameFieldOrder FieldOrder = func(x, y protoreflect.FieldDescriptor) bool { + // Non-extension fields sort before extension fields. + if x.IsExtension() != y.IsExtension() { + return !x.IsExtension() && y.IsExtension() + } + // Extensions sorted by fullname. + if x.IsExtension() && y.IsExtension() { + return x.FullName() < y.FullName() + } + // Non-extensions sorted by declaration index. + return x.Index() < y.Index() + } +) + +// KeyOrder specifies the ordering to visit map entries. +// It is a function that reports whether x is ordered before y. +type KeyOrder func(x, y protoreflect.MapKey) bool + +var ( + // AnyKeyOrder specifies no specific key ordering. + AnyKeyOrder KeyOrder = nil + + // GenericKeyOrder sorts false before true, numeric keys in ascending order, + // and strings in lexicographical ordering according to UTF-8 codepoints. + GenericKeyOrder KeyOrder = func(x, y protoreflect.MapKey) bool { + switch x.Interface().(type) { + case bool: + return !x.Bool() && y.Bool() + case int32, int64: + return x.Int() < y.Int() + case uint32, uint64: + return x.Uint() < y.Uint() + case string: + return x.String() < y.String() + default: + panic("invalid map key type") + } + } +) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/order/range.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/order/range.go new file mode 100644 index 0000000000..1665a68e5b --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/order/range.go @@ -0,0 +1,115 @@ +// Copyright 2020 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package order provides ordered access to messages and maps. +package order + +import ( + "sort" + "sync" + + "google.golang.org/protobuf/reflect/protoreflect" +) + +type messageField struct { + fd protoreflect.FieldDescriptor + v protoreflect.Value +} + +var messageFieldPool = sync.Pool{ + New: func() interface{} { return new([]messageField) }, +} + +type ( + // FieldRnger is an interface for visiting all fields in a message. + // The protoreflect.Message type implements this interface. + FieldRanger interface{ Range(VisitField) } + // VisitField is called every time a message field is visited. + VisitField = func(protoreflect.FieldDescriptor, protoreflect.Value) bool +) + +// RangeFields iterates over the fields of fs according to the specified order. +func RangeFields(fs FieldRanger, less FieldOrder, fn VisitField) { + if less == nil { + fs.Range(fn) + return + } + + // Obtain a pre-allocated scratch buffer. + p := messageFieldPool.Get().(*[]messageField) + fields := (*p)[:0] + defer func() { + if cap(fields) < 1024 { + *p = fields + messageFieldPool.Put(p) + } + }() + + // Collect all fields in the message and sort them. + fs.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + fields = append(fields, messageField{fd, v}) + return true + }) + sort.Slice(fields, func(i, j int) bool { + return less(fields[i].fd, fields[j].fd) + }) + + // Visit the fields in the specified ordering. + for _, f := range fields { + if !fn(f.fd, f.v) { + return + } + } +} + +type mapEntry struct { + k protoreflect.MapKey + v protoreflect.Value +} + +var mapEntryPool = sync.Pool{ + New: func() interface{} { return new([]mapEntry) }, +} + +type ( + // EntryRanger is an interface for visiting all fields in a message. + // The protoreflect.Map type implements this interface. + EntryRanger interface{ Range(VisitEntry) } + // VisitEntry is called every time a map entry is visited. + VisitEntry = func(protoreflect.MapKey, protoreflect.Value) bool +) + +// RangeEntries iterates over the entries of es according to the specified order. +func RangeEntries(es EntryRanger, less KeyOrder, fn VisitEntry) { + if less == nil { + es.Range(fn) + return + } + + // Obtain a pre-allocated scratch buffer. + p := mapEntryPool.Get().(*[]mapEntry) + entries := (*p)[:0] + defer func() { + if cap(entries) < 1024 { + *p = entries + mapEntryPool.Put(p) + } + }() + + // Collect all entries in the map and sort them. + es.Range(func(k protoreflect.MapKey, v protoreflect.Value) bool { + entries = append(entries, mapEntry{k, v}) + return true + }) + sort.Slice(entries, func(i, j int) bool { + return less(entries[i].k, entries[j].k) + }) + + // Visit the entries in the specified ordering. + for _, e := range entries { + if !fn(e.k, e.v) { + return + } + } +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go index 85e074c977..a1f6f33386 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_pure.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build purego || appengine // +build purego appengine package strs diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go index 2160c70191..61a84d3418 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !purego && !appengine // +build !purego,!appengine package strs @@ -9,7 +10,7 @@ package strs import ( "unsafe" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) type ( @@ -58,7 +59,7 @@ type Builder struct { // AppendFullName is equivalent to protoreflect.FullName.Append, // but optimized for large batches where each name has a shared lifetime. -func (sb *Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.FullName { +func (sb *Builder) AppendFullName(prefix protoreflect.FullName, name protoreflect.Name) protoreflect.FullName { n := len(prefix) + len(".") + len(name) if len(prefix) == 0 { n -= len(".") @@ -67,7 +68,7 @@ func (sb *Builder) AppendFullName(prefix pref.FullName, name pref.Name) pref.Ful sb.buf = append(sb.buf, prefix...) sb.buf = append(sb.buf, '.') sb.buf = append(sb.buf, name...) - return pref.FullName(sb.last(n)) + return protoreflect.FullName(sb.last(n)) } // MakeString is equivalent to string(b), but optimized for large batches @@ -86,7 +87,7 @@ func (sb *Builder) grow(n int) { // Unlike strings.Builder, we do not need to copy over the contents // of the old buffer since our builder provides no API for // retrieving previously created strings. - sb.buf = make([]byte, 2*(cap(sb.buf)+n)) + sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) } func (sb *Builder) last(n int) string { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go index 4088e59c6f..f7014cd51c 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go @@ -12,47 +12,46 @@ import ( // These constants determine the current version of this module. // -// // For our release process, we enforce the following rules: -// * Tagged releases use a tag that is identical to String. -// * Tagged releases never reference a commit where the String -// contains "devel". -// * The set of all commits in this repository where String -// does not contain "devel" must have a unique String. -// +// - Tagged releases use a tag that is identical to String. +// - Tagged releases never reference a commit where the String +// contains "devel". +// - The set of all commits in this repository where String +// does not contain "devel" must have a unique String. // // Steps for tagging a new release: -// 1. Create a new CL. // -// 2. Update Minor, Patch, and/or PreRelease as necessary. -// PreRelease must not contain the string "devel". +// 1. Create a new CL. // -// 3. Since the last released minor version, have there been any changes to -// generator that relies on new functionality in the runtime? -// If yes, then increment RequiredGenerated. +// 2. Update Minor, Patch, and/or PreRelease as necessary. +// PreRelease must not contain the string "devel". // -// 4. Since the last released minor version, have there been any changes to -// the runtime that removes support for old .pb.go source code? -// If yes, then increment SupportMinimum. +// 3. Since the last released minor version, have there been any changes to +// generator that relies on new functionality in the runtime? +// If yes, then increment RequiredGenerated. // -// 5. Send out the CL for review and submit it. -// Note that the next CL in step 8 must be submitted after this CL -// without any other CLs in-between. +// 4. Since the last released minor version, have there been any changes to +// the runtime that removes support for old .pb.go source code? +// If yes, then increment SupportMinimum. // -// 6. Tag a new version, where the tag is is the current String. +// 5. Send out the CL for review and submit it. +// Note that the next CL in step 8 must be submitted after this CL +// without any other CLs in-between. // -// 7. Write release notes for all notable changes -// between this release and the last release. +// 6. Tag a new version, where the tag is is the current String. // -// 8. Create a new CL. +// 7. Write release notes for all notable changes +// between this release and the last release. // -// 9. Update PreRelease to include the string "devel". -// For example: "" -> "devel" or "rc.1" -> "rc.1.devel" +// 8. Create a new CL. // -// 10. Send out the CL for review and submit it. +// 9. Update PreRelease to include the string "devel". +// For example: "" -> "devel" or "rc.1" -> "rc.1.devel" +// +// 10. Send out the CL for review and submit it. const ( Major = 1 - Minor = 23 + Minor = 30 Patch = 0 PreRelease = "" ) @@ -60,6 +59,7 @@ const ( // String formats the version string for this module in semver format. // // Examples: +// // v1.20.1 // v1.21.0-rc.1 func String() string { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/decode.go index 128214760c..48d47946bb 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/decode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/decode.go @@ -9,6 +9,7 @@ import ( "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/genid" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" @@ -18,7 +19,8 @@ import ( // UnmarshalOptions configures the unmarshaler. // // Example usage: -// err := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m) +// +// err := UnmarshalOptions{DiscardUnknown: true}.Unmarshal(b, m) type UnmarshalOptions struct { pragma.NoUnkeyedLiterals @@ -41,16 +43,25 @@ type UnmarshalOptions struct { FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } + + // RecursionLimit limits how deeply messages may be nested. + // If zero, a default limit is applied. + RecursionLimit int } // Unmarshal parses the wire-format message in b and places the result in m. +// The provided message must be mutable (e.g., a non-nil pointer to a message). func Unmarshal(b []byte, m Message) error { - _, err := UnmarshalOptions{}.unmarshal(b, m.ProtoReflect()) + _, err := UnmarshalOptions{RecursionLimit: protowire.DefaultRecursionLimit}.unmarshal(b, m.ProtoReflect()) return err } // Unmarshal parses the wire-format message in b and places the result in m. +// The provided message must be mutable (e.g., a non-nil pointer to a message). func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { + if o.RecursionLimit == 0 { + o.RecursionLimit = protowire.DefaultRecursionLimit + } _, err := o.unmarshal(b, m.ProtoReflect()) return err } @@ -60,15 +71,21 @@ func (o UnmarshalOptions) Unmarshal(b []byte, m Message) error { // This method permits fine-grained control over the unmarshaler. // Most users should use Unmarshal instead. func (o UnmarshalOptions) UnmarshalState(in protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + if o.RecursionLimit == 0 { + o.RecursionLimit = protowire.DefaultRecursionLimit + } return o.unmarshal(in.Buf, in.Message) } +// unmarshal is a centralized function that all unmarshal operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for unmarshal that do not go through this. func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out protoiface.UnmarshalOutput, err error) { if o.Resolver == nil { o.Resolver = protoregistry.GlobalTypes } if !o.Merge { - Reset(m.Interface()) // TODO + Reset(m.Interface()) } allowPartial := o.AllowPartial o.Merge = true @@ -80,12 +97,17 @@ func (o UnmarshalOptions) unmarshal(b []byte, m protoreflect.Message) (out proto Message: m, Buf: b, Resolver: o.Resolver, + Depth: o.RecursionLimit, } if o.DiscardUnknown { in.Flags |= protoiface.UnmarshalDiscardUnknown } out, err = methods.Unmarshal(in) } else { + o.RecursionLimit-- + if o.RecursionLimit < 0 { + return out, errors.New("exceeded max recursion depth") + } err = o.unmarshalMessageSlow(b, m) } if err != nil { @@ -105,17 +127,17 @@ func (o UnmarshalOptions) unmarshalMessage(b []byte, m protoreflect.Message) err func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) error { md := m.Descriptor() if messageset.IsMessageSet(md) { - return unmarshalMessageSet(b, m, o) + return o.unmarshalMessageSet(b, m) } fields := md.Fields() for len(b) > 0 { // Parse the tag (field number and wire type). num, wtyp, tagLen := protowire.ConsumeTag(b) if tagLen < 0 { - return protowire.ParseError(tagLen) + return errDecode } if num > protowire.MaxValidNumber { - return errors.New("invalid field number") + return errDecode } // Find the field descriptor for this field number. @@ -155,7 +177,7 @@ func (o UnmarshalOptions) unmarshalMessageSlow(b []byte, m protoreflect.Message) } valLen = protowire.ConsumeFieldValue(num, wtyp, b[tagLen:]) if valLen < 0 { - return protowire.ParseError(valLen) + return errDecode } if !o.DiscardUnknown { m.SetUnknown(append(m.GetUnknown(), b[:tagLen+valLen]...)) @@ -190,7 +212,7 @@ func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv proto } b, n = protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } var ( keyField = fd.MapKey() @@ -209,21 +231,21 @@ func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv proto for len(b) > 0 { num, wtyp, n := protowire.ConsumeTag(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } if num > protowire.MaxValidNumber { - return 0, errors.New("invalid field number") + return 0, errDecode } b = b[n:] err = errUnknown switch num { - case 1: + case genid.MapEntry_Key_field_number: key, n, err = o.unmarshalScalar(b, wtyp, keyField) if err != nil { break } haveKey = true - case 2: + case genid.MapEntry_Value_field_number: var v protoreflect.Value v, n, err = o.unmarshalScalar(b, wtyp, valField) if err != nil { @@ -242,7 +264,7 @@ func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv proto if err == errUnknown { n = protowire.ConsumeFieldValue(num, wtyp, b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } } else if err != nil { return 0, err @@ -268,3 +290,5 @@ func (o UnmarshalOptions) unmarshalMap(b []byte, wtyp protowire.Type, mapv proto // to the unknown field set of a message. It is never returned from an exported // function. var errUnknown = errors.New("BUG: internal error (unknown)") + +var errDecode = errors.New("cannot parse invalid wire-format data") diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/decode_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/decode_gen.go index d6dc904dcc..301eeb20f8 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/decode_gen.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/decode_gen.go @@ -27,7 +27,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfBool(protowire.DecodeBool(v)), n, nil case protoreflect.EnumKind: @@ -36,7 +36,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfEnum(protoreflect.EnumNumber(v)), n, nil case protoreflect.Int32Kind: @@ -45,7 +45,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfInt32(int32(v)), n, nil case protoreflect.Sint32Kind: @@ -54,7 +54,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32))), n, nil case protoreflect.Uint32Kind: @@ -63,7 +63,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfUint32(uint32(v)), n, nil case protoreflect.Int64Kind: @@ -72,7 +72,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfInt64(int64(v)), n, nil case protoreflect.Sint64Kind: @@ -81,7 +81,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfInt64(protowire.DecodeZigZag(v)), n, nil case protoreflect.Uint64Kind: @@ -90,7 +90,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfUint64(v), n, nil case protoreflect.Sfixed32Kind: @@ -99,7 +99,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfInt32(int32(v)), n, nil case protoreflect.Fixed32Kind: @@ -108,7 +108,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfUint32(uint32(v)), n, nil case protoreflect.FloatKind: @@ -117,7 +117,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v))), n, nil case protoreflect.Sfixed64Kind: @@ -126,7 +126,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfInt64(int64(v)), n, nil case protoreflect.Fixed64Kind: @@ -135,7 +135,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfUint64(v), n, nil case protoreflect.DoubleKind: @@ -144,7 +144,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfFloat64(math.Float64frombits(v)), n, nil case protoreflect.StringKind: @@ -153,7 +153,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeBytes(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } if strs.EnforceUTF8(fd) && !utf8.Valid(v) { return protoreflect.Value{}, 0, errors.InvalidUTF8(string(fd.FullName())) @@ -165,7 +165,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeBytes(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfBytes(append(emptyBuf[:], v...)), n, nil case protoreflect.MessageKind: @@ -174,7 +174,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeBytes(b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfBytes(v), n, nil case protoreflect.GroupKind: @@ -183,7 +183,7 @@ func (o UnmarshalOptions) unmarshalScalar(b []byte, wtyp protowire.Type, fd prot } v, n := protowire.ConsumeGroup(fd.Number(), b) if n < 0 { - return val, 0, protowire.ParseError(n) + return val, 0, errDecode } return protoreflect.ValueOfBytes(v), n, nil default: @@ -197,12 +197,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) @@ -214,7 +214,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfBool(protowire.DecodeBool(v))) return n, nil @@ -222,12 +222,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) @@ -239,7 +239,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfEnum(protoreflect.EnumNumber(v))) return n, nil @@ -247,12 +247,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt32(int32(v))) @@ -264,7 +264,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) return n, nil @@ -272,12 +272,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) @@ -289,7 +289,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfInt32(int32(protowire.DecodeZigZag(v & math.MaxUint32)))) return n, nil @@ -297,12 +297,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint32(uint32(v))) @@ -314,7 +314,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) return n, nil @@ -322,12 +322,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt64(int64(v))) @@ -339,7 +339,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) return n, nil @@ -347,12 +347,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) @@ -364,7 +364,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfInt64(protowire.DecodeZigZag(v))) return n, nil @@ -372,12 +372,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeVarint(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint64(v)) @@ -389,7 +389,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeVarint(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfUint64(v)) return n, nil @@ -397,12 +397,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed32(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt32(int32(v))) @@ -414,7 +414,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfInt32(int32(v))) return n, nil @@ -422,12 +422,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed32(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint32(uint32(v))) @@ -439,7 +439,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfUint32(uint32(v))) return n, nil @@ -447,12 +447,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed32(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) @@ -464,7 +464,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeFixed32(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfFloat32(math.Float32frombits(uint32(v)))) return n, nil @@ -472,12 +472,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed64(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfInt64(int64(v))) @@ -489,7 +489,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfInt64(int64(v))) return n, nil @@ -497,12 +497,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed64(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfUint64(v)) @@ -514,7 +514,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfUint64(v)) return n, nil @@ -522,12 +522,12 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot if wtyp == protowire.BytesType { buf, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } for len(buf) > 0 { v, n := protowire.ConsumeFixed64(buf) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } buf = buf[n:] list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) @@ -539,7 +539,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeFixed64(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfFloat64(math.Float64frombits(v))) return n, nil @@ -549,7 +549,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } if strs.EnforceUTF8(fd) && !utf8.Valid(v) { return 0, errors.InvalidUTF8(string(fd.FullName())) @@ -562,7 +562,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } list.Append(protoreflect.ValueOfBytes(append(emptyBuf[:], v...))) return n, nil @@ -572,7 +572,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeBytes(b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } m := list.NewElement() if err := o.unmarshalMessage(v, m.Message()); err != nil { @@ -586,7 +586,7 @@ func (o UnmarshalOptions) unmarshalList(b []byte, wtyp protowire.Type, list prot } v, n := protowire.ConsumeGroup(fd.Number(), b) if n < 0 { - return 0, protowire.ParseError(n) + return 0, errDecode } m := list.NewElement() if err := o.unmarshalMessage(v, m.Message()); err != nil { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go index c52d8c4ab7..ec71e717fe 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go @@ -5,19 +5,15 @@ // Package proto provides functions operating on protocol buffer messages. // // For documentation on protocol buffers in general, see: -// -// https://developers.google.com/protocol-buffers +// https://protobuf.dev. // // For a tutorial on using protocol buffers with Go, see: -// -// https://developers.google.com/protocol-buffers/docs/gotutorial +// https://protobuf.dev/getting-started/gotutorial. // // For a guide to generated Go protocol buffer code, see: +// https://protobuf.dev/reference/go/go-generated. // -// https://developers.google.com/protocol-buffers/docs/reference/go-generated -// -// -// Binary serialization +// # Binary serialization // // This package contains functions to convert to and from the wire format, // an efficient binary serialization of protocol buffers. @@ -30,8 +26,7 @@ // • Unmarshal converts a message from the wire format. // The UnmarshalOptions type provides more control over wire unmarshaling. // -// -// Basic message operations +// # Basic message operations // // • Clone makes a deep copy of a message. // @@ -45,8 +40,7 @@ // // • CheckInitialized reports whether all required fields in a message are set. // -// -// Optional scalar constructors +// # Optional scalar constructors // // The API for some generated messages represents optional scalar fields // as pointers to a value. For example, an optional string field has the @@ -61,16 +55,14 @@ // // Optional scalar fields are only supported in proto2. // -// -// Extension accessors +// # Extension accessors // // • HasExtension, GetExtension, SetExtension, and ClearExtension // access extension field values in a protocol buffer message. // // Extension fields are only supported in proto2. // -// -// Related packages +// # Related packages // // • Package "google.golang.org/protobuf/encoding/protojson" converts messages to // and from JSON. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/encode.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/encode.go index 456bfda478..bf7f816d0e 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/encode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/encode.go @@ -5,12 +5,9 @@ package proto import ( - "sort" - "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/internal/encoding/messageset" - "google.golang.org/protobuf/internal/fieldsort" - "google.golang.org/protobuf/internal/mapsort" + "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/internal/pragma" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/runtime/protoiface" @@ -19,7 +16,8 @@ import ( // MarshalOptions configures the marshaler. // // Example usage: -// b, err := MarshalOptions{Deterministic: true}.Marshal(m) +// +// b, err := MarshalOptions{Deterministic: true}.Marshal(m) type MarshalOptions struct { pragma.NoUnkeyedLiterals @@ -104,7 +102,9 @@ func (o MarshalOptions) Marshal(m Message) ([]byte, error) { // otherwise it returns a non-nil empty buffer. // // This is to assist the edge-case where user-code does the following: +// // m1.OptionalBytes, _ = proto.Marshal(m2) +// // where they expect the proto2 "optional_bytes" field to be populated // if any only if m2 is a valid message. func emptyBytesForMessage(m Message) []byte { @@ -134,6 +134,9 @@ func (o MarshalOptions) MarshalState(in protoiface.MarshalInput) (protoiface.Mar return o.marshal(in.Buf, in.Message) } +// marshal is a centralized function that all marshal operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for marshal that do not go through this. func (o MarshalOptions) marshal(b []byte, m protoreflect.Message) (out protoiface.MarshalOutput, err error) { allowPartial := o.AllowPartial o.AllowPartial = true @@ -206,16 +209,17 @@ func growcap(oldcap, wantcap int) (newcap int) { func (o MarshalOptions) marshalMessageSlow(b []byte, m protoreflect.Message) ([]byte, error) { if messageset.IsMessageSet(m.Descriptor()) { - return marshalMessageSet(b, m, o) + return o.marshalMessageSet(b, m) + } + fieldOrder := order.AnyFieldOrder + if o.Deterministic { + // TODO: This should use a more natural ordering like NumberFieldOrder, + // but doing so breaks golden tests that make invalid assumption about + // output stability of this implementation. + fieldOrder = order.LegacyFieldOrder } - // There are many choices for what order we visit fields in. The default one here - // is chosen for reasonable efficiency and simplicity given the protoreflect API. - // It is not deterministic, since Message.Range does not return fields in any - // defined order. - // - // When using deterministic serialization, we sort the known fields. var err error - o.rangeFields(m, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { b, err = o.marshalField(b, fd, v) return err == nil }) @@ -226,27 +230,6 @@ func (o MarshalOptions) marshalMessageSlow(b []byte, m protoreflect.Message) ([] return b, nil } -// rangeFields visits fields in a defined order when deterministic serialization is enabled. -func (o MarshalOptions) rangeFields(m protoreflect.Message, f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { - if !o.Deterministic { - m.Range(f) - return - } - var fds []protoreflect.FieldDescriptor - m.Range(func(fd protoreflect.FieldDescriptor, _ protoreflect.Value) bool { - fds = append(fds, fd) - return true - }) - sort.Slice(fds, func(a, b int) bool { - return fieldsort.Less(fds[a], fds[b]) - }) - for _, fd := range fds { - if !f(fd, m.Get(fd)) { - break - } - } -} - func (o MarshalOptions) marshalField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { switch { case fd.IsList(): @@ -289,8 +272,12 @@ func (o MarshalOptions) marshalList(b []byte, fd protoreflect.FieldDescriptor, l func (o MarshalOptions) marshalMap(b []byte, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) ([]byte, error) { keyf := fd.MapKey() valf := fd.MapValue() + keyOrder := order.AnyKeyOrder + if o.Deterministic { + keyOrder = order.GenericKeyOrder + } var err error - o.rangeMap(mapv, keyf.Kind(), func(key protoreflect.MapKey, value protoreflect.Value) bool { + order.RangeEntries(mapv, keyOrder, func(key protoreflect.MapKey, value protoreflect.Value) bool { b = protowire.AppendTag(b, fd.Number(), protowire.BytesType) var pos int b, pos = appendSpeculativeLength(b) @@ -309,14 +296,6 @@ func (o MarshalOptions) marshalMap(b []byte, fd protoreflect.FieldDescriptor, ma return b, err } -func (o MarshalOptions) rangeMap(mapv protoreflect.Map, kind protoreflect.Kind, f func(protoreflect.MapKey, protoreflect.Value) bool) { - if !o.Deterministic { - mapv.Range(f) - return - } - mapsort.Range(mapv, kind, f) -} - // When encoding length-prefixed fields, we speculatively set aside some number of bytes // for the length, encode the data, and then encode the length (shifting the data if necessary // to make room). diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go index 10902bd851..1a0be1b03c 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go @@ -5,150 +5,53 @@ package proto import ( - "bytes" - "math" "reflect" - "google.golang.org/protobuf/encoding/protowire" - pref "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" ) -// Equal reports whether two messages are equal. -// If two messages marshal to the same bytes under deterministic serialization, -// then Equal is guaranteed to report true. +// Equal reports whether two messages are equal, +// by recursively comparing the fields of the message. // -// Two messages are equal if they belong to the same message descriptor, -// have the same set of populated known and extension field values, -// and the same set of unknown fields values. If either of the top-level -// messages are invalid, then Equal reports true only if both are invalid. +// - Bytes fields are equal if they contain identical bytes. +// Empty bytes (regardless of nil-ness) are considered equal. // -// Scalar values are compared with the equivalent of the == operator in Go, -// except bytes values which are compared using bytes.Equal and -// floating point values which specially treat NaNs as equal. -// Message values are compared by recursively calling Equal. -// Lists are equal if each element value is also equal. -// Maps are equal if they have the same set of keys, where the pair of values -// for each key is also equal. +// - Floating-point fields are equal if they contain the same value. +// Unlike the == operator, a NaN is equal to another NaN. +// +// - Other scalar fields are equal if they contain the same value. +// +// - Message fields are equal if they have +// the same set of populated known and extension field values, and +// the same set of unknown fields values. +// +// - Lists are equal if they are the same length and +// each corresponding element is equal. +// +// - Maps are equal if they have the same set of keys and +// the corresponding value for each key is equal. +// +// An invalid message is not equal to a valid message. +// An invalid message is only equal to another invalid message of the +// same type. An invalid message often corresponds to a nil pointer +// of the concrete message type. For example, (*pb.M)(nil) is not equal +// to &pb.M{}. +// If two valid messages marshal to the same bytes under deterministic +// serialization, then Equal is guaranteed to report true. func Equal(x, y Message) bool { if x == nil || y == nil { return x == nil && y == nil } + if reflect.TypeOf(x).Kind() == reflect.Ptr && x == y { + // Avoid an expensive comparison if both inputs are identical pointers. + return true + } mx := x.ProtoReflect() my := y.ProtoReflect() if mx.IsValid() != my.IsValid() { return false } - return equalMessage(mx, my) -} - -// equalMessage compares two messages. -func equalMessage(mx, my pref.Message) bool { - if mx.Descriptor() != my.Descriptor() { - return false - } - - nx := 0 - equal := true - mx.Range(func(fd pref.FieldDescriptor, vx pref.Value) bool { - nx++ - vy := my.Get(fd) - equal = my.Has(fd) && equalField(fd, vx, vy) - return equal - }) - if !equal { - return false - } - ny := 0 - my.Range(func(fd pref.FieldDescriptor, vx pref.Value) bool { - ny++ - return true - }) - if nx != ny { - return false - } - - return equalUnknown(mx.GetUnknown(), my.GetUnknown()) -} - -// equalField compares two fields. -func equalField(fd pref.FieldDescriptor, x, y pref.Value) bool { - switch { - case fd.IsList(): - return equalList(fd, x.List(), y.List()) - case fd.IsMap(): - return equalMap(fd, x.Map(), y.Map()) - default: - return equalValue(fd, x, y) - } -} - -// equalMap compares two maps. -func equalMap(fd pref.FieldDescriptor, x, y pref.Map) bool { - if x.Len() != y.Len() { - return false - } - equal := true - x.Range(func(k pref.MapKey, vx pref.Value) bool { - vy := y.Get(k) - equal = y.Has(k) && equalValue(fd.MapValue(), vx, vy) - return equal - }) - return equal -} - -// equalList compares two lists. -func equalList(fd pref.FieldDescriptor, x, y pref.List) bool { - if x.Len() != y.Len() { - return false - } - for i := x.Len() - 1; i >= 0; i-- { - if !equalValue(fd, x.Get(i), y.Get(i)) { - return false - } - } - return true -} - -// equalValue compares two singular values. -func equalValue(fd pref.FieldDescriptor, x, y pref.Value) bool { - switch { - case fd.Message() != nil: - return equalMessage(x.Message(), y.Message()) - case fd.Kind() == pref.BytesKind: - return bytes.Equal(x.Bytes(), y.Bytes()) - case fd.Kind() == pref.FloatKind, fd.Kind() == pref.DoubleKind: - fx := x.Float() - fy := y.Float() - if math.IsNaN(fx) || math.IsNaN(fy) { - return math.IsNaN(fx) && math.IsNaN(fy) - } - return fx == fy - default: - return x.Interface() == y.Interface() - } -} - -// equalUnknown compares unknown fields by direct comparison on the raw bytes -// of each individual field number. -func equalUnknown(x, y pref.RawFields) bool { - if len(x) != len(y) { - return false - } - if bytes.Equal([]byte(x), []byte(y)) { - return true - } - - mx := make(map[pref.FieldNumber]pref.RawFields) - my := make(map[pref.FieldNumber]pref.RawFields) - for len(x) > 0 { - fnum, _, n := protowire.ConsumeField(x) - mx[fnum] = append(mx[fnum], x[:n]...) - x = x[n:] - } - for len(y) > 0 { - fnum, _, n := protowire.ConsumeField(y) - my[fnum] = append(my[fnum], y[:n]...) - y = y[n:] - } - return reflect.DeepEqual(mx, my) + vx := protoreflect.ValueOfMessage(mx) + vy := protoreflect.ValueOfMessage(my) + return vx.Equal(vy) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/messageset.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/messageset.go index b6b3de5911..312d5d45c6 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/messageset.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/messageset.go @@ -9,28 +9,33 @@ import ( "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/order" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" ) -func sizeMessageSet(m protoreflect.Message) (size int) { +func (o MarshalOptions) sizeMessageSet(m protoreflect.Message) (size int) { m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { size += messageset.SizeField(fd.Number()) size += protowire.SizeTag(messageset.FieldMessage) - size += protowire.SizeBytes(sizeMessage(v.Message())) + size += protowire.SizeBytes(o.size(v.Message())) return true }) size += messageset.SizeUnknown(m.GetUnknown()) return size } -func marshalMessageSet(b []byte, m protoreflect.Message, o MarshalOptions) ([]byte, error) { +func (o MarshalOptions) marshalMessageSet(b []byte, m protoreflect.Message) ([]byte, error) { if !flags.ProtoLegacy { return b, errors.New("no support for message_set_wire_format") } + fieldOrder := order.AnyFieldOrder + if o.Deterministic { + fieldOrder = order.NumberFieldOrder + } var err error - o.rangeFields(m, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - b, err = marshalMessageSetField(b, fd, v, o) + order.RangeFields(m, fieldOrder, func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { + b, err = o.marshalMessageSetField(b, fd, v) return err == nil }) if err != nil { @@ -39,7 +44,7 @@ func marshalMessageSet(b []byte, m protoreflect.Message, o MarshalOptions) ([]by return messageset.AppendUnknown(b, m.GetUnknown()) } -func marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value, o MarshalOptions) ([]byte, error) { +func (o MarshalOptions) marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value protoreflect.Value) ([]byte, error) { b = messageset.AppendFieldStart(b, fd.Number()) b = protowire.AppendTag(b, messageset.FieldMessage, protowire.BytesType) b = protowire.AppendVarint(b, uint64(o.Size(value.Message().Interface()))) @@ -51,12 +56,12 @@ func marshalMessageSetField(b []byte, fd protoreflect.FieldDescriptor, value pro return b, nil } -func unmarshalMessageSet(b []byte, m protoreflect.Message, o UnmarshalOptions) error { +func (o UnmarshalOptions) unmarshalMessageSet(b []byte, m protoreflect.Message) error { if !flags.ProtoLegacy { return errors.New("no support for message_set_wire_format") } return messageset.Unmarshal(b, false, func(num protowire.Number, v []byte) error { - err := unmarshalMessageSetField(m, num, v, o) + err := o.unmarshalMessageSetField(m, num, v) if err == errUnknown { unknown := m.GetUnknown() unknown = protowire.AppendTag(unknown, num, protowire.BytesType) @@ -68,7 +73,7 @@ func unmarshalMessageSet(b []byte, m protoreflect.Message, o UnmarshalOptions) e }) } -func unmarshalMessageSetField(m protoreflect.Message, num protowire.Number, v []byte, o UnmarshalOptions) error { +func (o UnmarshalOptions) unmarshalMessageSetField(m protoreflect.Message, num protowire.Number, v []byte) error { md := m.Descriptor() if !md.ExtensionRanges().Has(num) { return errUnknown diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/proto.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/proto.go index ca14b09c34..1f0d183b10 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/proto.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/proto.go @@ -32,3 +32,12 @@ var Error error func init() { Error = errors.Error } + +// MessageName returns the full name of m. +// If m is nil, it returns an empty string. +func MessageName(m Message) protoreflect.FullName { + if m == nil { + return "" + } + return m.ProtoReflect().Descriptor().FullName() +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_methods.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_methods.go index d8dd604f6b..465e057b32 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_methods.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_methods.go @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. // The protoreflect build tag disables use of fast-path methods. +//go:build !protoreflect // +build !protoreflect package proto diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_reflect.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_reflect.go index b103d43205..494d6ceef9 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_reflect.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/proto_reflect.go @@ -3,6 +3,7 @@ // license that can be found in the LICENSE file. // The protoreflect build tag disables use of fast-path methods. +//go:build protoreflect // +build protoreflect package proto diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/size.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/size.go index 11ba841464..554b9c6c09 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/size.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/size.go @@ -23,10 +23,13 @@ func (o MarshalOptions) Size(m Message) int { return 0 } - return sizeMessage(m.ProtoReflect()) + return o.size(m.ProtoReflect()) } -func sizeMessage(m protoreflect.Message) (size int) { +// size is a centralized function that all size operations go through. +// For profiling purposes, avoid changing the name of this function or +// introducing other code paths for size that do not go through this. +func (o MarshalOptions) size(m protoreflect.Message) (size int) { methods := protoMethods(m) if methods != nil && methods.Size != nil { out := methods.Size(protoiface.SizeInput{ @@ -42,52 +45,52 @@ func sizeMessage(m protoreflect.Message) (size int) { }) return len(out.Buf) } - return sizeMessageSlow(m) + return o.sizeMessageSlow(m) } -func sizeMessageSlow(m protoreflect.Message) (size int) { +func (o MarshalOptions) sizeMessageSlow(m protoreflect.Message) (size int) { if messageset.IsMessageSet(m.Descriptor()) { - return sizeMessageSet(m) + return o.sizeMessageSet(m) } m.Range(func(fd protoreflect.FieldDescriptor, v protoreflect.Value) bool { - size += sizeField(fd, v) + size += o.sizeField(fd, v) return true }) size += len(m.GetUnknown()) return size } -func sizeField(fd protoreflect.FieldDescriptor, value protoreflect.Value) (size int) { +func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protoreflect.Value) (size int) { num := fd.Number() switch { case fd.IsList(): - return sizeList(num, fd, value.List()) + return o.sizeList(num, fd, value.List()) case fd.IsMap(): - return sizeMap(num, fd, value.Map()) + return o.sizeMap(num, fd, value.Map()) default: - return protowire.SizeTag(num) + sizeSingular(num, fd.Kind(), value) + return protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), value) } } -func sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { +func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { if fd.IsPacked() && list.Len() > 0 { content := 0 for i, llen := 0, list.Len(); i < llen; i++ { - content += sizeSingular(num, fd.Kind(), list.Get(i)) + content += o.sizeSingular(num, fd.Kind(), list.Get(i)) } return protowire.SizeTag(num) + protowire.SizeBytes(content) } for i, llen := 0, list.Len(); i < llen; i++ { - size += protowire.SizeTag(num) + sizeSingular(num, fd.Kind(), list.Get(i)) + size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) } return size } -func sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { +func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { size += protowire.SizeTag(num) - size += protowire.SizeBytes(sizeField(fd.MapKey(), key.Value()) + sizeField(fd.MapValue(), value)) + size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) return true }) return size diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/size_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/size_gen.go index 1118460f69..3cf61a824a 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/size_gen.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/size_gen.go @@ -11,7 +11,7 @@ import ( "google.golang.org/protobuf/reflect/protoreflect" ) -func sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int { +func (o MarshalOptions) sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.Value) int { switch kind { case protoreflect.BoolKind: return protowire.SizeVarint(protowire.EncodeBool(v.Bool())) @@ -46,9 +46,9 @@ func sizeSingular(num protowire.Number, kind protoreflect.Kind, v protoreflect.V case protoreflect.BytesKind: return protowire.SizeBytes(len(v.Bytes())) case protoreflect.MessageKind: - return protowire.SizeBytes(sizeMessage(v.Message())) + return protowire.SizeBytes(o.size(v.Message())) case protoreflect.GroupKind: - return protowire.SizeGroup(num, sizeMessage(v.Message())) + return protowire.SizeGroup(num, o.size(v.Message())) default: return 0 } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go new file mode 100644 index 0000000000..e4dfb12050 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc.go @@ -0,0 +1,276 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package protodesc provides functionality for converting +// FileDescriptorProto messages to/from protoreflect.FileDescriptor values. +// +// The google.protobuf.FileDescriptorProto is a protobuf message that describes +// the type information for a .proto file in a form that is easily serializable. +// The protoreflect.FileDescriptor is a more structured representation of +// the FileDescriptorProto message where references and remote dependencies +// can be directly followed. +package protodesc + +import ( + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/internal/pragma" + "google.golang.org/protobuf/internal/strs" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + + "google.golang.org/protobuf/types/descriptorpb" +) + +// Resolver is the resolver used by NewFile to resolve dependencies. +// The enums and messages provided must belong to some parent file, +// which is also registered. +// +// It is implemented by protoregistry.Files. +type Resolver interface { + FindFileByPath(string) (protoreflect.FileDescriptor, error) + FindDescriptorByName(protoreflect.FullName) (protoreflect.Descriptor, error) +} + +// FileOptions configures the construction of file descriptors. +type FileOptions struct { + pragma.NoUnkeyedLiterals + + // AllowUnresolvable configures New to permissively allow unresolvable + // file, enum, or message dependencies. Unresolved dependencies are replaced + // by placeholder equivalents. + // + // The following dependencies may be left unresolved: + // • Resolving an imported file. + // • Resolving the type for a message field or extension field. + // If the kind of the field is unknown, then a placeholder is used for both + // the Enum and Message accessors on the protoreflect.FieldDescriptor. + // • Resolving an enum value set as the default for an optional enum field. + // If unresolvable, the protoreflect.FieldDescriptor.Default is set to the + // first value in the associated enum (or zero if the also enum dependency + // is also unresolvable). The protoreflect.FieldDescriptor.DefaultEnumValue + // is populated with a placeholder. + // • Resolving the extended message type for an extension field. + // • Resolving the input or output message type for a service method. + // + // If the unresolved dependency uses a relative name, + // then the placeholder will contain an invalid FullName with a "*." prefix, + // indicating that the starting prefix of the full name is unknown. + AllowUnresolvable bool +} + +// NewFile creates a new protoreflect.FileDescriptor from the provided +// file descriptor message. See FileOptions.New for more information. +func NewFile(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { + return FileOptions{}.New(fd, r) +} + +// NewFiles creates a new protoregistry.Files from the provided +// FileDescriptorSet message. See FileOptions.NewFiles for more information. +func NewFiles(fd *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { + return FileOptions{}.NewFiles(fd) +} + +// New creates a new protoreflect.FileDescriptor from the provided +// file descriptor message. The file must represent a valid proto file according +// to protobuf semantics. The returned descriptor is a deep copy of the input. +// +// Any imported files, enum types, or message types referenced in the file are +// resolved using the provided registry. When looking up an import file path, +// the path must be unique. The newly created file descriptor is not registered +// back into the provided file registry. +func (o FileOptions) New(fd *descriptorpb.FileDescriptorProto, r Resolver) (protoreflect.FileDescriptor, error) { + if r == nil { + r = (*protoregistry.Files)(nil) // empty resolver + } + + // Handle the file descriptor content. + f := &filedesc.File{L2: &filedesc.FileL2{}} + switch fd.GetSyntax() { + case "proto2", "": + f.L1.Syntax = protoreflect.Proto2 + case "proto3": + f.L1.Syntax = protoreflect.Proto3 + default: + return nil, errors.New("invalid syntax: %q", fd.GetSyntax()) + } + f.L1.Path = fd.GetName() + if f.L1.Path == "" { + return nil, errors.New("file path must be populated") + } + f.L1.Package = protoreflect.FullName(fd.GetPackage()) + if !f.L1.Package.IsValid() && f.L1.Package != "" { + return nil, errors.New("invalid package: %q", f.L1.Package) + } + if opts := fd.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.FileOptions) + f.L2.Options = func() protoreflect.ProtoMessage { return opts } + } + + f.L2.Imports = make(filedesc.FileImports, len(fd.GetDependency())) + for _, i := range fd.GetPublicDependency() { + if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsPublic { + return nil, errors.New("invalid or duplicate public import index: %d", i) + } + f.L2.Imports[i].IsPublic = true + } + for _, i := range fd.GetWeakDependency() { + if !(0 <= i && int(i) < len(f.L2.Imports)) || f.L2.Imports[i].IsWeak { + return nil, errors.New("invalid or duplicate weak import index: %d", i) + } + f.L2.Imports[i].IsWeak = true + } + imps := importSet{f.Path(): true} + for i, path := range fd.GetDependency() { + imp := &f.L2.Imports[i] + f, err := r.FindFileByPath(path) + if err == protoregistry.NotFound && (o.AllowUnresolvable || imp.IsWeak) { + f = filedesc.PlaceholderFile(path) + } else if err != nil { + return nil, errors.New("could not resolve import %q: %v", path, err) + } + imp.FileDescriptor = f + + if imps[imp.Path()] { + return nil, errors.New("already imported %q", path) + } + imps[imp.Path()] = true + } + for i := range fd.GetDependency() { + imp := &f.L2.Imports[i] + imps.importPublic(imp.Imports()) + } + + // Handle source locations. + f.L2.Locations.File = f + for _, loc := range fd.GetSourceCodeInfo().GetLocation() { + var l protoreflect.SourceLocation + // TODO: Validate that the path points to an actual declaration? + l.Path = protoreflect.SourcePath(loc.GetPath()) + s := loc.GetSpan() + switch len(s) { + case 3: + l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[0]), int(s[2]) + case 4: + l.StartLine, l.StartColumn, l.EndLine, l.EndColumn = int(s[0]), int(s[1]), int(s[2]), int(s[3]) + default: + return nil, errors.New("invalid span: %v", s) + } + // TODO: Validate that the span information is sensible? + // See https://github.com/protocolbuffers/protobuf/issues/6378. + if false && (l.EndLine < l.StartLine || l.StartLine < 0 || l.StartColumn < 0 || l.EndColumn < 0 || + (l.StartLine == l.EndLine && l.EndColumn <= l.StartColumn)) { + return nil, errors.New("invalid span: %v", s) + } + l.LeadingDetachedComments = loc.GetLeadingDetachedComments() + l.LeadingComments = loc.GetLeadingComments() + l.TrailingComments = loc.GetTrailingComments() + f.L2.Locations.List = append(f.L2.Locations.List, l) + } + + // Step 1: Allocate and derive the names for all declarations. + // This copies all fields from the descriptor proto except: + // google.protobuf.FieldDescriptorProto.type_name + // google.protobuf.FieldDescriptorProto.default_value + // google.protobuf.FieldDescriptorProto.oneof_index + // google.protobuf.FieldDescriptorProto.extendee + // google.protobuf.MethodDescriptorProto.input + // google.protobuf.MethodDescriptorProto.output + var err error + sb := new(strs.Builder) + r1 := make(descsByName) + if f.L1.Enums.List, err = r1.initEnumDeclarations(fd.GetEnumType(), f, sb); err != nil { + return nil, err + } + if f.L1.Messages.List, err = r1.initMessagesDeclarations(fd.GetMessageType(), f, sb); err != nil { + return nil, err + } + if f.L1.Extensions.List, err = r1.initExtensionDeclarations(fd.GetExtension(), f, sb); err != nil { + return nil, err + } + if f.L1.Services.List, err = r1.initServiceDeclarations(fd.GetService(), f, sb); err != nil { + return nil, err + } + + // Step 2: Resolve every dependency reference not handled by step 1. + r2 := &resolver{local: r1, remote: r, imports: imps, allowUnresolvable: o.AllowUnresolvable} + if err := r2.resolveMessageDependencies(f.L1.Messages.List, fd.GetMessageType()); err != nil { + return nil, err + } + if err := r2.resolveExtensionDependencies(f.L1.Extensions.List, fd.GetExtension()); err != nil { + return nil, err + } + if err := r2.resolveServiceDependencies(f.L1.Services.List, fd.GetService()); err != nil { + return nil, err + } + + // Step 3: Validate every enum, message, and extension declaration. + if err := validateEnumDeclarations(f.L1.Enums.List, fd.GetEnumType()); err != nil { + return nil, err + } + if err := validateMessageDeclarations(f.L1.Messages.List, fd.GetMessageType()); err != nil { + return nil, err + } + if err := validateExtensionDeclarations(f.L1.Extensions.List, fd.GetExtension()); err != nil { + return nil, err + } + + return f, nil +} + +type importSet map[string]bool + +func (is importSet) importPublic(imps protoreflect.FileImports) { + for i := 0; i < imps.Len(); i++ { + if imp := imps.Get(i); imp.IsPublic { + is[imp.Path()] = true + is.importPublic(imp.Imports()) + } + } +} + +// NewFiles creates a new protoregistry.Files from the provided +// FileDescriptorSet message. The descriptor set must include only +// valid files according to protobuf semantics. The returned descriptors +// are a deep copy of the input. +func (o FileOptions) NewFiles(fds *descriptorpb.FileDescriptorSet) (*protoregistry.Files, error) { + files := make(map[string]*descriptorpb.FileDescriptorProto) + for _, fd := range fds.File { + if _, ok := files[fd.GetName()]; ok { + return nil, errors.New("file appears multiple times: %q", fd.GetName()) + } + files[fd.GetName()] = fd + } + r := &protoregistry.Files{} + for _, fd := range files { + if err := o.addFileDeps(r, fd, files); err != nil { + return nil, err + } + } + return r, nil +} +func (o FileOptions) addFileDeps(r *protoregistry.Files, fd *descriptorpb.FileDescriptorProto, files map[string]*descriptorpb.FileDescriptorProto) error { + // Set the entry to nil while descending into a file's dependencies to detect cycles. + files[fd.GetName()] = nil + for _, dep := range fd.Dependency { + depfd, ok := files[dep] + if depfd == nil { + if ok { + return errors.New("import cycle in file: %q", dep) + } + continue + } + if err := o.addFileDeps(r, depfd, files); err != nil { + return err + } + } + // Delete the entry once dependencies are processed. + delete(files, fd.GetName()) + f, err := o.New(fd, r) + if err != nil { + return err + } + return r.RegisterFile(f) +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go new file mode 100644 index 0000000000..37efda1afe --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go @@ -0,0 +1,248 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protodesc + +import ( + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/internal/strs" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + + "google.golang.org/protobuf/types/descriptorpb" +) + +type descsByName map[protoreflect.FullName]protoreflect.Descriptor + +func (r descsByName) initEnumDeclarations(eds []*descriptorpb.EnumDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (es []filedesc.Enum, err error) { + es = make([]filedesc.Enum, len(eds)) // allocate up-front to ensure stable pointers + for i, ed := range eds { + e := &es[i] + e.L2 = new(filedesc.EnumL2) + if e.L0, err = r.makeBase(e, parent, ed.GetName(), i, sb); err != nil { + return nil, err + } + if opts := ed.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.EnumOptions) + e.L2.Options = func() protoreflect.ProtoMessage { return opts } + } + for _, s := range ed.GetReservedName() { + e.L2.ReservedNames.List = append(e.L2.ReservedNames.List, protoreflect.Name(s)) + } + for _, rr := range ed.GetReservedRange() { + e.L2.ReservedRanges.List = append(e.L2.ReservedRanges.List, [2]protoreflect.EnumNumber{ + protoreflect.EnumNumber(rr.GetStart()), + protoreflect.EnumNumber(rr.GetEnd()), + }) + } + if e.L2.Values.List, err = r.initEnumValuesFromDescriptorProto(ed.GetValue(), e, sb); err != nil { + return nil, err + } + } + return es, nil +} + +func (r descsByName) initEnumValuesFromDescriptorProto(vds []*descriptorpb.EnumValueDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (vs []filedesc.EnumValue, err error) { + vs = make([]filedesc.EnumValue, len(vds)) // allocate up-front to ensure stable pointers + for i, vd := range vds { + v := &vs[i] + if v.L0, err = r.makeBase(v, parent, vd.GetName(), i, sb); err != nil { + return nil, err + } + if opts := vd.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.EnumValueOptions) + v.L1.Options = func() protoreflect.ProtoMessage { return opts } + } + v.L1.Number = protoreflect.EnumNumber(vd.GetNumber()) + } + return vs, nil +} + +func (r descsByName) initMessagesDeclarations(mds []*descriptorpb.DescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Message, err error) { + ms = make([]filedesc.Message, len(mds)) // allocate up-front to ensure stable pointers + for i, md := range mds { + m := &ms[i] + m.L2 = new(filedesc.MessageL2) + if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { + return nil, err + } + if opts := md.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.MessageOptions) + m.L2.Options = func() protoreflect.ProtoMessage { return opts } + m.L1.IsMapEntry = opts.GetMapEntry() + m.L1.IsMessageSet = opts.GetMessageSetWireFormat() + } + for _, s := range md.GetReservedName() { + m.L2.ReservedNames.List = append(m.L2.ReservedNames.List, protoreflect.Name(s)) + } + for _, rr := range md.GetReservedRange() { + m.L2.ReservedRanges.List = append(m.L2.ReservedRanges.List, [2]protoreflect.FieldNumber{ + protoreflect.FieldNumber(rr.GetStart()), + protoreflect.FieldNumber(rr.GetEnd()), + }) + } + for _, xr := range md.GetExtensionRange() { + m.L2.ExtensionRanges.List = append(m.L2.ExtensionRanges.List, [2]protoreflect.FieldNumber{ + protoreflect.FieldNumber(xr.GetStart()), + protoreflect.FieldNumber(xr.GetEnd()), + }) + var optsFunc func() protoreflect.ProtoMessage + if opts := xr.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.ExtensionRangeOptions) + optsFunc = func() protoreflect.ProtoMessage { return opts } + } + m.L2.ExtensionRangeOptions = append(m.L2.ExtensionRangeOptions, optsFunc) + } + if m.L2.Fields.List, err = r.initFieldsFromDescriptorProto(md.GetField(), m, sb); err != nil { + return nil, err + } + if m.L2.Oneofs.List, err = r.initOneofsFromDescriptorProto(md.GetOneofDecl(), m, sb); err != nil { + return nil, err + } + if m.L1.Enums.List, err = r.initEnumDeclarations(md.GetEnumType(), m, sb); err != nil { + return nil, err + } + if m.L1.Messages.List, err = r.initMessagesDeclarations(md.GetNestedType(), m, sb); err != nil { + return nil, err + } + if m.L1.Extensions.List, err = r.initExtensionDeclarations(md.GetExtension(), m, sb); err != nil { + return nil, err + } + } + return ms, nil +} + +func (r descsByName) initFieldsFromDescriptorProto(fds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (fs []filedesc.Field, err error) { + fs = make([]filedesc.Field, len(fds)) // allocate up-front to ensure stable pointers + for i, fd := range fds { + f := &fs[i] + if f.L0, err = r.makeBase(f, parent, fd.GetName(), i, sb); err != nil { + return nil, err + } + f.L1.IsProto3Optional = fd.GetProto3Optional() + if opts := fd.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.FieldOptions) + f.L1.Options = func() protoreflect.ProtoMessage { return opts } + f.L1.IsWeak = opts.GetWeak() + f.L1.HasPacked = opts.Packed != nil + f.L1.IsPacked = opts.GetPacked() + } + f.L1.Number = protoreflect.FieldNumber(fd.GetNumber()) + f.L1.Cardinality = protoreflect.Cardinality(fd.GetLabel()) + if fd.Type != nil { + f.L1.Kind = protoreflect.Kind(fd.GetType()) + } + if fd.JsonName != nil { + f.L1.StringName.InitJSON(fd.GetJsonName()) + } + } + return fs, nil +} + +func (r descsByName) initOneofsFromDescriptorProto(ods []*descriptorpb.OneofDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (os []filedesc.Oneof, err error) { + os = make([]filedesc.Oneof, len(ods)) // allocate up-front to ensure stable pointers + for i, od := range ods { + o := &os[i] + if o.L0, err = r.makeBase(o, parent, od.GetName(), i, sb); err != nil { + return nil, err + } + if opts := od.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.OneofOptions) + o.L1.Options = func() protoreflect.ProtoMessage { return opts } + } + } + return os, nil +} + +func (r descsByName) initExtensionDeclarations(xds []*descriptorpb.FieldDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (xs []filedesc.Extension, err error) { + xs = make([]filedesc.Extension, len(xds)) // allocate up-front to ensure stable pointers + for i, xd := range xds { + x := &xs[i] + x.L2 = new(filedesc.ExtensionL2) + if x.L0, err = r.makeBase(x, parent, xd.GetName(), i, sb); err != nil { + return nil, err + } + if opts := xd.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.FieldOptions) + x.L2.Options = func() protoreflect.ProtoMessage { return opts } + x.L2.IsPacked = opts.GetPacked() + } + x.L1.Number = protoreflect.FieldNumber(xd.GetNumber()) + x.L1.Cardinality = protoreflect.Cardinality(xd.GetLabel()) + if xd.Type != nil { + x.L1.Kind = protoreflect.Kind(xd.GetType()) + } + if xd.JsonName != nil { + x.L2.StringName.InitJSON(xd.GetJsonName()) + } + } + return xs, nil +} + +func (r descsByName) initServiceDeclarations(sds []*descriptorpb.ServiceDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ss []filedesc.Service, err error) { + ss = make([]filedesc.Service, len(sds)) // allocate up-front to ensure stable pointers + for i, sd := range sds { + s := &ss[i] + s.L2 = new(filedesc.ServiceL2) + if s.L0, err = r.makeBase(s, parent, sd.GetName(), i, sb); err != nil { + return nil, err + } + if opts := sd.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.ServiceOptions) + s.L2.Options = func() protoreflect.ProtoMessage { return opts } + } + if s.L2.Methods.List, err = r.initMethodsFromDescriptorProto(sd.GetMethod(), s, sb); err != nil { + return nil, err + } + } + return ss, nil +} + +func (r descsByName) initMethodsFromDescriptorProto(mds []*descriptorpb.MethodDescriptorProto, parent protoreflect.Descriptor, sb *strs.Builder) (ms []filedesc.Method, err error) { + ms = make([]filedesc.Method, len(mds)) // allocate up-front to ensure stable pointers + for i, md := range mds { + m := &ms[i] + if m.L0, err = r.makeBase(m, parent, md.GetName(), i, sb); err != nil { + return nil, err + } + if opts := md.GetOptions(); opts != nil { + opts = proto.Clone(opts).(*descriptorpb.MethodOptions) + m.L1.Options = func() protoreflect.ProtoMessage { return opts } + } + m.L1.IsStreamingClient = md.GetClientStreaming() + m.L1.IsStreamingServer = md.GetServerStreaming() + } + return ms, nil +} + +func (r descsByName) makeBase(child, parent protoreflect.Descriptor, name string, idx int, sb *strs.Builder) (filedesc.BaseL0, error) { + if !protoreflect.Name(name).IsValid() { + return filedesc.BaseL0{}, errors.New("descriptor %q has an invalid nested name: %q", parent.FullName(), name) + } + + // Derive the full name of the child. + // Note that enum values are a sibling to the enum parent in the namespace. + var fullName protoreflect.FullName + if _, ok := parent.(protoreflect.EnumDescriptor); ok { + fullName = sb.AppendFullName(parent.FullName().Parent(), protoreflect.Name(name)) + } else { + fullName = sb.AppendFullName(parent.FullName(), protoreflect.Name(name)) + } + if _, ok := r[fullName]; ok { + return filedesc.BaseL0{}, errors.New("descriptor %q already declared", fullName) + } + r[fullName] = child + + // TODO: Verify that the full name does not already exist in the resolver? + // This is not as critical since most usages of NewFile will register + // the created file back into the registry, which will perform this check. + + return filedesc.BaseL0{ + FullName: fullName, + ParentFile: parent.ParentFile().(*filedesc.File), + Parent: parent, + Index: idx, + }, nil +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go new file mode 100644 index 0000000000..27d7e35012 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_resolve.go @@ -0,0 +1,286 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protodesc + +import ( + "google.golang.org/protobuf/internal/encoding/defval" + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + + "google.golang.org/protobuf/types/descriptorpb" +) + +// resolver is a wrapper around a local registry of declarations within the file +// and the remote resolver. The remote resolver is restricted to only return +// descriptors that have been imported. +type resolver struct { + local descsByName + remote Resolver + imports importSet + + allowUnresolvable bool +} + +func (r *resolver) resolveMessageDependencies(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) (err error) { + for i, md := range mds { + m := &ms[i] + for j, fd := range md.GetField() { + f := &m.L2.Fields.List[j] + if f.L1.Cardinality == protoreflect.Required { + m.L2.RequiredNumbers.List = append(m.L2.RequiredNumbers.List, f.L1.Number) + } + if fd.OneofIndex != nil { + k := int(fd.GetOneofIndex()) + if !(0 <= k && k < len(md.GetOneofDecl())) { + return errors.New("message field %q has an invalid oneof index: %d", f.FullName(), k) + } + o := &m.L2.Oneofs.List[k] + f.L1.ContainingOneof = o + o.L1.Fields.List = append(o.L1.Fields.List, f) + } + + if f.L1.Kind, f.L1.Enum, f.L1.Message, err = r.findTarget(f.Kind(), f.Parent().FullName(), partialName(fd.GetTypeName()), f.IsWeak()); err != nil { + return errors.New("message field %q cannot resolve type: %v", f.FullName(), err) + } + if fd.DefaultValue != nil { + v, ev, err := unmarshalDefault(fd.GetDefaultValue(), f, r.allowUnresolvable) + if err != nil { + return errors.New("message field %q has invalid default: %v", f.FullName(), err) + } + f.L1.Default = filedesc.DefaultValue(v, ev) + } + } + + if err := r.resolveMessageDependencies(m.L1.Messages.List, md.GetNestedType()); err != nil { + return err + } + if err := r.resolveExtensionDependencies(m.L1.Extensions.List, md.GetExtension()); err != nil { + return err + } + } + return nil +} + +func (r *resolver) resolveExtensionDependencies(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) (err error) { + for i, xd := range xds { + x := &xs[i] + if x.L1.Extendee, err = r.findMessageDescriptor(x.Parent().FullName(), partialName(xd.GetExtendee()), false); err != nil { + return errors.New("extension field %q cannot resolve extendee: %v", x.FullName(), err) + } + if x.L1.Kind, x.L2.Enum, x.L2.Message, err = r.findTarget(x.Kind(), x.Parent().FullName(), partialName(xd.GetTypeName()), false); err != nil { + return errors.New("extension field %q cannot resolve type: %v", x.FullName(), err) + } + if xd.DefaultValue != nil { + v, ev, err := unmarshalDefault(xd.GetDefaultValue(), x, r.allowUnresolvable) + if err != nil { + return errors.New("extension field %q has invalid default: %v", x.FullName(), err) + } + x.L2.Default = filedesc.DefaultValue(v, ev) + } + } + return nil +} + +func (r *resolver) resolveServiceDependencies(ss []filedesc.Service, sds []*descriptorpb.ServiceDescriptorProto) (err error) { + for i, sd := range sds { + s := &ss[i] + for j, md := range sd.GetMethod() { + m := &s.L2.Methods.List[j] + m.L1.Input, err = r.findMessageDescriptor(m.Parent().FullName(), partialName(md.GetInputType()), false) + if err != nil { + return errors.New("service method %q cannot resolve input: %v", m.FullName(), err) + } + m.L1.Output, err = r.findMessageDescriptor(s.FullName(), partialName(md.GetOutputType()), false) + if err != nil { + return errors.New("service method %q cannot resolve output: %v", m.FullName(), err) + } + } + } + return nil +} + +// findTarget finds an enum or message descriptor if k is an enum, message, +// group, or unknown. If unknown, and the name could be resolved, the kind +// returned kind is set based on the type of the resolved descriptor. +func (r *resolver) findTarget(k protoreflect.Kind, scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.Kind, protoreflect.EnumDescriptor, protoreflect.MessageDescriptor, error) { + switch k { + case protoreflect.EnumKind: + ed, err := r.findEnumDescriptor(scope, ref, isWeak) + if err != nil { + return 0, nil, nil, err + } + return k, ed, nil, nil + case protoreflect.MessageKind, protoreflect.GroupKind: + md, err := r.findMessageDescriptor(scope, ref, isWeak) + if err != nil { + return 0, nil, nil, err + } + return k, nil, md, nil + case 0: + // Handle unspecified kinds (possible with parsers that operate + // on a per-file basis without knowledge of dependencies). + d, err := r.findDescriptor(scope, ref) + if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { + return k, filedesc.PlaceholderEnum(ref.FullName()), filedesc.PlaceholderMessage(ref.FullName()), nil + } else if err == protoregistry.NotFound { + return 0, nil, nil, errors.New("%q not found", ref.FullName()) + } else if err != nil { + return 0, nil, nil, err + } + switch d := d.(type) { + case protoreflect.EnumDescriptor: + return protoreflect.EnumKind, d, nil, nil + case protoreflect.MessageDescriptor: + return protoreflect.MessageKind, nil, d, nil + default: + return 0, nil, nil, errors.New("unknown kind") + } + default: + if ref != "" { + return 0, nil, nil, errors.New("target name cannot be specified for %v", k) + } + if !k.IsValid() { + return 0, nil, nil, errors.New("invalid kind: %d", k) + } + return k, nil, nil, nil + } +} + +// findDescriptor finds the descriptor by name, +// which may be a relative name within some scope. +// +// Suppose the scope was "fizz.buzz" and the reference was "Foo.Bar", +// then the following full names are searched: +// - fizz.buzz.Foo.Bar +// - fizz.Foo.Bar +// - Foo.Bar +func (r *resolver) findDescriptor(scope protoreflect.FullName, ref partialName) (protoreflect.Descriptor, error) { + if !ref.IsValid() { + return nil, errors.New("invalid name reference: %q", ref) + } + if ref.IsFull() { + scope, ref = "", ref[1:] + } + var foundButNotImported protoreflect.Descriptor + for { + // Derive the full name to search. + s := protoreflect.FullName(ref) + if scope != "" { + s = scope + "." + s + } + + // Check the current file for the descriptor. + if d, ok := r.local[s]; ok { + return d, nil + } + + // Check the remote registry for the descriptor. + d, err := r.remote.FindDescriptorByName(s) + if err == nil { + // Only allow descriptors covered by one of the imports. + if r.imports[d.ParentFile().Path()] { + return d, nil + } + foundButNotImported = d + } else if err != protoregistry.NotFound { + return nil, errors.Wrap(err, "%q", s) + } + + // Continue on at a higher level of scoping. + if scope == "" { + if d := foundButNotImported; d != nil { + return nil, errors.New("resolved %q, but %q is not imported", d.FullName(), d.ParentFile().Path()) + } + return nil, protoregistry.NotFound + } + scope = scope.Parent() + } +} + +func (r *resolver) findEnumDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.EnumDescriptor, error) { + d, err := r.findDescriptor(scope, ref) + if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { + return filedesc.PlaceholderEnum(ref.FullName()), nil + } else if err == protoregistry.NotFound { + return nil, errors.New("%q not found", ref.FullName()) + } else if err != nil { + return nil, err + } + ed, ok := d.(protoreflect.EnumDescriptor) + if !ok { + return nil, errors.New("resolved %q, but it is not an enum", d.FullName()) + } + return ed, nil +} + +func (r *resolver) findMessageDescriptor(scope protoreflect.FullName, ref partialName, isWeak bool) (protoreflect.MessageDescriptor, error) { + d, err := r.findDescriptor(scope, ref) + if err == protoregistry.NotFound && (r.allowUnresolvable || isWeak) { + return filedesc.PlaceholderMessage(ref.FullName()), nil + } else if err == protoregistry.NotFound { + return nil, errors.New("%q not found", ref.FullName()) + } else if err != nil { + return nil, err + } + md, ok := d.(protoreflect.MessageDescriptor) + if !ok { + return nil, errors.New("resolved %q, but it is not an message", d.FullName()) + } + return md, nil +} + +// partialName is the partial name. A leading dot means that the name is full, +// otherwise the name is relative to some current scope. +// See google.protobuf.FieldDescriptorProto.type_name. +type partialName string + +func (s partialName) IsFull() bool { + return len(s) > 0 && s[0] == '.' +} + +func (s partialName) IsValid() bool { + if s.IsFull() { + return protoreflect.FullName(s[1:]).IsValid() + } + return protoreflect.FullName(s).IsValid() +} + +const unknownPrefix = "*." + +// FullName converts the partial name to a full name on a best-effort basis. +// If relative, it creates an invalid full name, using a "*." prefix +// to indicate that the start of the full name is unknown. +func (s partialName) FullName() protoreflect.FullName { + if s.IsFull() { + return protoreflect.FullName(s[1:]) + } + return protoreflect.FullName(unknownPrefix + s) +} + +func unmarshalDefault(s string, fd protoreflect.FieldDescriptor, allowUnresolvable bool) (protoreflect.Value, protoreflect.EnumValueDescriptor, error) { + var evs protoreflect.EnumValueDescriptors + if fd.Enum() != nil { + evs = fd.Enum().Values() + } + v, ev, err := defval.Unmarshal(s, fd.Kind(), evs, defval.Descriptor) + if err != nil && allowUnresolvable && evs != nil && protoreflect.Name(s).IsValid() { + v = protoreflect.ValueOfEnum(0) + if evs.Len() > 0 { + v = protoreflect.ValueOfEnum(evs.Get(0).Number()) + } + ev = filedesc.PlaceholderEnumValue(fd.Enum().FullName().Parent().Append(protoreflect.Name(s))) + } else if err != nil { + return v, ev, err + } + if fd.Syntax() == protoreflect.Proto3 { + return v, ev, errors.New("cannot be specified under proto3 semantics") + } + if fd.Kind() == protoreflect.MessageKind || fd.Kind() == protoreflect.GroupKind || fd.Cardinality() == protoreflect.Repeated { + return v, ev, errors.New("cannot be specified on composite types") + } + return v, ev, nil +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go new file mode 100644 index 0000000000..9af1d56487 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/desc_validate.go @@ -0,0 +1,374 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protodesc + +import ( + "strings" + "unicode" + + "google.golang.org/protobuf/encoding/protowire" + "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/filedesc" + "google.golang.org/protobuf/internal/flags" + "google.golang.org/protobuf/internal/genid" + "google.golang.org/protobuf/internal/strs" + "google.golang.org/protobuf/reflect/protoreflect" + + "google.golang.org/protobuf/types/descriptorpb" +) + +func validateEnumDeclarations(es []filedesc.Enum, eds []*descriptorpb.EnumDescriptorProto) error { + for i, ed := range eds { + e := &es[i] + if err := e.L2.ReservedNames.CheckValid(); err != nil { + return errors.New("enum %q reserved names has %v", e.FullName(), err) + } + if err := e.L2.ReservedRanges.CheckValid(); err != nil { + return errors.New("enum %q reserved ranges has %v", e.FullName(), err) + } + if len(ed.GetValue()) == 0 { + return errors.New("enum %q must contain at least one value declaration", e.FullName()) + } + allowAlias := ed.GetOptions().GetAllowAlias() + foundAlias := false + for i := 0; i < e.Values().Len(); i++ { + v1 := e.Values().Get(i) + if v2 := e.Values().ByNumber(v1.Number()); v1 != v2 { + foundAlias = true + if !allowAlias { + return errors.New("enum %q has conflicting non-aliased values on number %d: %q with %q", e.FullName(), v1.Number(), v1.Name(), v2.Name()) + } + } + } + if allowAlias && !foundAlias { + return errors.New("enum %q allows aliases, but none were found", e.FullName()) + } + if e.Syntax() == protoreflect.Proto3 { + if v := e.Values().Get(0); v.Number() != 0 { + return errors.New("enum %q using proto3 semantics must have zero number for the first value", v.FullName()) + } + // Verify that value names in proto3 do not conflict if the + // case-insensitive prefix is removed. + // See protoc v3.8.0: src/google/protobuf/descriptor.cc:4991-5055 + names := map[string]protoreflect.EnumValueDescriptor{} + prefix := strings.Replace(strings.ToLower(string(e.Name())), "_", "", -1) + for i := 0; i < e.Values().Len(); i++ { + v1 := e.Values().Get(i) + s := strs.EnumValueName(strs.TrimEnumPrefix(string(v1.Name()), prefix)) + if v2, ok := names[s]; ok && v1.Number() != v2.Number() { + return errors.New("enum %q using proto3 semantics has conflict: %q with %q", e.FullName(), v1.Name(), v2.Name()) + } + names[s] = v1 + } + } + + for j, vd := range ed.GetValue() { + v := &e.L2.Values.List[j] + if vd.Number == nil { + return errors.New("enum value %q must have a specified number", v.FullName()) + } + if e.L2.ReservedNames.Has(v.Name()) { + return errors.New("enum value %q must not use reserved name", v.FullName()) + } + if e.L2.ReservedRanges.Has(v.Number()) { + return errors.New("enum value %q must not use reserved number %d", v.FullName(), v.Number()) + } + } + } + return nil +} + +func validateMessageDeclarations(ms []filedesc.Message, mds []*descriptorpb.DescriptorProto) error { + for i, md := range mds { + m := &ms[i] + + // Handle the message descriptor itself. + isMessageSet := md.GetOptions().GetMessageSetWireFormat() + if err := m.L2.ReservedNames.CheckValid(); err != nil { + return errors.New("message %q reserved names has %v", m.FullName(), err) + } + if err := m.L2.ReservedRanges.CheckValid(isMessageSet); err != nil { + return errors.New("message %q reserved ranges has %v", m.FullName(), err) + } + if err := m.L2.ExtensionRanges.CheckValid(isMessageSet); err != nil { + return errors.New("message %q extension ranges has %v", m.FullName(), err) + } + if err := (*filedesc.FieldRanges).CheckOverlap(&m.L2.ReservedRanges, &m.L2.ExtensionRanges); err != nil { + return errors.New("message %q reserved and extension ranges has %v", m.FullName(), err) + } + for i := 0; i < m.Fields().Len(); i++ { + f1 := m.Fields().Get(i) + if f2 := m.Fields().ByNumber(f1.Number()); f1 != f2 { + return errors.New("message %q has conflicting fields: %q with %q", m.FullName(), f1.Name(), f2.Name()) + } + } + if isMessageSet && !flags.ProtoLegacy { + return errors.New("message %q is a MessageSet, which is a legacy proto1 feature that is no longer supported", m.FullName()) + } + if isMessageSet && (m.Syntax() != protoreflect.Proto2 || m.Fields().Len() > 0 || m.ExtensionRanges().Len() == 0) { + return errors.New("message %q is an invalid proto1 MessageSet", m.FullName()) + } + if m.Syntax() == protoreflect.Proto3 { + if m.ExtensionRanges().Len() > 0 { + return errors.New("message %q using proto3 semantics cannot have extension ranges", m.FullName()) + } + // Verify that field names in proto3 do not conflict if lowercased + // with all underscores removed. + // See protoc v3.8.0: src/google/protobuf/descriptor.cc:5830-5847 + names := map[string]protoreflect.FieldDescriptor{} + for i := 0; i < m.Fields().Len(); i++ { + f1 := m.Fields().Get(i) + s := strings.Replace(strings.ToLower(string(f1.Name())), "_", "", -1) + if f2, ok := names[s]; ok { + return errors.New("message %q using proto3 semantics has conflict: %q with %q", m.FullName(), f1.Name(), f2.Name()) + } + names[s] = f1 + } + } + + for j, fd := range md.GetField() { + f := &m.L2.Fields.List[j] + if m.L2.ReservedNames.Has(f.Name()) { + return errors.New("message field %q must not use reserved name", f.FullName()) + } + if !f.Number().IsValid() { + return errors.New("message field %q has an invalid number: %d", f.FullName(), f.Number()) + } + if !f.Cardinality().IsValid() { + return errors.New("message field %q has an invalid cardinality: %d", f.FullName(), f.Cardinality()) + } + if m.L2.ReservedRanges.Has(f.Number()) { + return errors.New("message field %q must not use reserved number %d", f.FullName(), f.Number()) + } + if m.L2.ExtensionRanges.Has(f.Number()) { + return errors.New("message field %q with number %d in extension range", f.FullName(), f.Number()) + } + if fd.Extendee != nil { + return errors.New("message field %q may not have extendee: %q", f.FullName(), fd.GetExtendee()) + } + if f.L1.IsProto3Optional { + if f.Syntax() != protoreflect.Proto3 { + return errors.New("message field %q under proto3 optional semantics must be specified in the proto3 syntax", f.FullName()) + } + if f.Cardinality() != protoreflect.Optional { + return errors.New("message field %q under proto3 optional semantics must have optional cardinality", f.FullName()) + } + if f.ContainingOneof() != nil && f.ContainingOneof().Fields().Len() != 1 { + return errors.New("message field %q under proto3 optional semantics must be within a single element oneof", f.FullName()) + } + } + if f.IsWeak() && !flags.ProtoLegacy { + return errors.New("message field %q is a weak field, which is a legacy proto1 feature that is no longer supported", f.FullName()) + } + if f.IsWeak() && (f.Syntax() != protoreflect.Proto2 || !isOptionalMessage(f) || f.ContainingOneof() != nil) { + return errors.New("message field %q may only be weak for an optional message", f.FullName()) + } + if f.IsPacked() && !isPackable(f) { + return errors.New("message field %q is not packable", f.FullName()) + } + if err := checkValidGroup(f); err != nil { + return errors.New("message field %q is an invalid group: %v", f.FullName(), err) + } + if err := checkValidMap(f); err != nil { + return errors.New("message field %q is an invalid map: %v", f.FullName(), err) + } + if f.Syntax() == protoreflect.Proto3 { + if f.Cardinality() == protoreflect.Required { + return errors.New("message field %q using proto3 semantics cannot be required", f.FullName()) + } + if f.Enum() != nil && !f.Enum().IsPlaceholder() && f.Enum().Syntax() != protoreflect.Proto3 { + return errors.New("message field %q using proto3 semantics may only depend on a proto3 enum", f.FullName()) + } + } + } + seenSynthetic := false // synthetic oneofs for proto3 optional must come after real oneofs + for j := range md.GetOneofDecl() { + o := &m.L2.Oneofs.List[j] + if o.Fields().Len() == 0 { + return errors.New("message oneof %q must contain at least one field declaration", o.FullName()) + } + if n := o.Fields().Len(); n-1 != (o.Fields().Get(n-1).Index() - o.Fields().Get(0).Index()) { + return errors.New("message oneof %q must have consecutively declared fields", o.FullName()) + } + + if o.IsSynthetic() { + seenSynthetic = true + continue + } + if !o.IsSynthetic() && seenSynthetic { + return errors.New("message oneof %q must be declared before synthetic oneofs", o.FullName()) + } + + for i := 0; i < o.Fields().Len(); i++ { + f := o.Fields().Get(i) + if f.Cardinality() != protoreflect.Optional { + return errors.New("message field %q belongs in a oneof and must be optional", f.FullName()) + } + if f.IsWeak() { + return errors.New("message field %q belongs in a oneof and must not be a weak reference", f.FullName()) + } + } + } + + if err := validateEnumDeclarations(m.L1.Enums.List, md.GetEnumType()); err != nil { + return err + } + if err := validateMessageDeclarations(m.L1.Messages.List, md.GetNestedType()); err != nil { + return err + } + if err := validateExtensionDeclarations(m.L1.Extensions.List, md.GetExtension()); err != nil { + return err + } + } + return nil +} + +func validateExtensionDeclarations(xs []filedesc.Extension, xds []*descriptorpb.FieldDescriptorProto) error { + for i, xd := range xds { + x := &xs[i] + // NOTE: Avoid using the IsValid method since extensions to MessageSet + // may have a field number higher than normal. This check only verifies + // that the number is not negative or reserved. We check again later + // if we know that the extendee is definitely not a MessageSet. + if n := x.Number(); n < 0 || (protowire.FirstReservedNumber <= n && n <= protowire.LastReservedNumber) { + return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) + } + if !x.Cardinality().IsValid() || x.Cardinality() == protoreflect.Required { + return errors.New("extension field %q has an invalid cardinality: %d", x.FullName(), x.Cardinality()) + } + if xd.JsonName != nil { + // A bug in older versions of protoc would always populate the + // "json_name" option for extensions when it is meaningless. + // When it did so, it would always use the camel-cased field name. + if xd.GetJsonName() != strs.JSONCamelCase(string(x.Name())) { + return errors.New("extension field %q may not have an explicitly set JSON name: %q", x.FullName(), xd.GetJsonName()) + } + } + if xd.OneofIndex != nil { + return errors.New("extension field %q may not be part of a oneof", x.FullName()) + } + if md := x.ContainingMessage(); !md.IsPlaceholder() { + if !md.ExtensionRanges().Has(x.Number()) { + return errors.New("extension field %q extends %q with non-extension field number: %d", x.FullName(), md.FullName(), x.Number()) + } + isMessageSet := md.Options().(*descriptorpb.MessageOptions).GetMessageSetWireFormat() + if isMessageSet && !isOptionalMessage(x) { + return errors.New("extension field %q extends MessageSet and must be an optional message", x.FullName()) + } + if !isMessageSet && !x.Number().IsValid() { + return errors.New("extension field %q has an invalid number: %d", x.FullName(), x.Number()) + } + } + if xd.GetOptions().GetWeak() { + return errors.New("extension field %q cannot be a weak reference", x.FullName()) + } + if x.IsPacked() && !isPackable(x) { + return errors.New("extension field %q is not packable", x.FullName()) + } + if err := checkValidGroup(x); err != nil { + return errors.New("extension field %q is an invalid group: %v", x.FullName(), err) + } + if md := x.Message(); md != nil && md.IsMapEntry() { + return errors.New("extension field %q cannot be a map entry", x.FullName()) + } + if x.Syntax() == protoreflect.Proto3 { + switch x.ContainingMessage().FullName() { + case (*descriptorpb.FileOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.EnumOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.EnumValueOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.MessageOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.FieldOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.OneofOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.ExtensionRangeOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.ServiceOptions)(nil).ProtoReflect().Descriptor().FullName(): + case (*descriptorpb.MethodOptions)(nil).ProtoReflect().Descriptor().FullName(): + default: + return errors.New("extension field %q cannot be declared in proto3 unless extended descriptor options", x.FullName()) + } + } + } + return nil +} + +// isOptionalMessage reports whether this is an optional message. +// If the kind is unknown, it is assumed to be a message. +func isOptionalMessage(fd protoreflect.FieldDescriptor) bool { + return (fd.Kind() == 0 || fd.Kind() == protoreflect.MessageKind) && fd.Cardinality() == protoreflect.Optional +} + +// isPackable checks whether the pack option can be specified. +func isPackable(fd protoreflect.FieldDescriptor) bool { + switch fd.Kind() { + case protoreflect.StringKind, protoreflect.BytesKind, protoreflect.MessageKind, protoreflect.GroupKind: + return false + } + return fd.IsList() +} + +// checkValidGroup reports whether fd is a valid group according to the same +// rules that protoc imposes. +func checkValidGroup(fd protoreflect.FieldDescriptor) error { + md := fd.Message() + switch { + case fd.Kind() != protoreflect.GroupKind: + return nil + case fd.Syntax() != protoreflect.Proto2: + return errors.New("invalid under proto2 semantics") + case md == nil || md.IsPlaceholder(): + return errors.New("message must be resolvable") + case fd.FullName().Parent() != md.FullName().Parent(): + return errors.New("message and field must be declared in the same scope") + case !unicode.IsUpper(rune(md.Name()[0])): + return errors.New("message name must start with an uppercase") + case fd.Name() != protoreflect.Name(strings.ToLower(string(md.Name()))): + return errors.New("field name must be lowercased form of the message name") + } + return nil +} + +// checkValidMap checks whether the field is a valid map according to the same +// rules that protoc imposes. +// See protoc v3.8.0: src/google/protobuf/descriptor.cc:6045-6115 +func checkValidMap(fd protoreflect.FieldDescriptor) error { + md := fd.Message() + switch { + case md == nil || !md.IsMapEntry(): + return nil + case fd.FullName().Parent() != md.FullName().Parent(): + return errors.New("message and field must be declared in the same scope") + case md.Name() != protoreflect.Name(strs.MapEntryName(string(fd.Name()))): + return errors.New("incorrect implicit map entry name") + case fd.Cardinality() != protoreflect.Repeated: + return errors.New("field must be repeated") + case md.Fields().Len() != 2: + return errors.New("message must have exactly two fields") + case md.ExtensionRanges().Len() > 0: + return errors.New("message must not have any extension ranges") + case md.Enums().Len()+md.Messages().Len()+md.Extensions().Len() > 0: + return errors.New("message must not have any nested declarations") + } + kf := md.Fields().Get(0) + vf := md.Fields().Get(1) + switch { + case kf.Name() != genid.MapEntry_Key_field_name || kf.Number() != genid.MapEntry_Key_field_number || kf.Cardinality() != protoreflect.Optional || kf.ContainingOneof() != nil || kf.HasDefault(): + return errors.New("invalid key field") + case vf.Name() != genid.MapEntry_Value_field_name || vf.Number() != genid.MapEntry_Value_field_number || vf.Cardinality() != protoreflect.Optional || vf.ContainingOneof() != nil || vf.HasDefault(): + return errors.New("invalid value field") + } + switch kf.Kind() { + case protoreflect.BoolKind: // bool + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: // int32 + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: // int64 + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: // uint32 + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: // uint64 + case protoreflect.StringKind: // string + default: + return errors.New("invalid key kind: %v", kf.Kind()) + } + if e := vf.Enum(); e != nil && e.Values().Len() > 0 && e.Values().Get(0).Number() != 0 { + return errors.New("map enum value must have zero number for the first value") + } + return nil +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go new file mode 100644 index 0000000000..a7c5ceffc9 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protodesc/proto.go @@ -0,0 +1,252 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protodesc + +import ( + "fmt" + "strings" + + "google.golang.org/protobuf/internal/encoding/defval" + "google.golang.org/protobuf/internal/strs" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + + "google.golang.org/protobuf/types/descriptorpb" +) + +// ToFileDescriptorProto copies a protoreflect.FileDescriptor into a +// google.protobuf.FileDescriptorProto message. +func ToFileDescriptorProto(file protoreflect.FileDescriptor) *descriptorpb.FileDescriptorProto { + p := &descriptorpb.FileDescriptorProto{ + Name: proto.String(file.Path()), + Options: proto.Clone(file.Options()).(*descriptorpb.FileOptions), + } + if file.Package() != "" { + p.Package = proto.String(string(file.Package())) + } + for i, imports := 0, file.Imports(); i < imports.Len(); i++ { + imp := imports.Get(i) + p.Dependency = append(p.Dependency, imp.Path()) + if imp.IsPublic { + p.PublicDependency = append(p.PublicDependency, int32(i)) + } + if imp.IsWeak { + p.WeakDependency = append(p.WeakDependency, int32(i)) + } + } + for i, locs := 0, file.SourceLocations(); i < locs.Len(); i++ { + loc := locs.Get(i) + l := &descriptorpb.SourceCodeInfo_Location{} + l.Path = append(l.Path, loc.Path...) + if loc.StartLine == loc.EndLine { + l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndColumn)} + } else { + l.Span = []int32{int32(loc.StartLine), int32(loc.StartColumn), int32(loc.EndLine), int32(loc.EndColumn)} + } + l.LeadingDetachedComments = append([]string(nil), loc.LeadingDetachedComments...) + if loc.LeadingComments != "" { + l.LeadingComments = proto.String(loc.LeadingComments) + } + if loc.TrailingComments != "" { + l.TrailingComments = proto.String(loc.TrailingComments) + } + if p.SourceCodeInfo == nil { + p.SourceCodeInfo = &descriptorpb.SourceCodeInfo{} + } + p.SourceCodeInfo.Location = append(p.SourceCodeInfo.Location, l) + + } + for i, messages := 0, file.Messages(); i < messages.Len(); i++ { + p.MessageType = append(p.MessageType, ToDescriptorProto(messages.Get(i))) + } + for i, enums := 0, file.Enums(); i < enums.Len(); i++ { + p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) + } + for i, services := 0, file.Services(); i < services.Len(); i++ { + p.Service = append(p.Service, ToServiceDescriptorProto(services.Get(i))) + } + for i, exts := 0, file.Extensions(); i < exts.Len(); i++ { + p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) + } + if syntax := file.Syntax(); syntax != protoreflect.Proto2 { + p.Syntax = proto.String(file.Syntax().String()) + } + return p +} + +// ToDescriptorProto copies a protoreflect.MessageDescriptor into a +// google.protobuf.DescriptorProto message. +func ToDescriptorProto(message protoreflect.MessageDescriptor) *descriptorpb.DescriptorProto { + p := &descriptorpb.DescriptorProto{ + Name: proto.String(string(message.Name())), + Options: proto.Clone(message.Options()).(*descriptorpb.MessageOptions), + } + for i, fields := 0, message.Fields(); i < fields.Len(); i++ { + p.Field = append(p.Field, ToFieldDescriptorProto(fields.Get(i))) + } + for i, exts := 0, message.Extensions(); i < exts.Len(); i++ { + p.Extension = append(p.Extension, ToFieldDescriptorProto(exts.Get(i))) + } + for i, messages := 0, message.Messages(); i < messages.Len(); i++ { + p.NestedType = append(p.NestedType, ToDescriptorProto(messages.Get(i))) + } + for i, enums := 0, message.Enums(); i < enums.Len(); i++ { + p.EnumType = append(p.EnumType, ToEnumDescriptorProto(enums.Get(i))) + } + for i, xranges := 0, message.ExtensionRanges(); i < xranges.Len(); i++ { + xrange := xranges.Get(i) + p.ExtensionRange = append(p.ExtensionRange, &descriptorpb.DescriptorProto_ExtensionRange{ + Start: proto.Int32(int32(xrange[0])), + End: proto.Int32(int32(xrange[1])), + Options: proto.Clone(message.ExtensionRangeOptions(i)).(*descriptorpb.ExtensionRangeOptions), + }) + } + for i, oneofs := 0, message.Oneofs(); i < oneofs.Len(); i++ { + p.OneofDecl = append(p.OneofDecl, ToOneofDescriptorProto(oneofs.Get(i))) + } + for i, ranges := 0, message.ReservedRanges(); i < ranges.Len(); i++ { + rrange := ranges.Get(i) + p.ReservedRange = append(p.ReservedRange, &descriptorpb.DescriptorProto_ReservedRange{ + Start: proto.Int32(int32(rrange[0])), + End: proto.Int32(int32(rrange[1])), + }) + } + for i, names := 0, message.ReservedNames(); i < names.Len(); i++ { + p.ReservedName = append(p.ReservedName, string(names.Get(i))) + } + return p +} + +// ToFieldDescriptorProto copies a protoreflect.FieldDescriptor into a +// google.protobuf.FieldDescriptorProto message. +func ToFieldDescriptorProto(field protoreflect.FieldDescriptor) *descriptorpb.FieldDescriptorProto { + p := &descriptorpb.FieldDescriptorProto{ + Name: proto.String(string(field.Name())), + Number: proto.Int32(int32(field.Number())), + Label: descriptorpb.FieldDescriptorProto_Label(field.Cardinality()).Enum(), + Options: proto.Clone(field.Options()).(*descriptorpb.FieldOptions), + } + if field.IsExtension() { + p.Extendee = fullNameOf(field.ContainingMessage()) + } + if field.Kind().IsValid() { + p.Type = descriptorpb.FieldDescriptorProto_Type(field.Kind()).Enum() + } + if field.Enum() != nil { + p.TypeName = fullNameOf(field.Enum()) + } + if field.Message() != nil { + p.TypeName = fullNameOf(field.Message()) + } + if field.HasJSONName() { + // A bug in older versions of protoc would always populate the + // "json_name" option for extensions when it is meaningless. + // When it did so, it would always use the camel-cased field name. + if field.IsExtension() { + p.JsonName = proto.String(strs.JSONCamelCase(string(field.Name()))) + } else { + p.JsonName = proto.String(field.JSONName()) + } + } + if field.Syntax() == protoreflect.Proto3 && field.HasOptionalKeyword() { + p.Proto3Optional = proto.Bool(true) + } + if field.HasDefault() { + def, err := defval.Marshal(field.Default(), field.DefaultEnumValue(), field.Kind(), defval.Descriptor) + if err != nil && field.DefaultEnumValue() != nil { + def = string(field.DefaultEnumValue().Name()) // occurs for unresolved enum values + } else if err != nil { + panic(fmt.Sprintf("%v: %v", field.FullName(), err)) + } + p.DefaultValue = proto.String(def) + } + if oneof := field.ContainingOneof(); oneof != nil { + p.OneofIndex = proto.Int32(int32(oneof.Index())) + } + return p +} + +// ToOneofDescriptorProto copies a protoreflect.OneofDescriptor into a +// google.protobuf.OneofDescriptorProto message. +func ToOneofDescriptorProto(oneof protoreflect.OneofDescriptor) *descriptorpb.OneofDescriptorProto { + return &descriptorpb.OneofDescriptorProto{ + Name: proto.String(string(oneof.Name())), + Options: proto.Clone(oneof.Options()).(*descriptorpb.OneofOptions), + } +} + +// ToEnumDescriptorProto copies a protoreflect.EnumDescriptor into a +// google.protobuf.EnumDescriptorProto message. +func ToEnumDescriptorProto(enum protoreflect.EnumDescriptor) *descriptorpb.EnumDescriptorProto { + p := &descriptorpb.EnumDescriptorProto{ + Name: proto.String(string(enum.Name())), + Options: proto.Clone(enum.Options()).(*descriptorpb.EnumOptions), + } + for i, values := 0, enum.Values(); i < values.Len(); i++ { + p.Value = append(p.Value, ToEnumValueDescriptorProto(values.Get(i))) + } + for i, ranges := 0, enum.ReservedRanges(); i < ranges.Len(); i++ { + rrange := ranges.Get(i) + p.ReservedRange = append(p.ReservedRange, &descriptorpb.EnumDescriptorProto_EnumReservedRange{ + Start: proto.Int32(int32(rrange[0])), + End: proto.Int32(int32(rrange[1])), + }) + } + for i, names := 0, enum.ReservedNames(); i < names.Len(); i++ { + p.ReservedName = append(p.ReservedName, string(names.Get(i))) + } + return p +} + +// ToEnumValueDescriptorProto copies a protoreflect.EnumValueDescriptor into a +// google.protobuf.EnumValueDescriptorProto message. +func ToEnumValueDescriptorProto(value protoreflect.EnumValueDescriptor) *descriptorpb.EnumValueDescriptorProto { + return &descriptorpb.EnumValueDescriptorProto{ + Name: proto.String(string(value.Name())), + Number: proto.Int32(int32(value.Number())), + Options: proto.Clone(value.Options()).(*descriptorpb.EnumValueOptions), + } +} + +// ToServiceDescriptorProto copies a protoreflect.ServiceDescriptor into a +// google.protobuf.ServiceDescriptorProto message. +func ToServiceDescriptorProto(service protoreflect.ServiceDescriptor) *descriptorpb.ServiceDescriptorProto { + p := &descriptorpb.ServiceDescriptorProto{ + Name: proto.String(string(service.Name())), + Options: proto.Clone(service.Options()).(*descriptorpb.ServiceOptions), + } + for i, methods := 0, service.Methods(); i < methods.Len(); i++ { + p.Method = append(p.Method, ToMethodDescriptorProto(methods.Get(i))) + } + return p +} + +// ToMethodDescriptorProto copies a protoreflect.MethodDescriptor into a +// google.protobuf.MethodDescriptorProto message. +func ToMethodDescriptorProto(method protoreflect.MethodDescriptor) *descriptorpb.MethodDescriptorProto { + p := &descriptorpb.MethodDescriptorProto{ + Name: proto.String(string(method.Name())), + InputType: fullNameOf(method.Input()), + OutputType: fullNameOf(method.Output()), + Options: proto.Clone(method.Options()).(*descriptorpb.MethodOptions), + } + if method.IsStreamingClient() { + p.ClientStreaming = proto.Bool(true) + } + if method.IsStreamingServer() { + p.ServerStreaming = proto.Bool(true) + } + return p +} + +func fullNameOf(d protoreflect.Descriptor) *string { + if d == nil { + return nil + } + if strings.HasPrefix(string(d.FullName()), unknownPrefix) { + return proto.String(string(d.FullName()[len(unknownPrefix):])) + } + return proto.String("." + string(d.FullName())) +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go index 6be5d16e9f..d5d5af6ebe 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/methods.go @@ -53,6 +53,7 @@ type ( FindExtensionByName(field FullName) (ExtensionType, error) FindExtensionByNumber(message FullName, field FieldNumber) (ExtensionType, error) } + Depth int } unmarshalOutput = struct { pragma.NoUnkeyedLiterals diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go index b669a4e761..55aa14922b 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/proto.go @@ -8,8 +8,7 @@ // defined in proto source files and value interfaces which provide the // ability to examine and manipulate the contents of messages. // -// -// Protocol Buffer Descriptors +// # Protocol Buffer Descriptors // // Protobuf descriptors (e.g., EnumDescriptor or MessageDescriptor) // are immutable objects that represent protobuf type information. @@ -26,8 +25,7 @@ // The "google.golang.org/protobuf/reflect/protodesc" package converts between // google.protobuf.DescriptorProto messages and protobuf descriptors. // -// -// Go Type Descriptors +// # Go Type Descriptors // // A type descriptor (e.g., EnumType or MessageType) is a constructor for // a concrete Go type that represents the associated protobuf descriptor. @@ -41,8 +39,7 @@ // The "google.golang.org/protobuf/types/dynamicpb" package can be used to // create Go type descriptors from protobuf descriptors. // -// -// Value Interfaces +// # Value Interfaces // // The Enum and Message interfaces provide a reflective view over an // enum or message instance. For enums, it provides the ability to retrieve @@ -55,13 +52,11 @@ // The "github.com/golang/protobuf/proto".MessageReflect function can be used // to obtain a reflective view on older messages. // -// -// Relationships +// # Relationships // // The following diagrams demonstrate the relationships between // various types declared in this package. // -// // ┌───────────────────────────────────┐ // V │ // ┌────────────── New(n) ─────────────┐ │ @@ -83,7 +78,6 @@ // // • An Enum is a concrete enum instance. Generated enums implement Enum. // -// // ┌──────────────── New() ─────────────────┐ // │ │ // │ ┌─── Descriptor() ─────┐ │ ┌── Interface() ───┐ @@ -98,12 +92,22 @@ // // • A MessageType describes a concrete Go message type. // It has a MessageDescriptor and can construct a Message instance. +// Just as how Go's reflect.Type is a reflective description of a Go type, +// a MessageType is a reflective description of a Go type for a protobuf message. // // • A MessageDescriptor describes an abstract protobuf message type. -// -// • A Message is a concrete message instance. Generated messages implement -// ProtoMessage, which can convert to/from a Message. -// +// It has no understanding of Go types. In order to construct a MessageType +// from just a MessageDescriptor, you can consider looking up the message type +// in the global registry using protoregistry.GlobalTypes.FindMessageByName +// or constructing a dynamic MessageType using dynamicpb.NewMessageType. +// +// • A Message is a reflective view over a concrete message instance. +// Generated messages implement ProtoMessage, which can convert to a Message. +// Just as how Go's reflect.Value is a reflective view over a Go value, +// a Message is a reflective view over a concrete protobuf message instance. +// Using Go reflection as an analogy, the ProtoReflect method is similar to +// calling reflect.ValueOf, and the Message.Interface method is similar to +// calling reflect.Value.Interface. // // ┌── TypeDescriptor() ──┐ ┌───── Descriptor() ─────┐ // │ V │ V @@ -128,7 +132,6 @@ package protoreflect import ( "fmt" - "regexp" "strings" "google.golang.org/protobuf/encoding/protowire" @@ -408,19 +411,14 @@ type EnumRanges interface { doNotImplement } -var ( - regexName = regexp.MustCompile(`^[_a-zA-Z][_a-zA-Z0-9]*$`) - regexFullName = regexp.MustCompile(`^[_a-zA-Z][_a-zA-Z0-9]*(\.[_a-zA-Z][_a-zA-Z0-9]*)*$`) -) - // Name is the short name for a proto declaration. This is not the name // as used in Go source code, which might not be identical to the proto name. type Name string // e.g., "Kind" -// IsValid reports whether n is a syntactically valid name. +// IsValid reports whether s is a syntactically valid name. // An empty name is invalid. -func (n Name) IsValid() bool { - return regexName.MatchString(string(n)) +func (s Name) IsValid() bool { + return consumeIdent(string(s)) == len(s) } // Names represent a list of names. @@ -443,10 +441,42 @@ type Names interface { // This should not have any leading or trailing dots. type FullName string // e.g., "google.protobuf.Field.Kind" -// IsValid reports whether n is a syntactically valid full name. +// IsValid reports whether s is a syntactically valid full name. // An empty full name is invalid. -func (n FullName) IsValid() bool { - return regexFullName.MatchString(string(n)) +func (s FullName) IsValid() bool { + i := consumeIdent(string(s)) + if i < 0 { + return false + } + for len(s) > i { + if s[i] != '.' { + return false + } + i++ + n := consumeIdent(string(s[i:])) + if n < 0 { + return false + } + i += n + } + return true +} + +func consumeIdent(s string) (i int) { + if len(s) == 0 || !isLetter(s[i]) { + return -1 + } + i++ + for len(s) > i && isLetterDigit(s[i]) { + i++ + } + return i +} +func isLetter(c byte) bool { + return c == '_' || ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') +} +func isLetterDigit(c byte) bool { + return isLetter(c) || ('0' <= c && c <= '9') } // Name returns the short name, which is the last identifier segment. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go index 32ea3d98cd..0b99428855 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source.go @@ -4,6 +4,10 @@ package protoreflect +import ( + "strconv" +) + // SourceLocations is a list of source locations. type SourceLocations interface { // Len reports the number of source locations in the proto file. @@ -11,9 +15,20 @@ type SourceLocations interface { // Get returns the ith SourceLocation. It panics if out of bounds. Get(int) SourceLocation - doNotImplement + // ByPath returns the SourceLocation for the given path, + // returning the first location if multiple exist for the same path. + // If multiple locations exist for the same path, + // then SourceLocation.Next index can be used to identify the + // index of the next SourceLocation. + // If no location exists for this path, it returns the zero value. + ByPath(path SourcePath) SourceLocation - // TODO: Add ByPath and ByDescriptor helper methods. + // ByDescriptor returns the SourceLocation for the given descriptor, + // returning the first location if multiple exist for the same path. + // If no location exists for this descriptor, it returns the zero value. + ByDescriptor(desc Descriptor) SourceLocation + + doNotImplement } // SourceLocation describes a source location and @@ -39,6 +54,10 @@ type SourceLocation struct { LeadingComments string // TrailingComments is the trailing attached comment for the declaration. TrailingComments string + + // Next is an index into SourceLocations for the next source location that + // has the same Path. It is zero if there is no next location. + Next int } // SourcePath identifies part of a file descriptor for a source location. @@ -48,5 +67,63 @@ type SourceLocation struct { // See google.protobuf.SourceCodeInfo.Location.path. type SourcePath []int32 -// TODO: Add SourcePath.String method to pretty-print the path. For example: -// ".message_type[6].nested_type[15].field[3]" +// Equal reports whether p1 equals p2. +func (p1 SourcePath) Equal(p2 SourcePath) bool { + if len(p1) != len(p2) { + return false + } + for i := range p1 { + if p1[i] != p2[i] { + return false + } + } + return true +} + +// String formats the path in a humanly readable manner. +// The output is guaranteed to be deterministic, +// making it suitable for use as a key into a Go map. +// It is not guaranteed to be stable as the exact output could change +// in a future version of this module. +// +// Example output: +// +// .message_type[6].nested_type[15].field[3] +func (p SourcePath) String() string { + b := p.appendFileDescriptorProto(nil) + for _, i := range p { + b = append(b, '.') + b = strconv.AppendInt(b, int64(i), 10) + } + return string(b) +} + +type appendFunc func(*SourcePath, []byte) []byte + +func (p *SourcePath) appendSingularField(b []byte, name string, f appendFunc) []byte { + if len(*p) == 0 { + return b + } + b = append(b, '.') + b = append(b, name...) + *p = (*p)[1:] + if f != nil { + b = f(p, b) + } + return b +} + +func (p *SourcePath) appendRepeatedField(b []byte, name string, f appendFunc) []byte { + b = p.appendSingularField(b, name, nil) + if len(*p) == 0 || (*p)[0] < 0 { + return b + } + b = append(b, '[') + b = strconv.AppendUint(b, uint64((*p)[0]), 10) + b = append(b, ']') + *p = (*p)[1:] + if f != nil { + b = f(p, b) + } + return b +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go new file mode 100644 index 0000000000..54ce326df9 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go @@ -0,0 +1,475 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Code generated by generate-protos. DO NOT EDIT. + +package protoreflect + +func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendSingularField(b, "package", nil) + case 3: + b = p.appendRepeatedField(b, "dependency", nil) + case 10: + b = p.appendRepeatedField(b, "public_dependency", nil) + case 11: + b = p.appendRepeatedField(b, "weak_dependency", nil) + case 4: + b = p.appendRepeatedField(b, "message_type", (*SourcePath).appendDescriptorProto) + case 5: + b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto) + case 6: + b = p.appendRepeatedField(b, "service", (*SourcePath).appendServiceDescriptorProto) + case 7: + b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto) + case 8: + b = p.appendSingularField(b, "options", (*SourcePath).appendFileOptions) + case 9: + b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) + case 12: + b = p.appendSingularField(b, "syntax", nil) + case 13: + b = p.appendSingularField(b, "edition", nil) + } + return b +} + +func (p *SourcePath) appendDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendRepeatedField(b, "field", (*SourcePath).appendFieldDescriptorProto) + case 6: + b = p.appendRepeatedField(b, "extension", (*SourcePath).appendFieldDescriptorProto) + case 3: + b = p.appendRepeatedField(b, "nested_type", (*SourcePath).appendDescriptorProto) + case 4: + b = p.appendRepeatedField(b, "enum_type", (*SourcePath).appendEnumDescriptorProto) + case 5: + b = p.appendRepeatedField(b, "extension_range", (*SourcePath).appendDescriptorProto_ExtensionRange) + case 8: + b = p.appendRepeatedField(b, "oneof_decl", (*SourcePath).appendOneofDescriptorProto) + case 7: + b = p.appendSingularField(b, "options", (*SourcePath).appendMessageOptions) + case 9: + b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendDescriptorProto_ReservedRange) + case 10: + b = p.appendRepeatedField(b, "reserved_name", nil) + } + return b +} + +func (p *SourcePath) appendEnumDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendRepeatedField(b, "value", (*SourcePath).appendEnumValueDescriptorProto) + case 3: + b = p.appendSingularField(b, "options", (*SourcePath).appendEnumOptions) + case 4: + b = p.appendRepeatedField(b, "reserved_range", (*SourcePath).appendEnumDescriptorProto_EnumReservedRange) + case 5: + b = p.appendRepeatedField(b, "reserved_name", nil) + } + return b +} + +func (p *SourcePath) appendServiceDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendRepeatedField(b, "method", (*SourcePath).appendMethodDescriptorProto) + case 3: + b = p.appendSingularField(b, "options", (*SourcePath).appendServiceOptions) + } + return b +} + +func (p *SourcePath) appendFieldDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 3: + b = p.appendSingularField(b, "number", nil) + case 4: + b = p.appendSingularField(b, "label", nil) + case 5: + b = p.appendSingularField(b, "type", nil) + case 6: + b = p.appendSingularField(b, "type_name", nil) + case 2: + b = p.appendSingularField(b, "extendee", nil) + case 7: + b = p.appendSingularField(b, "default_value", nil) + case 9: + b = p.appendSingularField(b, "oneof_index", nil) + case 10: + b = p.appendSingularField(b, "json_name", nil) + case 8: + b = p.appendSingularField(b, "options", (*SourcePath).appendFieldOptions) + case 17: + b = p.appendSingularField(b, "proto3_optional", nil) + } + return b +} + +func (p *SourcePath) appendFileOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "java_package", nil) + case 8: + b = p.appendSingularField(b, "java_outer_classname", nil) + case 10: + b = p.appendSingularField(b, "java_multiple_files", nil) + case 20: + b = p.appendSingularField(b, "java_generate_equals_and_hash", nil) + case 27: + b = p.appendSingularField(b, "java_string_check_utf8", nil) + case 9: + b = p.appendSingularField(b, "optimize_for", nil) + case 11: + b = p.appendSingularField(b, "go_package", nil) + case 16: + b = p.appendSingularField(b, "cc_generic_services", nil) + case 17: + b = p.appendSingularField(b, "java_generic_services", nil) + case 18: + b = p.appendSingularField(b, "py_generic_services", nil) + case 42: + b = p.appendSingularField(b, "php_generic_services", nil) + case 23: + b = p.appendSingularField(b, "deprecated", nil) + case 31: + b = p.appendSingularField(b, "cc_enable_arenas", nil) + case 36: + b = p.appendSingularField(b, "objc_class_prefix", nil) + case 37: + b = p.appendSingularField(b, "csharp_namespace", nil) + case 39: + b = p.appendSingularField(b, "swift_prefix", nil) + case 40: + b = p.appendSingularField(b, "php_class_prefix", nil) + case 41: + b = p.appendSingularField(b, "php_namespace", nil) + case 44: + b = p.appendSingularField(b, "php_metadata_namespace", nil) + case 45: + b = p.appendSingularField(b, "ruby_package", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendSourceCodeInfo(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendRepeatedField(b, "location", (*SourcePath).appendSourceCodeInfo_Location) + } + return b +} + +func (p *SourcePath) appendDescriptorProto_ExtensionRange(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "start", nil) + case 2: + b = p.appendSingularField(b, "end", nil) + case 3: + b = p.appendSingularField(b, "options", (*SourcePath).appendExtensionRangeOptions) + } + return b +} + +func (p *SourcePath) appendOneofDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendSingularField(b, "options", (*SourcePath).appendOneofOptions) + } + return b +} + +func (p *SourcePath) appendMessageOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "message_set_wire_format", nil) + case 2: + b = p.appendSingularField(b, "no_standard_descriptor_accessor", nil) + case 3: + b = p.appendSingularField(b, "deprecated", nil) + case 7: + b = p.appendSingularField(b, "map_entry", nil) + case 11: + b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendDescriptorProto_ReservedRange(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "start", nil) + case 2: + b = p.appendSingularField(b, "end", nil) + } + return b +} + +func (p *SourcePath) appendEnumValueDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendSingularField(b, "number", nil) + case 3: + b = p.appendSingularField(b, "options", (*SourcePath).appendEnumValueOptions) + } + return b +} + +func (p *SourcePath) appendEnumOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 2: + b = p.appendSingularField(b, "allow_alias", nil) + case 3: + b = p.appendSingularField(b, "deprecated", nil) + case 6: + b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendEnumDescriptorProto_EnumReservedRange(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "start", nil) + case 2: + b = p.appendSingularField(b, "end", nil) + } + return b +} + +func (p *SourcePath) appendMethodDescriptorProto(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name", nil) + case 2: + b = p.appendSingularField(b, "input_type", nil) + case 3: + b = p.appendSingularField(b, "output_type", nil) + case 4: + b = p.appendSingularField(b, "options", (*SourcePath).appendMethodOptions) + case 5: + b = p.appendSingularField(b, "client_streaming", nil) + case 6: + b = p.appendSingularField(b, "server_streaming", nil) + } + return b +} + +func (p *SourcePath) appendServiceOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 33: + b = p.appendSingularField(b, "deprecated", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendFieldOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "ctype", nil) + case 2: + b = p.appendSingularField(b, "packed", nil) + case 6: + b = p.appendSingularField(b, "jstype", nil) + case 5: + b = p.appendSingularField(b, "lazy", nil) + case 15: + b = p.appendSingularField(b, "unverified_lazy", nil) + case 3: + b = p.appendSingularField(b, "deprecated", nil) + case 10: + b = p.appendSingularField(b, "weak", nil) + case 16: + b = p.appendSingularField(b, "debug_redact", nil) + case 17: + b = p.appendSingularField(b, "retention", nil) + case 18: + b = p.appendSingularField(b, "target", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendUninterpretedOption(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 2: + b = p.appendRepeatedField(b, "name", (*SourcePath).appendUninterpretedOption_NamePart) + case 3: + b = p.appendSingularField(b, "identifier_value", nil) + case 4: + b = p.appendSingularField(b, "positive_int_value", nil) + case 5: + b = p.appendSingularField(b, "negative_int_value", nil) + case 6: + b = p.appendSingularField(b, "double_value", nil) + case 7: + b = p.appendSingularField(b, "string_value", nil) + case 8: + b = p.appendSingularField(b, "aggregate_value", nil) + } + return b +} + +func (p *SourcePath) appendSourceCodeInfo_Location(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendRepeatedField(b, "path", nil) + case 2: + b = p.appendRepeatedField(b, "span", nil) + case 3: + b = p.appendSingularField(b, "leading_comments", nil) + case 4: + b = p.appendSingularField(b, "trailing_comments", nil) + case 6: + b = p.appendRepeatedField(b, "leading_detached_comments", nil) + } + return b +} + +func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendOneofOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendEnumValueOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "deprecated", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendMethodOptions(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 33: + b = p.appendSingularField(b, "deprecated", nil) + case 34: + b = p.appendSingularField(b, "idempotency_level", nil) + case 999: + b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + } + return b +} + +func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "name_part", nil) + case 2: + b = p.appendSingularField(b, "is_extension", nil) + } + return b +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go index 5be14a7258..3867470d30 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/type.go @@ -232,11 +232,15 @@ type MessageDescriptor interface { type isMessageDescriptor interface{ ProtoType(MessageDescriptor) } // MessageType encapsulates a MessageDescriptor with a concrete Go implementation. +// It is recommended that implementations of this interface also implement the +// MessageFieldTypes interface. type MessageType interface { // New returns a newly allocated empty message. + // It may return nil for synthetic messages representing a map entry. New() Message // Zero returns an empty, read-only message. + // It may return nil for synthetic messages representing a map entry. Zero() Message // Descriptor returns the message descriptor. @@ -245,6 +249,26 @@ type MessageType interface { Descriptor() MessageDescriptor } +// MessageFieldTypes extends a MessageType by providing type information +// regarding enums and messages referenced by the message fields. +type MessageFieldTypes interface { + MessageType + + // Enum returns the EnumType for the ith field in Descriptor.Fields. + // It returns nil if the ith field is not an enum kind. + // It panics if out of bounds. + // + // Invariant: mt.Enum(i).Descriptor() == mt.Descriptor().Fields(i).Enum() + Enum(i int) EnumType + + // Message returns the MessageType for the ith field in Descriptor.Fields. + // It returns nil if the ith field is not a message or group kind. + // It panics if out of bounds. + // + // Invariant: mt.Message(i).Descriptor() == mt.Descriptor().Fields(i).Message() + Message(i int) MessageType +} + // MessageDescriptors is a list of message declarations. type MessageDescriptors interface { // Len reports the number of messages. @@ -279,8 +303,15 @@ type FieldDescriptor interface { // JSONName reports the name used for JSON serialization. // It is usually the camel-cased form of the field name. + // Extension fields are represented by the full name surrounded by brackets. JSONName() string + // TextName reports the name used for text serialization. + // It is usually the name of the field, except that groups use the name + // of the inlined message, and extension fields are represented by the + // full name surrounded by brackets. + TextName() string + // HasPresence reports whether the field distinguishes between unpopulated // and default values. HasPresence() bool @@ -371,6 +402,9 @@ type FieldDescriptors interface { // ByJSONName returns the FieldDescriptor for a field with s as the JSON name. // It returns nil if not found. ByJSONName(s string) FieldDescriptor + // ByTextName returns the FieldDescriptor for a field with s as the text name. + // It returns nil if not found. + ByTextName(s string) FieldDescriptor // ByNumber returns the FieldDescriptor for a field numbered n. // It returns nil if not found. ByNumber(n FieldNumber) FieldDescriptor @@ -446,6 +480,7 @@ type ExtensionDescriptors interface { // relative to the parent that it is declared within. // // For example: +// // syntax = "proto2"; // package example; // message FooMessage { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go index f319810778..37601b7819 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go @@ -148,7 +148,7 @@ type Message interface { // be preserved in marshaling or other operations. IsValid() bool - // ProtoMethods returns optional fast-path implementions of various operations. + // ProtoMethods returns optional fast-path implementations of various operations. // This method may return nil. // // The returned methods type is identical to diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go new file mode 100644 index 0000000000..591652541f --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go @@ -0,0 +1,168 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package protoreflect + +import ( + "bytes" + "fmt" + "math" + "reflect" + + "google.golang.org/protobuf/encoding/protowire" +) + +// Equal reports whether v1 and v2 are recursively equal. +// +// - Values of different types are always unequal. +// +// - Bytes values are equal if they contain identical bytes. +// Empty bytes (regardless of nil-ness) are considered equal. +// +// - Floating point values are equal if they contain the same value. +// Unlike the == operator, a NaN is equal to another NaN. +// +// - Enums are equal if they contain the same number. +// Since Value does not contain an enum descriptor, +// enum values do not consider the type of the enum. +// +// - Other scalar values are equal if they contain the same value. +// +// - Message values are equal if they belong to the same message descriptor, +// have the same set of populated known and extension field values, +// and the same set of unknown fields values. +// +// - Lists are equal if they are the same length and +// each corresponding element is equal. +// +// - Maps are equal if they have the same set of keys and +// the corresponding value for each key is equal. +func (v1 Value) Equal(v2 Value) bool { + return equalValue(v1, v2) +} + +func equalValue(x, y Value) bool { + eqType := x.typ == y.typ + switch x.typ { + case nilType: + return eqType + case boolType: + return eqType && x.Bool() == y.Bool() + case int32Type, int64Type: + return eqType && x.Int() == y.Int() + case uint32Type, uint64Type: + return eqType && x.Uint() == y.Uint() + case float32Type, float64Type: + return eqType && equalFloat(x.Float(), y.Float()) + case stringType: + return eqType && x.String() == y.String() + case bytesType: + return eqType && bytes.Equal(x.Bytes(), y.Bytes()) + case enumType: + return eqType && x.Enum() == y.Enum() + default: + switch x := x.Interface().(type) { + case Message: + y, ok := y.Interface().(Message) + return ok && equalMessage(x, y) + case List: + y, ok := y.Interface().(List) + return ok && equalList(x, y) + case Map: + y, ok := y.Interface().(Map) + return ok && equalMap(x, y) + default: + panic(fmt.Sprintf("unknown type: %T", x)) + } + } +} + +// equalFloat compares two floats, where NaNs are treated as equal. +func equalFloat(x, y float64) bool { + if math.IsNaN(x) || math.IsNaN(y) { + return math.IsNaN(x) && math.IsNaN(y) + } + return x == y +} + +// equalMessage compares two messages. +func equalMessage(mx, my Message) bool { + if mx.Descriptor() != my.Descriptor() { + return false + } + + nx := 0 + equal := true + mx.Range(func(fd FieldDescriptor, vx Value) bool { + nx++ + vy := my.Get(fd) + equal = my.Has(fd) && equalValue(vx, vy) + return equal + }) + if !equal { + return false + } + ny := 0 + my.Range(func(fd FieldDescriptor, vx Value) bool { + ny++ + return true + }) + if nx != ny { + return false + } + + return equalUnknown(mx.GetUnknown(), my.GetUnknown()) +} + +// equalList compares two lists. +func equalList(x, y List) bool { + if x.Len() != y.Len() { + return false + } + for i := x.Len() - 1; i >= 0; i-- { + if !equalValue(x.Get(i), y.Get(i)) { + return false + } + } + return true +} + +// equalMap compares two maps. +func equalMap(x, y Map) bool { + if x.Len() != y.Len() { + return false + } + equal := true + x.Range(func(k MapKey, vx Value) bool { + vy := y.Get(k) + equal = y.Has(k) && equalValue(vx, vy) + return equal + }) + return equal +} + +// equalUnknown compares unknown fields by direct comparison on the raw bytes +// of each individual field number. +func equalUnknown(x, y RawFields) bool { + if len(x) != len(y) { + return false + } + if bytes.Equal([]byte(x), []byte(y)) { + return true + } + + mx := make(map[FieldNumber]RawFields) + my := make(map[FieldNumber]RawFields) + for len(x) > 0 { + fnum, _, n := protowire.ConsumeField(x) + mx[fnum] = append(mx[fnum], x[:n]...) + x = x[n:] + } + for len(y) > 0 { + fnum, _, n := protowire.ConsumeField(y) + my[fnum] = append(my[fnum], y[:n]...) + y = y[n:] + } + return reflect.DeepEqual(mx, my) +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go index 918e685e1d..7ced876f4e 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_pure.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build purego || appengine // +build purego appengine package protoreflect diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go index f334f71bcb..08e5ef73fc 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go @@ -41,6 +41,32 @@ import ( // Converting to/from a Value and a concrete Go value panics on type mismatch. // For example, ValueOf("hello").Int() panics because this attempts to // retrieve an int64 from a string. +// +// List, Map, and Message Values are called "composite" values. +// +// A composite Value may alias (reference) memory at some location, +// such that changes to the Value updates the that location. +// A composite value acquired with a Mutable method, such as Message.Mutable, +// always references the source object. +// +// For example: +// +// // Append a 0 to a "repeated int32" field. +// // Since the Value returned by Mutable is guaranteed to alias +// // the source message, modifying the Value modifies the message. +// message.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0)) +// +// // Assign [0] to a "repeated int32" field by creating a new Value, +// // modifying it, and assigning it. +// list := message.NewField(fieldDesc).List() +// list.Append(protoreflect.ValueOfInt32(0)) +// message.Set(fieldDesc, list) +// // ERROR: Since it is not defined whether Set aliases the source, +// // appending to the List here may or may not modify the message. +// list.Append(protoreflect.ValueOfInt32(0)) +// +// Some operations, such as Message.Get, may return an "empty, read-only" +// composite Value. Modifying an empty, read-only value panics. type Value value // The protoreflect API uses a custom Value union type instead of interface{} @@ -85,6 +111,8 @@ func ValueOf(v interface{}) Value { return ValueOfEnum(v) case Message, List, Map: return valueOfIface(v) + case ProtoMessage: + panic(fmt.Sprintf("invalid proto.Message(%T) type, expected a protoreflect.Message type", v)) default: panic(fmt.Sprintf("invalid type: %T", v)) } @@ -365,6 +393,7 @@ func (v Value) MapKey() MapKey { // ╚═════════╧═════════════════════════════════════╝ // // A MapKey is constructed and accessed through a Value: +// // k := ValueOf("hash").MapKey() // convert string to MapKey // s := k.String() // convert MapKey to string // diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go index c45debdcac..702ddf22a2 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe.go @@ -2,6 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build !purego && !appengine // +build !purego,!appengine package protoreflect diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go index 43f16c6164..aeb5597744 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go @@ -17,24 +17,51 @@ package protoregistry import ( "fmt" - "log" + "os" "strings" "sync" + "google.golang.org/protobuf/internal/encoding/messageset" "google.golang.org/protobuf/internal/errors" + "google.golang.org/protobuf/internal/flags" "google.golang.org/protobuf/reflect/protoreflect" ) +// conflictPolicy configures the policy for handling registration conflicts. +// +// It can be over-written at compile time with a linker-initialized variable: +// +// go build -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" +// +// It can be over-written at program execution with an environment variable: +// +// GOLANG_PROTOBUF_REGISTRATION_CONFLICT=warn ./main +// +// Neither of the above are covered by the compatibility promise and +// may be removed in a future release of this module. +var conflictPolicy = "panic" // "panic" | "warn" | "ignore" + // ignoreConflict reports whether to ignore a registration conflict // given the descriptor being registered and the error. // It is a variable so that the behavior is easily overridden in another file. var ignoreConflict = func(d protoreflect.Descriptor, err error) bool { - log.Printf(""+ - "WARNING: %v\n"+ - "A future release will panic on registration conflicts. See:\n"+ - "https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict\n"+ - "\n", err) - return true + const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT" + const faq = "https://protobuf.dev/reference/go/faq#namespace-conflict" + policy := conflictPolicy + if v := os.Getenv(env); v != "" { + policy = v + } + switch policy { + case "panic": + panic(fmt.Sprintf("%v\nSee %v\n", err, faq)) + case "warn": + fmt.Fprintf(os.Stderr, "WARNING: %v\nSee %v\n\n", err, faq) + return true + case "ignore": + return true + default: + panic("invalid " + env + " value: " + os.Getenv(env)) + } } var globalMutex sync.RWMutex @@ -69,7 +96,8 @@ type Files struct { // Note that enum values are in the top-level since that are in the same // scope as the parent enum. descsByName map[protoreflect.FullName]interface{} - filesByPath map[string]protoreflect.FileDescriptor + filesByPath map[string][]protoreflect.FileDescriptor + numFiles int } type packageDescriptor struct { @@ -92,16 +120,16 @@ func (r *Files) RegisterFile(file protoreflect.FileDescriptor) error { r.descsByName = map[protoreflect.FullName]interface{}{ "": &packageDescriptor{}, } - r.filesByPath = make(map[string]protoreflect.FileDescriptor) + r.filesByPath = make(map[string][]protoreflect.FileDescriptor) } path := file.Path() - if prev := r.filesByPath[path]; prev != nil { + if prev := r.filesByPath[path]; len(prev) > 0 { + r.checkGenProtoConflict(path) err := errors.New("file %q is already registered", file.Path()) - err = amendErrorWithCaller(err, prev, file) - if r == GlobalFiles && ignoreConflict(file, err) { - err = nil + err = amendErrorWithCaller(err, prev[0], file) + if !(r == GlobalFiles && ignoreConflict(file, err)) { + return err } - return err } for name := file.Package(); name != ""; name = name.Parent() { @@ -142,10 +170,52 @@ func (r *Files) RegisterFile(file protoreflect.FileDescriptor) error { rangeTopLevelDescriptors(file, func(d protoreflect.Descriptor) { r.descsByName[d.FullName()] = d }) - r.filesByPath[path] = file + r.filesByPath[path] = append(r.filesByPath[path], file) + r.numFiles++ return nil } +// Several well-known types were hosted in the google.golang.org/genproto module +// but were later moved to this module. To avoid a weak dependency on the +// genproto module (and its relatively large set of transitive dependencies), +// we rely on a registration conflict to determine whether the genproto version +// is too old (i.e., does not contain aliases to the new type declarations). +func (r *Files) checkGenProtoConflict(path string) { + if r != GlobalFiles { + return + } + var prevPath string + const prevModule = "google.golang.org/genproto" + const prevVersion = "cb27e3aa (May 26th, 2020)" + switch path { + case "google/protobuf/field_mask.proto": + prevPath = prevModule + "/protobuf/field_mask" + case "google/protobuf/api.proto": + prevPath = prevModule + "/protobuf/api" + case "google/protobuf/type.proto": + prevPath = prevModule + "/protobuf/ptype" + case "google/protobuf/source_context.proto": + prevPath = prevModule + "/protobuf/source_context" + default: + return + } + pkgName := strings.TrimSuffix(strings.TrimPrefix(path, "google/protobuf/"), ".proto") + pkgName = strings.Replace(pkgName, "_", "", -1) + "pb" // e.g., "field_mask" => "fieldmaskpb" + currPath := "google.golang.org/protobuf/types/known/" + pkgName + panic(fmt.Sprintf(""+ + "duplicate registration of %q\n"+ + "\n"+ + "The generated definition for this file has moved:\n"+ + "\tfrom: %q\n"+ + "\tto: %q\n"+ + "A dependency on the %q module must\n"+ + "be at version %v or higher.\n"+ + "\n"+ + "Upgrade the dependency by running:\n"+ + "\tgo get -u %v\n", + path, prevPath, currPath, prevModule, prevVersion, prevPath)) +} + // FindDescriptorByName looks up a descriptor by the full name. // // This returns (nil, NotFound) if not found. @@ -241,6 +311,7 @@ func (s *nameSuffix) Pop() (name protoreflect.Name) { // FindFileByPath looks up a file by the path. // // This returns (nil, NotFound) if not found. +// This returns an error if multiple files have the same path. func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) { if r == nil { return nil, NotFound @@ -249,13 +320,19 @@ func (r *Files) FindFileByPath(path string) (protoreflect.FileDescriptor, error) globalMutex.RLock() defer globalMutex.RUnlock() } - if fd, ok := r.filesByPath[path]; ok { - return fd, nil + fds := r.filesByPath[path] + switch len(fds) { + case 0: + return nil, NotFound + case 1: + return fds[0], nil + default: + return nil, errors.New("multiple files named %q", path) } - return nil, NotFound } -// NumFiles reports the number of registered files. +// NumFiles reports the number of registered files, +// including duplicate files with the same name. func (r *Files) NumFiles() int { if r == nil { return 0 @@ -264,10 +341,11 @@ func (r *Files) NumFiles() int { globalMutex.RLock() defer globalMutex.RUnlock() } - return len(r.filesByPath) + return r.numFiles } // RangeFiles iterates over all registered files while f returns true. +// If multiple files have the same name, RangeFiles iterates over all of them. // The iteration order is undefined. func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) { if r == nil { @@ -277,9 +355,11 @@ func (r *Files) RangeFiles(f func(protoreflect.FileDescriptor) bool) { globalMutex.RLock() defer globalMutex.RUnlock() } - for _, file := range r.filesByPath { - if !f(file) { - return + for _, files := range r.filesByPath { + for _, file := range files { + if !f(file) { + return + } } } } @@ -528,13 +608,25 @@ func (r *Types) FindEnumByName(enum protoreflect.FullName) (protoreflect.EnumTyp return nil, NotFound } -// FindMessageByName looks up a message by its full name. -// E.g., "google.protobuf.Any" +// FindMessageByName looks up a message by its full name, +// e.g. "google.protobuf.Any". // -// This return (nil, NotFound) if not found. +// This returns (nil, NotFound) if not found. func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.MessageType, error) { - // The full name by itself is a valid URL. - return r.FindMessageByURL(string(message)) + if r == nil { + return nil, NotFound + } + if r == GlobalTypes { + globalMutex.RLock() + defer globalMutex.RUnlock() + } + if v := r.typesByName[message]; v != nil { + if mt, _ := v.(protoreflect.MessageType); mt != nil { + return mt, nil + } + return nil, errors.New("found wrong type: got %v, want message", typeName(v)) + } + return nil, NotFound } // FindMessageByURL looks up a message by a URL identifier. @@ -542,6 +634,8 @@ func (r *Types) FindMessageByName(message protoreflect.FullName) (protoreflect.M // // This returns (nil, NotFound) if not found. func (r *Types) FindMessageByURL(url string) (protoreflect.MessageType, error) { + // This function is similar to FindMessageByName but + // truncates anything before and including '/' in the URL. if r == nil { return nil, NotFound } @@ -581,6 +675,26 @@ func (r *Types) FindExtensionByName(field protoreflect.FullName) (protoreflect.E if xt, _ := v.(protoreflect.ExtensionType); xt != nil { return xt, nil } + + // MessageSet extensions are special in that the name of the extension + // is the name of the message type used to extend the MessageSet. + // This naming scheme is used by text and JSON serialization. + // + // This feature is protected by the ProtoLegacy flag since MessageSets + // are a proto1 feature that is long deprecated. + if flags.ProtoLegacy { + if _, ok := v.(protoreflect.MessageType); ok { + field := field.Append(messageset.ExtensionName) + if v := r.typesByName[field]; v != nil { + if xt, _ := v.(protoreflect.ExtensionType); xt != nil { + if messageset.IsMessageSetExtension(xt.TypeDescriptor()) { + return xt, nil + } + } + } + } + } + return nil, errors.New("found wrong type: got %v, want extension", typeName(v)) } return nil, NotFound diff --git a/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go b/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go index 32c04f67eb..44cf467d88 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoiface/methods.go @@ -103,6 +103,7 @@ type UnmarshalInput = struct { FindExtensionByName(field protoreflect.FullName) (protoreflect.ExtensionType, error) FindExtensionByNumber(message protoreflect.FullName, field protoreflect.FieldNumber) (protoreflect.ExtensionType, error) } + Depth int } // UnmarshalOutput is output from the Unmarshal method. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go b/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go index ff094e1ba4..a105cb23e0 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/runtime/protoimpl/version.go @@ -26,16 +26,19 @@ const ( // EnforceVersion is used by code generated by protoc-gen-go // to statically enforce minimum and maximum versions of this package. // A compilation failure implies either that: -// * the runtime package is too old and needs to be updated OR -// * the generated code is too old and needs to be regenerated. +// - the runtime package is too old and needs to be updated OR +// - the generated code is too old and needs to be regenerated. // // The runtime package can be upgraded by running: +// // go get google.golang.org/protobuf // // The generated code can be regenerated by running: +// // protoc --go_out=${PROTOC_GEN_GO_ARGS} ${PROTO_FILES} // // Example usage by generated code: +// // const ( // // Verify that this generated code is sufficiently up-to-date. // _ = protoimpl.EnforceVersion(genVersion - protoimpl.MinVersion) @@ -49,6 +52,7 @@ const ( type EnforceVersion uint // This enforces the following invariant: +// // MinVersion ≤ GenVersion ≤ MaxVersion const ( _ = EnforceVersion(GenVersion - MinVersion) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go new file mode 100644 index 0000000000..dac5671db0 --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go @@ -0,0 +1,4350 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. + +// Author: kenton@google.com (Kenton Varda) +// Based on original Protocol Buffers design by +// Sanjay Ghemawat, Jeff Dean, and others. +// +// The messages in this file describe the definitions found in .proto files. +// A valid .proto file can be translated directly to a FileDescriptorProto +// without any other information (e.g. without reading its imports). + +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/protobuf/descriptor.proto + +package descriptorpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +type FieldDescriptorProto_Type int32 + +const ( + // 0 is reserved for errors. + // Order is weird for historical reasons. + FieldDescriptorProto_TYPE_DOUBLE FieldDescriptorProto_Type = 1 + FieldDescriptorProto_TYPE_FLOAT FieldDescriptorProto_Type = 2 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT64 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT64 FieldDescriptorProto_Type = 3 + FieldDescriptorProto_TYPE_UINT64 FieldDescriptorProto_Type = 4 + // Not ZigZag encoded. Negative numbers take 10 bytes. Use TYPE_SINT32 if + // negative values are likely. + FieldDescriptorProto_TYPE_INT32 FieldDescriptorProto_Type = 5 + FieldDescriptorProto_TYPE_FIXED64 FieldDescriptorProto_Type = 6 + FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 + FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 + FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 + // Tag-delimited aggregate. + // Group type is deprecated and not supported in proto3. However, Proto3 + // implementations should still be able to parse the group wire format and + // treat group fields as unknown fields. + FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 + FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 // Length-delimited aggregate. + // New in version 2. + FieldDescriptorProto_TYPE_BYTES FieldDescriptorProto_Type = 12 + FieldDescriptorProto_TYPE_UINT32 FieldDescriptorProto_Type = 13 + FieldDescriptorProto_TYPE_ENUM FieldDescriptorProto_Type = 14 + FieldDescriptorProto_TYPE_SFIXED32 FieldDescriptorProto_Type = 15 + FieldDescriptorProto_TYPE_SFIXED64 FieldDescriptorProto_Type = 16 + FieldDescriptorProto_TYPE_SINT32 FieldDescriptorProto_Type = 17 // Uses ZigZag encoding. + FieldDescriptorProto_TYPE_SINT64 FieldDescriptorProto_Type = 18 // Uses ZigZag encoding. +) + +// Enum value maps for FieldDescriptorProto_Type. +var ( + FieldDescriptorProto_Type_name = map[int32]string{ + 1: "TYPE_DOUBLE", + 2: "TYPE_FLOAT", + 3: "TYPE_INT64", + 4: "TYPE_UINT64", + 5: "TYPE_INT32", + 6: "TYPE_FIXED64", + 7: "TYPE_FIXED32", + 8: "TYPE_BOOL", + 9: "TYPE_STRING", + 10: "TYPE_GROUP", + 11: "TYPE_MESSAGE", + 12: "TYPE_BYTES", + 13: "TYPE_UINT32", + 14: "TYPE_ENUM", + 15: "TYPE_SFIXED32", + 16: "TYPE_SFIXED64", + 17: "TYPE_SINT32", + 18: "TYPE_SINT64", + } + FieldDescriptorProto_Type_value = map[string]int32{ + "TYPE_DOUBLE": 1, + "TYPE_FLOAT": 2, + "TYPE_INT64": 3, + "TYPE_UINT64": 4, + "TYPE_INT32": 5, + "TYPE_FIXED64": 6, + "TYPE_FIXED32": 7, + "TYPE_BOOL": 8, + "TYPE_STRING": 9, + "TYPE_GROUP": 10, + "TYPE_MESSAGE": 11, + "TYPE_BYTES": 12, + "TYPE_UINT32": 13, + "TYPE_ENUM": 14, + "TYPE_SFIXED32": 15, + "TYPE_SFIXED64": 16, + "TYPE_SINT32": 17, + "TYPE_SINT64": 18, + } +) + +func (x FieldDescriptorProto_Type) Enum() *FieldDescriptorProto_Type { + p := new(FieldDescriptorProto_Type) + *p = x + return p +} + +func (x FieldDescriptorProto_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldDescriptorProto_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[0].Descriptor() +} + +func (FieldDescriptorProto_Type) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[0] +} + +func (x FieldDescriptorProto_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldDescriptorProto_Type) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldDescriptorProto_Type(num) + return nil +} + +// Deprecated: Use FieldDescriptorProto_Type.Descriptor instead. +func (FieldDescriptorProto_Type) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 0} +} + +type FieldDescriptorProto_Label int32 + +const ( + // 0 is reserved for errors + FieldDescriptorProto_LABEL_OPTIONAL FieldDescriptorProto_Label = 1 + FieldDescriptorProto_LABEL_REQUIRED FieldDescriptorProto_Label = 2 + FieldDescriptorProto_LABEL_REPEATED FieldDescriptorProto_Label = 3 +) + +// Enum value maps for FieldDescriptorProto_Label. +var ( + FieldDescriptorProto_Label_name = map[int32]string{ + 1: "LABEL_OPTIONAL", + 2: "LABEL_REQUIRED", + 3: "LABEL_REPEATED", + } + FieldDescriptorProto_Label_value = map[string]int32{ + "LABEL_OPTIONAL": 1, + "LABEL_REQUIRED": 2, + "LABEL_REPEATED": 3, + } +) + +func (x FieldDescriptorProto_Label) Enum() *FieldDescriptorProto_Label { + p := new(FieldDescriptorProto_Label) + *p = x + return p +} + +func (x FieldDescriptorProto_Label) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldDescriptorProto_Label) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[1].Descriptor() +} + +func (FieldDescriptorProto_Label) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[1] +} + +func (x FieldDescriptorProto_Label) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldDescriptorProto_Label) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldDescriptorProto_Label(num) + return nil +} + +// Deprecated: Use FieldDescriptorProto_Label.Descriptor instead. +func (FieldDescriptorProto_Label) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4, 1} +} + +// Generated classes can be optimized for speed or code size. +type FileOptions_OptimizeMode int32 + +const ( + FileOptions_SPEED FileOptions_OptimizeMode = 1 // Generate complete code for parsing, serialization, + // etc. + FileOptions_CODE_SIZE FileOptions_OptimizeMode = 2 // Use ReflectionOps to implement these methods. + FileOptions_LITE_RUNTIME FileOptions_OptimizeMode = 3 // Generate code using MessageLite and the lite runtime. +) + +// Enum value maps for FileOptions_OptimizeMode. +var ( + FileOptions_OptimizeMode_name = map[int32]string{ + 1: "SPEED", + 2: "CODE_SIZE", + 3: "LITE_RUNTIME", + } + FileOptions_OptimizeMode_value = map[string]int32{ + "SPEED": 1, + "CODE_SIZE": 2, + "LITE_RUNTIME": 3, + } +) + +func (x FileOptions_OptimizeMode) Enum() *FileOptions_OptimizeMode { + p := new(FileOptions_OptimizeMode) + *p = x + return p +} + +func (x FileOptions_OptimizeMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FileOptions_OptimizeMode) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[2].Descriptor() +} + +func (FileOptions_OptimizeMode) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[2] +} + +func (x FileOptions_OptimizeMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FileOptions_OptimizeMode) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FileOptions_OptimizeMode(num) + return nil +} + +// Deprecated: Use FileOptions_OptimizeMode.Descriptor instead. +func (FileOptions_OptimizeMode) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10, 0} +} + +type FieldOptions_CType int32 + +const ( + // Default mode. + FieldOptions_STRING FieldOptions_CType = 0 + FieldOptions_CORD FieldOptions_CType = 1 + FieldOptions_STRING_PIECE FieldOptions_CType = 2 +) + +// Enum value maps for FieldOptions_CType. +var ( + FieldOptions_CType_name = map[int32]string{ + 0: "STRING", + 1: "CORD", + 2: "STRING_PIECE", + } + FieldOptions_CType_value = map[string]int32{ + "STRING": 0, + "CORD": 1, + "STRING_PIECE": 2, + } +) + +func (x FieldOptions_CType) Enum() *FieldOptions_CType { + p := new(FieldOptions_CType) + *p = x + return p +} + +func (x FieldOptions_CType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOptions_CType) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[3].Descriptor() +} + +func (FieldOptions_CType) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[3] +} + +func (x FieldOptions_CType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldOptions_CType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldOptions_CType(num) + return nil +} + +// Deprecated: Use FieldOptions_CType.Descriptor instead. +func (FieldOptions_CType) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 0} +} + +type FieldOptions_JSType int32 + +const ( + // Use the default type. + FieldOptions_JS_NORMAL FieldOptions_JSType = 0 + // Use JavaScript strings. + FieldOptions_JS_STRING FieldOptions_JSType = 1 + // Use JavaScript numbers. + FieldOptions_JS_NUMBER FieldOptions_JSType = 2 +) + +// Enum value maps for FieldOptions_JSType. +var ( + FieldOptions_JSType_name = map[int32]string{ + 0: "JS_NORMAL", + 1: "JS_STRING", + 2: "JS_NUMBER", + } + FieldOptions_JSType_value = map[string]int32{ + "JS_NORMAL": 0, + "JS_STRING": 1, + "JS_NUMBER": 2, + } +) + +func (x FieldOptions_JSType) Enum() *FieldOptions_JSType { + p := new(FieldOptions_JSType) + *p = x + return p +} + +func (x FieldOptions_JSType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOptions_JSType) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[4].Descriptor() +} + +func (FieldOptions_JSType) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[4] +} + +func (x FieldOptions_JSType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldOptions_JSType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldOptions_JSType(num) + return nil +} + +// Deprecated: Use FieldOptions_JSType.Descriptor instead. +func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1} +} + +// If set to RETENTION_SOURCE, the option will be omitted from the binary. +// Note: as of January 2023, support for this is in progress and does not yet +// have an effect (b/264593489). +type FieldOptions_OptionRetention int32 + +const ( + FieldOptions_RETENTION_UNKNOWN FieldOptions_OptionRetention = 0 + FieldOptions_RETENTION_RUNTIME FieldOptions_OptionRetention = 1 + FieldOptions_RETENTION_SOURCE FieldOptions_OptionRetention = 2 +) + +// Enum value maps for FieldOptions_OptionRetention. +var ( + FieldOptions_OptionRetention_name = map[int32]string{ + 0: "RETENTION_UNKNOWN", + 1: "RETENTION_RUNTIME", + 2: "RETENTION_SOURCE", + } + FieldOptions_OptionRetention_value = map[string]int32{ + "RETENTION_UNKNOWN": 0, + "RETENTION_RUNTIME": 1, + "RETENTION_SOURCE": 2, + } +) + +func (x FieldOptions_OptionRetention) Enum() *FieldOptions_OptionRetention { + p := new(FieldOptions_OptionRetention) + *p = x + return p +} + +func (x FieldOptions_OptionRetention) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() +} + +func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[5] +} + +func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldOptions_OptionRetention) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldOptions_OptionRetention(num) + return nil +} + +// Deprecated: Use FieldOptions_OptionRetention.Descriptor instead. +func (FieldOptions_OptionRetention) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 2} +} + +// This indicates the types of entities that the field may apply to when used +// as an option. If it is unset, then the field may be freely used as an +// option on any kind of entity. Note: as of January 2023, support for this is +// in progress and does not yet have an effect (b/264593489). +type FieldOptions_OptionTargetType int32 + +const ( + FieldOptions_TARGET_TYPE_UNKNOWN FieldOptions_OptionTargetType = 0 + FieldOptions_TARGET_TYPE_FILE FieldOptions_OptionTargetType = 1 + FieldOptions_TARGET_TYPE_EXTENSION_RANGE FieldOptions_OptionTargetType = 2 + FieldOptions_TARGET_TYPE_MESSAGE FieldOptions_OptionTargetType = 3 + FieldOptions_TARGET_TYPE_FIELD FieldOptions_OptionTargetType = 4 + FieldOptions_TARGET_TYPE_ONEOF FieldOptions_OptionTargetType = 5 + FieldOptions_TARGET_TYPE_ENUM FieldOptions_OptionTargetType = 6 + FieldOptions_TARGET_TYPE_ENUM_ENTRY FieldOptions_OptionTargetType = 7 + FieldOptions_TARGET_TYPE_SERVICE FieldOptions_OptionTargetType = 8 + FieldOptions_TARGET_TYPE_METHOD FieldOptions_OptionTargetType = 9 +) + +// Enum value maps for FieldOptions_OptionTargetType. +var ( + FieldOptions_OptionTargetType_name = map[int32]string{ + 0: "TARGET_TYPE_UNKNOWN", + 1: "TARGET_TYPE_FILE", + 2: "TARGET_TYPE_EXTENSION_RANGE", + 3: "TARGET_TYPE_MESSAGE", + 4: "TARGET_TYPE_FIELD", + 5: "TARGET_TYPE_ONEOF", + 6: "TARGET_TYPE_ENUM", + 7: "TARGET_TYPE_ENUM_ENTRY", + 8: "TARGET_TYPE_SERVICE", + 9: "TARGET_TYPE_METHOD", + } + FieldOptions_OptionTargetType_value = map[string]int32{ + "TARGET_TYPE_UNKNOWN": 0, + "TARGET_TYPE_FILE": 1, + "TARGET_TYPE_EXTENSION_RANGE": 2, + "TARGET_TYPE_MESSAGE": 3, + "TARGET_TYPE_FIELD": 4, + "TARGET_TYPE_ONEOF": 5, + "TARGET_TYPE_ENUM": 6, + "TARGET_TYPE_ENUM_ENTRY": 7, + "TARGET_TYPE_SERVICE": 8, + "TARGET_TYPE_METHOD": 9, + } +) + +func (x FieldOptions_OptionTargetType) Enum() *FieldOptions_OptionTargetType { + p := new(FieldOptions_OptionTargetType) + *p = x + return p +} + +func (x FieldOptions_OptionTargetType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() +} + +func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[6] +} + +func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *FieldOptions_OptionTargetType) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = FieldOptions_OptionTargetType(num) + return nil +} + +// Deprecated: Use FieldOptions_OptionTargetType.Descriptor instead. +func (FieldOptions_OptionTargetType) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 3} +} + +// Is this method side-effect-free (or safe in HTTP parlance), or idempotent, +// or neither? HTTP based RPC implementation may choose GET verb for safe +// methods, and PUT verb for idempotent methods instead of the default POST. +type MethodOptions_IdempotencyLevel int32 + +const ( + MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 + MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 // implies idempotent + MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 // idempotent, but may have side effects +) + +// Enum value maps for MethodOptions_IdempotencyLevel. +var ( + MethodOptions_IdempotencyLevel_name = map[int32]string{ + 0: "IDEMPOTENCY_UNKNOWN", + 1: "NO_SIDE_EFFECTS", + 2: "IDEMPOTENT", + } + MethodOptions_IdempotencyLevel_value = map[string]int32{ + "IDEMPOTENCY_UNKNOWN": 0, + "NO_SIDE_EFFECTS": 1, + "IDEMPOTENT": 2, + } +) + +func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { + p := new(MethodOptions_IdempotencyLevel) + *p = x + return p +} + +func (x MethodOptions_IdempotencyLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() +} + +func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[7] +} + +func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = MethodOptions_IdempotencyLevel(num) + return nil +} + +// Deprecated: Use MethodOptions_IdempotencyLevel.Descriptor instead. +func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} +} + +// Represents the identified object's effect on the element in the original +// .proto file. +type GeneratedCodeInfo_Annotation_Semantic int32 + +const ( + // There is no effect or the effect is indescribable. + GeneratedCodeInfo_Annotation_NONE GeneratedCodeInfo_Annotation_Semantic = 0 + // The element is set or otherwise mutated. + GeneratedCodeInfo_Annotation_SET GeneratedCodeInfo_Annotation_Semantic = 1 + // An alias to the element is returned. + GeneratedCodeInfo_Annotation_ALIAS GeneratedCodeInfo_Annotation_Semantic = 2 +) + +// Enum value maps for GeneratedCodeInfo_Annotation_Semantic. +var ( + GeneratedCodeInfo_Annotation_Semantic_name = map[int32]string{ + 0: "NONE", + 1: "SET", + 2: "ALIAS", + } + GeneratedCodeInfo_Annotation_Semantic_value = map[string]int32{ + "NONE": 0, + "SET": 1, + "ALIAS": 2, + } +) + +func (x GeneratedCodeInfo_Annotation_Semantic) Enum() *GeneratedCodeInfo_Annotation_Semantic { + p := new(GeneratedCodeInfo_Annotation_Semantic) + *p = x + return p +} + +func (x GeneratedCodeInfo_Annotation_Semantic) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { + return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() +} + +func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { + return &file_google_protobuf_descriptor_proto_enumTypes[8] +} + +func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Do not use. +func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { + num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) + if err != nil { + return err + } + *x = GeneratedCodeInfo_Annotation_Semantic(num) + return nil +} + +// Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. +func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} +} + +// The protocol compiler can output a FileDescriptorSet containing the .proto +// files it parses. +type FileDescriptorSet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + File []*FileDescriptorProto `protobuf:"bytes,1,rep,name=file" json:"file,omitempty"` +} + +func (x *FileDescriptorSet) Reset() { + *x = FileDescriptorSet{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDescriptorSet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDescriptorSet) ProtoMessage() {} + +func (x *FileDescriptorSet) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDescriptorSet.ProtoReflect.Descriptor instead. +func (*FileDescriptorSet) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{0} +} + +func (x *FileDescriptorSet) GetFile() []*FileDescriptorProto { + if x != nil { + return x.File + } + return nil +} + +// Describes a complete .proto file. +type FileDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` // file name, relative to root of source tree + Package *string `protobuf:"bytes,2,opt,name=package" json:"package,omitempty"` // e.g. "foo", "foo.bar", etc. + // Names of files imported by this file. + Dependency []string `protobuf:"bytes,3,rep,name=dependency" json:"dependency,omitempty"` + // Indexes of the public imported files in the dependency list above. + PublicDependency []int32 `protobuf:"varint,10,rep,name=public_dependency,json=publicDependency" json:"public_dependency,omitempty"` + // Indexes of the weak imported files in the dependency list. + // For Google-internal migration only. Do not use. + WeakDependency []int32 `protobuf:"varint,11,rep,name=weak_dependency,json=weakDependency" json:"weak_dependency,omitempty"` + // All top-level definitions in this file. + MessageType []*DescriptorProto `protobuf:"bytes,4,rep,name=message_type,json=messageType" json:"message_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,5,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + Service []*ServiceDescriptorProto `protobuf:"bytes,6,rep,name=service" json:"service,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,7,rep,name=extension" json:"extension,omitempty"` + Options *FileOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + // This field contains optional information about the original source code. + // You may safely remove this entire field without harming runtime + // functionality of the descriptors -- the information is needed only by + // development tools. + SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` + // The syntax of the proto file. + // The supported values are "proto2", "proto3", and "editions". + // + // If `edition` is present, this value must be "editions". + Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` + // The edition of the proto file, which is an opaque string. + Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` +} + +func (x *FileDescriptorProto) Reset() { + *x = FileDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDescriptorProto) ProtoMessage() {} + +func (x *FileDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDescriptorProto.ProtoReflect.Descriptor instead. +func (*FileDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{1} +} + +func (x *FileDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *FileDescriptorProto) GetPackage() string { + if x != nil && x.Package != nil { + return *x.Package + } + return "" +} + +func (x *FileDescriptorProto) GetDependency() []string { + if x != nil { + return x.Dependency + } + return nil +} + +func (x *FileDescriptorProto) GetPublicDependency() []int32 { + if x != nil { + return x.PublicDependency + } + return nil +} + +func (x *FileDescriptorProto) GetWeakDependency() []int32 { + if x != nil { + return x.WeakDependency + } + return nil +} + +func (x *FileDescriptorProto) GetMessageType() []*DescriptorProto { + if x != nil { + return x.MessageType + } + return nil +} + +func (x *FileDescriptorProto) GetEnumType() []*EnumDescriptorProto { + if x != nil { + return x.EnumType + } + return nil +} + +func (x *FileDescriptorProto) GetService() []*ServiceDescriptorProto { + if x != nil { + return x.Service + } + return nil +} + +func (x *FileDescriptorProto) GetExtension() []*FieldDescriptorProto { + if x != nil { + return x.Extension + } + return nil +} + +func (x *FileDescriptorProto) GetOptions() *FileOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *FileDescriptorProto) GetSourceCodeInfo() *SourceCodeInfo { + if x != nil { + return x.SourceCodeInfo + } + return nil +} + +func (x *FileDescriptorProto) GetSyntax() string { + if x != nil && x.Syntax != nil { + return *x.Syntax + } + return "" +} + +func (x *FileDescriptorProto) GetEdition() string { + if x != nil && x.Edition != nil { + return *x.Edition + } + return "" +} + +// Describes a message type. +type DescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Field []*FieldDescriptorProto `protobuf:"bytes,2,rep,name=field" json:"field,omitempty"` + Extension []*FieldDescriptorProto `protobuf:"bytes,6,rep,name=extension" json:"extension,omitempty"` + NestedType []*DescriptorProto `protobuf:"bytes,3,rep,name=nested_type,json=nestedType" json:"nested_type,omitempty"` + EnumType []*EnumDescriptorProto `protobuf:"bytes,4,rep,name=enum_type,json=enumType" json:"enum_type,omitempty"` + ExtensionRange []*DescriptorProto_ExtensionRange `protobuf:"bytes,5,rep,name=extension_range,json=extensionRange" json:"extension_range,omitempty"` + OneofDecl []*OneofDescriptorProto `protobuf:"bytes,8,rep,name=oneof_decl,json=oneofDecl" json:"oneof_decl,omitempty"` + Options *MessageOptions `protobuf:"bytes,7,opt,name=options" json:"options,omitempty"` + ReservedRange []*DescriptorProto_ReservedRange `protobuf:"bytes,9,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved field names, which may not be used by fields in the same message. + // A given name may only be reserved once. + ReservedName []string `protobuf:"bytes,10,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` +} + +func (x *DescriptorProto) Reset() { + *x = DescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DescriptorProto) ProtoMessage() {} + +func (x *DescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DescriptorProto.ProtoReflect.Descriptor instead. +func (*DescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2} +} + +func (x *DescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *DescriptorProto) GetField() []*FieldDescriptorProto { + if x != nil { + return x.Field + } + return nil +} + +func (x *DescriptorProto) GetExtension() []*FieldDescriptorProto { + if x != nil { + return x.Extension + } + return nil +} + +func (x *DescriptorProto) GetNestedType() []*DescriptorProto { + if x != nil { + return x.NestedType + } + return nil +} + +func (x *DescriptorProto) GetEnumType() []*EnumDescriptorProto { + if x != nil { + return x.EnumType + } + return nil +} + +func (x *DescriptorProto) GetExtensionRange() []*DescriptorProto_ExtensionRange { + if x != nil { + return x.ExtensionRange + } + return nil +} + +func (x *DescriptorProto) GetOneofDecl() []*OneofDescriptorProto { + if x != nil { + return x.OneofDecl + } + return nil +} + +func (x *DescriptorProto) GetOptions() *MessageOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *DescriptorProto) GetReservedRange() []*DescriptorProto_ReservedRange { + if x != nil { + return x.ReservedRange + } + return nil +} + +func (x *DescriptorProto) GetReservedName() []string { + if x != nil { + return x.ReservedName + } + return nil +} + +type ExtensionRangeOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +func (x *ExtensionRangeOptions) Reset() { + *x = ExtensionRangeOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionRangeOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionRangeOptions) ProtoMessage() {} + +func (x *ExtensionRangeOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExtensionRangeOptions.ProtoReflect.Descriptor instead. +func (*ExtensionRangeOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{3} +} + +func (x *ExtensionRangeOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +// Describes a field within a message. +type FieldDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,3,opt,name=number" json:"number,omitempty"` + Label *FieldDescriptorProto_Label `protobuf:"varint,4,opt,name=label,enum=google.protobuf.FieldDescriptorProto_Label" json:"label,omitempty"` + // If type_name is set, this need not be set. If both this and type_name + // are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP. + Type *FieldDescriptorProto_Type `protobuf:"varint,5,opt,name=type,enum=google.protobuf.FieldDescriptorProto_Type" json:"type,omitempty"` + // For message and enum types, this is the name of the type. If the name + // starts with a '.', it is fully-qualified. Otherwise, C++-like scoping + // rules are used to find the type (i.e. first the nested types within this + // message are searched, then within the parent, on up to the root + // namespace). + TypeName *string `protobuf:"bytes,6,opt,name=type_name,json=typeName" json:"type_name,omitempty"` + // For extensions, this is the name of the type being extended. It is + // resolved in the same manner as type_name. + Extendee *string `protobuf:"bytes,2,opt,name=extendee" json:"extendee,omitempty"` + // For numeric types, contains the original text representation of the value. + // For booleans, "true" or "false". + // For strings, contains the default text contents (not escaped in any way). + // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` + // If set, gives the index of a oneof in the containing type's oneof_decl + // list. This field is a member of that oneof. + OneofIndex *int32 `protobuf:"varint,9,opt,name=oneof_index,json=oneofIndex" json:"oneof_index,omitempty"` + // JSON name of this field. The value is set by protocol compiler. If the + // user has set a "json_name" option on this field, that option's value + // will be used. Otherwise, it's deduced from the field's name by converting + // it to camelCase. + JsonName *string `protobuf:"bytes,10,opt,name=json_name,json=jsonName" json:"json_name,omitempty"` + Options *FieldOptions `protobuf:"bytes,8,opt,name=options" json:"options,omitempty"` + // If true, this is a proto3 "optional". When a proto3 field is optional, it + // tracks presence regardless of field type. + // + // When proto3_optional is true, this field must be belong to a oneof to + // signal to old proto3 clients that presence is tracked for this field. This + // oneof is known as a "synthetic" oneof, and this field must be its sole + // member (each proto3 optional field gets its own synthetic oneof). Synthetic + // oneofs exist in the descriptor only, and do not generate any API. Synthetic + // oneofs must be ordered after all "real" oneofs. + // + // For message fields, proto3_optional doesn't create any semantic change, + // since non-repeated message fields always track presence. However it still + // indicates the semantic detail of whether the user wrote "optional" or not. + // This can be useful for round-tripping the .proto file. For consistency we + // give message fields a synthetic oneof also, even though it is not required + // to track presence. This is especially important because the parser can't + // tell if a field is a message or an enum, so it must always create a + // synthetic oneof. + // + // Proto2 optional fields do not set this flag, because they already indicate + // optional with `LABEL_OPTIONAL`. + Proto3Optional *bool `protobuf:"varint,17,opt,name=proto3_optional,json=proto3Optional" json:"proto3_optional,omitempty"` +} + +func (x *FieldDescriptorProto) Reset() { + *x = FieldDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldDescriptorProto) ProtoMessage() {} + +func (x *FieldDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldDescriptorProto.ProtoReflect.Descriptor instead. +func (*FieldDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{4} +} + +func (x *FieldDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *FieldDescriptorProto) GetNumber() int32 { + if x != nil && x.Number != nil { + return *x.Number + } + return 0 +} + +func (x *FieldDescriptorProto) GetLabel() FieldDescriptorProto_Label { + if x != nil && x.Label != nil { + return *x.Label + } + return FieldDescriptorProto_LABEL_OPTIONAL +} + +func (x *FieldDescriptorProto) GetType() FieldDescriptorProto_Type { + if x != nil && x.Type != nil { + return *x.Type + } + return FieldDescriptorProto_TYPE_DOUBLE +} + +func (x *FieldDescriptorProto) GetTypeName() string { + if x != nil && x.TypeName != nil { + return *x.TypeName + } + return "" +} + +func (x *FieldDescriptorProto) GetExtendee() string { + if x != nil && x.Extendee != nil { + return *x.Extendee + } + return "" +} + +func (x *FieldDescriptorProto) GetDefaultValue() string { + if x != nil && x.DefaultValue != nil { + return *x.DefaultValue + } + return "" +} + +func (x *FieldDescriptorProto) GetOneofIndex() int32 { + if x != nil && x.OneofIndex != nil { + return *x.OneofIndex + } + return 0 +} + +func (x *FieldDescriptorProto) GetJsonName() string { + if x != nil && x.JsonName != nil { + return *x.JsonName + } + return "" +} + +func (x *FieldDescriptorProto) GetOptions() *FieldOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *FieldDescriptorProto) GetProto3Optional() bool { + if x != nil && x.Proto3Optional != nil { + return *x.Proto3Optional + } + return false +} + +// Describes a oneof. +type OneofDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Options *OneofOptions `protobuf:"bytes,2,opt,name=options" json:"options,omitempty"` +} + +func (x *OneofDescriptorProto) Reset() { + *x = OneofDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OneofDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OneofDescriptorProto) ProtoMessage() {} + +func (x *OneofDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OneofDescriptorProto.ProtoReflect.Descriptor instead. +func (*OneofDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{5} +} + +func (x *OneofDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *OneofDescriptorProto) GetOptions() *OneofOptions { + if x != nil { + return x.Options + } + return nil +} + +// Describes an enum type. +type EnumDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Value []*EnumValueDescriptorProto `protobuf:"bytes,2,rep,name=value" json:"value,omitempty"` + Options *EnumOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` + // Range of reserved numeric values. Reserved numeric values may not be used + // by enum values in the same enum declaration. Reserved ranges may not + // overlap. + ReservedRange []*EnumDescriptorProto_EnumReservedRange `protobuf:"bytes,4,rep,name=reserved_range,json=reservedRange" json:"reserved_range,omitempty"` + // Reserved enum value names, which may not be reused. A given name may only + // be reserved once. + ReservedName []string `protobuf:"bytes,5,rep,name=reserved_name,json=reservedName" json:"reserved_name,omitempty"` +} + +func (x *EnumDescriptorProto) Reset() { + *x = EnumDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumDescriptorProto) ProtoMessage() {} + +func (x *EnumDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumDescriptorProto.ProtoReflect.Descriptor instead. +func (*EnumDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6} +} + +func (x *EnumDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *EnumDescriptorProto) GetValue() []*EnumValueDescriptorProto { + if x != nil { + return x.Value + } + return nil +} + +func (x *EnumDescriptorProto) GetOptions() *EnumOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *EnumDescriptorProto) GetReservedRange() []*EnumDescriptorProto_EnumReservedRange { + if x != nil { + return x.ReservedRange + } + return nil +} + +func (x *EnumDescriptorProto) GetReservedName() []string { + if x != nil { + return x.ReservedName + } + return nil +} + +// Describes a value within an enum. +type EnumValueDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Number *int32 `protobuf:"varint,2,opt,name=number" json:"number,omitempty"` + Options *EnumValueOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` +} + +func (x *EnumValueDescriptorProto) Reset() { + *x = EnumValueDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumValueDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumValueDescriptorProto) ProtoMessage() {} + +func (x *EnumValueDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumValueDescriptorProto.ProtoReflect.Descriptor instead. +func (*EnumValueDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{7} +} + +func (x *EnumValueDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *EnumValueDescriptorProto) GetNumber() int32 { + if x != nil && x.Number != nil { + return *x.Number + } + return 0 +} + +func (x *EnumValueDescriptorProto) GetOptions() *EnumValueOptions { + if x != nil { + return x.Options + } + return nil +} + +// Describes a service. +type ServiceDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + Method []*MethodDescriptorProto `protobuf:"bytes,2,rep,name=method" json:"method,omitempty"` + Options *ServiceOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` +} + +func (x *ServiceDescriptorProto) Reset() { + *x = ServiceDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceDescriptorProto) ProtoMessage() {} + +func (x *ServiceDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceDescriptorProto.ProtoReflect.Descriptor instead. +func (*ServiceDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{8} +} + +func (x *ServiceDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *ServiceDescriptorProto) GetMethod() []*MethodDescriptorProto { + if x != nil { + return x.Method + } + return nil +} + +func (x *ServiceDescriptorProto) GetOptions() *ServiceOptions { + if x != nil { + return x.Options + } + return nil +} + +// Describes a method of a service. +type MethodDescriptorProto struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name *string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"` + // Input and output type names. These are resolved in the same way as + // FieldDescriptorProto.type_name, but must refer to a message type. + InputType *string `protobuf:"bytes,2,opt,name=input_type,json=inputType" json:"input_type,omitempty"` + OutputType *string `protobuf:"bytes,3,opt,name=output_type,json=outputType" json:"output_type,omitempty"` + Options *MethodOptions `protobuf:"bytes,4,opt,name=options" json:"options,omitempty"` + // Identifies if client streams multiple client messages + ClientStreaming *bool `protobuf:"varint,5,opt,name=client_streaming,json=clientStreaming,def=0" json:"client_streaming,omitempty"` + // Identifies if server streams multiple server messages + ServerStreaming *bool `protobuf:"varint,6,opt,name=server_streaming,json=serverStreaming,def=0" json:"server_streaming,omitempty"` +} + +// Default values for MethodDescriptorProto fields. +const ( + Default_MethodDescriptorProto_ClientStreaming = bool(false) + Default_MethodDescriptorProto_ServerStreaming = bool(false) +) + +func (x *MethodDescriptorProto) Reset() { + *x = MethodDescriptorProto{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MethodDescriptorProto) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MethodDescriptorProto) ProtoMessage() {} + +func (x *MethodDescriptorProto) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MethodDescriptorProto.ProtoReflect.Descriptor instead. +func (*MethodDescriptorProto) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{9} +} + +func (x *MethodDescriptorProto) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +func (x *MethodDescriptorProto) GetInputType() string { + if x != nil && x.InputType != nil { + return *x.InputType + } + return "" +} + +func (x *MethodDescriptorProto) GetOutputType() string { + if x != nil && x.OutputType != nil { + return *x.OutputType + } + return "" +} + +func (x *MethodDescriptorProto) GetOptions() *MethodOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *MethodDescriptorProto) GetClientStreaming() bool { + if x != nil && x.ClientStreaming != nil { + return *x.ClientStreaming + } + return Default_MethodDescriptorProto_ClientStreaming +} + +func (x *MethodDescriptorProto) GetServerStreaming() bool { + if x != nil && x.ServerStreaming != nil { + return *x.ServerStreaming + } + return Default_MethodDescriptorProto_ServerStreaming +} + +type FileOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Sets the Java package where classes generated from this .proto will be + // placed. By default, the proto package is used, but this is often + // inappropriate because proto packages do not normally start with backwards + // domain names. + JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` + // Controls the name of the wrapper Java class generated for the .proto file. + // That class will always contain the .proto file's getDescriptor() method as + // well as any top-level extensions defined in the .proto file. + // If java_multiple_files is disabled, then all the other classes from the + // .proto file will be nested inside the single wrapper outer class. + JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` + // If enabled, then the Java code generator will generate a separate .java + // file for each top-level message, enum, and service defined in the .proto + // file. Thus, these types will *not* be nested inside the wrapper class + // named by java_outer_classname. However, the wrapper class will still be + // generated to contain the file's getDescriptor() method as well as any + // top-level extensions defined in the file. + JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` + // This option does nothing. + // + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` + // If set true, then the Java2 code generator will generate code that + // throws an exception whenever an attempt is made to assign a non-UTF-8 + // byte sequence to a string field. + // Message reflection will do the same. + // However, an extension field still accepts non-UTF-8 byte sequences. + // This option has no effect on when used with the lite runtime. + JavaStringCheckUtf8 *bool `protobuf:"varint,27,opt,name=java_string_check_utf8,json=javaStringCheckUtf8,def=0" json:"java_string_check_utf8,omitempty"` + OptimizeFor *FileOptions_OptimizeMode `protobuf:"varint,9,opt,name=optimize_for,json=optimizeFor,enum=google.protobuf.FileOptions_OptimizeMode,def=1" json:"optimize_for,omitempty"` + // Sets the Go package where structs generated from this .proto will be + // placed. If omitted, the Go package will be derived from the following: + // - The basename of the package import path, if provided. + // - Otherwise, the package statement in the .proto file, if present. + // - Otherwise, the basename of the .proto file, without extension. + GoPackage *string `protobuf:"bytes,11,opt,name=go_package,json=goPackage" json:"go_package,omitempty"` + // Should generic services be generated in each language? "Generic" services + // are not specific to any particular RPC system. They are generated by the + // main code generators in each language (without additional plugins). + // Generic services were the only kind of service generation supported by + // early versions of google.protobuf. + // + // Generic services are now considered deprecated in favor of using plugins + // that generate code specific to your particular RPC system. Therefore, + // these default to false. Old code which depends on generic services should + // explicitly set them to true. + CcGenericServices *bool `protobuf:"varint,16,opt,name=cc_generic_services,json=ccGenericServices,def=0" json:"cc_generic_services,omitempty"` + JavaGenericServices *bool `protobuf:"varint,17,opt,name=java_generic_services,json=javaGenericServices,def=0" json:"java_generic_services,omitempty"` + PyGenericServices *bool `protobuf:"varint,18,opt,name=py_generic_services,json=pyGenericServices,def=0" json:"py_generic_services,omitempty"` + PhpGenericServices *bool `protobuf:"varint,42,opt,name=php_generic_services,json=phpGenericServices,def=0" json:"php_generic_services,omitempty"` + // Is this file deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for everything in the file, or it will be completely ignored; in the very + // least, this is a formalization for deprecating files. + Deprecated *bool `protobuf:"varint,23,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Enables the use of arenas for the proto messages in this file. This applies + // only to generated classes for C++. + CcEnableArenas *bool `protobuf:"varint,31,opt,name=cc_enable_arenas,json=ccEnableArenas,def=1" json:"cc_enable_arenas,omitempty"` + // Sets the objective c class prefix which is prepended to all objective c + // generated classes from this .proto. There is no default. + ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` + // Namespace for generated classes; defaults to the package. + CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` + // By default Swift generators will take the proto package and CamelCase it + // replacing '.' with underscore and use that to prefix the types/symbols + // defined. When this options is provided, they will use this value instead + // to prefix the types/symbols defined. + SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` + // Sets the php class prefix which is prepended to all php generated classes + // from this .proto. Default is empty. + PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` + // Use this option to change the namespace of php generated classes. Default + // is empty. When this option is empty, the package name will be used for + // determining the namespace. + PhpNamespace *string `protobuf:"bytes,41,opt,name=php_namespace,json=phpNamespace" json:"php_namespace,omitempty"` + // Use this option to change the namespace of php generated metadata classes. + // Default is empty. When this option is empty, the proto file name will be + // used for determining the namespace. + PhpMetadataNamespace *string `protobuf:"bytes,44,opt,name=php_metadata_namespace,json=phpMetadataNamespace" json:"php_metadata_namespace,omitempty"` + // Use this option to change the package of ruby generated classes. Default + // is empty. When this option is not set, the package name will be used for + // determining the ruby package. + RubyPackage *string `protobuf:"bytes,45,opt,name=ruby_package,json=rubyPackage" json:"ruby_package,omitempty"` + // The parser stores options it doesn't recognize here. + // See the documentation for the "Options" section above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for FileOptions fields. +const ( + Default_FileOptions_JavaMultipleFiles = bool(false) + Default_FileOptions_JavaStringCheckUtf8 = bool(false) + Default_FileOptions_OptimizeFor = FileOptions_SPEED + Default_FileOptions_CcGenericServices = bool(false) + Default_FileOptions_JavaGenericServices = bool(false) + Default_FileOptions_PyGenericServices = bool(false) + Default_FileOptions_PhpGenericServices = bool(false) + Default_FileOptions_Deprecated = bool(false) + Default_FileOptions_CcEnableArenas = bool(true) +) + +func (x *FileOptions) Reset() { + *x = FileOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileOptions) ProtoMessage() {} + +func (x *FileOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileOptions.ProtoReflect.Descriptor instead. +func (*FileOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{10} +} + +func (x *FileOptions) GetJavaPackage() string { + if x != nil && x.JavaPackage != nil { + return *x.JavaPackage + } + return "" +} + +func (x *FileOptions) GetJavaOuterClassname() string { + if x != nil && x.JavaOuterClassname != nil { + return *x.JavaOuterClassname + } + return "" +} + +func (x *FileOptions) GetJavaMultipleFiles() bool { + if x != nil && x.JavaMultipleFiles != nil { + return *x.JavaMultipleFiles + } + return Default_FileOptions_JavaMultipleFiles +} + +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *FileOptions) GetJavaGenerateEqualsAndHash() bool { + if x != nil && x.JavaGenerateEqualsAndHash != nil { + return *x.JavaGenerateEqualsAndHash + } + return false +} + +func (x *FileOptions) GetJavaStringCheckUtf8() bool { + if x != nil && x.JavaStringCheckUtf8 != nil { + return *x.JavaStringCheckUtf8 + } + return Default_FileOptions_JavaStringCheckUtf8 +} + +func (x *FileOptions) GetOptimizeFor() FileOptions_OptimizeMode { + if x != nil && x.OptimizeFor != nil { + return *x.OptimizeFor + } + return Default_FileOptions_OptimizeFor +} + +func (x *FileOptions) GetGoPackage() string { + if x != nil && x.GoPackage != nil { + return *x.GoPackage + } + return "" +} + +func (x *FileOptions) GetCcGenericServices() bool { + if x != nil && x.CcGenericServices != nil { + return *x.CcGenericServices + } + return Default_FileOptions_CcGenericServices +} + +func (x *FileOptions) GetJavaGenericServices() bool { + if x != nil && x.JavaGenericServices != nil { + return *x.JavaGenericServices + } + return Default_FileOptions_JavaGenericServices +} + +func (x *FileOptions) GetPyGenericServices() bool { + if x != nil && x.PyGenericServices != nil { + return *x.PyGenericServices + } + return Default_FileOptions_PyGenericServices +} + +func (x *FileOptions) GetPhpGenericServices() bool { + if x != nil && x.PhpGenericServices != nil { + return *x.PhpGenericServices + } + return Default_FileOptions_PhpGenericServices +} + +func (x *FileOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_FileOptions_Deprecated +} + +func (x *FileOptions) GetCcEnableArenas() bool { + if x != nil && x.CcEnableArenas != nil { + return *x.CcEnableArenas + } + return Default_FileOptions_CcEnableArenas +} + +func (x *FileOptions) GetObjcClassPrefix() string { + if x != nil && x.ObjcClassPrefix != nil { + return *x.ObjcClassPrefix + } + return "" +} + +func (x *FileOptions) GetCsharpNamespace() string { + if x != nil && x.CsharpNamespace != nil { + return *x.CsharpNamespace + } + return "" +} + +func (x *FileOptions) GetSwiftPrefix() string { + if x != nil && x.SwiftPrefix != nil { + return *x.SwiftPrefix + } + return "" +} + +func (x *FileOptions) GetPhpClassPrefix() string { + if x != nil && x.PhpClassPrefix != nil { + return *x.PhpClassPrefix + } + return "" +} + +func (x *FileOptions) GetPhpNamespace() string { + if x != nil && x.PhpNamespace != nil { + return *x.PhpNamespace + } + return "" +} + +func (x *FileOptions) GetPhpMetadataNamespace() string { + if x != nil && x.PhpMetadataNamespace != nil { + return *x.PhpMetadataNamespace + } + return "" +} + +func (x *FileOptions) GetRubyPackage() string { + if x != nil && x.RubyPackage != nil { + return *x.RubyPackage + } + return "" +} + +func (x *FileOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type MessageOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Set true to use the old proto1 MessageSet wire format for extensions. + // This is provided for backwards-compatibility with the MessageSet wire + // format. You should not use this for any other reason: It's less + // efficient, has fewer features, and is more complicated. + // + // The message must be defined exactly as follows: + // + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } + // + // Note that the message cannot have any defined fields; MessageSets only + // have extensions. + // + // All extensions of your type must be singular messages; e.g. they cannot + // be int32s, enums, or repeated messages. + // + // Because this is an option, the above two restrictions are not enforced by + // the protocol compiler. + MessageSetWireFormat *bool `protobuf:"varint,1,opt,name=message_set_wire_format,json=messageSetWireFormat,def=0" json:"message_set_wire_format,omitempty"` + // Disables the generation of the standard "descriptor()" accessor, which can + // conflict with a field of the same name. This is meant to make migration + // from proto1 easier; new code should avoid fields named "descriptor". + NoStandardDescriptorAccessor *bool `protobuf:"varint,2,opt,name=no_standard_descriptor_accessor,json=noStandardDescriptorAccessor,def=0" json:"no_standard_descriptor_accessor,omitempty"` + // Is this message deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the message, or it will be completely ignored; in the very least, + // this is a formalization for deprecating messages. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + // + // Whether the message is an automatically generated map entry type for the + // maps field. + // + // For maps fields: + // + // map map_field = 1; + // + // The parsed descriptor looks like: + // + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; + // + // Implementations may choose not to generate the map_entry=true message, but + // use a native map in the target language to hold the keys and values. + // The reflection APIs in such implementations still need to work as + // if the field is a repeated message field. + MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // + // This should only be used as a temporary measure against broken builds due + // to the change in behavior for JSON field name conflicts. + // + // TODO(b/261750190) This is legacy behavior we plan to remove once downstream + // teams have had time to migrate. + // + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for MessageOptions fields. +const ( + Default_MessageOptions_MessageSetWireFormat = bool(false) + Default_MessageOptions_NoStandardDescriptorAccessor = bool(false) + Default_MessageOptions_Deprecated = bool(false) +) + +func (x *MessageOptions) Reset() { + *x = MessageOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MessageOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MessageOptions) ProtoMessage() {} + +func (x *MessageOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MessageOptions.ProtoReflect.Descriptor instead. +func (*MessageOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{11} +} + +func (x *MessageOptions) GetMessageSetWireFormat() bool { + if x != nil && x.MessageSetWireFormat != nil { + return *x.MessageSetWireFormat + } + return Default_MessageOptions_MessageSetWireFormat +} + +func (x *MessageOptions) GetNoStandardDescriptorAccessor() bool { + if x != nil && x.NoStandardDescriptorAccessor != nil { + return *x.NoStandardDescriptorAccessor + } + return Default_MessageOptions_NoStandardDescriptorAccessor +} + +func (x *MessageOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_MessageOptions_Deprecated +} + +func (x *MessageOptions) GetMapEntry() bool { + if x != nil && x.MapEntry != nil { + return *x.MapEntry + } + return false +} + +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { + if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { + return *x.DeprecatedLegacyJsonFieldConflicts + } + return false +} + +func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type FieldOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // The ctype option instructs the C++ code generator to use a different + // representation of the field than it normally would. See the specific + // options below. This option is not yet implemented in the open source + // release -- sorry, we'll try to include it in a future version! + Ctype *FieldOptions_CType `protobuf:"varint,1,opt,name=ctype,enum=google.protobuf.FieldOptions_CType,def=0" json:"ctype,omitempty"` + // The packed option can be enabled for repeated primitive fields to enable + // a more efficient representation on the wire. Rather than repeatedly + // writing the tag and type for each element, the entire array is encoded as + // a single length-delimited blob. In proto3, only explicit setting it to + // false will avoid using packed encoding. + Packed *bool `protobuf:"varint,2,opt,name=packed" json:"packed,omitempty"` + // The jstype option determines the JavaScript type used for values of the + // field. The option is permitted only for 64 bit integral and fixed types + // (int64, uint64, sint64, fixed64, sfixed64). A field with jstype JS_STRING + // is represented as JavaScript string, which avoids loss of precision that + // can happen when a large value is converted to a floating point JavaScript. + // Specifying JS_NUMBER for the jstype causes the generated JavaScript code to + // use the JavaScript "number" type. The behavior of the default option + // JS_NORMAL is implementation dependent. + // + // This option is an enum to permit additional types to be added, e.g. + // goog.math.Integer. + Jstype *FieldOptions_JSType `protobuf:"varint,6,opt,name=jstype,enum=google.protobuf.FieldOptions_JSType,def=0" json:"jstype,omitempty"` + // Should this field be parsed lazily? Lazy applies only to message-type + // fields. It means that when the outer message is initially parsed, the + // inner message's contents will not be parsed but instead stored in encoded + // form. The inner message will actually be parsed when it is first accessed. + // + // This is only a hint. Implementations are free to choose whether to use + // eager or lazy parsing regardless of the value of this option. However, + // setting this option true suggests that the protocol author believes that + // using lazy parsing on this field is worth the additional bookkeeping + // overhead typically needed to implement it. + // + // This option does not affect the public interface of any generated code; + // all method signatures remain the same. Furthermore, thread-safety of the + // interface is not affected by this option; const methods remain safe to + // call from multiple threads concurrently, while non-const methods continue + // to require exclusive access. + // + // Note that implementations may choose not to check required fields within + // a lazy sub-message. That is, calling IsInitialized() on the outer message + // may return true even if the inner message has missing required fields. + // This is necessary because otherwise the inner message would have to be + // parsed in order to perform the check, defeating the purpose of lazy + // parsing. An implementation which chooses not to check required fields + // must be consistent about it. That is, for any particular sub-message, the + // implementation must either *always* check its required fields, or *never* + // check its required fields, regardless of whether or not the message has + // been parsed. + // + // As of May 2022, lazy verifies the contents of the byte stream during + // parsing. An invalid byte stream will cause the overall parsing to fail. + Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` + // unverified_lazy does no correctness checks on the byte stream. This should + // only be used where lazy with verification is prohibitive for performance + // reasons. + UnverifiedLazy *bool `protobuf:"varint,15,opt,name=unverified_lazy,json=unverifiedLazy,def=0" json:"unverified_lazy,omitempty"` + // Is this field deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for accessors, or it will be completely ignored; in the very least, this + // is a formalization for deprecating fields. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // For Google-internal migration only. Do not use. + Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` + // Indicate that the field value should not be printed out when using debug + // formats, e.g. when the field contains sensitive credentials. + DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` + Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` + Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for FieldOptions fields. +const ( + Default_FieldOptions_Ctype = FieldOptions_STRING + Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL + Default_FieldOptions_Lazy = bool(false) + Default_FieldOptions_UnverifiedLazy = bool(false) + Default_FieldOptions_Deprecated = bool(false) + Default_FieldOptions_Weak = bool(false) + Default_FieldOptions_DebugRedact = bool(false) +) + +func (x *FieldOptions) Reset() { + *x = FieldOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FieldOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FieldOptions) ProtoMessage() {} + +func (x *FieldOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FieldOptions.ProtoReflect.Descriptor instead. +func (*FieldOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12} +} + +func (x *FieldOptions) GetCtype() FieldOptions_CType { + if x != nil && x.Ctype != nil { + return *x.Ctype + } + return Default_FieldOptions_Ctype +} + +func (x *FieldOptions) GetPacked() bool { + if x != nil && x.Packed != nil { + return *x.Packed + } + return false +} + +func (x *FieldOptions) GetJstype() FieldOptions_JSType { + if x != nil && x.Jstype != nil { + return *x.Jstype + } + return Default_FieldOptions_Jstype +} + +func (x *FieldOptions) GetLazy() bool { + if x != nil && x.Lazy != nil { + return *x.Lazy + } + return Default_FieldOptions_Lazy +} + +func (x *FieldOptions) GetUnverifiedLazy() bool { + if x != nil && x.UnverifiedLazy != nil { + return *x.UnverifiedLazy + } + return Default_FieldOptions_UnverifiedLazy +} + +func (x *FieldOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_FieldOptions_Deprecated +} + +func (x *FieldOptions) GetWeak() bool { + if x != nil && x.Weak != nil { + return *x.Weak + } + return Default_FieldOptions_Weak +} + +func (x *FieldOptions) GetDebugRedact() bool { + if x != nil && x.DebugRedact != nil { + return *x.DebugRedact + } + return Default_FieldOptions_DebugRedact +} + +func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { + if x != nil && x.Retention != nil { + return *x.Retention + } + return FieldOptions_RETENTION_UNKNOWN +} + +func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { + if x != nil && x.Target != nil { + return *x.Target + } + return FieldOptions_TARGET_TYPE_UNKNOWN +} + +func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type OneofOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +func (x *OneofOptions) Reset() { + *x = OneofOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OneofOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OneofOptions) ProtoMessage() {} + +func (x *OneofOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OneofOptions.ProtoReflect.Descriptor instead. +func (*OneofOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{13} +} + +func (x *OneofOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type EnumOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Set this option to true to allow mapping different tag names to the same + // value. + AllowAlias *bool `protobuf:"varint,2,opt,name=allow_alias,json=allowAlias" json:"allow_alias,omitempty"` + // Is this enum deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum, or it will be completely ignored; in the very least, this + // is a formalization for deprecating enums. + Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // Enable the legacy handling of JSON field name conflicts. This lowercases + // and strips underscored from the fields before comparison in proto3 only. + // The new behavior takes `json_name` into account and applies to proto2 as + // well. + // TODO(b/261750190) Remove this legacy behavior once downstream teams have + // had time to migrate. + // + // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for EnumOptions fields. +const ( + Default_EnumOptions_Deprecated = bool(false) +) + +func (x *EnumOptions) Reset() { + *x = EnumOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumOptions) ProtoMessage() {} + +func (x *EnumOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumOptions.ProtoReflect.Descriptor instead. +func (*EnumOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{14} +} + +func (x *EnumOptions) GetAllowAlias() bool { + if x != nil && x.AllowAlias != nil { + return *x.AllowAlias + } + return false +} + +func (x *EnumOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_EnumOptions_Deprecated +} + +// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { + if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { + return *x.DeprecatedLegacyJsonFieldConflicts + } + return false +} + +func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type EnumValueOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Is this enum value deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the enum value, or it will be completely ignored; in the very least, + // this is a formalization for deprecating enum values. + Deprecated *bool `protobuf:"varint,1,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for EnumValueOptions fields. +const ( + Default_EnumValueOptions_Deprecated = bool(false) +) + +func (x *EnumValueOptions) Reset() { + *x = EnumValueOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumValueOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumValueOptions) ProtoMessage() {} + +func (x *EnumValueOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumValueOptions.ProtoReflect.Descriptor instead. +func (*EnumValueOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{15} +} + +func (x *EnumValueOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_EnumValueOptions_Deprecated +} + +func (x *EnumValueOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type ServiceOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Is this service deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the service, or it will be completely ignored; in the very least, + // this is a formalization for deprecating services. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for ServiceOptions fields. +const ( + Default_ServiceOptions_Deprecated = bool(false) +) + +func (x *ServiceOptions) Reset() { + *x = ServiceOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServiceOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServiceOptions) ProtoMessage() {} + +func (x *ServiceOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ServiceOptions.ProtoReflect.Descriptor instead. +func (*ServiceOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{16} +} + +func (x *ServiceOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_ServiceOptions_Deprecated +} + +func (x *ServiceOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +type MethodOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + extensionFields protoimpl.ExtensionFields + + // Is this method deprecated? + // Depending on the target platform, this can emit Deprecated annotations + // for the method, or it will be completely ignored; in the very least, + // this is a formalization for deprecating methods. + Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` + IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` + // The parser stores options it doesn't recognize here. See above. + UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` +} + +// Default values for MethodOptions fields. +const ( + Default_MethodOptions_Deprecated = bool(false) + Default_MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN +) + +func (x *MethodOptions) Reset() { + *x = MethodOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MethodOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MethodOptions) ProtoMessage() {} + +func (x *MethodOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MethodOptions.ProtoReflect.Descriptor instead. +func (*MethodOptions) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17} +} + +func (x *MethodOptions) GetDeprecated() bool { + if x != nil && x.Deprecated != nil { + return *x.Deprecated + } + return Default_MethodOptions_Deprecated +} + +func (x *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { + if x != nil && x.IdempotencyLevel != nil { + return *x.IdempotencyLevel + } + return Default_MethodOptions_IdempotencyLevel +} + +func (x *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { + if x != nil { + return x.UninterpretedOption + } + return nil +} + +// A message representing a option the parser does not recognize. This only +// appears in options protos created by the compiler::Parser class. +// DescriptorPool resolves these when building Descriptor objects. Therefore, +// options protos in descriptor objects (e.g. returned by Descriptor::options(), +// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions +// in them. +type UninterpretedOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name []*UninterpretedOption_NamePart `protobuf:"bytes,2,rep,name=name" json:"name,omitempty"` + // The value of the uninterpreted option, in whatever type the tokenizer + // identified it as during parsing. Exactly one of these should be set. + IdentifierValue *string `protobuf:"bytes,3,opt,name=identifier_value,json=identifierValue" json:"identifier_value,omitempty"` + PositiveIntValue *uint64 `protobuf:"varint,4,opt,name=positive_int_value,json=positiveIntValue" json:"positive_int_value,omitempty"` + NegativeIntValue *int64 `protobuf:"varint,5,opt,name=negative_int_value,json=negativeIntValue" json:"negative_int_value,omitempty"` + DoubleValue *float64 `protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" json:"double_value,omitempty"` + StringValue []byte `protobuf:"bytes,7,opt,name=string_value,json=stringValue" json:"string_value,omitempty"` + AggregateValue *string `protobuf:"bytes,8,opt,name=aggregate_value,json=aggregateValue" json:"aggregate_value,omitempty"` +} + +func (x *UninterpretedOption) Reset() { + *x = UninterpretedOption{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UninterpretedOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UninterpretedOption) ProtoMessage() {} + +func (x *UninterpretedOption) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UninterpretedOption.ProtoReflect.Descriptor instead. +func (*UninterpretedOption) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18} +} + +func (x *UninterpretedOption) GetName() []*UninterpretedOption_NamePart { + if x != nil { + return x.Name + } + return nil +} + +func (x *UninterpretedOption) GetIdentifierValue() string { + if x != nil && x.IdentifierValue != nil { + return *x.IdentifierValue + } + return "" +} + +func (x *UninterpretedOption) GetPositiveIntValue() uint64 { + if x != nil && x.PositiveIntValue != nil { + return *x.PositiveIntValue + } + return 0 +} + +func (x *UninterpretedOption) GetNegativeIntValue() int64 { + if x != nil && x.NegativeIntValue != nil { + return *x.NegativeIntValue + } + return 0 +} + +func (x *UninterpretedOption) GetDoubleValue() float64 { + if x != nil && x.DoubleValue != nil { + return *x.DoubleValue + } + return 0 +} + +func (x *UninterpretedOption) GetStringValue() []byte { + if x != nil { + return x.StringValue + } + return nil +} + +func (x *UninterpretedOption) GetAggregateValue() string { + if x != nil && x.AggregateValue != nil { + return *x.AggregateValue + } + return "" +} + +// Encapsulates information about the original source file from which a +// FileDescriptorProto was generated. +type SourceCodeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A Location identifies a piece of source code in a .proto file which + // corresponds to a particular definition. This information is intended + // to be useful to IDEs, code indexers, documentation generators, and similar + // tools. + // + // For example, say we have a file like: + // + // message Foo { + // optional string foo = 1; + // } + // + // Let's look at just the field definition: + // + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi + // + // We have the following locations: + // + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // + // Notes: + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. + Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` +} + +func (x *SourceCodeInfo) Reset() { + *x = SourceCodeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SourceCodeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SourceCodeInfo) ProtoMessage() {} + +func (x *SourceCodeInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SourceCodeInfo.ProtoReflect.Descriptor instead. +func (*SourceCodeInfo) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19} +} + +func (x *SourceCodeInfo) GetLocation() []*SourceCodeInfo_Location { + if x != nil { + return x.Location + } + return nil +} + +// Describes the relationship between generated code and its original source +// file. A GeneratedCodeInfo message is associated with only one generated +// source file, but may contain references to different source .proto files. +type GeneratedCodeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An Annotation connects some span of text in generated code to an element + // of its generating .proto file. + Annotation []*GeneratedCodeInfo_Annotation `protobuf:"bytes,1,rep,name=annotation" json:"annotation,omitempty"` +} + +func (x *GeneratedCodeInfo) Reset() { + *x = GeneratedCodeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeneratedCodeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeneratedCodeInfo) ProtoMessage() {} + +func (x *GeneratedCodeInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GeneratedCodeInfo.ProtoReflect.Descriptor instead. +func (*GeneratedCodeInfo) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20} +} + +func (x *GeneratedCodeInfo) GetAnnotation() []*GeneratedCodeInfo_Annotation { + if x != nil { + return x.Annotation + } + return nil +} + +type DescriptorProto_ExtensionRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Exclusive. + Options *ExtensionRangeOptions `protobuf:"bytes,3,opt,name=options" json:"options,omitempty"` +} + +func (x *DescriptorProto_ExtensionRange) Reset() { + *x = DescriptorProto_ExtensionRange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DescriptorProto_ExtensionRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DescriptorProto_ExtensionRange) ProtoMessage() {} + +func (x *DescriptorProto_ExtensionRange) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DescriptorProto_ExtensionRange.ProtoReflect.Descriptor instead. +func (*DescriptorProto_ExtensionRange) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *DescriptorProto_ExtensionRange) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *DescriptorProto_ExtensionRange) GetEnd() int32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +func (x *DescriptorProto_ExtensionRange) GetOptions() *ExtensionRangeOptions { + if x != nil { + return x.Options + } + return nil +} + +// Range of reserved tag numbers. Reserved tag numbers may not be used by +// fields or extension ranges in the same message. Reserved ranges may +// not overlap. +type DescriptorProto_ReservedRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Exclusive. +} + +func (x *DescriptorProto_ReservedRange) Reset() { + *x = DescriptorProto_ReservedRange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DescriptorProto_ReservedRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DescriptorProto_ReservedRange) ProtoMessage() {} + +func (x *DescriptorProto_ReservedRange) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DescriptorProto_ReservedRange.ProtoReflect.Descriptor instead. +func (*DescriptorProto_ReservedRange) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{2, 1} +} + +func (x *DescriptorProto_ReservedRange) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *DescriptorProto_ReservedRange) GetEnd() int32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +// Range of reserved numeric values. Reserved values may not be used by +// entries in the same enum. Reserved ranges may not overlap. +// +// Note that this is distinct from DescriptorProto.ReservedRange in that it +// is inclusive such that it can appropriately represent the entire int32 +// domain. +type EnumDescriptorProto_EnumReservedRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Start *int32 `protobuf:"varint,1,opt,name=start" json:"start,omitempty"` // Inclusive. + End *int32 `protobuf:"varint,2,opt,name=end" json:"end,omitempty"` // Inclusive. +} + +func (x *EnumDescriptorProto_EnumReservedRange) Reset() { + *x = EnumDescriptorProto_EnumReservedRange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EnumDescriptorProto_EnumReservedRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EnumDescriptorProto_EnumReservedRange) ProtoMessage() {} + +func (x *EnumDescriptorProto_EnumReservedRange) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EnumDescriptorProto_EnumReservedRange.ProtoReflect.Descriptor instead. +func (*EnumDescriptorProto_EnumReservedRange) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *EnumDescriptorProto_EnumReservedRange) GetStart() int32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +// The name of the uninterpreted option. Each string represents a segment in +// a dot-separated name. is_extension is true iff a segment represents an +// extension (denoted with parentheses in options specs in .proto files). +// E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents +// "foo.(bar.baz).moo". +type UninterpretedOption_NamePart struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NamePart *string `protobuf:"bytes,1,req,name=name_part,json=namePart" json:"name_part,omitempty"` + IsExtension *bool `protobuf:"varint,2,req,name=is_extension,json=isExtension" json:"is_extension,omitempty"` +} + +func (x *UninterpretedOption_NamePart) Reset() { + *x = UninterpretedOption_NamePart{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UninterpretedOption_NamePart) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UninterpretedOption_NamePart) ProtoMessage() {} + +func (x *UninterpretedOption_NamePart) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UninterpretedOption_NamePart.ProtoReflect.Descriptor instead. +func (*UninterpretedOption_NamePart) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *UninterpretedOption_NamePart) GetNamePart() string { + if x != nil && x.NamePart != nil { + return *x.NamePart + } + return "" +} + +func (x *UninterpretedOption_NamePart) GetIsExtension() bool { + if x != nil && x.IsExtension != nil { + return *x.IsExtension + } + return false +} + +type SourceCodeInfo_Location struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifies which part of the FileDescriptorProto was defined at this + // location. + // + // Each element is a field number or an index. They form a path from + // the root FileDescriptorProto to the place where the definition occurs. + // For example, this path: + // + // [ 4, 3, 2, 7, 1 ] + // + // refers to: + // + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 + // + // This is because FileDescriptorProto.message_type has field number 4: + // + // repeated DescriptorProto message_type = 4; + // + // and DescriptorProto.field has field number 2: + // + // repeated FieldDescriptorProto field = 2; + // + // and FieldDescriptorProto.name has field number 1: + // + // optional string name = 1; + // + // Thus, the above path gives the location of a field name. If we removed + // the last element: + // + // [ 4, 3, 2, 7 ] + // + // this path refers to the whole field declaration (from the beginning + // of the label to the terminating semicolon). + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Always has exactly three or four elements: start line, start column, + // end line (optional, otherwise assumed same as start line), end column. + // These are packed into a single field for efficiency. Note that line + // and column numbers are zero-based -- typically you will want to add + // 1 to each before displaying to a user. + Span []int32 `protobuf:"varint,2,rep,packed,name=span" json:"span,omitempty"` + // If this SourceCodeInfo represents a complete declaration, these are any + // comments appearing before and after the declaration which appear to be + // attached to the declaration. + // + // A series of line comments appearing on consecutive lines, with no other + // tokens appearing on those lines, will be treated as a single comment. + // + // leading_detached_comments will keep paragraphs of comments that appear + // before (but not connected to) the current element. Each paragraph, + // separated by empty lines, will be one comment element in the repeated + // field. + // + // Only the comment content is provided; comment markers (e.g. //) are + // stripped out. For block comments, leading whitespace and an asterisk + // will be stripped from the beginning of each line other than the first. + // Newlines are included in the output. + // + // Examples: + // + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; + // + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. + // + // // Comment attached to moo. + // // + // // Another line attached to moo. + // optional double moo = 4; + // + // // Detached comment for corge. This is not leading or trailing comments + // // to moo or corge because there are blank lines separating it from + // // both. + // + // // Detached comment for corge paragraph 2. + // + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; + // + // // ignored detached comments. + LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` + TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` + LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` +} + +func (x *SourceCodeInfo_Location) Reset() { + *x = SourceCodeInfo_Location{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SourceCodeInfo_Location) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SourceCodeInfo_Location) ProtoMessage() {} + +func (x *SourceCodeInfo_Location) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SourceCodeInfo_Location.ProtoReflect.Descriptor instead. +func (*SourceCodeInfo_Location) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{19, 0} +} + +func (x *SourceCodeInfo_Location) GetPath() []int32 { + if x != nil { + return x.Path + } + return nil +} + +func (x *SourceCodeInfo_Location) GetSpan() []int32 { + if x != nil { + return x.Span + } + return nil +} + +func (x *SourceCodeInfo_Location) GetLeadingComments() string { + if x != nil && x.LeadingComments != nil { + return *x.LeadingComments + } + return "" +} + +func (x *SourceCodeInfo_Location) GetTrailingComments() string { + if x != nil && x.TrailingComments != nil { + return *x.TrailingComments + } + return "" +} + +func (x *SourceCodeInfo_Location) GetLeadingDetachedComments() []string { + if x != nil { + return x.LeadingDetachedComments + } + return nil +} + +type GeneratedCodeInfo_Annotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Identifies the element in the original source .proto file. This field + // is formatted the same as SourceCodeInfo.Location.path. + Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` + // Identifies the filesystem path to the original source .proto. + SourceFile *string `protobuf:"bytes,2,opt,name=source_file,json=sourceFile" json:"source_file,omitempty"` + // Identifies the starting offset in bytes in the generated code + // that relates to the identified object. + Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` + // Identifies the ending offset in bytes in the generated code that + // relates to the identified object. The end offset should be one past + // the last relevant byte (so the length of the text = end - begin). + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` + Semantic *GeneratedCodeInfo_Annotation_Semantic `protobuf:"varint,5,opt,name=semantic,enum=google.protobuf.GeneratedCodeInfo_Annotation_Semantic" json:"semantic,omitempty"` +} + +func (x *GeneratedCodeInfo_Annotation) Reset() { + *x = GeneratedCodeInfo_Annotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_descriptor_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeneratedCodeInfo_Annotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeneratedCodeInfo_Annotation) ProtoMessage() {} + +func (x *GeneratedCodeInfo_Annotation) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_descriptor_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GeneratedCodeInfo_Annotation.ProtoReflect.Descriptor instead. +func (*GeneratedCodeInfo_Annotation) Descriptor() ([]byte, []int) { + return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0} +} + +func (x *GeneratedCodeInfo_Annotation) GetPath() []int32 { + if x != nil { + return x.Path + } + return nil +} + +func (x *GeneratedCodeInfo_Annotation) GetSourceFile() string { + if x != nil && x.SourceFile != nil { + return *x.SourceFile + } + return "" +} + +func (x *GeneratedCodeInfo_Annotation) GetBegin() int32 { + if x != nil && x.Begin != nil { + return *x.Begin + } + return 0 +} + +func (x *GeneratedCodeInfo_Annotation) GetEnd() int32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +func (x *GeneratedCodeInfo_Annotation) GetSemantic() GeneratedCodeInfo_Annotation_Semantic { + if x != nil && x.Semantic != nil { + return *x.Semantic + } + return GeneratedCodeInfo_Annotation_NONE +} + +var File_google_protobuf_descriptor_proto protoreflect.FileDescriptor + +var file_google_protobuf_descriptor_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x22, 0x4d, 0x0a, 0x11, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, + 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, + 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x5f, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x10, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x44, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x77, 0x65, 0x61, 0x6b, 0x5f, 0x64, 0x65, + 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x05, 0x52, 0x0e, + 0x77, 0x65, 0x61, 0x6b, 0x44, 0x65, 0x70, 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x43, + 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, + 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x36, + 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, + 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, + 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, + 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, + 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, + 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, + 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, + 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, + 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, + 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, + 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, + 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, + 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, + 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, + 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, + 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, + 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, + 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, + 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, + 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, + 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, + 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, + 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, + 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, + 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, + 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, + 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, + 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, + 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, + 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, + 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, + 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, + 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, + 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, + 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, + 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, + 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, + 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, + 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, + 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, + 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, + 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, + 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, + 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, + 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, + 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, + 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, + 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, + 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, + 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, + 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, + 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, + 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, + 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, + 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, + 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, + 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, + 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, + 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, + 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, + 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, + 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, + 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, + 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, + 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, + 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, + 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, + 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, + 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, + 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, + 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, + 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, + 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, + 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, + 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, + 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, + 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, + 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, + 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, + 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, + 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, + 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, + 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, + 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, + 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, + 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, + 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, + 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, + 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, + 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, + 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, + 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, + 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, + 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, + 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, + 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, + 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, + 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, + 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, + 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, + 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, + 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, + 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, + 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, + 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, + 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, + 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, + 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, + 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, + 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, + 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, + 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, + 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, + 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, + 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, + 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, + 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, + 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, + 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, + 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, + 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, + 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, + 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, + 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x52, 0x65, 0x66, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, +} + +var ( + file_google_protobuf_descriptor_proto_rawDescOnce sync.Once + file_google_protobuf_descriptor_proto_rawDescData = file_google_protobuf_descriptor_proto_rawDesc +) + +func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { + file_google_protobuf_descriptor_proto_rawDescOnce.Do(func() { + file_google_protobuf_descriptor_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_descriptor_proto_rawDescData) + }) + return file_google_protobuf_descriptor_proto_rawDescData +} + +var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) +var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ + (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type + (FieldDescriptorProto_Label)(0), // 1: google.protobuf.FieldDescriptorProto.Label + (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode + (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType + (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType + (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention + (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType + (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel + (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic + (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet + (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto + (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto + (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions + (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto + (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto + (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto + (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto + (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto + (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto + (*FileOptions)(nil), // 19: google.protobuf.FileOptions + (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions + (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions + (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions + (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions + (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions + (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions + (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions + (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption + (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo + (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo + (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange + (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange + (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange + (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart + (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location + (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation +} +var file_google_protobuf_descriptor_proto_depIdxs = []int32{ + 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto + 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto + 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto + 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto + 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto + 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions + 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo + 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto + 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto + 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto + 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto + 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange + 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto + 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions + 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange + 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label + 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type + 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions + 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions + 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto + 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions + 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange + 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions + 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto + 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions + 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions + 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode + 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType + 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType + 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention + 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType + 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel + 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart + 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location + 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation + 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions + 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic + 46, // [46:46] is the sub-list for method output_type + 46, // [46:46] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name +} + +func init() { file_google_protobuf_descriptor_proto_init() } +func file_google_protobuf_descriptor_proto_init() { + if File_google_protobuf_descriptor_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_protobuf_descriptor_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileDescriptorSet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtensionRangeOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OneofDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumValueDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MethodDescriptorProto); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FileOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FieldOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OneofOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumValueOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServiceOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MethodOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + case 3: + return &v.extensionFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninterpretedOption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SourceCodeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeneratedCodeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescriptorProto_ExtensionRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DescriptorProto_ReservedRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EnumDescriptorProto_EnumReservedRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UninterpretedOption_NamePart); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SourceCodeInfo_Location); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_descriptor_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeneratedCodeInfo_Annotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, + NumEnums: 9, + NumMessages: 27, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_protobuf_descriptor_proto_goTypes, + DependencyIndexes: file_google_protobuf_descriptor_proto_depIdxs, + EnumInfos: file_google_protobuf_descriptor_proto_enumTypes, + MessageInfos: file_google_protobuf_descriptor_proto_msgTypes, + }.Build() + File_google_protobuf_descriptor_proto = out.File + file_google_protobuf_descriptor_proto_rawDesc = nil + file_google_protobuf_descriptor_proto_goTypes = nil + file_google_protobuf_descriptor_proto_depIdxs = nil +} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go index 5f9498e4e4..a6c7a33f33 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go @@ -31,12 +31,96 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/any.proto +// Package anypb contains generated types for google/protobuf/any.proto. +// +// The Any message is a dynamic representation of any other message value. +// It is functionally a tuple of the full name of the remote message type and +// the serialized bytes of the remote message value. +// +// # Constructing an Any +// +// An Any message containing another message value is constructed using New: +// +// any, err := anypb.New(m) +// if err != nil { +// ... // handle error +// } +// ... // make use of any +// +// # Unmarshaling an Any +// +// With a populated Any message, the underlying message can be serialized into +// a remote concrete message value in a few ways. +// +// If the exact concrete type is known, then a new (or pre-existing) instance +// of that message can be passed to the UnmarshalTo method: +// +// m := new(foopb.MyMessage) +// if err := any.UnmarshalTo(m); err != nil { +// ... // handle error +// } +// ... // make use of m +// +// If the exact concrete type is not known, then the UnmarshalNew method can be +// used to unmarshal the contents into a new instance of the remote message type: +// +// m, err := any.UnmarshalNew() +// if err != nil { +// ... // handle error +// } +// ... // make use of m +// +// UnmarshalNew uses the global type registry to resolve the message type and +// construct a new instance of that message to unmarshal into. In order for a +// message type to appear in the global registry, the Go type representing that +// protobuf message type must be linked into the Go binary. For messages +// generated by protoc-gen-go, this is achieved through an import of the +// generated Go package representing a .proto file. +// +// A common pattern with UnmarshalNew is to use a type switch with the resulting +// proto.Message value: +// +// switch m := m.(type) { +// case *foopb.MyMessage: +// ... // make use of m as a *foopb.MyMessage +// case *barpb.OtherMessage: +// ... // make use of m as a *barpb.OtherMessage +// case *bazpb.SomeMessage: +// ... // make use of m as a *bazpb.SomeMessage +// } +// +// This pattern ensures that the generated packages containing the message types +// listed in the case clauses are linked into the Go binary and therefore also +// registered in the global registry. +// +// # Type checking an Any +// +// In order to type check whether an Any message represents some other message, +// then use the MessageIs method: +// +// if any.MessageIs((*foopb.MyMessage)(nil)) { +// ... // make use of any, knowing that it contains a foopb.MyMessage +// } +// +// The MessageIs method can also be used with an allocated instance of the target +// message type if the intention is to unmarshal into it if the type matches: +// +// m := new(foopb.MyMessage) +// if any.MessageIs(m) { +// if err := any.UnmarshalTo(m); err != nil { +// ... // handle error +// } +// ... // make use of m +// } package anypb import ( + proto "google.golang.org/protobuf/proto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoregistry "google.golang.org/protobuf/reflect/protoregistry" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" + strings "strings" sync "sync" ) @@ -48,42 +132,49 @@ import ( // // Example 1: Pack and unpack a message in C++. // -// Foo foo = ...; -// Any any; -// any.PackFrom(foo); -// ... -// if (any.UnpackTo(&foo)) { -// ... -// } +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } // // Example 2: Pack and unpack a message in Java. // -// Foo foo = ...; -// Any any = Any.pack(foo); -// ... -// if (any.is(Foo.class)) { -// foo = any.unpack(Foo.class); -// } -// -// Example 3: Pack and unpack a message in Python. -// -// foo = Foo(...) -// any = Any() -// any.Pack(foo) -// ... -// if any.Is(Foo.DESCRIPTOR): -// any.Unpack(foo) -// ... -// -// Example 4: Pack and unpack a message in Go -// -// foo := &pb.Foo{...} -// any, err := ptypes.MarshalAny(foo) -// ... -// foo := &pb.Foo{} -// if err := ptypes.UnmarshalAny(any, foo); err != nil { -// ... -// } +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// // or ... +// if (any.isSameTypeAs(Foo.getDefaultInstance())) { +// foo = any.unpack(Foo.getDefaultInstance()); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := anypb.New(foo) +// if err != nil { +// ... +// } +// ... +// foo := &pb.Foo{} +// if err := any.UnmarshalTo(foo); err != nil { +// ... +// } // // The pack methods provided by protobuf library will by default use // 'type.googleapis.com/full.type.name' as the type URL and the unpack @@ -91,35 +182,33 @@ import ( // in the type URL, for example "foo.bar.com/x/y.z" will yield type // name "y.z". // +// # JSON // -// JSON -// ==== // The JSON representation of an `Any` value uses the regular // representation of the deserialized, embedded message, with an // additional field `@type` which contains the type URL. Example: // -// package google.profile; -// message Person { -// string first_name = 1; -// string last_name = 2; -// } +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } // -// { -// "@type": "type.googleapis.com/google.profile.Person", -// "firstName": , -// "lastName": -// } +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } // // If the embedded message type is well-known and has a custom JSON // representation, that representation will be embedded adding a field // `value` which holds the custom JSON in addition to the `@type` // field. Example (for message [google.protobuf.Duration][]): // -// { -// "@type": "type.googleapis.com/google.protobuf.Duration", -// "value": "1.212s" -// } -// +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } type Any struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -137,14 +226,14 @@ type Any struct { // scheme `http`, `https`, or no scheme, one can optionally set up a type // server that maps type URLs to message definitions as follows: // - // * If no scheme is provided, `https` is assumed. - // * An HTTP GET on the URL must yield a [google.protobuf.Type][] - // value in binary format, or produce an error. - // * Applications are allowed to cache lookup results based on the - // URL, or have them precompiled into a binary to avoid any - // lookup. Therefore, binary compatibility needs to be preserved - // on changes to types. (Use versioned type names to manage - // breaking changes.) + // - If no scheme is provided, `https` is assumed. + // - An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // - Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) // // Note: this functionality is not currently available in the official // protobuf release, and it is not used for type URLs beginning with @@ -152,12 +241,130 @@ type Any struct { // // Schemes other than `http`, `https` (or the empty scheme) might be // used with implementation specific semantics. - // TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` // Must be a valid serialized protocol buffer of the above specified type. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` } +// New marshals src into a new Any instance. +func New(src proto.Message) (*Any, error) { + dst := new(Any) + if err := dst.MarshalFrom(src); err != nil { + return nil, err + } + return dst, nil +} + +// MarshalFrom marshals src into dst as the underlying message +// using the provided marshal options. +// +// If no options are specified, call dst.MarshalFrom instead. +func MarshalFrom(dst *Any, src proto.Message, opts proto.MarshalOptions) error { + const urlPrefix = "type.googleapis.com/" + if src == nil { + return protoimpl.X.NewError("invalid nil source message") + } + b, err := opts.Marshal(src) + if err != nil { + return err + } + dst.TypeUrl = urlPrefix + string(src.ProtoReflect().Descriptor().FullName()) + dst.Value = b + return nil +} + +// UnmarshalTo unmarshals the underlying message from src into dst +// using the provided unmarshal options. +// It reports an error if dst is not of the right message type. +// +// If no options are specified, call src.UnmarshalTo instead. +func UnmarshalTo(src *Any, dst proto.Message, opts proto.UnmarshalOptions) error { + if src == nil { + return protoimpl.X.NewError("invalid nil source message") + } + if !src.MessageIs(dst) { + got := dst.ProtoReflect().Descriptor().FullName() + want := src.MessageName() + return protoimpl.X.NewError("mismatched message type: got %q, want %q", got, want) + } + return opts.Unmarshal(src.GetValue(), dst) +} + +// UnmarshalNew unmarshals the underlying message from src into dst, +// which is newly created message using a type resolved from the type URL. +// The message type is resolved according to opt.Resolver, +// which should implement protoregistry.MessageTypeResolver. +// It reports an error if the underlying message type could not be resolved. +// +// If no options are specified, call src.UnmarshalNew instead. +func UnmarshalNew(src *Any, opts proto.UnmarshalOptions) (dst proto.Message, err error) { + if src.GetTypeUrl() == "" { + return nil, protoimpl.X.NewError("invalid empty type URL") + } + if opts.Resolver == nil { + opts.Resolver = protoregistry.GlobalTypes + } + r, ok := opts.Resolver.(protoregistry.MessageTypeResolver) + if !ok { + return nil, protoregistry.NotFound + } + mt, err := r.FindMessageByURL(src.GetTypeUrl()) + if err != nil { + if err == protoregistry.NotFound { + return nil, err + } + return nil, protoimpl.X.NewError("could not resolve %q: %v", src.GetTypeUrl(), err) + } + dst = mt.New().Interface() + return dst, opts.Unmarshal(src.GetValue(), dst) +} + +// MessageIs reports whether the underlying message is of the same type as m. +func (x *Any) MessageIs(m proto.Message) bool { + if m == nil { + return false + } + url := x.GetTypeUrl() + name := string(m.ProtoReflect().Descriptor().FullName()) + if !strings.HasSuffix(url, name) { + return false + } + return len(url) == len(name) || url[len(url)-len(name)-1] == '/' +} + +// MessageName reports the full name of the underlying message, +// returning an empty string if invalid. +func (x *Any) MessageName() protoreflect.FullName { + url := x.GetTypeUrl() + name := protoreflect.FullName(url) + if i := strings.LastIndexByte(url, '/'); i >= 0 { + name = name[i+len("/"):] + } + if !name.IsValid() { + return "" + } + return name +} + +// MarshalFrom marshals m into x as the underlying message. +func (x *Any) MarshalFrom(m proto.Message) error { + return MarshalFrom(x, m, proto.MarshalOptions{}) +} + +// UnmarshalTo unmarshals the contents of the underlying message of x into m. +// It resets m before performing the unmarshal operation. +// It reports an error if m is not of the right message type. +func (x *Any) UnmarshalTo(m proto.Message) error { + return UnmarshalTo(x, m, proto.UnmarshalOptions{}) +} + +// UnmarshalNew unmarshals the contents of the underlying message of x into +// a newly allocated message of the specified type. +// It reports an error if the underlying message type could not be resolved. +func (x *Any) UnmarshalNew() (proto.Message, error) { + return UnmarshalNew(x, proto.UnmarshalOptions{}) +} + func (x *Any) Reset() { *x = Any{} if protoimpl.UnsafeEnabled { @@ -213,14 +420,15 @@ var file_google_protobuf_any_proto_rawDesc = []byte{ 0x41, 0x6e, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x6f, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x76, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x08, 0x41, 0x6e, 0x79, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x61, 0x6e, 0x79, 0xa2, 0x02, - 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, + 0x61, 0x6e, 0x79, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, + 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go index 3997c604f4..df709a8dd4 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go @@ -31,13 +31,55 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/duration.proto +// Package durationpb contains generated types for google/protobuf/duration.proto. +// +// The Duration message represents a signed span of time. +// +// # Conversion to a Go Duration +// +// The AsDuration method can be used to convert a Duration message to a +// standard Go time.Duration value: +// +// d := dur.AsDuration() +// ... // make use of d as a time.Duration +// +// Converting to a time.Duration is a common operation so that the extensive +// set of time-based operations provided by the time package can be leveraged. +// See https://golang.org/pkg/time for more information. +// +// The AsDuration method performs the conversion on a best-effort basis. +// Durations with denormal values (e.g., nanoseconds beyond -99999999 and +// +99999999, inclusive; or seconds and nanoseconds with opposite signs) +// are normalized during the conversion to a time.Duration. To manually check for +// invalid Duration per the documented limitations in duration.proto, +// additionally call the CheckValid method: +// +// if err := dur.CheckValid(); err != nil { +// ... // handle error +// } +// +// Note that the documented limitations in duration.proto does not protect a +// Duration from overflowing the representable range of a time.Duration in Go. +// The AsDuration method uses saturation arithmetic such that an overflow clamps +// the resulting value to the closest representable value (e.g., math.MaxInt64 +// for positive overflow and math.MinInt64 for negative overflow). +// +// # Conversion from a Go Duration +// +// The durationpb.New function can be used to construct a Duration message +// from a standard Go time.Duration value: +// +// dur := durationpb.New(d) +// ... // make use of d as a *durationpb.Duration package durationpb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + math "math" reflect "reflect" sync "sync" + time "time" ) // A Duration represents a signed, fixed-length span of time represented @@ -51,43 +93,43 @@ import ( // // Example 1: Compute Duration from two Timestamps in pseudo code. // -// Timestamp start = ...; -// Timestamp end = ...; -// Duration duration = ...; +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; // -// duration.seconds = end.seconds - start.seconds; -// duration.nanos = end.nanos - start.nanos; +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; // -// if (duration.seconds < 0 && duration.nanos > 0) { -// duration.seconds += 1; -// duration.nanos -= 1000000000; -// } else if (duration.seconds > 0 && duration.nanos < 0) { -// duration.seconds -= 1; -// duration.nanos += 1000000000; -// } +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (duration.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } // // Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. // -// Timestamp start = ...; -// Duration duration = ...; -// Timestamp end = ...; +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; // -// end.seconds = start.seconds + duration.seconds; -// end.nanos = start.nanos + duration.nanos; +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; // -// if (end.nanos < 0) { -// end.seconds -= 1; -// end.nanos += 1000000000; -// } else if (end.nanos >= 1000000000) { -// end.seconds += 1; -// end.nanos -= 1000000000; -// } +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } // // Example 3: Compute Duration from datetime.timedelta in Python. // -// td = datetime.timedelta(days=3, minutes=10) -// duration = Duration() -// duration.FromTimedelta(td) +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) // // # JSON Mapping // @@ -98,8 +140,6 @@ import ( // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should // be expressed in JSON format as "3.000000001s", and 3 seconds and 1 // microsecond should be expressed in JSON format as "3.000001s". -// -// type Duration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -118,6 +158,91 @@ type Duration struct { Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` } +// New constructs a new Duration from the provided time.Duration. +func New(d time.Duration) *Duration { + nanos := d.Nanoseconds() + secs := nanos / 1e9 + nanos -= secs * 1e9 + return &Duration{Seconds: int64(secs), Nanos: int32(nanos)} +} + +// AsDuration converts x to a time.Duration, +// returning the closest duration value in the event of overflow. +func (x *Duration) AsDuration() time.Duration { + secs := x.GetSeconds() + nanos := x.GetNanos() + d := time.Duration(secs) * time.Second + overflow := d/time.Second != time.Duration(secs) + d += time.Duration(nanos) * time.Nanosecond + overflow = overflow || (secs < 0 && nanos < 0 && d > 0) + overflow = overflow || (secs > 0 && nanos > 0 && d < 0) + if overflow { + switch { + case secs < 0: + return time.Duration(math.MinInt64) + case secs > 0: + return time.Duration(math.MaxInt64) + } + } + return d +} + +// IsValid reports whether the duration is valid. +// It is equivalent to CheckValid == nil. +func (x *Duration) IsValid() bool { + return x.check() == 0 +} + +// CheckValid returns an error if the duration is invalid. +// In particular, it checks whether the value is within the range of +// -10000 years to +10000 years inclusive. +// An error is reported for a nil Duration. +func (x *Duration) CheckValid() error { + switch x.check() { + case invalidNil: + return protoimpl.X.NewError("invalid nil Duration") + case invalidUnderflow: + return protoimpl.X.NewError("duration (%v) exceeds -10000 years", x) + case invalidOverflow: + return protoimpl.X.NewError("duration (%v) exceeds +10000 years", x) + case invalidNanosRange: + return protoimpl.X.NewError("duration (%v) has out-of-range nanos", x) + case invalidNanosSign: + return protoimpl.X.NewError("duration (%v) has seconds and nanos with different signs", x) + default: + return nil + } +} + +const ( + _ = iota + invalidNil + invalidUnderflow + invalidOverflow + invalidNanosRange + invalidNanosSign +) + +func (x *Duration) check() uint { + const absDuration = 315576000000 // 10000yr * 365.25day/yr * 24hr/day * 60min/hr * 60sec/min + secs := x.GetSeconds() + nanos := x.GetNanos() + switch { + case x == nil: + return invalidNil + case secs < -absDuration: + return invalidUnderflow + case secs > +absDuration: + return invalidOverflow + case nanos <= -1e9 || nanos >= +1e9: + return invalidNanosRange + case (secs > 0 && nanos < 0) || (secs < 0 && nanos > 0): + return invalidNanosSign + default: + return 0 + } +} + func (x *Duration) Reset() { *x = Duration{} if protoimpl.UnsafeEnabled { @@ -173,16 +298,16 @@ var file_google_protobuf_duration_proto_rawDesc = []byte{ 0x66, 0x22, 0x3a, 0x0a, 0x08, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x7c, 0x0a, - 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, - 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, 0x83, 0x01, + 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0d, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, + 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, + 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go index 6fe6d42f17..61f69fc11b 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go @@ -31,6 +31,45 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: google/protobuf/timestamp.proto +// Package timestamppb contains generated types for google/protobuf/timestamp.proto. +// +// The Timestamp message represents a timestamp, +// an instant in time since the Unix epoch (January 1st, 1970). +// +// # Conversion to a Go Time +// +// The AsTime method can be used to convert a Timestamp message to a +// standard Go time.Time value in UTC: +// +// t := ts.AsTime() +// ... // make use of t as a time.Time +// +// Converting to a time.Time is a common operation so that the extensive +// set of time-based operations provided by the time package can be leveraged. +// See https://golang.org/pkg/time for more information. +// +// The AsTime method performs the conversion on a best-effort basis. Timestamps +// with denormal values (e.g., nanoseconds beyond 0 and 99999999, inclusive) +// are normalized during the conversion to a time.Time. To manually check for +// invalid Timestamps per the documented limitations in timestamp.proto, +// additionally call the CheckValid method: +// +// if err := ts.CheckValid(); err != nil { +// ... // handle error +// } +// +// # Conversion from a Go Time +// +// The timestamppb.New function can be used to construct a Timestamp message +// from a standard Go time.Time value: +// +// ts := timestamppb.New(t) +// ... // make use of ts as a *timestamppb.Timestamp +// +// In order to construct a Timestamp representing the current time, use Now: +// +// ts := timestamppb.Now() +// ... // make use of ts as a *timestamppb.Timestamp package timestamppb import ( @@ -38,6 +77,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + time "time" ) // A Timestamp represents a point in time independent of any time zone or local @@ -58,43 +98,50 @@ import ( // // Example 1: Compute Timestamp from POSIX `time()`. // -// Timestamp timestamp; -// timestamp.set_seconds(time(NULL)); -// timestamp.set_nanos(0); +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); // // Example 2: Compute Timestamp from POSIX `gettimeofday()`. // -// struct timeval tv; -// gettimeofday(&tv, NULL); +// struct timeval tv; +// gettimeofday(&tv, NULL); // -// Timestamp timestamp; -// timestamp.set_seconds(tv.tv_sec); -// timestamp.set_nanos(tv.tv_usec * 1000); +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); // // Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. // -// FILETIME ft; -// GetSystemTimeAsFileTime(&ft); -// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; // -// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z -// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. -// Timestamp timestamp; -// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); -// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); // // Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. // -// long millis = System.currentTimeMillis(); +// long millis = System.currentTimeMillis(); // -// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) -// .setNanos((int) ((millis % 1000) * 1000000)).build(); +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); // +// Example 5: Compute Timestamp from Java `Instant.now()`. // -// Example 5: Compute Timestamp from current time in Python. +// Instant now = Instant.now(); // -// timestamp = Timestamp() -// timestamp.GetCurrentTime() +// Timestamp timestamp = +// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) +// .setNanos(now.getNano()).build(); +// +// Example 6: Compute Timestamp from current time in Python. +// +// timestamp = Timestamp() +// timestamp.GetCurrentTime() // // # JSON Mapping // @@ -122,8 +169,6 @@ import ( // the Joda Time's [`ISODateTimeFormat.dateTime()`]( // http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. -// -// type Timestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -140,6 +185,73 @@ type Timestamp struct { Nanos int32 `protobuf:"varint,2,opt,name=nanos,proto3" json:"nanos,omitempty"` } +// Now constructs a new Timestamp from the current time. +func Now() *Timestamp { + return New(time.Now()) +} + +// New constructs a new Timestamp from the provided time.Time. +func New(t time.Time) *Timestamp { + return &Timestamp{Seconds: int64(t.Unix()), Nanos: int32(t.Nanosecond())} +} + +// AsTime converts x to a time.Time. +func (x *Timestamp) AsTime() time.Time { + return time.Unix(int64(x.GetSeconds()), int64(x.GetNanos())).UTC() +} + +// IsValid reports whether the timestamp is valid. +// It is equivalent to CheckValid == nil. +func (x *Timestamp) IsValid() bool { + return x.check() == 0 +} + +// CheckValid returns an error if the timestamp is invalid. +// In particular, it checks whether the value represents a date that is +// in the range of 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive. +// An error is reported for a nil Timestamp. +func (x *Timestamp) CheckValid() error { + switch x.check() { + case invalidNil: + return protoimpl.X.NewError("invalid nil Timestamp") + case invalidUnderflow: + return protoimpl.X.NewError("timestamp (%v) before 0001-01-01", x) + case invalidOverflow: + return protoimpl.X.NewError("timestamp (%v) after 9999-12-31", x) + case invalidNanos: + return protoimpl.X.NewError("timestamp (%v) has out-of-range nanos", x) + default: + return nil + } +} + +const ( + _ = iota + invalidNil + invalidUnderflow + invalidOverflow + invalidNanos +) + +func (x *Timestamp) check() uint { + const minTimestamp = -62135596800 // Seconds between 1970-01-01T00:00:00Z and 0001-01-01T00:00:00Z, inclusive + const maxTimestamp = +253402300799 // Seconds between 1970-01-01T00:00:00Z and 9999-12-31T23:59:59Z, inclusive + secs := x.GetSeconds() + nanos := x.GetNanos() + switch { + case x == nil: + return invalidNil + case secs < minTimestamp: + return invalidUnderflow + case secs > maxTimestamp: + return invalidOverflow + case nanos < 0 || nanos >= 1e9: + return invalidNanos + default: + return 0 + } +} + func (x *Timestamp) Reset() { *x = Timestamp{} if protoimpl.UnsafeEnabled { @@ -196,15 +308,15 @@ var file_google_protobuf_timestamp_proto_rawDesc = []byte{ 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x42, - 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x70, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, - 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x85, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x70, 0x62, 0xf8, 0x01, 0x01, + 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, + 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go new file mode 100644 index 0000000000..762a87130f --- /dev/null +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go @@ -0,0 +1,760 @@ +// Protocol Buffers - Google's data interchange format +// Copyright 2008 Google Inc. All rights reserved. +// https://developers.google.com/protocol-buffers/ +// +// 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. +// +// Wrappers for primitive (non-message) types. These types are useful +// for embedding primitives in the `google.protobuf.Any` type and for places +// where we need to distinguish between the absence of a primitive +// typed field and its default value. +// +// These wrappers have no meaningful use within repeated fields as they lack +// the ability to detect presence on individual elements. +// These wrappers have no meaningful use within a map or a oneof since +// individual entries of a map or fields of a oneof can already detect presence. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: google/protobuf/wrappers.proto + +package wrapperspb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +// Wrapper message for `double`. +// +// The JSON representation for `DoubleValue` is JSON number. +type DoubleValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The double value. + Value float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// Double stores v in a new DoubleValue and returns a pointer to it. +func Double(v float64) *DoubleValue { + return &DoubleValue{Value: v} +} + +func (x *DoubleValue) Reset() { + *x = DoubleValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DoubleValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DoubleValue) ProtoMessage() {} + +func (x *DoubleValue) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DoubleValue.ProtoReflect.Descriptor instead. +func (*DoubleValue) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{0} +} + +func (x *DoubleValue) GetValue() float64 { + if x != nil { + return x.Value + } + return 0 +} + +// Wrapper message for `float`. +// +// The JSON representation for `FloatValue` is JSON number. +type FloatValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The float value. + Value float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// Float stores v in a new FloatValue and returns a pointer to it. +func Float(v float32) *FloatValue { + return &FloatValue{Value: v} +} + +func (x *FloatValue) Reset() { + *x = FloatValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatValue) ProtoMessage() {} + +func (x *FloatValue) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FloatValue.ProtoReflect.Descriptor instead. +func (*FloatValue) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{1} +} + +func (x *FloatValue) GetValue() float32 { + if x != nil { + return x.Value + } + return 0 +} + +// Wrapper message for `int64`. +// +// The JSON representation for `Int64Value` is JSON string. +type Int64Value struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The int64 value. + Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// Int64 stores v in a new Int64Value and returns a pointer to it. +func Int64(v int64) *Int64Value { + return &Int64Value{Value: v} +} + +func (x *Int64Value) Reset() { + *x = Int64Value{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int64Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int64Value) ProtoMessage() {} + +func (x *Int64Value) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int64Value.ProtoReflect.Descriptor instead. +func (*Int64Value) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{2} +} + +func (x *Int64Value) GetValue() int64 { + if x != nil { + return x.Value + } + return 0 +} + +// Wrapper message for `uint64`. +// +// The JSON representation for `UInt64Value` is JSON string. +type UInt64Value struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The uint64 value. + Value uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// UInt64 stores v in a new UInt64Value and returns a pointer to it. +func UInt64(v uint64) *UInt64Value { + return &UInt64Value{Value: v} +} + +func (x *UInt64Value) Reset() { + *x = UInt64Value{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt64Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt64Value) ProtoMessage() {} + +func (x *UInt64Value) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt64Value.ProtoReflect.Descriptor instead. +func (*UInt64Value) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{3} +} + +func (x *UInt64Value) GetValue() uint64 { + if x != nil { + return x.Value + } + return 0 +} + +// Wrapper message for `int32`. +// +// The JSON representation for `Int32Value` is JSON number. +type Int32Value struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The int32 value. + Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// Int32 stores v in a new Int32Value and returns a pointer to it. +func Int32(v int32) *Int32Value { + return &Int32Value{Value: v} +} + +func (x *Int32Value) Reset() { + *x = Int32Value{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Int32Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Int32Value) ProtoMessage() {} + +func (x *Int32Value) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Int32Value.ProtoReflect.Descriptor instead. +func (*Int32Value) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{4} +} + +func (x *Int32Value) GetValue() int32 { + if x != nil { + return x.Value + } + return 0 +} + +// Wrapper message for `uint32`. +// +// The JSON representation for `UInt32Value` is JSON number. +type UInt32Value struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The uint32 value. + Value uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// UInt32 stores v in a new UInt32Value and returns a pointer to it. +func UInt32(v uint32) *UInt32Value { + return &UInt32Value{Value: v} +} + +func (x *UInt32Value) Reset() { + *x = UInt32Value{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UInt32Value) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UInt32Value) ProtoMessage() {} + +func (x *UInt32Value) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UInt32Value.ProtoReflect.Descriptor instead. +func (*UInt32Value) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{5} +} + +func (x *UInt32Value) GetValue() uint32 { + if x != nil { + return x.Value + } + return 0 +} + +// Wrapper message for `bool`. +// +// The JSON representation for `BoolValue` is JSON `true` and `false`. +type BoolValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bool value. + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// Bool stores v in a new BoolValue and returns a pointer to it. +func Bool(v bool) *BoolValue { + return &BoolValue{Value: v} +} + +func (x *BoolValue) Reset() { + *x = BoolValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoolValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolValue) ProtoMessage() {} + +func (x *BoolValue) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoolValue.ProtoReflect.Descriptor instead. +func (*BoolValue) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{6} +} + +func (x *BoolValue) GetValue() bool { + if x != nil { + return x.Value + } + return false +} + +// Wrapper message for `string`. +// +// The JSON representation for `StringValue` is JSON string. +type StringValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The string value. + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// String stores v in a new StringValue and returns a pointer to it. +func String(v string) *StringValue { + return &StringValue{Value: v} +} + +func (x *StringValue) Reset() { + *x = StringValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringValue) ProtoMessage() {} + +func (x *StringValue) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringValue.ProtoReflect.Descriptor instead. +func (*StringValue) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{7} +} + +func (x *StringValue) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +// Wrapper message for `bytes`. +// +// The JSON representation for `BytesValue` is JSON string. +type BytesValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bytes value. + Value []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +// Bytes stores v in a new BytesValue and returns a pointer to it. +func Bytes(v []byte) *BytesValue { + return &BytesValue{Value: v} +} + +func (x *BytesValue) Reset() { + *x = BytesValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_protobuf_wrappers_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BytesValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BytesValue) ProtoMessage() {} + +func (x *BytesValue) ProtoReflect() protoreflect.Message { + mi := &file_google_protobuf_wrappers_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BytesValue.ProtoReflect.Descriptor instead. +func (*BytesValue) Descriptor() ([]byte, []int) { + return file_google_protobuf_wrappers_proto_rawDescGZIP(), []int{8} +} + +func (x *BytesValue) GetValue() []byte { + if x != nil { + return x.Value + } + return nil +} + +var File_google_protobuf_wrappers_proto protoreflect.FileDescriptor + +var file_google_protobuf_wrappers_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, + 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21, 0x0a, 0x09, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x83, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x42, 0x0d, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, + 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2f, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x70, 0x62, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x03, 0x47, 0x50, 0x42, 0xaa, 0x02, 0x1e, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x57, 0x65, 0x6c, 0x6c, 0x4b, 0x6e, 0x6f, 0x77, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_protobuf_wrappers_proto_rawDescOnce sync.Once + file_google_protobuf_wrappers_proto_rawDescData = file_google_protobuf_wrappers_proto_rawDesc +) + +func file_google_protobuf_wrappers_proto_rawDescGZIP() []byte { + file_google_protobuf_wrappers_proto_rawDescOnce.Do(func() { + file_google_protobuf_wrappers_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_protobuf_wrappers_proto_rawDescData) + }) + return file_google_protobuf_wrappers_proto_rawDescData +} + +var file_google_protobuf_wrappers_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_google_protobuf_wrappers_proto_goTypes = []interface{}{ + (*DoubleValue)(nil), // 0: google.protobuf.DoubleValue + (*FloatValue)(nil), // 1: google.protobuf.FloatValue + (*Int64Value)(nil), // 2: google.protobuf.Int64Value + (*UInt64Value)(nil), // 3: google.protobuf.UInt64Value + (*Int32Value)(nil), // 4: google.protobuf.Int32Value + (*UInt32Value)(nil), // 5: google.protobuf.UInt32Value + (*BoolValue)(nil), // 6: google.protobuf.BoolValue + (*StringValue)(nil), // 7: google.protobuf.StringValue + (*BytesValue)(nil), // 8: google.protobuf.BytesValue +} +var file_google_protobuf_wrappers_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_google_protobuf_wrappers_proto_init() } +func file_google_protobuf_wrappers_proto_init() { + if File_google_protobuf_wrappers_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_protobuf_wrappers_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DoubleValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int64Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt64Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Int32Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UInt32Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoolValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_protobuf_wrappers_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BytesValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_protobuf_wrappers_proto_rawDesc, + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_protobuf_wrappers_proto_goTypes, + DependencyIndexes: file_google_protobuf_wrappers_proto_depIdxs, + MessageInfos: file_google_protobuf_wrappers_proto_msgTypes, + }.Build() + File_google_protobuf_wrappers_proto = out.File + file_google_protobuf_wrappers_proto_rawDesc = nil + file_google_protobuf_wrappers_proto_goTypes = nil + file_google_protobuf_wrappers_proto_depIdxs = nil +} diff --git a/ecs-agent/vendor/gopkg.in/inf.v0/LICENSE b/ecs-agent/vendor/gopkg.in/inf.v0/LICENSE new file mode 100644 index 0000000000..87a5cede33 --- /dev/null +++ b/ecs-agent/vendor/gopkg.in/inf.v0/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2012 Péter Surányi. Portions Copyright (c) 2009 The Go +Authors. 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. diff --git a/ecs-agent/vendor/gopkg.in/inf.v0/dec.go b/ecs-agent/vendor/gopkg.in/inf.v0/dec.go new file mode 100644 index 0000000000..26548b63ce --- /dev/null +++ b/ecs-agent/vendor/gopkg.in/inf.v0/dec.go @@ -0,0 +1,615 @@ +// Package inf (type inf.Dec) implements "infinite-precision" decimal +// arithmetic. +// "Infinite precision" describes two characteristics: practically unlimited +// precision for decimal number representation and no support for calculating +// with any specific fixed precision. +// (Although there is no practical limit on precision, inf.Dec can only +// represent finite decimals.) +// +// This package is currently in experimental stage and the API may change. +// +// This package does NOT support: +// - rounding to specific precisions (as opposed to specific decimal positions) +// - the notion of context (each rounding must be explicit) +// - NaN and Inf values, and distinguishing between positive and negative zero +// - conversions to and from float32/64 types +// +// Features considered for possible addition: +// + formatting options +// + Exp method +// + combined operations such as AddRound/MulAdd etc +// + exchanging data in decimal32/64/128 formats +// +package inf // import "gopkg.in/inf.v0" + +// TODO: +// - avoid excessive deep copying (quo and rounders) + +import ( + "fmt" + "io" + "math/big" + "strings" +) + +// A Dec represents a signed arbitrary-precision decimal. +// It is a combination of a sign, an arbitrary-precision integer coefficient +// value, and a signed fixed-precision exponent value. +// The sign and the coefficient value are handled together as a signed value +// and referred to as the unscaled value. +// (Positive and negative zero values are not distinguished.) +// Since the exponent is most commonly non-positive, it is handled in negated +// form and referred to as scale. +// +// The mathematical value of a Dec equals: +// +// unscaled * 10**(-scale) +// +// Note that different Dec representations may have equal mathematical values. +// +// unscaled scale String() +// ------------------------- +// 0 0 "0" +// 0 2 "0.00" +// 0 -2 "0" +// 1 0 "1" +// 100 2 "1.00" +// 10 0 "10" +// 1 -1 "10" +// +// The zero value for a Dec represents the value 0 with scale 0. +// +// Operations are typically performed through the *Dec type. +// The semantics of the assignment operation "=" for "bare" Dec values is +// undefined and should not be relied on. +// +// Methods are typically of the form: +// +// func (z *Dec) Op(x, y *Dec) *Dec +// +// and implement operations z = x Op y with the result as receiver; if it +// is one of the operands it may be overwritten (and its memory reused). +// To enable chaining of operations, the result is also returned. Methods +// returning a result other than *Dec take one of the operands as the receiver. +// +// A "bare" Quo method (quotient / division operation) is not provided, as the +// result is not always a finite decimal and thus in general cannot be +// represented as a Dec. +// Instead, in the common case when rounding is (potentially) necessary, +// QuoRound should be used with a Scale and a Rounder. +// QuoExact or QuoRound with RoundExact can be used in the special cases when it +// is known that the result is always a finite decimal. +// +type Dec struct { + unscaled big.Int + scale Scale +} + +// Scale represents the type used for the scale of a Dec. +type Scale int32 + +const scaleSize = 4 // bytes in a Scale value + +// Scaler represents a method for obtaining the scale to use for the result of +// an operation on x and y. +type scaler interface { + Scale(x *Dec, y *Dec) Scale +} + +var bigInt = [...]*big.Int{ + big.NewInt(0), big.NewInt(1), big.NewInt(2), big.NewInt(3), big.NewInt(4), + big.NewInt(5), big.NewInt(6), big.NewInt(7), big.NewInt(8), big.NewInt(9), + big.NewInt(10), +} + +var exp10cache [64]big.Int = func() [64]big.Int { + e10, e10i := [64]big.Int{}, bigInt[1] + for i := range e10 { + e10[i].Set(e10i) + e10i = new(big.Int).Mul(e10i, bigInt[10]) + } + return e10 +}() + +// NewDec allocates and returns a new Dec set to the given int64 unscaled value +// and scale. +func NewDec(unscaled int64, scale Scale) *Dec { + return new(Dec).SetUnscaled(unscaled).SetScale(scale) +} + +// NewDecBig allocates and returns a new Dec set to the given *big.Int unscaled +// value and scale. +func NewDecBig(unscaled *big.Int, scale Scale) *Dec { + return new(Dec).SetUnscaledBig(unscaled).SetScale(scale) +} + +// Scale returns the scale of x. +func (x *Dec) Scale() Scale { + return x.scale +} + +// Unscaled returns the unscaled value of x for u and true for ok when the +// unscaled value can be represented as int64; otherwise it returns an undefined +// int64 value for u and false for ok. Use x.UnscaledBig().Int64() to avoid +// checking the validity of the value when the check is known to be redundant. +func (x *Dec) Unscaled() (u int64, ok bool) { + u = x.unscaled.Int64() + var i big.Int + ok = i.SetInt64(u).Cmp(&x.unscaled) == 0 + return +} + +// UnscaledBig returns the unscaled value of x as *big.Int. +func (x *Dec) UnscaledBig() *big.Int { + return &x.unscaled +} + +// SetScale sets the scale of z, with the unscaled value unchanged, and returns +// z. +// The mathematical value of the Dec changes as if it was multiplied by +// 10**(oldscale-scale). +func (z *Dec) SetScale(scale Scale) *Dec { + z.scale = scale + return z +} + +// SetUnscaled sets the unscaled value of z, with the scale unchanged, and +// returns z. +func (z *Dec) SetUnscaled(unscaled int64) *Dec { + z.unscaled.SetInt64(unscaled) + return z +} + +// SetUnscaledBig sets the unscaled value of z, with the scale unchanged, and +// returns z. +func (z *Dec) SetUnscaledBig(unscaled *big.Int) *Dec { + z.unscaled.Set(unscaled) + return z +} + +// Set sets z to the value of x and returns z. +// It does nothing if z == x. +func (z *Dec) Set(x *Dec) *Dec { + if z != x { + z.SetUnscaledBig(x.UnscaledBig()) + z.SetScale(x.Scale()) + } + return z +} + +// Sign returns: +// +// -1 if x < 0 +// 0 if x == 0 +// +1 if x > 0 +// +func (x *Dec) Sign() int { + return x.UnscaledBig().Sign() +} + +// Neg sets z to -x and returns z. +func (z *Dec) Neg(x *Dec) *Dec { + z.SetScale(x.Scale()) + z.UnscaledBig().Neg(x.UnscaledBig()) + return z +} + +// Cmp compares x and y and returns: +// +// -1 if x < y +// 0 if x == y +// +1 if x > y +// +func (x *Dec) Cmp(y *Dec) int { + xx, yy := upscale(x, y) + return xx.UnscaledBig().Cmp(yy.UnscaledBig()) +} + +// Abs sets z to |x| (the absolute value of x) and returns z. +func (z *Dec) Abs(x *Dec) *Dec { + z.SetScale(x.Scale()) + z.UnscaledBig().Abs(x.UnscaledBig()) + return z +} + +// Add sets z to the sum x+y and returns z. +// The scale of z is the greater of the scales of x and y. +func (z *Dec) Add(x, y *Dec) *Dec { + xx, yy := upscale(x, y) + z.SetScale(xx.Scale()) + z.UnscaledBig().Add(xx.UnscaledBig(), yy.UnscaledBig()) + return z +} + +// Sub sets z to the difference x-y and returns z. +// The scale of z is the greater of the scales of x and y. +func (z *Dec) Sub(x, y *Dec) *Dec { + xx, yy := upscale(x, y) + z.SetScale(xx.Scale()) + z.UnscaledBig().Sub(xx.UnscaledBig(), yy.UnscaledBig()) + return z +} + +// Mul sets z to the product x*y and returns z. +// The scale of z is the sum of the scales of x and y. +func (z *Dec) Mul(x, y *Dec) *Dec { + z.SetScale(x.Scale() + y.Scale()) + z.UnscaledBig().Mul(x.UnscaledBig(), y.UnscaledBig()) + return z +} + +// Round sets z to the value of x rounded to Scale s using Rounder r, and +// returns z. +func (z *Dec) Round(x *Dec, s Scale, r Rounder) *Dec { + return z.QuoRound(x, NewDec(1, 0), s, r) +} + +// QuoRound sets z to the quotient x/y, rounded using the given Rounder to the +// specified scale. +// +// If the rounder is RoundExact but the result can not be expressed exactly at +// the specified scale, QuoRound returns nil, and the value of z is undefined. +// +// There is no corresponding Div method; the equivalent can be achieved through +// the choice of Rounder used. +// +func (z *Dec) QuoRound(x, y *Dec, s Scale, r Rounder) *Dec { + return z.quo(x, y, sclr{s}, r) +} + +func (z *Dec) quo(x, y *Dec, s scaler, r Rounder) *Dec { + scl := s.Scale(x, y) + var zzz *Dec + if r.UseRemainder() { + zz, rA, rB := new(Dec).quoRem(x, y, scl, true, new(big.Int), new(big.Int)) + zzz = r.Round(new(Dec), zz, rA, rB) + } else { + zz, _, _ := new(Dec).quoRem(x, y, scl, false, nil, nil) + zzz = r.Round(new(Dec), zz, nil, nil) + } + if zzz == nil { + return nil + } + return z.Set(zzz) +} + +// QuoExact sets z to the quotient x/y and returns z when x/y is a finite +// decimal. Otherwise it returns nil and the value of z is undefined. +// +// The scale of a non-nil result is "x.Scale() - y.Scale()" or greater; it is +// calculated so that the remainder will be zero whenever x/y is a finite +// decimal. +func (z *Dec) QuoExact(x, y *Dec) *Dec { + return z.quo(x, y, scaleQuoExact{}, RoundExact) +} + +// quoRem sets z to the quotient x/y with the scale s, and if useRem is true, +// it sets remNum and remDen to the numerator and denominator of the remainder. +// It returns z, remNum and remDen. +// +// The remainder is normalized to the range -1 < r < 1 to simplify rounding; +// that is, the results satisfy the following equation: +// +// x / y = z + (remNum/remDen) * 10**(-z.Scale()) +// +// See Rounder for more details about rounding. +// +func (z *Dec) quoRem(x, y *Dec, s Scale, useRem bool, + remNum, remDen *big.Int) (*Dec, *big.Int, *big.Int) { + // difference (required adjustment) compared to "canonical" result scale + shift := s - (x.Scale() - y.Scale()) + // pointers to adjusted unscaled dividend and divisor + var ix, iy *big.Int + switch { + case shift > 0: + // increased scale: decimal-shift dividend left + ix = new(big.Int).Mul(x.UnscaledBig(), exp10(shift)) + iy = y.UnscaledBig() + case shift < 0: + // decreased scale: decimal-shift divisor left + ix = x.UnscaledBig() + iy = new(big.Int).Mul(y.UnscaledBig(), exp10(-shift)) + default: + ix = x.UnscaledBig() + iy = y.UnscaledBig() + } + // save a copy of iy in case it to be overwritten with the result + iy2 := iy + if iy == z.UnscaledBig() { + iy2 = new(big.Int).Set(iy) + } + // set scale + z.SetScale(s) + // set unscaled + if useRem { + // Int division + _, intr := z.UnscaledBig().QuoRem(ix, iy, new(big.Int)) + // set remainder + remNum.Set(intr) + remDen.Set(iy2) + } else { + z.UnscaledBig().Quo(ix, iy) + } + return z, remNum, remDen +} + +type sclr struct{ s Scale } + +func (s sclr) Scale(x, y *Dec) Scale { + return s.s +} + +type scaleQuoExact struct{} + +func (sqe scaleQuoExact) Scale(x, y *Dec) Scale { + rem := new(big.Rat).SetFrac(x.UnscaledBig(), y.UnscaledBig()) + f2, f5 := factor2(rem.Denom()), factor(rem.Denom(), bigInt[5]) + var f10 Scale + if f2 > f5 { + f10 = Scale(f2) + } else { + f10 = Scale(f5) + } + return x.Scale() - y.Scale() + f10 +} + +func factor(n *big.Int, p *big.Int) int { + // could be improved for large factors + d, f := n, 0 + for { + dd, dm := new(big.Int).DivMod(d, p, new(big.Int)) + if dm.Sign() == 0 { + f++ + d = dd + } else { + break + } + } + return f +} + +func factor2(n *big.Int) int { + // could be improved for large factors + f := 0 + for ; n.Bit(f) == 0; f++ { + } + return f +} + +func upscale(a, b *Dec) (*Dec, *Dec) { + if a.Scale() == b.Scale() { + return a, b + } + if a.Scale() > b.Scale() { + bb := b.rescale(a.Scale()) + return a, bb + } + aa := a.rescale(b.Scale()) + return aa, b +} + +func exp10(x Scale) *big.Int { + if int(x) < len(exp10cache) { + return &exp10cache[int(x)] + } + return new(big.Int).Exp(bigInt[10], big.NewInt(int64(x)), nil) +} + +func (x *Dec) rescale(newScale Scale) *Dec { + shift := newScale - x.Scale() + switch { + case shift < 0: + e := exp10(-shift) + return NewDecBig(new(big.Int).Quo(x.UnscaledBig(), e), newScale) + case shift > 0: + e := exp10(shift) + return NewDecBig(new(big.Int).Mul(x.UnscaledBig(), e), newScale) + } + return x +} + +var zeros = []byte("00000000000000000000000000000000" + + "00000000000000000000000000000000") +var lzeros = Scale(len(zeros)) + +func appendZeros(s []byte, n Scale) []byte { + for i := Scale(0); i < n; i += lzeros { + if n > i+lzeros { + s = append(s, zeros...) + } else { + s = append(s, zeros[0:n-i]...) + } + } + return s +} + +func (x *Dec) String() string { + if x == nil { + return "" + } + scale := x.Scale() + s := []byte(x.UnscaledBig().String()) + if scale <= 0 { + if scale != 0 && x.unscaled.Sign() != 0 { + s = appendZeros(s, -scale) + } + return string(s) + } + negbit := Scale(-((x.Sign() - 1) / 2)) + // scale > 0 + lens := Scale(len(s)) + if lens-negbit <= scale { + ss := make([]byte, 0, scale+2) + if negbit == 1 { + ss = append(ss, '-') + } + ss = append(ss, '0', '.') + ss = appendZeros(ss, scale-lens+negbit) + ss = append(ss, s[negbit:]...) + return string(ss) + } + // lens > scale + ss := make([]byte, 0, lens+1) + ss = append(ss, s[:lens-scale]...) + ss = append(ss, '.') + ss = append(ss, s[lens-scale:]...) + return string(ss) +} + +// Format is a support routine for fmt.Formatter. It accepts the decimal +// formats 'd' and 'f', and handles both equivalently. +// Width, precision, flags and bases 2, 8, 16 are not supported. +func (x *Dec) Format(s fmt.State, ch rune) { + if ch != 'd' && ch != 'f' && ch != 'v' && ch != 's' { + fmt.Fprintf(s, "%%!%c(dec.Dec=%s)", ch, x.String()) + return + } + fmt.Fprintf(s, x.String()) +} + +func (z *Dec) scan(r io.RuneScanner) (*Dec, error) { + unscaled := make([]byte, 0, 256) // collects chars of unscaled as bytes + dp, dg := -1, -1 // indexes of decimal point, first digit +loop: + for { + ch, _, err := r.ReadRune() + if err == io.EOF { + break loop + } + if err != nil { + return nil, err + } + switch { + case ch == '+' || ch == '-': + if len(unscaled) > 0 || dp >= 0 { // must be first character + r.UnreadRune() + break loop + } + case ch == '.': + if dp >= 0 { + r.UnreadRune() + break loop + } + dp = len(unscaled) + continue // don't add to unscaled + case ch >= '0' && ch <= '9': + if dg == -1 { + dg = len(unscaled) + } + default: + r.UnreadRune() + break loop + } + unscaled = append(unscaled, byte(ch)) + } + if dg == -1 { + return nil, fmt.Errorf("no digits read") + } + if dp >= 0 { + z.SetScale(Scale(len(unscaled) - dp)) + } else { + z.SetScale(0) + } + _, ok := z.UnscaledBig().SetString(string(unscaled), 10) + if !ok { + return nil, fmt.Errorf("invalid decimal: %s", string(unscaled)) + } + return z, nil +} + +// SetString sets z to the value of s, interpreted as a decimal (base 10), +// and returns z and a boolean indicating success. The scale of z is the +// number of digits after the decimal point (including any trailing 0s), +// or 0 if there is no decimal point. If SetString fails, the value of z +// is undefined but the returned value is nil. +func (z *Dec) SetString(s string) (*Dec, bool) { + r := strings.NewReader(s) + _, err := z.scan(r) + if err != nil { + return nil, false + } + _, _, err = r.ReadRune() + if err != io.EOF { + return nil, false + } + // err == io.EOF => scan consumed all of s + return z, true +} + +// Scan is a support routine for fmt.Scanner; it sets z to the value of +// the scanned number. It accepts the decimal formats 'd' and 'f', and +// handles both equivalently. Bases 2, 8, 16 are not supported. +// The scale of z is the number of digits after the decimal point +// (including any trailing 0s), or 0 if there is no decimal point. +func (z *Dec) Scan(s fmt.ScanState, ch rune) error { + if ch != 'd' && ch != 'f' && ch != 's' && ch != 'v' { + return fmt.Errorf("Dec.Scan: invalid verb '%c'", ch) + } + s.SkipSpace() + _, err := z.scan(s) + return err +} + +// Gob encoding version +const decGobVersion byte = 1 + +func scaleBytes(s Scale) []byte { + buf := make([]byte, scaleSize) + i := scaleSize + for j := 0; j < scaleSize; j++ { + i-- + buf[i] = byte(s) + s >>= 8 + } + return buf +} + +func scale(b []byte) (s Scale) { + for j := 0; j < scaleSize; j++ { + s <<= 8 + s |= Scale(b[j]) + } + return +} + +// GobEncode implements the gob.GobEncoder interface. +func (x *Dec) GobEncode() ([]byte, error) { + buf, err := x.UnscaledBig().GobEncode() + if err != nil { + return nil, err + } + buf = append(append(buf, scaleBytes(x.Scale())...), decGobVersion) + return buf, nil +} + +// GobDecode implements the gob.GobDecoder interface. +func (z *Dec) GobDecode(buf []byte) error { + if len(buf) == 0 { + return fmt.Errorf("Dec.GobDecode: no data") + } + b := buf[len(buf)-1] + if b != decGobVersion { + return fmt.Errorf("Dec.GobDecode: encoding version %d not supported", b) + } + l := len(buf) - scaleSize - 1 + err := z.UnscaledBig().GobDecode(buf[:l]) + if err != nil { + return err + } + z.SetScale(scale(buf[l : l+scaleSize])) + return nil +} + +// MarshalText implements the encoding.TextMarshaler interface. +func (x *Dec) MarshalText() ([]byte, error) { + return []byte(x.String()), nil +} + +// UnmarshalText implements the encoding.TextUnmarshaler interface. +func (z *Dec) UnmarshalText(data []byte) error { + _, ok := z.SetString(string(data)) + if !ok { + return fmt.Errorf("invalid inf.Dec") + } + return nil +} diff --git a/ecs-agent/vendor/gopkg.in/inf.v0/rounder.go b/ecs-agent/vendor/gopkg.in/inf.v0/rounder.go new file mode 100644 index 0000000000..3a97ef529b --- /dev/null +++ b/ecs-agent/vendor/gopkg.in/inf.v0/rounder.go @@ -0,0 +1,145 @@ +package inf + +import ( + "math/big" +) + +// Rounder represents a method for rounding the (possibly infinite decimal) +// result of a division to a finite Dec. It is used by Dec.Round() and +// Dec.Quo(). +// +// See the Example for results of using each Rounder with some sample values. +// +type Rounder rounder + +// See http://speleotrove.com/decimal/damodel.html#refround for more detailed +// definitions of these rounding modes. +var ( + RoundDown Rounder // towards 0 + RoundUp Rounder // away from 0 + RoundFloor Rounder // towards -infinity + RoundCeil Rounder // towards +infinity + RoundHalfDown Rounder // to nearest; towards 0 if same distance + RoundHalfUp Rounder // to nearest; away from 0 if same distance + RoundHalfEven Rounder // to nearest; even last digit if same distance +) + +// RoundExact is to be used in the case when rounding is not necessary. +// When used with Quo or Round, it returns the result verbatim when it can be +// expressed exactly with the given precision, and it returns nil otherwise. +// QuoExact is a shorthand for using Quo with RoundExact. +var RoundExact Rounder + +type rounder interface { + + // When UseRemainder() returns true, the Round() method is passed the + // remainder of the division, expressed as the numerator and denominator of + // a rational. + UseRemainder() bool + + // Round sets the rounded value of a quotient to z, and returns z. + // quo is rounded down (truncated towards zero) to the scale obtained from + // the Scaler in Quo(). + // + // When the remainder is not used, remNum and remDen are nil. + // When used, the remainder is normalized between -1 and 1; that is: + // + // -|remDen| < remNum < |remDen| + // + // remDen has the same sign as y, and remNum is zero or has the same sign + // as x. + Round(z, quo *Dec, remNum, remDen *big.Int) *Dec +} + +type rndr struct { + useRem bool + round func(z, quo *Dec, remNum, remDen *big.Int) *Dec +} + +func (r rndr) UseRemainder() bool { + return r.useRem +} + +func (r rndr) Round(z, quo *Dec, remNum, remDen *big.Int) *Dec { + return r.round(z, quo, remNum, remDen) +} + +var intSign = []*big.Int{big.NewInt(-1), big.NewInt(0), big.NewInt(1)} + +func roundHalf(f func(c int, odd uint) (roundUp bool)) func(z, q *Dec, rA, rB *big.Int) *Dec { + return func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + brA, brB := rA.BitLen(), rB.BitLen() + if brA < brB-1 { + // brA < brB-1 => |rA| < |rB/2| + return z + } + roundUp := false + srA, srB := rA.Sign(), rB.Sign() + s := srA * srB + if brA == brB-1 { + rA2 := new(big.Int).Lsh(rA, 1) + if s < 0 { + rA2.Neg(rA2) + } + roundUp = f(rA2.Cmp(rB)*srB, z.UnscaledBig().Bit(0)) + } else { + // brA > brB-1 => |rA| > |rB/2| + roundUp = true + } + if roundUp { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[s+1]) + } + return z + } +} + +func init() { + RoundExact = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + if rA.Sign() != 0 { + return nil + } + return z.Set(q) + }} + RoundDown = rndr{false, + func(z, q *Dec, rA, rB *big.Int) *Dec { + return z.Set(q) + }} + RoundUp = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + if rA.Sign() != 0 { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[rA.Sign()*rB.Sign()+1]) + } + return z + }} + RoundFloor = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + if rA.Sign()*rB.Sign() < 0 { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[0]) + } + return z + }} + RoundCeil = rndr{true, + func(z, q *Dec, rA, rB *big.Int) *Dec { + z.Set(q) + if rA.Sign()*rB.Sign() > 0 { + z.UnscaledBig().Add(z.UnscaledBig(), intSign[2]) + } + return z + }} + RoundHalfDown = rndr{true, roundHalf( + func(c int, odd uint) bool { + return c > 0 + })} + RoundHalfUp = rndr{true, roundHalf( + func(c int, odd uint) bool { + return c >= 0 + })} + RoundHalfEven = rndr{true, roundHalf( + func(c int, odd uint) bool { + return c > 0 || c == 0 && odd == 1 + })} +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/LICENSE b/ecs-agent/vendor/k8s.io/apimachinery/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS new file mode 100644 index 0000000000..d1c9f53074 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/OWNERS @@ -0,0 +1,11 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - thockin + - lavalamp + - smarterclayton + - wojtek-t + - derekwaynecarr + - mikedanese + - saad-ali + - janetkuo diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/amount.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/amount.go new file mode 100644 index 0000000000..a8866a43e1 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/amount.go @@ -0,0 +1,299 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package resource + +import ( + "math/big" + "strconv" + + inf "gopkg.in/inf.v0" +) + +// Scale is used for getting and setting the base-10 scaled value. +// Base-2 scales are omitted for mathematical simplicity. +// See Quantity.ScaledValue for more details. +type Scale int32 + +// infScale adapts a Scale value to an inf.Scale value. +func (s Scale) infScale() inf.Scale { + return inf.Scale(-s) // inf.Scale is upside-down +} + +const ( + Nano Scale = -9 + Micro Scale = -6 + Milli Scale = -3 + Kilo Scale = 3 + Mega Scale = 6 + Giga Scale = 9 + Tera Scale = 12 + Peta Scale = 15 + Exa Scale = 18 +) + +var ( + Zero = int64Amount{} + + // Used by quantity strings - treat as read only + zeroBytes = []byte("0") +) + +// int64Amount represents a fixed precision numerator and arbitrary scale exponent. It is faster +// than operations on inf.Dec for values that can be represented as int64. +// +k8s:openapi-gen=true +type int64Amount struct { + value int64 + scale Scale +} + +// Sign returns 0 if the value is zero, -1 if it is less than 0, or 1 if it is greater than 0. +func (a int64Amount) Sign() int { + switch { + case a.value == 0: + return 0 + case a.value > 0: + return 1 + default: + return -1 + } +} + +// AsInt64 returns the current amount as an int64 at scale 0, or false if the value cannot be +// represented in an int64 OR would result in a loss of precision. This method is intended as +// an optimization to avoid calling AsDec. +func (a int64Amount) AsInt64() (int64, bool) { + if a.scale == 0 { + return a.value, true + } + if a.scale < 0 { + // TODO: attempt to reduce factors, although it is assumed that factors are reduced prior + // to the int64Amount being created. + return 0, false + } + return positiveScaleInt64(a.value, a.scale) +} + +// AsScaledInt64 returns an int64 representing the value of this amount at the specified scale, +// rounding up, or false if that would result in overflow. (1e20).AsScaledInt64(1) would result +// in overflow because 1e19 is not representable as an int64. Note that setting a scale larger +// than the current value may result in loss of precision - i.e. (1e-6).AsScaledInt64(0) would +// return 1, because 0.000001 is rounded up to 1. +func (a int64Amount) AsScaledInt64(scale Scale) (result int64, ok bool) { + if a.scale < scale { + result, _ = negativeScaleInt64(a.value, scale-a.scale) + return result, true + } + return positiveScaleInt64(a.value, a.scale-scale) +} + +// AsDec returns an inf.Dec representation of this value. +func (a int64Amount) AsDec() *inf.Dec { + var base inf.Dec + base.SetUnscaled(a.value) + base.SetScale(inf.Scale(-a.scale)) + return &base +} + +// Cmp returns 0 if a and b are equal, 1 if a is greater than b, or -1 if a is less than b. +func (a int64Amount) Cmp(b int64Amount) int { + switch { + case a.scale == b.scale: + // compare only the unscaled portion + case a.scale > b.scale: + result, remainder, exact := divideByScaleInt64(b.value, a.scale-b.scale) + if !exact { + return a.AsDec().Cmp(b.AsDec()) + } + if result == a.value { + switch { + case remainder == 0: + return 0 + case remainder > 0: + return -1 + default: + return 1 + } + } + b.value = result + default: + result, remainder, exact := divideByScaleInt64(a.value, b.scale-a.scale) + if !exact { + return a.AsDec().Cmp(b.AsDec()) + } + if result == b.value { + switch { + case remainder == 0: + return 0 + case remainder > 0: + return 1 + default: + return -1 + } + } + a.value = result + } + + switch { + case a.value == b.value: + return 0 + case a.value < b.value: + return -1 + default: + return 1 + } +} + +// Add adds two int64Amounts together, matching scales. It will return false and not mutate +// a if overflow or underflow would result. +func (a *int64Amount) Add(b int64Amount) bool { + switch { + case b.value == 0: + return true + case a.value == 0: + a.value = b.value + a.scale = b.scale + return true + case a.scale == b.scale: + c, ok := int64Add(a.value, b.value) + if !ok { + return false + } + a.value = c + case a.scale > b.scale: + c, ok := positiveScaleInt64(a.value, a.scale-b.scale) + if !ok { + return false + } + c, ok = int64Add(c, b.value) + if !ok { + return false + } + a.scale = b.scale + a.value = c + default: + c, ok := positiveScaleInt64(b.value, b.scale-a.scale) + if !ok { + return false + } + c, ok = int64Add(a.value, c) + if !ok { + return false + } + a.value = c + } + return true +} + +// Sub removes the value of b from the current amount, or returns false if underflow would result. +func (a *int64Amount) Sub(b int64Amount) bool { + return a.Add(int64Amount{value: -b.value, scale: b.scale}) +} + +// AsScale adjusts this amount to set a minimum scale, rounding up, and returns true iff no precision +// was lost. (1.1e5).AsScale(5) would return 1.1e5, but (1.1e5).AsScale(6) would return 1e6. +func (a int64Amount) AsScale(scale Scale) (int64Amount, bool) { + if a.scale >= scale { + return a, true + } + result, exact := negativeScaleInt64(a.value, scale-a.scale) + return int64Amount{value: result, scale: scale}, exact +} + +// AsCanonicalBytes accepts a buffer to write the base-10 string value of this field to, and returns +// either that buffer or a larger buffer and the current exponent of the value. The value is adjusted +// until the exponent is a multiple of 3 - i.e. 1.1e5 would return "110", 3. +func (a int64Amount) AsCanonicalBytes(out []byte) (result []byte, exponent int32) { + mantissa := a.value + exponent = int32(a.scale) + + amount, times := removeInt64Factors(mantissa, 10) + exponent += int32(times) + + // make sure exponent is a multiple of 3 + var ok bool + switch exponent % 3 { + case 1, -2: + amount, ok = int64MultiplyScale10(amount) + if !ok { + return infDecAmount{a.AsDec()}.AsCanonicalBytes(out) + } + exponent = exponent - 1 + case 2, -1: + amount, ok = int64MultiplyScale100(amount) + if !ok { + return infDecAmount{a.AsDec()}.AsCanonicalBytes(out) + } + exponent = exponent - 2 + } + return strconv.AppendInt(out, amount, 10), exponent +} + +// AsCanonicalBase1024Bytes accepts a buffer to write the base-1024 string value of this field to, and returns +// either that buffer or a larger buffer and the current exponent of the value. 2048 is 2 * 1024 ^ 1 and would +// return []byte("2048"), 1. +func (a int64Amount) AsCanonicalBase1024Bytes(out []byte) (result []byte, exponent int32) { + value, ok := a.AsScaledInt64(0) + if !ok { + return infDecAmount{a.AsDec()}.AsCanonicalBase1024Bytes(out) + } + amount, exponent := removeInt64Factors(value, 1024) + return strconv.AppendInt(out, amount, 10), exponent +} + +// infDecAmount implements common operations over an inf.Dec that are specific to the quantity +// representation. +type infDecAmount struct { + *inf.Dec +} + +// AsScale adjusts this amount to set a minimum scale, rounding up, and returns true iff no precision +// was lost. (1.1e5).AsScale(5) would return 1.1e5, but (1.1e5).AsScale(6) would return 1e6. +func (a infDecAmount) AsScale(scale Scale) (infDecAmount, bool) { + tmp := &inf.Dec{} + tmp.Round(a.Dec, scale.infScale(), inf.RoundUp) + return infDecAmount{tmp}, tmp.Cmp(a.Dec) == 0 +} + +// AsCanonicalBytes accepts a buffer to write the base-10 string value of this field to, and returns +// either that buffer or a larger buffer and the current exponent of the value. The value is adjusted +// until the exponent is a multiple of 3 - i.e. 1.1e5 would return "110", 3. +func (a infDecAmount) AsCanonicalBytes(out []byte) (result []byte, exponent int32) { + mantissa := a.Dec.UnscaledBig() + exponent = int32(-a.Dec.Scale()) + amount := big.NewInt(0).Set(mantissa) + // move all factors of 10 into the exponent for easy reasoning + amount, times := removeBigIntFactors(amount, bigTen) + exponent += times + + // make sure exponent is a multiple of 3 + for exponent%3 != 0 { + amount.Mul(amount, bigTen) + exponent-- + } + + return append(out, amount.String()...), exponent +} + +// AsCanonicalBase1024Bytes accepts a buffer to write the base-1024 string value of this field to, and returns +// either that buffer or a larger buffer and the current exponent of the value. 2048 is 2 * 1024 ^ 1 and would +// return []byte("2048"), 1. +func (a infDecAmount) AsCanonicalBase1024Bytes(out []byte) (result []byte, exponent int32) { + tmp := &inf.Dec{} + tmp.Round(a.Dec, 0, inf.RoundUp) + amount, exponent := removeBigIntFactors(tmp.UnscaledBig(), big1024) + return append(out, amount.String()...), exponent +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go new file mode 100644 index 0000000000..53a25d3449 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.pb.go @@ -0,0 +1,114 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto + +package resource + +import ( + fmt "fmt" + + math "math" + + proto "github.com/gogo/protobuf/proto" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *Quantity) Reset() { *m = Quantity{} } +func (*Quantity) ProtoMessage() {} +func (*Quantity) Descriptor() ([]byte, []int) { + return fileDescriptor_612bba87bd70906c, []int{0} +} +func (m *Quantity) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Quantity.Unmarshal(m, b) +} +func (m *Quantity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Quantity.Marshal(b, m, deterministic) +} +func (m *Quantity) XXX_Merge(src proto.Message) { + xxx_messageInfo_Quantity.Merge(m, src) +} +func (m *Quantity) XXX_Size() int { + return xxx_messageInfo_Quantity.Size(m) +} +func (m *Quantity) XXX_DiscardUnknown() { + xxx_messageInfo_Quantity.DiscardUnknown(m) +} + +var xxx_messageInfo_Quantity proto.InternalMessageInfo + +func (m *QuantityValue) Reset() { *m = QuantityValue{} } +func (*QuantityValue) ProtoMessage() {} +func (*QuantityValue) Descriptor() ([]byte, []int) { + return fileDescriptor_612bba87bd70906c, []int{1} +} +func (m *QuantityValue) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuantityValue.Unmarshal(m, b) +} +func (m *QuantityValue) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuantityValue.Marshal(b, m, deterministic) +} +func (m *QuantityValue) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuantityValue.Merge(m, src) +} +func (m *QuantityValue) XXX_Size() int { + return xxx_messageInfo_QuantityValue.Size(m) +} +func (m *QuantityValue) XXX_DiscardUnknown() { + xxx_messageInfo_QuantityValue.DiscardUnknown(m) +} + +var xxx_messageInfo_QuantityValue proto.InternalMessageInfo + +func init() { + proto.RegisterType((*Quantity)(nil), "k8s.io.apimachinery.pkg.api.resource.Quantity") + proto.RegisterType((*QuantityValue)(nil), "k8s.io.apimachinery.pkg.api.resource.QuantityValue") +} + +func init() { + proto.RegisterFile("k8s.io/kubernetes/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto", fileDescriptor_612bba87bd70906c) +} + +var fileDescriptor_612bba87bd70906c = []byte{ + // 254 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xf2, 0xcd, 0xb6, 0x28, 0xd6, + 0xcb, 0xcc, 0xd7, 0xcf, 0x2e, 0x4d, 0x4a, 0x2d, 0xca, 0x4b, 0x2d, 0x49, 0x2d, 0xd6, 0x2f, 0x4b, + 0xcd, 0x4b, 0xc9, 0x2f, 0xd2, 0x87, 0x4a, 0x24, 0x16, 0x64, 0xe6, 0x26, 0x26, 0x67, 0x64, 0xe6, + 0xa5, 0x16, 0x55, 0xea, 0x17, 0x64, 0xa7, 0x83, 0x04, 0xf4, 0x8b, 0x52, 0x8b, 0xf3, 0x4b, 0x8b, + 0x92, 0x53, 0xf5, 0xd3, 0x53, 0xf3, 0x52, 0x8b, 0x12, 0x4b, 0x52, 0x53, 0xf4, 0x0a, 0x8a, 0xf2, + 0x4b, 0xf2, 0x85, 0x54, 0x20, 0xba, 0xf4, 0x90, 0x75, 0xe9, 0x15, 0x64, 0xa7, 0x83, 0x04, 0xf4, + 0x60, 0xba, 0xa4, 0x74, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0xd3, + 0xf3, 0xd3, 0xf3, 0xf5, 0xc1, 0x9a, 0x93, 0x4a, 0xd3, 0xc0, 0x3c, 0x30, 0x07, 0xcc, 0x82, 0x18, + 0xaa, 0x64, 0xc1, 0xc5, 0x11, 0x58, 0x9a, 0x98, 0x57, 0x92, 0x59, 0x52, 0x29, 0x24, 0xc6, 0xc5, + 0x56, 0x5c, 0x52, 0x94, 0x99, 0x97, 0x2e, 0xc1, 0xa8, 0xc0, 0xa8, 0xc1, 0x19, 0x04, 0xe5, 0x59, + 0x89, 0xcc, 0x58, 0x20, 0xcf, 0xd0, 0xb1, 0x50, 0x9e, 0x61, 0xc2, 0x42, 0x79, 0x86, 0x05, 0x0b, + 0xe5, 0x19, 0x1a, 0xee, 0x28, 0x30, 0x28, 0xd9, 0x72, 0xf1, 0xc2, 0x74, 0x86, 0x25, 0xe6, 0x94, + 0xa6, 0x92, 0xa6, 0xdd, 0xc9, 0xeb, 0xc4, 0x43, 0x39, 0x86, 0x0b, 0x0f, 0xe5, 0x18, 0x6e, 0x3c, + 0x94, 0x63, 0x68, 0x78, 0x24, 0xc7, 0x78, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x37, + 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0x43, 0x94, 0x0a, 0x31, 0x21, + 0x05, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8e, 0x70, 0x98, 0xa3, 0x69, 0x01, 0x00, 0x00, +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto new file mode 100644 index 0000000000..ddd0db8fbd --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/generated.proto @@ -0,0 +1,111 @@ +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = "proto2"; + +package k8s.io.apimachinery.pkg.api.resource; + +// Package-wide variables from generator "generated". +option go_package = "k8s.io/apimachinery/pkg/api/resource"; + +// Quantity is a fixed-point representation of a number. +// It provides convenient marshaling/unmarshaling in JSON and YAML, +// in addition to String() and AsInt64() accessors. +// +// The serialization format is: +// +// ``` +// ::= +// +// (Note that may be empty, from the "" case in .) +// +// ::= 0 | 1 | ... | 9 +// ::= | +// ::= | . | . | . +// ::= "+" | "-" +// ::= | +// ::= | | +// ::= Ki | Mi | Gi | Ti | Pi | Ei +// +// (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) +// +// ::= m | "" | k | M | G | T | P | E +// +// (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) +// +// ::= "e" | "E" +// ``` +// +// No matter which of the three exponent forms is used, no quantity may represent +// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal +// places. Numbers larger or more precise will be capped or rounded up. +// (E.g.: 0.1m will rounded up to 1m.) +// This may be extended in the future if we require larger or smaller quantities. +// +// When a Quantity is parsed from a string, it will remember the type of suffix +// it had, and will use the same type again when it is serialized. +// +// Before serializing, Quantity will be put in "canonical form". +// This means that Exponent/suffix will be adjusted up or down (with a +// corresponding increase or decrease in Mantissa) such that: +// +// - No precision is lost +// - No fractional digits will be emitted +// - The exponent (or suffix) is as large as possible. +// +// The sign will be omitted unless the number is negative. +// +// Examples: +// +// - 1.5 will be serialized as "1500m" +// - 1.5Gi will be serialized as "1536Mi" +// +// Note that the quantity will NEVER be internally represented by a +// floating point number. That is the whole point of this exercise. +// +// Non-canonical values will still parse as long as they are well formed, +// but will be re-emitted in their canonical form. (So always use canonical +// form, or don't diff.) +// +// This format is intended to make it difficult to use these numbers without +// writing some sort of special handling code in the hopes that that will +// cause implementors to also use a fixed point implementation. +// +// +protobuf=true +// +protobuf.embed=string +// +protobuf.options.marshal=false +// +protobuf.options.(gogoproto.goproto_stringer)=false +// +k8s:deepcopy-gen=true +// +k8s:openapi-gen=true +message Quantity { + optional string string = 1; +} + +// QuantityValue makes it possible to use a Quantity as value for a command +// line parameter. +// +// +protobuf=true +// +protobuf.embed=string +// +protobuf.options.marshal=false +// +protobuf.options.(gogoproto.goproto_stringer)=false +// +k8s:deepcopy-gen=true +message QuantityValue { + optional string string = 1; +} + diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/math.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/math.go new file mode 100644 index 0000000000..8ffcb9f09a --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/math.go @@ -0,0 +1,310 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package resource + +import ( + "math/big" + + inf "gopkg.in/inf.v0" +) + +const ( + // maxInt64Factors is the highest value that will be checked when removing factors of 10 from an int64. + // It is also the maximum decimal digits that can be represented with an int64. + maxInt64Factors = 18 +) + +var ( + // Commonly needed big.Int values-- treat as read only! + bigTen = big.NewInt(10) + bigZero = big.NewInt(0) + bigOne = big.NewInt(1) + bigThousand = big.NewInt(1000) + big1024 = big.NewInt(1024) + + // Commonly needed inf.Dec values-- treat as read only! + decZero = inf.NewDec(0, 0) + decOne = inf.NewDec(1, 0) + + // Largest (in magnitude) number allowed. + maxAllowed = infDecAmount{inf.NewDec((1<<63)-1, 0)} // == max int64 + + // The maximum value we can represent milli-units for. + // Compare with the return value of Quantity.Value() to + // see if it's safe to use Quantity.MilliValue(). + MaxMilliValue = int64(((1 << 63) - 1) / 1000) +) + +const mostNegative = -(mostPositive + 1) +const mostPositive = 1<<63 - 1 + +// int64Add returns a+b, or false if that would overflow int64. +func int64Add(a, b int64) (int64, bool) { + c := a + b + switch { + case a > 0 && b > 0: + if c < 0 { + return 0, false + } + case a < 0 && b < 0: + if c > 0 { + return 0, false + } + if a == mostNegative && b == mostNegative { + return 0, false + } + } + return c, true +} + +// int64Multiply returns a*b, or false if that would overflow or underflow int64. +func int64Multiply(a, b int64) (int64, bool) { + if a == 0 || b == 0 || a == 1 || b == 1 { + return a * b, true + } + if a == mostNegative || b == mostNegative { + return 0, false + } + c := a * b + return c, c/b == a +} + +// int64MultiplyScale returns a*b, assuming b is greater than one, or false if that would overflow or underflow int64. +// Use when b is known to be greater than one. +func int64MultiplyScale(a int64, b int64) (int64, bool) { + if a == 0 || a == 1 { + return a * b, true + } + if a == mostNegative && b != 1 { + return 0, false + } + c := a * b + return c, c/b == a +} + +// int64MultiplyScale10 multiplies a by 10, or returns false if that would overflow. This method is faster than +// int64Multiply(a, 10) because the compiler can optimize constant factor multiplication. +func int64MultiplyScale10(a int64) (int64, bool) { + if a == 0 || a == 1 { + return a * 10, true + } + if a == mostNegative { + return 0, false + } + c := a * 10 + return c, c/10 == a +} + +// int64MultiplyScale100 multiplies a by 100, or returns false if that would overflow. This method is faster than +// int64Multiply(a, 100) because the compiler can optimize constant factor multiplication. +func int64MultiplyScale100(a int64) (int64, bool) { + if a == 0 || a == 1 { + return a * 100, true + } + if a == mostNegative { + return 0, false + } + c := a * 100 + return c, c/100 == a +} + +// int64MultiplyScale1000 multiplies a by 1000, or returns false if that would overflow. This method is faster than +// int64Multiply(a, 1000) because the compiler can optimize constant factor multiplication. +func int64MultiplyScale1000(a int64) (int64, bool) { + if a == 0 || a == 1 { + return a * 1000, true + } + if a == mostNegative { + return 0, false + } + c := a * 1000 + return c, c/1000 == a +} + +// positiveScaleInt64 multiplies base by 10^scale, returning false if the +// value overflows. Passing a negative scale is undefined. +func positiveScaleInt64(base int64, scale Scale) (int64, bool) { + switch scale { + case 0: + return base, true + case 1: + return int64MultiplyScale10(base) + case 2: + return int64MultiplyScale100(base) + case 3: + return int64MultiplyScale1000(base) + case 6: + return int64MultiplyScale(base, 1000000) + case 9: + return int64MultiplyScale(base, 1000000000) + default: + value := base + var ok bool + for i := Scale(0); i < scale; i++ { + if value, ok = int64MultiplyScale(value, 10); !ok { + return 0, false + } + } + return value, true + } +} + +// negativeScaleInt64 reduces base by the provided scale, rounding up, until the +// value is zero or the scale is reached. Passing a negative scale is undefined. +// The value returned, if not exact, is rounded away from zero. +func negativeScaleInt64(base int64, scale Scale) (result int64, exact bool) { + if scale == 0 { + return base, true + } + + value := base + var fraction bool + for i := Scale(0); i < scale; i++ { + if !fraction && value%10 != 0 { + fraction = true + } + value = value / 10 + if value == 0 { + if fraction { + if base > 0 { + return 1, false + } + return -1, false + } + return 0, true + } + } + if fraction { + if base > 0 { + value++ + } else { + value-- + } + } + return value, !fraction +} + +func pow10Int64(b int64) int64 { + switch b { + case 0: + return 1 + case 1: + return 10 + case 2: + return 100 + case 3: + return 1000 + case 4: + return 10000 + case 5: + return 100000 + case 6: + return 1000000 + case 7: + return 10000000 + case 8: + return 100000000 + case 9: + return 1000000000 + case 10: + return 10000000000 + case 11: + return 100000000000 + case 12: + return 1000000000000 + case 13: + return 10000000000000 + case 14: + return 100000000000000 + case 15: + return 1000000000000000 + case 16: + return 10000000000000000 + case 17: + return 100000000000000000 + case 18: + return 1000000000000000000 + default: + return 0 + } +} + +// negativeScaleInt64 returns the result of dividing base by scale * 10 and the remainder, or +// false if no such division is possible. Dividing by negative scales is undefined. +func divideByScaleInt64(base int64, scale Scale) (result, remainder int64, exact bool) { + if scale == 0 { + return base, 0, true + } + // the max scale representable in base 10 in an int64 is 18 decimal places + if scale >= 18 { + return 0, base, false + } + divisor := pow10Int64(int64(scale)) + return base / divisor, base % divisor, true +} + +// removeInt64Factors divides in a loop; the return values have the property that +// value == result * base ^ scale +func removeInt64Factors(value int64, base int64) (result int64, times int32) { + times = 0 + result = value + negative := result < 0 + if negative { + result = -result + } + switch base { + // allow the compiler to optimize the common cases + case 10: + for result >= 10 && result%10 == 0 { + times++ + result = result / 10 + } + // allow the compiler to optimize the common cases + case 1024: + for result >= 1024 && result%1024 == 0 { + times++ + result = result / 1024 + } + default: + for result >= base && result%base == 0 { + times++ + result = result / base + } + } + if negative { + result = -result + } + return result, times +} + +// removeBigIntFactors divides in a loop; the return values have the property that +// d == result * factor ^ times +// d may be modified in place. +// If d == 0, then the return values will be (0, 0) +func removeBigIntFactors(d, factor *big.Int) (result *big.Int, times int32) { + q := big.NewInt(0) + m := big.NewInt(0) + for d.Cmp(bigZero) != 0 { + q.DivMod(d, factor, m) + if m.Cmp(bigZero) != 0 { + break + } + times++ + d, q = q, d + } + return d, times +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go new file mode 100644 index 0000000000..b47d554b3c --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity.go @@ -0,0 +1,808 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package resource + +import ( + "bytes" + "errors" + "fmt" + "math" + "math/big" + "strconv" + "strings" + + inf "gopkg.in/inf.v0" +) + +// Quantity is a fixed-point representation of a number. +// It provides convenient marshaling/unmarshaling in JSON and YAML, +// in addition to String() and AsInt64() accessors. +// +// The serialization format is: +// +// ``` +// ::= +// +// (Note that may be empty, from the "" case in .) +// +// ::= 0 | 1 | ... | 9 +// ::= | +// ::= | . | . | . +// ::= "+" | "-" +// ::= | +// ::= | | +// ::= Ki | Mi | Gi | Ti | Pi | Ei +// +// (International System of units; See: http://physics.nist.gov/cuu/Units/binary.html) +// +// ::= m | "" | k | M | G | T | P | E +// +// (Note that 1024 = 1Ki but 1000 = 1k; I didn't choose the capitalization.) +// +// ::= "e" | "E" +// ``` +// +// No matter which of the three exponent forms is used, no quantity may represent +// a number greater than 2^63-1 in magnitude, nor may it have more than 3 decimal +// places. Numbers larger or more precise will be capped or rounded up. +// (E.g.: 0.1m will rounded up to 1m.) +// This may be extended in the future if we require larger or smaller quantities. +// +// When a Quantity is parsed from a string, it will remember the type of suffix +// it had, and will use the same type again when it is serialized. +// +// Before serializing, Quantity will be put in "canonical form". +// This means that Exponent/suffix will be adjusted up or down (with a +// corresponding increase or decrease in Mantissa) such that: +// +// - No precision is lost +// - No fractional digits will be emitted +// - The exponent (or suffix) is as large as possible. +// +// The sign will be omitted unless the number is negative. +// +// Examples: +// +// - 1.5 will be serialized as "1500m" +// - 1.5Gi will be serialized as "1536Mi" +// +// Note that the quantity will NEVER be internally represented by a +// floating point number. That is the whole point of this exercise. +// +// Non-canonical values will still parse as long as they are well formed, +// but will be re-emitted in their canonical form. (So always use canonical +// form, or don't diff.) +// +// This format is intended to make it difficult to use these numbers without +// writing some sort of special handling code in the hopes that that will +// cause implementors to also use a fixed point implementation. +// +// +protobuf=true +// +protobuf.embed=string +// +protobuf.options.marshal=false +// +protobuf.options.(gogoproto.goproto_stringer)=false +// +k8s:deepcopy-gen=true +// +k8s:openapi-gen=true +type Quantity struct { + // i is the quantity in int64 scaled form, if d.Dec == nil + i int64Amount + // d is the quantity in inf.Dec form if d.Dec != nil + d infDecAmount + // s is the generated value of this quantity to avoid recalculation + s string + + // Change Format at will. See the comment for Canonicalize for + // more details. + Format +} + +// CanonicalValue allows a quantity amount to be converted to a string. +type CanonicalValue interface { + // AsCanonicalBytes returns a byte array representing the string representation + // of the value mantissa and an int32 representing its exponent in base-10. Callers may + // pass a byte slice to the method to avoid allocations. + AsCanonicalBytes(out []byte) ([]byte, int32) + // AsCanonicalBase1024Bytes returns a byte array representing the string representation + // of the value mantissa and an int32 representing its exponent in base-1024. Callers + // may pass a byte slice to the method to avoid allocations. + AsCanonicalBase1024Bytes(out []byte) ([]byte, int32) +} + +// Format lists the three possible formattings of a quantity. +type Format string + +const ( + DecimalExponent = Format("DecimalExponent") // e.g., 12e6 + BinarySI = Format("BinarySI") // e.g., 12Mi (12 * 2^20) + DecimalSI = Format("DecimalSI") // e.g., 12M (12 * 10^6) +) + +// MustParse turns the given string into a quantity or panics; for tests +// or other cases where you know the string is valid. +func MustParse(str string) Quantity { + q, err := ParseQuantity(str) + if err != nil { + panic(fmt.Errorf("cannot parse '%v': %v", str, err)) + } + return q +} + +const ( + // splitREString is used to separate a number from its suffix; as such, + // this is overly permissive, but that's OK-- it will be checked later. + splitREString = "^([+-]?[0-9.]+)([eEinumkKMGTP]*[-+]?[0-9]*)$" +) + +var ( + // Errors that could happen while parsing a string. + ErrFormatWrong = errors.New("quantities must match the regular expression '" + splitREString + "'") + ErrNumeric = errors.New("unable to parse numeric part of quantity") + ErrSuffix = errors.New("unable to parse quantity's suffix") +) + +// parseQuantityString is a fast scanner for quantity values. +func parseQuantityString(str string) (positive bool, value, num, denom, suffix string, err error) { + positive = true + pos := 0 + end := len(str) + + // handle leading sign + if pos < end { + switch str[0] { + case '-': + positive = false + pos++ + case '+': + pos++ + } + } + + // strip leading zeros +Zeroes: + for i := pos; ; i++ { + if i >= end { + num = "0" + value = num + return + } + switch str[i] { + case '0': + pos++ + default: + break Zeroes + } + } + + // extract the numerator +Num: + for i := pos; ; i++ { + if i >= end { + num = str[pos:end] + value = str[0:end] + return + } + switch str[i] { + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + default: + num = str[pos:i] + pos = i + break Num + } + } + + // if we stripped all numerator positions, always return 0 + if len(num) == 0 { + num = "0" + } + + // handle a denominator + if pos < end && str[pos] == '.' { + pos++ + Denom: + for i := pos; ; i++ { + if i >= end { + denom = str[pos:end] + value = str[0:end] + return + } + switch str[i] { + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + default: + denom = str[pos:i] + pos = i + break Denom + } + } + // TODO: we currently allow 1.G, but we may not want to in the future. + // if len(denom) == 0 { + // err = ErrFormatWrong + // return + // } + } + value = str[0:pos] + + // grab the elements of the suffix + suffixStart := pos + for i := pos; ; i++ { + if i >= end { + suffix = str[suffixStart:end] + return + } + if !strings.ContainsAny(str[i:i+1], "eEinumkKMGTP") { + pos = i + break + } + } + if pos < end { + switch str[pos] { + case '-', '+': + pos++ + } + } +Suffix: + for i := pos; ; i++ { + if i >= end { + suffix = str[suffixStart:end] + return + } + switch str[i] { + case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': + default: + break Suffix + } + } + // we encountered a non decimal in the Suffix loop, but the last character + // was not a valid exponent + err = ErrFormatWrong + return +} + +// ParseQuantity turns str into a Quantity, or returns an error. +func ParseQuantity(str string) (Quantity, error) { + if len(str) == 0 { + return Quantity{}, ErrFormatWrong + } + if str == "0" { + return Quantity{Format: DecimalSI, s: str}, nil + } + + positive, value, num, denom, suf, err := parseQuantityString(str) + if err != nil { + return Quantity{}, err + } + + base, exponent, format, ok := quantitySuffixer.interpret(suffix(suf)) + if !ok { + return Quantity{}, ErrSuffix + } + + precision := int32(0) + scale := int32(0) + mantissa := int64(1) + switch format { + case DecimalExponent, DecimalSI: + scale = exponent + precision = maxInt64Factors - int32(len(num)+len(denom)) + case BinarySI: + scale = 0 + switch { + case exponent >= 0 && len(denom) == 0: + // only handle positive binary numbers with the fast path + mantissa = int64(int64(mantissa) << uint64(exponent)) + // 1Mi (2^20) has ~6 digits of decimal precision, so exponent*3/10 -1 is roughly the precision + precision = 15 - int32(len(num)) - int32(float32(exponent)*3/10) - 1 + default: + precision = -1 + } + } + + if precision >= 0 { + // if we have a denominator, shift the entire value to the left by the number of places in the + // denominator + scale -= int32(len(denom)) + if scale >= int32(Nano) { + shifted := num + denom + + var value int64 + value, err := strconv.ParseInt(shifted, 10, 64) + if err != nil { + return Quantity{}, ErrNumeric + } + if result, ok := int64Multiply(value, int64(mantissa)); ok { + if !positive { + result = -result + } + // if the number is in canonical form, reuse the string + switch format { + case BinarySI: + if exponent%10 == 0 && (value&0x07 != 0) { + return Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format, s: str}, nil + } + default: + if scale%3 == 0 && !strings.HasSuffix(shifted, "000") && shifted[0] != '0' { + return Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format, s: str}, nil + } + } + return Quantity{i: int64Amount{value: result, scale: Scale(scale)}, Format: format}, nil + } + } + } + + amount := new(inf.Dec) + if _, ok := amount.SetString(value); !ok { + return Quantity{}, ErrNumeric + } + + // So that no one but us has to think about suffixes, remove it. + if base == 10 { + amount.SetScale(amount.Scale() + Scale(exponent).infScale()) + } else if base == 2 { + // numericSuffix = 2 ** exponent + numericSuffix := big.NewInt(1).Lsh(bigOne, uint(exponent)) + ub := amount.UnscaledBig() + amount.SetUnscaledBig(ub.Mul(ub, numericSuffix)) + } + + // Cap at min/max bounds. + sign := amount.Sign() + if sign == -1 { + amount.Neg(amount) + } + + // This rounds non-zero values up to the minimum representable value, under the theory that + // if you want some resources, you should get some resources, even if you asked for way too small + // of an amount. Arguably, this should be inf.RoundHalfUp (normal rounding), but that would have + // the side effect of rounding values < .5n to zero. + if v, ok := amount.Unscaled(); v != int64(0) || !ok { + amount.Round(amount, Nano.infScale(), inf.RoundUp) + } + + // The max is just a simple cap. + // TODO: this prevents accumulating quantities greater than int64, for instance quota across a cluster + if format == BinarySI && amount.Cmp(maxAllowed.Dec) > 0 { + amount.Set(maxAllowed.Dec) + } + + if format == BinarySI && amount.Cmp(decOne) < 0 && amount.Cmp(decZero) > 0 { + // This avoids rounding and hopefully confusion, too. + format = DecimalSI + } + if sign == -1 { + amount.Neg(amount) + } + + return Quantity{d: infDecAmount{amount}, Format: format}, nil +} + +// DeepCopy returns a deep-copy of the Quantity value. Note that the method +// receiver is a value, so we can mutate it in-place and return it. +func (q Quantity) DeepCopy() Quantity { + if q.d.Dec != nil { + tmp := &inf.Dec{} + q.d.Dec = tmp.Set(q.d.Dec) + } + return q +} + +// OpenAPISchemaType is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +// +// See: https://github.com/kubernetes/kube-openapi/tree/master/pkg/generators +func (_ Quantity) OpenAPISchemaType() []string { return []string{"string"} } + +// OpenAPISchemaFormat is used by the kube-openapi generator when constructing +// the OpenAPI spec of this type. +func (_ Quantity) OpenAPISchemaFormat() string { return "" } + +// OpenAPIV3OneOfTypes is used by the kube-openapi generator when constructing +// the OpenAPI v3 spec of this type. +func (Quantity) OpenAPIV3OneOfTypes() []string { return []string{"string", "number"} } + +// CanonicalizeBytes returns the canonical form of q and its suffix (see comment on Quantity). +// +// Note about BinarySI: +// - If q.Format is set to BinarySI and q.Amount represents a non-zero value between +// -1 and +1, it will be emitted as if q.Format were DecimalSI. +// - Otherwise, if q.Format is set to BinarySI, fractional parts of q.Amount will be +// rounded up. (1.1i becomes 2i.) +func (q *Quantity) CanonicalizeBytes(out []byte) (result, suffix []byte) { + if q.IsZero() { + return zeroBytes, nil + } + + var rounded CanonicalValue + format := q.Format + switch format { + case DecimalExponent, DecimalSI: + case BinarySI: + if q.CmpInt64(-1024) > 0 && q.CmpInt64(1024) < 0 { + // This avoids rounding and hopefully confusion, too. + format = DecimalSI + } else { + var exact bool + if rounded, exact = q.AsScale(0); !exact { + // Don't lose precision-- show as DecimalSI + format = DecimalSI + } + } + default: + format = DecimalExponent + } + + // TODO: If BinarySI formatting is requested but would cause rounding, upgrade to + // one of the other formats. + switch format { + case DecimalExponent, DecimalSI: + number, exponent := q.AsCanonicalBytes(out) + suffix, _ := quantitySuffixer.constructBytes(10, exponent, format) + return number, suffix + default: + // format must be BinarySI + number, exponent := rounded.AsCanonicalBase1024Bytes(out) + suffix, _ := quantitySuffixer.constructBytes(2, exponent*10, format) + return number, suffix + } +} + +// AsApproximateFloat64 returns a float64 representation of the quantity which may +// lose precision. If the value of the quantity is outside the range of a float64 +// +Inf/-Inf will be returned. +func (q *Quantity) AsApproximateFloat64() float64 { + var base float64 + var exponent int + if q.d.Dec != nil { + base, _ = big.NewFloat(0).SetInt(q.d.Dec.UnscaledBig()).Float64() + exponent = int(-q.d.Dec.Scale()) + } else { + base = float64(q.i.value) + exponent = int(q.i.scale) + } + if exponent == 0 { + return base + } + + return base * math.Pow10(exponent) +} + +// AsInt64 returns a representation of the current value as an int64 if a fast conversion +// is possible. If false is returned, callers must use the inf.Dec form of this quantity. +func (q *Quantity) AsInt64() (int64, bool) { + if q.d.Dec != nil { + return 0, false + } + return q.i.AsInt64() +} + +// ToDec promotes the quantity in place to use an inf.Dec representation and returns itself. +func (q *Quantity) ToDec() *Quantity { + if q.d.Dec == nil { + q.d.Dec = q.i.AsDec() + q.i = int64Amount{} + } + return q +} + +// AsDec returns the quantity as represented by a scaled inf.Dec. +func (q *Quantity) AsDec() *inf.Dec { + if q.d.Dec != nil { + return q.d.Dec + } + q.d.Dec = q.i.AsDec() + q.i = int64Amount{} + return q.d.Dec +} + +// AsCanonicalBytes returns the canonical byte representation of this quantity as a mantissa +// and base 10 exponent. The out byte slice may be passed to the method to avoid an extra +// allocation. +func (q *Quantity) AsCanonicalBytes(out []byte) (result []byte, exponent int32) { + if q.d.Dec != nil { + return q.d.AsCanonicalBytes(out) + } + return q.i.AsCanonicalBytes(out) +} + +// IsZero returns true if the quantity is equal to zero. +func (q *Quantity) IsZero() bool { + if q.d.Dec != nil { + return q.d.Dec.Sign() == 0 + } + return q.i.value == 0 +} + +// Sign returns 0 if the quantity is zero, -1 if the quantity is less than zero, or 1 if the +// quantity is greater than zero. +func (q *Quantity) Sign() int { + if q.d.Dec != nil { + return q.d.Dec.Sign() + } + return q.i.Sign() +} + +// AsScale returns the current value, rounded up to the provided scale, and returns +// false if the scale resulted in a loss of precision. +func (q *Quantity) AsScale(scale Scale) (CanonicalValue, bool) { + if q.d.Dec != nil { + return q.d.AsScale(scale) + } + return q.i.AsScale(scale) +} + +// RoundUp updates the quantity to the provided scale, ensuring that the value is at +// least 1. False is returned if the rounding operation resulted in a loss of precision. +// Negative numbers are rounded away from zero (-9 scale 1 rounds to -10). +func (q *Quantity) RoundUp(scale Scale) bool { + if q.d.Dec != nil { + q.s = "" + d, exact := q.d.AsScale(scale) + q.d = d + return exact + } + // avoid clearing the string value if we have already calculated it + if q.i.scale >= scale { + return true + } + q.s = "" + i, exact := q.i.AsScale(scale) + q.i = i + return exact +} + +// Add adds the provide y quantity to the current value. If the current value is zero, +// the format of the quantity will be updated to the format of y. +func (q *Quantity) Add(y Quantity) { + q.s = "" + if q.d.Dec == nil && y.d.Dec == nil { + if q.i.value == 0 { + q.Format = y.Format + } + if q.i.Add(y.i) { + return + } + } else if q.IsZero() { + q.Format = y.Format + } + q.ToDec().d.Dec.Add(q.d.Dec, y.AsDec()) +} + +// Sub subtracts the provided quantity from the current value in place. If the current +// value is zero, the format of the quantity will be updated to the format of y. +func (q *Quantity) Sub(y Quantity) { + q.s = "" + if q.IsZero() { + q.Format = y.Format + } + if q.d.Dec == nil && y.d.Dec == nil && q.i.Sub(y.i) { + return + } + q.ToDec().d.Dec.Sub(q.d.Dec, y.AsDec()) +} + +// Cmp returns 0 if the quantity is equal to y, -1 if the quantity is less than y, or 1 if the +// quantity is greater than y. +func (q *Quantity) Cmp(y Quantity) int { + if q.d.Dec == nil && y.d.Dec == nil { + return q.i.Cmp(y.i) + } + return q.AsDec().Cmp(y.AsDec()) +} + +// CmpInt64 returns 0 if the quantity is equal to y, -1 if the quantity is less than y, or 1 if the +// quantity is greater than y. +func (q *Quantity) CmpInt64(y int64) int { + if q.d.Dec != nil { + return q.d.Dec.Cmp(inf.NewDec(y, inf.Scale(0))) + } + return q.i.Cmp(int64Amount{value: y}) +} + +// Neg sets quantity to be the negative value of itself. +func (q *Quantity) Neg() { + q.s = "" + if q.d.Dec == nil { + q.i.value = -q.i.value + return + } + q.d.Dec.Neg(q.d.Dec) +} + +// Equal checks equality of two Quantities. This is useful for testing with +// cmp.Equal. +func (q Quantity) Equal(v Quantity) bool { + return q.Cmp(v) == 0 +} + +// int64QuantityExpectedBytes is the expected width in bytes of the canonical string representation +// of most Quantity values. +const int64QuantityExpectedBytes = 18 + +// String formats the Quantity as a string, caching the result if not calculated. +// String is an expensive operation and caching this result significantly reduces the cost of +// normal parse / marshal operations on Quantity. +func (q *Quantity) String() string { + if q == nil { + return "" + } + if len(q.s) == 0 { + result := make([]byte, 0, int64QuantityExpectedBytes) + number, suffix := q.CanonicalizeBytes(result) + number = append(number, suffix...) + q.s = string(number) + } + return q.s +} + +// MarshalJSON implements the json.Marshaller interface. +func (q Quantity) MarshalJSON() ([]byte, error) { + if len(q.s) > 0 { + out := make([]byte, len(q.s)+2) + out[0], out[len(out)-1] = '"', '"' + copy(out[1:], q.s) + return out, nil + } + result := make([]byte, int64QuantityExpectedBytes) + result[0] = '"' + number, suffix := q.CanonicalizeBytes(result[1:1]) + // if the same slice was returned to us that we passed in, avoid another allocation by copying number into + // the source slice and returning that + if len(number) > 0 && &number[0] == &result[1] && (len(number)+len(suffix)+2) <= int64QuantityExpectedBytes { + number = append(number, suffix...) + number = append(number, '"') + return result[:1+len(number)], nil + } + // if CanonicalizeBytes needed more space than our slice provided, we may need to allocate again so use + // append + result = result[:1] + result = append(result, number...) + result = append(result, suffix...) + result = append(result, '"') + return result, nil +} + +// ToUnstructured implements the value.UnstructuredConverter interface. +func (q Quantity) ToUnstructured() interface{} { + return q.String() +} + +// UnmarshalJSON implements the json.Unmarshaller interface. +// TODO: Remove support for leading/trailing whitespace +func (q *Quantity) UnmarshalJSON(value []byte) error { + l := len(value) + if l == 4 && bytes.Equal(value, []byte("null")) { + q.d.Dec = nil + q.i = int64Amount{} + return nil + } + if l >= 2 && value[0] == '"' && value[l-1] == '"' { + value = value[1 : l-1] + } + + parsed, err := ParseQuantity(strings.TrimSpace(string(value))) + if err != nil { + return err + } + + // This copy is safe because parsed will not be referred to again. + *q = parsed + return nil +} + +// NewDecimalQuantity returns a new Quantity representing the given +// value in the given format. +func NewDecimalQuantity(b inf.Dec, format Format) *Quantity { + return &Quantity{ + d: infDecAmount{&b}, + Format: format, + } +} + +// NewQuantity returns a new Quantity representing the given +// value in the given format. +func NewQuantity(value int64, format Format) *Quantity { + return &Quantity{ + i: int64Amount{value: value}, + Format: format, + } +} + +// NewMilliQuantity returns a new Quantity representing the given +// value * 1/1000 in the given format. Note that BinarySI formatting +// will round fractional values, and will be changed to DecimalSI for +// values x where (-1 < x < 1) && (x != 0). +func NewMilliQuantity(value int64, format Format) *Quantity { + return &Quantity{ + i: int64Amount{value: value, scale: -3}, + Format: format, + } +} + +// NewScaledQuantity returns a new Quantity representing the given +// value * 10^scale in DecimalSI format. +func NewScaledQuantity(value int64, scale Scale) *Quantity { + return &Quantity{ + i: int64Amount{value: value, scale: scale}, + Format: DecimalSI, + } +} + +// Value returns the unscaled value of q rounded up to the nearest integer away from 0. +func (q *Quantity) Value() int64 { + return q.ScaledValue(0) +} + +// MilliValue returns the value of ceil(q * 1000); this could overflow an int64; +// if that's a concern, call Value() first to verify the number is small enough. +func (q *Quantity) MilliValue() int64 { + return q.ScaledValue(Milli) +} + +// ScaledValue returns the value of ceil(q / 10^scale). +// For example, NewQuantity(1, DecimalSI).ScaledValue(Milli) returns 1000. +// This could overflow an int64. +// To detect overflow, call Value() first and verify the expected magnitude. +func (q *Quantity) ScaledValue(scale Scale) int64 { + if q.d.Dec == nil { + i, _ := q.i.AsScaledInt64(scale) + return i + } + dec := q.d.Dec + return scaledValue(dec.UnscaledBig(), int(dec.Scale()), int(scale.infScale())) +} + +// Set sets q's value to be value. +func (q *Quantity) Set(value int64) { + q.SetScaled(value, 0) +} + +// SetMilli sets q's value to be value * 1/1000. +func (q *Quantity) SetMilli(value int64) { + q.SetScaled(value, Milli) +} + +// SetScaled sets q's value to be value * 10^scale +func (q *Quantity) SetScaled(value int64, scale Scale) { + q.s = "" + q.d.Dec = nil + q.i = int64Amount{value: value, scale: scale} +} + +// QuantityValue makes it possible to use a Quantity as value for a command +// line parameter. +// +// +protobuf=true +// +protobuf.embed=string +// +protobuf.options.marshal=false +// +protobuf.options.(gogoproto.goproto_stringer)=false +// +k8s:deepcopy-gen=true +type QuantityValue struct { + Quantity +} + +// Set implements pflag.Value.Set and Go flag.Value.Set. +func (q *QuantityValue) Set(s string) error { + quantity, err := ParseQuantity(s) + if err != nil { + return err + } + q.Quantity = quantity + return nil +} + +// Type implements pflag.Value.Type. +func (q QuantityValue) Type() string { + return "quantity" +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go new file mode 100644 index 0000000000..3e0cdb10d4 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/quantity_proto.go @@ -0,0 +1,288 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package resource + +import ( + "fmt" + "io" + "math/bits" + + "github.com/gogo/protobuf/proto" +) + +var _ proto.Sizer = &Quantity{} + +func (m *Quantity) Marshal() (data []byte, err error) { + size := m.Size() + data = make([]byte, size) + n, err := m.MarshalToSizedBuffer(data[:size]) + if err != nil { + return nil, err + } + return data[:n], nil +} + +// MarshalTo is a customized version of the generated Protobuf unmarshaler for a struct +// with a single string field. +func (m *Quantity) MarshalTo(data []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(data[:size]) +} + +// MarshalToSizedBuffer is a customized version of the generated +// Protobuf unmarshaler for a struct with a single string field. +func (m *Quantity) MarshalToSizedBuffer(data []byte) (int, error) { + i := len(data) + _ = i + var l int + _ = l + + // BEGIN CUSTOM MARSHAL + out := m.String() + i -= len(out) + copy(data[i:], out) + i = encodeVarintGenerated(data, i, uint64(len(out))) + // END CUSTOM MARSHAL + i-- + data[i] = 0xa + + return len(data) - i, nil +} + +func encodeVarintGenerated(data []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + data[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + data[offset] = uint8(v) + return base +} + +func (m *Quantity) Size() (n int) { + var l int + _ = l + + // BEGIN CUSTOM SIZE + l = len(m.String()) + // END CUSTOM SIZE + + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func sovGenerated(x uint64) (n int) { + return (bits.Len64(x|1) + 6) / 7 +} + +// Unmarshal is a customized version of the generated Protobuf unmarshaler for a struct +// with a single string field. +func (m *Quantity) Unmarshal(data []byte) error { + l := len(data) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := data[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Quantity: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Quantity: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := data[iNdEx] + iNdEx++ + stringLen |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(data[iNdEx:postIndex]) + + // BEGIN CUSTOM DECODE + p, err := ParseQuantity(s) + if err != nil { + return err + } + *m = p + // END CUSTOM DECODE + + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(data[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} + +func skipGenerated(data []byte) (n int, err error) { + l := len(data) + iNdEx := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if data[iNdEx-1] < 0x80 { + break + } + } + return iNdEx, nil + case 1: + iNdEx += 8 + return iNdEx, nil + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + iNdEx += length + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + return iNdEx, nil + case 3: + for { + var innerWire uint64 + var start int = iNdEx + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := data[iNdEx] + iNdEx++ + innerWire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + innerWireType := int(innerWire & 0x7) + if innerWireType == 4 { + break + } + next, err := skipGenerated(data[start:]) + if err != nil { + return 0, err + } + iNdEx = start + next + } + return iNdEx, nil + case 4: + return iNdEx, nil + case 5: + iNdEx += 4 + return iNdEx, nil + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + } + panic("unreachable") +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") +) diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/scale_int.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/scale_int.go new file mode 100644 index 0000000000..55e177b0e9 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/scale_int.go @@ -0,0 +1,95 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package resource + +import ( + "math" + "math/big" + "sync" +) + +var ( + // A sync pool to reduce allocation. + intPool sync.Pool + maxInt64 = big.NewInt(math.MaxInt64) +) + +func init() { + intPool.New = func() interface{} { + return &big.Int{} + } +} + +// scaledValue scales given unscaled value from scale to new Scale and returns +// an int64. It ALWAYS rounds up the result when scale down. The final result might +// overflow. +// +// scale, newScale represents the scale of the unscaled decimal. +// The mathematical value of the decimal is unscaled * 10**(-scale). +func scaledValue(unscaled *big.Int, scale, newScale int) int64 { + dif := scale - newScale + if dif == 0 { + return unscaled.Int64() + } + + // Handle scale up + // This is an easy case, we do not need to care about rounding and overflow. + // If any intermediate operation causes overflow, the result will overflow. + if dif < 0 { + return unscaled.Int64() * int64(math.Pow10(-dif)) + } + + // Handle scale down + // We have to be careful about the intermediate operations. + + // fast path when unscaled < max.Int64 and exp(10,dif) < max.Int64 + const log10MaxInt64 = 19 + if unscaled.Cmp(maxInt64) < 0 && dif < log10MaxInt64 { + divide := int64(math.Pow10(dif)) + result := unscaled.Int64() / divide + mod := unscaled.Int64() % divide + if mod != 0 { + return result + 1 + } + return result + } + + // We should only convert back to int64 when getting the result. + divisor := intPool.Get().(*big.Int) + exp := intPool.Get().(*big.Int) + result := intPool.Get().(*big.Int) + defer func() { + intPool.Put(divisor) + intPool.Put(exp) + intPool.Put(result) + }() + + // divisor = 10^(dif) + // TODO: create loop up table if exp costs too much. + divisor.Exp(bigTen, exp.SetInt64(int64(dif)), nil) + // reuse exp + remainder := exp + + // result = unscaled / divisor + // remainder = unscaled % divisor + result.DivMod(unscaled, divisor, remainder) + if remainder.Sign() != 0 { + return result.Int64() + 1 + } + + return result.Int64() +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/suffix.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/suffix.go new file mode 100644 index 0000000000..6ec527f9c0 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/suffix.go @@ -0,0 +1,198 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package resource + +import ( + "strconv" +) + +type suffix string + +// suffixer can interpret and construct suffixes. +type suffixer interface { + interpret(suffix) (base, exponent int32, fmt Format, ok bool) + construct(base, exponent int32, fmt Format) (s suffix, ok bool) + constructBytes(base, exponent int32, fmt Format) (s []byte, ok bool) +} + +// quantitySuffixer handles suffixes for all three formats that quantity +// can handle. +var quantitySuffixer = newSuffixer() + +type bePair struct { + base, exponent int32 +} + +type listSuffixer struct { + suffixToBE map[suffix]bePair + beToSuffix map[bePair]suffix + beToSuffixBytes map[bePair][]byte +} + +func (ls *listSuffixer) addSuffix(s suffix, pair bePair) { + if ls.suffixToBE == nil { + ls.suffixToBE = map[suffix]bePair{} + } + if ls.beToSuffix == nil { + ls.beToSuffix = map[bePair]suffix{} + } + if ls.beToSuffixBytes == nil { + ls.beToSuffixBytes = map[bePair][]byte{} + } + ls.suffixToBE[s] = pair + ls.beToSuffix[pair] = s + ls.beToSuffixBytes[pair] = []byte(s) +} + +func (ls *listSuffixer) lookup(s suffix) (base, exponent int32, ok bool) { + pair, ok := ls.suffixToBE[s] + if !ok { + return 0, 0, false + } + return pair.base, pair.exponent, true +} + +func (ls *listSuffixer) construct(base, exponent int32) (s suffix, ok bool) { + s, ok = ls.beToSuffix[bePair{base, exponent}] + return +} + +func (ls *listSuffixer) constructBytes(base, exponent int32) (s []byte, ok bool) { + s, ok = ls.beToSuffixBytes[bePair{base, exponent}] + return +} + +type suffixHandler struct { + decSuffixes listSuffixer + binSuffixes listSuffixer +} + +type fastLookup struct { + *suffixHandler +} + +func (l fastLookup) interpret(s suffix) (base, exponent int32, format Format, ok bool) { + switch s { + case "": + return 10, 0, DecimalSI, true + case "n": + return 10, -9, DecimalSI, true + case "u": + return 10, -6, DecimalSI, true + case "m": + return 10, -3, DecimalSI, true + case "k": + return 10, 3, DecimalSI, true + case "M": + return 10, 6, DecimalSI, true + case "G": + return 10, 9, DecimalSI, true + } + return l.suffixHandler.interpret(s) +} + +func newSuffixer() suffixer { + sh := &suffixHandler{} + + // IMPORTANT: if you change this section you must change fastLookup + + sh.binSuffixes.addSuffix("Ki", bePair{2, 10}) + sh.binSuffixes.addSuffix("Mi", bePair{2, 20}) + sh.binSuffixes.addSuffix("Gi", bePair{2, 30}) + sh.binSuffixes.addSuffix("Ti", bePair{2, 40}) + sh.binSuffixes.addSuffix("Pi", bePair{2, 50}) + sh.binSuffixes.addSuffix("Ei", bePair{2, 60}) + // Don't emit an error when trying to produce + // a suffix for 2^0. + sh.decSuffixes.addSuffix("", bePair{2, 0}) + + sh.decSuffixes.addSuffix("n", bePair{10, -9}) + sh.decSuffixes.addSuffix("u", bePair{10, -6}) + sh.decSuffixes.addSuffix("m", bePair{10, -3}) + sh.decSuffixes.addSuffix("", bePair{10, 0}) + sh.decSuffixes.addSuffix("k", bePair{10, 3}) + sh.decSuffixes.addSuffix("M", bePair{10, 6}) + sh.decSuffixes.addSuffix("G", bePair{10, 9}) + sh.decSuffixes.addSuffix("T", bePair{10, 12}) + sh.decSuffixes.addSuffix("P", bePair{10, 15}) + sh.decSuffixes.addSuffix("E", bePair{10, 18}) + + return fastLookup{sh} +} + +func (sh *suffixHandler) construct(base, exponent int32, fmt Format) (s suffix, ok bool) { + switch fmt { + case DecimalSI: + return sh.decSuffixes.construct(base, exponent) + case BinarySI: + return sh.binSuffixes.construct(base, exponent) + case DecimalExponent: + if base != 10 { + return "", false + } + if exponent == 0 { + return "", true + } + return suffix("e" + strconv.FormatInt(int64(exponent), 10)), true + } + return "", false +} + +func (sh *suffixHandler) constructBytes(base, exponent int32, format Format) (s []byte, ok bool) { + switch format { + case DecimalSI: + return sh.decSuffixes.constructBytes(base, exponent) + case BinarySI: + return sh.binSuffixes.constructBytes(base, exponent) + case DecimalExponent: + if base != 10 { + return nil, false + } + if exponent == 0 { + return nil, true + } + result := make([]byte, 8) + result[0] = 'e' + number := strconv.AppendInt(result[1:1], int64(exponent), 10) + if &result[1] == &number[0] { + return result[:1+len(number)], true + } + result = append(result[:1], number...) + return result, true + } + return nil, false +} + +func (sh *suffixHandler) interpret(suffix suffix) (base, exponent int32, fmt Format, ok bool) { + // Try lookup tables first + if b, e, ok := sh.decSuffixes.lookup(suffix); ok { + return b, e, DecimalSI, true + } + if b, e, ok := sh.binSuffixes.lookup(suffix); ok { + return b, e, BinarySI, true + } + + if len(suffix) > 1 && (suffix[0] == 'E' || suffix[0] == 'e') { + parsed, err := strconv.ParseInt(string(suffix[1:]), 10, 64) + if err != nil { + return 0, 0, DecimalExponent, false + } + return 10, int32(parsed), DecimalExponent, true + } + + return 0, 0, DecimalExponent, false +} diff --git a/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go new file mode 100644 index 0000000000..abb00f38e2 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/apimachinery/pkg/api/resource/zz_generated.deepcopy.go @@ -0,0 +1,45 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* +Copyright The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by deepcopy-gen. DO NOT EDIT. + +package resource + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Quantity) DeepCopyInto(out *Quantity) { + *out = in.DeepCopy() + return +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *QuantityValue) DeepCopyInto(out *QuantityValue) { + *out = *in + out.Quantity = in.Quantity.DeepCopy() + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new QuantityValue. +func (in *QuantityValue) DeepCopy() *QuantityValue { + if in == nil { + return nil + } + out := new(QuantityValue) + in.DeepCopyInto(out) + return out +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/.gitignore b/ecs-agent/vendor/k8s.io/klog/v2/.gitignore new file mode 100644 index 0000000000..0aa2002392 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/.gitignore @@ -0,0 +1,17 @@ +# OSX leaves these everywhere on SMB shares +._* + +# OSX trash +.DS_Store + +# Eclipse files +.classpath +.project +.settings/** + +# Files generated by JetBrains IDEs, e.g. IntelliJ IDEA +.idea/ +*.iml + +# Vscode files +.vscode diff --git a/ecs-agent/vendor/k8s.io/klog/v2/CONTRIBUTING.md b/ecs-agent/vendor/k8s.io/klog/v2/CONTRIBUTING.md new file mode 100644 index 0000000000..2641b1f41b --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/CONTRIBUTING.md @@ -0,0 +1,22 @@ +# Contributing Guidelines + +Welcome to Kubernetes. We are excited about the prospect of you joining our [community](https://github.com/kubernetes/community)! The Kubernetes community abides by the CNCF [code of conduct](code-of-conduct.md). Here is an excerpt: + +_As contributors and maintainers of this project, and in the interest of fostering an open and welcoming community, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities._ + +## Getting Started + +We have full documentation on how to get started contributing here: + +- [Contributor License Agreement](https://git.k8s.io/community/CLA.md) Kubernetes projects require that you sign a Contributor License Agreement (CLA) before we can accept your pull requests +- [Kubernetes Contributor Guide](http://git.k8s.io/community/contributors/guide) - Main contributor documentation, or you can just jump directly to the [contributing section](http://git.k8s.io/community/contributors/guide#contributing) +- [Contributor Cheat Sheet](https://git.k8s.io/community/contributors/guide/contributor-cheatsheet) - Common resources for existing developers + +## Mentorship + +- [Mentoring Initiatives](https://git.k8s.io/community/mentoring) - We have a diverse set of mentorship programs available that are always looking for volunteers! + +## Contact Information + +- [Slack](https://kubernetes.slack.com/messages/sig-architecture) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture) diff --git a/ecs-agent/vendor/k8s.io/klog/v2/LICENSE b/ecs-agent/vendor/k8s.io/klog/v2/LICENSE new file mode 100644 index 0000000000..37ec93a14f --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/LICENSE @@ -0,0 +1,191 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +2. Grant of Copyright License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +3. Grant of Patent License. + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of +this License; and +You must cause any modified files to carry prominent notices stating that You +changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, +all copyright, patent, trademark, and attribution notices from the Source form +of the Work, excluding those notices that do not pertain to any part of the +Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any +Derivative Works that You distribute must include a readable copy of the +attribution notices contained within such NOTICE file, excluding those notices +that do not pertain to any part of the Derivative Works, in at least one of the +following places: within a NOTICE text file distributed as part of the +Derivative Works; within the Source form or documentation, if provided along +with the Derivative Works; or, within a display generated by the Derivative +Works, if and wherever such third-party notices normally appear. The contents of +the NOTICE file are for informational purposes only and do not modify the +License. You may add Your own attribution notices within Derivative Works that +You distribute, alongside or as an addendum to the NOTICE text from the Work, +provided that such additional attribution notices cannot be construed as +modifying the License. +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +5. Submission of Contributions. + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +6. Trademarks. + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, +NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +8. Limitation of Liability. + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "[]" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/k8s.io/klog/v2/OWNERS b/ecs-agent/vendor/k8s.io/klog/v2/OWNERS new file mode 100644 index 0000000000..a2fe8f351b --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/OWNERS @@ -0,0 +1,14 @@ +# See the OWNERS docs at https://go.k8s.io/owners +reviewers: + - harshanarayana + - pohly +approvers: + - dims + - thockin + - serathius +emeritus_approvers: + - brancz + - justinsb + - lavalamp + - piosz + - tallclair diff --git a/ecs-agent/vendor/k8s.io/klog/v2/README.md b/ecs-agent/vendor/k8s.io/klog/v2/README.md new file mode 100644 index 0000000000..d45cbe1720 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/README.md @@ -0,0 +1,118 @@ +klog +==== + +klog is a permanent fork of https://github.com/golang/glog. + +## Why was klog created? + +The decision to create klog was one that wasn't made lightly, but it was necessary due to some +drawbacks that are present in [glog](https://github.com/golang/glog). Ultimately, the fork was created due to glog not being under active development; this can be seen in the glog README: + +> The code in this repo [...] is not itself under development + +This makes us unable to solve many use cases without a fork. The factors that contributed to needing feature development are listed below: + + * `glog` [presents a lot "gotchas"](https://github.com/kubernetes/kubernetes/issues/61006) and introduces challenges in containerized environments, all of which aren't well documented. + * `glog` doesn't provide an easy way to test logs, which detracts from the stability of software using it + * A long term goal is to implement a logging interface that allows us to add context, change output format, etc. + +Historical context is available here: + + * https://github.com/kubernetes/kubernetes/issues/61006 + * https://github.com/kubernetes/kubernetes/issues/70264 + * https://groups.google.com/forum/#!msg/kubernetes-sig-architecture/wCWiWf3Juzs/hXRVBH90CgAJ + * https://groups.google.com/forum/#!msg/kubernetes-dev/7vnijOMhLS0/1oRiNtigBgAJ + +## Release versioning + +Semantic versioning is used in this repository. It contains several Go modules +with different levels of stability: +- `k8s.io/klog/v2` - stable API, `vX.Y.Z` tags +- `examples` - no stable API, no tags, no intention to ever stabilize + +Exempt from the API stability guarantee are items (packages, functions, etc.) +which are marked explicitly as `EXPERIMENTAL` in their docs comment. Those +may still change in incompatible ways or get removed entirely. This can only +be used for code that is used in tests to avoid situations where non-test +code from two different Kubernetes dependencies depends on incompatible +releases of klog because an experimental API was changed. + +---- + +How to use klog +=============== +- Replace imports for `"github.com/golang/glog"` with `"k8s.io/klog/v2"` +- Use `klog.InitFlags(nil)` explicitly for initializing global flags as we no longer use `init()` method to register the flags +- You can now use `log_file` instead of `log_dir` for logging to a single file (See `examples/log_file/usage_log_file.go`) +- If you want to redirect everything logged using klog somewhere else (say syslog!), you can use `klog.SetOutput()` method and supply a `io.Writer`. (See `examples/set_output/usage_set_output.go`) +- For more logging conventions (See [Logging Conventions](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md)) +- See our documentation on [pkg.go.dev/k8s.io](https://pkg.go.dev/k8s.io/klog). + +**NOTE**: please use the newer go versions that support semantic import versioning in modules, ideally go 1.11.4 or greater. + +### Coexisting with klog/v2 + +See [this example](examples/coexist_klog_v1_and_v2/) to see how to coexist with both klog/v1 and klog/v2. + +### Coexisting with glog +This package can be used side by side with glog. [This example](examples/coexist_glog/coexist_glog.go) shows how to initialize and synchronize flags from the global `flag.CommandLine` FlagSet. In addition, the example makes use of stderr as combined output by setting `alsologtostderr` (or `logtostderr`) to `true`. + +## Community, discussion, contribution, and support + +Learn how to engage with the Kubernetes community on the [community page](http://kubernetes.io/community/). + +You can reach the maintainers of this project at: + +- [Slack](https://kubernetes.slack.com/messages/klog) +- [Mailing List](https://groups.google.com/forum/#!forum/kubernetes-sig-architecture) + +### Code of conduct + +Participation in the Kubernetes community is governed by the [Kubernetes Code of Conduct](code-of-conduct.md). + +---- + +glog +==== + +Leveled execution logs for Go. + +This is an efficient pure Go implementation of leveled logs in the +manner of the open source C++ package + https://github.com/google/glog + +By binding methods to booleans it is possible to use the log package +without paying the expense of evaluating the arguments to the log. +Through the -vmodule flag, the package also provides fine-grained +control over logging at the file level. + +The comment from glog.go introduces the ideas: + + Package glog implements logging analogous to the Google-internal + C++ INFO/ERROR/V setup. It provides functions Info, Warning, + Error, Fatal, plus formatting variants such as Infof. It + also provides V-style logging controlled by the -v and + -vmodule=file=2 flags. + + Basic examples: + + glog.Info("Prepare to repel boarders") + + glog.Fatalf("Initialization failed: %s", err) + + See the documentation of the V function for an explanation + of these examples: + + if glog.V(2) { + glog.Info("Starting transaction...") + } + + glog.V(2).Infoln("Processed", nItems, "elements") + + +The repository contains an open source version of the log package +used inside Google. The master copy of the source lives inside +Google, not here. The code in this repo is for export only and is not itself +under development. Feature requests will be ignored. + +Send bug reports to golang-nuts@googlegroups.com. diff --git a/ecs-agent/vendor/k8s.io/klog/v2/RELEASE.md b/ecs-agent/vendor/k8s.io/klog/v2/RELEASE.md new file mode 100644 index 0000000000..b53eb960ce --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/RELEASE.md @@ -0,0 +1,9 @@ +# Release Process + +The `klog` is released on an as-needed basis. The process is as follows: + +1. An issue is proposing a new release with a changelog since the last release +1. All [OWNERS](OWNERS) must LGTM this release +1. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION` +1. The release issue is closed +1. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] kubernetes-template-project $VERSION is released` diff --git a/ecs-agent/vendor/k8s.io/klog/v2/SECURITY.md b/ecs-agent/vendor/k8s.io/klog/v2/SECURITY.md new file mode 100644 index 0000000000..2083d44cdf --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/SECURITY.md @@ -0,0 +1,22 @@ +# Security Policy + +## Security Announcements + +Join the [kubernetes-security-announce] group for security and vulnerability announcements. + +You can also subscribe to an RSS feed of the above using [this link][kubernetes-security-announce-rss]. + +## Reporting a Vulnerability + +Instructions for reporting a vulnerability can be found on the +[Kubernetes Security and Disclosure Information] page. + +## Supported Versions + +Information about supported Kubernetes versions can be found on the +[Kubernetes version and version skew support policy] page on the Kubernetes website. + +[kubernetes-security-announce]: https://groups.google.com/forum/#!forum/kubernetes-security-announce +[kubernetes-security-announce-rss]: https://groups.google.com/forum/feed/kubernetes-security-announce/msgs/rss_v2_0.xml?num=50 +[Kubernetes version and version skew support policy]: https://kubernetes.io/docs/setup/release/version-skew-policy/#supported-versions +[Kubernetes Security and Disclosure Information]: https://kubernetes.io/docs/reference/issues-security/security/#report-a-vulnerability diff --git a/ecs-agent/vendor/k8s.io/klog/v2/SECURITY_CONTACTS b/ecs-agent/vendor/k8s.io/klog/v2/SECURITY_CONTACTS new file mode 100644 index 0000000000..6128a58699 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/SECURITY_CONTACTS @@ -0,0 +1,20 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Committee to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +dims +thockin +justinsb +tallclair +piosz +brancz +DirectXMan12 +lavalamp diff --git a/ecs-agent/vendor/k8s.io/klog/v2/code-of-conduct.md b/ecs-agent/vendor/k8s.io/klog/v2/code-of-conduct.md new file mode 100644 index 0000000000..0d15c00cf3 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/code-of-conduct.md @@ -0,0 +1,3 @@ +# Kubernetes Community Code of Conduct + +Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/ecs-agent/vendor/k8s.io/klog/v2/contextual.go b/ecs-agent/vendor/k8s.io/klog/v2/contextual.go new file mode 100644 index 0000000000..005513f2a7 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/contextual.go @@ -0,0 +1,212 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package klog + +import ( + "context" + + "github.com/go-logr/logr" +) + +// This file provides the implementation of +// https://github.com/kubernetes/enhancements/tree/master/keps/sig-instrumentation/1602-structured-logging +// +// SetLogger and ClearLogger were originally added to klog.go and got moved +// here. Contextual logging adds a way to retrieve a Logger for direct logging +// without the logging calls in klog.go. +// +// The global variables are expected to be modified only during sequential +// parts of a program (init, serial tests) and therefore are not protected by +// mutex locking. + +var ( + // klogLogger is used as fallback for logging through the normal klog code + // when no Logger is set. + klogLogger logr.Logger = logr.New(&klogger{}) +) + +// SetLogger sets a Logger implementation that will be used as backing +// implementation of the traditional klog log calls. klog will do its own +// verbosity checks before calling logger.V().Info. logger.Error is always +// called, regardless of the klog verbosity settings. +// +// If set, all log lines will be suppressed from the regular output, and +// redirected to the logr implementation. +// Use as: +// +// ... +// klog.SetLogger(zapr.NewLogger(zapLog)) +// +// To remove a backing logr implemention, use ClearLogger. Setting an +// empty logger with SetLogger(logr.Logger{}) does not work. +// +// Modifying the logger is not thread-safe and should be done while no other +// goroutines invoke log calls, usually during program initialization. +func SetLogger(logger logr.Logger) { + SetLoggerWithOptions(logger) +} + +// SetLoggerWithOptions is a more flexible version of SetLogger. Without +// additional options, it behaves exactly like SetLogger. By passing +// ContextualLogger(true) as option, it can be used to set a logger that then +// will also get called directly by applications which retrieve it via +// FromContext, Background, or TODO. +// +// Supporting direct calls is recommended because it avoids the overhead of +// routing log entries through klogr into klog and then into the actual Logger +// backend. +func SetLoggerWithOptions(logger logr.Logger, opts ...LoggerOption) { + logging.loggerOptions = loggerOptions{} + for _, opt := range opts { + opt(&logging.loggerOptions) + } + logging.logger = &logWriter{ + Logger: logger, + writeKlogBuffer: logging.loggerOptions.writeKlogBuffer, + } +} + +// ContextualLogger determines whether the logger passed to +// SetLoggerWithOptions may also get called directly. Such a logger cannot rely +// on verbosity checking in klog. +func ContextualLogger(enabled bool) LoggerOption { + return func(o *loggerOptions) { + o.contextualLogger = enabled + } +} + +// FlushLogger provides a callback for flushing data buffered by the logger. +func FlushLogger(flush func()) LoggerOption { + return func(o *loggerOptions) { + o.flush = flush + } +} + +// WriteKlogBuffer sets a callback that will be invoked by klog to write output +// produced by non-structured log calls like Infof. +// +// The buffer will contain exactly the same data that klog normally would write +// into its own output stream(s). In particular this includes the header, if +// klog is configured to write one. The callback then can divert that data into +// its own output streams. The buffer may or may not end in a line break. +// +// Without such a callback, klog will call the logger's Info or Error method +// with just the message string (i.e. no header). +func WriteKlogBuffer(write func([]byte)) LoggerOption { + return func(o *loggerOptions) { + o.writeKlogBuffer = write + } +} + +// LoggerOption implements the functional parameter paradigm for +// SetLoggerWithOptions. +type LoggerOption func(o *loggerOptions) + +type loggerOptions struct { + contextualLogger bool + flush func() + writeKlogBuffer func([]byte) +} + +// logWriter combines a logger (always set) with a write callback (optional). +type logWriter struct { + Logger + writeKlogBuffer func([]byte) +} + +// ClearLogger removes a backing Logger implementation if one was set earlier +// with SetLogger. +// +// Modifying the logger is not thread-safe and should be done while no other +// goroutines invoke log calls, usually during program initialization. +func ClearLogger() { + logging.logger = nil + logging.loggerOptions = loggerOptions{} +} + +// EnableContextualLogging controls whether contextual logging is enabled. +// By default it is enabled. When disabled, FromContext avoids looking up +// the logger in the context and always returns the global logger. +// LoggerWithValues, LoggerWithName, and NewContext become no-ops +// and return their input logger respectively context. This may be useful +// to avoid the additional overhead for contextual logging. +// +// This must be called during initialization before goroutines are started. +func EnableContextualLogging(enabled bool) { + logging.contextualLoggingEnabled = enabled +} + +// FromContext retrieves a logger set by the caller or, if not set, +// falls back to the program's global logger (a Logger instance or klog +// itself). +func FromContext(ctx context.Context) Logger { + if logging.contextualLoggingEnabled { + if logger, err := logr.FromContext(ctx); err == nil { + return logger + } + } + + return Background() +} + +// TODO can be used as a last resort by code that has no means of +// receiving a logger from its caller. FromContext or an explicit logger +// parameter should be used instead. +func TODO() Logger { + return Background() +} + +// Background retrieves the fallback logger. It should not be called before +// that logger was initialized by the program and not by code that should +// better receive a logger via its parameters. TODO can be used as a temporary +// solution for such code. +func Background() Logger { + if logging.loggerOptions.contextualLogger { + // Is non-nil because logging.loggerOptions.contextualLogger is + // only true if a logger was set. + return logging.logger.Logger + } + + return klogLogger +} + +// LoggerWithValues returns logger.WithValues(...kv) when +// contextual logging is enabled, otherwise the logger. +func LoggerWithValues(logger Logger, kv ...interface{}) Logger { + if logging.contextualLoggingEnabled { + return logger.WithValues(kv...) + } + return logger +} + +// LoggerWithName returns logger.WithName(name) when contextual logging is +// enabled, otherwise the logger. +func LoggerWithName(logger Logger, name string) Logger { + if logging.contextualLoggingEnabled { + return logger.WithName(name) + } + return logger +} + +// NewContext returns logr.NewContext(ctx, logger) when +// contextual logging is enabled, otherwise ctx. +func NewContext(ctx context.Context, logger Logger) context.Context { + if logging.contextualLoggingEnabled { + return logr.NewContext(ctx, logger) + } + return ctx +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/exit.go b/ecs-agent/vendor/k8s.io/klog/v2/exit.go new file mode 100644 index 0000000000..320a147728 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/exit.go @@ -0,0 +1,69 @@ +// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/ +// +// Copyright 2013 Google Inc. All Rights Reserved. +// Copyright 2022 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package klog + +import ( + "fmt" + "os" + "time" +) + +var ( + + // ExitFlushTimeout is the timeout that klog has traditionally used during + // calls like Fatal or Exit when flushing log data right before exiting. + // Applications that replace those calls and do not have some specific + // requirements like "exit immediately" can use this value as parameter + // for FlushAndExit. + // + // Can be set for testing purpose or to change the application's + // default. + ExitFlushTimeout = 10 * time.Second + + // OsExit is the function called by FlushAndExit to terminate the program. + // + // Can be set for testing purpose or to change the application's + // default behavior. Note that the function should not simply return + // because callers of functions like Fatal will not expect that. + OsExit = os.Exit +) + +// FlushAndExit flushes log data for a certain amount of time and then calls +// os.Exit. Combined with some logging call it provides a replacement for +// traditional calls like Fatal or Exit. +func FlushAndExit(flushTimeout time.Duration, exitCode int) { + timeoutFlush(flushTimeout) + OsExit(exitCode) +} + +// timeoutFlush calls Flush and returns when it completes or after timeout +// elapses, whichever happens first. This is needed because the hooks invoked +// by Flush may deadlock when klog.Fatal is called from a hook that holds +// a lock. Flushing also might take too long. +func timeoutFlush(timeout time.Duration) { + done := make(chan bool, 1) + go func() { + Flush() // calls logging.lockAndFlushAll() + done <- true + }() + select { + case <-done: + case <-time.After(timeout): + fmt.Fprintln(os.Stderr, "klog: Flush took longer than", timeout) + } +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/format.go b/ecs-agent/vendor/k8s.io/klog/v2/format.go new file mode 100644 index 0000000000..63995ca6db --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/format.go @@ -0,0 +1,65 @@ +/* +Copyright 2023 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package klog + +import ( + "encoding/json" + "fmt" + "strings" + + "github.com/go-logr/logr" +) + +// Format wraps a value of an arbitrary type and implement fmt.Stringer and +// logr.Marshaler for them. Stringer returns pretty-printed JSON. MarshalLog +// returns the original value with a type that has no special methods, in +// particular no MarshalLog or MarshalJSON. +// +// Wrapping values like that is useful when the value has a broken +// implementation of these special functions (for example, a type which +// inherits String from TypeMeta, but then doesn't re-implement String) or the +// implementation produces output that is less readable or unstructured (for +// example, the generated String functions for Kubernetes API types). +func Format(obj interface{}) interface{} { + return formatAny{Object: obj} +} + +type formatAny struct { + Object interface{} +} + +func (f formatAny) String() string { + var buffer strings.Builder + encoder := json.NewEncoder(&buffer) + encoder.SetIndent("", " ") + if err := encoder.Encode(&f.Object); err != nil { + return fmt.Sprintf("error marshaling %T to JSON: %v", f, err) + } + return buffer.String() +} + +func (f formatAny) MarshalLog() interface{} { + // Returning a pointer to a pointer ensures that zapr doesn't find a + // fmt.Stringer or logr.Marshaler when it checks the type of the + // value. It then falls back to reflection, which dumps the value being + // pointed to (JSON doesn't have pointers). + ptr := &f.Object + return &ptr +} + +var _ fmt.Stringer = formatAny{} +var _ logr.Marshaler = formatAny{} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/imports.go b/ecs-agent/vendor/k8s.io/klog/v2/imports.go new file mode 100644 index 0000000000..602c3ed9e6 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/imports.go @@ -0,0 +1,38 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package klog + +import ( + "github.com/go-logr/logr" +) + +// The reason for providing these aliases is to allow code to work with logr +// without directly importing it. + +// Logger in this package is exactly the same as logr.Logger. +type Logger = logr.Logger + +// LogSink in this package is exactly the same as logr.LogSink. +type LogSink = logr.LogSink + +// Runtimeinfo in this package is exactly the same as logr.RuntimeInfo. +type RuntimeInfo = logr.RuntimeInfo + +var ( + // New is an alias for logr.New. + New = logr.New +) diff --git a/ecs-agent/vendor/k8s.io/klog/v2/internal/buffer/buffer.go b/ecs-agent/vendor/k8s.io/klog/v2/internal/buffer/buffer.go new file mode 100644 index 0000000000..f325ded5e9 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/internal/buffer/buffer.go @@ -0,0 +1,176 @@ +// Copyright 2013 Google Inc. All Rights Reserved. +// Copyright 2022 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package buffer provides a cache for byte.Buffer instances that can be reused +// to avoid frequent allocation and deallocation. It also has utility code +// for log header formatting that use these buffers. +package buffer + +import ( + "bytes" + "os" + "sync" + "time" + + "k8s.io/klog/v2/internal/severity" +) + +var ( + // Pid is inserted into log headers. Can be overridden for tests. + Pid = os.Getpid() +) + +// Buffer holds a single byte.Buffer for reuse. The zero value is ready for +// use. It also provides some helper methods for output formatting. +type Buffer struct { + bytes.Buffer + Tmp [64]byte // temporary byte array for creating headers. + next *Buffer +} + +var buffers = sync.Pool{ + New: func() interface{} { + return new(Buffer) + }, +} + +// GetBuffer returns a new, ready-to-use buffer. +func GetBuffer() *Buffer { + b := buffers.Get().(*Buffer) + b.Reset() + return b +} + +// PutBuffer returns a buffer to the free list. +func PutBuffer(b *Buffer) { + if b.Len() >= 256 { + // Let big buffers die a natural death, without relying on + // sync.Pool behavior. The documentation implies that items may + // get deallocated while stored there ("If the Pool holds the + // only reference when this [= be removed automatically] + // happens, the item might be deallocated."), but + // https://github.com/golang/go/issues/23199 leans more towards + // having such a size limit. + return + } + + buffers.Put(b) +} + +// Some custom tiny helper functions to print the log header efficiently. + +const digits = "0123456789" + +// twoDigits formats a zero-prefixed two-digit integer at buf.Tmp[i]. +func (buf *Buffer) twoDigits(i, d int) { + buf.Tmp[i+1] = digits[d%10] + d /= 10 + buf.Tmp[i] = digits[d%10] +} + +// nDigits formats an n-digit integer at buf.Tmp[i], +// padding with pad on the left. +// It assumes d >= 0. +func (buf *Buffer) nDigits(n, i, d int, pad byte) { + j := n - 1 + for ; j >= 0 && d > 0; j-- { + buf.Tmp[i+j] = digits[d%10] + d /= 10 + } + for ; j >= 0; j-- { + buf.Tmp[i+j] = pad + } +} + +// someDigits formats a zero-prefixed variable-width integer at buf.Tmp[i]. +func (buf *Buffer) someDigits(i, d int) int { + // Print into the top, then copy down. We know there's space for at least + // a 10-digit number. + j := len(buf.Tmp) + for { + j-- + buf.Tmp[j] = digits[d%10] + d /= 10 + if d == 0 { + break + } + } + return copy(buf.Tmp[i:], buf.Tmp[j:]) +} + +// FormatHeader formats a log header using the provided file name and line number +// and writes it into the buffer. +func (buf *Buffer) FormatHeader(s severity.Severity, file string, line int, now time.Time) { + if line < 0 { + line = 0 // not a real line number, but acceptable to someDigits + } + if s > severity.FatalLog { + s = severity.InfoLog // for safety. + } + + // Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand. + // It's worth about 3X. Fprintf is hard. + _, month, day := now.Date() + hour, minute, second := now.Clock() + // Lmmdd hh:mm:ss.uuuuuu threadid file:line] + buf.Tmp[0] = severity.Char[s] + buf.twoDigits(1, int(month)) + buf.twoDigits(3, day) + buf.Tmp[5] = ' ' + buf.twoDigits(6, hour) + buf.Tmp[8] = ':' + buf.twoDigits(9, minute) + buf.Tmp[11] = ':' + buf.twoDigits(12, second) + buf.Tmp[14] = '.' + buf.nDigits(6, 15, now.Nanosecond()/1000, '0') + buf.Tmp[21] = ' ' + buf.nDigits(7, 22, Pid, ' ') // TODO: should be TID + buf.Tmp[29] = ' ' + buf.Write(buf.Tmp[:30]) + buf.WriteString(file) + buf.Tmp[0] = ':' + n := buf.someDigits(1, line) + buf.Tmp[n+1] = ']' + buf.Tmp[n+2] = ' ' + buf.Write(buf.Tmp[:n+3]) +} + +// SprintHeader formats a log header and returns a string. This is a simpler +// version of FormatHeader for use in ktesting. +func (buf *Buffer) SprintHeader(s severity.Severity, now time.Time) string { + if s > severity.FatalLog { + s = severity.InfoLog // for safety. + } + + // Avoid Fprintf, for speed. The format is so simple that we can do it quickly by hand. + // It's worth about 3X. Fprintf is hard. + _, month, day := now.Date() + hour, minute, second := now.Clock() + // Lmmdd hh:mm:ss.uuuuuu threadid file:line] + buf.Tmp[0] = severity.Char[s] + buf.twoDigits(1, int(month)) + buf.twoDigits(3, day) + buf.Tmp[5] = ' ' + buf.twoDigits(6, hour) + buf.Tmp[8] = ':' + buf.twoDigits(9, minute) + buf.Tmp[11] = ':' + buf.twoDigits(12, second) + buf.Tmp[14] = '.' + buf.nDigits(6, 15, now.Nanosecond()/1000, '0') + buf.Tmp[21] = ']' + return string(buf.Tmp[:22]) +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/internal/clock/README.md b/ecs-agent/vendor/k8s.io/klog/v2/internal/clock/README.md new file mode 100644 index 0000000000..03d692c8f8 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/internal/clock/README.md @@ -0,0 +1,7 @@ +# Clock + +This package provides an interface for time-based operations. It allows +mocking time for testing. + +This is a copy of k8s.io/utils/clock. We have to copy it to avoid a circular +dependency (k8s.io/klog -> k8s.io/utils -> k8s.io/klog). diff --git a/ecs-agent/vendor/k8s.io/klog/v2/internal/clock/clock.go b/ecs-agent/vendor/k8s.io/klog/v2/internal/clock/clock.go new file mode 100644 index 0000000000..b8b6af5c81 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/internal/clock/clock.go @@ -0,0 +1,178 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package clock + +import "time" + +// PassiveClock allows for injecting fake or real clocks into code +// that needs to read the current time but does not support scheduling +// activity in the future. +type PassiveClock interface { + Now() time.Time + Since(time.Time) time.Duration +} + +// Clock allows for injecting fake or real clocks into code that +// needs to do arbitrary things based on time. +type Clock interface { + PassiveClock + // After returns the channel of a new Timer. + // This method does not allow to free/GC the backing timer before it fires. Use + // NewTimer instead. + After(d time.Duration) <-chan time.Time + // NewTimer returns a new Timer. + NewTimer(d time.Duration) Timer + // Sleep sleeps for the provided duration d. + // Consider making the sleep interruptible by using 'select' on a context channel and a timer channel. + Sleep(d time.Duration) + // Tick returns the channel of a new Ticker. + // This method does not allow to free/GC the backing ticker. Use + // NewTicker from WithTicker instead. + Tick(d time.Duration) <-chan time.Time +} + +// WithTicker allows for injecting fake or real clocks into code that +// needs to do arbitrary things based on time. +type WithTicker interface { + Clock + // NewTicker returns a new Ticker. + NewTicker(time.Duration) Ticker +} + +// WithDelayedExecution allows for injecting fake or real clocks into +// code that needs to make use of AfterFunc functionality. +type WithDelayedExecution interface { + Clock + // AfterFunc executes f in its own goroutine after waiting + // for d duration and returns a Timer whose channel can be + // closed by calling Stop() on the Timer. + AfterFunc(d time.Duration, f func()) Timer +} + +// WithTickerAndDelayedExecution allows for injecting fake or real clocks +// into code that needs Ticker and AfterFunc functionality +type WithTickerAndDelayedExecution interface { + WithTicker + // AfterFunc executes f in its own goroutine after waiting + // for d duration and returns a Timer whose channel can be + // closed by calling Stop() on the Timer. + AfterFunc(d time.Duration, f func()) Timer +} + +// Ticker defines the Ticker interface. +type Ticker interface { + C() <-chan time.Time + Stop() +} + +var _ = WithTicker(RealClock{}) + +// RealClock really calls time.Now() +type RealClock struct{} + +// Now returns the current time. +func (RealClock) Now() time.Time { + return time.Now() +} + +// Since returns time since the specified timestamp. +func (RealClock) Since(ts time.Time) time.Duration { + return time.Since(ts) +} + +// After is the same as time.After(d). +// This method does not allow to free/GC the backing timer before it fires. Use +// NewTimer instead. +func (RealClock) After(d time.Duration) <-chan time.Time { + return time.After(d) +} + +// NewTimer is the same as time.NewTimer(d) +func (RealClock) NewTimer(d time.Duration) Timer { + return &realTimer{ + timer: time.NewTimer(d), + } +} + +// AfterFunc is the same as time.AfterFunc(d, f). +func (RealClock) AfterFunc(d time.Duration, f func()) Timer { + return &realTimer{ + timer: time.AfterFunc(d, f), + } +} + +// Tick is the same as time.Tick(d) +// This method does not allow to free/GC the backing ticker. Use +// NewTicker instead. +func (RealClock) Tick(d time.Duration) <-chan time.Time { + return time.Tick(d) +} + +// NewTicker returns a new Ticker. +func (RealClock) NewTicker(d time.Duration) Ticker { + return &realTicker{ + ticker: time.NewTicker(d), + } +} + +// Sleep is the same as time.Sleep(d) +// Consider making the sleep interruptible by using 'select' on a context channel and a timer channel. +func (RealClock) Sleep(d time.Duration) { + time.Sleep(d) +} + +// Timer allows for injecting fake or real timers into code that +// needs to do arbitrary things based on time. +type Timer interface { + C() <-chan time.Time + Stop() bool + Reset(d time.Duration) bool +} + +var _ = Timer(&realTimer{}) + +// realTimer is backed by an actual time.Timer. +type realTimer struct { + timer *time.Timer +} + +// C returns the underlying timer's channel. +func (r *realTimer) C() <-chan time.Time { + return r.timer.C +} + +// Stop calls Stop() on the underlying timer. +func (r *realTimer) Stop() bool { + return r.timer.Stop() +} + +// Reset calls Reset() on the underlying timer. +func (r *realTimer) Reset(d time.Duration) bool { + return r.timer.Reset(d) +} + +type realTicker struct { + ticker *time.Ticker +} + +func (r *realTicker) C() <-chan time.Time { + return r.ticker.C +} + +func (r *realTicker) Stop() { + r.ticker.Stop() +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/internal/dbg/dbg.go b/ecs-agent/vendor/k8s.io/klog/v2/internal/dbg/dbg.go new file mode 100644 index 0000000000..f27bd14472 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/internal/dbg/dbg.go @@ -0,0 +1,42 @@ +// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/ +// +// Copyright 2013 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package dbg provides some helper code for call traces. +package dbg + +import ( + "runtime" +) + +// Stacks is a wrapper for runtime.Stack that attempts to recover the data for +// all goroutines or the calling one. +func Stacks(all bool) []byte { + // We don't know how big the traces are, so grow a few times if they don't fit. Start large, though. + n := 10000 + if all { + n = 100000 + } + var trace []byte + for i := 0; i < 5; i++ { + trace = make([]byte, n) + nbytes := runtime.Stack(trace, all) + if nbytes < len(trace) { + return trace[:nbytes] + } + n *= 2 + } + return trace +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go b/ecs-agent/vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go new file mode 100644 index 0000000000..bcdf5f8ee1 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/internal/serialize/keyvalues.go @@ -0,0 +1,355 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package serialize + +import ( + "bytes" + "encoding/json" + "fmt" + "strconv" + + "github.com/go-logr/logr" +) + +type textWriter interface { + WriteText(*bytes.Buffer) +} + +// WithValues implements LogSink.WithValues. The old key/value pairs are +// assumed to be well-formed, the new ones are checked and padded if +// necessary. It returns a new slice. +func WithValues(oldKV, newKV []interface{}) []interface{} { + if len(newKV) == 0 { + return oldKV + } + newLen := len(oldKV) + len(newKV) + hasMissingValue := newLen%2 != 0 + if hasMissingValue { + newLen++ + } + // The new LogSink must have its own slice. + kv := make([]interface{}, 0, newLen) + kv = append(kv, oldKV...) + kv = append(kv, newKV...) + if hasMissingValue { + kv = append(kv, missingValue) + } + return kv +} + +// MergeKVs deduplicates elements provided in two key/value slices. +// +// Keys in each slice are expected to be unique, so duplicates can only occur +// when the first and second slice contain the same key. When that happens, the +// key/value pair from the second slice is used. The first slice must be well-formed +// (= even key/value pairs). The second one may have a missing value, in which +// case the special "missing value" is added to the result. +func MergeKVs(first, second []interface{}) []interface{} { + maxLength := len(first) + (len(second)+1)/2*2 + if maxLength == 0 { + // Nothing to do at all. + return nil + } + + if len(first) == 0 && len(second)%2 == 0 { + // Nothing to be overridden, second slice is well-formed + // and can be used directly. + return second + } + + // Determine which keys are in the second slice so that we can skip + // them when iterating over the first one. The code intentionally + // favors performance over completeness: we assume that keys are string + // constants and thus compare equal when the string values are equal. A + // string constant being overridden by, for example, a fmt.Stringer is + // not handled. + overrides := map[interface{}]bool{} + for i := 0; i < len(second); i += 2 { + overrides[second[i]] = true + } + merged := make([]interface{}, 0, maxLength) + for i := 0; i+1 < len(first); i += 2 { + key := first[i] + if overrides[key] { + continue + } + merged = append(merged, key, first[i+1]) + } + merged = append(merged, second...) + if len(merged)%2 != 0 { + merged = append(merged, missingValue) + } + return merged +} + +type Formatter struct { + AnyToStringHook AnyToStringFunc +} + +type AnyToStringFunc func(v interface{}) string + +// MergeKVsInto is a variant of MergeKVs which directly formats the key/value +// pairs into a buffer. +func (f Formatter) MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) { + if len(first) == 0 && len(second) == 0 { + // Nothing to do at all. + return + } + + if len(first) == 0 && len(second)%2 == 0 { + // Nothing to be overridden, second slice is well-formed + // and can be used directly. + for i := 0; i < len(second); i += 2 { + f.KVFormat(b, second[i], second[i+1]) + } + return + } + + // Determine which keys are in the second slice so that we can skip + // them when iterating over the first one. The code intentionally + // favors performance over completeness: we assume that keys are string + // constants and thus compare equal when the string values are equal. A + // string constant being overridden by, for example, a fmt.Stringer is + // not handled. + overrides := map[interface{}]bool{} + for i := 0; i < len(second); i += 2 { + overrides[second[i]] = true + } + for i := 0; i < len(first); i += 2 { + key := first[i] + if overrides[key] { + continue + } + f.KVFormat(b, key, first[i+1]) + } + // Round down. + l := len(second) + l = l / 2 * 2 + for i := 1; i < l; i += 2 { + f.KVFormat(b, second[i-1], second[i]) + } + if len(second)%2 == 1 { + f.KVFormat(b, second[len(second)-1], missingValue) + } +} + +func MergeAndFormatKVs(b *bytes.Buffer, first, second []interface{}) { + Formatter{}.MergeAndFormatKVs(b, first, second) +} + +const missingValue = "(MISSING)" + +// KVListFormat serializes all key/value pairs into the provided buffer. +// A space gets inserted before the first pair and between each pair. +func (f Formatter) KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) { + for i := 0; i < len(keysAndValues); i += 2 { + var v interface{} + k := keysAndValues[i] + if i+1 < len(keysAndValues) { + v = keysAndValues[i+1] + } else { + v = missingValue + } + f.KVFormat(b, k, v) + } +} + +func KVListFormat(b *bytes.Buffer, keysAndValues ...interface{}) { + Formatter{}.KVListFormat(b, keysAndValues...) +} + +// KVFormat serializes one key/value pair into the provided buffer. +// A space gets inserted before the pair. +func (f Formatter) KVFormat(b *bytes.Buffer, k, v interface{}) { + b.WriteByte(' ') + // Keys are assumed to be well-formed according to + // https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/migration-to-structured-logging.md#name-arguments + // for the sake of performance. Keys with spaces, + // special characters, etc. will break parsing. + if sK, ok := k.(string); ok { + // Avoid one allocation when the key is a string, which + // normally it should be. + b.WriteString(sK) + } else { + b.WriteString(fmt.Sprintf("%s", k)) + } + + // The type checks are sorted so that more frequently used ones + // come first because that is then faster in the common + // cases. In Kubernetes, ObjectRef (a Stringer) is more common + // than plain strings + // (https://github.com/kubernetes/kubernetes/pull/106594#issuecomment-975526235). + switch v := v.(type) { + case textWriter: + writeTextWriterValue(b, v) + case fmt.Stringer: + writeStringValue(b, StringerToString(v)) + case string: + writeStringValue(b, v) + case error: + writeStringValue(b, ErrorToString(v)) + case logr.Marshaler: + value := MarshalerToValue(v) + // A marshaler that returns a string is useful for + // delayed formatting of complex values. We treat this + // case like a normal string. This is useful for + // multi-line support. + // + // We could do this by recursively formatting a value, + // but that comes with the risk of infinite recursion + // if a marshaler returns itself. Instead we call it + // only once and rely on it returning the intended + // value directly. + switch value := value.(type) { + case string: + writeStringValue(b, value) + default: + f.formatAny(b, value) + } + case []byte: + // In https://github.com/kubernetes/klog/pull/237 it was decided + // to format byte slices with "%+q". The advantages of that are: + // - readable output if the bytes happen to be printable + // - non-printable bytes get represented as unicode escape + // sequences (\uxxxx) + // + // The downsides are that we cannot use the faster + // strconv.Quote here and that multi-line output is not + // supported. If developers know that a byte array is + // printable and they want multi-line output, they can + // convert the value to string before logging it. + b.WriteByte('=') + b.WriteString(fmt.Sprintf("%+q", v)) + default: + f.formatAny(b, v) + } +} + +func KVFormat(b *bytes.Buffer, k, v interface{}) { + Formatter{}.KVFormat(b, k, v) +} + +// formatAny is the fallback formatter for a value. It supports a hook (for +// example, for YAML encoding) and itself uses JSON encoding. +func (f Formatter) formatAny(b *bytes.Buffer, v interface{}) { + b.WriteRune('=') + if f.AnyToStringHook != nil { + b.WriteString(f.AnyToStringHook(v)) + return + } + encoder := json.NewEncoder(b) + l := b.Len() + if err := encoder.Encode(v); err != nil { + // This shouldn't happen. We discard whatever the encoder + // wrote and instead dump an error string. + b.Truncate(l) + b.WriteString(fmt.Sprintf(`""`, err)) + return + } + // Remove trailing newline. + b.Truncate(b.Len() - 1) +} + +// StringerToString converts a Stringer to a string, +// handling panics if they occur. +func StringerToString(s fmt.Stringer) (ret string) { + defer func() { + if err := recover(); err != nil { + ret = fmt.Sprintf("", err) + } + }() + ret = s.String() + return +} + +// MarshalerToValue invokes a marshaler and catches +// panics. +func MarshalerToValue(m logr.Marshaler) (ret interface{}) { + defer func() { + if err := recover(); err != nil { + ret = fmt.Sprintf("", err) + } + }() + ret = m.MarshalLog() + return +} + +// ErrorToString converts an error to a string, +// handling panics if they occur. +func ErrorToString(err error) (ret string) { + defer func() { + if err := recover(); err != nil { + ret = fmt.Sprintf("", err) + } + }() + ret = err.Error() + return +} + +func writeTextWriterValue(b *bytes.Buffer, v textWriter) { + b.WriteByte('=') + defer func() { + if err := recover(); err != nil { + fmt.Fprintf(b, `""`, err) + } + }() + v.WriteText(b) +} + +func writeStringValue(b *bytes.Buffer, v string) { + data := []byte(v) + index := bytes.IndexByte(data, '\n') + if index == -1 { + b.WriteByte('=') + // Simple string, quote quotation marks and non-printable characters. + b.WriteString(strconv.Quote(v)) + return + } + + // Complex multi-line string, show as-is with indention like this: + // I... "hello world" key=< + // line 1 + // line 2 + // > + // + // Tabs indent the lines of the value while the end of string delimiter + // is indented with a space. That has two purposes: + // - visual difference between the two for a human reader because indention + // will be different + // - no ambiguity when some value line starts with the end delimiter + // + // One downside is that the output cannot distinguish between strings that + // end with a line break and those that don't because the end delimiter + // will always be on the next line. + b.WriteString("=<\n") + for index != -1 { + b.WriteByte('\t') + b.Write(data[0 : index+1]) + data = data[index+1:] + index = bytes.IndexByte(data, '\n') + } + if len(data) == 0 { + // String ended with line break, don't add another. + b.WriteString(" >") + } else { + // No line break at end of last line, write rest of string and + // add one. + b.WriteByte('\t') + b.Write(data) + b.WriteString("\n >") + } +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/internal/severity/severity.go b/ecs-agent/vendor/k8s.io/klog/v2/internal/severity/severity.go new file mode 100644 index 0000000000..30fa1834f0 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/internal/severity/severity.go @@ -0,0 +1,58 @@ +// Copyright 2013 Google Inc. All Rights Reserved. +// Copyright 2022 The Kubernetes Authors. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package severity provides definitions for klog severity (info, warning, ...) +package severity + +import ( + "strings" +) + +// severity identifies the sort of log: info, warning etc. The binding to flag.Value +// is handled in klog.go +type Severity int32 // sync/atomic int32 + +// These constants identify the log levels in order of increasing severity. +// A message written to a high-severity log file is also written to each +// lower-severity log file. +const ( + InfoLog Severity = iota + WarningLog + ErrorLog + FatalLog + NumSeverity = 4 +) + +// Char contains one shortcut letter per severity level. +const Char = "IWEF" + +// Name contains one name per severity level. +var Name = []string{ + InfoLog: "INFO", + WarningLog: "WARNING", + ErrorLog: "ERROR", + FatalLog: "FATAL", +} + +// ByName looks up a severity level by name. +func ByName(s string) (Severity, bool) { + s = strings.ToUpper(s) + for i, name := range Name { + if name == s { + return Severity(i), true + } + } + return 0, false +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/k8s_references.go b/ecs-agent/vendor/k8s.io/klog/v2/k8s_references.go new file mode 100644 index 0000000000..786af74bfd --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/k8s_references.go @@ -0,0 +1,212 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package klog + +import ( + "bytes" + "fmt" + "reflect" + "strings" + + "github.com/go-logr/logr" +) + +// ObjectRef references a kubernetes object +type ObjectRef struct { + Name string `json:"name"` + Namespace string `json:"namespace,omitempty"` +} + +func (ref ObjectRef) String() string { + if ref.Namespace != "" { + var builder strings.Builder + builder.Grow(len(ref.Namespace) + len(ref.Name) + 1) + builder.WriteString(ref.Namespace) + builder.WriteRune('/') + builder.WriteString(ref.Name) + return builder.String() + } + return ref.Name +} + +func (ref ObjectRef) WriteText(out *bytes.Buffer) { + out.WriteRune('"') + ref.writeUnquoted(out) + out.WriteRune('"') +} + +func (ref ObjectRef) writeUnquoted(out *bytes.Buffer) { + if ref.Namespace != "" { + out.WriteString(ref.Namespace) + out.WriteRune('/') + } + out.WriteString(ref.Name) +} + +// MarshalLog ensures that loggers with support for structured output will log +// as a struct by removing the String method via a custom type. +func (ref ObjectRef) MarshalLog() interface{} { + type or ObjectRef + return or(ref) +} + +var _ logr.Marshaler = ObjectRef{} + +// KMetadata is a subset of the kubernetes k8s.io/apimachinery/pkg/apis/meta/v1.Object interface +// this interface may expand in the future, but will always be a subset of the +// kubernetes k8s.io/apimachinery/pkg/apis/meta/v1.Object interface +type KMetadata interface { + GetName() string + GetNamespace() string +} + +// KObj returns ObjectRef from ObjectMeta +func KObj(obj KMetadata) ObjectRef { + if obj == nil { + return ObjectRef{} + } + if val := reflect.ValueOf(obj); val.Kind() == reflect.Ptr && val.IsNil() { + return ObjectRef{} + } + + return ObjectRef{ + Name: obj.GetName(), + Namespace: obj.GetNamespace(), + } +} + +// KRef returns ObjectRef from name and namespace +func KRef(namespace, name string) ObjectRef { + return ObjectRef{ + Name: name, + Namespace: namespace, + } +} + +// KObjs returns slice of ObjectRef from an slice of ObjectMeta +// +// DEPRECATED: Use KObjSlice instead, it has better performance. +func KObjs(arg interface{}) []ObjectRef { + s := reflect.ValueOf(arg) + if s.Kind() != reflect.Slice { + return nil + } + objectRefs := make([]ObjectRef, 0, s.Len()) + for i := 0; i < s.Len(); i++ { + if v, ok := s.Index(i).Interface().(KMetadata); ok { + objectRefs = append(objectRefs, KObj(v)) + } else { + return nil + } + } + return objectRefs +} + +// KObjSlice takes a slice of objects that implement the KMetadata interface +// and returns an object that gets logged as a slice of ObjectRef values or a +// string containing those values, depending on whether the logger prefers text +// output or structured output. +// +// An error string is logged when KObjSlice is not passed a suitable slice. +// +// Processing of the argument is delayed until the value actually gets logged, +// in contrast to KObjs where that overhead is incurred regardless of whether +// the result is needed. +func KObjSlice(arg interface{}) interface{} { + return kobjSlice{arg: arg} +} + +type kobjSlice struct { + arg interface{} +} + +var _ fmt.Stringer = kobjSlice{} +var _ logr.Marshaler = kobjSlice{} + +func (ks kobjSlice) String() string { + objectRefs, errStr := ks.process() + if errStr != "" { + return errStr + } + return fmt.Sprintf("%v", objectRefs) +} + +func (ks kobjSlice) MarshalLog() interface{} { + objectRefs, errStr := ks.process() + if errStr != "" { + return errStr + } + return objectRefs +} + +func (ks kobjSlice) process() (objs []interface{}, err string) { + s := reflect.ValueOf(ks.arg) + switch s.Kind() { + case reflect.Invalid: + // nil parameter, print as nil. + return nil, "" + case reflect.Slice: + // Okay, handle below. + default: + return nil, fmt.Sprintf("", ks.arg) + } + objectRefs := make([]interface{}, 0, s.Len()) + for i := 0; i < s.Len(); i++ { + item := s.Index(i).Interface() + if item == nil { + objectRefs = append(objectRefs, nil) + } else if v, ok := item.(KMetadata); ok { + objectRefs = append(objectRefs, KObj(v)) + } else { + return nil, fmt.Sprintf("", item) + } + } + return objectRefs, "" +} + +var nilToken = []byte("null") + +func (ks kobjSlice) WriteText(out *bytes.Buffer) { + s := reflect.ValueOf(ks.arg) + switch s.Kind() { + case reflect.Invalid: + // nil parameter, print as null. + out.Write(nilToken) + return + case reflect.Slice: + // Okay, handle below. + default: + fmt.Fprintf(out, `""`, ks.arg) + return + } + out.Write([]byte{'['}) + defer out.Write([]byte{']'}) + for i := 0; i < s.Len(); i++ { + if i > 0 { + out.Write([]byte{','}) + } + item := s.Index(i).Interface() + if item == nil { + out.Write(nilToken) + } else if v, ok := item.(KMetadata); ok { + KObj(v).WriteText(out) + } else { + fmt.Fprintf(out, `""`, item) + return + } + } +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/klog.go b/ecs-agent/vendor/k8s.io/klog/v2/klog.go new file mode 100644 index 0000000000..152f8a6bd6 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/klog.go @@ -0,0 +1,1715 @@ +// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/ +// +// Copyright 2013 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Package klog implements logging analogous to the Google-internal C++ INFO/ERROR/V setup. +// It provides functions Info, Warning, Error, Fatal, plus formatting variants such as +// Infof. It also provides V-style logging controlled by the -v and -vmodule=file=2 flags. +// +// Basic examples: +// +// klog.Info("Prepare to repel boarders") +// +// klog.Fatalf("Initialization failed: %s", err) +// +// See the documentation for the V function for an explanation of these examples: +// +// if klog.V(2) { +// klog.Info("Starting transaction...") +// } +// +// klog.V(2).Infoln("Processed", nItems, "elements") +// +// Log output is buffered and written periodically using Flush. Programs +// should call Flush before exiting to guarantee all log output is written. +// +// By default, all log statements write to standard error. +// This package provides several flags that modify this behavior. +// As a result, flag.Parse must be called before any logging is done. +// +// -logtostderr=true +// Logs are written to standard error instead of to files. +// This shortcuts most of the usual output routing: +// -alsologtostderr, -stderrthreshold and -log_dir have no +// effect and output redirection at runtime with SetOutput is +// ignored. +// -alsologtostderr=false +// Logs are written to standard error as well as to files. +// -stderrthreshold=ERROR +// Log events at or above this severity are logged to standard +// error as well as to files. +// -log_dir="" +// Log files will be written to this directory instead of the +// default temporary directory. +// +// Other flags provide aids to debugging. +// +// -log_backtrace_at="" +// When set to a file and line number holding a logging statement, +// such as +// -log_backtrace_at=gopherflakes.go:234 +// a stack trace will be written to the Info log whenever execution +// hits that statement. (Unlike with -vmodule, the ".go" must be +// present.) +// -v=0 +// Enable V-leveled logging at the specified level. +// -vmodule="" +// The syntax of the argument is a comma-separated list of pattern=N, +// where pattern is a literal file name (minus the ".go" suffix) or +// "glob" pattern and N is a V level. For instance, +// -vmodule=gopher*=3 +// sets the V level to 3 in all Go files whose names begin "gopher". +package klog + +import ( + "bufio" + "bytes" + "errors" + "flag" + "fmt" + "io" + stdLog "log" + "math" + "os" + "path/filepath" + "runtime" + "strconv" + "strings" + "sync" + "sync/atomic" + "time" + + "k8s.io/klog/v2/internal/buffer" + "k8s.io/klog/v2/internal/clock" + "k8s.io/klog/v2/internal/dbg" + "k8s.io/klog/v2/internal/serialize" + "k8s.io/klog/v2/internal/severity" +) + +// severityValue identifies the sort of log: info, warning etc. It also implements +// the flag.Value interface. The -stderrthreshold flag is of type severity and +// should be modified only through the flag.Value interface. The values match +// the corresponding constants in C++. +type severityValue struct { + severity.Severity +} + +// get returns the value of the severity. +func (s *severityValue) get() severity.Severity { + return severity.Severity(atomic.LoadInt32((*int32)(&s.Severity))) +} + +// set sets the value of the severity. +func (s *severityValue) set(val severity.Severity) { + atomic.StoreInt32((*int32)(&s.Severity), int32(val)) +} + +// String is part of the flag.Value interface. +func (s *severityValue) String() string { + return strconv.FormatInt(int64(s.Severity), 10) +} + +// Get is part of the flag.Getter interface. +func (s *severityValue) Get() interface{} { + return s.Severity +} + +// Set is part of the flag.Value interface. +func (s *severityValue) Set(value string) error { + var threshold severity.Severity + // Is it a known name? + if v, ok := severity.ByName(value); ok { + threshold = v + } else { + v, err := strconv.ParseInt(value, 10, 32) + if err != nil { + return err + } + threshold = severity.Severity(v) + } + logging.stderrThreshold.set(threshold) + return nil +} + +// OutputStats tracks the number of output lines and bytes written. +type OutputStats struct { + lines int64 + bytes int64 +} + +// Lines returns the number of lines written. +func (s *OutputStats) Lines() int64 { + return atomic.LoadInt64(&s.lines) +} + +// Bytes returns the number of bytes written. +func (s *OutputStats) Bytes() int64 { + return atomic.LoadInt64(&s.bytes) +} + +// Stats tracks the number of lines of output and number of bytes +// per severity level. Values must be read with atomic.LoadInt64. +var Stats struct { + Info, Warning, Error OutputStats +} + +var severityStats = [severity.NumSeverity]*OutputStats{ + severity.InfoLog: &Stats.Info, + severity.WarningLog: &Stats.Warning, + severity.ErrorLog: &Stats.Error, +} + +// Level is exported because it appears in the arguments to V and is +// the type of the v flag, which can be set programmatically. +// It's a distinct type because we want to discriminate it from logType. +// Variables of type level are only changed under logging.mu. +// The -v flag is read only with atomic ops, so the state of the logging +// module is consistent. + +// Level is treated as a sync/atomic int32. + +// Level specifies a level of verbosity for V logs. *Level implements +// flag.Value; the -v flag is of type Level and should be modified +// only through the flag.Value interface. +type Level int32 + +// get returns the value of the Level. +func (l *Level) get() Level { + return Level(atomic.LoadInt32((*int32)(l))) +} + +// set sets the value of the Level. +func (l *Level) set(val Level) { + atomic.StoreInt32((*int32)(l), int32(val)) +} + +// String is part of the flag.Value interface. +func (l *Level) String() string { + return strconv.FormatInt(int64(*l), 10) +} + +// Get is part of the flag.Getter interface. +func (l *Level) Get() interface{} { + return *l +} + +// Set is part of the flag.Value interface. +func (l *Level) Set(value string) error { + v, err := strconv.ParseInt(value, 10, 32) + if err != nil { + return err + } + logging.mu.Lock() + defer logging.mu.Unlock() + logging.setVState(Level(v), logging.vmodule.filter, false) + return nil +} + +// moduleSpec represents the setting of the -vmodule flag. +type moduleSpec struct { + filter []modulePat +} + +// modulePat contains a filter for the -vmodule flag. +// It holds a verbosity level and a file pattern to match. +type modulePat struct { + pattern string + literal bool // The pattern is a literal string + level Level +} + +// match reports whether the file matches the pattern. It uses a string +// comparison if the pattern contains no metacharacters. +func (m *modulePat) match(file string) bool { + if m.literal { + return file == m.pattern + } + match, _ := filepath.Match(m.pattern, file) + return match +} + +func (m *moduleSpec) String() string { + // Lock because the type is not atomic. TODO: clean this up. + logging.mu.Lock() + defer logging.mu.Unlock() + return m.serialize() +} + +func (m *moduleSpec) serialize() string { + var b bytes.Buffer + for i, f := range m.filter { + if i > 0 { + b.WriteRune(',') + } + fmt.Fprintf(&b, "%s=%d", f.pattern, f.level) + } + return b.String() +} + +// Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the +// struct is not exported. +func (m *moduleSpec) Get() interface{} { + return nil +} + +var errVmoduleSyntax = errors.New("syntax error: expect comma-separated list of filename=N") + +// Set will sets module value +// Syntax: -vmodule=recordio=2,file=1,gfs*=3 +func (m *moduleSpec) Set(value string) error { + filter, err := parseModuleSpec(value) + if err != nil { + return err + } + logging.mu.Lock() + defer logging.mu.Unlock() + logging.setVState(logging.verbosity, filter, true) + return nil +} + +func parseModuleSpec(value string) ([]modulePat, error) { + var filter []modulePat + for _, pat := range strings.Split(value, ",") { + if len(pat) == 0 { + // Empty strings such as from a trailing comma can be ignored. + continue + } + patLev := strings.Split(pat, "=") + if len(patLev) != 2 || len(patLev[0]) == 0 || len(patLev[1]) == 0 { + return nil, errVmoduleSyntax + } + pattern := patLev[0] + v, err := strconv.ParseInt(patLev[1], 10, 32) + if err != nil { + return nil, errors.New("syntax error: expect comma-separated list of filename=N") + } + if v < 0 { + return nil, errors.New("negative value for vmodule level") + } + if v == 0 { + continue // Ignore. It's harmless but no point in paying the overhead. + } + // TODO: check syntax of filter? + filter = append(filter, modulePat{pattern, isLiteral(pattern), Level(v)}) + } + return filter, nil +} + +// isLiteral reports whether the pattern is a literal string, that is, has no metacharacters +// that require filepath.Match to be called to match the pattern. +func isLiteral(pattern string) bool { + return !strings.ContainsAny(pattern, `\*?[]`) +} + +// traceLocation represents the setting of the -log_backtrace_at flag. +type traceLocation struct { + file string + line int +} + +// isSet reports whether the trace location has been specified. +// logging.mu is held. +func (t *traceLocation) isSet() bool { + return t.line > 0 +} + +// match reports whether the specified file and line matches the trace location. +// The argument file name is the full path, not the basename specified in the flag. +// logging.mu is held. +func (t *traceLocation) match(file string, line int) bool { + if t.line != line { + return false + } + if i := strings.LastIndex(file, "/"); i >= 0 { + file = file[i+1:] + } + return t.file == file +} + +func (t *traceLocation) String() string { + // Lock because the type is not atomic. TODO: clean this up. + logging.mu.Lock() + defer logging.mu.Unlock() + return fmt.Sprintf("%s:%d", t.file, t.line) +} + +// Get is part of the (Go 1.2) flag.Getter interface. It always returns nil for this flag type since the +// struct is not exported +func (t *traceLocation) Get() interface{} { + return nil +} + +var errTraceSyntax = errors.New("syntax error: expect file.go:234") + +// Set will sets backtrace value +// Syntax: -log_backtrace_at=gopherflakes.go:234 +// Note that unlike vmodule the file extension is included here. +func (t *traceLocation) Set(value string) error { + if value == "" { + // Unset. + logging.mu.Lock() + defer logging.mu.Unlock() + t.line = 0 + t.file = "" + return nil + } + fields := strings.Split(value, ":") + if len(fields) != 2 { + return errTraceSyntax + } + file, line := fields[0], fields[1] + if !strings.Contains(file, ".") { + return errTraceSyntax + } + v, err := strconv.Atoi(line) + if err != nil { + return errTraceSyntax + } + if v <= 0 { + return errors.New("negative or zero value for level") + } + logging.mu.Lock() + defer logging.mu.Unlock() + t.line = v + t.file = file + return nil +} + +// flushSyncWriter is the interface satisfied by logging destinations. +type flushSyncWriter interface { + Flush() error + Sync() error + io.Writer +} + +var logging loggingT +var commandLine flag.FlagSet + +// init sets up the defaults and creates command line flags. +func init() { + commandLine.StringVar(&logging.logDir, "log_dir", "", "If non-empty, write log files in this directory (no effect when -logtostderr=true)") + commandLine.StringVar(&logging.logFile, "log_file", "", "If non-empty, use this log file (no effect when -logtostderr=true)") + commandLine.Uint64Var(&logging.logFileMaxSizeMB, "log_file_max_size", 1800, + "Defines the maximum size a log file can grow to (no effect when -logtostderr=true). Unit is megabytes. "+ + "If the value is 0, the maximum file size is unlimited.") + commandLine.BoolVar(&logging.toStderr, "logtostderr", true, "log to standard error instead of files") + commandLine.BoolVar(&logging.alsoToStderr, "alsologtostderr", false, "log to standard error as well as files (no effect when -logtostderr=true)") + logging.setVState(0, nil, false) + commandLine.Var(&logging.verbosity, "v", "number for the log level verbosity") + commandLine.BoolVar(&logging.addDirHeader, "add_dir_header", false, "If true, adds the file directory to the header of the log messages") + commandLine.BoolVar(&logging.skipHeaders, "skip_headers", false, "If true, avoid header prefixes in the log messages") + commandLine.BoolVar(&logging.oneOutput, "one_output", false, "If true, only write logs to their native severity level (vs also writing to each lower severity level; no effect when -logtostderr=true)") + commandLine.BoolVar(&logging.skipLogHeaders, "skip_log_headers", false, "If true, avoid headers when opening log files (no effect when -logtostderr=true)") + logging.stderrThreshold = severityValue{ + Severity: severity.ErrorLog, // Default stderrThreshold is ERROR. + } + commandLine.Var(&logging.stderrThreshold, "stderrthreshold", "logs at or above this threshold go to stderr when writing to files and stderr (no effect when -logtostderr=true or -alsologtostderr=false)") + commandLine.Var(&logging.vmodule, "vmodule", "comma-separated list of pattern=N settings for file-filtered logging") + commandLine.Var(&logging.traceLocation, "log_backtrace_at", "when logging hits line file:N, emit a stack trace") + + logging.settings.contextualLoggingEnabled = true + logging.flushD = newFlushDaemon(logging.lockAndFlushAll, nil) +} + +// InitFlags is for explicitly initializing the flags. +// It may get called repeatedly for different flagsets, but not +// twice for the same one. May get called concurrently +// to other goroutines using klog. However, only some flags +// may get set concurrently (see implementation). +func InitFlags(flagset *flag.FlagSet) { + if flagset == nil { + flagset = flag.CommandLine + } + + commandLine.VisitAll(func(f *flag.Flag) { + flagset.Var(f.Value, f.Name, f.Usage) + }) +} + +// Flush flushes all pending log I/O. +func Flush() { + logging.lockAndFlushAll() +} + +// settings collects global settings. +type settings struct { + // contextualLoggingEnabled controls whether contextual logging is + // active. Disabling it may have some small performance benefit. + contextualLoggingEnabled bool + + // logger is the global Logger chosen by users of klog, nil if + // none is available. + logger *logWriter + + // loggerOptions contains the options that were supplied for + // globalLogger. + loggerOptions loggerOptions + + // Boolean flags. Not handled atomically because the flag.Value interface + // does not let us avoid the =true, and that shorthand is necessary for + // compatibility. TODO: does this matter enough to fix? Seems unlikely. + toStderr bool // The -logtostderr flag. + alsoToStderr bool // The -alsologtostderr flag. + + // Level flag. Handled atomically. + stderrThreshold severityValue // The -stderrthreshold flag. + + // Access to all of the following fields must be protected via a mutex. + + // file holds writer for each of the log types. + file [severity.NumSeverity]flushSyncWriter + // flushInterval is the interval for periodic flushing. If zero, + // the global default will be used. + flushInterval time.Duration + + // filterLength stores the length of the vmodule filter chain. If greater + // than zero, it means vmodule is enabled. It may be read safely + // using sync.LoadInt32, but is only modified under mu. + filterLength int32 + // traceLocation is the state of the -log_backtrace_at flag. + traceLocation traceLocation + // These flags are modified only under lock, although verbosity may be fetched + // safely using atomic.LoadInt32. + vmodule moduleSpec // The state of the -vmodule flag. + verbosity Level // V logging level, the value of the -v flag/ + + // If non-empty, overrides the choice of directory in which to write logs. + // See createLogDirs for the full list of possible destinations. + logDir string + + // If non-empty, specifies the path of the file to write logs. mutually exclusive + // with the log_dir option. + logFile string + + // When logFile is specified, this limiter makes sure the logFile won't exceeds a certain size. When exceeds, the + // logFile will be cleaned up. If this value is 0, no size limitation will be applied to logFile. + logFileMaxSizeMB uint64 + + // If true, do not add the prefix headers, useful when used with SetOutput + skipHeaders bool + + // If true, do not add the headers to log files + skipLogHeaders bool + + // If true, add the file directory to the header + addDirHeader bool + + // If true, messages will not be propagated to lower severity log levels + oneOutput bool + + // If set, all output will be filtered through the filter. + filter LogFilter +} + +// deepCopy creates a copy that doesn't share anything with the original +// instance. +func (s settings) deepCopy() settings { + // vmodule is a slice and would be shared, so we have copy it. + filter := make([]modulePat, len(s.vmodule.filter)) + for i := range s.vmodule.filter { + filter[i] = s.vmodule.filter[i] + } + s.vmodule.filter = filter + + if s.logger != nil { + logger := *s.logger + s.logger = &logger + } + + return s +} + +// loggingT collects all the global state of the logging setup. +type loggingT struct { + settings + + // flushD holds a flushDaemon that frequently flushes log file buffers. + // Uses its own mutex. + flushD *flushDaemon + + // mu protects the remaining elements of this structure and the fields + // in settingsT which need a mutex lock. + mu sync.Mutex + + // pcs is used in V to avoid an allocation when computing the caller's PC. + pcs [1]uintptr + // vmap is a cache of the V Level for each V() call site, identified by PC. + // It is wiped whenever the vmodule flag changes state. + vmap map[uintptr]Level +} + +// setVState sets a consistent state for V logging. +// l.mu is held. +func (l *loggingT) setVState(verbosity Level, filter []modulePat, setFilter bool) { + // Turn verbosity off so V will not fire while we are in transition. + l.verbosity.set(0) + // Ditto for filter length. + atomic.StoreInt32(&l.filterLength, 0) + + // Set the new filters and wipe the pc->Level map if the filter has changed. + if setFilter { + l.vmodule.filter = filter + l.vmap = make(map[uintptr]Level) + } + + // Things are consistent now, so enable filtering and verbosity. + // They are enabled in order opposite to that in V. + atomic.StoreInt32(&l.filterLength, int32(len(filter))) + l.verbosity.set(verbosity) +} + +var timeNow = time.Now // Stubbed out for testing. + +// CaptureState gathers information about all current klog settings. +// The result can be used to restore those settings. +func CaptureState() State { + logging.mu.Lock() + defer logging.mu.Unlock() + return &state{ + settings: logging.settings.deepCopy(), + flushDRunning: logging.flushD.isRunning(), + maxSize: MaxSize, + } +} + +// State stores a snapshot of klog settings. It gets created with CaptureState +// and can be used to restore the entire state. Modifying individual settings +// is supported via the command line flags. +type State interface { + // Restore restore the entire state. It may get called more than once. + Restore() +} + +type state struct { + settings + + flushDRunning bool + maxSize uint64 +} + +func (s *state) Restore() { + // This needs to be done before mutex locking. + if s.flushDRunning && !logging.flushD.isRunning() { + // This is not quite accurate: StartFlushDaemon might + // have been called with some different interval. + interval := s.flushInterval + if interval == 0 { + interval = flushInterval + } + logging.flushD.run(interval) + } else if !s.flushDRunning && logging.flushD.isRunning() { + logging.flushD.stop() + } + + logging.mu.Lock() + defer logging.mu.Unlock() + + logging.settings = s.settings + logging.setVState(s.verbosity, s.vmodule.filter, true) + MaxSize = s.maxSize +} + +/* +header formats a log header as defined by the C++ implementation. +It returns a buffer containing the formatted header and the user's file and line number. +The depth specifies how many stack frames above lives the source line to be identified in the log message. + +Log lines have this form: + + Lmmdd hh:mm:ss.uuuuuu threadid file:line] msg... + +where the fields are defined as follows: + + L A single character, representing the log level (eg 'I' for INFO) + mm The month (zero padded; ie May is '05') + dd The day (zero padded) + hh:mm:ss.uuuuuu Time in hours, minutes and fractional seconds + threadid The space-padded thread ID as returned by GetTID() + file The file name + line The line number + msg The user-supplied message +*/ +func (l *loggingT) header(s severity.Severity, depth int) (*buffer.Buffer, string, int) { + _, file, line, ok := runtime.Caller(3 + depth) + if !ok { + file = "???" + line = 1 + } else { + if slash := strings.LastIndex(file, "/"); slash >= 0 { + path := file + file = path[slash+1:] + if l.addDirHeader { + if dirsep := strings.LastIndex(path[:slash], "/"); dirsep >= 0 { + file = path[dirsep+1:] + } + } + } + } + return l.formatHeader(s, file, line), file, line +} + +// formatHeader formats a log header using the provided file name and line number. +func (l *loggingT) formatHeader(s severity.Severity, file string, line int) *buffer.Buffer { + buf := buffer.GetBuffer() + if l.skipHeaders { + return buf + } + now := timeNow() + buf.FormatHeader(s, file, line, now) + return buf +} + +func (l *loggingT) println(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) { + l.printlnDepth(s, logger, filter, 1, args...) +} + +func (l *loggingT) printlnDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) { + buf, file, line := l.header(s, depth) + // If a logger is set and doesn't support writing a formatted buffer, + // we clear the generated header as we rely on the backing + // logger implementation to print headers. + if logger != nil && logger.writeKlogBuffer == nil { + buffer.PutBuffer(buf) + buf = buffer.GetBuffer() + } + if filter != nil { + args = filter.Filter(args) + } + fmt.Fprintln(buf, args...) + l.output(s, logger, buf, depth, file, line, false) +} + +func (l *loggingT) print(s severity.Severity, logger *logWriter, filter LogFilter, args ...interface{}) { + l.printDepth(s, logger, filter, 1, args...) +} + +func (l *loggingT) printDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, args ...interface{}) { + buf, file, line := l.header(s, depth) + // If a logger is set and doesn't support writing a formatted buffer, + // we clear the generated header as we rely on the backing + // logger implementation to print headers. + if logger != nil && logger.writeKlogBuffer == nil { + buffer.PutBuffer(buf) + buf = buffer.GetBuffer() + } + if filter != nil { + args = filter.Filter(args) + } + fmt.Fprint(buf, args...) + if buf.Len() == 0 || buf.Bytes()[buf.Len()-1] != '\n' { + buf.WriteByte('\n') + } + l.output(s, logger, buf, depth, file, line, false) +} + +func (l *loggingT) printf(s severity.Severity, logger *logWriter, filter LogFilter, format string, args ...interface{}) { + l.printfDepth(s, logger, filter, 1, format, args...) +} + +func (l *loggingT) printfDepth(s severity.Severity, logger *logWriter, filter LogFilter, depth int, format string, args ...interface{}) { + buf, file, line := l.header(s, depth) + // If a logger is set and doesn't support writing a formatted buffer, + // we clear the generated header as we rely on the backing + // logger implementation to print headers. + if logger != nil && logger.writeKlogBuffer == nil { + buffer.PutBuffer(buf) + buf = buffer.GetBuffer() + } + if filter != nil { + format, args = filter.FilterF(format, args) + } + fmt.Fprintf(buf, format, args...) + if buf.Bytes()[buf.Len()-1] != '\n' { + buf.WriteByte('\n') + } + l.output(s, logger, buf, depth, file, line, false) +} + +// printWithFileLine behaves like print but uses the provided file and line number. If +// alsoLogToStderr is true, the log message always appears on standard error; it +// will also appear in the log file unless --logtostderr is set. +func (l *loggingT) printWithFileLine(s severity.Severity, logger *logWriter, filter LogFilter, file string, line int, alsoToStderr bool, args ...interface{}) { + buf := l.formatHeader(s, file, line) + // If a logger is set and doesn't support writing a formatted buffer, + // we clear the generated header as we rely on the backing + // logger implementation to print headers. + if logger != nil && logger.writeKlogBuffer == nil { + buffer.PutBuffer(buf) + buf = buffer.GetBuffer() + } + if filter != nil { + args = filter.Filter(args) + } + fmt.Fprint(buf, args...) + if buf.Bytes()[buf.Len()-1] != '\n' { + buf.WriteByte('\n') + } + l.output(s, logger, buf, 2 /* depth */, file, line, alsoToStderr) +} + +// if loggr is specified, will call loggr.Error, otherwise output with logging module. +func (l *loggingT) errorS(err error, logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) { + if filter != nil { + msg, keysAndValues = filter.FilterS(msg, keysAndValues) + } + if logger != nil { + logger.WithCallDepth(depth+2).Error(err, msg, keysAndValues...) + return + } + l.printS(err, severity.ErrorLog, depth+1, msg, keysAndValues...) +} + +// if loggr is specified, will call loggr.Info, otherwise output with logging module. +func (l *loggingT) infoS(logger *logWriter, filter LogFilter, depth int, msg string, keysAndValues ...interface{}) { + if filter != nil { + msg, keysAndValues = filter.FilterS(msg, keysAndValues) + } + if logger != nil { + logger.WithCallDepth(depth+2).Info(msg, keysAndValues...) + return + } + l.printS(nil, severity.InfoLog, depth+1, msg, keysAndValues...) +} + +// printS is called from infoS and errorS if loggr is not specified. +// set log severity by s +func (l *loggingT) printS(err error, s severity.Severity, depth int, msg string, keysAndValues ...interface{}) { + // Only create a new buffer if we don't have one cached. + b := buffer.GetBuffer() + // The message is always quoted, even if it contains line breaks. + // If developers want multi-line output, they should use a small, fixed + // message and put the multi-line output into a value. + b.WriteString(strconv.Quote(msg)) + if err != nil { + serialize.KVListFormat(&b.Buffer, "err", err) + } + serialize.KVListFormat(&b.Buffer, keysAndValues...) + l.printDepth(s, logging.logger, nil, depth+1, &b.Buffer) + // Make the buffer available for reuse. + buffer.PutBuffer(b) +} + +// redirectBuffer is used to set an alternate destination for the logs +type redirectBuffer struct { + w io.Writer +} + +func (rb *redirectBuffer) Sync() error { + return nil +} + +func (rb *redirectBuffer) Flush() error { + return nil +} + +func (rb *redirectBuffer) Write(bytes []byte) (n int, err error) { + return rb.w.Write(bytes) +} + +// SetOutput sets the output destination for all severities +func SetOutput(w io.Writer) { + logging.mu.Lock() + defer logging.mu.Unlock() + for s := severity.FatalLog; s >= severity.InfoLog; s-- { + rb := &redirectBuffer{ + w: w, + } + logging.file[s] = rb + } +} + +// SetOutputBySeverity sets the output destination for specific severity +func SetOutputBySeverity(name string, w io.Writer) { + logging.mu.Lock() + defer logging.mu.Unlock() + sev, ok := severity.ByName(name) + if !ok { + panic(fmt.Sprintf("SetOutputBySeverity(%q): unrecognized severity name", name)) + } + rb := &redirectBuffer{ + w: w, + } + logging.file[sev] = rb +} + +// LogToStderr sets whether to log exclusively to stderr, bypassing outputs +func LogToStderr(stderr bool) { + logging.mu.Lock() + defer logging.mu.Unlock() + + logging.toStderr = stderr +} + +// output writes the data to the log files and releases the buffer. +func (l *loggingT) output(s severity.Severity, logger *logWriter, buf *buffer.Buffer, depth int, file string, line int, alsoToStderr bool) { + var isLocked = true + l.mu.Lock() + defer func() { + if isLocked { + // Unlock before returning in case that it wasn't done already. + l.mu.Unlock() + } + }() + + if l.traceLocation.isSet() { + if l.traceLocation.match(file, line) { + buf.Write(dbg.Stacks(false)) + } + } + data := buf.Bytes() + if logger != nil { + if logger.writeKlogBuffer != nil { + logger.writeKlogBuffer(data) + } else { + // TODO: set 'severity' and caller information as structured log info + // keysAndValues := []interface{}{"severity", severityName[s], "file", file, "line", line} + if s == severity.ErrorLog { + logger.WithCallDepth(depth+3).Error(nil, string(data)) + } else { + logger.WithCallDepth(depth + 3).Info(string(data)) + } + } + } else if l.toStderr { + os.Stderr.Write(data) + } else { + if alsoToStderr || l.alsoToStderr || s >= l.stderrThreshold.get() { + os.Stderr.Write(data) + } + + if logging.logFile != "" { + // Since we are using a single log file, all of the items in l.file array + // will point to the same file, so just use one of them to write data. + if l.file[severity.InfoLog] == nil { + if err := l.createFiles(severity.InfoLog); err != nil { + os.Stderr.Write(data) // Make sure the message appears somewhere. + l.exit(err) + } + } + l.file[severity.InfoLog].Write(data) + } else { + if l.file[s] == nil { + if err := l.createFiles(s); err != nil { + os.Stderr.Write(data) // Make sure the message appears somewhere. + l.exit(err) + } + } + + if l.oneOutput { + l.file[s].Write(data) + } else { + switch s { + case severity.FatalLog: + l.file[severity.FatalLog].Write(data) + fallthrough + case severity.ErrorLog: + l.file[severity.ErrorLog].Write(data) + fallthrough + case severity.WarningLog: + l.file[severity.WarningLog].Write(data) + fallthrough + case severity.InfoLog: + l.file[severity.InfoLog].Write(data) + } + } + } + } + if s == severity.FatalLog { + // If we got here via Exit rather than Fatal, print no stacks. + if atomic.LoadUint32(&fatalNoStacks) > 0 { + l.mu.Unlock() + isLocked = false + timeoutFlush(ExitFlushTimeout) + OsExit(1) + } + // Dump all goroutine stacks before exiting. + // First, make sure we see the trace for the current goroutine on standard error. + // If -logtostderr has been specified, the loop below will do that anyway + // as the first stack in the full dump. + if !l.toStderr { + os.Stderr.Write(dbg.Stacks(false)) + } + + // Write the stack trace for all goroutines to the files. + trace := dbg.Stacks(true) + logExitFunc = func(error) {} // If we get a write error, we'll still exit below. + for log := severity.FatalLog; log >= severity.InfoLog; log-- { + if f := l.file[log]; f != nil { // Can be nil if -logtostderr is set. + f.Write(trace) + } + } + l.mu.Unlock() + isLocked = false + timeoutFlush(ExitFlushTimeout) + OsExit(255) // C++ uses -1, which is silly because it's anded with 255 anyway. + } + buffer.PutBuffer(buf) + + if stats := severityStats[s]; stats != nil { + atomic.AddInt64(&stats.lines, 1) + atomic.AddInt64(&stats.bytes, int64(len(data))) + } +} + +// logExitFunc provides a simple mechanism to override the default behavior +// of exiting on error. Used in testing and to guarantee we reach a required exit +// for fatal logs. Instead, exit could be a function rather than a method but that +// would make its use clumsier. +var logExitFunc func(error) + +// exit is called if there is trouble creating or writing log files. +// It flushes the logs and exits the program; there's no point in hanging around. +// l.mu is held. +func (l *loggingT) exit(err error) { + fmt.Fprintf(os.Stderr, "log: exiting because of error: %s\n", err) + // If logExitFunc is set, we do that instead of exiting. + if logExitFunc != nil { + logExitFunc(err) + return + } + l.flushAll() + OsExit(2) +} + +// syncBuffer joins a bufio.Writer to its underlying file, providing access to the +// file's Sync method and providing a wrapper for the Write method that provides log +// file rotation. There are conflicting methods, so the file cannot be embedded. +// l.mu is held for all its methods. +type syncBuffer struct { + logger *loggingT + *bufio.Writer + file *os.File + sev severity.Severity + nbytes uint64 // The number of bytes written to this file + maxbytes uint64 // The max number of bytes this syncBuffer.file can hold before cleaning up. +} + +func (sb *syncBuffer) Sync() error { + return sb.file.Sync() +} + +// CalculateMaxSize returns the real max size in bytes after considering the default max size and the flag options. +func CalculateMaxSize() uint64 { + if logging.logFile != "" { + if logging.logFileMaxSizeMB == 0 { + // If logFileMaxSizeMB is zero, we don't have limitations on the log size. + return math.MaxUint64 + } + // Flag logFileMaxSizeMB is in MB for user convenience. + return logging.logFileMaxSizeMB * 1024 * 1024 + } + // If "log_file" flag is not specified, the target file (sb.file) will be cleaned up when reaches a fixed size. + return MaxSize +} + +func (sb *syncBuffer) Write(p []byte) (n int, err error) { + if sb.nbytes+uint64(len(p)) >= sb.maxbytes { + if err := sb.rotateFile(time.Now(), false); err != nil { + sb.logger.exit(err) + } + } + n, err = sb.Writer.Write(p) + sb.nbytes += uint64(n) + if err != nil { + sb.logger.exit(err) + } + return +} + +// rotateFile closes the syncBuffer's file and starts a new one. +// The startup argument indicates whether this is the initial startup of klog. +// If startup is true, existing files are opened for appending instead of truncated. +func (sb *syncBuffer) rotateFile(now time.Time, startup bool) error { + if sb.file != nil { + sb.Flush() + sb.file.Close() + } + var err error + sb.file, _, err = create(severity.Name[sb.sev], now, startup) + if err != nil { + return err + } + if startup { + fileInfo, err := sb.file.Stat() + if err != nil { + return fmt.Errorf("file stat could not get fileinfo: %v", err) + } + // init file size + sb.nbytes = uint64(fileInfo.Size()) + } else { + sb.nbytes = 0 + } + sb.Writer = bufio.NewWriterSize(sb.file, bufferSize) + + if sb.logger.skipLogHeaders { + return nil + } + + // Write header. + var buf bytes.Buffer + fmt.Fprintf(&buf, "Log file created at: %s\n", now.Format("2006/01/02 15:04:05")) + fmt.Fprintf(&buf, "Running on machine: %s\n", host) + fmt.Fprintf(&buf, "Binary: Built with %s %s for %s/%s\n", runtime.Compiler, runtime.Version(), runtime.GOOS, runtime.GOARCH) + fmt.Fprintf(&buf, "Log line format: [IWEF]mmdd hh:mm:ss.uuuuuu threadid file:line] msg\n") + n, err := sb.file.Write(buf.Bytes()) + sb.nbytes += uint64(n) + return err +} + +// bufferSize sizes the buffer associated with each log file. It's large +// so that log records can accumulate without the logging thread blocking +// on disk I/O. The flushDaemon will block instead. +const bufferSize = 256 * 1024 + +// createFiles creates all the log files for severity from sev down to infoLog. +// l.mu is held. +func (l *loggingT) createFiles(sev severity.Severity) error { + interval := l.flushInterval + if interval == 0 { + interval = flushInterval + } + l.flushD.run(interval) + now := time.Now() + // Files are created in decreasing severity order, so as soon as we find one + // has already been created, we can stop. + for s := sev; s >= severity.InfoLog && l.file[s] == nil; s-- { + sb := &syncBuffer{ + logger: l, + sev: s, + maxbytes: CalculateMaxSize(), + } + if err := sb.rotateFile(now, true); err != nil { + return err + } + l.file[s] = sb + } + return nil +} + +const flushInterval = 5 * time.Second + +// flushDaemon periodically flushes the log file buffers. +type flushDaemon struct { + mu sync.Mutex + clock clock.WithTicker + flush func() + stopC chan struct{} + stopDone chan struct{} +} + +// newFlushDaemon returns a new flushDaemon. If the passed clock is nil, a +// clock.RealClock is used. +func newFlushDaemon(flush func(), tickClock clock.WithTicker) *flushDaemon { + if tickClock == nil { + tickClock = clock.RealClock{} + } + return &flushDaemon{ + flush: flush, + clock: tickClock, + } +} + +// run starts a goroutine that periodically calls the daemons flush function. +// Calling run on an already running daemon will have no effect. +func (f *flushDaemon) run(interval time.Duration) { + f.mu.Lock() + defer f.mu.Unlock() + + if f.stopC != nil { // daemon already running + return + } + + f.stopC = make(chan struct{}, 1) + f.stopDone = make(chan struct{}, 1) + + ticker := f.clock.NewTicker(interval) + go func() { + defer ticker.Stop() + defer func() { f.stopDone <- struct{}{} }() + for { + select { + case <-ticker.C(): + f.flush() + case <-f.stopC: + f.flush() + return + } + } + }() +} + +// stop stops the running flushDaemon and waits until the daemon has shut down. +// Calling stop on a daemon that isn't running will have no effect. +func (f *flushDaemon) stop() { + f.mu.Lock() + defer f.mu.Unlock() + + if f.stopC == nil { // daemon not running + return + } + + f.stopC <- struct{}{} + <-f.stopDone + + f.stopC = nil + f.stopDone = nil +} + +// isRunning returns true if the flush daemon is running. +func (f *flushDaemon) isRunning() bool { + f.mu.Lock() + defer f.mu.Unlock() + return f.stopC != nil +} + +// StopFlushDaemon stops the flush daemon, if running, and flushes once. +// This prevents klog from leaking goroutines on shutdown. After stopping +// the daemon, you can still manually flush buffers again by calling Flush(). +func StopFlushDaemon() { + logging.flushD.stop() +} + +// StartFlushDaemon ensures that the flush daemon runs with the given delay +// between flush calls. If it is already running, it gets restarted. +func StartFlushDaemon(interval time.Duration) { + StopFlushDaemon() + logging.flushD.run(interval) +} + +// lockAndFlushAll is like flushAll but locks l.mu first. +func (l *loggingT) lockAndFlushAll() { + l.mu.Lock() + l.flushAll() + l.mu.Unlock() +} + +// flushAll flushes all the logs and attempts to "sync" their data to disk. +// l.mu is held. +func (l *loggingT) flushAll() { + // Flush from fatal down, in case there's trouble flushing. + for s := severity.FatalLog; s >= severity.InfoLog; s-- { + file := l.file[s] + if file != nil { + file.Flush() // ignore error + file.Sync() // ignore error + } + } + if logging.loggerOptions.flush != nil { + logging.loggerOptions.flush() + } +} + +// CopyStandardLogTo arranges for messages written to the Go "log" package's +// default logs to also appear in the Google logs for the named and lower +// severities. Subsequent changes to the standard log's default output location +// or format may break this behavior. +// +// Valid names are "INFO", "WARNING", "ERROR", and "FATAL". If the name is not +// recognized, CopyStandardLogTo panics. +func CopyStandardLogTo(name string) { + sev, ok := severity.ByName(name) + if !ok { + panic(fmt.Sprintf("log.CopyStandardLogTo(%q): unrecognized severity name", name)) + } + // Set a log format that captures the user's file and line: + // d.go:23: message + stdLog.SetFlags(stdLog.Lshortfile) + stdLog.SetOutput(logBridge(sev)) +} + +// NewStandardLogger returns a Logger that writes to the klog logs for the +// named and lower severities. +// +// Valid names are "INFO", "WARNING", "ERROR", and "FATAL". If the name is not +// recognized, NewStandardLogger panics. +func NewStandardLogger(name string) *stdLog.Logger { + sev, ok := severity.ByName(name) + if !ok { + panic(fmt.Sprintf("klog.NewStandardLogger(%q): unknown severity", name)) + } + return stdLog.New(logBridge(sev), "", stdLog.Lshortfile) +} + +// logBridge provides the Write method that enables CopyStandardLogTo to connect +// Go's standard logs to the logs provided by this package. +type logBridge severity.Severity + +// Write parses the standard logging line and passes its components to the +// logger for severity(lb). +func (lb logBridge) Write(b []byte) (n int, err error) { + var ( + file = "???" + line = 1 + text string + ) + // Split "d.go:23: message" into "d.go", "23", and "message". + if parts := bytes.SplitN(b, []byte{':'}, 3); len(parts) != 3 || len(parts[0]) < 1 || len(parts[2]) < 1 { + text = fmt.Sprintf("bad log format: %s", b) + } else { + file = string(parts[0]) + text = string(parts[2][1:]) // skip leading space + line, err = strconv.Atoi(string(parts[1])) + if err != nil { + text = fmt.Sprintf("bad line number: %s", b) + line = 1 + } + } + // printWithFileLine with alsoToStderr=true, so standard log messages + // always appear on standard error. + logging.printWithFileLine(severity.Severity(lb), logging.logger, logging.filter, file, line, true, text) + return len(b), nil +} + +// setV computes and remembers the V level for a given PC +// when vmodule is enabled. +// File pattern matching takes the basename of the file, stripped +// of its .go suffix, and uses filepath.Match, which is a little more +// general than the *? matching used in C++. +// l.mu is held. +func (l *loggingT) setV(pc uintptr) Level { + fn := runtime.FuncForPC(pc) + file, _ := fn.FileLine(pc) + // The file is something like /a/b/c/d.go. We want just the d. + if strings.HasSuffix(file, ".go") { + file = file[:len(file)-3] + } + if slash := strings.LastIndex(file, "/"); slash >= 0 { + file = file[slash+1:] + } + for _, filter := range l.vmodule.filter { + if filter.match(file) { + l.vmap[pc] = filter.level + return filter.level + } + } + l.vmap[pc] = 0 + return 0 +} + +// Verbose is a boolean type that implements Infof (like Printf) etc. +// See the documentation of V for more information. +type Verbose struct { + enabled bool + logger *logWriter +} + +func newVerbose(level Level, b bool) Verbose { + if logging.logger == nil { + return Verbose{b, nil} + } + v := logging.logger.V(int(level)) + return Verbose{b, &logWriter{Logger: v, writeKlogBuffer: logging.loggerOptions.writeKlogBuffer}} +} + +// V reports whether verbosity at the call site is at least the requested level. +// The returned value is a struct of type Verbose, which implements Info, Infoln +// and Infof. These methods will write to the Info log if called. +// Thus, one may write either +// +// if klog.V(2).Enabled() { klog.Info("log this") } +// +// or +// +// klog.V(2).Info("log this") +// +// The second form is shorter but the first is cheaper if logging is off because it does +// not evaluate its arguments. +// +// Whether an individual call to V generates a log record depends on the setting of +// the -v and -vmodule flags; both are off by default. The V call will log if its level +// is less than or equal to the value of the -v flag, or alternatively if its level is +// less than or equal to the value of the -vmodule pattern matching the source file +// containing the call. +func V(level Level) Verbose { + return VDepth(1, level) +} + +// VDepth is a variant of V that accepts a number of stack frames that will be +// skipped when checking the -vmodule patterns. VDepth(0) is equivalent to +// V(). +func VDepth(depth int, level Level) Verbose { + // This function tries hard to be cheap unless there's work to do. + // The fast path is two atomic loads and compares. + + // Here is a cheap but safe test to see if V logging is enabled globally. + if logging.verbosity.get() >= level { + return newVerbose(level, true) + } + + // It's off globally but vmodule may still be set. + // Here is another cheap but safe test to see if vmodule is enabled. + if atomic.LoadInt32(&logging.filterLength) > 0 { + // Now we need a proper lock to use the logging structure. The pcs field + // is shared so we must lock before accessing it. This is fairly expensive, + // but if V logging is enabled we're slow anyway. + logging.mu.Lock() + defer logging.mu.Unlock() + if runtime.Callers(2+depth, logging.pcs[:]) == 0 { + return newVerbose(level, false) + } + // runtime.Callers returns "return PCs", but we want + // to look up the symbolic information for the call, + // so subtract 1 from the PC. runtime.CallersFrames + // would be cleaner, but allocates. + pc := logging.pcs[0] - 1 + v, ok := logging.vmap[pc] + if !ok { + v = logging.setV(pc) + } + return newVerbose(level, v >= level) + } + return newVerbose(level, false) +} + +// Enabled will return true if this log level is enabled, guarded by the value +// of v. +// See the documentation of V for usage. +func (v Verbose) Enabled() bool { + return v.enabled +} + +// Info is equivalent to the global Info function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) Info(args ...interface{}) { + if v.enabled { + logging.print(severity.InfoLog, v.logger, logging.filter, args...) + } +} + +// InfoDepth is equivalent to the global InfoDepth function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) InfoDepth(depth int, args ...interface{}) { + if v.enabled { + logging.printDepth(severity.InfoLog, v.logger, logging.filter, depth, args...) + } +} + +// Infoln is equivalent to the global Infoln function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) Infoln(args ...interface{}) { + if v.enabled { + logging.println(severity.InfoLog, v.logger, logging.filter, args...) + } +} + +// InfolnDepth is equivalent to the global InfolnDepth function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) InfolnDepth(depth int, args ...interface{}) { + if v.enabled { + logging.printlnDepth(severity.InfoLog, v.logger, logging.filter, depth, args...) + } +} + +// Infof is equivalent to the global Infof function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) Infof(format string, args ...interface{}) { + if v.enabled { + logging.printf(severity.InfoLog, v.logger, logging.filter, format, args...) + } +} + +// InfofDepth is equivalent to the global InfofDepth function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) InfofDepth(depth int, format string, args ...interface{}) { + if v.enabled { + logging.printfDepth(severity.InfoLog, v.logger, logging.filter, depth, format, args...) + } +} + +// InfoS is equivalent to the global InfoS function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) InfoS(msg string, keysAndValues ...interface{}) { + if v.enabled { + logging.infoS(v.logger, logging.filter, 0, msg, keysAndValues...) + } +} + +// InfoSDepth acts as InfoS but uses depth to determine which call frame to log. +// InfoSDepth(0, "msg") is the same as InfoS("msg"). +func InfoSDepth(depth int, msg string, keysAndValues ...interface{}) { + logging.infoS(logging.logger, logging.filter, depth, msg, keysAndValues...) +} + +// InfoSDepth is equivalent to the global InfoSDepth function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) InfoSDepth(depth int, msg string, keysAndValues ...interface{}) { + if v.enabled { + logging.infoS(v.logger, logging.filter, depth, msg, keysAndValues...) + } +} + +// Deprecated: Use ErrorS instead. +func (v Verbose) Error(err error, msg string, args ...interface{}) { + if v.enabled { + logging.errorS(err, v.logger, logging.filter, 0, msg, args...) + } +} + +// ErrorS is equivalent to the global Error function, guarded by the value of v. +// See the documentation of V for usage. +func (v Verbose) ErrorS(err error, msg string, keysAndValues ...interface{}) { + if v.enabled { + logging.errorS(err, v.logger, logging.filter, 0, msg, keysAndValues...) + } +} + +// Info logs to the INFO log. +// Arguments are handled in the manner of fmt.Print; a newline is appended if missing. +func Info(args ...interface{}) { + logging.print(severity.InfoLog, logging.logger, logging.filter, args...) +} + +// InfoDepth acts as Info but uses depth to determine which call frame to log. +// InfoDepth(0, "msg") is the same as Info("msg"). +func InfoDepth(depth int, args ...interface{}) { + logging.printDepth(severity.InfoLog, logging.logger, logging.filter, depth, args...) +} + +// Infoln logs to the INFO log. +// Arguments are handled in the manner of fmt.Println; a newline is always appended. +func Infoln(args ...interface{}) { + logging.println(severity.InfoLog, logging.logger, logging.filter, args...) +} + +// InfolnDepth acts as Infoln but uses depth to determine which call frame to log. +// InfolnDepth(0, "msg") is the same as Infoln("msg"). +func InfolnDepth(depth int, args ...interface{}) { + logging.printlnDepth(severity.InfoLog, logging.logger, logging.filter, depth, args...) +} + +// Infof logs to the INFO log. +// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing. +func Infof(format string, args ...interface{}) { + logging.printf(severity.InfoLog, logging.logger, logging.filter, format, args...) +} + +// InfofDepth acts as Infof but uses depth to determine which call frame to log. +// InfofDepth(0, "msg", args...) is the same as Infof("msg", args...). +func InfofDepth(depth int, format string, args ...interface{}) { + logging.printfDepth(severity.InfoLog, logging.logger, logging.filter, depth, format, args...) +} + +// InfoS structured logs to the INFO log. +// The msg argument used to add constant description to the log line. +// The key/value pairs would be join by "=" ; a newline is always appended. +// +// Basic examples: +// >> klog.InfoS("Pod status updated", "pod", "kubedns", "status", "ready") +// output: +// >> I1025 00:15:15.525108 1 controller_utils.go:116] "Pod status updated" pod="kubedns" status="ready" +func InfoS(msg string, keysAndValues ...interface{}) { + logging.infoS(logging.logger, logging.filter, 0, msg, keysAndValues...) +} + +// Warning logs to the WARNING and INFO logs. +// Arguments are handled in the manner of fmt.Print; a newline is appended if missing. +func Warning(args ...interface{}) { + logging.print(severity.WarningLog, logging.logger, logging.filter, args...) +} + +// WarningDepth acts as Warning but uses depth to determine which call frame to log. +// WarningDepth(0, "msg") is the same as Warning("msg"). +func WarningDepth(depth int, args ...interface{}) { + logging.printDepth(severity.WarningLog, logging.logger, logging.filter, depth, args...) +} + +// Warningln logs to the WARNING and INFO logs. +// Arguments are handled in the manner of fmt.Println; a newline is always appended. +func Warningln(args ...interface{}) { + logging.println(severity.WarningLog, logging.logger, logging.filter, args...) +} + +// WarninglnDepth acts as Warningln but uses depth to determine which call frame to log. +// WarninglnDepth(0, "msg") is the same as Warningln("msg"). +func WarninglnDepth(depth int, args ...interface{}) { + logging.printlnDepth(severity.WarningLog, logging.logger, logging.filter, depth, args...) +} + +// Warningf logs to the WARNING and INFO logs. +// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing. +func Warningf(format string, args ...interface{}) { + logging.printf(severity.WarningLog, logging.logger, logging.filter, format, args...) +} + +// WarningfDepth acts as Warningf but uses depth to determine which call frame to log. +// WarningfDepth(0, "msg", args...) is the same as Warningf("msg", args...). +func WarningfDepth(depth int, format string, args ...interface{}) { + logging.printfDepth(severity.WarningLog, logging.logger, logging.filter, depth, format, args...) +} + +// Error logs to the ERROR, WARNING, and INFO logs. +// Arguments are handled in the manner of fmt.Print; a newline is appended if missing. +func Error(args ...interface{}) { + logging.print(severity.ErrorLog, logging.logger, logging.filter, args...) +} + +// ErrorDepth acts as Error but uses depth to determine which call frame to log. +// ErrorDepth(0, "msg") is the same as Error("msg"). +func ErrorDepth(depth int, args ...interface{}) { + logging.printDepth(severity.ErrorLog, logging.logger, logging.filter, depth, args...) +} + +// Errorln logs to the ERROR, WARNING, and INFO logs. +// Arguments are handled in the manner of fmt.Println; a newline is always appended. +func Errorln(args ...interface{}) { + logging.println(severity.ErrorLog, logging.logger, logging.filter, args...) +} + +// ErrorlnDepth acts as Errorln but uses depth to determine which call frame to log. +// ErrorlnDepth(0, "msg") is the same as Errorln("msg"). +func ErrorlnDepth(depth int, args ...interface{}) { + logging.printlnDepth(severity.ErrorLog, logging.logger, logging.filter, depth, args...) +} + +// Errorf logs to the ERROR, WARNING, and INFO logs. +// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing. +func Errorf(format string, args ...interface{}) { + logging.printf(severity.ErrorLog, logging.logger, logging.filter, format, args...) +} + +// ErrorfDepth acts as Errorf but uses depth to determine which call frame to log. +// ErrorfDepth(0, "msg", args...) is the same as Errorf("msg", args...). +func ErrorfDepth(depth int, format string, args ...interface{}) { + logging.printfDepth(severity.ErrorLog, logging.logger, logging.filter, depth, format, args...) +} + +// ErrorS structured logs to the ERROR, WARNING, and INFO logs. +// the err argument used as "err" field of log line. +// The msg argument used to add constant description to the log line. +// The key/value pairs would be join by "=" ; a newline is always appended. +// +// Basic examples: +// >> klog.ErrorS(err, "Failed to update pod status") +// output: +// >> E1025 00:15:15.525108 1 controller_utils.go:114] "Failed to update pod status" err="timeout" +func ErrorS(err error, msg string, keysAndValues ...interface{}) { + logging.errorS(err, logging.logger, logging.filter, 0, msg, keysAndValues...) +} + +// ErrorSDepth acts as ErrorS but uses depth to determine which call frame to log. +// ErrorSDepth(0, "msg") is the same as ErrorS("msg"). +func ErrorSDepth(depth int, err error, msg string, keysAndValues ...interface{}) { + logging.errorS(err, logging.logger, logging.filter, depth, msg, keysAndValues...) +} + +// Fatal logs to the FATAL, ERROR, WARNING, and INFO logs, +// prints stack trace(s), then calls OsExit(255). +// +// Stderr only receives a dump of the current goroutine's stack trace. Log files, +// if there are any, receive a dump of the stack traces in all goroutines. +// +// Callers who want more control over handling of fatal events may instead use a +// combination of different functions: +// - some info or error logging function, optionally with a stack trace +// value generated by github.com/go-logr/lib/dbg.Backtrace +// - Flush to flush pending log data +// - panic, os.Exit or returning to the caller with an error +// +// Arguments are handled in the manner of fmt.Print; a newline is appended if missing. +func Fatal(args ...interface{}) { + logging.print(severity.FatalLog, logging.logger, logging.filter, args...) +} + +// FatalDepth acts as Fatal but uses depth to determine which call frame to log. +// FatalDepth(0, "msg") is the same as Fatal("msg"). +func FatalDepth(depth int, args ...interface{}) { + logging.printDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...) +} + +// Fatalln logs to the FATAL, ERROR, WARNING, and INFO logs, +// including a stack trace of all running goroutines, then calls OsExit(255). +// Arguments are handled in the manner of fmt.Println; a newline is always appended. +func Fatalln(args ...interface{}) { + logging.println(severity.FatalLog, logging.logger, logging.filter, args...) +} + +// FatallnDepth acts as Fatalln but uses depth to determine which call frame to log. +// FatallnDepth(0, "msg") is the same as Fatalln("msg"). +func FatallnDepth(depth int, args ...interface{}) { + logging.printlnDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...) +} + +// Fatalf logs to the FATAL, ERROR, WARNING, and INFO logs, +// including a stack trace of all running goroutines, then calls OsExit(255). +// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing. +func Fatalf(format string, args ...interface{}) { + logging.printf(severity.FatalLog, logging.logger, logging.filter, format, args...) +} + +// FatalfDepth acts as Fatalf but uses depth to determine which call frame to log. +// FatalfDepth(0, "msg", args...) is the same as Fatalf("msg", args...). +func FatalfDepth(depth int, format string, args ...interface{}) { + logging.printfDepth(severity.FatalLog, logging.logger, logging.filter, depth, format, args...) +} + +// fatalNoStacks is non-zero if we are to exit without dumping goroutine stacks. +// It allows Exit and relatives to use the Fatal logs. +var fatalNoStacks uint32 + +// Exit logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1). +// Arguments are handled in the manner of fmt.Print; a newline is appended if missing. +func Exit(args ...interface{}) { + atomic.StoreUint32(&fatalNoStacks, 1) + logging.print(severity.FatalLog, logging.logger, logging.filter, args...) +} + +// ExitDepth acts as Exit but uses depth to determine which call frame to log. +// ExitDepth(0, "msg") is the same as Exit("msg"). +func ExitDepth(depth int, args ...interface{}) { + atomic.StoreUint32(&fatalNoStacks, 1) + logging.printDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...) +} + +// Exitln logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1). +func Exitln(args ...interface{}) { + atomic.StoreUint32(&fatalNoStacks, 1) + logging.println(severity.FatalLog, logging.logger, logging.filter, args...) +} + +// ExitlnDepth acts as Exitln but uses depth to determine which call frame to log. +// ExitlnDepth(0, "msg") is the same as Exitln("msg"). +func ExitlnDepth(depth int, args ...interface{}) { + atomic.StoreUint32(&fatalNoStacks, 1) + logging.printlnDepth(severity.FatalLog, logging.logger, logging.filter, depth, args...) +} + +// Exitf logs to the FATAL, ERROR, WARNING, and INFO logs, then calls OsExit(1). +// Arguments are handled in the manner of fmt.Printf; a newline is appended if missing. +func Exitf(format string, args ...interface{}) { + atomic.StoreUint32(&fatalNoStacks, 1) + logging.printf(severity.FatalLog, logging.logger, logging.filter, format, args...) +} + +// ExitfDepth acts as Exitf but uses depth to determine which call frame to log. +// ExitfDepth(0, "msg", args...) is the same as Exitf("msg", args...). +func ExitfDepth(depth int, format string, args ...interface{}) { + atomic.StoreUint32(&fatalNoStacks, 1) + logging.printfDepth(severity.FatalLog, logging.logger, logging.filter, depth, format, args...) +} + +// LogFilter is a collection of functions that can filter all logging calls, +// e.g. for sanitization of arguments and prevent accidental leaking of secrets. +type LogFilter interface { + Filter(args []interface{}) []interface{} + FilterF(format string, args []interface{}) (string, []interface{}) + FilterS(msg string, keysAndValues []interface{}) (string, []interface{}) +} + +// SetLogFilter installs a filter that is used for all log calls. +// +// Modifying the filter is not thread-safe and should be done while no other +// goroutines invoke log calls, usually during program initialization. +func SetLogFilter(filter LogFilter) { + logging.filter = filter +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/klog_file.go b/ecs-agent/vendor/k8s.io/klog/v2/klog_file.go new file mode 100644 index 0000000000..1025d644f3 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/klog_file.go @@ -0,0 +1,130 @@ +// Go support for leveled logs, analogous to https://code.google.com/p/google-glog/ +// +// Copyright 2013 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// File I/O for logs. + +package klog + +import ( + "errors" + "fmt" + "os" + "path/filepath" + "strings" + "sync" + "time" +) + +// MaxSize is the maximum size of a log file in bytes. +var MaxSize uint64 = 1024 * 1024 * 1800 + +// logDirs lists the candidate directories for new log files. +var logDirs []string + +func createLogDirs() { + if logging.logDir != "" { + logDirs = append(logDirs, logging.logDir) + } + logDirs = append(logDirs, os.TempDir()) +} + +var ( + pid = os.Getpid() + program = filepath.Base(os.Args[0]) + host = "unknownhost" + userName = "unknownuser" + userNameOnce sync.Once +) + +func init() { + if h, err := os.Hostname(); err == nil { + host = shortHostname(h) + } +} + +// shortHostname returns its argument, truncating at the first period. +// For instance, given "www.google.com" it returns "www". +func shortHostname(hostname string) string { + if i := strings.Index(hostname, "."); i >= 0 { + return hostname[:i] + } + return hostname +} + +// logName returns a new log file name containing tag, with start time t, and +// the name for the symlink for tag. +func logName(tag string, t time.Time) (name, link string) { + name = fmt.Sprintf("%s.%s.%s.log.%s.%04d%02d%02d-%02d%02d%02d.%d", + program, + host, + getUserName(), + tag, + t.Year(), + t.Month(), + t.Day(), + t.Hour(), + t.Minute(), + t.Second(), + pid) + return name, program + "." + tag +} + +var onceLogDirs sync.Once + +// create creates a new log file and returns the file and its filename, which +// contains tag ("INFO", "FATAL", etc.) and t. If the file is created +// successfully, create also attempts to update the symlink for that tag, ignoring +// errors. +// The startup argument indicates whether this is the initial startup of klog. +// If startup is true, existing files are opened for appending instead of truncated. +func create(tag string, t time.Time, startup bool) (f *os.File, filename string, err error) { + if logging.logFile != "" { + f, err := openOrCreate(logging.logFile, startup) + if err == nil { + return f, logging.logFile, nil + } + return nil, "", fmt.Errorf("log: unable to create log: %v", err) + } + onceLogDirs.Do(createLogDirs) + if len(logDirs) == 0 { + return nil, "", errors.New("log: no log dirs") + } + name, link := logName(tag, t) + var lastErr error + for _, dir := range logDirs { + fname := filepath.Join(dir, name) + f, err := openOrCreate(fname, startup) + if err == nil { + symlink := filepath.Join(dir, link) + os.Remove(symlink) // ignore err + os.Symlink(name, symlink) // ignore err + return f, fname, nil + } + lastErr = err + } + return nil, "", fmt.Errorf("log: cannot create log: %v", lastErr) +} + +// The startup argument indicates whether this is the initial startup of klog. +// If startup is true, existing files are opened for appending instead of truncated. +func openOrCreate(name string, startup bool) (*os.File, error) { + if startup { + f, err := os.OpenFile(name, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + return f, err + } + f, err := os.Create(name) + return f, err +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/klog_file_others.go b/ecs-agent/vendor/k8s.io/klog/v2/klog_file_others.go new file mode 100644 index 0000000000..aa46726851 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/klog_file_others.go @@ -0,0 +1,19 @@ +//go:build !windows +// +build !windows + +package klog + +import ( + "os/user" +) + +func getUserName() string { + userNameOnce.Do(func() { + current, err := user.Current() + if err == nil { + userName = current.Username + } + }) + + return userName +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/klog_file_windows.go b/ecs-agent/vendor/k8s.io/klog/v2/klog_file_windows.go new file mode 100644 index 0000000000..2517f9c538 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/klog_file_windows.go @@ -0,0 +1,34 @@ +//go:build windows +// +build windows + +package klog + +import ( + "os" + "strings" +) + +func getUserName() string { + userNameOnce.Do(func() { + // On Windows, the Go 'user' package requires netapi32.dll. + // This affects Windows Nano Server: + // https://github.com/golang/go/issues/21867 + // Fallback to using environment variables. + u := os.Getenv("USERNAME") + if len(u) == 0 { + return + } + // Sanitize the USERNAME since it may contain filepath separators. + u = strings.Replace(u, `\`, "_", -1) + + // user.Current().Username normally produces something like 'USERDOMAIN\USERNAME' + d := os.Getenv("USERDOMAIN") + if len(d) != 0 { + userName = d + "_" + u + } else { + userName = u + } + }) + + return userName +} diff --git a/ecs-agent/vendor/k8s.io/klog/v2/klogr.go b/ecs-agent/vendor/k8s.io/klog/v2/klogr.go new file mode 100644 index 0000000000..15de00e21f --- /dev/null +++ b/ecs-agent/vendor/k8s.io/klog/v2/klogr.go @@ -0,0 +1,89 @@ +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package klog + +import ( + "github.com/go-logr/logr" + + "k8s.io/klog/v2/internal/serialize" +) + +// NewKlogr returns a logger that is functionally identical to +// klogr.NewWithOptions(klogr.FormatKlog), i.e. it passes through to klog. The +// difference is that it uses a simpler implementation. +func NewKlogr() Logger { + return New(&klogger{}) +} + +// klogger is a subset of klogr/klogr.go. It had to be copied to break an +// import cycle (klogr wants to use klog, and klog wants to use klogr). +type klogger struct { + level int + callDepth int + prefix string + values []interface{} +} + +func (l *klogger) Init(info logr.RuntimeInfo) { + l.callDepth += info.CallDepth +} + +func (l *klogger) Info(level int, msg string, kvList ...interface{}) { + merged := serialize.MergeKVs(l.values, kvList) + if l.prefix != "" { + msg = l.prefix + ": " + msg + } + // Skip this function. + VDepth(l.callDepth+1, Level(level)).InfoSDepth(l.callDepth+1, msg, merged...) +} + +func (l *klogger) Enabled(level int) bool { + // Skip this function and logr.Logger.Info where Enabled is called. + return VDepth(l.callDepth+2, Level(level)).Enabled() +} + +func (l *klogger) Error(err error, msg string, kvList ...interface{}) { + merged := serialize.MergeKVs(l.values, kvList) + if l.prefix != "" { + msg = l.prefix + ": " + msg + } + ErrorSDepth(l.callDepth+1, err, msg, merged...) +} + +// WithName returns a new logr.Logger with the specified name appended. klogr +// uses '/' characters to separate name elements. Callers should not pass '/' +// in the provided name string, but this library does not actually enforce that. +func (l klogger) WithName(name string) logr.LogSink { + if len(l.prefix) > 0 { + l.prefix = l.prefix + "/" + } + l.prefix += name + return &l +} + +func (l klogger) WithValues(kvList ...interface{}) logr.LogSink { + l.values = serialize.WithValues(l.values, kvList) + return &l +} + +func (l klogger) WithCallDepth(depth int) logr.LogSink { + l.callDepth += depth + return &l +} + +var _ logr.LogSink = &klogger{} +var _ logr.CallDepthLogSink = &klogger{} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/LICENSE b/ecs-agent/vendor/k8s.io/mount-utils/LICENSE new file mode 100644 index 0000000000..8dada3edaf --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/k8s.io/mount-utils/OWNERS b/ecs-agent/vendor/k8s.io/mount-utils/OWNERS new file mode 100644 index 0000000000..64fb63c1e4 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/OWNERS @@ -0,0 +1,15 @@ +# See the OWNERS docs at https://go.k8s.io/owners + +reviewers: + - jingxu97 + - saad-ali + - jsafrane + - msau42 + - andyzhangx + - gnufied +approvers: + - jingxu97 + - saad-ali + - jsafrane +labels: + - sig/storage diff --git a/ecs-agent/vendor/k8s.io/mount-utils/README.md b/ecs-agent/vendor/k8s.io/mount-utils/README.md new file mode 100644 index 0000000000..ee7c8e89af --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/README.md @@ -0,0 +1,31 @@ +## Purpose + +This repository defines an interface to mounting filesystems to be consumed by +various Kubernetes and out-of-tree CSI components. + +Consumers of this repository can make use of functions like 'Mount' to mount +source to target as fstype with given options, 'Unmount' to unmount a target. +Other useful functions include 'List' all mounted file systems and find all +mount references to a path using 'GetMountRefs' + +## Community, discussion, contribution, and support + +Learn how to engage with the Kubernetes community on the [community +page](http://kubernetes.io/community/). + +You can reach the maintainers of this repository at: + +- Slack: #sig-storage (on https://kubernetes.slack.com -- get an + invite at slack.kubernetes.io) +- Mailing List: + https://groups.google.com/forum/#!forum/kubernetes-sig-storage + +### Code of Conduct + +Participation in the Kubernetes community is governed by the [Kubernetes +Code of Conduct](code-of-conduct.md). + +### Contibution Guidelines + +See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. + diff --git a/ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS b/ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS new file mode 100644 index 0000000000..14fe23e186 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS @@ -0,0 +1,18 @@ +# Defined below are the security contacts for this repo. +# +# They are the contact point for the Product Security Committee to reach out +# to for triaging and handling of incoming issues. +# +# The below names agree to abide by the +# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) +# and will be removed and replaced if they violate that agreement. +# +# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE +# INSTRUCTIONS AT https://kubernetes.io/security/ + +saad-ali +cjcullen +joelsmith +liggitt +philips +tallclair diff --git a/ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md b/ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md new file mode 100644 index 0000000000..0d15c00cf3 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md @@ -0,0 +1,3 @@ +# Kubernetes Community Code of Conduct + +Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/ecs-agent/vendor/k8s.io/mount-utils/doc.go b/ecs-agent/vendor/k8s.io/mount-utils/doc.go new file mode 100644 index 0000000000..b7cac03a52 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/doc.go @@ -0,0 +1,18 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package mount defines an interface to mounting filesystems. +package mount // import "k8s.io/mount-utils" diff --git a/ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go b/ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go new file mode 100644 index 0000000000..5a57015988 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go @@ -0,0 +1,242 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "os" + "path/filepath" + "sync" + + "k8s.io/klog/v2" +) + +// FakeMounter implements mount.Interface for tests. +type FakeMounter struct { + MountPoints []MountPoint + log []FakeAction + // Error to return for a path when calling IsLikelyNotMountPoint + MountCheckErrors map[string]error + // Some tests run things in parallel, make sure the mounter does not produce + // any golang's DATA RACE warnings. + mutex sync.Mutex + UnmountFunc UnmountFunc + skipMountPointCheck bool +} + +// UnmountFunc is a function callback to be executed during the Unmount() call. +type UnmountFunc func(path string) error + +var _ Interface = &FakeMounter{} + +const ( + // FakeActionMount is the string for specifying mount as FakeAction.Action + FakeActionMount = "mount" + // FakeActionUnmount is the string for specifying unmount as FakeAction.Action + FakeActionUnmount = "unmount" +) + +// FakeAction objects are logged every time a fake mount or unmount is called. +type FakeAction struct { + Action string // "mount" or "unmount" + Target string // applies to both mount and unmount actions + Source string // applies only to "mount" actions + FSType string // applies only to "mount" actions +} + +// NewFakeMounter returns a FakeMounter struct that implements Interface and is +// suitable for testing purposes. +func NewFakeMounter(mps []MountPoint) *FakeMounter { + return &FakeMounter{ + MountPoints: mps, + } +} + +func (f *FakeMounter) WithSkipMountPointCheck() *FakeMounter { + f.skipMountPointCheck = true + return f +} + +// ResetLog clears all the log entries in FakeMounter +func (f *FakeMounter) ResetLog() { + f.mutex.Lock() + defer f.mutex.Unlock() + + f.log = []FakeAction{} +} + +// GetLog returns the slice of FakeActions taken by the mounter +func (f *FakeMounter) GetLog() []FakeAction { + f.mutex.Lock() + defer f.mutex.Unlock() + + return f.log +} + +// Mount records the mount event and updates the in-memory mount points for FakeMounter +func (f *FakeMounter) Mount(source string, target string, fstype string, options []string) error { + return f.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) +} + +// Mount records the mount event and updates the in-memory mount points for FakeMounter +// sensitiveOptions to be passed in a separate parameter from the normal +// mount options and ensures the sensitiveOptions are never logged. This +// method should be used by callers that pass sensitive material (like +// passwords) as mount options. +func (f *FakeMounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + f.mutex.Lock() + defer f.mutex.Unlock() + + opts := []string{} + + for _, option := range options { + // find 'bind' option + if option == "bind" { + // This is a bind-mount. In order to mimic linux behaviour, we must + // use the original device of the bind-mount as the real source. + // E.g. when mounted /dev/sda like this: + // $ mount /dev/sda /mnt/test + // $ mount -o bind /mnt/test /mnt/bound + // then /proc/mount contains: + // /dev/sda /mnt/test + // /dev/sda /mnt/bound + // (and not /mnt/test /mnt/bound) + // I.e. we must use /dev/sda as source instead of /mnt/test in the + // bind mount. + for _, mnt := range f.MountPoints { + if source == mnt.Path { + source = mnt.Device + break + } + } + } + // reuse MountPoint.Opts field to mark mount as readonly + opts = append(opts, option) + } + + // If target is a symlink, get its absolute path + absTarget, err := filepath.EvalSymlinks(target) + if err != nil { + absTarget = target + } + f.MountPoints = append(f.MountPoints, MountPoint{Device: source, Path: absTarget, Type: fstype, Opts: append(opts, sensitiveOptions...)}) + klog.V(5).Infof("Fake mounter: mounted %s to %s", source, absTarget) + f.log = append(f.log, FakeAction{Action: FakeActionMount, Target: absTarget, Source: source, FSType: fstype}) + return nil +} + +func (f *FakeMounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return f.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) +} + +func (f *FakeMounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { + return f.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) +} + +// Unmount records the unmount event and updates the in-memory mount points for FakeMounter +func (f *FakeMounter) Unmount(target string) error { + f.mutex.Lock() + defer f.mutex.Unlock() + + // If target is a symlink, get its absolute path + absTarget, err := filepath.EvalSymlinks(target) + if err != nil { + absTarget = target + } + + newMountpoints := []MountPoint{} + for _, mp := range f.MountPoints { + if mp.Path == absTarget { + if f.UnmountFunc != nil { + err := f.UnmountFunc(absTarget) + if err != nil { + return err + } + } + klog.V(5).Infof("Fake mounter: unmounted %s from %s", mp.Device, absTarget) + // Don't copy it to newMountpoints + continue + } + newMountpoints = append(newMountpoints, MountPoint{Device: mp.Device, Path: mp.Path, Type: mp.Type}) + } + f.MountPoints = newMountpoints + f.log = append(f.log, FakeAction{Action: FakeActionUnmount, Target: absTarget}) + delete(f.MountCheckErrors, target) + return nil +} + +// List returns all the in-memory mountpoints for FakeMounter +func (f *FakeMounter) List() ([]MountPoint, error) { + f.mutex.Lock() + defer f.mutex.Unlock() + + return f.MountPoints, nil +} + +// IsLikelyNotMountPoint determines whether a path is a mountpoint by checking +// if the absolute path to file is in the in-memory mountpoints +func (f *FakeMounter) IsLikelyNotMountPoint(file string) (bool, error) { + f.mutex.Lock() + defer f.mutex.Unlock() + + err := f.MountCheckErrors[file] + if err != nil { + return false, err + } + + _, err = os.Stat(file) + if err != nil { + return true, err + } + + // If file is a symlink, get its absolute path + absFile, err := filepath.EvalSymlinks(file) + if err != nil { + absFile = file + } + + for _, mp := range f.MountPoints { + if mp.Path == absFile { + klog.V(5).Infof("isLikelyNotMountPoint for %s: mounted %s, false", file, mp.Path) + return false, nil + } + } + klog.V(5).Infof("isLikelyNotMountPoint for %s: true", file) + return true, nil +} + +func (f *FakeMounter) canSafelySkipMountPointCheck() bool { + return f.skipMountPointCheck +} + +func (f *FakeMounter) IsMountPoint(file string) (bool, error) { + notMnt, err := f.IsLikelyNotMountPoint(file) + if err != nil { + return false, err + } + return !notMnt, nil +} + +// GetMountRefs finds all mount references to the path, returns a +// list of paths. +func (f *FakeMounter) GetMountRefs(pathname string) ([]string, error) { + realpath, err := filepath.EvalSymlinks(pathname) + if err != nil { + // Ignore error in FakeMounter, because we actually didn't create files. + realpath = pathname + } + return getMountRefsByDev(f, realpath) +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount.go b/ecs-agent/vendor/k8s.io/mount-utils/mount.go new file mode 100644 index 0000000000..c42836f06c --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount.go @@ -0,0 +1,362 @@ +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// TODO(thockin): This whole pkg is pretty linux-centric. As soon as we have +// an alternate platform, we will need to abstract further. + +package mount + +import ( + "fmt" + "path/filepath" + "strings" + "time" + + utilexec "k8s.io/utils/exec" +) + +const ( + // Default mount command if mounter path is not specified. + defaultMountCommand = "mount" + // Log message where sensitive mount options were removed + sensitiveOptionsRemoved = "" +) + +// Interface defines the set of methods to allow for mount operations on a system. +type Interface interface { + // Mount mounts source to target as fstype with given options. + // options MUST not contain sensitive material (like passwords). + Mount(source string, target string, fstype string, options []string) error + // MountSensitive is the same as Mount() but this method allows + // sensitiveOptions to be passed in a separate parameter from the normal + // mount options and ensures the sensitiveOptions are never logged. This + // method should be used by callers that pass sensitive material (like + // passwords) as mount options. + MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error + // MountSensitiveWithoutSystemd is the same as MountSensitive() but this method disable using systemd mount. + MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error + // MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd() with additional mount flags + MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error + // Unmount unmounts given target. + Unmount(target string) error + // List returns a list of all mounted filesystems. This can be large. + // On some platforms, reading mounts directly from the OS is not guaranteed + // consistent (i.e. it could change between chunked reads). This is guaranteed + // to be consistent. + List() ([]MountPoint, error) + // IsLikelyNotMountPoint uses heuristics to determine if a directory + // is not a mountpoint. + // It should return ErrNotExist when the directory does not exist. + // IsLikelyNotMountPoint does NOT properly detect all mountpoint types + // most notably linux bind mounts and symbolic link. For callers that do not + // care about such situations, this is a faster alternative to calling List() + // and scanning that output. + IsLikelyNotMountPoint(file string) (bool, error) + // canSafelySkipMountPointCheck indicates whether this mounter returns errors on + // operations for targets that are not mount points. If this returns true, no such + // errors will be returned. + canSafelySkipMountPointCheck() bool + // IsMountPoint determines if a directory is a mountpoint. + // It should return ErrNotExist when the directory does not exist. + // IsMountPoint is more expensive than IsLikelyNotMountPoint. + // IsMountPoint detects bind mounts in linux. + // IsMountPoint may enumerate all the mountpoints using List() and + // the list of mountpoints may be large, then it uses + // isMountPointMatch to evaluate whether the directory is a mountpoint. + IsMountPoint(file string) (bool, error) + // GetMountRefs finds all mount references to pathname, returning a slice of + // paths. Pathname can be a mountpoint path or a normal directory + // (for bind mount). On Linux, pathname is excluded from the slice. + // For example, if /dev/sdc was mounted at /path/a and /path/b, + // GetMountRefs("/path/a") would return ["/path/b"] + // GetMountRefs("/path/b") would return ["/path/a"] + // On Windows there is no way to query all mount points; as long as pathname is + // a valid mount, it will be returned. + GetMountRefs(pathname string) ([]string, error) +} + +// Compile-time check to ensure all Mounter implementations satisfy +// the mount interface. +var _ Interface = &Mounter{} + +type MounterForceUnmounter interface { + Interface + // UnmountWithForce unmounts given target but will retry unmounting with force option + // after given timeout. + UnmountWithForce(target string, umountTimeout time.Duration) error +} + +// MountPoint represents a single line in /proc/mounts or /etc/fstab. +type MountPoint struct { // nolint: golint + Device string + Path string + Type string + Opts []string // Opts may contain sensitive mount options (like passwords) and MUST be treated as such (e.g. not logged). + Freq int + Pass int +} + +type MountErrorType string // nolint: golint + +const ( + FilesystemMismatch MountErrorType = "FilesystemMismatch" + HasFilesystemErrors MountErrorType = "HasFilesystemErrors" + UnformattedReadOnly MountErrorType = "UnformattedReadOnly" + FormatFailed MountErrorType = "FormatFailed" + GetDiskFormatFailed MountErrorType = "GetDiskFormatFailed" + UnknownMountError MountErrorType = "UnknownMountError" +) + +type MountError struct { // nolint: golint + Type MountErrorType + Message string +} + +func (mountError MountError) String() string { + return mountError.Message +} + +func (mountError MountError) Error() string { + return mountError.Message +} + +func NewMountError(mountErrorValue MountErrorType, format string, args ...interface{}) error { + mountError := MountError{ + Type: mountErrorValue, + Message: fmt.Sprintf(format, args...), + } + return mountError +} + +// SafeFormatAndMount probes a device to see if it is formatted. +// Namely it checks to see if a file system is present. If so it +// mounts it otherwise the device is formatted first then mounted. +type SafeFormatAndMount struct { + Interface + Exec utilexec.Interface +} + +// FormatAndMount formats the given disk, if needed, and mounts it. +// That is if the disk is not formatted and it is not being mounted as +// read-only it will format it first then mount it. Otherwise, if the +// disk is already formatted or it is being mounted as read-only, it +// will be mounted without formatting. +// options MUST not contain sensitive material (like passwords). +func (mounter *SafeFormatAndMount) FormatAndMount(source string, target string, fstype string, options []string) error { + return mounter.FormatAndMountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) +} + +// FormatAndMountSensitive is the same as FormatAndMount but this method allows +// sensitiveOptions to be passed in a separate parameter from the normal mount +// options and ensures the sensitiveOptions are never logged. This method should +// be used by callers that pass sensitive material (like passwords) as mount +// options. +func (mounter *SafeFormatAndMount) FormatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return mounter.formatAndMountSensitive(source, target, fstype, options, sensitiveOptions) +} + +// getMountRefsByDev finds all references to the device provided +// by mountPath; returns a list of paths. +// Note that mountPath should be path after the evaluation of any symblolic links. +func getMountRefsByDev(mounter Interface, mountPath string) ([]string, error) { + mps, err := mounter.List() + if err != nil { + return nil, err + } + + // Finding the device mounted to mountPath. + diskDev := "" + for i := range mps { + if mountPath == mps[i].Path { + diskDev = mps[i].Device + break + } + } + + // Find all references to the device. + var refs []string + for i := range mps { + if mps[i].Device == diskDev || mps[i].Device == mountPath { + if mps[i].Path != mountPath { + refs = append(refs, mps[i].Path) + } + } + } + return refs, nil +} + +// IsNotMountPoint determines if a directory is a mountpoint. +// It should return ErrNotExist when the directory does not exist. +// IsNotMountPoint is more expensive than IsLikelyNotMountPoint +// and depends on IsMountPoint. +// +// If an error occurs, it returns true (assuming it is not a mountpoint) +// when ErrNotExist is returned for callers similar to IsLikelyNotMountPoint. +// +// Deprecated: This function is kept to keep changes backward compatible with +// previous library version. Callers should prefer mounter.IsMountPoint. +func IsNotMountPoint(mounter Interface, file string) (bool, error) { + isMnt, err := mounter.IsMountPoint(file) + if err != nil { + return true, err + } + return !isMnt, nil +} + +// GetDeviceNameFromMount given a mnt point, find the device from /proc/mounts +// returns the device name, reference count, and error code. +func GetDeviceNameFromMount(mounter Interface, mountPath string) (string, int, error) { + mps, err := mounter.List() + if err != nil { + return "", 0, err + } + + // Find the device name. + // FIXME if multiple devices mounted on the same mount path, only the first one is returned. + device := "" + // If mountPath is symlink, need get its target path. + slTarget, err := filepath.EvalSymlinks(mountPath) + if err != nil { + slTarget = mountPath + } + for i := range mps { + if mps[i].Path == slTarget { + device = mps[i].Device + break + } + } + + // Find all references to the device. + refCount := 0 + for i := range mps { + if mps[i].Device == device { + refCount++ + } + } + return device, refCount, nil +} + +// MakeBindOpts detects whether a bind mount is being requested and makes the remount options to +// use in case of bind mount, due to the fact that bind mount doesn't respect mount options. +// The list equals: +// +// options - 'bind' + 'remount' (no duplicate) +func MakeBindOpts(options []string) (bool, []string, []string) { + bind, bindOpts, bindRemountOpts, _ := MakeBindOptsSensitive(options, nil /* sensitiveOptions */) + return bind, bindOpts, bindRemountOpts +} + +// MakeBindOptsSensitive is the same as MakeBindOpts but this method allows +// sensitiveOptions to be passed in a separate parameter from the normal mount +// options and ensures the sensitiveOptions are never logged. This method should +// be used by callers that pass sensitive material (like passwords) as mount +// options. +func MakeBindOptsSensitive(options []string, sensitiveOptions []string) (bool, []string, []string, []string) { + // Because we have an FD opened on the subpath bind mount, the "bind" option + // needs to be included, otherwise the mount target will error as busy if you + // remount as readonly. + // + // As a consequence, all read only bind mounts will no longer change the underlying + // volume mount to be read only. + bindRemountOpts := []string{"bind", "remount"} + bindRemountSensitiveOpts := []string{} + bind := false + bindOpts := []string{"bind"} + + // _netdev is a userspace mount option and does not automatically get added when + // bind mount is created and hence we must carry it over. + if checkForNetDev(options, sensitiveOptions) { + bindOpts = append(bindOpts, "_netdev") + } + + for _, option := range options { + switch option { + case "bind": + bind = true + case "remount": + default: + bindRemountOpts = append(bindRemountOpts, option) + } + } + + for _, sensitiveOption := range sensitiveOptions { + switch sensitiveOption { + case "bind": + bind = true + case "remount": + default: + bindRemountSensitiveOpts = append(bindRemountSensitiveOpts, sensitiveOption) + } + } + + return bind, bindOpts, bindRemountOpts, bindRemountSensitiveOpts +} + +func checkForNetDev(options []string, sensitiveOptions []string) bool { + for _, option := range options { + if option == "_netdev" { + return true + } + } + for _, sensitiveOption := range sensitiveOptions { + if sensitiveOption == "_netdev" { + return true + } + } + return false +} + +// PathWithinBase checks if give path is within given base directory. +func PathWithinBase(fullPath, basePath string) bool { + rel, err := filepath.Rel(basePath, fullPath) + if err != nil { + return false + } + if StartsWithBackstep(rel) { + // Needed to escape the base path. + return false + } + return true +} + +// StartsWithBackstep checks if the given path starts with a backstep segment. +func StartsWithBackstep(rel string) bool { + // normalize to / and check for ../ + return rel == ".." || strings.HasPrefix(filepath.ToSlash(rel), "../") +} + +// sanitizedOptionsForLogging will return a comma separated string containing +// options and sensitiveOptions. Each entry in sensitiveOptions will be +// replaced with the string sensitiveOptionsRemoved +// e.g. o1,o2,, +func sanitizedOptionsForLogging(options []string, sensitiveOptions []string) string { + separator := "" + if len(options) > 0 && len(sensitiveOptions) > 0 { + separator = "," + } + + sensitiveOptionsStart := "" + sensitiveOptionsEnd := "" + if len(sensitiveOptions) > 0 { + sensitiveOptionsStart = strings.Repeat(sensitiveOptionsRemoved+",", len(sensitiveOptions)-1) + sensitiveOptionsEnd = sensitiveOptionsRemoved + } + + return strings.Join(options, ",") + + separator + + sensitiveOptionsStart + + sensitiveOptionsEnd +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go new file mode 100644 index 0000000000..dc4131d78e --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go @@ -0,0 +1,157 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + "os" + "time" + + "k8s.io/klog/v2" +) + +// CleanupMountPoint unmounts the given path and deletes the remaining directory +// if successful. If extensiveMountPointCheck is true IsNotMountPoint will be +// called instead of IsLikelyNotMountPoint. IsNotMountPoint is more expensive +// but properly handles bind mounts within the same fs. +func CleanupMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool) error { + pathExists, pathErr := PathExists(mountPath) + if !pathExists && pathErr == nil { + klog.Warningf("Warning: mount cleanup skipped because path does not exist: %v", mountPath) + return nil + } + corruptedMnt := IsCorruptedMnt(pathErr) + if pathErr != nil && !corruptedMnt { + return fmt.Errorf("Error checking path: %v", pathErr) + } + return doCleanupMountPoint(mountPath, mounter, extensiveMountPointCheck, corruptedMnt) +} + +func CleanupMountWithForce(mountPath string, mounter MounterForceUnmounter, extensiveMountPointCheck bool, umountTimeout time.Duration) error { + pathExists, pathErr := PathExists(mountPath) + if !pathExists && pathErr == nil { + klog.Warningf("Warning: mount cleanup skipped because path does not exist: %v", mountPath) + return nil + } + corruptedMnt := IsCorruptedMnt(pathErr) + if pathErr != nil && !corruptedMnt { + return fmt.Errorf("Error checking path: %v", pathErr) + } + + if corruptedMnt || mounter.canSafelySkipMountPointCheck() { + klog.V(4).Infof("unmounting %q (corruptedMount: %t, mounterCanSkipMountPointChecks: %t)", + mountPath, corruptedMnt, mounter.canSafelySkipMountPointCheck()) + if err := mounter.UnmountWithForce(mountPath, umountTimeout); err != nil { + return err + } + return removePath(mountPath) + } + + notMnt, err := removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) + // if mountPath is not a mount point, it's just been removed or there was an error + if err != nil || notMnt { + return err + } + + klog.V(4).Infof("%q is a mountpoint, unmounting", mountPath) + if err := mounter.UnmountWithForce(mountPath, umountTimeout); err != nil { + return err + } + + notMnt, err = removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) + // if mountPath is not a mount point, it's either just been removed or there was an error + if notMnt { + return err + } + // mountPath is still a mount point + return fmt.Errorf("failed to cleanup mount point %v", mountPath) +} + +// doCleanupMountPoint unmounts the given path and +// deletes the remaining directory if successful. +// if extensiveMountPointCheck is true +// IsNotMountPoint will be called instead of IsLikelyNotMountPoint. +// IsNotMountPoint is more expensive but properly handles bind mounts within the same fs. +// if corruptedMnt is true, it means that the mountPath is a corrupted mountpoint, and the mount point check +// will be skipped. The mount point check will also be skipped if the mounter supports it. +func doCleanupMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool, corruptedMnt bool) error { + if corruptedMnt || mounter.canSafelySkipMountPointCheck() { + klog.V(4).Infof("unmounting %q (corruptedMount: %t, mounterCanSkipMountPointChecks: %t)", + mountPath, corruptedMnt, mounter.canSafelySkipMountPointCheck()) + if err := mounter.Unmount(mountPath); err != nil { + return err + } + return removePath(mountPath) + } + + notMnt, err := removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) + // if mountPath is not a mount point, it's just been removed or there was an error + if err != nil || notMnt { + return err + } + + klog.V(4).Infof("%q is a mountpoint, unmounting", mountPath) + if err := mounter.Unmount(mountPath); err != nil { + return err + } + + notMnt, err = removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) + // if mountPath is not a mount point, it's either just been removed or there was an error + if notMnt { + return err + } + // mountPath is still a mount point + return fmt.Errorf("failed to cleanup mount point %v", mountPath) +} + +// removePathIfNotMountPoint verifies if given mountPath is a mount point if not it attempts +// to remove the directory. Returns true and nil if directory was not a mount point and removed. +func removePathIfNotMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool) (bool, error) { + var notMnt bool + var err error + + if extensiveMountPointCheck { + notMnt, err = IsNotMountPoint(mounter, mountPath) + } else { + notMnt, err = mounter.IsLikelyNotMountPoint(mountPath) + } + + if err != nil { + if os.IsNotExist(err) { + klog.V(4).Infof("%q does not exist", mountPath) + return true, nil + } + return notMnt, err + } + + if notMnt { + klog.Warningf("Warning: %q is not a mountpoint, deleting", mountPath) + return notMnt, os.Remove(mountPath) + } + return notMnt, nil +} + +// removePath attempts to remove the directory. Returns nil if the directory was removed or does not exist. +func removePath(mountPath string) error { + klog.V(4).Infof("Warning: deleting path %q", mountPath) + err := os.Remove(mountPath) + if os.IsNotExist(err) { + klog.V(4).Infof("%q does not exist", mountPath) + return nil + } + return err +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go new file mode 100644 index 0000000000..cb8732fce7 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go @@ -0,0 +1,201 @@ +//go:build !windows +// +build !windows + +/* +Copyright 2019 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "errors" + "fmt" + "io/fs" + "os" + "strconv" + "strings" + "syscall" + + "k8s.io/klog/v2" + utilio "k8s.io/utils/io" +) + +const ( + // At least number of fields per line in /proc//mountinfo. + expectedAtLeastNumFieldsPerMountInfo = 10 + // How many times to retry for a consistent read of /proc/mounts. + maxListTries = 10 +) + +// IsCorruptedMnt return true if err is about corrupted mount point +func IsCorruptedMnt(err error) bool { + if err == nil { + return false + } + var underlyingError error + switch pe := err.(type) { + case nil: + return false + case *os.PathError: + underlyingError = pe.Err + case *os.LinkError: + underlyingError = pe.Err + case *os.SyscallError: + underlyingError = pe.Err + case syscall.Errno: + underlyingError = err + } + + return underlyingError == syscall.ENOTCONN || underlyingError == syscall.ESTALE || underlyingError == syscall.EIO || underlyingError == syscall.EACCES || underlyingError == syscall.EHOSTDOWN +} + +// MountInfo represents a single line in /proc//mountinfo. +type MountInfo struct { // nolint: golint + // Unique ID for the mount (maybe reused after umount). + ID int + // The ID of the parent mount (or of self for the root of this mount namespace's mount tree). + ParentID int + // Major indicates one half of the device ID which identifies the device class + // (parsed from `st_dev` for files on this filesystem). + Major int + // Minor indicates one half of the device ID which identifies a specific + // instance of device (parsed from `st_dev` for files on this filesystem). + Minor int + // The pathname of the directory in the filesystem which forms the root of this mount. + Root string + // Mount source, filesystem-specific information. e.g. device, tmpfs name. + Source string + // Mount point, the pathname of the mount point. + MountPoint string + // Optional fieds, zero or more fields of the form "tag[:value]". + OptionalFields []string + // The filesystem type in the form "type[.subtype]". + FsType string + // Per-mount options. + MountOptions []string + // Per-superblock options. + SuperOptions []string +} + +// ParseMountInfo parses /proc/xxx/mountinfo. +func ParseMountInfo(filename string) ([]MountInfo, error) { + content, err := utilio.ConsistentRead(filename, maxListTries) + if err != nil { + return []MountInfo{}, err + } + contentStr := string(content) + infos := []MountInfo{} + + for _, line := range strings.Split(contentStr, "\n") { + if line == "" { + // the last split() item is empty string following the last \n + continue + } + // See `man proc` for authoritative description of format of the file. + fields := strings.Fields(line) + if len(fields) < expectedAtLeastNumFieldsPerMountInfo { + return nil, fmt.Errorf("wrong number of fields in (expected at least %d, got %d): %s", expectedAtLeastNumFieldsPerMountInfo, len(fields), line) + } + id, err := strconv.Atoi(fields[0]) + if err != nil { + return nil, err + } + parentID, err := strconv.Atoi(fields[1]) + if err != nil { + return nil, err + } + mm := strings.Split(fields[2], ":") + if len(mm) != 2 { + return nil, fmt.Errorf("parsing '%s' failed: unexpected minor:major pair %s", line, mm) + } + major, err := strconv.Atoi(mm[0]) + if err != nil { + return nil, fmt.Errorf("parsing '%s' failed: unable to parse major device id, err:%v", mm[0], err) + } + minor, err := strconv.Atoi(mm[1]) + if err != nil { + return nil, fmt.Errorf("parsing '%s' failed: unable to parse minor device id, err:%v", mm[1], err) + } + + info := MountInfo{ + ID: id, + ParentID: parentID, + Major: major, + Minor: minor, + Root: fields[3], + MountPoint: fields[4], + MountOptions: splitMountOptions(fields[5]), + } + // All fields until "-" are "optional fields". + i := 6 + for ; i < len(fields) && fields[i] != "-"; i++ { + info.OptionalFields = append(info.OptionalFields, fields[i]) + } + // Parse the rest 3 fields. + i++ + if len(fields)-i < 3 { + return nil, fmt.Errorf("expect 3 fields in %s, got %d", line, len(fields)-i) + } + info.FsType = fields[i] + info.Source = fields[i+1] + info.SuperOptions = splitMountOptions(fields[i+2]) + infos = append(infos, info) + } + return infos, nil +} + +// splitMountOptions parses comma-separated list of mount options into an array. +// It respects double quotes - commas in them are not considered as the option separator. +func splitMountOptions(s string) []string { + inQuotes := false + list := strings.FieldsFunc(s, func(r rune) bool { + if r == '"' { + inQuotes = !inQuotes + } + // Report a new field only when outside of double quotes. + return r == ',' && !inQuotes + }) + return list +} + +// isMountPointMatch returns true if the path in mp is the same as dir. +// Handles case where mountpoint dir has been renamed due to stale NFS mount. +func isMountPointMatch(mp MountPoint, dir string) bool { + deletedDir := fmt.Sprintf("%s\\040(deleted)", dir) + return ((mp.Path == dir) || (mp.Path == deletedDir)) +} + +// PathExists returns true if the specified path exists. +// TODO: clean this up to use pkg/util/file/FileExists +func PathExists(path string) (bool, error) { + _, err := os.Stat(path) + if err == nil { + return true, nil + } else if errors.Is(err, fs.ErrNotExist) { + err = syscall.Access(path, syscall.F_OK) + if err == nil { + // The access syscall says the file exists, the stat syscall says it + // doesn't. This was observed on CIFS when the path was removed at + // the server somehow. POSIX calls this a stale file handle, let's fake + // that error and treat the path as existing but corrupted. + klog.Warningf("Potential stale file handle detected: %s", path) + return true, syscall.ESTALE + } + return false, nil + } else if IsCorruptedMnt(err) { + return true, err + } + return false, err +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go new file mode 100644 index 0000000000..995fd5a0cd --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go @@ -0,0 +1,111 @@ +//go:build windows +// +build windows + +/* +Copyright 2019 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + "os" + "strconv" + "strings" + "syscall" + + "k8s.io/klog/v2" +) + +// following failure codes are from https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes--1300-1699- +// ERROR_BAD_NETPATH = 53 +// ERROR_NETWORK_BUSY = 54 +// ERROR_UNEXP_NET_ERR = 59 +// ERROR_NETNAME_DELETED = 64 +// ERROR_NETWORK_ACCESS_DENIED = 65 +// ERROR_BAD_DEV_TYPE = 66 +// ERROR_BAD_NET_NAME = 67 +// ERROR_SESSION_CREDENTIAL_CONFLICT = 1219 +// ERROR_LOGON_FAILURE = 1326 +// WSAEHOSTDOWN = 10064 +var errorNoList = [...]int{53, 54, 59, 64, 65, 66, 67, 1219, 1326, 10064} + +// IsCorruptedMnt return true if err is about corrupted mount point +func IsCorruptedMnt(err error) bool { + if err == nil { + return false + } + + var underlyingError error + switch pe := err.(type) { + case nil: + return false + case *os.PathError: + underlyingError = pe.Err + case *os.LinkError: + underlyingError = pe.Err + case *os.SyscallError: + underlyingError = pe.Err + } + + if ee, ok := underlyingError.(syscall.Errno); ok { + for _, errno := range errorNoList { + if int(ee) == errno { + klog.Warningf("IsCorruptedMnt failed with error: %v, error code: %v", err, errno) + return true + } + } + } + + return false +} + +// NormalizeWindowsPath makes sure the given path is a valid path on Windows +// systems by making sure all instances of `/` are replaced with `\\`, and the +// path beings with `c:` +func NormalizeWindowsPath(path string) string { + normalizedPath := strings.Replace(path, "/", "\\", -1) + if strings.HasPrefix(normalizedPath, "\\") { + normalizedPath = "c:" + normalizedPath + } + return normalizedPath +} + +// ValidateDiskNumber : disk number should be a number in [0, 99] +func ValidateDiskNumber(disk string) error { + if _, err := strconv.Atoi(disk); err != nil { + return fmt.Errorf("wrong disk number format: %q, err: %v", disk, err) + } + return nil +} + +// isMountPointMatch determines if the mountpoint matches the dir +func isMountPointMatch(mp MountPoint, dir string) bool { + return mp.Path == dir +} + +// PathExists returns true if the specified path exists. +// TODO: clean this up to use pkg/util/file/FileExists +func PathExists(path string) (bool, error) { + _, err := os.Stat(path) + if err == nil { + return true, nil + } else if os.IsNotExist(err) { + return false, nil + } else if IsCorruptedMnt(err) { + return true, err + } + return false, err +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go new file mode 100644 index 0000000000..86323b7123 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go @@ -0,0 +1,802 @@ +//go:build linux +// +build linux + +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "context" + "errors" + "fmt" + "github.com/moby/sys/mountinfo" + "io/fs" + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "strconv" + "strings" + "syscall" + "time" + + "k8s.io/klog/v2" + utilexec "k8s.io/utils/exec" + utilio "k8s.io/utils/io" +) + +const ( + // Number of fields per line in /proc/mounts as per the fstab man page. + expectedNumFieldsPerLine = 6 + // Location of the mount file to use + procMountsPath = "/proc/mounts" + // Location of the mountinfo file + procMountInfoPath = "/proc/self/mountinfo" + // 'fsck' found errors and corrected them + fsckErrorsCorrected = 1 + // 'fsck' found errors but exited without correcting them + fsckErrorsUncorrected = 4 + // Error thrown by exec cmd.Run() when process spawned by cmd.Start() completes before cmd.Wait() is called (see - k/k issue #103753) + errNoChildProcesses = "wait: no child processes" + // Error returned by some `umount` implementations when the specified path is not a mount point + errNotMounted = "not mounted" +) + +// Mounter provides the default implementation of mount.Interface +// for the linux platform. This implementation assumes that the +// kubelet is running in the host's root mount namespace. +type Mounter struct { + mounterPath string + withSystemd *bool + trySystemd bool + withSafeNotMountedBehavior bool +} + +var _ MounterForceUnmounter = &Mounter{} + +// New returns a mount.Interface for the current system. +// It provides options to override the default mounter behavior. +// mounterPath allows using an alternative to `/bin/mount` for mounting. +func New(mounterPath string) Interface { + return &Mounter{ + mounterPath: mounterPath, + trySystemd: true, + withSafeNotMountedBehavior: detectSafeNotMountedBehavior(), + } +} + +// NewWithoutSystemd returns a Linux specific mount.Interface for the current +// system. It provides options to override the default mounter behavior. +// mounterPath allows using an alternative to `/bin/mount` for mounting. Any +// detection for systemd functionality is disabled with this Mounter. +func NewWithoutSystemd(mounterPath string) Interface { + return &Mounter{ + mounterPath: mounterPath, + trySystemd: false, + withSafeNotMountedBehavior: detectSafeNotMountedBehavior(), + } +} + +// hasSystemd validates that the withSystemd bool is set, if it is not, +// detectSystemd will be called once for this Mounter instance. +func (mounter *Mounter) hasSystemd() bool { + if !mounter.trySystemd { + mounter.withSystemd = &mounter.trySystemd + } + + if mounter.withSystemd == nil { + withSystemd := detectSystemd() + mounter.withSystemd = &withSystemd + } + + return *mounter.withSystemd +} + +// Mount mounts source to target as fstype with given options. 'source' and 'fstype' must +// be an empty string in case it's not required, e.g. for remount, or for auto filesystem +// type, where kernel handles fstype for you. The mount 'options' is a list of options, +// currently come from mount(8), e.g. "ro", "remount", "bind", etc. If no more option is +// required, call Mount with an empty string list or nil. +func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { + return mounter.MountSensitive(source, target, fstype, options, nil) +} + +// MountSensitive is the same as Mount() but this method allows +// sensitiveOptions to be passed in a separate parameter from the normal +// mount options and ensures the sensitiveOptions are never logged. This +// method should be used by callers that pass sensitive material (like +// passwords) as mount options. +func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + // Path to mounter binary if containerized mounter is needed. Otherwise, it is set to empty. + // All Linux distros are expected to be shipped with a mount utility that a support bind mounts. + mounterPath := "" + bind, bindOpts, bindRemountOpts, bindRemountOptsSensitive := MakeBindOptsSensitive(options, sensitiveOptions) + if bind { + err := mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindOpts, bindRemountOptsSensitive, nil /* mountFlags */, mounter.trySystemd) + if err != nil { + return err + } + return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts, bindRemountOptsSensitive, nil /* mountFlags */, mounter.trySystemd) + } + // The list of filesystems that require containerized mounter on GCI image cluster + fsTypesNeedMounter := map[string]struct{}{ + "nfs": {}, + "glusterfs": {}, + "ceph": {}, + "cifs": {}, + } + if _, ok := fsTypesNeedMounter[fstype]; ok { + mounterPath = mounter.mounterPath + } + return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions, nil /* mountFlags */, mounter.trySystemd) +} + +// MountSensitiveWithoutSystemd is the same as MountSensitive() but disable using systemd mount. +func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return mounter.MountSensitiveWithoutSystemdWithMountFlags(source, target, fstype, options, sensitiveOptions, nil /* mountFlags */) +} + +// MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd with additional mount flags. +func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { + mounterPath := "" + bind, bindOpts, bindRemountOpts, bindRemountOptsSensitive := MakeBindOptsSensitive(options, sensitiveOptions) + if bind { + err := mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindOpts, bindRemountOptsSensitive, mountFlags, false) + if err != nil { + return err + } + return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts, bindRemountOptsSensitive, mountFlags, false) + } + // The list of filesystems that require containerized mounter on GCI image cluster + fsTypesNeedMounter := map[string]struct{}{ + "nfs": {}, + "glusterfs": {}, + "ceph": {}, + "cifs": {}, + } + if _, ok := fsTypesNeedMounter[fstype]; ok { + mounterPath = mounter.mounterPath + } + return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions, mountFlags, false) +} + +// doMount runs the mount command. mounterPath is the path to mounter binary if containerized mounter is used. +// sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material) +// systemdMountRequired is an extension of option to decide whether uses systemd mount. +func (mounter *Mounter) doMount(mounterPath string, mountCmd string, source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string, systemdMountRequired bool) error { + mountArgs, mountArgsLogStr := MakeMountArgsSensitiveWithMountFlags(source, target, fstype, options, sensitiveOptions, mountFlags) + if len(mounterPath) > 0 { + mountArgs = append([]string{mountCmd}, mountArgs...) + mountArgsLogStr = mountCmd + " " + mountArgsLogStr + mountCmd = mounterPath + } + + if systemdMountRequired && mounter.hasSystemd() { + // Try to run mount via systemd-run --scope. This will escape the + // service where kubelet runs and any fuse daemons will be started in a + // specific scope. kubelet service than can be restarted without killing + // these fuse daemons. + // + // Complete command line (when mounterPath is not used): + // systemd-run --description=... --scope -- mount -t + // + // Expected flow: + // * systemd-run creates a transient scope (=~ cgroup) and executes its + // argument (/bin/mount) there. + // * mount does its job, forks a fuse daemon if necessary and finishes. + // (systemd-run --scope finishes at this point, returning mount's exit + // code and stdout/stderr - thats one of --scope benefits). + // * systemd keeps the fuse daemon running in the scope (i.e. in its own + // cgroup) until the fuse daemon dies (another --scope benefit). + // Kubelet service can be restarted and the fuse daemon survives. + // * When the fuse daemon dies (e.g. during unmount) systemd removes the + // scope automatically. + // + // systemd-mount is not used because it's too new for older distros + // (CentOS 7, Debian Jessie). + mountCmd, mountArgs, mountArgsLogStr = AddSystemdScopeSensitive("systemd-run", target, mountCmd, mountArgs, mountArgsLogStr) + // } else { + // No systemd-run on the host (or we failed to check it), assume kubelet + // does not run as a systemd service. + // No code here, mountCmd and mountArgs are already populated. + } + + // Logging with sensitive mount options removed. + klog.V(4).Infof("Mounting cmd (%s) with arguments (%s)", mountCmd, mountArgsLogStr) + command := exec.Command(mountCmd, mountArgs...) + output, err := command.CombinedOutput() + if err != nil { + if err.Error() == errNoChildProcesses { + if command.ProcessState.Success() { + // We don't consider errNoChildProcesses an error if the process itself succeeded (see - k/k issue #103753). + return nil + } + // Rewrite err with the actual exit error of the process. + err = &exec.ExitError{ProcessState: command.ProcessState} + } + klog.Errorf("Mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s\n", err, mountCmd, mountArgsLogStr, string(output)) + return fmt.Errorf("mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s", + err, mountCmd, mountArgsLogStr, string(output)) + } + return err +} + +// detectSystemd returns true if OS runs with systemd as init. When not sure +// (permission errors, ...), it returns false. +// There may be different ways how to detect systemd, this one makes sure that +// systemd-runs (needed by Mount()) works. +func detectSystemd() bool { + if _, err := exec.LookPath("systemd-run"); err != nil { + klog.V(2).Infof("Detected OS without systemd") + return false + } + // Try to run systemd-run --scope /bin/true, that should be enough + // to make sure that systemd is really running and not just installed, + // which happens when running in a container with a systemd-based image + // but with different pid 1. + cmd := exec.Command("systemd-run", "--description=Kubernetes systemd probe", "--scope", "true") + output, err := cmd.CombinedOutput() + if err != nil { + klog.V(2).Infof("Cannot run systemd-run, assuming non-systemd OS") + klog.V(4).Infof("systemd-run output: %s, failed with: %v", string(output), err) + return false + } + klog.V(2).Infof("Detected OS with systemd") + return true +} + +// detectSafeNotMountedBehavior returns true if the umount implementation replies "not mounted" +// when the specified path is not mounted. When not sure (permission errors, ...), it returns false. +// When possible, we will trust umount's message and avoid doing our own mount point checks. +// More info: https://github.com/util-linux/util-linux/blob/v2.2/mount/umount.c#L179 +func detectSafeNotMountedBehavior() bool { + return detectSafeNotMountedBehaviorWithExec(utilexec.New()) +} + +// detectSafeNotMountedBehaviorWithExec is for testing with FakeExec. +func detectSafeNotMountedBehaviorWithExec(exec utilexec.Interface) bool { + // create a temp dir and try to umount it + path, err := ioutil.TempDir("", "kubelet-detect-safe-umount") + if err != nil { + klog.V(4).Infof("Cannot create temp dir to detect safe 'not mounted' behavior: %v", err) + return false + } + defer os.RemoveAll(path) + cmd := exec.Command("umount", path) + output, err := cmd.CombinedOutput() + if err != nil { + if strings.Contains(string(output), errNotMounted) { + klog.V(4).Infof("Detected umount with safe 'not mounted' behavior") + return true + } + klog.V(4).Infof("'umount %s' failed with: %v, output: %s", path, err, string(output)) + } + klog.V(4).Infof("Detected umount with unsafe 'not mounted' behavior") + return false +} + +// MakeMountArgs makes the arguments to the mount(8) command. +// options MUST not contain sensitive material (like passwords). +func MakeMountArgs(source, target, fstype string, options []string) (mountArgs []string) { + mountArgs, _ = MakeMountArgsSensitive(source, target, fstype, options, nil /* sensitiveOptions */) + return mountArgs +} + +// MakeMountArgsSensitive makes the arguments to the mount(8) command. +// sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material) +func MakeMountArgsSensitive(source, target, fstype string, options []string, sensitiveOptions []string) (mountArgs []string, mountArgsLogStr string) { + return MakeMountArgsSensitiveWithMountFlags(source, target, fstype, options, sensitiveOptions, nil /* mountFlags */) +} + +// MakeMountArgsSensitiveWithMountFlags makes the arguments to the mount(8) command. +// sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material) +// mountFlags are additional mount flags that are not related with the fstype +// and mount options +func MakeMountArgsSensitiveWithMountFlags(source, target, fstype string, options []string, sensitiveOptions []string, mountFlags []string) (mountArgs []string, mountArgsLogStr string) { + // Build mount command as follows: + // mount [$mountFlags] [-t $fstype] [-o $options] [$source] $target + mountArgs = []string{} + mountArgsLogStr = "" + + mountArgs = append(mountArgs, mountFlags...) + mountArgsLogStr += strings.Join(mountFlags, " ") + + if len(fstype) > 0 { + mountArgs = append(mountArgs, "-t", fstype) + mountArgsLogStr += strings.Join(mountArgs, " ") + } + if len(options) > 0 || len(sensitiveOptions) > 0 { + combinedOptions := []string{} + combinedOptions = append(combinedOptions, options...) + combinedOptions = append(combinedOptions, sensitiveOptions...) + mountArgs = append(mountArgs, "-o", strings.Join(combinedOptions, ",")) + // exclude sensitiveOptions from log string + mountArgsLogStr += " -o " + sanitizedOptionsForLogging(options, sensitiveOptions) + } + if len(source) > 0 { + mountArgs = append(mountArgs, source) + mountArgsLogStr += " " + source + } + mountArgs = append(mountArgs, target) + mountArgsLogStr += " " + target + + return mountArgs, mountArgsLogStr +} + +// AddSystemdScope adds "system-run --scope" to given command line +// If args contains sensitive material, use AddSystemdScopeSensitive to construct +// a safe to log string. +func AddSystemdScope(systemdRunPath, mountName, command string, args []string) (string, []string) { + descriptionArg := fmt.Sprintf("--description=Kubernetes transient mount for %s", mountName) + systemdRunArgs := []string{descriptionArg, "--scope", "--", command} + return systemdRunPath, append(systemdRunArgs, args...) +} + +// AddSystemdScopeSensitive adds "system-run --scope" to given command line +// It also accepts takes a sanitized string containing mount arguments, mountArgsLogStr, +// and returns the string appended to the systemd command for logging. +func AddSystemdScopeSensitive(systemdRunPath, mountName, command string, args []string, mountArgsLogStr string) (string, []string, string) { + descriptionArg := fmt.Sprintf("--description=Kubernetes transient mount for %s", mountName) + systemdRunArgs := []string{descriptionArg, "--scope", "--", command} + return systemdRunPath, append(systemdRunArgs, args...), strings.Join(systemdRunArgs, " ") + " " + mountArgsLogStr +} + +// Unmount unmounts the target. +// If the mounter has safe "not mounted" behavior, no error will be returned when the target is not a mount point. +func (mounter *Mounter) Unmount(target string) error { + klog.V(4).Infof("Unmounting %s", target) + command := exec.Command("umount", target) + output, err := command.CombinedOutput() + if err != nil { + if err.Error() == errNoChildProcesses { + if command.ProcessState.Success() { + // We don't consider errNoChildProcesses an error if the process itself succeeded (see - k/k issue #103753). + return nil + } + // Rewrite err with the actual exit error of the process. + err = &exec.ExitError{ProcessState: command.ProcessState} + } + if mounter.withSafeNotMountedBehavior && strings.Contains(string(output), errNotMounted) { + klog.V(4).Infof("ignoring 'not mounted' error for %s", target) + return nil + } + return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", err, target, string(output)) + } + return nil +} + +// UnmountWithForce unmounts given target but will retry unmounting with force option +// after given timeout. +func (mounter *Mounter) UnmountWithForce(target string, umountTimeout time.Duration) error { + err := tryUnmount(target, umountTimeout) + if err != nil { + if err == context.DeadlineExceeded { + klog.V(2).Infof("Timed out waiting for unmount of %s, trying with -f", target) + err = forceUmount(target) + } + return err + } + return nil +} + +// List returns a list of all mounted filesystems. +func (*Mounter) List() ([]MountPoint, error) { + return ListProcMounts(procMountsPath) +} + +// IsLikelyNotMountPoint determines if a directory is not a mountpoint. +// It is fast but not necessarily ALWAYS correct. If the path is in fact +// a bind mount from one part of a mount to another it will not be detected. +// It also can not distinguish between mountpoints and symbolic links. +// mkdir /tmp/a /tmp/b; mount --bind /tmp/a /tmp/b; IsLikelyNotMountPoint("/tmp/b") +// will return true. When in fact /tmp/b is a mount point. If this situation +// is of interest to you, don't use this function... +func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { + stat, err := os.Stat(file) + if err != nil { + return true, err + } + rootStat, err := os.Stat(filepath.Dir(strings.TrimSuffix(file, "/"))) + if err != nil { + return true, err + } + // If the directory has a different device as parent, then it is a mountpoint. + if stat.Sys().(*syscall.Stat_t).Dev != rootStat.Sys().(*syscall.Stat_t).Dev { + return false, nil + } + + return true, nil +} + +// canSafelySkipMountPointCheck relies on the detected behavior of umount when given a target that is not a mount point. +func (mounter *Mounter) canSafelySkipMountPointCheck() bool { + return mounter.withSafeNotMountedBehavior +} + +// GetMountRefs finds all mount references to pathname, returns a +// list of paths. Path could be a mountpoint or a normal +// directory (for bind mount). +func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { + pathExists, pathErr := PathExists(pathname) + if !pathExists { + return []string{}, nil + } else if IsCorruptedMnt(pathErr) { + klog.Warningf("GetMountRefs found corrupted mount at %s, treating as unmounted path", pathname) + return []string{}, nil + } else if pathErr != nil { + return nil, fmt.Errorf("error checking path %s: %v", pathname, pathErr) + } + realpath, err := filepath.EvalSymlinks(pathname) + if err != nil { + return nil, err + } + return SearchMountPoints(realpath, procMountInfoPath) +} + +// checkAndRepairFileSystem checks and repairs filesystems using command fsck. +func (mounter *SafeFormatAndMount) checkAndRepairFilesystem(source string) error { + klog.V(4).Infof("Checking for issues with fsck on disk: %s", source) + args := []string{"-a", source} + out, err := mounter.Exec.Command("fsck", args...).CombinedOutput() + if err != nil { + ee, isExitError := err.(utilexec.ExitError) + switch { + case err == utilexec.ErrExecutableNotFound: + klog.Warningf("'fsck' not found on system; continuing mount without running 'fsck'.") + case isExitError && ee.ExitStatus() == fsckErrorsCorrected: + klog.Infof("Device %s has errors which were corrected by fsck.", source) + case isExitError && ee.ExitStatus() == fsckErrorsUncorrected: + return NewMountError(HasFilesystemErrors, "'fsck' found errors on device %s but could not correct them: %s", source, string(out)) + case isExitError && ee.ExitStatus() > fsckErrorsUncorrected: + klog.Infof("`fsck` error %s", string(out)) + } + } + return nil +} + +// formatAndMount uses unix utils to format and mount the given disk +func (mounter *SafeFormatAndMount) formatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + readOnly := false + for _, option := range options { + if option == "ro" { + readOnly = true + break + } + } + if !readOnly { + // Check sensitiveOptions for ro + for _, option := range sensitiveOptions { + if option == "ro" { + readOnly = true + break + } + } + } + + options = append(options, "defaults") + mountErrorValue := UnknownMountError + + // Check if the disk is already formatted + existingFormat, err := mounter.GetDiskFormat(source) + if err != nil { + return NewMountError(GetDiskFormatFailed, "failed to get disk format of disk %s: %v", source, err) + } + + // Use 'ext4' as the default + if len(fstype) == 0 { + fstype = "ext4" + } + + if existingFormat == "" { + // Do not attempt to format the disk if mounting as readonly, return an error to reflect this. + if readOnly { + return NewMountError(UnformattedReadOnly, "cannot mount unformatted disk %s as we are manipulating it in read-only mode", source) + } + + // Disk is unformatted so format it. + args := []string{source} + if fstype == "ext4" || fstype == "ext3" { + args = []string{ + "-F", // Force flag + "-m0", // Zero blocks reserved for super-user + source, + } + } else if fstype == "xfs" { + args = []string{ + "-f", // force flag + source, + } + } + + klog.Infof("Disk %q appears to be unformatted, attempting to format as type: %q with options: %v", source, fstype, args) + output, err := mounter.Exec.Command("mkfs."+fstype, args...).CombinedOutput() + if err != nil { + // Do not log sensitiveOptions only options + sensitiveOptionsLog := sanitizedOptionsForLogging(options, sensitiveOptions) + detailedErr := fmt.Sprintf("format of disk %q failed: type:(%q) target:(%q) options:(%q) errcode:(%v) output:(%v) ", source, fstype, target, sensitiveOptionsLog, err, string(output)) + klog.Error(detailedErr) + return NewMountError(FormatFailed, detailedErr) + } + + klog.Infof("Disk successfully formatted (mkfs): %s - %s %s", fstype, source, target) + } else { + if fstype != existingFormat { + // Verify that the disk is formatted with filesystem type we are expecting + mountErrorValue = FilesystemMismatch + klog.Warningf("Configured to mount disk %s as %s but current format is %s, things might break", source, existingFormat, fstype) + } + + if !readOnly { + // Run check tools on the disk to fix repairable issues, only do this for formatted volumes requested as rw. + err := mounter.checkAndRepairFilesystem(source) + if err != nil { + return err + } + } + } + + // Mount the disk + klog.V(4).Infof("Attempting to mount disk %s in %s format at %s", source, fstype, target) + if err := mounter.MountSensitive(source, target, fstype, options, sensitiveOptions); err != nil { + return NewMountError(mountErrorValue, err.Error()) + } + + return nil +} + +func getDiskFormat(exec utilexec.Interface, disk string) (string, error) { + args := []string{"-p", "-s", "TYPE", "-s", "PTTYPE", "-o", "export", disk} + klog.V(4).Infof("Attempting to determine if disk %q is formatted using blkid with args: (%v)", disk, args) + dataOut, err := exec.Command("blkid", args...).CombinedOutput() + output := string(dataOut) + klog.V(4).Infof("Output: %q", output) + + if err != nil { + if exit, ok := err.(utilexec.ExitError); ok { + if exit.ExitStatus() == 2 { + // Disk device is unformatted. + // For `blkid`, if the specified token (TYPE/PTTYPE, etc) was + // not found, or no (specified) devices could be identified, an + // exit code of 2 is returned. + return "", nil + } + } + klog.Errorf("Could not determine if disk %q is formatted (%v)", disk, err) + return "", err + } + + var fstype, pttype string + + lines := strings.Split(output, "\n") + for _, l := range lines { + if len(l) <= 0 { + // Ignore empty line. + continue + } + cs := strings.Split(l, "=") + if len(cs) != 2 { + return "", fmt.Errorf("blkid returns invalid output: %s", output) + } + // TYPE is filesystem type, and PTTYPE is partition table type, according + // to https://www.kernel.org/pub/linux/utils/util-linux/v2.21/libblkid-docs/. + if cs[0] == "TYPE" { + fstype = cs[1] + } else if cs[0] == "PTTYPE" { + pttype = cs[1] + } + } + + if len(pttype) > 0 { + klog.V(4).Infof("Disk %s detected partition table type: %s", disk, pttype) + // Returns a special non-empty string as filesystem type, then kubelet + // will not format it. + return "unknown data, probably partitions", nil + } + + return fstype, nil +} + +// GetDiskFormat uses 'blkid' to see if the given disk is unformatted +func (mounter *SafeFormatAndMount) GetDiskFormat(disk string) (string, error) { + return getDiskFormat(mounter.Exec, disk) +} + +// ListProcMounts is shared with NsEnterMounter +func ListProcMounts(mountFilePath string) ([]MountPoint, error) { + content, err := utilio.ConsistentRead(mountFilePath, maxListTries) + if err != nil { + return nil, err + } + return parseProcMounts(content) +} + +func parseProcMounts(content []byte) ([]MountPoint, error) { + out := []MountPoint{} + lines := strings.Split(string(content), "\n") + for _, line := range lines { + if line == "" { + // the last split() item is empty string following the last \n + continue + } + fields := strings.Fields(line) + if len(fields) != expectedNumFieldsPerLine { + // Do not log line in case it contains sensitive Mount options + return nil, fmt.Errorf("wrong number of fields (expected %d, got %d)", expectedNumFieldsPerLine, len(fields)) + } + + mp := MountPoint{ + Device: fields[0], + Path: fields[1], + Type: fields[2], + Opts: strings.Split(fields[3], ","), + } + + freq, err := strconv.Atoi(fields[4]) + if err != nil { + return nil, err + } + mp.Freq = freq + + pass, err := strconv.Atoi(fields[5]) + if err != nil { + return nil, err + } + mp.Pass = pass + + out = append(out, mp) + } + return out, nil +} + +// SearchMountPoints finds all mount references to the source, returns a list of +// mountpoints. +// The source can be a mount point or a normal directory (bind mount). We +// didn't support device because there is no use case by now. +// Some filesystems may share a source name, e.g. tmpfs. And for bind mounting, +// it's possible to mount a non-root path of a filesystem, so we need to use +// root path and major:minor to represent mount source uniquely. +// This implementation is shared between Linux and NsEnterMounter +func SearchMountPoints(hostSource, mountInfoPath string) ([]string, error) { + mis, err := ParseMountInfo(mountInfoPath) + if err != nil { + return nil, err + } + + mountID := 0 + rootPath := "" + major := -1 + minor := -1 + + // Finding the underlying root path and major:minor if possible. + // We need search in backward order because it's possible for later mounts + // to overlap earlier mounts. + for i := len(mis) - 1; i >= 0; i-- { + if hostSource == mis[i].MountPoint || PathWithinBase(hostSource, mis[i].MountPoint) { + // If it's a mount point or path under a mount point. + mountID = mis[i].ID + rootPath = filepath.Join(mis[i].Root, strings.TrimPrefix(hostSource, mis[i].MountPoint)) + major = mis[i].Major + minor = mis[i].Minor + break + } + } + + if rootPath == "" || major == -1 || minor == -1 { + return nil, fmt.Errorf("failed to get root path and major:minor for %s", hostSource) + } + + var refs []string + for i := range mis { + if mis[i].ID == mountID { + // Ignore mount entry for mount source itself. + continue + } + if mis[i].Root == rootPath && mis[i].Major == major && mis[i].Minor == minor { + refs = append(refs, mis[i].MountPoint) + } + } + + return refs, nil +} + +// IsMountPoint determines if a file is a mountpoint. +// It first detects bind & any other mountpoints using +// MountedFast function. If the MountedFast function returns +// sure as true and err as nil, then a mountpoint is detected +// successfully. When an error is returned by MountedFast, the +// following is true: +// 1. All errors are returned with IsMountPoint as false +// except os.IsPermission. +// 2. When os.IsPermission is returned by MountedFast, List() +// is called to confirm if the given file is a mountpoint are not. +// +// os.ErrNotExist should always be returned if a file does not exist +// as callers have in past relied on this error and not fallback. +// +// When MountedFast returns sure as false and err as nil (eg: in +// case of bindmounts on kernel version 5.10- ); mounter.List() +// endpoint is called to enumerate all the mountpoints and check if +// it is mountpoint match or not. +func (mounter *Mounter) IsMountPoint(file string) (bool, error) { + isMnt, sure, isMntErr := mountinfo.MountedFast(file) + if sure && isMntErr == nil { + return isMnt, nil + } + if isMntErr != nil { + if errors.Is(isMntErr, fs.ErrNotExist) { + return false, fs.ErrNotExist + } + // We were not allowed to do the simple stat() check, e.g. on NFS with + // root_squash. Fall back to /proc/mounts check below when + // fs.ErrPermission is returned. + if !errors.Is(isMntErr, fs.ErrPermission) { + return false, isMntErr + } + } + // Resolve any symlinks in file, kernel would do the same and use the resolved path in /proc/mounts. + resolvedFile, err := filepath.EvalSymlinks(file) + if err != nil { + if errors.Is(isMntErr, fs.ErrNotExist) { + return false, fs.ErrNotExist + } + return false, err + } + + // check all mountpoints since MountedFast is not sure. + // is not reliable for some mountpoint types. + mountPoints, mountPointsErr := mounter.List() + if mountPointsErr != nil { + return false, mountPointsErr + } + for _, mp := range mountPoints { + if isMountPointMatch(mp, resolvedFile) { + return true, nil + } + } + return false, nil +} + +// tryUnmount calls plain "umount" and waits for unmountTimeout for it to finish. +func tryUnmount(path string, unmountTimeout time.Duration) error { + klog.V(4).Infof("Unmounting %s", path) + ctx, cancel := context.WithTimeout(context.Background(), unmountTimeout) + defer cancel() + + cmd := exec.CommandContext(ctx, "umount", path) + out, cmderr := cmd.CombinedOutput() + + // CombinedOutput() does not return DeadlineExceeded, make sure it's + // propagated on timeout. + if ctx.Err() != nil { + return ctx.Err() + } + + if cmderr != nil { + return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", cmderr, path, string(out)) + } + return nil +} + +func forceUmount(path string) error { + cmd := exec.Command("umount", "-f", path) + out, cmderr := cmd.CombinedOutput() + + if cmderr != nil { + return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", cmderr, path, string(out)) + } + return nil +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go new file mode 100644 index 0000000000..026505282c --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go @@ -0,0 +1,105 @@ +//go:build !linux && !windows +// +build !linux,!windows + +/* +Copyright 2014 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "errors" +) + +// Mounter implements mount.Interface for unsupported platforms +type Mounter struct { + mounterPath string +} + +var errUnsupported = errors.New("util/mount on this platform is not supported") + +// New returns a mount.Interface for the current system. +// It provides options to override the default mounter behavior. +// mounterPath allows using an alternative to `/bin/mount` for mounting. +func New(mounterPath string) Interface { + return &Mounter{ + mounterPath: mounterPath, + } +} + +// Mount always returns an error on unsupported platforms +func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { + return errUnsupported +} + +// MountSensitive always returns an error on unsupported platforms +func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return errUnsupported +} + +// MountSensitiveWithoutSystemd always returns an error on unsupported platforms +func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return errUnsupported +} + +// MountSensitiveWithoutSystemdWithMountFlags always returns an error on unsupported platforms +func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { + return errUnsupported +} + +// Unmount always returns an error on unsupported platforms +func (mounter *Mounter) Unmount(target string) error { + return errUnsupported +} + +// List always returns an error on unsupported platforms +func (mounter *Mounter) List() ([]MountPoint, error) { + return []MountPoint{}, errUnsupported +} + +// IsLikelyNotMountPoint always returns an error on unsupported platforms +func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { + return true, errUnsupported +} + +// canSafelySkipMountPointCheck always returns false on unsupported platforms +func (mounter *Mounter) canSafelySkipMountPointCheck() bool { + return false +} + +// IsMountPoint determines if a directory is a mountpoint. +// It always returns an error on unsupported platforms. +func (mounter *Mounter) IsMountPoint(file string) (bool, error) { + return false, errUnsupported +} + +// GetMountRefs always returns an error on unsupported platforms +func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { + return nil, errUnsupported +} + +func (mounter *SafeFormatAndMount) formatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return mounter.Interface.Mount(source, target, fstype, options) +} + +func (mounter *SafeFormatAndMount) diskLooksUnformatted(disk string) (bool, error) { + return true, errUnsupported +} + +// IsMountPoint determines if a directory is a mountpoint. +// It always returns an error on unsupported platforms. +func (mounter *SafeFormatAndMount) IsMountPoint(file string) (bool, error) { + return false, errUnsupported +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go new file mode 100644 index 0000000000..3800f75d4a --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go @@ -0,0 +1,351 @@ +//go:build windows +// +build windows + +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + "os" + "os/exec" + "path/filepath" + "strings" + + "k8s.io/klog/v2" + "k8s.io/utils/keymutex" +) + +const ( + accessDenied string = "access is denied" +) + +// Mounter provides the default implementation of mount.Interface +// for the windows platform. This implementation assumes that the +// kubelet is running in the host's root mount namespace. +type Mounter struct { + mounterPath string +} + +// New returns a mount.Interface for the current system. +// It provides options to override the default mounter behavior. +// mounterPath allows using an alternative to `/bin/mount` for mounting. +func New(mounterPath string) Interface { + return &Mounter{ + mounterPath: mounterPath, + } +} + +// acquire lock for smb mount +var getSMBMountMutex = keymutex.NewHashed(0) + +// Mount : mounts source to target with given options. +// currently only supports cifs(smb), bind mount(for disk) +func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { + return mounter.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) +} + +// MountSensitiveWithoutSystemd is the same as MountSensitive() but disable using ssytemd mount. +// Windows not supported systemd mount, this function degrades to MountSensitive(). +func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + return mounter.MountSensitive(source, target, fstype, options, sensitiveOptions /* sensitiveOptions */) +} + +// MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd with additional mount flags +// Windows not supported systemd mount, this function degrades to MountSensitive(). +func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { + return mounter.MountSensitive(source, target, fstype, options, sensitiveOptions /* sensitiveOptions */) +} + +// MountSensitive is the same as Mount() but this method allows +// sensitiveOptions to be passed in a separate parameter from the normal +// mount options and ensures the sensitiveOptions are never logged. This +// method should be used by callers that pass sensitive material (like +// passwords) as mount options. +func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + target = NormalizeWindowsPath(target) + sanitizedOptionsForLogging := sanitizedOptionsForLogging(options, sensitiveOptions) + + if source == "tmpfs" { + klog.V(3).Infof("mounting source (%q), target (%q), with options (%q)", source, target, sanitizedOptionsForLogging) + return os.MkdirAll(target, 0755) + } + + parentDir := filepath.Dir(target) + if err := os.MkdirAll(parentDir, 0755); err != nil { + return err + } + + klog.V(4).Infof("mount options(%q) source:%q, target:%q, fstype:%q, begin to mount", + sanitizedOptionsForLogging, source, target, fstype) + bindSource := source + + if bind, _, _, _ := MakeBindOptsSensitive(options, sensitiveOptions); bind { + bindSource = NormalizeWindowsPath(source) + } else { + allOptions := []string{} + allOptions = append(allOptions, options...) + allOptions = append(allOptions, sensitiveOptions...) + if len(allOptions) < 2 { + return fmt.Errorf("mount options(%q) should have at least 2 options, current number:%d, source:%q, target:%q", + sanitizedOptionsForLogging, len(allOptions), source, target) + } + + // currently only cifs mount is supported + if strings.ToLower(fstype) != "cifs" { + return fmt.Errorf("only cifs mount is supported now, fstype: %q, mounting source (%q), target (%q), with options (%q)", fstype, source, target, sanitizedOptionsForLogging) + } + + // lock smb mount for the same source + getSMBMountMutex.LockKey(source) + defer getSMBMountMutex.UnlockKey(source) + + username := allOptions[0] + password := allOptions[1] + if output, err := newSMBMapping(username, password, source); err != nil { + klog.Warningf("SMB Mapping(%s) returned with error(%v), output(%s)", source, err, string(output)) + if isSMBMappingExist(source) { + valid, err := isValidPath(source) + if !valid { + if err == nil || isAccessDeniedError(err) { + klog.V(2).Infof("SMB Mapping(%s) already exists while it's not valid, return error: %v, now begin to remove and remount", source, err) + if output, err = removeSMBMapping(source); err != nil { + return fmt.Errorf("Remove-SmbGlobalMapping failed: %v, output: %q", err, output) + } + if output, err := newSMBMapping(username, password, source); err != nil { + return fmt.Errorf("New-SmbGlobalMapping(%s) failed: %v, output: %q", source, err, output) + } + } + } else { + klog.V(2).Infof("SMB Mapping(%s) already exists and is still valid, skip error(%v)", source, err) + } + } else { + return fmt.Errorf("New-SmbGlobalMapping(%s) failed: %v, output: %q", source, err, output) + } + } + } + + // There is an issue in golang where EvalSymlinks fails on Windows when passed a + // UNC share root path without a trailing backslash. + // Ex: \\SERVER\share will fail to resolve but \\SERVER\share\ will resolve + // containerD on Windows calls EvalSymlinks so we'll add the backslash when making the symlink if it is missing. + // https://github.com/golang/go/pull/42096 fixes this issue in golang but a fix will not be available until + // golang v1.16 + mklinkSource := bindSource + if !strings.HasSuffix(mklinkSource, "\\") { + mklinkSource = mklinkSource + "\\" + } + + output, err := exec.Command("cmd", "/c", "mklink", "/D", target, mklinkSource).CombinedOutput() + if err != nil { + klog.Errorf("mklink failed: %v, source(%q) target(%q) output: %q", err, mklinkSource, target, string(output)) + return err + } + klog.V(2).Infof("mklink source(%q) on target(%q) successfully, output: %q", mklinkSource, target, string(output)) + + return nil +} + +// do the SMB mount with username, password, remotepath +// return (output, error) +func newSMBMapping(username, password, remotepath string) (string, error) { + if username == "" || password == "" || remotepath == "" { + return "", fmt.Errorf("invalid parameter(username: %s, password: %s, remoteapth: %s)", username, sensitiveOptionsRemoved, remotepath) + } + + // use PowerShell Environment Variables to store user input string to prevent command line injection + // https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-5.1 + cmdLine := `$PWord = ConvertTo-SecureString -String $Env:smbpassword -AsPlainText -Force` + + `;$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Env:smbuser, $PWord` + + `;New-SmbGlobalMapping -RemotePath $Env:smbremotepath -Credential $Credential -RequirePrivacy $true` + cmd := exec.Command("powershell", "/c", cmdLine) + cmd.Env = append(os.Environ(), + fmt.Sprintf("smbuser=%s", username), + fmt.Sprintf("smbpassword=%s", password), + fmt.Sprintf("smbremotepath=%s", remotepath)) + + output, err := cmd.CombinedOutput() + return string(output), err +} + +// check whether remotepath is already mounted +func isSMBMappingExist(remotepath string) bool { + cmd := exec.Command("powershell", "/c", `Get-SmbGlobalMapping -RemotePath $Env:smbremotepath`) + cmd.Env = append(os.Environ(), fmt.Sprintf("smbremotepath=%s", remotepath)) + _, err := cmd.CombinedOutput() + return err == nil +} + +// check whether remotepath is valid +// return (true, nil) if remotepath is valid +func isValidPath(remotepath string) (bool, error) { + cmd := exec.Command("powershell", "/c", `Test-Path $Env:remoteapth`) + cmd.Env = append(os.Environ(), fmt.Sprintf("remoteapth=%s", remotepath)) + output, err := cmd.CombinedOutput() + if err != nil { + return false, fmt.Errorf("returned output: %s, error: %v", string(output), err) + } + + return strings.HasPrefix(strings.ToLower(string(output)), "true"), nil +} + +func isAccessDeniedError(err error) bool { + return err != nil && strings.Contains(strings.ToLower(err.Error()), accessDenied) +} + +// remove SMB mapping +func removeSMBMapping(remotepath string) (string, error) { + cmd := exec.Command("powershell", "/c", `Remove-SmbGlobalMapping -RemotePath $Env:smbremotepath -Force`) + cmd.Env = append(os.Environ(), fmt.Sprintf("smbremotepath=%s", remotepath)) + output, err := cmd.CombinedOutput() + return string(output), err +} + +// Unmount unmounts the target. +func (mounter *Mounter) Unmount(target string) error { + klog.V(4).Infof("Unmount target (%q)", target) + target = NormalizeWindowsPath(target) + if output, err := exec.Command("cmd", "/c", "rmdir", target).CombinedOutput(); err != nil { + klog.Errorf("rmdir failed: %v, output: %q", err, string(output)) + return err + } + return nil +} + +// List returns a list of all mounted filesystems. todo +func (mounter *Mounter) List() ([]MountPoint, error) { + return []MountPoint{}, nil +} + +// IsLikelyNotMountPoint determines if a directory is not a mountpoint. +func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { + stat, err := os.Lstat(file) + if err != nil { + return true, err + } + + if stat.Mode()&os.ModeSymlink != 0 { + return false, err + } + return true, nil +} + +// canSafelySkipMountPointCheck always returns false on Windows +func (mounter *Mounter) canSafelySkipMountPointCheck() bool { + return false +} + +// IsMountPoint: determines if a directory is a mountpoint. +func (mounter *Mounter) IsMountPoint(file string) (bool, error) { + isNotMnt, err := mounter.IsLikelyNotMountPoint(file) + if err != nil { + return false, err + } + return !isNotMnt, nil +} + +// GetMountRefs : empty implementation here since there is no place to query all mount points on Windows +func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { + windowsPath := NormalizeWindowsPath(pathname) + pathExists, pathErr := PathExists(windowsPath) + if !pathExists { + return []string{}, nil + } else if IsCorruptedMnt(pathErr) { + klog.Warningf("GetMountRefs found corrupted mount at %s, treating as unmounted path", windowsPath) + return []string{}, nil + } else if pathErr != nil { + return nil, fmt.Errorf("error checking path %s: %v", windowsPath, pathErr) + } + return []string{pathname}, nil +} + +func (mounter *SafeFormatAndMount) formatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { + // Try to mount the disk + klog.V(4).Infof("Attempting to formatAndMount disk: %s %s %s", fstype, source, target) + + if err := ValidateDiskNumber(source); err != nil { + klog.Errorf("diskMount: formatAndMount failed, err: %v", err) + return err + } + + if len(fstype) == 0 { + // Use 'NTFS' as the default + fstype = "NTFS" + } + + // format disk if it is unformatted(raw) + cmd := fmt.Sprintf("Get-Disk -Number %s | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle GPT -PassThru"+ + " | New-Partition -UseMaximumSize | Format-Volume -FileSystem %s -Confirm:$false", source, fstype) + if output, err := mounter.Exec.Command("powershell", "/c", cmd).CombinedOutput(); err != nil { + return fmt.Errorf("diskMount: format disk failed, error: %v, output: %q", err, string(output)) + } + klog.V(4).Infof("diskMount: Disk successfully formatted, disk: %q, fstype: %q", source, fstype) + + volumeIds, err := listVolumesOnDisk(source) + if err != nil { + return err + } + driverPath := volumeIds[0] + target = NormalizeWindowsPath(target) + output, err := mounter.Exec.Command("cmd", "/c", "mklink", "/D", target, driverPath).CombinedOutput() + if err != nil { + klog.Errorf("mklink(%s, %s) failed: %v, output: %q", target, driverPath, err, string(output)) + return err + } + klog.V(2).Infof("formatAndMount disk(%s) fstype(%s) on(%s) with output(%s) successfully", driverPath, fstype, target, string(output)) + return nil +} + +// ListVolumesOnDisk - returns back list of volumes(volumeIDs) in the disk (requested in diskID). +func listVolumesOnDisk(diskID string) (volumeIDs []string, err error) { + cmd := fmt.Sprintf("(Get-Disk -DeviceId %s | Get-Partition | Get-Volume).UniqueId", diskID) + output, err := exec.Command("powershell", "/c", cmd).CombinedOutput() + klog.V(4).Infof("listVolumesOnDisk id from %s: %s", diskID, string(output)) + if err != nil { + return []string{}, fmt.Errorf("error list volumes on disk. cmd: %s, output: %s, error: %v", cmd, string(output), err) + } + + volumeIds := strings.Split(strings.TrimSpace(string(output)), "\r\n") + return volumeIds, nil +} + +// getAllParentLinks walks all symbolic links and return all the parent targets recursively +func getAllParentLinks(path string) ([]string, error) { + const maxIter = 255 + links := []string{} + for { + links = append(links, path) + if len(links) > maxIter { + return links, fmt.Errorf("unexpected length of parent links: %v", links) + } + + fi, err := os.Lstat(path) + if err != nil { + return links, fmt.Errorf("Lstat: %v", err) + } + if fi.Mode()&os.ModeSymlink == 0 { + break + } + + path, err = os.Readlink(path) + if err != nil { + return links, fmt.Errorf("Readlink error: %v", err) + } + } + + return links, nil +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go b/ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go new file mode 100644 index 0000000000..929d061e52 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go @@ -0,0 +1,266 @@ +//go:build linux +// +build linux + +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + "strconv" + "strings" + + "k8s.io/klog/v2" + utilexec "k8s.io/utils/exec" +) + +// ResizeFs Provides support for resizing file systems +type ResizeFs struct { + exec utilexec.Interface +} + +// NewResizeFs returns new instance of resizer +func NewResizeFs(exec utilexec.Interface) *ResizeFs { + return &ResizeFs{exec: exec} +} + +// Resize perform resize of file system +func (resizefs *ResizeFs) Resize(devicePath string, deviceMountPath string) (bool, error) { + format, err := getDiskFormat(resizefs.exec, devicePath) + + if err != nil { + formatErr := fmt.Errorf("ResizeFS.Resize - error checking format for device %s: %v", devicePath, err) + return false, formatErr + } + + // If disk has no format, there is no need to resize the disk because mkfs.* + // by default will use whole disk anyways. + if format == "" { + return false, nil + } + + klog.V(3).Infof("ResizeFS.Resize - Expanding mounted volume %s", devicePath) + switch format { + case "ext3", "ext4": + return resizefs.extResize(devicePath) + case "xfs": + return resizefs.xfsResize(deviceMountPath) + case "btrfs": + return resizefs.btrfsResize(deviceMountPath) + } + return false, fmt.Errorf("ResizeFS.Resize - resize of format %s is not supported for device %s mounted at %s", format, devicePath, deviceMountPath) +} + +func (resizefs *ResizeFs) extResize(devicePath string) (bool, error) { + output, err := resizefs.exec.Command("resize2fs", devicePath).CombinedOutput() + if err == nil { + klog.V(2).Infof("Device %s resized successfully", devicePath) + return true, nil + } + + resizeError := fmt.Errorf("resize of device %s failed: %v. resize2fs output: %s", devicePath, err, string(output)) + return false, resizeError + +} + +func (resizefs *ResizeFs) xfsResize(deviceMountPath string) (bool, error) { + args := []string{"-d", deviceMountPath} + output, err := resizefs.exec.Command("xfs_growfs", args...).CombinedOutput() + + if err == nil { + klog.V(2).Infof("Device %s resized successfully", deviceMountPath) + return true, nil + } + + resizeError := fmt.Errorf("resize of device %s failed: %v. xfs_growfs output: %s", deviceMountPath, err, string(output)) + return false, resizeError +} + +func (resizefs *ResizeFs) btrfsResize(deviceMountPath string) (bool, error) { + args := []string{"filesystem", "resize", "max", deviceMountPath} + output, err := resizefs.exec.Command("btrfs", args...).CombinedOutput() + + if err == nil { + klog.V(2).Infof("Device %s resized successfully", deviceMountPath) + return true, nil + } + + resizeError := fmt.Errorf("resize of device %s failed: %v. btrfs output: %s", deviceMountPath, err, string(output)) + return false, resizeError +} + +func (resizefs *ResizeFs) NeedResize(devicePath string, deviceMountPath string) (bool, error) { + deviceSize, err := resizefs.getDeviceSize(devicePath) + if err != nil { + return false, err + } + var fsSize, blockSize uint64 + format, err := getDiskFormat(resizefs.exec, devicePath) + if err != nil { + formatErr := fmt.Errorf("ResizeFS.Resize - error checking format for device %s: %v", devicePath, err) + return false, formatErr + } + + // If disk has no format, there is no need to resize the disk because mkfs.* + // by default will use whole disk anyways. + if format == "" { + return false, nil + } + + klog.V(3).Infof("ResizeFs.needResize - checking mounted volume %s", devicePath) + switch format { + case "ext3", "ext4": + blockSize, fsSize, err = resizefs.getExtSize(devicePath) + klog.V(5).Infof("Ext size: filesystem size=%d, block size=%d", fsSize, blockSize) + case "xfs": + blockSize, fsSize, err = resizefs.getXFSSize(deviceMountPath) + klog.V(5).Infof("Xfs size: filesystem size=%d, block size=%d, err=%v", fsSize, blockSize, err) + case "btrfs": + blockSize, fsSize, err = resizefs.getBtrfsSize(devicePath) + klog.V(5).Infof("Btrfs size: filesystem size=%d, block size=%d, err=%v", fsSize, blockSize, err) + default: + klog.Errorf("Not able to parse given filesystem info. fsType: %s, will not resize", format) + return false, fmt.Errorf("Could not parse fs info on given filesystem format: %s. Supported fs types are: xfs, ext3, ext4", format) + } + if err != nil { + return false, err + } + // Tolerate one block difference, just in case of rounding errors somewhere. + klog.V(5).Infof("Volume %s: device size=%d, filesystem size=%d, block size=%d", devicePath, deviceSize, fsSize, blockSize) + if deviceSize <= fsSize+blockSize { + return false, nil + } + return true, nil +} +func (resizefs *ResizeFs) getDeviceSize(devicePath string) (uint64, error) { + output, err := resizefs.exec.Command("blockdev", "--getsize64", devicePath).CombinedOutput() + outStr := strings.TrimSpace(string(output)) + if err != nil { + return 0, fmt.Errorf("failed to read size of device %s: %s: %s", devicePath, err, outStr) + } + size, err := strconv.ParseUint(outStr, 10, 64) + if err != nil { + return 0, fmt.Errorf("failed to parse size of device %s %s: %s", devicePath, outStr, err) + } + return size, nil +} + +func (resizefs *ResizeFs) getExtSize(devicePath string) (uint64, uint64, error) { + output, err := resizefs.exec.Command("dumpe2fs", "-h", devicePath).CombinedOutput() + if err != nil { + return 0, 0, fmt.Errorf("failed to read size of filesystem on %s: %s: %s", devicePath, err, string(output)) + } + + blockSize, blockCount, _ := resizefs.parseFsInfoOutput(string(output), ":", "block size", "block count") + + if blockSize == 0 { + return 0, 0, fmt.Errorf("could not find block size of device %s", devicePath) + } + if blockCount == 0 { + return 0, 0, fmt.Errorf("could not find block count of device %s", devicePath) + } + return blockSize, blockSize * blockCount, nil +} + +func (resizefs *ResizeFs) getXFSSize(devicePath string) (uint64, uint64, error) { + output, err := resizefs.exec.Command("xfs_io", "-c", "statfs", devicePath).CombinedOutput() + if err != nil { + return 0, 0, fmt.Errorf("failed to read size of filesystem on %s: %s: %s", devicePath, err, string(output)) + } + + blockSize, blockCount, _ := resizefs.parseFsInfoOutput(string(output), "=", "geom.bsize", "geom.datablocks") + + if blockSize == 0 { + return 0, 0, fmt.Errorf("could not find block size of device %s", devicePath) + } + if blockCount == 0 { + return 0, 0, fmt.Errorf("could not find block count of device %s", devicePath) + } + return blockSize, blockSize * blockCount, nil +} + +func (resizefs *ResizeFs) getBtrfsSize(devicePath string) (uint64, uint64, error) { + output, err := resizefs.exec.Command("btrfs", "inspect-internal", "dump-super", "-f", devicePath).CombinedOutput() + if err != nil { + return 0, 0, fmt.Errorf("failed to read size of filesystem on %s: %s: %s", devicePath, err, string(output)) + } + + blockSize, totalBytes, _ := resizefs.parseBtrfsInfoOutput(string(output), "sectorsize", "total_bytes") + + if blockSize == 0 { + return 0, 0, fmt.Errorf("could not find block size of device %s", devicePath) + } + if totalBytes == 0 { + return 0, 0, fmt.Errorf("could not find total size of device %s", devicePath) + } + return blockSize, totalBytes, nil +} + +func (resizefs *ResizeFs) parseBtrfsInfoOutput(cmdOutput string, blockSizeKey string, totalBytesKey string) (uint64, uint64, error) { + lines := strings.Split(cmdOutput, "\n") + var blockSize, blockCount uint64 + var err error + + for _, line := range lines { + tokens := strings.Fields(line) + if len(tokens) != 2 { + continue + } + key, value := strings.ToLower(strings.TrimSpace(tokens[0])), strings.ToLower(strings.TrimSpace(tokens[1])) + + if key == blockSizeKey { + blockSize, err = strconv.ParseUint(value, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to parse block size %s: %s", value, err) + } + } + if key == totalBytesKey { + blockCount, err = strconv.ParseUint(value, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to parse total size %s: %s", value, err) + } + } + } + return blockSize, blockCount, err +} + +func (resizefs *ResizeFs) parseFsInfoOutput(cmdOutput string, spliter string, blockSizeKey string, blockCountKey string) (uint64, uint64, error) { + lines := strings.Split(cmdOutput, "\n") + var blockSize, blockCount uint64 + var err error + + for _, line := range lines { + tokens := strings.Split(line, spliter) + if len(tokens) != 2 { + continue + } + key, value := strings.ToLower(strings.TrimSpace(tokens[0])), strings.ToLower(strings.TrimSpace(tokens[1])) + if key == blockSizeKey { + blockSize, err = strconv.ParseUint(value, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to parse block size %s: %s", value, err) + } + } + if key == blockCountKey { + blockCount, err = strconv.ParseUint(value, 10, 64) + if err != nil { + return 0, 0, fmt.Errorf("failed to parse block count %s: %s", value, err) + } + } + } + return blockSize, blockCount, err +} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go b/ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go new file mode 100644 index 0000000000..88b8b2410b --- /dev/null +++ b/ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go @@ -0,0 +1,46 @@ +//go:build !linux +// +build !linux + +/* +Copyright 2021 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import ( + "fmt" + + utilexec "k8s.io/utils/exec" +) + +// ResizeFs Provides support for resizing file systems +type ResizeFs struct { + exec utilexec.Interface +} + +// NewResizeFs returns new instance of resizer +func NewResizeFs(exec utilexec.Interface) *ResizeFs { + return &ResizeFs{exec: exec} +} + +// Resize perform resize of file system +func (resizefs *ResizeFs) Resize(devicePath string, deviceMountPath string) (bool, error) { + return false, fmt.Errorf("Resize is not supported for this build") +} + +// NeedResize check whether mounted volume needs resize +func (resizefs *ResizeFs) NeedResize(devicePath string, deviceMountPath string) (bool, error) { + return false, fmt.Errorf("NeedResize is not supported for this build") +} diff --git a/ecs-agent/vendor/k8s.io/utils/LICENSE b/ecs-agent/vendor/k8s.io/utils/LICENSE new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/ecs-agent/vendor/k8s.io/utils/exec/README.md b/ecs-agent/vendor/k8s.io/utils/exec/README.md new file mode 100644 index 0000000000..7944e8dd3b --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/exec/README.md @@ -0,0 +1,5 @@ +# Exec + +This package provides an interface for `os/exec`. It makes it easier to mock +and replace in tests, especially with the [FakeExec](testing/fake_exec.go) +struct. diff --git a/ecs-agent/vendor/k8s.io/utils/exec/doc.go b/ecs-agent/vendor/k8s.io/utils/exec/doc.go new file mode 100644 index 0000000000..cbb44bdb5d --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/exec/doc.go @@ -0,0 +1,18 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package exec provides an injectable interface and implementations for running commands. +package exec // import "k8s.io/utils/exec" diff --git a/ecs-agent/vendor/k8s.io/utils/exec/exec.go b/ecs-agent/vendor/k8s.io/utils/exec/exec.go new file mode 100644 index 0000000000..d9c91e3ca3 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/exec/exec.go @@ -0,0 +1,256 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package exec + +import ( + "context" + "io" + "io/fs" + osexec "os/exec" + "syscall" + "time" +) + +// ErrExecutableNotFound is returned if the executable is not found. +var ErrExecutableNotFound = osexec.ErrNotFound + +// Interface is an interface that presents a subset of the os/exec API. Use this +// when you want to inject fakeable/mockable exec behavior. +type Interface interface { + // Command returns a Cmd instance which can be used to run a single command. + // This follows the pattern of package os/exec. + Command(cmd string, args ...string) Cmd + + // CommandContext returns a Cmd instance which can be used to run a single command. + // + // The provided context is used to kill the process if the context becomes done + // before the command completes on its own. For example, a timeout can be set in + // the context. + CommandContext(ctx context.Context, cmd string, args ...string) Cmd + + // LookPath wraps os/exec.LookPath + LookPath(file string) (string, error) +} + +// Cmd is an interface that presents an API that is very similar to Cmd from os/exec. +// As more functionality is needed, this can grow. Since Cmd is a struct, we will have +// to replace fields with get/set method pairs. +type Cmd interface { + // Run runs the command to the completion. + Run() error + // CombinedOutput runs the command and returns its combined standard output + // and standard error. This follows the pattern of package os/exec. + CombinedOutput() ([]byte, error) + // Output runs the command and returns standard output, but not standard err + Output() ([]byte, error) + SetDir(dir string) + SetStdin(in io.Reader) + SetStdout(out io.Writer) + SetStderr(out io.Writer) + SetEnv(env []string) + + // StdoutPipe and StderrPipe for getting the process' Stdout and Stderr as + // Readers + StdoutPipe() (io.ReadCloser, error) + StderrPipe() (io.ReadCloser, error) + + // Start and Wait are for running a process non-blocking + Start() error + Wait() error + + // Stops the command by sending SIGTERM. It is not guaranteed the + // process will stop before this function returns. If the process is not + // responding, an internal timer function will send a SIGKILL to force + // terminate after 10 seconds. + Stop() +} + +// ExitError is an interface that presents an API similar to os.ProcessState, which is +// what ExitError from os/exec is. This is designed to make testing a bit easier and +// probably loses some of the cross-platform properties of the underlying library. +type ExitError interface { + String() string + Error() string + Exited() bool + ExitStatus() int +} + +// Implements Interface in terms of really exec()ing. +type executor struct{} + +// New returns a new Interface which will os/exec to run commands. +func New() Interface { + return &executor{} +} + +// Command is part of the Interface interface. +func (executor *executor) Command(cmd string, args ...string) Cmd { + return (*cmdWrapper)(maskErrDotCmd(osexec.Command(cmd, args...))) +} + +// CommandContext is part of the Interface interface. +func (executor *executor) CommandContext(ctx context.Context, cmd string, args ...string) Cmd { + return (*cmdWrapper)(maskErrDotCmd(osexec.CommandContext(ctx, cmd, args...))) +} + +// LookPath is part of the Interface interface +func (executor *executor) LookPath(file string) (string, error) { + path, err := osexec.LookPath(file) + return path, handleError(maskErrDot(err)) +} + +// Wraps exec.Cmd so we can capture errors. +type cmdWrapper osexec.Cmd + +var _ Cmd = &cmdWrapper{} + +func (cmd *cmdWrapper) SetDir(dir string) { + cmd.Dir = dir +} + +func (cmd *cmdWrapper) SetStdin(in io.Reader) { + cmd.Stdin = in +} + +func (cmd *cmdWrapper) SetStdout(out io.Writer) { + cmd.Stdout = out +} + +func (cmd *cmdWrapper) SetStderr(out io.Writer) { + cmd.Stderr = out +} + +func (cmd *cmdWrapper) SetEnv(env []string) { + cmd.Env = env +} + +func (cmd *cmdWrapper) StdoutPipe() (io.ReadCloser, error) { + r, err := (*osexec.Cmd)(cmd).StdoutPipe() + return r, handleError(err) +} + +func (cmd *cmdWrapper) StderrPipe() (io.ReadCloser, error) { + r, err := (*osexec.Cmd)(cmd).StderrPipe() + return r, handleError(err) +} + +func (cmd *cmdWrapper) Start() error { + err := (*osexec.Cmd)(cmd).Start() + return handleError(err) +} + +func (cmd *cmdWrapper) Wait() error { + err := (*osexec.Cmd)(cmd).Wait() + return handleError(err) +} + +// Run is part of the Cmd interface. +func (cmd *cmdWrapper) Run() error { + err := (*osexec.Cmd)(cmd).Run() + return handleError(err) +} + +// CombinedOutput is part of the Cmd interface. +func (cmd *cmdWrapper) CombinedOutput() ([]byte, error) { + out, err := (*osexec.Cmd)(cmd).CombinedOutput() + return out, handleError(err) +} + +func (cmd *cmdWrapper) Output() ([]byte, error) { + out, err := (*osexec.Cmd)(cmd).Output() + return out, handleError(err) +} + +// Stop is part of the Cmd interface. +func (cmd *cmdWrapper) Stop() { + c := (*osexec.Cmd)(cmd) + + if c.Process == nil { + return + } + + c.Process.Signal(syscall.SIGTERM) + + time.AfterFunc(10*time.Second, func() { + if !c.ProcessState.Exited() { + c.Process.Signal(syscall.SIGKILL) + } + }) +} + +func handleError(err error) error { + if err == nil { + return nil + } + + switch e := err.(type) { + case *osexec.ExitError: + return &ExitErrorWrapper{e} + case *fs.PathError: + return ErrExecutableNotFound + case *osexec.Error: + if e.Err == osexec.ErrNotFound { + return ErrExecutableNotFound + } + } + + return err +} + +// ExitErrorWrapper is an implementation of ExitError in terms of os/exec ExitError. +// Note: standard exec.ExitError is type *os.ProcessState, which already implements Exited(). +type ExitErrorWrapper struct { + *osexec.ExitError +} + +var _ ExitError = &ExitErrorWrapper{} + +// ExitStatus is part of the ExitError interface. +func (eew ExitErrorWrapper) ExitStatus() int { + ws, ok := eew.Sys().(syscall.WaitStatus) + if !ok { + panic("can't call ExitStatus() on a non-WaitStatus exitErrorWrapper") + } + return ws.ExitStatus() +} + +// CodeExitError is an implementation of ExitError consisting of an error object +// and an exit code (the upper bits of os.exec.ExitStatus). +type CodeExitError struct { + Err error + Code int +} + +var _ ExitError = CodeExitError{} + +func (e CodeExitError) Error() string { + return e.Err.Error() +} + +func (e CodeExitError) String() string { + return e.Err.Error() +} + +// Exited is to check if the process has finished +func (e CodeExitError) Exited() bool { + return true +} + +// ExitStatus is for checking the error code +func (e CodeExitError) ExitStatus() int { + return e.Code +} diff --git a/ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go b/ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go new file mode 100644 index 0000000000..acf45f1cd5 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go @@ -0,0 +1,32 @@ +//go:build !go1.19 +// +build !go1.19 + +/* +Copyright 2022 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package exec + +import ( + osexec "os/exec" +) + +func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd { + return cmd +} + +func maskErrDot(err error) error { + return err +} diff --git a/ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go b/ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go new file mode 100644 index 0000000000..55874c9297 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go @@ -0,0 +1,40 @@ +//go:build go1.19 +// +build go1.19 + +/* +Copyright 2022 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package exec + +import ( + "errors" + osexec "os/exec" +) + +// maskErrDotCmd reverts the behavior of osexec.Cmd to what it was before go1.19 +// specifically set the Err field to nil (LookPath returns a new error when the file +// is resolved to the current directory. +func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd { + cmd.Err = maskErrDot(cmd.Err) + return cmd +} + +func maskErrDot(err error) error { + if err != nil && errors.Is(err, osexec.ErrDot) { + return nil + } + return err +} diff --git a/ecs-agent/vendor/k8s.io/utils/io/README.md b/ecs-agent/vendor/k8s.io/utils/io/README.md new file mode 100644 index 0000000000..aa4cc41044 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/io/README.md @@ -0,0 +1,4 @@ +# IO + +This package provides interfaces for working with file IO. Currently it +provides functionality for consistently reading a file. diff --git a/ecs-agent/vendor/k8s.io/utils/io/read.go b/ecs-agent/vendor/k8s.io/utils/io/read.go new file mode 100644 index 0000000000..f0af3c8ec8 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/io/read.go @@ -0,0 +1,98 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package io + +import ( + "bytes" + "errors" + "fmt" + "io" + "io/ioutil" +) + +// ErrLimitReached means that the read limit is reached. +var ErrLimitReached = errors.New("the read limit is reached") + +// ConsistentRead repeatedly reads a file until it gets the same content twice. +// This is useful when reading files in /proc that are larger than page size +// and kernel may modify them between individual read() syscalls. +// It returns InconsistentReadError when it cannot get a consistent read in +// given nr. of attempts. Caller should retry, kernel is probably under heavy +// mount/unmount load. +func ConsistentRead(filename string, attempts int) ([]byte, error) { + return consistentReadSync(filename, attempts, nil) +} + +// consistentReadSync is the main functionality of ConsistentRead but +// introduces a sync callback that can be used by the tests to mutate the file +// from which the test data is being read +func consistentReadSync(filename string, attempts int, sync func(int)) ([]byte, error) { + oldContent, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + for i := 0; i < attempts; i++ { + if sync != nil { + sync(i) + } + newContent, err := ioutil.ReadFile(filename) + if err != nil { + return nil, err + } + if bytes.Compare(oldContent, newContent) == 0 { + return newContent, nil + } + // Files are different, continue reading + oldContent = newContent + } + return nil, InconsistentReadError{filename, attempts} +} + +// InconsistentReadError is returned from ConsistentRead when it cannot get +// a consistent read in given nr. of attempts. Caller should retry, kernel is +// probably under heavy mount/unmount load. +type InconsistentReadError struct { + filename string + attempts int +} + +func (i InconsistentReadError) Error() string { + return fmt.Sprintf("could not get consistent content of %s after %d attempts", i.filename, i.attempts) +} + +var _ error = InconsistentReadError{} + +func IsInconsistentReadError(err error) bool { + if _, ok := err.(InconsistentReadError); ok { + return true + } + return false +} + +// ReadAtMost reads up to `limit` bytes from `r`, and reports an error +// when `limit` bytes are read. +func ReadAtMost(r io.Reader, limit int64) ([]byte, error) { + limitedReader := &io.LimitedReader{R: r, N: limit} + data, err := ioutil.ReadAll(limitedReader) + if err != nil { + return data, err + } + if limitedReader.N <= 0 { + return data, ErrLimitReached + } + return data, nil +} diff --git a/ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go b/ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go new file mode 100644 index 0000000000..4ddb00867f --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go @@ -0,0 +1,58 @@ +/* +Copyright 2018 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package keymutex + +import ( + "hash/fnv" + "runtime" + "sync" +) + +// NewHashed returns a new instance of KeyMutex which hashes arbitrary keys to +// a fixed set of locks. `n` specifies number of locks, if n <= 0, we use +// number of cpus. +// Note that because it uses fixed set of locks, different keys may share same +// lock, so it's possible to wait on same lock. +func NewHashed(n int) KeyMutex { + if n <= 0 { + n = runtime.NumCPU() + } + return &hashedKeyMutex{ + mutexes: make([]sync.Mutex, n), + } +} + +type hashedKeyMutex struct { + mutexes []sync.Mutex +} + +// Acquires a lock associated with the specified ID. +func (km *hashedKeyMutex) LockKey(id string) { + km.mutexes[km.hash(id)%uint32(len(km.mutexes))].Lock() +} + +// Releases the lock associated with the specified ID. +func (km *hashedKeyMutex) UnlockKey(id string) error { + km.mutexes[km.hash(id)%uint32(len(km.mutexes))].Unlock() + return nil +} + +func (km *hashedKeyMutex) hash(id string) uint32 { + h := fnv.New32a() + h.Write([]byte(id)) + return h.Sum32() +} diff --git a/ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go b/ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go new file mode 100644 index 0000000000..89dc022397 --- /dev/null +++ b/ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go @@ -0,0 +1,27 @@ +/* +Copyright 2015 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package keymutex + +// KeyMutex is a thread-safe interface for acquiring locks on arbitrary strings. +type KeyMutex interface { + // Acquires a lock associated with the specified ID, creates the lock if one doesn't already exist. + LockKey(id string) + + // Releases the lock associated with the specified ID. + // Returns an error if the specified ID doesn't exist. + UnlockKey(id string) error +} diff --git a/ecs-agent/vendor/modules.txt b/ecs-agent/vendor/modules.txt index f661b53fd4..aa799b0241 100644 --- a/ecs-agent/vendor/modules.txt +++ b/ecs-agent/vendor/modules.txt @@ -1,3 +1,10 @@ +# github.com/Microsoft/go-winio v0.6.1 +## explicit; go 1.17 +github.com/Microsoft/go-winio +github.com/Microsoft/go-winio/internal/fs +github.com/Microsoft/go-winio/internal/socket +github.com/Microsoft/go-winio/internal/stringbuffer +github.com/Microsoft/go-winio/pkg/guid # github.com/aws/aws-sdk-go v1.36.0 ## explicit; go 1.11 github.com/aws/aws-sdk-go/aws @@ -32,6 +39,9 @@ github.com/cihub/seelog/archive github.com/cihub/seelog/archive/gzip github.com/cihub/seelog/archive/tar github.com/cihub/seelog/archive/zip +# github.com/container-storage-interface/spec v1.8.0 +## explicit; go 1.18 +github.com/container-storage-interface/spec/lib/go/csi # github.com/davecgh/go-spew v1.1.1 ## explicit github.com/davecgh/go-spew/spew @@ -50,23 +60,32 @@ github.com/docker/docker/api/types/strslice # github.com/docker/go-connections v0.4.0 ## explicit github.com/docker/go-connections/nat -# github.com/docker/go-units v0.4.0 +# github.com/docker/go-units v0.5.0 ## explicit github.com/docker/go-units +# github.com/go-logr/logr v1.2.4 +## explicit; go 1.16 +github.com/go-logr/logr +# github.com/gogo/protobuf v1.3.2 +## explicit; go 1.15 +github.com/gogo/protobuf/proto # github.com/golang/mock v1.4.1 ## explicit; go 1.11 github.com/golang/mock/gomock github.com/golang/mock/mockgen/model -# github.com/golang/protobuf v1.4.2 +# github.com/golang/protobuf v1.5.3 ## explicit; go 1.9 +github.com/golang/protobuf/jsonpb github.com/golang/protobuf/proto +github.com/golang/protobuf/protoc-gen-go/descriptor github.com/golang/protobuf/ptypes github.com/golang/protobuf/ptypes/any github.com/golang/protobuf/ptypes/duration github.com/golang/protobuf/ptypes/timestamp -# github.com/google/go-cmp v0.5.5 -## explicit; go 1.8 -# github.com/google/uuid v1.0.0 +github.com/golang/protobuf/ptypes/wrappers +# github.com/google/gofuzz v1.2.0 +## explicit; go 1.12 +# github.com/google/uuid v1.3.0 ## explicit github.com/google/uuid # github.com/gorilla/mux v1.8.0 @@ -78,9 +97,22 @@ github.com/gorilla/websocket # github.com/jmespath/go-jmespath v0.4.0 ## explicit; go 1.14 github.com/jmespath/go-jmespath -# github.com/matttproud/golang_protobuf_extensions v1.0.1 -## explicit +# github.com/kubernetes-csi/csi-proxy/client v1.1.2 +## explicit; go 1.16 +github.com/kubernetes-csi/csi-proxy/client +github.com/kubernetes-csi/csi-proxy/client/api/disk/v1 +github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1 +github.com/kubernetes-csi/csi-proxy/client/api/volume/v1 +github.com/kubernetes-csi/csi-proxy/client/apiversion +github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1 +github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1 +github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1 +# github.com/matttproud/golang_protobuf_extensions v1.0.4 +## explicit; go 1.9 github.com/matttproud/golang_protobuf_extensions/pbutil +# github.com/moby/sys/mountinfo v0.6.2 +## explicit; go 1.16 +github.com/moby/sys/mountinfo # github.com/patrickmn/go-cache v2.1.0+incompatible ## explicit github.com/patrickmn/go-cache @@ -105,7 +137,7 @@ github.com/prometheus/common/model ## explicit; go 1.13 github.com/stretchr/testify/assert github.com/stretchr/testify/require -# golang.org/x/mod v0.8.0 +# golang.org/x/mod v0.10.0 ## explicit; go 1.17 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module @@ -114,72 +146,161 @@ golang.org/x/mod/semver ## explicit; go 1.17 golang.org/x/net/html golang.org/x/net/html/atom +golang.org/x/net/http/httpguts +golang.org/x/net/http2 +golang.org/x/net/http2/hpack golang.org/x/net/idna +golang.org/x/net/internal/timeseries +golang.org/x/net/trace # golang.org/x/sys v0.6.0 ## explicit; go 1.17 golang.org/x/sys/execabs golang.org/x/sys/internal/unsafeheader +golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry golang.org/x/sys/windows/svc/eventlog -# golang.org/x/text v0.8.0 +# golang.org/x/text v0.9.0 ## explicit; go 1.17 golang.org/x/text/secure/bidirule golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm -# golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e +# golang.org/x/time v0.3.0 ## explicit golang.org/x/time/rate # golang.org/x/tools v0.6.0 ## explicit; go 1.18 +golang.org/x/tools/cmd/stringer golang.org/x/tools/go/ast/astutil +golang.org/x/tools/go/gcexportdata +golang.org/x/tools/go/internal/packagesdriver +golang.org/x/tools/go/packages golang.org/x/tools/imports golang.org/x/tools/internal/event golang.org/x/tools/internal/event/core golang.org/x/tools/internal/event/keys golang.org/x/tools/internal/event/label golang.org/x/tools/internal/fastwalk +golang.org/x/tools/internal/gcimporter golang.org/x/tools/internal/gocommand golang.org/x/tools/internal/gopathwalk golang.org/x/tools/internal/imports +golang.org/x/tools/internal/packagesinternal +golang.org/x/tools/internal/pkgbits +golang.org/x/tools/internal/tokeninternal golang.org/x/tools/internal/typeparams -# golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 +golang.org/x/tools/internal/typesinternal +# google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 +## explicit; go 1.19 +google.golang.org/genproto/googleapis/rpc/status +# google.golang.org/grpc v1.52.0 +## explicit; go 1.17 +google.golang.org/grpc +google.golang.org/grpc/attributes +google.golang.org/grpc/backoff +google.golang.org/grpc/balancer +google.golang.org/grpc/balancer/base +google.golang.org/grpc/balancer/grpclb/grpclbstate +google.golang.org/grpc/balancer/roundrobin +google.golang.org/grpc/binarylog/grpc_binarylog_v1 +google.golang.org/grpc/channelz +google.golang.org/grpc/codes +google.golang.org/grpc/connectivity +google.golang.org/grpc/credentials +google.golang.org/grpc/credentials/insecure +google.golang.org/grpc/encoding +google.golang.org/grpc/encoding/proto +google.golang.org/grpc/grpclog +google.golang.org/grpc/internal +google.golang.org/grpc/internal/backoff +google.golang.org/grpc/internal/balancer/gracefulswitch +google.golang.org/grpc/internal/balancerload +google.golang.org/grpc/internal/binarylog +google.golang.org/grpc/internal/buffer +google.golang.org/grpc/internal/channelz +google.golang.org/grpc/internal/credentials +google.golang.org/grpc/internal/envconfig +google.golang.org/grpc/internal/grpclog +google.golang.org/grpc/internal/grpcrand +google.golang.org/grpc/internal/grpcsync +google.golang.org/grpc/internal/grpcutil +google.golang.org/grpc/internal/metadata +google.golang.org/grpc/internal/pretty +google.golang.org/grpc/internal/resolver +google.golang.org/grpc/internal/resolver/dns +google.golang.org/grpc/internal/resolver/passthrough +google.golang.org/grpc/internal/resolver/unix +google.golang.org/grpc/internal/serviceconfig +google.golang.org/grpc/internal/status +google.golang.org/grpc/internal/syscall +google.golang.org/grpc/internal/transport +google.golang.org/grpc/internal/transport/networktype +google.golang.org/grpc/keepalive +google.golang.org/grpc/metadata +google.golang.org/grpc/peer +google.golang.org/grpc/resolver +google.golang.org/grpc/serviceconfig +google.golang.org/grpc/stats +google.golang.org/grpc/status +google.golang.org/grpc/tap +# google.golang.org/protobuf v1.30.0 ## explicit; go 1.11 -# google.golang.org/protobuf v1.23.0 -## explicit; go 1.9 +google.golang.org/protobuf/encoding/protojson google.golang.org/protobuf/encoding/prototext google.golang.org/protobuf/encoding/protowire google.golang.org/protobuf/internal/descfmt google.golang.org/protobuf/internal/descopts google.golang.org/protobuf/internal/detrand google.golang.org/protobuf/internal/encoding/defval +google.golang.org/protobuf/internal/encoding/json google.golang.org/protobuf/internal/encoding/messageset google.golang.org/protobuf/internal/encoding/tag google.golang.org/protobuf/internal/encoding/text google.golang.org/protobuf/internal/errors -google.golang.org/protobuf/internal/fieldnum -google.golang.org/protobuf/internal/fieldsort google.golang.org/protobuf/internal/filedesc google.golang.org/protobuf/internal/filetype google.golang.org/protobuf/internal/flags -google.golang.org/protobuf/internal/genname +google.golang.org/protobuf/internal/genid google.golang.org/protobuf/internal/impl -google.golang.org/protobuf/internal/mapsort +google.golang.org/protobuf/internal/order google.golang.org/protobuf/internal/pragma google.golang.org/protobuf/internal/set google.golang.org/protobuf/internal/strs google.golang.org/protobuf/internal/version google.golang.org/protobuf/proto +google.golang.org/protobuf/reflect/protodesc google.golang.org/protobuf/reflect/protoreflect google.golang.org/protobuf/reflect/protoregistry google.golang.org/protobuf/runtime/protoiface google.golang.org/protobuf/runtime/protoimpl +google.golang.org/protobuf/types/descriptorpb google.golang.org/protobuf/types/known/anypb google.golang.org/protobuf/types/known/durationpb google.golang.org/protobuf/types/known/timestamppb -# gopkg.in/yaml.v2 v2.4.0 -## explicit; go 1.15 +google.golang.org/protobuf/types/known/wrapperspb +# gopkg.in/inf.v0 v0.9.1 +## explicit +gopkg.in/inf.v0 # gopkg.in/yaml.v3 v3.0.1 ## explicit gopkg.in/yaml.v3 +# k8s.io/apimachinery v0.26.0-alpha.0 +## explicit; go 1.19 +k8s.io/apimachinery/pkg/api/resource +# k8s.io/klog/v2 v2.100.1 +## explicit; go 1.13 +k8s.io/klog/v2 +k8s.io/klog/v2/internal/buffer +k8s.io/klog/v2/internal/clock +k8s.io/klog/v2/internal/dbg +k8s.io/klog/v2/internal/serialize +k8s.io/klog/v2/internal/severity +# k8s.io/mount-utils v0.26.0-alpha.0 +## explicit; go 1.19 +k8s.io/mount-utils +# k8s.io/utils v0.0.0-20230505201702-9f6742963106 +## explicit; go 1.18 +k8s.io/utils/exec +k8s.io/utils/io +k8s.io/utils/keymutex From 3892d4988d4947fb8f7afe499757717740fb9b63 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Tue, 27 Jun 2023 22:56:49 +0000 Subject: [PATCH 2/7] Remove tar build rules --- .../csi-driver/Dockerfile.csi_driver | 5 ----- .../csi-driver/build-image-as-tar | 20 ------------------ .../tarfiles/csi-driver-linux-amd64.tar | Bin 15215616 -> 0 bytes .../csidriver}/Makefile | 7 ++---- .../csidriver}/driver/driver.go | 4 ++-- .../csidriver}/driver/driver_test.go | 0 .../csidriver}/driver/mock_mount.go | 0 .../csidriver}/driver/mount.go | 2 +- .../csidriver}/driver/mount_linux.go | 0 .../csidriver}/driver/mount_linux_test.go | 0 .../csidriver}/driver/mount_windows.go | 2 +- .../csidriver}/driver/node.go | 2 +- .../csidriver}/driver/node_linux.go | 0 .../csidriver}/driver/node_test.go | 0 .../csidriver}/driver/node_windows.go | 2 +- .../csidriver}/main.go | 2 +- .../csidriver}/mounter/mock_mount_windows.go | 0 .../csidriver}/mounter/safe_mounter_unix.go | 0 .../mounter/safe_mounter_unix_test.go | 0 .../mounter/safe_mounter_windows.go | 0 .../csidriver}/options.go | 0 .../csidriver}/options_test.go | 0 .../csidriver}/update-gomock | 0 .../csidriver}/util/fs/fs.go | 0 .../csidriver}/util/fs/fs_unsupported.go | 0 .../csidriver}/util/fs/fs_windows.go | 0 .../csidriver}/util/utils.go | 0 .../csidriver}/version/version.go | 0 .../csidriver}/volume/metrics.go | 2 +- .../csidriver}/volume/metrics_errors.go | 0 30 files changed, 10 insertions(+), 38 deletions(-) delete mode 100644 ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver delete mode 100755 ecs-agent/daemon_images/csi-driver/build-image-as-tar delete mode 100644 ecs-agent/daemon_images/csi-driver/tarfiles/csi-driver-linux-amd64.tar rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/Makefile (84%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/driver.go (93%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/driver_test.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/mock_mount.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/mount.go (93%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/mount_linux.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/mount_linux_test.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/mount_windows.go (92%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/node.go (97%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/node_linux.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/node_test.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/driver/node_windows.go (94%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/main.go (94%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/mounter/mock_mount_windows.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/mounter/safe_mounter_unix.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/mounter/safe_mounter_unix_test.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/mounter/safe_mounter_windows.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/options.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/options_test.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/update-gomock (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/util/fs/fs.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/util/fs/fs_unsupported.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/util/fs/fs_windows.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/util/utils.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/version/version.go (100%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/volume/metrics.go (98%) rename ecs-agent/{daemon_images/csi-driver => daemonimages/csidriver}/volume/metrics_errors.go (100%) diff --git a/ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver b/ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver deleted file mode 100644 index ba01c8d58e..0000000000 --- a/ecs-agent/daemon_images/csi-driver/Dockerfile.csi_driver +++ /dev/null @@ -1,5 +0,0 @@ -FROM scratch - -COPY csi-driver /bin/ - -ENTRYPOINT ["/bin/csi-driver"] \ No newline at end of file diff --git a/ecs-agent/daemon_images/csi-driver/build-image-as-tar b/ecs-agent/daemon_images/csi-driver/build-image-as-tar deleted file mode 100755 index 873cfccac8..0000000000 --- a/ecs-agent/daemon_images/csi-driver/build-image-as-tar +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# This script is used to build the "csi-driver" container image into a tarball. - -set -eux - -CUR_DIR=$(cd $(dirname "${BASH_SOURCE[0]}"); pwd) - -IMAGE_REF=amazon/amazon-ebs-csi-driver:latest -IMAGE_FILE_NAME=csi-driver -IMAGE_TAR=${IMAGE_FILE_NAME}-${OS}-${ARCH}.tar - -cp bin/csi-driver ./csi-driver -mkdir -p ${CUR_DIR}/tarfiles - -docker build -t "${IMAGE_REF}" -f Dockerfile.csi_driver . -docker save "${IMAGE_REF}" -o ${CUR_DIR}/tarfiles/"${IMAGE_TAR}" - -rm ./csi-driver -rm bin/csi-driver diff --git a/ecs-agent/daemon_images/csi-driver/tarfiles/csi-driver-linux-amd64.tar b/ecs-agent/daemon_images/csi-driver/tarfiles/csi-driver-linux-amd64.tar deleted file mode 100644 index 35a204079e11899e3097a958cf4f6056f6172c35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15215616 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

    ?-+FE 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 z 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�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


    bliBw1cc@l69jYUykeMiAW(f#Eopfk2 zGab&zTrXwn*kNQ=-CB^&a3iucL!Ovf98kckdWQ*2tq1bNAVE6E&kwJ z;CCLxZ z>z0sj$oob9L`3moELI-C4EiqgA5aX1gpbTn~tlH<$Vrv_an zV!EzM_h3`9Z|`=sdcKi43Vn%^qX<$*aq(#GnI?5cfoq56!{Kr7wfLJEy$%zT}wGL+==C4jY9hTVg8;Nxu%bVLY^J0zh2HaDFh;NN&-;f58V)vffV8XriT(Q< z^dgnLfK0_7$SRCBgyiF}Rl4vOb4-KV2cfYQ_`*mK8~~AuAk;b@|HpEH^{I4KUQdTk zXz*|3VW*SK=7TS3l14%f5~0cl!PsIE&z<1!s(%9i=tIN5U0@dY7Zd(!tQxFCS6%<8 zg@%ZNFJMMqw7`6dU{-^Qi(7=4uBL}NbD4Y>32(S+7aioghXBBLaIo^F>U+k+oy&Kp zfBOW19r~As22X#ybN`Nv?Vr@23;bn~{+Olm4|D?ryv%T+b+#k^PtN)+X+R{(nXgh9 z+7T?VBbcrx^Vt=h#xAF0kwp%&+piti)lRowy82G|-Sc#OOB(wyh<(7Aq&E}J`UY8| zXm!8%z*E4odlAn3t>POqq)w`<-dgT9XHMn4I`~b=htQl?$R!EohyiahXWgQhUwxCx z=0CvkQMZOexYgbG7^`dFj5P$8dDb1QiR}lhW8KZiUeNdmUxor!$Mn<7b0Kh)VkgGe z--SMtV)+|R+SJgCgke%$%^reD+5^_zBKCz5;KmL07x}Wa4C(~;zBw2@ozGhXAOIMo{aa((udK*QC?6qE2qs_cX=+YaYwKcWEubuMoInyF|Y{$pZ~=|!V}KcI=>%Q z`F8q_PaTLGuB}I-nOc%@f%+LUmU-Jp9?`Bu=r5e?f4%m%(B!6 z)+fN1NDHh_ruz8$E@8{v^01PHAXiyHMg9^)gpeoakRn3b?mCe>eB<#`0g)x-{rXwEx$Gw141FUH0ESPsjhpSo)=@q1UK`Yud|Cqy~oZ zK{r1(zm{k)(�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

    ?Q}dg5e$C-}QieY-{lqT# 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%0ABp(4fpbkDuGIKBf(z@n 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�Y}(E6vQK@v6E9|X*&m@B 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 z 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

    uV3y=mJRn%$?{2PMI#4ZI$Y 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%0D$ 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

    ewS|6fo*A6D@jRf2mJNPMNVTNTh`?G=C<4 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 z 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

    TQF?xx9PqzoR@2J*>Vg8UDG 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

    N6`A1* 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�yBYTY>ckY-`BPLH;loc+J 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 z zEH5l49s9r?-=|?YVR^V6o&N*me@vmpx}$39lW$>%$#M|o zx5a_x*1i{~jsJ1}&(hK8|30{m8n<2E|NVIV>vd83@WTJ-Gm-C;dLz^OKYsdL@~6Dd zQU5dgn&&+GEvT2fHkf?u%KH!Xx$Wq5_X0_`&nDw;&o%E0tQW;QVc2p;^ItWqh5f$_ zK>nGXG5&o>3jeCVmVe(~hR0u%{yul=N4w__em3I?nfQw%{98I*5`Nz>%D)oze{f;# zr2bd`wfuu*9(C}iDd*IGaEh_>J(~Kz!7}ZN;Qx{L9bi@z>Do2KA&-JMf}s(R0YL^t z7(k>!kzrLB1r>GGMnK_87zqjr+GbGD!GNf%G=d0;HaT z-+ShqwhyxR-@DKKpTFjLr*d_FZ&g>-skp`R^+)oPhZWwZ7iQOgWm^BwZd(KEDzozc zssF6}`SQQ~9h?8r7gkQn&+_jW``w{BNL7^ERbT&s;I(Y|S^f`u1?y4$to(oaKP!K} z{GT`M|1SSoE?AzHJ-B6Fw)`df`+w>KsMF4GP`&>387n{AZR)cAwI=>5mCu*1vGpA1 zIhYAoZOC;mRFCBS&qeAU-KF7M+WdCZy>p27`U?H06Pp@ucvExdAk?|du2IPOkr?yQAqW((s%wELHc{bzLa=WjVi%zdLmNvqHlsHM(cy zUowAAPX6onU*lqo|6SGC+{yKCYtrSv(>8w@`IG%TK0ley%>Ol)F2C%H z6cxn(F%GHY*33_JHXIkFdy#rLiE$xE-G}M#S^l1Ye>J-PJJk8#PW@4j?1lTA zbv<+NTzdXb({uvW-_!Y==%rlw=jpmt=0D3}&DEA)XQ8dvS#H00N!@iEiSPSBac=$} zsn7l3pSj_WQun0B{HOaw|-{ z%l}r*{}qrw*jCq6+@kWokS>44-Zmko$N4ZHVhXE&pu)i?ROS?OC&W{r}(7 z<(KvUqJsFpF>mX8a~?vS%^6qQ_hx=l{^WPT{O_#!$?wI{gbrr<`a4P=ZzgV3Uep~w zA5#^>)AQ*1&2LI8|AR&T1GD6RamVE6I0WV7b1D-1A}D`Ny(f&}DSxrHyL4yy-#y{( z=mWU!p5d9ld_Hx$Q@?3T;AfYAwtr*CBSuiqyshnX@KU<`Z|g>gKpzmUu=(JgR>eog z`d8X7^b-3*hJ2J>F22|ApW(^N69roTX*%R(1>4=5bHAgUmw=^09jKrDL)GEg@_)b3 zw*OaQ{M!tvX9|{fgPT&VlJ@F*8vU z&3_F~9xqO~*H6evE5lQN?c!tRr0suy>RuZo*vtN&T-4a)j01N$7UNbJ_YHgDo?_s{ zⓈ)3*)#j3s$55ApUOeontI%f_@72XF5H1j&b8a^soO?8)y5%ACUddUT;WWhLJU( zM?D)q>Vfot%>55Y&jWtK{?A}4;2|f0p3^cr-)z{EW?3_EbC$a^Q` zf3zsZU9g)mF%sc?^bq@Z7adv?6yX6?C z2Sgr&=Le_3A2{+byszAca3cJH37)k_$738HxcMrzd$0qK^s@We+>r~)9rcaGfM z2Jv7^-gQ1}BM;&T;$_b|iAX_U_ai4pCEG{8sa)Y<~+1> z5f;dthjt#q1Dglg?y^)n&B z^Kboz{ctaQKU4cQ)SuXo8Ne*a$d9lAkdeQzAI=R$8u~lNg`XfJKjJz-M*jK;3uNSP zfbc*@ewafbBR|5r02Sq?{@~a-spr3r;`z6~ZC`%>8RRc;EcWY1AK^T>wQh{edGN5i z0Oj`(RzUfKr%@gN%5UH&p#0Gqln;RN`_JNe0OdFE6HtC1W&!0l2pdBQpxo4NEpfV~ z<^NAQu5XNO_wtp0|8IC6FmW(`FQEQ+Ux2*8nw|wF+6X>i7G&f{SP!85KDZHN+*R|pSKe(!692Pl68 zvw-q@2rHmU%HO=I_P%NIH^TlGQDMRSSkIUL(Of(a$jDy>Spc2~8Ne*a$d9lgkdc25 z;sY7^;pYJv`4QIzGV))6@IXfXD-j;Z$PaS_%noh+=OL_sDk=ZAn#-?FlfUa~D}PYq z59I#^&jZe{#Pe|ebzo4x0j(F?{10IkWaLNK5Xi{?GvWgo`QhgQ8Tk>{1v2vgits>2 z{@)ND$jA?K1Z3n#SP!5|%74b3H=3u)e}$Fbuep8s%{@pPSb_F0kp9VikVSy@Ps)D; zvw-qPcf$@)egm_B^7}9gD8Gle0?KdhMRIS^W&)b%D;I4X#~ZKvkzqCM_2=7@|%ZTBVhX%J_1<)wto@K0?Hq)h8@Vr53>O%zYnv3@_UFYp#0`x zga;_U53_*s8-x{5ejo29pi0U=>839}PLsdz8=L>8?)K#mx}d%THXLG5kD{)dIz&;Mu_JP+7?l&$Z>V#oqyHzQvNX;ww#?N z|5UC2gL>PS-?_xa{XDMei}v0_`8TuO7)Pi*nuYHjp!^151(e^p81VthAHXc2{669e zD8F+l!UL2)fLTEK9fTE7{s7MsP$lK>TX{*>H2L4`XX`(|{`TdMmP0<^{aYaar|AEz z!1I8)Xb+|R4`CKi{t#gWls{UA_yFbi;3uH`F5(I(e{?&-1C-yp1K|P6AHgi3{2syz zs0!6U{nl$|3{I2(`{Qi+cN_kJ{5?_L02$tmfA1cM@(yI=hdBf?@*`{rWaKYHd>|t~ z{5&8dKjOMTM*dz14`k%;jqpH5ewZU5BR|4=02Sq?{zU)vkEY4Lt)-PeD6;au@N)si zKWb#ge>fiJF524&I35=+!}-I&-@dcsH{qwS1JB<8elY&SGm3V(TmA2aKd}2)V*;#W z^KQra&cM3J`UiLIZ3Hj3D~Qj(^k2dG$-t<~?0ui^7kEDK?m^b>{SEPfFJYJQwBQ}Y z2dF4F^^!! z*Eh;K;28VheYp-8Zd~^$>wpDZ_bBUt1zi6q>wpDZ{}{q7$X*95Yk|4`QPu$qs3nSoIS+n0fxFHv4!*(*lJx&`rhZQ-jpe;(L~`rqGD z%Q!F#R-kE+^X&a~d&LOeL4IO=X!IJ+uLrgw|NS}`zkV6#q&)a@^`}eH&Ol%*TuT5b4?xp?ST3VsC*cFhWb_P9?XJ|XBC*hpnSkAVEYlZhaDJjE6NY<12A~D zfbB_Gg69de{_qi2K*fBg{>?SFrjGv??_ML061=#5`JKJ@HiF;E?E5>dVF&7>{KxG- z{6ZjeKLX4FaJ}>ow&9~dSiyI~AL_dZeu9NPl^^)I0OfaE!46P<4`u=7$IBq0YWX9W z1yq!q`jMRnr`G?CkGJ_B^s@Ee&{>lI^)ui90Ta+(wMG5?Lbn*JVUN!r{d+g#1DW}O zm%Et|xbqN%M}6b;I}HEhDc%S^~-&zJ&Az%x{GC zfdxC`dHdjb@Dor`ZtAA*t&P&k|BOqu{P(u5W(T1B!LLXU$jD#N8tp;rYWb0t0W$I%q%WZS2O|6~J+l;_scFN!n{H+51 z_`c~srjPaa5nnJ~X#QKZ|K>Y$?WZ@k;lo}y`yBXeCDQ9v9sagqx#6E4lWT`9R?K(m z6MFPGH7)<2H8%gl=dOz5-BUy4uWtVWYv?rjq&0!D9-`PLkrwL0BoycjOU;~ zwCAodIA7@Pf%^@ByXzv^TTtIQumji4Mf^Q6Uy1Mn_X^0j0_h_yfmdSFclO=Y2x9&* zzehehOXeUw+CRqYXY(Bkfq#^n`oels_ezt$?JZV*Z>H`4ozPF@FU;h>^#A;IsIQJH zjluq3Fr?H7r2pr&!uS1`E-~2u^NuLReQ>3j{-2Mq0_p!bKO()sNDs)A=bO41ACUfE z7}UmHa|jRQ>;IXXyBNWa_WxFQ7}_9B{;Pkm@&}7-{lBn@wExxnz&QW!t;hNH0O$Xm z4LH9Z;QW6GvtUUR$S3o)5yAtR`Tq}a9zG!7b3Fh5QD@xm-8nP=?|4gGJRhK9zEl6Q&U^Qz$$#_3HimP)&3|;aA$_e({Z7O$$}{`~Pe^|baG3k^Ss|0VLqUdk@`ZO=l_EG1)!qb)EDmd%+fUZo7J-U zA8xYW|HM*}zg|ZEEvOIT-!G$^;C`z{`30P{B*(**YrG|A+z`7abCfcfj5j^_bAyj(tRM17E5KjxEv?4|c#k|zJj|FALq z*4M-aD}QzQ&&Y=jUp~O~4;Tt)1V~%J^&dXc5^()TgtP=){}D_=cz}xS7xjY%w)jETe+~Kvx={XfTW-`j!%x(u#JB+Y@Vb^5Z|`;)KD_-) zOa!+_{%rHp?N(w!xcvqE_~mtsb3h61JuAt`AHeRkZkLfi=ngyZp@d(G^4|k*CQ#+5 zUaa~XFK+2B@)sq}|CalI+$PoEO`!JxCFPfPF$z4H?+##f@ETKPf z*TFy5fc*3?z70PtptjCL0fgfDS5@EJ{Fi216!jU2b)DANm;=wZJUH*$-;bm4i>b@Duzf$E1 z$K}e|XPxp`X5A_023;Q<)JKO3sx1Cr{co8X1Jys+>yQ_+N)%|?s*ZkGiGga#T zm6k826R112m1>~A`-OMa%a;FpmH(4BZ2o8D|LI?o|91Jo55@PO{G}?7vzwKN@+bLn z;@D^d5`2}Y`_=?6lt0N!py8=isDb(=yS~*STYjE@@#8({kU$m9)cpVXUz4Bv)WbHp zF%mKHRc2L*Ct%l66@c47U}u_ zJpbVF2T^w0Hmu(N@r#u|S^vxa4@ryfHABy#a9_1@^SKK_C;M`ucRCzpBdfnxwr{R| zkc{VM`Oj+zJH|)c#f352bZ&0k+%Nx)cxJ3G@S}t|4&nQYJ48` zFP^%hO}700Vk`fG!Xo1ynkB!n^)=gl>ZjhK_56udd_=6zztX-(kXQ%bL+^DmH{b_8 z6w9G=pT2jeD`WSf_`flWc|MZ5lgF7=HoT|lI2t~<*uGEL(WXozNz`RO)n_0^0OpSui3Z2)WF{?eZYl!4wo5dpU>xhr28{GbuUzp z$_uOOYFxzZ^Kj0FP^jVyZ^}jj@eHzdS4PAAFIo>-KD#$?&A-}??8+r zdIRu8fcZ~7y!f~-B7dakf3DT?-#Nhd^CiD>{1&dAEdyP}c)m2tMdn_-tNIvsd>`Xzcu4I9 zPhPhDzo3qlA3t|vMP2THll#wHbw5(~=Le@=tu9tOPWy4@=c?F&`Ok6T;5_6AF#mYe zV-ChaeAs~_rl|dV*n!MA@ddC0;g{&AVcgigsLXg5mYKr~@!qfp7sC&399J^9N6xtf z(6=g9z3J+PwM71viQoVGZ9<-pZ)lpoZu23~-}984y4;JKE&mku?@zJyxjx3Uo2&V$ z?IE8p2Vw&g55{_LVY3Xel(+g+W6Ndz1PO6wDoTk8PhOp{O=JE;18~Aq8l(?1B_gR zgomJ4umB|wSc_>Izi%Dm!B4P1^3|P&zT1r@G0OKrzDDR@`~~5Gb#KFd9=^BhVF&I+ zz6VcX{0nA5Jl_m|?>eLhlvH589rkcO#)p7e-ylB5Q`pDe0z1v3H+&}7&U{Jg(ehTm^Xm@?+p9AU_Ud5s;q%W&!yLu7({TKkhXcPXox0 zLD~ZH$LJST>0_N*natOsvs{we%!f`2OvMem5>)8KOw>j$d3!z z1mwrP0(OA>L@*1;PcR4R0p!QPEcl<|XWY=wQ}36qQhv;&?eh~}26+MU6I}{<0P^F) zPe6XW%aPvz`H5f_ke_H4>;U=kXQO-qZd;qiZOj})F-eQT=mUc+l!JelGbH?+@j4()lUW*A4NCvw-UpeZ&`VeWJ4- z&jYwVF@Ra{NNeOzO^jdQ`GU>JHkm(i5LYle#QR~tVt{80@+sEK)aQOv^OQ7x;``f> zh`Y%CZkPQVY5asYK{miS4$sGUNf6-qKxRJ^%pt(_%s$Kl@)aPifP962L3lwso1P0l z0r_$eS3thPn-LZuU+zML2gpwdvw-}#2rI~^$P4wo%D;IpjUTz+O_Zzmy5-}?o8Hd| z+R1tx8BdzgF9!MXU>B6WW$gYxm|cMUxQHttKi)Ki2gpwZvw-}B=fDpjKi=6050IY- zW&!!}5LQ5bB0NiwPmveuH+F28%8%UtCdysB{qp1g9pwQyYifasKB`4q1>phm>O0N2a8Fbn=!2YliC^I#T`9}jT_Tz)wJae3%8~#~^HsJOq&!>PJsq^F|s!gSCE+x^MscatAlPSk-vXEgI1RD^&pmA7{&EDf;ID(h556xm9pM4;6HSFbKzte%< z%L;OSzaQNdeAGsN=jfssXE!m%n}y%=#}vgVm+uSr+?iux2foJ8qF;>hKbQqhTN~dU zj(JJ|!;QvZ|5O08pmS*L&T$9}^r7_8|QfV0}sM(UcvKD!1Dk( zM>l!`9P76?-SGlACo%8IIRuJ z2gVc3bl8DY=fNNAEuATyVw^4h;FDvX7h-*>*v(Xg2j*)0@XSs|@aR{F|2g^#(_jZS zTm^a2KaY@}V2`tHd3EqCf!m-U{=Lrh%i7xai4a#Xc@4tj{Q|@lg=&MOp&#<0Gtq`~>h5 zrHya6F80d+MXiuus9*ekd&dah zME+wvwhOzUcTejdA*?`te?$iJ$uJ9AqJEO{;UKJF0PJ2nlrNYC?pp|73*QUO0@hz% zU)X^Gx56L$m3){5tk2wo5Eo#5X5bei4?*OG`ht-crH((}dAdy?>^VO+9DaH_KmKFb zF9Xy*!^8j5Qt%Bw!4+57=LdMUAfF;H)K8vUEA{vLksECa z-kY}k$T{ZO)Ck_V`oC8{kK458vb683W(!;Y zcxPQ36D8|>8)Ej1^>ct?D*Io8=~%xD>@)%8VG+v5H0)ggxc|kQfxRmL=Q+(eyBY!a zznF7j2RN_kBdnko<}sblC|~oi9vI+$nBXit50L#Z@;t8!W`O%)48jU_bU#e89I@O` zFBv-V$TWWLJjTWhF1P&1IjGt5gZI?N``=jG`2VaMqw)=7!ecO>hlX6>qd-KmUtmk! z7z6P@?*`1JP2hHRt}YtpO@JsQd24 z`@PoKEaG{nZS8l)l&Q$9OVpkB#L~S~-IMDl z%GCXU7iY&NhNpbn_SN-We{in8CSx2mP+xoIZkuI(y?lX9f1UF4`A;YhJ4ug6RXfWM zdN{G7zT1t))WIKlA9STn$DfD}OP1P4*B6A>Umv^jJ8hqECvTbg>kb{Tf3`zrKF#Ua z0sC(|RL`e%>RZ2_CvVpz+#OA4 zimv-%`C&Osp8L;osL_6>vD`7-D}9yBK>2NLJo2#5TQ+=foqetohcYI4Z#{WP-dj)i z(Xz>s_=tUcbih(NbG})~~|vo%gEw@jC1nKPRrUawYj`qW2EbJs&@g zzDV5zu8B?Ljq)b>Db?^ve(0X$hvh?~{Z1RMF0Sf_*QtAbcKPA`HfLjeHGIFCAAjE+ z)*VLm7Mp?i{_3cgStJ;~2cH(v34Hb3ih z|HE>OuR0%8^AmL3F@9FOo?d=74!JUZBX9kjSSLTn?qtKeTkLm7ezw%tbaee&K7P8W zoc}IMS4ZwonWgSMuCwhs*EjM7cu!E!&GKh^=Qy2K`vb1JqnjQp z_g0$@?_t0%)mVMGHrJgz%YN+u<4w+ToS(C6_4zvi?4~&PJRN5@xaCoSx=&O6jJCT^ z$Syx`-D2x!ZyoxFH#au3E6}kORhnLYX0Nl7uCk$wxn21wxBYH9|8SXgkM6bQ#Z`|@ zJK6pl`7BrWwI6BtM87WC{~WI2?|;mOH+mj=rMjQ^gT9Y`rwi0QucjIIy#~1J$iW|F z^HX%Y<>%uW1txr(xrx4cmvnwk_$rs58oDncI6Aj~c%k0E>o2tRN|8Q4SZv?lf6Hb1Vm?_0hH zKclPfXLq}%^TYeuSLp-)UH3Cy_8A5wphDmFkI0YvWL50W_OUd!8FS-cw{CP`SJGu-@(uNLR-!z26sx_Ym4 zM-9*SO6smUP=BX)`!JiIO5OjvaW1~EPpa#m;DB^~WZYg9`T2|fK4Lo_d*Wa6-u6QE zC}F)c+V+cz)&08$%0rE+*u_!zAGG~))t%qnfCrQZb!WM{eV%nUr`q&ct~9ydX|B3Z ze|x}?W@-E^#qSHVshXd#`~M&O@cW~F){5?TW%Dye%g+?dUwD@{HY@*T+xMu)j`73q zh4E>| z_m1(yd}RB}_sH~%p0w>@p?VyDv6hoYwx2`Z?wg$}Z?T47pyRa8bycy8qwb4!zq)s! z?FX^E?XUZS=uVzB+V3=eSJW?mwclCU<)>8J_j6xF|L4xa3_sq1JI2p*`n^PVSswTT z?_Z=m=)OMkbI&U49t^SJ$-_vMD>z>JHJVTtRZUFR(u0YwV);PqO@zpCQ`5 zC%?O8y5BqatNmTzXhJ==>i44GBl$T(_XE16md`Q`KVR=jrF%JFD39)`JN0&x*Twt) z7<{dcZ>+D0@{`3+aM1r9KdW_rH}@x!pRrnBv42~vFT&sN-U zT4VY2r`vgff0du74jA1nyZn%!)q7xkZ1?K&6ZZXolb_z&pWIP?mMO2)Z#re!tZaT} z>G;Mun7=STSGQl0o6e7%D=cc2raOn{09>D2|J?Mg&Bth@{a#ppT4=k&?~&!42dnE7ICOrQ?Ku>5Sb?yLAhdGsQ6r{4YZ;C^-?^ydjCTaZr56wbE}Im{}&b4%A8YO0lS0e@LX!1M=j@2du6rEj4zQsp7X|I zup?gZwtWwtOPz^4+?&@ zdYL}>YR8TjL|g3dQ@{{j=?@Aq)PPWTi z|7zc#?rxkKj%sac^M&;`<>mXZzeIVTxW=Z#evYT?zUJ4fzW;ro<%jbY)KBPV?|+}A>Hg9DMby`RA4ok`oWJnZUFpWYAuAVu zr|ii5h1Uw}Y3Aa**n_Ljj}2irhm_`=2kQ(d)u;bnV|jGctMASy43hJ4*6H~;)3p3l zzKZs%SM~kSVR?G_;r-YwKg0O@C~*(+_dGX2-C6(i)8F;sA(poyeXqGX-@*Hli`9LP zODu1^2byxMNTgq);Xl{(89qNVHbOIvNA2=CcZ_X<@>4O$mS>iqCqG5~a~M~#pza@( z&d)S`AoBulTi9{>H2tE%kHxBKw}?=f6UXZ|qygOw;pa%wapmPm%{dmprhZ zp}a{RSbmZ`?5qhTd1$KcNgh}ZYAHXy<}c@4`CdtVj5<)i;;JhOv)ixl7uor*($_J+ zd_aA(f&3qy&d&xkaiUm$lK075U(CPgIyA3yZaY3hzsEq`OEiL~^*QTdSKY7u&gLWA zsS0(!TE`pdK3v^rY_Q?Om*>PTp1SAL%C%x-{++q^PgAq`;rVm_s_W3`s)==>>p8?NmX%OSsq(vx%B zyE09u?Wg+OqwGA$f$E-5i}b@^r+Smy3ukBZAEWg! zc?;FO^Gh~7^J}fT=e%5&rCiO_Yu&ZM7k<|2_+hb*|IFSU;~Ts3R~Fi`A(kKgoUr21 zstuT5u7STm?U{NY(La3u8~dL8URclc+oJE^-u81HP3PoQwmd}Y&ho=`4$)JVXO^En z&uTgc+IEoT2S-KY{9x4j4`E-yO6=umhu_@1ArJN6O4ZeZu{s}S}O>B;Xb z5BCZ=zqQ2r+m@MofPB~kq*n~09sCXq#SZ_ZqMUSZa6`CQ%Fnc$EdOl3o|%O9y>TP6 z{}TIsg-6=*!{SMO|28$SYP`_6n&3gYzJ>K9pVNQ7O+V;k^OyPa@=~;uKF*Q z+k@cw$?J}?{7^3H`Oc5d%;&sj>lKDC(cekVW7eJdRmS>5f2S7fdmg9lr?+$N_w@54 zmhbQw+b&Vkmmjq5PLT~?q3JBs=eoz)@MDt1sGZ*>^;zSe*dXO6(EiUR<)`_dFusv> zzMvVFUjOiX$w1TppFUqQxn9@N=O)jcELHc~15sYuqW&4x%LF5<&mHt(cK~xujSiEi zOqx1!igS*0=!o%S$Bi95**W1vxQ(4~T5qS{$SGsb96fB(h>@cYo;Y>F6leU1$`h>T ziDM^B>FpdmaeU>t(Nji`io;CK_U|x7qV0F8q&mH~qXDdA{QvN=laWIF)aeeN*njHC z(??Hn;=~6`s~j<5)aX&pDHA7-(-dg2Z>By&$4oqH=;#TP$I9EPTRBpnc-o{9hq*Rm<2pf%3Fl+z<>8VDe^-7$X=^c@2?oH`~=_F z@tV^ykCWs__A-VCbufZ0s7Gc08uvF!yGpa@>)Kj-bOhG>10sL6zsR3$Z-Y-F+dib+ z+T8=NKLBVnDA)hgm-If6N$>||;0KAs_q%p5g11LlyXn;d=WpO0pozcR8{q*e@qJ8@3y7+cXX z4pySyvAlH*2Yg98;?KZ+Ouz#C6qfWtq$hX=_UHqg|AP2}V)R?gK{#*g0@wlJPttSn zEP?Rno{M(xT=)Z32p{_+tOMYx$2fftX$#0-fVcuG@G^n;K==v3PqY&00m6^?M@UN`{7Cu^%mVUb5H^MqL|&-B+5OYh^EWNO9PlRU) zsK^WTy3`5dvjkM+h582fALG*a zx%PBhe!McnkE{E`~c+qmY_bqf0zaDf)5Y=PC3d8Kt7^F z5FW_z0kZ>;4EjRR12z$Im5q4@*5C>FLjGjNoa@kDQa=$W-4S`q?b|e$L)FlOBj# zoA`VmcXymq4{U-xg8XKmJ~7JLAUyUW_=SC9RPJNL2QB*;!HGNB^h|4n2mW5q+QU|T zj9}lU_V<$4q7Uxj#xvg6-&e&*4_MX7+9Nz$P_K@Cp8UoVRopz+-g4Jmdp>?HoxlF+ zwDQy80UIMa(bmsjTq@(N)xW>kU$#&G?YHFz+voZF9AE@PhFg2k<^Ur&dTQ?bd?Mum zd@=sk6Jf`B60{FEQ~B8I0OJAAqkkvo33+?N4(xOi%2zY=m)pV)><)W&dhz{>;@=$p zz)A2A4yuK79q@jDhv^J?mfP+CBcS4UMg634H|?Ls&u6P_jNl~8k27og{7j!{-!EET zYy?t&P*&03El=2&=E_5Ug4>I6u1B#UKhXn74}=Tpy5iQce%l|42)~bx|Jt1i>1cU%rF)1*pgi^x%BDuZ z`+dDLni|3C{-_`JK>IWa=kEYZnjk;XzPOWN2W}h)?*CF7zo`))knd6M_YKa(`96T$ zXDac%X-E$^P3mjJk2>N!A%ORGIGu2Q5WxFj{pm;#;C;X0*|_5Z;C--W1}b{s?Q^yM z*$?jnP>~nvN1VA^>iAE^%Ql8L#nwOHwUhR%`uzEg?-tnp-u3;B3+#gSJ6w$V5N5$Y zrWVBK)BD%;H-fj}FXz<<&-ahf4=)hj0>0oUxC#>)(eriiTM7PvgYiXkEY7l-i1dJ& z?;*cnH&Z}7&~H=?%y-EDpCT!XlPsaIgU73eQq+doEWPs>L%y+6*!?r#>! z`EKYhMB`xxsK^WTH-6cCZd&>I^(Px6_{El==}m;6>Ul!<4alX%l?zl*xWz|!EjyttRb4jcr#^pDM~E-}#cjpO^U3#7gbnqqu(c9$3;pI;B@UxxI7 z9%!$9%!|60BR!x8l9Kc&Z$H=#`a87u|7WiJ6VV@}pXi_5kZUJDD7LY3Rgac*zDni? z)oK>#{=qW`7MNgbZNvFfNAF9OVj_zA3+Pu%O};92HDmTi1zsd)jmy4S(rW{IG%YkG1K5)>yT@)w+kntb3`tA3MOhb6rH4 zx(_}Q^=DT9RGrNjHB_ixch4{DXY*6G6hDlh-trKCZ*TGz>V-qE^`QTMgFU)$4lhSSvj zUG8^N_ZjM*Szol1U1#X4dvafxuX2aYv|K4~`B|&(XTD?IJ#~-NeU|FJ>T~XHIyal2 zwYq*j#D@In5u8t=u`jT*JIzMZ)iemYBT=(O1Kde5^B-d>gs)w)qaGgAPo2KjN%+6JDNJqnmx^9#1 zyO|bT(=G)!}oL)z$j3 zB2IK>IzM$sNyA!Q|J<+lTbh%vkKOt2+b1=D)t&rw(fX6&i!{RQZMose+d8e^7~awF zGZW#-+sXReWqM_rGsqcKLCZ+xF|aJMeuq#i9eMY3cmPxT~mj z8m=MF57G7B>TK>k(AK|fzsS#xN7?=*b7G@GAIT0b8(uK@E-jWhjc z@0@ggr2j06-&f`wo4s=DpAEWio#)<=pVM{SyT8%$RH*M&L-)t=`zlg*p6|i)Y8-X% z^qZ}(f@3YOCF<_awe_mMhwX2as{3?(pD48THue zBviA0=6nEuMmj${UxNG?-ACgMv(MGX8Q$Z|a{$OsQr;qs@R*+SlWf<9s9dg|x8P{_ zWIvGQYT<6V{Vvv5eyH`o-Ye{CI^>1=u;M|Tv&+w0TK`;gDaLOKs?V1QX6_h2FTY}+ z%YLsu*8Ev{iwZ4osHx+DAn-Eb0^3{AD+)}p6zG4 z8h)o=Z2COspryRrmJebHnp{ zZ27Hq4{F-{@|2Hq)fuiy_YWs!mmg2-=fUVdo2#0b3!c;Rd0sj{7yQX`NPgxXXrIg9 zoBEpO9NnMJedtB%@ySy*AN>=nVi!l_dBMJag@*sfZ0jC%SP;9cQg_CqKJOo6f<#$P__>zw^f<=Vc_Ev$h%HyTy%f4?xDAMSr&r|JH?_P_6Ru+7&{ z`~M}HezU>WJ^DO%9PCh;kQMcr?I)18GaG4tOv6{$P-d$3^Z9#ijJkWOGu#pPo^V-q z{qw!n&-dW>g*mUj`FpDSP;H;|+<-EbbIjA0FNSy3J$Y^b z`SjF3qd#-gSK0h*U1a+|o&JpS)3Cby_!s|Y`8n$YTOOQ5{rvGb%MZ(ytMasY!-n^- zv*n8N?%OBVo#o=_mioKqmuun_hHE;$>XoXWy>RY5+58mVV)?neGx%v#%};R2{|DW$mWOR8wc!#@%fRB%>o@C z3olLQXTja}f$Q|SuW3KfpKtR~oejrZqP=YX7plh_JV&CrbuUu)G96zHT3GjDb^otQ zZLc@m@5xd3eQvYvzPgvFdwrhoq3)&X-g!S8KGgT*_c%-ar>VZj&0n3D&CfC|KhN!k z@%alIWX|7+W~KAP^EcLMdMD_9;b_(~!3wcibSs65H0!*NSjpMLgbx$eW&y@8HHGJK`F7pYFI{|m#W$@tj!jc$&exPNfn z%NU<8YGj(fZr{^fX8B={ntJo2F_nv$t|sW|`?DQaXR|EfPJVFJd(OPng_sx1o~P=* zE!SSRD%T$EYjWoOR@ct;{~XOsc6#NVbL~%J{4?8smA>#w)nB>sole>1XO@o7yEQOA zhWVXgdOm=2d3yPg`5jT~tY-RZzakuH`z`8hcrFCp%hhAeQk%a#{{iC1s`sbbpV4_7 zmd5$IPm|#T4S(E58{S=Pzq@7Xe&UDL-T&0OQ|<%w_ZQvo(ePVUk5u31%DaEc=BGlx zFK;sfw5e|@Zqet?N$00xZ<`SLDY?Lgk0#`fZ*c#$*W0!mEI&mW-h0Qo7wLO7OSrr0 z-b%;qy{~QkR;ljKv45!ZHM7)xgZ48yFIJ`QzV>7NX14tzpZxx)umAeRi-ezGp_Qvb z+xOB}@%y5C_4y>;+;o0;J_-3*r}L!DUws|(uKxb=Z?*Ld`8n}v`&`ybOD*O*K-3()qSFtAJ$i8>ONZM4f#GU)6w5+(J8i^m#aJDG2MmV9K2TeS*84}((-fv zW<=;w&5wV@j`8!0j?a7gUFc)Ytcz4G-Jec=2I+W?dC-=JVvUeI@5NDfo)5$HOVoXf z*5@22p?v+gUsuaj7Y$#e<%i+Bsyq2nt9kFRQStpdWr2Nv*3UyGqkS)}YfjYqC%AIQ z`0-f}A8*?iK4+YMFM+y~pD77GKVj95@nclpXn?H`$w9*XYd z=OFz~gG=r2bn=rdhvdiQ?|Ln_l<#f*ozC=GK8o(r^8Bf-_gsC^BtMVLKEHVyKLdMU z{P4({ne$tsdFlM{{FZejLiyqMPUruv{BWF;{4n3BFTLcitO~)9MG2k8Ci}kF}c8u}Cu_%u>)HT7I@CRi7 zr3-%pe}Pki_?OnkUTBzs2wetxI^zD%j%Mpun8U19 zz5c05AG`jKeVYMa=k}8t^|t9nv+yin?p?Y4Am(dQCvVhGXuI>KH2!4%P*iZ1Emty6 z*cgB0kNXS#A6z3?@i4;5dd;8R7~BsQ!Y*hd`&Y1NDu7wQ{c}Fdf)M)?#ovQj&>lY% zW&Mtav<2L+;eU_tK-kWvXW%E`evRlS*9f>@!~YTC0q)l@@Dpqvg#5w#`Y;P-he&S? z@)KcWm~=(nsLy!(rq9y&lletaq0YPJW!UGW@|D0=)0qhgrb;u05Cq z+^^}vEXeSOv^^lh-x9;oD85Y`CtDDp=A z$U#+?rST{8kD?--m(9mtcs^tS&cb?FPxeDy?8YcXd5R=|FT(o)!=!v+e^~^xfc%9p z3&>vpvw-{sNLxVuLLcD;?QHpT;U^$}4&n;PUw8q+0_4xV5a9vx7s4zce=fob@+tC0 zea@d2O-ti%1@|vDu>H4u{CVS1K7h6lL!OP;|67Uo0lL8+VgI57v*3(F@V&s_g;}r| z_5gMtW&!zfk(PjbdE<~iK)xcF1>`H72tR;)c@q#GAYT#80`Av~@GJrO^AJ}sJH-3r z`;G8yK|V#^sQ+-zrK$U8hU!FU(D(W{DVfJ@Z0cm{zYy&~yx(b6Uo4L7Yc``}7-0RX z6ZDNC`?11XQQs};8{?=0V6R=|;CVp1gYbPkSlzyiLbWb!i@6#8 zz&m5CJ;3`5@+tC0{mrQC@wD>y)vq=M|6Tig=HZRPU-kNJx$oD(`s-js>ljgM6YtLo zPJtb`ysPzhU>3~M@b1XgMoEd~eY@*-k8uauTk}#a zVc7aK-MpZPt-Ba=?D+hyb|f13H~N@kFf{r z!PMF&Kv;oOklX(_@>Kgg_FwLm^49@;kLVs_joSTF@&3RGL#@9Le?dM)-l(@9zZ1YL;QpNuW-xu>%^p|HD<33v_ z<2LuOT>r4WwMV;R{XcNda%*?iH8X;nrdhlHZZq7w+RQAc{X^J+O=TLt4eqN3w$VNk zc3_b{&$|NmRRa%uHhkE2S0mU6d-nc<`A?$!wymxY?>f?kr%XG_-yugn)i8~}pC7O( zgar#?gN(Cgm%nXw@cdTzUK=)xacO^)$7fL=!Y*hDe&hX1jhYz`Xm>Ea$Hv%C0JC7X zNmd@eG57)gvA?yOCe4iC#z#>fEJpnVv)}@hPqCXK_yg10BK+R)hgtCcp{NF$;P=Z; z$Pa++wb>crfm&M;UfS31v40Bq`f+P_zr+3~AUTe^qx@a<;tL- z;D`FT`QPL4Tzd)HS1B8&Z%-o_zORkX^0K%g@>72Q9EkLQhlkkkt_wTRq>=TH;3wGS zJo`Su8F)Y7oT0hT+fn{LnEU8bjQ{s6YHSJP`HENnfb}zz@KCB-?C&^K)3Kty5c{ec z;7{ljRi^8H-B;#Y2mR0edd~XJM!@}g0nCEcQhp(SumN^p3EHE$e-w2_#&pi?*9&15 zNdHjw>xCb{4rKQ0ecT!6rF72h4+>!xaDQI-3G4v(=lP#@##x1(GyC)0jh&4kpQ=!g za@D(Sd1GPr`GRlh{Qpk_kfBgFo`w$xs&ujCuU>4kb0%WUcfR1sI)21;5``M?JYCrd-;}T6a@5FZM5u{~NPBu@0k5-QSl3I7Df9H@4uX zQh}zQSeK*Tztfl=^$q1aUtODun=)?!7S=MSz@_y6hh z2b1RvI{MsxI&SXXZreNZyinIa(VaZk9*FXb_9HyLm+^q>P%s?W-4lA52=;txxO%Ys zyw*7vB26gTE2a%#PoW<=0Vprs{lz_x+sMh5YrT`*+se z)$ruc4DDsYqpJDyV0VCgiu_UUyVE&?vd2f=!1DK9GmPK8$5MvWZnOLqYQof|Unu*x z)~Wlsx;~EcDtwO_T<@myx<%@-=vm8$r|ab@_kf1B+|#|IhX1xtt~<-qQHk)~G<@fF zHoW6i#V%#)e)8Vd-TY|X%hi1&8p#O1BmEE1Z@jdHx>jq&YUKN`I=5-g{x?VY^F8o4 zwL#{76nB~B4?T!jQJ4Es>f*0b-M?&Q-^*QprMg&ciH?tR-i4mu>U;y;nJpi+0CMFE%0U+m3_(p7<`sUQwLs7rAE_n*et9YXaEK&|ugUzXQ&}nF&V~o7bdWYJq-^*x{d4n~5|PtNbn=5HX|4L$Fd&*%BGL0vl@!TjSnwk)rF(|DaZi9?>L%Er%{Y0nkAQSwh-1Hk_$7Lhfz01nYJ$s{E)B<0HgN%Xw z82F1lfZd0^>K)6!TMzLAl*)Uu&S$NhG~%@JBla6S@#qPskDfky)Zt^NjGi=N+~nTQ z5u+zh9&y@er*hK7DHA7+K6TvakyG|l$KFo=si)#d*Qq$!v<%0sjvH~>WJfJWjh;Ml z+?k^%$*HHKC!LDpTICp69E&<&+7vlXb>f8n(+7_jKe{9*;X|j68z-*qom}@!q+!!5 zM|X5aPntAwQhPixk>1qtr;MJI8(cGBqm2FKxc=o!w;-p(PTE2oV4gVS4a zlpf2S>RT7w`&L^2`9QS4qTGk=_{&8YziN_ozJTn1b|>NYd-Jw2cpi-3xGjE9v^5hx z$9IK%jheQNQG_84`TY>=gz$iz@9Nxza>!gyruwlR2KVuW`S4BV#u>t+ZKl(g6W z`Of%Z18jXy{qZg?K$YZg@L#KDrSW%)@)tgmpFcAh?>iUi1LQBd2=51wKku@(_-@)7 z^5@I~AAs-|L4NOQ_yfY9KNIP#Kze}i7aa)xZbW!M`14^m3m^+1{KfHSAU+`cN&FCI zf$-;jfbs6L@jd|gb1z2v0Qn2?ZUXY>c4{cfbbVVe(y{00SJFVAI#^yi}DBv ze=h9KTSy-e{v^J$3U)yFllURb0^u(Jf9?Z#K0y9_yqkdh1$Z|B`E#B{dI0$|c$XMT zV3NQ4n;tzWt^8HIZX@`5{^^LZ_*tJd{&!Dp)XO(kpBGU12ELzTs>fe^DPK5miN8+= z;=$ex)!}Did?4E{+kd^R_%+ZDMqR7p`>?xptK*NTmm9vaB=`60HhiDi;duc03&jkOzu;IrA0U73F$fQkzYt~t`EwCgK>k8JOF)(6Z(`m3k4WS1$EPiS z-ecS6FKmSLfeTuJ9|z^F2=5D!KeH2_4UoSOegg6r!7O0;a}ZWQK7IHJ$X|eG3CLgA z5a|g}KMLP2`~>9BL0kd(3mYRWK>pk&2oI3I5M}}Sa}icRmE>>0DIZ>u#@`KCZ5aek)173Ck``I#Zi0-m24z$_TM7X#q5Xa%JWD{81QGcFQUIT z9p@JUeI_BA%%`1=^A3TL<#=C=r~2pgiE$~~PY3OfGZW`80*}o_e6%MK`~}y--`%@5 z&TdC|;O}Tpr2GZv;dwyaKiT>}JOk$|0z6;QuS9qt-}#Br1f&n}{KNpy7EmSm+fZxu z{51ZK*~Napq3#Qmae^jU=O=Q$$ho715pcf9{}S^r0OyNBm<60KieMJ>?uPP*`#*!* zTg2dek=cs58(u z`Dq9{@YyZk2X+@`!Jt+JCin%v2VfRld5HCQU>5LvY6G+2ZLDAL5Z;4X&_%xY-)iCz zDEI@{W56QXiu7R?^xT5-Sqpr@EV!&rfr%tO%mRM@L4EiG18zn9<``#yS&*p@>LEP9 z`oM*sfGWvf(Z|m`oL2sv0?VIibWI#}8vbYZ|JED~`A~nkzch-m72mJ)SNv}q#dsT{ ziof}(Q4GG11H0gy?lydY@B&ON#^WXt%z{>ftlj-5(g&7L1wU=kKZ2j&9Qcdfg;`ME z!KTOl+rrYj5w{^yoigSgxJ?p_<51|E#;}z9t0)yH)A=AY5O2 z?|lfis)kvn>m7~u0~w$CvKltIO`7U99S`UDCLh+bxgFP{yXKDRtM`M_U6V5{=gy9! z(jD0mtI=HFuj^t#d#tWZxYt(qYjxc!(*cdKdOq>oy6V2}uer}Sg(JU!QON^+l)cc~wq$^0)M@T)xTEhlz7pTump*AInYh zTo$?~&t>s69cr{Qe6v5zkMBRDfB7AjKj}X^`&aW9YCoF1QQuMi`n`5-{D|cFEMM)B z%Tuww$UX_4$lw3A^7q_MgW6_)za?7!r2p)7tLD#yJNEs~oNUV(*Q+yMrX|kvDO8Vq z=l`tPNz3IHTQ14paSg0H>ob189o|s)m(fv#V!8Zxmp_&}>Wjl>du8*t^;TQ{zPzRY z>v9V-^S|yB>HOV@b#0Mztq{(eZsnPUtOVkY}9>++?P|N?q_Rz zz2My`(eU?wXx+(ciMrqTa;|&(|HIvzz-dujYvTp73?MM<18QtUa1ez- zK?Xr=5EN9*ps1s`v{4b`!lZ(uGUvR&+|L-=bIey zM)v(Yd!YDy{AhXhe0)E5K7Mdl_I&&p=j9ilcOS@^_clM4v+f=6ADwR>{0HaTt5k7> zsHJnCGcHfRAMrhdMOyxj!uc@Cx$WFTcK%-cNa^zTP%j;EthWG~TYe`OXgy-MpYR-s zCzM}i4rRBf{DQYHOgYTg!)!kt&jVz>|7_(le$DE)g>#>sgAu-?Z&+jeZVzbq^dA_1 zV;9Y5hF@oV-|7#`G38{=Zn6ECYj*3g_kCAf{%URfBKHG?@3wWzzqRu8SZVpmyjaY7 z3$JiLwzWfKUwo;RGviZEM;V{*;n@Q>b38XN+n({fB5!YP7bz$Iua*z3)&CR=rtc^SQ-8nM43TWsqMP-S&*h&&G3<-?QIX{@A$#Z0F8=#Tk!)%lOCDVE=i8?^r3bx;%BYuMH;eMP<`Z#O*#%CDLE58BL4efs9V#Z?y00a>~3Z~OgO{%XuWtr_+sFnh^O2b^9kzr@Z5 z{nPgtztpvH4}Ylgi=QklzlX6dBZlSg=?g6Xa^-Iu&c|}~_cm)U!-e`DUK*NnZ=9py z_^&FTa`Nq51fG}Xn}43`mK>ntNtUxJn}6~=GnSvrjUV>W`F&vF{O!GLe%2YE7Uk(1 zW9Eb><`v7&xBg@Nl^8$2*0ON^n)`cc`SJWU%5SdCAKBh8Ubb62SFXYw{$g_CK0VL) zQ!E_vw>ExY^)bJX^vT?QTFQH_ohuQ@0wPScg)_IC%8BDC-}u{^o(aQeKA3aiTx8PY zZ|*xt^w)yi`oUz#&;P7xL4N+zzf6AnTffQr#dua8Zt1o9Rb~!9U6kdQ8-LpFSw7`` zy|r5m-!uOm?ffY6D~;bO$ERFBJ0%-F<@#oh?^`&urq~bK9qw#DySV&?3$*=fKOgPi zCJpCHg?7GID|?x%k=AJY~IxQ$2XiWvTTkn;;%urR9s~R*g0OPA_HolsDzaaG9U?@A-K;|E;{%@-@=>J7g5rXMb$(7TNhj z{>swwTeM6=ru=$Y|LeY2y${BFo{f`P{>sha2OD36w`;m9j2~Hl;I`KK>lwd^%@5eG z@I88)-ZS~zng44a)A!g=yt7tSXNUnng(1rSWTQe98P_IpKVd{fck?^XH|GHU2uA@9~`UTI17Vx@pgC{*2sTKbY>^zaaN_ zM4#eYg}oQsm3W?xm#W(9euwgknkJj#;YlM)-|rEfScUs;svPh4NKUSD0^aZ8@LMnf zO|2*U`%VH4;8SFJzeh3^{sG?a5x`Br`#nNDE8zVe(HV#j_@(!IxS5C#XzYFuHw*3p zGyFySS6}pyh!vEODXDkQCcI&O)C8m$d z{Ae=8!5hu@D{e+c>grBy+G{>#5ie%qNm!l$%7V`NX+ zxFCP-#;kQFCwmXdwJ*Q>7@zWZ!)ZP<9LnQ`9N)8uD>>f&T*uFp$3h#|MD2C_GR5Tb zv(3{JJC_7k8f6UQV|rFUKJ6bOKksUNk8^_eTSre)rtJ+y(oTJK0wp%tk#vpd5FzmAkRfTL|Qy z*#q$e++|;Isse+<6DX|Gwq!ZqRNO;+q6_gx~X2l%t36-4t|;@H{w+@zVeB`rTd|i~Eno zCcg>jKfD{-x(zljiC-x#Ke<;;_HX$XUhP872hZefZ1>t}T5ghCwHz=XDL;1w(Veibx>G@Z$>dHh0w_N>rIYiH0Ze}0vDgC$UO|4K1Ay|2e%r}8pdi2F@GL<2 zxf9@ie5VHaorrtaz@z;9sn}--9_t6~zYbbdSL*xu7k}1uz2q~Mn|voKPybXR)c=cX zp`QaZ$Ngs>?mzbrfqoA_eYR+lkNw;Y_k)M{E#P?_34RL-`dWC_0X(lGhMVAr*$7|m zKZcv2pih9fBY^q?@qzF!u=QpiZUX8Pc?e5DeWLgv_ywp>rxHb%;L9CxcRah z{0Y(D_XZ(-+d;Pp5P6IKmFo{07`U6dhxjd+fcN*R;J*s)Kq?=!ixGYcSl-+~xC7;D z@P5$WO16PM74YB&4WIfMe;xw&mJRwHue4Epp>QX}2h?ByF8X!!f4u4Q`a3|s40r|S z8;M)c7y4tsYkknJ7KQh7*X;AxPRz#lOXYjS*A;Oo`O5tbsj+(-WF5O$zT2OI`1}?w zxgGBhJn=WA2l9^YguH+&ra>M%A-`8ZzYR#NzJ~ZM=mL2q|3G=U3-1TqiEcK+^Zwm< zf8f4F_`b7CGkjx&f8gPcD&Kf9@&cIskjgW-3C{z2J)D()%fBk^-Gcam@D0$Y58*QW z2Ht!O@ee?JHy}Qs=YF6OUpyb-1AXwmBLDar(7**ak3ncZf`6bf!*Waei^0u%my&N~ zJMH0fo;GHqp3D`b(vp@rEAH3g#2G~A$XMzUUK6oK$pwK>?1sY)c;QoNA z1;F;foedgb`{2$24X}N1=Yj^s~qX#ZvM;;|C2P`KykTL_e_{8e(jJsh=3%0)0TBpr44dB0`{`pNQWv z@S(IHXwQ836%_Op;g$eBu2fW<{vWmc$~sYT|Hkn{*b(}Qz`LK|{ZJ_4PSE`WWcgd@2)_lgEG)F^yj6;;N8^2Z z;C#0^td!_SF3G@mp{(`o{#}2k5!MV8RUuIf~Bv3miBG{(g)N*K0^EWE%>q){Wtt4@GIEN#tRN^f}J2= z@gKuYFlj#IE8)XUa01*D&@p}s-o^MWatIH<1^1b}J^U6-x9|h}7Er$a_DByv`3Cqc zpnTnSNDn~yCipFA%uuehuX%0ct)=8E=ZA|4&eQR)oD(i>1KWqqw$ARqsp|`QVEo{f z4Nvi+^*`}P!*IUMFzlta{=M077Xlk?|4!U|IQHiacX!;R?n#T`*v~iIRc&kj=MKaE zm|^Y>bC2gCJm4exe{z^hfFEbr^RIvgPMK@{)2r|gEVcN(wZoj?!QtxeJ{yMpRl{7X znfko@CupFH(aGBg4;Y93Px`lD)8Wtu#$cooL%Gs^{HRVP&sUpd@{LuyG2iL$&UsA3j}GdOxo>~B{V^z8XrH1ZKm(`Ac}}3i zsqhapW++$ML)WbXr8wkY^g-@Q8c2kwJ=^f21Tnf+4myc~Zci@O+&JaSI$? zTh0%S_k@3-C-kX>4)#F!Kx2k-rM-FgeM*jhpLs_^NG7O!N2T&@D8K3XY)F6j)~O-Cu@#G5t&Bd&p(SeP62m z{m@zayGrGI?DjH#XgGiN)_bz)-SBdjezz&ovrR+#PP!NMuUP}#d{EYXNGp^N)IYw@ zV3AkR^X<@HOZlh!Up~*qw{M%Qdoz(=k^hw_a>exO9Nle6*1gTXDDOq_Uo$yNHzwZ- zb71*hH+IV!tdDi0e|{hM8s*hp(av!_`gX{xc>Md<*^rlq`gun;oY&hWJ?9|Y6zg=$ zaX#4lUEJ}XYI2OY2M;yOQI?knI9|2&T?0`0%s#T|qfP9%NzAib-*6zWe5 zI(V&%I}`aE;eGsj;r@>&;@>6I+U%7?#r=TUKu(>$mlD=cN3= z)^FP!hx(5~`8)f58h&zB>fSp2@30e3&F?U7NR2iZZW8s+?7O77x=VBVbLQPW-v0d5 z3%_ro8l>iI`wmAwR)$iuo82oCo4y_E*#)LIj03up3u`c3`5!0)yUU}|okO1U}wPu-8(=C`^I!uw)<3xDBp7#P6#@8~+}SmWpS z71S6%zpsV-{Jxec=09)MnH*>j`c3U?#qwRfP|NReSbt28+O(iw8+~3{zSOU!e5q#` zzE_`#`i*b29L4=q4wUbaFJ#*XmTTTO>+PlG*R#;__r%IIlVbAs#Cpb``LxFCWB>+J zY5cstV2$x>O@ET*z1H~D!}NP!nuZe?KP8I(&9L9JPg=CxFP868E58SBhyMD+Htv1X zpLbuBmhbzfKcAPccbSzZi|@zLDo3|oD_zr}Ud&>#X^a*Kb~9@+F`0&Fei=zInZ8 z-`+c~_sn)9ulG#3=k=Z`KMSs4F+H?DIQrdlQ~CZy%f-@p+CJ=g2g>i7mWAiyuT;Ke z#-T0i>YKQxh4bqs-=K0y?7mh8(0+}E&w59GZ2CrQuNm%pUg>tj%jr#Zw}9eDi>+_ee*ErPore=e&TRr>Gpy8zic16 zo1TaNH|?((^Zlm(<~r&)jQKm7`xCm(O}(;SUu*lglY!ZOpXUmOL$#d^7=g93iSefx zKfiCU&iMI#dozrm--j0({{+)dWIml`{Jh2R19Nz5&bFTy%eTz*Ten{Y`5xDx--XBUAaBb*!`=6osGBbo>k`4(sh@oPf}l% z`INtx)wl5P-LXF7f2{EbK4#->3%|zr`TJUHji0wdW6(ahy$g!vTWwo`$SHAn~X5;A3vU+SMvJo`oa;4eNpD3$NE*52FvxINa-y?0s`?l+BoDBb?bcZ*F> zcvo7uEWe)J17~cv^<^5q8>aP|!^bCM<%i~<)4@Beor%pq=f~~se#dBM4F}6CshN0> zh7*|o=EkSqtpA;k7t4%K{n+q)4X48RTo-k>40rx%!yG=tWcs@*=uL8 zqsL^~8ZV%9rJ0p{<{h-`D)-=ewxJsj0JlaP*JiR%-I|V2)&;-KgoL|DDYL z1g;AX((=xFW6lN3vtJcvw^}-)T*~hXE5DW2{>uFn-j?kO_XB%PRlaNvXv@77n-=Mp zPUAj=-)Mbg#64LaZT!Iai|@IJ-|OVg8-?=4doKRjDRa+70{3lpbA@{@yw5si?z!;S zb!yP-!JQTkG{4))9Ty(%rQo`{+;I_n-6?a=Mf7Q>%sm(32I!dDcR0D@BK+<@zsI7^ zUU-VxlOLUae{uV}!P?*GCA`PhETw3RH&OYLL;ErGZ>h2N_es+qccZoaGFNxyC0Z_` zXEpzsKmE@!zTJmgW)Do7qx|q|_3s(Klks`KIm>l#?$2qi>!QB-pL4c`!*$-V#y=;= zuQC3o)*jM-t?^H@eO;Vq2FA}@Oh4@xFC5gT)c3V_-c*4l+o)V+9kK)dSg#BEIa}cS zCBX9)18*eSzmZO+P4Yb}!EZr9f43(Z6oBU~hHw)E_rpKFher4<;Q5O&ehUicFXCAb z;Q5O_+yvAI36K^6^*_SR5k62Thj4QM^?j2qkv@R>zTvOnAE3UkgPVZ*z9D`K=EO+v z6X=EDH-!nBa-}`&p88*xlCPXUAttbMC*+)o4!QHAMgKHh1$_|U+4E4|U&i6A}1E|6GvFI|;Z-E9x-!8ZfqpWwKs{uR- z{V{)Yd=JNO!C>@L(XF6A01e!N22}K0leZB*Fkkv1=(mQ5OK{>49cOv3B0a#ZLzRv` z91i{C;qHSrN{7$EKk&>1j8CBt6RbvhfSzaQ`z0?Ud|=PErl0a9;s;P z7;p{V5BI4BpF`gjSaEd|$Q}9;Ek~qiOunzb^5`+84Cf8B6I}Fhnu(%Zh~c?J&`Zm1XcS$ zK4@Ru%Xl8xbw`Ac@I3q$1Xtnx5MKztf<5s)I*|NESb}rsBfoH-sSh{7w+KIidki;$ z==ViPPXsps+ZTs-5sX=g^g;jK!*2oGn`9-@2e7?~UcmDJ4a+Uk)LjtUMbFz8HxJ@f!7YT_{Sk6ff>q`_P%k= zMWy6B?I4ry5S>@ZI(i4!pg(e`lt0%TdsDVgF%s|RH-S8l+CIgtIKR^U9p|4?RQ?!v?24g{;=zJCkncH2J1)u(EGW&OW!gVOO} z#0OkUdI)IX{KL$B2hhM>vC`3wNDpuf+9%mx;1AnA#VII8LNolcj>yK>6=D$gcqqaH zz6ve;;h+H;%9ZxSreB;}O1|~a*%Rw7OMi&|bcZ7SGU`ve%diFtP=DIJgB4bQ`qMss z3#cz0;J1MK&>?;c3i{CX(1!-7|LnaBePw|9&jEf5sQ(<}w?Oot6YMt#kru%}pzjw{ zpnU%c=>wuyL3e~Zeha7{o#0u4>|gadp?$j)`qV&U=fB3C5g)+wU%k~>BL-+FSK8Zt z{P_>1gN2tFT=^CCcpUAw0kHyw0M3+ViI zPw}CL_VkkGXoI___!Y``v=II~z&|h#`&&f+DcJ(FKA#4 zmc3H>^O*8%ktnmYf_pbrEM zoOvJGlf`IX9)dm}&}BZxKhTGaUxR)g@FDUiT+rNkua8RcD%^z*-$3}lNW4IN1LXB4 z`~!a~*Z6}3;R7DZtHd9_4R>JH>z1DP;0}yD%F?qQH1PgTkT3KfqYsfD;AP}TN?!{a zcye2nr@IpqOyI(~SRcpx_zOm*XiUCA#gdZuhc^4Y$~QSele8zPZe-y$8 zp4biPL-}*NA%5Ue^jAU$_${Emq#F%)fclalehb(idt)FQfclaNehaD*wCFQNyW@QU z>PrTDAbf!Ok_mnbs4p3gMfkw~EqzIrTiO#xt>{v!{5CyTbHsl_+lM8X&=$83?EjOg z9kKtuW1+tf>pJ56?~aB3-ao0M6I|I|<(-@Y|A6c_@vlUAJQn_e7f}AB|4!gn;KNHwEDmaWAQxt zD{p$o6h|F`^bJG&`@ugj6}0TficUj#KvgAZTJNgJ%=6wCKol+Q@!52y7>@%j!(A87yVJ}KS4PGGl7VZdNP>uFDjc+Ex z2kwEp_c_vs^a!|48J*k53AStn|B!EV254Ygv=7OTpw9sfY}^LVV|*PTet}$YDdX)J zzXkQ8zbffH3+V-DC|BAW=1d+{O1`Q7DIN+x)bZKvx$>LQKZOqJDUb*CPeli{SpQUX zP>c0XedwGP>z|4aYDWJQI;X|@r=o*etbZyxsKxrH5$Iz5Qx7_)TqhI#Q$ex*spz1x zJrey>L9za+=%7wOQKkN==%DgGSZ`ey?4!==qso|$@H-yBqz-fKA-QrMmtUchz=y%hVN19%fIh(jQocPR%N)tVz4O#XOX^^5%v0#XANf zy<0VNADoDMZ{Ez6-K*|b%RHf1Gk1xU*YBFSSEuUp6K;V02+9wl4;M9ehhRSF&1vqA zK1rWjjM)6|o4MX6Yj{VXen>cdQE(E(Gui4()Emzu+yfWD9pR+o!mXRRn|IfE?uQ^G zy~8lR6MG~4i~V;zFX2Bd?F#%4L3vN4{7Sh7J)8glG{dMWe^ z7?;Yt7PR*b#=&ssxHuFV?i?4#pkvTG%6nsgt&tqGZx`@$NPYe z;s5Q=@cy9v?-4&}j-w;c0pg>aXzzd3^~aYgzh&z%K5D&*oAsmWmxSH5{CbvAw0VA4 zxs~5`vk`xJGq=pc_ziM;@&xx&HSn`_hrI|JkxTGe5ezCXVA#U)RyvzbTS_u zn$oC!vqC;HznD+V51G%%`2dt}zi}E*mC2{l>>qD^W{9k>FShT;b@LXcE;9ZNFKOq# zvGV~F8wVrjQ$t(E#jWvIXZ#;tMTLe5hhAJPP3fjhQlYp#50u+U-lp zzyD~JzaMD3asQFc(MmV$?`AoR$B%OY&hOl>QIP=7@4N})a8D}SZGIQ;2mipC_o080 z`Q85GQgD739RM0&IgJhk4X~U>wV(l()9@hN`w4J<7axr90nYD|L&iA)=Xc)Wa058M zi;h5ez;w*N(|WK2!UH(p3y%a1+=Ka{%=c9KKmR=VcPekv-#p(Wo$rzUrSiXX(Fs?S zl7FyLLx=|G_-@Y1CXj!tLi^9}?9uxJouD`R$@omnkKZ1cV&iO-zvdV}yfH9^dmrf^ zf&Lq`Ad&Kp^>81*1q;x;B=Y^@b+`f3uwEhlL%0dPko`v(@5XQw@H>0B9`3-qNUprQ zw{{@P{Xn;9Pn6e}5&u6CKhXUqb&ob8y}-_oX3O(Fct5Wt{C@%ez~+6F_C7{f){%_z8G-g=tY5(znu^*R`zl=}B#ND*~|3~8#8LJeJQ)H~d zeo@9Lg5q(Cj8)hl$~Z;9elH!TfZh@P8^1p;}k*hI7P-P#p4titJI($^g1Aa z@ms+DPsS;N%s2&O5B7^PP7y3e|Crb~MaC+{;}jXI6pvG6tipa&#wmiv4CPMyrCV=! zpp^XIS)lR{uT=TVIHlA$F*pS4T>$0pA6nrAl)raag%eQz?(hmHp!^g378K+kRJa(R z{G%f(&^}ZY54Lh##Q*6Z{rX{%#7~0m|P$ z7U2PuzyDj%0Oju;hwuT)-yM(V1&tWWop!}5mmFV8{x3rRP)xjZZfc7jXR-YGeLHTk zl@lC+_FV3-3R`ZKVmbyqGH&x*ZIxmkhB0!#mRGh_ijOeAk^8kG(1H!GpuGQx?|FD$ z!1E}4{1(W06W#{6!>?eWg&)98a4^1iMVp{M#&5w|ad&7>;8$=(PqY{RM1PF*2!3;r zrq9D~!Emx%l;My04i{TKJB8P@9nnZii> znyeq0;;0Tv`yY&Sf)l1AuW{I3)E54MFR(u3-6ZnE`W`UT++CYdIPeW|+WY#i;(6eq zRvKRX<47lH)mqcT{&4LEZJ$Gj^a1nhl@8t+iSHF7UH2Jyu^W)cH%F#e3U{IT{P{x> zKHewkiuFa{`H9xvZyX7|n~`oJ)<@I+;a$)`V@84%L;LRLKi($ed*wP;b0abuX3aT} z#~n@G9NRw`_tAQQ&-AIGJ!hHH71~_6{JkdT-F@&5DgX@iTFcGhR~+9rxg_OO8vmjn z)IarAs*L}v?K>ggH$L}IQg5rq__d~I%6)mY#$RB1YJsh5)EPg&Pck(A2GdVx_-7e^ zvgxI|k@YEOw(%RYB%8$q>3`?mKKkaB#qv*XQu&L1O?VC#Q_T34rRC54f0Tb?_kaCY z?_XN_sJ;*7%zSC={;F1cYyMF_zNLHiRQam-4@Vtjr z_OJN;=B7_j?zFjoh4O#>K5aLAr}GA;;}N^hB>7PDlX83bd|gK%pYQvM-Rt4oIrxDE zbs0GmJmwJ*-_`iNFU<108GnZ9dwX_I zScUO7{8jz?wvWRz{>j!~c$OZ@@5=Yoe`Nga%ztCnVslVwIyZi7{j1c#!c=c_JH5VEl29X8Co- ze`!;dKhqN$zcI_iC7%ORQ`suWoPWUfXXz@86_>Rye1Gx>&Q1MO?zH*+iSqxSZhw+z z{@-eU0!t6&$M(lFz4ZUA{Rvg<=v&o%G+}<`{=k*i{w#e7W1bo9-D4d8?@(I)kLAYy zJg1&|@)nKbeQZ%qPyRS-|KkNZ4)N@P^|xqwV>`z8on_~2u)MK6-Tk7K&&@Qyd<*Bc zceCNJ{P$g%%m4KcYC2ipnT`id&g9#4&9$`ti+ml;Iycew5%8S* zG7D%U_n+j>#jhsc_QzD1|Jucx9(T8nyFBBMvwk_gOZm*-Dhr4A5HNoa%ALng`K__} z7t`rm_>EZ%kMXU2Vb$-7<kXX&B* z3hmEIP3M2s{sbnFTC=CFIQ0#Y|Ay*Ejs>uWgOqoA4BMacZ2TXzzBuLc-%#717H+V7u?FbaD=c43&Y|&ZxsPeAwzp>)|3dn= zaqMj4kKnj>;+1KX^~UFZ#NbDj&r;(*WO8HwvfB7dtRJEO#Q4viYw4`g^p}|&m)d;6 z`TD*d8&JM@&Sv?d-E8!_IVk`CqJNVNYU=zV{RMw#mH$>29&PF`c$Uszs=pxX*P=i0 z|5rVRt6E|G6?!x7pG~)&JpIHY<-ED+M^5uj_v%hQ;+PYT=)cd@{ZBmZ=$S_!wfC{p zjz0N_<4+mp+2M2WF?HJ1laHQ!{Lx2F>u=0q-l*x5y-9~o$Dw}JI2!NxBaS)6Gh*MP zPnmlBsYjpe{qH{T&zm*O8+~-$v?=l)-Ygu=_X}iJBnWTTcHYq^pFH*CzPU1AOtRgj zJ*nB3ACy}EkF7!Rr`h*kj59kSAl94HH|Y9z{50-$0e0%BbcBOr1vP6hf57()w{?dU zZ$E_b)Q!+j_^CVv_nUEjy<*cQseZ3l*})0M++yMXjPQYt=-9+>v=-q5SAS{ly*s!V zc=l+_7mM^0o_`GW3;VOe=gU(ZGa2c@_h!b|YF~9vp2a;lz-+k7_vP?8_y^XuRd)wB z!9`P${^rmZcoOjgBe0MmVR=xj6)a8QANs3)uMQ~=xJK!C719sTQ0}y+M$eVp-`RYW zKEd<#7NcD&mVfUVnm)eI^qHXXe!-dTQef*Z&izJuE@+qHN6_>u_IOO-B79#@{)96` zfi1?XdvH0P2QET*;x9NGG_W81i@t7B5C1?jEC|W-;brYo9AxhP`G^l#v8_HIBYr^} z@!!2ce_^8~do;9IO!lbt34@Q1aN3thKjbGoF>6pC z#Eu=@fe8B@h4#K0?F37W4x1o7zyjMJ8gv|keK|;z8OojZ>>JKFqm=w_UZe64FS|5- zQug0=a%~IkkLX{?{@dW|;VHQPHUTZ*{@d^y>}LfE`)~0(0X~8LpzM#0zQX=jpsF|O z_vNVH8$koykL!Iq+zFP#UHtp-E8zaz2yTKW@x4>_=Z4=QK7jjk6Z{r%e{S$S(hG2Z zZj9do?#~sOisAlTrGEZ7Uq84%m+su3OPc$0NjE0{alO|KD<%Ke&olX-qvc=jNiJ@G z%F&)n*g^lDuy1uIcgE3L{(`MR0|(Ew@1cEmavrefBUWDef(9!4S$m4#5wO7A{q8$C z!NI5L^GyFj3oowN$q72IwD`IqKH#q?uj1F+9N_~MEt;k@pPzVjHoSrMJl#8D*ebuH zUPup+m_A$76Etw1xrbFdIl+N5a^bZ=dBpc^uM^@2{)YBn!V9)Q`T!c1d)klmyXNLn z@_%ls%HN%(@|W){o$v*oJ&BZW(I0iodZtLnlig6BK?_F6()GJY&+R=^bT|q18G5}j zXhGrrm^ittI5I?~CW!ycWfpmO{_x15x!24xl{1#k}{F44S zxEJpO&`|EQdmP?1IW1E zgPwAX--2}i!>35kNzm5;u9f_g@^W%T3fW(hVEmGR7Nq%s^hc*a{|8`xc+=n?5dA|B z`XC{G3x0>^1JMteUXh{>?Nuc1pap%=|A_p$b9#S+j({qJTIv+jBMlb(LUl_BKcwY;6`=kxx_`WMxQzu(pA z4_Rj`Zhzj!{z6TO{_oNn=|%d`O)(v1f9zwf7oa^V?vIPx z+hlrExBbmX>x2wKiGN_4L_E=H+cWdevE`~e$cL^&Q>fFuvE+xNdC~uZ~+J`;1_wJ?2 z{|CR)@*nJ{<-hzHk-yv_sAd7mue5jm1LzNdZ&BXkYp|bjDf%;j`k7vg{u9`5h|15u z75;(6m3Uu_Pno_o$UmlEcs~Y8d-vga07v1Z@r8&>u=ZhfkN<}F0PcSbSHKrot z`-eM0MOXFjBW;44@LCDRuZ(}`_Qj8Pr@U9QWjS?;ymPnjMzU zN$sE(4PcRBeXD)AhH!{N?^O@302>`+I9W$jhJiy8Tl5%Uy5b>Dl|n#M2@|U~b0`S;h%Uy3FcZraK5cj-1`04I zk8J|I)3$~4Q{(X}|4r>V+SEU(vW)q_zO!(B*u1;^`DExRQ&Yz8N~VX#a&fb*m-^kb z|MATKS;lv_>Uw6i@!zp{{j)AiIb)4Kcq{!r>+F8_8smRp=K%6Nw!rw8*g01`hqTW4 z`SYV@7=Mp*w7&Cu+-&3b%zZCb>0yt7xznC<&`Udr{Eh8a&r|uo{xdkuiu8Ye{mbN^ z*Uw?N)w`=4sP9*14)5`tTGQL9F#fAASvzL=;u$}$=Tl|;F7{oL;a3|!ujj*jIgk67 zEPUq6%0o1r;a8WWAp{oAaobz^e^mYy;}2e?{HR@h%3*$W+^GD-!kJ3ng8w7f4%WNv-$p$R~~pvvHZPA<^Rk(7|$G2)c)_Q^2f46YG{jI zbbHsz`NnVC+ses3R~bjG$ljOww`Jz~#BMrHl{=-p+`Uo>Xr7ZGcS;2S$L(^bR05jk zB*>joF?iKz*kqh8cS?oe^&F?P+$j|TJSRc!lybRyr6SP(?sF3I<^QI6huu>w|7!dG zF5}PSNu1}gx5_iNaVX0@Z5fw}VfnAM?~mb6%yD)9@i{FIEQieh!7pa{73$r6cz>4f z8GokfEqFaHPC1pvr``p>Goo0ehTk`t@72cN!0%c19j(Urd$Hfy{_>PlYy7G9ot^r1 zb;f_!^sAHaFHAWzjPI6e`l)waZ+w+ zerr4rd_4*C)n(0bcO}k`0OWqZ@I?6U2miorpj{p4KA?ea*dHMNW5h4$I}Pr)BmOGH z52Wh}!!V!if%7APA&6hn8{oI#+383x<}YDyxC5^m9Uv@0AIw*RYZ3k+gb(~+>#gy2 zpn+j+@I2-RZgadJux=L(PsaRWWWJ%l^#3OlH9R*2{soN~<_ql^humH=e~!c)P)u_D z+|-tH`a9#K((;tT6|~5&;`#f`shVDdYzi>$ke@n0DQ{vPLJ$?%>|!1-7( z1nX4*=L5+ua0fUah&@IY(UQ&(lfx`R%ZUKO$pme=183A{I^8r5aEyAac*9Bci{tQuXb;NZ?TJHOx1Pm^P^<^8OEv-Cc@W@&!k;qyOzm31F_TbBN% z`E%U8&wgGif4Qa>IDtKzed-YHaso))1V*lIR+dOpTA=#C%9^_Z2CQhBD9pl}{k*G@Pe54?W*eB2plSObS6@-)0(!3}U<>hsaiPEJs} zy}E~6;d$WIE=tQYVji2NbkMC6z9)5ZOU-|>CDH?&-X~kXR+zg!jdSK92KgO#M|yzY zq5Yzp*v)Uv(vP%N+6_ZmfsZC<-G6ER+}rYwV@u_a=#PmBOm9r|#ESFhTlC-ZeK+26 zK#C5hY5cJV8u$t0pYZdB_V+53H+c`Q_W;aG2e{u>t9*lP2H?BF0N3fC8lJ!P04Mkr z)}UoQJnA$cg{g@rj$5Yj8fV*l~BH7npsS zrZ4F-z@>O3E6;H^D;;hz0Ow&3a0eQlbc26@>%$VJn413TKkkX}fuUz+!~3QAGv%{~ zu4`XbHZ(uJmh&xwYcWVO6WKWznrjW~yK?S@oNHKV{+_;9=R;w8?YH#%14n@8Vfeu~C*b)P?nt-;|E}{dKAd&j zwWab$&Oa1A7aIRJD(`&$@LWXZ&mULMNgs*d*Lf44=Xr_ANX**-&ikWL*zXMRyhI;v zf(_`er2fRaVO|e#9l#$AcOc#d?&#lQ`3-O#ARL2vKEQPVe|Pu?xDMd$fprFe>i`jc z3r>fa<^E@XEc^ri?sWjlC2!9*#tgG3Z8~Xm)1vjsvGXwyg<1MiTf8SaT{A0>)cirS zni|@h*g7cpIhnJoJy+{d zTyLl`{+dV3zpZ=K8h^co&wT&~8Go^bL;k_WKYmwDKlvCgq~@_#E&RtXO6fq^ZqkY7 z-}a5w8GpX53o@Od@f)+s&7sWf>UY0yhxMC(IbZF(RcPPV>-lP3T$jSQjpwU{n{19V zdpC2NO-DWZ2K_#0A9UYOFb;rTY|w0Tv>6TOn#7=E(3M-GAA!5qd~+ABZaC*81noc< z&eZ_zzp|No0}F^!kGvL}y8!MyXCnaZfi9f00XjtZJmGUu&)En;2M9lJs*J(%{QM;+u9fw*+1F~hsI&FWgB`}lAGUQH_Ofzu zjMkqP_B?GF*U9-|k@3A-G#q!R`Zu<#wtXi4Djg59d6`kzvN#CS)moaOwV#_EyOrQ&)db*Z=> zNnN^WD$)gg?6e+%F0MyXmv~-{)FVN0JxV|q*CVM*#q~()QgJygx@;(8=?NzSKXJ(9XqT#uwKW$F>=;(8=?skk0VU7}fPKWIPw*6Ujo zuTRGdwEx-XH%-tUHFrmRpyfFDt>zQ^9ok16s{!J3W@^5@OZ|IRzAZYpc3!qUZ)y&0 zZ9Ktto;}{+GV^cYVEH9A{cL>5{)px5-jNri?hJ?Z?Ts%jJ-PkFbI-HzU%xPYj_u0I zgOwkBtNgJVt=sO`8h-GD@&n`FWBZ1={yoF^TfU+3l3#E9=C&^G?WLT>#;3K>eyle; zoci~qIDe`vf8IMD9_I7y@%wnqpEmX!?H|68`}LX@_Rn;+?_2rt!pph+&y?SOCU5$u zoL+rQ-;aFCY2*`Geqiaj+xm0*r<~6EBI}=W8rjG4$MTJGdgD{|&-`Cu;YanxciP@Q zY5a#i%kmTBbA0J-+0TXD`nks+M7!Do{g&4c=Wh0MpJ4u|GbNmD+peEIg|^Xtg=UwX zdE^Jh`QvPV*>3~%KQFX&e?CUbO>~0h59_D(PzD_gJTV=8tduN!+h$^|03X3#&9ep`C9K z7=NgplR*9y%Y$UGwqy;sF|j7hVk>~QLtRp$^ob_3}2;c55Xc$`-I=m>Rp^a zRd)W$7VV)Ew^=*)-V2&P{#1Q}`9fRtg2ga@M%%uz@WD${KL1r%e;=>baF{3Vx6Ggasq=9<*!`@$50&}w(s+Ge?~`o5am2cd z(>EfY^4{url|b}Sw%@qI&e;h*RzBr-w%x;;n19Oek!tQDc}F#nm|rf`2_cyj6dnKV*E zX8uGAwY;)CG2Wi%Dc}8|?^$jRoI^3DDA)yCi6^p5D? zH~y!y&A;hUFy9v2yf;{->l}gkUuNSQ@~0TTEzcpz>3eKBQp0z4?1Cf(tqy!m=)HZQ15`{qSbmUM|Ms? zg@u!_y)wRM{HfMXa^HNV@fVt&6!|PiZ+6jqBcJ8yq#v{K`W6nYTKhr!`MY|2CiQ1* zq|dD|{g3!XcpTY~Kk@Xr>62{NXy@~1r0qkF@6mRE@y@q=a1SZJ%p7*K{nF%9eqWd# z2KS{`nE%7tXX}q={8rtve9CWzjVD-MD8Fy5A7l9*WZ}H|pvlkb$zbExEm1zxS#A7f zFJ<|@@gK|aSuX~ge7sxhQ=c{FpH{ieQ?NXcn#HTnc&NC2ix%qq=i_rR?=3HPn>?uR z9h_D=e>T}QJAP|SKW)|;dv6=hG9P%}k^fii?>$TC(X-WmVCM`_-n}l)hC_LGzufpe ztv|4EPOrm-J^Pc%+x#;hsP`1?frSznKmCs_Jsd9?pXGIzKUp|dA8O41$ef&*Z@aO* zwRSQv|5M-3%6p3Ozqj?NXqA?)I^!RmJMT@Uhb2bS3v>N1PkrjDmOTW^v!4}aC(CEO zBl(k6-3LxS*Bf}>xEE;nWfoAKjVD+x`F``U9v1weIrcPmchRrAyQQyT?g71s z@Q3a$sp+2Xo8~+*nb6(c_C&+HG5CFVH)m-B?T+g1*0*c;&KmFE-EF>K11;e^xHwDi zc}xQx9njq^!hF6E--+GbxkdY6f+M=ST6>=wv#+l?d%fgOz15#8TOWPD2gcWzv?RW3g%?{bb0EuXtv z1gr1J){`E_Z)x|+GoQI)+`_`=IM8E4Z5=ni&iWqLMGn^Xv&#H`W#h4Af8|#j|AaY~ z9;^SX&&{#k8uZ3GI`VFc4wD>rd(*>)%miL-?zURs3kc#TI;RoS9Qe> zrE-g(`c>ZcJ)sNRpkL+s^mGF1R|WlhV*hH9e$`;;R{;h6s(wA8kIl|K;f0QIe6#4Vt{Rk#E6p#bVzMU~LU0;q50@LNEAE7un^ zfKPv^zEv~;{sHP+1v}w=fXmTwMBC!K3eqAFIY-zp86a)}^{>Jm5kK%t^{+y_yPz?{ ze4~BOrcLiJrJryC`X@2reLCNg`=g5UkM|4sf9vK1cOD4&Lchh8cT4fYiAskZy5auA zZf=-gAPGo_D{su2{h1Ty7})0|G=(TKNI&5VF_Y< z_mS`u{1%j>-4yrWp>8SmM*fL=3|b(^+jzI&{o3OF0Pe5zABG$7ZWFjSZ_uaMYXZW< zcMWgrZYf$WYiJjxeMIU?nnF8ct|Lx=_HLO!)sM4&#M(#MpBy~euCPBRuzku%Mrvqt z-*Tn#kLLLNxopqL`YQXGy*<2wKBVkrj(774^;PyW$8ay`LxK+W@(T4;_A)!TQy((j z&%C==sIRh@If8%I&vZZYIImDYWiN9w+AGvg*~{$h=@sgu>}O8!{FsHvKkTQKz05w+ z$NDLInG?iUyq`H4=@sg$>}8I}dWHJx?m>M*c&wkYm)S@Bte@$AX2f66f0VtF%a@=wmUNFHogSbz1-*8Z)XJx81CuYqM~W9zTsU+1JxdTVul z#dbKq4$5+nUk7D>@_cUHl>N!3Hh$x}rf=!YultTQ{`NmudaR$^+xTB?dw%+h{o#1y zH@VaN@2%@ZHO61~jPZZc@#+-gUyz%>QQm*tEgSwx=0CqKJHz;Si{a27eZfm3it{hL z83hkU&Syv-Zdjj9?3@PX8*Q%7GXI{k`EK&C_ScMm4EMF2t?QCy=CIt>y*Ym^H~teg z&L*Gh>brHc_phu^eX>1SG+D!`G5`F&9ohP9VEp~;-09%!i&GBEfjJkf(0hxE}6z5-s<=@lgOuxH}zxqX5|H73RFPz(^@OUu0bpCOD zm-#n$k+ml_E@l8ne5HKOugcBg6V3z7e}(ZEev$QGY5Zk5ewFd_>$TO!=elydUAErj z*NJP)e||l<*7*7L<2vK-V&_A%y*_y={+_K@LhYW!B#K9kRKP;cvhlqBIB=bp;dths z>my9(*2Z6N?Q`&))+?5?C+vHkXZ*hAe>)rB1wX0(ZH<4zyH;K;J^hTIw<2TEzV_)O zHx$>ur8a)K?h1@QFKAOZpESAPm*pS72lKp6#-Cp|Wo!9Kr$2njF3b4@e z4!G|a_y7%0@p&*$_Ez_3*FH`#VRxnF88Iu(T`BAjfZ`2*i`^aT7-C00o(C$n$-2w@ zT-<5oen$Bn?%c--R$;yKoK@VuZZQ4oT_S`xxSd=6t+p%vrCQ@r z%~C^q`AiLPhJ~Bghc@r-;zrINILi1uPr$PWcwUER^Ra5<`_>zvd(2`!wX?K@6n{nu>cJNv#zKHJM<*)Ll=&GzyU zjt62*Ph{cTZ1X1S!!0)co@+IoVLNTVW8*hwtuTkBW?!`D=FN)pw|btAUoT#c4Eq$7 z){J*q>HOvVk@3mN6lX469FJ%{`zbNMl<3DEKF@p9g2haF-y=(p3 z{@Q<58~<$6cMPxB_GYZ{XPI8R|F+KKYK?!j>C;jFrq1{+8L#CF^YO*6G+vH>v{%Pg z?KFn=#xZt1yN^CfkZe>YnG+Bq#{=Fraa#jn(S z;W)OheV_IFD!;Ayzn1fyBemaWIq5-tQ=6yz=D#BMyD@8v!R^FPY?XFisd=WfQY zuho2HIUH^Lj;*r%F~%Qg?SNXKTqTJmnlE8aQd1&<54<}`_J;X z!k(jCMtyz%W|F__?fYT5jeq5S(nJnrFq2%V`Ahv^+Pt^4*8KSg>ihZ+>N*#nzbq#= z#-Epe2YZ0~IOOirWK#D2(-=JJlgr(w5$;1RzW+1?ub^L!yHA7M{ilAAz5mq9-GAzG z_n#)9i|;>;aUUx6$>r|T2=}2`N}E583U#(k*8 z_n$_%4|OHRZ(a`!`f&GYcpP()(rvIcmz-m}Gvv9hUliA0&(?>2dk^aGZyMHz;<@@H z>n&}r53&CKPpuCfXnLoKt$SA5D_q@P>$CTruJ=?Ke~qmh`L@1NZT$O(sQ<+L`^G=- zO>JN3pY`jv&#Qm(Ys~*n`(2X$BEQ!77rdPfCoq01)9<7IDaP;fiiRJ3uj#Kde%bGo zAN-*F8OFcN({?;Dy~5D=jaiyY4eLiw9e?(*#ra!r^|$^7jIXwC>2A00ztJ`NB=eQF zjH|^ke}AODvFYQfE8@FV+aKzmRG35E70PG-#r(?a*H)YV1OJ}&?;C%th0per`L(~D z-$nj7^Iv&OHa*P8?&m6>`hLup@s>`G17}z`C!0PL*DLCc-*@+HyREtA+)5jdF+JKE z+XEZIP6)0^|8+-@oX+PLjX1w!XC9>Tk3P`P-{S;r^`fFQxOB z_h&JGk23jC@64icd404pb2yyqEvC;`Zv4?XKFh<$ckBBye9!!E&vB`RQ)&FED=ojQ zUbFlhYx;jKSKt3qVfkX=_!f?{b(F-$&n!RPAIi#qocV8V>8JlajlV~ZznAeha{b@p zWqCV;dfUdYWqKO1S-$ApX71th49** zz<9>z_{`r$)YCAzmD>Xa{Ws$?e*;@5Wqskg-)($L zhL~PQWd7~-+^l7qkK|WdIO}cyD*3+gH?i?juuEai7wvm@?0&!0U(d!@iOqlIe5LRo?cCZ8I)Cw_xoMCbQPbwROTI;Tn2j6b z$=R0VE&E;;f31AxZ+;!?fAcv_@pe62@i{j^+a9j?oTjj%hii34!@88WSr1oyPE**T zhbum}#_Q0-6`#`-Zr#KEXXi9guFU`Y79X<_^|vX{Uts;c_IRwX^lk6tT#W8T`;(vC zsv&){cGi9#+VOK5&W)D*;yD(+mEbdE)U{mfC<2LIDBp@@sly@*#MWu4VM znKHnAH9!0O%?q;ePdlnXzfIC}^(k5R`&(w+U&g-3;`D6u8PZ>ro~2molW=ILr$BnQ zR$2FP)3bCe<6JxE+n+qZ?FIcmJ}Y)rWtM&e4Ro>l@`tnZ$R%0&2vqE1|IA0)%wO8W zKYRCuQtOke?yx8B(scn@A1%&j*1O~k-2Vc|Qi!Y%C$m5UYg^(yaXyNFR(XoaXzIm1 zhMVAQBtXtb2`|8XF+dZ@P4tU`^UG84d^>j`T5N#l+XWZH9iaY^I|uFn&$kQVSHSb^ z!g|mE^C|v4;ulChV3FBJS_Hd})ATyH33$Gphqweh-!8le;Q@v9OT1qU6!taGhC9H0 z&HfyO4{%>|@(0KV;Q4s|d2k1Q+X?X(=^y>M4dnGLA>RvP z(C+5S6oZhz(atTLdk8deX)S^g|98Sa;Pr+(_CJR3FSr=~CH(k~$`o^r_8&xifUNiX zSnqW=B0S)yUt>N8+Ft~Bpg*EcpT7&w1HT6?a!3%iAjV@t(*%7ry`*cl&AK1+sM7KM zcotYY0qc86e|!&UV3);8dn@oRK>mEfg%k9B8U7d~oxjCi++S&T0}=*|*;nZZ2e}J| z?`rPL;0~N-&j+_uIsr|Y{h+<_iUYqZmA`WTwU}T#?RVv#>+VJ8=WT&@*_A>5_uv}= z@WF{%{-S$ZIKkDZzY)$s4ew}?;^>pqf3l*56D$T9qkP88@jP&Z12^xk?L!DR!Tl(RX?ud-2`~)pve4l&xC0weo`m-A zMwtNqj`$@#34RM69;EdN73}^` zb&us)VA{^v`nv1z?DG%SWZnPlXWfTRguDwyW8aU$n>C-= zKGS~2z8}?FxEv>YW3u|8{2s)8xxV?IW%K2*Wqlg&SmVF>r#UGd_f&q3@ei}__MGq6 z8h@Y5)Ia$L8Nc&c%8yRfekL&fuvNzItl>{FKEF@7%hi9K@%OUtL0+x$L*qYh^KSBI z8-Gjt&d>eKl+Ty8{uB1m6_3dLzwwQ|uYGq|YW%r3Dc?=h?+z=Bf88pZr%%xJv)K46 z&~J*Nec+>i{k(YnYNg#z>Q%M;WZlmdV8figd&f_YL-^t2b)IsH0XMC>52Gy6ODV%Nm-@R|~PE`N(#vf_<$o0Cp#=pM5 z=2u|;Bje}ueX;TL`M%Wn$hOoxY4+JCjLO_U>rB6G&3o|hW2-{``nUb}@^@3KN6B23 z8}qlYer57!{vN`7|C`2JY3V(H{OKysD&x*A}fE3Uugwm$h{8P0c@-|&6GTc#-~w{U3l`vTh^ zmgndwuB_?YrYv<#WC9w@j@4eN@ZI2IF78KFi-|{4i&q|NN{cGx=-n^ACT(I)q$OMstUzr`%}T zZ7Q|EFn^utMI;Ys{CxcPM%ff2TRh_bvRu_^(jU)xw!#{63~XKsnSI|2_IQInOYDWOiWozUvOSuQ-2e z?fZVR3iE+a+q)WDUrmsmB!DD_o_Y5&OQA2&VHc)6C( z3VYyQ>T}vYThI9ZVJaW?U(CmE?7IN#ZCtTm2X8hfA-@hp5x1Lk~OlN5RS6cenU(7cCvHU*rtfohw#?-!Z_I>Nk|Bd&l z4~C<;O<-%cp)#t)V z%>T`n9?EmQ@fn_x?wR&eUN80iXyb>NAMK4vznN%7>HOvQBj)eprZ4Bd&F16G9H04B zzfk2#Id~S|e*CUv{WbIDSc24j% z^h;$OAov#dT?1Pmj`bg`Ux(kpKk(oXrK7*XKk(RT>fgg2GQrTHN=NP6JHh+5ZXf@M z`@4bH19R^Hci<`WA1p z_yNQZ+;D_Fe;3?=!X23M2;T2!tlvF>_XEb@JCnS>_XFM!cpn8VmCy4? zFYv-FrTtgh;hflZuFEy>zYEsi7D3)XV!V_VDz9IbDt%>GM>Eupd7K3A9Qr+pd24=%y=u|V`#zI z)F08ee2<0jf-kn$@W_k6%(ckxbn24>sHs81c(ce$xK~iuj`E6`A31VRj<+y7#6KQ^ ze9-@T4Ug;u+=W3EzQ+4;IPrnq4pJIf8F>CP(!=x3xL44Fc|!>wjzm6~CeP<%-dDm3 zZrzOVok-syq!09(L44#dIhgps6&H9qBrk&ZhL@k$8Ct*C^SW@B4{!9nN0s%dUnj~J z`R4!a9Kut7#QTw7aBTN-_5ecb5D_xCP(xKIQ&|O~IOP`1>Q=fBsFz%5we2p>Kmte`>Ulb#4a!EmKB`~>fkzQir>V*CW_ zh(7atleI_>*a2Gh>!-K{R)0imA`jSnN{F9eSy#3GA9>Xe16q3i&)wlA#P@nTT-Nce zl7GR*^K1KKp6c#WP&?mZ42lS9=Ue=o{VSlhf97fS&w$$g8Qd|j_c_Hau>CXfG5CYa z$$!fJ5_dH6fqX75oYuyLD88V!f94rzP}@I)I|jA=GtY8AsO_J@9f8{Z8QdAD?VouL zc>;N#Ilm$rO?Y7TOp2diHt&Btyp2mHaJ~hw{WIBk-kJS z?^nL9-?H?|kdTy{e6v0oTK;Z*wsZNr^~o;f@7BAG%HOSzf7a-V->naamA_jb4Jm)O zK7=lQw?5dd^4Yh&#_m2cJur1x6dG5c6e_wRhSKHaI&6~9}bZf{T9N}DNXb=vRPFFVa|>HS~I`5JO1fA`N_z7xIbPkf*6 zhV6JR)K{j@yN@W-`_P^i{pDEGBK_}vpHIHWSG31ggD%R;`xga!?f>+BzW!g9+t15y zD%0aD-@8Aq@;$TSIx#7O-&DdE*NusPaow2E#dTvsulGnf{>v)zZm*>8(5=e$MdvTd z_v>SK3)L}Ce^)$luft03|BY0%T&MJ_quzwFoMKWBP%am$(?vw0Gi z`Tm5x&((R7K;>8GN%|^(zRpvHy?ndWPx)SZp?v$X=WoBOt-b$^`SZWR*Tbof-<|Ry>qkGJ(bp?}vgPMLXP6IT z&wrequdm}WcK`J{9&O_wZPjC@og1&=O)rModG*R~)bNMvJ}Z+GC_mHjcjNa}{;XeV z`*pInV@+SCoK@xz)$n^YmHCnKw>_xLpQ!wjl-B!Z zH}-J<&UY>2Sv^YYgR=*ExYs*0*VFO)JzQO(-{=0`!xg`4nSIp56~Akle9C#1Z#Cba zz171NziXL((8CSBrQpA~$3M0Ii}v}xO-t?n>fQ87eC+FM*=M;LCmb~BgR}i}!R4%h z2KN1yXxb`HVBc@armo@y_WhQKumbyjOLQqT7`_(v{Im4G@DuE{J+?LXz;_+7*Eb}6gGe8^U;Wd+l70{!<^8jdkq?%2S-ot( zue|f{<}K;R57&A9h`;gmjPwImbFFInk*`nXd$JMx2?f?a&2S6O6VxprC6S0+4oZVOL`eUJ}c(D;J}{6X8b^#1PL5B_$9(yK#*MCAu- z5+3}D@t-`s>mv{BsPQ?%3f|H9l6AQkT%_YgamPj{xPtMJyu7+04=mC6qP55mxL(6Y z_0XW>D2;Db;saYVek=E4o`!vBm*gbZXVAM|FR~ z-yP#0V>-Gqvwb_5zTn#rx^MYqzp`$!!L@O7m2c-OXSy#)+3t0nuQI;16A$QmEaO`{ zv69Y{8Q-eXy~Xi@D;JmJ+mr8!7X6psqU=9^ zy)wO^LU*5C_Fr*NS%1--p5Gr?rtP^@e@#E^_vAt8nl05Ivc6KTV3yYl=|`;YR;bk< z!2-&wC-3)7Tj#h~>Ua8=(N5ds_{C?m7k5y`{&>hXIes?K*PqFAga_H{_%ps6zqECZZYNP+GM^GWxOI-c>oUI6*t{=hxXJX-iv86|^883&_A+S!1L@Bd{dcCn zDRgob^1;{I|4bf&2J$`MV)}l@^AlYPSKh`6dVS^NckfUh;M6^|{H`Z`;D*z@fBXXZ z2k+gi`S}a-!52zrkC8sm3A;kl6I?<00M}GW?`VI2`pni&V3+BI{SJ9$#tALyN2ekF zj`SWsPu%Kls!3MRoBeU8yy$oH{J$EKL-tFgCo+Ej^^hE2Ku7pH`~_xTgk6|F0T=8~ z`X9&MSarJ`mqTZaXD6#bgEOhNgbr6HJeWoWlFR=F`QRF

    >&gF(k*KJ9&Ti58?x3 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

    p?%;lP?g`NU9=d0Fm3?=6^-zq2)R0OXy{A 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

    O*^d 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%0Ac&=dW#3Qj+n^~f7>+0MNjhMZDR9U$H?!rEa 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%0AsTKyiytTwS!~%<09R8r*d$?BIloNVABOhD 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

    )V;*~sK&EG_K;CgSEY`HS$H|a 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 z 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%0D& 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 <2b-n8H_H>twi3I7|3%!@J7^R9CJ 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

    )Q#(}0xnhJ!yQlrw&#^o#3N>objekX! zAGPh3MIK`V4(7t9wD+qVZu?72^HS5j%#0Ucx+Wv34cj#VR@Q29r=P#WKiTZL4MSvb znJF(e-8E+Ei)id$t~+wo5yO4ti;S?*%Ys5`{YQ2Azs6C6vvvhC*cECx$G$E>p z|IBQ7P@8L(WA-~5vGRy1H<SOMR=tMj*mYnVpHN^5f29nJ2~+aA!a&7w?Df#fx-F7ut|wSb8Ce&#hvQ# zfRokr3@mr0kzxCS4=RoccRL;F!E$D8Iia?kQd{;{mq;_)nu71a^3ox5J@O>UiIZv0 z+a$jXNP`@!gEXpc1{^YpdbfC)XzaxTm1~#^)6n8(yNm^~ESrJ+H~UN;lUY8dQfcXG ztF$(BENPb=>GlS){vF*@>3-Mhi}kLSgLo*%)c51G9%~M{W8W0x^26U3Ls`g}+_9wz zx$$)q#*Y8o1aJI`Vq|NKjv^;vnLvz7 z%I*_ooFZ$=?#`V1ci0nc)-Nt6&o8T0<%aXi;Ua5k^23t*PRaXwN&cf0d{`oDDnk#O zM9qr=l`hCdu1(r{du1t*iPK8*tWwk88?84Qty4<&=_U8HQlS9s>aDQyW;pgF>nO{! zPKupqg(UF#O)30aNxogmy;<_#E9KrToqT<)@@VW4AzR!WTIlwwA<;T<4`+B<;@~u* zX;GFiI0Pp^|NuFNHomR@7FRVqe zsq$j4biUWx%!N+C`>x^VE0T;U2a%oRLvE2j60p;ip`6;2EeFzd-KL4_7!!R{5V$$d z>Qpm9YBX2_lE`~C7h<*n*=p4R^rb&LKwc=UDQXtv_a~aI_GtpM)w=?J+0GR8)Oc^~ zj|_LxPe?f^kCVscrWS^qkkI|6W6##mkICv?*dPwT)*C=7KoTT`1HAPBIo^+hJS^9~ z*Cb21rtYp%=Pr@X`FItpaO5g;f-y7)gG^*$7fm!k?c=SJ@UJ}*j7W21J0L0T0W1Du z(ER0K_;co?jvL?K#&9gXSNpwRw0{jr*hJQ&l5B~MuWE|(2`_wBhf=yA0)*Nh=hPJ0 z>all*`YDL9IgFGmXnPv#psn(LWc-aoeZfPZ)~Sb`%_@Xp9Q}yA(qchRefN$Swx{>h zMbomLV)qHG&t{s!G-8|~2bZN(|31#%$$i2r-04?_Zq-J;Hf)z&SA;c-^>_GHxGc1) z`!3hNE*brGDZi$y37zV`Z}V&EMWg#J=2z3|(O(zxD|i0ruM5KQKX5TX>T0@3j3*wy z#1f-nZQ6_Fa;B+F!%RtzqpA+l$i679um!bg>wAK&()OtxsTuGBk=}ATX%|=q)A22` zOf2I&LnkQg%n5~POWkbnef(~i(i|@za4Vj`Eu@diY%g6a&$(*pnkP`+2ZZduVQjQ5{>HJ96Sy6AN4ZZ%EqwE>F?@A+& z$fi@hS35`)o2Xp)EwqJYJO`=?Fn<0>+n0228J+(lZO&AKYqePg7f|1zAYb`XUM$H= z1p{q-w~gfImF{;L&0zqJtdyUzKt3$ZO)~kg^f$@iVcBLFKNJe3rIs>WNCe>=Q8{*P6y>|d*uJxngzid0uE{0kT*&z1*KESi+A zOu@_2pgGWDsL~IW`2*F0iFag&nN+&D_?6p@K?R!30J~_4ilLf-rRc?wIkv*{Ek6>= zaS%-{2B;q69gweZZ4fL5VhA|}3eE~sq1CK0Y5SQhG-=njF$s`+=5cr$#X7k(n%`(e zi&QlKo4L)8b2zNauy0cR2T&Ka^i@bb+9RA2p|E-_V^aG#r@4Y2JDaw~8`yct<-}*9_HHu5i=9Oilzl+8P% z8)JZ7-)Lt(x$)5d&y9aiFl^3BuQII%$`jT$X09@=@0Ta9Z=^HUPKLV`9)`^VZQylX z!yeQlVd!@vec%b99+R-VUnlIn;2~5;${0<~-oe6@`GC;Sz6t7s&@gV&iAZKZ9InO7 zR!5{u5CP zPNd1MTGIZk**cG9nt>w4plkwev7@+E+CCOs@)yYK#DTh*yh_i#Kj7tYqt69QU=)Fj zz=|*bO0D%Bb`+0)sWjF>hl2=22ea++T)H+Z4C_V7Zjp&PWV$xvLG%INIya_AoInGI zcRsq;zgR9HhWT2WW_x6L`7{8RHM$^> z@f06LcRBhlujoN%?GDe>?(lwehh8{6N@^zr3%9vM-zLq}iu399>MigA=zCm-Nj3wM z5d>^@qEX){RwgfC^`Y;rUGn+bC0j7{wIEz%JV`1&k@UAtl*^31q29xcpV{?5U2NaG z+#b3bbfcn4VNih1Iq-r~&|WK^CBRx1R7)qX?&tC|0Gb@eg>MqSu2z{KsyI7G^KsF9 z_Ili7_HUK(FA%i}*%LN0Sgo@IIgVmC3xn7;n#g+M?E(RTZ6k`UlRPJ3yqrP_+2gsGr5MV{{YKt93ZbMPt=u)hPfXcLMd0OZrF0OXY- z!Xc+d=alQ^vXXBh_0K!pE6u%HTw=ogPUX21WxAa2Ag&>hZZokCxrTI88p4rCdi(_w z3V{L9n=NEy4itm?HU+70vUP|)NZFieP&)LKouHE0lEp`IAf|S@f*thPI(cMt_6f$_`s_Y3QEz+pj@7f< zJ~?}tK06+rJu-Wy7zt($Lr#*Fu0}FoK*o3o*+z5`9iKWLMUn+Hay*MI4&tWEyC{IR zqZ$nR7~>{==5)+uP(W*8nD>r7;cEmQ%!d#9?`_g#-muh`&am>2{xaq!pikyUvg=$}n zR6BUHqa_4c+x$+75J($dh8q}gjk4`Wp3*_k4GA*+a&yhLKl&?;RK=Mj23LFL1%Npd zS9L^y^}U~=sRgcYPz=6jAga$w|3OPIrO=?8Z75O`rP|F;x~4rw)V}V z$88JWk^ZawKF4Kqs?*My>GpJE!OD)Z4WDN5>CcyRj^ALS5=Ksw(}g-)!b^9ikoQaH zQsL*lZ;KE}nJ5MGG*0JI#xs!MjgpY#bv3IWAxpqYb&b!!%hZtwg|W&Mk=u3{=fuIA)B z-{Rh}edXT$Sf6b?OV*ya?I`+EShmQ4&Jej-+OGx4mDHBxAK_03Q&^Fj!c6)r-lbvP zdqVzI^sNcVDDE=Mz`Q8W42Xm>Y*0RjQB0)hy8B#*zl?WH(d@aLZAc_3=otQ@IflNVEfniop9H0rLbt)T} zXGdi>Qa8@cm)G)ANyQs9yS#5K={o+8j9#5`-BHHDJ#>n6WAz z&I{yXxeY3*tP@n>Me3^S^ck&nNYT+0t+j4lYx|n>)l_X7FrE{gz(Bt(?Y+T&?crZW zO_zP_;-+uVadA6D^Tpe&XEz9md++Kx8AH4>PpkQ z+00ySRtxlM)439Eq#e}^XGe31xuciM?OH9ySF9?e;2?U=GKJVun;OWmvm+XB0+(ru zWt+tb1^TUjQT(s1mD8mvJP-X>|Bmsj`o&MJzBqZ<2#tD6*Y4j!)bB2& zZkHG}CFtbaF>yGhC!LXmnH*7rqtR&RX~c>z+U5S$YN;~{%|{cN1trU4Vl-jW1E>RU z>1xhpRXz2wVBF_HlCy!4L*@~ew8h4A`uDH(?>|Pr-`2nXu7Ce4`h5;PrhTr*?=?Ej zF^|1Y{JR?CX0OE%aNvwRUD|=#YssGD_Db!U*~{EBz1P9U!b%)b^qAvb{a;D8A0>Nc z0i#XQE`DH-d)H3AXJ_8G%@1sh4DS+Fi6uEYD?)w=z&~iV3LW^B zyx|PS5USumph@aX|1s70Sk-agBHsP(%k?DWUxWR9uh>~ zkzhW2@RRkJMg#$SO}j&ci8i8h)noD;3!tp+72&-u@IHkvi}1B=);WWyL)kYytufGg z-1u*YDoCx`UF`&(dV4wSEe`jVvnfDwckvexsW3v|Sx0%hN?ML><+Og)ELUOEgtmV? zxV#x;r-&i1Q&#B4u*jyI$4uYD=R&U&dJzVR7gXiXHBxU|%rEVhHCFrOU$7@-ipz#c z5m5cRW|%8b(})?NwUEE=DUF3HBVnV{$UKTPJWDK27(A+$dYUJ+*EkPAv9_I-U$d&s zZMEmTX*q9UA@n^mC}?rjF3Job;1<=_8$kUW6zt(D1o&33qRKnz`}CSe?U*w@@XB{p zAMYQ97|-J()ZC8>DJ!<^rB&uPDMT=6# z^IpUI44-Gc=cY8WWRXZ2zZpFdc@RmH=UwMD%XxkD#PV!?lX~;$Sy|&Dul&v0vk~0I zlYJOuKV596eo}0lLa}Y!=JJu~dgwEkA1n;?50?6m*w-g!wct9h$il0#{}n9feJ_iV z^EHK*F2$*IsUuXZ06U>Jtn#3&WRA zt`;)7*2|>sckRRUfXjw4+_VN;240cIKgbT5yUxvC@5=AF;k9n~BeyWRo;<}Zo$lsu zM{DJy($q))8lXjAZrvNd7n2Sr6q3?SjmOZFWhW6s%xlX_>$@O+X4z%Mi?cfdA?2rRA; zjcsyi6PE=5uQp*SdsfH;#4zgT1O}m_49uPx_m_EtgtnxKFdf}WC|dg1)RgR@ncvI& zK{*OiqxWlBF0hY+;V0L{knyC|Ngqp~57ko#X|>^3&uZHHVYQ3&t!_I?+MrEPf76%P zC?1xP9&;9`rv-*;TR3LHz~_U*a-UBf<}S2K^AB4mjrXi(U(L;Vg~=$ivhJKja5gzq zHDKLdmq>jScPrNK;`2WuoW(-s+R5n7fF1#W0>;3V0!MZXDqTr@1$51}6@0aU=*FFbdy>QcX2OTsP~0brQ>mqG(47~=01ADMP6Bwens4!JjM#Tx zw)g({A@mseb7D8lB*qd1!U-CbzJ_=7_wQad1*-b!fPMhy84Vc>F_}w$WY*02BZwV+ z?mV7^Xp$LN2}$Rm6Y6%1aH!tZj|Kw{S|j0iUQ(!T+k+mDyDsHQpEr!z3RZmv@_Qb2 z$nx5=>_@%eS@z(7Q_$sSt81bo`j48sy!J4|+>tws;RrOdiu$6y?SZ6;Gzjb#_&BnJ z#t$keNQ-Z&r_`HDyroKS;=)nTyQM)Er!mfzz{#~no{x6q>5%ar)ir;OkUtde$?kOo zWSn@d*dD3Vx<#gcFFT)?=@*56oOpm!(mQtT!2DEULC^e!wQHasBxznj@BH7p!g zn0!xF?JPJyrprUj1MGtUgv^u0QI6WbD#KXJI9w;YyF`euqS$o0Y11cxP|51@OT?~) zuL#X|9d-FX6t;JJ{KHipWYXyzn)zo+JRt66YL&dw1}fO*FnMO3#bN-;2`SqOm`igRfN=#q&DL1$Fgc z6q~bz++Ivm1?NNI_rohV95~^OfCDvS+e=9G>bqe6B|($bPH3emh}zY+h2pRbyPina zCDQ41su51TMmY8Mp*8ORuvmt-W;)1lEOtV>z6Ol5%!+JyR^)ymx_>F)NrZ1w_|J;; zW|44kx@bxNnD*f#gQlw)n2lQW=I9y>om%)HkwN(bfq^Z$G&a5H()#jajPL5p-z{=? zi2gf8`nKxj?-uD>M2z4epKU)DQ6^G-qmOFISEs8vFyar(7F`YCE-_D|h3Z@O^Tzs? zEpFNwqu&T}>)LI5=<@5LTj#m$t@^e<6uIj}v+zky@;!{C{_P^YzIxm53*cy5Z_8jg zGAd42Gl|F?2Cr1R?ME~$ecK+Qz3QUd=A+v#xlVxQMIu*#y6Ct3CAZTl@5DisLz_+) z=~F(r`1Q4mkB2p5JJq5Gr_p)5iGG8P;$9>q7du1O&go3R+?e!LUy81ZK68BfXgmjA zJoLYmK7siWnd6uro<1y*;c~jAMcW(53fNO0Rl(Zdzb`P^cDP z@h0aDx!w^sIob69u1;68WCJArcbZ_-q<@>)AP>6P93bGk`4%&Ky@_{H*VA_d<(%Ua zFFyr>88vr-2)b<;F&BD2tXe4Oe>qvAzZm0l*I zKCb5GD+TF-bX_V%Sa)4W%kY~ioa(p7zq3#{tE?-fCy!4{z& z5ZY3~-AT!97}b05zWsc+Uf!2`sP+2BtxVh8__0slxZ6*YIx=l>n%S$`K7HHj`JcY1 zey^w1de#4#_j*yMw*T}yHKm(7%jrsgOS+?o{krx(1IbJFu#w@Yu|KR><0XKweY_ux#-_2!%Adb8O8;?K9O zP()C%h^b7QgrNs{yQ<9Ix&12preOd{A4nov89yX_crUqr>-9%zqF2!)wf9Y$5|x6> zOq7SpMOs+^XWgVJ(>u^aAhOl_xCNzH&!?Hnr{NYFb$+APfmX=u#~P2YQ8xzx2A0&5 zSY;Dv53gHYGI^;budtGrTRFM!WtKWyrO#0$Z|eHD6d%dL3e#Ps6022ut(CpVYOOYn zpX$hA%Ju7vI?LvsD0jBUE*%`93EZ)RV+}rrz{51$yIq)s3&dn3yfn2|Tj17-MQe4K z*Dn|zOfupf$x`AforM_N<+9R&c{9=M%Sp53TxX8oon77{o%xCG^zoVAiMr>VB^IHR zcgcds&n6(0+F8~?r+OF?8}><=h2opC(jp|cz@-(+d}LIQ zGj2-+TM1gfr9G&;*7jJo;$Rlg!J1SY6$RXSd~g>mv%4|%4ZvgB&ofVAI*v>+T+k-_lQ6vF?J@$g~qD|ppD1Lj_Os{MM0pQ_+7Cug19YN$7y9` z*P|MZ_({f7W)X}SNhvTZCuGq9Bs0W_goV!CbpQ>2qjjE&$kk658?1gK{-}tn*!Xxr z>=Q6?G@Db^F0Pmb&}=qo6$oo5^{tWwJO7dw*Ik<}TYn{k=Nac~^p@FY7R@3l@gicm zI(s$&Z?0QFi7C^N@U@*>1Ai?e_WVn7keREi3diz=IH<8#LykeH9|C-Xl*<^mh-I z=S**4XLV(J3|8C0sLazIHRmhU$E^cKArz#Mz^)A7{J zF$y%kF32TfshjX7X*9Ka zhvnUELE~c>alUiZmu3k_1_Xyqsh&H=k)Usx7rSqoWh42Ri=z>^2C=2O#C0L+rJGj? z=;7>y9an|ui#D|r$`3(lyd#wk8}jV4)A3|r*V&DBdOCR^mxO!kPXV04Ru$mpc91rc zc67Cvog-S6_xXDDW9g3;+D>DTbRpPJ);>y-8|rPGS$lU{(AKxtRwHqX$J^hEB~0AG z%(@ddnYf2Fbssb(8a?7Z?0JuPe1NqQbwbPd@3>WUNxNIGKw_k7(_nt0@DQN;6p&dgU|Btua&ZKpoZT>tGB?`oh<#is@NT06NzsNaY> z3WdL`L_C?9ND6_DsGYPmq*-?56mLI`=xQ#|Vz-dZ;Ai+nqra;}kj(su$X?qnH0zS0 zl2X+hLS0#djtu4Gwx!dwldcTkOW*dBc9Q%^6T{n?sAkhTs%@lDOzFbTfHcsI(z@+L zt)tMG(#xpMCyCOGK0&QrMdwu810R?af_gnJ8@Krs)cXfxw1tOato@Y0L-!HA_PAbq zGFEE~&&0gvVtk7CHJl+DGo-7Zg0^5jlZN0p^_jLXWF*VR8d8DjKl2y>6iNOf0{Exo zpVVf_7a~&cy<~@OYti4Rnd;L^YDDd?x?MAWZTp98*!Hi_+BFE zMl?6_*1xR!>gcmXNA35iy^M8|r|99Mu8M!H4IewyJIV;_-8!dWpg~Cc6#Dbb=_2J| zuP?6ay*XUlE7tYSTH8Bhg!^OvZFVjZ?kObWLBHs!O8)F_&RXRG`^_q*0r zYirWUi(F4Z)ODQ!UrKJEkt546W!Fh8DkH0j0rSbKl9S0Z#iEs>DPCY-?%Tq@Ok^(= zORf-2-EI&2R|$W$NM0az#yywK$-)mr(aWyY8NBJRqq?B`vL>b>^z#%>H?mK%tdoyx zJOiBA8JJS2E(FZNwNld_9@pdUv>agC4%ARAAHQBQ+bktPrYWwh(;xs{|6m_m0x!T_VDfVCVRv*b)#l+2oSM%(S0Mrgu&)PW!-W7*R4j*J9x* z_ddDVEgNYTlLYP*c?+@)e^%L=W{a z#u+YmZ}oB@S1zMJ-u8M2>+7Zd%k@B(M#DXQy^UM1_aN6J^7||Tyh9`GbC#0XMImtfMtByvb=&gFarR&BU03-E4~q8pePht4Z8p8t2RQ zABm>xMeFT+5FMz^pEJ0D7srU3ua7q10d@v&mGd@?+Oc(pW=(58Kn2^CW#hK?>`h>N z45M~=;_CMsC>t{(D6>|1$;!ba`qh`jlnKQis+eznA<|~Au9~^4T%YNPl966=WI)Pf zGYM1(rN=+7c_MtD4waC^I82{mz%^EBBU%BSy~}9MHWCNi1ov7qehcz6`b%cv8`XL6 z5{tVHceOB_RH;teDokh}AF@E^gJyNLFb@2J6l2rl>aG^{RUp;!vfH*+AS%Q- zSzTIk;R@k>)x-X}EIr2S$4untrw_)@%T=Kf^TpWcofQnwK>X>F9@J#rtl zwB77*k1_G(yPJgNnBQZc_#w|m_JA8?_D0owgIYd7o71)I`+9Wyi&`r^T;V8dvBn|a z$`~+v{1J1$oZ|E_WU1K4X(gR;zqyjnaX6!SJD3j8x;|B0YV6f2GhqWkgYE6X0~Y{d$vu%fq7l0i0)P zuW-MLolgkLAyuJ_^`{Q^N1c3A=LYIv!kD&9kC0!+IFESQ4-i|s{DFYSYI_Jbt;`?{ zO>TBL!v$ukBh+)YxsJm7mXx!^CW*7XjRYhQ3&I)5f7;5GoEgAqexzN5x^<$l)0UYgyaSRQ^r=e`GvzNivY3{)#Hj10=$WmXo%{&pU z{|nnau!LANKV*a0%jlnnjiiZ`q&CTVV^(*k)kW2C+d8d&%W9|EnOnDeoo1KS?su52 z2Sak@br!l>IC?g!`gD?_kXF*#!ydGHc`0cR;k>qporzoDpq}q#ysVl@^=>V8VKp3?i=*4PWm z-J;|X;UD^%r(9?yF0!l(t=L&s!7IcHLGo7&Ws(A#hqU(wM|53mg=;Ly9M?+?9`Y93 z<2>%$)ieU{tM~^5mij0G1v{R>nk(|!Xu1KWgzP(-j7hhTXQ!FzEuT|t7dQ{^#9wFal>MsJH z)*f~pa7a^8aecR`S*Fq{zdmdyac8$*Vl*C;nHZu@zhTiD*W&im2Z`Q>1L}!bv%`8m zFUJ1nOrczatCH{Z)zabF7s;S!pDV;}YA>#qCAb&1F|1A_=4A{d zuT`>MU;-$ak4UH@crgvkeXJV1&=kRQtMi4?`WgZm4l@R4bc6Ji$C_r3+i8hH&z$xH zgzEaWiRo{~Rmxna!6rU(9-hdpf90Hczh_drASYPs6z){sHz^169Fc2jT4#}c6E*&m zqZ{!-{{rV%9R49%F+Meje1g(Y-bo`LOSg#tLV+LaId*#jTkv3z32g4-L#w^kTNc8N zI(M0g3;7{|Mx1llHG#VQXQ5y)n5J}Y;Tb6V(R<+6;XUw#yUq|pqWwV8LHH4%pa)JG z2jG*!fH}PiZYdhaSKsizv`@9x!MFCwk?2G^uWbNM?&MMgW}8NLf^m8}ab37kN-7WB zZ+xT>U1YA+_PyzA5p4F|%J`!_m#z-d7|26hq!H|DAhmjlerq0E!Fo-~X{(<%{$E8^kJq z*svE=EJBM9Xq__{8yMfVN9zg3YG=U@3MF4%!3eYQ>&)*;`Qu0 zhd1n3^RU}y2=6UnYbrT?WRmX-OFQoKIe- zi2bX$N)`-taFnb~CvD4+XYKzzVcQuZo#aB@sqJwY>11srXV%F-9uN-nnj3}l6QS-C znV$&jK9Rpixc7?i9-;0P_C3P7SJdAn+`C11mvHVD_FcldTh!kn+&e{hhj8u`_8r2y zQ`FxkTtG3m3FmfU-zKcvMg1+py;X#_2?SYsqZvVqi0~@wC1nnawwDqFPplOA{D%+3`W3a>5)UTU)Q{Cm&n4>SNxi zdYHGXF6OO@T#8PMYGYnTS#Qpjt+GF2l>xMqtt~^gHXZa7-@P;~H;TT&(Gr>e7pMm% zy~}u5pK01n>W`9Iic)CIrqk?0h9k@W4@ucDYVyUMlna${I+cJrFs;LtVNNLGM4oTJ z0G5xDxI3AqViqR}>B-tcO8@l}rGPpeu?E`f$;e*j|GNLQk`y8GK zWWMnd+OT%BoTnl=TwIHxK=ncIb%!!um4*65(P9*JC%%a|BdYB}`gQtt*b3kaR={n* z=5g>u(y^6`xF#6wH39^Io)Yn9!Tn3(Wsuag)`s8n=JQ5~~j2=O0ywtt8 z+4?w*JCh(0yZ;7LY&2o)F((;n9(VZ#U9CCqPttmo+fJohh)crLE)ogcJGw?5$iVxT z62b)P-aHb%UKAm4NVdlQ4#e(rh~0VIfa~b~{-J6hPVZWsd+~=l(b_ojD-zE2UniKP zQ(rJ{G$%=_6}}Hr?U85=-&WR3*lDkcL~AP84Ho%@8I^I-Fu^|Biue_@M4N{+!F$_a zR!oxi*$l}{9C0=@Z}fjGNs^`qyy{9`!~C9JyH@m+NwX%BqiNROuccVKSI~{kqF_y; zMlnQmsN>9E2!JHSuwr!@$JhchC|P%PYKMpmA;3k2I%(rp)9;|;N}d<1@F=VANMp5H z;0s#if-u4cBTHiU%0~C%#T#6)(cRp# zfyi#T`e@^qAWcb?iQS4$TxaNFNenK(M=g@IC7IX0Ea46K-+v0v*Z=AN8UZbfy!O-o z4DSBx|Mfzy|G)kJ=R17%ouaqJ?xk&$8hFXXyW2WMNC(#Hi9c+p^fIV<@M%}qI3)U0 zWJ}cL#qh(zF{XhiXA5}-rZn~g>gN9p!H($nH~;s3ygPh@=qh`o4jn8%PsowYX!jsS zy@%+uX?&U5S7Kf7BOFpcGf&JKcBp-7=WRXbldt;U&d~hpqi@A~SKrT3cym7e?%a%+ z>em#VtIjO<*X2=%OQgm7I?|%~DDqKEiPyz|ek|=IhAMGr-7+gpq7}Q-jd{vH(TNcV zYD@vNwGSiqdR-@VE|}|3Yo}m*=R9C3M_~S#%v4;~Yp8yloc9UiBpj$+u}~Xz(WEB0Ld||i#=nqRbLtF3nX1J!6mdSbqyJ+#YXENX0+&z=0|V9 zzD8wb%$CNjikrlZb;K9P+VL5?Oc%>|L+mO^O6g=g!{o+tOfjZbwz=^hc)NOHL$#yV zh_DSrv>U9jxmXX=T;o>J4LMncfg#Wka!`1F(i>js_-8w5NUPW2rgkv^Bt2Ac%5%JI zjn|#(xPP*fW87?fh0}YT>wVviT}Q%fVHFGY?hOKhT=zC1ZxlXJn`8{Z8`~v^!-8cE zF1^`~f5(m8DBX6eLDAPhFgc0!z&b2>xaHHlcQ^L{qIZIK5=4)6kaqZESK8jicJfS_ z`7S}d?msL|X|+nkE`s*TvCbFn>HH+oxtnq64KZP#XM5+`?s<04pKSAGJAR$p7@c^j z;NT=DUMS@C(gkw?JIWct`lgNogu7p2jkeF?bu+6(njsxT@tPaVIo~4+w=-=P)tB{<54aPxgAl z--+Pp_%lK-*D~i2V4K!dV7#4F)iPWxa)~@z<7YHV<_3JH2sfWl>HyKtSf>NbtA{Tm zjzs_tZKjJMC6ckAT6L0{M3OEl#}s2~O?#vS?xCx~la(3DO3YR=vqt3GU>0|CE9`WT z>fy!b8mghWu{_h*ue$hhgWu@Qq%Lo`7rS_h#tMg5!$k$#*rXvRKyZD&rE%V^s{ zKo%vgVaX#1Y|;vpulftmd$3D$x^MYW}C~z5Es+k)Xu!`mkPXQ8^25@ zw-b;1yg4BlW~MQv zi@8|aO8$=|2U)|` z6lc6O2;jBLZFliAU5qiX*(c-~NK8AQF3w1JJNs+_qc;ciS!3LO5Jh{LXCkRA!JQ*L zY5;q7QXETA;S6lZZS*9QU^g2dYbgSaWnidEpgQ+BNW#|s-E&HC}O&jOe3xTo8>?TC>VDziQYV$yT z1HcD3zp1=JmbTqXb_YAzN+s9rWnUg|4+P!LEO%zP>o)6}ylQuT=V-*cGt|$C!|`*S zNW}0$UW1a2q}fBRTrK2ctDZ-B%KDbM*%D7#53ukd80kiU_cmTiB9o>X#kZWx#hZ?J%dy{dvTr$U)q)+N z<0w*ijT9bMu(d)pGNhRn@<1DTwG9LYDfEmPTG!C`zO@!UI$0er6FR0;hm77PjM-Vj z^@~o*STeezFK`|g0Kr;`1H*~$5}Re*C@P;5yQr`4a&pA~JqP7|l7=i)2)I;g7jqW( zeF~e~=50^gg%tOdg)oqwEp}N+#4^Y06Bp_eHHsC-($)*?Vn{%(is>nu4LR8%!R$h7 zmAI(*$wb0+#v%@Dnt%)BO;W}@qIhXMZAEhYz!*MO4&f?;GQ#wniRirB+sRN5ts=4d zGdq&2J<)tlG@lsFo1*zGUbJ{!ya2(By4wYQ(aVl# zl5KU=)^%6SrY-gGJ7ix>HzBhDo|_hoOD7``=AyTO{@csi#R6aFtM+@Of3LLe05UDD zTV&=|nP7{ez@L=iGvoz<4fe9|-0`knND8y%@$mvS@c z9@WH}^>}ooUVBXvr$!km2r;9rkKs|D72-Rc#YkaSdOTrHbSEW;&1sqg18|h808q4c zj`jxZUEnT^+uj&bPmRq$dfzc^Qiw>h)0EbN4lO{WwQDr<74DHe zTaOECSBi05!Me>X-D@`7V;UW=*HAhqiasAZ&kB>h~H< zLYIB0_n~l)!L723v$y*>XCHTOXNHZ{i!=0)_hyteM38Rpddfg#({55*8Pb`I)$!4z zi$-&5%_L+t#l<+D!JnIDZsEmePUX&H?T>rw;94f>lo$4^BNGSWS&`{@isTRQ*Tpko zUSPd$#%S4@Ys!0w#8|Gi9tX5oi0W<^WA*W(O`@2xSlm=7*-bIrK5j+tZ$=O3X(?2~ zmRKd$;&znU8#)pqPpl4qbuD2gIGM(^QT|zMkaDA3r#48jQSKMbiyKH(2%DU7ubRup zrahW&8^PG{o#-5c^^#;q4K#6Ad-5%ZZl}>ITM)^l>;?u>HU^n=vs)JvRv&`C2dYS5 z=Y z7B>k@VII@xYs)-{9(v7wFdaSUE)4xniw@SW_B7@&%4At&0Ng2>&x__~RDClKR~HMT zZD3aDI)=BIlYxURrM04yu{#AZmgyYL=`;Zc!5Xc#9ZK(qMMH}m$Q~M^rDWY<`z5eW ziFuroXFAe&71~ zr;a&V4-*=&41rk)Lo<-MNtcSuI{ICQ$mi62cLzJ0+Uyjca&Wa#KGB$`1vFNhRpGEO08L}gBM ziImSj;gs%l@~!EGt{I!`jqj{}61YVm>p}C2LQ=-kalV9O6uH|XFO_^HzRoPQJ?@Qh zVtY_wtxlJFyy&#P>@KEgnw&lTJ;gViR1805>hN2|JD&HU zm$#Z$_)|7}{?ndsW0<#*o`eVKIpAKLovtXYPnW*$*5BZ^+>BDuA?vR*{Tt2V4d$0` z1#O$R^0DGArhm67?lR{*MMl1SU?n`S7AEywi<0z^1)8C2yK2bPSi)uG_p~c`td&;1 zR2|&_t`SzFdpH~@oLQjr-;7!OAriQWVbEH>wy>25j)0z?Jgr6d%g#bVK7~KWBZ!L; z-!o>Udt9IiF1E;V(LA%w{E%q9s;yMFpItrlE72Hn2r2Wnq{v=yjHkVRsUDZ%V^nW< zZi9rC7*X}Ui2Ymi{!=7o5$JB`Fzk%^Ax1=Ry^P&1dvB56pWM~6Z zvl|?e6Y>r|_E&NZsPRG8$rcZt-Nrhc6pnj^?73Vrch?esAG=uwYcXA0=gIIk!aKYv zt~~r7qVrAK4LKA%_a8Ky@FT#3_Iw1Cma{8@Dx~c|`J^Q2>tX>*+*~=$T*82GopASc zni%=b@|SqF7HJRwm@lBm>(@OTcx+7dk|j1lP-!m}qvUK>b`LV&CEhb2aYJY^D$#0N z*&L=Kj=ZPYP!h1AsGmsVA-|Jm=n*>7rF3vD27y-?%8~mYGnGzOd8kdJ7;y5q{02LO+e#Yhhmjso^F%2_DkY9^$rE?PkOc zFpH=%{ah0MGoI_;qc8bT@W~4fs|lZdK@CPsG34C(f)GU3UhvB31%J#~a-?o%o$+?i z1dW+~Ia=Y?mus~O4jxqfFq;L)DkRM`MulBwo(g@F`C8q2Q`}^(l+s?8Wb_xZgapb;)ejq|qAy$#n3o4;G#`Io zQ2YbeC+Vn2J{!7!2{B!8CK5*rXq1K&$1@U8P1{PmS`X|%%Snwu`kAFJKI}daMucVvNzj049mw!a)unp z4Hv#C>$tY|0Kd<2XOK@&DbZu<-v1aOY%&arovaogBb?~)V*at-5;$oF#3BsgZL#{a zUcW=6fL-YWa~){D1L77@oR7*oB<5rFv#Bldrfi$nTGx?nce?Ze2U>1q1r!zG4|`u| zF|h`kmGLdbekjQX-2QnOXH2Hp7W-}wQUTuxUXau{1bs^q_cKxOlZ^_J?ko~Gv(%2Xyuaw&+t#iqrs?Kuc zx1Ch$()(}|*2l6mwWz$ikXKXbpB7e|;a5ot(rvM?1Aq?E`IJ4Z~;6>-f3&%6Pmvc>wg#S#-K!e?AP5dV-Ll$kH#B*7tj1Qo;X7+dni^HrZ>mz zhhl^G$GwNJmW$V7T1sX`@^^9fmDr9i$8x6xvC{+ABdPTU_y+ft*U4l@TzeOh@ zGoq7rdP&wjD5FD&X(^J;39ru0HO$clzwi_NLWpB&}pwvMpJ%Tx46e zUQ0x`W~n+^eNAfXyeOM?IoCDec+c|%FS^n{X7LP!O^-<@57d6V~j zzvug&eWvd0?45h>oO|v$|MNeHjGlxOpC9DXLCS&H4(Sni7Qy!cxR*$H6r4QOY>VWG z#No*dR{M;ePe2ev#?W`mnjZF*aY6iKHZK)#zdL8V0?b!&0?1m5e6@mt+|Fvif-K@x)kQ5_k|W zi!^yDInGJ=>FeX-$mGhFOXI;M@z%TIWY)0EJLBbzahb_3(#OjQ&~0>L>>Xwd1qX!p z!z80?5D%_TG~SeGe8P8M^Ib$5_>WiOwc&6>!nrj*mwTxxmdSq9(67bCgYl>hF?(Ms zZW3$bPM zJRWzjWJP5#oi4k>T%X81k_Zz1jfw0hq#o<7zO}!L1A?M6tt6x;rXOrE9!<5M7ATp! zlP2Pr*nFpAFE+La?>oUB@k!zcyN{Lx?>I_dU~CGgcnya^bp#49dF8Oco+&KgJ%q^> z7=lK|9B-~$@}eQd#lFup<|Yx$Vial=3mAmzbG`X=)OT`v*(PI5K`Xr84hZQ9Gp5DOc+p;7PF1meP~Kx_pS zoG~MjxEI2BHJ%U^ihP1v-7mk3h2bd`Bvz4gnd17gqs#2bgV{*n!VghO+L*~zfRfvI zwR#zW%5s)WjIS9Ry0J%<(cD!O3p1=}>0|Pl!61<1*k|8hSyI*RJ0#e*4MP76xyRh1 zby(M;91CRA`PR@gc=C}}aCIzwP0YMHW_b3+F-X+D7b{;1 z+oK0o+q@)ZT#S-E1WX(10RCyK^DN6d(@LIYvG1Q|nKPe3L}D`1%;_UY@pzU>|~snxbbN zIE;>!fR6SdlH~em2K`L!lL}0w{&*C#*{}*yYc&q6qSH*}50hki{9Y9tUj9&lz5b#) zG_Br&i>FN?C|)Lu3b-SQQrP@LEcqf+8{h1feepmPUXOLWK@=-8Mx6b63RYs}84*neZKf+GQ_nhYm=NMd^_U z4~dU(8BsFt1>U=X{3r;e^>HBo7TA9cmMNy7(fWYW$5gD%H-A#o-wTKo)gYJC6d10Gn@=<_qr&5kFb|SQTDjW{bR7XmoopQgXH) zzZu@J) z$2DQ;v!wT;0IHz>Mwp=7el60!66UW(={ey%FZ}0({k*WA6Xx@x^sI2U2!PWOX!R7C zJXxBj$c`^XN(ZzWpkt`l;(ooVo^;8xX;c8KQ>y+oN52nn;B=-bIrf_tU9T&OUGR8l9|D3Q|0=W}Mk>oRjp)i(?C=K|KwdxQ-D7!e=u z3B&9lmhyd-I)-;<3`FzmgjF=hVrJo8YQUX{$5H`NyO08n*wQ5c3c!GX&y===s-m_j z^7k53daMaVdh4K5A&MiH0_FhzSEQ^Mj&SAjS$Gt4fL;!#K#joen23`pSBt zIK&vCz@lX!47eC5aThHCc$9GQxZ*fd&3ASUJc`0jH0?O!2+<*QIuCBdDp`gnJLxQ> z1TcMT0A+8pd;)LBXzly53s5bhMjov|_-aZpju`>$c~J%KX`Bj3SdC>x3GY2)Fu7d6 zRD3ASUkY&E`_iaBjXBIiso!Q9hBv3E-6fm-W-R}?{jHrzY`o0e6?GN#oxD~U-xvDz z0x+iz^5iC=-zY$u7804G<2&=>p98fAVTeGyb&iV0Zu&7s8&nv0kr3z*A29&{CBp?k zISqFh?-mltX!b0M4-d3_w`Z}9_s)3(^&mws5FTokv^gJ z{`+T$x~kZK2Y1^~`I|@TpQT=E!E^FIe=1y6EvG6m4&Yk3Jh~l*x6{yij(mfvOZa!we(p zsGol&XP)?Pa^|1^FXYTOiw>)p>375?Qw5RCSzQIa6Li}}?8Bv!)hz84C0xvqOl2OJ z6*(*}tRZ@P{y)ImOO0loH^FQ~x@-$?ZwcdH$(3_z@OC9v?o@JR%%EKPM9CFw5mmWD z*F>(s`G;Jg|Jx+Aj{xj0@u(Has)vR#&>xlg9?ZV4pg(bfoOT1Ral6TXd{~b%dkM7VP`z%lvZeqp=qrgX8EK#&lheP#58spXmS&D;)7T^m_8oN*| zHp^6 z_){Ab5>5WOO?zDYM`R8JmoT$rJ&}lI&RPgL}LkamOs*Bzfv(LhvJ_i6jRJ& zzkx5++pd=Xf@MlHQI#JNHW!)8hkmGlvR7EzuTd~uk#uf=`z+@)wK+{jR_qUE6}pFW z#PDP~Q=e7F2UXZx1dz-J1tPT{P{9hCenHh*F`u$c)H^I}-H&0-krQJfvObOg<(F+n zoqm&P@Z!F$oV$+vxxlJ@j^dlkFjoAI&POkUIqC;6M~RR0?1#wm4aE1*;rDXd+Fv2q%C{WiHh9?r#3*9|_&$-s*0xCi;5p;%E4I|t+VHy)#p4owWL zcf{U@JDM?dS8Eq@S8tb4dt5KeAx}u_acRQ&x`pwVF>^=81U6F@s*MRPT&>=U6PCxc zC-pXC6uO#c)0S#h*NrDtk(Vf(6LPf2*q(6##p7x<(Qy|tgL^^{Z`vgFH^J;0uhJJg zWhbU@cQEK#@&e59vv0DEXA|0l#73s#*1*EMUTR-Ng zv3btCB3Ug?H>D2Kj%yq3^dQ9JMjt?z`GC90ee4v|*6>1@4Rf){xTmDm?2RCMscatE z7={z}sIxJhAUl7Qkbg$`eGa@LrFw zgU;mmK?)}(3e}H8tTaCD5D!^>KVbE_O$*rDrPdK&cX@{}uI-C!xDLO>7<~_{J+?x? zwb1DGSaG(~kMxF^WA*)D(zA_4ybZiV4v>lCMTfDgew}VSEdW2%GM6y7Y1A*EMa+8Z zC{v+#E|A`QS81b*p{zR$0e%NgolS$$r-BJ4R-zYL~M}+T26UZgpZ3k z?u7eA_!BWlA=K2HF%E1JX-So7D`a}!jFznU zAlhDLgS`mN&KUm&8&-eyCm+aP$ft*XM0tSwgvZLPkPpF@!PGNEz$R%Y_e_@5fB zp>qFCGQ33|d9w^R$Rpw8yIdZruqdkjud}NCZ-`!ZG+|+*59c8KYH4D>k_t090+X}ZN7a>I zeaXpylWERPRp&YOIF70P1@`=&=v*;-uU@-zGTH{CtJ^r+SoDuR7mio|!ZHd%=?)Mf z{c^lvJ3z}IlyYG&3r56y;T^w1cdyjtqcVJ4hSogU0{3UTavIGd^xEC3M)F>EjJ?>Cq zR^k!^6vqJ{UaN-}>)}Ouc%B}ftB0rQ;TV2>KyY|=Z{M;u>ET__{k4Ed-l&Ir@Xaya ziP>Xf_v_(iJv`g6FEDx@*2913;jL&U$>UP8(a&RWOSyo7!C&)7He7*_&&I88rbSBk z9b&nc8SdqVTxa+f8p*-^;6kQQ#ubKpr6Dge;ujmqD~wpQ?_X^AAL`*J6r}zydgVPm zd{?hLt%sK={xYQ_pQj@l9#e#DFOa@Q-ecjweTb+_^@d&~jBC-G=*ImbYfP0p(We93 z8AF#IT*k5gfIwC1_8aB5nO_cmaUx&r%!0t=Tn0W0+gThhBQ<$Kvee)azFRcg&JLU( zA1xH9!`J{4g7_Z~=>=OyJ2;F=7<_9)EP$JAQ0sOxRZ$2Z>(%h?UG8Pga(C_weCb|3W(I zB#_%)W*G30L^hLgv%|I3*kF8FKHUh@=xn6pE}X4Sew@5ukY?w%kdm)gInv9h^l5V948IQek0-~)*ixm;xQz_h9 zv47-|J1$!HMC)LU7^n5mpj>?nd8&*%Ymb{FWbr8@d^-?o^Z87uCl3$C%PrF*R2y6U}STQf<}6YkDSH-={~L4IWhzSU&O7e#Mx$ehFMay)M|{oQ)x(j0D)$rB|W74dj@q$SIIh3&6#~E%A>F;1$9qe_A6Ms1al5Qjg!x+?iBK|D3;lk9TqptN z5%&tD0~~rZ`z2zN6nDr+^k~x=t@qqS*iiqzG{B8wOld6E-!Qdo%#cc~*^F>wZnI7h zg+8`h`-L@`(M0~r47ZpaN#F1j3E$(*Ga)E1S;5nK=_y1N9$?v`&VrdVF`1dX2DmWZ zG{cwGuas4fc7f7j$m>?@4NRo+6-)n}rT>=rf8%9Kf64M$Kczb=>{M0r87dFuk5p!# z3x(K;ULGl;3#e=xhk_h!_BcDpeO+5AUyb9^mW)8V&;HJ#1t;5dwgQ5Q7-#R<=`o6okxe^|{Up@LGSTyJ2YQ^A{YN~-`SN7GrW z$4$}kd(eg{LHCiu`4p_AS+H={!6(};FP7qHk6gek+)bezpJ3j+-sOp!d7y8j&8@Zm z=B}~CT5F$Zy&zh@FQU!;)y;i+baY{L^YiM-zZ=oX_20Piav7cc9UF$4m!#EUUWdbX zY!^$%n7Ly=Gsesq`=m(ENi808DskwGk~=0AWq16k8J$7Q{6y`2YHAlahe#lcR;M-6 z+Q(TZ+zW;CE0NeBid~3^Bw+)4IGv8#Bo7_N7*W|QI_`&U219Hcsq&y21jLxZ5^a=x zaBRUl!tFM@W9#^Rv75y*I~yxzqx_j|{?RU1l8y2M+x)pxC^>bYr8hgKHS19(s2IUK z&x356`Dw{IuKHU{T#smn4ydAeBOeFRPS}8(HjjyNc(E;+|&VdJ(jp>&!XNS^S<2 z2up7Fb0&oWp3k^f@9{GV(qJ9Chk6K?Uz{gQ7#|B8gk8DMne#Je@%PXK@w>(uc9s8? z#bZ%%CJO&e5QwxMQP2ctAWh(k+J7&=WLc_8&J|V6sd*$ry3)4(PK=6t%w$|Y1MWXb z5M7(ROK0`6THT^n0Tzs1u*WTBpC0(MqP{O#-!ZQh4sTMQyiVZZXM3YGrx<<8Xn6x! z8W5Vpa(@0Kvrq1A%mH2D_F)I{_^OSs7}stSsXju1`mpAuFP51;`R(l8DgtOIC3{JN z{5X>T`M#P7bzzg}02B3@;mvTL6#kspV*VMH^du4d+2E&Ua!z8gbs9`kQ5OULeS@K9 z`u1h%D3wVrT9>!kubvsV&6(={gl*1bqW%4%_3cKqsa{lFU&ASRhrR8o_4+28S<4eK z><=Ci_f?rmX7AE5(HxJc=w>OUn^QA@>sshzXi6-ZwlH;*ddNkbN-`;VOPO>^(Y0Kk z>CN7w2I~6SiACJ@X36xUOFPT!G4``2$>s+LNme$7dC!U>KIVs!Brc)oHxjsK<{N0f zIA+l&l}S`FZ({Ez8pm=*cBXHjqd-?}7Di!Gv}NL~=toUviTq>}tKYsa%u2UxT{(}Q zMx5Ltbyq+Sz14qAJuKvA>3kdQS;sQ_9rk3aHScbb-6+iXMQG}Ws2}`HcyI^UH#^B+ zSk_y@oF*rA%VCqr6_ve#$wbqQQol)Z#CpZ8Qr{?Jbfuf5d7}(&k~5?8oZ(x}ST_*s z8f$#nE0H0g*bwAf^G~_qM{enu{M%mmfLFTTYyOc}%IA;De(30%E$czc-E8UiTgC%w zoq1M<|L{tLJLDt@m$AyE2>!P8i=}LHTX4iUjsNAiFFVPXoa~EClP{6PYwWT<)_8fW zbXhDsFIGA?7M>O>{g9bgni>h-ar`>dIbU2M^(*Bbo6tE_Q()?0%I8~^^SyAbSHH#! zPxDHrdf`9Z($9o??)}WB!ex|=@2(4rv$H7c-27W!j>GD*aj?l-vX+MUO9QMxwu7*~DClM1n ze1^o4x55ZOyn2$a19g@ORdfyRi~j0_>se`BAc$Tx4b^dEV4}C&BDOcq z6AgB9jPh1T?v55sdjfhD&^x+#l^A6GE*+TU@u>0LsPQGgIW{ALA}D==9V6p~!A$}; z#v*7)lG$wLEs<}`m6(2&n11m}$z0|homp6Y7&ercfh|I@x>>eXTDp)HtJA--zD$YL z>3;^%X8gac3)`I8cE5V%r0Cn!zg;u&e?9;2|FZ3w>OHqTQ{7)@MmOEI5ci31{xka1 zO;*if@@jze7_?fd?daN4J%=!fj+?&PZhP(5`;~9p<6{F^rf&42(o}cX9`dIW)z$5^ zAd*^~oK>-Av7Kp^Rm3%Mtc}U3SVxEYs=GI>3)~9>dA}cS_RGe8NS{%BHv~Ni>xNZ| ztf+KjvUKwRppS!y2+zK7fie@f7 z%jdg~{igSPj$iS^U$ZSf<~QBzmw)Pq8~yUFet4;0zQhmD^ULS@;cCD9Wi0$hto-*_ z<&#+X<5>7!to&{){9Ua4+gSMPSotbukvU`oBc^M0vNKff^{CW;Ax{@5Zsxi1<}>1D zyZCt!eioEV?)1G5+OkjLeydWWCZ9NVSRw_NRx+2LH=PEX8wX-|&V5>T~E6(+G;xLp;?6e0~ z)%-bfK5k06PGTkLm#J6<%ZD95(mr2!2fK^>;V}rN4hR+{an3CkhY+swBavIiBragt zrFe+!XtY7me7($NUoC^@wyPb_u5HI`^WESzYCCS5^M_>H1P1?MK>fcEEp~hX-%WJ; zT07)U7<=cc*a<~y^fKV3n=Iy@O1pnGK)o*`LI%y>qnVzKW?~j~bIdkfgq@BqHWj)M z8KcWh^<`v58Cg-rT2pQfTgq5!%I%e*Wh^yim`=-GVduvNsb5Er3VU7@m}Q8_R5=yJ zfXfmiT(Ex(fA($~xz8O2T=crMii2cHSPu#h2*|lQ7=6$F3#78|Uv}tWp^aX&Z zQ@D+kt2{fVp3%SE>Ds|s=Y# zH|NGq5!u-pZab7{G7>+9`iTrwsK?FrRIqqFyYl|+v_@fT&IDr9qK&;+hY@8g#UYsj zQ@Ioq^c0izdVDJh9G-_;rCg<2%n`h(1Vm+~hKqMeSA0 zLzuO0u6CH%8quqbUA1R=kND21Wjkoka1%0a$b>avvrIq8|GLXlE7GQ~@P*2bc5e-H z*h`Cy2lwv}W^K))IcnM}lpW%`^c_^snMB8_)Rr9EZI{-s&X3djzL45^cy6;s-e^Iy z%Cl9UA(@t9zN2O~dw|>uYF4qr_=8ZkvWoFLW$4N%(qBp)*p*TK=(EC)mJw=G4tzC+@r+!w$`jjju9-iZVjP8SCg z33Q;`Q3;x{#yS8TB!-kr2o8G8u*yOga4Az?tL0h{g1uVbm7>1C{7<1>DF@(yS8>uQ z&}q5@iJf8k_CH0cRW@{dCK_W7^a8||q)!!wS66GHOKR{pG_d38d?Qq{_deqafO}U8 zBSoL-(7CttR*OX{L?idziq?0r&>oRZNR>V#?>0kZ3I%tw))&K31~DcjySj=e{hN#+ zj0Z;R;nBMFOCeXw<$We6XXty?m{m9Pzf5g24tPSQlP6<|4f1$5 z3n@2$Z}bA`J-$IQD+d1*>~V@gxK#TT!5WY+hQ%!8+s&jxBl%0rQC^R^vpCzRJ4<1Y z9ZKYthrO$s`k!$E#HK793de7}}CWji?^ zb|31WkbyjmYv{l?N#*Eo!q~qT;T{_>0Kdu%Tu>bfPjI>(VF(V0)`e(&aus6G{veo> zzPU@2OCB+nmX{3EerVAwK;X)C$EuyjM6D-*NAFR7DtfTXiti_14)h*US|sX zWvU`deuFO-nZhLFyQD+pXI;jRc`@fwn~xa$b{IWoi+CP}Cb32A7OmT#6|=Rzd6fSV zsa5TYpF#2P-2d-5{{(Efl5 z1%gqD)>Z0`CF@BL+Bch9TT5G(jHaHFOWT(CON}L$OYKKiLmH+b;iVGyo8^~HYoKL{ z4YZP^CK4itw&ajxo8eVDOa#Sw`ecK)5tkRDe&tkI#tE^*2Vl%}gEW%aGjw!5? z$HZ4nI>uaOvgD8PR~>YWyJ|7ls`E2AH{=*^)erS!X7J-Ii;9*~JWh41615)>;i6ph zJTkIPRpOA<3CM1o*8o% z6sII_Nt?H(P1Zk50}|G`vRB{Iu79K8{*OH; zD!5TA_&?hdf3X5pY-3$oUK;(SPg0Zi84dR}WlkDS z*8Hv5i-06$9^4B{!50ppv_G>+dqrFUb>-G<2(tJ$i=o5yo*NUPUEufqi3Tp+)+#cJn^>gGN@ zI@(%2YKRWjiD+{~w9Z89$E+`Hx!U=Z%VuePr;AzXnOBRTFMg_IE-|TRIUa^x&E>0!% zWHOO!E{-yRRYn(~`aq}IgMTO)<41Y|S(b=%j^TC`>@sX8MmKkpdQXbq>1^R8<*Ec% zK~y_xmi8(bvAAgWfN{y>&z}jTbwW(i&4cYm*tv_TtFZuo( zu?{ZQMKEx*T6MeD_|Ki&GlJ9>;4k4NP94}dP zcsDq?I)3hQ45dd1Q5O_M48M?xIL*%;`m&uKiwa#movU%?qytm5?}rwQB<>Lmx9 zd%Rq#Cy4F6UYI558FzB#V9@K4edd5Z$(X@Dv6t*O65?fCAoZ5yv;-OAPnYrnk$DQG zvh7EH|< z%pR$I^Nh&_vpBn;7ZLOXINK~{9T4R@r)U;#7v;M8L(98MyMbHOr(oYrhB;AGLb`fU z2}QgR%M(JEiIKJdG6WWK1*P;PNC%=lOo%%svN&nCQBPtc56mVWE9oT7M!hMaa>)9U zSQdpG{IUue+5dTM=jlZeiJYm>qF|6p8u(p`cD!mh_v6GA&J zGv0b}I2cH|!ro7F1 zd9*(?T0f*mo4RQ2e`pl7zT*K|C3=gaO*k0V$zFT3*Sm7`B@V!@qV`&>gRln@Y3V}@ z2M%Xvt49FM%gi0bb6#Wmb2>?WPAyLRQ#2R8N`V(lY1(4|;V-jvaX5xza$JB?&A{`tP{Kv37lf^sf%;t_l=~V&It92l_REbG2GaYc`~bs6Xl(&umRMjFiQ7UhFC_ zOD=%i&jbG<>YEo(yW(M?mv8{vgb8;UNQ)Z{6){YJfG_5Nm~V`vhK{U+n5&zZ*Zr&# zLbgE+sOr&Q029MJ07Jx+RYSxHk@4Xnj1O46eq%e zOf}lCbz!Ud0rY}UwT@(x@BSbNZwf{bAXHM*QZW88nIo(4JjII5Y-5{qep>hLBf4_n zUeR>F0K#?(48%7wI8EFv=E~RMsogI5?bLC#=^V5KZE^~AIT4f4Tu?4`Y!AhRI}amP zC-pm<4%)$ativr#_M!>it-{zH*WYxr2`bTXIM(fj9+-Y`1iQ;4!SzndwB(5et{RlS z#GZ8~xxU1ux^a-+gqnPgu)bwJjf4^|53DAGKdDXzcZ?>3@o0Tr^%Nn`L$$unrQQ;c zDV(#kiKSu5wQ{MyWGDnPZM<>1DNlC1vmEbCr@Y#sG^UV0j+sA!!+^ZEL_Gh{Yj}XL zT;C$#8k>IFE#zgw?@tULnL`C?^AP7&4$A<Zqdn2)Tl1_x%V$M}Dv;XT~W~E8e)wCJ-;`&(Wt{9mjbn%1O z&|6|&(y@IrO`E5n84R2vvlb87hC^Xsc5L zxUEP{gjq)|Ejtz#5l%uT4j!C->0+NgV6U0{+RZ%ofnHX?9wEK28J}jD<9;Asa&# z8w*zpm=~`tF+PP22Z~MyLPNu1t|+16jV1lvkjcty13o1Z*!>{={|fPu0#|0`+gM_} zJH)=5gt$XwHWBY>9dV8Dt|p}DJv}R@GULofw4GiI=dywJ8y9n;02U;|DlG1tJ%V9L zMId#LhHD}NlZ!Pax<$Qq4gcWD=9hHuRo#Q=T${l!*i7LUaAJUAJFALed!mYAORZOc zwkNCSwu=sSjMmjJ#zgyjMeC94WkR!NSDKpZDnWC)l53t^sc#;~zFtW+hsULl9aXWL z?TTz}t(2Qnl~}XEwGGF`jvdJaHeD%jE@;lNRlgs~_5iL=bB`7%hTCNGyL32)=0C`o z7yr8qK9TA7C8&i@WiAiX{YJ0;R?o#bTe{8*uJ`osd#P(ZGhO$Tm43!DaVr+@)a|=; z`%YbM(240=16(+Li)xg+_1HbSakq|9Ri-y`rv5oA_G^9vUALF}xo+L7r|(9PChkR| z+K=kNBYN(Bb^HLwi6`{naXsgyK^MxzL)h@6Tz(qMT9a})KlqnA(bLLAeSwW&@9Le%@=Y96zxK~SYK$-tW2em`c=k) zTywm(O|o^VYl{ScfnHQz~q>*|_ zmGxC4{90T*G9=*gxEZEwUe!zP?Fg{`;3N@>p*Jzx! zg@gd83b*;`+kFp1NJCW+ETBhWj0StGkHdIM4;#ln-63X0vZOOwH%IHan?$SjC%@=t z7z2YFB=^r>jg8`7d_ZwT~xwngJ#$_sOcShz{-rri`YqxOQzR5E8VQw2KiTrT8H zvk~QK-T=3kGId+iBWVMR!IMFS)Eh1`@fKJ9z!k6P-f6)>N)FEf9xT{XGiNQM!b6F*lo`AZgXYz+b}xgZ`JqLtP6|< zW9C1t&k1KAcT(lVJlmVa0)PJg+RMQ#r@SJz++ATVpNWu!3Vl~|4>%t{IfRDS=p5!8 z+LtGBaEssGAcx+Fv6Cd@PQfWAl@aSAf6S*b)fszagJ=3h&Vj{v-*Yy5C6p)65>I%E zr@f^{ryH6SrG5|sVOjbh`@mse?d{86V{~r+ul9DL4J#~v60Gi0 ztESqrgZ7Wy3eYnt&?&pP4c$qjuNRM!mHKJADk?6_nTiSXr)m4%bc5QvHeHn!wJ+AE z?G5Q7>0HQ$Ivi6q0>d{lm*=9x^V9YP={lodnr&q7`aFf?;LB@r(cwQ+_P8czhZggNRe(^M z0IW3uLc#T3w*|M}vvp!i-Q;NfU=VFS6VWC=xZX{(wn|!at!Q1?@^{&~W6MD6#Fn-C z%Iwkai0uE91Shli>1BrSz9WFwReOvC;3e>=Qg}s7rs{4oSh=O*Sq4j zxbW>|gBX3iYA4#SKx9WI3eQcjsR=L^yFI*MY0(|>KMk69d;nXw6c(EAT9ix+YTinU#ijM z*y=QA9z>sUy%-~NpO)Egli@6%(B zagQEXs#?cgx_hT?-laFH-w?*$S}n)ZNTaz(xj1G773;ktMSo4)>~0ltZAK%R;JYfJ zTM5G4h@PKVbh{BN!sQ*418vXZYGE%guIM^fgmz_g_^KFjyWWn4MVze29Q0F#6169b zbItIo*oens;p(8{&kWs>oLJn`uO&nBwTg?c=MTD?LwN7&@)KR$rhC&Pt~}*c-vKe5kbrQ`6-Kk(qwIS3 zP+>jrDptp5sQbJ~eX~a9yP<<@r$mFdo~{|~SHV`Cz1oo18ET}TKE2wy2Xa%4gbTRm zP^Fe&Ij2W?`gDrB;tK`cvX*C8P||_1O@v)!qNRUq7AAnqnC&%V;2hC(wlFUgnRUXv zRAep@{kMxOW{)dH<_fWWwUWJ5LeuA;Bx2_7lAgs0}oqhS1}$ zhyun~FK$an?emHpKjGv-tN&39`HZad$3j-sNdA&ky*VsX*s~`XZPrby3(Dq<8T7co zYw{d>d5lE#*qaje@?559ddYEF26R)VTFh2(EDFoQzqQHwp>DgrFj!HrWafyO}ce51b!33kM#eP%{FoLN7dI{}F_@|kp~U}xKUR97GJmO0ruHF_`~T~nmECdlQg0dM zS2lo7ae*iE2nHnqc=|^9GJ;mU7=N;OG2Ce3vA$<(Cy>~{s3YRcCy?0?P&{FB_{PT| z#R8$t|KWp0#A!BKb4M5l%R}sgt+d?L*rmGIyMSSd$!W12$r4aBV!qDZAs&i86XG+g zrrp{-i8WAZMgEUZGuq7m@u@S&hGlp&z4_iCLi5ZhfuI5&-X#%|&+1CEc?8ct6BK5@ z(DY&3LU1vg^kcDwbb1?`wN_Sz;i}q4Xrmxdj1CZ8OQ|k}TifAL!PpaDh*GL*{UxQT z0&n_>po1dsRFa-I)iBn50)5D6#8TIVVD*6fH3r3a*DkHQ*4j(S^47toI!N_GC7E~E z;+F~S5m<&hgn|{`AwG>oLU{frE-|*?B||!?>~w9>HpYGoJDCfoJPY&dd6 zci1`hMZ^55KIdfhP^yy75Mn_7Ohp_{5Y6&oiBI(a#%VQ*RhOo(_Lo&_qz&8q0)njx zQ{|cUCTkT5>eLXXmYKEfbkK?O)qi00pjI$ZCm^9!l)Nz#r^fsiQkj>7wI($%0v&P$ zI;6rek0A76B8eFWKQR&GCdo$QJNow8w8m@T;B1i-exM{f{LZ~fvQMvK2O|JsPP-U9 z1!g#=>Um>^ohRE(WInUxO|@izOufa#=-u0bCHh%~3_H8J38I6ZXPMd>8x{XbKc=_} z6xU9?Y?Q191n@aX-7jVM8Cg&1wW|8alO6??4$vmEMLmPCVlo*{choARAo#mbQ|XOL z|LWIvWnvWH;TEwl(25{z_a@hooKECimjMi>db_!Z%oY}fUt-i~gg)atx*t942Kimp zY5iiXEBmAXyZbNEcw+ISuA9V@M6GVqagPTj{FR)6B6x{n4pRO16ovj8cvL`TtL=lW zxkg$$OFt;mDOLl;tqzsh)uNek4$A^|Y)YcG6U0o$yo&{yl8K#5Unb0}L>fQLbz;J` zd=*v3J*tk|H0=b&LlcjnWx{>)@3&Fh@qZA!`CD}RSv|W&$0WHdzfR=PTb8ZJRO{qG z^p(MB=j2+gsMo7W)AlqPB_oM#lbo{G;Hk7_avjQ+*4Isv)DyLNSR;f-PgqB}8wumh z$9UpyYT!f^f;+_Cn@Aut0kg~HSs;GZq986*={Z84Mc zVlls8dxQzPz88L+6>^tgca?x>NX+v+49P7Rddw5ycs(Y0qIFX8cWYO|;j#m|H~xVnnoV^v^?5`>_eXu|I`Q3{He)sg zN_|xzKiR2ma20iR45h|=4yIe<7f$Mzj`fU_e8RDwbdnD`{$>*PB$X*ky#zPb-mT#X zyqUO`I6a%+rvNQu7-#XRaP`7&6tJ+*SXiroO!S|Aa-4QvgZjUW`oH_j{NG*W|*#5k6?Pwf{V)qK;4u zCSx&~jB>{5qH#V?d{FJLtG(6~M`;AvjBK#AF#S=}$Pb%rZG=f_)&i7RQ;TvT=WM@a z=mugkDNfKH5Tm3QAah2Uoyk$d<;219=ZCd-WHCxeKaa~h(uz`>GgiS$XQ1fSZlIXH ze`|aw#7CkOt$RPDiUBn>r5Zmbo&Yq`nS z9CNFaD|+kn)a82iDG6TjNtuuNaulP9iv=$Z;iJNnpAT8a_jLa%{7pj&^)JY93lMRd zLA_%CP~LhM)nE)$+7vUY>)?r2@7xtc^MgA`K~SLLrW+8R88WD6Qg*sC#gDs<1LbqN zIG2W;zz=mJhf7RH+cX)wQ+WI0_OptBW-$ZoqNpyPQ?!a}MNtKS7#nr%UpgXqqvPM^ z=${Wh*eSYoi(}sAWJ#5&{30FD7VrpqL?Q(E#AQe*=js%Bs4D#>0tL=xrn`65Ey+jy#4 z&5K&$77`H93V*XxU)uVuI;~*Q3O~}V&&a4_*S(~>ALz$Q|Bt%+C!lE+xBka^s4}Y7 zDjD>RDrQB(#1~aA^ySB5abn(qaVrBqLZ^B|hVpX$LPS;CQ>#+gp~0a7rH9w&RB(Xy zJPZYkwCAhk*7}G{}RK!6dj-PY}LaTqw+{^U>>Fx zcS>3_rto~jw9oJ%>VMaB|G*XqdjB@Vy&bvWnVw1%F#)obgjug?1)N)oKW7;7c8mUM zH5E+aS&}0gE1MjnyJa0fgT^4*y?k)Dw`Hx`olI{&QoGJvz+58^C4%>q;SA~i)L188 zH=K{is%ZXFo%o1k0Jw8Fkusm)MDGVo{_*>8;(GKv=Smb>Be$990Vpm1BT`!?-DH7j zxsu6$RO}y*tJTwL1t@*IQmn2Na1IPd2P)X4+i-@b9MLV{hKJ?_qiwg1FlIIi|1={`GLAxJm%FLNkH zm=SUUjs|Z~WgL!*U7+E!Rn4(O9zg;S#4ghldApjPtoV(-oLAv8L;Jopg5Ng+J5I`q z9Jh1(5_9+V-ORn)_mT&6>@N>%KUA*FAKj|%K1l7}O>mMW^3gxss0e;|XS;a4aE<;; zS^pC19Z??W_fZjufLBI|>Y@k?l#xO*Q$0u(<3~|3{;Ctapo+m`%xRx#&g-0OE^6OV z?%c6V?%BSF+$aC7r~vAnQtw`O?eW0g)&Bfo{`+L|K79S(3U0~lU;S@q^#9-d?_Ui5 zUtjwev%hnqIjw!FoYO(F@%H(0aek-4|3jPIET@p42|7F|9KQvMxzi=bfF`|_*uzb8@PX_AVwV$)RV?|<@p}Qt_8oJn@-@d?~ z9nQfSjXm5X*5)Q~Tr#)HKSp2GaEy6)=Mm0-4A+f{Mfe`N+zd2b(&6B%_!PiBAH}gfu60<80(p#%p@cbt1WuL&}i|gY@ge~G7Y;9o>n412O6OI9bB*+$3JZg&=GcQ{yb>ppUBPJHNykDUAEhYoqmmmv(ZVoS^-2?Mt?#Tr;kcMbTs3Vc?+1wB*E+wo_j&J5JHhjtt}phCeruGv{UJ2Xeuj6zvcZD(m|? zv0^dPnlakRD-OMIkP~m({sd#QZDgDqZ4-KzjN>HzbjHrQ6x>A34@f$>kcxwtl0Y%% zz)57~oFwP%XZi8J+s>;t{GiR$rSc)57Zl{>7OQ5Kg<=SL%uKlhui4`gfL#Sa*NA}m zHhFRPWEom*rvv2C^ukGa_J+xub*$QQ2I;fVOEcO0jtuBfD8L#=l=n$unGpmtl2cxPs};1mj8vu)wK~d8q@zx)XS56dczjYLB@?%58wP z6pm8^^4UkxCFeXOEHC~m$GO)5WZJlGGhJxWEUKBhkc+B`kUy%4nt<~S=Us@b2i2w- z0Kzm9&yQRsr$jB2lKU~&A#?>o9vQfE{9T2kNLE#AoSpbjt#P*H%(qXGJ}nU?+W4si z8D(dECpHE&chn5lnffM6++qE~jW*UMYh3jmGN_lN_z=IA9*C{#9jeeaF|pdv&hu(* z5;`gGZPg~LUFV-p@*KAp#B)~Gy)K}xXq1z!E-hl%A2@lHVMRg6f^0k; zl(ATMBS~D8yApozK(4@q7#Nuzs}pF1dR1^36y+}!Fz9uOYFH~F*YHPj*$DH z70-}(XT90ci}8t+Gl7_qy9-Jztk658ESFoU8h;HNjq3l^dOC#uf2dNyyexDgTTO~o ziGqNru6sOc8g=MQW!~JPpHF5y2C1dUsT5o%)UPYR8QqvzOi_G5`7cVkfFk+D-LPJXnYll)KV%WB}Q30MHS)VC_dVp=Kom4rYExy zuXt1o&!_O6r;+3VeCJwy&DWKILrqo2!)jBlj9&|FLoBL{zf>#ZN{`C;oM)N(nH2x5 zR>o$R%xRr+%0FZ)kr%ZJINPHFo^ib=T<00L6TF_PfOgr|j15obhtw(nkZr5d>vyj` zxZ)=LZx6m*^x$PMw?Hs5a$h+;HTb~jQiBh?!&eV{h&hw&kOuP#Cr0s=%jmXhbm)Us z&r#cY(V`iPqUPVuO7p-!fJ2$hN-M>>OM5y7Tuvsg_M+y0$SaZ8vLMB^URpK%J1$y3 z-sb?ox7buY_vu&X#C={$UA5ZtTPjrz?0JQdR1^V+*0!UocJK~bbssfp>y^j3(9y-X z9->Eilc5rCsdn5Bt_Iiqf$-V5E0ZZgOCXxTQ+1k*JXMddX&UUwwZY!L%d^6JH1|~CY2UBbHwS9c8b$jhF zD8k|3lh#m}A9WgWvv>x3Oo!Hbx{iNfDCrG6xzsprP>DZRVma`t(!1B#o^aNYSbz6W zFkAcrr{SEPt+l@-v{@qzMPz~%hd0vue@J^1FgdES@4L=Y)z#Hqz0XX~zOR|gOqR($ z$xITmClj(k2xKGdOOSoluwy_HWf57!j)(*i6cHgV528L2L`7TyH*f_}7WEO{-(B4U z==;6ja(&laRo&BFU3KczIrq7j|NXz?pg#xgD2gy|r0DB|GF~2_5{y8vy2yrKHyQr^ z_m9VUEIRck%d!7?(Qo;%o!=7WKK(zBzC``!^{!)b_n-ob4g!CK zM1x*TqcnqPQt7_Vuy-pa)&a52Je?r{Bw!MOUpQ#A&Pkr>!TFRG`3YB z&!@4?a;G@S1n!N1T6jN+_J6d(2eD86oLM@_N#1Onoo>50a>&!5TOrp)K>J@JBsyl8 z9?dY27*`dKzdQuC*=3B)Js4)BCy!*1!Uqc7GRu&M zb5kiyJH_qC6WHf=Hp(r+PQncm-eF%^bwb05?os29cDHnG)f>7G)oZ)f>CwuSbv)>@ z2>Pg7l0P$SBdwEddU>ceP|4~cWe)I?F^)xunVra~egH;Pn_yc__fLzqD$p`w$GW(V zG|UD%daX1wkS!<8pvFjYne%q6z-kv56sYNp*_d;I?>g7{|JJtvpUd5K5ASjx;^t0r zkKyLHf#~K4QE*$_0{fL!cdLeblzXchf1A`q?84W1jq1j7*rmF5i!D~UlRJ?ceGu?` z>DrHR(HjA1{oe`D2jd@l-SqHwBHWFP(neS}>o{5v zRx!6n9>Et87~3$bgp=8gz)M3sfZ4EqJRdKu;5+PCETzFo4x5xs!6F&QMEIQI@jNN0 z$Vtxs#9MU34~ZMNJGHydlU!ZJo86U5nl_%v$C~u=+UpW}j1xv?rrN*-r8(XD8%9Qe@3VK7rMXvkZ&_Vv#m!%18pw z`-0le)R{&`!7x~+9MOda=Pu|3YTxDl;@scwA#cOW;U!-6D4Oy*IcPWw{}r{~ecKD9 zgt)Z*%jICjEW21YVgI`2mD@aqTYnn4tF9TQy^^>f2`Iypa2qE_olhhRxX^GDNF-Hw z95q4}TZ>N$R=`v%f22mE28Q+&qF*kJY;~^3@lpHNI1PLyz5p+y`W+5_`|Ftd^H}if zSb8kTcob%H0b{PeG(~6Gb4)Fgp5CTG>J&i8E=_8ct6Zi>8=abmwX>oHpInWt)-{kv z`<|3+twHfDy=#Q2sQj#^ph7e;x=Nc6PeqDLzy5_1c#7yO5p~J~>Ki54T?zNWzR~IZ zsCK5bjJe=^aRMEr(-sKn*hm0B*uu(FIwgUMB7gI#?!m=d?8~A7p7eLSo#1}4Ek>Ht zq}oRfyl4j(8)NsB@D6*`q^IB{9MW_7o6j}@H%m5=O$MJ2uwvzjeTYGpWod22ylHrE z>nOh;83P1N+>P8jijx0$5p9 z`sQwNxdMD}EL(JOT)olFb&88wpg8ncU>+1Tarj0hM^o&G$8>~%7>f{W9~afg9iC6b z!JCsE7K|Y|YlC15cPDCg;j3`E&_V|tz+pvJn_94uw)H;0_!&RA&#(QAUnSqv@J)5} z&Aoojr~TkwzxvaB6Aiur<{ovfJJI(#F<^ER8H=pXifHfcLg%zM8PdZ#v_GLZaiVV5 zqqWq$DFVyV9nd0qBId5-&5^F@b!i(Bubad#;a?x^@uz0dyCJYm&7 z`&S*kcu&|KDs;u1yU17f4=65Jj^)0pzc9_6n(~UhP?^Un>D-L{H6d0i<{{F=UvamA zxvO1mWmOnYd9Df;m?r%3?IH`w=R;#X#jS#JnncT~iA>51`P~Gf1J4trIFR;G+qb|( z=rA{1?t7nk);?j>K2u8j%|BtNCw`~vJO(w7zoB^OAd$RP2Nc%CSEsz%MF0dtQ~)pI z9R_;lNS(=MlCDbSt4lp`k5w%Zbd(|Y31vSMrQt5nGviIke1cK9R??O`ptMb|jLP#tz28FfW$Ig(7{B-*6c>Qu@lQ@mOqjC^afDbuaBUm1g83WVWS+<8)&i}G|i)OMbf^l1;SjvW$e zdr~Wu9eQ%BJy4C>0sV8)yhOkVd#hBJlG_?O^hfs`z77wXQfw5(`yxHx*wh?^N+qs;Z`Va@CQ}L;6IVXzLEdW06Yb zROVWBkD|5%|Awh5mHDmmNAFc@vUC<86JOHYciWEIh#sgovbayt zKIb{Xrw`C7wT_I0$z(3vtK3bbB=jqYx;K%LAa6niR;gcYw26wE%CxF9`RK1;j--g> zz)7T{WgSq>6Dmk1#L`J|&lqse=nMqGDfy1?ybPaO{VsPKczcn21?t z*`jDly;Dl4he)!pk7OB8`i^Cbq{S5?ExH|NhlcZhnkd6!EK@(>X0=!9CwO~x;Q`%N zI+&<$bnp!jx0DXvCr@v;xvP}?O!6ZCGy#sX)s+(~w5hI1R?os&`v4YD)a=4ovn!rR z=x;(jmq}il!IBZdCHXpMa)D0Zm3XH_Tc2c~MGhaNtMLfPZB@{x)r4LI3^e?O2p3jf z{iD+6$D*Q?F=ERoR0!@o7+y7}&T)VSBIes=y$B>RtXhwtgRq>5ZA`_o)bM4I)PGnx zmMvN%NMDH7h($c|m_ce4ZHqY&8HviTFDnuCZGV^5*4}R&BE^8te7{nQvLBD;bPjci z%cWEzwoaB9X(?qyW#R6iv|8jxUx0JBXb+-!M?tQZkH?e!szF>fO;r5AfB0eNA(f$v zUnJ4u1r2nAK%B_J7JbgOx^R_VX)9zNO7|^5>AafNpZIpwAlblj zA4hP%1>y+IixGY~)umHgP+K;Zai+HtK_pK&zE>@C{=q4-n6?Rk@u;#a?VJY`gPiAG zg-b8VV>ayU-iSl zFmN~b_zhIaD0qW@VL`*Zm9|C{Ch4715veGNvPwr!btz1AQ}s&xtxbAO$U#$Jo*{8f zfRC3ksDt4Rtn~#{0jenJDM8My5bbCZIZ7yy)jQnF)w@>haDQ&1mj`*F6+iHuop!n& z)-lS4i9Kyu&xw;2s`WX3Zgu;*!vHl0sMWf?Vp=g?Nzu-+u>$bYj~(9KSXu%8A_22; zSQMyY=MZw9fWDN+o;VJ`I<@{BvKGdf)8J}8fQZ6){Rb5mGi!*&oSv@E&B)f{uqK!0 z2H$ZmGc3+`i}nA2dbIRVyuE4x7PUh&^C zE}usa>N?GX%J87D<+tz@rbQ1bNP3BF(korUiOiw@aY~Ww-z|A!y;pVNH4SibJ{5TY zFxmN!G7ZjGrD6OPfi%f;+Keg~jpABHG0@3F?IL}kjAH1nBJ?D6d!6|J_!u=S1yvht zUdeDxZ0g#Kj@6I-vc|FfS1@F%KBm`5+coEG)d+z>nqA}05hGZR;+I?arN=L;<(K2t zLHzO=ZocJvyp4V-0b`!J{IbIxkzdMDG$$zz@}>t=axZU~GxwI#MHX+amu_{@$=0dU z>CqRJ`+_R`mMHI%m-!&-%8MkVkx}y{qh%9$lG9u?{TM68B-;`Fj9wf&!|?^&ie(Rk z)=Q$v7>(a{z{*Tpk!R;}D=R1C13b4{=83rc23YCo>L4>K?c?msMdA$}Q1IAxom57j>4*)*>ZM}SE7Je{kACN7sGlRaL=DwD!Obr5$f_HruC zsj^O2w{rpTZj?ez1>86Z*7V81)mlL7Gg}&(d&}Ffvu0*b!%oxtQPXgp>HVZ>xXhjM zIhVOFvLKH%dLPA&OPNM8(gk1qK3sdAU^QnlNqg~H^pbTn%xw-2BjiyWoM`}i+PU@~ zQgm-28^#Xy%=j}H0KAf6Sxnp4av(GvRW(h@qf zSC4n>#-7RDZcktL9_8GqrbtZJ+PRZQ+_{l%IYPH%+k(X)fJ2E9toKYKwuelKaa^*1 zICxB=Bq&b6W4D?Nh?AUPfTti)V3&3_LaFKET;Tj9F;>2w*%3X@{9Jc`&Ga>nKfC8|TAkVHcR?KAr8>7b`*3`=iH0-Ts!bQGt$^JQ z)Q8zeu$276@x*|L^93Us0iE}>o)d^dI~KW%|wwOy~v zL73e53GSnTuxFbtv>Se30e)Gqi$3*CxXthe>Ul}({0B#2Mn>U>{iF2J$y3y+v2K2-HEz>NiPSAHqPQXE2iBtjB3#4clqNamhzfdUIerOa}59k%6 z?8FO|p3B6VqBeRLYJI-ZN9z+BB)K|M8LvL38@pMf>y`)@d7aHSdd(yv#Vit)c$x&Mvp8M1lfJ4<&GF0$NHOraCaVs~k*>{Pl_v@_=I6$(5ho+h5Ge>ru5)ieHGvFPPR{=-CC-!s&` zOZD8TyDxBiUew*yG-(2>Q0Ns-89Lg%PK|z&0h~Fe={;-YP+TD`Jf}W+P8;PpO@x(t zhxX>`%ys~fJerbm5^K}2&bied(3nR0O{-uIah0u8&g$YxH z7zU)jtnAbDDjrOoJ>2cK6YOfjdDlqCP9vHGuSd3n6}R#gRlx^m=;clID#0szr|oh(o7gM^{QIiwR@HfT@ z7E24REk^Zc$jcJtEaeH-JPAX*?IOokYHE8q7=w~cN&oxWeTv1qvLNq%piz~nDA0_} zV}o0P{r#tqtoRQh8GBNv6BZaW@i|%T$7od;aK$J}^?ixxJ|q9tun>G&v#28Gj}(wcOr0&L%{+)t%6Q6gVDOWScCSlpx;RV1-axZ;S0vBKK%odIHtH^iVA^9 z%{ar2drHojyJeY7ZT^GWROwvHDlRgsN`8el27(2)s+e9A1X2QB#PC``Je7C>(@ad- zbpQ*{BK-UnoMQ*3k|bQDK9X|mk~Z5)&6(B{oIPp+)e|gSjc&osvS+sWx+@lzPDnVw zmopuV{WRX?!zGgKz)=9ls-KB}S?!OjXX0Kt>08_<61YhHMK6lP#Dqe^{%)={qHD$oZlOci)-~~rVUI$e^m|1hMjuh z#X1B{+?Aqwg>J%p@IWDCfL&${mH(nj ze@|t+v$fmSstb*3bwes#L=`e%(`dPJt?*&hZ~zOk%#a--f2x^pd9?yR@O(^kG6i_( z!ZW{0Ez@(DE_BFo6c8?Wi%=K}z}H!WpghlZ77owXd99M%E|nGj$?QLph>mYM`EQoD z(0vJ(&sZamt=gyZrk{>|Qw8JVo03gJph*1UOT;fg0V59BQ`G>YVMX+);;ooAcaSAh zeV#p+r?fqOa_L!RbgP{$tUZU?4SH1kY;E>UR{0gtbBf~|iB5c8bjGS(YJ>BL9>H*O zlOyqB3^6Ff=K8Wc9f7j89dm$Hc_hN;b~qGRB|#4E2^}PYSi2mrK^C=&x3$4GL+0Ke zY4jh{kw%}6_Vc2B;a!b%yGllY+vd0K(9Y|KYl4tW;X1zs8T(7+eqZ^|VG~WGP-rI1 zRFZ(F3f|Oaa(iX@1YA&sKFd>L?VQWyQm`Z(#mb*c)CQfpGr@6#h@Dqx%~d#CkT<^K zLRXk&v}(70+D6G34bi@^OCxDMR%%bFO*0vhA=_NqxQ#Yu+rn0mbdsmqx*sNbLvF=i zmHRj4{zkd4DEAHJU#BaYJKj*~w^jHSH^Sg`D}2}###Mr{E2JwB0xC`yq4 zmwTOwei({P?#{)#wT<;Q3&T_%gplw@(dwJ!=2IvAUTw#bIXN0WLF;klyP8QP8J2-t zwcR6&$5k-W^K_HoWh>Ft;^kKq1gq+4F1%B24a|=^s3<#9PxY9uMs}<{V{ZFjBTLJYxQ{juyc{^M^`LZ7BgG%f_7ij zvG0lCuF;jNwFbtr)Lln0(L9|Y1NC>R)KjO~!zd7(6ktO;mMccbQAlAriJ__nNOmE! z(|njq??5-fPTiqTd{-vZW_m*!@F`VpL4$LfZ9?(%b6MR0ck`7d_O5m>Ff-FZF3;IQ zMq~BG40(%Ab)LHex@4x9H02CN<`w10#T!{z(kMJo zrB-3P0V?>MMrK9PSW*J}_e)}6G1|it2pW4WZLDRZLc}-hbW&6)GkLp2>mvf8clnA*G1GI!}!jy+!{lyvHb zwkn=#to7{j|D)wTUdwBo&(38C%2Ovgd#!r}{bF>*tHyoJ#9oqpS0eWtQ~O)v0q@iH z6~$}pw`vtB4~-XF_Yxa>%eenA$$y&6{}>&B%|zwX_5$twQ@QUb3JmM&f69aUhl(?0 z-&98>D*htk{g=x7sd9gzj*1;vnr=Vx5aZFTvYT=0E=7iK)^p4m-sD8Jx7=$?aNHEe z<+GmSfcq>Bsu{T0Jg*Aco0xkxLOjNnq%`6rtZ0GMuEjeZhb;Hpj3k=5X>L*nO?{23 zskt%de8a7V4k^H33_=XCCKhN}%LqlJhQFi`wViYD-;b0#u086gSnGsxhfQ*x1KKbB zmEUXK2W;$C>)ua&ocNtKbC=b(5}mX6Xzx}XyF-GlpOyb_)7}l*y%~QE4#MTAbhYRX zNjO?uGf75h+Pu!_94X&jo`9A{g2>%XU}-|A#3s==5hCiO&h3jpltqn;wN5TKZn)gI z1D)TyQ%Vo>>(>2-jXi8*UjtJd|B}r-YW2g?n8&pDu#P=~QXYI&{{MowCfx^V+``gi z`lME@3}Oh)q@hHqqlWSvidc$-cAQmFLu0Dt0}UN6Hx!t5&@`^G%6SLWL<_tNP7i%s z>CCU4Q8#^#EM~{eIbs+ERhF)kpa)=z9?KErXR_p8$C7*CZiSCQW;MS2rMlU1@RBCY z@%(nTI&GIal!T$u&(Fc|fDz(Uh}2GwR+!s>!Z0IBE6jWAOrK*8xD1=VuUe;wxxYSTZZ z^bzv?4AQcH&s_b$>5mq1zXxo}Ey5g8jP~8PNUZ9BavT1lot@};1qf^19=B7PB@IYh za1>w~13dy8x$D>FtHJU%WXqDCjP_34+eI9Mks&i`kCNcQfnwmaF^+De86UX9V~Q{a zYUWjun%P#;HEZyrFgQeGM7{k6?u$abt)l_tuauhM;ULCn)?Ml733-w_1O26gmkjO7 z<-<1n9fs-$PV*FwNx9M^k|beg!0-B^a*nL0Iz&EPinjv@JuS}CYw5AU{FT>XzYq>(4^0dP#uOfMH=8ErJ58 zj5_q$dKGt%J)D;R4Z}ut z@Q|~{$0e^3r%FYr{`dW?#W`sj6{98g$o)QO z2>b9^(ULXu3FO58+p~xhWjw0LKJe+$OCj1%jrMDzee)A)n&Ulg;HGJUD>`SPo%e%O zGluzmOx~2oD8-&%+t`u@FfXn8mmuzG)nWJy`t>X$)y&eU#c7uV>QT);rqz1J=jQv} zO)1Cww(DF;R%*0TQ^^S=Q(db8x#oVsw9b4=&lq#b5|ltF zInHXk5@1=U!Iv|Mc*1m27jvr3%*VG}S~wm=IcMQW-2%SEj;HlOCYgpd@m^4@G#|kg zkY^Lnd?_5Bz&XGemo9&@9A!HQVB>gEeA}!PLmSV11&nM?aes7)7lEk1pwf^aL3o$< z#<^#s62m*@%H|5?BF(NsS3`T4pJjy++GO! zu~KS3dv|!j?VfvwS9e9+h37r(-jgN{wKr}4FTY5AHf?V6f?GZJHn0AJzX(5*HhRmw z>85WfgJ zM@?xT+&-mx@Rxye?gGF{177Y5ul+(GD?a=}UA7Rz?y3H`$){RE>}}f;z{elDOH8X< zg(2KgtAiG|x*x}kk8ZNfBx6S<+~~hm*{#{lZhoB~c&p<_+pM?No{S)=&~W>L&7uH# zg)MY%O&ECwg&^;C2I)jBLUK!wF@f^>mon}d49jtR-l*YP)0G~HRdSkIBd~R0(Ec5c&^?OzwjE=NTN9&iVPxUm1dRda-f8LK!*#frgvm~ZeMcr0NtKh`Su!W;N z&TOKcpwWA<(J1gnKk{w#tv1 z-RY$t%~sQ$6B{B_ai>UM^P^G$3h-uN&+4N6IN&l4bmY#lgh;*(rk_fH-*Iz6Tbu%T znaWJ!Z`%JWQ;&ios69UDlr(gAg_APd3oGhl6>e2xaDq{Fv&^Jk zO7$48W~;l!Y}H%Bt*6W}!#O~`zE>Uny6!_^i2sV(NhV@L?Z?jzxQL09ND)mGXUZs%psUjEaiY`{990JQiS8J)KUa{Ch zFpjqA*Tqfuve0}XIp<(sO)+0p7zj5h2E#UeEH)l9{$-UQ#Lka95RuS(4Vp{w@|Jo8 z|3r;ffatpr`>@}L`|BW9BSQ~_v0o?{%a@QE3m0lUMUakli}ceRUeyp5zu?2FS=Dks z2f8)*Yb3%ye6P4zyg3YswS-9Eo8wVEM>IhfV0j=bi9Bwfn88!3#wRH5`S@x0_lGL| ztn&UOk9r20?h+h$ksx->7nri|pGlOoANZn|w|-=z6FhA28VV>c)brJ9^dQt%w)yJ! zn)x}=xxno#id)V#hQRyz%01VdQ;nlHo(zj5hD!uF54p^_?m2D^ta(zbuJm6E-rx4{ zTz!Vy5~DCHt}g9&m%kgJHXPv6@_*Afa%OboGRq2lpkIS>U z(T`8k zr$n!3l0kG@=Ir3CoX(t?##fd{9Hi(VDE(|@Ht~H`oQ=d60d=#FhCQXUTAXCRq0M#H zBQG+l?}5)sf1CmG@BNFLCS`MM^Ud!y2|Xb_4CKnZT_XCP^MWvZpYKO63!;6AzWesl z_l?mY%IxRV7~trv`Khx7fsOcw9IQf#9l2H(Nt36v{P`2$QtA zZsw~Dt8bV6^i*)uyCU05a%#k@R6d(nqz{&C(FT~s_o;Yfg|csQUXQm?u+^&$wLOx~ zJ;oeeTk6^)w3ntjHHAwkUXn;l4c@Z1=MPfF3DNgiWhaZfbtvkX2~fIlGb^uDtdHZ^ zAm>vn8(H{*Yc!>F(Cr>b)O-20TxE?}ogjuAJ;HTFGnv4ke*+z>YryM~Pg3a%UrG#= zDl^F)bX|9WdIN^W{69$UPTQu{bR)onTNM(hAggJ;eM{lJ6J|PjNE5L6pumXK$=8CH z)vH0m34o$po$Lnhv3b=zn^}*+C|X^eIu_&Qilt+ zy!7+_<6Djc?1fJ9tCEH7?NYOLW2OS~AZB?S(b1mkRrhhF)1OjSPvq>Fjcdy4iJX0d zoINkhM_U|1qtS111)LRO$i{81anMW?$fNOUqhqHWn%EHAI)2N>(rHneIzTDnkF3(& z?g3)Aj~%Lm;h{MhC)K(lzr5M$DtM{1Ix&A(&V?>P+(~m;18^rzK-cDz7M@n#&^y)p zVxNgU5mWnO-!sw6*V56;_-Oyd!V}Dg3=1iv8hs7$1Dgak<^Q7YiT?w}%J>9I?W|_i zds_w72+dm1f5AWXN<*RMn$gqa13^W6M1@Ho1_>44QhMk2>iYOU`E{Zy8RHN?K3}=X zOx$pZR1ol=0cw+>f^sIFm50JfrUViI(YWOsG5ji`&xu-B$7_MSrqz);9}LCYkyYJ9 zL%xXLF}{E;4Ccg_^TE5MS;afB%X=vFo)0!DwW4O}+W0)a+AVhxwIMpbCO#5a4y|A< zkH?3j_df5J#+P#Ng>s%e3;Z(9vroZC*E2%UeOfZ^^;6$Z%5VABjr*R9^)4{-2s8d| za^KYjN}U&>%(MO_YW4XlcbgoMDIM`&q>=-fS6QzrO=Xb>NlgTJ%GZnesy)B zhBOK?2~f}Q6c}@Y&AhD)1$N$6HGfqbbnWr#yy%)fRn<=%IU&^k@!>J*X!#U}(W&K6 zF6TP64TOMN;PG>I}|%!A5nX{zrkNd)I9VXl=x+Uem#xDlHejRyD8B9I{)jRs-)}dA?k^zot(Ai!)0uR14k3`9h6I+%yAKWs^wzj#lWqk8! z%W(6WmO0*v&PhEpWAprR-8)t9T=!GT9MXJF-w4d*{-FDF67VN0$tNxhl9uYJ@XT8eWnK<{bZ^;=u?=VO=*+qNM{OWLZ&Y}-kU5Z8JbivdCDYrVr+t* zSUaJS28k(zg+dOw}_ef?gxl&wdp}$}O zr5(cq<}8tGbn`rS$QJ`@#d3Egi5W{1i}I#wUTQ{u`leM%*Q{QPP;d)Ra60ANh0TPb#W{S3;iSi~NKXDv|<46UtlZeT$Qsx-7o5pLF9EwnF)J z(0PV<2xfs7zu%4DO=z|ezl*!Q;pBo%oz`%C;kbrv1vhnA!@&i&xwKM!OXEU7?WiZ| zt&`frG0NTvJ@D8ohfPI<^_SJN0+jzPF!_=BR=p$sta=ydO#B8ndKr!OpEl9UjlsKq zgOmBTN7J6t@yg&56F(4He1!_mlEo+!e?yT`*ApBZUljB>*Ac+QXZ!`_Kg^(Wb@+gy zP@|h_fK9Vr>x#PjmH$Z<0=J2``OO&Qq7F|CCx!8_r4L(`a`kZKbtZDT3|x;(2t`|e z{ohr?o2qGCUpaMU_RXQ%$mDg)ADUP2%Z7}S$K&Oa_sjqxs6=;4$gAzITMqJz?53aFj z1WzkyI9M;L^<}us^s`W_P{Am|cOQUrqK1@Q(5Lu49?Himhr&;)%w|2V zy18yT{D6AB+vyjYKh$=B-jG;beNNXBJ)Ax#w?vPQUobFIJu1Z}y9s$;2)^&zIN;P% z5W<;DOf+?y-O!^dx>{7Bzmv)U# zrfpf>Qas$xn|d8vS+_iZ3EuVkZ3c%BETcA^2bVRLT>4ts<3E93G^LWGK2s zjLvN+))K}3mQ^QK|H6>i#BZ_q?=WOAN}~ zg(kQMM?0X)&qv4S#*Tl`*w2}^=y(uFA3UD_wCST5!pCjJpG|*X#SL(DbX{#jm8eb1 z7?Eyz&?|M*a@%SS_D0;py~A95qwYq#PM#A2$LsehCIx$9 zm#UAK( z{9^dQViwprgtYO7bi>#{{Jw;xxRY)yf$@4i66Y}`gw2u){9}Xrm%(=oAPuf6=EJ?1 zeIP1VMEkd}CE%!Bxr_9V%-_gQb(=jYG)rL2s~ZmHxbuT~?xJ8}YB&wVIKJ3qpefV| zZ=LV92EFxUZKdELgXB@?Ckw?PNkf!KwnN4D{^PSDGUzlV-`S@;IOt=w#&4{QCu8`# z%<{eZ$G2WM4K{qYm33LCGy0IH#Sfyg8vt3lu?1} z6e%j8;kYI0CO(hny~u-ccgeN!F&+Ik`2{S{+(*@taf=_;EO@6L4xc1gS29TY`cJy~#{Mb?>&S{~Y;5n~b;WUlq%;@Sp_NVF=tM=HP6c*Hb?7%H>0Msp;9G}!bd->4N?5ZI(+&E|H zaBSi0i0d1D0WMeIe>$Fa8(eaj`Xw^Y%Lp0TwN+kW|I&;`k;nsNf091W94V zQ+I|T52H#Hbcmwa8}JQHB-I;VdusEi6NK_@Bg*U`z%}?MupNE|kugB^S&egxBYoRq zkNL4L`xVU%7pUHgxzs{N^HRO+|FECgm_*KGf9VIe#LF@NnOu65sXCL<+8%8kM2Y^t zz8{HZurDMCFDZS09NYkJi)s*Eyn;li%a9``ub-9OGbxJl9`0wBT|uSH}~jp-3b zP?eqm3;=19B6V%Pb7oG1`ecOdFkdg>xIu8M9i|xVE2I6QclA`qzV2e)7mLSr+6enN*qCxalI z_o+tLUtCO7=_AaMVP*7b6qv#Ffmfn}Tw826oNuJLAC>b4pug)TECAJd0vg8~V|{n~ z*(=4yN%}VlcFF3R>tmgF`vrWq)D7lCf|n$I!iB8lkNGz!|7PWy%F<^yBJo0#Ah_W+V*V(IZi&+zOO!v; zNS(xNywc0ZE43aOGP9fPyb&|EX`E5H%G05Vdg;gyWzyiS%Gk>;YcrU7!6Lac}r(ZwP>3p9NJURawrITdF; zfQF^u=WBDk&+`xy#QPJ_dd)2me58s#M>)Mt{%}vglt@;d`gz&%HkELwbpbMuak8@WfGWk3yjyb#j zGIeySQFj1PPvHQigvw-7k+1Y8`N#R;cwLY4y>if>4HK_dJpy#w`g8q}fdzU_>!O@^ z={>hPbGF}*sq`rwWbkhGkWA&et#u`rBfo|b~$(y^~<48{(-o?C4KPnOS8`rVBq zHC>){igO--!9cEy3szXJCr|SdNIzw{+C=WwX<#o_NXAHq{g$ZcJK#qjv)?f6#z*fz z&POC|EZm%o3h37O+hc<$Cw2Vab5ioCuA}E}R}>MM$!7&;H>wSW1BJZ&CCP>HMeaz= zqb3nWQ9D3zTaS#&ZRz!kzfV+_X1EpTSzyC^&&4)%@O3Rv3yF67U6~rfTeVGsvP| zM{)ps-slW-V=7n>pNS2H?h-T&;7|%1Nw5N_0^o`uSUWlD7-_t;+NJc#%H@QI`bVYC zPZ9OT1=-e4++$siP6s3oj}j;)^C>5Fc$3+d=}|R?9qOB3K)yNy4pIIm=0!T5h>{VK?{6PoyAME ze`1h`9l7?-4%7au>ZoX6(=onXcew3!9jW%u>W+r?ZjO?A(NAOCn_0qs z^@@$ZY{Q35;%CPFnhkIA-Jh9aqdwC;!~dl z4?GPXTrB%D>)zyNp5cLZvYJ!|`LEf^oBXQRj3xo=3SD=(PQ9Zl^W&C;I=$3em$CKh z%{H)1I(w9NYW5VkQaDrA*2c0Y`StEv_jjB;e}(S8(Z=yRylec6EQnXS+;UXGO{mnW zM1AtSV@d<&L0@fRO>|Dg68nR)i;Td2Iw-UJMeWUS$NR%dvX`tK)moQYnJjP{iE;G@H%eKy*!82g+FvW8rTcXUUF zfu-9ox6Tf47SBwbmO7Krb5FWEhqOQ{&#==Q?f4?NN##;{*R5(Prg@+88wzbf=;w3c zm%YrBo_m=8va25>x5@RkHXjvhsz_pH;$obdgj%=Y=E708shL?UO2M@d|4MdmB#e&K zBdBk)>}h~_i~b}%(e3x9y6e@)lpbP|Ba?jn8+5w`sEpELlI%iM9a_xF^-%$M9UFnX zSa;f)4K7>2U0o|v-Yc;G7NG_^W%|jJ0coi>_ zBIC(Yvk-%GOSCk4BKzy{Hm%^_yBJID2ojVg6`&8!q6tabS>ad24tTF6w*x;OZlI9# zzcuAK%?v%n*&VA-`S&XKi^_dO_Q7ww%->2)X@SP0hsv#0oq9pDX^HFktt7bH%*SG> zE6FNOqDOjT+}Ss3*1SHJqj|_eM5r{FtX|h-d7y}#u@?W0@$|p9c(VJv!f{BdH>%e@ z9Oz^hh(n@}LRl@c*;b-MjfLa&2@FZrjH2L!Gfdqv?@APx`k!KM5tUpaAbw3M!g1i=; z3}%e|BzYZtDIgM~pU~=m`$^oAL*XR#jIkfq;a@=`u6xe6KlCePsia+XDE2TsB=NZv z9h-d4_kZZqa`L^TRClnl4|(H__K)4|^wQn-z#$Ud?O`0l+`+(+zSv$uE)6p4$2+}^ ztBMEqt!h}@yQE>HcW%SJ19vFkY9D-|vQ8$iN zKJ92baG?Y~b8Kn050~GU{?`K!j(sT~j2$%gzLw7pbW&@H244yc5EgiLaJYz5FhJu0 z$>Q9H6&PAv?JO^psbz(aKc!l}svr>ia!IwP_X z!iuDLbB|!|Zeu#}R-!BL%8@yQ5{y|GtlYxbO2B_>5AbTCO@9T~ny(wbuWNro4sV&0 zR+GmXIgQDbR0qmB=IS#gBd-=<{+p%}7#mel$zu=V$oG1TYNmH;ARiwB}Db`KV)?e_F+GX$CMGAF-4=|pdW6jFcvZNaN3Dk}O^c5PLm+|1 z$7apnRq}sWgVGg7r>m&VWeWqj>aaa7+^C|VQdW>0Gsj`vO;lF{vom}l$V8!zCxF(b z&SgE=Bl>C6Xk(tJH|3x47G<$=GdhMu$dzW)8jL7rLkpP>d@>zf8@?;@b$?UJ*X_84 z$$KBx5F~^Mf*N9Q|1DH|p$iELmn-6>Vx~)z$gdb;PDRu%P_N$2Q;4Wto>3n!(Fu(1 zm&}r?XkWh{IzM|d4w4LNxW<fex^Jdd|qWAQgHl~+R=KCf>zoFdzr?GJscl( zz-wBqD767XtA%(N>Ri4l3W1;#T_S4626HG}POH&}9?(B^_X-ncHrijH_DaUlbZ-l8 zlOo7?;{x^^r>?Zl-%OuQ{1+i`gH#!O&X^yX;@6D-bz`11dQ1FRQi$Renz0Z(p|i8S zp~61hiswappCsQIzblm+6jUcM5YcW<#xpKdojj>3$ek62@mNB)5v~g_Q}wcZi|*5d z115#<>UWarN4I{H+#;jTmX*8Df>He^pH0_WcqB#qOa`21+&rZ448pg?WdmsaahG-p zgRMQn2-0@t*JZ*0F6FVG8O0K3L&ER%x*MJADCUAoQg>X6`*H@|{ZkT(XT7NSKDe7k z13IVCk~d7Q*-jOFR7s;LWFw9KgF>0Uz@)|o!gJ+;0PF6Z3LC=53l$B98G46N8y)9N zJ(pI_#_bf?nQUuRFCP=Gxm&Sj)NN{Z?#EZ-<2@I!dp|mGk6hb8YXUkldeEf%MM##z z^cIlO^s0OTmowN?D%ga}fJ+_;?Fn<7C1EZ)aE;xH7s&!bH%0s=UT50 zn~)`%W{fkTmu7;_L97pfw?&0FiNrwZs!wY*POkbPQit?(!>2_ofS-$-Yvny^wBC8d zYsMI=!BTDlm`5Ef8)WNBzr`DYx{UKpa`#K^wZwV&>28u+h?(wIQ+J8Z^N4kxMW;<# zcb1tMM|;9?GRqx=w?q7oj1U*Ugm@Fk7{Qv)cz`h)(OY}Scc`XfF9Wp77RQx83AMrY zA`5~EFbTOmU}grhcqWOkIZT8q6JuC%GoRMFUq+}{=r@Ss{ft^4&GP3=^pc78$4X|K zZ7o#g@u4Qw8K7$Mv*y(%XHTr&^X~Ml%|C!KO$s!;Gl8FcfnJ<(vzkX;vt&GQf8-{g zhrqB#3`YF;n&4Nw+nwQtP2Y*`B=w|)qD#P4)7?I;(-bs$Q3oCTPbed${YeQOOri0y z@P{`41sg&~e3L4w)IK;^qhaxYTauxJx?A0;1%^WyAkwB>^B|os^^9iN<$4|kWRtNo zsEgW%UcD8(Yv@&}4i04mJ}M*7+a5UHrkYfB5`g$2_$Y8a(X*_j04!o7skzA!Z?2}U zUmtEi51#et`pxLWmy{i^Qd6vfL?|>yQJpu5;z%sjgXxyx@<}zi(7E5tVA0w%M&Ej) zB-hZ&xpo^LJ@Vd{+HU^1Ot9-^&`x7(VC!+b&s$2sG=W7BTO21ae}M(G11AAYX-LCX za3r!kQtTGDSCYk4(j8*SX0nZ9dU`N@q;XbIk&CAs=Sr*Fg-7yEoG+{JM!yhw%|@9> z)7Y}34NmZ+FcV0v$3Zh<oYS*JY-1l!EqL*B!&`ZvjT|81y)NmFBC0I;6nUEUJ z^v3A*aOY9hglw|uC!{EehUa0V$NpsWYm9Yx47}{W;H?ZzGSRl1|LoWiw_AM|b2U2R z^ANxJ(8jUcRKa`rKD6k`GM7C5npU#`!>O8eK2mg^W67o*0bSInMsPD|w!@<(<%cF( zOwNq<%}^{mxv#3QmgiT50|t+*ilv^_l#DAlPZDjDzKoyHt5YWe(#H}eqVa}GaVI|F z{PPS%|BuT15yF|EU2waKJx`VZ)475Wh5)Zmcvlr(krX6ZG-hBbe_dlq?G@KAW8fC0 zzpPOSI_xx6Eskr+N&6!YXEDdlrgk!oqMN|6n3#E16I`RUzVln0qmsA$P4k3S`}E9c z?@9J@Zj`|4b1E@D`4i>5raNqnO+Rk^uV7LMax}0ylaA+zw4A2VAY>)1d=wAiD7DuJ zQ4vI>D!0^ikk(#fkiJbg`h*Ua#=gM{NeYx$c^#CDc$!6f6dUC^h0a6~S;G|xEZXnb z{Z>6=_mo~1?zcrc*d)d!sl=DsNYQUM+^tjB=x|!9=v;3m2+5I-N?9gy*I&}#>n%S#&J;2dwj`8%r-Y>*&Az zrSI-2{r4o_@yw1+G(b?fHF>EbEyu)G`h%3QS)Hg%-flyrsH&sOV5nEg6kJO!1PR+< zF$)1g@{Nf`Y%+C~7dsSy#&Z828>{0aef(3+Yma{|{xW|k*5QX?-mCN{g!xnu>-ED# zXR_dYgZ@X}J+Hhu<{FhNrlHdNfRL1`Y<0@qrlEx0{YwXuhXo z&uaEbZ~hMBxB0|%bMq2VfSDB+z4w2Om;RHg{4;LBall9M)Ao?k)UCUyZpRZf;vFHA zxlyaH=%!z2)>w!_%$IbM_g?UlPCc$O4aMp&k=MtQ&UoQw|D5!FPt}Hk0Gs z1eMfd>J8oWTV;O3c+Ea)%sh7);6+BbuUdE6ytjBKx9DHa#9n$O?<$Zrfv#`u%}F8} zV3P`BzomDzI4!O+NU(=Ulw}5a2C}}`cevB;Cyo0pv*p{y|CY&p+qAKCB$)wq7jpji z{}}U6(|3W*oX<6?c3AVS>AA$t`ig45M(4c=pU@DAF1wa$nCdOWTBf!i#Na!*@*ZU8*32&zpc-u=$-f{JPCoC2ZmoHs~blG6;We z@;92`HcoXw-(-@9g^PvQ=MAZ2n>;7{o63Agg^ww9 znaQkFj~fY^i9mQ0wex6`G#TtIcXMYQaJ`VeKKFQ8fTa$L`cYG-tuo zonzqnX|Z}MW83MZ`xuL!2G7FLuwAK&eSZgeo)oTsI6<5Rqr-z zsrMUl_1l{28VxLDnWk!9dm6WZsL(CTnrqr-=plThN3{DLb?uEEJ*KZYY^rGt8oKL) znvUua^1I6P1T>z2DqtbBJj5(3A27RPdyRU)tlA5`R_2cZ{$CTLfV&BKa^4SXJh|@9c|2*n0{Tm zf6_U|;s-?aV`jpih}Wc99iO)481o+u5NvsJx0lN~k&pigqoAwpR158LDfT4G<4YLz z7aN2IUCA?vx>61KGhifml6sWn&($O*1d~Y$g0mMpeXkM=J=Y#iO3e=?^zWrwogcWM zrM3E;n)HwwhcyX7*5$7IjPmy@?@HGBKqxuI1X;l-lN!{lf2+v{V>y*&x*b>dd~TnU zNfDvy7rnP)FL>%j@5f&Ba+``?w!a|aePbd_u7uc0BfDQzVLLv}x|A+U^mizp9H|^> zEoMY3ge_)VaR zsi$219k=Db-JlkyP#rQW^Hm(}s3{MrxTq`1M_he7cUTsfx49^*em)gTxUt?JS@$Pa z|Jb@eusRXboiVi+b1U_%jr{?ds;=K!_jh*7@2&qkTlIU}=*2`Nsz12lGb-4xVt;ni zpS6|uqo<}nZmT|FssCMFa!Oo+XhqdIj;z#_iXUb+`Uu2Y8~fK-m+$b7*Yyd40XY+% zP-DXr@>OKh-YlwyO#HuEMnxT(h>VWE#MC08Sc{&?4x|61)k{k1-t9E@JESMX&X@6e z5rvFP)Az-U@Y01uNSo0DTg;2fiyi^GXf#3H!!QehStKT;W)QiaO-B3{vR$f3ZqG!I zCY>%+<|`_z;2qgqu^()^Joc(9Rb^wm)6L`H;2FQIqq$VWb0u3^B~lkEdgTL?>3Ofu z>f-Sg(R2zfhi;l=&}bP+>Es2T{*w&4I|O8u_#^D-f$j^{`7WJ*o$KC!1!YXCto7V% z-A~a^|2Cao!LXwC(Wh)_O8sLDw(-)~l)C@@DRrrV9*5E+Hlwx^S@7}*VI+|Rhdd%Or^!;5&9A50uUrjr5E(1U*bY$D*3S|yz*4~U%b5slpV#j z@7+~h9Z$|@(wQ?kYJx^#6h}Ftgd)*05+a%?`vT7fNkj>OWWXXBkclD~VUR%x1QK8& zg2~xrFv$jC955Kn`&FNjt$XkH)_UJs-*?xn?mp*qPlxKNT|4~ue?J7UEw{H$*c>GH z+5L*|0%)v{!YT?zlO_n;fW8i9Kuql)RcA1&R)p?T-}z!is3}+{zVn9~2Y2HnKxl%@ z?&P+Kz6U5%`j?dTUYl)&JQKj2?lo6w%<{QHe4o&6P{8>vp$?R{L*Dmx-GcD zbF{*K+&2(@qIMCSfsbfTdr%f|+K&Wd06!s#K1&?Ut--%_t0{7;MdeiEYDHF<$@nv| z7`YXxg4~ZNR^LRHI>UXPqSQEiw3?GZH{&=boQ;vzt#Kd_%||djcT$&5o1R3qB?#4< zN;G-kQ9-EQ0w^gs4cfVd$UQ+`D72^o;Qtx66b=mc$Fk}x00s$j!rz7UrI`75L2i~k zNM^ngfG)T-kf_WP7UsAwA+U)5NrXS*{{u_rHzrEKgBp0k8zEN3j5bo1S%#|_I0CmZ5Pe*$*_32nHq|P9HtP-6|o1(s&%kxmdg@nYx z;x61A_E>Sa@vd5?oJHnbNuIfPsmffY%uAJZnX*`4p+FijHOP=P&#F_^2gp#;|CI_M zaO^ZuIx0?QKrsMj*GW|P&r~&7mZg!dVWIx8- zMP7&)KO`4%Kl3Lwc(=-R#}|2~nX^U&+nANh^}vt}puGGhvMoaPkn_~xr8jYpBNpqI z@VSt0YR4`>0QSH@pgv_<|IZB(n7@^De?7(f=3HDb6tN4H8bW1+ZU_dhb*&1@z$^^b z?ZG-5tXGtFoK>n8GcowB={wbAfSfe7^eD$q6NqbdpMaL}Wo?_-IM8+5BgFBK^6Mc4 zKWfY-{_P8A4D$^0ZR8hD1!lm%pK_txkrM{ZOCiVpTd(3i6XO zIo|J;MNV6diayM5l@Ho}d+ZWh4syG54?0aCqe}wd-Vg(ycE?x7i0i}4^;;p{)}Ia& zQ^1~a7$iOBoy5e>$4RK$1_@f45bhIhkMpwhgSH{!7X0enAmTl-L*O2brE2^X+Ex?V zR@adP{4y*$HF7bFhOx){zpv4eLcLS}u=mHkpCJJ2>g*hBq$xP}Q7c7WhzEw~qNRu+ za4VIKq=*KVzVD6m5ffDTSi*}|GE)a}LTwxF8wu1$WMh;+^rG#F!xLu3f#FcNI@}YY zU|^u&fjbSbW~Ztz%@R`JJnR31CuuR#%pMoD|4%##vx-(#d6Hnt37&-Cs?<05c>S(H zGF$wJvRKv&*s1bM7k!x~ERYcbjt{bMR-RfBQX#Q%xg9&Fq`>3`xnEylZ( z|ML?Q(|$mAMx9_$Yh?cD{pgLTuI2rk?K!YSmlR)XR^6_xW_3%I$;3_FJC8P0I z%vi`sXU%2yA3*dP?b(sb#*UL?-AOF%aKCH@#2J<>TB~O5$^tyB6F)-#N75T> ztb&|?9suiNC-@%}0x(E3&PW@Vfh(Gz^Fj2yvOkzxrlfKJb|i!{vpi$|75hLuV?OUb zjW6H+y`rGv6oCJ~jT6ou4OHDqn;qs=P=MGL^IRiN^aogt}Qv z73rQ7Kf^7zmf2_cP)zx89oxrFN)q8t;+BrOkZq@Qv<)6m@R)e{WAivem9xw|14=9N z40nr(g9K=9#!eH+iQH_Oh3G?)(8o?`9c7+E5(U`gUrFmBS+wIjO%qnLY~(_j-fsGL zh)BkkRp~JJF|d9D_Xf_)keoyDWfDgaleH<6)Q>xa&7c9%8I8cS}$X2I>p zAEW2A{XIB*SaA4I89CdW^MlwO!c0M%xeDJI$pT*Jmu94;CB|#lF4h}0H_83FWX1Ci z1Mp+X3S*~H({Kf0#kp!e^^WDS@?dYIKZa6;r=bJ3dSA+TYiw!qa*=3DFO%Psb90}I z@}Xq~(CaS>|Je9~GA_^oO!j%gB3}cF6TgFX#+*XB!F>|lk@S!}v@KcB3U`H);dJO) zdUd20$lO|)B&n}jrV_2`c&a=5l*pWrjl{Cnky?~2>K`GX#DYjmUS-3HV8Odd4dkbU^{HciPHJQ1w|E@z4#UkQ!@n2hACR>gtx8k+7l+}i zBK;bZar8x@6!ujTX6BFsdYJm-RkGmYmH`NQVxB?~TSW9y90}F{i#&Nb-|7E>t_}FK z#;JB{%;C^8M&o@Hl97>-?g%VXY4t))H^co*WIh#oe+2g}P&XG>&tR+kUeU_#{&VMt znN#9bRv+|#<5Xx-;h@k=22R#4bHm|iyv)UG>!d5`^B0NLs^TlN^=q?dEjj{byG+{= zHR4j`tx@4w)*!S4FC^S z*zX}7_VbQ!Gwk8vs?hDixYolHBx1_hsj41=J{6jN6pwL;FwemZ(sKMj=2h4M34sRo z(*8j9`p_KNTSYeiVd?};byX!e84vYSF-y)q%jBtYED;ua79IR+L1YRn8CHhz5&T&d z@_TtNmI~&AM(J&azMYP`#f6*vQ%8R85bPV57z?76e(JVnTUh-H^R6ugoeTUJBZrdRx|=y=1{yA2iusN%6i%hy+C5q!ImG!N0f;c!PG_}DJ={6 z)}_>4u>a!8PhnKF-}Fp5n~X&Q5(LK5cF)J2_eY%)MRWnHOb=Oku!?3ZGw-GQ+Dk8R zFpY9N!K~?Qzt3`+VzrD`@(g33dYAteKP0CJ=e1g*x^-nY9U=d*T6gWP9NY5%_Kb)|m<_(M5^_?HP|QU`q@ zj!N$V42i%D7e$XPD}(4}l0Vt9in%$-f-`b?corhiC+E1z8*U9vNoz>b4HIC&ofiG8 zFuxXVP(0EM)@VI$oKFGQ5kOIQr8HN`(!Tggsa8qrTM_PY@01qbNd2~4O1aD-1t;Vd ztbvvY0sSJ$A!FskIcr$|?-kZe%dMZQhFEo=Q$|4l@pmE|(XVtwnh*t?I4iJ_{gnhx z?f02Wvo8w!bz#0L!V}GDBsf;#E(f{oJjA}pHF6Gt?m0&mj+is4FmcYv!iYJ83R`(} zvY|efbAD8?^M4cYR{m0kGMM?3%!yT#k`t-L!6kK;YJ`)(jT2bUKx^R3vL@IQLwie) zo(apg{M2DJ^}j4f^ZlXz@bO%P9PyJQ1t z?IO(Ff#r0qWc61Z91N;CFp0z0LJUgBSy)c50UD8$#Q?gmLG_!=sfI>D973z@YQg;dbG(^HQECRrN znf_J7f!Ok>mU0kS)oCI(%0)M1iKUJuBEQg`mdROdmP>l6?=RvF+s=GzLhXEWf;-+4 zO;gk;H9^gACt2gI!yvcQD3wX>M3OYNi#dK?qjH?uISPI*6Zp+<_>Vi^%pM z3g>+vF}~DXVlK@x1O^`=k93YF=Gfzw|nz6F`+0vOIXIDsPP6lL1Gr(X~g9g9c`aT63qFlM%Iw1k<1Kz@rm1>!9 zAJMPgZL@h5uWEhn6|P<44*tGmQh}F$)(q5l zLca36!l(6PI`}yv_NEtV4x7!Z!l?XN$vYBLr*V;zD71&r9jsF2so}sn& z$X%X?&vK|)4?zk1;J7_?ZaK8dy1X60my~HmYG7TMR1)d;TO}0DM?wve3(Y!mW63nA zcG}$0n$Wm`JJ~7;4FaDJW8WS3e`DXF17A$}al_8qPsVIBiK77 zTJ0C7fX=69IZ)|HXwIs^5fwr$<*n|lz5kKnKb&&>KJ|Tdeg_`CI;&A14SxVflWx#c zJ}A`VX=s^lrp->Nvri&&)~N=X>!sae%}2&fb%)Dw-l0TEIWkWlzYC||B;@y4WN0;> zn+R++K5?t0Q{fkp@j5^QOD9OtC{+!PMQibay@z7uan~!veF`r73CGI0eZbI)%w8Uu ztUl425RiwEqidHf{*(2+u%XVkjp1E@n>9@L|KhKuxi!?%|I#1PRU^ps*Gi_Y8gYje z0La#hx50VRS*kImI>>ZrFDA!%csQ7p7-6FZY)o3f#JbrM^Ql`at1hQT(V|o%J)Wm&rEp#bfef4*l z9(>rzz#^7`U(scVbuAM)nptC`Jdd0rfZo#(YYF=!VVz`*93o@dseiP41eO$e>(B{C zbaEmQ7XF{23XV=r9CFA!P0gcC2f{biP>39YPG8(x&HETK55c33(NM7=>ReDk!6g9D zHGtCL{6n}Dit(LV)AxcUV;o#%LlcMty_(!9P=vhuMk-=aom^Lp(Va*u+y$H_grC6?n%RV?w zgW6BWaC2x{MMVFAV4&UX1S2e}2bekzA*<7H9)M~>Q2pjYC>*Sjz&2)tMncCt9oy$D zl{{1VVP~VtU89OPItntZ%izHs%6-(}c8puix*&mM-UJjm*wz1;VQNCt$L}B#I^W+m zNqz_kT_T0pQjGU4W8s+WiCHtuk?~s2HG}^vT0bZ>cFcBXNV{70paRKB4XNmy{?T^3 zj%&Q5UkrR%W%Qg1I!YO6^}vB}oluW~OJ<&V3d>f{EpTnhXBcTy)rLhWFB$IL4g9_QoR9oDZT`Qx+(8xTn8o<9+R3@THqIsgXyffO= z{|4{skI`x)X`+3G1%s<@_q@6nht?n_H7sY6h6y1H^q^X9;0|$RiHs_`Srbs@g0&Z{ zL%}+>Sy$J)*)%SLmd3Nv(Ybc39kQ%wEiCE2s_p1Xkr}5d zNCn|#K@a8HE6u`LX7)_8@K2eIC+qsHv6ppp4Uuu28elrAPy0TCGm#rL+i0)Yzj96= z9eB(S`-+Al4T(N4<^STn@h?*_lLzRb+hKMox@QD}j|xLYV3|4BhrJ_=4^3wZo#(sf z`k>KN*CcM1QZ^OjRfJs%hgEFw>wo5lH~5&s6{I?l#HSCNS~{%UZ7v;FzQJ$adl>Y% zj0rUpUn5Dw!9Rq#Zj$Rw3oOj}>$nEn*3E*=(-WfN|{AvEFQ z55)IcNWYR$Q#diuXQq3YGtE%FyFB?DFSgqoCe&{{bGN5;Dc@|sn^yI-H?1`CkHn5m z)2G9nqqj7(4Ts7^~IQ0O#&Fxp#Mb$in(LCP7h1BGZPx%U7izM zYt+B4Wpb^;6Q22`r?Ik?PeW}(HJ@oZ3xrdb$pa{(qxpgH2gtFUx`(A3+7uPu>ZyCY z{%6PTFY=s$`JdETCHh;dZjeSA1eA(?m2KQOfWlgKjnL{y%eTF6_~QI$wakbgfW;w{Ol)N*KOGUx~ zmimtZb9{Zt>`nw<(!u(&(odx?=kuk-cui_!+;ugtTEwl8NiPCC*5%bOW1h zNHUgmG6M-7(b5t6Y7==^nGCsffmvFszYk#4>v{80L4odJVh*WDTBDy3Y?Hhx-q1u` zyp?FfOT7&uOk_H*{W%?AYROE`NIj>QtyjN@tW#pWiUsS6b&5JgZ)mA`r9u~c)-g7k zx(u{-vDaa8hExU-!Dsy1t{vJU%I^}m)oI*B26f7d zl1YoOYb~~x#5YNq65k&X8)&UDb6*9|nYAlaK~>m?0CgLUF*0_gFjt8g^Zf-@=T0%l z+jl%Cz07>~%;XpC`U5ZCNRhaSo{PavcLVDSp-K7smLMkdY0+I3ab zzbpky5PTTMTsDlB9Z{ONM`+^jDi{Mt%P|t>6Hwpn-cjKylHR@XICDcI!k{k6;crN0 zHRwcx_a1`>>qo-3;UD{2S7M`;wGsq$&lc>Rz!5l;`Tp20nsMMZwok#&@HDejnxA9CDY|7LU zEyyXkz#KZr*l5}M6pgbEGHxe}JTHPe&|2tF0=6V{bo#*wKNZKz6GF!yZtSqek{U2x zg`K6P5p$g&9iKzz1O2e9|E0%loa(&%)0ki3^CjO*h`mdDaqiRrtOEu-NoeM7QMCc@+iVpnR1$Z2 z1j)O)LIBM(fflxB9WuK{v%|+gRxl^rX2ou`_=MPipHM8)H1>VyC#P$%9~>jGS|2N! ztM-H9z#W<{>tuP5IGcYz`2nj&4u8<%b0Bx%otZC5yoHvG@B>zgZT*n6FI6PyL7Vpf zn*@aTLMd4=ca1o3qh=9UOt^XwMoS3!D=j!tFry$gID-<$uURzipbH%TLML<=PsNjw zSa+A0%O_X1{m$}V(+zB0z|p~7kX1Kd6XxS+tuSYj67M+)(BG%(IV~j*BMf<~5FE=j z0Qi5v&*9K`7By&_7#sWr`Q_7RJq1=Q;pF zdR&<%DfF2gf`Gzfd($LZ81`hz)N6QeH-oL7516pJ4>vve`f`ozsm2doN?H&h0dbL!qGg; z)oRhzYGGzk&Y04opT;+jbAAvxZS)z*6{sTmi9$S4jT{jLugQ}@SssDVow=DQf+y0` z@AnY6BlQy@h0vf-3kdB*XgX}PToSp%%@>K;$MfM+eGj#B<0l#j!e#oVhHu<8X1s{HU;Y&)LX<*4%;CX zT8rF;V-}5Ec&1tuTbQD8P9j#p#F*mUnf@4=9%qepXO5XczAO=&_}UclCv%s2njC?=s-zh@=tQe^Q@kMvnd=VFU3&7-fY$Kx&*j+* z%mMX`qb@Nn)E%Cz;xSIrNCN3Af@gi7POwAh7m2w#Ql6=c=cR&YU7@y!?=;8JvohG+ zocoS0z2E|gN&KPc4A$cBqWGm47JQx*tOtA~9*2SGD>L|({79G|ib$~jo%l$c@}bym zkDoQ+1KT*Q1HUV_w40UVtV(-?Hg0}o{jl>#*2&^^v-qkR*(Q=uN2tuP)`=0iRHY_C zILw-o{H3t&6xpdc5h2_I!B~BHonvN&*IM49_?8X6MOu@5i_|CUn5`|B{PnYK`MDLT zO#Z`i-?ZE}EbC3n`qWaNQP-pl8E3LMkE-Mi!uo=Y2Ww7oe`4f}e{+^DHlY{)N=t4O z*{g_(Mqs+?1ROMqVx5gLH_4iq+|Qg&x@5b{R{xtz!HJw7ArdEdS?S*>cO9>jACuPU zM@_8YZY#LIyuRBD{|}c7{TYPtxuVXjPol>SW$XUPUMKuY%T`_Xz@#jaJ`3xk&yT^W z&lA?+stbR%1`dzh`|ARz*kpKeaKtnSkLO1g)PXi6`;x8!6fjUsqG^cS-TcOw_$2@i zXJP(8pplXA$wPxOK%scNbP0czuv%&{2^zY*0Yn+Xxn{Hf;zx(8%4B#(aGBXwTZ#z3 z?L%7!*ILrb;<1d+-h1c-hy`1M1KX{|=aDmMZV;i>!d)YV2A|De3o1|P3Pcx*y-$Ik zvC}^zo)otV z293Oof%SX`jfNPdIr1Z-!la#nl zR+<$NmcBx|>O4_d&#YESrUhYicsYHhOEXwPb>CQxI1h-g=S8guH!=D&9PrJW0O*$r z)*s04(3KbbRBVz7$e1_DYsF16w@FUANk%pyV{VeIo8;h|q`L_n{U({-B)ftyqk{Fo zn`CkCFTY{;vfxW*lPv9y1P6V~jum3OGl3KC`_H{M$@cN%Cv7ekxX@Z6_u5lY<>3THi>P4|T7vz=1`fmEc#X3W8rpT`k~i9msl@ zng6}|Py2o&u4Pt>_;HlwEbcD>32r}YKmXfI#?Pong!{0FAOY5iA^Y6NO}hItA?eZq z;TM$iCuzUKkl`NoIRTXqgMaMZE!wY-_K*4;qdrC{o$h}K@q?gn442v|c8PzYA832@ z-#4&MjC)2Wf%HBjio_0o5Q&x^btjiuBi+gF7zQ|MiT;ml|KpB_if1x6JLUx;$GcM~ z-c9rB0|>uS)8$R!&R}mZb?+pZ3c;SBVMo0$+_~)Oejme}=vi5QapG;_W+(L6o=iLhq7y^%5IiRv_SnK}o$Pj9++lKM;} zr-i0@r>h^p&9KlsKpkZ+${&zBC_h3@EITMaF*mvL9a#~WTnY05O{@JiI{jFb4PY-~ zAj)=};&L5oxs!vLzFIU=U}!ayMU;Xg)ZltlMAG;HJ5z3Q6eS}DCfsbEf!$f==6@q{ z%SiL-tjbi5s(`1r+N~VI>2yVrYU&|S__fYyW`B#@JgUiU?rmysFUf=)YyjZ_-GiY2 z80-$(C3>>G95&4D9XHhN?HyVi$)!iRBOetbs>TS}Gu9n5zArvzOkZY#z(yT4K0cv$ zd}xZk(x}PtDczIn_S2tNiRrP~`T&Rk67zHclAoxGg-wfev4)&38xs66>u7El2Y)B& zSlOV62oPCqmO#kykCF6T1P}`ElnUJT(M;eZ^G}}i6 zt97E35pFwon%=#pwZlx_1K>My74d=GRwW-+<|E2|Sox1A^GZ{#QRZsJT8|h~sL}R)lb*9J`GBx>VZZTRawASPah!y6jVEwlHog82+ z_>A^MGi&}x9Py!87^r6r!8-SmxK9LHTI55q#WHRqP^c3HKrE7II7sHnlSOthSCVDw zTCJ&1u@%CtdGwd4)?cv?H?f`)B9p(AUp zDgG~pUgntkTekn3b)glxfIypjqotmf@+FCz3Alv|mJ!g!J<_#1gKy+?T`#R);pL*b zX$Ji+WZeNTMi#gLmt=8%EBQ5H-LHX%bIMWT@b&Dg#JvSO3`daW9dVx(bymGs=hj=p z@FQ!*0=Z3ncX%yQ$Z?`g7RJRF8U-|#UsmvHQ8>zoG}nk_66<;vZM9iIg5);JvEHL1 zyjg@k5aFwYoD$)TjW`STaG1uO5F9Hq0Vgq{9kCEipn-@^&Mn}mNMYtX)P7(95Ye-! zI1>q@2V~P3O-`+g>kMTZ3ATNy#&iU?WLW$7g2m50iSH{q`(VuYXs}cp3;O;p3SZ*z z{R=(;&rYAI3TJ`Y4Vy75w$~YW1`Z?b1fg4IDc^^SP}3f1lf4hsXqvHrY?Uj5RDMD+ zD&xmfM3c(Rk&M|UlxnvO9C-*86^94p6}YEuu)rBpw``3$C)DfgsFmJ%TXFgA#*7R0I4PbtZW2 zS-gQ`jRlp)4!hD=kTzZ*c~EoUJSR8nREdWPrjIffe5{Pu?AajwG-3>7Ey{Nk#NRn0 zT7~H;fe5+`EYbzYi?>7#(Lz{38i+>gZh+A@R5uQ&yajSFY%G{hU8HERyHPcp0Vl|M zF>0NLe@$Ko-gr5Ld7mY5#}VY2LNFk>_ca0=lCx;O77a^I8q1F{E=rY9%leLA=07X;P(GF#;^xZrvp?kGSu2sil%1#v-tCKd}fslPrG#kse z3ga)SD!H7@g5a{}3bbP`+k<}v#I#Ors8Uzz*RVp2(c*I^;OXVRg2OaZNyEq0EGGa_ z+uBzMN)dWqqGLRhYkZc0KtXjK+9{0XON@tdOE}5whf4vZ^$XtdOt=!~@yxPvb;ef!FF{UW87c}*s z#2M(j0g&MU{pkqZ^x-pR^QJ9hLjliuQtXk|>(Y8vhS!@`H7Q{ayXq0wULW?)4_96k zZeJJH?2BnxY3Jhu5yWXZxg{;uQ{9Z;E4MWBbS?%}*E5W1fFuBVyhv2__QFD`&v2?O@_suevuT{nu)g970+c(bv zQos!;FWcH?4Vg!TGwW8W@?2U~hO)A%0VDi_>3Z-^fn zyNXaL-Rt`IyJmf?$!yNmdF7*|`$WNdvXEz8Z(dmNFDS_Mg_s>Bt2_0)o4%WBUcud6 z+mB!SyRK6j2)a9&WQ#ZoO(tIxhqq@>q>b`)9}|vL=~dZ{Cb2c$`Tv9asxg+&cvGMO za#P+LqRn`-2&@hm3OAsF8&LJu^#xyLHCrBjC(OU7LjS;Dt2nK~7;7_@mm8lI%L7?; zYiZ;^S=y9nyKX9dIWdq4b2k%;T>gLznj#il``%K!lm$P{57xAf|AuzC{-xL`fuS)R za=3k|fNfdr!)3H4*9GDN>=`%? zk(S@lAzBf>CN?)t2POi|JH{}(XPql{v{YnajOBE(wY9u@%&-u1PzAVlptiD7FV=pgj`_MC zx-`&4HCN8mKjzgH(s-#B3GcDQs#Z z25XAizFmt@aZ|SzlUs^m8T)n7-dc3-DcakLrkvnV_%!xkF27l8JExRxVTmF*+J6t< zGCHQ==5c}?OHE70*@=^!0w(+*mQgI7$8#GPZ48H(rSW)O=}BW3)OZ_e$a*9WsKo|g z@O$Fnt??FkQn)3~NJ2L<>|ZUw+!nOJQ3@|14KRx7;7AnR_k?jrJeyDpsG z7)}`X*Q?(~?WdxFWVVsakJPIdqvlKe@MOJuBWl0NCk+R?w1fj&TiOiATKrrr4Ax76 z^|8S^wnyw|EI-G5Q-t0S??5zGKauEdMn#k1Z=>p;QTrt;^1M~~n$`2F71Olbe#Heb zwI*gm+ZFs?c4>2HN3937nMu4-ZL_RK3!YLUZEfWeyn-4>je?yIZdP1@Ugj|(na>b;i=DnoO~I zd&k@Y(ZFn6I@NG!m=~~PBUM_>i{o-byzJt5dVM@$+}5nNC+!E4!gycrdpRy&iq${#?=A(Mm5dcdlqE^IEppgD3$ zbN=GyI+YnPt`z(_h^WsW1fIbsbWxb0EW1sZS7_3=kQvzQb@D#kF7h=Yzc0JYR=ZKI z6k?$omE#1%)H>eZLUKzwM4a)8(-Va-X8NKP-?OInn24ik^gjEdiF`gynY?K3Z>qe! zEJ9uT(+q!Le2a)pGDdewv&JQWR_g=jH3pIy0&3Z>0&nWZFV#oPuB!2CnSARm6^+3$ zRY7bPBb(!97)#4!j4WD0(2I3(_)1*|F+LzR!uU}cY1#zJpkN<>F4wGC7IL`8M(7BC z5<8F&R13n5qd)pJkOp-d*U~g*PyG;ICu!H*&}=wk5|{*R?=0cEyR@OUTV9Su zthMFk;zSz1k0S$Q%cGJ^J{~f!iAD#CTaYXM?3tMIc`~AWa6yktR>lMna?QpwavXjB zbM>OVM~Tl>e2;=m@G8f6olLY!EMqbm(W<=GSlbOJhSOHf^`b1o| z=HjTgK|mE2s1#tE3c1P@rxA9{%4sFnz!-IiJWt@@kOVfi!cPw-hW`OBBL8R`{-MSy zvw($xF$&MyZaCWDdHc`}HqmwVNWO9OHevK3rU!2OWuabzg0NVh zm1zpAx$T(vj@y(nsU%{`;%g%0=VFmTZe6m{Yjfl2$~;63=&|@|blS$90IkB6azC&d z6Wu&u1QwSXEp3@W)N)hSqnM|Oe@EwT6X|FL#kDHHr~s6eReMBq7a;YZ<(NvD=2}sr zqGA>k5YUYp@xH);1bIfa_%kDs_c6EROIV~PBDB60B*;zXDNaa6>wkRO0s^b6XpQTN5>q` z^s4bF+qI@Ro}~+Be*aF~c5=H+KOhHhmnRyZnN*M=E(B!;9-3HMV-ASbkyst}v(cjK z7a~*;$Yt$}nT@d68P6{N&Xlj4X1(QxSMu&H$P84fw06EWW1`Fo#ljT>4Pz$0B%(*H z8hc!e(%h)Ui~5|Q_PBFaPLgRT8K-~61hlCM+d^MoOhj-hw5fo^ z`Bnu;zYQz&$<(d^o6y0e>mrKOqn5MVitI#FnzqAoxAPF41Q5gbTjssi=xuy;>5!RU0>ax1 z@@SOf0+2@pkVgcNM}(fksrz9o#|Iz}xQ~CX+PF?UZO1C_Qp2|)zhkPo%q(}+G&xa@ zsxfOxjCzcsX?xFGBS-x|oL7TKG#utg&N~JkRO?zbFlNT%QJXAR>vHAdR3avK9x)Z# zNh9fg0Bk9S->F^f&tM$PfA{K9Lm$m)*i1owCt!He0For`-6npWBWkc~HGR8YhRKUG zP@I@DBbNV5@>-^rUdfSA9*b&qswA0hf1F;k2qB)#bUZuO8-G+d&0$9N(Gd+inHX-7 zC%_A|Us-SYWkS_fMGJNnH#iJ8;+7;Y(zpWcihDm4Nim0RI9in68`WMOmiBgKEwVF$ z0vyJ*kdsA(GHh64!MfeX3*@CGb~BXmJ;6k)5m^41`o6SrH~T6y3xYppAaX$acFOu% zj3-h2bkV)2D)-7uy=fL39WnUK`cBpu_NdvFvmO>S;i$A96Y*^#l~y8tyGV5zf20tY zb9m*ld*C`=ZKv1Z^BwdsWo1O&Hb5Qe>ugbXyLi%$N5FY$r{zs1T1p3)#Tjgeu*7Lg z447%8J9L1u?M3w&rDrS}a4G9qa(G!+;4(M&pw6&Ml82BUb|+C zoi%|R>yg$-FE|5ng7<7LbEOkt(7W{B!x(*8Rby%v?mNUQOoDi?%Jy0J?EPFY>;^*b zzmr^ehVh6~Bh_1W#k;m=#{vGQ=&}{eJMn~*oP^kh2g4m_mOJII+J)!v_?KJ2w)L%m zD8l`u0sjZep9l@$o=oD}WQX05c$vRPboj?4!)aC3H3ys{7CbKIe?-DI21x?ic{uE! z_l#HEVW-D`QYOVO35Q@aMsKmi4eo$VZWXq)Jcrr!~lyfo=_q zgtEsb5zaxRF`ewYxVO6UeW&3)=(X^EMryXYBSj?N0M-I`SDC26_Z_XoMjb8(4Rjt5 z=5`TzK)BmQ>~|vZy0}_^VLn-U=ZesUSPRR-;rHC~_g(0=F7^_aQS$UC3As<`Hufz| zx(>57fG-NMxVSLf$X9OVHyrEvozi;`t~xyW)~CY#8#E=gU+PR_kkQinhX`Fplq_ax zZz7>GDV_>tZ2Q?zSE8Yu>~%up(iR8wqY6vxW4NgO?r2UF_ahFLc&ZDZfz4*$kC5ZNf8+Wymr!Hz58X zJrGm%x!O8ik}NB=$x0a4caS=|NgTtjcu1ypO6L`sdRY!KZV7=UenY!^-}RlpI;p== zdq|^+wFl`UQV4MxdBOVb(wA)TC9(%?!+u9>l$4i}8)efqa)$9yNJFZUN_SFd7T}!s zA$ZZa`1~*2aye*|E3b2#t_Loe%SE)8Q4jfVv|F0E&LF0$Gz5}UWrtHwk;lLZ88@{T z?j3w`bd@H-kdK~luXZz}`WKIF`go*I{chDfdRaSd7a zNHguE9X}m%Jgvb`Wl9=~RgfqtHRKn9snANB?!=r3FUky@C>fT^v^OQo68}$2(Xdb2 zE&WHOzgwmrm4C#{*B6I(F3z)O@3H*bb?9)jmAW6T+Y3WSWh35*u@TL~*3X3!5Qgv< z>u(Ft&p}%dy*N}Ju8Rp&0iJkTC_bHp)kqO~!Bv>ihB2E(`;w)3aD?$k!V~J;XkrZ> z$E=EZ%!LpI>2Qpm5)p^d+1<0`>?^eXl?fK!Uh_jz?v%NQ=glfAL7$-Jb z$!wUf0D&?;9xO+M@caxx0bj#hFjh_w1MCP>kM6QJs-S-k4c3D+1EsCY46l~< zG;0=GPdBq-j!CN3I47ko7S~rdC)0N%O}lc8KZ4w0-)gtoGVMMFd}TZwv*O`V7Pa3C z1f?C7_-T0B^P%=AMoS!UQn9S0H7X0LS66RuLmIq7ayhZCg}z89SBB5eERey-hy(k~H} znRq0@B#+inxK0dtTx1^u3%E|_TrSuIFLA_kGZB@1&muGLeR^oz!=Ow;ixZ{m(m2teRsUuGaqD z0jQ%vJ8Yo)XxHu_XQF>J@#O{blvpyElQZNIsF6eXeoz(dq4P3U6Hj`c+)%9Y8zp7q zD#?!MrDVVjm~f~SI`aLw`GgE8f-=E66|9E_>#x-wgpGale%ADs{UXynwyz4hz+IN{ zdb*KD24H4eLtqEEHErFNjt=x&AWm_`_H<-N+IuiejXMwz0WH?8os*%5u=Q z=h5=3(DG}6h-KAbhVdnJjKnzO8yqvZ7`Xj0ivv-nmGitYuV!j`+G)lm_UqiSL>EQ+~!-dUc+dImEb| ze(C*Llxq#9!^O7|fp5fh{~?lpK{&@jOO@lCZTN@qS0F2GyOR7uPioi(@iv+GwOA>( zV#PN4;z?Ec7;qgr9>k4+ELEkd(n-E5Tt5$s>9o2EL`>c;Yf5hCpB@nT?IiErA@ZAv z9bPN))&2eJAZ&}L1pTXs`wFt&HjOf9l3NuM2|Z>pR6V#ZNYa@vr-Rn3hAX5ItD_-O zu(H`sxj0u@zEQ~8P*!yn8za54DpiO#aX@vdP}>#@wk31qY*M58=(}TZT_7gR<;<14 zguPN&eQu@mQ{nFs-V&-vQFiw%^vn2pA~uBANzH(g!3NmY`OyB(7Au^KoM1CASf_$@ zCRoSzS(kn(t-bH;W@FwD|0evuiq5}@$X`X}*W&wMiEq`o1!E8YMjZ1G5(Xa<#hv1~ zskv!A!KY-fJ{Q~6`wF+?AI-7Kp+(6lk>Sk{!I=dol2rGCus18uF?&~eYNcnM<<+i+ zJnVW2IcA-#rc_W9l2uoC&ob0Jp_wf#5*W9^f1p)y(e-X2rul*;zO#qQvq6((W@~;iE&&f8>zC|2pc?o z!cC{L74cBq$ye=l=J{vgoPs|8hTIB^Tkl&A44QR4&t1wv|Wuh58( zT8nvYfp>WLn9xmvQpzcicE=@iiJo*ZmCP11=ThtzkBh_u^@mbW4N4K%J7xy!qqVPh zX%!y$SB3eSSoW%LsHqoE6KDQJ)PF1{ye6zy#n9Kp(XVpg3%RP7GxD{J`En*MqCwU| zzCKfDy_BI6$+Mc7;!KhLAS=I0)~`yD$*r@t!>Nx+Pc%OOl&foV;u*F5KV?$=pu8Xj z;yF!XriI310-4zihN_%K@^zI_n(PLx?p52+oj4=?l=pL-%T<(6JBES$j{b~3W0D<^ z#KoAwBSu1>on}?{k4UVm+Y=>tez(qsd!&E z^_9?V{P?{U{v8$W=8DQYD_kB&N4G+NOXXb^{+$((UsV*gRiJ+3;wI{)s&L|3iSU(0 z%AA)+zOE+K)v>;+4!=^}Z!&Ju!gCNq>Lop{{?N}DbA&q9TudJsjG?+1S6C$KR=T6* z0ilsrI$e%OEUMa=telF01^lBmGFsD7-yy10%Ily{c@>W)>D20$wT;&&D%XnRyaaGAiq5E|bQ!4KsgMZ(UYz{i#kis15b;pVr6ktUp+d zk(D`I86A;2-?Ii4Tin)ibnA+ta7|GZr7kzz+E%B2UFYwp)0CRpuCeV@5M(U(cscz# zn)ZAueCnE&qK8<8k~ir|RackqEV&I%#aGazj^u@rZQcbwr`44Kon3Q}PsR*X~>*ZzqW@p&Kzpq|46>FkqFOJvidgY1*vn!#pFu>Ozl zAdg-82gg{`ILz*Ho2B)ZocuNw-}`(frgS9K>vqXjYI!ZDe78B}JhRCjn?gnR{QiDVS^bam&wz3u5*P~MLq08a{Rvz zaBahBKsaZz*lohSeUd%dLPnr!pJN4z^*!bu6S;Ou9@k9p%C1yF&ua?0LHQ@b{a75d z&o8xP415ePx$#`%u`>LN2Dic5)ezs=5Z~3{!pJiiM%mmuw7(43ydaA2i2Mg4^n0`! z8Lod#6ftU=)VTLV-O7Tus?fBu5P7{C63)oVg3E`O8C}?9uZZHSqWWJ)yi^@|hj1px zSbTi8bj)+&pisY^dAB6d`~ajXpwD*t=4kY&X13$W;SEIXMuBT(g54p1;v{SgUZ#$1 zLLNm~9?mcd1!0WUYd=CWor02}E6v5l>GlGv2+dE(o#9*}+-eX59uEPYneusLo`x=?Y21Km@w3iIdG!WmUb9E|6hbnnIoySYh3`?z`#LS8AJtzPi79 z63SkAn!`cus#?Ac^0SGH!++4vN4U*=S`!v#pO*U@OK)(DC!3B}hoZ<*M$(D`xe)uy z`WSlW)QkmzJ~p@;GZfvo97Y*<(M zMuig!2UXauvc)DIAAG}D;kPz>AnYsplS~e_hX+RwwGXrpu&23G?Qwhe1xHM`_m^gP zhP{9PIp=enKKnxZX!|Jpu>W-IG4@IOe$V_b`)*WMpO8T-+^bGq# zvG1`F!k9M-d4r%|*?aHx7y7s0YUIz~4mhxM&%yd0VZS77_z`yr|2M*ZK%ebiy)E6R zzf<@(ez2GhUr!#*j?9cvvZ;;xN7hpyVMf-1nsf8>h zVgpp8=G#Q$Kqd@k6Gt(N%X9=ElcmN4U3RyipTXJ@dYZBZ8|2$$9wyeyd*Dy#Sud@1 zl2UGbj<1(@tDU0yA@M7dSY<6}M;y~G)LekB;s6BaEAL4=@dRdzgR>%s78ZeG!UDuU zS@u<#1?pGcp6RfyyE4}8naD3Qa!V$DSB8Qqi~IROja*3my&V6 z)fsXRs)=TfuRPv7!B=6p@@^)zl|BiLhj)cjyqs@X0OmOYUGV}@QyP3gRRVAj2&6_P zbQm)LUp1j^+@*P#e#FkbKeRAvRIt>_gOM5EV>zBBfzWor7EytuQ&u`p3jb{3wS*@! z`qm41g-kq)Gpts5XfbjSFRVDH zS{Ap7YEg``gsRJUXNRqm%hpS^PIj)B^Ni=T1!~vPf5oOW?2gQfeVfzjj&$dJX@WK~ z7mihjVHXP2)L&{a4q{~mPJK=1l2?Ek0q7Zok(TkFonju7-ZSdU(9^o)U*>6CR~zIf zpta+di1fw6yF}a|haWO*ofv-Tu(!nU?+=@PvBV&rbwI37Yuyn*rG%FI9ay0bO11PB(ZjglkkuCPNxF1_e^>+c0W=h3S{j-g|B0cr}X ztTsRrwWXI5uzWFi2f{fqlpQf$f<&jdJS_Ns@R8q`?gLicb}~*(YUbJQIBDN*Ro#p# zp%{|LuKopQFq)HD23pxLTnJf~Py_|t6uOyr)H+Q!^Q;+cGW)Dk!RNP1J3bKW=nNa= z!t-UzTKOzxHT<=Zz^Uvo|q-yXN0``unGI}%U3}=%`u#}V)P=U~H))UK}(dt%Y z)2Vk=?>pe*+Q^rg(H?2Dtn5H{u$5@F54J1eb{X#0WN;PtLB=g>vQ{>iJv!YIfprkQ zlDzSYP!f)}&l8U_MsZExoMEt3Js_9a1vH`T_i+Df#pyYl7kMgr(~X*Y;oE*vu%qRf zWO)*?psw7h>O{agaza4C+DH($0GHqia*|m{a1J0W=Ju$DnYD-&5+}^%I^*CQ;hrO$ za=*&sQ8kgm`JuN=@wWMl2sYipdh9-*OTW~=Wwz38_n0tPt-zB#aSZ}AXuXZ5ajkU_ zZlr_Cqs4d?wg3KN_Waq@t)mCR0Nyix{NKt^;H41O<+ZZWZ?LMOs>6<>_m9GniiAL( z>t&c{?GO`xB}UQNs(@>s@aSz7990 z_Xl`cy$=*6)tqtRfeqtA10xG3x0G}OsOoFr=BWkyh0VFc0YrhIz=io^vtUoB5v%zF zVYMvO7~Uj8GtAcH;aI>^GyCTo#cu_=<*6A?HIeQ}4*aE#{iTBbz%XDD?h){*j51f4 z_C)IolVX@LtST==%Mb(WMziSajL~>&u(mB-bRD=oYzqX^beW-vD0ih1wTlroisOc^ zmf1D3Znd=50FR(}^B~}K*&%gg67;8b`zkHXWb%inr^55-FjT^4GY{q6)ChkzoGZT79*jFuocK> z{UeMvGZZ%aR?|bv#>qp}X|{YOrtR0q6;htqaKRj{2bx>! zJZ1VbJeq!k3>nXOp+Ft_tqjzm$Uf^!N*dBBPZO8g!2CZj*}Yp1oZLOh_yA`4W@5K7 zxA>tf|BN9Swj+P=k{@}1NTZ=>?a#!ARN}ONs4Ajz=rk#Rm0v-?Dmt}4%5=441|lj` zqhs5_9Mr?GPn-MMotS#Zn0mdRH;>sl2s2scw>XM0`@rxd&E1j)jS;&`0}w;5V+7nU z0`33I(k2spDXrUrQNcc0(ivY*C|-@x@@v%E$$drfP^`BKE&z7eCE4{r)JpWJjX zd)oSc3-;Y7z7g%s$2Q$9jQjohstrNuJnvdN+|WSzm0kI@EpfRf3uYA&xITXx9a%b; zdfo=QafO$4vb7dD8ambtNN1%ldfMRYJC2aLlfBQ=$+cx9*GB3q>f{EG#Gs$?TRcd( zP1KjwIhOT^8%sh&2&yprqHDe4YTpKBqwn)L(-)rjg)eFnL`Qe|?H{^2<5!<9a4x>! zo>0a}*PZVBbg%Q3*eyWfdVmF($ctcV&XXnA!7%`1&Xe|FE9#buL#*FW%k)oR`zC=oR+>M;Ld1;=7Qq{37a;IWxD|-tkgSV>NsO1p!s1{w zowh7T1y6BgA*>E=Gq-am=A38j64833S5*>UEirEHvXooW()-j1n=dl5~ z4s$@b1IPy35DQ5zBHnz9j1TZTW)2u@JjKLmi?rYVo#%Y*#lG?=arZaR`_hZ8Lap+` z;WKr5T=;C?JL-;OR5ImeIbdM4VhIUer{&}YI$ znD}&9I1S_>bm1ztl_eU^DJU8Hk*7CF<UV-!nR246uPl9u1Ybhmfoj+wj||%2 z8v%p*Uqbb$>?W93X@*er{Yvqvexw`uLe+&(9JhD^%o|=V;g?f#4zCY_cWghNX>F-5 zSUhVH2C)F!G>Uo|IrLGv+zVh$4n?+f%~)Nqf!w9nf-c5wB+U|sW8&}IHNZ|?ymM{)IicU4z) znC?kCGdr`XcXuT1u6AdGa!#Ot5(tn1fslkiXx{og%r6#6DnzEQY0i5n@F za7UScCeY6Ycy&5F0NDem3o8kFy-@}(f2%KtkDP}Ac^E~ zJ<_?w7_)Nj9;RT@a;uGF6nK-%1Q?TmB|OSV;`1t%E?o&&WY^$I*p;{5OO`2ofSK3p zLDzZy%SrvSWDu|A3;6iDb~+62(&2i81{en*xE+6a#~hT1BxhOkFg5wi)&drZ+e1kA z3>s0rr#?5#Q%&)DOuQ~^cV=k3pNrSG!%k(=HoxL_B`TS&`MV5T@O>DBh|c|zZC#Qw z1d*w?lkUn?;`3zY9rPqb{SzAFxnCki%o(Zr)7|2kt`AI;$ua*EbOESdqL2e_sj*_s z)3r%ue4b)+Wv$a2c^V9R09YJo+m%A?|W2RHQ#i$({neh&1z-?qi zKHCPW^Ws7VG7(cpa^SzHzPGFRsBl zUjIm*Ba7#v#4Kzp>H;yFoC`yl>uawNQO)%?q=-Wk6Ow^OW^uYv`Ne*X)0V|K@aNm)Gi}Q^C=d-STraC2^*@^aad|bP$eIN z`S?L&YfHxKyg`1il}#NI1>k}0PDi3Wzgix?M(%EH&NSVal3P;tjj4Y!tlf}uu1}%$ zzcWP=KTjQgdb&oXh?&vfd;GxQkVyJ9#za=a{Lw4N8&>Zo^(@WyUoB(kL`2>@+}+)@ zmQ|*;q>nPg%uj{&Y^KHJ(Hm#{nveohiVoAX!8yQMb}%nY%0qzz7=`DJRfT6v^STyv zU&&s8tUcLThHBH;c8W2Z<09*`Oj(v5(auG6;p#f)2ihpy>E03SJcbcu%HYWlSDT@9D%uzmOUXsNy zjSdOgQ7T>9@V9!+>HZlBYNc4eI}In~F-Ep%S1$i2}}!~3cMa50hoXveUEO3A6u*`j->t?w7@XIB72Y>(c|T z{-^VYoFf*WxR1Lyw-3zOM^0>x7JX*GLdUao@4QA3Frz1oa5AheJ^fpA{FX$S=Ti^= zF3s5+M0CAqwp-M$yLv0B&ztavp+m03>+W;ptaByZ(C~Ay%hlTp&XK#t$78C;L)>V! zXl;t33d_#SqSgs_y~wN+VgEUEzI(gHu3tP!^<_hNtIU2e;kpy%cw+7?u{2GN>KuFo_^;ghjn(K42Ux6KJK{Tgn!QdH#7It#B>!8U`=-(Bh4GlflHbk#9Res$R zz1CEDwJG{-Q_pXjqBoiqDK_^JqY<^}Q>#;#9%m(>yj*Naaw(`rd(cR-Kca4wk z9p7`$_~^dzmG6&_9vENwN6HYAK$HFO?C6czmDguS*UYb6JwJNypq_URiat1~^8P{5 z%9STXFMYl8;@6|gR*9bPtP;^xt3>5Ww%4$|n(ggpi=Nxg z7STHwi^|&MfA|+qG#iGDfef@iO&l68IgNdgul<3vi^2<;?$_Sa%cji z0airw=XXqq9?_L0L*$^Vo#=VD`wEyn;;Xu2Uin6HRyw1GN@JAn$q>!KiB_g6 zpC_Zo8+z`fR)#gFDEXgrN=-SwFk660Pm2Jlqpq zHlq2D!&~kf(X+-L^i-=!)_1bw6C*xwj=RN)-U}-42GK>y?w>GAAHEGZf;0Rkr|u=~ zRXgCH=pkO$Jw$68bE_k7cE)UR>RuSQ_M#qgMJ75|xBgm1pLvx}z3ACQx<_rysHyc{#2f66GK?c)+}xRVSgTykGa;4 z+P{r-4BT7YHi@qIToczuaLsJZJ+0f_8{v&LCcb8_4=iol?GKzYY5X#u1N%#OW=OoW zq1hhTpZQPu87P~O=R*pxy8QdQs`ve$oqx-?8kxd34{bKe8MC7~q1jd_!Gk&1_a9O` z@GBmr@V4Yr4kp=A|5A>()8dy!yu^H3^TNR_1(vz}KV*L34&(Clj#))aj;gPXm`{%S zV&B{~aDJe`27cab3;oY^qgSdH-n94^4O1;+UmuevtX2o0eyv7fnTv>9-9Oa%o$C&q zcICsu`$)UVM63KEIvYhi=~m}>-Rhm}wkE#nw}$VCLQCliUFXUf{Vy;tH2ar``p0aP z0o5P)@;a6L-%k!a^shJn>-pb^#!7KtJy-4@ZNtj}Yy&SlpylXRSI+)lUVDjMt~4#R zi-Ugwg?^lx(cF0`;qeBwEoiTvna(8qOxZE29ok2ig07xDymNZjmr0%ezr5e%^<TBeVtrKC z(@2jQMNO5KsJW*cwLYQ-M}sPD(U3|<)ZWucms*LsUKTy{#(hz5Wq35KXJj;@GCCSn z85@o186So;v1~ zx^KkCUmtS1h`uRW&lJ%aqH>mqR*9X@79HOb?%5*qEfJn82uE5uPek7ql?z04zUW>f z5HTtjiReO6xkN-4i=MS2x>Qsy6VZ1>g<%UrMzCWtP?vS&raPU zAfO?RkEK|wiSoz+BJjvQ#SnofrjD7?XhdlV*;JkJGVe8H+$Ks1zA3wU0^j-K5tiC@ zqG%1^v2HlRMC~Xt%{Z7qvyQ*7W$lVSsFX&8uHb5*riWyytWvGn;8*d-pJd?@$GTMKYRyv;s_cua4LO(E- zF36~TGV*LfZef#!-Yc;C?B@FQ80s&*HaAjn2=?g z`BW$QoN1}f<$6DKvgk(Mz=(xz#91vS^8GBiGjF+E6c4r3&O3`imy4l?R%bBBlk6@Q z<3BOTF!$FY7>$Yx7y5rg^?tJu%PjCp*pG#MD6IFT0A?Cp>MkyU`hGELzvJ}s?){dS zWCaE|gRNwV$-`Lk;4B@o4Dfa@({Pg4dxOCCa|=+l_>=F5Mm>i^53tG6X7aIDHAB8p zD<_tXS}J*bWc6_uWsB-vX}h0Gv@WK;Ov8VGhlhczoME1G#U63SZ>nZISS|9XhAcVm z*u#(6*;3L8|K<(X6EdYU0{&tYs3{_lx|^-z%VrO*k#Aew$#W!)kMw?@7Bz&mhC2^U1w^x z1L}woqSgH9NV&{-U8&d$6CH$_y3Z78!rc@Vmi9#7*j}%XBa^{NRExND(#G^;0uSW* zb!!Ti`oZQ6Ct|ZAHHp51dKdP^rgdp@B+(V_&;0+eIHA{mk&%s+EYkn=0a#kGSt7p$2J`!bw zn(b2~ZUmOXl2X_z3%m^kjUdp1+l0%M_JZ={Em_e2r@ezn9!qWX;^rw@s1MXV-q9u&og z%vYUBVUg3B@8y=inN|YkW6bWI+D9!iA8=GIHx>pmSj{Zi}=xkqF1s;?Ac=Y>+M2;@wAG z-Hq1b?=pM=J#gnG(z#gHTq5TsHaX8=M z=ojgf~PX>3z;wUM8D1)VUp(o-%7H_S5PYnr7PPP5`i%nw))=w6}CN*R=H45NIe( zmWOh^Y;;iLN#26riCtPPbt0iNiO4E!Ai8NtJ$7mWM~X8ICfY6x+`Y049fbFRus;>p zt-aKG%Xg&*$%)j*=%eFnZp)?8!#a7GK3pH6uN8f31*FQ@ZHKQCd8nI- z`$XMSYJ_9r6KQ#%q49?V0`NlG&h+%!eI9zi9D`~d0tF;Z@T?OcwNBq4f)leKm7CW| zZ@mmo&?idOe6930$lzrCHGPV{jbduKiZl&DjpuOXZ0S|g>-O*rM=-qCe2WMdGANrj zRmc-($zIRR@m`xx7#stX@7x;amMfjN#d~dfNcMc$ae)lKi{UXIweNSBBkaM@ZGcnX zvY8uTgD`U#5D=Dii;!@Lk5~6eTFJ8#ahh@P9>HgN24t}29VQOX>uJkcgV!bKJD5Hw zjY_Q8EsW%d$^Sya)LVuLtMtQ4v0Y9~vfpH=p;@H>r$Pk!!LVCHKsa)6{H1*d)y-N)u++w0-WOKcxy7@kX;Pc4i z>PhTa&j#Tq4z;B|B$4fJS>w>@BhB?uYdKSW-~*w|D>`sV!dcA|?bg{K4tR_zDWSjcCz$D-_ZeB{OA z6upD_tklPD-NPHCc3UUtiK(HwQxElyc8{VQ&lc_pHO%XSk$6>OI>x9wL(dFGxFe++ zG+WOJ#tJeJD8+MgR6<=gUePzS0T-D3vNh%C!i$GX!774A6HI?v6( z=i=K`t!{^?kGh9t0gCcDLJma4TrQ%BoxATWbL4x1YGrc>28!xr#$ z&;$@TEfIS{*xe(ixknhlM28xK_wKbqd@QALBIridE2cNN*Bu$f6w1*u2CcY6ZEVeutq}K1n@Fzs}N%D=m8XOmK&x@CH zj%@9Y|3uu^ZWHP~82tx2)#qsj)priZ=N{3C4lQQ04`E_uHpr#%diQwUy-tp>oEN2&(>XBC zk-N^OEguD`a0oJ*%TI^4$U@w9g5*ccMVA>Mt4)LM1oQtIOfXyl{ z)qVMVIarYT!EB4vaq)~TGn^>b_nC3S)Sue8vSDfC`z^RYAQ0wvp?NjpP36S7Sz*0w z!({oGbV~A)GidE8@!Vk9c&uF*D)X4_eSv`s!g5* zM~GwaC_>!DhYV%RI;$Xcga}WjmaSltvV^69rNm+!tqq%miAU@l z?-4;jSii-eqz1mrS|Xr1!0poCRfE>6iRnha&M#pZ3_y*=Uuqi|9n)#7pcT97K|zdZ z>v(z<-eDY}U#a>$&wbFiLl+)osCM2aY^Ls^h8Z>vok_dP5y*P7hUDQWJ;(H7Z7OPl2Nd`nHoa7mZl-u#FLKo7!k^RWOBblJSN(F&x}4wmYbvV%=#u8$Ih$ zJ&qqXK_VJt>NHxtJS}~^4z==2iFRFcAe<5{sUls=BI>=L&jm1OHMxVGQhE$RAaJH( ze4r^TY2fwv-e;N_eNpuUctAjVL;RPF!3~ZY!nLMa7oe!o`hTL)JfXP(U}6vi-$2cT zQF6FE0v6zv!X8aLlRY)}4h04NCvG`Y(0@n@^mH>8PeO{@OlhW;?a4kJlQ_jsL-*NfH}B8mqEakpo(EU@l% zN=ylK3L`4MdH4hgafab5JX3YWA0_o`9sN{~)|uyY^r)U_Fa@ULTV?X|bbs%+1Mykr z*{-uMJ%OB+%Iq z3?9`~_G1P;lk27FQKI3QLg7jMH5*SK6sUE_u!Qfv4Db8`nUF2qL@e~9nTzS$VfODbYQ^#9LT<8ha z4E{+XW0S!h0WUS^k=`^2*t{?o*kK{ymKN;(YfZGR-3=%$&je$f9sfG5X0Dalft0Qk zFXF$uQWVW+T^ID9zn^NOcUvN9vQVxZMq0>a0S%xVao-WnXkFei)a2;z#7J_C|= zvYw=a27L7hvutF!1$s}}N6>9qQ_N>@-Z7&mw&*evV(9CP-{3X+vJ{jC^OX~=s^p}S zrMVvL1PS6k1jHFM@HroX8lBRJm$>9)c$d-;8tC4%XLsO$v`iiYR;|cEQ*^UJTG^Gvql`` z6tTx>xP#2eZiMn0kVHh3zR}d<*ThA3T+zaKy+gd-EnZK0RZO=sk7?^=IVz=hs+F_0(e<@|GmI?pitrnNfBWZ*#D zAA4n-#1f8*my*6=2#9x)B(-dJ`YV*hqX224qa3xYxO5O=6?Q1Jk!sma16NZv`lC@7 ziPVM0@oT<`kZ$M}TVpwJjp1xqFP(L=v|gfz-a~%u^>gwzZ%4Q-sUEOg)k!L^QwlO}MjNA=2* z=4uDp=26xSpgXMtz6{H9gE$O9{4mZFZDos?YTAJMGTO=wMvVA9P7NlOikVvN&eZA# zakBLu-*$$XUo~U;Nb3gcAN?nQti%`A_HQ=};;J0|WmpyHg%}?_YqQwjdPVNf_8YAe z%cWMoJj(hl#?t3@X(3d!Cqh<@@OW1Rng5&dK{%8A=;6cp5~PpdVn zC$3q8v7qo13%?^^q-@!{X3@00<)S_I4i_!7eqpyWCJ}Q^=--R_-v~cd+=>Z@n6+6q zq9J=X8V*L!Erf}5@3kV_CKBnCndO?X>P1=Y7!Ogc_U(cY#2!jZuC=4HKxc^5un@$3 z3)gy&trtvgW5Y7&s z!^jaSVCcqUf3Zv`NG=o2{enj~JTo~=GY2Do?1fIPnW^rG>LhHqyjIem)B;pn%*ew7 zrWsytltO)bpg;F}YxuoW@uh*cgQ0#9APrD@%(45`u|v^t<#`wKb0KECk^FFjbIBAWnh7ETXtu3Q)@bdTFar|rw$Z@LqcDBYrWwDZkJ3{>h&mlu$+a8v-QXQ z=UVFXt|6_G`gPZS1A)Rj0*O!F7eelo_#LSl{Sk#t!s#eVt=gVXS(iVo&Oublr{^(Bi-cx$M8t^ zd+Gttxh70p88&VRD_8%Q@JKSTMzpO)GqqV9V_lXo!QZj*m}z_$R0p(zG7W7i4RyWf zjYrD-IkhPI4y0bVc37RYxO6wjsoH4Y^R~FVb$GdRVtUsWVA0;XS73z_t8+Eicmc zh1z33Wj}$Fj&|f^I+YNq1{sjOf;tBZUi6Yl0f{4u-ErgW@q5VBQ1sKPRE*Q?7DmJ?oh zQG!9|1nVyt+r7uU#N+=Q*6Dp;f8du`54P|06LxHtqG@;ifwhNzBeeQifaXI7-+lNou3?&Fj8caUEiMA22 zv3HyA-0Fw7`0~y#!x+UG>knhZ{$Ra!CeTW$`URL0i+ok)2 z+y1nxpK^nEJ^g7{{?bYRirJs|jZ=Qjab9&so0|2SllUdH2ieyg{i;**h9h2e_G0Q4 z{>q%s{L0Z>eZxr)__Z(*FBzBbRue_V42AJ9gMXlqFx;h$pGyfJl3UPu_86Qt^KmVw z$NGiAP8n6%XpTe8>`P|xo2k*pOR2AQ1GspyB;D8Doy z2Z5{sb`F zlJ3Xe(9b+|p_e%%I9eSw<|EJk(DM$p579?YrttIUnQH|nd!FZf+iShR6X$!oaz3LA zPJsw`mwLB}%e;)gLsbgEiqXOcA7a8}wi<#*;<128q;FgzFBF&@85T1xH10=i=@Nl(d^7J@#@Wqc5>4u0y2;lOY*PKP zsqP5<2Z)=wU2Lj9C&Rxa|5I!#QwtWxpEM4wVwsz+Ea6S>RY8p>P4x~*aUCPHE1D{j4!RzFWU zzaZw-pVI0#Df_qVeUMgfrkuCf+bqtq_YM}l0T+mX?ckI23^XQjaI16TAXfh#-0Hh& zwRXGURuATaKR}K8{~@^5chlkJ=`Vv@83MS=s|?D;w+)+ebq#^C5%@mw@dKg5JKyy# zaMPZl?lDXYW@%U^m)a~0l}+Ang8UnSYEfr|C!ZA($75aKTotG*g9-Nr`ktU`Lr}My z-qqd>Y~B5?OSAMaF5Vb4ZVFHt+!&0wHPE*Nom&F$j-ctzK;03Hh@b1YH$ce8#w;J9 z)5?{)N|Te*`n#1gjSmp=l?iB5mWQzOfWTY@B&ZF8S1b(T@Orc;tJ9dqTrcILhI+8w zj}opC21}g2!NZBC73~<}_+IhgDeVlpInOy+C*faH-UOyLT?B$hV}tt13tf0I8k0_H zL{g_ZlOB`?Dl-C=eMcGv_GU_KO^uOWQtbba;Jb$O58uRlux2Vx_lN9yGadXT9sW7( z{3-pPLw3ccV*5eCT&Os(9>*JhrmV+nN>V=TIgfbhCp`5$X-uTVwaNV2Wb)Evbg=$m zsBcaNHzYC2-JG0tw7Q$vUi$uUEZGQInjQ+pkHX`g3^Uo1F4;`p&9njGqlo<2N~3H9 ztun$ifUjZqJ4I1|8DqzW5fp^~R5XNwqk067G<`*uqDsO`0o0KhMy)eTDU8=+X$>Ju z6HM#JxnCvSM^X@`vxGnDBhugBr=!qn{81)&I@9n}#$nwbM9j45ZM0^TBg{2ToBmW< zmqCRrFZ7*@{Ir1h_Rq=u@003x$)U98S??sp=V9EQPfw=Zl4-6cQ@o)OqO3+pAmSE% zAbroFY9~5;1Yg5KSf{(4hlLS?O@8W-qm&v-;tU|B+M?(3<3uOBJGXswvd4)GYp=`5 zYch4~GWqXivervE^+b(>Yf3C@ZmjCx5H_dt_-bYSHrFEMFMa1%q#cPBpWMRMRDN5^ z&8P=ct&gNK52xmBOW9jf$wyN5!zukpiV%P4bje0bW->z8Gz3-0P)6y==F8xKT@gp9 zk#a8P-hHUNi1Q7oH<-M0WDq{X`enk5nuk1SBDrY$bmAQ5N%`v;`TI=W>zVv(r2MkH zIzQ)JK!~)>;z`L@BHY+j`7eT?-H}sw{?{OA^gV0v_y2D}&`j_03wOJI<%`~BFMjkN z=v)drOZV!)yCz686Y>M-SS5@ee@*8eiIms zyP#R{2!9dLL5_gQZ>WE}(ds;pX7f3C;Wvw4+SacM-O{}=Q*%Qmygt)>sCS5BS+XS~ zevrOQ{4kv}@!-rSzuzSEtE4PfjT?6m6YGOPDC{J2F1HvD^C3WYf5-%BByvoMjB6Ya zJ+TCbKW69Hu4~uG8{x8oxhA*WI=NbQm|BURUK1YY<=WA5f{Z>a)PF=ggYhv?89!+{ z3bVk+qVr+iP5R70&CI(9js=B9r`)AF*Zf$huhPA6)r8P~lhmw+d{FRWsh)>Ljeg~M zk%`wKzq%ZOWs&tkZ3_3F=;GSUCACtHM*$ULrWOavJuT}oVQkjR5iu6UuQ;dricm~Qf`dwzP>hZUS8us2qJ4r4v~}daxb*7QV+7> zSPeXXXsu7M<9rqr1==@4h!jDbgnE!3tZ}~Avaj0-8EC2{cZ-coIgdVQI4t4u;Ph)7 zqa@Xl5VocO|4I$)WY(S+gj9hmma)W`O7GLLk@U$bBlP2Te6*!%Kb`%cEg!P?jZanA z;|yW+W@syz0_Is@Tr0u)?db!Mi@Iy<>?N`_)8Vw2=_V5THP`x6aUSxn@eqc%?`Jic zm$A2Isa|<0-YlrIZSU3^Z#cftuNKsr+6Tmu_S?0k&kFXZ1@Fn)y*=-aoV->=@6~p{ zTWh~p+jKC7DX$i;J6vPK3bTP?W;+{u`qrZSZXt0wv8oJ5cK|2(_X&%|F5cys%WWs1 zqZ(#FV{@CAv@WR`|4r25arqraQ$=M6KjM`(-T4W~@i!O(fd~3&q>ok;F?VO>Oj>nt zj!5mBY{>M;ee9!>4~zVAy~OYf&-Jggle}*f(S^@a>Hzy1EGTy}z=;`3DNj(}!6PaE zVG)+FczD5bWU?sPowAdc$eN76w2?C`sFWIt!=W)?dNUsQ&zESDLzq_p$Tfta&f5~g z(E4~?h}VCIFTv8cs2AD$gf|!5Ed}j6aX7OYJz#-r*3L zNs4Q0^`=?`|Frl{t-ib#MTi{V4A#oC>&@G*sfEdLYoYb-0^Cd0;~x~#caX0V#p@(D z6>5J|n|idC)@j;;aVEmn&FbqcF&#_}4#uN70O~l#^u#E|>*PMN*`4prbI+BD)xuvC z9xS_(^D>TcBEE@M25FJpP!sX1o);9J%2Wba(XCtdq3X0xqqGTM!i#t-Y)6Qvh95W0p#B?6sqQP z5OyZEh)t5MXj5g4{;_~lx7V3yPZcHB6Vybk^m_vr9m<|bLMffeOgHg0$gI5@N|;Tk z*MTSk7eFY4TM5e#HhE;`S~$)S6@$Hi^<+U3@5#CI1@YXDWal-(Y8eZvc9tm!=Gx2I zIiD~9u_X1Vcr~8izb~w9(0S3N(oN(Q=%Jv0PXC0cPUhzUaoO80iWb;7N9<6T=HvX- zW$i|Q)WL;T^yn=Suucq@sNzj<)J=kbryua0Ou*AkNVKO@g%Hf>`CtLSsyq}7j3-dL(?BRKc zDQD^Fp;4x@mz|Ce^z3Lx({y~Gr+3bfv%B`3e5W-f5p8RPyoxiF6#`o5^vHr8K=9kCS^UQwYdrY*yfooNN zPUCTDmQI!_TpP6A(!SlkIbS{AA$E;5$C%mBa~tx;FQ2QPGxjTUZQ!0Sx5h2D9&Jt^ zlY)9A#Q(nRNZS70TXYHUFz*?{^Z$Rk*YJ_ zglpIM4PyDVxK63@&q{o(UX*xIjoly?UyBh@jeSone%DwN2X7Ef*9tkXF5_o`Q`AZ% zpW-(qgkWsXk#Y^&#tUViC5LP>1i*4&O)3UiYRGvt^4m3XVC{ap2B1OvCXv{Pxly&h z6Dzk?v2V4X7z0e&RdySg9BtF13ZC@j4?TLvt z-#f9d)snL|iR?y^*d+2B#lDuB_0x1!-4^~Vo!D&Wue0&XH0qb55hL1+EzmJ%W`PNo zB7|To&mnK@i{F?t&PgrXy>YOmTK?^gXcG)vj7`gSui@7A*J8b%$)*Yi_Q?z7Kq=uw z)&7TA-G}!|wH$2Zd{YiwHIEEjrIbuL*fynuItRlpZSJZ{<``26%?-5 zq3}?Zcf_Q(;~jYKK8<(ImXp4Pkg6(|$VnHoBZtM`+}DbVg_N==ClOu)eP<{K!2I!&$PjDq?Rql&h5vx zZm}%2bdq&s1v92$H%iDPbe7Q68`X`OA2WZC<;04bVlOvuNKiw~E54_f!rrn*$P?5i zBoJ%zNT)H;?$xEorzRvuhoim5RFr5*w0Qi5EzWqa?KH*#^U7=Jd6=CIVlmsu5OBdp zihxcMhsx6tA7fGR+$vZp_*~Xm3NY0gW+rg7W(v}a{XxK^KaaTx_1IE%0m9metE4_l z`dfwCm*cOn{R#~Gi}gM}MAEo*n3-M=LJ4!$~=cE1q+6fUt#T|o|u4nBha`} z*1hKM{;Drt^Vi6Db6a)O9v^hY>z;W1O!dM~tD7HJH_ui#APCGW`j2jM$_|9ll4+KsY)?}4kQ z{PR_wy-wEeF>rPJH!qIge66hCZQ$zH{_WXyvVP}*tN;G&6|#PgJtI6&G?V7CcZj!> zU-l02W-cjb4r2a!XyFk1P#;Z-I-=oJb&@(u=o!JZ{Bm>q*UFg{-gJMoI?3N**=Qh^ z`{V2<^#Rce_dwrx|D}p2>E*g?KPUC`#HKC&L#V%t`hSSR-%)KYR2`n~_@|+{UkA-Nm=YHRj|57@oR6MKs={93J{hGC2%eLm)cgaJOY7d{=WF8% z>{5Z}%ERV+LA3#Oqhos7TT9lq*N?6O#(tmBel>7Nlh};$#9F#bi z5S@L`0O7U0z_qFF#?{CpU?_q=;7p+P+eFQ6qQ=vA3zFfyApLtVQWdY{oz;fq$LUC1 zAWFy9o&({SWkA+Ik#jIV?JjRMM2BVv6l{(*wU1%{FT^{KnoIp>%%#N;i~j2wCapQ_ zLq{5FjvTI1C&-Ib|C=B8nLwd{dPb;QC9_+J(H_UWpBo%a|Nk$gyh!FQ6Sd!w#mU6T zXxAg0KGe_Gh?>6&+~4G^rd7f_*gX+ucU=}&3$Mvd@fpa(P;C2Wbt*t}M=0a-i8a^5 zc_}F-5J*87@~ZeyUrF(Ee19p97~RX6sA;^x$GK zu~6S=PMx*gU3H+Ww|_l%HPsKc2ZiP8Z?<}aQTMZ6A~LO+a-r2OH?=mjsUfNj;=rN# zj`($%cCXX7)eygP8CZo(dlqI3x1&K6hv+hhR7ZCm)}y-XdkWo`i{a+?26Ef`lpGn3 zD2xO#JIWuK98ouVr%^4H9lO+6sMp4o#!tv%*cq>rDLZISl!Ge%v%2>07ZYnH6epUQ zs6U}`@~laC3fDd)FHsLl@sKRW>xOupe^4&B6rjFKY`h5^-|wDlFA@9t@{sq1dO@P) zC~4Xkd;9xK0AfET)$heVOS~UTbCqU7zoQGpSyd`p5BePsH_~S?FeI zH>PAgR+z>+r1z){bBtrA@4wsBui4bEUkb6W8GG>kd{5eAP<(Pno2pZPvh9)TM9Vq= zE3E*7X@a*iGX@c8ct!UCfd#o6i!su7_iqh1!cveSN0RmR5`dGG>t%kOoMx#zm36nh z!%_CJ;uv4<|7W3IW1j6F;UCL;LiJ6t+p*rO_$x`~_90P&Aby3un|zt(O>gm6ss1L_ z+fuzF)&HP2g#1?N-^!*p33USQd0I7BXnAt53LSvp2^5%I!8-qmuosal?l9V86BBBO zI7f$*qg0G<+%3+_?&JXl9ZQ?tL>|oNTO%K~W3_hOYLkasmGz1}`BH;SBcK@BIA5Ca z-}WK1zs$Vk3b7m8jkY<9N28Bh)<5Oq4*ZBs+WUK^8|=nA?BoVKo%+*%o=N{0u}t37 zpZ@cOdRN%{5*oTc{h!$;E{ORe1L;Qx6Q_S?HGwDt$!a+0`M8*;j@rTc1R_{EqPz~^ z_6>N45nK1GmQ4k-d}Q8>$AUO1{$lI(I)l#j*BKG*Gi_a?b|!4uuY~v|xjpnXSV3UJ z2MGEK?K< zn6IT`yKkf|Qzfr99py}M4D-r(u)*oVNsaWAXV6p7MXqd_^Iv0d! zNed?2xGx)0fH^60N4d3LRy!#q968RUJycDT6O&9ktAps%U@8;yG=>fzi?Qt{MljMw z3BZQPk_di~d@>ely!ed~NR@+D4N)iU^{AlF?$xc8YR=BkqTMvZG4h8}w1Dhc zCday5Bk+R!4yb&J_heJB4Q4ghlrB`mXXE`vC4!@+Uihw^AjFTG$kdoJg!sE!h8adJ zX&53+`SplCGt|VzH$u&&^pgFhS20-o609F{fzBKLl$GKD^Hay3)?sZ@rl=xNgDn`O zVlsG71?B@`TnVa6B$EyCEF%6$@ibx#j>`prr}f%QCe~2;@h7<2jyJbfj}BjrMIro$ zV?C?N;4B8I9L_c-7)Mgu_><)1;FJz*Vd$CZHROm8yFa3U(Yg)>e8m;h6%m+&Q4Ho> z8MY?O^VuM*37v&g?5X1sebU)1RQa_csfpa`CXJ@ll*XAF4R<|FgE2cUl0|Y3^NcGM zvipi^T}s%$a!CC1V$bJ{>Fh3JnSWk<6Dt^!JwaM;8%8(cW`ZT%28GJN1S zGtA^|z#Dle{-cKh_N`$yM2eUJjlvX~){VyQvI{+6BQ+h!5)0U8aRQx6UpI67?%s^` z8E)|bET|yaeAuz!s!&klCOq5s5@7)v1=H~^!*5tx)*$YzK>*~e0eA->Nhg_n-7cmK zvO=&w-*d><=l`0of7tqcJ5kM*(jVB)`!;L*a&);`tV5Z~&7ePI26vvo86=*y8#n4l zMKuR}K}ui8aj@5jpH%DWy6Wbv>gIYK*W+Tm1~R+I3ZG6`+nf$`2gYfV(QB+dfgqnF z65a_Fdz#lsWN~?lk%{Fg?b*T5Pfyd0a08EYw0M|0jJA7?vd>o$)&Szm%k<-l3Ur%F z{E#p!7%>eFCXEH^VRSTnE~WqF{2j`E0Bt`{$lG}xE?%-X^!ysYu3>_Kx_0>eN{%AmoHl?&y!>3|>PHV{36H9^9&wG^VqO;L>y>Er{QF_huC|KOK&!Y{ds}sX zn^5*PAbp+bFx?O6$9Z#>Jc8MfYk-L>#Gw$gH&Iy|4B{Vv@j~*}EcWAv*CWfupqWa% z#;+)Eh2OKSx7?DGmURy5lZ+Dem|9@772fZ({zNBT=iM(7)EOs;$Qysr-s{@!ug>-x zB&fS7G;G(VhhQ4Dw>*{v@mW?0)oia4L^f!G>mUtgw4XG5w7o?tOf*D^*T_u=k;qoi z))G>u%fwbg>NGcAKg2=73Lm$vt31=0G0B7E7_2LW+>C&d0Hssi799j%0xc7!wjt3t z9%`2v4kXgmG)>{l)Zr8`oCR5B5MMq{-xzgUK9oBYt( zitrddmatxc2%<(1CGdXCaOV5u;$90ZwM;+jcv)|qk+&A}LgZoMnR7l|QwnX#y9s54Ve#)_*cD(By`vxrZ znCd;9zY*WgtnzMhl4eic;MmtYo(R@EHZPG$60y#)Su-^beAm%{6Grg!k2+@R6Ltt9spj`X^n#r z_J&cS<4mo4Tc~df`v3xFWTUv_R5&VKU1B=6|~0C|m>P2bIZi|9l%NasW@W9T&7 zfX{9tX4t59G%PlpT*!g(yD(aY-wD-ApyqneNja7RDhS&)bDDZ41qR!yoes_yfsEkO z?Hsq&5!;+An&ZtA{#M8_!i}BQHH3R`#Du&|*JbRSm&aiF6W9AaVbGks{i*AH=GN?& zn&+gwp`017$Ela7TlPljV6)sP^$jxdbJ_Nqtb0|KI+9+{oe)mD*W=#idfQxYkDLsL z={9?a?(>?wWI@4_Hq&bY9fMrr|JwB~cfILtk!sS6C*pOt#&oJ5x%OXOjP&Fukm*0T zr4+p$@&!G}>#i4ie{%JQE>>|F{?@RfYG{HYm*}WgLG9yu_>{mSR z*Iw|7H#zXa6>?V6OSO;lhV$+eZ=OQ{%bZ=di9HGQx1{GK=Mv21Zy;O{*QENCmS93e z0bM|CHnAB^FpGb_@7?QrUA4d(GR^ipy9=jdn`V=!C%jir%4_!`P3i8%hi{#h+rgcd zo9E2+=K1&d-rcxpk2E#D|M)Y{o7~3W?$)GaJ5e(|r|c$??mefKUrnQ0(_URN7^OhmrWqNgFxZC3mWHy>D+u?6eaZ#A;wgBs+V(pS{8NuJh9ykY2p2eKSz{8+`j( zKSng%?g!b7CfH06WP@QD-Hj>T!%yA_<$O^J(G2p`NeW>CafX8+38poek+A`M6#0r! zHyF{$ljE2$fyCR>Gw$E4GDe%U%JW`vlkGr0GENya@+``_zPrp(t)7MB>s++-L-a&1 z19qH{FM5d1>*3CPP@!4BeMD6gcb=JYbO>A%PnUEr=(xXP5DQZPz?hk0L9Wq^_@-Yv zUQCNmE=AmfNTNcw)MH$_CK#b0GE?voX4*2+h^vi8PtquVU>xw#!M&&yAwywjnq;(a zfZgZIdrXAy>@NA`x%Wja00+VY&jAXI!mI%0=wAfhf?sPIAN@oqhO+sCPHq|JEEmgz zr$socxQ(dxau6997V94B?91?cy;>j(q*-c{r($)ro8IYK=JJEXP&MQ)T)%pR}Kyz?qXFr=f@=VtpcS6W`ZS>dFMMoG(l0D-!6XHYM~%d~ghc z`^zVj8xl6ok*cN#@E$S!cs4vg=4KH89Y z)Oper%Nnt@I!%0~Dr^^4i*_bi+FDQK6eKkTB=zlt|4u^xIZ>u8bX9TI!1O0g-eO92q30V$Ly^*kA$2CZ=3~HKWSyIgC zAd2zK48f%}p6b%OS4BjoZw4P@rcBEIUXW-i`0dr=IU4Q6!88q1G&6t$)QXuDOgtH0 zOl20h0`9Aecvv6m5hdO{Wv2IcA-PRMJ!7gR-@H7%ITbDh z{Xh0&DeN-W%b-n+nuUjsIDjd+xfez51cOJD^ue&%%#1m2zeP@GS3XD-qNglBd1kW4`%C8YMTgWB;3S)><|S-hV@R-$z-ys zK7jGRyjplO{dpRAUimckChAhM;Pjc1v3!@gbi5wH?zhbDbX`02RgwIy&@JNHlnH{D z-H^1ePJSUttWSAPazW-r;e03Q)p$+uShzk_J++Df#$KE9E=`4NQvnQXc>^E3SSHtk z>&*OIcvF&Oa4o!H<2TCWX4#`Mf9yZGndTtwNfByKF}W3~s<3!>s_QP9d_boE-hUe$ z056Kxq1Bu>Xnv6{&iWLJ*2lgDgAjI99gt|(gtvEw) ztK31(!cgvj&YUXVB>E0TkYT33w_fNh)Ez-<&A#?18tYmCa{+#xYlYY7u9EtQ%%SOb z?ablnZf}48IC-(C86331ltSW$0yW=&vgJuBj}#|jWEX$;prNzXG`ox1?}>VQ5EBE8 zbtq!qkj`GT4V-i^mW*c-2#tNQVHVlg7mjtHz3QLit=8I*h72by@ zOcsT!EHbd=6q8>^w; z)kG2<%w*4J7GBks7c8AO`cc?uPS(;q?GwhkNwos?1 z*}FMtyO?O84>dE@yqDQiy7^@%9+7MyN;3*!w7t*_l%ZhRZ@p+U{GBC$L;a2@l+o>2aASap&Vh4c23Z^ zpBSeHmO6JLjP0?88Xe1?`Xb@nD2zr48%iV&GdTU}bSf$F2b&ifu;l?J3wIX)~(hz=GQmr*}ej*3f;V+j<(T6n|@!+zY{hb`r z_*u+n35e_%1|+!1TG5L$)G<|3X!kRmBjQh=lt2^_ayoprt76DU5# zd_IARu2@g1=uMmGToFaK(j*NWEVb-K)48Nr+WNQuV@{;|m+Ac{%?;+z*5kD;Gc(X^mZiv^xtFZcq ze^S;*CBrS;h`Dn}Vki}|K+ix_Uy6mkQyz<^Y<{}Y33C0v_EX7depUZZZW8J{f+IOq z20k}*sJ-P|X5?8ZR?E}&vBHm}^}RZRDDtL8)#TTqPs_<9wxFW1Q^;o3`ZRC^HgyxksbA7HYx*oXiJ#P(~%C+m1?%(4i6gVaaMhKy4vOpq zet>-h%Kom%9b0!;8=TidL$9lQiHsQ}SF~UL#Ua&tg_bRseQ`pYei`MfmP6E#EYMst zrr{c@V52en9R}CedqT0Cu6Itc%f)gTtZyzU(t{{XV?(~&V=i}{k)Wsz9rB9)g2%9h zVv+yZ1Q0k`PUBT$p^01Qy({I=EYFU{u_wo%meGG@n0iWaP{*9mI761{v|h$s2B6_R z4C9!`>*Dok+wE7+RM$6(_(Ib<*+oy5w9anmp}b0T4&v<+PK@-i1I8*8cYi7|cMp^G zi8C;|##*)Cmimuv_I^`h?aLu3y-}^0UcAk&3sjy?rVh$FAKqS{C*LS}8-)HABr}OK zg+4?0D}}$iJvh^6rY!n2xT_MUtBVjNG4mRQtoRLg6#ummlU@{nUFklP&$BAR$zPq|51opZAeeNSwRZoRowe#9* zed}B3VeWG%zSG&LjXY&p#1PwT=7-CrKA%X|()qQNhsfI$zLA}TA`iu!C~5Sdu6QY; zaT`8Wt|gfUz~x4%p&+JXjsJF-E;D2Sv&Cs_(|WN$?2^{w^+g9yPAJf#NH=vXbg@Zc zHYMz-Qw;gSk0(UFrmD+Fr4#7x+fkpKq$gL1B5ZXf6Oy-JFhJ78d`6@%3+wzMI0a_R zWQF2cGM&JqUM2FN6~IFei!0SGN!}67bg%Mdb2n^7rlH~$MFgF!dR^skmDjb6ur8cz<*$17QA{e z0)J93mpFPM!nWI7F5>T75MMP@^pWeC=<1JPY)P*cTOA3EG#5qlAr__z7l`))VU|mNB(Pnvzu!O!Z zY{0q6yh+o%>aOamj?vvnD+z?>>dT%p1NkoT+lm3`^t;3e>(x?OwxKU9GEaFC;0rk1 zO$>gMHov_9+z|ESkt9;JC!)S*w2P5MbVTK4X>k+^wMDc;_}0adX2iuPwTdV)31^(> zSKL;lYX51+rXi=jA<=hR@db6R~f%ptahZ${yo`cyRA%XF?Sx0?8OfSL> zqAD7|I~Yg>*FdC|=+B~KwpgIht(}c9lcAzA4AW-@<%Uf&hWD@)ajjjA zuDSd8%H3BB>wa^$lR)2D%l#(Waf_k34<5PD)a-&ig5DWr3(s$`9&RKCE0Mkp1TN-8 z)Zs3Kt$qM(cg&bm21^uxCKqem*&Vxq6ozaQylxmlMqUiWbWhO%oKEW`Xn{3r3vcrbnr~)P(sBmJ3ehO8fJx{9QRc|#m7;L9 zh+bvF^i<*WM>6JM{_oJefC@M_nEn;T5x25P*&fLBJA(a6!vubvjAf&lSUh^9b%z10 zcEU}-a83(J!C6^|h3r%WZ?f!AHBNOZtPHXR*-W|-KUsk;>bgO06$?-D7k_CVp!Jwx&bvhf)cyS0i zlg4RS4>^G{jIojXD~i%(a1tN3%hlN!2@aX$VT`yz!V@$5=zxiJ2zA=qkM- z4ZZNQPqEHp)t@8$4xO8PFj-Jg8DbxSB#%uzyDBCoIPTvX`Mt6F_hAQ}j}dUoxkg)t z_8M#rkd>N7G@T2XLHQoOrA9ML(z}^fBRbicEF}r(3bv)D6AQX)ynJ|2` z(>@VtiMbm|LZRkV!g&!lTk(w);fV~_OTf;aM^qoR3>MFNv)oyXU3Uq_=$p)lFl01k zRAwu%nLs*6u*KOjy)D)i47VnpIwB-(ums%6VLru%@)Nn>Nh4DJOwM@<0)|8+Q=}`H zq3<2ZbjYg#Lk12bn7=z@hsrpuvOToax}Q0a=J%{BJg=g^QJG(Xf-@f84^%w7ALLN7 zoC`!In(l*JM8#aV3ca+7)gjCk;Tvg<`my=Zhh(gci$0Ay%XX89Mq)M5RB$qiSs=^Z z7YgoJ7##%6sb3C9@6Bi-#U(m=u{Ps=>`$yWMIz>l*!fz0S-b4FY7aQbK3Vsk^!CZ( zd(z$~Ti=uZJ~{sb26D_v#1V;snzJ)luoDBtd?T^To9f#Vtr=+V-DEtPl;RbWa5UzL z*q@d9lX9;Hq$r~=$ZW8`NxUc{AF7&<)W6>91-H7vt=-4P8(9+7c02xd_1JgBG0epq7>y>9$uW@U)|;zm@S_BpWHD;-V3ogB5D#~oa3%vN zmM4a0h$lp39ASzfB3Lg+nvnDt2quy~+IVLm&4E3@CRYd9RWZWBY=Z?wV4xL;y7HbMBI6e%1A@=)s(#u23;RF2ny0e$SKUeN!_}sh@8SHPh+H5>){Ike z4`1gf!3oFaC#rNbQ((J5Ovq1Fd9P5&M++B-DfyW#Gvaev4v8;N&0fpE{QMGMw=9hx z+j*H1?}+su=)&0OxC_KF`HgCVH*w&&{AM-9n>w&5b4udm{D(??q@vYs<9?>wBwmok zpxaz4E?4R@MPGm#fxeLbqpCc)zZaP&69;v;15aM}|NF`92cE3-Ki)~tRnKd8W$vKw zJ@~EkUA~uhU-hYHzpJ{>F-5WAk9uHb*M}+mH>X`R`_W8_C z4eru7|Kyn``dFZW3`4imXLiHHd5HLesrf!({*EFJM6tLhP^#2brj*r)=q>zFB66Mh zoxPm{xa-+*RJD6#hhrVu-I+bh1{ZE-2>kYnYIl5QlGhWY^21yVqn?KM% zFGtR74N~BbRR{jS7GvJj65LjO#(Ypcz=rCT1Ak!Lvvk`D$?X13&mPUg|yLyoF`jnQE-lWT$B7YG3D%#)#l7Y!2uHt#EDr9vVa zM`4mr8sVpqi)Jqng?zrHHeSt&BT;B?AtNj8oDBr2Ny{>_t z{9rZ2>m3-D8JZYoDEVVj$VTjDOw)|;20MAJ7_LU(WQS0c4&^b_r#zI;2J;|PIN=q; zQSUkdinV%6JP)uTmExAP%5Y0Ekt%|$*e=GZan(7!F473#wwy0 ze0~;P3vw8@FIG$TXCX4zU7`FunP{wL!u7JCn_af8M7dg4{mN)MoNmgGR|BbWLN*WJ z10mGd#JD2c^%+jalJTBZLHq5Ccj>-ORXh$>(qK~J36tp$abCBq&8P?F_Y@1)Ct_e zIc_;VaYFWZ_XL;iI&rc(rE**5)G|W<=FhP(9LyFdIA-zVXtwEWK3kkE#&#y#m`%-= zd#__{VQ5G>K0N1Ywlfw#AshiB@bUxg4RJ|%sv3Rmlw0m2(ABLfjT zu{vIt@p5@XD~dZM`Wd@1(}&eVM%w8ZX5Db1Q|ZKS3f7z*`f{m;z~P*wfpJ3tJsx`6 zTIYTPc6!S!&5k^YkUZ{Jg!Lr+Xh`=H#SVx2Nt+(*rNl@Sa>Uzf%nOhjpm)sg1R_PD7A`D2l^g9oy~!{1s4C{ zqsQ>gn^3!;GrU4T<8Fx1xKw0`wbYPq)$G)JWx$y|GT6UX`Qz3Kk9I?F?)J(b$>5I% z?cneXtlM&@E(QCSba3vP%AveNXRX-2It!f@&W3Kd&1nv|fSi%>heh}yfs1MGr^0=n zsMN(@(o@3EQ({YB5IF*8C1iu!;N)}~TTL8zmQkbRePHF8YlZ!Fk%xTru)B$lsBaMw zM$kJ&#+>M?q$&TNjc=B|+CEMmh=KKHcaTz$Gvy4WrN#tJPw&=!?Y&Z?Y(cC2F<5 zqGqwO?PKfZVaL#+foFv?=-|A@20!>qCH#1t{4+Q4jyY;pbas4}v#7|oFFP9jwL_C| zX7UXLrJIGD3vZjf|7}`dC}Kq4-X`j~ed!MIHK?#Uk^jA43coj7nL)A1v@$oAp6Fk6iaCv4f1ZIEM1A_sZ7gQ%{&h7VmH3j<#wVWlTp+ z@+i_WcP^~HXg+mT#9ld!QIU!5czFh{`Ern&;;amf^^OToWSiph-N!_x$(Ib!?*<`H zPA8m!#9sx|S#nvX3oqEZ>7{Q8c|yay^2MTQTnlUkN3>?0qD{U!(F}aw#qj-ms29!= zrYWJ}Ft+a`{D0@l037yZ&<+kNNiZGuUm&^)wYf1|a%a}C4*Ve?^qiewU9hGWNuF15g*W}u>YYOf8HMQ+EYwFwU)|A?d zYZ}`d)|A_u*0i)YuW4&(UD?snzH(4Y=gRJuu9ZD4gI5k|>0LRjW$3CAEyGv!xAd(V z)iUyOY-E)R#uurBI_LnseeiY&AtDd{yXRBa*L>>Q!T0^^Z$t9%@3&^o@871;CKzI< z91xpuwV`8YU-^HUKO2Qc^$+kl2YzFlKk)lse}LvZ`=Ea;{44*Do(6qWkxC|BjOvC` z<%G=f@|5Vwcrz7gp+-9F<_1V&8@YIAW9UB{sZu>;yU|YK=G5)22}h`(5?mQKHX1dW z(V)({xiNA}WBbjG=n`%adNNu%{g5y&oNFK`Xg44MJ>)Wz#3Yl%D#Ecg2T9!97;;kk z)vDiX^uFKN{5_M%RYH$9i4f|9L{@=5XbzAD6CV>32!&cSvfyaz6g*d2&^Zd@1mwwn z-P@G|rVyy>z@t&VS#U>wAWIT8)v_Lgg$vysSq+{?Z~MANXFGWQFiSsWTVJQPh~I&# z&2vY>{R|gC1k*WMcS!oMau={w0MO8*1)%+$m!OZR;V30lhkY!LxjH?y#aVf zdxfyv!!dTHbDu_WMl973>ZVuaONro+IcR?;im0iUzCGjA*%v$3b?A8_S|l55Vno$b z%~|YqFq!>R*!#>VBY>{RCc1M!-8%JwaQ`95^&idA8Sf61p{!M4`Hfqq_9G>T2nc0) zvjD&TmT>(yZe${8{)2G0NOy|4{$J8IM|B&Pp4i8qdTx!q{GepQ z^X=mf`jaTAKNjkbLOp~?fAIMMo5|r}Irt%IuKqx%0e5^016p>AwAbisg?}AkPSL6_ z<+6PxrU`uL9!#0zrgbN?az~nsiLoebGK^#*4z@C7Q+os&U;GP{6*cK8}r%IAMmB37w zAm%4cQtt`5PmmPj^h?#mfE&|2LVQ;8bo;bJNaGLHM7>LeyVPE0p5_A^cwI>yZ=Y=v zJ<6f4`IJ6vhM^Bx4#RG2wB56+vH@C6NcLD zM4C=KBJA5lxB~;=he0u??9(#Ex<*VbGJC}Sn~L^WB9viZC!o!VpPcNp3uuEmnZ4>j zdPUGV#VD2rjw{9{4!)q_~FD zV_mA+FiDifw~1~_l-neN1Ve(e!Y)G|YQhG&PK!N_&_9QOzlO(>$*~jo)DRwuhhXa9 zZ#$F#E#|uAP%T#1S%kxh;Q4|(Z={aJN)mV85u_6L301`AaK6ExpC}_>4QKfhkJrNA zm^J27X2Fxex6jDbrTaNKlboIMlfz=Z@(Fu1M*FZmO-0y$5Bu*v0j2q0 zX?YwVJz{^63J$fwKD$pGY3T=roX5~VM_k|_D|aBBhXsfk4@1OOLT*H^K!%e)F{-*r zebT>B%ZHR0J0N2p@j~OP-Vk*&66rpQ2?+vKe{epzI^W!yQ;xz{&8{;NU`i4T+PG5U z14)~!v+JW+Jn<5mp=M@sOjn+)>EhvfjJF$bWi$ii%K~Al2*&$<8$bzjHbUAk@wmXx zIVGorTJ$y28Oejqc6W$JI`ka*sBwZNxRG_WVBRrKE)y|sL#Y}fZ_Wn7$G2GLVLUVx zEdU#EXy&r<fE zSsFNxM66dCZ7~k>f{2~MY(S7^UyH^<7K?u?7)V8EAK;x+fH-|wBnV=?#Lnu`r7?Io zrK1ZYcr5rQG|W(goE$pWK7@NW+3h#ij>3-xhLK!Z=K>$4R(nLDS(SBDLf6w1jmKcC z<8l_JR=iMfMnK?I%v?Cc`_YIFV@&dFyZ^_+eO$CYCZdm0b4l7d$ONY@hW8Q_r(i>C zoKAPDZO|Vx2wtgxSd{rqi!yMfI$!|(R|>Tqd#mwR!+K}t5{^BNo6esWiLwSVHi~-; zuA&uQfU>wv$lU?}+3%&8j0J776k;wSFZkfD%KB-K0BJl@{tq;3O7&^LXs0^6Xe!hZ zsr74uf&SdnlPv2?*vXKk6XJT<9#kvx3kn>o;+sQzQDWg5)+ zoXXmc(%}xct_f<$>toSo+0q9NmWJFchXg@tWjk&@x%SX_x8SzAZJ>)tE2{0zP)N4R zZbvW9hB_RUPOl4hC9BsZl{-w#9DA|7h@JvPtwU`B&7&Q8^OeUm0QsyfM;v<4{fq5o zrdMGGG`b7wa@^r8nCt`JzRG4@9z&VXV9xicetV@_VUJA@isnPaRL6oRqF8ubJ&tRB zx$+#}*_xw9i{@NZ;rBu{jJC()M4PvxemE+kSwBuZ3sc8=wA#p6@0(F}Aw{|vIqaK) zolW&_U_AlYyHU)f3A`rc5PZNHuy2)+D$B#{jSkOVCe%-bbDDfth(TczZPR`7K1{H0 zI}E_om7%G5OzoDq_P${Uhg7gX#_-fQJACV(dcBkj?76Np+XFs?{;WNh$VW9UD2!Si zGM;kMxro3nh~VvH%5rzI@%6#T^3Yhw;D}M$2jPRoWaM0 zb6FFJ-YF?@4rou7)DJ56M=0M{(0*wD=W6>L?fz3G{zuh+1Uo_<>J3cIdZd%ykX{`h zNO#zS8Ix^B<#0ZHRHfKnGoGe5nTC8evs*J(@VQWmvxE)kZvKzbhsYCHO=4;r3LB0* zMjjRC$sRpQe~$t1Wd~KNE5AS?y9jUfBJk;+c$=6|V{IeinEo5qF*)FL_Gsy8Lm35erxOJA$_)$zDPuWtrO4TPoKkbZ9MXkBsQyBeKvXsVXwD0 zAq;~%jGhr(bdkAM+tchCd4~Q1X6nZ zR@(KpU5o$bH11pE)Bs+>`5sz}(Zm&(siW+}LmiaLP8piw-YDGZ zaZ;JC57oB_Lb?7J3W)0kqc!YHF*%hnGN$`NILbH^!mANq>LLk$mm5n&orD`-iN-pH zobooH0%GgEgW`*TdBcKzF4*s^MA+*I{>bi?>n%diSliv{1VHa^SHS#|uAg>Cc*BX@ zJA6n)#S%4cnWD-2f5In0v;%De{+GHVWPd4SgphGE_FzbUi03mx$PYu}A5P8rp;*4R zE;1rsEQIneIU2c|7W+rX{eu(wtJ4548Y6z0KwkNOIAIle%2{72wH=b~cxccmdLYFT zYfOns*PhU>_B$3 zA#fv@j0<=0cc?bzvrKpDrbc2ZJO9aj^}&6UKDjTYlRi!>!y1N0yqsM(3Mc5c1F8PY z-8r50b9U3qQ)R?G2c7X0D+H_c`r=n_l zFHP5^bez8oMn;GW$QTp@hqoh6$ zWeAira~S;3LY_XAtyX08A}|`Kf~QL94Z*%v5g1&IbcPBKc;_g_mNxuwQ_hB9kK;F2 zZFjJZZ>T$*1q)fjiFRYKuMNG1$F#stNEbz|;EmEttc|-?+CR;GlfBH{hnQPUv(q>XnXE8fBPhph)S09_qG>}svZLhE6@(6R>jPEHP|ZP!?j znls~dI%u;$wu8p{K&8#zz@f&9>~*c@^-$g9iJzi)&Zrg|YvD@=ugTPn()*Sj`?eW4uC*gK*y473 zko4~$_-n*PMeY_tzTEUZ+Z~0bwkG^0#H*Ic^0OfZtzJ~nMppx21dVX%CKsb@XSpNU|r5|Ow_^(9|4ypl-~4jX>dJ@!jtw@rw) zUzUQyhu&^18<7vYtiS6%Wd4i}v0hGttaL9^_QgtFq{7b7i|f+bCv z30#{M8e^aF6v<1tMC7n`-QmJxui@qVzOa8J?D{x}?RsQ`p9?V1Epq;HwIa&*N;Dtk zrkI?mbKpgvsb0k1Sh?udM`b-K5QVH504el&N_`1ar+lAh)nE8z7>VtgRUc^KOV4V@JnII37==w%P@rAMP)1-ZeR=4W|X+LOEd zBfb0@tFl{@e~Sf_{YdaT{T#koGvtDY(9cz$GHW&r493A4YBA4HgMcsw*N@J&sE2~d zgr?&9;OWe5+U{~ohsZ_260`EwPo57!+wke9hnT1T!l>rf5ah_pmi)XO`rP6m?E)Z$nz9hrU__dS=(2B zT%genkKpqCMjvHE-L<9lxNG$^7Pi9i;fwXbL632<9i;$ z;a`l14v4nQD0Q7kZV{>OEPs{ya7`ZU^o(JfJD8jd)sMkSAYWDDp#r9)x5ILxx{#>@ zV~Dg{W1xOU`GtjmA0%K0 zdxr8M(f3uVl?5_(r4*M5KFj4~uoprPNpF{hR{Y{%izsk83$G8H8^PXOu6bXUS|N4; zAyMLT9Ue8r(+l?Ia>Fe!l8AiKt4)Y>{yVtMicIpq5D-H-`#lk<6OeuoKNl|;wPc49 zJ5@5+?-2+6Q8_g=ICG`mq2OHF8?tT;UL?F=+1cbn1BLU4ODSVzx6zs1uS24>)*4DggeAQX?$^6(Zjm~{U}bT8o3 zO#tx9l6g2nH8A{{G?Ij16r5=0L6*D>+v4{IatYHDAIMtxVSM7W9${G@8v{pz;Rx8i z>sv1qQxSb80X%BtVtn?P;>=9kCZ^GHgZZx!YhsDnIwYCBV_R?<`&cj=`N4jN9UQtp z7Q-xeDBl`pTOZ8F#_xHC_*kk&`n#=vB*=3;x4noDm$=Tizv_pt@$Ihw3-%iE<1kt- zBnY1O!@2NiS0>BMF`hk=3A;8Dk0cO60ftxb){OK4-a0|3mv}P4ppPL1ct=vk3JSmC z5s>%!EC`L;e8?Tm+KM5^ZlTR2KNblzHnBH^`Yl3|L{F8~ZpsdlZdu zZzRM1H>LfS@avLJ)yDGQ62`7N`tCdyz%8thj$&g{3=Azp5wknUN71abKNRv=Dcj>b zXq-(RN5mOQ4pDrI^;8NJUo_$w&}g{{!s@`*%d7*LT)i4b^LtNjLD7W1=|+MbWi0n6 zAt+hf@R4<8BgC;?tlAB&))c|yNdv2o8P@<83H~<%+>ow|1N|Xm^>R)IH51|LsaDfs zj3pV~GC2z@*RKuyX&u_L^8{ydmC8QE7y)6Gsg*xAA#eFLQ%>=rG_6GZ&Z&1C@L+(| zFJ(NN=uc>{-09+GAy-*f8;CcF8|%I}hlNH1T++tnYN+o0z!Zz{4Fj`TKP1qNr}=^` zUt_Fk1GGJqp_fWLEVyMl<{+_(muwS@w;G?vZzIog=neLMuwN1ER|b2?E{K}zeqHB$ z9J;)02$&Pj;cVs@%?^hIlW!~GD2;;?dVvz|CV1bdGGmag!{;WiC*W{iY*1xFWj90` zJ%GK28WU};B(x?9PXlH3d^owobYDbXqn8LH1V@{21eT$B{wz7qn;TjbT__LB9x7Kv zm&?`B!;?;|7<4EH9?(hwQ=+p(jLIioBcc=o0pvz8bbv|1efEX!W?(Gr>{jM6jKRkIDJtX>sEUlHQ~iuSUc@9^*EUE?iXU^ zU$ti*ETepk(;!#v&<|$yXe8@awgj8;Y}tmc z+VE6p8P{#B$-?G)4%M9;Tw>fgj^(zr#adgfZ*yZ}S!}5%V7_gkE47jwVIahU2+L@FKLa(?oeY&BU&M zLF?CPGocrBo?Wfs&e`qiW?>+_@>bAfn1MG97abP%$ArSCx$1K ztUsc6gC{D;QIAela%75VOV!JMHSqhAb$-ZXts~anYF!#4YdBbc&2`^^1R=;DT6<-3 zxOow^5ZTmWZRe&#EB?+>9?gV73D2u$biw^%J{jF%GU{Vr8)V&pjuxl+&t#OzC79sK z-?Q}|ny&jjJG#dXGCGBfPDRZz(qy!Qj54QK@CHGTO68MLuW?C(XiTvs8k()A_?i?1 zDp`{v?sZ0KlQak|Gx?mwcz_4ZXrP|3MP+acp23g5hLrVD$hFRQmF1?<_pq+=UKO)n zfx^}8W!2aV@nMVfYwBw~D%YBTUk!&AeVAnh+?AGVLI(9(cc3fuTU*+KyT&mVb634y zZQ_cw7&hceqQfhg=2RtDEQVq1R$Z%=Z8~;aBR5*lNQ&4~Nr1ahsC+#B&9!3>wTX->k z8HZGgyk;d3HNJ0YnQkP*VhP{;d{W#uEb@CxHybPvtCMMkJ zuB;Ga_Us@j_iAN*H{1hJMjW|xf7*|tQZpZmpU60Dqa^?k9mWs5tPeA*^;4MN_NaTJ zyOr3Z*6mg+Ecc?g^>BE7CgJ9jex^R0j?^-68)#-hsAa`N-NO<~!^?~TJ9_A3dSW5# zmmT?YF|%%lt$!n?7WxLu@<@L=EVM(y!{tbSW1$z`069UA(Y2%1I5^)1?3wmT|JXX# zgVDLNMy51y*n8_KWHoN6Q%RRB9(Ee>{J?X8+Dj2^qT(|~z$P6SL z4#Hg|k*}IPo|6?*#)%TMMpgxOi&5$~5}zw_PXZ>%r%7^#^_;he;d>FmI_g3Nw~eUJ z?T|_ZpBnJoGja#ze!tKss==t-xY(~xS6|SG>!wmy?G=33cZBtx*M!?Q?=rn@P2~fY z(X=?z1dWFEXYZ5dV!FfHS4{K%Php+s*UQC~rWW|`)|+l_rj6@>_A^EIY^4#L?^jyH zD+gM{&#El~7|vJ|BK6=F0n+Uh%bj8E#9uXvsmFInG54z4X1}7utLkR)3ITiEZ-lIE zk@Z@QuOE<+DbP{5lVFyK!`zdylQ#2N#A_U6FDIr!(H|t;4w(uy%0$G)%@c|r%-T@8 z_2@OxvKkj*(sjoI2XWB~t(B9I$h}0UPWn^alt0Wq+9;oD%5F23wv;OrE zo)dxCJR}gCzbmajM>>#JM=@0|!a;e6PmkN6PnLr!IGu#tMmu1NUrmv|DxjoiAA5!I z=+Y>$>3J&4Q?W2lnRx;fS_Su`$D6ULQQv6lXbW(@;HA-E-~KU#KJK;Bx;1KE-A^L3 z(cQNDK+2EN>tu_~4{+u3Pv+rQ#i~!gni-Q|etUR5LT&Z+Rfk!osbF%M!|OTKsIRD` zaKxum=(e8c&A2sJpGILkpC>qUXwbMu_y4X4RQx}#9J=?)5!UFBPcrO$d?j33C30^11utIJI4BYKPYMg@~z=Y6_ zB6mP$Gs%cfXozg8!l{dPgyld(wlNqP^@E~0+u~p^e^|6p>wx@a`8BCg6MA_`N z1=fvDsExoX6&mnh&F16i0AM7QZ8iUp)}3+meo#d~ECo|ZEM8j+9~NH?F%ZSqby1A) zsTarOmt)yWV-Z_j64RH)yh~y>OBeVAlDpy&y9iY$?a8yviaX~tz|H`5wGVnb-xeNP zTdUA062uvo1Xl25_nPH z&gs2^<&haFF#ItslL}cIo$UN)2Ai} zeX6C}r`qK#5Jjd>;Q>%#DWG2!A+)1Qn|}40WD#d*F31h|(mr{F+9{llO8Dx6dWwEU zZZ15Kn@;O#lap5}IeA8>e`&}gD>?ZU5F(jCaMTJT0vPxQG z_aVf-kr*QT{!~fpEuH>dkd|R!ly8z&bs+j#bs$^Nte+Lll2g@ZX)){ zO=7DYu>PLtq1#~Ibq|fi(+M-jnQY!(71_26-C|^`9(oC1^D2h&U^we}g}1psSJt^n zRJS6p$7%GOp6J<6AFu&s9zV2V=LkFDc9`3Wu)-ZC7<)x8IwzjLp^vi-oH~^UJ=7$JIwokDXm+RU91_#G0^b#*#5UK;KgR^ zVP$2)u~AtQ^sfZk=^)U!VX(a0w7V@R0Y0WY_9PptFP<8_xZ1wzQ&BZAiTjY=W> zwo(XPrVySuPyh%rp6J^D38nxDBm>6|Kl(l?fX&WQtoGFc=tMHTrBVQ=yux?5tasly zPzWPF`4$OQA!zDrDxXrXuM*ZDKb!XpQwJ)u5N|M*X{v0C4yvp@sIr$KtVm6y$R_AA z;zO%k3joKobsQ4F(Vb4fl#&SV=T2Qq) zysv_MQ0iTlOYDj_Kb4P_cq&$*5 zw3@ZJ$-}+cx;(u<5Bm%Mn)Ii>+zO50`kM;=>fa$5xSn>bC(}JTjA^+m zTF9WrBP2^1iB;zFg-|M#OaMtRs<$}f8r-Y^qne@sp9~jUEDvS2TZ^3*U8o%%2Q!`D z4kKPW58GM%U2N+Xm}HFrRl)FKNqa0JXwW zzNiT->J91YtsBC8)d0J2zoi?_Rnc?IRWtt^Ry;I64J@xnvw=yxpC>jiU@@NEl-&$h zL4#Xc&UU7lwA*<0UKnYCBK$^W4^OR59NuPG!|^NfZGJSMjLV`APpCEv)8YV%4}#+~ zg8}foTsUv(<~=&QTYGzSZnuVpZl-QG!8fwZD>;!jj~I)4@JQ~!BM<7_kF^)iyiq7=L;D>PaWq;$9}{q;Xhu#a!!hT}E>ksPa9i>fN|lYGzA0QpQ4wP}!bS>2;8zHKFM!qne*#hTj>$ zhHf`;CFACfGO{EHu1X-WcPbs}CzV6T4uCECd2QVbER8iUDyJcT6q%1jO)482PMbI@ z+^N=8I>4Js9BC5202fXWr9cMJhz|>8RT>=#_w<8PeMIWZY2|y2Tip3Z>fI@ytaMqt zQ|ZQ!S63J}Giyw{@XWZeB+Y-K!9k>bA(E{wD0d3oqES z;ThC@ii9IE_wOQdk)%7%N9iDwHowaHAy(>Lbnh;G6paCdL_lG#)NFLO3?i`w zSAW9fLm1nxlUhzBBexK4NPUq~I@|dj!0_B#d_j}0C(1(14u|Lt7Yc-eAOJ`mbAp5L z!BglfJLk7q57;GosZs825yQ@Iv!3Md2L5JXi>p@ad1CYw1Gb%srw2OvjP*LN1HFtf z&1P)Gnu!+IH)saa6%*iU#~6jIQ7?I5XM*0?jb(nG^*(9UiL|u^oh0f&l(*;|n%uq0(d16oF33|4 zw*b;`z5%Wb(D_t zFNUVy(TvU*LizW}haGGE5ikr+6$iCopB7wWZDEKvRe7Nn)};)l|E@Z39?er*;p>QDKr5?bhA@XE2G_R z*spfsC#pPu^U?IlUINLb@vQ{LW=4_%Q^21LV^5Lld{2CCpK;pQA%jD5A7&nXiP+e8 z+(pt_)xppJnJHcs_#0?|$zH9?J{6r%%az>tFoXyAP^I$w7r6!^nnKcQt}J%17kUQN zSY_1PhGDEj-=r$>#RRD%YOSK@MuRPD=_Tv!b>mq&GDY(`>;O(ZT*NVjV`yb$GIoGq zRLba0#w@*r@dsCER&3v5#Rl8w>y^W>;E(K9tQPuO%~aAa<0aZ}ef(MW_dDI?~JZqy2# zDQPI7D|d&v`|H8oq+)yKYB!Sy<9SI>un5_~jSE&_r;5%m6D@wdzizE{uetwQ!oOGa z!Ew~Y6vUE}Lo2i5T66!B`SsSL0PH3iYfuNSgLUTY;gHEa$=OJ1P%?v^kSi07y=)Nc z0oE4Yf+M&=520ojTTgRe3KRJoqR-sfs;8Md!J&x7=FWw@;AL(ZZ(h(EynydrZoN@G zCu4gE+`U_fJtDQ6)%}WYRvvLggd{LSV-#8eHEmJHpG=DXi4&qK;=Lf^x4Pmr$9qg9 zUll2w+8z}?&>u$clujGH!|BY4y=Ecb4U(i0I3oIAmQh68wJ+g^|24x&-(@Zo^h?wo zYTptoT_*KYs19d-WX3;&{tOHv0 zHilcCpd`!_w19rvivwC0*kCu6N67i^oirTh8xrV^X*ZKdA;;gi8JUg}e zECY2n(_us@)Wc8+nn`4?5^9_?REYzET>2MF4%AYiUU_o_ZG#y_XK5qj4D|1c5J>Fa&I)BLi z>-`K5ES!uf8}&t5Q%R+Tn2`wN6~4LO=bAP_6W#MFc&V~ANe^b#+Lr7DXeJtde7hkTBOR1|Oi2N4`puji;i7^&Q; zbir!l8B5zLS4ORI2q(O~fE|CTq0p&ANIaRg^Aure_8R*AeU-!L;E%*!Q+1b#Ri%~Z z5_uIom@|p=$AL4L0Dy+o6!_w{KtI7OsMnNM5aJX^PdYq}xdzy6ANsmU(5{Rbo~WhT zjbxWbBb{M<8bKZ8S%Q?rk!XQTM8H6WvW!U~;S46y(0F;49PWE4g?O^4n~gz0goz1+ zN91I)C^URt$Psi0hh!ke3uO_d^>%d&YL=!CdE(Y;2z7aFevQ)oV^j#S5Y2r1;c?(Q}*j_mWxrPU54NQaVd3GQwmQ$PFL` zx{30Z1CNwJI6cZvhUx%c@>m%tFu=7Wp+e2@ z2AX7)0$OKkNn&IPbO*~B4b}x}fv;9H0qGs|X#I@9;inBBG6>3@j1f3Z&#lMQv#HW) zkJ9556xMCT?4fM8h+Z@4Hl0m&|HJ%RV}5m*Uu(}Eu=LAB4uD>@6egO*Gop+JKa9Sl zIY#_sfIbY!rdk>^SI7HBHWo&2?pF`mC;Cly?}(VyIz9V#szG zHwgWVyGV@VEY2aeE!1-`V@9YfDu+Hq!hi_HZHabWG*3je<_XKr(X0coX zvh(E8wP?iTECiI(9Y@Y}Vl@X;@@LW?aI=6M1rQZ2VG~V^&z+9-_ey~+bDlg#6>Zdr z2B-CeLT_j-VEiI*GIizX(KatN<-A1@5<^dHX>Fd!G=}BvJyvv0f3h1{@i8HrW_L8x zlmT&K`dmr4n?^=8yl5x#_%`fJTaCef^H$Mh)ovH*m6?8PMH#@PC&0uxJvuh9vOgE% z8I#f~K6)md8SYw>S|?p$Iy$VJoN4aZ4*JXJH)BU$Xktc0kLa{&e+Gp%W>gQ%M?%N; z>(Q5zMsp>@-HaxODTKKKV{u>}-KMUL2F}m(g8frsD^*te<%D%V8j2dY%3(pCH}nvu z+NL>!6s7y9h}a9^Z9+L!2ehZ`Xi*&DasNm94itw8-^4&1Y?_>QAi zmaRbh{59 zD6bXxNM2amJG_6GEJlVBhuj40b2G7YEH?~HxbfB`B=r8!@86GCn&u*XBp47mS#FZY z%JXdOgNvfqiNs`jiacCy79-L$Rf0;%$8elmO7m)pTX9ov=WhID6PC1V-J}LTB)2(d4BgZ?=_)sFE_D( zcF8-#!J+mpS+Z)c0d^9dU_Ivcd+BOJYI~94CbXGep zHFdLCWSD{ZSwUktl<$ACV(AGOVYwa^b>8$s)K zx_!0_&l8ks1RdjCuT83bw1}TYEaWZP%Z#F$0Kgm;YL?-OeBw_ zyMQqmdGuxxxdn;C{-&tAO^gW_!-M@|dR?XD{-G=LASyJv;Z0Cj$SEPNRT4%TBw>@+ zFIBWOXl4eiwy{Y&l?0o9Cdxk`G(ZoM_lU^7B8RYK*7DV<3hK*XPTEM+<%of0wFA}u zIup=XYCK7io=FzB$zQ5KmC?Rcc3N#ekx4HF&g2b40KveMVvk*kwh%`0GN_HAF1UDN zSrWpCCJSdB*F9$}^E3d`Rz_CSAikt4!|i-M5-7$xxl=GEwM9~9MD9o5_Ge{TKQW+U z18D)F@;jg@AXH8Y_Lqp@(79I)x7s$2YZ*J8o~DpNziBrvZ2+aSUG*_Ml}t$6yo}z9 zFV%22+8&p)+Ei=417|oq?0h`9rXuAXiU?DXcZvFiqfh=na_PGu23T#FZ@kp#k)DxE zX>z-yfgDj;pL|ZANW4+81p7x3VIQc*2-t9w=~RxHZBUYj`*6)VH*8rOG3ZaHr4Zm) zebdIU8~})R$v?=TV`hSV@-EE$Z2*2AP&4`HB#LYpxSjE=n`)gi&@p7gsVEg@z6d*M zQEmVhKcP}_Cu;QfsqkDHjWTS2K#j%W4CYnow8n69juKA(ZTe+UatwQ zw^`Mik>z?bJ~DYOghhNNQrAotC|u%h`7NgO+%9#kbC(jk)Cs}^snhK?zyGe{$!r!=rgxokzsdl!S)Z~+jh4CJ%ht0t zyrpXA93c}8bKR!)LfaIlVP1AF(a7dxXVvRLe)OjR|4+VOm1;7HzR8*66UGtXWVFg- zhOIw#;js4Msy;G(DnHGB=sE(?2A^NEsSW)y%_JVc8CG z)inCs`SgQQ{6Np)y+BX(ZpmW2v|G|&Ph-ht-Ut-u3j1?1dKJxm)^~qAU!hT2$@I|%GC8E;X6eFSOZQn4x?Q}%<2^9eAIf9sl zGv#px-8x<0!U%PaV8kP#t1+5l(7r^l^t;IH2C=oV^;fr599!82vptLuG9+iU8qrb6oi5kb(kFg)UHo&sXv%GV%mscm84| zm+r5GB4r2ES-uBngD^4WyL7oMlg>1;zmLB>{biEYQfj7S76KQxP5uk23-P`V}IT z{IlbxVgv>Z;S5YDzhBa{^SVhOrn;ffU>ryyZi5(VzXv0P0!3W23!aC&T(QgjSO4B@2oC2|4)wtwH&-rwgM-}Vw%p}5S}l8Zd2`b?vpWs5qynCHu3g^LG)=DxhRB3o z9vqKC(KHIr1)Q#!Ub-Y9I|}3Fc&A%7&{jT2`!78!Ha{o&oScbK4#7-{BAFmpSFbkz zUTl6_^hJir#EQ6F40BA)@&TttHp%~@Ynor2&Dh~&04yIF7ar4vAGylj)O1nVM--V>qQr3&9fqFE$OM_#< zdWtl>Uou+GdRnPpsQOIGU_mLI;1~am24c;YH#Y4PZ3JO&Yld_w->MG$PVw94d@JX3tyhWi2~F$E z8=7j{>iSkEO4hC6PDwN#deT^y^5R21c#ADQ1{!3yI&}__ORf!Xye?cPR0KS#z615c zBhq_R+KA^loVwTi)o*K5Yo>2qtYM9K(DW#Pjcq6#C|w%SMAnU_JB^h?!jBU( z9C2Qr!OEy7-InQ0w`Zn^oIS@I6)wpydZYXr96~?ulVT@j|2|8DEymqc=mvGEa5mce z1hkg6S06CgWz5@S33b{E3(M91Xzu4)z8ZKjGMK^56;nFCel zaQqx5W#)zq|4%u3%uD^tu{vNXb7D{~(>T#lvhs8bGyU2Dgwxbu>iS4%d zR!l@fOYce#bvRcW>vih;~v*)oZ3{))uObqcx>Z_ zhFa{!RAaPNj18)BkG{m&t;HTaC)mHLcVh`@*&|!}S@RZ}&y!3_$F%%YHm~BxSnKQ2 zPRd~aIGU0@g%B}9RNBv^U`%a?^+Ej2ug^pisDPgHy=Q$pk$&7C;+z&e{L9fz=SOQZ zqh;oAekhLNh8XZRNK1Xch~SNZy*~`9vjJ*1co6xO2-$=1`oS|2cRmPLMHY$4Lo)583U*gyAIZH;c)7Okyms#L={2J3&TsfG(pU#dlP33|~u7Ai+D6-2|W zUN4KS^8mavFKvqFViS^M3~A8Mg*OV3VPTq-O!xVL4LO6Gf2~cQn zVDH-Z2(>D*$sfz)aparg2;XWuQIIMm$R;$F549O?zfQROelZ|te1~|_!BS%uOER?g z!B$;eHyDio(_91EneQ_fd5yyw>ajZF-XBpoz2%7eD0fJ)Q*H?Mjlq7(4%uV%Oe@Yr zMFP)YX!zZq!n zmEuH1SDHi*Q=}n`AZ!*S64bK|MV=@{06suKm5Yx^6_SsLOmljk5yZSF)m@(0y7bau^x>aZ}}?>z&}QGlTuoVE;npw!NX?ua&|6>B`;DSJM7U zI5_!u<=K}j*Pi3C1y;|=Q|&1~^=Fo5>=rnROoX9+8Gn2zCVP|Y$<348$*D<--|pl# zw%kF#QBEAoo&ycb38H)7)RBLA%Dz#F&l zjwt<66v6F>7{<{N#IDiaSG9eOHY4&SVfhv9UZLg1K%QbZM^$jq4KBK$x|q5ts;<`F zRocDUJo)L1u^n(Q%sTrOajwYJ{fE7b5Q_~Pn{mV6KUOX5D>~Ef6iv5_iFb&`Z;I%9 zDKmN87jy5AW$%k6_QXCtd89EE$?)Hm_cvw#T~)u72w#6zl`s8LR0S8^;G+4MPcEj; ziK@RU52BL4nkPSfG4^qUFWrIE_jQ*0t7hOP<-l32oNI*h$>%QKj7szbET{g1LP6mP zeXbM_iNiSK{+td9g`My(6!;b3Ngg7M2V$3-fV|R&fYy#e|Br=n5W^f+B+(cv<_duS zM-d`I7mZoZ*7XGTI?N;XoL3l(e<;*dwX6M=VpT+n|CS>!m+oaUdAW>UCRU59`b&9rd$t=-9#*KhoF_r z*VMMj!;*6{Yvk~3mJ#kIQCKTmHWa@&Xu!<&pG3e;d6G;_2w=Hs8qjTf?U6F z@RFr7el2_ot5c6s4`a?fnI-&Xj(%0Bmldj(-NMaXLd&*Nj&*xEge*IC=Ku3 z>2z^jAEU?X=k$bkV#&Sx8iTxn&Y*A)OU~&(X~-@y_!)J;DMO6|qD;=v=rC;(8bhWU z=R4z}(f$Kbs3R_xuwVddlY{ATlOtoJ8b=z#T@|D6jUf{c9_@@tj*g9~A5DfB%NuQs zaYnyojEjyH_$*U+0ey3lzPWyaF&+nnCYGA8bogY5o@4M>$peky zu>;LXfaBvUwezwlqlb#amK>THuut-8C9g%)h#5_U;4oqk?fWpE5}y{n7@4f=7e?eR z43Ggvwv>ENs4N+Owe4|-4DF1o;^88(-+bJD>)Csa;gPOq<(T;B&l99LY4+gkjTNA= zN3bI4^fB1mA(mRH;+Nu4%{dsWE!P_6fRlN^SoozhzL3tthVhWWoG#}PV@kL$w$bP} zBRX5mf@9_{^0crYIOQ3gZRlBItzR&r&l~OwM(lY!I(S647>iyp#LLFA?Z$M*dV(fS zE8pd9L%e1DilAX)h8OKI5EQdP;$S<7=9;K~TCaRo(Jp6*dP)3yGvRBE@)`lm=~XgXH{Td*zhU)aq>2e66>(8h;0g@+{+$_@y8V zJXA^H6ty(qVl;hr%Dmu#TVtCSnQfDD225qA8c;NoVMFl9et>3x8Sk zq})Wlb_@eAQ6sRQh=OL?IFoazD@9SUs0bf`7We*Yhaz5fEoSkqolfLEa~uvn@u5-i zo)P@TxIuhkI3FA4Cr0#R!~MkYJ~o!WXBdAm3jZ_$Tm04N$MS1qSh&ymr(t|;m|q%n z!(SOK;gPO=N9w2q!MW;ralXo!xooeA{T)F+c&@;}N$F!M$8WVm_lWIfi#tAL$ZXXG zFm!|Z==7Gl)&6X`6qCy7N$#M7aKD39cpa9sBM`s?9gq#klRhR&Sca#TQ&vV2wCXOfg5TvO(M=;4v-^v8~!dR3A*ly7TYS+sEH#tsZsvO zqa&AFr^D_8Yu}UND&>SiMRbjFuTrr!>W7yr<1$scQ3dTyo#Mx8=rgM6X_aLA1~uSD zl?)*ABkf}qA5_ZvdsWqgD)xXH|DZA+P)0aE@ljQL1h48XN{9dEt}`oS;#yOk)~$7X zC6oVxcBcQ&)lRWdi4E#|PvF`To7Az-sEIpWe~s5mSa7k#!+^`ThtPB^=}$><5KKg3 zxV#(~0Y3byFzjh&nbqJyp$@`EN95*}!tDkG?99>8_t6pYQN|B&*bFyMl?_(kWS`Vj zbBr_2o#A%+M?|arGrYPi|2GKsu{VM+>b$s1BP9* zwLwm44K09y4Qf{t+{H)SUK+nSIO*er-M?Hlinr z$IV5XP1p<{5Ko!WCr$S$Gxnr;n|Q{IK5e?sn6anLJH%G=Fi<_Nm3`g(NW5u^H_Rh< z!cQmOGH2~Em&hQUtK?1}n`ef97yZl>pPKiI&&}vxP4{y%_E+;B@i$X^Wq$V`X6C0f zjzE-tqqd8kp!daFY5`PmzgPE)-730Exw}$e)qkb;l1&2fOD!RqL zs<3ZvNo0uaw^k&iWP`cHJznCIGyC=q&|#nh zY@z{ncuDV2k06m_orngZvLxFdl58@lu{cQ1y0kH<% zwAO5lt29~sG*~tQWNY06n+azO^*RSxFI3O^-`VL#0YJulx-mAQ(YVVn9&Qw4D@5>e zxf>U$BjG*K*s_V~pNiZp?h?><^FMjrdpnx4kIVDX3bz=m2ycv0v?MCOTRNqhwA~!5 zO4RB<&(w(e|6WiRZFC!AjpaXYh&IQXV$Ea-0H4`}@-&_EV?d52%xAF{tNp*%wM9Fk zePSKN5`=?Br|4SJd0M3FGT|1yb~oYuQMg4YT~eU}S_`XefW5^B>6C_htM88T?T; z{YjdCl&#EPl`T7@`MPXpu9ACY`V?Ua!#?O}2>gB*sg1U@DD3AIb? zQnZqXWw`j83KxGbZ*Arn!JnkH(Wksx-g#$vkq!41torCH2l_p*-txW zJ5sOM;vwstM+u8U(8+ye_}ek0iw)LF@r0G#W#q0<>N9Y+;z{fDXRJ)tuL$IfE!KZ$mJe8+*O@rLjf~KVc7G{7|Q%Kd#b7pn`<4r3YgbO?8(I z5c4yFsBUQFME5lovzACEKf7*5(llq=vpQ#+v*NQ$GkP!@8s__IcFl}tGi$X(j>kv% zTl`&RAK@34A>^CVenWQtR+^hY7x8#$?IY}b$C7(2gYX6X+3-RzH8SaFt4jp4OZDtp zv7JZH>htSfx3W8|QVR3=dRt))OsgmUr&my6NG3^IN$^Y{z28@UjcBG4!c}DW5p_tb zXlY|w2(#BjC3abS)V8>9<)P!C5T6Ph^lJvyaG9sYL{5c-81S>;0!dq@u~`1 zw@_N&(o3Q-6K@~#V3rImOSFk+GX8c>>7tQsKxM{RQNVng5St)>1}qN+2thVHhn8}G zYOd8r&9?pKMAot=xfW-W`b6-#q#Qsj3RvjJj_r0QgnLUwI3c##>U6;f4)oaLqhm5>7MgfQoV zoGhhH*`o8g7L2@9nw>R~Aroysqdi4>MH9TQXEgWMX<~^i`<3eZAUtvTdzJM!9Z{sA zG4t_CX++pmKzC7uo&};yo8`a8OSoNpfu3ndp6kTSmjesHbAzYpn!_B4R< z+pIQe4BDOI=<1_7X15+SRex5|bZmc~dGI_ha;ZT81WlmUY`siYzhHE%l&$~ZgAD$? zDfgHI-Z7glQT^MiM+|;RTaxut>7;!fJQdiKYN8^m+0fwlZyVE6!)DmAWe@nvn*}Rl zw1NFjjVS3rY?w+{GJs?&)%HjpaE17@&?x98J*(HV+&Q%oH5Mo;gf!7>p|BDCAa4N` zN#oJEby#{TN?6_yI8lwDfvitS9SL;)d)BEYb)*qINm^Vi zwZYp2CT$Atj|br$19)x=lS=@S&xUqb9>(AP_xaEy6mF3!6p7Y| zH7s&ihEBvI``#af5wS9ne^dCYx#4Znh-_pc8aDDCO$pOLKU5p$$i5aNk&+*QgvX)?T zPOxFXHeVttSDZ`y2*vep5s-3}VZf>Uy*ff>HP0kvM$DU8`!*^Tw3k-L&A6|mWPTeS zcG?$XtaA}|QSUry*P6ua#GLdnRIat!Blkv7#fc>iGzl+;JE1GSIDNdY~% zZ_cIs4!TKT92>*bcf^2l*(JiV%OV}t&@t4wqa&Zg9bNgNGPkP42Bk~l30)Xux}cyo z=~uGM$7B%_H}P`0U|t~Aw0OR}{*+8=ie3GB*U9o59l;wFtafSfMg_OTcj5#>4P-Yj zg7G7K5$ay}B3YxusxdQ8jXj$2Vzqo)uF|okeZ%>4<&ELtMr;+4eAawepvGX`o^+|K zzC_l56uUv3(s1%j1_R+$xSbd@r$nx_21+?37z*;{eFdKs@3e!E3x|ws>O&QSCmp6c zzO59O89a#PTx>v{i}6H1Q?+tmG^<}Rs}o`+yLkI=WW_H{?UvP@L-mFDtI`BQTko4# z2B;uhw9~BT!;)W3CH^iQ(%bzjEI03OvZF@)9`S{{yeV6PSg{u;e4zo()}!}8&IVlk;92T~fOsGIZq!PwfLi@B^Boc;w2P4j8~rqPHoBMpLO68)Plg$jQh zdVE7{CMjG*P?6{)=lB$Az-qA@=r)lCS0a4C8ZyL7xj!UQ!r;@Kc8X6@>DH4+Q4L_2 z#tX+RW6IN&&%$ELvd{;`HhoPnXi+WO#t7wg?PPr@-`uEq~`;N z^s%^Ci1nglzxmtW?n0;D|3KBf(8yR{7<**=9Wq8n9&-lBp=kd8;lSFhtW_LEex`n% zCcojT1-}-^^`ez5P)~UpFa-|Xg6@g%u45g;L1$KBkWY0M4;k1Ssq!i?XgwI50q_rV zAQYR9YQP0!a=ekUe~x2c7`!ciuLE>0!y@2EtcLH|XS(0ZoO#01KHr@f+33_sd4+9X zZo8M+nJa-EPf@vDvd?a!z{%%D5qnA8?Yan8OL{Wu@@TaT7t3Iiz+@ffXk*C8K=Ikf zn5a9iD*+@z$*W^RYam0_FfK0+jWp5-Le}jjwpe;(>n79q3G2Z0uQ!eBSgX92*aOqK zRa2AX85gv$s{a)jco!GcX_+OA{o$<+)Fzg(x`tI4UkTMuCjbYSVL-)dph0LL)!4{x zh*;Aw#uCz|2dPnrMvUz(7&sF;%uOf8(GR>{+ylIf&)O%PSBCS}aK0>@U%@ACh=4Nw zUg^wBW#k)Ihg?*{hF$ss(jlYozidd#7tE2W~wf)-=;09 zvQcG5)R$lGN4%3qjZ8DPtkdLhaMnEPe#5cW*U5oq8;LqYv7!o`A>Q}U=iz~ zL|S)SpPMC+I0Yu#J|Khb;Qv0~{L(bxSwVo}8dzGAezmIu^=`2GKBLJhwbP@90!iY! zM$<{6m^$)3Rqib25EOQoAm!ze;&}5_K|cDE8N%BAHtn|SQd%(T7TUso1MxtW{ob8`s&+J+_zhfGmcsX%^pFSGWun zuFrlAD?{txnR{d(xkDNQbkp*Tr|GS%&GRfoXahpCat;W!VvM$D;=SnUX_2{e&I zBD+cKWy;u#Ug`zUQ|7Z?+g7i0Un`zUz3wb4Cx<{)l}6kNM~E(Ch#IN66g0be8^q1< z1bhi#72XCh*@ala+9pGxVPfPTl!Yt1AeI(u9a7F;;}};%AnwcJm5y-*Ys9Xtc8p6L zk0Ld%hj*#cY5H-r`o<`|Sj^i;GO08E#qhdemxoF{0!W; z2G49z70A#jCLtivUyw-aBWfO?*TjDF!K)OHIu$MGMOm>`CJ7GND$`qJb0Ns9mt^8a zS%Q3X4XqUUXGr8{KAez27N@@$iFd)^sD51Hx zMAfI!#Alq7{4v|k>S)sL#0W8vUmt6L6^9rtV+MBcbhP@;Xoc1gHSp~QZE?EHD8J_s z@*p6fwlzjxFUfaVjn%QA)(qR|5VPiQm1g|bRLK>nz7nmdnNOsg1ma-UU1Q*GCOx57 zdq9mKM_N_nBR_*i8Rp_cB!j%mt<+H&3F83Wvl6(D0@cCCyj3g-RpqP8>T_qfF({lr zQ&y!%ha1E9oBtqOZwlwF;e7B~!bq)+c36BbiOBh}dfC&JmHEC-GZ}ANv~1@Xc^X7M z>ZbykO_RjxEhF^@BWL@hqx34oeF!oC?Sfm?*ei|9pup<+4k`40ZIm_|v4r14K4vJr z#PcHYrbvy>RPzrQ$AZJPE}2#0ooMylepQ3h?#pZ+;)rCbamYxzNj*%xXoS6YC4tHv zI)`1@oi0&NNmS6qvcKD-R!E~oZ4f$ovtFHV$Y%tOsYv8aN!>qC!P#*NslwY(2L+{m ziU;FBlvmZ_^&dniOTWvaC-PdXi{TArveM4mXt)MAz5YQq@0bHUBZZK9VA z^g#QlYdpd_Y)%il#sjR?-0vFqxv{%khn$?IW=+=p-BRo*KNIjCl!w}8Szp!*ekN3f zXrrrqM{_G8&lcpXw2pgtFPcRMQwvj!2!C0({yh1adGC2d_njy6z00cowk7*FxclwU zC+>g3{@aD#^Y$$#v7L!nZ^&hZ)1S4MnWuLx%bYHkd8c1vM^?o95yYilZOo-~vVUjU6>>93x-O07oWwF@hv4C`rPIaS7UZe^aYhJ#e#2hE} zrEh%ULz8w@jObeAvd?_uQ{THPW`FHl|MacfW9qJ0Rp4Le^>)3xU1OL2Z&~rSYrLh) zc&BUp&P}f1gm$Z17D!0xDr@PXIR4uPl^<>O?=$QMV?4D#S zF;6#^nX+FFF72k78RiXM!O7JmoKhpB}rnRs3g z@)a;@2Y_!cGl+EV0`sd=tNegcpUqTVsKCk>XR2iK^5FQ37ADi7)pghi`!IDe#j5tm zNJW#YkSrW823oNtay{PBtW7X4n=?ZF;VNejq0Ze*HfrWVC| zZJR_@q@u0&t@`2*gXh#c0YgJO!J1HzJucKn;r>d%kWMahON{3g4_7mtLyuQtls1Gp z2glQlG5X(8M8L~vKV#e&M$qU4h&%Fxu5-8$mcXajE82RCpf7`xLS{LE-nCte7xR%U z7BMv(zTXoiDd%zFQ+b|VZ;hM>d0LV@;X8%ea}o|F8cO)Aw&Q6d6RsyaS&aiahpje zk4PemE8P3!UPr8Ozl`m5~qCSO@bNFRqlxlcE zbiF8m(s{*V#iSPrZ#z$nxk$t=7M&M~WB9kU)xfy_3w1Uh>~gV3$ah4~qC+kh)t8Ai z<(mu$Hy#wR5+?OcFpdG2w_-!%IU+(|209hrD;CBU)#@8uQ@+8#MU5|s_=^a2OGYB? zYOvrjNVBt(wK-L4D0DH@d6!znOGrgeJeBQZ#X#h7iU}YnkV7;PvdZwy6(po00yvF6 zs(+1O$pE;=otj1s>>{DTxR^6z%xSSxJ5M`?PndS|%0D!Dm^sY-4mt89S!bv|6G3O< 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�xj?IaCetr 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


    Xn$>+|wwR3#ooD5$&C-bkJ za~t#j)dviZ92k+g`pf&2xI> z=OFV1rg=_}d<#zVoF4Nmm@YKUb9!877sJBSJg3JzL9&uIT znR2LfN%5^*Mm!4+FjP+qb-P&4lwrAPK0_w&sA-;qZ=MOG6{dM!k98|f^SmCeJk9fZ zoNE>FOjj5Gf5vN0^SmBL(>$+-wbQ(3AXAmj3|PFOi?wHS)8# zR{npOzg~W(H_FfWR{0O)z4DhnB0r1A^!FffkLxe9C-k@UN&P+8xt@}r;c5Aqv%1~< zGxC={FF(_lobwQI1Nz2{Svh`L-Ld z?r8C!y3d$%kkM!Evtz`ulLZUL|8bwq7soEfL+&$1Uy480_$%=Y--u^EEdDtDES||P z;#n|0Ufi$lOJ*Eq{+s@$#=q+?i$COH`lmc67_*C>HWh{#7O41Hw!8~gLU-xHl`zbB zkxFPj$@Qv=XNrhlx)Mg1S64#I$?~sJ2|bLbSNz*S+{{X7W!_W?y-ep;Le;7AtyOXF zid(x9`pPk@Pjj7Z4C_@qE6h69bc%~Bp`FG0mC(;@gNn~`S+}8irtD|fNS-sCYh(Et zn&mIYtUgm7wlQN~j<=BiEP1w)hbjA6Y%TxU#@kdp4_`b7SZr7EJbdvxRQ%47>l|dh zW5x6E?Xy$G^YD##u6WN-+%6T*!#8FZ3l1^-Re#SD&+gLQ^p`Q4&$lkoUuJvgFT-B? zdx3fOFlD$2?JJ(4O*~VEi{;!`4laI~JnK8ZHzUBB1`(7`;*S;(mZm{3o_GP%&zRd5J=SJ%u zu`i3z zlegTL<@f{l<*mkr`;ys*?n}lWxi4=s{?vV0`nmg(@i*?v+l|@Hc7*u{-=H>486t+O%JV17M>n@nJqCrRNZBM$?2iFbgAh+d&s4yhY@BgOb;!0 z+kds`p@#*B7}l8XyJhUpZYC3^hhe5{zE}N|MXC^DyTC-Bir`Ps#&OFUCHK4ZW0%roK;b5@?U{(So~y1;pu zvC{84J4-Kg9%dKG^PKuGmWMfq7+)g(d1H1m>XwHYD=(O5CzDI%VYp157oCe;rI*XY z=nC;KS;tPMSIWb1mHB_U&Q4|=D92ap=fB0VgMQJ&^YYEJZos~5XMBy| zV>iRg`oVtelU7n9u|Z8@u}-?=?4pj&s=|7JkxjNVa}rTUHkq=9J?65XJ00a zhs3j+Ifq%W`E%C``!f2_zRW+e?-$0O*_ZKu%rj%
      OW&HM}dGWyECU-29JGWoB4 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%0D` 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 z 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�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�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�dpY==y|}+5bEPwfW=(*0)HbA;)486z$l0> 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

      l>r{7nA9?`c64xA9;Ao)^tVEiXEAc@7uL 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

      Q)w;9OC9=1!G>Mc1NjM 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�W1rZ0+@8YhUhRYky9x)&5ArvF!Q=cgVI7E;wxMIhL)h#cod(5fJ|Nu(ew( zTU$%q{U2;?MVQ)m;%v*-))KotU6RvG4DZ-^U*!oEN~j&H@cWALG89_2c6nyqkMG6S z_G!Xzn@|_7M=Fe8Nk1vRc6Rvx%+!9`In~tS5{Ie%q*I{26d^{@Qjam>S${TBQ;W^* z^=0T4#UA}qsaS4jP(m(F*(!nkls2)t{R1`_K%wM8Dp!kTgR3nY{L3x{+MS&`sP{X3 zu%ZrXaWiDq*@Fodau;Nfd$>Q1+>YJ-pLx=aG3hxQVb{n<$kp<_1PkwwJDN5|;NUxW<;4Nkqs>Yd`1eQkz7a z74OmYZL~U_^>U%|>)l1EdTCnTaRs!yg=Uhq0+wnbpSi3)Z%>V%nS>=7&T*%!ZqLbY zQFua*)%Ueq5_wmu*i6C}mq_FYHt=>qrMZ0kX0=+MYPK)6t25g zMBuW=?l!AannXO~s>89i_fysRVD&AtOaTj+WC6SA=T&J`K1sHKNyI2Ul-2hPv?{bi z=eR-Q-6Udo9eOMMV=`Y_RZZ-;^qYX>zN;AH%rvQ+VnCg&y}uFf{nuuC z-|2Bu9DZmP!?s(^-_!ql6noXR7m96nSsZ)WrLnU(wo|bVX(ZFJmqOV=vd5Jxkxgb2 zTC+;j_mdXMRyf47JA-B0_Q0~YlOo+cSk_!EB=cl(ti9MlvHt%J!(=lQ{tey>zpir^ zSvy#aXtzq#SCT@3>)gVDEPgF7AODu%{Zdj8zRoTD>L>JSwcD^YX|d}jx3vFCA1h>d z!Ll%uh@0GXQhYcFcAipQ>FG|_3~A{Z+zZR*rm^ft1w-nybKSzTQyAP6&*o(i_h*;w z`ah8E-rI3GJB@B+cT9xIpMuUxdnTp++``@+=s4c z2I*7^VG{mrx1Kuqv=jfgotomU@Ye;NbU0ht@3ScPh~?Bjk;7d^dYfQrn!}xW_mN() zN85b1Wz{DUyL(u5rPA)JD{8#%*)h^KSEaShCp)bAB>Yya`lk$-Nw~z(MG6O|)|*NA zjYZbmw57x|Syufvi)3=$k?Vw9cP6RyM3BG?VwAm~?ywy`l40CebD6W~XT-VV&XiRV zTYoc6`Bic5@CaAe*oMzIy!&lbEP;6UNyHQ4-DP2$-liG;)v7ynAzP%Crf(8TWX+cE zSxm+beRfW&%}l~>biO{Ry*$?w z)qOfGOcZpp9Gg;M1fo%#9>y8ra*>zTeEV<7K}7F>2vCC;0|Gp{M@!A<5i)uvSin?z z@NX0H0G>pgZymL~H9W)`B&>G&bIYMl!i64t8l@SYL|o+g5AF1IDVY{xM`!S-@$fAE zTxS*2PYZQ!mfXT%0HwGM%`(<0cLb0N>D6vpi2eB)S$6FI&&FIFg zu6nEWXuHWBaxOHT@aIG-h?_k^B;xsmC1AIB0+^L=V)#eO5_IihmZ_SAFT{0e>z1Xe zwFj9C`8Ej#zY}A%w_s3VJ9#D{s&tzb3`Q_=la{@HJn}YTW*Eg{0&EqrXEbZv>4}aW zXVYa!X6VRQI&}Kk$T2)DO$Q!!;7{D=5e1QiAa54c9~j$ow0+2=UT2% zdhfJ^@J({6Ky{(irhVg#WL>uw{&xvs5

      gfPKk4Q@$TO8U>Ngs@hi`Y8EJz4s(6 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∾;U#p#8uR6c3%dKOKQaZh? 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

      GnvF{@##gDaY*?uRHrVK|dCv)}CcX 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%0D5;~4yYk9 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

      8^I#zr7 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%0Dnew**ET0r9n<$h6apO3uU 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

      >d$ypi?wY~! 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

      KpX|n7f3So4z>ofA@;=` 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

      l)CWkgwM5Ma^YJiCS1iGQgZsAmQJW*a{MBb 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%0DQDKU9-Z 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

      B$~U*EaDAgEEGnDq^El6 zZH=dHf)nF5-zdB{5eyl{M(BzFphHAgSD9E!j7Z_waKtF<*}qWUxze=yh@jjZ$-Xrk zwDX8L6wbc>MkW4klIjY%OOH$RdjgSgw$~p~FcB|5iI|Nrr)PP{g;|8kaz!F|f-43% z6o|MYM)vSPz^6dU{UiK=(f$F!NKB$H5ExM&Jg!wdRHL~30>&>>Q)!>OJz*H~25*M`{UtqKm>QR{Arw@<~CwiaX ze1N+B;cy{8Ba;)3xcnYh$divpB12vmK*K~|t+4`~AJ|geA#a5IlV1bFQd+rey|*7QSqy)G$>hpyJfP2&zl~H43RG67T}f z)QF$B@nw1?L|cwRGcPf67n!Dd=>smNa7v54*6$r-`U$@g8660XQ0!#l>lp^V*a(VL z8Aodq+?mr~fHf`CMYMjKDRxKeLHPy1=*;nkhj@J+w=2Z5a1n*yk3wDBvo5GnuSB8x z)CF|TnkW!nv4iWu9d|e((BvU{Z0m_2o^qG3FyeBv^Q!}<*yZyLcezLOG^O zL`g_YM+toR*aA6&F@(=q3taAeXE^SLnZR+rqU>mrS0Uf^;}Dfc^8RS@1s*{ zO+!1um7!GV^`M2P9;bjejCUgPOATdW^70XcidPg)1tAj}J2gIz)aiT+s{xqN^0CIE z_8|D{TD^MqFU$qvQc}+lm3x8(uCeG=pg~?M%{0bDcxQ-sPbkyl4~Gr+fUA|;RH`-L z_t}|anhJzth;Ys)bF2zez0{e#wTrsI(Weflt_T}IzIk_4tzjr8P?J2ccM6zrBVJ*v zg$HKrXzlTb)o8_;qlO;?xc3I6n`qfOw8DB?Uw>n?DHbdRD?gj+r=L?HqW?D(`u|}l zR2T__OgqF_D07s{M|8>C(3;Y(*=d+cj)cbcaE~nahKxd^j0YO-fWMgNjeXHFXhG;` zoIE&is|{ivAJ-c3s+ZN2yGADpZvbOY_0vY~iBr9_iGQfp6At>kkt+k?$p5g>6;lo) z2jU?~<}I8BY^h$_7h9Oe*5IPX2YZ9E-vL~;I`>pRm4Onfx9PgdjFoA-`Hz( z$Q3Lc8+N;VKDBMGX)z5g+FxUMl^z{0Ia>RTNbjEP2zweXykg8IQ|uuc`l^*MaD5^r zs{JT59w2X6i6I!k{(BLgXkz&;81VUW9IZjw5SLdK1xuhSJIkcUZ;bBU6UpJRVdTKO zW)`c@J*r4JfN8fxFt=r~r-qCOoeBPwjBBL82NyMst2s$FMlQX}{qBDO2^;9I*qMSN zAj$Nh91%u5nW5-!v+iQA&v53r@hLDyOqBJF$)Rg_xM!fu<>jSM1%Evsl(}OO_@8|e5osZEk10M?+VAFOZC!T23Iusy#5ireXbI=>X2)+`pqxW zr54lhw_Y~M>r;@^C)@|C1H~@4!4vO(<-Um5jVXnu9XFTeIdYtE-brgQXIe(52eN!wS*lD5~hlH9GFh^(l~znD>dS$ zaq-bo<-;QZc6=VRR)A*mphhfclp;{ofYl7Y=SqVoj8S;62aM7ne(>`sq!@ikCL1 zAERhP3`=H(yq?cxRY8S3zfaGBK#dHhLA4vEfq$m@Xb@;gEu(8eX{w(F|1>8VA{>Hr zg~l7?H=LuDcxAOjW&4fM16`x@1AcbLX2VcpEa=dm2mOVv6~zFA%sish-qh^Sh5 zrz56P1?pvug?pj(BNKuQ6YWtG`nmC;w!BDjuW6U}#z)1V>h4o8(1?_W*e(ir#9uSmsmV(50T9K5k{MCS6vP0M-oYU9 zzhHRScru_t`2}#Zh9B!+ihQ4+=$fOTAHGxdIws72qF{;uRT~R0>X}HKIT)?Q0;LvH zrB)-5N-ZjoaIie&4U~s_^&c>($KW1)`l49WOano>OFR1yE8FQ^8VofxJT^?zwLYy? z;&e__n&P!FbMgLK_QW0{eB~$;ehWVoARHumH(6thS*uj}j_B%Rt^RgY&B~+S7=3Ne zIy%tURnTZ>f7~KybfL6X4YBK_0Ex;pMtR3f<*AyYFty}<%nG@0ipqUctlW9bKPb@O z;O3&DYA~Zj00#ZuF*OD)a~+k5UfCQF{r7nEatw(m;p7`;VIFdwxKCCjJ93*P)aGkW ze1g*3(t|n`JcT=K_)tXmxew|z0a4x#kfk=OUCUw75$b>rxQ_kd*9o2`t~UY*-LNN>8ypkXZ;_v^U`RwP}=Q&wU-#B_+q9w zQ7G=n1UHgcCyq4+`ImHhNT&e{9i-^Jq}M|_jbG@Xba10xQuvTgWEp+CPL)FICH6(P z>-6G62iae_U8isAM=P&*35%Umnt_ z{~`xjBClstwUE@s{?zN)G;UFSq}CVPP?bW!>k>u@$z?)F2x-fNXdt9x**u+AE;2W< zJKj1^#|?c*RP)UzSBt)lwvC2wEkQ5HNIpqwbJh{|CS=qnyV-aU!v{LZ2 zgKVSdOpGs=Jq;BpmO^gKDZ*4F6m)s`q?B9$N*I4G+~RiA_Edo9Du6i9GW+dZ#XY2z}vA=?%mLh7>)%F6pAnQ>5iVC?ZMh@_-9 zZ`Ub2PZ3oiA%xUE>8qHWQIeBLM7wdljk)s%A&~*alqX!3%~yy_U3r5#CfaKu1+j%% zXxM*LO8KuIt4&{+XbA9ZTJE3>FR2-2ixm#axLG2%uBd~!aG0o4VVnG<3S+1n4y-$X z$V)UFv?V>KuyUl^b0*!x*-hGd_8>Qw7W~gS$ky|6@*uM3Ih-nj*4%-zvVgybZ2bTA zJWd{Q(&h9H&(!l@zzy0ho3g3;4|Nk`StutW-%#mk?Q_$fDh$Q}z*s zWRqrZa)(Z%UT~1*^gDD49!cf{9v^FIxp(NaAGN9yD{7Z$y;4dXtX-ndi)?jlJ;8v_ z>mEA@-%(O`lf1=asZwOQYoVgslxc)$LELR?tTg*Ys49pk49oYDDai$KFeW*1Bavp# zrxcp&1f9+BM`$rae(@3x7rpp)HXV{W|CA7dcnY^d;gsCC+~qAETj&l14XPGA4=q-B zP4Ym{8YZaO%O*i<;^ttX%H|D@>PS^_P;}KQ2U!vC5mqZ^>*98|P9d`R-pQuiKb6p5 zi%VL#DVr>dR269wCKJ)!36ym6+u4*YX-)}|cOM>GMy5v+$4Urxs^TbV$J^O-tE4?D zq2yWSzLQNsssD{QmdYmr^0kDhl1$V}wNnHMlgVNnWA89+)#KY$55iay$9{ouimdhr+ z>Y%I@e>PHC)WD2D^MzAzXEN#^f#&r>SfnV|aN@rU~bJO*8a75u!{9n|d8rxi{T+J@>^%Pb1LaAfpVufPnj$R2O>`%w)4N`G5Z-IN6K9CdS?i#T(m*((X8L!6 zgt2SUe`ACIi$HY0dnZr2(_?;T)a=`lb|-e}Hm!A#&D`4O0~j<(L$QC5fk{0*tN}1k zD3Q3q;F2emROlzwm_Qf_1>=^%=F3S0MR#*o)sV`^{=??0PG`ia39A znhx=T+OYKw$~p+!@bU2wdS1gL6z9ANo5}rKdd$Nbj=Q|`rh~F7{z)cVsh^H;@ndgF zH+zI90Jm*`yl(< zokc{S#Sta7{NrreCz(G>m`OzQHA>odr%u-83a2ii%CrA`r%sl);O2nf4#}J=A%LFM z?4ABNo2~XiPZ_7vmbanBq-NuEDtSrK6_F5J&x|8WuW>qMQwqm_)0oF1iSCbM z*4n=#tc{l@HcP@7s>i-#vi6W=otW!l4GUR@u$Xe{PZ0M**z6H^?FwX`o_Cb zYpNhRQ^FX8Nt?}Dvn4Y}!Wf`#0IC^Jp^2X0L}dM%UQ;4EDxtU%Tgw`cF;2rY(!be3 zww7=c&eLz zSyl*fS5?&}GEDRaW8A(KLX4sBjkwIC$z*+xlckS%BM$QJ{+@#@^I)f%veS)m_J!kg z3ccqb`?KS8T8bYpjngT9TMbd(FmIwkbyOroOj%c(m{N4jkX4^;=1^xRk8UUlZGEB? zdrLy7>*F}K*FUz2nJ#)?%=7^PS|VYL1^)QHX{IYBbDe}SK-nLFbZ&n^VN>cV{6Ol8 z`%voYAbjLW7=z}@56!x+mdxuUi~+h8K++`2y!c-9Ek-DSg;}Z;=#J}6QJsN)9;2A> z6Dd}D_Cqy@;mG~lO|fy5lD=$y27NCW+PtAKpnSxBr1=??xx+z8C1*!LQU#<55p9Ym z%SC6NK`XQrGp_Ir6`-jS0^exHcZG@11PKX9EWU#=_*83h)ExEmnEUj3!tG6ODw;Ln z+Cwx!!wJA!ci3()O z^FKC~qsn7G(U!FPxqBxY&J;(>%+s*$`NhW$m4Ws7$2ci#mxC-&YcMW_MgM@tvcF-M z=<)%f{8b5KWxpaWs>>R_!-lz}O>Ze?d%dkfQ|c_|l`Q8uyLh2XPL!_XkxIASoMw2! zy!Aq~lBG+ZI4Ip!jH3yf0;F`c38SrKfyj%-D@6cadXbace}Zun6lI>HdHfS~tzi@6 z-Hw<-q>kA%-h&scLV-vi90}1zrYXD!6-fXY3O%R*E0+V%zcKb@UgX))-9ecAOkG!g35&b*V_?*Lr7dIfjUKY8dtw zeQH|oPL}E-!~;QO!~11cvp_}2J2~x6q`|OEpqG(Q>h(vEfCCsQpPBZxQ^Vm@v9FyX zUOx(l=@{n~dJ8G*8qVW>i`Z!M$gdhGU%wwK zS*+WSnY=wnzz)F2T;1+3k?-+@!t@g-(qZCRg?M$v(uYX(-Koi!T!Z;-NLCwNClx( z5eFeYi&V>jaXJ+=Qg-v1W=|Zi(;446$euY~r_;WNL)XXabm(2B-lWYcgd_Y?vtK%1 zCm#d#9k@@jBfunTsU^(4U%p>Uf?0VxW6~={>`{m0`jLmRC(`6h`c#*;v}LD8fUWe z)xl=U6YC!HsVZuE3lGu6c=%}d52lq*jE9e2gSg)`>xuC&^?nB&#AeN_UMlV71EwKQ zjGuy&nCW+faw#U#77N+m^)C);_VCAw@AG%55byF%i^sJ3D`f9K zK3i@4()9S}2UzL!Lzq354+nMAnYzA*;9IihG(r#M^W?kyZo@}&;@c0f(!+<)dK#yY ziR5lZ@zMRl( z_HIS}`JbrJ)-qh`@&raxB^ONp6$mZpa8@){4Pt6McQ`$Nl@8}3VYE=f*be7l<7kJI z^zwMUrkajY9qepjy#4+0I*mb9mfhoZ%1u%=Js)rXb-YgRBSUppC$&U#ge!KKRjoJ? zd&E=BBFy_(n5}=q8mAKP{Vd0kND*Z`z;aymTXbzUJT?ro$5yPz>+%)2LN1@r@KLtZ z)9agB^<{)TL~Gd$oBwV$fVGTuG~&S;1EaNUVQv1vrO+A+lhkE@n2lg}_t)w4OO`+Tu3DcJN%#W>fGm`l1*Fcxs2+@1-^LJTk4^kCz zV?|z{v2^)&v4~#hhi-nH5)XK(mF%^kYUyu+xPW33*fvTi{^;^>_wE7fmPuWsnjD)C> zho=8dYFnz10!iPSHKI{zYSi`~i!J<*gT(O061~Sx>WzQkfjqRGP1SNV#!Nn9Gr2@1 z;RuuAp`C0^6OpD=?lr=+jSYA+5~BwE0Vj4k281pX<_SdIw4H7F0&=P~#qDgsE6GXq zkx@I!78ZRH)-9t#+$Zx4?qf-;mRh*$YNr`G|0y?Q8#6dSrO+X(}r8&{S za!H$-5Yrh&BW;lr(-}=w5w#T9D-@z>oN!f~ld`HTJYk=afR))b@lLXZTr?vA1CJgF zPRa@3KH6iR-;ja^(*uiQt}OoJW(KYLLW_K+l%1FJhs?8*vS%*$Mpg zYF0rCMn0}^&E)1@zJ%tnI4Nrz^3Vm|#~2?#TAnqfrlWZ@0liiGWG7#=B}>Z*I?b`F zRyI4q-eH1H#hiI^Q!V5RkW?Y!KkdkgYIu>=us7LM!;8%JxhYP{2)T$}Wa&JGsGGDG zSqx3BPRan$+KWteAFGq3yL%}C-Q68X@VTgp3%_M`#&mw|FQ%6gROgp<5S)fwg^>`g z;wyRsY)+zP-3}`<=ST=Gy^(-{@&TKZfOtK}E=~pXeFAkrLO^dwz&N@zRYAYSvE>YX zNTB-ss_FprrUZ<$KNsk?Ip%Bv+*b?K5(xqQZUV;6H#AYWH*;(OLtps2!nx-U6#{xI zi{K;V|ErGJ@3p0D(NIJ}vlCT=iPu=Vz0#aK)_RRKHwLkm(8g;C)6THc(}*jXzQ!`$ zm*%Xg8q*`gk39^W5K}R#kh*Ng6xmW|hR;oOAYtt%R=OzNw2lL89bv?4Mv@1(nhi+9 z=#EE{Dy?mX*?12m{Jy*9Gj0diYRDS)(V>J-Kf%)rJ{KKfNj;L`Bpc9#=_hsowoGYr zKXIu~5%tj@jPE>qYy&)Ud;>fp4KUZ1!d7#PYglD>5?Q)W(5b?v8q$#j`?V8va%4HF zscQm0hZdZm)1O&rbkeSrsA>zYz~vrcL?~Ot_G7}e+(=`^HzN_^D`{qmZ$=_~+%m*# z#5W@m1My=>1K%t@l{VruQ+zWLhv8yk`W7)`;(cM7Xh?r`3pWW}@qT zD_wEAh;JsBI{gfGXZJI{nP-alyl__!$d^PZRY~hHM%ei*Q(6V7N?H#jva}YTRZCj8 zoLwU=B`cytC66f*nsTXOd_6P%_1Vst8Hh^j*xY1%ePWE=tY;R;=5y1ViAz4Q(xm22 zO1f==PUlG-7f5&p5p75mvkw`gj8NEsaH&!NQf-PjZT>lGInUz>5uFW9yn@PIp`eR2 zj>|I1*(`KS%bU+#Wu@eEoMglI>RMuN@`h}YB&N&fMi;#QJ?b<3bS}Cg)r-^_&DsW) zc*z0SeBDV|X-!gaCdG;C1&`{GJnw1FX_7+VN4H~d|9#!5_V%lrq{Qy+pL-q`STnB~ zWv8hE=h{D<*NnX9IjPCsdCiE@zMj{N<^ztwDr> zDr<3baw9xf68C7CM{~ zYV+;OC+K8zm}FFHz(Le#)dZdL1nM~nwfXiP6LcExaFTuR1f4oMon-%Vf=*tiS^jZe zY$IxPV1iCnQZCZO6t17*X%SCCrqd21l3{+$+qnc$qtb~wgiiMKDBsFSm;lkCeU>huqOygX5-+;*{=H;Vbp9TiEj(xzr{ z2vtL~*`+|r>CB~8(&lHlJVc$)EPrb6q;#)`v`+Z6 z1f`dIf&-0_q;-OqrSyoqRurQit&?)h!>P;I;C&9uvr*7;%#{=!*`-iU-&RM#8%L|N5lfj&qGq5umbJ1d1Z_d8Qk z)kK{N>+fnL8nak5&o}|+y z9i>dAl$oAPl(c@5UPI#(F=cv7|K~0>+#?1W;b6cYHmFFnaO8AFnWnUn5i&;h=}B}Q z8>CnkKQBxQGPxDUJ>Gh6IN*g&@r-V*UN*g;_r%s(HGzl#jDe1IK?SdfCipWoF< z){!&@RFJilB3zNE2M1dsA;VP`Wwb&t|9zgSDTdJs4V;eYDx6kmVD+1>QC2H7)S@x3 z6&je$?PfAtp@AB3*p{>kjj2e#1MF64pc$;p>Ye$D8xd{a}8v!tP%wxm6-NG^)IiKU&@~(7}El8`FzY%?$u%A~He_7e5 zW9@wey~whu>;v;DLK=#%=i(nCQ8vPNIFzo=aHtdwR*8wsZLg};#DNBh-qS8!WTlN)Ir-Do?=f5E zSD@cx`c-GNoqzv%6;B%EQ(xP)*KSMZnSgx1a=W$#2}$E8>vTlwY~N1R30Ajj;z00G z&OrfrYNJx9>UFV#jG^uTQ@8YLCuNMpv45fi+Ib7C^z+rG)g55EC@cF6@p=b2p>tnW z(?N~<)Mm>&DAXTG$m;o%Az$hXky$`;(HTmZ2Q^CCJXxnl1llYO7XCC@h;5UR(AWWf zeixaFgo!J9s2WXXLPX=^u#x+1U$a$?kHgHmZ9l||OOU^8os}L(T%Bzk&j(w!BSE+y z9|!Io{Y~!2$HjO@1uo5Oe4O%*s=W_TPnArJ!`16xe_jU)^HSpkhFgUsnCujeHYs3t zIXw`Wew-NQ9LhLqg1MML+gIlqs3{T}du`C;iWrn9)qL6WWYrzw>JDG)Br&c-Ec32|orH6$ zSSF$e;$eUb2RkXNqD2bX%Fr9otoSEVth5WM+mKr9rP=ZKwz5*wA>x#0^P2qKLqKLy z-ycq+c|yvw5`vk-aZO8pI1Oh9akw;1S0eo_j*<@FrPId(`Ll#5@mHMvtf@M^3A}tF z^|yS*S)6bPpnKw#{H~KULqg;|7|-%cz7B-RR*Y=%#=i2Rf&tJh(Q1bm)^X0unieli}qz7%wb8lw-#_|!??N-6l`RjPgyL5OH^Jp4xRI{1mm z7{uW>Rw1tZ#Nv4L<&L3IFS$4#e&Ru-C<+#{YO9Buj$?6rjN?${#c?cVWs*1!TE)0; z`=6-#70$iydTyyNGm=+ta8g#0j%~S-9zU(-0tq)dDT~fE+i6ui+G*j9P(-t5`Y0BE zkkA?!L2vU06RAVVgL^B0Q4&IzFT}G61SBaoiw`9`rs~vN5Ee;@a#iv6E2rx83Rlg- zcZ~{oJ$wlBYE{ih2~CkJp?(w(p=vjo68lIfWE{0#g91Dj5UD~C-8w)aHW4Zne8ws$ zxT&TEe#SN2UsJFHXnV>PXydN%t^M8dI;wmuKhWrpt>;q&cOSJLG}={yv_Iz zNDI)X``p=^yF~pM3{D z2829Dh$@7s)rGa03lS|$fPsED+%(XIyyD*0UBl@@UT%K`2?0h%3lnhSzPSfQ_*JEa z3Gh9J$4Ti}*bI}lFoDIPX3PtDB^_&-VR}9R_tTbnoRpP!9+qW-^l}2Ox;<>v@M6;6 zrvTTs!&D_yuN+*PdI*!~b*Aqm5 zjOQ+-W}nYHXdX|9)^X~AVkg;d!4nNCerXAI?*Qcu(i;g_puHPORY>A;>zOH|6ig9W z#!b~Jt))`ux&-_EQ+0Z%)JgV7r|NVJKbB0@X@l2EX)CAdbj8h1;=^nOEmP=BBHE`8 zv)yvDllU-O_05d8PR;izpehm8CD+v!T8L;1tGw?B=np<=3#)uC;^y$1wlLqvkj6)N zCE*%hRLomM%;>eXEuv#(B3s!)7WgnOhlOlq1Nq43B+Khlb($lR*qXpSj$?=-vAcvg z=j&)X3>}ViJ2LW&9kxY{Bp)9gR(75z%(e?EjAkPa5q-!^TgptPKV+t_LA-|P51Hw8 zoaQPsPzZjct=~ze?SIIeO+pHDMjtY3Tl`VEd?<2JA1l^AOyJ>{64QqwCZEf1(BXu4 zKeLiI;3ONb8}#$rRAoO zt)+`LCI0VAD|H(!9p5G{{NQL{3@Q+p%SAgA=Y46VcTK3B4CNRDs476gu)pHO>&H0B z>ZY#}`J2>~mEBgzI?UO#P=^1SZ7fojca}?q=pUyyf~1JDDo`xymF{f>>smL)Nm&Px zgZdt51TD52D|&gb5gU*6t;ItX(#aB{kNi1-`_?-pDK-mztL6QvIu*53p65t{{qw0h z4IAsEw1ZQ1dT%Vc8jO;w1Y&mrkCNkVsTn16c6NJ(;K4?meP>KI`tAzJek_su>o0G? z;t3{YElU)^VF^L->cpn&u_ULaX{&Bl5bsC`h{NVi+JCio9`<#hJZbH=kqVdD>e-6v z9ya5PZjBDG?qOrR?N)Pia1UD{ws8Cg%}qq3Tz;#$x?L|C+EcdF{d(wRG)!X}K98Yc z8q?7CHjENzW+M9Fxrnf1n8h^gMx33@%tZ9BEpCT9jf|n0ysKM!d-NF1iG6>c7`K>% z=bPH+w4*8^&Kfp})c&mxi8@xn(3Y~L0~Ds2Q`{NM)dwKdoJNanTv^ z7%oR39_8uz0KmuHfCM!(phb-^dVCrwY! zRec5@0@&9`9SSI=sz$1>#L<9{8u1t6u@c0)|N9zYAAzz~n3y&*rY_Skx?~5w_EsgV ze8*`kLwE_t&(q7=D-Q6)rdeuhK%S2MpBZX{X>W2ca-VO2PW1L0> z02p=;D}#jPt)m&doct-`nYMT#-}7i zjlCFV8DK2)rs-5EWe3=wo~F~^Dt(+zX}wil1$Jj7llaS z2@3oW#y(V-ORXM zkxX{w(Y1U$x<=JPS^K#rg)Ir+m?`!Uor@Q1gAbct<6IC`)Ab9MaA|qO6BzBMJVB6r z?}>;UK=jhX+@*~sbt>xb8oUn1%L5W8ezuwKB+ELO@s%kAYA&$vpQh8FNbdUA*_7QU zg{~r^4Es%golScm0c*$c2IolGLP^v6PNb+KC|dlelduWY5qqu&9(7W>pR|r>ax&NK z2yzrHMST=4U6>Z=*f9p z(Q}ESC+s5ak~{uNF-f~5N*Z0INbAm|c^?*_gsofL*LRufc5$QmALRYT`PNc5~ z==sc6BU~v!479 zB0Ex%5NAAiB9T{s$iYu3BCi0E^AS-*Ua>sRN;{uYL|zd?e$NMJar=v9ao`&=bqqJE%o(qcs} zM<_iI815%C5;7tR)J%Yd^oy~Oeo?*-3SR}x*Q&+BS5ekhc z>1{Cc_t4YAUs}Id{)RvE@BDS7JmG8F{1f>b3jQ*eDgK6nzoCdQe;mCRQQ>bW_0Q~ce){9XL4@K;rfzoXBdgg^CQW~DH6?;|HN zHVlj{U#=J%2F89}4pRN34FenE3Wr6hq5g`R;Y>~L3ZbT`f2_1yJ$DjnM&s4@K>?~1 zI$nJAM0yO+^V4&R9zObW@$+IR2CO^yJg6hhh#^iL{oy{NQiv;M;ub$I#L<9Q;vRdU zZsL@wR|#bs9y^i35umVSrJ`^IB(@9@sCooU`J0uB!VxhPj);mcZ-5e?pD8@^MWL{= z7KIrv{X2ynsah!evhqXVMTR3`jMu-cC>$9>;m9b3)k0x}DV+7P zP?%Q`E5k{v>Y@;SkRDf54R}I@TFkIwG^p$MilS~bsGExjHzkg4MHJ#34TW1?Rm6@~ z#40B!5pF1>qm)+^DB0e^l=pa5C_h+>^5oV3Lb+0Zk&u1Qf)mNV9ptZGt;oL}z`Le)e>os;bOE=u}ltQsU9G=`Sgj zD5Wq~oTd>qYB^n}JV|_1LT$di_jH~90?Gl?b;?<1qErXwD5>kwv*~()HY5bfSwMN+ zbe$?C@u-B_eEZnxI(gSQ$v%F%PV;L}-YryykDg7d1$u*oKzUE}7>$ghc~VIW75h6S z)aG}n8H`^Dt?jI-;X+I&$>s|aze0BQ8(0RF$k8{VORs_+4{#gq2vrN_Ezhf(Vr%Gx z8s@IY3JvzOI$<4Z7ot8FQ71ITE8dhlW*obpV;FXDbSp>k3K^g8jo*M(y2zNG*z+6S zet?xaZ;;swU%vY?F*;x7+bmzo4#b>+vMAFH4P)sBCpCL~nWEPItO|LqkdN#ZZ^4MN zvJ0imwMYyiF{=n^v6uMxgzHC~w*q+{P*#j9zm|6(q0 zoF4?NA4Yy3oBu-qR#8;8c_WVG43helEtPIU!R%`#@gZ%~!4%4V8=KWggUlY+Akf0M zWybe7<9gz4a6@c1{TC}9H47wPLMU>}InX z4YQiD8S7OZx)tWT7Li(-yd9csyanfcpzk}N?*WLy$Zv;@kKf`{BA+MKESC`6-Fp1g zGM2)&L@O0#U0zh7Ng>zeMO{Cku38k`42txvPI-Z=blMqK@*-O7p%9o@u@xuC24e>@ zG6oxyH^b0=-wFXkj(J0rfJd^PUGG7Ra=xc_b7wKOr#vC zuXg;5BwyG?YZzkM`?20(Rm|ds7kAxOsk4o%}B=Ayr5SYgwh)GiT_u4?vc)XXq4^8eY@v9cSot z{zuSZ-VB`%Ml-IPp_A_;C)r&ybb0|l%4X=)X(vE|qhP3_QgA$ijN_V(r#whiqO^^# zD!RlJS$S`=^7ij^QhG6IZ)%HMSxv>gDT?!lX#;Dn^~Z4B(9;Ii)1;53``#vWY|>bu ziMvFglXgL%+>T3pf#Er9b#19y=or1)q^Cc3W@vYmfrfWr7nTtGM44B9XQh_AabQNB zY9?xm{%t6d)Zqy`;){2ieRdYkz+eTtEooV39U_q^0qv+lDjp}HrU*Em(hgK90FO(k z%^v_t6<`qW%Jua|jF8KRLm>h)d5y`{HGq{}jwYb;_ZliWic>q3hBfCaKQYh1qyz5e zJ!UtJC88?>;YgS&1#S7pTIg+I?=1%96;Dg1v-Ud4RvM<>Pkm=44!4?MamIc6PyAP;`CDz4|n%>IaV z{Q`Ytl}fn*DP><^z4L|?vf&HmMZo#a7f!VaL^mSZbw7Bgn=t5Jx?ifpCO{F&Q&u$! z2S!jSSW5fSi5r)t$=_Qk|4W!C5%CiG(zQysZ%GIZ4&){DF@Q_DWrj}O*D07G5(4IS z`|KGyUGSBYlD_%pY`RLaOb|Rz*UbL+KWEd!U!gk7gEMr>y)lK$-e_MoL#M6Cu)H)w zrwU0QX5TVHr*2<6DQ(9LogT-JeKU00{xzCEFjNU-5o2il4N!AqQ%5K9C10-_)|{SI~HHcqv;x?U-_Mrn%(t|BFgoy3T@tCI6p`;n2H_1LrHIUZ$>`| z6X}~290WgJYx-&TW?0+)W`<5xHz|=$*6e@J&}r89PD)FdsnZ|dLu3$c+Asxim&Vd9 z{6VDq3VuMkKl}htNVh;hr)wg^_ z4sJ$tAFCt$qp6PjSP&3;E}4<6%3-RFKFX5a`yjUn=b z^cch3a{wH%Xx9rt-$)42-fxQbM5e)nFkK-mY?iQwX-8|kppEY|=DXabhBK#JoyM*f zz&}4w#A)+;v75ZbP4uQ#@S~M_{e%lq#Sz4l4_IkB;>CdwzQXh-v-|ErC#5TV9&}nT zt`ifosv#qc$G2$kZ5cnqB(sa)X^OqHU90%PO1*w|QnSzBSG0@~nqaaYG1gm9MkG)N zM>#kF(w68$g`=;8bqj(gbVUO8%??#8Rt$St49k9o82lb%43YZmUiHtWN$h14A)6_K z&zRV*zc`unFE}vYKimRQvdWGqZbPzd=)5i;qB5Yk_Y zx+DaOSkVEBD=Ix|8x@X(kA^C-KAw6^85-Pp5reVP@d>4xaV3T zBGTp;64C!h*>`|PReW!sn*>bA20~y1qG-HWU^mhQyP*nFjD%u0OR|B5WH;ON7h@A7z zB-43+qectDbS^mT`Ww@#JbXGr=QaN;nO6MUiqcCF;R$0OiuvGQ$#nEzVQ7NkLULhT z!*es`CsPg)HR8vV4u(sfW3nW^3CC}=;!7p|VvZjW2S#iSzjth3pMNBk9#s{3>=Q+e z3b1E06cJtB??(sy80Vri1&*!;x{mQK7@{p1S0^0DIWOo$uffmh@h(cLKhvZtk$a8v z!kH$$7w@9f)-z2yH^BnX8&`o2@`sAOdAEy*IP~4FoK=M0vU{Ty8Q0i63 zYdpZGZnUlIq9oj?Q6A5^I2o+^tHVD;OJu+U>HCrEN>pa25)j z6B^DU&d@VS!^s_{;4D&b<|hf9N{JUZXHbBsZfE#|$o*2NQQ^E}rb%7uX`z)$sLhga zPd?n*ro|UZi#lH_YS-dv2D#2+__Sh}UOh~Vx`H!wO4eFr4_8{OP+Ck$7A?vpUbOfg z1!~1L2wy#f!jvIsl8(iqTE{}$IkcMV1l7Lbf@(cy*zC}#vV02FdWGto6hT!g@q(%- zrAAfXSQr@Ui9ix4?Y@eIw3Q`pNYRkCDo9ipUY{ieW(YMZ*yEDx>)Z#pw6uk2Oq=Qh zQ(f;&lPab7l&`gXXLzPbe_L!mS8Ni;&on7nGTkH;&HhWnIc=s%s~Wh-IcKIxKjX*Z znI>JC>LTaTnI=7$>Y~(DGfjFk6=Jzl>z&W;v0v(6yL1zEP z8iUG!&-LfWVelF2bWuuRbeJCHlKY)5N-rG&$DzfX;qG*}&4!sK?GtEaag?<0?F334 zsZ^K~=ltdE1bPY?Eu=Z&pwB;yas}h1zr|vGi6tIP*U(<#Pa!GA+l~&i=nYL>l;Ukm zhd6ZOxh{PFy@gA~H*-HBRr`+(qeCg}ixf2N!># zxr-b_X*-v|rn-GatmP3-?QnsM(o_A(IJ)F0$IQ3@mQOE5oR3a$+dOu&-Cv7i z->tq-s;^SwrTTmqfl1PPGfk?Nln>&ZU(7UV-9;`+{T|NN!bPdS%`|Bwe*8Vtq$Mq2 z@x)mswJlascEmMy&cX>87viteJB)$$398kqm#j-^TjTeZ-kYv z?IZArD(6z|40GdAvzP+3BV#Uq?iks6xhOvJ&IZdai{jzR%FfwA zrN^Rpw)6d$iJh0X6gz)}AFy+BD+?&@dv4WwkiW==HbYPjJ{61hiTEBrIq3RUE=mhS zGkSvIE^MXYKcNt(l+bcktd7ft&6iK{cY#$dSEQlz7&Y2cNVy{9#nZ9E)-wl}+eK+5 zB%ytoTGD#{B#{!)A|Dnmi-e*pdOqIy-P;K?_i`6;Gkvi&JOjBa#ZoWEbHea8I^jel z0Yx8cBSl|rt8=ssDI;%IMNe1>rI7>_ZP8AO4sK`Jx_5SKzUU2)^*udBzQS=-C0eKd z6|4QL@o#)$BbtNVCt(l4gGoexTXU$$|v#pJbK4|LCHj-e4DhJ`b-M zBCgZFS}dB8k>)4*IsT5H9JC|LMGbw$WcT&mW>Jkv^UV!&694L;XaLBmhNPR~PYf%Om{JYLBkkDv$6P zv6NCsvl7rPR&;eyir-JuIN!Sn716W=;O*PZMd>sy8U56BPJXPLizq!8Q9hc(<-bD| z`(5QYW#j1y+`!s)7sXCUyeKxYdo7CfmlrCfqR&jBHoYEWz25Gw6?u$5cC2Y3nOIax z`8o+P_F2Y!&RBewDLyHMw3-!a-9s5<1#3JVp(0wr2DzuFi$@vBshqd%y-MxX3GBSR zZxrY4&`X?m27bVK-|K}A627}$$~>FEKHIdnOSx(4eTtX3Y1~cXrpNIEvw#cxxQN|! zKp$8!iI~rdO+#-egc03{^2bya^f5CYX`W^108B8LAe6FnIlGl!wjp(K+v0sT$6|WMh$;(pyccCdh zdXMD|yA2j#S7UX$_3l1^vP8Y*xe&)bV1Og-JXa0n{#T_m=7~wmXHyB}l4pia(cQP+J&eC@wR7Ahm z!BDW~Zq@VgThrfdd!q6@#q>MNQa6X~8?XHS=Q`Z3o82SrdLe$GT{p>LsXT@w*5g8AD2?_?2n8zAQGEfz7uT8~$PpuL{Wx zhF$Yql$2FwQt5-qgfedDpfZzY=K*uwIk?Y2SUx7ysBq%Cm-hJ@SbJU>R2~FixcI$Q z>zr{R?07(cDy3-WM$zc@1@@gi+BbZJzeAC@9!(!i)n;0#ZXf%O1j%_~r_9(Zd;J^GR!-DTNJ&*N&`TXjt!TDiugQ zn#MqzV*uOM;R@RveuLe_=OVT9RfVVcT!hbn<}eby)m4Yo{(dXSZ*q+}3{v(%&Ec1j zF;&X@@COEZXH%}=YTPUa-x9|6D-aDOTEh7Hj=%zaJ`V9*!g98Z(AHcc5V@9@7^pPZ za4APO9*H%aV33w_f`6oRGx?sdhn}jryXq;myDIU%GLtq7z}-UOqfZ&mxn(B(G!hMs zd*6sth-#D}3hh5XMzK|_Snon*_*JafQiPOZs|@%;YLQlK6>9+BXh+5>#!o38TFd$$ zD&lVVdCt?pFIqm&xn}z9TE0+I%NJ}~E)ukBghI;~l$P}aXVX%7ShXnl)&((&ZevA< z2b7}QSkc!I;=R=>+@{#7(QT~Jh+^e(+gK&-ayo=MG`6vNJVjPDxTB_SJ8ZgjZ?1sd zDipfyP`bTQZ0QyXmm4xvQKOo+nxtN+aux|q z33(_L8{W?gVnU*$8wo=sr>%=~&}bw_d`Jy21!_GaOENDOs!@1|nxZ3kH>g20ML$9O zbX4_VG6C%Q{0@go)sQF8L~$YLTT`4?ohn68+C@qkn?Mr+dxcz-Cg8|~%=t5 z9hFCI5#J@uZK56WzlPr-548ilHlw9|v_p}hV_cM;RhrC|(E)Y!=NLS8u9v7zsGosj zF?*;eGwDRBGVB%34P_>+9qS_J%Vj1dmB6GmIsxop!*?IKqT!%RVl?doO?@S*Y4m}n z6$o(4;NZa$)eibV4c!bRARVuSSaYKfRF`hI5AZAwqz7Gcb5Q8p zn;o13 zx6eT*5m%5epSxT;0WCz&daQ1mPh8_ti*OgcEx z<|8rc%LbtgQGT~j%U4RmL=Qskc9UEbIWUVaa4$s^^!A2Aq@vzM6mEdW9P@(7+71r_ zETx33cPvZejDq@-%m82%7^YArsN>o+MGf)>VBC;T#7V|dbZxGUTF`akL zbbUzte>$`L@FA&Oq@AL6>x77cp8XE`X1a^gLgAn%>>W0aDA@9-gNDp- zQN!Y(zJJo-jMT8eQ&>3ElQ%M?V^UO}aeX~Qy@eEld6&#^QIk$0_a>2>;#2)eXr_Ju z38QAdnCYVQjLF#l$_z$>LH}8>fl{f!R~YsNF_nR0R4ME}=@_k!%0@KV*n7f3&&=Y5 zgu>alT%<}Qy?;%#p4c{9j12S?Tlg19MI;$2f*NwN6~f?QJS7Gn zA>X}po9m*KkrEh#fKM(``Ess{(&-_56XwsSjoe#~o97}*!Ww1eL&}Eh)H#)F=E=I` z-^h{pb(u*eofO_3LeYWjF`RMbCheQ=qQ*_iO`^so{yHx&H|e4UE>b0nu2dyA3Ps5P zvOrD0_f^ST7t~Vn8LQ;`QsR=U6bF>tuS!IXC8yR_@(@a@Hqg>`%ocB8^n1f-;@pQ+3%@kU#D>rwkO zk745x#?|3;n%%e8V={i}h{ccTR&?4xhbleBX>nlqwtsXH{l$*??PD%-Se;Q>9QqI)(tVfWW%Ndsc&EwcMg7&1sv!CEK&=6I|p|`7FX@69&h>L72 z;Lp7(;`ZPu{iG|)O{$irQ4!}HT5eLKrD)l8IYo@~Tu*Hz&e3bB*0d}R{Wn?4&Ef4N zcP&$sK`Q5+FPoR?!5UkEbHbjyk=;DSo}s=%U)bjjwQ5})3=H*Bl?X|{NedgqkI2PD z=Z*ixLFYWhTMf>~gtQ-iqklLb^R@X;xyZpxLe%1lUmZm0*$-o3pE@A($mQst5fP$} zhgKb$Hg)WCALeyy;H-;BYf) z-&+A5q$v?y<^1t*Gy36a7d1Y0xEWF7_#@4ToGC||(G@FP)S$%?T*#)r3HUFo$Q&y} zY*HxH+7@5n856*v5AbW*bWkdJF6pOW85ICzz<0+6f+LBFF}@97;UYZ=El&Q;L5)^M z9u7ES9wLeY`CcjU&q^1De%{z%6vK{qTP(wjQH(L0k_yXBDi0Tqx+wanUEQQ}0(m37VagJ9pYE^ZX|?%txJS4NcX~!mLx~>Y zCbSe`nTS7PzzFqMMU0?g#v>*az?rrv2DN`gRB{*$TWIqx$CF#AE+m1|xqCt0}QUQDAz*x{rSajK13$$8|&06oG zG(P5EeZ`$yHi)RQ4+S7 zl#7;Y4c--#_nb?012j!(Dcei>J}=u#R^SKT;l^!{cercX#Oh6@&QrxFRBU-s@>FpiVm$r9M(_Nn;9>-J_)mGFC0C_1&>1|`0@GlTX>-1|b2wnrZUQ9Hm+ zR4u?x-yRF_AOrlv0(ek4i2`^q0`PMcp9Fx_(^QlA#Gu4IZ)Z@}ZHn)WLILVigAyC> z%%I^Cw@4_`ju{O)?#v)c?6Nb1MoYptq4kJp9@d%J=IT>8SiK+2d501->@G!(ipD%} z>Lmaghz>uz3D0-l;20mi0OP2ZoAG#uDTFcb6n02p${h%jF_3$t^o;5Jsl}b&4t3DH z&Fba(o#^L(+>96PNcF2D6fb(oMGpRWF-Iia)%-V%!zYj_Fp_dnZ2U`l%90Cl&%FdE zQlD#P&qyYqR-bEr`I1Y0uGw#ki}-`W(k;l#%G;-Peff3^JbF;6Xn)B)(N+i&ZR82v zhAnzRw~c+_ z?xW=sHc#PM`eBCgu1;T$%uL)|H7Kdj)ScnUE0J;G(D zZBTC{zh>xll^^+S)HSceVrQw){@!r!Y$_G~ zW_x4wR8#aPU)Or7Df;^eTY9Q#x?{Ul%POM#cCF`W z@P-SA!iQ->9E!d8hKtf^CT5w%G%*hSvhPjoC_+?VBu$Eg#~*wXT52@|{=#vCJ%yva zp>E-lR;~FbRf={!3Zk_PjL9RK7dP%V2i1GaMQQkEo94yUf2dSYg#e z^yb$;lq;++4@HZ>>BxL()KUoGiP8$bH0lh(mLXU0EPnCZmLXL{ot+xR3Vz}chgre5 zBTYN$@A)71SGpfzid?JpMdyA-xv&{LKz3 zd*~E=NM(}kJC1yA zFN{WC$9?*ugX->+*$ei|{KHRKl%7$ZOb%>lVqc^5%5u14XrQmii!UF3;OJ}ixu{9o zLRIs32u%rlgF!kG_s~fPE!f9CnohH&g@))1SLk1ykaV!zq|(`{dwwm>d8XW?sry}& zc>g4mW)D|Up6k^-UZlb)Icf z+c`?oUvbVpvrQ^}58Lo(o8&m)qSV~kChfov-)xgI-gk+haw&6A2^z!+mrgQipCo)5 z$0xb0<%AHV%vDnUiE}=p^H+tAn72i!yl~M2Oi~C zs(tY@+7*-~t*cxpp3(kyxsFsR`A-N%xtM-2MqWFju(IMPp)w4p^9FWsMCn2gB@l?t?H z$0(=*5gpI6cpS_A;YYd$Ulxy7Bh3$~C$zErpt_9rK|g{xYvQ8fjvTUPF3Z$65}3M> zu}nTs@O!=aAq9k<;;r!VA+`rzhtn77;Nrg4fYU&or|y?^D!f$jN+bOu|u(Z8F~) z(-~pQXpI-WX@##^mfeMQTlM@!An^o6sPUd@A^kS7aA4?A* zn!#Dxe~hk;IZk1j{Xenh22(gk^G`+bDa>a7r_!(CsccGuUZrX$;T|75WLF0Iy(tNp zHd1=!T@_^t+Wx#p*jAh_U`Uw*Ju1wDs4q_2(nZR-knWF#Vp-v|ZOF92Zlz zBV!%gAY#gXx6%uoe&Ofn`@MOAV19_!bJPW2h~d_Aq3^!18E$>T2Vj~`^DtpAp%)WY zf9#;EzJytt&oSvGQJ_jF%(6bg*=3GNrC++p*=LSPo00o$M(CeI)uQ|*r7=c0$VRAl zOdH`K8{s;Hl@SiI5k?==MmU%-;gmJ=I>`D&jL<)aj&k~2$81LUh@;;8N{sLk7n<|6 z%?KYQv;x!gTo}P0qK^}@PC4kauVI8Cb4)sSyaJvf6h` zQl2m$E)+;lCO9|FF=^1ZE^=1QF=^(v|A7=ulB%S1`$~R`l zJS`KI@iyDG-)X32b!VLfiqN)}M}M|t-326a^7k6O2t zbsm1ra>kVmAD;oN<>;4x6us7QLiSJCG(I1fe$s|I_rB|(D^9qGc(Rc_U(G2t)#1s; z2qeU|Cw(ax_v%xWPE%$oYOA3gtXtC0TDKjn+bsxNz4{K;?N!7{udZSozhDrBc_pIz zFD_~r_5_D{!(^yD)G!nr6GBM!?3fN3J6K23w|wkk{tJJ>Lp$x_+gu*`)kO}~zrS0D z?|n+Igf&onKbPK$9Jo6I9s19*-+DOhm;10n!7=o0oyVWGck61$H>Ia8kooV&%xU0n z@QOrS(p2)WGSEh$Xb}7BG**{1@l7k)3zYGHt|K?CB;tnMHq%tO9zs#><2tHDxs>=# zmpFS}^}CfSrHWkh6h~WCo#v`~_%~fur@5-OAgn6kG~4l)-?YP>u45YlPP49-&Hv!M zcmFP4_XnqDpL9`5QAvpY=8_u`ET%uWMmn5wQTje@xqmtT@Kd&KvBJ7%GG$eOiKs$e=_v*J8$Rlzs2l;R!A6oo1O)m6a8-XbZxg(Amvxn`wwp{kyW z=xbK&(?;De`sYxV7b5DHVSj=Iz4_5~_Op-|-5B*rdYq>TOc z|28&;v`Vq^J5MT>Hf!%?YbX7st-Y76eJ#Su+I!i8;lH%C_wq$Rm?*X*V=t>^S^Hhi zTm6?<`&~|b?{62SgiFF9I>1G*{D*s+ciG&h{&7+IdRWO%zq8RY|CQ1oaOvj|43~s& z3i$l=M_ug5yOG@F7)~E3^QUJ#DmMO%3%nWU#%F+t4ADsj^an?+S5bd*RA#&zN7hE)m`tl+Iz5Ip18R=M!F6GsEW{K8G+m6?N9wxyJgkcWV1HdVrLRYh zz(~3TF$w3O&;#n;CDMRI-s(M-*yfc9uEoyhmKKi zJCk z;_3WG1l0rYm9WMJhuc~(zY^{zPvKXxJ>;U*t8kZEofNlRfprzG!0MCYR@bbyeOy)X zRcyQ~1;))n8xc{9w4?Ux(P2uiP z_>B~;aCa!&yuOK#J;8wcz6@<44g>F4qx4x-vqQtF_m{cigTZJM|FSg*55~EXUvEbRP!wWXmVwZPU z#n@*c?6W*o+h-u`^AUp9T$|r1UDnV|ktr%it!$_pjl5;z9oq7asrd0^aunko)L?E= z$_jNvem$Yka1dJ|Elpb?L(;An%6Zrd7fFmxsl^J3m&`S(hvdr^${d{6BLz~v0BPKwIg3#qm&PUSqAyc-0MX z4UbpK@O6X_0{mBv1^hk%|DXadLfZ)a5Ab;bzrPiKCP!70d;VGtxef+XY#-iWG=JGa z=Q`c|>D~tZN+{^m5H}d?XbR&7ez$|qx;AliwbQKz;7y!xb-G)9bNGcw`$;Hdy9#&c0pw4%s8W!**2f^+#t5%#q7bU@mKHS82)8j5K`5UlrTA$(M<+BDgxeY6 z-Ax7Ic9Hh3P#~;Q2tREagHT;gmLQkA40 z5o%O8N6t0rdyC~4HkR8Z(=MT4`K4lc!FfO_qlT)%9B;V0*OOo9^LwdUO7z+gW2Nue zO1GTnrnE58_r}s>2dz3!YxF(aNlm%(@m=6F*>-~GW8Q{0O?_3?q~-I9^$DRo2mFbP z{|j*Z-D|ugHV_I8jw=nGJ0HE`>1if4lSIuCnSL_(I*;>eB;leAT;~y^IX*+Rw9gf- z-+n{Ynv0EFxHYwd-+nb13%J113$9 zOl3l$*eRv`hzpPjmy#@&M9mSI{xlMC^T=a0lAt|q9*NPO8?U8)wP5PCF-H9fap-2Y zU!c^V5QoY?|3a<)1ohH|>zXTnPEGaai25yGRIE=3W%Z|U@lh8-GpHXgi4BB8vx#xs z0kz0Lrdy|*)JzgJM`W53mxx3sE-3H@DOYrUVUq%AtNNL& z`~4Z{z{Z8WA)=Z5Qu2cgt^Z6`fSN28CdI;pwVTa}i5CGlw3{TE%7g;=ET!ERWU9TA z1ZI_RZv0XV%tsk!BQpZ?QHEJ)YM75Q5^D0NFxj_RF=3dGbK(=GhWUkL`bj8YE>aDMLUF*rNE_Y`BWSt!m-sO9NKL*)9!O#ezlcLjKgq8|>=I8(A0_M!CZ3 z8KJ^bz4$xL`l*MJdnLncp@92GT=ayxZWtY@WY{Crs8GyS^1CXcy5)0Cs+PoSU)Gv9 zSI#x*1n`f?Bhe~;(I%ij4HxT5 zImj=?VmUEG$`uBGyrO|XF=lj#83ipyhm-;-A^Mnq?Yh_<%T>QGr&krf^+Ig`|7E_F zmui6jDpga$G&uq9&<|XSC-o)Cl;ZbNX+m$8gRZ*FO--&5R)s=S!Zd*k6kY~*(Qa*- zYM{5MI1uy%$5EA(*s)cCvVobA0BgN>nFcc>0ngXqy)a?(X$RG5>8A8-0W+7ujBM$q zCIf}lWT7cxn#To}v;>&M4RcL8DPqr;Jg{t8g7eL}CMC3TQ|i9CCUtIw?D2kYxOGbx zpAy3L(n_kQT8ehv7K40w!miT}8qrE4U(RntEHl`7=}O5JE_p(2c38pO9=EuyPMbDrP@PiL$rbTK z8(*z-mT>GQ)CO`3bKY%n-f~uu5uI~|O`cF2yO){WzZScfg;{u6Rh0oC?%r0SIsktUQ4l%z07QaLPh0bPq z;Zz{h#_=$7oMLf2{9hbl7bPruSRB z2}@v4*4ceLnOd}Q^MNH#)+v~Vx3#da@g%=zp~TS#o03oXOcRPOb6Fi{>A|Knx{aHh z(+)PJHTW^_U{m@BKb9VBO6}TOov6?63%71d)l&W&p+?0JJkTna9p(+^j0=UmMg4Pf zh~7|^m@Cw%xD`3oD16b!uVY6XKXqS>-=%Hcl!%)@E|u&9grZQ3#&Yq;omow&d`U7# zUXpr$RueiLLDq_J#r{rQK3Qrblvq$ZDW zaNMBcd{5X*rNZFuw`*h64vcczxhcgT3IPE1f?kgzrU?B4Wnt>QyPcbweEp{4Q2#AO zQwn_4W!_~DI;XunHh00Q#N_sv()B&wl#Yn#ABDmw?d3z0q+#fh#3)xd%jTK12?dj2 z&D1B9v3fgU!M`~kM$DD?K5WEWJD{3*X*$-3mH}j;I#<+RBh*@`jx8GW7J5A)Z;rRf zLsgRfPodG(a0je69Wc1><5R@?=j6bSJVB+M%2MyYqo^*;7afthMP+LT-A?BlFg=zg z+L8{W6wm?#Z!b=E&}&tdob8s5VsrKV_T-Lk`QoW22+_YKncrRO-$OoT$gybwLl;mfYXoNH+^rG$!UvvF#2J-X&7P?W>t?acyD6UgFZ8(3N zXVULCpgADZUP=5yC^DT-O2lNLC@mts=%Pi;m&El# zkx4|PcZG<=>@Df^od8IbT&Uxd;@2euZ@s<#MV!)Tb>yCw6GCpB{Gkdt@70oAV zamLmsXr9s*vxMUd2ctO`5Piy=2ZI+s_kF5(rCgdvpBg>>a?r&+(N_n;RL$+{X#~Ba z=o@x!_l<5!FI}EYDg3<%{lLq!p&Q}8xP5A$nB}+Ebje6Y>mFo z1*e+RMYmWgv#Ql1f8NKn;m84w+ir)0IgtoIGhW#KfFxnsP;vd&_ zT-ZyMA|>=mw6qY>oeGZDWp-#({GNYH7pxRZ@zdd|-atKn&8JP?$y_7&pjGDIOY*Jd+1u zNLN5cBJq~N7Lbx~z(>_0c-m(%0OoLCwr#MQTG=pZ<$#wTZSC_@$mf?iMF z@SZ+zVLnv~$JSp)b1os89S7a69pa`mT){azuKX_t`EJ$PsTEL4&t0kJ4D)#1ZvCxp zNE8HW{p{1>G+~(HLd0`WMA{ zu!{d&L3av8rZZ~9Z+|;v@Q7b6A{HqT-rGe)n=e%9n}njYh`9R>bl8|wtQUm>@0K{{)KZfw?uJsx^pYg*6l%-#E;5Ny zJSE`Q_jF9v#>}r2H7f4JgJI--d;|Do+&yk;$gkXu2Fl6ppGz1GxVKO7dxsH^I)C1S z(VQ}#dY~Q+%tcdM#rt0`dUHxWO7Wl*SdF2_PnpP)<$=?vwt_)NJ_rp_rGR?kTMh0m zfK$7l8lh_qd889#0@%brd>ZaX1PkZ_^eoqU-Ey{tH%umM=O|D; zJ8!VMAhN*kIvDrA9!qP z=?Z$rcH>w3-2(n_Fi=QUf}rtng~+J58_trJM|9pfe>7LBmGq#&{kJ zX zk%PV-sX<%@$qIxUKbsW_h;G8~W}yJll0m#!SQ`j_6G@dKz41>mC^`T|{UU{;15gYr z(kRrXG&Tj#(H0j8itWPhU7SJRS^7`|6%_3KdJ^PC`$vxUT8sE0XLBILk zyn@#l3wT!t+|&@qJBGb}G8)?^OO2U#!{Hu(ej%yaN(L2r@A=O-ul9YsW8keYPs$4n`mxWF>HxT=(mh=Q%We0THtg$ zBPcxy&*NL@FQ3|~jR7t8++U9<$vNMo@@JC?>a|GiJl~|rK{q8HIn$gnPbl3x3cZ?$ z-b$dvU4J*HyCm)rp-6itfhg&d8l zxlp5b;~?}$+w zUR6ZPF&a9j%Z#4~B`ke62Aey^$XLZrG;54o-HBhkHklwao$Yt&SlEyImLg9{m%NeI zE8O1{!o5O`3J)Xolj6R0tVY1XD5c0VA`m1eBqx-(DW%Bg*Wu0x^K(x+l1Cs|+rjPGBK(;?{%y3@Alu7+>t_IgG?U(=G?2tzx8XAIsS4d z#=q0|%J_HpeKP)ij2{^PTHFs?^Y|C5syJ=6D4Kan3ARQ-99WDqge1P{8J&IuS4&>F zM6T2ye81WeN|c77@O1>Wd!@nrtsk(t7srf2jJOv^Y(<2xSkCsLG+6Ox#1*P7b!j+> z=&JGP!fX*iMC4g#uu>Wh{#-NOO$~9PP#PMEjJjzsJ{*<3_t)`mYVyu$rBL@j6y-{~ z3iggmDR;w_ajb@ni2{I)$pJ5U`uS%~poSkNvbn#5E&BB%W zk%U`km^5Oho1C5*CauShq8TQ2nuV<3Q60$&9u-zX?gqttm16!mCxCf%BmvA@mI-q| zet`LJWtw@`3sF37FV_iGlCVZGujB+U&w5dnSYt5rugZma=4>}H^XF%S$JJ+=Q>kQ~ zX>bpH(;QSmvY@N?h>kdaBdJY({p@6SlfBpBcEemPz_NXzCU)J_~Az7XbaqwUiBgz zjb1U}w$m26$${SY6;&2n&m@V`Gd7CrsRNvjAuqNe;zN-t+s-sR$W$>xB6X+6*t$yd z^+MrPuNdr-eHOv2aLMA0ss^f*OU~v5*t<#+-crx`z3g^-K;-z|G*gYl7qf@!cFPrh`f}?h0i$FRq3YmeTYTXt9AX!mGEjx zPko8q;}>?1?<&PTeqo8qJya5kJ}Hw^xW~yF?r}28JqD&IJCzGXb^W5; z0uZ-HlYVHk7BKyf%k8B+06(i8%tVkm|nEC)F- z!e8=~J91|M$2^D_J*DKBLx_nC@eT~}9hU3rcVJjiXGabeVPl0tR73lbk&Vwi(u}Bq zIxjNmgTu`z_vK{H=8VdQlO@TC%mvHcR(_bcQs?Im@7$;18rs+!XoBqp_>p>ai{Nm1F{&k^I=!b+wzgcGtgR ze_*?04Io+7%MaTEDoemzm>vtt4^Su8L_qlgs?)O?ls^J0fSSTZi}x} zx?{b-Dt%SiYAnOL^f`gGFA7%D^HH$+`uxLiJU|m=o_~efG2II@z5hHW_})CCdtszz z8#J1GVHs6(lemZNx4})0Lb`8;=^#~ysaqAUDFy>;`hoz<-fFkknHOxpiVOL?zNQLQ zoo0#}6$R{3c|;8X>dhDNv_RAl3m$*GXkYMXh^J+FGHA#UBMTl4VNcS})oIB2^+pUt zL287hjLSD+!Gg|%h^hQLk9d)E?$c5>AETbHL zwLn!;zD;voQx>31@JW9~1IlDRIAyFYeg$5!4Y_S2%R!iswS}iq5^iRrs$>Gkw$4Fi zCVl)0M!W&jOv;k@_RfN7CXIj9P0mr%O#1d!ouO1RbmRsUnEM{Y{2!{2Ac4Y8#miowL zlQ7sK6uOR86VcZs>L;N{y4PM23eEtpM{V@W5)8jw7=vXzu&mvt8qIh#nschOmgCV3 z1ekon=BJ4UVh2~rgQ0qUTVLgl72gdTd4Pc^L&^1Cq^NeOJfi6a0NnnXmN}g}3~G`k zMch(^`?fMp-0+(C2d@{F+2&;YB~h9Bm_!*dL)f$s3QNr}DA70Hq}CFrMIo(B?=G>` zD(k@m2$c$&V`hvZ3t18G>spb8jFp;HNs-l3gcW&=6Sux@SLCspiacglq*B-{6AG}4 z3`(3i-=wt?r$r&{v04<#@mhU*3x$99#fsW0~9Khlco) zKwK+~o)Sh3@l{T|dWVKsDVdfD1;j1?17fx}=nLc%U8(>Mzf4h^72jZ>$9K3XEuZKO zqj|D}dc3ItzQGu%No!$nu`pnOZ*yYFn;Kw-WNIN40C&_5uz#Stx6m_=N`>FoEn|Sa z$G}`~Vew9K(|c^cNpER*a`0-CwZi5pVZ-n~WOy6j((o!J(=wrecR<7Qd&ds!#=Q|y zD~08lP;D$s1&{L6xuP~~%Ng5+yR^BM$JvgK zTFwxF?HR^avP-Z%!wIW*3APr(|8k+g_O!y*ZTH!*ac@ky0%=|A7--Kkw2Ivt+Vd=w znk<(h#ZrX5c_SzOzT4grZ>)Jm#71>Rgfi$PVN)g)pf@PcEB3$_exGmBVoB68k!fR` zv*7}hXz$rH!&Hu{1l?|-Hk)r_#ctcH72Bq+oT#-1qrTb|R=wKB*lIhooUvDJJK7$% zG}%GNECJiuIMn2_HmcwWp=`OgIPvOt?UsA1rsdwUTP|LTHxLS=yrC?2{9RbC&Ognm znIvkN$n@4(T9JAKDq3x9r$E{a_C9OZV;|lOknz6#v%>coJyw3&scFPV7W8&%8u5{W z&W&i2$S4yEP#-AdOZEZzc?(QhEQxD`BGX54&Q1$VI~&Kc?hfEYuJf9-?NU{SI1uK%?MQ5Ooy-y_QTs zdqL8<<4wwXO* zyqLRcn;bP4#!ir)!9WpZ2>(MuwVXVnHt1i+K~9jU4d%kzED>!m>lG1gSVVg1YuM~V zZIROO12?7UceZWubkH3!cpz_!++#mLT?`SK4+u^1QwNm(7&zNd7;~f zwyLUeA0V8jTKK(mMYQd3AL3QGyziM0c^S5Z=qkJ=I*OpI(_RJRc0Gs(0C*v(h|veN zZLfk+L~(vkM(I^hd^la*>VSh*9)x1`MR0eaDZ}YHq#i-4t_wTxKzE;qp;t+Xo34t5 z-VM;}f25&z1N4Ci3iNJ(UWEvO&JpJv($Krvpv&gh$a{wFc<7sOkEhO$590xH-~yA%Usryf?<`ti($z=Y)L;U7_67^^_doTO*RQ#v zt>fxwt@ChqV^8S$$`Q=ayy}shdg8e_`KVi+HR8qHjU075qVkA(VzTngQLT7SC_uQo z@kW^Nv!nXyEaWXLKzs1!g(*X1H@GGm114mnV2{Qh>(A&$f!~cEYxbkyp_ZBhyV+(A z9-i1xhVYysR5!9hKhazRGp%PWZgbV-O`SqAmuHt;C-Znx`0K~g5aw~prJrb3TEd?q zQx^5^0*#?kWY)hfS}$Bfxx)DLh=XQ)qFrhQzqWV}VezRI2At}mPqnTq7_FdN!5GvF zP4%{FCBM%Y_^EQEwG8=Tgy2VOIs0dy{x8Vl6d3||mr!jqc8XPuv~9KBD^~HA-3Jke zrps=j;`Smgk7$(v$7ueU)@BtWqLfe}t!7gU`b>ihd9BBXY5}nIdTqgBJO;rt>ccap zeg+u&@u5E4VXq~lKAc6(5gOp9@wu!;?t49%z^EawdhJFuR^>CcC(}(tl*Y?k>%Kr& zr@D-gH*7r>$|F~mK=Nj3Xu~aN4FK)lFV!Pg13Yn6eW?{^BshRCFGLN|nt%OL{K^T8 zS07W;7;1=Ol%Bg?-VyQ+f;wNJMo-v#!z1UD;0bE zCDf?s%69P(wHWh~gQk9`Ezu%s_0Qs@SO2Jsf}A4M#^`b|`pjZYqAlj#vMx-bf~>*nwC7j(m?A!s;LG zQ1Msr;@lRKlsZt=H5o%O8ADL)U&mT47tA~uo zEj0Y(BnHIP!m14Fu5`YnhoYA5`T0R2A1Yv+#mon5U?QqCE{xW=5WcFe{V|2>WkR9- zNOg(MH4-&kD3S^rbhPf!=^^pGg#ta_p;Pyr1tw()%zi?RiiZ3((-^K8r6&6vMvmwQ z>Rc&uN~qQ}kEql*`jUe_wDc_Hu1Gr4QUk3{EzymYviAxF_z8wu=$s&N>x3e0vR+)U zVZtgSs$fv}Y@(jZ>NAAeFimAlNk8HB4$)Np-YWYi^~J+fUguJ$_>nP{-zdw=f~g8^ zj3xA(5>hKg+GV|zbeq)KEcF?YI-8}&oshAdXf}%~KB2v9wgBOi!&D-y)}9P~A(@}% zbDk3?qz{|V0B`!)9g9(0hOz|M??P<=A7_BOepY6AoB^i&qVYV=vH+nS8IP-Tq#BL~ zp2t}%X0b~+&&Xf!DN25Rke0AcOAy9DxWqtp@BigL@JT!3&Ww618?L-bQ5)3N47LBS z3hHWxy5d(=gR2>YuEEuOah25IY6eidb^3*dp#rN!*z!IxLSJQ}&fk>KS6OH;g!sO5 z6`u5)0`aPV2n2@u$qLD(@;Z@iWW35o5`?cRgo#yqGw3^k@{3S-eU-siX?-tIIteZL zgT(*T%<7h^M6<*FVl;e8Dc|KzK~BbxaZE ztZJwftY8<=Rwg3JP?JOUw7VU~|Q_O5WHjA}f@UPNx z7HfF|A@0mn_-@LSZj@%lEnVs$KKEl*l!`jUD$Y_WD)+~uJz8_A2*3XBXb{#@?Na`x z>`}_Jb_p(Jo5mZNq#x;3%qSxhKGl|tr3@c|b_l?=vCzDRqdzq=)q}?xPDqQ(R1+(1 z*iYN6UVFqdHFK=BMew`Dr&UGqe!qWtwVb`dSiy6>7_L5}8!>=@mKE zC1*+HZMsJZFeYu6mgSBlLn1?y8r`{ZTJy zB>j}pOLbG+8}(8;^B0ddA=9pUnf!p+`^`!R-ISb3=_f25`mxrO-u5kRhk>jWC3@e^ zpwIFZAX9+Bow6I>|27Utu2rpmpBk+piNze(#8XAu0nwOUJkBsDCIoB zt%nl{$Q(;TJPH{eo8BJQJH7lZELs**0kn0dWRfG~p?pzuAJhza$Y)dX`e6#^gF>NX z!P%6=w@coE0m=~NdW=+sZAy-UlD$%tlB1yHlL#r$=OH=Ub_l7FpG)Ki&yE?6N^I_a#>1#AL1X{G3VI-rExbYIT8Pft_2 zFK6BNBgAg1!Uc^iTP)|v-L^)`ahHoF)B}(Xal2g3wZuLC8s6OfOQX!QR8qgtFsqiR zSRvdKQq+cY10xMIR!G(P)*mCpNL9E&x;2^Ez_rGm$A&1FI>a#LB<%F{y86_!*+c27 zN?z5~S1q{y7^QG=^{KO{YTB|07#s&(a6^nI+{bLVDKWEQ%QSJA1N_%pAf ztGJsHmq)bEz$*HZW?J2S44L1r>}TtJ*ev45p>Z*9B`_JLF-ouN$118};jP3GUW!jT zPglVaMtLp5QUyo23Z|c@5gf4_{D{Db82l(3eCv72;GeU>e?|xf|D3b;IbRIENq`*_ z3WI;848HjM%t$9%yI$JpqSg08wRUXuPgtGb&bJ#~oypX#x!ve0ZVuw|h(2MXf7V>9 z{0YP6R~MhMz0SQLlc=sa(IhHSHgyO!DxB9%G^y_ex@_}vrl3XDZMo2-49RqzP@}@x zb)iWQTA43WnZ?fr`F$nmiCVSxg@*VF^Yc8xe9DrtLxdU?-FZ^%A!@mOpM##an6P6^fA@`!Hw=N|_hv$)*^Ka^&669z|FL6w5{3I&)xvVba4>x3ey zztvShIfaLJ)nKiVXq+;p_g+P9XmWt2>4n;=>V%ypSyI3)1=z`k0Ntny?ayCBA}ibc z=rjc1MvDd+!lQ*yz#K?wm!?E%F-RJ6HVybmpGpPEvHN0FxCbh<$j~a>1DMpLN(!u& z0<1zF((cc&tB_Yig*=-ImBM40P~gm!{h1P_#ULrK78PLsp20v7s)gu&1%CVkirVU7 z1e9ofks9X#u`16Km z%t&trD9S@LI4TuDEgy^lHU_|4EflaZ05++G1~$e9Yz#jsszqeA<2l8zJ|g(Jg$8yn zfc3dpfbk~<%P&3~Ff8u)eI=A7nCeW3!8Y9hxPg}_aB4#LEJ8e0P~r0~RdX0Un^SWb z9V#gF3=3g)r!-;n8Pg5mlttX>s*kew9m;s@mjeTgF+;GuKQRX5LdN*Wr3&Lho_KwZ z5X+*4EGzpmZPJB;geT7nmFyHhJ;u?iE)&x|#t8{6?T-9-&Gog%WqqyBLX%1a;0&Q~ z*T)T~ccDpBTG~bgXcMI#Rf|fqr^KkXj8*%zrBZDft9E58>Hdk9@jBwut+Z;(SO>UB zJ2IBB23SX2!4?R(GNGqh@85|4#x=FZ-@-OO6i<;wZgnVI_0PluqPu~`{{ zm!EhEYimvYw%YVdct`CbO{Zz$Ct5`_%opH;*4tfEY z`DNjEJX}kKeW!3H`4^hhc4sn6{@!p-U1-wRkerD9vhN7OIX& zXSZW9%_(2CzM|$<@NBaehhsKH$jr!Sr$!zHeq`)O!gM}0xiCywG$1hoFM21FGGp?b z2KO>4)74Y`3_h<}2Sono<7wckTj$nO*tn3dPtubZ#e$?e5SOQJvL{y0=vZ%Fw8m_^ zO^Fd|{5Egjcy8^PmALD4Qt>Wb!S-?t{BI*klPS??VCTs+NTTAhx1;`khBP9*YIqP$J%H*Z1o#v z_|a=shL~2odHy+X$8L07qjWi2sX*WAB%KHsqvk?=KAq(`<)jGaUoutmx499o60^F6 z;Nt|}(Q(0$s%Cj%CBqm8OZYtHP9l8cE(Y~%3;lM^^be~8aDN)xSJX6E8OMn7^pXs? zSoL%(z(4zUE;Gux!7)PGYU&X-EHCl?MJ~+%f2I=q?y^Q}FS`W8Uk`^>ySig+d!j%n{|*Yww~O1^B{Ye6CteG+r>AT_q&bOB z!%I}VIO=RAS3X%v%2=`ok{?vf=+x&%HfoE4qmR-8qEKak(M`Et(7+uFD9X2-*}-#^ z5nH|0m0wkzzN7jiqRowzIh_oIw-BF`JQ>5Kl z&_E35DChyP^)YT}y#LeS*rs6XLu%hvYhSr?Wp~*9Avq$2n8Bb0s&vack$te6-?CdbT%e2%dzhrAGudN<;EJ7PJNM9nO&8za2xni_9*EBN%( z1J@knuzM+@01V*rU7i||x(KvRE zXmLVH>5&YQ)#{ur8|vD-HAhysFA73v-@-B&yfkaSy4rkh2bb;`NgI&-FySsSGOl!{ zHb2lDp#9@(_$)2@SGrh`1TrR|-A#lEZj(N%Gn!D}p24|a@UREVP#Z-X_J!#G(ME0x z5$nIj>{G;?Bn0-loF;EO9b0n}5m9_n&fZd1W>EhET$yn+aW8+iUAG(&F1xraPU_I- zK64DY&e>I@2L;fKFk{`R=7(^V6|2PqBuj_C)8D9LN1m;TCSoYR&1K~z60Jf31xpmD zq?IZ$yh6iJq(yA|pUq0PuUBf2q$jn~;hvxwu@uhy0Gguc0}e^J$LGxUDW-Ir#n)s1f=+pt$SI~B0`JG0JWO(5-G9Zfa>Gp%2w zUDR_|;q^L6hq5idZRf9S9BNLQ+EdzNrFy}eKlGtQzqKb#qhJ`WDCcwLWBmfFt{dWe z1$9`u@|>*$2tK*a?PqJ{vG@ak-Y-Ln?ycaivV;ARTJGw16{T@w2BI}(neyQS(Mf@h zEOXv>SDt{5Kn@p|_re_~2?LTD*T1=1sPo>W)@SV>-eCwUz4Lgwo*sHzQH+m~WliZ} zMUCELDpmxQjE_#r{pzf?;4BCiq4+ZW>jq=J(-g{Wa`MA(f$1LNI)NiI7 z9(pqUl{kS+(NWa{#ZO}8Pu7E^>;NcbQVI7TK|E#k5RGhFhp|4jL^8;Ejz!8%X2MNK zibgxFURSdwqG5(gW}&)X!epYw7-qZ%b;2Z_Torjf=6Q5VgND2)>pabI6}g#Q_94E0 zPFUethkQx6tAX{to|+emoS`;jHY_|uZl#L)Sg6C%iy{FmHLF2=T$qw{>C~WV)iv%QEr$6>K*igHP-T}SGovY(#pY7fCW~)hM(z?6WUEpT{OLT<%VXW?7@}mqwl|Q2g9m(XzQg(6_kLVQ{Sc8sC4H!lkRTG0LMk*5) z<>pC1vZESu0kRs2fC%;k7Hv6UDh6e`1ikV?j&N@+x`dU|LJ16jJY9kSxbVvqJ$`2J z9T`Q5ya0{riOs^|@psLIujHD2d@1~D)27Ymu&$lTPa<;SS-uc>v6<6%Quu?Hk`W9S_?3LmJ& z-+2koM&f&Q)k;IB-zB#1k{E&Q;_qlcL6tJB42qj~m1as!dC>lUr>gT9=o=)C-dQS0 zJO(Tl)XvhT-_PdGtct4Jj-B>Wkx>Es)8|;WQ;WP&WQel7cC10Q+}#`!7yrEURIu#k1UWKR#4la-i+Jsw$biciurEr?CX(FYr8pi_f zdQ{=4*C?mI9{ElMe4D!;SF5TysTEG4b^;TFbSY}yx^#AGN!r@>=R`)aW9oxfG;?L> z-R0e+yORmOq$t-rAD?8eg8@GQ@{Xd)HdLC3j6;MtItxL$TvZPvViv4R=JPgCbiC}O zHuP&!S`T67>7gZ)*c~_c>h$dPM9_tZh{`vnT z(`9OPf*y-s`FKgHzgsLgR;_J1&m|M{O2~ImU^(f0jxE-8{kImtq@0BfHx&h@cZJI0LJ0xdmBLd0A&@bh7HcFbd5TiYpgqTz67g?iMjw zg%}e|+Hxw65@g6t@^9$(ra{=WR{$GVc@;7#NepIR1uVm;Uza zL$9{bGt)Pe!Aveu*2D+5ocUMP-0QV0Qsxg@P74A&hqfCjDTQZMKiLIWT^#74DCx6<#_B=$Y|BmRx zNe@_MN<`fqf-*6msKm*YLAjW3B*iM>`^0hs@HCMcQGKwrO!i`q+B_?sRA%FKX=Z!~ z=EHSqh#7|q3-7HmlAd$w`eQFAS*m}k6 zAN5A=;+W8dwM)O4rs_S+C0k?fp2I_9_u3#j&2NJYkfCoKc6voTr2TALMu=`G`9G6a zvVp&m$^*jgfvP)%XlY4Q;fIL(Mscy}?y}!uK%R(vQ5LoyIC~$BltnD%s!+sd?m`lL znb|f{!;4o_kY5!)TvR3EVnNuL5Q94^B$8{OS)XRNk!H42T4>Ib`X$6asvXzpn{8kt z5_d}eP$WL{F|^68)0d^wK*02K-Xd#CWzyV}SXe#QO3qkfi)fygXAM2$@w@p zwaFAxCwk<7+;-Z*x6sRA-PMbbVhW|$zNkZAnLjCg)%$ZfDfcmr(ZC1?(dpAaRan0H zorfb`1D2t3K0WyIVC~TR{I5z|9b(ta{+N@!vD>OCSQ}(Xf#{CAsgP$TnpNb5^%@z+ zNGHvX{W-o{|1xdw~#tTep^wzhpL!bgd#i^ z5tzxqnnTWRDZV{$ms0wr_qkQO54#p*jR_+Zxixw9TVcS`^qpe3#O{ z8Z6Cq#K_Kz1cbfwD5YM>G%eeE)ucPwvAbe)v65DNWhnYEFymxzM|pfrkB^4bu~h@@BzaF#~JQ(eTd_ zp&UiLhvWO~=Lzw1SniBGtD&t@`B4u(o1h~7Ekm5xce}u#RvGRdrfn|m(tT-Y4b7-k zlcK#hO*;A4SRNbpFfQ>YS=$+1y5@eaUMe{uZJT}|F~;0CI)mj6c;;{y!O;W*!rJUJ0q6Bawdp+b_4Y|?*Hz3?aKB? zg=B*B=}AN!bY)g-8kykV>7K22VYiVD_KP-Q-1vGqM$8pIP#LpKY$5$DIBf*XGm|kL zh93?PQ&WMzGe2l3UiwFxM;GJu&4}wzw+j%3ioJH_B92vcDxJ#=Lh43N)~C=@-=fJ`vwNJ!)R zWq{JYULpNS2tZaDh>QZ&S}d4KKQxxvkP_tzqsyc9-64)AMk{h0!`~dJr?;$c;Vjp# zXd@ZfiQ!hSVuQXw!JK|aqs!0|fQ@KelVMR+^nHTH_V7zV*w`HHDAiB+FTAc^3pAwl ze2Wf=-28ehxs2_o@L!b6RsTXB795g1{Lk(_)#@!9T$lYu^!TI-87=%()ss=l5mE$X zS4eaGidek()vI!##;U#nkK-FSVU`%|IPKm>WbgV|?ZNME;4zI0|J1u1;_25H5~>gR zdwQ#$!bZe8e^nvRy}K}l07*s#mTE+BKQjFulewY7^%segv!!%DN&{ZWL8=lPyb|P2 zE8%w0Xwv5!_!6^7l{svM{E0FxX59un|0ctg>3rok7am9=?^Q+whWkk>vxl)pV#8zG zaWEt%_-9$nA}BarStL3UB+E@oCo1a2k{&AZ97n2h?|CC7^&Ghs9p8#G2X##C98C9E$-}fZlMBSU)l=0+Bz3jc_+lJ${Lbt)gjilX8iQD?rjY+RPi} z8k}Z_EC%$JEhM16WWaF#Dlo|gdlb!5ZMJ=c23vnt>pPFFDP3aLDNW`LufM~mj2dd@ zll5=*W2ewK?|`wM8sWjIj6wl!j%%5z2^D@vzSc>8vuTHp2=WL94^nXN(R-pHR{i2S zj6bWU{9|OSZcT%;)V@(fblEqk$ znmrmMa!|W9s=!o_WicLR-1rtA)N=b3in1-T9>z+;q$EUls_rm%uVQ$rGF?VOXVsMN zxrmx(7zgPVQH?}rOlGj&kr6Or$}U8fVPS$my?i4DljsIV*o6=eC_fh=9&xb&y#e{W znVO|_ug`1{?=#YnT$2I)A3;C+vUIKQCwysVGj^0sS&yFz2v5>*qv?99lK+iih_E6^ zIokT`zteW*4SC3T@%kZj)CgR(!S{bs`#JgkG389=@X|>3OU2+=?qa)S3i&`ABE-uf z`sKuoaWomaxL@y!orUvyQSD9K8}I(vBh5GwG4R~1Qv znL$GG2HQ@9PBm5GK^}yzDo|8kC>aSZOK871I=L>0-jh#<5w9GD8bbFGJNlVhxG^gE zrh522T&9+U$6wR$Xs!lTdRISRYeQ=EOysL2S`vOntCa7L;x`+hbNB45(`d?tPXY50 zg?u<|s)O$l_8IuvuGv|imm!Ns?M3oLf%POb#Q&Xa|{1-Z<~wx(3m99GE!JhSqzplKarK4-p0 z#ODym4s%s1E|zLY64Z$~*QcF@dAApRc0hlJe2e|mE8<+LdAeg_Qi}UUp{Uyl1Vv%} zF*Q)vf>=zv4D^;0^>$V^sqoy2OQ%>=T$gKpbNq7=GllmY1-a<^8x!xqo*x1yZmPEJ zJTw|FMb6Pmx*mLu+j4kOC9r&SPPMGU)lEoXi0AL8E;#x%ofHY^FDaCVS007cS|{o8 znT)NI>V(>d%Q%2;p7{vLC#dsRE*QAJyvdZz)c8EfXA^1_`R%Hiu5n~p26Ge%%csEj zxB4Ru9DcmU=>RuvzZ6F69`57I3)dt)LVOaDu}+7|VXy!+nibSX@dbnO@&sGtuxhII z(T=yL+v(4u>h-)3G~0;%hQLg^8;2To-4>>te{Pu6i=SLph=BTPOB)K(^jv8f z!KF?JJm4a?FI@hQEa>m68(%hNa&LUUth_HuPDVC|WDc!!b5m|f;TW6P+kUT~twFvu z$a*=?%zKW5lcE(CCdb!+Wb9I&Zl`kTZn%n%Qb2I)Ius5z%_V_@CV`^*OqFT@gWsfK zGxldj*u>WIbhAq8$3GoHJukI6c}+j>(qbN_LYOM`ePWb4>WAESh%nzMLwDFAjYPbt zN2Unr9(Ty{gEYw>zx>mrw$n-fK<6GcTQjVlK#Uv=yAOGcuEi}Bi%+^m|1l`U2(fSt1F` zSnnN^C8bk`)+?x|Gl$~hgL5D+-rkNbZn@A@!%Rg-j|p$=CMmqWus4(i;I$nTXN^~r zW#hW|iGw_B)W}f(j>y?1ig$Smm*9l>FFuT@e1x$vVcfT7AJ2U|86< z@q(@rcszyv8%H`RyYB*^H-4zV)X9ERgtt_HG~PAFuZYi@$BacvNcvnUH#NLigB_mh z`|{a^4^k8#wg1tD&UkgxC7mOnl@vZS8q;5N!((MD0Bk$zO)1e2JDZD}iB`{vlCVS# zICiW$ZJgF0$_brC{;8_HR3=;=AXbuf-rj}$$KI%_=G#d1ZhqNc2jtGtWck4?nI^$Z1ms$xaSlFk>KugEiY%4whV4xXajapr1J^Y zO`@Cn;&PYx@1p4gf-8$DO#x)q?i(&`FSGU5^-q>QZ&ztA_pmP;PI!V_?mLY>0n<)` z#pcfMTS|Y#oCDDart$X~(@x4(q>TBKhT;n!z#gME%Tic!w^%qKgFVH`)(WVw(xDwT z;YE;x<|RVpyytS}+PMyfTD1&?q$8yQ$LF?$9R>Rd_0sz?>Vd;Si($r_U~$8maQKBK zqq5LwU1%uaFT;o~g!X6R-dft;Ff#U{txxtzcjg<|(KzaonpGuizHBzBix{jf0cA%u z&cO}ePe>y@mV5b+wDMul#KfIF4(USFcuBbVEN6bRjy$#jD59zN8%n%$NY4cSIkFw> zGlBH^T4KG!G!_kokGpsi{^7b^r|2+H^;ha(l!CwW!{7(%0podH`Y0f_rBWAf)T6qZ zuk`l>yR{7yZRL&O-fp(@nigIZnT}n?od^ufK?? z#{Ou`$O0wap44?sz}G~`PjOJ5$LoTa&=nmdxtX}a8H5&Ou7 z$=9Ms`VMDXua}57R4HiNaY7^y({(V3)n7oGZ!YLxGBG#@M{D+^12Q(wm2Q*>| z2KJH!-~kqxRW!~JIOZ{SNNQ*J@|&#Y3!cpB9N%GX-$?C$5*ukJzs9~3uM{&o+62Oe zn%bm+rh|8X>&KgYflUQ{GyT>0?aS|yzkeN1{{C;fz2UNP9$1zsB&l#;Lzh+f2*0{-hAlNw5^ax|&tE*@pW5ifF{BJ@6e= za`wa!a5pckeYyH08Jq-u7&)|L)Z)4bEG#_jO2&1YI4q67$t-wRhf}+ye3| zr0rUGnQF8UsX6xEm3ann2A?d9@;8gR$sWM^)b(m_zNuV>F2PI@#jIJ_9s^yVfTP?$ z-Jln#W%pn4w^dei$p_r&JUQHcOBMp2lU#5AZrf%qI?$i6=&s<(jN4}3y(k?R9%OXy z*Pb(pGcs%IyrTEJ4Mz#LH_G34xLSS|@H@HjW}LtKA0Irt=dML-=X9^N%@B3p9yle1 zP*z_Akj@5VXRWoV9@JQ(Zmbj^vMSzXw#`_)Ki1#C{oE}oe<$6D?lga&Ox$hqFm z5Aq+D9aZYs|KZwh=b!$dK#e5Vbg3>DxRV-L5FcY(tzX~$#l?_+i>1CzZ&RW2o7wkC(AvO7Ed2|O5&po0vQ%mpYj_gFkJIAx7(Gz~)nV|1 za+d*$`j08IKP+!uU$H!&f4F{MqSUFN)Lu%`ZxtoIk5bA~2dv%?wLLeDQ^ir3~|1U zvo0kh*RQRLqe_10w!_c%a)q5ST)|y5G3y+xUu1cfF4&3JWt-&wltr`P4&m|#!CcRh z$>d(4`S<#g1)w9pE+m~lAn{fRNzP0Cytdtacl%AsBLmshRwt;i!`?EjPbI9!7s$8<}-?+R@%GIZ|(7D?ygo{BInMEtfgK0Mah_)@>y?w5>1yYS!6&^pGp`u)*rn_N5k`d(Hv0zl{?;{1M=A6 zW_y84oqAa_?HnoqW@Xg=sZ$)~`2t9&O3W4C;1E6aU>8gvl{zxCgWJhGO_G!^j&7Pj zBV+xFy21XC>~dMv)j90;N{#RrCBCf4ryyU2jLL#K(=#xky4Q@U1 zAD7UjiYSUXyX136q7&IIl#-ahZov#nG5Yvc*X&N1ih|c)t-|`Iv@z z?75o;-&x3WqQ=B4cFH~B2qYK+c?1%lfh?`@{%(n<&qs1^49GK~L^M&;scUkuIIwZ| zO>8ZJK|Oo-;%I%t$GsmYN7Q@a&4)3V6`gEMiF9>s%!T+>k4z}iyRhNf(j+@6ZrFfl zWH;=|YxKx$+3j82Zj|E`U9^-)ZX+MXagl~6#7QGZFdV--VVU9U>f)JG|A~xZuAo># zbgUppYT|CG4T9_yh~u6PdyAtH4)2ST5{|5{vh#LZU2&R*G4H9E20QL~nMR#kl-GO`W&$ZalkY8fIZ)sXaaXlNKnR&1tfCCy+?^-LxT8;8xrg7E&~V)xxoNL z(YWVKj{hX)DuIE7YTX>3d~iH=00g7nm;s_3p1>?wQ}xr~cMCiMbMLBxN8)JeZAa3^ zDn3U_qU)Lm*E5MuVASbIqY~7aP^D9vUCNsxMzHx!$xxUdVbIa59j?T&U@Pb5J^OEe zDPj{ULv>TqddP1-VPQWq*iX^Pf2d%hrGi+l0P zpipbqO3$aK!j%E>ryQe%3sZJOIbsw1b!a=(9nwU9bR=+3CSHaIyr0k^v5GgmCtvlC zNlxHbj}}hw1dqy}T{@S0m7Yu?LBcmnc4*JXe@{My9%=f?=erb}>+&gK@+ckj_SlLA zX2{v{t%!-3VofU(9JmdJm#ZC86@g4P6J!mc3LN^BA~~}zXZrxIel&5MRRcVTy4%kx z$>}vou8d0R1^S0`X@`my=_h(f&yt*#_>?az-!F30p4$_@bvP-m@XP7P%Z_at&ygIx zhl+Nl#p*t-#?lMyrwZ>2z1$^g1qmG#XaV02=12lg8HxLzGb6F`rAV%+?QpR{)Rri0 z?5om(S8$-9yFD&Yq{CI=w2bxDOyD@mOmqcp)J&p*k^qi({7BHa$&eUnUDULcab3r> zM8J>G>7frC=4@^-$P}DFa@fSVVDyj#U}#!T6%c)oP#mscghiZmcX+?|E9S@^Xgr!7 z$Ry#-Q=E7XM74@T0*V|Y;933X_;5Wu+xr!1IHeaJX+*IXFLJ~uB-3EC7o#p=dXVGC z@96<~4zJH}&pHw*=pj1Fi(jRezr|3%AZ5x$aY41qv5@hmCh`R<;oHi zIc5O>#h!Rgtap6F%g6ER(>WL{RS=OG#5su!;Zz?G$w=5t zI7pP!_l{T*gKO>f#)__}< zur8xKD>)2@K?*&Jw1bnewTC@K63WUG)q>+wY|@h9Q*c%t;*;4FOnd|Zk=(H%(UCV) zkf1U5KwXXvDJ_v}X&;qykbt2AaUPDaG%<*!!=pWdxL|(to)1qH1v@&H^`?B&Q zbiLwn@aI0_C2)%#nuoa~FQLM%)Y^-%;ursG*l6z_9&kVTGCIU`qRr56V26ioN&-oY zsQuMy3rZhotWEPZIx@q5jGP{l|8XSlHgS%3Dr@w^Vc2$cnaa`VU;R^t`VDucTZ;%O z>q89C8^Ot-@UZSCzdyN6HFUF5Ke17D*59bmRszFz)oqr;{UHeYpE9Y>Lk2SL*38yd zl_N2Id<;Va@}M;}XJKh)8>wg2QeVoDoZhI?imuP+&z)HxT#f!&r|ucJ96zWE64?yp zQMdE)^~|*<|8UJEUM|P=-rV zlV32q27Fs*wXuy}z-Gx)onV!!+52zKE!6=8WUHHOB#SUG*`UOw^yht3mz)9cqiXtjcq{u9)Fhr#hIJ4J+-Jb3k zMLyxIP8?--KG zI9trkacsp=4{Bb4!3N{hio<=rje_#SL!V}YKQWp4GzE(@(J0dOsx_W39Jn{*q$G+$ zEhL#WB5?&pWW}}#Zuv+PkYq7o9VoIG4+s3n6Su8*oxk>#P_EFT6`iNvP*I${F^cB3ubeI~qu;$|9{MRhZiEX063o$c#_9#rVkV$)%tk_&J+vz<47YB`%NEes52fL30}I*8P?3>;CDJ-ul5uHbK#@ z)Yz5cO~ZSqxr?eMM`hoi>qULaQ1zZjZb)si*SkH>;NhTUuJ*^3Td0)FWVQ9duxaRoBK%6rO&bD*m&(VMfF9QFO zVn$qKr$cp8T&O>^Q@rlG&6qU5$B(cHG+1VAtGNnvy+l7xjR_0Wz zZ82%u1kHGgdNOio=EJ1HB7^aq!5;?`mxy+^pf3|m!RR#c>%r{Bad0u|lxWP~sVDB) z2b+19e6lau* zbb}uo;W#WhElCO|me9urP0b=%Cuc+>9FY!>kL?I?kCWUEZvQj}DKzlotx9Q$T?0uW5Xp_g2V ze&4C86cbE-$#Ka@r%}j`G`!-?g_T%Xn3xJU{tk>z@Bc~Q&K3#nh$uf7R(QM!+EMOu zTE8~tXPs}j9T9L?!8)>TF2Mu+i3Cx#!8|?Fy&OCG2q8QvbI1ZZayJWkk(v!&*`QeN z7Wf(#Tyma0ie8$JqJ3}Hg}!#rnoS40+fTn=klVJw?vLs=@j}N}CDXK5g%Yy_C;wug zrkRks(vC#&G*MPRH*rxpGXxn==x*>yr+2P*n}#Y|9{rnn|5{)YOSw| z-qUF(jdmrRMKxYN#zrTo*T^(=y?*d%-O~ONu~qAPJPkLcgv(WK!eAc?Lp-A(xF$KY z;@f`1M`_*WQXJ$KUL1)uyT|Qm{L?_H>0m#bIZc3_9tD^<*AsbJYRjZ7FHyATjE?)WpayFHBnD<<}6HKwo`fmOcq)v4Ftc+vPx!|RZv#XaMsmjxO} zB{hO7mb|6o?N1r+fI!JNwF&(a{loy>tF}z8#I8}U@i!!#`Ik_{w=$%=>gqjJx2Tjc zK&VrIPs@sdBgv;Xu*u}Uog1XZe;x74FT7DZ^Fox79`3yKlXhlW6Hz z|CGeRz5frFpC@9;B#dy6t3hqu=EvTE$sWV4nW`<8Y`k;C^nx+tupx7hFf>*v4OjPj zT8!t9)KNZVi@^~HGuOU!YXd_nh4$6xYei+hI}`3hubG=Ot10u@zR`4MT3?Kc=%Ow5>o( zND?X}mueWr(G+a5JSOHUN4zy?49X2Caw%G&jM)RZCTE&~wTo!8sls zdHR^%dUY6v#s=u#(&GOUZPAUxRNh^jXM2bvq#ZU=1TCW ztQOc~y%JhUvrg#TTdaxZhV>tD($UjZ#5AFSGH1`)psYwnQV0uyL7sj+@)nrOAUWe9 z-!)U0Jp2=NwS3<zU)(OKyjo0FvHELt4i%wK8 z{U)mm+t&N{*Re?-|2CTke%&jG)ZwGY)jNMK_4p%^m->#~+hjtu@WGd~g3;EjrW}v)oUlX#><)yafGp*kC91FcX4xLbiv~v?%>B9f3`7?Hw)#tffk(w}|78}KF--1Na z%z$Ef1NG#3Tjy{YxakW-Y$Vd6SUNxVO=Z6WUX2x)9#`_=7TsEjjqZ>KXd@*RHeTg-bK0Al7N3 zLnFjk(tk0Bk+KQbC+I>5%jK$YU()JCHu3pKt@2gcJ&p6cq{#&~%qSM;66ueg9%^G+ zZr@!lejH9^TZC7Iw$8aqgbwnhgD|7a`-pUVN?fZrFT;T2Xxki`^!%lr1N^#o#;Ot8 zgN&@^KHp?ch0Z9Fhs=1GaLot(9SnAOs!UF|lF6Hn|G90CubSKoQ>GF_42xB{l?j|W z|8v`>6Ux3pf7Ed~R{mEj^gyl;>1Qz|z#)f=i#OWVYnF|Z_SIg|IF1%YpKBr~-BY+s z&TGzP&;olrGeqVsXZaZFwuO#Im2WOI9gpYt!@t$5{rpf##tS!J)?Z3LeJwx{Q9I*o zHXB(w|4AJaVjj46dR1&1G1+GDpMO4fUr{2xZ8rYNcY|x5Et(fvlw_MUkr~qQv#7x4 zvE8=0(o-Np3wk0o@*SGMTwP^*0K8u-b$@l+*pJURoDgkXt2L@$EG>DvbMWP|%*s1v zg^7&w@_Jxm3bXYW6XnD=+_+?F_m8^9;<#~+WYB|^bsE~ZFBZ-iW&H% z;pgXvchE<47g-rfv3Ii9z9yL$M8q5S?(ws9az1J9?ZOqbao2~H{cbQsLN+t#I`V(of5~Cu4b@>J!GQu5j)D`FQ^1ovCyqT zKYk)+eCE;#^O$v|@IWy9;Wy0g6i60nJ)J>Sd*$M2!ov=xVHqV)Zp2pi4l2;gsomMrX9jxv z32LGAcX#a3GqJ#MZZjAlxfO@EUYZWaUGvx)o*SOyw}T2YefkFW+?g&fE0;Yp^v9Oz zA+;aPZ2gE=`D}xBSNNNIgFK7SH&)^bS~x^u2MT2*7zb)nv@}9fxIe$R0)+l3R%-|@ z%e*sl^-WNIfjib-_!u({>2HiyzcGWr=1r{8=lg=mQO4Av~*>N zZjjXX`xT7gzNP}P8Pjg$LVVRz>!WK7+J7?EuFPl}!z|=fJqc8zLS^kxmh}(z%6j($ zL_NBzyV{tecPO2k(P!ULT}zNM9z~pdEk9;I!8<*A-5DN~eu^ncBW+n0@5+w>XllW^ zI+(KV3NAEO&9-)7U7N$f;k_H3i)%S5YWwhwdydX=Yz(PBDFS|(yK4i&FmL<;$hxch zqUKk`V}tyI0h(>ivQwJR!#f$VNGD&pkDhZaI~_qhukkBl!rs4DBqW}a1ioQD)gDrb zio3PeE!R#*{4Hvn$uKJSm`-6a$ast?FE4#7x+5Da6)5vFgs#FQ&ZE4}KBN|%2WpCz zQM#M@rU)!1Ye^Yzc`k|n9Nbi0ZM^}9uFOERL+7hlIwOpde9`Kjz^yAw``SqJAeQFV zZEAedQ;c%7ft*VF3cXT8Lkn(&^HYZM`jZd4UhUMz2fjwZayLz8o4p#|5dyWdCnp?4 z7d~kd4}B;7dgav%;R~AU17c>v3t|vBT`}y=-pAix?fH$l0fqLZ2j%95lF3gDL!mf4 zt}k8CQ3Icpd(I%PP?D;JBcoGACt>35tg8gnP-*+D9YUfX=0cNh6+|c%v zxW$Qgu&#fWn-3#0JOd_iS6hQmWB_I;3uF*9T}g;$wvLqM8OlhkN~XP-hzf0rCU=1$ zV{MgP<%+al4C`C*$WLY&Z7ofeHklS6ykLlPq zscfA#ZVl)TUU-_0R`)&zlm>DCf~K^*UBzM9%>7LAn0z)-^*%99U1$E_#ua7ULr)4iroaVtIS zPZy-Fozs1CPYRG&b$438FHYz%!|U1uu7?sxkM+u97iy~@1avV>hV}qGM~Ou};Wvb9 zN|_}+Zk4vyMZ2OE36!eX2Yr70ivpb27J+Y$-pvB@5FOkF^b_{C@sb46)0GOVo#jP{ zF6Vqz)r3Ih9l&w1BbQwi6~L^84T!qS3cxtmO{p3X0DHJIF9yA{Kj!Qo>s3UYd=O6C z)FcM+c8ELZ$6@O}iduJ`n~?2RmkJ|;1jC4t%#Wn(2+fZ(J54%wO@yH8G4L6x9(`0# zNh?DZPqnPnqTL#;odW$_-uVK($WLL*5VlMfqnyX80)>nX6(5~pPhr3>>YLAi;C=TW zUk-eDv}S5o2J~9nSC$483+BmrIAbCbNX-ci_0Cq8<(i-~qLi~*+p>i5GxoI~n$K~` z{72O3%`!@&;*tm$q@g2mV@^>Qmjr*q^KImHUE&>~j(hv-Um>`Xts=t}J@94*R?}n+ zD$$JS@Pyny;&r(D!y*MR9yhywb9NQaetFP+A_Pydylgmw1*kHOrT%Od(vtAU$6R!> zS5Jw_{H-9x&SQkcN6aKL=#4}*FyByYq6-`;cwl@d$i)pOQ*;fA#vOS`apKnAOHMB)7H8dA$*#^s;aJZrW?S7 zVh<@lU+wS#w`s6j7PyhEcG!vuU$1%CCMWm1)6oe>1}?CZCEJz~StWBS)fqdaRAJ+u z(~Z(lSzQya;A27J$gs3|-4-jmnllGZ?Ti6?HtO|ORJUS9c z;}J)z`)66s_N&6Zg*CDzp2e|DK4bIgW_Lbu0Tp)ku{?eIph-mH2yXsk$Q*WmV`aID zbUE>`cv9iXc$2W9&sF;YW=B7N^T{J_2 zF)UJEQs<`R&@^x#Q>FzM&{O8_m&`itO|k!bEcIHGSB7A{>!Er`&L8RgV2H z&@?^p7hp$Zv-Xme8E%Bo1(pyF65bT3Wncq^tPH^q;(}p@Pl5?EhaXf@X_GXETFF47 z=Q@onVti#DfSH~GMa53@$JW`r1cCYeFTw+jMfQk`rNoA^F4~+2t2tF9bk(TtBi(d> z!pP5e5yVLL58h7plfFZPdQX;+pj&qUAk6Vb7En0#VvN(4B69R@fHZk1@Z=tV1c`hd z-z>dz4STazz$e|IdyN)Ygu5S#6xJu57cKO-?Rn{HGV44%4SIN2gNuW^JT0Zv*rhC0 z80Z9M+*DSkUkH{;q^kRrDmQ7u*+@=l%h<>pW5D6)O+(Yb;CjZ%YzJtB4qN#a3(S_R zM>Zs1vI}s&HS#sw1m6F(BV5N5E%mrbzpo*_mcSLpuP(m3sl9(Z`IhUh?8v%H>DT(HV5mL$aj@s;xZJsH2+)bHv^mBZl%IP*`ZqjZZ2@@iqaE(z^&9!@7h{?A}& z3jdc&WNsjy?4c&4uebAOBX?zlAroFTp{(VdHOhHKe`}F>72AZ5A#+jpJx^aP45$ve z*MvI$xw0~Ge&r~8oWc&wdDr}FgWSjE`x9BqbrAeZ;fef1n;2&x{4dwZD*l)Z^cfrL zwxz3TPf6QE)UTp|y~FSMD0UcAPj%(@Xo8YLW5PuKnJVi%L6!DlFhP6UfC~D+g}fS~ z__7!M$j8+lx@1JMAcj12 zN@Z(cI+agqgEr|O>pKaj6~d@=J;|lJ&I9)P=jKxCCYEo{Uq#d zLRpBN$GL|iUi^|1Uez#<^3H0xts=7;imeK2nxvD<#{{Z@w#W#yDmH?P48=yTksnfI zZ<|Z&AA^u7!FC2BJmEJZEIc(wn-W4hbATrwqu6JN%bOSO5lc7eu!Pp$6!v0>wc(aU zmHv~5vaTwP2Endc8|-}{QV*z)F8aTmMe8=ZC>La~*9Yu9KM39YAilk9Ft!nSWPU8N zXL`zlMuu?T|+T`9e zWDx&phHY@FJu&GI2hT)dyv9j}!&T3)HM$R384>tCjMaQrIyIG_?>C2nuZiK>_H30O zCvA0EI}d_;O6IMGPF^|uj>)q%)WAuSyo+GfT%)zk&5@m98NSW=N69}FqHEq%0N!Nb(#WpCz@B4J$Gvgh8U8#}!7~IL z0So!xW+8I&M{nhm!7SXd&H@+Wu4<^sxrc=vo zwZZPvlFjWO5nVZtbuG9wbMrK0Gc-DbtvKtSL%cx9aaLt=nYl99T~zO{BtLI`E`+@p ze5f;-z%w~H=x%ZNC;VWDC;XG?9@p2DFYS9EsNw0XXF|XIX#Pu2K5pYn&t$U>NPen! zU+J>O$1%c7tjOivWg#?02ty7^W9@2ae^nQ~Ok8}jBOh5b;Y0~)$NAY1YJc_ZOSGU4 z@2-xRu?)l+1Oxl6c6K$1;j1Li3;}Dy_r-Aq#o2QqeHM;Aa>i6wEhAsu4mKLgM!Yv} zkC$!pNjesSXRAjlPtT<#mYO`d``%~swv(l_c9gMBiRT*YBVEGR|H;@ARynf~=@D{P zJpY8q$>|Qub)k_LYf^EM*HOu|`r>aBB0C&m#SxU>jf$fOzt>O6NGnmduo5j?bs-E0 zSM`EhK|?%+dG@|b7xIVI&cmKFWiG|MfqOdQ^M3f~lS}~3Xh{%#f7`cOw9i0nTQK#f zB~-DSyA_^N$AcElVdWr;W^{4Wz>`A)+OqF9iN<>fx5D$k+(wJ0p5Ry^0r0pJ3xYjF zMvs6L&VC|HMU|!B&5db_@z9Q9$Vgdy2{BE&vyuG;-;dg{w10Wc(N?UbDf_-Kx+y;7 zY4>pa{VndFmnpV5GOu!N@$L$XMj)x9hYSc``M~zS{U@UY{VEZt3H`=;xTPeXe(1TT zdZdnx*CyY_M%1~F=ypB?0D{mJ&f!GE#D=?VLJ~#1wVo1X)WYje7Zs5JSQN*DR>wv= zlOJOf*IVDI>`=6p0W0FFJbqJ_VPQ%&!?$a#hzm3WQfBNZMkwhAwajDj(ZX*qhYb;D zWOo#81R-Jbf->>W=4CFz{ZHB3kD$6#D5^DrAT~OdeBb{WKf3u=3cEex6a&1`xHCmh zq@^c>LDL!>t(sc5YsZYpPyL+cK3j@puUFaHH@ejq3B=S9XX?b*0T$mNfUc_1z_Kj}IlJ$|a7W+e4X+?!M8M~@% zdQ-P%E{;uD&s-Ot6!_2_S;x5^Hr|tP*c`!37C_NriIB|;dj!?Z%h!lydps*9M~{_) zQ7pQ|@o7lT6lvz-0$z5SV_}ksMY_&YF6Skb$D2Cw@lJ8Wa3B zFH8~1LV4ryfF=f8kFvDe4P?z9c$oy7>o6{T3=w%RcBJY5GX4KtNal{l1#k;^v(OuK z#J(t9xQ(Pg#UlCwg7T!Bn&QSf^VcX?I*FOnko`%|8R7kj#c4JO{>~GP?!*Xk&&);0 zROrn0gb5Zvwp4U-{s=8Buei`4SX$rgq59BW)USWTt3yiHjqrTufv~eNFCVR6RWu~$KD%Faj>)sY>HppB`(MpGhq%}v=O)F+wx+BtuGZ$X`<&?J z7a?DpG_fG->3%h|j)(Dzavhf!qOTV&nZll&5HI8?P#jVJ-MKi9^j#q_#|nqj+kx3X zvv#DN#QMbC=SF*HVG^>f<^~K~I`I8)-{*MTm7SQ%b9;laMk+C%sHpr3|1g>!n_oa|++Z9I{8I2-gm|ClrKWq*t! z`A)MJlJC?5KDN;bRs2`A56@vMgTND(?@E5^Avjcz(0b?;D;UUTY5g_q%+dp{K$fZk zI^sK3mhPNsbe6V=AC|KUu&p(ywIS@QGyvAE za)-{;i^=!#A6@dth@;&XPF(#mK;YD;p!-ZRb=yK%cw)OY)I`8}SwVM(12s7{1K-3~ zerSt}A|u=VMb978vPhantIG%B=ZPFt65V(mAimct8b$ zxxoZ8pk6#aGzp<^ehoJrI#`Hr;Jcb#u5e50&Bos_1Y7!%dod?pu$S8El~cp&%m(2X84KSY zsE^D-q$Ye4L_Q9>%9QkFLk4+rga>(Z*m!ty>uz_J|X!)TNc$*BSpq8a*=Q zI_;+Uoyp6dqxQMW&DF=2@>RxoZqy@?O!8tLTh1)*QO&NV7o4llcFofn%uK^Oa39|mO8%w{o)hz8VqppV%wi0Y zG&JUC%&n$Rix!$z@J!u63hY5{*|E$FjUCWOd!DHX-V$mjTnr}m{8f_u{Vat5>?e|kb8txT_1*nSTO$1a&kD&vq#6}+k)mkR`-evC}YJYh# zD)rh+4z;Azm)F%&)Fa_)$!-Pb_uHHhV^<{2BU^%)c`8YGBwnpL^U=1M~P8UG^J}=!5PK$#RK5bhMWT;jF>`wY1@Tm3-^)1Dre0@cj-uUhvAD z=9eK4p?3U_w4n}6GHOtJnYXr3%h(pVm$~)fr*-tTD*OVr3Wp4(l!xYk7it zu(@_i@?jE6K8a&b?%KLs(sTFlYDbRP57%ZbOy|4)p+{?dND)l$ui0uRx&+;Aafu-} zXRJaYXMPtof~L(-)-%CP7MfO%&<^>^AoiDU|Jga3045)?bF7{Fd1U3 z`L4jA<1_L0xrVTgd&G>9`=*^406D-4Fa@L@&hJ`;HvvC7ZEZ4!cbxhh79JY4^W4+| z$N}=LVhyE6l$p#@P92qF-^Ya+4Up|ma>PzH6m;AxR_Atq86X6Z401e=sIl&qk97$? z!wcoshjm}(_Wm2+4NY`BKfQMj7@Aw}*#Gd0V2%f{JVrvQjeAw2S)ga|m zgNN9*WVp{Mf`9M1^Rq1A$CQWpMu@ENYF0vV_~Y8IukH7YQerhPAx>(5h4 zop+sGZiJFvxAU4TSdP>+eT9O97lDgeN~+KPw+6DhMG4t8i%Rbct35Ym1FCm^+)b-B zFIOpPtJd@GOQ+6A^Q_S7Xkhiu{Jiux(d8Ld_ZsDQ){ooMl5%HHDUE7|q6;L9)pw40 z#m=hQh{;`Ud=7Qs51LmW2U!Q-O*+3pGoX!_x*y3;D0NHdfRXRN>%Q@{kWY5 znEQ1&Fb~v3jk#R$yE-nP{wAl#c(K*7n&x*^!OT{pzk9-_yxiS_R6#jj@I)_uxm*99 zTIj1DR_>XQXPBbSAr2!U2mo=A8Oe+iLh$s6G;;9E?(K%SN$;X5je3SNqmBzSSv#F< zt|obmea%O7yf{z6PwkX{i^%J>SWGiBanJ2eHTqAk@Q}VxvZ2c!Y%k;2dj4&nr1kH= zqeACdXL4M`Zh&3bT$Rg}UXLD??OeM~16O`XYY}Jj8pKXGS5f2X$%}EMA@}7#KG8e2 z7J6lQ2@-Eb7-a|l593fY^Zzjp<|36R-SyhMYZD@A)t)E^S=hJ?Nliu6ZOd6x9c~O6DHOj*6ohed`Q>K0wSHy$40yayB-CR*E z1)6&Occ(x@lBgFVJd-`MXpqN-C3p#}+@0BWM?%gh!8r>OQ!nKF>${b@OT z(3jn;Hy`nYVu@$$bNhRJ=gDM|9CnLa8vx_r*p>GDr~FyXD(`#!b$Z{=nKv4r$3F1Q z{4Rl>2#o#-;4A)yzRVWgY0syz!){rg%(5v{-eVFF-b#+sA2c`RT*eCAz7H2hF^B-1 zLsDZXP7M-8axlNp+>(bF;_6x3!HJe!1Rr;rZo1Ua7BRVtyC*UTe(BgF0O+;PTMEn}5dL zQa(u(Or|hJ2p#2slD2B}QNj>~K>j}6;lY=YK#iLkRP5$f_uH-AI!bUnrxhiY_C z|4-*Kq-OaPt*YeRY?b?8|{u9oqjx}{{qJ|yz& zw}6+7RFnATUYKYs38M|ThB3O~pBy{bP^l|d=x-TSUIjm>-+5AQq^X2j6CR+70vLE+ z75ut&_oBxWLiF z{#u|p!A_3pAAm#Lq^swkX?;devM+f?h-dfp#^jF(>E=+0mK6}jQ7pmG!g{@F#&>OX zn(d?P&zQo^NZ)QR8I#uNLe2B56qv)g4>=OVY?NW&q~C!H-hZKMI94x9i^kTvg+aH$ z<62l=xqgjxUMc&j%8r~>(a-8otFp{m3XRjr#ZSWrbdT!V53&(2rbS?Pfgj;;(zT#y z-7#G`^5nimQEnB5M8#YUmqck?_~4(0$PDx)Y=k7)6&t-zmd7SS$fSSCCv^FQad6q0 zR30dZXCnt<0fxs(K_#DN zE)M#Hw}%g(yzfOHiDMIG$Ob+H)VuLrlhQ{}Q zlH*8uJuen;!T_}U!3I%Xf=R?KSMnyn>bDQG7y97|>@^VY6#2#k?S`*438|QVZDXc;mO|*^!yO8=Q&%ivI;hBf=6aB*&50!wySp6zs>58=^gq`6 z0Qj@D)b6#Xb2z)BK>rwfw17Vbyt|^=1xaJgnR-}IyC=V5d~C7(Iu`NXF`=*`K{Q_Y zL~b{fTAU~~4Oz!qPqVF09Zz3mm{_I-@jCv~I1pTV0i2Yk9Qnrmri8JB5no}~Cp^6cD}el8VHj_(N%wsudv@pR^UF0QxSX1#OM;3sn51UKY- zX5Z{tDh_jjuLMlQHx%zrq}o)0vPHFfOzfo!q*pLdu&58RmQ$o@;VAs#3|rKXdmFs( z5F36WG?hKZR8UR*htW_~#u|<_E=;kl84jxbgrSpRa4L94k_Z1-cfAwBGoesxtyAGr z3u+o0>+h_E*7qC&)HuyxaER*`kVBK)-mMFOpL-o~H%#rr<74K;vN_jqfSO+LB& zDnxExo*_mv`*!oG7km%j+rI%A01U0EaPp!0lhP zCrI6z^ym64{Hz8sdzA6nVZ2Xm@JY32{S!B=WA}y~^_oJJb$z&uGRa_JIx&^JctI#2Q->+M+*~=|-BoM_C4HcP)}JEIrOG* z(*VOyi**XKa}OP9oEC0L89iOrCAr&=q=W1e(?3hu;l$fN;0pB744dNeCZwY4p*Eyq ze(M^!-Tn(g1RkJwL@bDR%652DB_y&sP9@gJp(_NcDbS_7Rm$kf)Yo?ul=Km%I19Dc zQPKfe?{y_?v?6ObQayFs@?r(vY36#x)G5f2JtAvjBi@or^Rv8ylQ=W?rk|U>%_~Z1 zZTMji(u{X@w>L*ZaJ|eR@I=dR^VtxF+WWY)Y5vJ4{=Zy!CtCV{xAg!#g`o4*ILq9OVL_RTf>De>X#p(6%xul z1Z}Q6vSBj?3}aR$5Pa@oJ30MCL%=1hBw?cP&qWX?xD6mC0|rOUVIYKsDf(HfjHxgK z1qr3Qe>V>12UU(PV&nLM*-s>rUHxMop(ig4CyM5R8VRKEDK*SI!*ncAo9{{RCY>z7W)s>;2JS_V?G^;R+#uvO`` zCXvzrpXZMoA>P@bj?>`Xv$s9k5c_VIVusUta1w!vQe}#xHwe5|`akI1!(`K%5X&t~ zi|Urn1x1#1c9UR>YBAQqkQH?*fHk8Us@SMeMwc|Q3$JmZD^|>K1g*aeR16&x>NAo- zc-jO|1zp5ztxYPCdS^~5rVZWIVA=-fVl$XNn_`B8QY_2@rg+y$US4YlNn_vjT)MT@ zXk7~%{|)ocQvw&AVEXaIisW!}4aBYnCmClrc<|$xeMIEn3KkJ8|O9|LEZluyVX5v7OkkdD)+M z>M*B7u~7ISWDewo%+6CnV2%v3p8rcpvTiC!?6~TOmj&RH*^2h@k@Dq`iF{$W>JE}z zA`lnK5=x9kF;Wn?Q0x)JRpadKXsB9GaRNN$7pJ7Y^yD$9!<|}|Sf`Tbndqsa04xN6 z!>enmm7fkSPl0+}c*T_5hvG}s9)TL3NCxoU*!A4IPUn%;w;-}gRgDhp*J0X5UR-0Z zp%5%Nu2$Cg@d?CMwVA>lGrr@@)#h%ggY40#^XyUk=-2}-XQ+(1Zg@=qR&1RP8|{xN zG^U!@P`IbQ!{t%jLyu!w9_1Wd5Zu4{MAZzLFsQ4P! zr$HZtQKz)3nc1I- z%H-pT>6W<#zu&6`@caFSfZOR}>^7kCM~QdLOr3;s`c%GYE?~CY5wj*|DPWdi+-dQ) zrG6pWq#>^ng7y7z$Gcdyd55U{Lhf&a97Tlgru}~jK!Smi!rNtmin9-ID_;- zo=Axu7+*a`+mDAYz!@Y3vO8EbBR1k1xKu@twzgvq?Vov)MK0k2)Nf zgRku43mS?b_~dh_PNa=+fFLl)bK)yL__&0b0@IGVVn}Pt4<-MybfMW{mWR#?mxa;L-i#8J8&K)Bq&^k8GxLa9CxDN(ew1kKG0?f|H8 znT60gIzlVxQLzGGY@oJ0cwTec3{-3%TXHK5h8?;1xUSL3sgPFr01g9`l1-bgM}yNR zeg>RA?m$oD$kvO}^1jIr=R<7x8}|((*vcXFKls{#K>I_V3^bQJ@hbrE!-oSpEET_I zpdPH~(waW$YlshkKOh&{1gS~$%{&v|Zs)?DkR+JeoB|0W2|KX~bW8Jalndq6-0Rna znv`!UU%hM87AgN0^b_b2`0g60%0zU)--6RBHzYL$l+&9%N zs5?Zz@$*GCq;)&mpTl#Y zS~odA@_JiJuqJL$Z*mFgoBx1X_)L%nySnOO|B{O}gk&Q=k8NFF?Np+wgp&Blt^cjr z+h3@D3*AOO{*S-KJc2A}q7VQ3U8%VA;VrK(UX;NFrVj-L$cBj#mRBjJd8LxWVj$n; zsB|8Gb#?lnrNk%)&A&~a$kmY_>g6~}c6te?Od$>92kAing8^@`wWQ%|p%~Brp*TY+ zj|T&PKG7FF`gN$+amTPY+RahUzNnlolbUP9p1jY+Bh}VA|II~-%4o~G3P0r#y%G7G zK~~T|?QJrHtOqBiIZ9lgYqXT-Cm|KZ@{_2ZnC-EvuhWL#o0e~z{4{etV4|Hp^A9{= zsxa1*I+$3DVmT)4q8O=&M!euum)4OoJeF2!d`Km&#;Cx*rp#Ii?)!OV>Txh?7ebja z>$bGCzCz=EE5<><{~1b9yd8jId8}6@cCD%XftFD10i#G8e{K}xiK{N$3ezpIw}2m_ zv+COH;-3AX>^1B5TMM2)f!Ic;8a!AfQSnys?#hO)c^Gcbk{ZBXnK1nlMo z3gYTUHoG)b)y&`+s-MUZEnHS-KY1yEHgp7e0yH)9{JwvO>Z=7oNO8^9S5`wp|W zEuqRi#Q~xPAOkNN3o`Jc>H8ql_L7M#viiQy15{J=-aqPE=vP9N-rl8Pk2}AvYZEdy z>9mQ!Z}~(FZg37GAi1nHSp(Q ztKtd}@8mHP-j6ib<0UL!{?4L6~JYK)txLzNicrUT*mMqWfwl@flT zXpzK-%?tDdS+CTS%c;b<4-MrHf1qk%BaR`l3j=~j6^q&1M_Jn8WeM1pFBh6!+}z$8 zqb%J&$pujD%29pFwzb`|oY!eIShQgImC)nUwT<$8^RFs&YyH4}lkS*6y$PivR&G0X zAO4Ld|3xw4h!;`pm4wkvIv3*4GvUMQV-w{c)(hDtb*CXM4dQ?2EU?kc=s%rV?37iy zW(Mk2>WK{M49wtW1IfX+GrEL*FP5=ZgB9JfRz8<<16Z+8yaaIku-~-ekc>vu4FDEy zmaw9dt9~tN>hBlNolt?v1&{O(ZROZ`o+_AzP}}!#?=F&?P@CB11*5q7D8!_NN9l)z zNSQAyHrR+mvgbe08Yoc}xOqT=6*r**1aXJCLDW%faMpH*xw@3eu|=+D3*zOpgKR}Y zbN<@4aBs-??1H;(we^-$NZmreJc4M$wCyg`wgC_!V#``ECDdzA(1N7zY3y;TGhDCwR%b85uMG08RMLi!och9!tDPV)D1}scgYUQTOD{Cq0 zM>A4@doAI7qU+WhC zN~lPWfU7{R2sex-sE-@spc;jYILRnHljJUvv7gw2VlO>cR^+*|t`UM+hZEt?!!jik z|EE(H{K`|?y%J`6Y~K5HE9c}rq&cUdIH5VghA+Uwqs)s8N^6=Ug=_bl^B-43n&S%U z6R`WAWt!dBF02vdH~g$wD?n_(f*KI(#k9Nt)Vs^&8x5|fBH%W56j39m;raT`<^%WK zA6G!(&a@=;hwgIhsJxkM)wqR0{|p=R1mlc6^He$K*anrwaa}AzO?z+-fZgi}t8g4u z!mNBPsNE^}Gl9}~FTNvpdo2|02(0tV2DE?=!L|PNC@|?vB7bg!EGq@!<0f4MFwf9_ z0vB+hG&&BHM-r_t#Vh9qe$F^LOGU&Cm!-9GCc2B%cF#>Wl(kr_d$%xU;Ve6Saa~+t z?fS6(w3vW)bVg)3rrm@Wl|5=247_m}{}R*B#)&zHN&>(KXQ@Scl+49=Qd<&~5`DTn zkpckB&@bHadR}vybFntTyTIqK&w3|=Fo=Y}Opp^L0G@P@2;fQn1TrtErwKh$ZgwfY zzNADd;(upIa`S8smmdxhQE>-VGPtA?2e}X3@g9S~pr9-Mo!#6GWnUtM1G854vkFNr z#>G;woD#drK?)kG(o?n%Piv@vh++zAA)s5&nHz8dQ^IUv$eRGVWdT)Yf4G>miKLb9 zKM^(bsLMbY`gk;hI)(L>lR8WyJoU_+^--2Ct;u4Rav|8LhQb-^ZYi+ol;`GLb9KJ& z?h$}pSs>~qc9FC!pdjgj5yTyXm@F|flk*zPRY>3de!w^_88FdPW4%?r0g%5%jp2$r z%B&TIrZ{P}aFO%=TvS!odBsw-p?Q_sT|BfigInvz@@i9FRlumrg6=@{L^%|dF~QQ-DeNmi%B3LQ3wGon`mBOpO1CyW z>n;mu$_m@RH^vxbt|nzhWv=OE5N)o?c$kSvY|06HzLdm}Vm?eb|hfGPmw9gZI?>BFNAlSjje-U(wj zaSXzfr!$b2$6~hQdNp#>MeL_Bhd$31zzi>g$i6w@L63(L78N9~v^mMR_9cwpfPr2w zNY@fB6@h@fe+OY_{PVByQLqvy$=At};2r6K?oxsvY&jUM8JAgkrD?H`pyg2)$vD-u(_Af#liZxb%1zT8b)O5 z07vpZdO*d39VTzn&Qo7d7HVtwSF)(&7b#8ic&+`w{h>l%^wDgXSCm!tO7}qL7mwxD zJKY}xn&wl(Z#?ZhC3O zLvG3&G5f6ZgVJ18Eq(hRJ@0Z_)4SE4ys)Z`vk%KFos^kgVOu$z2Q9v1_uh=eiKWT5 zCHu!6Iy6Q28pPjy6iF4iIo-ogd#}3t;fNWG9m{ufjK+X>g2qs40%KsC!=DXjZVJrH zZi`eaJ1lT2_0d~YoXTs9bC&U>74lt>w^(nbXdQElc1@j1zzbKxO5e4P+72a;?)N_& zrS|qfbL$Q%y0rb&7*b^fotV(b;OdtlXkJ~u2l{PZry2B71Xa+8N!}wf)d17YZ8YLJ zQAp~gc`Hc?nzGo@ExO$K?jQ;pBSp2Get+U@+mL8qcF69;p{5~wXDVLw6-iA@aM1Mz z|2n*~*`v{U=rue+f`f{F{w%m6`->kuS%QN$_4ApLl6*xH&rLh#MXozH9T1>9m2*qz zBPF5pPizM!w z4xri0^|sgVtd-yaNgBg6LR${9r@XsS)Sg>BJ;%da2y|1X%C`~xKzCkSG=+>OJC)zU zMaV|0GV8FLx-@tp&4}orPg|ugV{&9F_to5gSN!i*lD_KbEe>-5uA}Tq zVAXirahy!lygCKw!zJNx>;n1<=>V2gc#LNlV4ML<)V*47H=NFlxLQhDOwu4+b-QX6 z89iNh_de}R=-E|V!9RDc<5G5&D0WGFPGoG47a12h+sAWAMPupQ)Td#C5@X$x!AuMDmfkDjI=f28Y zGfugIzB1e>S3FKIr}u(iOe8Z6JkwdUFGNvy_gCu@l$tPk?=8!CALqiCD+TcbZ@rr& z7=<%_^!2~8Ixx?UyHM+Q-2s5d>Hv6bPv*Cf$IUXwh3XXOE4>U0tOeT+weKQBUPBL9ZBnnL%(uQ*hFyXf$c~uZ{h7QuUoG~F^thm&3=;O;5-oTrl3X@Qb?1|kmjiu7f>SB&Xi-Gi2f1q_ z@~}^;;efvsu}|(1kaVMV&p1@pDA((MnsY==x}&{cerr9Hx?_sD4v=`5kCE{cZ@on& z8HEP{#a~(-WM#!&NWH|LodDvsK4!|@tg?L)3#>0;$d220rta&=r1FVy!B}3qick88 z@-hmqU)9NpKK#I^yW9NCS@b=pBG<2_E6wH}VqAiEwA@7p#TNdvrWT0FxPkVpD`P@8 z<;(+OxC3I;as6@|3GI-douZ+f*XXM4rOS1t|!VY0U_5*C7^4fo-ev1OJ7vv&9?jKM+2ry%?oYrvF9T0%5zw^6ZqA$!zrqB9}B=fd?+G>t`-kL4f2G>YRaXX9KqvL#c$JS}f zfe&o!8))4`hQ9#Y;&Z5>1PK@>jA#bmG-w?RPmoj)v|!+&YZNC~Nb&$Xk)<;YIyLbF zB34{q15$wiQjx9FJ?mW9aLa+gGt3<8FmfIA?rVz-{P0O^vJGD74Dfd)`IOdzB~0X| zm-7vZ?AmUW6oR~yi@z^y(Fp)v)p2%D*yF!ep}qkZlZ(2=TZ?IGXtbzs~kv0;X$zMuPJ|@XU_P3j#X`- zk2*jf`6e_YI1p4H40=7C(4OAvG zkGr#42Z1E{M<3qUccjXeQMtG9MbhRa^V=9hajNdfg||(Hyo`{|AAPE)R!?2CsM+H| z*@C99lEkR$%k{T06G}-b#2nt>7&YIo&*Nu-rC7L8dyh~81LTH$Sb2SzLc#u7BH|+A zx-Cjn#U-crvURK;GiD+l^uU?Dfv$?B*z&79u3m1pzt_zAbD%C-N0Ht z2iB6?A%YUAb8aU@)A=T|k1?J)rA%nih^I;s!p?x)S-K`OMTs(CaqHJp??D~pf$fV_ z=@o7nhsL??Qj2}+yRmwYa&&45un{K6i*m;gTm?p=Hl~@G+?)f1$bwVf?6v;*)#e27 zG|E*~U^O*zi#+YcCn{8w}66%!m zsd03{e%I}L-j7^gyI}Zm-CK~gWRx`_zW=SaH!$f5z`(>>9Y_N)uk^dViUIb-k28;p z=Vur)uTmF}^-kuS&lefN`oucp6=zpQ%xdQ(2qnyb^vo)r*N&<*#i2!#aMK8mO+1ZS zmHKxg$1%pRP!hCEQ(jfQ5+unCwAWRsb)qP)qE#lcAaNZ~dz>1dGGD``+*-nf!AHGm zkvCc06c)S*S%8Ulw#P@UeZTE-fY|OZVW{r2kX6$0zfF*OL^E>`s&oY>$X}gjs zsoyZM{rAVn`Y;e-rsRmgx886CMmC1^K3s{_f95H1blQN{fx-@TL(c=h2r){UZuIq9 z0F(LXR#O5&2!|?oQ99Z@C@*<+WavU}Y$-zQ0|SuP#TcsNKX*W<#Hsbh|7AqxtEf_j z?v}BFvqMhB>{`dXwm89Fq1iS<9s<->TIJw$R6ca~0SxS@^g|;v#s?#*xY&2aq2a&L z(g2C8E=O%~Q-I8`tG)^PoL>0VzwZO2=l!MC&}&g|G{m9b#3oE4;4Qx-Y>P*gaWKEK?Qkjkf4%V7{{)^V>36`U2IyX8^&b?-I1iX9UuVejy0)tCd-+j(dzHxmzq`c>g;>gGk(Kl#3fo%m|0|A^j zKq=(}dG){@>6NVdY$vnE@X5b7$2$i+HNQ@Ih0++91tV|n`B#7BE6Nxy_$pv3sk*N^ zV3rmoDU>W(uX%NVB=m~!MbYIK=EcHWMO8(s{~NfqcdPf(llsedU$ETGw8^xN|wRER=?!oJE%D^<>00^!{xvk!}|q zt)tLD$`!uyxmQb=M{fOzG-I~?@OJ?xAF|RRCw+D=`0@|Z;R4nN@x5w>9e-qzra?`K zin-V?^EM*;;%wa+efVI0DriJOpM_6M?@hyn-@HiE1)r>521CSeDWoaFFpP54mRF(l zONVGITwv)9yk{$F~t(pt6CdM_F-cr${r@O;H_7a1N;CZ`cC zUT3i^VJ*gA_9I%f&hU92EfHt&3KG2}>@V)wtzC!rQHO9lbyXVarrVTxRhWy6Y_S)m z*o?mxO6_9!5*7_#uutoy7^j{V_2hI0*+@qO?B(rSq1A_}UGNO4T^m&c^-q(P$DADd zwK2;MjyUi_9VQur0YZv@+IVax(^6A{0Ar(QiTdo*cv@R0aatRf>HR>lT?cxuprX>X zQ9|=AFZD#v16%TZ!srB&YB`=ww)tMrR$uT0Qc6CCE%>)Rc|I<28on)Xn3bq5#$_Sq zprIWi8B&oj>eOoS0hh=J&N)YoySz1rPZN#a{=TPd^!Cp+_D-9k)rI@>y-6lEA)jzR z>RNstBycPRTQtWdt{B~A3A59 zcWJ|r8h1s`zOKEi^CisVl7#0yq>B2 zXBO2~Z_Y<&4dXT*e>G?O(hn9rvbyFjWxyLie3SUi=u&-Fzqg1B`m?u!at{4g77q8X zfwNGUiVf_7m+ku+zt#_>OJLv4&l21D(y6GycH*KB55C8L$Jei2kCJ#%_Y{-3oAxnE zl}6JEcSAnRs+!gOW0HxU;0CCxtag3OXezpOD5flB3eP(ei{Aa}6V+-q5I3_qufw8K z@O{nGLrp-DCfQ=W*&GDyGdjZ0+c6h z3DZ=n!P2XG8sX6Nl1Kh5%g7NeS$R9}L_XL-5?mnvAf^{rg8qgCTDfLS>1kv9SndD= zAAMyCv*mjbEMIrI+%iP)n5$#9m~V!iZ8(J{}yNBcJ~FiGi&;8pQQX%HO; zpo5Q*O^?!qb(}}Eq$)(E|LFdhjgUQGK=t_olyTM=O=6P+B0>f%;4v7B7( zzVu6<3PF^$6)@G}(pGOoD8FRUQ?Pwur?43@ekK`5c>1iD??)0tC^S{M^4cx99qt9x z+s>Xw`j0owo8KBVZ~mCmJZ;jr`0D4t4a&HOR+$Oq7)?!TIhwHR<<|tj0umn5bo7iq z{ObGF2W-~iUc@jUujV;<-6(TaiM`B&b>vkhO5U@?r4Il5pMaIY_uFCkJf9W-3O`Nm zWd#=M2Cz`g&wF_cI}8T0Hs?sapRVG0Zi(19C7nU&e-oa@!};Y*yL#=?_&n!ZJRCB<1+4$*9Eh z)#^h}ZfjA=pIbF~7w^r^FXiuqLweslXkxL2hwWIef8Q(0fxGNG$VMnU(qz%;w%5tj z>9{4!MEMBU%FMFCX5T)=+U;e7Pv)U@Yor4@Vn zD2>eo{K`lTJtgKKLJcccv}6|Hso+1;o|# z?6;+b;uL4G;#S<9;w-*sad&qp*5Y0kcU|1w-QC^Y-Syvo7ys2Po5-ma%Lci z{HL6ce#5a-kZrNPT&JIv>7Aq5HTp2nkW(4md1So;(MD+*dHAbG zrDMGEOonpou*u$+x){NUJAwv*OZkWRdR)(vSQ|oHR!Ycns4H&jBXhI!az)ZVhwa*M zP~@qAM#?m|jLtMD5MiJ|G{pD27d`Bh2>*H5ONAu&=pS}8c}cVVBA*CD{~vSS*hb|h z;^z_Ln$aCP*y7%)-xhsVhdp<=cAF`3zsn; z_gL^-%ZE4q8i>*fgoi}W2ecymh2Xcd9=y^dOdWR;|C`PmmQ`KqmkbJ1o~D?_nf^s3 zwe>>`bfH`$8zbWbrD^fMpaO+BSf9?!HE2P-8|vtsHipn-;{RiFI%vw_pH&@D{gedu z6Khtw6VqKa2@}iyvsSS;fc5jNbke7Ug5RFeZ#Mfz4;!jq=9EqnNX=nlcVa9D-5$%q z>t~FLMW!g|w29-;OoGtu9}l_(cRDCGRro>)t-$CafSTVek(sX5E%wJ!0>O0IHgjKY z?tCQP%@eqZ?e)((dY>y|ogvHo12y9r)1c$GEYwppnK!zYnK$})nKwH3a4!s`F&mt$B0kWq zMSZ{*Q1ErhS*VQoQC{At%m61~;90LnC7}N@Ij^P5fCKgQq}7MiPQ2x~DL=-404m1~ zR|3{YT0rrqS((=P5t=R`|HEHQrz(_;=%HkE$?u1~ZYNWZ_>bcwR*_(#^6~$ZPabKH z1|rcv9$whV$MI71Un{n8zb#T-7zC#MAL5^JQ|tZU-Lw|Q6XR?MjF@y{i3p%JWqdQJ zkfCYiL4iVcK9mee00)A+YdVeD2jsOew(F9Ml(LQb_jo<)0Syo*@1MiCvQT3|;FSJR znK@GYS#DpxHRUwkIhIu~Qs4Vqd>79_oMT^2X5KQ?@HE*@{|wIqH9U`E6H^e>risIP zQBV-|Lle9aQ@bZuf|xaFXqH)wh06RTcq;HSG|7~p@XHrF?C6Gy)susS;?ply+jN1u zE#0Q3zoI^ph)r5b^j%TNn&W5RhK{lMbY&{@&!rOe!vCyMEA_Gb)Ox2Psc@?yFvW%) zA^8R!0r`d<5w%d`urhD-Ix6bTS2DnsxRJnGxha0o5UVxh_p57eh;@PEfC`6!j~9*! zL1cuAj9<=@NC`yMfktV@HN6TQ8bTfpW=cqRXg%%=Ef9YV8t!=4^zAxPWd=4oO#THJ zM89RR!!Ff-0mcjVJaozr6<2AO$Jt7$LrZ*FM!>{w$|iENW)tHd>R4eLvz;~^p}*ad zhP{VkuKb@l%kf%hfT;gcaU5RU7f37vAunFclyR>sQq!rvFav%Ylq`9@^_awCQBI)q zQ+XRPNyIYzOT}%VsrWR}*%Sk+w{hxQPM6M0pW93n!CdLKYhUc5b*}&{tC)GW_rIyX z`6WP=OY(1OMp&QVsepfa?)wUx<^y8prxuhjVO}zKp!53+@^D(|OLXukX-Mk~gAySE z6o~dzez_TqW<+p#EJRnVL6=<25m3K~LY)3rS@7A6=rQR!cre9Wq6{APwuaN>tM!-Q zRv5S-Eih5Ro+RSKpp1llpxW#AMMUlM#YgS+g+nyx2m``Qn8XBOFC6bNe@JmvS#y?Zf`P-q}3{ZMzQ(YVC)TWe<_ zDMtQB@Pw9lP*R5ZNAMWq%n$0Z3?+s#sBNW0Et&tF{=D3xfHgha#k~pTHv}z}6d2ew zLc{mKzwq6qmj$Jv|Iu_>Cxc?s1uT@oE-7K2ZK2`Y7D^E~?}m2OpsBE@a4GZpE$x46 z38aT&w*ME>((9PbAq7;&PFo_dYVUH|OXjZn_}db_3(#7ux)Lsf>0f~&U@QX+iX6u? zdh66DQ1$FgjN|a^-QZDNQXGX=R92=H;<0j`-HCAwCq@_b)T{pzJAPf_B-Ev6ZWy$3EV&)h|OP($|E=}yzd%gT~7Di zcso!!4@g_CJSsH^DW~^;GQ^UGqe*2vx;0eq#^lN!cxU2&=LPd*1*3S&9r+Kztp0VO zF2q>N_v=wj`|C9EpcAZ1;4cQwk%%KZ|6#8z3Abam*=cj+$9OJwEg$b$Eed)QqxBgU z0k4a|#rmv}47P9l{ravrc%Lgd)GoTa4qPnwM*kLzn$Ykb`!fG(z5_k2-TJH4V?yBz zsv^fwdjJZx_m(br{Wc-`-E#208v2y*F6s-#3*CY5RlDVmJeSo@&`nkyDa|`=+`7B^ zRTKnf=zT*!q@6qY-D%LZO>*enf5`Sp^NJVx0L}~jzJy3h6V|Li`61Qb_*n|=HVRhIR5m$|oi%PGIP)wJ~hpT=F zp45t23;s9-r>gvw6=F7@OIR8lr)@6hHk?bgij$ooS9Ah27OJJ);B)7N?B~*l$W2{@r3?OUn~wbnnLrkX)xIjltCj-uIS%jvF zpv??~rc1K!66}*9zYN?b%$qIKz-l}XrCbZsmXE2=pI{{xHO5NXypg{@|o!K1m)a<7fMNzD4*CL4dBQpGOo(I=(8L1=o3=WiG>G&}($vHOxe!*gH@+|%@ z3dZqY#YZvx#O{MC9|z0S1ywkfA{8Ju{#Sf@FUjqp#)8Su3{NM97`gI(g6qo;>po0Q&TLiR$=Hwv%JxRfo}1;Pw{Db zw)rqL?@~wp7DMnGR>Lc~a*2|MgL~vv3b#|bjpT(GMGJvffF@>pj&Yysf-XH>(7$`9Z#Wlt*9_pPNQ1WvtQ|p4+~q%mK0ZA&Z=u zCONdLfWk^KNCQ@8h#Qs!pyfNz&3=)(3d_~f*<~V?QW66neT4p@C|v1PvoIbwr4b!l z9OUp2Nbbb|R$io?#{u6|OM&|~R%Oshd5MCH z%7IR>|MaOyt4|z+1mj-u)iu7p@q`)&`bNOVL0EGQ#j<_+qm){IvocBSxLZ6B9&*V+hEKJ)WyM zc$hfj8*PHOMpm+0Y#MvTD1Hn3nEa?@AI>x7W*k6zMD#TLIDi@{k-hn?*m2&@JbHMN z!jdbbpm=a=N;$fN)eU#Rec4Dnvz6I=f8r;h#I=(#HQHqkh|lvI%h>d%E9FTY36FHf zEf~rc=2rH#2#<6jYoUBtIvI?3XG@sG5QZU_q>+XSKa?60ncZ>Pv2oOAG8g>%WlP4B zR@TP4F^g*?>hulN%HGv!f#lZHOJ2cso&JE?y+$?#Ce;(2Hs^8aS>AksMyjzga_F79 z(z(wzbWw;sfCN7>J}*socXyNUPsbK^ZX{V{E)NSr-u~AaxJuZM!kd+C!ai#k9mwJv z4F&8o==`eF27PT;A!0_AbKU-UWgnd+h*k>`S|5YKNJy1objl_(i8I3}YH66C@d&LSrcBj{_Xu!0t}_nGE(Cl?jorS!hilA42oV zXddh{F?f@XRAOJ#JMKcaIFKz~Uh#?~p;9vHe1!GVe|X%p)_N$J5^vh2mu`WPk*xPL zv{djEcV1r~1xm?A%?8ia*`1z5@SML&k=4?H@=gV@;%2RJO@5xO`_Kl0(s#;B07PG> zsl-6o_wel+?Eei0l>q8O4N@do9$bUuIFKt+O{XuuHwuUC%{r-in={RaI?&9#izd^` z$XYfFF`@ma-Ld&4H2bFppurh{?|i!H?L!1Ym+)xYlZtHu!|QU`Cq9T|Z7Ja5rL+UZ z@|cQjW~if6>G4H07frA*v7-jTL%EYPi6tz!)gIV5IG{XnWbBanMoX!I3}WhIk$@9$ zFR8|mFiq)Aic?2a}zI&lZ%;e3m z-X9aduiTacK7oUv-{-%F+LTEG(#$2-jwddX$yLJ0XOjl^c@2~4?UR)X9Y`^xUskJM z=1tl2-X+yCT@+3;=wAfTq;e9^Zh`+z=Y*K7cz`2sjz3%RNJ%uK$>h=5nj^E>gabvf z=qV~+Y8c%;LBq)a_JQ8tN6nH_EfRbRtjQImrHWKt2ZzD(5f~py1X*Bh<;7|-dH0X| zv>ba`IN8*X`-T9@8f<;ULq|AmU23=keuFatU&3wm#gzzeX;A{D!(O~#-nv@oJOdz3 zL^j0V=|O8t5|r`(jYF>i^H4?Z5^Zf*v>$qL_cV#(Awb0#E$#2FToq^k%KM%|)ZFM? zO?ZE|kG=mW@qjR3nxrMoR+)5wAj>CuTvI6UG!Y$@u+Tpq&kpbj!ss+CMOzJ<>dgGtUrTX5ImZLn$SkGG-{oIkB)jiZVyU z{|~OLIN2MdTgzXI$NNQ>2RwddflK$BDl}J$eI9&1dvV+Dqz-HWFmQ{WQ}2$I^7H+I@hP6d(Ic1l6hACv3RWM26 zIL}{fC-HobJOk+Pg=uk?V@&#fPpC4>OOE4$Rkz6YczXPv)6KB^2h?BLRTC>M)gkUn zi?(;E-lwEKFUK?T=d8n`kS(kti5;QcxmMuMV4muLe zh!?tjLhr>#ov!(meABouE4^VMlNNkPTbXoPlunja8~PF=Y3LUIVU8Rf##W86M~K9v zf-)K}F|2|k+HCX`c)WtF^){o6n&2NQEv-P`d0(q&goHjreDRYsBDKEh=o=`5xv<6& zizXm(#xztJL6*yWS%vYDFWNLofB*16s5(5^U@tA-FCX{*v1W>|usM(ftgn{6`*;Q@ zO>peoi~}}C#m>@qK#biwX4Ol-=xWtZVN2uem<-* zfJYdL^yfBC&lEi*_sfooN~LeAN;N#2sm@9k6=f|OEz$7rlp4OSY#mm}| zw@pOu*;=Sv7y(ApCVCFK$=VeB^ScVddMKL?Fh+_GGsQ3np|q>x^nsWbdGCqzjZf#` z#r8V&;xrlwk4I%?ijUK;|5@ZQpciAIe{}R(ABpeIUg_Es*LhgL#wtDP;M?ISPK+`g zC!5o=S1kM_F+#7J70_U?FrpI3?eVBA;B92s*0dlkX9v2uMHw`kMT&^v;+%2iHJFw8na^yXh0XZQ%c-YNn zK&@j{v86WRTYl$D*4ETFMq=1M9mHV;6i0YBh7C5qz^#mI(YVE!vxyO83&j)X+eG9y zfP~@!`SAy8gP5uSvNpYR#@P8~L4l31PoXJi`Ynu@7oQz1Rm^;g3axR)$S1*jitlqKNB<_!+^uSJ9Yr% zWLUmg^O6G%ZE^+Cgo6)0T+p2J_isJ(9v^dibF+pFaFfv_^JTdI?=2V6qQ$bFxW7c6(-mVYdsJ-2uRq9^ynI8jLcqCx{v`;(~p;_!jj3S`zi}q~z z-)@GVY$uJbV!rsUwIaVfa``9JKBm^y5-QN`cT6$qn&S4=i1-rgkyMUR?`#<%U&CF$ zkhE37OO)@XA7_>w8c9)jeYAUIfnar?F7vF77D zFdl`~w)!yswcP1scxtk8q~s;Swm6sjfbMFW)PrFz2mdrct2K?-P)GQ*q7t9p1>8wt zB$VR7>P_M$@U&}`o1--!t#~DipI9#9GgP6L50N!eR@AuULZSeymh!L!o|wT@x0ig% zp)MRKD)vIofhPQZK)T(b0)rTZFO9Je0u+?@C#zq({i}YYshWE@H8iWAIIQz zn9J{0p3>aAIs5YDZvV~Q_B=B28^l|PyzwY0elnj7!Mf?nBvA$n<4P5Om4)D8VhaRV8Wr9lwlXuX@h&Nv!iVX7P>PZ||r7TF*zfxM{=Q)ho^V$Tfizru(FZ zkB?a{(32kKjW>koW4`{E8lN&}oZ0M0{Vjl&O5)|Yf!3i%Tb+EdSFN|2)-+7~Mrh4Y zPbBW9T{(;t80CSVwi+rks7ea1nxB7{_ROkiszB8xp#74gb%iv>B&_r~MY)_R|t zrd}~J#OVj-E?x%07GBB2zvw6VSs=iji_+4GH((==iVE@B+)aC-g%M0^96ESqB8Ys0 z_kld4s)X#$Nm=H~wTEj)}5 zM71I_;X^syp}>$v2_unJ%_HT?Gw|;4FpQjHY&(|ujJZGs7*EB`*$%mU2e2mh=@?(2 z_9f^=tk;PWdU*z}S2Eb1Bz+4_yGc4YpG(x@VnHQg zP=>kazjUag1qjasvS1s}k+i1|o|9g6ZozkWOp{rICa*sd9*VV931m(5e)b0P*UHig zv%G4RwO&l(ZIk<`q*NCTM*s;Gom?c_Rt`=NH2g9Oqo!xEQVLaoL!`?=z$8{bU!&_ zjY}|y-r3b=kJ_zLA#2tu-vS@l#R3<|z_hG|J1octxdvX)Ym192`0SDbvG@zBeb!;k zqjd5*y}s58$m*FlDMI^N)2d} z%3{S^Czwl)aOCA$%+f{Quz%&({HjGUrL1qhs@pwaMHr9r%ATuR((M5BLH1(cxbmUL zF9z4V0gA|VcL;X-mG$vvbVcxt@fUTwebafqbHB2`)SJRkwRdg(5$KdOGnk7reErcF zLyZ#^Jr-zc!L)XLUu~`(rT00};Md_RmxM|drQ%t+`U-XRByS|*Msry@3Fe*3r_|7p7$FN1| zGyN_?6NFJa=s)R3kMt8u__r61_?cfGJ6)jM68BkKw;b}0@5kA75 zg(bGENnH1@VooR%IkYmmQlt^!$xy3Dl6SzHVwjC)XlA)I`lzjQn@vuf^_Ly1n!!5r zx$mCwO!aXfULi%a4|+}qN{F{T$-D#fdx}TjT7s)N?+B!y*}$LlS#ui4@eYJRF99!b zU0%W@dW4+8$5mYD$B8|ou{&fiwD-*klMxu{@|j=f8-2*|CYi+JF1R{X6UJTk9A$lS z%B}V%A}nVF0@}b8g0`ZW15q-Ut!hS|>^{THXCZwLs=Z9lD&C&`uh(&JJm6baxxU>k zgEq;dxOFP^r!;$(yW9C_j+^k9Nn_v08b#C8a77q184eRno2!aI<%k=||(x|{%FR6Nu)$M`#uv1Az!wu8Xjhboh z-cl7e09PIqaQ2$VM&uwC(@2IU!H`HE=6gl83A@aHcN7ytK6l>;4>t$6x_tO%0QV@_ z7<*?NObI&%K3%+=wSD)oHOb&B`)^s-d2?sg*2R9(_?{mwZww^&VS_B3Mw$KL`ZOkwXtHOC?|lu*w<; zltX!Gq2|jj$VJ;Vc*~QdDdst(musL2x)XVMScD`GAJIOi9q^3bR>EkLREXqt%1 zSidN4&qtk(UNP_ubRpU`^_9Gu>z#7<4QviNtT=#SQ;t3jfMKh_!B3E^IyJ>(7wQh) z8TQdpr3*QqpE+U>4a!>oT{$ zrTdBo6S|anxdnQ?Iw0!f&ENPhZox{m(dfFndF`<(P$j&TEZJu7PJaN1N6zRk3J7(_ zkU8hRvO#M|waFDXJKsRvo~!owF&K8FW}rl}fI@d@vC}TiGtMqe5WkmuoSVbD1mEfl z@fq9NZ@^IRjcUwp(Qkli3?+qYW}t;4pP4Yrrk(37#u=KFS7p~H7w}_oXuS~kBjr)9 z7AC9gka^q&H|6lnZvabK9{N}06BVK}HKM2JZ2Po(0}bnk`mMTaVTx^!V+Rc9`ING` zXdQwq9FoeFn=o!dM%~hGt#GUoBJNPi_tur^^xgEk8EOOZ9E)0}UrRmR7F0BU*?cl# zZxkk9{_#8~tOeJ7GHki_Rv+Q&`YkdRPL>uQL5rk&`1U(CM$26??t6XWyWu?3d;QPV zR}F3159aNK7M>E(X7AAPA2!8F#tMLH=c?#}bZ$Mhm~1E{q)F1Bo0T9Sbje#}iDixAgn)v|;#6FPB`xtee<1t7`T4)K^a1w(^ zex?~4B8P5nNMm#LqRDEP?!=HFIfPyJy^$TJb)mo>1BRbnw6Q_mGsFO$lSpUpjmNr# znMg;@ZGYM2#wweQxcox4_m`owk=3F+olO>+j%+3sCe>%BZ;xkT^8GgUtHN3s!}I9h z!x#k!-zmu2@FaONi|k^W@Z8ccZ>Po){mIA~x|*Z0LcC(hw6IsTq=KVJ6OM$}&OA$xe=zhB3VKr(Vq~S5qv%m26eR00 zy32Dkw-mkvC>v{*S#Golr_5G6WoFP8zOqmR_%`<7bc#A8amh(smHYtAh3=Y?h8&dU zp$x-Lt}a*K2tMBa0O(-W>WgPsG_?8|&woSyZO_B=A|6jD<9DcHx%=QaI0>TuyS;qG z^OhI?Gj%(ZC-T_Z!h48Nysk%MrCq%8(8jhbB%P+6H*)Ofjf{I)NV2|O778nSH=m9{ zsw~qSI_+hIFySCfEm0!f8vCUjg~x!=;Izj^I4L0^LM@TdmCdQ}NU`xEx{#@KN;PAT zI*XOhU4T=inyvZM1V=Yh5&764%yFym5Ryi zTFHL?hBuXgh;iBme3!bGPowFPykBsly5&o}>P02`{=%^J#>Q=k$VoToh>r(R0tCj6 z4|8jlDjpN9`v4ro)uVn!)0a;qq2`wg6r(pSr*s0Nwv>M1BYrPQ5bZp&pNF`BskmN- zx=5gN1RTwtrf6S!=es4} z>R$P9hha90jJRk<=QzH+DcWs#yVgg~l8@??lD>t0D!$I7h969#;XgM>D+fw_?|?U^ z{g2;nk@Q0wQ=v5~P0cCE={bjUJYk+A<=T+~=_!je`R&Fj<=SyYR(R-qv*FC1YGqb1 z#QqoIUA!W~xwASs<*_KZ*;b}y@kffJDa}?AiwxER2{^nBXKWC2f@uH~#(}uq%7M5M z^wN$Mv$Huw^|+Mt&@Q0(fX@Nf6Ti}XEm*MfwU)7GR6lyh2CVTYcn)iCx^RMy?|?II zbAucU7RHwfd?|gJS%ufiskWI=$+3zS4>7$2m`cy_rbkGN7j%VVOMO2B3IUh&kQXIl zhk4Pzi@;fO2{nSsh)S}wFk>*jBf?s8-HRVBDCf~C^8M|I`?VN1~hUF3z<$x=bsG(2EJTo>?K%E~6r$kYeqo|xiJ9V-7{v@32cGe2&T6|?SqBcZD z{z1n_$)0AB-4=IV%d$tSZL>0)0V&~h&9m@q&XeJ{MjuDj;W;_cY8>Z<*O4)TuDh(f zakkrNHM8Y#%xA<&D#-Msc?ri-BFuObrC+I}+iWp8pAL8eHc#oA7y1`coO6fou;Q+C z*oMmdkNKTkvEVm@{EK-ZIn(qnuPLqYZ1qviVrSmaKG9!V#UEQK!DB-8R66d`mTvFT zUamB{UmyL{pl6@McN_SM2z4gtn8;_Z|L zgVFte^efbmETaN!2jc)ki(NaM?6LB+35y$imud81tsd0l54*8lPI9q-0H3LNVlcK3 zaACE3|2p)cj=t0CvQ@V*P_BoO>$*~2eZP+VFip$OdJD#&n!JeV=Ve7dY&@xrRrY@jnX$*l80h~a z3ZTl7GY&&u- zqg=?Xu{pS>m{KYaLY|Je(8jb6v$~#+JAdhBd8cHGG6V{eH`cm8qG)b92fNyO+R6_P6stc9F#8JwoTV%LVBGR1(&6>s zIH%~9!o`=PC7W9ylb;gJscvml$ya{hEaxc$yT?aHz2G96Eu?q{%&P~!^OD4+3&~ji zpxWUa0J6UyePZ`^DcZA*F6W{QDOr6v z1Kd0onYbWoJT|x%Df%wbH`pe2H?)72ozp&_QVDw_rRT{PTY*25v0s!WuQhn7NcY5n zTtKSR3p{#OusuP)?ii9$02(t+8RW zF~9$F6i~IhnrOy9D6uCo&NPzlfI7$# z#>(OcV{am@+xd+q{eyMtj;aWo6`F)~xmsjF(wfC&);wASkss>hg(|(@+kf6NCw7c@ z>O{EN`md`zQ`pFpdg(uIb#1MOxm4_(mmYse~`u|VThyUK0*h-yTMcM*5tJ3(Q69BGQeyH_ZX6hn~$Z(l}vWs7HSCVr+; zu64ZNu#o=oB*#MIKivqGT7{T%ZTd!wzI7@UM}wj*!omI89b{8TwQ0m45(@344^krfvcmuR`8YlBJdoEUhOqAbuq3QVT`KBf=w7@O5^G)oK&cjx(@fHXZ} zs{?~G-10kwlL|O&9M&vt!@L3_yCB+jrneR3CFC4sJt&D8DzddMbewMy;+n@9y51L? zS8?b$Z6=L~jD~Ajy1FDfq)xVN@VO;ky>=F8tpl!O6ktcaT_yJ%mg!Tq|M{yX&V zVO`kCB|Q#f80GA(YP#rtxb6P5GGZ*%B=$iJ5t~^8)ub%PEft;2t`r|U`SqQ)z4LF$ zqWR?*x2W??xWl%jaHQSfCUGy?g8W(CMG$^l3!gWiAFX|~K&{Q!vmMe{m4c|kwWOK5 z&N+2?>YeelM9l%>(7rU8wquc+ccwdy9AN7kiH2H-h|~;4`Y%ZdaTjSF+QfKKuNMi> zG^kTssz!N3OQ`<)u2D2jhoKdV^Y6%TTDh)la*HQFquVG9g7&&@ik-#LKp7g{5Xt1# zx6K)a;UKJCuxps))nybre}`+g=o5!Ttr5UUZ8g+8gzl*&peS1x_%xalI_bY`Eis49%NGZjSEumi--0zk(lQmVT-wrMBA9mkZr^<5cFL+_P)HH1QRE zQqE;|GY@X<`?_vh(yhNT{z9T0Rz7gk1aV98O21*U9)Mkw^LRdS3iob^j(rTVY}fN< z9_qb?cb!MBj1&2uhsNjqbPHQYIoW@Br=Zc$gA-1%NNjF&^1F@YEKA=AID!y;sdD$V zzisoYhc3cHu!NXOj&K2Lt#YWmwaKc(sor`iQCvzMYVQqdG~2yrO3yqo%wQl95*~+c z81g8`WrE3W6bNCR6GBlaov0i0@OF79u{$X(2ZFx5XjgkuHO6O=5rG&z(+{HK<d5NU)#@#?h8~a z){BiieFeEYO3Zu(RsM7Q6!d6yd1>fis7ud&lVFh&9k#P{L14coMy{gexh$h8O0&X| zRI0rEQo3Z)y1B(N=n)_}gtji%UWK@JFQ_RafFspv>_FFsbX=njXM5l7z|8&7&kYLv zQKt;d_~}fyAF1lZ(`s3%`0QHa0SvSGgwugD#to|C)wJ(_HK|k{E8X&}k|f2}<;Ihy z-p$}m-WuW`4JFWT0vU<$kE-jIqc2OF%zrl~s%XH{#=6loz;v*uOODVd@}np{K;m|U zw??*!LvYlw|3s&G3a!)6AWm6HBbb&DjG7ow*+X$3s|;}OaOC2`Fa8_>O2^OJOgCa@;H;~% zBFfX>cOZUU5MFdtuQ8z${)C8~R&StGgf+WmKDq+v z&B4iZy~MkZ$GXw6z+H$Fg}I)^;^CnTwoj6*CKkMaY-GkE$Mr2-PzDr&SKiZ2{qtU} zD9g&|2Mb%8tt~&Q&0Et!n$pdgd^0#H74u`!7Pp?l;KI@1YbGP`#~ICyNu{dUqVdmT zRoL+v=_zIvl(u(E(K#H|*p;=Gjsq<&-v(a*NNDe`?>TL!W5z#fjh@H-#9iK4XngkH zhlvikT7YfW@|pA7>}}V?i1xMH$sR5!1=QSIuM*L0%XsaS6HnPrE4K}zBo&Z0>RW#W zeCJ=!qym}3aRvng4_wP*G7|k%dGpFO(CJ$?#Dh+{WCef$D7WP*EDJ6#Ki?G~b&FKsfPb<5Zyya{;9r|N6 z>K;`gFQ*$ScE5+O;1^|D2YylUVcQnaYQfdDT5wgb*mF>vv{FDw`jO|T=5$rYOtd%Q zr+|!^Ls-qA%RT3z`2_O;s~FmhQ^b_Y$T?~BQMpEzJd=jv67j`eslkHlgIw^Q$BuYmI>-FQI&p6(j0cH@9i_X z-`aBU(7s576HzkQxG6X05{V;fQz4v@fo_>Jjy+Dywdoz5b*7ol8x&^fhkBU$RgjwfsSA|uFKxSE`EKB4yZFTk$CFN<=s&M7y zucp>HVSTIFpx|&_WxojoN~e1bG0Ci=S{@K6$h;uZA(Opnotmw5Qu{W%WKz~APambK z1)wcXm$0B452=er#0mIsSD%fC& z@SLNLDM6%~23=hnH0h8hgs8>HVzs35MMz`v=FB;wfcANm!&1WHMJ?lKL&le$8G!vy zrn`I+8)^oky6`)-T|SYWhNY%7K7Op4A73a~-jpTA$$0pwet*%r*P50q=^`$#>U*pz-*1LE6gc6Uf4fs-Qn?}o^KW680>`^2? z6cXEW)tWI4kDs5GJk~z!G$TFesXN&L$|X0^xnakDZ>p5_>-*j1n~@r2T`GX-mESA^ zb7#N)F;9j9e3%x22K zG78zuK%YMgi&SQ6->0KfVkHeb_XQt&?;c_>zXwf-^=c>?^0|k!i#;^rF}>eH-t7Eo zw^?V4y!eonJ#Flnwiv^1?&U>+q%K7Sy~w*4m#Ua&2($c{g|N+ks`gQ2=zkT?EGGvV zOrU09Kasuhq4@RPG?>Mk<&vNep4()qNgQx`1Ec2WqM>lK%YEnXk=za{KeZU;syCN zHMXbVE0g6zk6w=&_Ny^cOraO=lOv#Yrp^e=hI!gnEn)xjqR{_KG;^^bZh=jsr@;4_;(w6Q*2mV^WjQt*uzgxf(nLO?&^lk zQ19w>vnWGnlkj81TQZnu^;KN5XZ6<}p7~0Ttu`_K%*Dt9i2%53#&*&Fh}fitvCSu? zN3t9Wp|7t`baJz{c?{`|vc3zDzqUz=M5;p|g@{T^8g=U3#)`+r7AM~d`wgI3eXSU@ zv|ur>3{1(HvqU~_#j6KA=)e#4X8Ax}jc5`;JE7v?hgu|9~ECxlOn#`&u|8pwv~>v@rCr!ML+C0n&3 zSfJ>^=&G;YeLQ8C-fcBW;ezyr)yyTTPxOd`GdxcdB-HFwgm+3}j?k8pCHLX)!+4fH z>n#nDM5i_>ck_Y|@uO!d&M7n)w2Sl+?14m0$}m0Kg`|UKn%Ty4Amn46nK-iUK6KOT zIER`bf)7%t46}dfkC6Yp4H{3d;CiLVDRUve!ulm{Y(YEa@_p9sSsL1LREQ(r9S6>r zA)j1GGIM|KoxWI+=9v=sb;*`mmrl!am=6II^_;xKL_AffCz#_lt$n#A9_g=s(y>yYUGh<3R``JYFp-K-ew&#&v({%^M%^Z;6~kE z(Ww<^pGj}aYI`=4pk`jD5~RDzFey;JINT~>q6v|uYP3-D**+=I2A{?y=2?2Bwg%}` z2HtCy1~x#IuSVKe(J6r6Be7C~YDKomuS~t>30yzx# zEybA^>hQMT&8&hRrC-{D1*3eDPp_fD0%4Z>WK|J_0 z$rfO>c*j+FicfuWe;4E^@*6B^Zzfs51qzqh^ms~w-8ag4R0?+7knQCTuxKC!hHcts zs|0}+7F|>cf%{(}zcn!-*TJAi?3_I4xhp^?5yceM+6nW**{sZ0JzCYBFKq zmTES6F8JBuxGsx{=k$bU#4We(S(F)HY{bLIfXUD;HSzMl0&T;jF4JXhXSawP!1E?+ zuO-1H&#j{$PWN_S@q}Q5zxM=PxJA|`Up-1%v&_i8W$!*i8w`(g^AE|*?H);4_twzs zmzGja%>hrkDNKAHM&`m3{?Hj|8QPZqZ;%UnQkCLe@q3!E37yBS4JO@+4%F0qixb}g zE^tcX4!$7mzafhl8H_+o1@`lM+j`NE`F)L5>nhr(_#9lQ@|IoT)ibm9-kX_sVV})0 zL5%W@V8AasV77|c$OUb*or!M^ok5|Ddr0{K+}su|QdNoI@XlARHLtUio;xZ}>ET zNts-VlEXb>HkA=NNnld5C+`>C)gP@`+60h|Q!lm;Fbr))neQE`9bXSUHrUg+tM62S zs>3-`kfpA{g;O-ou4zs&XnA_16jOCVx=fz69#S#HKm%O>CwCkmB8AMz$&?V3k~mXH zk69=yVQS1_L)aW|q?Jzc zF5&cSfUFBNo~aA7e11ith&dWuvWGfB%OCgd*6%|94a&d#QlQJg&yYk0#tB2tKRZ*? z8v>=U#mw=Pt~8KXo4&L088@U(uTTZcGxs%foP%Z;V2e2(@_>UA;x-ie*6S5luXxbhb z{j$48Gr2}Mf9IFlIca}aGC0RHFUl;BNHzoNT6yp+hR@5hXESgV8b>&=G6vA^$`;be zRZkgAwiyHLqG|h(NzIX68v_~TtGlKQ8v|qHIQg9QC1iE|Hue=)t`!)5AUqdk=7lP^ zVKKn`9{{O9R=>`thh`&Aw<3L_fTd>`kq*rlK zi7({GjD)=@W^&o6C-`b2e8e8_Id2>rI|IDFay-E8cdItpPld0I+FE4O7F!Q`4Qdaaj9oZ7;Ld)~LPRFTTtgyV?>vSycLe>2A3Jv9Aa8YxIpxi;B zTn3-HpQ=M+5EhjI{~6!fjI+90kzO=W(A`~)VfY^!crc$GEW_ybf49b0U9B*m&BGfx zV{d7Vv(Kf3;6z+U>Y{V4$4Hgm&9NaLb!Ke&AViY`|YD`t3kE-xt zN+_C$Txy8#&!;{sBO=)8l0xq;e zv&UMuJ?}CdQ-fX}92YE}5JZm9bq%XYy9~IGuL!QPshU(M#bL0%Pgoa~;XzXmvl)|} zR!|SDVDy{QiVU<%g*l&gfGjYLZ(+tDmzBQuxPY%ECb_IY#*nDVqiph}GI^9u+PP`o zq*?A=p}Aco&53hO7Mk*cZkh6id8kt*9a^CwTS{}eNK=L7f|VL}cntO%6#J%kLB1ZL z4FdiU?^?)_2VC<+S8BLuxGH=w}u56deijPcuCVoI{7l@=h(KB(i*nX&NUlN;_MH;qz-EfuE{AiJ+ zeB0FQrlk!Ibj^+`@wehiRX9_uWxwH;{j$5!vfrr3{=Sdl(qtSWt-Lb;8wA>#ONnDQdk^{jv*p)u+VxS&`(0x@wcpUuyC&p6*KM z*F?tE>a$#{FGR^a%avNYe~pw8ICrIn!Q$j9kwo$N1k3i78oFFe(_%BZsy%4c;&sL- zqqfLDPjVZX>NOV|wY-tnm1)Nrym=^~O`y_#TguF~)}Q%$0))=JT8*BBu! zzpl`5BpT@Lgg4CQ=G+ylMlkwzw)k&*tr3U#aM3>GqK)Wj6z#(V8o;%SCZoLLG;#EV zNb~prKH?m^deZ%nk^XI*{u3U}o?dj8qj_|K=q8CID%%ox9vw$U&22@#ddrj&{vo`sv%oIr_{hD()dQ(Y_^w;C`-*8E9BR!Y&O40d5Qc0^- zNuMF3=9ZK$4l!CaMC3{h_x}&|N&+)>qK};-FY06?8Y}_-`L7sFA)nPX8kp zbTjF>pl;D!ERqWPgDR-0FAdD39;-A|i}t=8Mcq_kxn-3GXJ3QpZwYh>2_)UIN<*bs ztrcmiu)MiSLrK(nj@r{ytNk{}6=O18AuX4@YeW*S`xAkr_f~1BlEe&OlupLu8eWSA zn4d_eAt34W$2DY%)e@1W3d^;RYrrK2`GrTNV=TMyT0nKWx;UsL3I&gAs1j#`#zZMB zdR)WhQKye3^5kEujK(sIS~h5}oGv1#k3X&2h+qkII>=7+xXLRAF&Hq2Wl>=@Y!c3rNa-LPL&NjT33Au#`Wcq5GvqWvxl1 zGioyi0DlakT-^RQUy(9Zv;kmBp8AA_Cq(zGNYb2PdF2TWrI*qSL^gkj?yyL*Ig@Rc zMQ#3_r+oJoNj7J(%@WqaeJ1+-Ol z-Em=HY_lwvz?(%z3B03juaap)?n9znE|OnVw$Ps3J;#NNTuxPs`}fDzstnn|o5I_D zI~bKgyL?aYPZMx6nuG2Sx?SCECTo%Tz*Dl5z zJvrjL{dG|ywBvO@@7jF6zcIteHpgVz963X>JS9@mqWzI61FUL)yE>YJgR@HEY$Y!~YInL@A%=4EaN4$L^vRPhh5oX8L;?Py1 zXgAAoJl*h+LSL?bY;j?pKZI=Yx=v)Xyw{>#BS4in&ba>g(3iXJFfzsA10s(D^QiAi z@wrcAvwX+ZIiFV$QZ+D9WV4*stZMdKF8;QOY?j|Rvc`spYVmhfSn+O_-g~N=ZzdU%7*J~ae2SUW2emTWmk&3lS+>xWA>aW9>!Pnfj{+va&h;U$Y!~%*;m9fZc=q|jmTztR`oy=Nf-H+M2 z)mwheio#75w{(;vzU{ZviXrb(r|^r{7Gt%9-nZ6=G`ENn+*k$3mY6d{M$5NQR*mR| z@@qtSok+DXv3rq*++*b-)m$l_!~d;S1@iKF3caab60HJyLH+*bhURBZUDWpp$|asw zUMsFV{H(S3Tw|HM%AnJ%USP1`?@DA#_?04~tsqbEn$yiB0PPq?mH54CQmtajgS%SA zG&K3WUi{yTKEVR`JSTcp~7b2srBhRI4)t<3Kls8&r8@0y|ufyV@Oe8(%p@-MU z(7yC}jB0Ur-)+%)RqJf>P`(zy8qa0Q4T8r=Lbl*k3We0kwW!F3n`0@de0C;NTo;Or zHizsZs#V$=Pueb&JeP<(<{rXNbIZls9+6Q-^6d5)3eC?@Z&!6$C^G7P7eD_zM)&j? znsV`6Fhxa*MvzCHwW{&t&LD>gz3^gog zAl#vfUMMmeLH2tbLxjueqf+JK*M6sp6ZJ1!VQN)zjmMnmcq~(}`nZpr@UkWRPLWX> z3+1`+xEc+*FwvNGYa~a{gY?Kb+hE5JkIOr%=e+drxH)xZu%&qoQ&n9(Eiy{hc-~x- z>|;kK8=da>QFfFp?P|h_iYz^pK1Q-K|5XXq^X^jAqm<<-eJ#rKg>o`I>HkIY9uV35 z$thZiGG%59o9QB>tc=YGH7jzCu&UK3qcbV(d$>kijTOmcc{hWhDG&{v&Zh2Q2n$-EhushWAV$oMMB>|n;^Vba_L-ugeT5^1($C{Cpm zFY1t%Cl7-D~+}%(t7!gnrH8cfj0p(gi ziVa1CSdl8~Rk0EaVnflN*!8}j@60@#%_bn=n?G{)oS8H2%$ZZ4=fV42JU)IGvT@Ya z2bjWWVN+8k}) z>k~tv)zMSHi+m$yJo;Wx$Vx=nA+60ZDG@~>>8L664pbNW%!n389|~j&6Cr?4Y#iOx zp%->JBlS~{S_6&w5ejXNn!=^QKy_85e(Tmp+X{ZKkI&0e;wPlaXEL6>zBPZ~;pi+; z90*v1vi}w#jxZ`x#owiL&e=+->TglP6e`OS>ejzaDk4?w-y&6pJ{%G2%D+!5B3IGh zq7@1Uz5a4Fe9hk?RgC_nl=}WHN~XWMQVA7A6QW58NA%%~$b8-Omjp_^{_<{>^3E@O zwcYW>r8c5knM~GqJdzJ!MAbgr%exQ9wrjtT#*adiU&>xtO7ujAjoMDAETwK|b+l32 zz*y?WPevc^(X1n861j>PQTD2tqO>7jq~vGJ&&D(6<1xLQgpb>u&HS;@?phTNQqSur zwI<2>Oh5I+liHO0V6v00QUhM6DZXTRp8Y_wlRheRQQ9xbPP%jm9`wXb)rOAp&A*;} zQ}vM{F5;W2?T5N31+R+jeq1Ug5?QxX`wZ3FsVj$K(R=LXDD+-y^7~GxNL7DcQ_BSY z>Pn(scoO;hq1MSyFV-@}enA(iI!*-7wGXy?(~*~g1gZy2K0@v*8Oc5!l8=jE2_ z7d9&i?Qz%%!e7%t_~_T0DIIpg^w*TM+cK$mN>7Q7K;6QDv8JCKOZwZWMjK$)@kbI; zq+)!zlHg}`x^|Bc=`zP^O@6^|#!e;PR?BT(S{zr|(MGG$GO)Rb(ltL&5D3wbj<)E+ ze*OFBU7FLMP$3F8Z(tuTf~mE7?!W;9^74mpG3=(rKH29OU2K*!2vd0l_3LfnV|Hy7 zDhVuFw5U)2fjL4Kb4M-gHz4OyCWuL~mgV-%8O&u^aA{fLkiq@(1rzf=Ew!XF{iR%? zb(@Ge165|w6AlC;5@WKa)pC0GW^~K|wWx4tFD}9oM~emw6?4rDB>0kmjv z-T*Gbj9QCw@`XIsTUsdLpn7=2Imckh8*7rfnZS* z{Id}ghs%XO(C5dA%%ULh<0K$qzSdmMhFDRA2=kM*GY}g{#LV`995=`a7trQ z&fviVhp`F&)mYdsKbMQTG#2&FlOlW;P#Y_6khI^w8?pKq7IMW?8;dR-B29W)V^NgV zPH!x=8u^TOmWo!3}em^Ywb?!f*7MdI@t0gZ({8w(?W!3r7|G{VN36UPUFrIDC%VI!#5;Jh4B z{-Vah+?+y@=HjTbzBwYuB~fJq^9!ZN)<;F(+=2N+`sEK53eQCWdgt}Y8QNbeJm0iD zPn_q4sM5UtD#VLXg?)1R_aD-C@W7#$_GN>=6b)0ae>u8rsJi&(sKQGn+P%`GXowVU zi7MWN3+MU* zC1bk|@mAt1H%D0Y)YHSE{^mH-cUsqees7q6;u|?WqQca6)Sl{X5L z;)aNupnVxpW!rZAC8fVM1UPvs%|f=yX*1Z zkt-5Ken=qfVLdGJM@Xg8GePaw-XrYW7fX7i1ib!35lA}I;f#1fg?fasP*$Ub(3{su zM`lW^(Qw!X?mjpRMidDV-D-TB){ZuyybL+G-LT;#yNOO06o<^^c^_}KU=1KnlYXcyT+l^&l@e4uxAP=sA$AYffrbd0iAn!$2YuWzV`BR+2~>MJbj z^F^_idWA(z_K2vju&7si@J6`KsbupZ*wPkux5rRgi&8H?Fu9f6wrw#w>xrpklMhkn zS63FBLE6s1oMJfJQ3Q&p?#Fr+nEq0)zkFy_sV8iPs7Mt{`l7jlZ?l47a6A_8_LPqE z;5*WpN_y1(<}5y97VC?}Rv)pg+LyS`lETmRHR1B`&Im;2uL`AC7 zOW!wF?Os-Gc}1gY_cHHvuLOP4{A{nK+P!i8ZS7dKm8_b5OhmOuxavq0h-x9apRo^) z!N_n5>$aMa-XH5C$1aozCaqy3^!GvKW74^>#N#u2O{50Z^2h&cuI(n)c8kwN?aDkQ z;XsgRQ{2Jjt?3_?5b$4ce5z-)u0TmGO1$(Oi@d0kWlMU^;UxM&h%eXFSZKFpIO*p~ z7ug*dPCCQyBKyf1PAc3OVW?o_pELf zqWzpdQs`|2{-VXDB4@5vqU8!bbF%d@rY3mBd6A$9uI4O zhZ4)$Qq(_e#f9lC@&m|A7Y>0C#Qrvn=|ZrCpHUs>@zEWu?Wxr+vXzFyk>WeKxC+IL zjdvu>Vyf#=RvHQy@>1n47RDSWRHdwz%f^j&k)sA}X^nw*bNzQGxQHC}0C=g6i~cpy zMUGl$DuGv?zm)E03Ug3g@NX%WsmR0eh~3`;K&PgXEildu`aD&r^BC6|ajlDN#h#E! zkFy3pAzv2slwcA~PsAgjTymW&Qd1;;lgauFr3%W%?W#ri{2U_Tab-K@DsOaA z+Mts<(G&PF;-pUWc?5M$Q`F;YT*Me9HOJc5f;ed%7&TL_SHHd>Q522#?``bgch|&D z8Mm>~x71kuO!7zG&jxt?)nT)5pgL%+ucd^tRfx%&Mho*xd?39Y72jkr{e^}2J4_(} z)hVlwHH~KZ2eX_TVflx$OgO^DQ)$#j$7!;L3_R8H?^N3Oij>zH7`k zfRAViE4GAkmUXd+DpF!QH8mC*Ev=Ydxyki6IYrh@4a#X^D^a-_M_DA%WSLFNBI&%z ze~Z5?QEQar8=B$<=aIHqbL%x7Zk6Qh$I-r!N7Qk z5h^CSwWE#N`{e}UC^U+q=JSMDq`yIJs6XT>Gv%5t1S=-O&7<}q;+NsK4FyZ+yw%JX-DBO7!4%lQt1UC}dFIonT2Yp>WGkjF z5M|C(>>QlNTN_UFrk`$ck)r_xCG>AJX5For@+MF0>ZH}`OY1ZRi_`3nc6CzU+b|Oc z&dj+YzGXami>pWPFlq{pp$sF(6MO>ob#B@Kc`!~?p4_R zngZuy#+eQrEI*IXlmoCp3I`|h>&CLxhX0-~B3Lui5YY{=Cp|CI(w&f?k;Jg>3FBo^Ys9jaiEb~qvx)`7LzZ50%1@DWKl5F(Y9hO=Q#z#ml zfk!0X>7tZBx;m-;^i%@XT>JUmoHXE07ukDtbJFZPvB0{#o0I4aLAca@OE)LI2ZY*g zPCDr>7bVZ{=A=&+h;Tn?3Sy(|uXl5j_bwON-|gn4MR&m>$7YfNp0QS6D^fF@w^%qv zo1;I>@!DPT9l8E!q>Nfi^ZsaGN`|&GmBcriLf8SU`Gd8p`8Tze=0&RcK-Rp+OjY>( zMZ*4orl27TUpG?~UOkf)raO;2x(FY+#~X&)~ghE08*5>!p1#LhO19&C{# z>m*IZjMCq4j+d7XcnNOpjS%tegdrX$xQ5BB8TQUZI+Ah{iF92g057W zFw5#d?`V`rC&>qo9!Z-Ngpt-XSR!yufCuQh17kw zXo_h5L4tk81zl+EY!}(*T+oGR4q`vB`!5kWS8EFFJqaCvO&u8Z?;5Be5aQb@l&K~; zd#SLDGR>!K8vh&@weyxvAo`RwUOLA`>1+W*3MgImxAL}P+M9sT^V=L8B%HzH?>?@) zY%WyX;>o0-@?EScRNR+fZ}4Q&n{!>1cEFQK*WZosaYQ3XQ%|tmKUIs19J7lIw>YYo&WGR~?&V`3%0i=D zicFw7Og)iX^#G?-ew)D{6@mHIhq28|F2*ef?jL}Uqp`ppy8@jg7^JbleR&0Ns{}U)++P46 zM-zcNX(f*1=tfBQHGZSsMAUOX;vz@3n?J5J#Q?7Ph|-;60Ab!Ea3FHj0mn`6VG^z|wirM2zhq!U-WC@rIhlg!nSB4tIziBzSyH3lU=c*%*hex-2Qt0_25HAJ{I zid$>2bn{lLbdI%B=NwH@N2QBjqtczb#*&VDG?C7?Mx|SVACPV@P$}i49!|s=9!{FF7V;lMHyrA(^aMi{9-j_)nd-xPH8s?iLqv;t&9H8*<;;>-Z(hue zNvWl@#DLFJ^0hsjG+e1XqABdK#IUdL;iRNTk5S@$bG(jFL{EvC-+Nk8V_^z+JWLV% zVWRWU-R^wUMd_uc&s!NHI&Y$pO2)!=f$DHob(j~AMCT2g)S7+;+9W)1a~=jcRqH&s zD8`EOQJC|X4i)bzW0x`p+dfTVKaUZYDtNJ`K)bLB+OafQ)CisDk30*}pgitb-_#Z+ z(N&Or!DDjEBv9@%yGHFaRN-x<#nokvE9<6lI*J?52k-zk)hUy2o@vIc49q@yOlG%b zufYh9+bV2%oV+Br_T`f-G9;9Rb-&6)yd4CB-R=Wp7JHBe8d4I=wW zO)cj!i2~5!v&V6IN)&(-o%zJESU zGCBy53KdwSDUdb@(%CP&sKcK%4kAiEFr+grP?Xi00(FyNZ#A?tmA~vFd-~AM^y+38 zbvSNlXQB?L;Q#-Z9>(wJ+9LL`ZY`#-lpb1a)_x3S}R8x?PH zQSwF!4TGkqG#A$g=y-XY?`R2BndaCC0X*e* zv;_RsmA%ap!c-pz7spV&uQ`FMA0zjHC1I`}cer;g9K!MZ)s+%OAwC{XJX-Pl`Nw&D z-crgvM)TwOO4L0T-Fa^om5)Vp9EW*=Tpdqp9iG2nS{2NW}_nq%oue!eg+ zx5hx^SZK)0G8$Nh7;nI&Pf6!AJGzN)i4+J?nAPPLD= z#|FX`W{{=It?&dXCBCkW5X?Nuc1#5Ewx0gpFdnlw#l@ps1>w4s&0N#RM+91>eMQ()OoY{HTOW4fUyUEt=CG7xi511Q zJ(v<7S06@VzTA_?2SL$wODgmtKs=~48ZJs#Pibj?NM>2_jC!%A&OovM?1%QhVX|K4 zs}5C|r9^(Hl(Q9&8l219ro0upU@JC9i_YVcNeE>-QF0jWd>fOpmFG%Lqj=w9fVq7e z=GKSQ0Z&3wy;gqXxn>INVj_LFMYa)$b{SP)x1psds`UEDb5qkUUX-@lj{A6?;wFVX zQCNj%Uj5}3Vx^Xqpfk}fJ`AfvSs7lKiIQ(?Thklctu?NQK^dp0gjt%}ytJD+C+*;! zfwBF+9n`!zhYkK|;EVZl4h<@dTxNirRD)bvOc@7!uOaI1Ol|O*zU$D%l zI%PHNg=Q?L#G!?*-ickJUn^f^G(8;mdrCW+@H*~_0B?*w7t`(yXm+@sR~86Xdcstr`n28F zOs@|`uQwukeaJ#Rh5|6}PFnJrRpPQrGTyZGk~)!d#|9=b>P3ILgrQ_bhZGUg5#1ky_6#Gp2fi3VOiXjAj%oe!tZ9H+wmFW+z`1IR77z(FYH@Ne-a%_qHcceqGYl^GOhc+b1^^yPC=MBg?h*T^FUK`&fvQM#Xu>3nt@{gWHq zn9e8g6W&KRMhkoCF2-E>K91}w=&l586u3TslV6-lwlVYq!?%3^aZ?KOom6m%c;?&$ z`?!23-Swf1?341H^yY`ysD|&ZQH;A2*mtY<003j8WlPn032cmK_PEG?LB5lW2DQqF z2B3mVjiNp!T<&jBE?+VRxHKrn)52x?N7%5Pp6?{bTVkwpG{rX7GYR%b^PRNoBNy4% z1LtFlQTH5?X{9h)^RY7ekukuiRxutCMt6T=G1~LCF#1GOFnUxNy$>W-q(N(M7WyZD zs`M*9wIs;wB@(ARO>2=?*%!e+4VkOBP(6A>d8j^mgroiqX=E*2rj z=PmaS_Lf(K8J-Xe?=5jTud*sUF_$lvgcvb77IBEDxStz-f_t0A)#VJzj0LH9 zm_+=~XdR=V-yF|lKuUbJ@d4k`MQ3Y<7RDqXCBEozIOB?WK~!@%oC?9ojK-mos>anx zMYz(}Eo@d+`8;8h9Fxb}sP2aASg@*IN3=Mx>LxZJ)zuryEiBBhaXdxGU5qM$3a86|HhH&9uLb8N$CA0m2m zZ*y*bb3E@TROe9R3Y8Q=~ zH^D5a4x5S%72A&w5@DIxzSM&!q1!INmHMV?o1XBn3UAnq^p}uys`g%S@U~-UI}g>d z=J$k3yxtsNRfPu}BiHSlQg1}cudX}{o;QRjACch@)S|Ek2KmlMjt@^|MMaGG82;gK z5F4$LFjjG+gfnXrDSk17Z^Tq#G~$~hGmIJNq#3qJg56hBTVO2B;_oJ2wa-PiD!Bzc zi)+t7NvI+a3~Ryn`>>f%+Y74%n$Hxk{2Wiij-~lbZdJyMG{sb4kszJ=1!~`RursCQ%0T~+VPABxGhO?Ii#jYn*cqqC0KcYnzt*Zw5C}jmNOP6@bK>?YIDVB=~VTlHCJ!L z0U(x^*I()lnk8YXQ3AHf7NK}1dkMD~R;w)~)UH9J|ZD{ycSY_n0(Z^rEvkk5J z3iGPV9>}0gO7bmDL2$f%!~+@hzpq@BJZ*Ufy{MpFnkErZT^pk0_+=TiUkgJwiAbn_ zo!zl4gR;JMQSyn)GUyvcIZILShSBXE?e1k6^wrmpvM#5>0`0uVJ6O zD1)kiM3j6{T?VaE@ROQClk4q;bs2OY*o~;mpw$YpP(W$6jVO8M(hS<5z&A9N`VTJ6 zpr5~SQQFf>GiboKkg3yy8T6(i?bQ^>H`;qVm_f6@b&>s|2Q%n%ARo#Vh6FIr^Ou{! zfkC-qoT)yMG({T1X!MQg2At#E1D2Ob9^P@M0rz<1fJ+*)uhLkfDWtm7;MVN*owjB_ zg^kw~Hqh35>N}{1*1So9t270Ywr1DwwKa?J1Fbptdu`3z6?=}RsHLs>%J(3R)?BE- zI!%G3t@#^}h*AzN$)LJid40@XhP_Q)26g>E1O@;OGzGi>0Js0Ro5gUGHHGqb8SDU8 z{@@~Zfbj~maKIc6kOBwj-aEn)t-k*UZS~0q!5gh!qZqRcZt7PKYEzH=5vz}wFfE5a z-m;05sZDzREh1s0X?c2ekAVr+${(%Py@w+&rBA{=+{f8GrnV5( z8FBm4=_v+pSDptowS{PzalyWHYV`|o@c{(b4R zoWZNK_zg{MA$ri*y)T`90NAmscPiOD!E$w~4aGLfrB+ z+LaJ>#teDZua?<6bLh5VtLH>)xSaAkc1N3zycY3FkH6e!QnnJ^dV4eCSs;Gf@4P1} zD-WLZP!_nH^@qijvrv;SgO>f#oTce64dL1K+`_`k<#nUfpzQp2SZv$#C{j$6zIjG# zI{$wzYBzQ~Q978lB{zJjI~nPi7sHj>Vc|A`+~mm4<6C$gv2b~v+(gOYtDV$$h7g{k zDaapZpLw;D5)C(YqMBNz)Wkz0xrK#PqY{mtEd&geEJSiy{5->wr6&Z%MgLy-aaX*X z9CeVzOT8i7$BAxo)b!yai>pvzCb_Y}G6=ut;dhXRLg=JcZtTwrW)Yz0qlEaD{c9@D z7n(wk3;2@#O+aFtrFV*`PiYFA-i)({aqhj^Nz3jMoEJ3(PQHEZ)lRxL88!n>ubF}~ zQd8gzW}HWWld}G5CuLun%H<>NyRUXq1IlBAMuj<{H=C1+)P`5h5yDZntc1%{E*(yt=(iBPfIyEozVuFpf?;g{aUmNMIlnE0a#ON?~eP^PS>(_UtqJF8AMnnTTEJPV4FJIr8HqI5PU3W_g zguxx^fsnRqeP?pDh4v|_&vd3bCA!97a%qpPnaNcWa7Pf7IY+-|!E(#z$8>>0Jf>s;MAR%6scO(*b4rn8;Lgxya;E znd&YVnVyc8>03*t1BxAyDdp3rJ5%@mQfED`-!<*2B_VuTv)YtBD58ZT{c%eqwOmYE z{sV6L$~3FxKj0=LTbMrNLFvIXHzL=ET>Ks~#q=?sY~`f8$>uH9+~#yQIjZ{ejoxp$ zox8So!#ls_v$@;aqtOv|8dUIK4N5+xIFo{lMXc*Ih23i6>^+Jz>6i9yvR_o3Nw;@^ zm4Q7=u^!Ph8oPsqZHF_&7=>@&TjNEhnj*1IcpD2_b8N*_|Mk7;^o!jxM;ip!X8qUn znb;MHkW(^=OD%G?2)VOAOQ$m(hbMRH={z|+4fhTLLCRDz?)xlq?U|VT9^xn7FsydO&lfYe?K3bw)^~K1qX+_qDHCK5c61YET=yU0 zo2dM4VLBDiQ;%y&_HiCx4(3rsie2`g)HYOVab_3hSi_IAq;f$>a_jRV_he= zOfJsDWIO%%7I;PNrijU?Mwu;N+mxwEG|j-yO40FdN-seU3L6V?`Z~>k$#w$53-f6V z(?MD@89SBo!iR*i%}=))(>JD5YG>HUDqiq#1U%h%YI8bW0Q`>b3UP zjl#ro0F&qeZi}~1bQ30i53s%6nQ&RaU{y2Iat(oMYiPz6qL+-(FSe#lnQn3vz_{4F zT*c9B{>dEe^0AY;%E0#I4<}<}0~U9Y)dsdF|9uLhVas$qcg3qu0j+^}3E5bBhBr?( zp8~I=l%(NKS~D<}(C=0n_7jFX=~sY~ox`0p?QzjB?+HnPRBzb(40lr3f4Rv%XtK zFuj}|hvvE8=_Xs166tUHX#t-)fADWNrF#7#GZ;2Yd9yM^8{=>%itz5@T9At4Ed|@k! z8wTUlI8;JQc!&AIGcX??l1jGH>MFfb@X;A6&I4Rc#Ceb@lcRPh$kHn2UUsINY!Z}$ zw2BEncP2X%#(*mra}#5BJqzFLvXAVRu?=LxvGOrW|ejtvLJxk7_v+Jb|FVqyC@Iah>){?U*&=sS2 z=Ot%Rg#yExDpLNEv*?GeZn9sonZiN$=oC<_IUHo(*0XjBwJ<7e(6dG=*k5Q0?9GDRvxj0o(8DrW!Bx^K+r?zIbJS$lo}(ta z^kpG8TT_rzlRbY9B!tN<;DV+|Fj=>AfdrFT!26pb!DQplRg-N3wwSE8Q8JjU)p=^N zxbxLyqwxbKTaO7D_*sov6JtbylIVRxsQ>KQlcXo?pRtWPD zZH>pI;Jl06lwNG*Fh#&fLR;f8OW1WOMyWulZXayrODC=ST7#8P(7{SGwi0@e3HR>n zCP&)Uyb?UXB@_F)$yTbFReiM=3ygcQ_1m!q)lB-1t9{ZJ+9fX-;iMC`ixxXIg)!ca zx33%Fq>laEWZyKxNdx-9bil6LA=vplB?a~ef<4*7UKhbW^;N;zsVT7c3ij6)_DPq) zkug5faB<`V@jO0W5dma31>DX6NK?}YfV}mWsk{e)!SZ%}LnK(IDI_=`5}bayVvoKY z+F>BR`Axy@{+6V`{yClp;yIVcjH0ow(QFdaE9mi;R8WI@$>xuQrsXXr(I4@cQ0}~3 zCX|10%fMRz8U1oP+50zfl|R^3M)bE_MJlMPXvS93oo-5i6Rzs-ZYCq#SKeILpwhgv zuc=fe-HGn!`k#P#umsshzfPx}11z=zR<@dP)DLH;e2}Xe`Pjlq8^J|uxab@d{iVt9 zv>-R0^TrC1l+*_zKEQkXa@`U6LMvIV+2Lt{4bp@ zDX?Ug3MzAB#zn@C1lj6ynl9SOOr{mM`JnGjhU_fRuD>(k-mlV$GF)GYaIL?V)Har0 z<2RXHJjji6hSylOI|iYp>R^?zw43423w$@j(+9hWGFpElG@jDbHjds)z{zc&!EO+K zk1O8CxE9V;-%1_ZIQoz!{9bTBWZa&GpljiLX5o&dj}oSDOsCrlS;mhNFa_MexE79i zKYKDqye9Pv21vx*_x2(x;LoGiLsQQ6sWV&{M z)$Dae^S<58afbv=lNwZzjlVS$=oc2~r7I-*{K5hu`tVrw3-^%JVF*CH3GfRuz8(db z&lCN^$L(Javt$+mDsyATMTS(xqJMHCyyomHF=jE@-+8$}jDRv+sXD4j_3 zKap(*$sNQf%dBI|RF4wNtYf{zGV9nf8vtR;2uv;0m~oM@j z(G)su5yj(2!=wIcJc-sruP-*J7T+2%+PH`S#y~m0o?>+_8x3_hD=jS=JSB44!t^Zb zcEf15NSUUTGBkyh&x(|5ASKU@MksK#ra*cjk!Mn$jMlkPM$wV!G$BkBC(^&vTGFUC z`H+?9UnH^bL)Kvqa($u~{b&d-$zOZ9Uj{(ag4DH>DQSp2XWm zr1HVro;4^h)cT=U#g)O69uoO=kl5*K~M0(CdBj2?w0yuXw_WegK# zYew@`;Lo^ZP#FSKS`ioR=c0R1L=N&`z7wM9N!Wb6t{jF-#)iq@1TjchQ`q^3L`uH5 z`fU1L%i1Rj4q$&K+E-VfP0y9Psl&SJv$6UHnY3b=9^aZIWQ&rd%6Lstb$$}1yjF1{ z6)5h)qz+$JoQV4rzj`vMC`D>qqbX{9lW4aUXVRq=ZnE2pGwH<&HzlvgJ(0YMWFdDY zqWco;&*z>ZN;>b6!e zd;e;9GnMgiz>HQf%>tl=XhtiTWhdY%86%yPT_yperjv<}*9l)UrAme?E*HoYcVY>o#-u=yw0 z+%S>Z{1b(1CN`hW2TMvlVUNWqTN&)t)M%p5zrg5!5k~(4O)%;LMm?`(MqN-?d2Mq> zu%5++GDVL`nl@!~7T9dK*3#!JPz0N59VBuWOmjV6)2SDKUdoqxAQlCj2Zu zA);D7Ntt+^o7x2h9jC8DJa{IJYWc|K699`nrGu;eCf7g!?0LN-B z2#FRQr>Yi3Q<);JJ7oKX;u^zltnW+%rvVbv3vm^%YKW&iM0C3N&=cJywR{PFP4ome z*FDoL=a4)m5bL;gjazU=?DO%2WgUCc0u+U49bbI7>{fQ0Cyj?MPNhA_l+ZdpZR~Ix zE;RWu&v4P3OspS@)&%f%qA+bR9^IQx*WZTd%`?#F80UEucwO{7=MExQO3yLHQ>VMh zv8#$_mM<}QBua{|L5YhtbJ3RRum(}eu#rw$bB$PPqhYTa>7;+$?j}mvnCLf}k|PRo2ZHHhXPQh<$1Zja{1G8BOCKGn7X6Pz;UO7J~h8Lr!m| z)OVNWdDkVW)l3qRzu=oGNq1Py^aVE?g3FhDGbQH^4q{(&arh2gKMC>O>7N*U#hn-v z*Ptj!zj3d=4MnjsVf;7!VJqAB=d?I<`NGDCt65fw#3JFFxli9kyJ|u8i;lTU>@~Q@DSb17c@uAw4{|hw)bZ6jpf&8y5+|5gGwWa6W>37 zNO9iQ6qk1O#_|WVFgd}E<&PBDRtW(~Z!8zi#wpFR47vqBaASG>Y`5G$|4M89pebt2 zm;2}YXM;3uEdQ=RiXyEymNVzTmU3e`tvZ#(zr)}g%Y^_X<6`<0tyillbi6|@CVxK1 zEfM11#i*5w$yeU(mOJSCff4K1V?tMW zB7=CQHs0P#qyZw0h&wejmwVcU_gL*Xm%9|%%Dll)n4aUl^YA=3@v%2O&-w3>ukw`A z%N!uP%#XSgxRs;QJt*?f-Rva2@8y`e(ty+NT7VT=Fi0y6%z$$j0ajf`FK|Siwa85w z3svCfHMNE5UcP|*@*?c!Zq?$Xb44Fpm=+qifNWn3utST_($p5FCB`FTQmGVR$AM~& z6HAT%J3o~ca8dVh2->uqB{!B}00@@Ta+ZC>5_GN_!PvnVE0$m)KOPf+YQIT4*(AAj zi0ibIF~%Xovx8UJnj7ojLn-Kw4dcayUN-FWMmj0D6zvN@=7c7I^$fuM!CD2pVs!Wo zcOH{*QF7jSqWgoI;!dQ;ir&eW9PCV&oi7*xP2rM{8}^|GJJbH9Zt5`dAl|uHj{h3o zmCswz;r+s8R(PKn6W(QhF;Rqm+u$kACJTFwVh4$mTd(g-4_+w3tko34yl-^)7xWSC z2b9tW1`kcW?^C`7*D7C<+myA}3dcQin{te6WTH;lBG7zI zoAwDAeSW>q>Jzb}PmlYfMxToNn@?`Xga(`C<^+AnH%N8Lrb~{nZOZN-cfob{TkH<9 z)8IbUpeACdt!TlxH5~ zZh%Q*!}Zcm^Wr*Ssw)?8yWb#f-Q@Of*IZF-siyGs=-aVQc`k5v}64p^TxBNhsK!e)e+5=k6j5yPuL4G=pMQ`(9Mu`^pF7X7eiNrhQ5 zHrL}X@B~99Wh%vBzD3#2VupzdulpjM7DOl)Vyw^&K>3}r<&q4lyD^neWf)Nc=9i7n z&mNMgZn4)W%k7%tdH6n|!)i=E zpv0L2h1mI;LLm>OEFI~j?lq!ch5dz*PP%rroA}J(C&m0tQ`C4Rj<;#*L6(wHxuQVm zhBO6M858T}Jn*B)VH<>K0=V%!uDzk zvs`cgZlseotaX$9myu5T7C+)fIVtB+7~wE}p?X+5sg$jHBo;Q)XPN0cL~7OxB?NlWyWpajVjvt0^>?WgONY4Q987b&iV35ADkmnO6Pg}NL7>B+^Hh+i~#o=`dk3Vf~*e_ww?@x>3v^b8h z!zAOH$D7I{d${m`N{i$8nn&;T2p70oFjIkdjc7z#8fT9m>7*I!-Ey_ygY|l~pzfyV zs|8)2am&?$%4cAp!?~N^98Wc>s#zqQES1AV>sW~=o{4m)b!>p&p0Nxd2pSunV(bAM zaESsAVNURd!q{Qh$bdN;b3ZJ&h(DJSi8 zQs!iFjP-H$UOSzX^Q@cfm+f@Ytn5rB3?IL3sq=!oUXy$^KSfvsac79o- zQwg3%nur|F7O5O_!IjA4M1;z(_$;0FSXpfR$(JnJZFb8&RHjVHZAUq&rzt{D&=eNA z%6`@;Cr#MwrVc$uIf>FP8s(%XHltfQhdb$|a;b7jg`}u5w!z zsd?R4NuwO(R^ER7ZL^r{R^GSx{uRq+0#&0mW?W?4%Bz2v?Kb|^ZHwCKHhy%gcuVt@ zq8yL2d1_P;XJs>iX0t$Zw}?QqS)iMCSON)D1!~N=$dD5Y2sD=kTED|B7JpHB{iZ3* zH`id3@88kHnlAp`p7 zR)(oTg`ZH>Oo@%G#HiOriH&Uh``@sX5U48Am~oM@kwvGBegPr*q^346ZDP)#1M)*PATYiZ?B}1gdg1W?W>**#tT2Z{`L2 z+bqlHZ?+(d*I#N*P(iX)fYj=yf`o|nFze&r!c@ppZslusTcYe?4w&MEsDXdm-@*34 z6z2aam)!dfdNx90a#$E-YKj)!Z*Y7(;axY`PwRCe-TrP1(sI|POqFk)rcnm_nGLq_ zT`}0tEcL+mEhz=625Zc?$oQEhY#w)q4(?C&%I3=PB6SqIKbYOk?+d#>nBB4uEOr7_ zc8wVq8Gi`7WLyWz7$;*=2C5v5F zNJT36E7u99Ct5;{?`u3=dxHHfThSk^%wTe1pNWo^v3$XLS? zVqkxUf8F^pE`<5o=Ld^6fjd8ULS||EGI}|If@nexJo(pvu27 zgHFd>!T=kaQ^{6E8=1$8D5*oq7^-I+_m}9c%^N(ou&^*3qz0w=&za41_?UGtzZ4xlX8PT} zvUCur>d=^Rk?}F}g%02GFW*;UZdvuyC%g%{`710bAgGuAkI|0*+D#e%x=X~ksa8_G zVR?`-JYPck})w)&i}MeXScXu2-n zSZWJY)o#qV@B&!)Rx^gChX)g$menh_wX;QPi))Bz7W2948#iGybQaV4#{rA009NPFh@8- z-X|06C8M15DkJ$uIq7T#7HA5j4GH$!M>#3(|J=lcESx@3IBSJakN;!O0j28{I!{wj zdQK=+Sd=WBJEL%v(gLOw>s8f3Umtnyrbg{{+})y$vCzqDML8ioIp|8Io&RUq>}1~L zwuR{wTyskKfscYtLE(izxSKKYh6+7pCT0qmO8kU-nlcFybwllEf3P@o$8uQ!kh(PhBs^s`&e5VLPd zWeXPYZKK6M!wX~9KUE^x(82u&`ojTgP_d>iX)0cbXc$QE{TUlKfnX)kFvvRh7dPQu zPQxI>x4&3|GOY2Q+EoZm{eE?mqvjT#Df7#Z_Mo8dR$MJ74?1O+-yk5Ls@2^ll3!`Z zp<3l{ZnB5gcc#t1=`mIJ>2gdZSFnCX#S~m5tI~40f;HrKH`!lV-pRy1nyOVJj@1w$-YWb$oe<_RIX$jvWY-MCMwqG63Hfg@teDe%wA(JFbiY{emiR0=bIrUn+HfC(fv_&RQ&>MFtS?G{Nn1i%0MM*Jo=pY*tvj}@k z!7#07aL1%9vSH(GBWFh?Ws#%qPB!2sF4>+0n`YjH+x$Tvy~KRaYn4Tg?zO3uT4{zo zrJk^7;8=QvFR+j!Z6;UW!quN`1zjm+&L}6<%oH;`W7yY@a#F|SECnf;&YkWY3PSFe3#*rK}(2q}tiSVXI;PWR#OW z1B6*OC}5XRI<9q=bk0y~i{zYWk_TEdNeEptM@YUdH7{$UHSceuH5;1LJSi15W8I-T z=))_5t#e~~NIYP#rpCfHJgVYFOW*HJr|VL!PSx^@miPmW^so?l=P60`1-SfT)CPt9 zswrLvd9z{1n^9M#W>GTUjQY94e$X`XW>macHFt#&9jPe@Oc4SfTLdmw*f32a1d?9N zq}#RdAx&{#{(gf}K)n0hRKh)%8(AQSO$91?RCxL{wdhfNybD)o#?(Sg6(YGC;HHyp0#BUZd6aXd0=0DDLWH5dsZb@sekbP<*~95viW7)s|=) z;okuRcMG=Dhl?Tv>a^njG>s5AlmaCIKb~5N5TFer_;O7n1UicZhw=-hL-ks3>a#*8 z+B5FmpH6REo`K8>ZJT(;p=d{rccB zvOb?Gyv$Q7b>-Hwnj2v3-uAy#v+7K66lYAS_6+eUFg}z5eoOq}c8!NO*K@ zU~q^W0fAv`7t~RZ1;Sh^Rv?8J1kFL!W^f|o#LA;Mj4&|RC+I0>v{;E0ZK!{&KQP|U zD6!J;kgD#C>xHq>Fub>S+`uXZ#|pw=i$3bdilAdIYs-67F^!|}!jho3D$E$MEG&%h zM4!nBhhTxI>Is@2#)(x^i45_El}K#N!@P=x#MyVOkN~QL0LMz$2*wD>D6uj!3TprY zvC;vGJ_J}xf@wSiI5rdyyqrH36Dx6EFql(W>@Clg84KgYik%k>_VSb>&NDbxWPpQs z?Ges0@j04Usq=!tJb!64hgjM3g2DViVRcDGWKse;u`1*Rg9EF>Rn_5WQn5oyUNDFS zir3?_&UZj6c4%qDlKnA8iXCF|g2BNaf4SK|5U3h#n*MNbBIBjRxMp53Sm^VFD%g;W z5j)_3UC=Bw%e;QGR5%71F?QfFgTc!Rhg4Si`g^48jVZj67JOeycloDTKlW)wv zmeh`n7|hW?9nHtPloG$;o!!_jp$<76nql(ygg}&1;&){V#p`#rX@*x;8J734n-=zg z!(f+$Li+3{9>0=@IaA`Ze|n$gz=O}R5}OmMf@Ub>4fuOa44e4yZH;1Mt3MXIGH`7# zuOClUS=eQ`y_ogPl~rtv*E~U9)fTEVQL5Y>5zgT9{n?emzxvE2ZC(D zr_|CdHQ|_0z^{+yX@{hf4&5Prf$>BA-jYCROPbXj#+3Y=Obga1`l~vJutWA?>&dL4 z1$LQ-sWzHt43R$ATl?UQDXp9N@@QTtL{PKay~80UtEEuK-_aU)Iiz`5fR0jx{-8G*pU~ZF)5yB$`wy2%2SH3@i28 zf-NZ<=BaJu8~%`~;V|gMK3sH=&(Vp28h$)fdDq{@Y%L2Ur&#G zdfb#Rj6`7$^^XsFsz|=@))MNeEq{&;H_R!9e<`nA3d~>$-d$}N?L%Sxf?q7=sn+hF zC(L+6_wH=+jln}!z~f`O`T_&3h^znH%MMwu(i0pTRpXF&Au~KAP<4fet!I(<%g5l_ zkK>DqgfA%_l0a2;s3M9{)Tj3jSKS-JTPOPYEpzamU5t4nM#G!z`*=;Cyn#8&45fjv zNY}m$U?SIZ>D1m6#On-}Je7`OzsDyivD8aE{$6Ijmp^|Wo>)aZJ&Q&1`osObV@>d6 zoY2c{n&A|CLf(?gz5Y^QjXNZ>+(2cOC&;A6xdf{{-VFoewjJxDm*PRZ?N~Rx%)eqq z858Ok(mRe|6#1rR(=HM1y?hWL9}|T4wk@H)d-zL;hpvK02pVfdwPjm>m@WjBSg|~% zrHJPtR0~vxiRWtVy?*)8mY+KqgVt?Z=BF`u`Y4t{akbYM#w*PYBNkK=G(BOtE*oKD z%?_DS+e#XA*=y-I1u!Qx2AM|JsR~p@g3T%oI(in;E<|(zy5V=&jOG497vNy+U;oHD zG{KM=MrWy4TI;7uAd8}z1DeDBkwyB@MGmxIguHgA95i`KS{6BK=koCx-+3=i!`V>$ zA@msM3CgYEdS%$f>JQPO)`oz$R}^KP{Sw*S7>N$0h*)Pm`smj~#;n)Vsnc;;L>Vh*2#MpAlnn#vBL?OH0~p~H1-Lb3 zgw;&-CLqL$869uU31$ht$XcXzAE^~)mb_u2*ZG;VWu3C*>CD#+Jk0nxvN%`=91$|} z_$>X<`s?iO8;;MSRGyI2ZuVZXNhtX*zcS>zv-;Veyoq^|}!v2&JunsNw!;ME|vbk34jgZLGDf~Kf7UtSHe zzB5Ss7G+S40;gySBz-l=ejt&!#lpKpg8MXuTYM;Pk$EDVM?YL{P2^gzH}4m?s9vp| zI#Vd(JTJzlA`^=79^Y8XRKyu`tO{VxF=A>QVno@AS=5fF7*pdA?)D<@=hym9jl+wt zuRbY@9BK3L204`88aI7oI(0k+j%LmhqO&!X@14wv!)IlJz;F~r>fIfOH*Rk~C5s$u zB8B%b2j{{N`t0C?cO+iW~Le_8G9A-i>89HFz(E)>GUcv90ww#7su^?I-O4I zf=)7DJIRtb#MPU-FuOBmi||)zD#Vt>;lndu03~CTLS|_y827Wxxy~%2l&RaCR5f4x zaax>x*)}H`r)H7;;cZT;ITc>=LMi#Z>ncRxF%O6W8FY?^PE4Yc*Adkw6n6v77kX2E3_aN1>-zEdW4xQ zJ}Zlozd5a3XbTjAYAaEM{ucfrQf2OMJ)3gQm_lAZ9t4*p= zjI;&9-7*pcq!(Gj&i%jEZAvX*{NEe=-_(*80U_!H=Y~y0Wyh zj?Y48g}d%h&p?O-V4QY1)2isOF>FK8{G9*O&42!y;L;%UQ@1R)6ZL`RQ*zP2%6CeF0&fasolUDUa zYy+T30pAJWM*t2R;iJUw>ZW=XJoN!f0pkd3XHlls@oCz^;Lv1l6ge`i(F%hewwS_A zc#iZ$JmyFjUtq<y0E`WWa0{zAr6{*PQt!^gzE*AZ|i!9N1 zvFQIrUdH}i@fiCLT%1MeGSM~!g&g&DxItc7N^iyED`w|jf*Z57OH&cygI<2S>IdhdEnI2&yUHCs*WP#8FX4~x7)MZd!Hf+Hm zjqVc`@5B>-gFR!V5bUBU2)-N7-(H`9TKs)`3%I-~5?(O)VYUW> zDFT33feSSSk_Lc>b2I?#!4Cw0cD*$2jZ^H&nxd8lfV^HHjQ}uRfp=;OBn(ht3&yXKM>Br{!-W*@Kd(>%N1+H zhE|{m5$$8YN$8zrJu$H_9=nXAP*5g2jr-V@F33B~4idZ+d-5KCDHSP`ZLFALt9{Vxks@)k4Y_HPflQeIqP!umj=bjR2;OI`b+8MAOwHuu0V?r zkknrmT%IMX&R6jR{u0+;{pBL9b*ZMPrT)^RKS;x01}d;nQy{6oQ~*iGz6%}~71nDC zRi=w73&0PH<_i^et)?KQs=N+Ttjcr+T7-b4s-z51RW8C0s8TgRRk=rN)oF@as>*!> zEL9#<;7Uz_q^i6HBs%nb)>~?Ne7OOCDD3fvsa}2S*QZ43D2JYtfEb>VpGECTEOeTa zaM26tRGe?Q(VPSXc54P+k2G!Z<@lE^Ab30f19sP)OR4T@80gD z!Y4(D;hF+_ae{pT`+O`fW8uEfx9p!IsDl1$NRDNGkG1AgRa)ROAIB@^|2YE;B%@-Ki<6tH`GoVj2XI zyDyi8qFQ-$p^7{kKVapT3svOhN@kU&Ag3b#0&;BSCl$C}Qy{6xXAVKoZ`Mt`p}yvX ze*Q4g)8a&vG>z&Qk0oGJdh`&h4?LED)e^CHx)nW7Q~2KF3HAxsWYRrDvPj*OlGbl` zQjOv~wO&{m3+*3ochajvvdI4Bb|=LR%_92`+nqEFKWK-OrVq`c4sCWg`RUT`WUQ0k z$1{nl<>D$&N%#60b+Dgu#uZTXP@@}}Uup;t##*upBTzPeEbsi!Jv zhE+JADr^%KoWoUxn&E$?0-s)TBM{Y#;8UNMG|KDVW(7VQZYl6KD{$5bJm+PWm|kp# zYvD8$@~$Jjoq$2T*T^ht=PkuSG`-E=d)tW;InQ{Tb!;`NQAZ)II%>w|r`;Uf^G0Qn zqx*kSu|@F?mrNY>ml{_4W&TvBdf8rTre6c=_uo;LehsYO@uP8Kg$-0{Na(#OogPC0 z&v6=9wa<_jMH*O=ev&dHA3FY9> zd|KkLNv&xQim(~=KNf6|iACJRD*7P-HyCG_vRl=aPb_{&Xgmk=hCRjfL&6ShU^!~w zK7p|`ok^Zu1{z|S>50F+(}v2+vdD1&NH~I-k%;Z*g=Mg^R z3sXq7AhF37*@DETTVx9od5g@E_F$?UxUrlI6Jz9Dm?(0tc`%jVuv6^|QyufVu^dv6 zqx(bH8;9bn5~29|@+`_2|C%&sqBbj3T*E5nR-jt)8%r{1qPG1_n!=C1Nsy&l?L!j7 ze@KvR)LokYF+sLbAC}P(TVBbbhcf8g&BE{kO+l+BQTUizR-q|iHzx|8f`^6A^h8R2 zX?X^Pwg{aXO@VtyqJ7`;3>pW?d5T}LO_09S6i5pad5XWHLgyu3g*~Jx23#HFKW0K0 zbb;2-DJ0Y4ufrw;rF5 z>eNLx>=6c05nyv7=H2&d4lER=+DF-Uu#1zBabe=APHT3 z<2BNerB`l??UmcKSJth-jtYIwcF7A0Nxr?gkGU8jL=Pb0mGfV)9sUzS2XqvzOl1KW zds-5D?m<8tYXAt-9b9y8*z$+WN2HCnCCYl{-1nrp#%T(FSdzr+nNzBD5SUaAZ^Y*X zzWPA04{8eRFB5sEWgUb`#K$h_lX5h2iO% zf*~p)WOQFG!o8U!RxQ{oxP_Vm_thi`q3>(iU~NjkHYRZh^-RzZ`hnscuQ<>^L+Csf z2qCnK0xd#7(h&OU1P!4H6SHKQckVsHfSqmP1q2Qcqi60~z6I zofUYpra)3p+YO|@@U&imfRF0F6a997FKLvkO>c$Z*ybk7wWha1xW5>AKhgA7aIO1q zvRrF=D+Eq4e4SeL_EsF(yG_;>ES?O*A8sivkLyr_O4H?sW>U>%srFB{q?*f8W!@|f zKbNJNcC#hb+$gCURI0m0s`M!;RqrW(B~?Fv*eo}Ll&#|2aj=r~SHKQ@zi1xvhSnkDfHmiTq#{X{ER;`45?BwnEsuMvqKVTtd!#gdpF6Ny)f#QSbh zi96l;R}%N}1#nC7Cy_7zXGx>n@JW_4aH}QflPu>lmh_V8mZZgB8s(;YAUTZkr2;KNKvJVTb&ne5Yy5ywPMnt|*ByV-TBPhzON}yk9!SF|$qG!> z6i8~6sX%Hz(BV1Dpji^8BJCH~|4-W93M}J@zTp1w)I7X=WE>firF7Z9F}`Sp-5S|O zNPALT>&sU5!nzC^K0k|iKcV2s#{Gm8Ou}mw@vBz+#k4K+v*e3u=iUo@#|(UyjE$YS zMukiv`EY!cus^b}H{5G=SILWb2bAkit$3NROsOo_6xNz8r`lh!9LW%Mg+f++c@=is=e@`i{eCu8z3Xn~A>lan!7xCgm$fMKeTxKOqY zrzFGB-y`SckTxY5*L1rq!kyz_kZw)J()PVYSu(fizE0ZW=475*0osvK&IU?VRjO{&&s#DZ=7il5UGV%|w5s6KPP!~c?6^uH*ghO@pYpVm9(dfMu2kxWg>C5*D8O2e zUKM!{$Mah6x+hTp_h-};U~lMkF6dI>q%tj-8PBcgiKny`RlOR~ioiN;SrqF@^Pn;I z1183b#`h?M#&hHCp7~DNJ1<>6J$Uwf_^nn`)3;!-jUJ?At-pMQhJ1&r=~z4wx{P0V ziSNDVB}PnJ{GKB=&Gl$Pu?t`;Kj208ol*4E&Nm=khHfh1`^3e$FEvUCx|9+?+qLo^C1o!9>3K>0ViyDaGW(+ zAr@zHn2lUy#b2i8XK{X~XW^n+;gIL|^Ltg4sa4auq3B>$5pVqzVYw5t*lN>7=%(sa zIau){g$!lUJTaOT*CpM8$}9}?x`lZ;Dpn-oDNq@|p|Wo=pN1>rFE?Jc1m=7`&q--3 z#mw6c`~G=Ox+h#vqy-bD;6oI||1-}?cQg_W<|%|@CmQyq^PP11bM<&5H{ZwJ-~&3z zs{WG3!o>23m@$>#n#p+%Gu* zYd8zXo~`1D-wEBiJ89!eG5j7Q-rL^MX_kS2>-d5daDtsQ?S>*m@c1!y;sXD9ILU#cUhMj&U{Xhl)=^OQfcXn z5D%m(6+h45g56vIy^>dn!t+G0Qcs0)rt!Rr6GA|xDN?DD_Z<-ui}}cSZlwD+Ms*6^zP;9b3%Y;T~?Gs`{)#_~9RQ`X`#V zOCic8+BllGYnD|cPA5uOv%pE2YsA-6Z0bKvPq)eI02iJtZt0;AeDAi2?=#j4?KE4R z=3C(P<%Nb*raEsrJ-g>aUkl&d3V}-WYGL^hoES#=l z9#SY4a(g{*CEUkvI#eprbE-bQCF;LWSN-fPJZw~@=bsg=e6EjZ8LOVTQhM?rGSChm zU1`}O2x`kRwMCu@u4OZSTB*8H4+?K_RyDHtvEOE9{?@9<=X|Sd zw~TElud&D}fmJqn`kwI?hu0RCGQARS#vljHcsuK1ydLrF??V>#{_F4(2if;(^*)8D z@D=K@D)rc^x*o#~k^G3ZQoZ%EtCrXB5cX?!Tj-6j+rDPY79*o1tAGqa_zr0(Y<$fc zw^)ryk~c&@F#3Si>9X)nep_m=+SX*r94DRfrY^iky{V&HFh!IoQ;5KrkVtZ(`+#O9 zrV0`){n2LcGT%un--JJEbTxp|%boeg&>lS)JS}N;Do&6aCIU_N}!d@po=IxF-An|9TpX zYng^~)5*&0N`-0&45b7}Y`9oBp9Dh?7!I|i8X58j&OToMO?W{U{WLTtg#FLHB6=-oPA$pnl zW#ih8UhQnj_lL2QmHDH>FeGm2N|m z#@X+tlVjuhL^4OTr;nIq#=Gd7IMhC7-tQ?7IbyIsrl#xRlR$Mc{*1uD`J(EGG#_c& zAH$th;@JM$d)3MKGXewe_gBYYFl7qb%}QZcG;3WdWqcq`{vd{Dy^pFhD-@zxKPhj1 z%+xHa2;G71kv;exs)m?hr84{|Mk;x$@PAS&dC69*l6io6M+xx`X0>8|8q?%Jg_Hhz zPrISM=SjU@tq^kOH6octmVYShKaC-tJvRBsO7raT+V?T71osLp_$-F!n^U*|^Ud;) zh2pcACg;p?(yI4W>>q7JtgWp;i2bCwicQ{T5mCa*3MW-)dbhZ0SenobR|wi!HWFO= zL}(TFDaCn4VHg*0mG)EI?_!!vn&YI?*6IFF#V6v%B?&}~SQSPTzocy!A^XIcqt~fb z741Z``3fN|?93%KM3|F*xDMMB6LB)5y-*b^L{$6|)8vJ9sg$rjoj7u`v~0LS;H*)1 zXqHt3q1cmznL9?$z1r$#=37H6@;i#r5E)SZKAa(XDu$-6xKpA#%{8-C}&ZsML7%N&ime2 zblx9tO6Pw0Ax>SkIovNl%49bq1M`i0neYJAKr6qG&C=C#pS!r`7^yPj&XYUS#e4!; zdb=g+<9lPdx67=OD$w4pqDlfyyUFq`HQi*DVm>5<<)23pZu~roaJ3SmBWv=7U{=I( zBmEUcT(BfuAYEbFmtjP_x?cJL;szWlwP3Dr*u@2iv?X5&#oSn?7`WA<$oSeS5K)zy zUL+hotU=r*h*~iCLvTO~tJH#pIAuD=Nlm^HM5NJ*GBv$8R$5?1L>j8mZoz*}R9nl8 zQBWRTaM?$2aji*0ftSiOzNTJQUz{!DID6@%aGXg-(~qq4=Xt;8$?@V;|QI_`DERr~;l|^(pcuD-ydctcYY>yvx) zV2HlrCfRaFIysWRjK}kUl_hIf`-1DD7e%Cwz*4sU0yjI_c?} zWYs9HPqb!1qJQ~Z{GiV)w@8}53^XAQ-@SS2vvi8bYh=BY$<+!mXpM{G7j^c27JgAD z0Ur#i{#N4sjyV2!)kRg%vQ}8vC>fw+)vH8dL{$cfCdc7RS`(`*6({qt+&WfYK0xcC zOu6jsA8qX@qSSvg4(GJ~0(Z$EC!6NR zab+MU6;ALFGrnau*A5XHZ}E|scO$Hsj{ zM>z9|y2qd`n+AjexIv5t2=>KE|tCtGu^>QrVr}*0A(oUg9rY`E^>c>0$EVZ%4F3q$|L zVKboBZafAAf`0^+HNcair*;E_${L`2+is}JXE&CqUL8~~7*y7Pp8#I`t)AVeRGfVZ zF&)#h8!NuW3=~fTf7im+$_Pm7PqO!)>!gm~>C?bM{3w{~q>AtKX<(dUH&qBKeHyss zJFv#nz>~G`bcI0Dr-2Q=hb46?{OpK3Lc8YV^venay#oVYFI6dvkB3;*fNvuixDjC- zKZol0J&qgT;VF&dCsns0BLrF+XKZ+>DQ)`RiZ-D@ho43fiFQcv1W*>y<0N7FLNt+O zoU{k`3$06~j@O75KPiMR;|+V0^{F&#PdYU@X?-evxd(HGmg`e#$(}^Um}JTjCR;}k$2lJKgOjW6;T3;u+ z*7M9Nl7n?KMUXO-;OiSKLYT*{p3ZKVu+MVjbYtfBrj{c$VHVO1&i-^Cde6Q5$ogR> zTu_b3zyrP)RK{9`kno_v5Bsd5rCL<`VPD*jhjT{Q6!iq%D2DV_co{5a zqs9x*u`w6?h}X*WMs<45z+?QeKU$s<90XDtSqZMOSo-x((QM0jEadm{96xaqCnrnl~A%MF5{ZqNij;jL0PR7$0PpfWyGSi91P|8lrW z7iHDZDpj?0wxzOByMvF6eePx`Ly`LzSVZtV$NdJj^U+_@DG3kkh&HgDpZ{XnDG0E$ z9T^+6-$3URq|L_juQsLh{W^c#%!SkTV}`dckr;_S<_@a+uXsTSUD(IWe$=n&WkK8d7_5=r*oG?K3S4UvRamYE}#1Qo)bP2zB?XqXn&cKG99Lh*Cf zr-rGEZxU|cve}@7pYZ(s2hm}RVK;j?=|kw?=;5S<-_wa(^O+-rC`BRU6h}O|zwme1 zbEwM63I_ez`B@<^WopITStvXs0`W_(Aph?OL@#F9oPHZ=)B@3$?BO#HSQYjqKLI7@ z!^-nFg{HqChrVIzTMj_ATJwU)(?o61`rA>3s&h`rQVV0T!M=M<%eDrk3?-LS{EGFd z;jC{Xi|jksr_zT9(y7Uw^{Le2k9ssX+qzs0QxrUGQ8hAD{I$g*%Fy@EONe&z+g`bU zSjJ0QHd``&kONnr#mV!KPn6Bi3USV=O5VF#bx3taWfeqRtkjM&Rgdo!sy>dgAMjo% zeaTNhF8uRQ7Dlsd-=-Z=i5PdcLW^moF#VUAzEdC5d|!TuDwJ&W7-6I2iEXlqL;g@< z(NK2>8v5o}P05(aldRQ>fAuKAhckvY$3;GJd)b>>?$mNjaNa+udHcCe%gvCAb~PD4FuQu~FP&YTt5hC^pwijZkAIS)oPGC~Qnb6^)4E`z>?ON1FMYLeT$fNLfm$_~jCXC@Zsx z+zFcZs6v#jietf(Ex~tb*#ip0f-j%vq@9|%Um+M&3WHS^gDU@PLdmsiq+vp;1r#9Y^ zZ7_0#Z|kqQIG@UtqWR6D7Di?3OPagBYD#DSqn|WH!uJo3EK~SPn$b+pKBq^iS8nca zrC0YSE7vIs4eN85V{t5v;N`16!fIzP$VFdroEtX3$+*9ybj$Ma})aPtT1 zy|YBOh}9n`jI{NI^JjKFseg2p1Z) zh_mGdm2kPOR(ZZJ6fTRYRhEmFaKfdrwMv7$-4HI0t5sYa$+KKm7|i$OU7dyR9AzF6Vt;RLfj2wEM>P^+nw%@lZ{bf-MXQQo ztXsgFHG&di(i9KN%-Tu-4~_>EK;uZDH;%yxJHzD z@*&V8=R#NdvRP+!-QRuiQI=>ocmsiMSvh!@Dl3p5^!rr8MpeH)kJKiigqX@hqxbdK z2%v0g z2B~jx0pc~|5NJ0Ad-Hdf@U5SiLul{C2XZP7q4`b0ZdutQf(2PYG`Gq_id1)191_WL z{UNlvDagLcI3$XA>X0Z>FJ*^Rr^iTyOC$o5*rh39n8H_Ms*^!p`QNa?82P3=&bV#yvcd~c5T|H zwefUL4tVpjhUF7;3^Rz6t~c0bU?9J+pM1kezR-e!yIGOsa3UIaKyfa<&@7>J6rN(ZF$p zT%Xe*IVQ=?z3SD@D zo0@cdI)%2M;HHG;UqMxH=tw~T>ISnD}7=pRp_~77fPgNQnkA5lIM+El*1JS*p zp&RG_78;0|=8fF{tpe?+LIscBRY!pbSb^&ru>udW0^5*Cjf}SkjNxM&Qp-d)$uY(U z_(LGWk>=o@VIa5{C%Vb81yL{G1;ANu)lTdY#%=J#TjRk;D8m)V_bsov53;h0@j=+oaC)EfcAV&z(;7HE_in8(-@MBw_9?;F-bGD* zkp}RtVV}_6McyWEN*KGm1(p4hNX>|7LcIOH_hN7}onx`tv&dlzkO>ZXLU zP%;(m7mBIz_6I`ARFVXW<8kAq`M#X)-XMPo*&paOnoUkt?|Jvv@#0Pct-{&NZGGiw zCwD*(HnY0YogBj2m)0cOk+GAzFqG6J(BWY;+{Ik3XznIcN5gN7%UYTAnjJmke!05; zTkdEZINW6B(6=1W9UX3RPS`7I=I;||=Fs=XFRe`4>TnY|t?WKOgo}SLCZA){WG9NP z?B+j)i+?tjI!)?&lAD~1l<3~-aOrPs;cq9w^-hawe+~5?#$Sz0T6D6T$dUYOBGmcE zNIBP}>{Hz2$dsJ%wiV}^bmpmGLcANiSe^c%LbS*)jpo;38<+QLErd4|0sA67BKB&V zoCapxyI1@w0e7d3d-qFD)80MibnS7ge~s#KJDl#8-u>6p!Q*&ZetiMOJwQ7u({OrU z;j#4qc>k+=IAVMG`gnuEtUNDODc8NfOHEl#zc7brnhh0tVGB1UX?W2z8{+G!7FOI& zv!ULyxmX&He}G$I^>p@*p$OR&DzEi--=0;&Fcnw7eH2de-(}Ym?sipPQP3ii~I3 zJLD*WuKBc>-4K5khL$cXTTpvt)k`4)d9lsje`O2m45VYy7Zbc-D~>Mw>^7Ra>txk7 z_;<9{0ixwLbX0er74Ghr+tA&Ad6re-%WW7Y(H*5xM4}xM)^xBYVdmxpX|)X#yRj*5 zc}Q0IyR@=OTSP0Jt|~pQuy!l`GX+(~^QZIv60Pr12uHnZi<+w)Z%eH4mDL8-Q|~K0 zwl)}^U-d06goq$jDZjXX#U?9$0z@0RCfcN0j^Aj*E|5B26a3JT4v0UuM*8!de}rL% z!rK0vlnQ?ykDn|X)I-T?L4m^K^iY3%Uq^gYrW~I%uH|KCgpYQzkCvrkfkL#?cBb2; zW-d25G7cmXPwRrTi=%HGax1J{`i7&}eKwpRPW(fh_+_LMx2xp63Tr#@cBVfbC)Sv$ zZmd)z6K$5U#_=?KtCG<0vqzx6Pgce|Vk`k@KL#SMn!Wkb+2Kh_wGGRx6I)p!SREOH znlOv#ciR_dnzW#mw(kse<^D)l2371tg|%JzX)9F4@wl>%sp`=xHMDiCW$BO{k+Tns`s_FPPy>8=>~@s4xd2tSXA~Y=!w;an5A+xH_Lg`H zYUU|Hs#LZ+5~6*Zn?v*<`=)biY5ot!4DgurWNU0Ymu3D5ad!k$K=XGD)$9dm9+liq3Prli6UQFTnm3r#w)eYgjR zvBvl`GBkmC)z2}QDQ2~IlVc-1gT0qO7&ko~zB!gPasA3`)KQ|S-do|ZMcvu8h4ko{lzJLn;go03XHL^EO+ zb~fo#kL92lY_vK^6Q+EO`^ngnSd-dz;08*M#fC02X%te0x>9*67Ck4Oj}00)kvIM3 zv4Fdf+3#=l?0gpT%lYuEV~Lf!m~&sh039i|{OBJU@#n`L|J1QosD?eI6;h>sYHhdt zb!Nm&2@# z#TNJ(ovf-_$^O!n-D~Xo+d5&K!dC4nMvm`{fc{6_{yGx`J7Ylu2lsV|R*Mxvx7TYq z`&ias>IJNr5%k?;^Cd%l5Ijw!Ml{;Z?2B#}qS2y#(`L5j(F-k8H*+)AsH{n}BV#k$ zgp!(sqZ}5O&?oGJK3&}8{PbiI+U*p9rZ+^}nd#;(h(exXru{1c_fc%b$o;IUU8%74 z$bIESOux3hi;9$fXRJLY-9_V3!j3-gRFQg*LO6P7Ek_?m2ORBa4e2s<^ZN>qvyXuc z9i6m3tCVrGmSS8)eSX9BdBVjQqqJ|JZ@5Y`FSe@mn^+87sJJwWNVG%38p3K4j*b8F zf!-guN|Q3&fX8KSDR|$?H7Lm!`-V<4+eNPw4Oog?pw0T#iN0ly7 z`k$prd!mG^bln-kqiwQ4RO!$EZIwp3TWd90on4^tzpT|k{d-fH@;y0K%!;VgzqnH0 z@9L(c;y?k>U)*1%bh9e-FZR7wXicIW8Gl7qs3yXL#vO4OG(PHviJf6$PBn>NQTXN( zY$f$WRtZh!*A!0a?k4Bc{}as`pCu60J|zyZG`l-j8>*dbQth|LMYQC7Y8#y?l(nn< zv>r^4heR1lKPiqM5?$Ftw-Jp?F*qSG$`#|DIBx4bQNV#=qzLyL6(TV1iTlq+u&8!8 zsDE!OF0{T16#fTs5gsG8y_YHL7tRp_BSPbmI83_UzZBE_d~ZPx(IZ@|DLt*=cq9(f z3=NK&L_0Db;V*@tq$c60wwZXAI+v^cqn>VZo_@AS9k0+V4bkJw^!m%V+EDG~F;eZb zqpDr?CYNxiUG3Y19+kRL>6b~RCib#M%EDGcyFno;b=iMgskPj#^;)UUPCQo>_>b$g zxNsO=epBYT=UGBvAMZG<=9-<}E3zkF&2{@7^0c;B$6;nT^Kz@US98UnPSYqN(GH1- zzJ0YM9BHv8zq<5Z93Hd(b~z@PA$pIQoO1rz7(V?QN=AC)P`;qAnvi0-g|T_F+oqK zpSU|NHR-p$ZgNlqlQ`P$Xn=*==qs^Pg}lNLO=^G{%iCAN4eZA91`=(zH;9$Bj`|sw2zP#`hH-rz6oLSp8>^s+4Km`E?vw-TWp3^Nqg_SNIZ?W-t5)K|%BMuEcP^c7b}gty9+?eLCbTtwK-VsCxe zPr`0igLXYlYI_xC(I;rwJ;`DB9P%=eR~n+H8t^o%Kf;DxS#g4d-P}l5Zda*$71nm; zl}vx!Vb>!Z73$0~weo$1$LY+d`sy}X+cH%t_v<^?@#zxw>G=L`N(!%Amo&ioWP5)r zDwjk?r6$;wRqD#6k*-YdBtm*9tnJE@0jP@Oab^8hsz)=`#%B~Br$=jrXN^xQmH&ws ziMbJRx{`hR^ngg8u4JFu21@L%@<9ZL{eIkcN2>o3l#maOj^V4rpL5Z-S{ zFu`|UgN0X`^eeKC!AgGTFIf#c=MvFY4dgw7d$eqqLO8cyv~L?8^%=!%J-6FW4k;(Z zWPZJa@Q124j-FqBp3fifUZPwnA!he>;kT_5Ua~l9{qhR@!?Ftc6oy3^@xt`2Sjvpk%%t(}1QSc=97%UZLyxyaPm+26)>M!=?P(n=g8KM@J zyawHtctpqg^L-(2z?W6f)*s062FS7Q+{Q%RC5Flq%p*9@FNB9WZyzm#YetXAw`qsd z_Wm3q9Md{v>>r#-Sl^2-6}>g~lS+x~I3^an&P_?9HSy_nRztUA`A??5lpK)W_Ifv& z{?U@Cyk5?vQZgeYbQtEMB?&SrB-=+0bJ0~dV6;GfTEocvFOVOP{BP8ae=0~7!XxSM$OA*gBb@kmsO6D#Hul(r zx~WoyExw|T&?{a|H0i2L5z2{$nU>HiSZLyi?*6|1ki6F9rAK0ZN-%K?O?39`qso4w ze(Zx}KV3ieL9!Ruj~&h~i85!JP0cx?>>2fAA0&Hj{n+7bTsw-B)dOoTGQ}OE19`O* zzj;v#HM>kIELkCfus6m3`fLgf)~phRC>kh5R@U87MG1M&rckA}h<*w8EJz`0WYP&l z^kfW4aYiF)Fj8C=S$qblwYYD>WuQ(J>IzV!I3rQ0rMN7z_*qbEasPy^pf-hi0jN=& zVG6YrmqipGTiAQ3Qp4TWTfAt@#LUo;kFD4-Q#vZvJPEuM+uA`&R+gSCqgW^928mj> z9B5K(mYb4ru^my%xdTj^g>Hbw86v55s#7ynz~|R>=8a7|w*7 zCYia^`H!niIxYJsdz=VWd5W4&8LH?z3e^`$`9vKMZ~d~}lys9OZqK&5fDYUR@C|)* zKJ0iYJ3`wI(Dqv>cND#0ZQa^amFm>$s#?y>A!?6K@w6N_VM5qGKf$CCIhJzmMLElN z?V-)KoWs1%Qmb#StxY@1P%U0ksGbUoIR|2rybpmUk>cs>*7VW~!=xD^%YjO7jt=Tk<4I zIniLa6$tqf2;AImf+Zb?BT6lO^Pz9S@T03G4va|c+7n$ZjvR80Kufz3L|zP|vxiHV zdJ(2(zNMX4vaN4N)94#l^Y+~E`;S;$DG0Ap$Yx>rehgl!h@;NRq@Pz`S zl}%Oi2sY%*KB6TEzYt80xb((Ur9qa__()bBLU^c^2V=D1|9!ln;r^T;)*FRHB@InF zBxTr6zJnmxroVS&aely?)7Kvw;0=Kbzr?|--9s{B;cW)_3bO*i;aLS&7U3gQ!8XNK zMjx-dcVigM{6tG{H>ue$;#c%7JsV>e=4Pzw{tH2>{Xt|MQbMg)!1-c`HdkjA6nn4C zy|loe73$!I86`yfpKN%XtkT;nt3}g~gHXpgS=eoK$jd!hiS!i5Y+!9hjf<$?Cld~1-=Q?a!*ccfTjpW-95f_{d1v&V|*X}eM zmE{Z7q0r;fmi^h{hrVIx!%1gk9YGg+sux2c% zPv#-H*Hd|2i;BFyoPknvmi~Oc7RPm(;UEOP9D78*&tg^sioDsy1zDl|5^rxWe`Cuq zEXIv-SIu+s{?Vbla8Nxj%`f%l$be<(T5<$k;Gy|Re;mQ@So&r0V@=-^!S1lV*+JC{ zxAX{ZxCiKHo!7&MK_jY#9@oGc5&9)ZFfFUM@6q167k^t>x_zu^8yC^Q6;loqZ}m8A zK>iqS*j+wp^+)R_@aP%v7Z*XFnl@l@JJd#owA)K?FGDY1ekebyAb*TECpr1xdyTH`Uxj*)EMvz4JQW=dHP$(#j%ASmJY0MPrk9 z9Z#`;?sL&SBM!Ix7x&dRZ9sv46w$Tfy1v&5j4$^`$q)`QK zey{1QrB0JxLjo@{r<^z5q@IOta#X<)`IL%bV11#R@cFwSrLG!p(z!l7X+9DAY&qn@ z%w~oUM#O*TbCEejRJm6n>a>;J<#*9(ez!atZLdWZN)izbj(&P~40R2M@ODT$%2anW zyHRwp+=7YNdC+%+Uv?bM!;ZsNzvZO!c%COtIuA~2Q{*N`5iHH8baYg4r z%;t!MQh4b`RVs4&P|H!g)0;Gmr~~@aoB&Q85OqL%+!n9|caUJhD(-yzY#KZ|xz=Q% zMv)3t;G@iFMf^lvu!0;Fbn|yNx-RTrotEwd|r-WNJftz@oMr7C@r zRY$d6Q0)K|z$~oS+a+lDvIp6#-z_E|y=q5BFKBZlAszOI<)HAInyOU#%icO#41gA2 z6pMofz(FHQ#6bhl2dpV^Q&UW~i~*t(s?8X{I)!_>8_?7JQ{pD)Kf^@8uh|04d>>`P zvUa2Jhz}ju3Psth5HWKDcV@YaGo*70HO>)ouR`DyMz`?>>3$bgsy#Dv1>cxyAMJP1 z>``vAkMq0e&Qdqo@AA87b*WX)V_5Yj)BP^`tMu5aIP6y)tkHK+g{shdq@@a!HV}ii z!NtQyi;HiAi@!&rkmxqJxa-Z9Znv>+cwe-PuZkISvs>T(3(^Dwoomc3c!LyON=a5h zZ?BJ@;F)&OEz-r(Bm;9x=dErsM`40F$-oRVfOIG;4+N8#U>$ODbEupzmFYhg?*s<| z^axL*w~s}?)dZW&r6D|*r+Wd~zFHwnA7|LB<5Owp zI5#yp5T8nU;}HQf{VtlJSpO;n_ISg-*YBcrlu6;fDR(jwzIRyPNDq9aCsIevIjuLXHV;vXAeWLNg~o5ro-pzo>mpkw7SN zf34f94&OZ=yxk4R_vIBAWCbWwgW`{%2+~bs1ji}^(ec#;iH=nU!eiY;HzjfX(JHRM z_&cOYt}+lXosq(5w2Eu5_zqm5LdGhtS&|mIimQlfJz%Xg-sz0(xSe;6GX@3vOf5bcSyYS z)>wfN-rB_8a^EH1+Qi=Kes|bgo7h{vsqj`-Q3=r|Bh<*GImm#+HnGFDPZfu4igef} zwwlc0StZ^pyrXF+-wI`)=9Vnn5&IcuwYtYmCPvpC1_snFmDEvX^4ep6!a#yQ6)Rst_)Bu6sinR?W~WgyG4~L zRJ}mebS}&41*-0I>(Q`}MO7hG{XsQKsQQCyL48zLTU1p-bseZa6{_n%)#UMdWDT{b zl22m0aXeH4ya1%qZ)2el?hcLsGb(8LQw6fk7}evRV7pm09>N#Ggc(Bk3KJd>!dIBE_0#nbuCNFbCU;DsvQte$S2f+R zzt=H^o_^X*_AMP#sL=v9*|&F0p^Fw^@^jZX2Yr2;^ljfM1la=y#sA}Xh4X%mDzj%4 zxoG49H^mo>bI^}kX5lm>qFDw}!dD$rs8aPPv7gl`g`R-))}2zQ!9q9L-JMdX<3gx0 z@l^-SE)z8#R|qx6P<*c`;ItQi(`n-GJH_8|ri z@B{vS1u`Gv_LrRwm9|FG7Bey)8OY=CscN`yM@zf3c;y6#m9wQ^pa*(DnwB$2_`ySf-{GM zY07gNO#AQy!PN43R6HWwJ6ZVq6@tldd)`PF4FnE%Eg8z~Htty_J+G1eEq)-Rqc6rH7=CI;iTFW*)@)DMgKq#U2nDGg(Fyr?a zyVEQ6Fy5$)iO5kUq}5DXD5TX)T2UYAFG}jjID>Wij8Xpv9d!DPbsF-jn;hjpD50;I z@l(rKr>_`$+p>Ce`c@f3CrV~N-DSh{q{DJ1y^9~ML>%9 zkES!~J+EoqO}Am;vgb8yCIO*@9%RNBRI*MFGWLkddKf>djG~ z^^vYpQbz^oe6)a32fwa5EnuCNzK$2gflxw=nX$2&bz02W?$!0^^rA9`PMQB>ojzdF z=|cJelfGFW>Bmays05vlRx@hLH&v(Atkc*x-Q;L;7BhaE8Na)Rb$Xkz|6Ws%PV1C0 zbSe|ly-Ye}EtBqL(y43fA^lNF9aW(7(GEua4s?j89jsIPx7_4NOJSWpXU1dSX2zd0 z_H%F7!+4i6hE5eidPfXmyzx6sdI#U8*Y%xxNblC;{SHdycDJ9UJO(=Gw4ZhQ^Bufm z4TKWN?6*GQ@8Na@X89&3=zig_9@pH-;I#mhjCMLaVGm~y& z(g~aEA>FE^jGoK}_pIFLu+f=8YSf|Igp)Y8|jDKUD zO1HC4zcKd0?e*yNSAMcGg+t3JL(~=uyjgm%YK^7s53x^x|_@&fv?)( zCPxJjN~oL}FWt$E%Ncw3&UzR>pp4LFcZkvhtS@C7DZ zRmFraFySem*F*TSMd;k~s7#nf&k|_*XeBfG=5uDUl9_b-!cB>VQM*#FD+}kynL_!4 zLf*N4gKxUZ`V#YIXU|6j!;)qC=slLP^GlZT9?R(XRUH`{EE%6EhheHM%h<>=27e71 zJTI9)LMXW5jt-SK6GG21OvrAXI zleNskX&AZWPHrc9Y>MIO{$CJ}HFxGWy5_#`8|Z;G_p9Zi$4Z6JV`~iYqT9+_7gffq z?&@z;kGHkV!hs&)Rrfd3h50^(VE(a2n@srPz*2Yy(L-SnXF8>tZdR>at`^nL z@Z!7S_h5^~_ro)U?TZS*c0nvJzPkV^0gLZUrCt=v3+_?h>w-J>VIgj&5H+F;?oUB1 z3+_Q$`n^JkSQyI-?xa1s;J!u6ES!24+zD7FSEwd0$MPaO3-nlIU;UV9;#CMubdkMj z4;l^o@S@p*)l(rfS!I(IZJ!D$yG9|(elet)s#NN1siwHST21-*fi>;Sz3?ZZXY?Fl zbGt&Yc|3*}wFiL2jW;=6YU8^YZoIAcX&9B`2f}FeKJde8a^YOz_q;;z+ZV%eo%{ok z`h;Bc`Qw80lR_XpW#e_}07imlR^eY!NV2Xy;Ynd|l0q=}Q5f9844{ftct$i5R<^G) z5>)wK3;$9GPP>HD9!3Hut1#v%5vxexbVjvh)HhoAyFws6DxCT=5{$A6ZS!h4J!+GU zxP6+pUm+NLDXyCc23!@HS`|B`DqgA9s!04v`_YSkf>wJ+xPYVRU8B(<~fg~+j z`Q0a>vH@(+AO7zbH*u(3{R{YE59M3s^Rq(m`__<1-MBzxY*UD`7j4?eRm4VVSt5yhp<88#UHZGR3 zj})TpUmN$MJr95Z0_wFTg0w~KZcPo{=D##TNK$&x;Ly{ zs>i!pX5l~&-U5f$lRXjxz4nh=Z*m%pRS|x-BV#Z>d*o@&jrckEU%c{P9HJX>uzK6S zZc6kQhx+;l`9^q0dvki{hrEHTf*{?vvl-4R9f9uN!lKYGnQIK}O;UQ=;3Yv7b zS(Q;4BgZo1+s!;LQzig>t{~+X|H*6lV?+Cf*@363m ze6U@mO_cqOUU{YeR-k6(ds4q#*!EWqe@<-0@G5G9Qasv-h!mf~ulFyfdIfnhbVi%R6 zfEsizc2Si&Ab+{#2>Y$YE^2;)hwKxJU34XWOf7cN-6vSp{sOy1YvKhl`osr{T|`YP zie2=^2?wkB7cF&7yQ-%AlvJ?;3;AXDDrtwmPn_1myNEH%o<{Eq_-ZDl? z)tJpKCm;T)Ze+PyP7kqn zcd~bHO!Vl{;GOKpCll-U<7dYkH*(0RLNz{hb+qPwqHj53_9RNge9IA&ZF-2U`j)L) zZF&f2R*Jnqmt!kq(H{%8M$oqsLGcYsT(t9bk(2m_KvZJ2Vee7mqLjuSviB)*(OCSr zro=^S8ha>yO{bJF)elOYKtzulcIuo$zXQ2p=M=j5L=SFJI@V^y&uNm?3j^O0?W}tA z6YXbj1Wpuh>}PNMfE4O@KYQcrBo8IYQ=0w!l%_{BtC|I0{jp#Ck;vZ@m|$BIXA(Jz z&NuPl+Mqra7~9N4<}iIGP~FT!j*URbrvv;L;7+@T%z^^1Pt(8KJ>(p+RM}Dr+SFvEB{oLZc+7DstD;b zfsFY2>Qtz4%<+ZuikTW#N$-l15#d#C!vO0%O~R|3x5@8E3gK1GAL!eFq?}ePw}l#+ z)beyIyaZpvtDGy2yOeSpI_x2*d-x!tbl3OU(yldW4)VCWe#nM1{kxGK;T@ez(^**C z79KvWm`nF^dT9&KaoMgNWwKhnbX~LuM&Koc88*Cy(D@AXlv&)T%&?(PdGQR(&KWjL z9N4rOY+CPRtGArNX55E#uJxJ2Pmp4xX0Z_&EiI$waC%Wo4<$xll=Px*!6w!-bj`BK z*j49=YUC+OZU_%c!{CT?yeFo%R)~mvSR(S2Gc_XbJW~VFLT;(Z5rMe;OvE2IgA8p3 zkJ`8y?BkNdcYL||zWm_ux-SP-YGth1AevfXIgIEf4#eyK=bYPHOP;dl_>nz=xwCluYK)z27 zO;@SjDLXCwn_CNCkCsW3WqELV?uNg*=>|K+@ zsB$?D1`0Bgy=#&PvWQY7rPNW?Sx3*lz%Fg=k-_guRNt!B9wJBbg?b428sw#%$BpT< zg(;MIp-G6B9u)t4iHoLglpy+0As5+yEOAi?G)z*VBo|YHZIp|ut)#u{C>MReXt=*C zt&4E>5MQZPq{)uNrAsu~R!XZid5Neoc(bT6Mgw=4jL2JStU1=8y|1J~{HP$Jr zeT$HSqzkKbKa=26up%Wnmv}4LtEl4@f}|(!B>w^uK793_mJR)&hV5m%72LC}PPVIS zq13k(+<%mdmZL*=LM$(XVYWdSjlqeXGdWr4agD&(ply(tv|Gz^NY! z&RB)O>Bs%x^JzLAxW7GIGzV3q5_{Wsj&jlV_8zkD8s(zS=|Er~UMxOLr-T<4rcjY4 z&(k{6WM}bk;m0C+sX~bE%pQJ|8KTmwm87fG-P71gT{B<<|ymAYs`n50Na&KHtJiu#5^ken|Ip-!KO;HMR$=*H-U(BVgp9wUph z3MfPS*ZZo3r7_dV{cI^wD{O+i?Dp_=k(|i#SYt#h8M6yZsU2QQIkAI>%)-&s9*G$p zJd{|{F6z;p9t}?{Xk68(n6`I=q(g@@;igA`bNj+j6tBwRkvNlP+J zf-laqUq8=DEzkE*{2fm^sY)HTN8uSnRMChip+l*Qs+FdLy|mOtgFrK`)J3~L6X)(# z*pP^xGwiRIx@hP5=(OTNY?Yp|sBByxfwqLUF68!qrrQZSIM$rc?wWab1zeS&#(IwGJ5 z8NonyIO9M^PsE$f?c32=Urfa&qI2r!BI7=lW#;)qbOvty9^c7B=BO;6CL48zd54ec zOA7oxFI6eKcfS<&mI;L#)uo-ofed>H%901F@9ZqLP)DSOT^OnN1=LB@J_0=o;mYvj z1_|BMp(@qs%3V>qHT4s91A7ujcZ2-*FSH!Z$;-Q-nd!#bCD>P6(8WW})USk7KZV#= z>+x4}lRoX@p~QS&-3^-_I_a%IVy>0hq(ZU5o_-(E!ZhZok;7tpU>QAQG>Je?Gk!8!6&9{2XD zn{>0xE=BSdBw=(dK(Al+5hT;lZ{TGo9|e!um&rb$xoP<qu1dl9YjBfkev!6 ze0rB5PAwt2i#OKRb+^orG*6JDD*2!CG4{|lm%8XfRcXIM zc*$-zN4x0ho*rV#45fS{hS$_PdLCf~;r9DBX_TqPE>&pEJOv~85!7&hZ_pc}N~P=Z zv*onYK#$?G3C7D4FY}Odry|8Gl35s_rk$plH1#rQd-xUZtHdW28fq*e|j4pb2OEGmrGM=4sXA5g(bf^Og+YiN@Xf*`EPY(CPQZR z6(TbkwiWgcH_v1i8outKC8izgdV9#3u8amMtbaD~KWQH1+^O;{vii}_Rdk+wRCY57 zj%mr059)Jdb$p0!p};?iDplRI19kk64nJh}5kI8E4QxzUup5D6b)#p{iFaG&Fn=vgadYFTYYcwe!)bJ$$7VKj%yQ zN~d-{OgN!m{hitcS`CM9#r1ewofb{9kAHAv|W@x{*85tm9m=tPaTV|fW-s)dngH3&=oLaBa*1HE8qa<0FU*c=?Y9U^9O|O zzk=;|WL#pBneF$5yuJ|iLEiEK9&%J5J6|@*90RSVKfGr)av*}vQ7ssJ$^9!~3{Ey1 zgbfP}UH!U?F9)$NhYV6*CjKq9I2A_tat_nNmlfTufsUkNs+8GP%xt&C>|15>i^2$I zZLfwRV3yXSh8d5SG3w6K6ry!q#p7kk)jD1lDUFVoo51WC`$^1;D^${t|BCSup*sW> z+4>r*B8Q+NA4d`uIRq8?9a8d0X9y;t7Y+_rZJz?dJd zJ*uZEH%PaUSbM|e2ANlLpe^Ykfp$Ib4h~o43lvI7$SkN@Yjr8!>BY>cuUc5B5Rq^L zN5XYOG!oJ-mFUq(m^K70;Mlsc0pVv6DsK7-mV+JEXx$j$@cIxd92z4WF23GF`d#_P zcn-V>=@O#G@O;(vmggIDFw|Q9{hxUZ!JC{#mzo4uoGSIT#7gp{)pG+{H1=bwHUA7j zOY13AXE54uM#GkAk>=Y4ZHbj+v_}~Y+uhZg-&D}jE)#A|8Erk#I96_ok;=MTA@n?t zW5u{pW2NY_s915|h**htjCRo)CHhezh|}#?jdoGqjUKXJH`+y8!37=X66Nwk40m?% zL$&9$cx+T264|`*T{0A|L1$O3#0YWGJ0({1?yeA`+p*qX4OP9nZ6vDH?R9lHd0yq%tQxu7)@v?43XXkRiKYIBL^ zJ7qV!W1N_EsX}Pxv||I@krj4^MZ&ClaXwh3T_F-r7gl4H#bkwGbvm=Ug-PJoB8!As zEk^zkbOKmDQH8eh9*sm}y?}`Cj9R5-C&o(|?u>fE7Pa%vc%8NUUWLGWDjM&Q-yJLp z_(T3SXP;C1cBxi1_f1iz>K9BDU5uH0`5s?$_eGY>VfmW7e#5LTrwbmF9k*n;+pbK- zmYQMlM|724Y@XkrSKw`v=P$_e<+bq#^cL=6#kpa#qvw>ZtT`r?sVqn1uuQB;2V<2q zJ8Wg$L$1doRF9D+tH@szs<-)M=)Pg%Z9X-6eYWLoF4Jeua%%K=^boJpiDG$b6M;|z z7YI%?aEx+cSoTCcuQ?VEy!8-iea9ar>WMRq*mbuyv@jkASnpQJ3lw6iY}j#h_5K|6 zKgUw9ycW(-Q$AD(lL|?ezHjGP&a{@kq0vR&PHns++Z;BGYPTJ#QUMd2hJDAwcoC8D z(KM5sUJoUW)Wi*54>b*t!KYe@8XZ<#u+II=7~c>1O$%w|-aufGZ-mc3%0~$?Rgs^q zJJe@G!nAU6Jtf3!JWA3+9L_GzrGywdU%m$z>~-RiD2)5^2aYcC;)8t`==VDYO*4;# zvIdYeDpj8{$MmCIQUZS`b=JB!{5XuUKciH|k zuGa+eLtcCnCW2+N;1PTQf7iLOP!U6yP0lGpN` z=;koW#IdMxxgJW`vB^anuaF~_nf9|byXc!-57}F9cG0PM=(rEH#dCOl_1qR^s-j~Y zbrkkN;emNFM)ErzR}8llmUld4nDX)L#Iz!$hcBB-(Euh4*ONb`Pq%GEFC&H5RPN;C zy7Ti<=*yreZIiabSXa=ii%tWQl;G_AD5gtm)_hlD!7j-?$2@1%ai4B( zmZ|f;K278r8v58^S;S|uzc0jg2GJsZh?eiO9JYuZs6JZ6K6=CFIrOZHRXJkq+7q2F zTJ=_VxbIFMp1O~($!g8WvqfNpRqHLQ z*ogIP#J5GdCA^-E$Q@}Jv0jWY`E>mT1G_5AM&guF)Wgzg|K;h%S{pM5IXP*a4|VkG zZIT(Jtz0?I08S@XAS(wA^G9RyIVOFDTs~`9t!?c)BmS;&4*IaAc&ADs9?dSck>F*1TyZxWaul#ak(Mh&eSfG|x&^Tjj*Hmr{}YZ+Dg@F;auM6o zpdJRiP|GYF9D1sC5gTtIY*YolFl4WwNncUE+MtBho>c0m>7NXHlMbmA8}g9-qzX6K5L5dk>fh5^HvnIz3>ybaB2Ybd-6Ki-CI z_)Cg4B**jV@`sA8kQ}ck^0607x7#q;|GpTnboAw?k`p*5y~IP#&gY2iR~1IQi7}@H zjg8x8vsQv-VWS!*+PH0=FiP8I-%&t6$^pBUTd=>Ktls#cwaAR{%Cu;&Ok=OC7=^*R z5Vtc=sqIoj$O%lS=%=SN%0mD_l;Ti#~UglJmMnl>JTvpQLYUYgEk4?;ROhaO}j-xzc7 zt?=6W-4AL{#5KD^bxvw4I-_Q%OU<^uS!;IG&1e8T4qquv=3X0*!(VX$I`4j3@PLrE zz6BI0DA$5Vr67cYLoUaU!r}PFgu1#w;qi}n)^fK@InKXO9HW(qF>js~hQo;F@%suZ zZb9R^(&Vp+&_Ww_+82$*89{6b&_dhGu_nde<{{HZ3%T)4z0E_8>V77fCG?yP*8nAz zp~CR~f66vzqj0td%T$A!qfItT#BT={U4Su7HjGrOFmb1>81H zEA=g)$m`$(1Y?g-b4I4_}tq)ax?4J+fke7A~O|rxsAKX(74)!+z?Qq z7%$oQu9tnlz}*HJcX;G(gWw%N1+yweeOZ_-2L}4vm`T7uxFru1&0d#qo5BU2EiTH` zf;BdK*%lXlFbU=!U)R&sH<~K7t{Zo&Q|BA4I?wWrCfaDj^Y_#4v>NY5X}tWYnawsF z0=fH6eo%$22-?C;wAo!AG7%1g`uC;}xDAg+R$+*?+B#lnlI?D+76Jj<%Kg-BNEXsI z8&**tBaxfKpKzod%r9%QN8aDtZNt*;t;rrr#%`qgNof@?{cC0F}R^9;7CE}-n z3L|9~%`|DhB^!yer$x!8ZOw>cd2ttS9AcBsT2;2ige zk(=wsMgrtsSrno&75Uh;(V`*XGzhr)9;`-#{r&zB(P`wp>H;%ann8I$QXp)8{_L4Krgrty>T@% zOM>Lddd#Gg@Ar@+?P{Jub-V%_}TlVkKp~qAPqq+jD7^B4FMiq57YidMmatuRzf#6ezYN7|0pv{h?(o8>f7k@6K}4{8?B;6wGqc-C8(JA&?$1?Bi!S zX*-aJ686t_(h^H!F`!zLZPOx~bAXJZ33fsRgR^#@VWLT!n{N=?f}U z>G?gy2hS^nKC1MH3QOr_TKJkmAgR)i0ZEmn8^z6SC>~z_;c{UexI!SlQg$^PunE#( zK((T@Q4}y%W8&vPI%?n|EwuOmNe#Prjv5xi57frIIcnGyN_CAwP^n>`Fl*GtP%X?> z2qZPkoLdt=8EV)KtbN8@ji2ZGh+#h}1hs1aF{n9y%5Ri9QjLoqSB;;<4`}@Hjq1sPTl=TY1NwuF3 zPVD=gT4?bBl3McF6KYBGCpD;gKB<;`uT;M&1eIDc=1I$vf3+}1RRoe+vIs~-@u$pp zQkfP{RVbEpneU`3#yW;EhW7v~w1auIfE<4CA$jYOe-&os-$g%N8 zlgto3z`IO;JnbPzlcBtQ^B`~EytlwZ&Sp7cMk}vCa|Aui_!lhn5IO(W>_PcjTtc(B z_%SYiOtYW9NsIkCG~c+YwMi+@a07JogTxTM%$bv)foVZ{#lT?szeSkX2I*A;)7;k= zdB{-??0j0r7e(Yg3l`4Ph6-=5LNi2_20XnQ<2rSWRJXu8De zV3%ltwuNm=v@JA#PTNA)=d>-{e4PlNq!3}QZ6WlW)fVp2!uu2gN!!9aAZZ6%tyIz1izv{*tRVZXtj($kZ6O^e2z(< zJcpeFq!4b&&m%gsv%SHfUvN-2w>*z|MV3is7H#Bc*@K+2Y>e5#A>M$WzT|D_=`SD( zOK1}_OL-9$OusY5txGZF(*Xkm`udl!uJxLf=pRAbnUu(pk&CGkRU4QU%zYUVmpoGR zzFeVMLVt2`{3|HFQnU9fGyk^?V#alGH zM^Mnr61tsNzC)H_-c}_HC)yz6ZDf&DUs<8x->wkVhYiUt6;66l^C}ghY^xD}eT9>j zYL-=mSh>%%kF0Rg%;ku8j*Yd7^^QVeVBa&_NnZhrXBo+P67|~*AtIk>6r&JC9}CeL zD-f&bkXvYBJB2{nZrDBZo%G-e4{_IQu0%tbKF3K#D&kY4$&xuv%2?^4Ca=zM(yWyp zVsjo)HWdnC&V)pw1h}D6slPJp11g;Kp{i_bj)-nqRYwB@^ot8O>)_ACS zJbpB9&i~KCe>(I&@}WA8%l-L2%Fynj*BJ3gWVbQJhHj&9jWu9R;pRh$xdp|+;qA`&-adC4F2W+*V<;&)VODzFX^|=1=Z#fwq}6GMRo=6vt?h2GqGW z`~OBJQ^&W^$c}2-5z)uORc&&MecA0OQytao7Lj2&ET8lWmDz8>j37P2-rI~+YA{F- z+uB^5NO5oD@)vc|!!{g99{RS29Q|%G;hRU;_E+CNYF%YHe2Krn@1soBEaBE@4U4jJ za`Jt7r2B_^-?r*?q10>qd7c!yO^I(;2p8gE%~5&oCV#$9zG)t$WYyvag_gg9L0rv( zxJiD;LrM8TU53BJ8)4Jlv6OpBlsh^F_@pC^75g_%6sVHp@%H-_T9&I2W)||B@UOq4 zZ^94IqD+Nx`X)Tnm)<5k?^OtTAJgx*=*zTdioz)R@5+R}!8n1S_cMK~cUAsRib9HF z(evB;6*oy2SHv_oS~Qi4`@X^`nkuCk$u##_G-cyOg((Ux8n$!r?NS&}2t5N#|F%V+ zsYL|}qv#t?5c*Vwpbs+r-xhr{ElO4xMPI3zA1MTVi0RwEr+!+aMVk~_^bz}Z*R|_- zLogIT@K`HPARvO;)wA{gef zutd0N^ebwy&l}9nD)RR5h4MqAsZx;^-D)Aji$>Bgq6=`;<`;M+2Nxt#dii zIk{!MhnnUDL+!}mG&Kzdvcm~8pDqH?c^i0+coFzrzLB@mAiFO%%qH_;m&Z0?KWYSC z1EMQ7-P(}yH+#q&?k%O>SWhiRs+9U;Y4^ou3?CJOdmC^MY(Y*Ha!RS(08;A@z^}lh z#8SG~D0%!u>{1n&gct1F(R~KA8u|f~Ay<3l2RZ*KrY$tdyh*>Tw+%TJ$SI{qng8`$ z(NE(~{69#YDqSB{sxw35qMaHfTFw*Yd$wAgoTTBZl`Q?hR(;R=O-_#e5UvYkYqHfx ze9_)&cG@!^$pTO*DZclflZeKONT)*7<_e?vP!u)K!+%QXva$tL7n)qQ(y;em*@DJ? zj6oL#lWr3Rk0}I$cd$s|K;!PUOwAg3yP#@-CF~s3h0=V&_bH?K{y|;fp+-zt;P>Tu zgCU8!Yw|_LLA)q=l*Ln_7jD zZQx2@HcpN9O^7p zVI49O$)MOqHBI+O_T~9u0Gb~@U_>Xy&`{d@W?*6|1&?WxDqO5?ITFXmTcnlSl-{v6s=?BU8 z93)>aoNyEs@!GU=?%fUP^6luS0s-m_Q*Pak?Q0Z!OXxxvx@5aFz9@ydhyWr-wc>UI z?)f|F!3}@0HDe?{kG%|1Ki;8IFN4%ZpVmXyOJz99g|0W~F8WmIdV_9ceRSb(y;ccb zKRh>n!lLU3x{vCkyULQ67GOOGg0A6Cl{XM{U3S)^=OBx&Oy~yhf3hJJS#;Ne?w$JR za)qu=Wrx26n;bOB^p7AvMh53++#&kkn$nOi|EwN0ii90e{DN@~%9$jg?^B2daN~)u zk8|L`<~RrCYQ9yD8w^e*iZ31Spj)-<9)+OIbLO0T?gn_fC5Vr&#E%xOt;rI9-;cg> zYTy#JCYC?BLT|+H%au-+__Jr|h4?p);VgmQ`}l(EHnK#Wra)E4x#$c_tV$78)yD`z z^;lxn1EMN}i?Uf_RZEB+<7y1!xM(g*tjeYjh1?ft39_9{KosU27Qb9xfGLa{alOg<8N>4WM3QIKf6wpT(j&adh zmRR+$p+jC{7>d6qo#)31{N5~4rvvE}kq&;c;7hLC$`W-tiSJHS883cbgC$mp55WFP zKYy`J5=`K_ODs{x9rQR?XtN1lTn8J^AZsYJ~x=#4ejA8UFAXA@OuesCL_f&jXU`X;!(;5>;mi)y}7Jh?albs8#;0 zQ+i)ARDatDLs5xtth6%0q2kcPhr=at+oPY4C-H5MkT2RZP7<#iwDNJGByOpGyHJF~ zQI<&T(^A}0t({BVy^6_q^8NVYArdQx-9eUW__+a=QWq4RR^w_Zt(7^jmQrWoj_-0( zyK|c7vE_6h?vOM8^-9s*{DRm8m{qOm!W$~P-T>=}&C)X}yLCi^*{x%CZdgxhZO-D$ zVDjm#XoG~OI?rCj9Q6NsX6s))h*z`3St;PalR`4`cuvpszV!PDc&fcrs{2ziGP4|b zY7E9xljFg}zVYY(mj$r)+yB?2ObI^@kmx%FiKNc`QFGt86T#rMn!? zJWO=htKqQ{w!*j5$!T{`z73B~ao!HkPA7L7Zu<1g$-=ubB`HjEY4{R@PR=}s%b8Bk z$%e{KKQeJzxjTK(Ermb}na~UO;Nts$4c8g}4X(uWh`WOw9DTCf=wr-RIMr5l=4azP|Mpwz3gsUDS(B7*>HXE+ zVM(g$?hP=yx(ro&17M&0H=8B=jW@CO5x(U~OgJ29Lp44xCoerqY}Cg)+|cUV1tFv> zOe{?VlGbhi4o3U^@!4)@yY18Pz;qGu?{FO`Xa~8WW8$*#;Iv@-cQCqh7QwpA_`1|! z>AATMr=1^$Mi9EDf_+~VxA*D4QbvKpnVE?jOcf10o!BTdBa!-$( zd{-Yw*PK4-d6_v*caxOf1zj8k=)zop!izFg?GMmmzl;fXWdsFlPJdWQ7rILcrklZV zNb*#T{~}xlz_5Qx?dSh(v+V3?%Yd?>SG*i38++>dt8A?4S9E1#vBa{aY|QGCP}vwv zOV8_9c0rSt-luPEXI_WL_p*$)tYCAGTTS^1G6_1K@aANnB?Wn_f2dv?N|O=8BVe+1OK)c-dIf zC-JheSR#p+jagk1FB^ljjYxyAZ0zBCgj@q1cI==31GBWwEJM3Az}1{lHXb08`kYZF zW~rY_CXN9|!&&`d;?NuB>`_)m^(myRYzF0#vNDRnTE=a^E2ESZ)BlxL%F1?dZYe9P z#V246C^Mrp#&pBBtjLnxyT)#Kwt3Nb*T~HVu-*!1W_=>hqfE(dRNm90axlga-B-odv2FJhVVV;Q@|nV((87S(I1WowqEF?D(@ zvuGo$`pHqX{GV=6)~;gkwGkmfy&O%*brXOFxg@^YT!1_J7w{m{O?$IYfE&vzuHeJ91M&9a{A_pwx1Zy$idXu;8~A>wA$a73 zH*kx1=~aC51}bO6TUhW5Rt|)>(6-?k-h5W{x(sqQ%%o=oYG22;#x`t~1dlPlo-FbH ztC^A^qg4`gzupoIxvi35J^nMeRT5mre}=V6g6n^vfzmn)o7Y6YoB^+JP6d{dw-UW+ z2QLIZg8iiY*%I$`Y7WvP7c1d=O2UBz6T>92)Wfw!xR*4zw)pV)f4t*S3s3dtA+Zdy zGD>@vdNeDdP0-Njtt(9hQ1#?U30u z4Xj;Ej0_MrYhe;343Yu6r=8)*!X#+?S4&7Zu`mhV{i`L!E?-v{ylliM@v{xAHkhE4ldkbj7P!D}!RqcvoyN9};9 z<2BR{ID$h(Rp&G-<9yCikJl0LHfnes@ugj0OdBMFoB@vwS}8;I8~Cs>lvALP`|UBq zqvaIng5@FlgLduxOlL1kJ*_TC>*E`$^SjV}2qA-sP5l7lTw$rl>xy^>HN382bvEz$ z!yFM@FSFF+bwj-JH`Vra!?zv*Ie9lbxf?mT&rJ;T&~lYnDcBf&082fKCy~WEjm48^ zT85qvw8f5xf!<@O2kef3mo&icZ<#{})Gb?l47H4<9x@Ff8~mesI<1x^bV%(wgr9-- zu+#%Sg@Dg!fKROs2k@@T6amJ2=mQa2dfcZGceIB4^z(-?-{QDUC=mJfX$q<1|AZb= z{33NL!!Ks3r_lpxw7!LpY6A4Yx8r2vfeWAq-h#94)_=Xtxx{2hOFvpr`WbfG*?T+URF zM1ruRgl_hY7&Qvf~| zPK;tHc@006Q{a^-)!01gYdMtZ99_k2;Qlf(#CVqaCd{WM6h?{unos?;1&>?+^Qph8 zM2Fa4Orp5ce2hPrrJlzE;?Xe_EMA=zcbT8T~N}szY$wkoXYk$ z316Kn0>Hzz_?_MCf4^>dr&eIP0WN2{7t55c zy2)Z=veg!qBz=)c*RN;>d|}r`+BqFuQEkFSkzS3aw`kMl5~bAr70uiUxo?S1xFlLt zPUcqmxtv>Nlf&!;x~^bi_9-m&k#db%FNw7`hLs(B}NW7%+ zvH6Ohl#Ix~2&PxOSknAOOPWb|fyf4hkZC@l5u9Ug&ejcS$Dpc*dj zPcQY-fM(|6<&Bl0CbLu_@p`~J5%?tN;~L~U^rZqwe42Ipvy?MnbOfF_4z7elE9U-K z1$X-|k48sZkbBg@_-rAwyM z4gofPlBK?>6RD|H6IAa`jKH@bgzViX(%tx&7@jWzd@7*Ayj}tjEjZa^zNEW?pmRdoXqYD9ac|kQlE-dxv(+K^P zhCVGk^iFQvFml+z##n_c^_VjWvqlxQTV{rfsVyPE$8aC9)Wd#6uw6CSkHUq0&XL|9 z{EW1fr5^EPLVQa@{5V`h{PqL{7^&fBC4*@mAuiVt=Y@-i-?p+c&~%piCeA0olN#Xs z@Bq7|=i*~bK1PaPQnHB)2(f8ZHF_4%cV$A(YTeRv=`Q&)hN`%em!9d&boQk)Vz4sg(=7GSs|dP>2E8f*-z#4R z(7Y-G8-sqvQV+hGz(;A|t0O*73}su3=N)u5_!(y}OFiCN!ds)^t&OL?d|c&6uz;0&kP(Xb5ArRadU|}jUg<&+3m#(d=q2WXQ}u7HsbI}7&slB89A;#j%Rv4mI_uzc#)+ZX%`{= zY*a_nt`L(44W1?`o!oc}Z9hj|W*@LI+(wovY>pk^hluDcG9)Cbus?(cE0!{D@H14^ z<-z@mkUtV+dks>2dkhly@^5})DQCb>w4xuF7)qeABdELGU}7REEcHG(MuZk=gpSd- z)k>dDRKy%tc6uII8EG*~Jz{_mk0grF4p3-UsxCr1K%xC=^$KP6rhV3-WVUeMo zKPT`(-D z2gcN)cH!xEfRS#n#CDC0q|@znb@+7q5~+vLF8wLDiJPRb)OXn^YFf{_YSTuE;0hC3 z%vHsw-Bw0k&Qj0d9b)i~#^4>nKm-jtakOx5pe{St!{u`#!%I!tIl7;T)mT-s_s0^! zR`paDjnxtKGm)`^;G}v?5QYc!{%`fL_rq~&C*7I7iAg52)O&Lrk*#Y|$&M3b!-J-? zdn=>0XQ@XWPpD66sN>55mCo>OjMk5(9`#*99igGVD^O!`(olbA=ilKVdpD9Mj@2gY zj4;L)U33KxTOQ6*&ujuQJEt+5Aee;%s%{4`+B}we)QN;zr@q?v6C>%hcVVK6vsFLi zZDpy)EhOAD4Yx3ST-~-nfDv1*E;%&cBjn*4@_WM1B6si*d`}F`BlUS`dbpe?oR$qR z8p81rpV@>@1jXWv|j_YYbHhF3wi}nKNFfHh;C}YL}5fw4yoC&jELe{F?T96 zt@A}m*G?wJ-5RQlCr8p2gm5i0n<5y`Z^(>2T+Xh&6E@?!H!e&}G>N6&#nXuJ{f$(@ z(;`FLxX>*Qis98Wdn*HXWvM4Hod`HI0@EWy+q}>bz^(!tV{Kun$DBc!Gc?Q@k+gw9 zz2xWKm?3)U_eR`HFfu5vIwyr2SE_RYOtAf$lHoLyhz?CsduOI_4iU97p_zi{4@pea z!{r=K&62|<%BPPu=Jy>-y+hw8p1qUB>Erv6xHB>pk6ZxnN8--N38WFm>`{CQ8DRY5 zEcHBQ5s$>iA)Kn};)k%bdw5|j_lqj|*&sXv^AcX?Q1JL>@Zu9z6WgE7QpLe{etsE= zZ~YwFSdD`(BgM_CFS2ePOF0A9MdCHbACOYqs`3i>IULqS8g7(VAWq>hfl(r!w}}(h z-bzSeqP3!%Bd=eM-3>lw67eN_jlG4f*hHEUvw z`FNA?XmTu@nB91mdX}4s<=`eFmN!!@e}+dcfXx)k{~(Fd#9dat7?6F#ZM^mD<%RrB2S={5-I-(XK4jb|azPMChhQXt&6(AtQFr&qGKX zLuIklL+&BSlzUYl>FnD+E7Rf30}rE)WT{8rOX%qu`d+d03%S8M zbPPL(3w(?^kEI@cAE8gt(D#Lj&ZF7SP)*mD47vRT`SrbGH1DU;d;^bM0Q+e)cWN5K z7*j*6craTT{85(rb{`-TL&65q#-iz{K-=C8Xm2nz%NbJ z2>dOw_}NN7r`z8m4ft@S;XX6a!p zh(4*nQt}$cRZ!sZ6czn^qFddP(cA3Yh|&N zyoP!e75Gfkz8Z;_g#codiVApGYa~m_YsjdmKtR*J7Ku+R1H|N1RKUkti&;uu!;*>$ zRBfj6z8*=BzsBODvLCb3r!4Wb`FbQhF8f$B^hM0-iVFC-b_+|%Yq(WWfdb9sA3Pjl zVq^sZtaY5F4)f3f5*om!dWb6bMA%5Eqms!1)(AZOTNG%?L;VFsi19elVQUyVLC3U^+AXn~vk zMX~}uraU#ua86dB=ly0#xFRd?6aI5UR$#>gW=M#SSKx2_#~80b#)D>vEl5d*4>k(| z^I6^l0KE;%Q<7o-gBTKV7Z)bMWd;}@WoWS|3CguJLqe-XNs!&r3~|fX)dlNlnTFU! z@%*w66>x~fn9)Wl9ml8K;w;w24w|%8@Kif>Ai%sRJk9QEHsfd1@DR^o-!ZG5Ixp&x zRpN7L%|Sho?E_&xm2Whg@BaMFMoE0hD)HX01lD&f<=(I$3SSLy4Vx2t0ARB2nPy##@q3_fn<>)QnbwY9wgmJ$P-#SB&Y;}Kq=$VoLrmD~(Gys=1zRd|RG zjV+DB6UDQssw6rFIBH9j zaFo$AS_atxE2HokwaRVG_#1+Z>V_zMty70KCCsd6GZo)_x_Qt?-t-kI zxp^+w5H;k@@<3m^%PYu*^-=4G@L@`p!wDOrL`IC=vLFcp+l1>bv&5cR7iEZCm;^(R zA$=c8`dTQ-EKzBFlnD0bV?+YjAcFlw8xHo)4{@-2#smfX(1*-G!T#$*80@j_7bU^D zZ-o6S-wKKLH$)jmElPqW51YX-VNnvyd>GYByFRyz`)O!!&<8QV!?7~-dx53KjC~-$ zo~Q#yWw`S&=e<3YO*%fJ#>F1dOC>ts|Nkq3{xSdKD}q1%TZbP0w~C+tt>W0fRUH4f zieLY&;^eF; zQuGcXF)&U>0ey_FDwow{iFLn5i7&<}T-J;w)*X+kR(C*Sw2a@2dzfoFutbd?qpCgP zA`Se?+tXZQXNel8qpEF34f@90^IV}S;D_h=8*iqz7_9V-w_Mg5#}dt)jjDzpc?0^w z+gn_rDxewu!rL>#OzwcjFrBsLutYP*qQvlw_)d7IB1^10A4T798-o^T4Aj;gjl7abM%Y5RK6e4NMtSE3AS+t-72ZOvfV z+`b-Eu%Z)6H)5TR*Pl**9pB^v9v+~DyG83HZvwu(h2FnYQ@nqt@|!qW)x=~@(|;}e zZ?x46#@ul-e!{jsX1ZO-Bd%V&0!8CwKqIvc>G2Bmd=ys%%i|Te%;m|3>+uTA!tzq` zR`~5R+7#8p;jn{`sV_Jk)C5{o(evBCJZc7v9aF z8%v-!-UCpflNn^~;}w0dZ52C5Juu{1ZwjT@|P zu%p?3xJWZgrEhmdPC3O_-&p%7muqH8yG=JU$i16`1KT#En;7k)abRpd9#?1i+0Yjo z_B*QLRMi(>J(Tw(vV^`!WWkeWFv0|Sxln&BFmyNL*V6i<(I>jo6grV==gewRn;%|4mRK?nc9PD>7m4NfRQ|MKj6d z0aA0nf*|js@8Jh3Ir$1%IY2XI#z}xB+IZElw^=e==xqkWPtB5{ejmXKX{31ttHDI$**;8TSsydR zB8`RnggN7WA<>+mG|FKXl#V-8O8y{9_6(-<>;duHfh^I6ptLcADP7ATO0oF9tC+(= zJ&|Ps0L&5ZyK2(c4D`OM#rO}t@9G%-Gptn-tmua_G*hJ=?B6nLUPs%9i8aG6z? zONJ#03M6Nl!LT|(fvhYuBgy--p_@$dO6nb*INw9S=vAxw7Rl5l|eb9pc zsDvx<<4%!$k5afd&cV&3-T+6X(bZ*`<>GUNqY_Rk<=l8^$6DNccoGjY@d$I$0yhrJ zd~qSs4Zl+1Pi`|9ch8{_eu5Azd1f&BKET13pA9D^%zQr$Gy`S6lM<%BCtgQOaFQ&% z@wyp|Rv%@zvsAJKs|UhaGI#uS%6_8$3e}$+gna|X=5uMx-=V_l1vutEWLOV9iZr`` zVLcHDTVXK4dgy~7j||4NgZkMpf=UKp^*|UAf!Xxq!3b;mh-i(c`cK~=SQ-H5&k1+m zV2Mt@A_l^ z7%CY6lOiy3B1Yn&9S<>bI^kg^9%1Cn8i_NiHp@?^&e@5D+B83d6nBln9?CDC=S6YP zcSNynq8Ak}jz+^dJg3hj8>7aEGH$k;iwnkzVx0}4pEXWQ;O|o_dyO}P(SzNN(d#9q z)893V==D+<)trEAz)NV|Cg6nlF@=ebO1{MEf#4%^7bjpC+2&LIW~$%(9(JP9k7d2# z0I6Mn&kV+*g%r*|kk-eOae220!x;`z$scQo52{s5+?+xBxMGfJWdC5@L(Vur(fTkAxzp9lgZOmxN9bI`ixAT zq2KI#-wZ}SmJEb*q|C6ko@O-n@j-4Q|g|Ad$G|Gl%#BLB~t zt&Wu1*F<>U#}Y@%W-(I6%;Awz@dF-dZSkLBt&*U!4>LW^AB7CHGlJ%i4nCeg#`$>u z$efF+IDaH86|D9|(EM@sL$jDant#OeNBxhn31u_>#Qkz^2=MTmcU!bmKMa4TVYqgl z7>2)-gR9QR09}fKk)I7$DL~IJFpB`aN&))fLUQ|6a{IdrF)tR;H{}0}z>moLu{s<6 zr0S~+F+dBkJ{vr=iJZI$TN%4{Kx5c@OOQIi5}ki5!tlp{#_$4akro2gbn2AT2@=h!@ zgYh!D6}xFX-Q1j5WER~tJ`$%R7alrcJn7FX!jZI$x~VV{yXg>CXG0-XS6GJKl(wAm z$Sf*)WErhuXA#o@RDW62e@yk8m!t2<`Pq_a?;9-9`5z1CUtiA7Pg}vxACCVFYn233 zSE7N^I-k#u?sh#y3JQraLaJeom)1X_3%K8`6t4e-8WjIIuTwrD*H`%heVqaD3Aw&M z9oq2_T|Wm8Gw}#rfB6eD7}Hkp2q_}hH(X;Dt}i0jzlVoTC?fr@)?inmem1P6l0UI} zAgm-N_pC+NdsdR`zohzmzeLZFYafml?dif2UHheQ?WpwV z&b58Ba(bumYSP4B?9GzBDK-i=N5;=8U+SA=bMy1~#lYZUt6N#Jbv%RrhI*p|(k~tR z?DYN)?bV|JHk=SAoTmcdP}@leudf%uu#>uA_j)skw(S%b+~~Y0uu`P!y^(ZcG;sr; z7@gU`Cr0hc3G?$<;z^A-F`Bdyb3UG;nLgK_qW!j!&xbyU6+d0U5`QYrhdTKAd}xp# z`w&X$hjjWLq2>t_dtfU|y(bQkCl>oL@?DOM%s~JLsQJgR$eo|TMVP4)H>n;HD&j=5 z2V3pS5`*)HNIKITxrv*xW)n7}be*Yg1K~xsr_*1@PpCqGG1`|Go|C-z*?h4HR29?Z z1q2EW$K`P6WDRs^D>@rvJQ05vR%Vt1fHuk=*lY&b?#S(A9|X1V9Tvcc03Q=PW%yr2dm+)y+wj_>9iSIpZ;Sof3^+IS zLds+D;585jd%sr4EGdHQ0^72AGSvJAyWWioTQ@=&6#AeKO7)#j>{c+knLe*t4By|n~qj1b))rAc1$pPq~ zaof#6r-rwG5+^1KuD`I9?JyJ_w1%of zbC9+Pgt;DU?2T6&2_(%cc7Wlu_0n&rnDK^7n9rB&6r1EDXqRUBUcC6~%+JPb_6}`# z$oud-%i(sX_jMGPF2GWU`b~r4@<;chIR|}|y}0x;mb%hkS5HMo6Z8iMcn@1()72}w z-r9W#UT!to(1WWwfJf+9*?^8X<`_gN={960I4&Im&B>hR1l#(7d+jpcyQ2;umWM&k5d4 zJ$yo4JY3$WUp#a<$%}^_b%c$pEYXHoJj_4Iv+hqPks`#ktE_<4FE}oh44%pgR61n_ z!`R9SJbqd|2VPZQ7~IMdQ}1%I+w}2yUS!_Ee{hj`{{`MHdg3Btgt>)@(aVcY8^`Wq zmSwPoiPpi-_O_;oR;ptIQ|KDn!hGYR7#nLSEH>d0E*00%;HY-R3>d|9@!Jh+r76i3 z;Uz9qL;Fkm<;<%hwDsZa^Ye*AqIRr9(TjLkP=0^y4v-LBI) z*jHrTa~;Fkw}tBW&@UGJg*-xy061%+RUDA*~YVB_B$ z1xIe623`la%o^K8>_*<^*zJ6qWA`UTIIv?AAu;Ym><*AD;zGa|k_F!f+bkK1w(4US zA}kPx*CrCSiDD72k4IR<^@ukjEO^FDr#!Qo3iFFtVl?g%(YO@#@naWtA}wO?GY$V4 z)+z}aMWKb#WAq=tKR1aDvj-DXh+h6I48XV|XP^)NOQP+qP{R zC$`OrZQHi3iEZ0XCeFl}V3JHS6W#NE_kQ=+>F%dbSJm2k*RJZWwaTz8A28&Ncinmf zf#oqyepDba4^^VhxGaDZ?zK;Ejg}?Nd?>=JrPz#3dY2x@(C;+{0EhS6+vY~1L-Dix zrXVK$ydWwt#O0f2cg>4nnA%TW(kkd3E^&pARC7nKH%276X=7JQe^Npe6x(_n_g{A8 zt?P*CT)J16**QSRcc0K7viZn03`{d{Y#d`Alw&@Kj#BE9(`wLY31)jC$fdhYo=rn% zB(;7#`+S7E_`Ro7gj8m8Vn?`v60X`t*Aa4MDuC24Ui;Mt@0%W(>ClU-cPFh9Dx^M6 zj&7e|hkeWGt@27&Nad+lvSk5eb**}y3~E|EI~2iPiHLz!?Mc@9ob(j*&<*aTKZO&M z`o-S2>gNl^tkppo%bcgAm{{ise${f>Ms!e;39#^pA?5CvG)-}gA(hwPl$QEH7fUZ1 zcg5LHKb&gmHI;^{Tt4#XavOgckUV1X=w{_X5gAw@IKRHum1o3y-y-YM$X5K3zQ}zD z_TR7ZQ3-~Xy4S}x804Yf)lj#FtFi=w5k!%~_kfBLKs;QpWwM*=<8D*9k-Z8VUG|i9 z`3}c41eW2w?wAST3z#&)CnEuO>iV_ZmNjTdXF0-6ub#@}jTb=h@!o2IfUD?t?~(5L z$`4_jwb{b9&){^cp}djgZmZo)dB=a!sP=tbqB6YYEM9oA8&Qh1Tf z(S4pP%9+{RO?Q1WZKxL2uROh>VC~#V?)GSgdD}NhE$r<+O?YcJWq7?I`&)B>OT}L^ z(CHRSAWe(UtQB_3JVzcGUrM7=JI;e=0#)RvG}^ybRgzYph_n28lHnlMClZ?w5DP7U zE3%&OdAR^U5b#7&e6eUlR%&d(y1fPQI2*XY0z=nlB{+2Ckvzh1CWbI|HJ+x0qBnFQ z19D$p2<=i`odTq&8XggE)JKIKaQHzCjW(RPVD7HFJ4)Ghix_5pX6~*seKUAnfnqlI zqZu0A(iOInba{CseX8Ma27J*}^aZF3w+E?@b4jl#XF0J}g@g^c3U~GnS3ecg4!2jw z91Az4+JGKjPKUF+)7Wf&g&1X1I^hk&DgK290fHHZ0fh#8{aD@q1o<3w7!YueVB}A; zrq_$iJ-7`juQt%E!@NL}^&#+I&kXc!V+oKMO{pO zXF<+y)Tv&7TpVh2K zc7wBjj{#q`S>m?fqpZV`FcjLztj0UI3$gaN%b{Fe{bNOnT}CEVvCXiMka(Ht2S6G; zte?2b8{f8F$cG5;{Ip1!Ok)y3a+1;-#>Dvj_as2mw0jale1x~7I~VfqhtSs#rp(v3 z=M?w(XIAK660iv610Ya!(q}86L+c2$0nz*>vvUy~cLtarRXZF5~gka1c*Y%vtl$6?GftFFL9T>nlWg z2Ir+OQg%*R^GweUc1a1Z9tRhavHdi4GIcTu#K(^4bkLkS-zUP3z^O;LUxFLG7>*tP zTm8lGyiZHd7r72;ikVZ#j_Swb9C}5g7O+eDgq=WsEyor+A+rqixI|iL(t@yt%vZqt z?p#3SIW@cx3Rosxb%f?Q(?;88YywJVdU?E+X&WBQS|1`|@-m2DB-6Tiy#6#kTl1xf%}Ixe zIZ{NeXrRGb+^)Z6I3PYtd3o$X43pU-O?sv2Ex5LbB!cj6y~q?D$_Vfy9XJ@?u;WA}^buP%aI0 zl?1Olt-{`z2}vBct(mLo!;1`+9;f?91wAS(Kg@N%$vB5w%o1TEC=?| z1%tQTOG!h**Q`=BdmdfFw*vNZ$d7Qvf%+kL8f5y!OAfrCBn*kg&9S>8^O(Ue+F0sH z+iDGJmqzG{42e&R4zTs8Pi@S92TIr_Usw@}VRYE6*aauFd(x`DZuByj+_5Wjwrzde z(j_MakyYD+s_BkZw0jZj+f4Hj<;cQ6W#vm-k|2X74X#{)o@Ak9e)pSe_BG^pQSW zVF6vfcXIy4IK>+ zmo)2wM^R*?B+_sDGtMkIAKl#aR7MbcAt1gv{_)o^_y`4!uGx7$R>9*6#BILQ0}1f% z>riBiPXLEJV#PDj`Cu=={8$)IK!;WJ4f^HBXY`1+kZhdf!MoUZKfl?5i!7!cFt#GACJ3cdp;uD*&ZR=@sRV zP9E2*-<;7RR`kK(6nc;ddu~gXy86tKJdT2fuMF+HRE64$(80+eeJN+_6pcrrIaQgn&M|Rc8Yd%oq^7m5YF3N{IvNbJ2R~ zckb^;B&T+wN9)?QubSr=VS=Q(<>a-aF#LD#eHf{n$c2tl5LEWw>kx6cYeRI19z`$9 z7-1h=WQbq!=sua2or%nlBsu>|dDew^3%%3(|EG4FwTVB+BE`n`8?>V?G*`+nt;Hd9 zbaIQC`+)X9wgl;m-#dq4BS$Y3C6J`aXG`*>EMOyE!xUv3g>t21`s~aBw zM{T_PJdGD_NvEsti1IJcClRz43&9hbexZKmqiAo4xx_`Xx!!Ps%CFz@o_=5P7HZ&9iuxVWR2Yqo^ zDn}1z)EwMiVFklC0*WY^QPB}URslYa$Dx@CoYu7vTG-T1sb>bFSc`$TTEuLnTovZ8 zK!uC$e1e7*w7&%JK&!7N(!1GiXB5}aMrR~l2-F5Y^m( zuS{Wn0shC@N*|D-C~51 zkLnVyk{`74Lb%WK;~Iz7Yd#ba)*cszX#L0B2pTRB?&C>6I`%3%`WY%9%*pRAEkd&dP&_dC39I_R3!MX7{seJ#3-gP3`y)kdaF+V&}L6zRr6J!1ejjD^`&Bomc_!_JHiH zuh~5>-#m&Re==6tlK|l>8Qi+xW#vTQQl}5HN{H>>eg^eB^;v&8J-iNHF{HvxADmh{ zV(zAyTP^K9;%46%Iv0F}oq{YyU*_*M9Fti?nsl2RL_7PZ7qi(WJaf)B7Uw8f_ z;wuPO4~LhF6O^DeEB^v3!yh`h?M1oX!lKv~TGvebm343iwBIxdA2DC6vLUSHIAMf4 zIG*@er_ktG3ZYC(FB0)1#MuS-aQY-0Osu;KQJ{gg;M9>YKT`1y(w^MmShVaFF& zO6x+cQd_g#tWjN5cko$xj?7Q2dEeAS2}8nMgiHFH5LQF}{Rt*c6b$|=Y4gsUap*6X zM~xE=Zu9gZ_xMxXZfn4hQ(iP^NV(<+X-eOIusD4c|OD z@<D{R1CKe5;(s~LEbTsT`+oI?Py ze%TCW1p$T0r^YTk|)Flm8W;^3La-LJ_=dWP|WXRp72;`)@=HTYP zNdAe`X(R^T{*8d2;8)9s{oYJp(2=&x_E;`@%Uoa`F+pOyJ8tUk=bN=<(;uI`3e(-E zRWZ^UW-$#vK+2>p25t#dcK#T<{itCnHs(RRpoPh~%alf=M8$F#q|g)#qx^SG>3x_< zwYMns`aN_)68aO>v%DmEUjdOeR9>2vI74EtIq=>pr4fYPKUu#na24$D$>yo1KA|@A z&8P9rBvTUd4BVoq?B1)lMVHRWyXR=I zvyJ-?Ux6q>UGk_oz|7VwmQ-YkHoue(@H79@Ip*`juLwY2S$=+g`qT3Kk1r~-oWvj< zN@{0UeTJ5_6J>`hPa!r!ROK5JnQ>%Ee);n`#-*dj^8LWY`Y*=Wvy$>-7>c7;Q=YP$YsPw&8Mc16uMU?jtV5k$wxQfTun}^zssH$kVnQ! zPR;9!bgo$MP_2HEj4h$x?O%O{%^W6%-z_1hiSA6h;fSYc?XNlFa<#v#ML*k9lW3Ggt;j?=0BHdb z2<^mQ70xn&5#u5|g2XBe;ib!Sn1YbxoTvH87H)uwNjzLLG($;jS@Ss6D>;GBUF;hO z;GTF*tU&%oZrUBB@xhch9#dI#4$@}jUw*%xTsn^9%r4Na_L>ILWC0C<@~4KT3CSl%bu9#&NS2&(2gAjo^NWk++1Y6q*jY^GoB>&RgVc4k)c3#+ zQLNt4J(#BA0Ys;-dS9;sn~3~)q`&DXON zv_GK)8kj!A65R?!<4j>f_%Vkk7izm&!dK5Ek9o7b#Gg}mvFXT%!bPIXFUy^7!N81sFzl>zIzl0$-yYtwsD+ zAY8HiF=HgAec+uW#;-o_T`b~0*!|t%1M;@aGr)Y4z)yi~f8{LJLgAe+(g8m|@8K>* zT=6k5$4)Ghl;MT~@R`!ZYGDgG{O2r~6$~wcl!UXBx+)Oht4=)TAVIW*L+jR)0aT>T z9AlCgim%C4?CKSg^5?aiF%Iu<={A3)?L5ypc!9f3DZ-qbPl)^_?)GDlSNVAXbLPYf z)B3u-376y7?3e|r66|9?vibQR(GVV+i`X1n)=byM>x~zq-3<^}zTqv_4z=IU^H9Qg!HQl7T8S8nkJJ+4@tnRdoK@?bwJPI^o`@3Z| z-X2<#s7ql%U4Su%f8={9Cg=>#IdZyk??%R$wZ$|n=45vBkI@69#v7$+N?Jn)U2pHt zra%-ON@~4WBcv2X{ufJJ&_ps;z;x#W+xPY)vd*3Nv9Ac2Xx*_fQI_U4aN*eC zzgd#lKA1H}(Y;FcB~NvgNDabe?FiUF7=+ znSO67qz|r`h5p_Y+T^9eHadCN#KcG+>?no^{9Zrpfhdz=$ubF>#*!xYt(!EBZ*%)+ z$hCb-lR@(ImI$LLbwLp5!1feVcAN730aYPC%!unS79tZOe@_ z39{MhE~1Hatu%rFbttlmr# zQ4D`|1X7&?GJES2G@Z;ZiGKWbQ2TbNVo|quI)>|?)}k3kP-0zod{!5~W-#vG;bbln z{b#oO9(%?240^wvP@((EVaN3gUID&&40)6iG5RJid+}JZ179i28~I=i7cFKCp9Y`J zpcHrvKzcV6Mrp}0?{sF=noft z$_zXxPkqQDwBu*^_V4)`_3^!F705x@N1a_1Ei;U8tFa%6JFmJBA`hCMM~Im%M1AN3 z;}+{gH}NafuV%hGQt@E=o`Dnw6=l3xw1t+jZkM?p4zhp;%x!~8?>waP7VvFk5_Bn= z^2p_YU$HDs-dnEkom8~Uq_J*f8HE_SqL?q=FmYJN`Ror-L7%%3V$51FiKPbaP0h^i zn%Dl`bCAD=rptRZ21#p6Oe)l(h?s}gypL{z!b?XS>Lo%d*&2mJ|9e+|_?H%He>UvV zAeOsN8y09>qP29oyo^>;k~DmHIXd?Gtb4WF7VGVghn$&PH#~C&nnn-TQ)kDa)qagP zXNwev%BC4dBb+D6R7QFo?e0mIjjcu%!L{#Vt)aLw*OM8AQK%2wd>4J3gqD}JZl>%c zFSv0k56;HUfS(Z8og)d%6)7!M2aoUVwnxa&t)9bYdFoKz{-$wu(&AKO&z&9oq zJH&Dp(E1b*LXpY^(3Ja5;v(93G%gYN_{3f2PD8bk9 zSDLRwHyhQ$4UYbBSDi^~YZt9<=oZSP>ARPvFYv~lxd{EP$w+4-sMepC8fq}jHJeg z@`{czr@oUj1~M^PWm?Bc)kkBS-z8}tZoHJPGTdOIZ(be9Lu=PVz|2;Ks;G6X%%Nv= zAXFq`HDOgKzPigLZa!)u_a-uWoE#^+f3o0dX{bz&lf@3KB>7<>pBoX3&Y9JO2>_j| z=*uDYpMA22>@+lnQ52N9kSygILmzjq&3DuHMvnO3%fb)ZOQ(EgY;OY;Mn&lFF?gCn z20`ZLr9MJv|D%Ce#lTCapR-|>$?r=OZIsS2BvlZ=_gdfcax>ditVzdErDVIb-uE06sc5Lv7fmmOAy9lze>|gK2y;rA-~R z>zGsu)W^Cc@{!^e3xf-KebJEIk_D`Ms1OEkbA#g2HYaReR=8pj*%Y;gRUTf(wiW5t z8Bk+r%(seto6*B;c|T!ndVKO0q)vb%-C14`G`rLsyEE816?Y_N7W%-kCc@~ETnHOZ zs6my19{<{OP=z0&atFE6nUjWigQLn3Qjs|7eC&+L*99KA+Ao_?SF3cWAB=we8>Psa z?uV(Qz@-=6zJ4`Hq{Cq_6SZhBSUOF!&b-@p<>qs-03LJzWC44gUga&IRRctv&&Mg}) zr`cR|xq3D&K09BiCpt3?G*vW{v=XW!I-gj%CW<^i3ytf_c7AoMuHjZbx&3Veu?0s5 z{||R9>pVEFQ2PZb0FeLGE_q%}hG$SIMje?DeId@O=K2VQVxWsmq7&Z^B}i5n5e5|_ zF($;wss=J&Cb$rv{AiA%3k(0fFS^`MLU$RnGix;=A%&%7jZH@uQHczaXGmP0hs&-O zS%(&va$s8IJ+#6;N(zn0b9!lz+EdPURgq0hiTl3nB8?H0#}%Rv^K;3!8A~i$VL((E z1={UwyNG1_SURXGd=w7vyo$tWcC!@upUM zyfjMY&!;FB+WEQaux9d=_`yn>2^?~&Y&$?jIFSc0Ra^Be-LN_XE!EbwYwos@wsmV} zQ@8Y1_>LGi##Qrt$n#cZyJzyeRCTazWonFlCV%aC+%WI#)|MA?X3y;hzuAH!ULjk} z-WyjpE21Efop|D*b?wN3rf-=##i9daCky}IpJ)#;Vx$kW9E}Um7XB|n1HAKwByVMHe9|YAbQ2R+gXT4EOTx!Ig9EZ` zZ?xm@(IBc+K)P8vG+8-rf|zq89Bar4qlaW5DLG37pfb@ixU7_-Md!*H8GRuf+72h$ zJjFz?eVmq`5`FFxx`YOI9-N+LfrZ%WNluj2!pfETU3Scl8we;HC&uE=+eB#570PiK$eH7Iy9R6 z@~&v!;dy>&)c|9I0nMt+Dkwn=AeGKs2z9PgXzxjSQQ(OkypC>-(0?4HhRPv0#he2$ zERLpJ2yU&bQ4qapLtFh2T&iNZ+Jlo>%B(|EeP~pk0>n&`0E9t|a$5R6po;>z!XSjT zawkD|8?n(g$*3#+r-L(Qfs1+Hy21@AuW6+?xF$xvjLj$mG?H~vAsv#>0=@K*Xj2U# zRMahbSr-HLse->sz4AnY7)wvA^i5*wj^arhVso?7AUak080g8u-1PTRmHsGhpL5m0 z85upTATHIlG=P7<%yr;p1LkMX4{3mXefob@CRWxkiLKmyV&b5yqM|=Et%zZyYBbd= zg&4G(c`2}!n<1g3KQynX09`#YD1~@As9TY(u_QaKi-CXDwZ#D;;a%MW;q+~0UJKzg zaUBb`X@v^Z3fA@>h+eMKvqci>S+`mSut9hch1w_l1r6kc7p-x~hpDLOYqV^E**>+5bbYB+w9`WH(d5`*~Ya_rK`9_rME!58CAzPh&k= z83O$4pU@QCK{rNzn=$15{Ijk(v?%{w+2y)FlK&ZVtB%f#DRFR?FvyVZQ;p>CHSaMP zKgj-?C9~)CN7xK*P$rDjJJqK8&`fsHf6To;U--U1#XGf*gh3M5{}(ARLlcwYoil!|0*9!k>YoJfML_6@^a=W*t6g z_MfYiMZ(`GXf_+4(RMeMKu~MRTg800s}_yWs{PGCNOi}lF*GB;_n)WiN5c12(+$q3 zx^|WPZ$FaDsb-Q=$!L@ZV0+>D|2~y04gX$2_XG6#UDwWn0%WkZbSnPN6o{lwExsya z)YhLR(*HLm%TvmSI2F5j&IjMpF#k6o$>l=Qa$Sp7$#n&3)G)Y z{@3n|3HULQ_>*@lbHHJ~b5^;0V@X}|sX>?67!`)`P* zMewszLuL&yFhvgtx zwha{EgFp>fTT^9Y4)c{$#f$gSIK#*HryTj794N(8g5u4%<~`@-ffpLgB2e^QfJpwO1Jl7;yU zENV2qMjil{n4+*I5sa10V<)eEPT^hU7)O~e^LGlFgjQ(`ct1E8yxP6!O2337TD?K3 z_wN{gScNJ;x9oVUaxlZhS`mAA}j59x)GyfoL{S)i{51h>E?>Y+p zb;o`SsVv8aJ?HRxSUoBS%uVahdQ(g0tP7Dq%&CGLd9HWvzZB5;_X!mGmg3(QfR^;& zhhI7w81-&KLTGcrco6+O8tU*Cn}|961*1HP`988%Les zNDqi~?h{$eeg=9x81aXn1S}?3j`vdcM+;7wb{hh@9xo&U5v>!gcMMQa`{=GD5dWg9 zCkzT-X*-{V0rTcX81Jv~o_Q)2;r!?83E%G1oTF}mT08MCLyg zC2RN169e2%%ThteZmQXK;#XxsoYrS-RAlB!fkZ)QUt|-#MKu$BH4lyFs2h-L>`^$` zcKNwGkQcnFBr20bK2=g>-w>Yyf*Z}ZvPt$~4EWL~-#sL{QFy1ahq8Nw4;>iefB5uA zr7&<#;z&}8gS+W2Xsn7JAawD$5wD*4g&rz>h%$u*4r`=|9-s(L2$ePM$oz79L@Y!Ujw4j1T&;f)7K8UfNFM_h#G1WooZJrVs&&@&li(@!pe9L z5V9`nqZ(2uD5}yyAX`_|kj)rKdb8W?<1J6&cL@t7MMPM8RyC3N{$fR5Y#m*@w*Z;| z4ZZ*1FGxHcMDZ{Q>UyFPstgfka;%r5ASf>6Pqz6mvGB$o0XDkug&^{ z`4}y0;i{87aIF7jrv^7q@;_oX8_nvlu&(3saBXNlHR&{(KS=<&m=zN|&cvII7K;ar zBYxN%{?mE!fG3C@HUIEJG|o@NNjlW|Dq!QlRmZu0i3c4!NUoX{SmL0;kexN<)KK>e zZ-5+uzHLZe|7li>r$KUU z&g+J*t`=h!z*tqy*Q2wzPyyOcX=A)qv&RI5EiNj@4*e=DfX`Zsg9^?Z#WSNj`VT*} zz?jC#?wZZ!;pj+z;n5=d`W7eGt|m9;-F@%||oMAc+IQ2rcw$0 z!pBLjWMO*Mw!M9Jt*3GG&4ki!Z0kBvQqp;1&tq<{&h309SsBF9XJp4SQ*Q4R-SL+-*|6Kfhd=j(*Rt%9z=yf2M zcYympW(0zS(Xz*c6v6`Cvb76~|7v^DmUO)Q`mCxLr=;kMMxin*=*hAE69qweVRxae zo0!x)?$u&SDYdC=LWEJcJ6Virt?hNqT^lm}$Nla`I{gjSqidUgTv6mL_Y z1BvN`q1e$oGa{beEjXuv!Okej*P2TQhvyf4_3D<)zE4((|5yoKQz+q`%^uYXZ zQYWH8tA-mHuFbJSdHohmc%#?a||l`^5;6>p)yhWj(Km z$yh6N0G|`7`U)2@x&{=M^3dfo6zSL!sBp9BG&pI&@utK_ViSB8wn&il&KievR3;kt zxjAh!v~&9O-ye_3!-ya=I($h_ip3{YSc)4j5KM6z?ZnzjMXMH>*UAmS1m!l`ZS9sO zZs%LpHlJ_^%v()%N<)H4FMF2d*yWEM;ZYE`btgaavnOQP+GeT`6~C~pLmh@G&ue+) zCkab{x6d8Iswbe4IM{KQ3HmJ?_{BgZGXi~?K-Y@gV<9PgS!tslaM;#g-Am6ykH=yB zL}1yH%z<1+$Fc=zNe2#ReKgsrc{=w{`*yi1V`6tEbfU3Mx2To5l>Qg>e+@>?907Ay zM5~o^d!_%l%-EV&szgB>h>dVE-}l)eiVBr^I#JnIZr8#P$#EP%v~w6ptIcvc{3fU{ z4}8@&A&q*-;#jvpquG!5=6B>j-_Ds(#BT1_oNX#%TbDe9%$av4$}hb3thve=J^fCB zxOhI9J1-Y6&xbgeTvLfkGVo0}uSu0|%-+ZZ1WuUayp;^3I8oUmx71eR;>Qu5*uiO^ zkdzFh2#NXWNpM!4$0T@E(&_r0xw+5t8u-g3n02I%!TUPn6OU__c%iNpn>)sDOD`$`J*Wqs2^AMHuH&jw@ zs0df#5{SKFwg!hZwBX~$4VY!hFvW=_`kiQztBBOd*7y&k=QIXqZk6+QAK|67lo&UK z=u}{MjG=Kg)Umw(Y{$$?|MR6)@0bxHmuORv{bPpCgY$j~w^88*^G`Sx;F~^!y9aJW zTRVsxu@`Y9B-K&|JBm)3z{Td+;Xj5fSlJ2c+7HL7l8p%#n%6!YQ#89AV{vn?u{DCC zywD$-OIVOC6Knw^!3UJhu!?5KIr=8s9*$BKI7(azlTfw`#$QPjuZi&|PezvniAk8v zr^tXFClXS`2NS&6I9U%N`tb)w2D6AF=Czk&Fb*f?!XA>f*35f9;1%q4UlE=CyB?a- zM}gRE>)EH=ei@;A1V2<+%bMxN;tQ>7*$BmGu#YPYx4<+f`xaO;?8?1=m#D(;#B5y6 zas~=^X)l-_MgX}+A1+_5x&Tf*)p<6cq?1=OAxEghbu6~wk^cg=diFAlBwqby!%1$Z zIvg+EiQ~Buj&ALe;O)p0^SEIBPXvP=3@~TLp{_{ilDHLZorvSSZ&vw*-~ypCdGVbI zEfTFNEWtbV6@&SaZl2~sGW|uRKR*BEy;=3PB^UKS5KMr_uA!2rw%B=T0ure3%y#?04IlQs8 zr)~U2E}y5cius5475P3HTaci#A#%KS6*D4Vc#Y##Dt|~7^C?EIkcX+;jP8@HG3dd2 zXqCCr$4E%h{&}Ow3w|lKgx_ob>^Tpx-hhUxxbFk8-rlL%W}@J&T}d?)c6P1j9Jww4 zhTQoz_Pj74m*=}udY270cUFzH5{?n6{mz_^beP&ygcUnpykLQCA1_elEQ9YuzByY1 zra1V4hhyEIX8(ujn3q4}Vc$5Y75P^^1QH@(9&^Rd5xKhKz0hOVa`CV9Y06!5=fE$R zk)?DRkb6hO)mY&_d}2@xFjV{xyfU`l6L@An&$I2+?(;nL#-AcVf@7%V(<7+kIKi8l zm7*A6ky=nRJ0Dc?Dx|W_ajb3R)o{tEejfgm9GhiixVe$64fSHtW9iv**~VutehN2Y z5fB|XlmvyJPaM8x_j44~$+?gl1gS_KiZG8`d+`0=#2(Il`k7_9*E$77Q}>!$HS1I9 z9F3dQ!mV14bn3#wTQ6p_xhM$@Vq7h#2)Nm@p9d8oDM&V!{;=&_I^~5_{)wKB_P0gBPSj<*+f8@P*LS|{?Gd^cHCWz-5*gm#D-3g{SVN1wV5MfFI zRi(7m1y+;oI5lZ$P<=@D@BG@4z8w!iIcA9jsRUf*QxEDE~{bNc_0wjLR#H7cG{Tv>0ejAMq|?Aju3gUlzZn4zgFEh58+=8@Xu zs5AZy$KtQM=QhJOqlV$Ho=a_>5BE8sx|voF=R2TU;8NFEAjer@@5vqhsYWRF8Z8X_ zxS_$29ov7;X86I4l@;e}3CV1ovZ}svX!bnkH(ODQ2%ReS>TGO(Otz}g5HJ~rH-s4; z_N)LIRy8yoaJREPDEWCW)SCrwE8_6I>(B2J_KBc+KWFHYI>Z)a%!3r(zSQO zbygOywo;$W6xWBe(oknkmNPb2@0q4iv1e2-sK4SLANNleY0c${a>cajs4%_s;$D-O+u(`S>Aoj zG^a(v&&xv60iU#uo97*Vw4mJrHbs!@ZaUr|D?GE*>RlYZH|m$0CSA#a<&}#}-AZkH z(EYRj<8yu3QoMOo3{gYJuSl>Yg;HpbYl@CRezQawpt{U*rJ=|TJZ&j}ZbM>YzDEE%-8&^`6ODgV%S{dLSM8agX80LeESzowB%J!AkO%uG?!td<# ztBpNeqHdQmn6l~S1W3J;rz9_4*vQsK5vft!gMRh<-zES#hQuop7ae1 z>vt^LYaDtfNmV3WKeTWBT0mxfaxHNIS6_Q`oeeJ_Dh_DIBK28rB`OxycQxzYxu8|;|*xj{Hp2w+M=(pFb9YE5&}HWcm00^ijB zY8`{c6ZQ>`Ugpyk{Nh4;>@lE!ehC{a6Su~{1tEvZiNjKyNjuy8??yVDx`CGL$8b7a z(s2?;B{2KCL%eo7AMVG4OfDY=^Rv#dPR=^O*9w8p0muRf7M~q#=^27YIZ|e~6#tVU zUfi7-16&EbRQ|~ecPgdVd`|uC?i^6-&!PqoF+Inaob4om))6^V42R^x9gdNPN z5H`i3`#~-FH0-B9>o;POi;QCGKZ8%R`^(_(MnvSAVByzE*vA%Sx5&j)@KlbL<^Lg9 z|GB--?q<&4ht?GOkQudV%3v)ti%BEb{vGTvzrzvJ&^Sv|2T#LhmU~-eNi5!Ot5dd# zrL_cR{5jJY4$7C;nF!K$)7=p=nF84QeX-m9xYSIIS0z&>N2GM_$oYqmgevuTQe7FC z5~B@fBK@8A3|5dR-cLm6rt+#e!|GS?z}7o%Hdt_3e!MKBb|hw*g<+_ zZBzR7Q@Y?0yy*}YranN-)ONRK{A#WA?A&DCGAxuhUdCp$zhVnQik&T( zoSn(dn316#`@nT%3I=r_Fi+NfT{H<{SNziNaI(OI(5yCAuq3?*wJdZVU^ZU7qY?=s z0hqxuzHR>$PHP+<4HrrW?TP!Rt2c0ai*_o9DFo~P8SCal6BV?36xa*=r1;ZRsv?h> zbleG(VY&cc;hjHw`mj!PxN1N89Ec|(W8G7=#n3ONpn2|sy+13Ld;un7fIxM0}d)TkY3mMqm` z>rQta2k6szSyyB*{WgyMdP}JjA^01;dEYRZh`Ob22dw zEuwT!SLZo|K$m(RvSrslA~)>-%cpKG(zl3c^JP@k&^yaPh{I^|88DV)h~H4RtnPq= z>ERnr71E4!;L#g4E1)0E;yEsb{XYPuKw7_DY#*0cnm|7GP>6l(osmM9pPA}>Y<~#x z&%s)1#6gG+^VJvuDv9Vq7pqP{7fV@eg|-gAG7q3S0o^AL6EqjArtcjNyNT>m<_W@D z`d;J;Owi1_ohqKeG_vYFWQ_GUV?g$$W%+ulHFJp-7wzi_vuX)Ck5A-pqWqUIDS6;j z8S459>upJ}6i$`l|J!BV{M?18DKtR2ee3)I6qAjpetgG6Zh1f+cC148w1=g2gmVh6T5(^m6q*)mW~cCc|S`ZNM}c7T;zC%kXJ3JaL;9phey^8DJa>$P_=uH%*4GZ&MlU zRs}4dCPN07TE$eVvD`ULhHGxOf~97f45@cm!Sc{F83x~>*59KF_}DZVYPsHdd4j7{ zW7#!LhH|X--ZU9TF0+E=(`ho?unYzKH?riSex_25#XMbxZOc>!m*H*+K#TP0GK9F$ zex_25rT=spzSIhL6NUdU%C)H_jzCb)FviKMxG6Xypw9*mv@k=j<=89I8X^D?Ox)NC zDweBq1?f%uCb!cAiz#yNUSS23+g`z!mX+kn#R^ZHW~{VA>mqXPkn}vxep`E#iXaXw zuwEpjK|k6#x{2@}Sc!gHjY&?Zp``aIDdQR}RpuV;^vn&wW0aFqWd)PV>6r`L>H6L( z+^WKYbKr65`|1?<3RCJah1Y)Y1eLs^+6pGzt^GeLR!~impO)93;^_q{vkA+1_~O%Q z`~oIslk6{33G*r|Xuz*g(!f<#NH3WrOk2a0IK4^vx2{6{vaiLh1o(iG-bNJE0&jDD zCcXS*3czYq1Ph^z2dUV&)g+@BDZTlE!(B|V37?Qe-s*`WZwFJ%drfMrUkjhXW5bB~ zdj`8k=cxioVi$1$JeGjd`ny(J!4$0Y!IKGir{Pl+E!zFU;c1qi!-%&}k3!x<$mTUT zq5$kkz`GU`*Qk!SM?~y-i~K!7+LJ&t<+OchArHJmd5^Bau7B8c8BzzBN$CR#sSBpd zkaQ;+?ytlf?D7T_sAai&%!rcj3zBc%ovK7%2qFFw7}s;WO943yd!aoF{yTzyON0MT zz?(cSXAn-3hN*Yqt`*H>&rrftN+`nJ)3cONdzTf`=P{F|Oiha45621ao4e5a@&=HX zFQspDjJ?|m=^qpbdH&0ks@!ToEAPA;t(R6O>Qqsk%kDuK$RU`&Q&Q+2l#MUa{%(ad zA7)p;TFRdFcZw7rJVck(cerbz(~5 zJxlpz>rj+^$ZHO~N(i4~QloRlaEIiXBfC7e$lf`^5;~VZXh4_mxZVnB83WB=Du?fg z&kyTKIE9#qoO(?sZoL{dTCMLc#mV z+Ig6ctFr@?`W&Vv-#%T2xmawdpcE!D8=bim`s$02Br=Sd{(QKw)61#rXJj zx(qp-5lXaln<2xxS}PcP&yeA@BB6UdQv}b>O511(@s&z$gPQ$wk7^`tm18W z;Scp(v#(nq>HOilMDz#$L)iL$I7uz^G+v?Co=n7`IsA|njF(R706pi5>bXo&kduj) ztSKGfu7|B)xoS!Wu>8XcmYgXaU@ZO^F{J}6{s%VIkeM>stbb3EW$#QG_F^G2VJ$OVn?xo|cnoW!XZ?d~ zJ;4-f-^=b^&z0^I=G}~yD0VW23A=AdqS!fq3&&2iSBO%}6v5Qk32_~coq1a@cAy1@ zVm&uNu3uD_Y6w=|%CIfxiS!Jndf2*f*qK`q_OFIHx7V-G^0t6EUL6n|bT04|xxg=5 z)sgNgYGp7L!P7~&H$HG1_he5~MsS-|SQ>^4+w2gQwr)Qcfv^|OuXIBW%MmP#lILZT z=hy94z)9-MNjOU#^e5#ES=BMFC=+y8}8S_r%8s@3DT%!J)ZIB8k_ zxE0cJhMR%cm>*NB=?Pp~Q!4BwZ5>arwtESC?GvaKc~-^850}xH$>~4p+1WNGlj&29w_p-%-}Q|3f#v z)}8?$GV0-Sfr>72JjpWNo&o#+&kDvF_#>i>2>=FI{Pql(^^_IbUvJL|(PMgORRXLdy@n}`Vu3BcqsE*In2ceb`(ykXqVJ zy{*L$EzO`jV+Az)Z7tC7kK$FavnU8~TMO*r&OD>G#BD9Gi-Y7(X39{{4PM=%eex_B zz|ww}4Ea0I0Fh#iRpxW6XRruQ+z>8`AE1VqZ{DHus%fz_1s{Ow;(+@}%HMWa1?QYx z;c5@Hu)r)ChCFKpA;LKuo*x^kV=3-m6edk;+SU6h>F>xt{R|gM=RzhYoTez7|Ev`t zT}|%Qko^l~@1$%sd0a#G@04wL4r{B)r48AOTi_s*i`h|zq%~_Tmpyi)Ds=*`S&ex+ z(%=Qo+s_npb|ir@W0nk=T>g2cxQ$VoI(C)}RnJ)=b@D73Ucw)Rvt&5=oE2#IQs%;o zm|~^b?ZxJ+5x16Z=ZpuLVu3>1z^vjFea=TH5Hx&~G{S#f;-2AHTr)#RsAplykE7u8 zj?z;}X2{%W6(1kPiy1q^K8%Tb$rWgK*H}1U3 zWWx~id!DIgLv=%`G11lPfdJHTz0o&?$t@PQpS~dE7FXsvwO8QHrexZy8mSr(x2Oiz z@fOua{DE6kpVa-i5@fvs=Kd2?w%!M1J=2Rq3UQV5q7{;Hlgpp>dR1A4xcZMw zHCAHd%$Po1hRvM!0#m^X_u2f!s#QdIjrHR5Ncd2L(<>f2j4Con2?Xjpgf1-7+%YZLb(%4}_}~jS`sa^o_;mS4fDnXU|3hp&;%u7ZupK_rv2+3J3Av zfu@K#QV`14Y0`Loohnh0A`nWQ4$*{dBRLe7IUI^#%?Tgb*o^PwyNi z1)^LTca=*N50-1-*e;S|p}iPO5Jn@xM`ogDN3`ZR7S$S}lvdz$Q~|y_HQMQR3dK_+ z#c%mR zghHWE>qrouG160aX#S{ha$^UqWg|vnO2qJ``2F-ajGwl>iy_&N(N;XYhpQbavN-C` z{b#Zvucau7_cxyT20MA?Q+udWxNPPu3)-C)m3eViZO_lYH|lAi71|YR1q7Nx`f!U(pB}pjqSisrMC40%*0jpi!Z5D+L@MCX5cNGndos~ zS^%>!@oz6%A-x9!OkqlUjn`p0|I0YdjF2F+n^f)cP`EL{Lp~|rUpagk*|FT&7 zm!MF6UQvZAK?d|Zy1M1EZ=~3Aap7jnv#+Q-F3&9$xZm9(C@%24wBge6Ro-yf8BwI2 zw&Akz)vyhhD_-Lbmx9-a$g%eetDxcwgMO*9z_Nt^v@d z_>8?+c}Yly`?%6WOtJD#36c*&2RJrbJeXf6C2#0-A!Lsc&w>1&0%Aknx?C`x!W8Si zE*O8bml@C47shzYJ}W@-6CoLVV+8mcl4Vy&hO&21B5a<0jCPbMqP``X=bCr9dA#pp z=?_CPoaR!AD}*dqdY2^RyN1)IF~z*yLcR@%gtt>VzZWK->pfMzZ7kp0LcXitM~*1p zdyMuSQ$*b>H)=U@&L`K1f$OzkYX_ZjvVW!CF zOCkPw``NsA?hh0H>-{P_AEW+Tpl<&NQPE%-)dICEQ$+nw*!}*94gz~iC}5}l&t0On z&bd#Kb6@|ll}_58BIkVZV=J8J0qGP)BYXKN;pJ)D#^P;EzaN&;UFNBupv-95)N#TR zzX@wj`;@J@9DkrSU-%TYK--+ZM##~NDQdAafqedg18kd`17WuL-~d)epYP9=Mlr?8 zwVQ6o2Hs{S}ih5-LWj)MEFEhogPWrhZH9G#u9U=}jUfM8` z#AMFvMRUkyx>bOdIYe>bl9&qUmZy~OaM?>HDivY^A6XeQM-=-9`-`ZqZvL;;9ZEO7 zar&y8MQgcqjt4UvV>{UEb}JsiS-13{%73~oLnUzArO{m(E%#40WvI+w@5xXxo^&>B z$uvw&DSxQnuO1DDWJ7l2({HsTk4VXe9DO;s2O1`%PHzvVw=C#%LE82~Z6Jf)se0VG zOh&n;K?4!Kse+U-82cuqG?W|S3>4Y@xPqwbBqr6qBdtJ!mwq>BFJ(BF6O{O>1W5a4 zXd4JIvu)=lx!dQ0q;utvHMGL#^#^g%N~be$rtAQ~2?{=;@9)_fVgPd~CH5lqwIWme zcAro2^Bh!?+PMMto6OC|;|W)j09jjp@rghh=U}X1Gfd4Ej@|&o@C+NH&ZEhOqrLWG zh8dy+iV!LYbdoHF=E&^kRssQgi84WPxRjzGw}_nO^Ey32g&Nxpu|i*s@gfQo@; zK(BhVp9$KP12~go@_$WG0?x_}G$6;QwBq;YddkriCQTe>#eu+!z8Qo4BM@|G^m>|e z?hPYwCVA%j>BL?PqG*1J&RwR6-i191t&OKaV}~2(puINqf^vZO-)Tc!BzR0p7jB4DE{XoEjpw3;2tGe#L;THq#W%Hi*sb)C8P-C79RHt1=F@ z)n9gvK77lgc>RYM(@>`vB;Z#b@QXdQ7ko+*TI#^%F?AOaSVNSc;&KcTPS_H9dA$51egk5)Q&w3`$Zn zBtwL}Aa?%E1c}tD30BHgcaEEGXo6_AK7k zh-Pay<>OYgiF3tyF`;;r`799Lk5c@+QBdNg zRc);67i|wh1Cz6yfw5i>PiIioA^>YC%IFvS6j^ye|3ok5oXegER}%ARzR050(m2Ox zXMlQ_a)6&wVp`p1cEhv9ym2Da{+LUlZB|KY=L!HEbE3q5;w>ynqjHU*RV9iQ#8->` z8BF+8E3=#1?$b*}ilR*J0Kg-2|3ap4u&B9jZh-f45zq^<&ZQ$fxkL%_ESf?DF;%B- z2sg!3M9)MtdiOrBEQo_p*bRI%8Xi~piyQx3HSA73R{izH*ajJwy+|qbx{4M5Q1#ut z`i~9Zt_;AAc`@1jPe9`cC_af2KLPm-^zj3vn;P+h8&>9W#ThdE<16tKRkvb|llP1* zqgQvuPsG7?f3eeJcR7Q!xf&-iM>##T-5V#k5%$2y{BdLB-0J@WNW3!`XDLV619^TW zpx`rK@oV-G_JD9syK9tEIp6D#XLIESv_3SBBIgEh4==8O_+4@(zM88ukvMrieT6EH zI*+mYMk(=(^f7jyHZ_Tp&Liyl=}DYGbrYWWB5L0ah+``a_IiSLr^o3j8Rt>Fbl);g zLN_4u+&_*|qb1@97k>firY)^*;@6Q9rh57&47U)MoVcLC$Bx8JSoKNLq=v@`Fms@b zYWe~2!OR#|34SHub(JfAeAXgsnA1}{%;{1FRp!})r6`IY;1$0a+WGLB?)5hZ8}Cp1 zoxY&gKZw2#qvt@cl!aL>Vp@8INk2g;aR!2lA2m4VdwCA0ODR?YMOm5M=)RZuiY5x? zC`tNn>!swaADQV1vJ4gESvhgc`4j2@+sTv-HNzT*dFOi&siEA8rDE zMqDQuZqEEXu{jNmW1$W(hVYGO;;iA?B0WBM`EkaheiXm(hr#&o|`yR+Yf=8fLw z(CuYuI~;gpJ%zq!BjGLJcHX%_Pj;K#pj^@4jI<=iCvUX9wEUnwsK{CTbPw(uQsV^x z1hNy>N-^#oMq=w8K#IhV!Q0&YsZ{Ei#wznk%pky*6*2WoVKDmstvNW+{m{9i6)Qo% z-BXMm1;vdg=DWHM{9qPZc9_?X>lg09(Lgx1;9K0=;bRrz7*NblM@2SggtEd>VrWPW zkNa8eQL-rDruuXwaHMlL`8hS(d~Eg|2W{m_y-@6T3nHI9v`T5YVnBtSq7h0D0>kLm|y*vAL zh9mX#{Pv&hR)_Blv$Qx*X=vba4#;7-TC7#&LuOK21t8nJJ_Wjdu0G+NeL^+?q<_K{ zzF}%opcfW=_j7tp**JVo9IGQFB!;s5ZL z{0jdEIcqD^_5eVy@NbgR*k6rvKnAP%AEx}cFRI%gCH(kHRo(tCU4!cG;DT>3H7PIv z3oiLLDwije8;I)m_zF|1Map0-vl&xJ-9=pcE~cpN5K?!_e^}j{Ijf3k^VAi$)5bXf z)`@ogJ5x>JVt|p@qRakcg|;4mkvLKPa5P-oX+ru39bwtQS(vVJg*F7A=<{`5Tq}bYgG3 zb-4^(xy(?e$ZMd$q3B(+8P>wMEa(loeY1P^0mo#s89xM*-iiTdGewjVe5&k*!}!7(mEUK&Y$x(PgW0hM z3{9wb{F>Ygz35(H0qcE&>MY?wK4*`p4d+3rAblrS*u@kD_F>76-=W%hthOIZ5B?r? zxP?nT&J=5uqoL|3TLrq1CBW9-*r4sfOlgoXB;Z<(+m9ftpCh18-A>2N*%aBWD3Ek9bpxc%OA_?l}S zXNtAfN|v|oO^45aL}=H&>F_gW{>Bswt&=P_-J1^WPhe~}!OZML;~WrT%^$9fvhOkp z4LtmWYT#uO&a)w{o-JHO7Cv+$%)(beRhWg}Wc*Q#j}~4nEIjihTlg(5lgwpML$>gV zlV}FC@Fkq70%0Mx@bXh^;X3?*7XI-RTevIN>d6#qv4y+*gwSYV8)x=siiOq*3s1vB z&9HFTpkBxLOCN}`^*v<(iX>_%iJ8yP09_DKqw`4<<0Ujg+ zz|X1y9+Yf2(5Dr!0XC8Wmi-)NfNa07fHJSK|v9@j}KpR|K zE<0m|woVT~n~iBEcwQ5w&24y&Mx1VLL$g$q4^nXrZ2ARHF_Yy2a2_sI^MA1dB$us_ z0rJg&4BA^>S|P(Nm>xs3{)IB?`n;BP`S~A0H@!|5pia;HBF=bTfa0G0MYXP&Y^UYq zo5AFOORIaDVc4%YGF4*=9`wvaMORYVK1_2!cPw?{S1Y6yOvGyVg|}>k9sipZ(vD#o zR_u!vm;8oa48~n6WcV-3c$_I3r2`nvD`kL(gxD>aVpbPR?n)WHMF8W3l`^Doo|!3@ z=?cl1l`~10INNgPN*ONs9s8MYJze2dE_&_50v@Y$v~=}$g}mRbKue6zBZ~9^fT`_q zi2?0#eSsgJyLY7w8yMmdrU=#3^5IGu?$_8|&c?r&DVFI??A}$`<#3i-M6hEQpPinc7`NIXw4MMjEco}_(B4*7ahuk5aYc1NQ9}10cPQ#a2wb#=(9nZ zMdwGv%kISQw4BLiFnQ;~b(obR+3=;&*WobUU$Oxh-yDz*Eg3kQDGFTF{?LGQR6FsU zXXoK!^GhD<8MFI8RpF%=yeJ%Uw6_TF4d*aa`^QvB6j*AD_9#VrJSf@Vyi$7rq*7Em z?03Voy;mQYf5RIoAl0N*vyGfsymJECh^FOJ6Ks&amHEBTw6%9Gh>s5dr2qR-A;hzr z1vNSO^8?Rg)r&Y)%XJjPP4u0>iwrg}Io!o?D~;<98PLa!{*CGIwaSK(QMvh+s*UN8 zl4yhWYd2D}ocp-jm<_pcGT4HPm~s%Bx}fnYN*ATThC~~f+{I9dcKsmHCPbXV<=sqC z#LD)!qGTj!za$%2P|!P)P_1*9wM1#?BZjHlbP!@TzcQ6-&ZqGZJBJJL2;GZGY5-h_ zQ4VSK*q{|oxCqbem9?+|BxhF1kTJy!SoLCyr%Hysm>z?0;)pHo&T9QwgN(36w14ha zLG?0ThBC@6Z5)`Fk&Gq`vuI7K?i&Va3j(eu++D1kC46?APYA{uSr&=&qATWG~el0@FSKzp1eH;b|jNT zeK5_>Qn2U2G99-Ge!ZAtnVwXpI>iQ-lzyGzBP^V3 z>DL)jr;66Q+A_XhXK2+bHrLV}@1$0f8_svuvevmz32D@}a{zeoq-K6A8>Hn;#rN&o zT~LmPHP^PXfvFJ6@CCi6THBy?x!o1^Y1ncxtfbXpH8fNO8mf&M4dwU49TJW#)n){q zX2zF9hv;n_#fMe zJB(20BCVZwG1IHwSuWsBjyBYv|9%)W>?El%X$A`s+LJ-oQ>5o)N$TkrfQk< z(R*Vv9H<|f{>4s{{wApVDfqtuV4^>%PU5kp>sQ%c-vDh&90y` zYU;+s5+#U&!H6|^W_S`)96`8j;ht9T8(rW~6o4*Q++>0|?Q!4^Kqq|0e_wm-yrt{0xv=T$NdDkd`_F&IvNHj~#;--XQcu zz8|JhM-WSt{H28{fUkl&wr`i0!|m(?@Zu_|Rl4edUTS8|IzF_{wdpo6IXw<9_)vp+ z=`jY;xk=dva#%X^tKm`>Fd*y9nj(b-oQu z0e=yRUWB4Az?9-ZkWxx8j* zo+%LKSeCDp;r9z|K+DUX7ukT;vv)GoJxo&pV5lW&r3}Rv{g1rsO32{$I>}Ux;zEEK zI9lFwk&WKvGy^T%`eKY|YO@)5UV6aAs_Ri%oG|qSX-2pk&cx=tRq10x>fM@@bjfxefii{no8z(HJd090f{=@GFsy@3yqIu2UeQk?PaicnKr~!N=L%P(5_ZN;ygrB2i_AhxK-2M77D7ZTL@sq5bNJjgqRhZ z`dz%3j~_?_>r;s)Na|z*oY`8jvBz|>0r#0!I=wHZ3D#S>Y460eir~W`i>ib=;qrJs z*zipluj7Ry2z}8PI$nl@ZV>w6g%2-qrkjKHKf8=O&*d!oI;Q9yeaSlpU9Nh^KDJ&z zYS&elbGv?gxlMS-lU%ossjgi!I#U~F2T&jG!@jI_%LF`;wHF) z(>=A)FoA*$c85Ou1T)nw@S&DUoM3e5s`gElq28i_vw?q`x_I$8!-8*~Z3WA_+Q8I> zp8~;+dbmDoq8Z-DWbLIm3&+)@z{Qy{bzpxeJ301Mki(K!z8kIqjrm*XVXop#8xQ*8 z`cb@g0Bn)apATkg{=7vJlK@TNCnc1)vmB}0773MeW4d=PY^7=R6L{q)hNoz+<_um1 z+_07II5@i5z*Ovp$LT8RZ#GE2VU-Md>;hXQ%hRi5*!wpdSn5{EkkH)*sc)^4p%4Ce zca;q9ceeo;vChY=?{`cw8Xgz*TVBES`(DBI-S`9RzjpVdIiIOpxYKX1${ zA;gV%@B2ao)g21~)=Ah+J=8;VQ|qWJ7ErFbh8v0_z&6iW=y@SBeIzq6WIYj~F;@BkaN}M={(@VfZ^#Y{1wprQKE-Rb*e*A%^_SoWSzg`exyM4Al+momXO8X z$17p6C1kOS`l=RNLVG_tzrCG|RMa=pNK42_|HO3fTz*gTalCRA!!k0`<^6EO7M7Bc zs{65#^4LgAg^{kfhK*Ek4I60<{y-yT_m8KMdO|%LXX-~`M&jXSAr3c1{Ug;}h&}S% znCvKqML2Z5+202AU9PJcXE;-gvKuV3kDL!ZuC+n?k|VeS6t`ZiXI4)rU{2pMSnCIhj&(mNRW?W)`S#Pu zw+Ry*SQxeZevmfu?bnZd`}HH={sselLXmz11{S3=3Xq~!YHs*-ypvE|?h!amaLi{Yf#KGLh_ z2-a&TGn&j4_1Y)&3XO>VL=`I>Y|$kn!gz9wCA zb5&iw7P`=*4F?#to+%3ajReMbE4spAPD^2qBF|!~>DcKx^uKO z7nO{m_3&l79`&8Dq-OzhQ$7#Zvk>4gx#<_EnGdgUBCvm?(E2cG-C>lb^c?*2wViSnT`Iv;}P1 zUt=<#c%Vh^`#Eg2JDBR?cxeK9!AE0-7c5Oc^RybLHoACIz0he(<6x|{hXv#0yygTWeqz=P@QnF zoe89xqn{q|_!%6aKQ1{N?*e zs=tT=U~fW18)UjWa^RT9&Nhzd}+~!a{(}WYwjUZGiG_CVA7RV6&OD@2=?#I+<0zyjD)YB5|i-Z{wAakvD9yT8zudAl784!A^moe{!_dX zPPd($?#gMJ(`{#`qwlzi;w<-e_P|B{ULbAPl=v4Zas4!Y;No%0_1ML;;lURg&(O88$F}cc%=in86mN*ay9qV7dG*8IH`rt*EWZy%w*Ig%M z-$Sxbnr(x&_>chXNx;Vhw&1l0g*_AsCueJ+uty&XqB?7_M;{7%G?n&}O4k%{DD0z* z4Fxf2h`YU{o^Br^hjr_HJX}Y-;qX}kZrd2`IOPcfe3pRw5L4``@jpw@?L+W|3H3if z>OW(*LHc71FEKoBOB_tV2SKDl8>GL<+4H{_+<9B#5FuY#7^CwwqF)y7b6g2I%)W-H z+LAtiGc>O&Ekq^p3g>m}3soJ@kevaSW51C4dkSee_6s$~B}Kd(o5{E(OflYmNuW&$ zR}pG)?h*7yO7w*^m#rMzMcB^v&JB=@@+6C79=b$qK> zbH*R_&iJF|e?39^k=4gmJx#6pTd|F-ae}NdL}3H`%Ce>WAY?-WoDc@sqTnnYcPMIk zGH^11b|}tw@D9an2k%g%a_tPJ76A30@iPuIV;t<*3+mZ^kDL&)>g@PE+3|=&*ztR^ z#rMU9*9I6a|`!6%#yR~Xl}q~c(wQ1LLSSdLdh#lxiHPN%BkVH%Oh0gjMX$DE|q z5z=bF9Mft%K(7-XOB}>zhDHb{^#;6l>c#N7pm&Yiz@cFvJJVre* z7wr^-p|nAnZi^N$;%iJ*Z}0)!Y-nRKLra%1&dml4o4$A@jB~RAR~n05s&Q^M;L=O1 z0dHWm5K~lci6Is#bt5UsSRUc)4<=j*+)lsGcx+<#;ur_-?J;SgA5V@kgGHQe!2lvB)ce zZzZX5r%&s|RvK^(^C>1c09KM-=6PBtw$h+m(X2G+Rx~R~5z#IwKMA&Grr0j44PqB! z9H&iWig{}cVi!V9n-`WxyAaNK*uUW}M0Sx_?A#TTiF6GO1#FePpM{vJGZq5WkacS2 zi4|Ur0hj)!09r>~D%2QoDO`zZqN!`Bsp|r2Qws=g>Kb7cYU=ywcgvu7Dkyq+cb`GG zG7hnp_ZetqTvrsfGOl3_HZi>r09VE_gs0wRpnwgL^lOws9wdV-3krigNCp{Iu1>)o zG~g8M8@v`{;Dh8o7tPlk=0Ux~Jg9e=2gw|`1l~v?J$8QMtKLTq!Ys7vebmsf>V;zA z2#*?Q)q9wgIK?#fRWD8oc%O=1m93k=Ww2#-{T^;1oWMP0zzN(V^RX)k0z75F3EXKk z0WHCvGUz67e33qz@hzIDE9{+5RH(kbhuhE*guSG8*UFgZ%8gr`B(vs)Y~WRg(KTl+=M&X!`H*N_3d7lH8pZs&crUFt$#-4@kU+77CaCfW+I6S3?x%10Pa(F!sAkhD4SljVTU$9~vMTH-mGyBm3Au z8^A*r@dj|HIBWxW{-PM;UW|EBrm15QE--|frV!vD`QJYm3I97thI;fyVW@*-sDpSV z40VtU)j6aZN>pb5JIMYQfJ0;`cZk>2^_1~ZNN2Z05q3Ky?3PwnYz9-nxd6VTgliY$ zq!x{Nj5UA+p#d86P)ySS9{!?ilfgEbog|P|ws&^*6Sg zgt3m2v0OK4{moJCZ)hv{DEBuw0hErCL2w*APHMh>6Kw?_Cw3igrkVdq10G?!dWj8; z7j8<2O)TZVn4_PJE@HZuf2h2^0G`CMHP|RY=w1jFu zvQ%yOg-Npj0AP92|FibpaZw)I`$q)@6~w|~4_@OnCMNMFrobk-q}=r6nr3=}B$AjI zU8C9b1Ph806%`a4Vvija1;v8Fij83J*t=qn4S%2WoHH-)x_UoZeqa9?=bd?H&htFy zoSAp_-9^k`;NARu+4ppA_k)M(6t0M#tt3Ml#a%>wfUH{22&(a!{JsQfja&6&I^1YB(+oNkq5~g>d;g zfcH*+q@QeQWoekAEaYg(stoocd_YE@i5MgO0{IiMsL$jvpbiD_=VhYjIs$!>!tr(*5(6>=P z(RV!b?awu%<#=d$j4w%o9q-3armg#1DRsP`?OAlZpY2(6JOtzjoCH~V_eV;dggFoN zzx8v*bQJ~98PomnoWcKh(HuW~X(Nz7YKv1rru*Tc~1X^5k6`Qo4wd))| zl7#%ZXgS9(bYn_0sxW{9=wJ z0RF#!fX(3-+~n{JKqNU@ea=6sLyO?yuMCW!usEGOSxY?YF2>j+1~Nn}*-fNQKmG*swL$hz zg;oM@B43l;&PqQ{B^w4A_M`**SU$Q|Ovd*aJ9nW~e*9;A+9XGiBZJv$N2}4}AbRk| zQ0h@B5#*qD;ByW5?3Kc3k*ePb7E{}4$(*c}$UMotkg8j?6OUResrrqg6&<|O>_%He|L<0+&0lauxKkbc*HOU2 zw4+UsZtXChm8FyV2}2qQlax6unevGBx998qAc&WEMUy2YXC6f=RA&5t4shQjd zQoR$ja2l>$9@Elr$^hL&SHNQbbQ1zslnidBtH7V19zkKx>Ft?X2DPJWe!O3Pbu_cZ z&MEZ;qa!Hn2km9`{)(={Gb@aVps@6tTiI1hF!AeS*j0VO%{dnzc)roT-6x8f9Kz-W zEpNiy*Pkm3OTeOD^!yv=*-+5M+ zLFz9}iXcY;_xOs2Lxw?~N6^bCu+o{@Bz$ zTvtFpsip6!kWZXTDYc!W=PI8w?~o}>4DdPna(_NY?>e0i61osA_vc6Lg6YP&m;2k! z(Y1n)%vXT!2WCW2*u4#8*h^aSvHD7XK34yMn_tk&R1<4A9-GI)6n296Xod(|PFswCh0%S9{iI zY3zz2+5y)doFNZoJ7DFXToX6m0XO!WDQ540*^kV$oO*|G>aSZ+xgF}qI8xuCi1-DE zolxtGnGrbf-3fprXa3&-e1M7+*hh^#iH{-L3V2-y zy$P8EWN(I{zt8r`P|ww!a@C;u|L`Q&MRX8`U1C%8+gxw*XVG*J)83tFU+fRUs-H5A zl~U(ScNi^snK&~$r=H9q=G^6zj>DIefywN5#j~-s@WO zs(#2{j!5b$h9+8a+fjdp`+EAbgL+&j-keeq4y7c2E~Lj5^VKS=NJ-ZEU!eqX0i~-l1WRDNi+F^IqxcgY=;+E>9j=CDIS+fG@bH3y<7>T z;b7@jk@w7REWGuJRi95$iqg=3LaTqU}UW$?jDVi+{T&0xVJfR>vzv`1Ey2Y}9$2GD;j z(a;`+hUS0RI7qvRgESil_o}gvYsnm>`NV-&D1n4<1%Fp_FA}DJgn@qu2~$AAH+h`> z@TTRIioBm*&lh5erht|5ORdP6Qc-u;yb+mFQ8v`rh)e-;ewBMhMgBzX!=*~eOf-yJ zsvofRQqu-#$&hDM#0PAZmzfXPTB-NX@rjEzo%M*Eq7?UGEsYbniRM-0-;8-}nbCD# zMSfT%M}`ZF+ITuk4 z4n+5I@yQw-hm*J>E?I-aaOd&}{>8Z;+ETe1oS`US7k?tDLsig{2dpVyJS=tvqgu=N z(1Nv5I^-%XjkPgEwK<-utq@nL&8A=AN-R-rHvO)Z)utw+tcL+_ikhC57&|ir?@`Mg2?_I zlDD`?AJgizPvXqYP+EhhP^+hc<`e=#p;$j|DE7vXjauPGZ$b&T))TVbPy1Cj)4;!r zGp8E3frepx#&gqk(F_H$t8et@gKt1HeqIgpomB1X)eZcgX-;zkoIt{7s0rp1{F@$! z95jO(Pusa=;zD|3cm3~a4?hn-<>n0YG zc5z?a<9Q(zQ6F4WnB~FRgHroDIQo&ZSX)j-Ia5g*_CjYyZ9r6>pDZ+c?D^*b*f#Q||-O zeH(|yH_Zy4+|FMJkUas>5ddjZ!fNvUpJ!+UneVW9W{`6qC_r@=kdsMiFf(`%{G*JE zrs19QvuA6}AVa^pNs|fKk(J&WzTq$DM<%G8$l(<3HLkP-_Qq#<9Zr`Ce63Rfsr*}L zO_EXh4eGS#Gc-GLU%02UeZfD`)i0o@u#8S~Eieuu-uV9z`5=Y6JHQF}FxYFh`?r3M z+9=#K7iHB0Z%dd<>J!*&G2(j176YD_%=RxaM9Jo6muXhA!kX{3;j(nVHR%o*b8BLc z);4CXQwLo^<$rG&lb3DUrMtSS>(~8kOUw9t(cNQ^YlL1vzf#C$LgOn$YnZ;6O%qq} zf_`)*+H0N$rdHSbz}aV_ouo#SEZ(A)gzL6KUG16FPyTsxCk={8m87-43lrprrT89~ zn5jI7sag$UFp1m29Mi1fOt0EuCBG?#4@{!#_s@dxPvA#AYhezuLEKM&OKvf+8rP=$ z8HFXU6&T|_Rs_M#jhp_CK;L_Tku9?+Ah=5&?tUt)CwO_1CD26+IiEbNyXx|JYAq~G77sry!}Zy`Bb0d`>j@_BqNwwDSRa2Q4qPS zE3>nB8R&iYIJwpL_UWUu^)Hp$W52R=$VZ8Kty}K&e?Kmj3hRmTW7_HJt)El zRv_7h!YYUs4#0ag2IY%-NRfdUmJJl?bmNlyb8Ja+;RNHk8<)IN1Pysh#8SxP>*u+= z8@3*P4)Y2{NM)k8Q6Bp0$oM57fA)+YP852cxs!RFQyzpuOykfSUzVn<;{r!)qbNq^ z+-pVC6P-Ehfp&@ej)JKDHi^9yc2DOKZn+K#MKS^P&wF7DrT= zL^B(PZVEgSKXyB3NX4d(gOE;#$3`vbEtc}dP`wo^k~4=c#EZ6yp3X9CbtOU}Ws3K3 zNQGc!oLhbzXx=W!8iPkCgbxmLnn(cC1nzU%r2iRr$&Ab={|i6Gu&z(NVgyxzV}+Ua zuLXLNdNpc$5#LDb35SifHx?I~3H{fL`HwFw_D*xwl5mbd^QFA&zF)1_E}4i@4aVlT z*^JtB!~`BoL2Z>y{=m?j#ZF;#CdArdB-U)FNKR|5&-Kr72s0Vv`VWS3{~XNSH9pef z)l)`)n}YK=t7~;ni#EiM$7yxXoO8Py*(vpMK@T}(k`Jg3BtGb?gNa1 z3veImD8BKA%?`uAuA6aLvSU9_rszvi|7#(Qvrpy=j4?0ky7U_svc6msWh zN#@^tawU1N4vK7Qb_!(tUz33!W9Z?rH#|?lvQ0M~1}_kw_} zrXZ=Xqt?vU&gQ9?H&VXWZ)j8R_HRVU@AB(PY>AjC-7d8a#c>kTcms0FT3MsjfU#kf zwg#4-WGv0l{-w=i$yF}+mZe*a@cO@D^(CP36vK$?hJQLNqwrfsR`kgyrFjpdA3z4x z0Q`KE+G7|q?hsCVxNebYQcJ2a`1C$Qh&R|U+IZMwz84qRbhWza-U*qTPPiE{+uM$ZpX1dvs+N+JsM$Q$s(60(_ zhwlK&m%Dtp3zPendrgJ6Cj5}9+KH%TgnSwZm!7aH(zWFDSdm?vd%Gy;q81Xub7;2P zUdlC!=!#0F87~dj7xDM~CsLHVf?!nzJ$k4qaP$qrm~R|DxQUBr6F}2_YV@b+aqOP0 zdMKEU1xkLh{;`SIXK6KhF}E?_ZULVJTSZz3GEy%yvWHBV3^J0o+*D~;r<;n2s~Htr z#kTdR7IzqQepIl@Db`XOVTX7n{I8%9+}7%2M#lN0>ss4rGm<|VdrMj=7f?YNg1cB) z4W*7U*W9ymT$|c6lRpuNB-bI?^hb&`InoTFC$pJ@1=Ux_1fhq?GsTi*3|D+^Q2+N7 zE=Z9dbzr9Y-9h!VKT`F9PH`Z7!0~&UIJzhRt*NkF$xplVutaon?l;s`th9ytZq%SeHT`pO}Is4Sv@*7R*zYM}v5=vA%d>kP)qUlW~2 zO#)V9&B0NK5vT%ie?+k4h3#eJi3h@D|HMT(Fu@>}76B=+ z=Gv8^$C;(dMP32VAr`4Tb=-OkU<5^`s7q%kfb~PR55>4gyTLpn>Or2E#Jiukt~2ln z_=Nli`-H_v36n>}E|ZvFS_7rO@ZeEv;?F_6bbt;(eAHjS1U zX@)T)!ip-W(*H80g(j#X7zZ0&1yT27`1bhp^$W>Zxx_k}ggWmq&SVMCoePULp_UJ` zny+P;GT4fbf^lH+V_zfVWXBj1b@LJFwn50RqrX|LK*-M{&%Wpp23BsHolS>=y)qS} zf-2h_97M*t3M6+%J$E4i)aC{@Zu1ZVr5h0N?@L_rXF;~W!k&y^6I$3^8wK2?42Sk1 zMZvm^fLE79k-C}7TDDE;=BW#=7sJ}&_d*}dfdyDCt$&@mmi@f*i(#U#sKUxIVVJpY zdAJ~c8H_gN$FGDBP-n`y#24Y>~N#~%VN88-w8 zUM{bLq?8;8y054si|4@edEY9W;rk(^M$F^O+ z+-w$${+?hw`!-$FSA*k%#=VYhFhsPIcBw_|Ms#}(zIJc)18(XJ8h5}&&M+| zMV0of8t1|pf2xO1i~i&tZn`;kBj0iCGi-(F97`se@4_D0U0RFXw_>S5tySIT znbH}Xw22sDQO)gR;hlY+^xZaC5#*vn+2j0h)IYSL=ggs0O=$VLEV3?3*FOp7rR=4)Yk#35wg!6a6eoO$r7y8I^pO1tH9plsW|(y?K>*Tm395%{@A7vN|tMWnR!h zf6Wg}5>3Z0IK1gdmrWg>a5!mt<;Me0f)1kCs~C zEX1(wY}vkS#cg+8ZJKSutrq&CIm3xO1y285ov(%x%AuWmqsR?Bi+154h*pd?F*k2= zK)I|Ov{hdA5qzq9r@1wJmC{N~>P5=8$25@|jGv^Ux|?Z7I>x z0-g-v=0*tWBj7jf<-a+%teqn?v3R?EPGx{?#v~%P69SDL6=@02^8Fjs145wIQQD6H zbOsZEbDWsD_!^@WaKDS}oGH_$CZO?I*xSc?T*q~UNFQCmP*4Q2#JGzgn2g>x zmGPH#mXX>I?Xz5!&Q$uxj&V{yJj@RGm}u>pe^I(&)Kvcy5)ATmcFFRQ<(M@!X#TU$ za?+L;Yr;YP5R1*z#Y09T?Bkw{v6E?Wp19cM=9tv8K4@3Lw6C%gA(YVEH*F9+IPuRm zivJ9TCQfNe=3;p$WM6sU1`FPSNRxsC!}*13vk_PbEobyX!F$s|ixV+r4N%9)cJa_s zav7A}(p=FSS76G9oTwD^fVc*B)Eq?pm{sc0ynstaV6x88S*^vj!{AlBc5*gh-2_5B zB4P=hl@uhS=Oe>*nmBV!ih6rJDalH7~};`5Oeg#}G*y@x^Vmp^N=WdJLhnrg2N zL~^F`%pVl=Ho$q%a+8sjBf2XqYe9UCe9Tsu-TrYj%V3EVd3i5N(CnkCpLOdkJTjJ;{Q`sQockB#)0 zfDpizJZ{J7#jOVOLZPH^iH>Fsd22RRr!CwDRq*T1vyR;~*j2eJ#FcvA(qkn{fL{FL-|QSm zPNbO!(KUjM4_yr#ZycJ0ThpT*6K~uzl&y%SJRAPOE!w@+N3AJKSO&@{aVv#}_vD|K zD4EeO7E(F3AA~2(E@sO{(ke&A)ZqDH%p|u9f&dQ;?UzPln7W!dA1rKd^~#2V_&X@w-&>-B_e^E zx#AJ$i$n81C#o5UhY_zqrE*UCZE6`xR`?8?&+uH@3h$jwEt5Ulf|EP)M=D7g!PI<2 zj$5ORv`;2-5kzQG^K&QVjx1JSH5>W3!0?Ol-&^UTCW6SVO+PVVCSeXQFJvq;gTI!VQ%kON6c%~j$7e>ukk4$3;qa1yoF$i@+INR9JvhdQ zYY&@DuH0y_(8-+mDL1m7m_18q^bOU3<-}qn^(ldMO_$I$dbKa{lxRqQDXjzP=e#%Jg0~&VP*Ymy4zFz3kjMV1i ziW`kXf&W1pm}Wz{K~9w@WV`t`stMN2CYW#0`QINr<8fpa4?s)qSf$V{LL%VF&#Hjy zi@nt;Jf@`ZtSybN#LIl>xB`m==W8P^qzIq>Sj)^dbX^a$bFf^`PYbcV)1d6vU&7{o zS3w!Q--DnQ4O=p8Up_q)7C?vVw^c(9e4)B+sVId?#OBPw-`xBQAEhUI$nmRyhT3lj zO=H_eRr?|&krE!i+m=sMiI_M+9WcTs2p16~q3^|xr?onsngu!0xT0E*}<(-Mpc9J%+( zyz7sR3SgqnC>^$K-;-v;n(H0d#y$5Zm*^IZ-tWbZLqnd-%si0_=_yw)(lGo^?;F3n zifSzIv-Y`xY#c2d%psJeG2~Mu)c9AbO1yX}`k3>C7xOy7sg+wtjF+u00OyWam?!g$ zWE?sQfF=^+)hE86F&c-2?Ms1;b6}E8tZM{P26jNsk zWz=N|Wmq}uQ%gK)8x=8Hd3CON1fr@9S(KEMi$fARowy;5Zsnx?1~YfI@t6%A8PF7nqE zliP?T&Y!z(iIsOkXc_2Z44maO0Kv^f66%W@P=mE@3j;Z5NfFgvP>zxd#bo?lb119q@9RNGh?6Xiqb+tE4H)$qTr} zeJZNSBcVfUrm-m-uGY#td{M`@FY1F2tNGqmu}GTGzl{0#`A*IZNW&9;Pv)UhBS2oLUlK^T8aV2lIJw!JjfJ6e*o1S=C6yCwW*Im42Fi(k)Xd0s8@!zQQFsbyXX z%Ul9AwbI*OQjfLq1DyLm1l2g`W){6ok&%i!`I(mdC$SAf#;11ur2!9kB42D10m;zJ zY0Z(eSl7F*1}2QHE@K;dFd0j9$t<>vqQw`a&IMm#THT3 z4PZ=Zmh03pfGxSOY0T~XF6tj5tsZohMy|GWA|?*Vl#LmMRYnxN4}KivVbgTE_!#co)cEqkH%7eJ`$w_NVgLnSPTmAO z3E{4sf1y;IZ$~ci9YPk!Jl=9#{78;&L8TF~MQ?-2%PImZlBy{l2+u~eAyo8XSks56 z#ic~%J2vOoo-jp_w=}AbRTyCAJ6GNH6c9$(2>wk(>Ky9uxR3bbDml zco|jdiRb4_czY?2KL{f@I$Ru~cdLNh+FslmKh8c=8M zVV9B9p1~*G9BVz#k^%ihPPu*`mCDl2C3v7FYyJ{Ra?@!sFGYGp7i5v%k79_q(Recy z<0T!$1($zhl4eEv*Q|xJG9S!iI`FCx2lZR!5=UqP`Fl805 zm{{~!*3(_suk*+kP7T#mNRnJokwW{;P~g-5fp?fgzrF@stgwVzl1TLG>F~HtwHTD@ zG6HJ5WKRhHT_Y$@L>2j|luuT1<}7ipu)jk`2F{CvW}rtMUYGxCuzG-y%t9pOkZEI= zGkD3%SZ=drHtx-V*SnrZ(HjFdUiqD zWE4lu7hZ54>j$ff>>B$F_6zKZA!3P@v&Wy4Ms%n{^q4V@r6*vZy(LrN}6f5XR) zlCwyi^$?D}pcK;4P>(LAff%5$E5h&aenS>j|*<5||YlKvNwC==wffG>b!{ zq@s~TBNhiRaygdE_6|yka;%k|TX6&fs#D@!ZFk?`f#%S)r1xfl@cNcU zaHQfOs?VpMro}JIwJR?A$Rsssl~OS0VV}i1uIA%RFTM}~0`#!oTq8viI(Ou%`{Wi2 zsAK43AQxZ4Ae7)YWHqomMj#Adf7=Q-s;<(sq*KbKlE7}F?@6euI;LJiQUq;q;Ylct za7ZK<+8ow`!^O*w;B-1$f9z=CSKhM#`piMRXk`r7-Qmy{#la@e#lbv8 z7AS3g?U=&0St5HHRRc5lC?5}U-;*3D*Nm|En5qH1-u+>h*Q`dc)%JurBhO#slmt>} z4VN6uGMC&X#q>NafnD^kd-Uu5%7=?8cWa2Y?q1Cp1nc?~q?>`??JD4>h(y_)8M&>H zS}0nBzR~t5hQdhA{@O;N!;%YB{vE0Yhw>YP04l)z6m;`J=9B8*!m(6K5@T;R?wsVPEftn5Hjap1N?%muIftwmbnhHa&yPH9B|l__f{ZE(%Fa?vz3 zn6pt;@2Zwv3!V+pxWDATN~-s?!ZjsSxWiW3cTx5j4{T*yY;f0rYComRfNRH*sPJcF zolD^4DHz0}zAX)Q`v!aJ>Gf5y;LPMv38m!)p5rX-;d??ae=cXi-btOcU`*Fwy`)dV z;dZsUs{3Y0@oo5oe)0PtkJ|bKl|~*rA)uJLDVDmJkLh)W5P_?H&a>OG=_0!&5ufQU z&h?2#?OJf zH<4Up>_rBy&sP;>P?r(pkQXB;lgRzH(!*PUAq%lHux^``EDk45khCXChFS3-O2#&r zs0;@Kp63#IyUo$!?%+EhiR@c@MP^E2Jo8Xwof!%Z85~-`s=t!>iKwa~&DKd~S;~k( zGzwG!x_jqp4*ZQ_Z>AZu9_yBo>*iS92PrU{k_pM!XIFPu@Hnx*NkZmB-0B!Rzv!bn z6PFz!?pKO>?>FId+5smlzux-SD-eI>Y{n=pF$evPSxAmq64}eXI)LG!UK9QMQs(f&n#61K7GxsrX4-V)YzUE26WW@m0Tfz9J>2b!xCT>ttF zB)B9ZN(J>zWz$ww%_M-o2SGeVkZf_-J#6RFXA>+Xa9bzHsJ1DpFVU{=F>n%TJ%;B3 z64U8MdD_Dngws8r*Btwd`#!R2!%1~RNT*jU4?#}zDF;+%y|;DboWPSuo^i-)1j4D` zZLU|VhX)$>EABJgzkPb*(SjDlu8tLl>UDB9n>&o;rICLd4mEZvj|99d`y>(#jHE+x zqVUyNDXFlf-4QI-Uv?b(*>wKNl?0~Jm$)8&i48~{D+yY#_Z6C_ zdgc)1O2^is_kZyODR#+}j+38%^-ysA=No?bOR)pv;43pr=OTF-kmWG{)JZ- z=3~r{A9%|9GVkPa=xZt1sHA39F`SlA=k3KLN)A19oy%(6Z73#1Y(Hpp0D&IqvM}DU z-PdQ=*N!G?BMmYgHQV|mw$Vlq_caNB9=Nzd8GAYd)=cGW*Vw=R9anUAbx%pnEt3@t zo)TFM(-k)Bd{YfDX_0Cr^Dv`yZKIu~kM9rQi*@xH%zMR)x54r9rQX6?XLBBZe%9!1 z&(Ha}pkRQR?3&BBAeVhaRzsf%QN5ehAFc$~W#D^)FMKqpEwVVW03(|(gbEYKZp?i0 zR%;a2`3U!XqY<`fTX&beYt65*Y_B*i)CQ^=bdmG2MaOQZZP?Avsjw?M2~+)Xc?2R}IN)FwV_s8lceY1;6hNcRK=UyziO)NJ)=#OKx1)tMjv(yj2^M4Gi!GwMJUVWT8PK z^Z81suqKxZ;#?US&;e2Q>?oa}0h_S4pBfZ`I2*oDLW|lH-k;2>5 zuiSRJI?;XEPu~evc~>WdEg|V1tJi0Eb`!mP6ioT{E_u%0S6gl z_nJ(sQsU-sWMA&iH5n&28ylUn=F0L^8KKR*WhfBmlG+R9~k8VKX$jlo!EWM*WMXgVwZBSviWPi253ZUGzDYHh)1`(oWt5MN6AP=wwe8A{3Pf4k{9||i zmPXhzRG$Jth_FU^+#01NdgR1^4D2CPgf-752$VPh_kwm-^qwb&e=|kzS;s_QiC)C% z(L9)=LUejOh-pPD1zoyl))Vo0F^p=FviDzH{9dB<`}VN@;0jB2qO zxVh+LN?}XSz4sPKlP-&B(i_>`;yYlARA6bzozcXz`&D~}BxWc?+yty?2iR9hwK^<= zY#YR0C=QpTkMkue*TQb#h-^_+``%3IbV{e_NqRKt!`;LlSiEZLFQIZBcDOGP2A zNX2odFvb0Cw_DsVqF-SmXMeBl5=cEdRH+c;Lua~_eGC08OUUoDHQ>0*B3&1lS9Kl3z{HYw$j8g&z&n1GBywTDGN%|~EC5r=?B7EW! zp%koFK@I!zI0G0|+&{)uEdGZ@MB4{V`|Y4H>hw~`I1EnSpt=>1*O98e$qIg3Zsam| zy~#Ge87ks6sjpO2l1sgGa)`Y9He6jGS2GV1`(TA)2Sd4pkyQ$cW)>CxTTBqkq$tGD zV8=L-p0{`{;I*ZE(TqfDEh14~@vU63NpeA%tQ{i!`@-(LH)iic|Al=d4+JFc^G{Nx zt6#E^YTRU#!5`-{xTy1HXMi-dcV`CC1VyPFMj?|Q_;5in{F!ep-sk`oy4?u7Z<^I79oEn0g#`$!vRnfb!)J^XxN^4Q&&!guV)eaAP1pWnz=LT<=? zoOqpF0>QV>FlP_u>IR$%Homp=$XCzLmy}JLXldZgJ|~H; zUKcYBXcPv=R4uvI8%rX@BeZv24T;K9Li%sZ~AJt z+6p8@$n#OXT*^-v-(NCh+PbcK1#bVY6h;HyU~ue!scawZ2g!=*DMz0#{%%oSvgcq^ zvu82UL!a*r)3wOe3NjFU$K`ZD6b2bEadW zrp>Y<4v5L0e%7%vyW_jI8fzp)rGfK~7ifC`Ui_?_PzULcVxZ$bgR%pvFIA3Eqr^{wlaGk zST}j&zKL@@+oh{^a>)5rQw@Vm3iM#%Vok_^!koV#1yUCW$EWV^^|6d=p&W= zzP7+QC}Ck~-8CVr2)6h@rB5F;GVW1JCuI0Xc`wa(qkLxbhF7aHNO*HFCe5-q%fJ|> z!ei|llKTUwuV+YpP`-0~Zwk*pw|g`%61z=j9#7r#Ym#`q<=#RlEThk?6t-h`x{mwf zQx^BaTUx~3UIu5jsK_1KeY}h91Y1}5}AdkO) zZbLG2WO?&C(ci2>0U7RAi0CN;t6rmUDr|byMuo=0ahE#?{Y}SJUKy8h^dK@bjsBX` z%MJJ~p8_pAunzNJH*ybncUwYj0)zLh94{J|araGr+BGE$3et`iV+}PfL2STILLcuf zc6F(2OxkEUxuSh2g4?1z@6IVNux6Y#6JFcrtx3jDGTp?JEqGqd9zAlY)BMnVO+2sB zhgCQoF%(fnF;R*sycUCveL$KpMY-=|K_YNy$@w4s%!Z=tUD3&SyA=k8+}DD{gP*VV zDuIA010>L&n!Do)#fCXnL&zBY`iQ-19$ShKR}8&YvB4xS0u!oLYE)pZ{5=K+f+4eN zR0`YrOlAPLtgrD)_kY>o1ke5>p*pNQlHOmHG7e2?=R^BGhw;9(L5Kr9UsXB2cf+iz z9K0uJ&II-*$1O?RUsndg9$8|9SSoz;3Hv;(@b+78(pyq?%xb|w!aqWM%PEDF-XC>t|RpQL;Hlay)Zgf*|^x^mV{_CV+If|fh_vsv8W)ujl*9@3s*n9%t?E^v_ z(R*2ww2OasNBme$om-)1oMl=&KSVOYXV-k}G-quZbGWruXBxo`aw@gP@q*65p> z;H2m=4=9`9EySeku0094#!#52&$sxiJo7ytc;a2-PjbHVXL&a*;+zY`&)xNV%0~1b zMXfro*L>b~z>_Lzs^{j)4oPTW_D5pR3CDffiJ}PkHN1?fe?ZC|CdO9XP=ko-(xLD- zSWzqd+?)R4JDh@DFuBLc(-~=LrJfl()G%2`2PA3(GWAy@VxxOUC(i(xi@F<4!P5lsTn>klu7E{pM8@R|i zDwJDes5>_o;=?`@+7y4Bwh5d9#j5V=5_;Qm&7~VgzJ|c1F{oBKbH%s{u@~j$nr6M- zy1r+ii~YUwK*)dvkR`u1uuYmT$f!rc5{I5Dn*=Whe!wE;I z_J{-xOM8-t?5-uOdQDzfJoeSW`D5By2X^+l>=*_>N-(@~*iYH^)lKkpD-9xAD<5lh z`@$w2vi!S&R$Q9J-g%7HPuDK;gCS0tPE5&VjEz97<5J(58gu>|7GGaYgIJpNt(*d- z*z0B%f-@2>aB_xkqIzejLH6(2yRlz4W3j$X2IufMz(#8>xFx8svU=kqH_>CgQf^Jn z9Q&;WOYQ$^8_l;*HRcZHi9Bl`-*mLav6<+lffU-0cO#W??l`2*DB6&4&_1Y`H37kO zx%8MdOGl$#x29<64vnHm%KQFK2vHv&jfr^eaLDPK=QjcOcK`}zu?oS$W+RdsbE6Od zy4aaKwA5FgE(>$)&8D#vnEQ^5>dSsJ%Ux$U)WUA)<-2b)zZFv1UpP;s9tv0&0sN5M z$4Y+yzE}O2BPE5(VFfF6t$X;dHpJS`krgnXbv(A5uze%_DKF^d-M=Za9U78ot<-DsvVRk|i;WRh%E`X>2u~AbGX17Pc+S zS%9Au>;rEHlMdY@>G_Sqw}>k(eoPf}9{o)83SJxi88EXn=`sg+xW-=hQ72cYV{xIWspzi#l zRVLddo15;*)iSwd*E}ylcCxNV=x*NV{emc5K@= zCe{QK+qP|MVsm0U6Ppv;wr!iIzyI9ydf$5bW_RzWYOktQweK)Jvt16#oZ~OZovM!IXpvL|=EBNFZw^R265lj> zlgyC_Ppkif96r+pS#1l7?}3|6;i~t=ncIG@%~{s zv!!bt@biF7H?K(H9Q;z0@H33(e~SCvjXA3JfG_solW8;9^)LgzzkedYy;|l4|MyDD zZS1Q!TW&*J8la^E^^P@?YzKtdY?$liJEXC;2bKtJH~9& zOD`%~2zgB>w~A=JK^P^6ET>E&*F@-gn``hAmBI*V6knit#ywc4GjS@Y{5CsbpdWcCV1C#=-K>cO*stCix?3LuKssJvXkh## zL6?bCL8nauyjZ0I*oFw-P$mJ65%!C;q2%WfkEK_=Vjg3P8dhdj>OA}As!y_>rlQo@gTAw%{a*XM;_v-iqx! zWmRx-#e$&fS3s)5J;{O$$FvwbQOS2QW65;bDO)S$fABsRlM0N(#rF)BPQYa`IK)ZC|I6Y?WPzc?LnbsOG+0$ARgVJgZ+5)uLq!kSgP;O(S zflg!6T>3T(f8DR~pl$gDc+@*_X6O|%9Fu<0Nn(`l^H9r~>n;|G_LNZQ zuK>sy`7g$~T&TGl$t5kvE=DFJdzt!;JHB`Y1@m@=)Nd}`X-PTQ9YId>|3wK&reyxi z@ZDLS6>HT_^iEjF# z*9-VD({jF1H%+IpY4WX=!ta#mJ1t$$9LYB_>_@!45%JP8GWU$LOrMOUiZAfnv z6#cm6uOG^TfA-HEsj1`}bhx_+nf!Ty^)W>s{w;V2`4*rh$M!X<#$5Yr?|f7)uOZ57 zXm5Lwt;LAvfv~}Toz!<+(DMlNsAw` z($~4FCj;<;uQC5q%OVAkl3o}#)yv5FFNaT^{Jcp9SSNGi=TlEBfw!f-cOGOgI6g~* zT;Uiv`NhpEzE^a`yX}_=0;9s*!vgg zzy;DBYP7jB%!nUhKg{J%&~;&pk&sFzohjiK8im7>Osd-iWLn!84MS#8ula5^OJ`2M z;1b~w04og&Br=r^GilT!WkMmOGqPa?N5ztzdCNxW1G__BcX>AnTFa`^OO}NvcXz_u z2R9RmU;Xm;~5;cTE=of`i@)dyaV!vatVb*P<6z zk)%!F34dJOy4A1l7bhy&a+-rLl?wEShBV^x!W;B5-3AO^Qv4rQJtmy%ttOtW6<40E zBUiIdKSUfRF=@h@xajALH`cIj+vfts;`ZfghWYfY(U1G_#z)We7r%e}Fws!H|Mdx2 z`1o#3=;+#0fS%@?7oyF6c7Y+n2;Am?D6XTQte%knF!%%1cUk#f7|P7E+P(>H^h3Wm zKz{zxmA_#T#c{~TfGnQM1*OeEUsIO)<*Ub1_?n@R07^@VnUPG|Zy_~W#-wd!5~`VJ z>Ybl&N@?-x(SNBdQ}IWF<=$aG9|3sasCkg0xnB%SP;xTJk)#C1 zr&Vrakb`YyZp1-YTotz(&FSpwy6`DEZ9)LjvfP6Hdu^X6v!t;=E~x~>**OIwkw%v+sJ)?$KK_RR1LA*JYwg3rV?M zm{V2DY5A|Lw*|LRmwzpmCA^d0yD?LO&F_G9rxx|Ys#zDYPA%!64KWumjqNqYvmB5{ zi0X)Tsyw?XxA9ZC9+$28?BIgZ=86KdSVtbH3b%RzNKr)VUk#6I!od2x%I6GL*bg9! z^a(O^HiT4Hk;mt%=t>6Yz|V?}yd5DXJd);Z)hXxcK`bn{Q7SNjS$)Xuk2p2(+=)q# zNC#y9Q#RCJUL8NZfWJ)aLtM1p1ukFz5%hgXPOrn`9<@A%1vpXFdhZhH;w}bH+D%{< z*te->X=&kz@@Ur+VfMvHQs55mcATVxM(V}6LqY4)QtWvR=v<^WE-=)NTnOz#=p;Ye z4rn2=zrc)m>#q;>9;pASz4%e>>f(ATvp|&cxMED6n5kOugaMPbR#oqAqX}$O19h3?Zo@gn00w2l+QO(gTh?S=@P1Zf!YPpf! zY#7<}=RX1)>Tf=9A$Wdj;(8Dxgk=a(OrZrn6CE|6mSs}uACEEz2*3A;B;wdGqYq&g z*FN$w%+QJ`LYuVo5HKY(Wm|CPs!W=reOPNBxyr9T8wU5b7E|1quMhSRgcxSLM zr_t2`(Zw6eG=RzgN{|@~d>y#zkiGzd!)}2fu8s$98dz+fXN&N|x6`1k_U=+r+?_O= zj53r~sM)tMmxwMbrv8x>JVQ`^N8GI^-LtE*z}1#3*#6P}khnanYM_k6gB8hb9N_LF zq58230U0|;E~AI5IFRKT-5&N8zDc6vNP79Kw8?tg=+dhwt@QR5{tqWZl?_$dF6~f< zR?56!$u21mEKZI9nVbiDWk(w&5ahT{qvu8E6a$VWcmQK=IkOV1&Ku> zvm!*=H1}_^ZuxnTc+|4?gPwnc_g94X_a4jQe^mlp7ZWwPY8;>jLcXgbZNc;W(_!$*X6Olz@>qEL;EWt}?);!7H(GU_?awU7Cz zNOXnSb0$FCaaeL_XP%(vs#FjSf+@@}s1STk=YeU8rZF4cw@_e zaRZyy^f+Mjp1xG+UL}$E-Lg00<0jv98OH1Aj%h1Xjci(RPi>AY>2u?I$fg<;t-Js- zf40}v7bumd8Blv5n$f4UJc$T+{i$wjh*po-E1SPBNtMF$|F$&4A~M9l(ohB#lS zLy&Zf1x^4&?bY`@BqRY}AdWT2e#pvRV@1=^sg){kO6m#vCV0S%7$#Tx=E z8&UiC4t!~ZWc`kaT(R`e*rzBqhl1bz57vP2)r+FwJ)yC z$J#bbAD{iO?vWZwH=NCK(mkizjv2jKoSnIL@i3cj{PXmNkUZiQj#S}5C_c_HuzOm> z_DrEDcAI#@IHX?e^_v{}pei^LPP}D2NC}k@hes)w_EXix;y~o#zNs#bbEM*yFf`+s z#0m(t#gJ4}cV>Qh+1#S@^GIZ#6+Tdp)K{$AIQ|NgPX44*s_IE|vIHrm=_2&dauJ;L z&&X1(3K#oC{Ind~y^hpa*oyKV3B1-k>naO}&1XXwE{)Rg82=$knL~v-``STo+om#4 zZ}~RetYgE|IqnBjJ)x9Nh~V(2uSs#XQ?x@$Xo5C0qGaTPHbIkd>DKLl78K>e^ye2W zBsfw~2(3omVoscQ4H~t+2aQ5C3Uz5GJ<}S(i|7$@+h#G`eka3DQue;6+4Ef@q&rfH zFMiSUxYynliEl0^yL9m*T6Q%VQ?E7BRni%*RnxDv)Z z@OpGupKZy)c6I8jxl_2{j}sf-ahsU4q}Lkc-$xw4MGLl%UfYCwV@YV&)=XR7RI|Wb zY1*u~&&Bvyf7%d>DEW!kU zLkJDGq;Vl4gXGv-4>$&dlL6@VKoF5h(YBYu_XBdc5KkiZ0|3K@q_LOwXpZ=l?ttXF zndxc5d+V7sye=j(c2pX6r!>n02b_EqYfU)hm=BGmAJh-*!g!7nSP(;z3t~sA^`B~* zZeOabO`W;TCOQ=Ywu*IT#R6>Fplv&BB(%@53N|w^&mx3b(UQnQcI|rPY*ON|H#Qe;&VodZ zPUd!w-?pYHoajU-YRFK_45Aj+rYWqbOPW&Z)2Fws3}nuskC2M$l}B^JLea3PXEIp!u=Pymlc*bWx-#M5{n

      ?ag>hKl@MmxkKuU{1Kfzt)|t(*rF~E_)qu4q#pCE9P^XbQi|& z|K@h&`z}Av22A}E3zI4YkD*V>B;|Z=DM__!Uz0qo)LeJV3w{Kb_E{MO>`Nz1MgB+? zBefBieNZZ@UMUYS`85u=Z;F~_7NOEhUrKch6P*6z0n|6=f-l4spZ=IeVNH#@2$W{jFwIVV~%eOa?E)2ArT;=E3;lWQwl$urD6RSKWXHCoAh zRXC05tnXMsm>NUW)pm0+Luvd z*!w)9i6Ot_a`;uL%78lt#oIg#ZNCI7Iz^>Jnxlc;@fpPu_evOpPsoy9K8GO9osr+M_sefF`3 z;i}2gP+S-Xq|pG&g?}z&6VM-17b^bbA-`e{pcj=XIif^G%-`l?fBk@zn)h!jG(4X- zJ>Y&MsEPxmoyT=7>*F4VeCzZTSfIiCi_tjK_~9857_+3-V$X^y!Xl9+vo7ayay^)s z3+yItite(;IlSH!Vkt*|G8Lpzxa?NP(eF6lGf_!tW?=Psq@wx-i+H39UWT0c*ceK+ zebf~s&uSs5Q$q$te%0jv`Z0p}&>W@0Vgf$$G%V{FBoCxCmvNbUR~kl*^)OYhxfTgY zvdwJ;&`elTe{>WLCBUh|>`20LdPZ$Qv?c1=WHsv;idIx{G|Sgy^+Vtnda9iv)V z5SkO;1ue{WQzQA~SBatqG`7yB*YgSr6ipLWnzOT6ThqCUMV*&fwLNrk>{IiJ!d3jj z0V^UyEp}6x5Bw%RqtMYNq<8#Ztprv97>+CH8|eA7Z-o9^__M30g#Md;7IA<D$2FX*PStZOU@QmYmL=LcnWWjP4a zX#%@d8jt5iUa%=#QZ-3u4cg_@hfx$#HP+Q_KdZUtqzW3FC#+B+I5y*{KUL1W!Uvjp z@rzXj|4@Hk&V%v7A)Psyo=B7ax#b8DIGoYhH@C6Nb;1sfsT(+Yq6s^naL={OIa5aD zgoiYPTL9oXZA_q*H%0)kRS?w!#JIW!9;_GL_=@fVSDov;2f)um?HL$m7^N}a=`CH82bRmPY7VSIrW3w1zvdF zFklE?h$aCR+UH5QgvoL^Wr{+2+Au;_FjeRJy%;mac@&jzHC-K1U-Mx$71K{THe(+n z9bA{EMkjDT6@zosfFiRNRLYSrg9OR%o5I_HC0+5Ej>DKGJt3UpKdAel!|3&?6TLCI z)r2)kko5OA1{)(}_ za)vhn6$Y{Rh(JTGfC-=7X8sR264vfoGK4*Gfrr3KN|PsXtNczaqOpocAoLmq{W!d_ z)e9*&nP3kieuaRGh!@#qrWyki;11Uytt`ZCvEX6Tl@8zlM&n8{u{g2)*E1GjcQORm z#($8`CS{Ti5I?*e>L(EL-Wb_dm4 z1V!gFv2%|;;#osYY|5*VCw6SaN*gSiMUnD&J(f{lmVNw?()bCbG^FOk))B55 z6T<^MB6$Q6sRK&Rjj7zs2UE%WWb-QJcuc74j46e9@QdtP8L&PxYF=_7+{7n=6_Or>WU6AF#H|v65jGQ*_O!_cvN8TF zKIBn6aZd>ESCt&cj|kz-N)bmRXP|SZae%%-P;1uc)+}=J!xhQ}>1>iYFX(Q%Kns9- zldCj7e}~vf{BDe@&*4Q+W6>Asf&cI(G`0#PmqA+d5Si$GW4uQ!PoqKjusz9|KuU}I1RD|S+jk4hI#OcK_C^7o&tWQ?qX3%Rtk5qtM}buQ zC%C1$J7>vPUQ603Pwa^Mwml0`@S_Bh-py<|R+Wu+lkB{t=vRoDf-4V*-}-KcPOF5N zH!%FCF7?^;HI()@X z8)FPAV*jU(8C{h6@~NNjy0Qc9xlxmwgAj}C zqi;Y!wSXd3cKXTAu|w!&;}zXbbP?7TI9wt=T3+*%YCKQEddrt!VQvRt-S!I$kti4m(kZ+3upNTgaU4NO-f>(OrVDR^0SQVo zP5TH*Z3ERWqyIisdgJ%FOi+>CEKD6TqYwv5IY<*IA7YPjn6QY4`wJIHoT!yygz*Ur z=(1-xrbyhVjCx-dQkiIy#B5JPRg(34%5c@JO4d4HriJeeLvTS@Kk8DO@NujM^?b2~ z?`r)CQ5EqpYB1k-e7W3#9|T%@EeyDSL7D46?nuP)KA=fg5)K`o*S&(XJd30?V(8^Na`VZ8#q9T> zHa;PuT_&$O!;_pxTv$A-B~059dgO-u1QI{3sn$acB7pE+O;A3Vo$Vr?D@T>Pg-s)% z`ajNQKR*usdDUZ4o=J+jZkEhsaTBSy%DR%qlqKvT@Y=9J{dDZZdW)N~2Xd4YQ8J55 zHA#i09iv7vfh7$+z0B7dFhRhjHNj8Pkc$~X$$;$qozOlETzY_O%^*FOXUwDM*z`ikZVm5xXXHCwduBTl*3P$tZ6n>n9*sMnH1E;tXBmr;0elc#-B zlzl;nZ~vkz*ID@WX6CP?;kM9j@PB!Wr>sXGOxcxNl4|d9$Ke~2YW4%DY!h-uX)RRD z@VqdgM`-M!tL5ft*an2)}#!6GtxYofre^HnF>Ja{t&Kv-Ono8z`nhpsak3mFL ztFRhQOuh_wnl{RUydKQ=o<$G2_d2=NC_4Pi+4VKxPHGl z$nZNGZb`9Nmq-(~` z7`0}*KeBQr zR&F{!K4+efR2&{z`ss^v_;bjwP7vtKN_1y6$hpm$I!7l7awG}@_CG8^@Fe^5?;Y=gIxsHc?o(RJui#!< zn;r8c6|@PVcB>y=EP?gPGlBN( zR)HL02jXXHy9CiI6?FEX#_+1&@4d4v(wN)Uu&j<8_yK42`#rF%4jxOmI(#^LSA+7# z!9tYC2*oH@ak3)sZ3=7(TB@mp%w6_)V}(^> zUqo|C3*+H}r{9V_LVpie>r^*RfC;o6XUG0xloA?sSCPfyDq?gbEN19;Mf%p~RI+vm zQNq8II(AC}dC{VxBDP14SM{3&zXO22QY|^OZ|1pFH0nsV;Jvx*UnSacKAgIV+{grd z{cLTM(3U%05`=CcxUUtG*d{N6tMQO~LqObnxUbXC17GroK9{CD33w!$>)e&vSk)~$ zJP>GGZ_g-cllQf)0EY5HKB^r;vQJXpe1BwHaVK?Yy=Q%6(6RGB)+%~}$i%sk1D%BU z1D;i9kuE0jZ83N45B7=6Aw{x}ik`AwCQ*dX>H4^zlwOtEbY2@e6%S=N)6N>AdpdE! z`YO7{VH|U0PT41l`fDmg#o~dODw`?4HHXLzpHe0Mw47YA2f+Mn?TXbdHBW~@NB6Fc zWpfoqzN&~m|Bth-F|9a28+Q~*P{*xA z^l}wK(P$e5Beed{`z8aA^z3R-fyZBjy~th>4BBW1mX&zW&C*+tNJuO+N+p)5C+LXh zH292#C>#NgCObibD?LEq&1{<7@M68moTP<*F@pL1hzem@8yHQ{kuF)2$nXQl59w^N z19~Q|Q6(~>zV|v>rf!Qtgl^Z1!W8V-d$u`F0>WGb*`x7-5I(8sstf3a_(!ScfR$RA^pk%of{+m_h>f&D3?++6Y5!fjFsfd!j$M@2jN<)<26@ z*m{plmRT}RMmU zN)kBhb}S7M3ZCW$dTXFg#mt19mg&Zth6O!A+tEneCiIgP9=H-l`N2R>utqXFbt2C8GsyB&MK)(nW#@6e z*B~icjcsst$0C5Fx7BJ(2+dZb&voY#pTl2*xf*;Dm`^~08PXNm#{WYKq;4be26}Y! z2Gl?6_{7DN3V#z=I;k*UDc#rq97{$}n|%ULfS#T)C>iA{U#CZ1{{@LAyR<^J%IutL zz1l+s>D7a;M5-f%mvjc92MEM!%~d81>aq3==p84%0T@L52WkWgJGX;idZ7S4%0Tx+ zp{~|koUAx~vjY*AUjm}VGU0v{l%f%$3#^c{flBUr#8Uq11#WY&kCy zy^KAVDCO(!^b{j&pQG^%6eGWkB1p8Q;y=GiQ|zQyC2H6;elc&p&Vv!g8!jEaXdVgC zrAW32JZsl4OF@l?Uf(fom9LQ%pWD~hR#hz+r$rP z=~DFnKd^344cSQUzZ7*$Y-;&mB=PLiWGGf-lC}l3c6=p8t?J2K!vim_ z5%_l4{fVJ7pJi9+}Wj;aossGLizz81&b)K?BWA!tR5x5Lz~ z7-MBJ)9R4zy3w%(ivU9si2~#4TIaBYUFoU%-TsjqXAPr%;2Xwtxyf!6g=T2T4J8F+ zC>peWZh!7&s|;~8F|u6N{Onm-yw5u3kV2s<4R|1j20S(;>Q6jEupAF>^*z`i4%*-+ zTEVQ;hgP>Qin$=iam-FD-|OIYh(6l|$RS&>-6sg?i4rv7cv)?I6Jjdlco8NmNfr{( zVW7>$hUaI#MNkCEpDiZ9IpbXZ4*KumXM3qg8g|d+Zibx*5)2Y(8F)~vyPw^hWX=RH z#5yutTkE3_knHb|-K!6fCSLpFHm6|q54`k_BlLOks~(ym@cQ&54MI3@a5N@Ydd&gT zCv@nn-3lW`dX5qwTD9cl+h(?oU0hl+LWhG1$=tC#k*e8ZUEm;aA|Bt~LT9v5gDcHx z#)q=F^e=moKQZDbB+<#DiGsi!S$USLU#X=yTm7JJdyuO3*4eaI(mTJ;BK!#2NT^ zn)|e$GjIsg6?}I*^F$lVCaQkb2<`AFv+{X43=}npc zjvKw+M*?Lf$kpbYq<+ysdv#1i;tbzN5LI{2a8>_xZih)YcKxtq;rJ(M7$3 zVOIAAk@Tk9pRCvLc@)|t>M-n$o5bNaGPWO-ZAn878hSs{wS}U$a6z-X3pKVJvgn=5 zQLsR;eC?@TghNKO&od+Br6sQajjo4=|_)f7DxsKsF zm#BcV8>YR#MyHsAbCQ+&8tr0rDtCdA6okS+6Zl_VmkNM8#WD&jZ0-6h*ae4SE|!5( z2?(3+A;l{PltvH~s(}C!NCPp=ULvLLvzR!?p?Q$UoV|M@6FNq7fu;cY zCDqbl9yAEH9bGn^eTz&BV6pvq0j$v%vAd*sdf>WiT1QkoHHwJgy1#;Fv4t4 zpa&t~Wd<6e2FS-aGYe7DaxzOxIN>!WDE#x&g2B1LNFelgU|6p(2K`Ml?rxZj@YU~3 z44=6g6enevHpVM8&#sX}v@5k6TjpR49WvH!b+ZzfNUczLPTs4L()k%r97fX}{BD{u zdCvJ}-Wv=$LCLo7$i-qNG;VrQp0rD_Yw`Y7Sd7qF5NGHk(~wHs2_O!IpqNQLbDM4W z%QM-8Bu3xjvt74Z+U{N@UO7*+Uq0ji&qe@4Zz(9^b*kwiG z^3@_UjoQiYSOwEP#gaL=y1Cguc0L|%Xme?j(0(DX8`#sHw)yB)GE^c|WWc3T)HesH zor-R0r{J%8K*B$t@Tgb^k%nLAft|d{QG0B7Ifup^FyJ?2-kyggEM%Kl!@o2|Jg9y& z%NtHQHM#__QJ6is{z+pLgFPnGHc8d=!|nB;i7Ei)NYJC20ek@3a4tKvf-l!apI$MV z{^ovei#|2c|5b`(N?BMZ?~Moe&!mAz)^}U-ZzM8lH#0LQ%Ssq3QQ9m;GMy-0(doyoPTS4xJ0IjMlF8{{QON1!Ey9LHz{$`sjEg7l34X0#7 zsJb#SM7SxT#{5_P&JN!E#l%qTCM7l7KbrkUzedwT(WfVTSdC>msh3gR*0T7AddYLs z@Rl=z`?fH9VyxJ6i+;-NFj4b5c?Wugg08C1g1rWatKF|4aI>Fw_W z9e3%S@vcNmQ6IU&EXE$E3qAzUvrOydBYW=u06fD6zK>dKh3m|QjbQkO>!6sR?E*+1 z`mNDPIW5}BY7T>5V|y-y5sL==$6;oo^{cH=*R>*5q64qp$^!7~8rkt?yTP1xJn0>S zA8GcO(4iz{+8wh(EMOp!A%Vc^&Zp>2hV6VL&dE~x*|MHS zdPC8t(swk0mkgn7$uph_c__&-Leg&thWEHAnnL?_TddB$USVJ7sA-}z*}{!mKawJ+ zv1c(-U@_vOEe5VnKO0YRRMd-#%XWO}W7+vvcM$DB*C>}$^!tpQdrnMiDG7 zUJnWDSw@5{mncWtN0aR$32c(u7p^HGX~-?i=q~JjP-L%=Kix|Yf<5_cx5RhFml{YM z_)D;8i8EHj6rT>L1r?5C(DS4??Tnn$Lrm(XWPNc0>tf%iOk8CLDrda2ezz#7i2zKLvy^z;zh{LR-%dTows$iAympNP?^ zWOHLI2H!NLAr&;s{(2;ZII|oK1LphlB?W1^e{e>G^iQuPNCWL&`TD|`+9r@3DcwRZ zIWkZF4aZYeE`z1K>RF$TWj!KJIO$r&IPIxaE&D?hTPE;XjC3t>dShci?X?6sk8i); zJ}6ubzh>2*#CeRCS0PgMV6A;Wx*%|!&$;ON^bzS{^2D@MR}M5qs{SeG3qF|ic_JO; z62Q|;V}im2-pLW$a;8LC-$|oW7ccUD{ugyEe-Sz0_vY^gce25od$ueP4PlVVvQWzT z+eK8^ox8=RcwJHw>0xzgXcF!&t%A613Y#`{QhF*pZS_)uJ||p%Nmo5x{Md@4&Xd`Z zj7TTuO>PQo*oY|%QKN^-atob!RQP{Z8om3=$p+MPwttZbbthS{uZtl14{@P$;7%+# z?IS%q2EjfiS}`(4l}w>>rgoz^p_A)>JmS=+3t2?D;&Wuu*j)T*@`ZVhcRppnxYcSy-};-7u%KerAwBHk~+a$XXl`x_$xw> zy@ji^ftRO(j|dyuGFRc%&xugEv&h|SZXIFo^<$l@68LR}Ka@IZ%?742N=CR4$#&-m zNVO{zW0**RcKROuP(*iJ2>ZrpYa%!*=Fn=zViXRlnw7MR3SJ3-uWNuuzr04szp}sh zYKQENzlV=_0u|grwbvxb*Uru9l{k@MfAp;rU)eSM{+j*R@b2w&GQzpw}FfsFPvmn z`ISwMiV)5m8q3mOIfTvr?aj(F43DFL0TfdRk7LW53b6}iR{=-dWe;_VR0b`FuCo`8L=mgInw8Sg z66_s}>Apu~bOFa{r(MX7>zQW^6!j(V!hhnb6pS8S^iN*vF!;I}--SDMGHK_aK|Z5! zI@Wv*cZb8Xhp`Agd#qumA4(*$My)R9W|8C+OH%L&n(j4L!lalA&**1*h+J zE=3LWpCsO(C5c!wEmEXgMJ)DDrPjt3>ImwH60U=$GvFr7Blw#Va>y0n zW-;eWUn_YzQ&fvNR^(=*MCubn1Zb}Pt?pxG!z!B6se>-pQY&0Hg-G{ObJgiQ(NeqZ zwr@rBZfh@OW{2@@OFyuamXgxyCq|(l>s_figBliddCKg-j-(LXx}8s z?rwS5!9RC|cWcKq$iwA^t_s;>dUD>ED~VJPi^IgISPK3CJG;hbL0t5tn*CSDO7BqLzGlOBDI8cy$b+`ab%9r!`RBraZ#|K#6vKg2)nba%oU)jM}q)zxkaWY>|(yi;pV z<4>WoUa|dt#Q<;=3M=g^cZ|D_UD%ja>?(Uo2fF2A_EpF{06W@6M785=2t%!Ffwh!l zu)nk~g`gvvf8VaJ1u~-uK2#Av_Z!Uwe)Db~zSekVtuYiwf%~tV9gIK%9uD5HpHy&r zz`)yCn}UwUAOQn~I^tI-ar`ssxrSo+DKnXwyjEK}1~YBWfj^I@At8viDi}G4ftegn zILK~X;Ki+bx%&h9kes<2P^~i934V?+2Q{kfH$Um~`s*!+I&>>{l=l*n zDM^VHf&3oDHAjIkN*iBV<5-Y|IBcZQhNFH=}K2XfR2B2hLAwJ)~O?#TGhC6;XS#;*DQ5{EcdhDV? zbB-+Il&jrDhOR@5>(S@!+b3-`+f7H5S?{@0>9tnl-qjGSVZ7qmb)7`6&w&U~97_k?17#hh9f#D`!g~r}o+~Nljj+n@u{j1#_ zjjEPN#lQ=z?-l89*AoNrNRaX$E5GUKDNkTH3voCYB8AEs3_+AW$geJ{mAegJYkC+PGh9SBDS7 zlDE)oJC?w^ia7DcP;5~nxc1AyoC3KMUmp3m!d=3}pP|-Wv;QOMDZ}FGnS~-P?heJ> zt+?Cb?poYkixewvi&GpHx8f}B?(P(q;_lpizx(IRndHc1GRfpgMn)FL5QVp=+Jmxq zZcfAPSz`~%?0hl6LD3NIbCS|R`&O}i5p2swPa;|a`ovF?oMf+(iyW=U=Rw1Xv} z!6DIBlX*uG<*Gi0q(8RLLJ~>v39>rBUb}Iwbb@s52BLVG$h8Fi^y^q)YEjSOXbI+- zq{ymFSF^ztw{EOyW3LwL_k7OdHA|5qk-HOXLlP}SwVdrR!->GAL?ZFz`u5f2HxUa! z=vgOUgH}^-TE<3rqKf;S1@4?jty^g{=d{m?#eH3Hi}?bG^p$Y3WTv~%_Tg78N0}kj z!LRH$A*FH+tY_aWyucy;HddyzK~0LQRszSrkq+A`2BX+KL!dDmAg@v}QQ)CV8!JeD zE5p$M9>!Q;uBsoVjg{&lg=o4323f8EKy0q03N>X4nSBgdexD6mIPZ#CwxyJ^ZQ$LP zi`kOwiS+$mKL{%EwL)E49LmES0RcTQ=1Fg`YfmXV2suVawaZMkpJUE-i zxcWHlZ@M=$ISE9|V#zyasI~rKX08W0YSvklHVqLQ&InWE{DmT)w@Sc~E20`Iy{^%T z>%+WWEEHRHJPKTU_v*ljC8ae#L1_x6&2e7oPZimS@vh`HXUp06-lwjb_lThd<-j+b z{obq8|Dfx7M~=E)19FN1ARB-ukiP~)&5q0{f{!AINJywrfQ5xg5>#%qqxPB_3H!d9kLbs; z)$K~$P4KB}kPYRP^T%Zk`r{Vboa$MlpN4O2S!x!RYC6mr@ouM2y6dEds&g%%;f=|Q zLCAo4uyFt6<}|B!XeHg00z=b93E8M`as(LtZh6Rr&oW8RDV}u$H26x78IEz-A2*%l zrmN=^DGA3~>lV;slw(!$B7Rh1zsb#W>72WbR7 zO`S@q>z~K2FQ;Gr2_UrO9NG9$lh7%mU&+^qrzvY2DO*}EUveDTI6aCK)AF&m6R35m zlX#4jS@aM9^jFMpEWW zrq-xQY8TeJ6RAZ}%e>Lyexk#P&k@rx`1|{&4kP~OIPSi-T@`9PYueF84u)C@roGYS zo5{Mkuo#BhTRN0He85w^<-NE0cjSH3T23@8#KcTA zJ%ZLm^LFl;wlQ2R4EMsjXP2JqZ=k;5v=-2a-GwbfNd*4Y9PV<2SuN}2 zRHGU3pJ2PpZ}Pvy#@b?3{FTMEBLGf=nP-sv8X0i81oe(SGsqxtw}E$Rw*e#4zqeEw z=_Ew?jm2TSug9vcLooW-$cmJ_XSgVFCc^3C{ujtUCjUB2W*d}*jpvwlylsq z{TKrljiX9sCrAdJE2o^Sg|4GIx_`6Ju(kf<3f43|k%a1dnV-D$wK=45zVb+58@EE;cw1 z)rRk)51LHBGFK=%wnt7YC}uPpJS5-@iXjkr6Va~W@9v7ZN~1{m(Xbsov<9pyC3R>j zdqj_Rfw~&TxR{(?T=(9z8EOnyim=~{`7l_qMW>gm#wkl~gznET*SEYx(Iq~)hw>;q z>~`_qgfG?mtZ|l|`{A}wF5Xmndk-_HUWSW;9#Znt?B{`16?-Y|_JNS##HNOs`en+iNY3%QzPQu z0KWw8z>b+xu^{R;;y?0pN{w3W2rDWsfD+b~TF|n~<^N&NH;YUi#jbnCi9Zz2)px0@ zb-B#fi>zqgt1Ouc6^I6XM3`ydmRvg??vP`I5>N0%$K6*?}@o>J89Cq4ECWeP?H z-2H(b{)Z;niYLV_-wkKLkUci(k)CN{oopov)iP+uLDIyK@9m4nrCgghk=bD`C2BYG zfX1jRK$WCvi3oVkx@yjz(rc9tQ{Zh+Y0hU#n{wfDTZtJ`dAx4ZvUr>wwO$4UoMJ1( z;OOST>rptgL1dKbgcJXz2JS&sETkokX6$GEr|P9x`+U6Z!L?OkaOLn9Wr8qq76dmLE`ReYQe=7 zU^PjhYpWYx0G>x?z+^q$v?&w~Vdv8zks$7F5+~F4ghc&-+(qQAM&kJ!aSo|6u!J_p ztK>;MRoi9uMFxg+;&(e(a6t5dpyuab5`0Ae3o`%j0Xxc~3o00I;eUk4D{48WY+=-& z`+g0uMv76seiS)IK+H9S8@VeA`^ZAryeXsEhsiQUM%3`l(POIZScsgcM7rmdQtwBPC*3MkLZ3SS0;=)Y*nvcGFhfI2mv1go&J(S zf5sk*R(ZFDW1XFvlU;J9TjCAMopWhkT0oN~CGqj9RUg^kj6mvzRBVwf`cfyR+g7t> z*Bpz-R@ZNTE#yjaWij%mQSeHp++Ao%&(ez~Oxq-?k6hG2O1Uc_!Gws0ujPG4q z>Sh=fK~okaE!Jf@(X#{e(I~H_hsDWhgh#4VC1X`8y$-Fc=1gff1s(;HsK9ji+wspU z^c}E=9;wiR!ENvoU{;+&$ee1#>M`^71e{?{CgV7i&yflruL&Jr*^fc~somc$KG0ti zsu2+O8-#B=|0+6+BcF;SF_8!!9W}5XakVTZ)&3$e0g3o5Nx{{t;;Tg$*2)rVOLj_y ztZ7}urs41!h@A3A4gbU#e1enlwFWcncN1o~bQl9oEVZO5?f25R<&goVVKl$5QWj&d z7ykROuX3L{ry1Y_sDGJMX(B$RD0~K}Rvhh~YO-vqwu_cY%c8T48eo@2hiw7MC=2GD z_TC<}7>fcZ71Ik9sQChyI?WR(WP6rkln{XYzZR3k?YM9jv6QNT8Ua)hMG73+rGSkr zBI`-J)hr^!Z&tCkQx;{;8GpQ}h^jKZqx0>PdD0i10rup#yNh(U&3_1$m>MOf)POsw zRlRC_YMVVwckZ!&H2SteiQs@>RgXm`z0K^(i2pE1>ZXLx<@qKV-Px-X}PnbiiCo6GUuXU~93My#+g;pD-Rg6aW zSAF z1GM>WYqx$Z9iRBfamxh*R1X&LX^T)3)EF1*)jkiu4DirFFd7BzOG24zv8CftF=h~B z5*;Rk8eUE~AfJ>Q2Ngq!WiF*JSyFqOLpv10+HjjmlGUtmBsQz&SKa6Ed>$#{?8 z574%5GLPU&_hl~C<3B6LN9DS&N`4;FQ`*}*Y3lIr=klq^Q}{=1tV4BGDg`I*#$O%{ zA5S7n)j>iPAz)|huK3`#@`%~feFGTpMX1d|p0)OWD z_KC&jj=jPTh{b?+ZNU(bl3QX~>adV|14Ayaz{e`6Nf&o`#EhxPHzla)S$L`O-Nud# zvlb)g*`6{H;aY>!Mg!(M?RMEV(XW!aD;UQL$KB~i!PZ!V1tTgWYC)U^gmCE`xdiD< zz$umB0P94pqqR#~TMP}wSo2a&f7M(n^P#n4i4Yh(oa0okgs~P(=9N=i*bHJYPA~_PsKxKE+cX^aDPi%Z!8REdTriQxqI5Mqh2l2Y8q#dQ#K>~XMSVeRTRPB%fa7uDJq&}sc3F= zcy`(J+3c4s;NnAth5r~q>{DN-?q#bxs(JVLbdHzD2IVB(Ey~>Hyn9b_4PzF(dy5wx zap-pu+Fnl^RmgwUtdcOpD?8tGYxC$^l>eZZNgZ(PKD@+G1FKU7vj=s3<@If5(?_x) zqQ=aSN`Px2ylvVKhoF1j`H9E;yemG({14=~3Rv(1zwO}p>_t{Ro% zx@MMg(yh?z1yD4;<2D8q96gfBl-*$+Q>@c`2X0d|^D#>A(UhA<&XaSeXslM#v#0!V zja|>8weU<@ag{u=%$BYfUbM{Cn${)Z<#tj|WmGqk_qgt{ZoRTTxvpQ!^xHPz39z}@!PdIq0j5viY(&g! z0a9$mDTbNQ%lJe=l#PypUXp|mQO3oT%)aN8L_$ccd_yew1-tU0Xlr`NDsIc6DFn2R zmbO(aaxDS$|HY$etos}~|66tq00c0I+vbvp9*C)BQvFZIfxf*4Cg^<&5LIi7mDm+J zU;^7l0@~#O%tvIXiXfWUe-IT%-q^HUM)tJx7nh_gQs6#%9&Eu5ws;it95Zzt3kw-# zj?NHjPvn=t_4j+23QkzPnHN{X@__g7ib}NrY3=1!E^lRirJe+L@r!P1DI$vX63Zy-}hk-}4M1 zoy=S*Q`=isMdP-wp7^pCqqC>Fo*&W)POr%k~#cG}l$=|DTl`aAZQ~Sav_}HE_sS6nctR zw^Cu&U@ArPMoCbXY$Oi0K}6SCPXr>mt-RZrGB(G-y&@DIkLNUg+Qb%qURa%JaSVQ5 zoL*!_XZi6}@nC=r>uk9yrYP(E3^9K>>i5nrqIGCXD#PY=Nuh+~VJ`S|X;?71lN zEuv}oC_D&BsABm^wfTvuKn9dtv`i6Gt`>Ef6dpsr1-@^O(fCibLch_NxjTJ(_XPs5tu|ti)Plc1Av|q2 zRYM#O$XG|6IE)0ukk=sRveNQ3a1<_}ImaRws&|_qo7p`6qcD0e%y5@uKHGqk*o%;KAWKG$~tl1`Uy_J+ojMr#g7rWEqfEE2E@V5`90uzI)2=tq>t>iW-Q)8ct| zO5|hYL5pe9+~}T|pU!;bzTD!y2EzW1me?)+Q)aNB1<{bO&w4DVv9N^Hv9*xSK)05F zbjFVZ8LoH{H^>^qKMVaW6a6e>EaF`;f@NGY;(bEl*Q-yYaHr3z)Vp7h+GC(bvQJ}8 zlA5+`S#gPOS;gMsN=XU?!%`|@k`1?GnY9XNOb}8m0F(j@*Eh(1F=VSUtdnIKvHXn` z?6au;0&L}Tn$1#O&Ehf4;bd=m36I=pwcbMja*RC(Kr+??o*PP-asLYY+xWc_JWZba z^SsWoWNB(`c@;XH{b-Dj4f!dXnQB#aOKlW>k^9EDe%POiR@76dV#{`lZHOA(59@zq zX`eud{4-1Ho6EjDLG2IDJLB64T=`s7=LTN*y!aP9lJ@O)UDP_^^G7M;e|#2pq+a|5 z9(CUXUn>bPUKArcJI`PDTZiiu_F&fK|6b6&`Y3fasU5Tn>OGZOPq`=6BKCgx|6gIgA;KJ9@d=Jq%`Q*d~J@+mM!dnK_nRf!4$5UeEVV14z9CS~f3AR1}m3#Qx9-SYYo!uJWKiNzPY$ zkgB#T7*}?KW+VkjbsKWVfk6FWH$Vu z|E|R!OD>fjDHA<6)M*e(fl(6uwNUDW?YHPNR~v{c{jZYEGl#jDpnX~yL`@fGDX8Di z6lWO((zjhI&)X`TimGz#AADCjnsTjKm>~-2=s%jGxFxlX8aI{7qO*+@e0$p>N<}Dp z+I!qaixo}v?ejD;>FDjM{VRGd4`LM9FyB$gJ)5*>OFnD~ISf(Y3>0aea^v}yWgEt= z&9#gAPEg(BDAm*gT1tgpq6JIv#rDAh8 z9UXmk(RNw5^meOeO%J<1!jarL(mfwMar6Jaq{)b1<>pVmM|h%ED8t5;WaL6o`+(_X z7XP(}?fN&4;PdU5FghD`f9H#~ev{V@8MgJFpg?ItmJZ9PeqibqfPBdUWCI!4N795o zB+SnAso5}$@jGtRd9Q;UgstgDVnL0^{GS&Q5vit#7|OI%@`AKo2`dZYH=J~ODv&DO zl^J*7gdAOUG;ATR5O756zS~n|-z#0DnyM*;xfuw*wOkAuBNu+v08Zctt5oxPdxR{U zGe`M`Y~!}}`G>JeqFH%NMM|PCUE0pPq*mgR6rITchZpPgvI>Ko8`CLcWgxmums$8( zMk{*r5n4N%`eWGks^Zp&7PBUCVP{>Wl(HH(v&f|lvZSl{b>ZMjk+H)Uta!|dsi-?v z?B}kpK+oc!1>{XmPy8hTq*pAeO@lmH{J4&xEE|4rqeF+(?eK*;|NMUc6`6r}a}(bv$)Xp$q?BQe zobZ)#LjM5cGD3QkwU+N?iwVpqYv7(2V-GmkYn7Gt=}5xqmdkc{F2}Jh)Ab|K&$}^b z(=BP^N9_|KvK-)3*l)&ZGrn|%Ya)MRHYEszK7vM%gxXciqz_f3yWSHxez01&pGf#i zlTPM#hf^E7!O$B&sCK@;ptJY-al^4ozwrHO6H4rEimvmOEQqK26ED;o%`QV3@(7&< zd-FM-I=yZCGx7l#ax*o?wj{OVj5$8^wZf#6HWp3FlorAAf_4vabj)@azY9#k&Wcv| zOe%;OEB2h$^tETP1kmJXemzBRRlfRUwBWWM zMJcGE{>9CO=d@i;R$;d*N0!M6r!4w-7klo84EfT^AWr>nD?#sGu3fyFLQ-upded=e zbf&V^fb&NNW4S`s@b?0B`ZNu~a(bYA1_8z{`SDMYtD8dKHlX)=U@3yyj-Aorf3Dj zGES^UE+$eNAa9=rX0+lxL5EQ(c5ml_1-k)~dwlOLvWg#t3)DdJ%Uuq0b-sfMerGrvP@-yz2>XrwB%3 z_yNe$(ZZGt&ocVE<_D7ImG4Y}X`zi$`J$*MEuN*O9a+-{wpRJ#@Z1*$XY2((`q+d- z3aRh|Pg=v1JeIA_^5UA1Zg2vu2Ok36xN*|V1O@x}KecqLE{5+$M!z-i4AZv)?kxJU zj#$(z@wqof=GnNomnAX?4+_dI>dP7s!=mjrOWyQbW$?Gu?0OOg4Ty%Rdx+6d2j@2-%Mm!IMh=eecK|`w4A&WOvv= ztmr{OOKu1_fu5a35u?Nz+SgGkUP2IjS0_Ab*6N|Ud=3uRtk_NpWiOfuy6f&I$f1xb0-M=5`wVo3SL%>yT6u=|Wj4_iv7Yrhxs_h7 z(O0)9;X7Z7_gf3HU97kk-pnk*^knei_NvimW^dx*B0H3OGfZ((mBZm&=d zo~5mggmS|_QghQSU%^y^;xF9dv77T4Bt6+35V$2#YJ=5l|F}yWc=31AZGW?v_mV6h zSW61fGhk6F$R#JBGz`FwG%UHikVm~_Q4zMi=Z;c@OIqfZ2W@s%TW>L3uyq@o{)<`^ zy3=|;eNJ3%ica!NWaE(#8C@3$oM|NI?0bpLsDX$gnIB1kRQVA zomTG|5j5-RMK8NHTO+$lXx?o~!H$R2aJcB)NKIQr zt<{ITDS`tnEGUqNjV^9j%M7HRSc=i`u1e} zaE0W+X=kvPI>`bIlJgo`SZFquf4CO-*Z}@#Bn2k3DH1puE#jL6C#fm;e)z^6< z!)jQ(W*ZP~S69-wtAhW&Zdd#%Pb^7L#Qt$%fn6Y!R5~pInsiuDO;I+|uGf}Xehkm; zE4q=PU_Y|OZ*#v5sjV>+1&g1?T}k?uyA#|e0J4=DRZHf6D>cf}Y9G!$qBd)QIb^eO z;yRBKKdF%Rkw2pR67@HD^wCbHe&o6A##0nbVn-aoAMRIgH$byftQ}OPM`sB!#4b}2 z9Uv?)HEzd%FXD&cGB6xRI{lrBLN8}@djfjJo{z{F-0kKvPN(K%MvruKP;+*7k@(C= zupmKkC+!y_O^ih;EKT{krJ?eZ_~Q6(r&(&BX9p`Aqn1Nm252o=A50V^&}Tp}YR64f z$Wwqrc(tE-8mVR7j|>t025~HNe(s&9gcJMQS<31!jD3s-1r7D9 zc7nwtT9S|>=5Q#pXACrmK+cqZ8ERt*vCWU=q4SLyD#^$%Tzn!qKOGfk?Yf(~_;!@K zOwGVoWTx>+aunO6enF$OF(}{^%<|q^Tk{h?IYt?_w2gTJ37OzEWZr}FhYz&ye8s1* zRtWaEnD^uHit>ZakGlfy=PCb~2(q7C=nhY^TK9AH0@3+XIJCDX(f6?7=^a?r7Q3;& z8ulyZOWA_|^B!1A%ZGEu{j0SoeFIC$+Zn%mkR6Bz4|RwD$&5H*s-q}CPT*b}H} zcw^-!BWL_!NWjRy7cM`Eh-qqkoccsYVzr1?^H%=isB$=)8#L68b&y0m*2Yn|0{ugJBk{ixc_+^?XO8W~;P4ax{o`&_$uAdmz2JFaw zr}+atjF7{6cO7BSmzZ*V_yNo|k034$#P%H%vX0}wssn6(D2L9iZRc;OsF_*Flt)F8 zid!f!x$ETvwGx<)*{_V@(2t>7>Rl5KJePJVey0n^@}Ih9YP^2x@x|mwP9se(&UQbp z6BcO@ii=M zvf;piaqbCl=kJ20G=hmGbdz{uDly;(F2%!TI#=a+Nwz4< z&q#?YE-D;;nRygzyzI>2Q3HxIhqt6LE8uo`T+@j+IE%qxJ&!dDM zZLHfg15VxhRepGHhz8E?Ua?Mh7F~TkUoxP&Z?k}k|5`Y%@`JUx5j)aB8D%iGaGVW| zHn{g}FoRreJ)LPb;d>VUB(kz?xknE^C;C#_=hn{J*#|`^Zy3Q#i$oGoc@n_>2T2}V zQ<1#kPhc4G?u3iwm#U&-x)1|675u|L@+B+(4b~sK6X=B=EMwV7?Y9swA|j*}jvqt* zF+g${oCD1vQr#b>%z``$u$RWhqexA5^)FKjm%Sey{bJ$?^Axsors}8&?ZyrU_O>^s zSb@S>MC!u1pb%QDh6VO{p9GlEQqj^1tu|Nuwvgk!JEUQTFl*q`W(ytv}>L(SSI9*7- z@h8)}bs_smQkfd1csmls{SCUX=B06vLpfDH>k2B@6j$^5f|tI7%HJpT5-a0DP~G}v z=`*gwQ&qGxN|Uwo0(Fa@y+_op>+%=loZ2N!cwrShM*FgnOZK?GmIGB;%KVF-A*u3; zQu+K^Gj{&15gcU{Gt1Ag0GU&X3T;or!9UO)UrO&H|Sx)un&wF=^lWy{$n6_kTek9V{C=YRs1gvH|4p_%MeqNpy3KTw$vd zD$GnVcig&9)I|CyAZJhvI;C2TGst~o($Ha+S_S6co;OMZ)7PIwt;VVU^L9K~PwoCS3>|6chTYjW*n>`a%%rUhQ zKYchKp;HEVOvikG@~zF|IE*45?sqYk`=TLz3#=}^c!byc<}qN;zbIM-HLu-tW4L0} z&_Nr3{K$svS2sP%dnD5~*`b5=-Z@$?22Z?RMNX}Us^t~J-jG%q=OL*B+(wq+z|fK@ zAL=MDJW=NzjUq8EG{TBhy(f`cp=b}qAC+mOM}X>}sx)s9Yo8NTTr!ztPJy`F>~M#m zB)b<8Z5PC|K5>v7jD$#;mdvyl+RxJ=ci+5nafZH&tX2yMmhaf*W|}AjDx$Bz`Z6Um z4oovA7$%f|g2o2fd|DBuiZw^jMEFwr1^* zX=iWO7-kmMOss#VFN?Ah;js9CaElHkru#CWiF(VRU-#8(e7cik7&41%P9xm;rjV&=lAeG6wdhv(Lcf$&e-|FwaYeYnCx&c%IX^XlN$h6p!3M_> zOyih#)jCb!mHUv{zO+dS{TepGPp?O&E1zMK10qARczsPR?WB#3C&c@PQNjgE-JN*G z_*2#CT#2~m4&YtP=yTO)no+g#*3~|}GTnVNaT8BldVVeDN{LwRixR4vpn^*8tqFj$Ih}@(N+Ou#I zwevjp^!oh>0BtHLmYTkSN|Tvju_Q5-w;9dHMlvma zipvr`#-}O%X~r2H7oQcpQ9EugpcW%%y<*aMTD!)sDQd<0b$lqLi~E^I9=ZBe@dUp_ zY$(ro2@e>VC!(NEVU0+UB(~K_8WMp0E;?OvF_b4Vs%M-~fE)525`Z3?Cog+r7ImF-Q{I;uAq}ND_A_ zdJ;S6hQk_o#mKPz`-JT8Gwo!PYI1WqAGZq0;XVCmp9!(Tp%?8goE3;YNBcoa@cT^M zSC=G8^SE#~7>y|B=JTnZh|#NWUIm)yjY2lPl4_y2h4+&h(r5OsL8U?oqopLG=lP)0 zfzmf_oC1tSAEw)+;7HXqHk1Ud@(CxB>_a4i__0!|<9bf=322a4F(2K*V-h1DnN?9N z!3H($+?Kp?cG=b2)YQBn>TjIkqNmm zf>~akpTpcfPvG};F-nf=nWCGlhDtk*`kOk!C6SJ;FufW4=C^Mt9IGmCNJF^)Ds8PP zB9pVEY~d^r)}@9m=QdVD$r4oG;MR5C zB?SXQQu@9yfZ*)C$+&}?G`ee9GT!w!zJgfK)1aiv~?fG>s ztN2eA%ebzkgu9A1{wb0AAcvMUrEbz?R#TEjs?AEor%YiOfcvlmDRm2{GV|GkSXT^A z=)2C%ZZqiVM;+~q)btwOMRWBkH7ydy*;ohyPXRvQc3x$BhA z`dZ|MBHiDbL3cmKjnDjIxpSConra+>o!+MKbVujpj~ABnaW3;#5lb6~*EHFTQAr^^VHy^A89=&y3Yo;GrM$kXu4@IfuWV5JOWh1cI zs0KpA=w@8!u^9MiKy6_;3OJqyL}AOUVe2Q@yu^;1Zo~+7$FsxLU!8Ad5QfM?AM*a1 z3|Ms`k+yy6Q zSag!{x7()m9`^9R#q24q6f|kG0VFo_QKHr5-N8JAO_hV@p*;Glg4VFq#*Y=9uwp^; z^W{>3)Uj`C!#6PW2RnWthTOQpkgc?oPmW}8SX*!>aq{2BzP(+3-h?ZT-)$591ZJg` zV(vsrjtjAFM_OjGmqeuLM0))~13dcOhh@PXZA|rxu}1%#F`QOzqb;dOD`Y!zKl7J6 zeo9*Ag;m<2(dO$eB8!;sV&{;}mV9;J zDb+jrDovXT%K(Ci*G3Z40#Qlq<>7Pv&AI)oB+D5I5u=u9ffGc~-Ae6*=(!Bfzy9GD z6YiqbEhwo}NchF1CmXfvEmxjmH(yfU%-0s-c(TwzRLq*2AM?!lbJb~Z{0$^pAy)Or_^Fo2 z^}+63_+KF+^Q-u_506QYm25jP_3BwSg7Ev@FF33 zmr~_FzKK^;NzGIhmkQSt0t=45Jse=_7mK^{i3;wL;QH1(PH-!m%TmX@O}hMTSMsG= zMx9!R+7WTQ_h)I<%bsXKy>vld_6ic-L<)CJm6)OmBkNu zQBuOymbOe)HUm@FDN)ELRgqi1W50e%U^&-s?U&o}U;kMo1F?Y-@X$#5+OMIesB9S} z5*jvoFYkbi(Y%?)bVa{$DPf*(5TUvg`I0!WpB8PRzVr6SKgQr|TT40iR=n}e@DFw+ zm*=N})j&fW3iY@6@<8}Wsh1^so?#(s-vVLXd!9IA;Gg|YS#NKL8+a)NA=L_|`pUD5> zp1>;!!0} zGbJhbY>_x=LSgkwxKEE}MCS&%B0yO=2XJ5GVoV9wm0cwNKpQqRnyUL{qeFFY1rpp9 zQOcNFcwx3CJ=42-+ZAWjL?Lg^ve1#_0F}%GCkpM&3R-SgJ+D$F%=_AGKQBJKg z`W_EpChLt$!6~DUZELJR8<5QwE5?gml8&yhfKI0d)>dw|U~$lqKmmo2 z9)?nK|G<}^(Y1X$@o5mw|E=oEUS`%IdB#v%6k6MuIFHy;!PK~aBzX8;c&_&k8Rov8 ztvo&WK1mPy!9m^uY}45%G{(?LTme$`VrndkG007T)QlE2og%tUH3ej7;MDOjH%b`{ zP6E^z|GxW_F;~OIo$@W-9hRPUrL86cs--|$-5cLCm_vfs-Kyxui_LIr$|&hWEvq$m z=eRxg5`T?g#%^v#r8v<_O?@z_3HXhQ#}HsHIAkzWGZ{gaQ0qvkE3OyfLv=ou2P~@c zX)9`S)i9vtyyo%Ll92Tq=3Bt&w7#W00l1TL0JUSkDXVK3*wHNx8!frfzK$EojW6|I zTTb_z6u!8!&Ku@as0QsfQ6>J9gU~D7w4T}=ydGWIhEgEH)I1~LM{#W5pb{%0h!ho~|6)j0(=pc^)rh!o8wZYxA_ZbY?##^d{NQlAMe+`FZvl&)w8O=fb30;hQ8?uo;Z*>MsrX)!ou+o#1fCWbeOU0F9)^rePoW z3pWV;dis<4C&NZgch;r5VW_A*h>DxB91zfc;%s{z9_-~3oyg~&)z41ptDn?butwb zmx;RZ(>eSTmmBled})(Pj_+IS}Z~={(}opW2_CH*BWbEd|nAbTB*BpZ)~> zwK=}8YA(88HRm#){Gl&*bixA>iMOL4`mHsJxDRvx95PxKUBF1hf8`zVTIezFdVjPF z5U95%LVDy3rAZJPA(F`ciH2?)*I(oJ(w;tD{x-b6n(my8?GK@SB41{A{#jHoCMwBbFqef+pS};k}-?;liEpPaJ>;F*zbDKJW~10<{6-V8asXqD&E zPXuureiBWLCF9dQ9)qau=2%Sv(E1b^oDpfzOq^$$;FE6BvUC-5Vi^B6i#2r2Awce;5G$B zB%5gucHt|k6veSW;m%&44L#zm2>Evsiv-L8HKID+_zMSZIJ<_Wr4CkULx$}&%+Gyi zZF(WG310o~N*A1?8noLo4;)?50lM z8jf`{H78({3v+4j7SDCcH?FcvYKz0NkbR`v9HNCDEy~bDw%03INxjHx@O|K}vkv^a z!n50u!7IWa)9da&iqX{!1C!fp6Zrl*6LfR~k~A`?`urA}Ebh*uJd0ZAv< zU+dJK$>lfaRr4+h7cZbCDh55ch-c92C?Jep|96JAIVn@vQ<&r|LYR${-F$@3Z?c74W!$PaJi7rd4mA~D5AF_^nH#}&6?R#P*tc9l_NOWJ@rt`$NpF0Q1y1E!#%h^_zF`UC_fx5oX3XOwZ6cN9u^zRW zthCWY|4eC(JS&OU*8$f_;={Cmi?G=@N#zXYC_K5CMT@ayP~iiTYPmws9&&Hv-+o1-gvqOE5plVoDs&W&wM zY~9$lCN?IS*tTzM+nm_8ZEN2Bz3;8>uez(cS9jIvuG^>1*?XS^Q>NmoPg&AI6d5Dk z+d~rBB999#rCe<%}O|O>WY1M_Z<6T*O6BF`S z9^~JUvKaOHZ@zXUouNQB-0YZ?hM`CjhV@(th{+m*MHCIq42ew^RjZ9LwUBiR^l^Xx zJ(Ntq(*fxhwR**7#4(gR^SylqbSIYFT5m}vKlAykQcsB**iTg38~pW(UUI)?E-hDl z6f=PGI?AB-1yus7RwotJ^Z1B90zuqB=RJlj4k zdLnngE+)QtsLVN)!x%y)-}!0!;<*3od(q$L((nB4KkH_AQqe10NQ8~bRLU8}`p37M zNQ6@?tW5@`@K9c8W__IH2rM66>yEW9`kG(HWR;R%Ob=P_#>Qm~-0hzVXYUE%opng2 z98FFox4lBhdLy>O0Lun4Q8xXxRDGQ;f%I__$iEcqY6@v@&g5W~pF~^yHVkBBO#4P+ z`}>qY1~lwSX{EBUiLxWglD+qtarZQ-_v(S@s}9ri(e7A*WW=;)y@q|x)TwHzK*v4< z&u!hl`;GQLCyMgevg#efL^YRw3Wl@2cZyzfbW~D?JBAP|v{xu~dJ?_*pTB89DGnBr zrbOCXD;5VoP2~w!ih4@~1uv&_{obi5y*xg@tq>|{EKuBbg*DamL%QBpvA*}AtJOq6 z&iEl!Q~fL0wU^vEocs|cqzSAF3)Drq+<*6EIq`AF!)TpJ2Bv#>VGZlJHAgk^J$A9W z`=S|QV*KOfFl)@U#+|ar+aBcPg*8Ym?EX}U7)UAChjNjNV9Tl640KDijBER{Pm_2O zcf8{y&;tgJJsgZhjwFy76+VXa*#FTt6EkYHWr)`Z%P36hW|ZOZqS$QzOWhqU-t%X7 zq(&F{z?G@xx2QDr!qS3;VM2LC1ewF_ctZ?67nVdYzCgW3<)4VJF11_3e|K?rY-Dc^ z#^Oiv`!rs*joW6PFblSofGszY6dT8a5R;{3aRMBv>k#JS_ z-~93_fc<0wVrxHvT@}%M<|Y+3!tz3&+rldq_<;ft5;YG^7H0&aW+mOc3tJBVWH6VA z0SlCJubC0$g|Lh2IU%2~s|`UFQEYpn2L_yts$+4E~fN%RBj=D;YxExVludv>}fP#)QPi{ov zx*%NxeQ{U%&?Lm+>yF961Xlg7@DAT#8A5^J5QJ>98-BUU2uY==X>oqLMZ)kJbh z8O$a!$T_#T*VpNAO?i~VkNSz;88k)xd*o_hw8NIz>4F@zlF_2+-T1Z}ACUYsS+2?b zWKbMDu_nnt7sFE4X96N&%}rz%<> z)*#DOLFz;N@UH^h;-`)W>iULU)h)HhUv>-E$w1)PLY0}`OC!Y8RoqhJP&<+Q31eQG zp9;et+=n5t}B=t-EWXg=Yli44s_ zw=CGZ&#|jJ7|XqvQe`qm4|_FBpf}xr4F&t_)hjk*7hB{J?F(kwW_}5Ds0SN15%Z}#Jc89 zyG(F3=4YdYnKx~G)>HLll$vU_@t1e=d~gRY^69jkf~Y7(z6Yk z07}!IdjMIg$d z$~~ixg3~^TiDPhmDFU|rThsEbQ>>RYhHUu66uEkQsQ`dyzKQ15-}V+l7A!|GmaLLY zNZk0X@xA^U?y^O*3H>9M?h;UMvl0aR??V$P_&&~=1tE>Y-q6v{We8b?+UrcBOuqBG zMT7fOr0)2h>#On@t)DZo&p>3s*Ka8Z zNB_jBZTt5FM{+na)lNpUD~@G8>aHz0?VCojh5=o>2EEsvxfbRJ9R1lN9KCjwpq72( z!G?Z(l&J@#cv0=R3(JbeA%B_;-B^JbB#0y#BNJY$DF_&8THcTwUwM&vv1e*5m}Hj= zV|!mdeJmkQDKl~Z?Oh;>vg3Toq*OCjP(w69#8)o)?p{u#N?7}I4Q+pGa-3H$SLPVO zA$jpozjmgNh^p!vzbq}xtH37)^}rIgp)c-8g7w4qzt43j4!eEXZ;Q~B>KIS<&z>fU z4MUoK5PmYr&-ubOtK*3#`0!kCgC{|bWQ2}aq|Bp?wu@Wa@k!lO5wt#u4I+c-e&jL_ z_kA@f4|ob$8P-h_&D@R2AZ?h{W3_MZDoV!WvP2{RuA6c+lZ`pnzaVk}jGz-T(HID? zVTHQf7=ef=MN|qvHgu=?O}L9Q+C4t zsj??Omk$GqT_1=N=>{eiAHi!gm}!y%+|x6h;(%%Ff6&F~A9O%oO1e|?(uJqia!CU! z1+|2LGUp{4ss`9-WLm={bpElDPkp|z5`=Phsk5+SP4O8n!J8X4vL_edi0$6cO&GUd zulDsi_sI1=IEdAGONVsJ*H^ayDt6ygBE*N&9jcp>>Ye-R(;v*U`?@ys&|^?wO#*PY zQ`0q0f|g+BF=Y(7IrkY!rr!ogTrKprE^RkdG%dt@M_ht5>v4!HF~e)!tAsOd?P{vHU_JY%3$MxGcm2$n^9jPIda~h7*vESMiVDG6gkhUXiVB2Aas8j3X5cUeo zCc_KYiGU<_V`64=grWbjl$Ld%pP;B?V%D=;s{bZBa2Cdgp6Atl-NYpTRX?%@GLogVNpi3zc zuAwOEUN>b68Vn;^W{7aDS=c9<5wiIpS+>HdCHTtZHO#e)N%~?qE@)7b^g+GJD_%3hJ(0t5-91M_xZZ!^A-u3jxv92K~;N11ooiMJ- zZ%rlC7lXBFPA|9cRIC2pbne#=pWPiFyu(A-B42vBUG}%`R7htyWV_51HR|QjBwR~0 z{A=OJEO#@;wA9lBL(DPg%@PZr+PvD>Ce#FH4(kvb*X)&?f9twTW7su;FxWYGgq$DM zLEC0JNhmaK2gPs*IC z462DEs*!DbR^fRaGtzdgyY&T9yH7h(O*9l5W=g=%F=Kv8!xmWvThgW8N1Y>6C^TEy zXr>c04tR`z)K^-&k6->-wh7cG1?ZhqsxEE7Bv|F@Hn5kYZ18~8!z3Lvth-bKE7Kea ztyC-6y-ZCJAEjWD&Zk(5g4j>+ZD%E>oYLn(|3rC2Orkj~ffEJ^lgx6sR|MviU9TdC zI^`}g8h4<1B9^1mD(tvpyu($;KdUiueG9G01G3rHV|flmPEd4DcuuxBnrODaLt9vv zQcuam3L%p%i*?7>6vFGoin0*Pzc{C0X*`pZ8p2*Mq~s|0t7peB1uTNv37kgx8%{-J zMnkV7`lDV9B~z$p7p%A?Gn}WuivWPQ94~PoLtE0JZ6~PjTa~Evko@k)WEhmr#BC8E z)vYoXs2`QFxXj(ki+sl~ z5m^DIsx8Rzt90@F(2rj$eA=7DV{0JAI7N~Kx$8opYD}LW(<>1B!`&8IQf?HI@}7Zr zkykC9L`ji2Ofs^yhm85;&W799EpydHv-RRMe$ReU1!x%&!&c$oLSVcH87-Gi*WN=m zb9S`Sn;xivc06C2iUHq1DxEHkYbN8f?erNGO`m@5o(Gj4|JI-d*l|p~xf_1F?%)K8l4l*dMLb1&V=R zl0#7VijDAujCD2M1Cm;Ezybvpx1!bUU4(3j?wXw%d+W84Y!=);5BV&^qonNJOB4Bq zvGB#JBc7{v(NKEIkTWrY^%e({)#PBbQo8r0QH*FzhCQ@(ld;^ka#fPE4>!9R(=rfn z$}r1hyxNz#6)gVzicIi z3)%8kS0jl^H`>0Grb>oCz9t-XlU%G}BXU-oQLG_pve^_d;xM7_m;r-r^^Z2`M5n>H zU~1O4`m6SNX6=M(9jm@diGG1vBVDt;N-ESW#yiRJRydo##w`!j&8E7J@AMfmq_(9J zxQjiVhI7kf_!(@iCoD0d#dI}+?A0c6+jGT6YD~)=iStQpwoU9-6&Z2R_ILcp)5uu`H_OH|}YF-@h)b_ylBRi0m{%!aPiyLfl2b{bE z8LCD7R<%^;LAG?9Na8WZ^HMFay4_47lo~OZcmahrwJUiJs)llG32WP#DiHy(`I`d7 zGk(z)fXLi3FcDe3^1GPUU6YKPrJ$==zPeSr_~mGLV3dB#gbY#fCWslZ(XbeE2wv|z z@Dn^vP09!^)y9$I5yv%K{jkzX;fc1Sp#o+XzWmXnZE ztM`do*QQbiuQN~bJTlrCO0h4KbGs2|B;UN~>k7HYwBq{ixiL641`GhE`~sWXcxLZL z>|I{`!|n;$>Qe&-Jv=j1YS|KHxj&OF%EWzQ2I%xmWMz{3Z! zUkts1hp(%#MK+T|Ul-_-W2*bJv7)bt32Kb`{JUkU5bZ*4qfnsitA$Tguj*o0k}Aby zkxO*00^rADWm%0&s1Sf<;)&QY)e>*M!L=zcNlMVb8s4r!&q`U>b&XJ}WNg$&3MDY3 zk?YfHV0$6Lwsf%WJ217Ywy!7yn=Y>+2rUxLaOg^LuU+Q?+kSRXJp+5)5}}Jf36A*~wE+OtppSTE2Y8e{`G$N_RG0Fi6TN_)uu6zKCi zn|?p7y0u)rM4$l)zMwp)?XPFmx~d1iL^>vbl5(&@UkK-S;c!X5P#BCM-tvjVjv=Yc zJEHlOs&IPF3NC-vt@_H4fj`pO8zTc-v}(o*F5LbqLccr80P4mu1I~Rs1bbIWj%l0& zN9T=;fe_&qDtCXQ9hM!9PXx}?mS4|p&vzKdJO%t)>JC<;KXh5jY9(}5US>TPMl`r* zmW^EnD~nnxLCCI^cD|$CLxCR_%LF@xRbe2tpUvVO5Yhj-fPSlXRGDK-{Lp6)iEX!^ zb9|%dt&m>&WfUF*2Pt~jRnVUdBZ*xp&JjsNa(su&Z+m-t^S4!Y-fw&@Fm#MlwNLNt zKfbI9^*_r=118Eo{f+frq6?4`va&efjsJ%B`X0xNj;?cU#UZ>;*oLy+4;2(=xPQ+P zo|?YWElB6Fn|I)T;2| zF82}Iis>6F`j)(WJ0Dm?@|cj#NJ>lpluyxg|0TyTU7Qlgl!RRbC{8tt4MUebgP%(% zP9-Eo1Eg}`743~Wdz%IfVBi(;fDBgcPH+%hs_y<|&un)i7LW?4xw`Z3xcnNu5SV8! zUN3t#HhGCc-_2p#wbmn|6u9tw-}SFYSH5KZxX>KSdaa?K(!GjHT@+zVh=1F?A6uwg zSmzJcqg3DgVo~rPMh0twS-ycdC^?0m-^cD9fzV0dB8jd&c>V=SZ9->qoB)J;UB>J* zj6ir->uO>>>=$yD^vmvfOF8Y@axl|ls3-}9?9t=h(T*;QL9|vw(VghC+T3GNEByMX zbg_2Swrxzmd@zf;o}_!I@b5&zpK zNaD!%*`YEtU62yNWe3e==U3fcAJq^fyEVc~b6j7ALX>7Bf3~BoE6+t9%B^K69b1bU z6$1OEpVc});c&~pldp(L7K%n||^fsh4b zshw-Lp&j&t@K@7v`a<-s9B^PL!@k~Bk9W8U24yvhoW>*LzkpFB`kHvt%5K}tPWJvU zg%z`i?~xF8;LwM!VFrCd!1|Neaf;EwvC@jA2Z7`JOTkSLGDK*fAQ?jbB~}{l&EFD@ z6|VvzpE6&(jiOHDv-wbiFZ|fQ?Zqh@kq~m#ZWaH8<%F*ueGjH%=E5gOV0S1=e>U|p z-j!vaS?XnWFcW2BGAj+k{d4#xFCq_=p=tRg8$J4`Z6R*W1CukAgis_mmC%S znk?Q)%d1-@rkHgc3Xt{ut+Qm2F9YS$=Y8?X#j?gwf`**;rnwL;ARj zgnjdYLZ#!Tt2RsMJ2p_Ibi!u&~jKn7IPqS$PObP{ateGacZxn?!6LcN@ujk7f8?tS8CeejkFvp)@TyDBq zhGm-V89;W5+3nGH>EpaPj%Q9*`gkA%L^3I>WUf`jRj`ci0{$$dv8ej|mA#Q$!-gzYyZ@zSh`v56jvW$x-?TSNzSt3i z?iy2Ng7jk(gw2wi0{rBT3F?nI8l@3ywNjXCRzHzBj?F$_FTYP(W9e*<1PV|EHI~aw z`81dpDt$t?v%9BDl2&fY;s)H|B0L#0JrQP7HV>6KX;!3uv6p{T12MT(ntnSpJ9MEE zTY*Aj!g}hH46-ejH_Z7}^vY^`vN=Z9_Rl%rac^UA=Qikt#rGd)P4 zG$gavq|JENYU+la>D`6N-OkK=Nf+yQd(zb5aD_OU?(J|TVHl&YBGF{KvstD`hQzKZ zuH&=wW@Q8xwB21OZGBIgdXm-QK_|%sV~q8DnT}rtUdH8!GPek{q`=%7CRXyC7yQIIII+>@oD^7H>C;gyTal#_e zq^?tp`k+_!vbbuf7-1gEGfsFzMSaO@0%g|&MG%A@Dqk%#^z^E^FpUn@T=lrx%|km3?kl}#rgOE^NWrssXOw;V zF_e4~_iW?k*0#5JFX^+j1UVF(=tu^*&Os@Ki+u3WF|g^Y;{f$SijQB3Gu_z%f268b z1#+M2Pk_A%g4|>);IBOflJu!%$Q;@p9f^vkKfN_^ zOA{=-hfj&JsAR~t_(JhAtj3wBhUjL{jMs78;rHsA?(|u335kQqWXK-s4mEKI!-g>S zuxcvM00L{yi}`ZO&(n z9lv{t{WVjTw-o8ZL5D;7s%+fEYBk(t9~}vS6dej5A)B!i`6Amjs~K7?hs5qla7Kek z#GyXZI2p_awGVwMtwfVJrkcawMMJ{4KV%_Mvz+>z^X%kHjP0ZjO$WvOe7m@5$$Oys zdcNnsu$?d|KZzm-_RcowDjfOH&1nP*Fy2gfG346lw8`B^patWN88PBYPLksX<$hq~83 zTR~byquy}vFshNl@&Q?w7gZ|=H1lhiKxvn1AH!dTTJS&irm-#=omai_-@Y;YG2q40v^b`Mo0&dwL=ryH zCU^W`5mJX+jl7>e23R?tNV1B+^ClS5LK}}`^urd_{6vD6qT`4InyCGPirx)3+%+G% zrj>GlmxpG~$#XT-Ljr!6i8~nDmA|2809R@a(p(rXgo&3xKpS`KXP0o=T(D;|x5Ytc z%|x%~@a60P%ciMNnHLH%A3B+&S;7}DGZNIw4J+CV|HDD@j13Nbh*GLeRVz{)H=*_X zDHV`OT<>j1Q-B&Hsgs+OzXMcFUL=A1l2C~o!zdSv)mxaeg{6FpF4Nsz&6~WnbyNfV zYB}=sG&j^&B`x9O1TbFKeQR_eBY%JY(LGyxXqj7#_0EO)8xz%!j757``h+Wnco&v= z@;&rVG^_D6XT;TGs>_?my~7_os*U-MklwlTRHe0eHa7QQR(m!;4c?CUxpPZME$b;E zl`E=wnm9wnZ-vR6_K-X@&TL!0Kw-@I{8nrppCJetge*RZ@UTpJd0>zLOSZ6}+aF9{ z%Zi+zxTN=eq(3U1A=uFv@eZf#qpD(|W~(LIFuC_2kgk5%=A4f&)&f=bBfs`fldr{% zKgb}am%n`H5EWR6B!*meOEX=68P}2x&$qE1TB6)ufG=;6Um0a0Y*0-Kvnf|Y%W8^W zDXMftUj(4RoP~kAsHjZ@Eq_#;JbhEMEk~CKw=6fJDi!8jm&rSl&!1M^!hUax5B|~V zi~2{ctuj5_+uZrxb$vRvNm|T&G}~G0pVXKQ0WHPI#KRad+sIkMvf=2lLON*{YubfM z3{4d!!UYonxZofrvePR7SFoLY z*?BU>dsSSUKFOIaX^!gZE0q&gRxr)#Yms>9Io4p)dRS069O)O+Jyzg$$C~U>+l0ZnLMjTr;bGdc->B>n;)FpaCEoy7 zXSC63Lh!)Jb;z{M%m;X598>Qs2uKvLZLJT{qohqNcjV$sA>D2Nr?BVoV{#4Sh=_>A zDfc4Wal>f9G7dSD>MpZg2=#aF{1&&inuZX4!Vy+Zd zy+GG{C{V-ZFwF^o|N_=p(tS z5vb6?z?=GtlCx;~{rKG}iV{)q(DEYzaaRYOJ8v?xy`_(qTd0zrJZ`lq9!N{LG|V1d zkHstZE0e<_WE(j76z=)g2>OUK%JX?eJT#5{c5)?` zqlari-Hr0IUj_B{5Gak&SRO2dc+{`O-_*3y*BkRr{CEH~?b4J$@MpM8?fbbtLRgm5)T zM4MkLLm)baKGP%k&jl664Ki{bW$`+x_?Op6=v-SL~`9(e$C&0-hl0`fbwRFQ&15}*=^3( z?a3W?2i%SVcq5`*)4)qn%aV8X&(|lo%noGlB;n!!uqlrS#bJwX`3WiZ8Q|a!2+@j1q0= zfafo3_kENwH(B=v6ADI4N%!|)9t;E|C)D~x#q*(bC>CfMKFNQJc||kQ0+Rm_Jz_sA zk!FV#L03M0+9XIoN*!*py1H2?(-)HfJKq<_LOU$0kiZnvd^2`k7p?V)$Pw`0zA@Vx zqnIb&mLBNd)=2z2=0%m}g!)E+hOrZhWk=|E9Rd6GW@WYx^H)hA0 zQLBy@6Ek)zK8hM-j7vzGKATnx^ZRD8iV`Z?S3KZMTYGDDCj8d06h=RATa#1?AM>5VJW4n zv>zX;JF5uTx=j0{MyzdoSUbLMmI3SazhkO&8{ymDBuPBt%Hw^c$%@kw>kfFxu?a}% zTQs$=ccUhW8#LDxr)kz2Rom?OD!H4jodkkx5Sl7i`Gz^`aJurV?4`c;CI7g?)u7)z zjv*6Uah;3o=ltqZp~)KrvmcqWE{SQ16>9t8r`UqCFEa+o~{f1ogAt?6gMq-;N;A z7l**GgL(P^^GD1-c!XxA^EJ%*js^ANK(w3Lxj?L}og4gz=RJCP@`)J+LV-8U+{^an zZ%NLY1v$wsn^wMWY;HmoFs&LYjNmk6UbE0~Qx~aKcM5vdl&MV;lRYG06cbxRaO-p+ zS-FKI6Qhr?*e1+S*xnU&d~?UWQv`?qamrG7JWQ#L3S0z}z#-?Kk{f&JjZb>jTH zw+s(J2ba17Vy(|4{jpu0G_2~s39T#2D@}UOaT3S7J*i9q!;-X6oFIJLkAkY~V;PWG zH(M8qJCRH|LR5l2XJ#2Ng1Wa5{v$!2J1M%$H;%rMf$dOF9yX7bbe)sF&a_YdXP{C= zYLc2*sy;R%b7xVX;ZT-2aA>6M$k8}>u9ykVU86bqV)?ITPk&soS{+fejk8__x!|ej zR(~8x{TIqUz4K%Vv!>{zofuN|kK52qwr4INPf3#K?hWAwHqq4@Bgar;{I`UIxL5a_ z7i`=%qZrNC3ZL>M^qIX2(EU4K)D@LoD5`jR+-b{}X$adc)$q5w-5#!|l{NQl^4Ia64{@Mm4 z;LRi0`_`KFiHd8U_elpDWy#Ib!}$jK3qDd9)}=6h)K7toV)xlxz> z^~&5{&ua;eVQdE{k-YE~iBuKU&q;Jl6F*@9#49+KMN-{NS8l+>3zlDA(#(&>>HFx} zB6lNyBqtatifDU%Foi2hK|q<#S9AYbvEJv>`-a@rvd<;2V8euA@eQl@<0p6r>ilgl zDUp6N$~(;XzQIaLn<7CGESVgkWrHGRX@s@W#wq=`-}TQIwA7M#M!|cOyM^Tn%jPW| z(z?-WXAS?#Mp&_WmP-F!JkCz3NaM-E>Z{dv!liKrqnn<=%ac9wTwI{bBbp0)RjRBa9muz3)@O)I0{u~mNFP-U9+x#u>ZR({u7nQ ziLj34pqGYAgVev`&)!62kNgCfE<4Ic{|PzR#@XPU7FO6z>T+X-Bex<6d-dG3aA%4X zjnFT%kU{4Yg5H9q%4}~`xBeqjLu_k+vLLz37Ngbxh~cyLst9-8q-q>g%3K&OYAzR= zqMnXxtxpwn4^SniG`0)?#XtGpW-B0BCj>lwP1fz}pq0#G>B#g*T?#`tbt+3mUKS>( zA8)K!>I}GykY-oI6(JgUnD$t+jY}Sy75I-%w(P2H*1gN7PB+OLhrN!OUdJMT8ZMcM z*BnIXK1jxXXxn(8F3Bh{@?Eg)>_Fk}&BlqyjpjiROx(+rs@4&#R?5(@d@eJd_VBcb z!c`Ftv?>#F>yi#M>kK#hyb8QOfjZGNXduf=>ZKaU)~Yf0o6gpHtqosw%6x2D$WDmn zM?h4a%x2*B)%O)&HOL{KP3N0ME=M(3APB)vME&J&VyZ=P@6&5pT|Onq#@YFEUu%vBDJ~e>6$YNxd!ly_wbMpJ zyEHXew=B5x6&Io04?F97h-?t18Ud4HkoFCS0d?-vBoPee9RX)2FXi4`oZ14=9aQyIBMH zw8TqkQ11VrL`3MUzC@ID|Gt70!+rNGm+`jWW*J&=*d3ip6c0`0ACb~5Fz0O=DE9Z+ z9B_yo85v1bdj|bF%?Quu=(%Ap`ifgdTiq$8UgZmiB;BCHnm+d%-B?n@cJTMM63J$x zxFi_{@EtP<-z%b0ql2RYgV7i7wegT-(Wa1HqGKYxy5oY`4YgaY(iG%AW=N-T^}TRj z!~CAAJkj?`arDuR`hZe+C5cUR^q-0}1ugC~wI>3DblsmI@yhtT9F(puq5 zNovEU!JIs;?}3VqU!tvYgFuC?I3Ys5)@V9G!(m>5ie;{{eqAXigGY4UluUZkyIkmwv=hRE>vV+BTJHPVMSc7 z&3iZduJ&w06kIDSFQN6hc9HKUji!umlj z!G{I;DK8%lyR7nqaNXn;gW7!t7q1jwX3|46oN^a+9w<~lKPU`4SFG1B#Bje^&s7r_ zqSo*Xd%MF}%JUY`g3gM+twMK`HkA55&Q)jnvo~W6FD+Ze5_~rq_Obo1;q*h;{-SuQ z2BDMQ#(j#{_Oi-p@TE>W0RG1^%@!#UMhvT8teVXOJuRl6j7jHOU+hLmIMhnMt$3k= zwca~{b@X%eh+XkgA&6w8>ZK}v1dOOZ4}Bm4kb=7Kru<#0a~q@4R`dLuwj7{W^UUa| zH_UQ7;if--t^f4G%B{TX42-qm^ffEX`Mf$g8XNs$p&S73ujc!U29xz4L*?>0v|8pP zL>~PbA=Cw-N`-9815P@(dkI6Y6v~dq$_~87?H8E~qMH-PHc7phU=snbjd`q*{ z0@+6!=s}f}L-i>IsFgplxDUF&jqCBAW<(q%dtl-d6Cq?5hyt=@zXuI1@xY9;w}1^> zC7&MSt3CccqvbFzrRM!XZpe3UfgP#TT~>^dGxfxCU_nFB(KLq>9UWBQ_GuN(f)B^( z_AzP(PU_z{XX0kQ;vx9Ha}LkV6GQNQXx;5t!rWaghNpZ?h8Or27Y`G`-8p|;CEYi` zA;sR#cFKcDF1QKp)L!~6r*3#27A9ci3-L5z_;W`bb6ES6)%<#DN@g#bKy_>>;QYMx zdCfsp?ts@r2~Sv;!7$(uo<(Gze9UJFQ9HS01eT2ksqSPi)8dcQ11J=>C@z?bZ_tyO zTMZHNA|wBZU%g~6vkJEyKr#P}Xc>A4t>UzwgSd#K(U$GVktxt<2Ndrl;LSmqnN#r_ z%l))WuF52TAEimD4X4#EvYy%S%TJpU&iGSR0|Jie%_94omHy88j*wY+G?6iVli-66 z5H@cD>p6EbS;VB;jdjv_gZW-w#cQ*WvgZ9*463QBX)H8Wa|iGZM`f&gpN?8yRfT6P zt4O{^jR~L{r)-Bqx#iM+(^&@A(Q#JuD9%s3f-y*5FdDGeTbT?2(tM^~If6;gbKy4| zsFYCYD*Jiu<`RX!{I(+1Fj*T|de@&Z_0zTW^z+bOHbgX8TjQ4{rC!)p-56a<#e54+ zU`5BU%b;mO5JgIQvij~=Y(g9$gI+d~M?=pW0aVEnM^hY|ud0R}S^QgWN%zux#~a9E zm?;Pkt{w!UlAWt$Yn%$Z4j&-?d8bkHcQ&^J2eRyKHzP8`MUup|zLZ}%O|hK}u01Zm zG9vEYHTDD>uA35a4!7S~3ZyPdp()B9j4o@9FlS&YoJnu8g9>Egx3bYHm#wj6hg*t^ zhta*{Wy*@`nQz1&_4~wxP?4m&oOQQQ8l-J2wMwz8B-9=p%i?Gs=eU2Kr5gYK0%Q9; zRpvg(KFX+YJd@Tq^_Atl?m zTVRlPPwSr!6%u_{hS%)`sDsXM#|MkRTRpKAGy>5y((<^zF!RV_L4PSF`E^@G-=SP@ z+sHsi8o0-F+RzX5fPg???e0Kd&hy^XUF;IHh<4t&1r zaCi+k?ZH61$5p`T$>H?hDuwi?3xZ@!#jRKT|I^JcWa=!CEy)`DkBR8HBH1<%3Gww= z6jPp(0_}?e^xVo1>k5P1o=}ZaQfsUa0c7%RHz(l4hWL^WT-oU&l@Ka1cIJ&h z?Bnz<^p!W>H+86fj@#9aVMHvAPc;4Mz*gO~n`-LU3$ZK;FUyJi512|{UPuhdO)%0Dd|7oXXihmAaMn*Y8I(LB_ByJ17?jVL+%uU1FKsa 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

      3mAq%A@l##uX58Dy-ko^F{el3dTN*HzZ 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�Vh^hk1m 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%0Ad6Hkv5h*Ldl@-6gjE=RT9-asLgN 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∾)#RN5X=gG=hsH#2V!DU?(tk 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ⅇA!NtoHZzvJdV-XI%Er?E?-6!kwkOnoTOagjt4s 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 y-0qdTN9DgcYphwFg|+%XYrv9HlK2qm5tN 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� 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�D2R>rQmRO#pn2L+uWnCdA{ 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

      gK#iN_m$w1;L!DhbjxTxek|iyu$eR>=ed`>q zy6yba@x!dJIvm)a5j(Ute6xHH(Klv>S3(3N{9ASyZM!C*1WA6i>z~3u{P)1!TI*ip zi;I1j8#9BeGU@5_3jghks*y6U<<{KbIx>lp)tnt#3t3NHhKTg-N1Q<6@MFbKLnjel8pIBIlAw*t$U~GF`(_3-QnKg__bSqd*5hFrP7j78H)az z4PAYN@5Wbwi|AR{ld410)6GNHDd7Y>H8r<}6A zco}8V4Q0F@^dW>>O3r@E3t{l1P-neD8Xn!+flM6P@bvFXYR%^31eC}~X83$0Sk}%3 z_szB&!K`jP|E$BVv0GL6?-hqAlORby^RQ+A`0d@c;=a8Nd-GhBb@$#8#yW4aafFXE>Wy2GX-R7=hy zpiUhB>EZ+Y-WVl`Hyb)T4}^UqkFegShWXIdHFx@b--<(>90F7N?8{h&{gubW#cy_D z`kR$M>I^h2j|SankX%YDO~3ndm#DnLfn={Cmw;nn%4$4g`nw z$|_*aaRqCFaWxy9^3ycZ1LVR)yAnM%7L@z1m-xCQjwsH4^&?TQAg zr+bv>8gr@8v&;lU?+Wa?3M>tn84`#4dpY-y<@n#`IPOS1*MFPz2A0J554fLIyRoz} zrlVAO#n9+yqXg;eiYoLOq(DeQW*uJh?Kxoim~TYQY{umzN$3_OA{E{e*-?WdC`7J5SkzFw9_yq9_#p2~tH*mJ%-YuzZsF z|46#V=*XIG9osfKp4gn&#>C0Q#>AZ1wr$(CZQJ(5$?f-k|IRwyt5=_@I=de1+Pgi_ zVq;*ItE<1Lfzs)G)_U)mAbJ89{*zEdWdDBdzc6#~NMJ^zS=q!dBJ$Q2aXd6#GmXha z{#vkEz&(j>Y-E|9^)oC{0st&L@pRp|@igW_<{4_#IAohFzb#dWA{uJ#^!K+RC%g(@ zww@5MWIrOHk#7lg)7lk6oAJIPWla^GN$JonrCnm?kIF`t6Xz=7{RT#`SMPdFLk6VF z8ig{SXlUmk>F$4fFSn^PowpD?=r)H(@1I(iP2dFoP0=I-4Iy*+Y^#=&dRQ~fyPU6W z3N;HcXD8X!d{3fT&`(wrlV(Kq19V1U&Y!BV4h+GD6^aCAKWsXA4_?FEnIwU|Z#2vv z+-1nK+vwoqJ@(nI5&dxu%w@b!0bkK&>+E655Ni@eTFLS5ys^(bquK45Z`BhRodT`y zxpPZ{~I!aTFtBD2F%Xn zhx{@rOF&_yaZk2dymPUcpyb4LnRO7BTqtOSzhN2jTd%Hh1^_ZL2c~^A|VsoXRM`7lA$4k(IY4FblD^LqrfTKsn#*y0Vhb4# zgSFWVGN=;Aa#OI+afsU`gPK7w;=0K(;8w@){KHnMS~nAeo=NhDRieT$NAK{HH(UKs z|DButoR3NeP?QZL(%jDQnPAf73f9)>}IDjj!tTpm4Rstuv! zV|05TL77vC(I}M{u`Ey#xttKGUIL2vyTVbJM%Xpz$qVSwxDj(omY;!-{5Umm<{t4Y zgrou4+{q<!!nrJ2I9p05@_OXYMq`azAyIeEO|1s^dytwW=_B4fHl<6?c zmsgkRT6JZsjw?`*f%dFZU2@mAzSXxWO`Z*~U+;@|XeyhI2KNY1UDgoP+0Zot^|I{7 zm@Szq-+&q3RL%m5iamDDL^v0;Qd%Fa@>-q5wdF5wPH_j{<#!$^`a4X2!Vh{Ao*~O3s4FsFW!3^cxq97kfY&9+ENaTN4WWfC6#Hx7ceLF@q`M@}9kF+uasOq9Z zzI9CZ<*YlGpfEzOzc+4%0iequiz&)Ks}Ttx#J2{XT%j4QG7ZTpac#7x2<~FhWRZj={s1T+PkDbDc2v{2S-9S#VEf9e(xWc9 zbRG`UYE?U9b}!jxL9105*h_VB9FSkgvM2_|Y4}~V?wM54OZnwEVkhmYh<%wgpYORC zwT1WK_@Pi?4vp&LrJTJFf{<{8?ctCsvxx>2psfU>W2XNeNAh0Z(y|B7->RzfHFudy zu4EZwQev5=aV*lshU!$ujW#+1q6-B>>MW{Y>`P*8L={{@0bC;-Kx^4P`0g-YR29r9 z*mIX<73QpP!w+C(jh|9`TzzOXOQJZEGXC#5hzK+yW5dqlyG6b#qIW9oRz-NB^T4&R zwFUMKY#hBJ@Qhm~8TzI3?eC3qGlWX{rCx%ZOeOK8ob@YNlv)&p6BAfft^CrzR=ibh z*Duv!1ykZ2{5+XeyRZ9SItGfm?Jr_ylddIXEFU>O^9=6aF`Wxs}bDa4%zQ~}p@A*gB0H6Q`F zCgDHPq@T01pwb+TjryJ4 zWGZ6e6K0tv_IGAJUUA_1vcG??G<)BcQ1SI>DiE6{J>uL7^uHLM(}1jqQw8hE7S@wn zh6MV*Ol8s>(@X|<{W5ZKFN*HeDL(<@!;8weItLfq%6;q->j>n3q4rXiiC!QDs@h zjj~czm6 zqAZ>85Zdcn-m&BsZ0nq@)HK6K=Xg4AN)qncqq`p9emM^Km~qO-$zgE=i??3z=pCQ+ zu2N~8_P&4v)K#0|V>J$kGW_xVKF_e4KS1kXk1{8B&US$9aoV%OzIbN(0@utt)NP-7y9Yzf1*3yLzqZ_g;M#FjjWYLuy3MC| zCFTmhsTt0`WtN*ehMuLM&RO6I7rF8tR$L-ulc7$Fv6}*G#&QOUc~@V8cY;3(DniHJ znQUpT{4Y*u{td%AA~_6hZyxk&7q_$7k(H8&#krG3yq;-W4V@80MrcP==nvyuy%Cw| zAwjBgTi90cAsNbf5bofxL>_>0s7&KaQjJm4vTdmK&SE8ZCV|4{9kKO$q5v?C7<+Oz z&D73`hKHDc9-C5swebbTL&(OX+SrZ}TJkUNozTUzd4TLrJ`RHHE;_L7Q8f{grbA2< zgr#w)Px1ypWD=9(9={$0q!bJuT&Rde=U91=bvKXR)jY27Ah*NIr*H+>Is8pb{o(NO zXivbjZB%J)-$~(KJ_?#`Bu<2D2_w|1mABuyelu@U%0=RYTMPH?BD4OZlbDlW#I_5_ zdaCRdfJc>n7iYK=3OuOYh3HVA^>%;x54J%ugJheFCsmVt8zV9I`c&QxF;h{7JDFfb zip44I-P8&GVpBhSN%4?x{O(J(sG%yKT9 z1^o}JM$OV#CW?JgTQN~o;cBAT_g3isJbwL zL*Gj?`SJ{cCKo-{az#NTCaR!#JdlKS5Y(&Qhb&HGQ7ltE6B()Fx>=tcO1?rTh`U)B z6NBYGa%BxbztOJ|O&ZNqnVa;-b{N!dROH4o!k%o>`$vFO2RO_bMNPj2ea`x{f!M*RA)dz{!Owa|0*=Fuus(BP%(YrJ#E)?(&Y9Qfv{Dc2raS!yWt4_WPpgE%eZ z5V>}9!Uy2fNkZJASirVO8ic{bkd^XZ3u4r*0Th035UY32V7=!3%Q0GU)wKNAiaFZ} zESH43+-!1&-5|;$8)%Q=6aM^1$G)Ud>4V03_XUVEP`-bv!oA8R%%=veadN#=-|L!O zESffqm}E|skt_DEQ@Lm_MJ(V@e+k1yTpYXH!O_ue4bj$aUjw=$)Rke`%22}BnfEF; z#CRI)o7)-jm)uWl81BEop=Z?d?~FqR&r%4fB1phK@5QY>HCY3`mdpP`{s1a9tmb<+ zDgRU?nZic2Cd`Ife?7EY*161-m5`e9;%wN;eP0y5cI92lAjbY+@Ti7=+VmTuamoIy zN!Shb94QiZ?wSOiLktMBF8h6&k)St?psnx}>W6NOoV<8UygFMyiE=zQL6jo{6fNlQ z%ouW2m;Ew-#vBYP6vmSQ9{!1I@GAUK6Io~356ao0TzDh_nL+}4VRUj*J>*@+Kt}5M zaQ_)}^Q#<-#+Qk49|I`Tu~N|OGnvUXMIYQ)>kNUCYBkw?FeI@|mreary?1!PoJ#|Y zcqaC!s-i>-0Zf`g$w|uDCNxt?p*|wlnENfQgfdEY@9KMlF8gOVdkJ-`=0O1#Kpd&& zUx4_{+{BjlV_wSe@z65eSF#$9mLgHgf&x%Xj#O!sSh*ug(2%UB?}EYDN0yL$Fguy30nY^p;ft?G^FLJqybfYGq;^>|5+b> znF&F5#s+7gn^{+UtRSxX5MF2+Ka!4D{ViPx6Sf}b5w)ZLN$kx*R9YyDZ9xpCJ~#+g zM~1=O+hQ$W4Y?Kve$Od?O%7(~odJ5=Gga#3_jfI`5MF z^aLl+OLJBbek1WB_&~5Ur?y%Oe0IunIj$5A3aBrVS75n;RL%9 zrit8?NTU-rGH9TyhT;@p^Py2rYons!VWoulm8Mh--WccGX!Mk=GziyI&CY-g`^g28 zILpvjI?gdSrI5ofvFf~ZNHi(wKynI4fs`mZ**i%geE3g2>)wGjM$J@@3^9HiPWUbf zp3aeVpobj+YCUNtO;z3avwk#&VSW*7EjM7cX~rSsE33Wkhg#uXC$@5;; z`R;rE&t?~x!VIUZGqS-0DAbNBxojQvb&T2lw(ZCSiqk3S1JgrR99Z0|%2aw;W(nwH zwy43Kw$(C&JcTJxEN1wyGek4w4oN^4r_Uo4@8-}b)a?IHPv--HTfh{SEe zb2}KvocP~6M%t&p0gTm-ZV_9g=NhvCFxpz!{g^|tGtgA?uXPuswHe8BVR z^E(k@rUKM;_GkR%<~)ItV}TRUQ2Twx5*Jj(_d6?h`{reV)r=FE^Y&4uPUzwky3yCu zpF|7PNYIY`XJ_2IIf4Y7+XS=-ii=jXneK*a`?cOonU7mQi3#zU^Q#F zV@2VlM9mc(ORj-hF4HrSfP^%IiypahVtHOCWnTt(J+}em>e%_%_Q&V%cTXa|p`?JlV*%+*DT&&IVdeJ}mJ zre}_^I^`r5_iulV!WOfL%mc0OpIzRC07(x)X>?S-n>}Oxr9ABaoCdO~E0`c31@`rw zC(f%77wlk-;M?Qs=z`?D91S^B?xWE-v1r#xJ30{wEN*ZAyNg4J!cCMoGMTN$?*d)I zY_8gYs9CU{$cox%hWj42k7pOe1By_t1`nsW815B^4sSvkQcYUG?a$1~9OsRm1zW6Q zx53(IZh=Vu>%8NO1o^v}^(UHIx12N4D4G6cAjvqF;ZZ;QyrRP79>tZ9;*y|;>ZLF} zl!6G1F&`pTB00(r6@5>x>Kdxf0CcwCMcYib14d$^elT7Hx5Q7_K>v)Wn%;2!z$TF#APUSPBdZpFpvpRVt_E7Q z-;SK^TIwAOk5ouSjsdi=Ij=_)E=hV;5d@6whJKf;yW#DsY5_VNZVrfXJ*79grzdQv(b%zQy~2 z-sQ+hyPt9dOY6=N-yRogAaMSSk9~p`0E86Dfv0$^i4}XN42DheD%+ANove zJv{4|cp%g6P#e0mXR=Sph|G}%42L=HtJC(SD}OFuWVxA)XB^|5s&wl|O`!v<-ftbo z&r9dFj^Fy^(EpRF>UlGa-f;J;{^{7d1}+Dck6@BCV=$7cKO^{~Fg+ujhj8_O)(+G> z^p?UoXQOk(NoRx}l22A-BI$1NJM>cS^89wI^IjzIrFNT2KL0)t#{n4BGre;8puPyx z!F;OnE$qV|qybi&LMPhVw;@4R+QPA;1{|E9HZt^#)Mm``Tsz4cx2kQ=rLxuA6~$`h ze$)aI1-5LM@r4%_2|!%k7+~%H#EG8~U`1ybgV;IV)Y71ZJaAYoI0#;BwlmDJRMww> zI5lh1P9(EbJDujV)r}g=jxyGCF=-z5rf79z{Xpr+sh|%exoL7PiTSP=Ug}v!zUBA?b@9_KG-T{A*5jhph>Z(p?(Ncv z*}4iv@7E7WZQ0a~r^h$K1?}#;Ok#KO(H=1)C`gr}5aTK4Mx#?}+;Qr|+G6qbbU~ILY>{lZq zK2yspm~6px40GSC|NW&5<&-fHiN8y=)a?JUntA6S*&xlwWL@^qTU#@4E*AC+QZ#ie zc{b-2xWV6s&ac|A^2RxZ&JNUNd>?ZT3y+vXkRr7K2I(emN1=S{W_v8mcXck^G{)=v zvb_9@2d}MAmty@2hyq*Pg7l~t7ypZ2`$SaZJRC2%*S|_I9SHHsQP(US?HlYMVh+8M zn};cs#lvRr#T>ctXYYF7bsNH9N*wJksQ|6+cVGaZ+?RUXtb9y5u2a#cD(?Du{ywiSycy#{SEP5RYr zd4bd#N2+8Qz%qhhx3->Xf^1G_wr&WN{gPKqTqR1BDXt%rbdX~qeU@D$D7vmaefD3T z@FijmEMj*Y+5?h({72UoDjZ@-QC(G~i1EA0l!KZa-=kaSU{`Lm!}78+AtlEUnO3`6 zNp3LI6M)JAYxzz?Wnd~OEU^r*_<`&gJJnAY!_Iz5B}a}4SmYZaFmA9Tk0}kq5Bkso zoT22I%@Y9Q#|W86dvS}R<02osm1~~q?i@vF9vvVfh|Fy;eHvHpkyl_qe zB|6ZQEG2#VeZ|T4J3^NRq*@gZSpxe=Dpw3i+;_t2B+#-U&lxo*E(Ud|^rU@!&jSwR z=3>ee4n&}3<?in@yIY+OD^(o& zH>g5d7r@-p#(2nQR~snY2$*=wc$6t^| zf4U>4W(_y-r{Z8@Z=ykX!!VOc@C=_@xNQCf-r&+olgTny_!q;*+vmY(T0goxIwxkp zFnSDH-;$IWMB^@u^5bN~KXeB374u(%qk*K+JjaV&gqcD7NXO==CDzKOXm|q*d!{KH z&`guPAH~{*G`KB6Ww-wI;t#G&UK~MibECz}tCnLfAoS}*O^ZLy8WR--`-F6jxmqZY z_6vp$zJV`aE(<1`cFNcufC~_26(tSRAgO3t$>M>4xm8(mUr&leeZD`@VU`9tb zhW+Y(kcD(AAH8!Zw=N$7$rR4PNmeMlC$YpARQN%7pbv|o4lUq|@@uG05)edY86tN0 z&)Zlx2KUB=PO8r|TH+IAUi}_x6j&i<5u?Fe66{r<{z%sqtYcg ziVQ8>-l-7)y0&eOxq6>Q9fWgwUM3AsI8HDdURiu)>>#_?seCTTY}FtJ42Dwf!|@t| ziH&&hrv=yEOB#g;g^Q?7HUfQ&iuJeXCFSm*dw`g5aEICiTd7&mzn!vRr?KHn52t9M zZRW(OCGcW?NEQ1*7${2Bm3E?NG|d3R&N<56cIv$&4Lxb1FL?T61(4s%v5es-w%FX> zm*5J=sm5_I6`|*%aK$CKf}P)nT!c9=cKNt6;}3M~TwwiycoTk9@sNPZ*1`2w|L%fr zl78-J;>OZ>v*OXaum0OwT=PYtM3#C`f!C~aG_crwGGWpl1PAP8n5VS0X!uH2cyQzl z3XH~scE!D;h!)AV@-(;>m`m_~7f6h8`=kJjZhwJid@^I?5pa8|ewaC*yeQroTdZTZ zziqUJCyY88o(V^q+3doz1V09+nhAS+QQ&~XoH&*-uIKJ?#!3)yaQWs;WezB64^`x1 zKDNNZCp|LzIA{LB0>J^7qHKmp~=N+lS9`uNL1>ji{ib*n26_-*HEO zH4J}DV|Kjekzz=ahV`pX#rQZgXvK^K@Nus)=j<%^uLe;Nyl7Ty*jz!8#)bzJ#a3dX zF6ULFRhobT^m@W6M< zv13v_WlV3VT9yP?Y(E+*QSpB95d%nTn|8A0&mXQai^~e2_MJ);5dB5sG@0-=xDBLt z;v|UtORQjpC%QR%7(4Z07_6wk?4*rjf!Yp@iqXYAklnX@w?!4cI^x4TtT6bQ;)v>< zE7+(D5e7S=S4zUp6`W|Vz%szd%#hMSp3hn_;AW@3Zgk+=T1jkMJ7uC1;c}YI0_QLv`2^o^zpmCd)8w%I;OcfvkKL*cFs3cpO(Ieo|e>` zD$WqD}SQPO`Y2f)z^Lh5HXa7=~1>2~|wUA&f0B&~h;d+anSi2w|mDEy?!d=C)> zq)$0!b&2R&xON!bl#KfS6hI3!a&c- zls{Ng$09*(V>Lng!!C4OF?rjBWV9-S;gV(o(F#&pMojQe4g1?qNWx2`;9>F+I@-W% zsp*G^56PUNx-)64!()h`peaV~EPQ4kVmY&HGgbs~DSBuC2t(zYBdM6F9w_+^6YJu1 zCO;A^5IzOgQ^hL#lld$?X}Opfw{u9opoP%xlwU|CfCL!Bkbq&uHhk?>TMAgOM_O)> zz!H}g{hi$8)?*JwopWv7S-7(dfDA-#LBGuqMj*?t^iuUCygmU!l@QE$QJMX{Hng?U z&o1$)y_sai1lk8h&WAJv^3BVc?Nms~*2L%y{>ES?nuQ}`onf`CkpHf%edKim&!@>s z&_;70sD~j_FL9^Yen_rjO5qHIQa=<&X7oY&MN(s-OqRwn1*0lmf9eP_xklJ&TR7LH zi@TF_+Zti=Bo(jMW-*=7=Xcyx(gB0KRJx5O)oP3 zx6^+ul#HND;7umdADaez+&Qz14X`7(I$|3L1y70{<;NYCv0xEQFJ&z9HIFexZzA67 zp#TQfmx5E`dgFc^anYXLO33gpRe|xXEqItO(jH-0BOFw()&?w;4;+Cv*%07O3IS>0 z(4J~%Hu>((yv#9j|C*A^C`iO5`IS-Cq_GA5+T&~aQobhG(hKj?qCN~vZjyLBn;vJ| z`~2=AiU92(u#n3WWS(c32Oy@#q)U34E-mq935sDn7WM6lHjpEVXtUlihbDozn7?S8 zm{BgrR=z3q;|z-u?^RCf;4^@D?DRY23J_m2Dk9l>l0+KFCSFyvcya%>?6@5p2RqWw zN?{6SRzh0oxth4+NIB3&!ls6P&O;w&q6}9t8?QSl*jj#Jq-$Nm6S~u1!0W4h0yZ_e zm>9Fc1~saZ3K}*RfrHFnR`rgngT;%K~t!-PTyTqKj#$`bzNcQ zq^DVs5DisEBdAK(DM%Z57-uSmGmuLC{+d$iZ0$g>0ke^L;cun|#qr~l+5o{QU!C_N z+Jvl{Hvf}RpA6VVfjKgarLV(iEmWj`ExX+}>R$&u;J?S|fMwy(`oyWKfFj^#T?`1^ zFd#924PsNTdL=5IyKT35aZ`t7h?=0DqcWgi;M;^3cSXMs1wrSU==Ho_%)mU=nT z4_WqDE+0ZvRH&WSx+rt(wRUtZySu?b-_^vlA}wg`hqG#{b9IR=l&my1m7fzzw#?DGNc$J8ULSQ-c~ zF?Rzeg?-Qo#+f&o5*~iTD!SgTwIhq^+Ugi25C!*ZtsALF*o`-_5Q2YanL0jR+6e)F zqo-cegJ)vDS$3o+OYqAR$Mj=&Brdvd?H9Mh!9$ zHq#%pjBl93Z#LJZ{om0AR1#EoV7DipI?ik95jSzCE5^zP&a!P59|)VrdUf|ZtCB>K zzM7w49c~A!;kyPh?Z>Mg$2buk6ohuf>`Mvrw%_gK+lEG5Ah-VT@;1njqn$F1n7gT?e$>YxCN zDAT5>ze5}K_a~*jp3mz#N%{)0v50?$S$cDI2GxEbZmZ02cK0=T-x>qGK1mv)wP~Uy zbYVf>fV**89lO*%JS~5sUr?pj93mNjc^mGNVtpSbF<9~!xi@T$r5=vl6VBJD<`D~q z-~|}9*6NL(w|S?rKpP@iIrD3ws_{y$4J~FyI`Nxf+GB|$ocIhK^9jY+$>i%=#hmeW+=I2q{S?H0v&XT~XF zOJEcsavhAgVyG{j+MT3lNesDesGt7oT3$4sPu5Y7#KHZsGs@y#1i1rqP9)jBM2Mnc zq;@W6N=4==(JC!(sHGwCgnxtNzlQ$B#+p21*m^5w%g-gX)GF1;cYLhfVAg6=5uwZ+ zUJaQxP*r1d(2-e|gnX5~Q88g5dqk^g# zU?wwN!9okIe#C+u-%K`olr4?;`|l6i(deD{8Uz;IoBF_S@y$OCVfLt$JGWYB#vY5i zRSn2Z><4*A(rQI{cg1i-%W=vq}X%Z7T7%An#oQF;jSLEP?* zAcwL{I`-!~yD@ z!YjW&djIXu3oi~vr>xp*i8qSj8<_Oz84eLmUtw9=31q5RE7-UBm%G?3g|J={ygn3N zt5*y)^9I^qDQYuLOOLny{E=(AWAvHKk)ix!a#Ch0zlHtj?U^IJ*QxHm!w1f}(acpy zbxR?Bq=8USgXNj2lE2O&rcg~qsq+q8-cpz_cihFZY=ybzCH*<^^UQwOl}L{s*PVW* zNwF%Kf+HBRJ}EN9`=tz81WBFkap+i%iObX}T5(|hD`v?@zbyQXE+Y}~&4xiY1?RHm zC-N4dDd(7JSZ3tuP#isStWaDFpI{qElBQr=j-e-7@iQJw|8W=8F}B>gM~z?qo)dcx zoKxCY$47iU$pL!t)_rfomQ3b>;*(+zZeQjNK^JZXg;_XMshj^nQ)pt=#$T;};7?h@ ze4L|B>Zd(XGUNV{?Dz(*r#}UuT&$U)gGgiiEOLww&?#>~g;w2=Qyb*gl~ER1Gnc4g zjy0#HoPAt3_P&s4xs%j=U+quG(KaDsD`4!flRHjR8x03au3<$cKT<(%=#;@=#o`-$|#Kk?D5P&VC|^p8s?7NKUx=q5*``K#&r z_DXMkxHD49ktuCeZsL)K?c`VcwOl4JAMI3T?{V(j>b9w#M@5~{$-87`T=GfH8ig@ygb47I`l06+J+u@<=c1*Te=%Se!tcUZV~@WaK*q>l#_ zy9zIB6`x$lu25anG#Dd}Ekj)w>z};W>}90O4?l94H|5oAaZSmdl|;34M>#y2wR2%< zAES`gsENi3aMGpio4Z?JGguI(w62|4V5g{bjt3D$@|wqj%&weQI>Uz!-4^2r1##(| z!@cBW_lGL)8d^x72m{f_9SVlb=`6t}hEqrP&YVyKX$*!o_O_{PmZ{%%-KsJqW&ZrI z(q`eEC*MnA!#scU)0yeW8-?F~MX^GuLy>9;PoE1cmMg8mU#71kh4IR|)XjOBB7ne3 z2n+W!@Xa?Ky>{G2i<(>RW()(NUyk0%;d0fRjvL|-69rsK=0R1?tm^TX)P3&3lhm{% zxylIIr~+h0#nv8Dmu(NWX~b$64^1mI{5&t;E~LWSVPK5{6kzJp;~bY&ujg?|SO)<; zUvfUId@x79EKROpAhSebFLOL#JBJ94MKSv~TF)=UpF2 zG?O>Ai=%F1SleM5tQf1Bk^F^TqIo1jIJ5^K?qNWAKrm>w4atI_ojz^+t})_OtwgX< zfv{_1$Wfwk;Ml1lPt1%z$Uo5ZT_?fRrCzwdAdsjyR@5Lp4VOxh0*1qe;omIF^@KSH zY{71@aVvT)22t0l#~>5njaU4LuG8J4#r90*`hY+8%O*KW_ioej0tNXFkC*(I-A!%|dCVJijNMdkSGh!mkd6W#ce#<&P}0amNV+GG-5KSH0%ZLq{ux=+1PLjdYR= z=p`!XLLaT~`-!0bGZpdt-m#uHXrM6NX0_tY%3zvmvy7aM3u;5YhF>*FZ5}t=IMd?g zDQo|dA$!iVjOi~DBxsRAoE6NjDmg)RWVS)0gM2_Ia_rd#->~$WLv}N*VMAV#eCH9)fpS+))5B!@9l9dFt zyEs&vZY^kkwK3Yl?%;qi;tHYePEBJ8SpXLNRHtzy{5ZcS_e`c*>){)FyC=t=NU&y5 za4>d{x63)YFmaFn`4i3d-+1TtJ9*?fOF(E;HpaRakUmawvA)y4>EP&${I_B^JDnB& zV7#DT2Revd$Fa#EVDS3^Tfu0Qc^Zkg1rjmE9(vMyh|Wiz(td2SZ267Zwe%}Y__OVh zTs>}{6^k4tzr&6#EE`=@cXqr-6F$*oje{+i>y5L8_|6^Cf{opitIftblC^S zj?5-ab&-eomsC_iz+i1j?GoT~obN^h4q@_;HB$WraSsa0{vthbQs7hOEUy{c*}sO@ zp&C*gz_lL<$W&S8)>qWT|HHviCP^NE#7TyfgkjUI={bDJj73iX)AuJ$Iw9>uNx+D2gJ7BQ|H=}G; zXq*^fB7K_>&q6U}1bCO(r(L5@e+&+c6vI4RRdz5lVZpKonkMBHjBP5PuCM|S=r=_g2y%{W=)6adi$1Y7J+q*U~@}IY6@6SnB)^CN4f55?R(^?#2q-E8B811_?@z&32R z@0sKg(NwA>KNTjxAU-{nOeX)aKR+6LQ;w*~=C1heBK?Z*m~oatY941_CBojc>#$uj z3PIkMwp~kb!D!LxhZxzWNA332{>mlCEDeLJ9l2Aaa^l7Qg{Kx#Ct9`(gkVYM7)Mz3 zu+OI)uK!@K;0l!SrAw9=^YppVP8r^w#-7p4si54Dp07>00;@ymJuaIjee4K0Y{;7Wo60u-q?VNoiO=SuT|Y-D zPtpe#=rhXwJz;>Lk}sREUI1r3)p6*B*vI3)XF(P?ylAT`r&+sDdZ$yIv9FMoP z78Z&325vWsqNkXkl6w`MHkF?&buLp&4c5i;B}XA~L-rCh?9&$+6oIv0)rdqIp=1lC z!lTg>DeI*~6oq7e8SuP%hi%JVz|sA*cMIs(oUMYcWi2+3Yo6_ZhkY2dHppcixzA8i z%5XTz>P>9{5$(8<&>gcK?Su~6s5azC3f5o8;U|S=$T5kIxNHp5_lgwI(8iLA@lrK+ zq0eXwEzL0)s5K#9`ePuN=Xu4 znA)MMilO6Z+l`~@7g=QcLJ0>>Y&$boG(1Lfc zl+Y1m%ojITq|pCT?OYE_9UMUg9o6Twzon(=d-$&?i>86D*Pc#!NX5wnG#p=+t)j-U zSLY0_JoNn2HizZh6A2%{v{|=#_%a7^?+JP&E-`q1=+(m0tYv=k=S9q!~=Z zXXE9D+vz}Fs-YapJ&hf0^^Ol3V;H#QIW)|JWWQ`gY3E+=W%j?7u*W|GlQfRq-MIuVN}IYp z&lZSzQ4sueNw^C*%CS0VRrH)>NQ>@@=fEiP5UA0n@;V}z?vSSka)DSpedi|E`FRpC z$c&B-xd6m9+>#y}NsjAv)yrSB*-Dp^F@pm5N0P#SqT1FV1o-r>;%ak3h+^3iaF=9? zp^^3WOAhh0c=JQ&Q-<%!h}dHzs!Us{p0bc zSjVfrb8O3))!0R<)U^fg2BLp&I3wY7t6HP_dHlASd@FdhWQ0jg;W;U6*G(LvjohWs zqb>k|4utqpt!zjb7uJJ}9k0k!jv}|Ay0FkQ`laWAWZZgTk>Q1N(kzgKFuY7Jt@fNF zJ-))3^VI(4IHj#pWyF8f&f1EH4_EoAgPp*V_0UHrv!&uJDfA;-hyp`VT2}P5qeU|R zq7&RoA9@!gEeDh|Z@+A;oQ&vC)f%B(Qvu=A`nWKtpa~`kqH_PC4+#wZH~0g%1dKs7 z+2!}UZH&Vo)FqiUxb<91R6!u3@>WXtTWdl4oeCWF>$t~*zjM<%GoO`V=#sVi8g99Ih89F{dW*pBS+=RG8@DlVbuMQa4Ur0hP(klut95g^Z)6?_vKO=1>sE-eQetDL- z`Yd&NU^z_WQ5g!R``ki)**IlQFO@CM7r6ZeLm&ikua#&E$h{MPI)UMe3)YcPI*BE8 zt_7~9v-K!BK6D+^?tTsbNpc}-Rp3VUE?i4HEN@ro7$D6XR_cqmc{U1YAp-`I2i7)J;4Af=9H8pcut*^R#Ah2L zpz7a$S|Tht=oWjnVr_p5E@^Q^py*(+mMmFYE5JR$mtI5e6<5#Of{zvQA%}|Bt`{6! zNvp;l1JF{!b;~+sBZGNKVEut*k$)FRl1|M?JFZ^6YPHnH?g+a`QZ=q59LB;G#vXt2 zN}Q4XEaFB4btxn^KcF9t9`VE!jgQihWPX4sC+vG$>7W$DKb0i2jdt0?A4%Nuh#~CK zwu*)bH}Xlh=fhEZW0NSSO#NS!WP{m0`v8)Nvn8i(3iu@0K@kw*P?#%qa&CEOm4xF# zNP%gM0OIqLMUehB9r!56ii6qAoBT#|D7`-yJD1CBW|k&u#A*ts)%0_|EE!Xr9^{Q< zlYEX3J}cq&?b9?wYSn>jJka{&iq5bcUuJR;Yz|N*%(1r{IE>di7IZ5~=qt z)W&>v} z4&&a{$-*Ix&5|LF--*}De}T#?H&A~qtBg(XZjC6!mNE_MoQbY^*2cFLx=X8Arn>Oj z)jzF%yq>xSzmc)>M%51@^(z;u{eD~*9o=n>l>Gw-d(KY&_bpZs4I=i|TsI{t21WN! zG5zzoDhV>(b*Hvst45}Omj49oCt5da^{~tn9TW!RKg-TvpK4F&ShqMK&RIvvp&s+; zH$_yU#D>3l2qU;YSas<$EhYnr(Bk-Jmigvb+2+~YqEkJz9MMj#Waq~X)d&9AOo0WR z)Bh026zm3Q=vG-pt*9T2p51cDJ5F9nZ#@jK6*UHIJCt6XM4gP=<%rii)B}UyHnZ z)44svDHh#}XWs_z7_X&^Sco5{ozLSnM;`5fVEUWJx_zqHbqthFs>k|$sn zTH$@B9{e>)<2MM40-O8LJW>0WTdky3Ad}BFvAOKWpJ6KalVaVFwUf8B1hEmQeKoJn zc96#gLDc#MyGjFB2|Y&u{=7jzd*Jnlqyq|$vtT>-MeF%eLNXN1kJZa0+=damMm!uk z#~ehH7>O#sKG!X#jDjT)O37R>Sp5L3RIf2SUqlC(7#qaP?>Uq8UVX&JHN}4vR{E(^ z%IqNcjjN`Jy-*YAL>qW80?So?kpC*H|4Cw{9$cTr@vYh717WCVsH2x|&QuQve(-bQ zYoG1(ZTAdPJ4)&A5H}I8K9iBn) zgF;e`7-*>kO-tfZ;Ria?2R9K4H12D-{>Mtq*)PX?i z_qE1b$&Z?h5ds;KYA~*cG2Tn8(g+~9B}=Kk#4WbHxv^H`_|4g`+%v1kLTqTGpm zDuy@6;`US4w{hzZ2V;|l_|J_aU*fZGJ^4Ex z{3(b1me(u^eCg~ardm0?>$L?YUrUMSFY^`MOH73B(~_k>V~;1r1-_I8hRedmwVxo$ zS%max3Wu0T!%3bf2WOfRW&f}Yrgi7dbf3w+3Fk_V;}`aTNOfww%JTrtKn=?T%)4TQ z%T~$%hPmKESGi6?bT4^h7z7{0r6oJ=5BJH_2w}+fy88Jlu0tqmcL;g8=lgbeq0vp1 zow&LV8^cLeEvUZhrPukY{r2}ubxS=Y9V^i$)EJOCBqyB$y%apT9*lsOT!Ah*+*KUK z60%d7{moJ!9@s0g#dQ#*gYe?GY>hIAGLM+LE!U~p)RD&<_zjFPmw~b*a=;H053#V$ zp{@JvE%&FWoV6(~^N)f1I4u#;W-gc0bqPMuaT5#5JmG&zb-N}>IpTATopQ+L9W~`P!!>S5 zJVA0;OJ*5KIB7R-Njb^hdfF@?PywDgZi_aFoxljT8?$jDG);(h2$`}eLFm~tqIwcd zsNWS~<6lSf&?#mG`x@+uo+EaQfA|^2-={nINq~11f?gVeu21X|QtL?)Or!0daYduj z{r$ywj6RTP^Ha}8(K5}zUD^r4 z+3BRF5D%;o7qLW6_)8&VoJV~jUVOQPh&wW&U7I;sB2)_($YuN=Pj4O9=JP}gf{W_QH} zXgb8at9vW$d6X7T#~)>}reCc*+mfP99({9#>^VbN3yHHO`<_5QN{*iSyXHv0lIA@% zqwHyQ8y0W}DULmbE-1xxS-5{c=f(;{~wMvZzTd%8vZmuYu>wRpJ*CM0j1+gK&VI&uG>FIUvc zI-tT&etQu6Lrgsrk72LYh%Pv7@dZeTX=;*Jnoyp+a5RmBr82pufk?^r!~g0bl0(1n%y+L@ zJ>H2VVl$gp9c-_O5P2Gs7#et_B+JDNZ%U|~I_?+V342sY<=Rgml~BUpTpcAp;Dquh zt?lg>QulGU4o)_wdtgoTQGNKYB>_2gT8)pT38$2ZA4HPghqi_CQLDs!t!#O0b8tzK^%D%^6cuDy2dyU8;0@580KLhyhO@jOgo&OBUwN@xM z&Npugrj3(K0Mk)MQiiqKMEiF*jOnuxqKzF|kHCd^NYcS~s>}lE&Br6AculgvA^QCk z^scC#5CxQXqyVRmPHdRTj{e6TUVW~<32=&m-3%H zW%xdU>a)%at9E8swwbj@-s2`WhHQZny?9yk)&+9%0PP>9i(WI&m{w-VhfCq#`d5hBncWiiC%lqCRQGKAWo!Qc>Kvi>Ot^YM);JC?6@{7ngB%*HC@w zO>va+mal|y{DayX;*n6PVX1Ae+KgWKORvNQ+ki+_-Cz8!0~eR$`; ztmen=gnRSB@U^-77(=Ts#OCPyzphiPUBZzE1>&xgiFQ4hJ4)zf=rDch+%&Kn>^Oa= zulBb!2^nMB&Ln-rBu)lNcPILkbYIx?uUz7juFGZTvdZlhB<`;T;|N4ZeA6`jeF&?1 zguw^7fPg;kUWK-O0?qNCS+&Gd$ckB0=qwvj?=n7xA0T!hc^bkEnlmkYC+oiNjv;}B zc}`O^NKlr>g_lZ1A#=;cx}|@$V89(jeMb40)(zx>Ym+VLm7?OCMzWmT^7oWA|3bR| z3y4hY@X5CXeu188;Y&qNnc1*najHB2@E46i=xv*}yl#sq@Xf*T4F{ z;7YqJ^`jwOcw!C{c?xpsPxQr+GAD$Ccj79X6R2~VB{?SAr35*Baqo8{t0-x%X=R?=?&C$9GobhFlkMtu6O+Xbrp;lR;|e?24$G^BVP%+tvA z_l7(v@3YY;Y13i9qniTU9r zD(!Jb12Qulc+b}5YqW5{1>m!r+}p9tpw9)AIyV`;3~?OrmycR%<8ghXM71E% z*;Ha8K6MNEA;kWk66g;$QjV($2jFU?jsiowMwVCQ|@N<4?1Z_ah)Nh5p}IRf|tzxcwP2A^{&z z)>%pSC7tq%Q26J`SFu!!+HvOEtSkfTi^5?WSOJ_ANJr7aJrg`b$Sg8ofOW1CqN#wE_(A>w=`du`2i zbCQ}#e5MH(t^dhj1%+M^U#gw>ki?U-OI9C()>Vb00Jokit5v$kAO_h+*b0$*n6w1` zC`kla5GG{fsnv4>uY{WvRCuLTu*?)>h28%Q&iiZfT-|is?uWbbRTh& z@`MFIn7})3=Nw*73phHpr*Z*I>a<4ZNNlZe;kZ1gVSF0Q@~375UBA-mlX{QS5X~Kb z?EN~J&|r?2XSIoU)bo=#5Uk0omGHz=+rE3|%yl*Z&PkQ1eic?!{Y9f^dWbYwF6y$l zpR}`QKMA;lN|kbVhojG#nDgR*z&s?d3xuHuT7qw%rtU9={Yx|^ETa#;%75I=0iW7d zi&5TM^}%F`1U;Ft>TvF1g+WihczyU8j-RY>dQ%Oo8h%V!gqtW`TRtypeG~N7F1JlF za>eV1r2uwp?)=cQcD4`P-PVGM*ShvC&rKw1gDQv1@k_z{hy;NSC3&~7G*>mE_V@w; z`ZhhnwvnA@7+?qX7amWBVm=A8&TXyc{u^i?rrM9y5?peQLOen*JANIv7@4@{y~uoS z1Q$m`I7xYoEf;N8wZ|XC9h-mpu8C-p{Jy8=nEoU8`nRBb&pXStSukCA?K#>bubY3* z;G-r9&D*1q6%$t}f@0KxED3uL8m-?FH_TZ$!f=SCGj*AXgGy$9Z$ohf^;F%2|1*p~ zWnN$Hy>?coe-HNM7-j#$bUiF|4P7uvx}|9S%dbbj)shW7h|z9C9A#r2kw1glhb_z;qsQmy@JIK^jI>|GJ%tO#PYMxSDro!?7nKA8qE zb{$|#ik_u<;}D`-%@xpuKuOkNsK@i1;(rguy)E*8{=8KUcf)OIpUt>+@n1+w1e(@$ z=Bk%LB2R72H|DLDa3ujBRW|TUbOH6AiK0j~xvKZ?r`w`KEA~n42y}$`fFP4m0oVd@ zCV3R?S+7O7TmN^89|*)6aD#7Cx0ynLYRFZ)nNO+qZ|EG8SIqrMLHhry9yrwCmIH>O zO+F!F9YX)LXdsG`zEeMeW%;SJ%?J)*1b2+;m?(CN=CSY$vR4i^AkMpj`fvf!O5E{9CCc;_)IQR6*{g)hP_8m)m5+w;+4>igwB)|T8<8xc~eo` zWreZ8%<^P$Eqd_}IAq%aaU(eh40gNUqJSE)3jv-~Tcxo33T6Pal4R0{-W$I(D&J5G zOXq0$$nAdGK5`2qW#P!ACOp0Vt52WCY>@q9Yl5AH;pgWW24JeXHyrIPibJqU7~r+P zRK@jGhBBABw%W&e_k6aZ{*Ub9chVU`VN^z@Q{>5{B;+h6^?Js(xz#uV-O9qsU>6M3op7wW0>Ugvm$0>G_i ztrE0;V1TZ^+0r?iW|*d_Lb#t;x^mR{kG2y7Q7_sO{@Q|hCdFB4t(`w1hpTb}&ddju z!7??-!LpS}(}gD1^-XKr6VCtV$Tl>S1o4Z)qIFd)qL8oyTa;iRf0N=Hmz&zUw#kiq6HffI~#ez5-^XXuTS2qgP3lRpnq zzH}iz(!#%_3#ACYsjy`uGvVpLXON>g_emG1(3tpL+ulw9%GPTq3pL}XjG8Q74Hco> zJFe7GgrW1^&sQkx(^W`p6>zLdc2(;LpX(&5PkF&<$a!{w+nlFADd}+q4I|o-26uZ` zm|PN5Uh=hRrt^T>9qW4IM+ZIiZ^>+9Sxtl;sE-9h(?pfMmJY5rs>i>q6B*@P_UQ8t zPBn}3A#pH95)CvHl0e;23AC*)tcl}?)zT2{ud=~#=tyJ?(**J>TF7X!f_-!JdJHOG zBaGJJ(MRE``__4}!0*Y-@N_M_v(8}yw=fEa8uw#o`q%b>k)oj@ot4^s+-2w0$S_Ke zZ_5o;XFtcyqF>zRY_8iYdVXmiOO^WPGD`m_l`s>W*q4%o{sv{*k)SWpH?vywy*>`f)sc}^71&ueo zK|uxXhzy4Mza~??)IpDi+?z(>f1t6)zqSwect166yOP}1kXLjT+*#oMg`veZ7K?oh zzw-GMI2!UsK<=fDsYR^+K`Q%!>P|I?YuQ~+E6TD20V~4R``Q|5SQ$l;>$Cttt_mIV z?pd0=vIx0T-~M_c6rY1Ake`96vX#;_IK`;v%>i;>7mc}8_k!oDJ`sM@2>4wyLdI1!-9?Zn4tvAnf|M+d zVl7Wpik%Eg#BTf%Kp_9P=IKVRAwOVTnlwvC-+z^2_}=5~9&$-jbbemT zQbjm(CE!qUwsuQhSay0$ZL3WuwL)!Suc}Vq)S&y!>6WnCN@)_Tc)GfiFP$nXE!gVe zu`^Zik1$GRdAONDe)qpMkh%E!S<8*8d?v^Pq%D^RJe1wNM(dvsYSpf*z~YGy}>3 z)T`dG8r>jFh|e2XyQ7meMREF>GMPm82Lbure4-o;DKC{lXe%YyyxWqq6pxV!nsoyS z`_mipP>YsaivsiCW%Jos2|HRRNA?75@}6nyJK3uoow|)t8dDM$xNSN;R6{OR)IxL! z;?Z{rm(N_Jpnhf|w9p98gYsAl0)kbz5lu=~1-=uIX9_~zh{00CvmNW4!y`ukV~NC2 zTFefQvKMBAD1BXOiqY;BlOugglbg91I46E`o5Dr zaGZY` z4^`)7Has1Ebjl&-nQT&-&hRzlnn$mlVY+#;-h3ws=S-HF-Aa0()|{{M(1MGC`%G{u znL6AMr|KR3r_jI2ox6K8$)o?&K_1LS7`wm_Q55t>CvY$_5Z0OxqbnSJb|Usi(}rPv zj<Xv`?}mn!&{m^$4PR|N zJU}Aq#1=;iw5LYC5iPtfES+bQg-J?h7FBhLlS@LKA)?gT|62hCAID>l%5FpyE|_^| zaq>|cf?oXF7ISJz(*$;(Tqa|GUO{()sa~L_ z)-v40gOz>tYC1_KACfN`wn#!U$x0>$3i3=vpcUKZY$df1`3y7kzF%iG-lhju{{9&hS<`KnmL5IMEDRn*7_p8p!9_VtIq_gQQO5A$|F^&ayP{*fA zhIy0VQN7Z?So7fNrP)Ai{__5SzbIEG!RsqwTasmnOB*UTKix|vn(>zmjNer%g$}e9 zmwt4~=XfTzL7M*6`CZaU$7jPR{6@kwfm|@p(0#JA8DG0$Tac+U^R5v8$PO z&N+C<9Q^lRNn7w-GyEJ$`YKinowc8KdTbTMb{rx6)q0Rp1@DOaq(Dm>k~ z;Z%3XPR=W}5i;T>F ze;abubZMT5o|3_ffBr)OV+bq@o&I)Y6Y{3+Tfwx4u}~p2NO3wQ8rIdzPk%wDOF-VS z3xAoNXW19ZI;bHdB9X{ytRox$a;^T4=3z^I>Pt;nkO1Fq8FLsWLs^OnUdoR|aVw7i zHSL7!KJ(L)6(vd3z-WyI1=|z6Bqe-~aBQ%gyJp*Jl5V&sXMK0bazOEfqnN}7JqJXR zE2EXdQZ%Ro&wUGVmmQsJnJTmTAZ299T3!jhBe6$F4@<&yxvZM>CT7t{Yq@%u&ommB z>H6XIm8*B2MhYXd9ac z6QlL6oEITnyeJ!Qv<*rfBa&rqnnaQ)5}fGzIa+IKQHZ~D!9*DYLu_&oB~AA2C_~3G z=}})Kod;z!_=JqQ)ekNC6?=DeUfIfZ7x2FMH-nlntSJS$Q9!?Sgqv)eyZD<~JZ&-L zIdw*?ewBU4E=6EY;M%C}a=4&L1(i^zRj1RJEULE9rRHFvMfLazdchIrgtF44l__mX zIYr7wXrz_P8_jyv5~9D#h-@w=ui(Fr4NQoF58uN190-I2R7~QwZvQ4GwdsqT_CF&^ z<}KH2&B9SyX24+U9Kv!Ga{mf|8#`!ruGD?HG#DCQ>(93<(harz=(FlF#bUuGC?2Tk*$AoI3w{gT#0X^_1bkzTAMxE5@yj zts}mA1L5eAz(#F(1gyHQJBV#RM|`E#QoS*_*>Z^Zo^u-Y-ELO$HnB)__B-TmeS=7} zneflwrM|10RHTrHxuW`Jy%-uVcT=q%et=c7ozpyM`(*J)fd3@GhldA*ohF_Nx7oF^ z{Vu$3)!k+Cf~#k9aFQ=BQgGEmc9cpJtYPu*2;vsUi?O3p1B)fMq1`sZGr)P=TPFM} zj~go_Uucf!P}=Tt3xi8_M+uW3+|ecjdX7%_-U#jk_&t`k*i8A)xv)dRB#;xMj-ltL z3IR)bDUNyeM%if{r_pcG@wRuJS}wzigRS)hqGk_G+X0?_Eyvbe?2Xy?`t5|cb&!fj zxL9OID<0GveGh?PJS<9P1L>>=jC|V5&mR=XIEsQ?IZUQ%KU)uv|m% zw<}82;~QkSAF$$nCW>Z79-U0p-&b|Cf&6wcyS~~CVlr!>aA<7!CRVoyXkgA2>K0)* zs2X(RF85vrzJ);aYZ~*_wOR~$?h&DqigRcr_=t4feeqWMoFy0;q(Bw0!*UA7$DKYM zJ+m@F_`81Fd;cfDf9s)7<3TAiq$~tn$*kX_f;;F;#m(N74iYHIpfJxL5eh-xP}R&s zIe6y~{GM`j>z+HFBmeu5T$kcu4RBY08AiE~G%Sn^52|B>$W%ZVcx738cMlO~fJ{Fe9b|F4Cyyu;P;f?X zj|a2Z9NJ~DK;&&d9zxXInJ_Qu16MY`%ts)m*4|b03`t8Ah^9FSs{%+4$RZ#D;EQP^ z6Mcg}ur?N_QzPlq|7DIrj+qA-SL{671V=xji;PVk8>7~pDhC)jJK~~S+269S&5a

      <10n@ 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%0D_w;dS8 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

      N(nDtmuq1xOupSyQUQ! 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 GbjB9`_vP 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≫qwoT^&j&0Y`?AeVc}WDUt#sP#Nq##@Oj1W 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 PWdvSE;AI5*9D)A@9#ks` diff --git a/ecs-agent/daemon_images/csi-driver/Makefile b/ecs-agent/daemonimages/csidriver/Makefile similarity index 84% rename from ecs-agent/daemon_images/csi-driver/Makefile rename to ecs-agent/daemonimages/csidriver/Makefile index 5b29d3cab0..d7e706d265 100644 --- a/ecs-agent/daemon_images/csi-driver/Makefile +++ b/ecs-agent/daemonimages/csidriver/Makefile @@ -8,9 +8,6 @@ CSI_DRIVER_SOURCES=$(shell find $(SOURCEDIR) -name '*.go') OS?=linux ARCH?=amd64 -.PHONY: build-image -build-image: bin/csi-driver - OS=$(OS) ARCH=$(ARCH) ./build-image-as-tar # Build binary for linux only .PHONY: bin/csi-driver @@ -22,7 +19,7 @@ bin/csi-driver: $(CSI_DRIVER_SOURCES) .PHONY: test test: - go test -v -race -tags unit -timeout=120s ./... + go test -v -race -tags unit -timeout=60s ./... # please include this `mockgen` into PATH bin/mockgen: | bin @@ -34,4 +31,4 @@ mockgen: bin/mockgen .PHONY: clean clean: - rm -rf bin/* + rm -rf bin/ diff --git a/ecs-agent/daemon_images/csi-driver/driver/driver.go b/ecs-agent/daemonimages/csidriver/driver/driver.go similarity index 93% rename from ecs-agent/daemon_images/csi-driver/driver/driver.go rename to ecs-agent/daemonimages/csidriver/driver/driver.go index 0f340c8fb5..b83f69e508 100644 --- a/ecs-agent/daemon_images/csi-driver/driver/driver.go +++ b/ecs-agent/daemonimages/csidriver/driver/driver.go @@ -21,8 +21,8 @@ import ( "google.golang.org/grpc" "k8s.io/klog/v2" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/util" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/version" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/util" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/version" ) type Driver struct { diff --git a/ecs-agent/daemon_images/csi-driver/driver/driver_test.go b/ecs-agent/daemonimages/csidriver/driver/driver_test.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/driver/driver_test.go rename to ecs-agent/daemonimages/csidriver/driver/driver_test.go diff --git a/ecs-agent/daemon_images/csi-driver/driver/mock_mount.go b/ecs-agent/daemonimages/csidriver/driver/mock_mount.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/driver/mock_mount.go rename to ecs-agent/daemonimages/csidriver/driver/mock_mount.go diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount.go b/ecs-agent/daemonimages/csidriver/driver/mount.go similarity index 93% rename from ecs-agent/daemon_images/csi-driver/driver/mount.go rename to ecs-agent/daemonimages/csidriver/driver/mount.go index a44b973f51..0b59a41f24 100644 --- a/ecs-agent/daemon_images/csi-driver/driver/mount.go +++ b/ecs-agent/daemonimages/csidriver/driver/mount.go @@ -16,7 +16,7 @@ package driver import ( mountutils "k8s.io/mount-utils" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/mounter" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter" ) // Mounter is the interface implemented by NodeMounter. diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount_linux.go b/ecs-agent/daemonimages/csidriver/driver/mount_linux.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/driver/mount_linux.go rename to ecs-agent/daemonimages/csidriver/driver/mount_linux.go diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount_linux_test.go b/ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/driver/mount_linux_test.go rename to ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go diff --git a/ecs-agent/daemon_images/csi-driver/driver/mount_windows.go b/ecs-agent/daemonimages/csidriver/driver/mount_windows.go similarity index 92% rename from ecs-agent/daemon_images/csi-driver/driver/mount_windows.go rename to ecs-agent/daemonimages/csidriver/driver/mount_windows.go index 12cd416984..ae26590233 100644 --- a/ecs-agent/daemon_images/csi-driver/driver/mount_windows.go +++ b/ecs-agent/daemonimages/csidriver/driver/mount_windows.go @@ -19,7 +19,7 @@ package driver import ( "fmt" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/mounter" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter" ) func (m *NodeMounter) PathExists(path string) (bool, error) { diff --git a/ecs-agent/daemon_images/csi-driver/driver/node.go b/ecs-agent/daemonimages/csidriver/driver/node.go similarity index 97% rename from ecs-agent/daemon_images/csi-driver/driver/node.go rename to ecs-agent/daemonimages/csidriver/driver/node.go index 26cae11e32..7d4394542f 100644 --- a/ecs-agent/daemon_images/csi-driver/driver/node.go +++ b/ecs-agent/daemonimages/csidriver/driver/node.go @@ -21,7 +21,7 @@ import ( "google.golang.org/grpc/status" "k8s.io/klog/v2" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/volume" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/volume" ) // nodeService represents the node service of CSI driver diff --git a/ecs-agent/daemon_images/csi-driver/driver/node_linux.go b/ecs-agent/daemonimages/csidriver/driver/node_linux.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/driver/node_linux.go rename to ecs-agent/daemonimages/csidriver/driver/node_linux.go diff --git a/ecs-agent/daemon_images/csi-driver/driver/node_test.go b/ecs-agent/daemonimages/csidriver/driver/node_test.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/driver/node_test.go rename to ecs-agent/daemonimages/csidriver/driver/node_test.go diff --git a/ecs-agent/daemon_images/csi-driver/driver/node_windows.go b/ecs-agent/daemonimages/csidriver/driver/node_windows.go similarity index 94% rename from ecs-agent/daemon_images/csi-driver/driver/node_windows.go rename to ecs-agent/daemonimages/csidriver/driver/node_windows.go index 8676b500d9..b76e3410b7 100644 --- a/ecs-agent/daemon_images/csi-driver/driver/node_windows.go +++ b/ecs-agent/daemonimages/csidriver/driver/node_windows.go @@ -19,7 +19,7 @@ package driver import ( "fmt" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/mounter" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter" ) // IsBlockDevice checks if the given path is a block device diff --git a/ecs-agent/daemon_images/csi-driver/main.go b/ecs-agent/daemonimages/csidriver/main.go similarity index 94% rename from ecs-agent/daemon_images/csi-driver/main.go rename to ecs-agent/daemonimages/csidriver/main.go index 912cfd0226..559aaa6343 100644 --- a/ecs-agent/daemon_images/csi-driver/main.go +++ b/ecs-agent/daemonimages/csidriver/main.go @@ -18,7 +18,7 @@ import ( "k8s.io/klog/v2" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/driver" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/driver" ) func main() { diff --git a/ecs-agent/daemon_images/csi-driver/mounter/mock_mount_windows.go b/ecs-agent/daemonimages/csidriver/mounter/mock_mount_windows.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/mounter/mock_mount_windows.go rename to ecs-agent/daemonimages/csidriver/mounter/mock_mount_windows.go diff --git a/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix.go b/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix.go rename to ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix.go diff --git a/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix_test.go b/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix_test.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_unix_test.go rename to ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix_test.go diff --git a/ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_windows.go b/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_windows.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/mounter/safe_mounter_windows.go rename to ecs-agent/daemonimages/csidriver/mounter/safe_mounter_windows.go diff --git a/ecs-agent/daemon_images/csi-driver/options.go b/ecs-agent/daemonimages/csidriver/options.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/options.go rename to ecs-agent/daemonimages/csidriver/options.go diff --git a/ecs-agent/daemon_images/csi-driver/options_test.go b/ecs-agent/daemonimages/csidriver/options_test.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/options_test.go rename to ecs-agent/daemonimages/csidriver/options_test.go diff --git a/ecs-agent/daemon_images/csi-driver/update-gomock b/ecs-agent/daemonimages/csidriver/update-gomock similarity index 100% rename from ecs-agent/daemon_images/csi-driver/update-gomock rename to ecs-agent/daemonimages/csidriver/update-gomock diff --git a/ecs-agent/daemon_images/csi-driver/util/fs/fs.go b/ecs-agent/daemonimages/csidriver/util/fs/fs.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/util/fs/fs.go rename to ecs-agent/daemonimages/csidriver/util/fs/fs.go diff --git a/ecs-agent/daemon_images/csi-driver/util/fs/fs_unsupported.go b/ecs-agent/daemonimages/csidriver/util/fs/fs_unsupported.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/util/fs/fs_unsupported.go rename to ecs-agent/daemonimages/csidriver/util/fs/fs_unsupported.go diff --git a/ecs-agent/daemon_images/csi-driver/util/fs/fs_windows.go b/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/util/fs/fs_windows.go rename to ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go diff --git a/ecs-agent/daemon_images/csi-driver/util/utils.go b/ecs-agent/daemonimages/csidriver/util/utils.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/util/utils.go rename to ecs-agent/daemonimages/csidriver/util/utils.go diff --git a/ecs-agent/daemon_images/csi-driver/version/version.go b/ecs-agent/daemonimages/csidriver/version/version.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/version/version.go rename to ecs-agent/daemonimages/csidriver/version/version.go diff --git a/ecs-agent/daemon_images/csi-driver/volume/metrics.go b/ecs-agent/daemonimages/csidriver/volume/metrics.go similarity index 98% rename from ecs-agent/daemon_images/csi-driver/volume/metrics.go rename to ecs-agent/daemonimages/csidriver/volume/metrics.go index b19025850b..45c5b2efbf 100644 --- a/ecs-agent/daemon_images/csi-driver/volume/metrics.go +++ b/ecs-agent/daemonimages/csidriver/volume/metrics.go @@ -16,7 +16,7 @@ package volume import ( "k8s.io/apimachinery/pkg/api/resource" - "github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/util/fs" + "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/util/fs" ) // MetricsProvider exposes metrics (e.g. used,available space) related to a diff --git a/ecs-agent/daemon_images/csi-driver/volume/metrics_errors.go b/ecs-agent/daemonimages/csidriver/volume/metrics_errors.go similarity index 100% rename from ecs-agent/daemon_images/csi-driver/volume/metrics_errors.go rename to ecs-agent/daemonimages/csidriver/volume/metrics_errors.go From 880e7fffc906ff16b30a5cf24db52ca1c26e3dd4 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Wed, 28 Jun 2023 19:50:00 +0000 Subject: [PATCH 3/7] Include the GRPC server changes only --- ecs-agent/daemonimages/csidriver/Makefile | 8 - .../csidriver/driver/mock_mount.go | 51 - .../daemonimages/csidriver/driver/mount.go | 18 +- .../csidriver/driver/mount_linux.go | 25 - .../csidriver/driver/mount_linux_test.go | 50 - .../csidriver/driver/mount_windows.go | 31 - .../daemonimages/csidriver/driver/node.go | 74 +- .../csidriver/driver/node_linux.go | 50 - .../csidriver/driver/node_test.go | 161 -- .../csidriver/driver/node_windows.go | 43 - .../csidriver/mounter/mock_mount_windows.go | 352 ---- .../csidriver/mounter/safe_mounter_unix.go | 29 - .../mounter/safe_mounter_unix_test.go | 29 - .../csidriver/mounter/safe_mounter_windows.go | 506 ----- .../daemonimages/csidriver/update-gomock | 11 - ecs-agent/go.mod | 5 - ecs-agent/go.sum | 60 - .../Microsoft/go-winio/.gitattributes | 1 - .../github.com/Microsoft/go-winio/.gitignore | 10 - .../Microsoft/go-winio/.golangci.yml | 149 -- .../github.com/Microsoft/go-winio/CODEOWNERS | 1 - .../github.com/Microsoft/go-winio/LICENSE | 22 - .../github.com/Microsoft/go-winio/README.md | 89 - .../github.com/Microsoft/go-winio/SECURITY.md | 41 - .../github.com/Microsoft/go-winio/backup.go | 290 --- .../github.com/Microsoft/go-winio/doc.go | 22 - .../github.com/Microsoft/go-winio/ea.go | 137 -- .../github.com/Microsoft/go-winio/file.go | 331 --- .../github.com/Microsoft/go-winio/fileinfo.go | 92 - .../github.com/Microsoft/go-winio/hvsock.go | 575 ----- .../Microsoft/go-winio/internal/fs/doc.go | 2 - .../Microsoft/go-winio/internal/fs/fs.go | 202 -- .../go-winio/internal/fs/security.go | 12 - .../go-winio/internal/fs/zsyscall_windows.go | 64 - .../go-winio/internal/socket/rawaddr.go | 20 - .../go-winio/internal/socket/socket.go | 179 -- .../internal/socket/zsyscall_windows.go | 72 - .../go-winio/internal/stringbuffer/wstring.go | 132 -- .../github.com/Microsoft/go-winio/pipe.go | 525 ----- .../Microsoft/go-winio/pkg/guid/guid.go | 232 -- .../go-winio/pkg/guid/guid_nonwindows.go | 16 - .../go-winio/pkg/guid/guid_windows.go | 13 - .../go-winio/pkg/guid/variant_string.go | 27 - .../Microsoft/go-winio/privilege.go | 197 -- .../github.com/Microsoft/go-winio/reparse.go | 131 -- .../github.com/Microsoft/go-winio/sd.go | 144 -- .../github.com/Microsoft/go-winio/syscall.go | 5 - .../github.com/Microsoft/go-winio/tools.go | 5 - .../Microsoft/go-winio/zsyscall_windows.go | 419 ---- .../kubernetes-csi/csi-proxy/client/LICENSE | 202 -- .../kubernetes-csi/csi-proxy/client/README.md | 5 - .../csi-proxy/client/api/disk/v1/api.pb.go | 1476 ------------- .../csi-proxy/client/api/disk/v1/api.proto | 111 - .../client/api/filesystem/v1/api.pb.go | 1041 --------- .../client/api/filesystem/v1/api.proto | 136 -- .../csi-proxy/client/api/volume/v1/api.pb.go | 1876 ----------------- .../csi-proxy/client/api/volume/v1/api.proto | 143 -- .../csi-proxy/client/apiversion/version.go | 143 -- .../client/groups/disk/v1/client_generated.go | 94 - .../groups/filesystem/v1/client_generated.go | 86 - .../groups/volume/v1/client_generated.go | 106 - .../kubernetes-csi/csi-proxy/client/utils.go | 35 - .../github.com/moby/sys/mountinfo/LICENSE | 202 -- .../github.com/moby/sys/mountinfo/doc.go | 44 - .../moby/sys/mountinfo/mounted_linux.go | 101 - .../moby/sys/mountinfo/mounted_unix.go | 53 - .../moby/sys/mountinfo/mountinfo.go | 67 - .../moby/sys/mountinfo/mountinfo_bsd.go | 56 - .../moby/sys/mountinfo/mountinfo_filters.go | 63 - .../sys/mountinfo/mountinfo_freebsdlike.go | 14 - .../moby/sys/mountinfo/mountinfo_linux.go | 214 -- .../moby/sys/mountinfo/mountinfo_openbsd.go | 11 - .../sys/mountinfo/mountinfo_unsupported.go | 19 - .../moby/sys/mountinfo/mountinfo_windows.go | 10 - .../x/tools/cmd/stringer/stringer.go | 657 ------ .../x/tools/go/gcexportdata/gcexportdata.go | 187 -- .../x/tools/go/gcexportdata/importer.go | 75 - .../tools/go/internal/packagesdriver/sizes.go | 49 - .../golang.org/x/tools/go/packages/doc.go | 220 -- .../x/tools/go/packages/external.go | 101 - .../golang.org/x/tools/go/packages/golist.go | 1173 ----------- .../x/tools/go/packages/golist_overlay.go | 575 ----- .../x/tools/go/packages/loadmode_string.go | 57 - .../x/tools/go/packages/packages.go | 1326 ------------ .../golang.org/x/tools/go/packages/visit.go | 59 - .../x/tools/internal/gcimporter/bexport.go | 852 -------- .../x/tools/internal/gcimporter/bimport.go | 1053 --------- .../x/tools/internal/gcimporter/exportdata.go | 99 - .../x/tools/internal/gcimporter/gcimporter.go | 265 --- .../x/tools/internal/gcimporter/iexport.go | 1180 ----------- .../x/tools/internal/gcimporter/iimport.go | 976 --------- .../internal/gcimporter/newInterface10.go | 22 - .../internal/gcimporter/newInterface11.go | 14 - .../internal/gcimporter/support_go117.go | 16 - .../internal/gcimporter/support_go118.go | 37 - .../x/tools/internal/gcimporter/unified_no.go | 10 - .../tools/internal/gcimporter/unified_yes.go | 10 - .../x/tools/internal/gcimporter/ureader_no.go | 19 - .../tools/internal/gcimporter/ureader_yes.go | 738 ------- .../internal/packagesinternal/packages.go | 30 - .../x/tools/internal/pkgbits/codes.go | 77 - .../x/tools/internal/pkgbits/decoder.go | 517 ----- .../x/tools/internal/pkgbits/doc.go | 32 - .../x/tools/internal/pkgbits/encoder.go | 383 ---- .../x/tools/internal/pkgbits/flags.go | 9 - .../x/tools/internal/pkgbits/frames_go1.go | 21 - .../x/tools/internal/pkgbits/frames_go17.go | 28 - .../x/tools/internal/pkgbits/reloc.go | 42 - .../x/tools/internal/pkgbits/support.go | 17 - .../x/tools/internal/pkgbits/sync.go | 113 - .../internal/pkgbits/syncmarker_string.go | 89 - .../internal/tokeninternal/tokeninternal.go | 59 - .../tools/internal/typesinternal/errorcode.go | 1560 -------------- .../typesinternal/errorcode_string.go | 179 -- .../x/tools/internal/typesinternal/types.go | 52 - .../tools/internal/typesinternal/types_118.go | 19 - ecs-agent/vendor/k8s.io/mount-utils/LICENSE | 201 -- ecs-agent/vendor/k8s.io/mount-utils/OWNERS | 15 - ecs-agent/vendor/k8s.io/mount-utils/README.md | 31 - .../k8s.io/mount-utils/SECURITY_CONTACTS | 18 - .../k8s.io/mount-utils/code-of-conduct.md | 3 - ecs-agent/vendor/k8s.io/mount-utils/doc.go | 18 - .../vendor/k8s.io/mount-utils/fake_mounter.go | 242 --- ecs-agent/vendor/k8s.io/mount-utils/mount.go | 362 ---- .../k8s.io/mount-utils/mount_helper_common.go | 157 -- .../k8s.io/mount-utils/mount_helper_unix.go | 201 -- .../mount-utils/mount_helper_windows.go | 111 - .../vendor/k8s.io/mount-utils/mount_linux.go | 802 ------- .../k8s.io/mount-utils/mount_unsupported.go | 105 - .../k8s.io/mount-utils/mount_windows.go | 351 --- .../k8s.io/mount-utils/resizefs_linux.go | 266 --- .../mount-utils/resizefs_unsupported.go | 46 - ecs-agent/vendor/k8s.io/utils/LICENSE | 202 -- ecs-agent/vendor/k8s.io/utils/exec/README.md | 5 - ecs-agent/vendor/k8s.io/utils/exec/doc.go | 18 - ecs-agent/vendor/k8s.io/utils/exec/exec.go | 256 --- .../vendor/k8s.io/utils/exec/fixup_go118.go | 32 - .../vendor/k8s.io/utils/exec/fixup_go119.go | 40 - ecs-agent/vendor/k8s.io/utils/io/README.md | 4 - ecs-agent/vendor/k8s.io/utils/io/read.go | 98 - .../vendor/k8s.io/utils/keymutex/hashed.go | 58 - .../vendor/k8s.io/utils/keymutex/keymutex.go | 27 - ecs-agent/vendor/modules.txt | 37 - 143 files changed, 6 insertions(+), 28665 deletions(-) delete mode 100644 ecs-agent/daemonimages/csidriver/driver/mock_mount.go delete mode 100644 ecs-agent/daemonimages/csidriver/driver/mount_linux.go delete mode 100644 ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go delete mode 100644 ecs-agent/daemonimages/csidriver/driver/mount_windows.go delete mode 100644 ecs-agent/daemonimages/csidriver/driver/node_linux.go delete mode 100644 ecs-agent/daemonimages/csidriver/driver/node_test.go delete mode 100644 ecs-agent/daemonimages/csidriver/driver/node_windows.go delete mode 100644 ecs-agent/daemonimages/csidriver/mounter/mock_mount_windows.go delete mode 100644 ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix.go delete mode 100644 ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix_test.go delete mode 100644 ecs-agent/daemonimages/csidriver/mounter/safe_mounter_windows.go delete mode 100755 ecs-agent/daemonimages/csidriver/update-gomock delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/README.md delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/file.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go delete mode 100644 ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go delete mode 100644 ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go delete mode 100644 ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/external.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go delete mode 100644 ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/LICENSE delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/OWNERS delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/README.md delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/doc.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go delete mode 100644 ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/LICENSE delete mode 100644 ecs-agent/vendor/k8s.io/utils/exec/README.md delete mode 100644 ecs-agent/vendor/k8s.io/utils/exec/doc.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/exec/exec.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/io/README.md delete mode 100644 ecs-agent/vendor/k8s.io/utils/io/read.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go delete mode 100644 ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go diff --git a/ecs-agent/daemonimages/csidriver/Makefile b/ecs-agent/daemonimages/csidriver/Makefile index d7e706d265..169cc79e87 100644 --- a/ecs-agent/daemonimages/csidriver/Makefile +++ b/ecs-agent/daemonimages/csidriver/Makefile @@ -21,14 +21,6 @@ bin/csi-driver: $(CSI_DRIVER_SOURCES) test: go test -v -race -tags unit -timeout=60s ./... -# please include this `mockgen` into PATH -bin/mockgen: | bin - go install github.com/golang/mock/mockgen@v1.6.0 - -.PHONY: mockgen -mockgen: bin/mockgen - ./update-gomock - .PHONY: clean clean: rm -rf bin/ diff --git a/ecs-agent/daemonimages/csidriver/driver/mock_mount.go b/ecs-agent/daemonimages/csidriver/driver/mock_mount.go deleted file mode 100644 index 81820dd43b..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/mock_mount.go +++ /dev/null @@ -1,51 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ./driver/mount.go - -// Package driver is a generated GoMock package. -package driver - -import ( - reflect "reflect" - - gomock "github.com/golang/mock/gomock" - mount_utils "k8s.io/mount-utils" -) - -// MockMounter is a mock of Mounter interface. -type MockMounter struct { - mount_utils.Interface - ctrl *gomock.Controller - recorder *MockMounterMockRecorder -} - -// MockMounterMockRecorder is the mock recorder for MockMounter. -type MockMounterMockRecorder struct { - mock *MockMounter -} - -// NewMockMounter creates a new mock instance. -func NewMockMounter(ctrl *gomock.Controller) *MockMounter { - mock := &MockMounter{ctrl: ctrl} - mock.recorder = &MockMounterMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockMounter) EXPECT() *MockMounterMockRecorder { - return m.recorder -} - -// PathExists mocks base method. -func (m *MockMounter) PathExists(path string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "PathExists", path) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// PathExists indicates an expected call of PathExists. -func (mr *MockMounterMockRecorder) PathExists(path interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "PathExists", reflect.TypeOf((*MockMounter)(nil).PathExists), path) -} diff --git a/ecs-agent/daemonimages/csidriver/driver/mount.go b/ecs-agent/daemonimages/csidriver/driver/mount.go index 0b59a41f24..b8cbe114e7 100644 --- a/ecs-agent/daemonimages/csidriver/driver/mount.go +++ b/ecs-agent/daemonimages/csidriver/driver/mount.go @@ -13,12 +13,6 @@ package driver -import ( - mountutils "k8s.io/mount-utils" - - "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter" -) - // Mounter is the interface implemented by NodeMounter. type Mounter interface { PathExists(path string) (bool, error) @@ -26,14 +20,12 @@ type Mounter interface { // NodeMounter implements Mounter. type NodeMounter struct { - *mountutils.SafeFormatAndMount +} + +func (nm NodeMounter) PathExists(path string) (bool, error) { + return false, nil } func newNodeMounter() (Mounter, error) { - // mounter.NewSafeMounter returns a SafeFormatAndMount - safeMounter, err := mounter.NewSafeMounter() - if err != nil { - return nil, err - } - return &NodeMounter{safeMounter}, nil + return NodeMounter{}, nil } diff --git a/ecs-agent/daemonimages/csidriver/driver/mount_linux.go b/ecs-agent/daemonimages/csidriver/driver/mount_linux.go deleted file mode 100644 index f0fb340878..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/mount_linux.go +++ /dev/null @@ -1,25 +0,0 @@ -//go:build linux -// +build linux - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package driver - -import ( - mountutils "k8s.io/mount-utils" -) - -func (m *NodeMounter) PathExists(path string) (bool, error) { - return mountutils.PathExists(path) -} diff --git a/ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go b/ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go deleted file mode 100644 index b230368782..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/mount_linux_test.go +++ /dev/null @@ -1,50 +0,0 @@ -//go:build linux && unit -// +build linux,unit - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package driver - -import ( - "os" - "path/filepath" - "testing" -) - -func TestPathExists(t *testing.T) { - // set up the full driver and its environment - dir, err := os.MkdirTemp("", "mount-ebs-csi") - if err != nil { - t.Fatalf("error creating directory %v", err) - } - defer os.RemoveAll(dir) - - targetPath := filepath.Join(dir, "notafile") - - mountObj, err := newNodeMounter() - if err != nil { - t.Fatalf("error creating mounter %v", err) - } - - exists, err := mountObj.PathExists(targetPath) - - if err != nil { - t.Fatalf("Expect no error but got: %v", err) - } - - if exists { - t.Fatalf("Expected file %s to not exist", targetPath) - } - -} diff --git a/ecs-agent/daemonimages/csidriver/driver/mount_windows.go b/ecs-agent/daemonimages/csidriver/driver/mount_windows.go deleted file mode 100644 index ae26590233..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/mount_windows.go +++ /dev/null @@ -1,31 +0,0 @@ -//go:build windows -// +build windows - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package driver - -import ( - "fmt" - - "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter" -) - -func (m *NodeMounter) PathExists(path string) (bool, error) { - proxyMounter, ok := m.SafeFormatAndMount.Interface.(*mounter.CSIProxyMounter) - if !ok { - return false, fmt.Errorf("failed to cast mounter to csi proxy mounter") - } - return proxyMounter.ExistsPath(path) -} diff --git a/ecs-agent/daemonimages/csidriver/driver/node.go b/ecs-agent/daemonimages/csidriver/driver/node.go index 7d4394542f..4a285b1614 100644 --- a/ecs-agent/daemonimages/csidriver/driver/node.go +++ b/ecs-agent/daemonimages/csidriver/driver/node.go @@ -14,14 +14,7 @@ package driver import ( - "context" - "github.com/container-storage-interface/spec/lib/go/csi" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - "k8s.io/klog/v2" - - "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/volume" ) // nodeService represents the node service of CSI driver @@ -31,75 +24,10 @@ type nodeService struct { } func newNodeService() nodeService { - klog.V(4).InfoS("New node service") nodeMounter, err := newNodeMounter() if err != nil { panic(err) } - return nodeService{ - mounter: nodeMounter, - } -} - -func (d *nodeService) NodeGetVolumeStats(ctx context.Context, req *csi.NodeGetVolumeStatsRequest) (*csi.NodeGetVolumeStatsResponse, error) { - klog.V(4).InfoS("NodeGetVolumeStats: called", "args", *req) - if len(req.VolumeId) == 0 { - return nil, status.Error(codes.InvalidArgument, "NodeGetVolumeStats volume ID was empty") - } - - if len(req.VolumePath) == 0 { - return nil, status.Error(codes.InvalidArgument, "NodeGetVolumeStats volume path was empty") - } - - exists, err := d.mounter.PathExists(req.VolumePath) - if err != nil { - return nil, status.Errorf(codes.Internal, "unknown error when stat on %s: %v", req.VolumePath, err) - } - if !exists { - return nil, status.Errorf(codes.NotFound, "path %s does not exist", req.VolumePath) - } - - isBlock, err := d.IsBlockDevice(req.VolumePath) - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to determine whether %s is block device: %v", req.VolumePath, err) - } - - if isBlock { - bcap, blockErr := d.getBlockSizeBytes(req.VolumePath) - if blockErr != nil { - return nil, status.Errorf(codes.Internal, "failed to get block capacity on path %s: %v", req.VolumePath, err) - } - return &csi.NodeGetVolumeStatsResponse{ - Usage: []*csi.VolumeUsage{ - { - Unit: csi.VolumeUsage_BYTES, - Total: bcap, - }, - }, - }, nil - } - - metricsProvider := volume.NewMetricsStatFS(req.VolumePath) - metrics, err := metricsProvider.GetMetrics() - if err != nil { - return nil, status.Errorf(codes.Internal, "failed to get fs info on path %s: %v", req.VolumePath, err) - } - - return &csi.NodeGetVolumeStatsResponse{ - Usage: []*csi.VolumeUsage{ - { - Unit: csi.VolumeUsage_BYTES, - Available: metrics.Available.AsDec().UnscaledBig().Int64(), - Total: metrics.Capacity.AsDec().UnscaledBig().Int64(), - Used: metrics.Used.AsDec().UnscaledBig().Int64(), - }, - { - Unit: csi.VolumeUsage_INODES, - Available: metrics.InodesFree.AsDec().UnscaledBig().Int64(), - Total: metrics.Inodes.AsDec().UnscaledBig().Int64(), - Used: metrics.InodesUsed.AsDec().UnscaledBig().Int64(), - }, - }, - }, nil + return nodeService{mounter: nodeMounter} } diff --git a/ecs-agent/daemonimages/csidriver/driver/node_linux.go b/ecs-agent/daemonimages/csidriver/driver/node_linux.go deleted file mode 100644 index 94e4035cc8..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/node_linux.go +++ /dev/null @@ -1,50 +0,0 @@ -//go:build linux -// +build linux - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package driver - -import ( - "fmt" - "strconv" - "strings" - - "golang.org/x/sys/unix" -) - -// IsBlock checks if the given path is a block device -func (d *nodeService) IsBlockDevice(fullPath string) (bool, error) { - var st unix.Stat_t - err := unix.Stat(fullPath, &st) - if err != nil { - return false, err - } - - return (st.Mode & unix.S_IFMT) == unix.S_IFBLK, nil -} - -func (d *nodeService) getBlockSizeBytes(devicePath string) (int64, error) { - cmd := d.mounter.(*NodeMounter).Exec.Command("blockdev", "--getsize64", devicePath) - output, err := cmd.Output() - if err != nil { - return -1, fmt.Errorf("error when getting size of block volume at path %s: output: %s, err: %w", devicePath, string(output), err) - } - strOut := strings.TrimSpace(string(output)) - gotSizeBytes, err := strconv.ParseInt(strOut, 10, 64) - if err != nil { - return -1, fmt.Errorf("failed to parse size %s as int", strOut) - } - return gotSizeBytes, nil -} diff --git a/ecs-agent/daemonimages/csidriver/driver/node_test.go b/ecs-agent/daemonimages/csidriver/driver/node_test.go deleted file mode 100644 index ffe6992f7e..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/node_test.go +++ /dev/null @@ -1,161 +0,0 @@ -//go:build linux && unit -// +build linux,unit - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package driver - -import ( - "context" - "errors" - "os" - "testing" - - "github.com/container-storage-interface/spec/lib/go/csi" - "github.com/golang/mock/gomock" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" -) - -var ( - volumeID = "voltest" - nvmeName = "/dev/disk/by-id/nvme-Amazon_Elastic_Block_Store_voltest" -) - -func TestNodeGetVolumeStats(t *testing.T) { - testCases := []struct { - name string - testFunc func(t *testing.T) - }{ - { - name: "success normal", - testFunc: func(t *testing.T) { - mockCtl := gomock.NewController(t) - defer mockCtl.Finish() - - mockMounter := NewMockMounter(mockCtl) - VolumePath := "./test" - err := os.MkdirAll(VolumePath, 0644) - if err != nil { - t.Fatalf("fail to create dir: %v", err) - } - defer os.RemoveAll(VolumePath) - - mockMounter.EXPECT().PathExists(VolumePath).Return(true, nil) - - awsDriver := nodeService{ - mounter: mockMounter, - } - - req := &csi.NodeGetVolumeStatsRequest{ - VolumeId: volumeID, - VolumePath: VolumePath, - } - _, err = awsDriver.NodeGetVolumeStats(context.TODO(), req) - if err != nil { - t.Fatalf("Expect no error but got: %v", err) - } - }, - }, - { - name: "fail path not exist", - testFunc: func(t *testing.T) { - mockCtl := gomock.NewController(t) - defer mockCtl.Finish() - - mockMounter := NewMockMounter(mockCtl) - VolumePath := "/test" - - mockMounter.EXPECT().PathExists(VolumePath).Return(false, nil) - - awsDriver := nodeService{ - mounter: mockMounter, - } - - req := &csi.NodeGetVolumeStatsRequest{ - VolumeId: volumeID, - VolumePath: VolumePath, - } - _, err := awsDriver.NodeGetVolumeStats(context.TODO(), req) - expectErr(t, err, codes.NotFound) - }, - }, - { - name: "fail can't determine block device", - testFunc: func(t *testing.T) { - mockCtl := gomock.NewController(t) - defer mockCtl.Finish() - - mockMounter := NewMockMounter(mockCtl) - VolumePath := "/test" - - mockMounter.EXPECT().PathExists(VolumePath).Return(true, nil) - - awsDriver := nodeService{ - mounter: mockMounter, - } - - req := &csi.NodeGetVolumeStatsRequest{ - VolumeId: volumeID, - VolumePath: VolumePath, - } - _, err := awsDriver.NodeGetVolumeStats(context.TODO(), req) - expectErr(t, err, codes.Internal) - }, - }, - { - name: "fail error calling existsPath", - testFunc: func(t *testing.T) { - mockCtl := gomock.NewController(t) - defer mockCtl.Finish() - - mockMounter := NewMockMounter(mockCtl) - VolumePath := "/test" - - mockMounter.EXPECT().PathExists(VolumePath).Return(false, errors.New("get existsPath call fail")) - - awsDriver := nodeService{ - mounter: mockMounter, - } - - req := &csi.NodeGetVolumeStatsRequest{ - VolumeId: volumeID, - VolumePath: VolumePath, - } - _, err := awsDriver.NodeGetVolumeStats(context.TODO(), req) - expectErr(t, err, codes.Internal) - }, - }, - } - - for _, tc := range testCases { - t.Run(tc.name, tc.testFunc) - } - -} - -func expectErr(t *testing.T, actualErr error, expectedCode codes.Code) { - if actualErr == nil { - t.Fatalf("Expect error but got no error") - } - - status, ok := status.FromError(actualErr) - if !ok { - t.Fatalf("Failed to get error status code from error: %v", actualErr) - } - - if status.Code() != expectedCode { - t.Fatalf("Expected error code %d, got %d message %s", codes.InvalidArgument, status.Code(), status.Message()) - } -} diff --git a/ecs-agent/daemonimages/csidriver/driver/node_windows.go b/ecs-agent/daemonimages/csidriver/driver/node_windows.go deleted file mode 100644 index b76e3410b7..0000000000 --- a/ecs-agent/daemonimages/csidriver/driver/node_windows.go +++ /dev/null @@ -1,43 +0,0 @@ -//go:build windows -// +build windows - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package driver - -import ( - "fmt" - - "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/mounter" -) - -// IsBlockDevice checks if the given path is a block device -func (d *nodeService) IsBlockDevice(fullPath string) (bool, error) { - return false, nil -} - -// getBlockSizeBytes gets the size of the disk in bytes -func (d *nodeService) getBlockSizeBytes(devicePath string) (int64, error) { - proxyMounter, ok := (d.mounter.(*NodeMounter)).SafeFormatAndMount.Interface.(*mounter.CSIProxyMounter) - if !ok { - return -1, fmt.Errorf("failed to cast mounter to csi proxy mounter") - } - - sizeInBytes, err := proxyMounter.GetDeviceSize(devicePath) - if err != nil { - return -1, err - } - - return sizeInBytes, nil -} diff --git a/ecs-agent/daemonimages/csidriver/mounter/mock_mount_windows.go b/ecs-agent/daemonimages/csidriver/mounter/mock_mount_windows.go deleted file mode 100644 index 6193823f7e..0000000000 --- a/ecs-agent/daemonimages/csidriver/mounter/mock_mount_windows.go +++ /dev/null @@ -1,352 +0,0 @@ -// Code generated by MockGen. DO NOT EDIT. -// Source: ./mounter/safe_mounter_windows.go - -// Package mounter is a generated GoMock package. -package mounter - -import ( - reflect "reflect" - - gomock "github.com/golang/mock/gomock" - mount "k8s.io/mount-utils" -) - -// MockProxyMounter is a mock of ProxyMounter interface. -type MockProxyMounter struct { - mount.Interface - ctrl *gomock.Controller - recorder *MockProxyMounterMockRecorder -} - -// MockProxyMounterMockRecorder is the mock recorder for MockProxyMounter. -type MockProxyMounterMockRecorder struct { - mock *MockProxyMounter -} - -// NewMockProxyMounter creates a new mock instance. -func NewMockProxyMounter(ctrl *gomock.Controller) *MockProxyMounter { - mock := &MockProxyMounter{ctrl: ctrl} - mock.recorder = &MockProxyMounterMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use. -func (m *MockProxyMounter) EXPECT() *MockProxyMounterMockRecorder { - return m.recorder -} - -// CanSafelySkipMountPointCheck mocks base method. -func (m *MockProxyMounter) CanSafelySkipMountPointCheck() bool { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "CanSafelySkipMountPointCheck") - ret0, _ := ret[0].(bool) - return ret0 -} - -// CanSafelySkipMountPointCheck indicates an expected call of CanSafelySkipMountPointCheck. -func (mr *MockProxyMounterMockRecorder) CanSafelySkipMountPointCheck() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CanSafelySkipMountPointCheck", reflect.TypeOf((*MockProxyMounter)(nil).CanSafelySkipMountPointCheck)) -} - -// ExistsPath mocks base method. -func (m *MockProxyMounter) ExistsPath(path string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ExistsPath", path) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ExistsPath indicates an expected call of ExistsPath. -func (mr *MockProxyMounterMockRecorder) ExistsPath(path interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ExistsPath", reflect.TypeOf((*MockProxyMounter)(nil).ExistsPath), path) -} - -// FindDiskByLun mocks base method. -func (m *MockProxyMounter) FindDiskByLun(lun string) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FindDiskByLun", lun) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// FindDiskByLun indicates an expected call of FindDiskByLun. -func (mr *MockProxyMounterMockRecorder) FindDiskByLun(lun interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindDiskByLun", reflect.TypeOf((*MockProxyMounter)(nil).FindDiskByLun), lun) -} - -// FormatAndMountSensitiveWithFormatOptions mocks base method. -func (m *MockProxyMounter) FormatAndMountSensitiveWithFormatOptions(source, target, fstype string, options, sensitiveOptions, formatOptions []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "FormatAndMountSensitiveWithFormatOptions", source, target, fstype, options, sensitiveOptions, formatOptions) - ret0, _ := ret[0].(error) - return ret0 -} - -// FormatAndMountSensitiveWithFormatOptions indicates an expected call of FormatAndMountSensitiveWithFormatOptions. -func (mr *MockProxyMounterMockRecorder) FormatAndMountSensitiveWithFormatOptions(source, target, fstype, options, sensitiveOptions, formatOptions interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FormatAndMountSensitiveWithFormatOptions", reflect.TypeOf((*MockProxyMounter)(nil).FormatAndMountSensitiveWithFormatOptions), source, target, fstype, options, sensitiveOptions, formatOptions) -} - -// GetDeviceNameFromMount mocks base method. -func (m *MockProxyMounter) GetDeviceNameFromMount(mountPath, pluginMountDir string) (string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeviceNameFromMount", mountPath, pluginMountDir) - ret0, _ := ret[0].(string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeviceNameFromMount indicates an expected call of GetDeviceNameFromMount. -func (mr *MockProxyMounterMockRecorder) GetDeviceNameFromMount(mountPath, pluginMountDir interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeviceNameFromMount", reflect.TypeOf((*MockProxyMounter)(nil).GetDeviceNameFromMount), mountPath, pluginMountDir) -} - -// GetDeviceSize mocks base method. -func (m *MockProxyMounter) GetDeviceSize(devicePath string) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetDeviceSize", devicePath) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetDeviceSize indicates an expected call of GetDeviceSize. -func (mr *MockProxyMounterMockRecorder) GetDeviceSize(devicePath interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetDeviceSize", reflect.TypeOf((*MockProxyMounter)(nil).GetDeviceSize), devicePath) -} - -// GetMountRefs mocks base method. -func (m *MockProxyMounter) GetMountRefs(pathname string) ([]string, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetMountRefs", pathname) - ret0, _ := ret[0].([]string) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetMountRefs indicates an expected call of GetMountRefs. -func (mr *MockProxyMounterMockRecorder) GetMountRefs(pathname interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMountRefs", reflect.TypeOf((*MockProxyMounter)(nil).GetMountRefs), pathname) -} - -// GetVolumeSizeInBytes mocks base method. -func (m *MockProxyMounter) GetVolumeSizeInBytes(deviceMountPath string) (int64, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetVolumeSizeInBytes", deviceMountPath) - ret0, _ := ret[0].(int64) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// GetVolumeSizeInBytes indicates an expected call of GetVolumeSizeInBytes. -func (mr *MockProxyMounterMockRecorder) GetVolumeSizeInBytes(deviceMountPath interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetVolumeSizeInBytes", reflect.TypeOf((*MockProxyMounter)(nil).GetVolumeSizeInBytes), deviceMountPath) -} - -// IsLikelyNotMountPoint mocks base method. -func (m *MockProxyMounter) IsLikelyNotMountPoint(file string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsLikelyNotMountPoint", file) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsLikelyNotMountPoint indicates an expected call of IsLikelyNotMountPoint. -func (mr *MockProxyMounterMockRecorder) IsLikelyNotMountPoint(file interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsLikelyNotMountPoint", reflect.TypeOf((*MockProxyMounter)(nil).IsLikelyNotMountPoint), file) -} - -// IsMountPoint mocks base method. -func (m *MockProxyMounter) IsMountPoint(file string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsMountPoint", file) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// IsMountPoint indicates an expected call of IsMountPoint. -func (mr *MockProxyMounterMockRecorder) IsMountPoint(file interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsMountPoint", reflect.TypeOf((*MockProxyMounter)(nil).IsMountPoint), file) -} - -// IsMountPointMatch mocks base method. -func (m *MockProxyMounter) IsMountPointMatch(mp mount.MountPoint, dir string) bool { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "IsMountPointMatch", mp, dir) - ret0, _ := ret[0].(bool) - return ret0 -} - -// IsMountPointMatch indicates an expected call of IsMountPointMatch. -func (mr *MockProxyMounterMockRecorder) IsMountPointMatch(mp, dir interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "IsMountPointMatch", reflect.TypeOf((*MockProxyMounter)(nil).IsMountPointMatch), mp, dir) -} - -// List mocks base method. -func (m *MockProxyMounter) List() ([]mount.MountPoint, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "List") - ret0, _ := ret[0].([]mount.MountPoint) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// List indicates an expected call of List. -func (mr *MockProxyMounterMockRecorder) List() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockProxyMounter)(nil).List)) -} - -// MakeFile mocks base method. -func (m *MockProxyMounter) MakeFile(pathname string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "MakeFile", pathname) - ret0, _ := ret[0].(error) - return ret0 -} - -// MakeFile indicates an expected call of MakeFile. -func (mr *MockProxyMounterMockRecorder) MakeFile(pathname interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MakeFile", reflect.TypeOf((*MockProxyMounter)(nil).MakeFile), pathname) -} - -// Mount mocks base method. -func (m *MockProxyMounter) Mount(source, target, fstype string, options []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Mount", source, target, fstype, options) - ret0, _ := ret[0].(error) - return ret0 -} - -// Mount indicates an expected call of Mount. -func (mr *MockProxyMounterMockRecorder) Mount(source, target, fstype, options interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Mount", reflect.TypeOf((*MockProxyMounter)(nil).Mount), source, target, fstype, options) -} - -// MountSensitive mocks base method. -func (m *MockProxyMounter) MountSensitive(source, target, fstype string, options, sensitiveOptions []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "MountSensitive", source, target, fstype, options, sensitiveOptions) - ret0, _ := ret[0].(error) - return ret0 -} - -// MountSensitive indicates an expected call of MountSensitive. -func (mr *MockProxyMounterMockRecorder) MountSensitive(source, target, fstype, options, sensitiveOptions interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MountSensitive", reflect.TypeOf((*MockProxyMounter)(nil).MountSensitive), source, target, fstype, options, sensitiveOptions) -} - -// MountSensitiveWithoutSystemd mocks base method. -func (m *MockProxyMounter) MountSensitiveWithoutSystemd(source, target, fstype string, options, sensitiveOptions []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "MountSensitiveWithoutSystemd", source, target, fstype, options, sensitiveOptions) - ret0, _ := ret[0].(error) - return ret0 -} - -// MountSensitiveWithoutSystemd indicates an expected call of MountSensitiveWithoutSystemd. -func (mr *MockProxyMounterMockRecorder) MountSensitiveWithoutSystemd(source, target, fstype, options, sensitiveOptions interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MountSensitiveWithoutSystemd", reflect.TypeOf((*MockProxyMounter)(nil).MountSensitiveWithoutSystemd), source, target, fstype, options, sensitiveOptions) -} - -// MountSensitiveWithoutSystemdWithMountFlags mocks base method. -func (m *MockProxyMounter) MountSensitiveWithoutSystemdWithMountFlags(source, target, fstype string, options, sensitiveOptions, mountFlags []string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "MountSensitiveWithoutSystemdWithMountFlags", source, target, fstype, options, sensitiveOptions, mountFlags) - ret0, _ := ret[0].(error) - return ret0 -} - -// MountSensitiveWithoutSystemdWithMountFlags indicates an expected call of MountSensitiveWithoutSystemdWithMountFlags. -func (mr *MockProxyMounterMockRecorder) MountSensitiveWithoutSystemdWithMountFlags(source, target, fstype, options, sensitiveOptions, mountFlags interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MountSensitiveWithoutSystemdWithMountFlags", reflect.TypeOf((*MockProxyMounter)(nil).MountSensitiveWithoutSystemdWithMountFlags), source, target, fstype, options, sensitiveOptions, mountFlags) -} - -// Rescan mocks base method. -func (m *MockProxyMounter) Rescan() error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Rescan") - ret0, _ := ret[0].(error) - return ret0 -} - -// Rescan indicates an expected call of Rescan. -func (mr *MockProxyMounterMockRecorder) Rescan() *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Rescan", reflect.TypeOf((*MockProxyMounter)(nil).Rescan)) -} - -// ResizeVolume mocks base method. -func (m *MockProxyMounter) ResizeVolume(deviceMountPath string) (bool, error) { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "ResizeVolume", deviceMountPath) - ret0, _ := ret[0].(bool) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// ResizeVolume indicates an expected call of ResizeVolume. -func (mr *MockProxyMounterMockRecorder) ResizeVolume(deviceMountPath interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ResizeVolume", reflect.TypeOf((*MockProxyMounter)(nil).ResizeVolume), deviceMountPath) -} - -// Rmdir mocks base method. -func (m *MockProxyMounter) Rmdir(path string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Rmdir", path) - ret0, _ := ret[0].(error) - return ret0 -} - -// Rmdir indicates an expected call of Rmdir. -func (mr *MockProxyMounterMockRecorder) Rmdir(path interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Rmdir", reflect.TypeOf((*MockProxyMounter)(nil).Rmdir), path) -} - -// Unmount mocks base method. -func (m *MockProxyMounter) Unmount(target string) error { - m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "Unmount", target) - ret0, _ := ret[0].(error) - return ret0 -} - -// Unmount indicates an expected call of Unmount. -func (mr *MockProxyMounterMockRecorder) Unmount(target interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Unmount", reflect.TypeOf((*MockProxyMounter)(nil).Unmount), target) -} - -// WriteVolumeCache mocks base method. -func (m *MockProxyMounter) WriteVolumeCache(target string) { - m.ctrl.T.Helper() - m.ctrl.Call(m, "WriteVolumeCache", target) -} - -// WriteVolumeCache indicates an expected call of WriteVolumeCache. -func (mr *MockProxyMounterMockRecorder) WriteVolumeCache(target interface{}) *gomock.Call { - mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "WriteVolumeCache", reflect.TypeOf((*MockProxyMounter)(nil).WriteVolumeCache), target) -} diff --git a/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix.go b/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix.go deleted file mode 100644 index a5f198635e..0000000000 --- a/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix.go +++ /dev/null @@ -1,29 +0,0 @@ -//go:build linux || darwin -// +build linux darwin - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package mounter - -import ( - "k8s.io/mount-utils" - utilexec "k8s.io/utils/exec" -) - -func NewSafeMounter() (*mount.SafeFormatAndMount, error) { - return &mount.SafeFormatAndMount{ - Interface: mount.New(""), - Exec: utilexec.New(), - }, nil -} diff --git a/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix_test.go b/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix_test.go deleted file mode 100644 index 7b78bc1ec7..0000000000 --- a/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_unix_test.go +++ /dev/null @@ -1,29 +0,0 @@ -//go:build linux && unit -// +build linux,unit - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package mounter - -import ( - "testing" - - "github.com/stretchr/testify/assert" -) - -func TestNewSafeMounter(t *testing.T) { - resp, err := NewSafeMounter() - assert.NotNil(t, resp) - assert.Nil(t, err) -} diff --git a/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_windows.go b/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_windows.go deleted file mode 100644 index 95f3359a5b..0000000000 --- a/ecs-agent/daemonimages/csidriver/mounter/safe_mounter_windows.go +++ /dev/null @@ -1,506 +0,0 @@ -//go:build windows -// +build windows - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package mounter - -import ( - "context" - "errors" - "fmt" - "os" - "strconv" - "strings" - - disk "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1" - fs "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1" - volume "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1" - diskclient "github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1" - fsclient "github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1" - volumeclient "github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1" - "k8s.io/klog/v2" - mount_utils "k8s.io/mount-utils" - utilexec "k8s.io/utils/exec" -) - -var _ ProxyMounter = &CSIProxyMounter{} - -type ProxyMounter interface { - mount_utils.Interface - - Rmdir(path string) error - WriteVolumeCache(target string) - IsMountPointMatch(mp mount_utils.MountPoint, dir string) bool - GetDeviceNameFromMount(mountPath, pluginMountDir string) (string, error) - MakeFile(pathname string) error - ExistsPath(path string) (bool, error) - Rescan() error - FindDiskByLun(lun string) (diskNum string, err error) - FormatAndMountSensitiveWithFormatOptions(source string, target string, fstype string, options []string, sensitiveOptions []string, formatOptions []string) error - ResizeVolume(deviceMountPath string) (bool, error) - GetVolumeSizeInBytes(deviceMountPath string) (int64, error) - GetDeviceSize(devicePath string) (int64, error) - IsMountPoint(pathname string) (bool, error) -} - -type CSIProxyMounter struct { - mount_utils.Interface - FsClient *fsclient.Client - DiskClient *diskclient.Client - VolumeClient *volumeclient.Client -} - -func normalizeWindowsPath(path string) string { - normalizedPath := strings.Replace(path, "/", "\\", -1) - if strings.HasPrefix(normalizedPath, "\\") { - normalizedPath = "c:" + normalizedPath - } - return normalizedPath -} - -// Mount just creates a soft link at target pointing to source. -func (mounter *CSIProxyMounter) Mount(source string, target string, fstype string, options []string) error { - // Mount is called after the format is done. - // TODO: Confirm that fstype is empty. - linkRequest := &fs.CreateSymlinkRequest{ - SourcePath: normalizeWindowsPath(source), - TargetPath: normalizeWindowsPath(target), - } - _, err := mounter.FsClient.CreateSymlink(context.Background(), linkRequest) - if err != nil { - return err - } - return nil -} - -func (mounter *CSIProxyMounter) Unmount(target string) error { - // Find the volume id - getVolumeIdRequest := &volume.GetVolumeIDFromTargetPathRequest{ - TargetPath: normalizeWindowsPath(target), - } - volumeIdResponse, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), getVolumeIdRequest) - if err != nil { - return err - } - - // Call UnmountVolume CSI proxy function which flushes data cache to disk and removes the global staging path - unmountVolumeRequest := &volume.UnmountVolumeRequest{ - VolumeId: volumeIdResponse.VolumeId, - TargetPath: normalizeWindowsPath(target), - } - _, err = mounter.VolumeClient.UnmountVolume(context.Background(), unmountVolumeRequest) - if err != nil { - return err - } - - // Cleanup stage path - err = mounter.Rmdir(target) - if err != nil { - return err - } - - // Get disk number - getDiskNumberRequest := &volume.GetDiskNumberFromVolumeIDRequest{ - VolumeId: volumeIdResponse.VolumeId, - } - getDiskNumberResponse, err := mounter.VolumeClient.GetDiskNumberFromVolumeID(context.Background(), getDiskNumberRequest) - if err != nil { - return err - } - - // Offline the disk - setDiskStateRequest := &disk.SetDiskStateRequest{ - DiskNumber: getDiskNumberResponse.DiskNumber, - IsOnline: false, - } - _, err = mounter.DiskClient.SetDiskState(context.Background(), setDiskStateRequest) - if err != nil { - return err - } - klog.V(4).InfoS("Successfully unmounted volume", "diskNumber", getDiskNumberResponse.DiskNumber, "volumeId", volumeIdResponse.VolumeId, "target", target) - return nil -} - -// Rmdir - delete the given directory -func (mounter *CSIProxyMounter) Rmdir(path string) error { - rmdirRequest := &fs.RmdirRequest{ - Path: normalizeWindowsPath(path), - Force: true, - } - _, err := mounter.FsClient.Rmdir(context.Background(), rmdirRequest) - if err != nil { - return err - } - return nil -} - -func (mounter *CSIProxyMounter) WriteVolumeCache(target string) { - request := &volume.GetVolumeIDFromTargetPathRequest{TargetPath: normalizeWindowsPath(target)} - response, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), request) - if err != nil || response == nil { - klog.InfoS("GetVolumeIDFromTargetPath failed", "target", target, "err", err, "response", response) - } else { - request := &volume.WriteVolumeCacheRequest{ - VolumeId: response.VolumeId, - } - if res, err := mounter.VolumeClient.WriteVolumeCache(context.Background(), request); err != nil { - klog.InfoS("WriteVolumeCache failed", "volumeID", response.VolumeId, "err", err, "res", res) - } - } -} - -func (mounter *CSIProxyMounter) List() ([]mount_utils.MountPoint, error) { - return []mount_utils.MountPoint{}, fmt.Errorf("List not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) IsMountPointMatch(mp mount_utils.MountPoint, dir string) bool { - return mp.Path == dir -} - -// IsMountPoint: determines if a directory is a mountpoint. -func (mounter *CSIProxyMounter) IsMountPoint(file string) (bool, error) { - isNotMnt, err := mounter.IsLikelyNotMountPoint(file) - if err != nil { - return false, err - } - return !isNotMnt, nil -} - -// IsLikelyMountPoint - If the directory does not exists, the function will return os.ErrNotExist error. -// -// If the path exists, call to CSI proxy will check if its a link, if its a link then existence of target -// path is checked. -func (mounter *CSIProxyMounter) IsLikelyNotMountPoint(path string) (bool, error) { - isExists, err := mounter.ExistsPath(path) - if err != nil { - return false, err - } - - if !isExists { - return true, os.ErrNotExist - } - - response, err := mounter.FsClient.IsSymlink(context.Background(), - &fs.IsSymlinkRequest{ - Path: normalizeWindowsPath(path), - }) - if err != nil { - return false, err - } - return !response.IsSymlink, nil -} - -func (mounter *CSIProxyMounter) PathIsDevice(pathname string) (bool, error) { - return false, fmt.Errorf("PathIsDevice not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) DeviceOpened(pathname string) (bool, error) { - return false, fmt.Errorf("DeviceOpened not implemented for CSIProxyMounter") -} - -// GetDeviceNameFromMount returns the disk number for a mount path. -func (mounter *CSIProxyMounter) GetDeviceNameFromMount(mountPath, _ string) (string, error) { - req := &volume.GetVolumeIDFromTargetPathRequest{TargetPath: normalizeWindowsPath(mountPath)} - resp, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), req) - if err != nil { - return "", err - } - // Get disk number - getDiskNumberRequest := &volume.GetDiskNumberFromVolumeIDRequest{ - VolumeId: resp.VolumeId, - } - getDiskNumberResponse, err := mounter.VolumeClient.GetDiskNumberFromVolumeID(context.Background(), getDiskNumberRequest) - if err != nil { - return "", err - } - klog.V(4).InfoS("GetDeviceNameFromMount called", "diskNumber", getDiskNumberResponse.DiskNumber, "volumeID", resp.VolumeId, "mountPath", mountPath) - return fmt.Sprint(getDiskNumberResponse.DiskNumber), nil -} - -func (mounter *CSIProxyMounter) MakeRShared(path string) error { - return fmt.Errorf("MakeRShared not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) MakeFile(pathname string) error { - return fmt.Errorf("MakeFile not implemented for CSIProxyMounter") -} - -// MakeDir - Creates a directory. The CSI proxy takes in context information. -// Currently the make dir is only used from the staging code path, hence we call it -// with Plugin context.. -func (mounter *CSIProxyMounter) MakeDir(pathname string) error { - mkdirReq := &fs.MkdirRequest{ - Path: normalizeWindowsPath(pathname), - } - _, err := mounter.FsClient.Mkdir(context.Background(), mkdirReq) - if err != nil { - klog.V(4).InfoS("Error", err) - return err - } - - return nil -} - -// ExistsPath - Checks if a path exists. Unlike util ExistsPath, this call does not perform follow link. -func (mounter *CSIProxyMounter) ExistsPath(path string) (bool, error) { - isExistsResponse, err := mounter.FsClient.PathExists(context.Background(), - &fs.PathExistsRequest{ - Path: normalizeWindowsPath(path), - }) - if err != nil { - return false, err - } - return isExistsResponse.Exists, err -} - -func (mounter *CSIProxyMounter) EvalHostSymlinks(pathname string) (string, error) { - return "", fmt.Errorf("EvalHostSymlinks is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) GetMountRefs(pathname string) ([]string, error) { - return []string{}, fmt.Errorf("GetMountRefs is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) GetFSGroup(pathname string) (int64, error) { - return -1, fmt.Errorf("GetFSGroup is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) GetSELinuxSupport(pathname string) (bool, error) { - return false, fmt.Errorf("GetSELinuxSupport is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) GetMode(pathname string) (os.FileMode, error) { - return 0, fmt.Errorf("GetMode is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return fmt.Errorf("MountSensitive is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return fmt.Errorf("MountSensitiveWithoutSystemd is not implemented for CSIProxyMounter") -} - -func (mounter *CSIProxyMounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { - return fmt.Errorf("MountSensitiveWithoutSystemdWithMountFlags is not implemented for CSIProxyMounter") -} - -// Rescan would trigger an update storage cache via the CSI proxy. -func (mounter *CSIProxyMounter) Rescan() error { - // Call Rescan from disk APIs of CSI Proxy. - if _, err := mounter.DiskClient.Rescan(context.Background(), &disk.RescanRequest{}); err != nil { - return err - } - return nil -} - -// FindDiskByLun - given a lun number, find out the corresponding disk -func (mounter *CSIProxyMounter) FindDiskByLun(lun string) (diskNum string, err error) { - findDiskByLunResponse, err := mounter.DiskClient.ListDiskLocations(context.Background(), &disk.ListDiskLocationsRequest{}) - if err != nil { - return "", err - } - - // List all disk locations and match the lun id being requested for. - // If match is found then return back the disk number. - for diskID, location := range findDiskByLunResponse.DiskLocations { - if strings.EqualFold(location.LUNID, lun) { - return strconv.Itoa(int(diskID)), nil - } - } - return "", fmt.Errorf("could not find disk id for lun: %s", lun) -} - -// FormatAndMount - accepts the source disk number, target path to mount, the fstype to format with and options to be used. -func (mounter *CSIProxyMounter) FormatAndMountSensitiveWithFormatOptions(source string, target string, fstype string, options []string, sensitiveOptions []string, formatOptions []string) error { - // sensitiveOptions is not supported on Windows because we have no reasonable way to control what the csi-proxy does - if len(sensitiveOptions) > 0 { - return errors.New("sensitiveOptions not supported on Windows!") - } - // formatOptions is not supported on Windows because the csi-proxy does not allow supplying format arguments - // This limitation will be addressed in the future with privileged Windows containers - if len(formatOptions) > 0 { - return errors.New("formatOptions not supported on Windows!") - } - - diskNumber, err := strconv.Atoi(source) - if err != nil { - return err - } - - // Call PartitionDisk CSI proxy call to partition the disk and return the volume id - partionDiskRequest := &disk.PartitionDiskRequest{ - DiskNumber: uint32(diskNumber), - } - _, err = mounter.DiskClient.PartitionDisk(context.Background(), partionDiskRequest) - if err != nil { - return err - } - - // Ensure the disk is online before mounting. - setDiskStateRequest := &disk.SetDiskStateRequest{ - DiskNumber: uint32(diskNumber), - IsOnline: true, - } - _, err = mounter.DiskClient.SetDiskState(context.Background(), setDiskStateRequest) - if err != nil { - return err - } - - // List the volumes on the given disk. - volumeIDsRequest := &volume.ListVolumesOnDiskRequest{ - DiskNumber: uint32(diskNumber), - } - volumeIdResponse, err := mounter.VolumeClient.ListVolumesOnDisk(context.Background(), volumeIDsRequest) - if err != nil { - return err - } - - // TODO: consider partitions and choose the right partition. - // For now just choose the first volume. - volumeID := volumeIdResponse.VolumeIds[0] - - // Check if the volume is formatted. - isVolumeFormattedRequest := &volume.IsVolumeFormattedRequest{ - VolumeId: volumeID, - } - isVolumeFormattedResponse, err := mounter.VolumeClient.IsVolumeFormatted(context.Background(), isVolumeFormattedRequest) - if err != nil { - return err - } - - // If the volume is not formatted, then format it, else proceed to mount. - if !isVolumeFormattedResponse.Formatted { - formatVolumeRequest := &volume.FormatVolumeRequest{ - VolumeId: volumeID, - // TODO: Accept the filesystem and other options - } - _, err = mounter.VolumeClient.FormatVolume(context.Background(), formatVolumeRequest) - if err != nil { - return err - } - } - - // Mount the volume by calling the CSI proxy call. - mountVolumeRequest := &volume.MountVolumeRequest{ - VolumeId: volumeID, - TargetPath: normalizeWindowsPath(target), - } - _, err = mounter.VolumeClient.MountVolume(context.Background(), mountVolumeRequest) - if err != nil { - return err - } - return nil -} - -// ResizeVolume resizes the volume at given mount path -func (mounter *CSIProxyMounter) ResizeVolume(deviceMountPath string) (bool, error) { - // Find the volume id - getVolumeIdRequest := &volume.GetVolumeIDFromTargetPathRequest{ - TargetPath: normalizeWindowsPath(deviceMountPath), - } - volumeIdResponse, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), getVolumeIdRequest) - if err != nil { - return false, err - } - volumeId := volumeIdResponse.GetVolumeId() - - // Resize volume - resizeVolumeRequest := &volume.ResizeVolumeRequest{ - VolumeId: volumeId, - } - _, err = mounter.VolumeClient.ResizeVolume(context.Background(), resizeVolumeRequest) - if err != nil { - return false, err - } - - return true, nil -} - -// GetVolumeSizeInBytes returns the size of the volume in bytes -func (mounter *CSIProxyMounter) GetVolumeSizeInBytes(deviceMountPath string) (int64, error) { - // Find the volume id - getVolumeIdRequest := &volume.GetVolumeIDFromTargetPathRequest{ - TargetPath: normalizeWindowsPath(deviceMountPath), - } - volumeIdResponse, err := mounter.VolumeClient.GetVolumeIDFromTargetPath(context.Background(), getVolumeIdRequest) - if err != nil { - return -1, err - } - volumeId := volumeIdResponse.GetVolumeId() - - // Get size of the volume - getVolumeStatsRequest := &volume.GetVolumeStatsRequest{ - VolumeId: volumeId, - } - resp, err := mounter.VolumeClient.GetVolumeStats(context.Background(), getVolumeStatsRequest) - if err != nil { - return -1, err - } - - return resp.TotalBytes, nil -} - -// GetDeviceSize returns the size of the disk in bytes -func (mounter *CSIProxyMounter) GetDeviceSize(devicePath string) (int64, error) { - diskNumber, err := strconv.Atoi(devicePath) - if err != nil { - return -1, err - } - - //Get size of the disk - getDiskStatsRequest := &disk.GetDiskStatsRequest{ - DiskNumber: uint32(diskNumber), - } - resp, err := mounter.DiskClient.GetDiskStats(context.Background(), getDiskStatsRequest) - if err != nil { - return -1, err - } - - return resp.TotalBytes, nil -} - -// NewCSIProxyMounter - creates a new CSI Proxy mounter struct which encompassed all the -// clients to the CSI proxy - filesystem, disk and volume clients. -func NewCSIProxyMounter() (*CSIProxyMounter, error) { - fsClient, err := fsclient.NewClient() - if err != nil { - return nil, err - } - diskClient, err := diskclient.NewClient() - if err != nil { - return nil, err - } - volumeClient, err := volumeclient.NewClient() - if err != nil { - return nil, err - } - return &CSIProxyMounter{ - FsClient: fsClient, - DiskClient: diskClient, - VolumeClient: volumeClient, - }, nil -} - -func NewSafeMounter() (*mount_utils.SafeFormatAndMount, error) { - csiProxyMounter, err := NewCSIProxyMounter() - if err != nil { - return nil, err - } - return &mount_utils.SafeFormatAndMount{ - Interface: csiProxyMounter, - Exec: utilexec.New(), - }, nil -} diff --git a/ecs-agent/daemonimages/csidriver/update-gomock b/ecs-agent/daemonimages/csidriver/update-gomock deleted file mode 100755 index 9b99c933d9..0000000000 --- a/ecs-agent/daemonimages/csidriver/update-gomock +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -euo pipefail - -mockgen -package driver -destination=./driver/mock_mount.go -source ./driver/mount.go -mockgen -package mounter -destination=./mounter/mock_mount_windows.go -source ./mounter/safe_mounter_windows.go - -# Fixes "Mounter Type cannot implement 'Mounter' as it has a non-exported method and is defined in a different package" -# See https://github.com/kubernetes/mount-utils/commit/a20fcfb15a701977d086330b47b7efad51eb608e for context. -sed -i '/type MockMounter struct {/a \\tmount_utils.Interface' ./driver/mock_mount.go -sed -i '/type MockProxyMounter struct {/a \\tmount.Interface' ./mounter/mock_mount_windows.go \ No newline at end of file diff --git a/ecs-agent/go.mod b/ecs-agent/go.mod index 7ab515098a..2bfaf08719 100644 --- a/ecs-agent/go.mod +++ b/ecs-agent/go.mod @@ -11,7 +11,6 @@ require ( github.com/golang/mock v1.4.1 github.com/gorilla/mux v1.8.0 github.com/gorilla/websocket v1.5.0 - github.com/kubernetes-csi/csi-proxy/client v1.1.2 github.com/pborman/uuid v1.2.1 github.com/pkg/errors v0.9.1 github.com/prometheus/client_model v0.2.0 @@ -23,12 +22,9 @@ require ( google.golang.org/grpc v1.52.0 k8s.io/apimachinery v0.26.0-alpha.0 k8s.io/klog/v2 v2.100.1 - k8s.io/mount-utils v0.26.0-alpha.0 - k8s.io/utils v0.0.0-20230505201702-9f6742963106 ) require ( - github.com/Microsoft/go-winio v0.6.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/go-connections v0.4.0 // indirect github.com/docker/go-units v0.5.0 // indirect @@ -39,7 +35,6 @@ require ( github.com/google/uuid v1.3.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect - github.com/moby/sys/mountinfo v0.6.2 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pmezard/go-difflib v1.0.0 // indirect golang.org/x/mod v0.10.0 // indirect diff --git a/ecs-agent/go.sum b/ecs-agent/go.sum index 1887e65d1e..98c1792f88 100644 --- a/ecs-agent/go.sum +++ b/ecs-agent/go.sum @@ -1,9 +1,4 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= @@ -14,12 +9,9 @@ github.com/aws/aws-sdk-go v1.36.0/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zK github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/container-storage-interface/spec v1.8.0 h1:D0vhF3PLIZwlwZEf2eNbpujGCNwspwTYf2idJRJx4xI= github.com/container-storage-interface/spec v1.8.0/go.mod h1:ROLik+GhPslwwWRNFF1KasPzroNARibH2rfz1rkg4H0= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -33,10 +25,6 @@ github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKoh github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -50,8 +38,6 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.4.1 h1:ocYkMQY5RrXTYgXl7ICpV0IXwlEQGwKIsery4gyXa1U= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -62,24 +48,19 @@ github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:x github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= @@ -104,13 +85,9 @@ github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORN github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kubernetes-csi/csi-proxy/client v1.1.2 h1:zRZOv9RXAd9d/46RIiVkzyssIw5tAK7IJlYIk3gn9FU= -github.com/kubernetes-csi/csi-proxy/client v1.1.2/go.mod h1:SfK4HVKQdMH5KrffivddAWgX5hl3P5KmnuOTBbDNboU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.4 h1:mmDVorXM7PCGKw94cs5zkfA9PSy5pEvNWRP0ET0TIVo= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= -github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -133,7 +110,6 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0 h1:uq5h0d+GuxiXLJLNABMgp2qUWDPiLvgCzz2dUR+/W/M= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -144,7 +120,6 @@ github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -153,7 +128,6 @@ github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -162,19 +136,13 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -185,28 +153,22 @@ golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwY golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -217,11 +179,7 @@ golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= @@ -231,18 +189,9 @@ golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 h1:a2S6M0+660BgMNl++4JPlcAO/CjkqYItDEZwkoDQK7c= google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6/go.mod h1:rZS5c/ZVYMaOGBfO68GWtjOw/eLaZM1X6iVtgjZ+EWg= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.52.0 h1:kd48UiU7EHsV4rnLyOJRuP/Il/UHE7gdDAQ+SZI7nZk= google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= @@ -250,10 +199,7 @@ google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= @@ -274,15 +220,9 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/apimachinery v0.26.0-alpha.0 h1:cnXW2EigxCOrD+s52R9r5AZOcu1Nbv508gOCgSQkbo4= k8s.io/apimachinery v0.26.0-alpha.0/go.mod h1:qMx9eAk0sZQGsXGu86fab8tZdffHbwUfsvzqKn4mfB0= k8s.io/klog/v2 v2.100.1 h1:7WCHKK6K8fNhTqfBhISHQ97KrnJNFZMcQvKp7gP/tmg= k8s.io/klog/v2 v2.100.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/mount-utils v0.26.0-alpha.0 h1:OOqJgwTHRsCoeWHYa7VWMIQrQWJuDeBGK9an8CfBanA= -k8s.io/mount-utils v0.26.0-alpha.0/go.mod h1:WTYq8Ev/JrnkqK2h1jFUnC8qWGuqzMb9XDC+Lu3WNU0= -k8s.io/utils v0.0.0-20230505201702-9f6742963106 h1:EObNQ3TW2D+WptiYXlApGNLVy0zm/JIBVY9i+M4wpAU= -k8s.io/utils v0.0.0-20230505201702-9f6742963106/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes b/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes deleted file mode 100644 index 94f480de94..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -* text=auto eol=lf \ No newline at end of file diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore b/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore deleted file mode 100644 index 815e20660e..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/.gitignore +++ /dev/null @@ -1,10 +0,0 @@ -.vscode/ - -*.exe - -# testing -testdata - -# go workspaces -go.work -go.work.sum diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml b/ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml deleted file mode 100644 index 7b503d26a3..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/.golangci.yml +++ /dev/null @@ -1,149 +0,0 @@ -run: - skip-dirs: - - pkg/etw/sample - -linters: - enable: - # style - - containedctx # struct contains a context - - dupl # duplicate code - - errname # erorrs are named correctly - - nolintlint # "//nolint" directives are properly explained - - revive # golint replacement - - unconvert # unnecessary conversions - - wastedassign - - # bugs, performance, unused, etc ... - - contextcheck # function uses a non-inherited context - - errorlint # errors not wrapped for 1.13 - - exhaustive # check exhaustiveness of enum switch statements - - gofmt # files are gofmt'ed - - gosec # security - - nilerr # returns nil even with non-nil error - - unparam # unused function params - -issues: - exclude-rules: - # err is very often shadowed in nested scopes - - linters: - - govet - text: '^shadow: declaration of "err" shadows declaration' - - # ignore long lines for skip autogen directives - - linters: - - revive - text: "^line-length-limit: " - source: "^//(go:generate|sys) " - - #TODO: remove after upgrading to go1.18 - # ignore comment spacing for nolint and sys directives - - linters: - - revive - text: "^comment-spacings: no space between comment delimiter and comment text" - source: "//(cspell:|nolint:|sys |todo)" - - # not on go 1.18 yet, so no any - - linters: - - revive - text: "^use-any: since GO 1.18 'interface{}' can be replaced by 'any'" - - # allow unjustified ignores of error checks in defer statements - - linters: - - nolintlint - text: "^directive `//nolint:errcheck` should provide explanation" - source: '^\s*defer ' - - # allow unjustified ignores of error lints for io.EOF - - linters: - - nolintlint - text: "^directive `//nolint:errorlint` should provide explanation" - source: '[=|!]= io.EOF' - - -linters-settings: - exhaustive: - default-signifies-exhaustive: true - govet: - enable-all: true - disable: - # struct order is often for Win32 compat - # also, ignore pointer bytes/GC issues for now until performance becomes an issue - - fieldalignment - check-shadowing: true - nolintlint: - allow-leading-space: false - require-explanation: true - require-specific: true - revive: - # revive is more configurable than static check, so likely the preferred alternative to static-check - # (once the perf issue is solved: https://github.com/golangci/golangci-lint/issues/2997) - enable-all-rules: - true - # https://github.com/mgechev/revive/blob/master/RULES_DESCRIPTIONS.md - rules: - # rules with required arguments - - name: argument-limit - disabled: true - - name: banned-characters - disabled: true - - name: cognitive-complexity - disabled: true - - name: cyclomatic - disabled: true - - name: file-header - disabled: true - - name: function-length - disabled: true - - name: function-result-limit - disabled: true - - name: max-public-structs - disabled: true - # geneally annoying rules - - name: add-constant # complains about any and all strings and integers - disabled: true - - name: confusing-naming # we frequently use "Foo()" and "foo()" together - disabled: true - - name: flag-parameter # excessive, and a common idiom we use - disabled: true - - name: unhandled-error # warns over common fmt.Print* and io.Close; rely on errcheck instead - disabled: true - # general config - - name: line-length-limit - arguments: - - 140 - - name: var-naming - arguments: - - [] - - - CID - - CRI - - CTRD - - DACL - - DLL - - DOS - - ETW - - FSCTL - - GCS - - GMSA - - HCS - - HV - - IO - - LCOW - - LDAP - - LPAC - - LTSC - - MMIO - - NT - - OCI - - PMEM - - PWSH - - RX - - SACl - - SID - - SMB - - TX - - VHD - - VHDX - - VMID - - VPCI - - WCOW - - WIM diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS b/ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS deleted file mode 100644 index ae1b4942b9..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/CODEOWNERS +++ /dev/null @@ -1 +0,0 @@ - * @microsoft/containerplat diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE b/ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE deleted file mode 100644 index b8b569d774..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Microsoft - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/README.md b/ecs-agent/vendor/github.com/Microsoft/go-winio/README.md deleted file mode 100644 index 7474b4f0b6..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/README.md +++ /dev/null @@ -1,89 +0,0 @@ -# go-winio [![Build Status](https://github.com/microsoft/go-winio/actions/workflows/ci.yml/badge.svg)](https://github.com/microsoft/go-winio/actions/workflows/ci.yml) - -This repository contains utilities for efficiently performing Win32 IO operations in -Go. Currently, this is focused on accessing named pipes and other file handles, and -for using named pipes as a net transport. - -This code relies on IO completion ports to avoid blocking IO on system threads, allowing Go -to reuse the thread to schedule another goroutine. This limits support to Windows Vista and -newer operating systems. This is similar to the implementation of network sockets in Go's net -package. - -Please see the LICENSE file for licensing information. - -## Contributing - -This project welcomes contributions and suggestions. -Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that -you have the right to, and actually do, grant us the rights to use your contribution. -For details, visit [Microsoft CLA](https://cla.microsoft.com). - -When you submit a pull request, a CLA-bot will automatically determine whether you need to -provide a CLA and decorate the PR appropriately (e.g., label, comment). -Simply follow the instructions provided by the bot. -You will only need to do this once across all repos using our CLA. - -Additionally, the pull request pipeline requires the following steps to be performed before -mergining. - -### Code Sign-Off - -We require that contributors sign their commits using [`git commit --signoff`][git-commit-s] -to certify they either authored the work themselves or otherwise have permission to use it in this project. - -A range of commits can be signed off using [`git rebase --signoff`][git-rebase-s]. - -Please see [the developer certificate](https://developercertificate.org) for more info, -as well as to make sure that you can attest to the rules listed. -Our CI uses the DCO Github app to ensure that all commits in a given PR are signed-off. - -### Linting - -Code must pass a linting stage, which uses [`golangci-lint`][lint]. -The linting settings are stored in [`.golangci.yaml`](./.golangci.yaml), and can be run -automatically with VSCode by adding the following to your workspace or folder settings: - -```json - "go.lintTool": "golangci-lint", - "go.lintOnSave": "package", -``` - -Additional editor [integrations options are also available][lint-ide]. - -Alternatively, `golangci-lint` can be [installed locally][lint-install] and run from the repo root: - -```shell -# use . or specify a path to only lint a package -# to show all lint errors, use flags "--max-issues-per-linter=0 --max-same-issues=0" -> golangci-lint run ./... -``` - -### Go Generate - -The pipeline checks that auto-generated code, via `go generate`, are up to date. - -This can be done for the entire repo: - -```shell -> go generate ./... -``` - -## Code of Conduct - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -## Special Thanks - -Thanks to [natefinch][natefinch] for the inspiration for this library. -See [npipe](https://github.com/natefinch/npipe) for another named pipe implementation. - -[lint]: https://golangci-lint.run/ -[lint-ide]: https://golangci-lint.run/usage/integrations/#editor-integration -[lint-install]: https://golangci-lint.run/usage/install/#local-installation - -[git-commit-s]: https://git-scm.com/docs/git-commit#Documentation/git-commit.txt--s -[git-rebase-s]: https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt---signoff - -[natefinch]: https://github.com/natefinch diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md b/ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md deleted file mode 100644 index 869fdfe2b2..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/SECURITY.md +++ /dev/null @@ -1,41 +0,0 @@ - - -## Security - -Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). - -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. - -## Reporting Security Issues - -**Please do not report security vulnerabilities through public GitHub issues.** - -Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). - -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). - -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). - -Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: - - * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) - * Full paths of source file(s) related to the manifestation of the issue - * The location of the affected source code (tag/branch/commit or direct URL) - * Any special configuration required to reproduce the issue - * Step-by-step instructions to reproduce the issue - * Proof-of-concept or exploit code (if possible) - * Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. - -## Preferred Languages - -We prefer all communications to be in English. - -## Policy - -Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). - - diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go deleted file mode 100644 index 09621c8846..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/backup.go +++ /dev/null @@ -1,290 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "encoding/binary" - "errors" - "fmt" - "io" - "os" - "runtime" - "syscall" - "unicode/utf16" - - "golang.org/x/sys/windows" -) - -//sys backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupRead -//sys backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) = BackupWrite - -const ( - BackupData = uint32(iota + 1) - BackupEaData - BackupSecurity - BackupAlternateData - BackupLink - BackupPropertyData - BackupObjectId //revive:disable-line:var-naming ID, not Id - BackupReparseData - BackupSparseBlock - BackupTxfsData -) - -const ( - StreamSparseAttributes = uint32(8) -) - -//nolint:revive // var-naming: ALL_CAPS -const ( - WRITE_DAC = windows.WRITE_DAC - WRITE_OWNER = windows.WRITE_OWNER - ACCESS_SYSTEM_SECURITY = windows.ACCESS_SYSTEM_SECURITY -) - -// BackupHeader represents a backup stream of a file. -type BackupHeader struct { - //revive:disable-next-line:var-naming ID, not Id - Id uint32 // The backup stream ID - Attributes uint32 // Stream attributes - Size int64 // The size of the stream in bytes - Name string // The name of the stream (for BackupAlternateData only). - Offset int64 // The offset of the stream in the file (for BackupSparseBlock only). -} - -type win32StreamID struct { - StreamID uint32 - Attributes uint32 - Size uint64 - NameSize uint32 -} - -// BackupStreamReader reads from a stream produced by the BackupRead Win32 API and produces a series -// of BackupHeader values. -type BackupStreamReader struct { - r io.Reader - bytesLeft int64 -} - -// NewBackupStreamReader produces a BackupStreamReader from any io.Reader. -func NewBackupStreamReader(r io.Reader) *BackupStreamReader { - return &BackupStreamReader{r, 0} -} - -// Next returns the next backup stream and prepares for calls to Read(). It skips the remainder of the current stream if -// it was not completely read. -func (r *BackupStreamReader) Next() (*BackupHeader, error) { - if r.bytesLeft > 0 { //nolint:nestif // todo: flatten this - if s, ok := r.r.(io.Seeker); ok { - // Make sure Seek on io.SeekCurrent sometimes succeeds - // before trying the actual seek. - if _, err := s.Seek(0, io.SeekCurrent); err == nil { - if _, err = s.Seek(r.bytesLeft, io.SeekCurrent); err != nil { - return nil, err - } - r.bytesLeft = 0 - } - } - if _, err := io.Copy(io.Discard, r); err != nil { - return nil, err - } - } - var wsi win32StreamID - if err := binary.Read(r.r, binary.LittleEndian, &wsi); err != nil { - return nil, err - } - hdr := &BackupHeader{ - Id: wsi.StreamID, - Attributes: wsi.Attributes, - Size: int64(wsi.Size), - } - if wsi.NameSize != 0 { - name := make([]uint16, int(wsi.NameSize/2)) - if err := binary.Read(r.r, binary.LittleEndian, name); err != nil { - return nil, err - } - hdr.Name = syscall.UTF16ToString(name) - } - if wsi.StreamID == BackupSparseBlock { - if err := binary.Read(r.r, binary.LittleEndian, &hdr.Offset); err != nil { - return nil, err - } - hdr.Size -= 8 - } - r.bytesLeft = hdr.Size - return hdr, nil -} - -// Read reads from the current backup stream. -func (r *BackupStreamReader) Read(b []byte) (int, error) { - if r.bytesLeft == 0 { - return 0, io.EOF - } - if int64(len(b)) > r.bytesLeft { - b = b[:r.bytesLeft] - } - n, err := r.r.Read(b) - r.bytesLeft -= int64(n) - if err == io.EOF { - err = io.ErrUnexpectedEOF - } else if r.bytesLeft == 0 && err == nil { - err = io.EOF - } - return n, err -} - -// BackupStreamWriter writes a stream compatible with the BackupWrite Win32 API. -type BackupStreamWriter struct { - w io.Writer - bytesLeft int64 -} - -// NewBackupStreamWriter produces a BackupStreamWriter on top of an io.Writer. -func NewBackupStreamWriter(w io.Writer) *BackupStreamWriter { - return &BackupStreamWriter{w, 0} -} - -// WriteHeader writes the next backup stream header and prepares for calls to Write(). -func (w *BackupStreamWriter) WriteHeader(hdr *BackupHeader) error { - if w.bytesLeft != 0 { - return fmt.Errorf("missing %d bytes", w.bytesLeft) - } - name := utf16.Encode([]rune(hdr.Name)) - wsi := win32StreamID{ - StreamID: hdr.Id, - Attributes: hdr.Attributes, - Size: uint64(hdr.Size), - NameSize: uint32(len(name) * 2), - } - if hdr.Id == BackupSparseBlock { - // Include space for the int64 block offset - wsi.Size += 8 - } - if err := binary.Write(w.w, binary.LittleEndian, &wsi); err != nil { - return err - } - if len(name) != 0 { - if err := binary.Write(w.w, binary.LittleEndian, name); err != nil { - return err - } - } - if hdr.Id == BackupSparseBlock { - if err := binary.Write(w.w, binary.LittleEndian, hdr.Offset); err != nil { - return err - } - } - w.bytesLeft = hdr.Size - return nil -} - -// Write writes to the current backup stream. -func (w *BackupStreamWriter) Write(b []byte) (int, error) { - if w.bytesLeft < int64(len(b)) { - return 0, fmt.Errorf("too many bytes by %d", int64(len(b))-w.bytesLeft) - } - n, err := w.w.Write(b) - w.bytesLeft -= int64(n) - return n, err -} - -// BackupFileReader provides an io.ReadCloser interface on top of the BackupRead Win32 API. -type BackupFileReader struct { - f *os.File - includeSecurity bool - ctx uintptr -} - -// NewBackupFileReader returns a new BackupFileReader from a file handle. If includeSecurity is true, -// Read will attempt to read the security descriptor of the file. -func NewBackupFileReader(f *os.File, includeSecurity bool) *BackupFileReader { - r := &BackupFileReader{f, includeSecurity, 0} - return r -} - -// Read reads a backup stream from the file by calling the Win32 API BackupRead(). -func (r *BackupFileReader) Read(b []byte) (int, error) { - var bytesRead uint32 - err := backupRead(syscall.Handle(r.f.Fd()), b, &bytesRead, false, r.includeSecurity, &r.ctx) - if err != nil { - return 0, &os.PathError{Op: "BackupRead", Path: r.f.Name(), Err: err} - } - runtime.KeepAlive(r.f) - if bytesRead == 0 { - return 0, io.EOF - } - return int(bytesRead), nil -} - -// Close frees Win32 resources associated with the BackupFileReader. It does not close -// the underlying file. -func (r *BackupFileReader) Close() error { - if r.ctx != 0 { - _ = backupRead(syscall.Handle(r.f.Fd()), nil, nil, true, false, &r.ctx) - runtime.KeepAlive(r.f) - r.ctx = 0 - } - return nil -} - -// BackupFileWriter provides an io.WriteCloser interface on top of the BackupWrite Win32 API. -type BackupFileWriter struct { - f *os.File - includeSecurity bool - ctx uintptr -} - -// NewBackupFileWriter returns a new BackupFileWriter from a file handle. If includeSecurity is true, -// Write() will attempt to restore the security descriptor from the stream. -func NewBackupFileWriter(f *os.File, includeSecurity bool) *BackupFileWriter { - w := &BackupFileWriter{f, includeSecurity, 0} - return w -} - -// Write restores a portion of the file using the provided backup stream. -func (w *BackupFileWriter) Write(b []byte) (int, error) { - var bytesWritten uint32 - err := backupWrite(syscall.Handle(w.f.Fd()), b, &bytesWritten, false, w.includeSecurity, &w.ctx) - if err != nil { - return 0, &os.PathError{Op: "BackupWrite", Path: w.f.Name(), Err: err} - } - runtime.KeepAlive(w.f) - if int(bytesWritten) != len(b) { - return int(bytesWritten), errors.New("not all bytes could be written") - } - return len(b), nil -} - -// Close frees Win32 resources associated with the BackupFileWriter. It does not -// close the underlying file. -func (w *BackupFileWriter) Close() error { - if w.ctx != 0 { - _ = backupWrite(syscall.Handle(w.f.Fd()), nil, nil, true, false, &w.ctx) - runtime.KeepAlive(w.f) - w.ctx = 0 - } - return nil -} - -// OpenForBackup opens a file or directory, potentially skipping access checks if the backup -// or restore privileges have been acquired. -// -// If the file opened was a directory, it cannot be used with Readdir(). -func OpenForBackup(path string, access uint32, share uint32, createmode uint32) (*os.File, error) { - winPath, err := syscall.UTF16FromString(path) - if err != nil { - return nil, err - } - h, err := syscall.CreateFile(&winPath[0], - access, - share, - nil, - createmode, - syscall.FILE_FLAG_BACKUP_SEMANTICS|syscall.FILE_FLAG_OPEN_REPARSE_POINT, - 0) - if err != nil { - err = &os.PathError{Op: "open", Path: path, Err: err} - return nil, err - } - return os.NewFile(uintptr(h), path), nil -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go deleted file mode 100644 index 1f5bfe2d54..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/doc.go +++ /dev/null @@ -1,22 +0,0 @@ -// This package provides utilities for efficiently performing Win32 IO operations in Go. -// Currently, this package is provides support for genreal IO and management of -// - named pipes -// - files -// - [Hyper-V sockets] -// -// This code is similar to Go's [net] package, and uses IO completion ports to avoid -// blocking IO on system threads, allowing Go to reuse the thread to schedule other goroutines. -// -// This limits support to Windows Vista and newer operating systems. -// -// Additionally, this package provides support for: -// - creating and managing GUIDs -// - writing to [ETW] -// - opening and manageing VHDs -// - parsing [Windows Image files] -// - auto-generating Win32 API code -// -// [Hyper-V sockets]: https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service -// [ETW]: https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/event-tracing-for-windows--etw- -// [Windows Image files]: https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/work-with-windows-images -package winio diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go deleted file mode 100644 index e104dbdfdf..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/ea.go +++ /dev/null @@ -1,137 +0,0 @@ -package winio - -import ( - "bytes" - "encoding/binary" - "errors" -) - -type fileFullEaInformation struct { - NextEntryOffset uint32 - Flags uint8 - NameLength uint8 - ValueLength uint16 -} - -var ( - fileFullEaInformationSize = binary.Size(&fileFullEaInformation{}) - - errInvalidEaBuffer = errors.New("invalid extended attribute buffer") - errEaNameTooLarge = errors.New("extended attribute name too large") - errEaValueTooLarge = errors.New("extended attribute value too large") -) - -// ExtendedAttribute represents a single Windows EA. -type ExtendedAttribute struct { - Name string - Value []byte - Flags uint8 -} - -func parseEa(b []byte) (ea ExtendedAttribute, nb []byte, err error) { - var info fileFullEaInformation - err = binary.Read(bytes.NewReader(b), binary.LittleEndian, &info) - if err != nil { - err = errInvalidEaBuffer - return ea, nb, err - } - - nameOffset := fileFullEaInformationSize - nameLen := int(info.NameLength) - valueOffset := nameOffset + int(info.NameLength) + 1 - valueLen := int(info.ValueLength) - nextOffset := int(info.NextEntryOffset) - if valueLen+valueOffset > len(b) || nextOffset < 0 || nextOffset > len(b) { - err = errInvalidEaBuffer - return ea, nb, err - } - - ea.Name = string(b[nameOffset : nameOffset+nameLen]) - ea.Value = b[valueOffset : valueOffset+valueLen] - ea.Flags = info.Flags - if info.NextEntryOffset != 0 { - nb = b[info.NextEntryOffset:] - } - return ea, nb, err -} - -// DecodeExtendedAttributes decodes a list of EAs from a FILE_FULL_EA_INFORMATION -// buffer retrieved from BackupRead, ZwQueryEaFile, etc. -func DecodeExtendedAttributes(b []byte) (eas []ExtendedAttribute, err error) { - for len(b) != 0 { - ea, nb, err := parseEa(b) - if err != nil { - return nil, err - } - - eas = append(eas, ea) - b = nb - } - return eas, err -} - -func writeEa(buf *bytes.Buffer, ea *ExtendedAttribute, last bool) error { - if int(uint8(len(ea.Name))) != len(ea.Name) { - return errEaNameTooLarge - } - if int(uint16(len(ea.Value))) != len(ea.Value) { - return errEaValueTooLarge - } - entrySize := uint32(fileFullEaInformationSize + len(ea.Name) + 1 + len(ea.Value)) - withPadding := (entrySize + 3) &^ 3 - nextOffset := uint32(0) - if !last { - nextOffset = withPadding - } - info := fileFullEaInformation{ - NextEntryOffset: nextOffset, - Flags: ea.Flags, - NameLength: uint8(len(ea.Name)), - ValueLength: uint16(len(ea.Value)), - } - - err := binary.Write(buf, binary.LittleEndian, &info) - if err != nil { - return err - } - - _, err = buf.Write([]byte(ea.Name)) - if err != nil { - return err - } - - err = buf.WriteByte(0) - if err != nil { - return err - } - - _, err = buf.Write(ea.Value) - if err != nil { - return err - } - - _, err = buf.Write([]byte{0, 0, 0}[0 : withPadding-entrySize]) - if err != nil { - return err - } - - return nil -} - -// EncodeExtendedAttributes encodes a list of EAs into a FILE_FULL_EA_INFORMATION -// buffer for use with BackupWrite, ZwSetEaFile, etc. -func EncodeExtendedAttributes(eas []ExtendedAttribute) ([]byte, error) { - var buf bytes.Buffer - for i := range eas { - last := false - if i == len(eas)-1 { - last = true - } - - err := writeEa(&buf, &eas[i], last) - if err != nil { - return nil, err - } - } - return buf.Bytes(), nil -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/file.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/file.go deleted file mode 100644 index 175a99d3f4..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/file.go +++ /dev/null @@ -1,331 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "errors" - "io" - "runtime" - "sync" - "sync/atomic" - "syscall" - "time" - - "golang.org/x/sys/windows" -) - -//sys cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) = CancelIoEx -//sys createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) = CreateIoCompletionPort -//sys getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) = GetQueuedCompletionStatus -//sys setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) = SetFileCompletionNotificationModes -//sys wsaGetOverlappedResult(h syscall.Handle, o *syscall.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) = ws2_32.WSAGetOverlappedResult - -type atomicBool int32 - -func (b *atomicBool) isSet() bool { return atomic.LoadInt32((*int32)(b)) != 0 } -func (b *atomicBool) setFalse() { atomic.StoreInt32((*int32)(b), 0) } -func (b *atomicBool) setTrue() { atomic.StoreInt32((*int32)(b), 1) } - -//revive:disable-next-line:predeclared Keep "new" to maintain consistency with "atomic" pkg -func (b *atomicBool) swap(new bool) bool { - var newInt int32 - if new { - newInt = 1 - } - return atomic.SwapInt32((*int32)(b), newInt) == 1 -} - -var ( - ErrFileClosed = errors.New("file has already been closed") - ErrTimeout = &timeoutError{} -) - -type timeoutError struct{} - -func (*timeoutError) Error() string { return "i/o timeout" } -func (*timeoutError) Timeout() bool { return true } -func (*timeoutError) Temporary() bool { return true } - -type timeoutChan chan struct{} - -var ioInitOnce sync.Once -var ioCompletionPort syscall.Handle - -// ioResult contains the result of an asynchronous IO operation. -type ioResult struct { - bytes uint32 - err error -} - -// ioOperation represents an outstanding asynchronous Win32 IO. -type ioOperation struct { - o syscall.Overlapped - ch chan ioResult -} - -func initIO() { - h, err := createIoCompletionPort(syscall.InvalidHandle, 0, 0, 0xffffffff) - if err != nil { - panic(err) - } - ioCompletionPort = h - go ioCompletionProcessor(h) -} - -// win32File implements Reader, Writer, and Closer on a Win32 handle without blocking in a syscall. -// It takes ownership of this handle and will close it if it is garbage collected. -type win32File struct { - handle syscall.Handle - wg sync.WaitGroup - wgLock sync.RWMutex - closing atomicBool - socket bool - readDeadline deadlineHandler - writeDeadline deadlineHandler -} - -type deadlineHandler struct { - setLock sync.Mutex - channel timeoutChan - channelLock sync.RWMutex - timer *time.Timer - timedout atomicBool -} - -// makeWin32File makes a new win32File from an existing file handle. -func makeWin32File(h syscall.Handle) (*win32File, error) { - f := &win32File{handle: h} - ioInitOnce.Do(initIO) - _, err := createIoCompletionPort(h, ioCompletionPort, 0, 0xffffffff) - if err != nil { - return nil, err - } - err = setFileCompletionNotificationModes(h, windows.FILE_SKIP_COMPLETION_PORT_ON_SUCCESS|windows.FILE_SKIP_SET_EVENT_ON_HANDLE) - if err != nil { - return nil, err - } - f.readDeadline.channel = make(timeoutChan) - f.writeDeadline.channel = make(timeoutChan) - return f, nil -} - -func MakeOpenFile(h syscall.Handle) (io.ReadWriteCloser, error) { - // If we return the result of makeWin32File directly, it can result in an - // interface-wrapped nil, rather than a nil interface value. - f, err := makeWin32File(h) - if err != nil { - return nil, err - } - return f, nil -} - -// closeHandle closes the resources associated with a Win32 handle. -func (f *win32File) closeHandle() { - f.wgLock.Lock() - // Atomically set that we are closing, releasing the resources only once. - if !f.closing.swap(true) { - f.wgLock.Unlock() - // cancel all IO and wait for it to complete - _ = cancelIoEx(f.handle, nil) - f.wg.Wait() - // at this point, no new IO can start - syscall.Close(f.handle) - f.handle = 0 - } else { - f.wgLock.Unlock() - } -} - -// Close closes a win32File. -func (f *win32File) Close() error { - f.closeHandle() - return nil -} - -// IsClosed checks if the file has been closed. -func (f *win32File) IsClosed() bool { - return f.closing.isSet() -} - -// prepareIO prepares for a new IO operation. -// The caller must call f.wg.Done() when the IO is finished, prior to Close() returning. -func (f *win32File) prepareIO() (*ioOperation, error) { - f.wgLock.RLock() - if f.closing.isSet() { - f.wgLock.RUnlock() - return nil, ErrFileClosed - } - f.wg.Add(1) - f.wgLock.RUnlock() - c := &ioOperation{} - c.ch = make(chan ioResult) - return c, nil -} - -// ioCompletionProcessor processes completed async IOs forever. -func ioCompletionProcessor(h syscall.Handle) { - for { - var bytes uint32 - var key uintptr - var op *ioOperation - err := getQueuedCompletionStatus(h, &bytes, &key, &op, syscall.INFINITE) - if op == nil { - panic(err) - } - op.ch <- ioResult{bytes, err} - } -} - -// todo: helsaawy - create an asyncIO version that takes a context - -// asyncIO processes the return value from ReadFile or WriteFile, blocking until -// the operation has actually completed. -func (f *win32File) asyncIO(c *ioOperation, d *deadlineHandler, bytes uint32, err error) (int, error) { - if err != syscall.ERROR_IO_PENDING { //nolint:errorlint // err is Errno - return int(bytes), err - } - - if f.closing.isSet() { - _ = cancelIoEx(f.handle, &c.o) - } - - var timeout timeoutChan - if d != nil { - d.channelLock.Lock() - timeout = d.channel - d.channelLock.Unlock() - } - - var r ioResult - select { - case r = <-c.ch: - err = r.err - if err == syscall.ERROR_OPERATION_ABORTED { //nolint:errorlint // err is Errno - if f.closing.isSet() { - err = ErrFileClosed - } - } else if err != nil && f.socket { - // err is from Win32. Query the overlapped structure to get the winsock error. - var bytes, flags uint32 - err = wsaGetOverlappedResult(f.handle, &c.o, &bytes, false, &flags) - } - case <-timeout: - _ = cancelIoEx(f.handle, &c.o) - r = <-c.ch - err = r.err - if err == syscall.ERROR_OPERATION_ABORTED { //nolint:errorlint // err is Errno - err = ErrTimeout - } - } - - // runtime.KeepAlive is needed, as c is passed via native - // code to ioCompletionProcessor, c must remain alive - // until the channel read is complete. - // todo: (de)allocate *ioOperation via win32 heap functions, instead of needing to KeepAlive? - runtime.KeepAlive(c) - return int(r.bytes), err -} - -// Read reads from a file handle. -func (f *win32File) Read(b []byte) (int, error) { - c, err := f.prepareIO() - if err != nil { - return 0, err - } - defer f.wg.Done() - - if f.readDeadline.timedout.isSet() { - return 0, ErrTimeout - } - - var bytes uint32 - err = syscall.ReadFile(f.handle, b, &bytes, &c.o) - n, err := f.asyncIO(c, &f.readDeadline, bytes, err) - runtime.KeepAlive(b) - - // Handle EOF conditions. - if err == nil && n == 0 && len(b) != 0 { - return 0, io.EOF - } else if err == syscall.ERROR_BROKEN_PIPE { //nolint:errorlint // err is Errno - return 0, io.EOF - } else { - return n, err - } -} - -// Write writes to a file handle. -func (f *win32File) Write(b []byte) (int, error) { - c, err := f.prepareIO() - if err != nil { - return 0, err - } - defer f.wg.Done() - - if f.writeDeadline.timedout.isSet() { - return 0, ErrTimeout - } - - var bytes uint32 - err = syscall.WriteFile(f.handle, b, &bytes, &c.o) - n, err := f.asyncIO(c, &f.writeDeadline, bytes, err) - runtime.KeepAlive(b) - return n, err -} - -func (f *win32File) SetReadDeadline(deadline time.Time) error { - return f.readDeadline.set(deadline) -} - -func (f *win32File) SetWriteDeadline(deadline time.Time) error { - return f.writeDeadline.set(deadline) -} - -func (f *win32File) Flush() error { - return syscall.FlushFileBuffers(f.handle) -} - -func (f *win32File) Fd() uintptr { - return uintptr(f.handle) -} - -func (d *deadlineHandler) set(deadline time.Time) error { - d.setLock.Lock() - defer d.setLock.Unlock() - - if d.timer != nil { - if !d.timer.Stop() { - <-d.channel - } - d.timer = nil - } - d.timedout.setFalse() - - select { - case <-d.channel: - d.channelLock.Lock() - d.channel = make(chan struct{}) - d.channelLock.Unlock() - default: - } - - if deadline.IsZero() { - return nil - } - - timeoutIO := func() { - d.timedout.setTrue() - close(d.channel) - } - - now := time.Now() - duration := deadline.Sub(now) - if deadline.After(now) { - // Deadline is in the future, set a timer to wait - d.timer = time.AfterFunc(duration, timeoutIO) - } else { - // Deadline is in the past. Cancel all pending IO now. - timeoutIO() - } - return nil -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go deleted file mode 100644 index 702950e72a..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/fileinfo.go +++ /dev/null @@ -1,92 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "os" - "runtime" - "unsafe" - - "golang.org/x/sys/windows" -) - -// FileBasicInfo contains file access time and file attributes information. -type FileBasicInfo struct { - CreationTime, LastAccessTime, LastWriteTime, ChangeTime windows.Filetime - FileAttributes uint32 - _ uint32 // padding -} - -// GetFileBasicInfo retrieves times and attributes for a file. -func GetFileBasicInfo(f *os.File) (*FileBasicInfo, error) { - bi := &FileBasicInfo{} - if err := windows.GetFileInformationByHandleEx( - windows.Handle(f.Fd()), - windows.FileBasicInfo, - (*byte)(unsafe.Pointer(bi)), - uint32(unsafe.Sizeof(*bi)), - ); err != nil { - return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} - } - runtime.KeepAlive(f) - return bi, nil -} - -// SetFileBasicInfo sets times and attributes for a file. -func SetFileBasicInfo(f *os.File, bi *FileBasicInfo) error { - if err := windows.SetFileInformationByHandle( - windows.Handle(f.Fd()), - windows.FileBasicInfo, - (*byte)(unsafe.Pointer(bi)), - uint32(unsafe.Sizeof(*bi)), - ); err != nil { - return &os.PathError{Op: "SetFileInformationByHandle", Path: f.Name(), Err: err} - } - runtime.KeepAlive(f) - return nil -} - -// FileStandardInfo contains extended information for the file. -// FILE_STANDARD_INFO in WinBase.h -// https://docs.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-file_standard_info -type FileStandardInfo struct { - AllocationSize, EndOfFile int64 - NumberOfLinks uint32 - DeletePending, Directory bool -} - -// GetFileStandardInfo retrieves ended information for the file. -func GetFileStandardInfo(f *os.File) (*FileStandardInfo, error) { - si := &FileStandardInfo{} - if err := windows.GetFileInformationByHandleEx(windows.Handle(f.Fd()), - windows.FileStandardInfo, - (*byte)(unsafe.Pointer(si)), - uint32(unsafe.Sizeof(*si))); err != nil { - return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} - } - runtime.KeepAlive(f) - return si, nil -} - -// FileIDInfo contains the volume serial number and file ID for a file. This pair should be -// unique on a system. -type FileIDInfo struct { - VolumeSerialNumber uint64 - FileID [16]byte -} - -// GetFileID retrieves the unique (volume, file ID) pair for a file. -func GetFileID(f *os.File) (*FileIDInfo, error) { - fileID := &FileIDInfo{} - if err := windows.GetFileInformationByHandleEx( - windows.Handle(f.Fd()), - windows.FileIdInfo, - (*byte)(unsafe.Pointer(fileID)), - uint32(unsafe.Sizeof(*fileID)), - ); err != nil { - return nil, &os.PathError{Op: "GetFileInformationByHandleEx", Path: f.Name(), Err: err} - } - runtime.KeepAlive(f) - return fileID, nil -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go deleted file mode 100644 index c881916583..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/hvsock.go +++ /dev/null @@ -1,575 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "context" - "errors" - "fmt" - "io" - "net" - "os" - "syscall" - "time" - "unsafe" - - "golang.org/x/sys/windows" - - "github.com/Microsoft/go-winio/internal/socket" - "github.com/Microsoft/go-winio/pkg/guid" -) - -const afHVSock = 34 // AF_HYPERV - -// Well known Service and VM IDs -// https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/user-guide/make-integration-service#vmid-wildcards - -// HvsockGUIDWildcard is the wildcard VmId for accepting connections from all partitions. -func HvsockGUIDWildcard() guid.GUID { // 00000000-0000-0000-0000-000000000000 - return guid.GUID{} -} - -// HvsockGUIDBroadcast is the wildcard VmId for broadcasting sends to all partitions. -func HvsockGUIDBroadcast() guid.GUID { // ffffffff-ffff-ffff-ffff-ffffffffffff - return guid.GUID{ - Data1: 0xffffffff, - Data2: 0xffff, - Data3: 0xffff, - Data4: [8]uint8{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, - } -} - -// HvsockGUIDLoopback is the Loopback VmId for accepting connections to the same partition as the connector. -func HvsockGUIDLoopback() guid.GUID { // e0e16197-dd56-4a10-9195-5ee7a155a838 - return guid.GUID{ - Data1: 0xe0e16197, - Data2: 0xdd56, - Data3: 0x4a10, - Data4: [8]uint8{0x91, 0x95, 0x5e, 0xe7, 0xa1, 0x55, 0xa8, 0x38}, - } -} - -// HvsockGUIDSiloHost is the address of a silo's host partition: -// - The silo host of a hosted silo is the utility VM. -// - The silo host of a silo on a physical host is the physical host. -func HvsockGUIDSiloHost() guid.GUID { // 36bd0c5c-7276-4223-88ba-7d03b654c568 - return guid.GUID{ - Data1: 0x36bd0c5c, - Data2: 0x7276, - Data3: 0x4223, - Data4: [8]byte{0x88, 0xba, 0x7d, 0x03, 0xb6, 0x54, 0xc5, 0x68}, - } -} - -// HvsockGUIDChildren is the wildcard VmId for accepting connections from the connector's child partitions. -func HvsockGUIDChildren() guid.GUID { // 90db8b89-0d35-4f79-8ce9-49ea0ac8b7cd - return guid.GUID{ - Data1: 0x90db8b89, - Data2: 0xd35, - Data3: 0x4f79, - Data4: [8]uint8{0x8c, 0xe9, 0x49, 0xea, 0xa, 0xc8, 0xb7, 0xcd}, - } -} - -// HvsockGUIDParent is the wildcard VmId for accepting connections from the connector's parent partition. -// Listening on this VmId accepts connection from: -// - Inside silos: silo host partition. -// - Inside hosted silo: host of the VM. -// - Inside VM: VM host. -// - Physical host: Not supported. -func HvsockGUIDParent() guid.GUID { // a42e7cda-d03f-480c-9cc2-a4de20abb878 - return guid.GUID{ - Data1: 0xa42e7cda, - Data2: 0xd03f, - Data3: 0x480c, - Data4: [8]uint8{0x9c, 0xc2, 0xa4, 0xde, 0x20, 0xab, 0xb8, 0x78}, - } -} - -// hvsockVsockServiceTemplate is the Service GUID used for the VSOCK protocol. -func hvsockVsockServiceTemplate() guid.GUID { // 00000000-facb-11e6-bd58-64006a7986d3 - return guid.GUID{ - Data2: 0xfacb, - Data3: 0x11e6, - Data4: [8]uint8{0xbd, 0x58, 0x64, 0x00, 0x6a, 0x79, 0x86, 0xd3}, - } -} - -// An HvsockAddr is an address for a AF_HYPERV socket. -type HvsockAddr struct { - VMID guid.GUID - ServiceID guid.GUID -} - -type rawHvsockAddr struct { - Family uint16 - _ uint16 - VMID guid.GUID - ServiceID guid.GUID -} - -var _ socket.RawSockaddr = &rawHvsockAddr{} - -// Network returns the address's network name, "hvsock". -func (*HvsockAddr) Network() string { - return "hvsock" -} - -func (addr *HvsockAddr) String() string { - return fmt.Sprintf("%s:%s", &addr.VMID, &addr.ServiceID) -} - -// VsockServiceID returns an hvsock service ID corresponding to the specified AF_VSOCK port. -func VsockServiceID(port uint32) guid.GUID { - g := hvsockVsockServiceTemplate() // make a copy - g.Data1 = port - return g -} - -func (addr *HvsockAddr) raw() rawHvsockAddr { - return rawHvsockAddr{ - Family: afHVSock, - VMID: addr.VMID, - ServiceID: addr.ServiceID, - } -} - -func (addr *HvsockAddr) fromRaw(raw *rawHvsockAddr) { - addr.VMID = raw.VMID - addr.ServiceID = raw.ServiceID -} - -// Sockaddr returns a pointer to and the size of this struct. -// -// Implements the [socket.RawSockaddr] interface, and allows use in -// [socket.Bind] and [socket.ConnectEx]. -func (r *rawHvsockAddr) Sockaddr() (unsafe.Pointer, int32, error) { - return unsafe.Pointer(r), int32(unsafe.Sizeof(rawHvsockAddr{})), nil -} - -// Sockaddr interface allows use with `sockets.Bind()` and `.ConnectEx()`. -func (r *rawHvsockAddr) FromBytes(b []byte) error { - n := int(unsafe.Sizeof(rawHvsockAddr{})) - - if len(b) < n { - return fmt.Errorf("got %d, want %d: %w", len(b), n, socket.ErrBufferSize) - } - - copy(unsafe.Slice((*byte)(unsafe.Pointer(r)), n), b[:n]) - if r.Family != afHVSock { - return fmt.Errorf("got %d, want %d: %w", r.Family, afHVSock, socket.ErrAddrFamily) - } - - return nil -} - -// HvsockListener is a socket listener for the AF_HYPERV address family. -type HvsockListener struct { - sock *win32File - addr HvsockAddr -} - -var _ net.Listener = &HvsockListener{} - -// HvsockConn is a connected socket of the AF_HYPERV address family. -type HvsockConn struct { - sock *win32File - local, remote HvsockAddr -} - -var _ net.Conn = &HvsockConn{} - -func newHVSocket() (*win32File, error) { - fd, err := syscall.Socket(afHVSock, syscall.SOCK_STREAM, 1) - if err != nil { - return nil, os.NewSyscallError("socket", err) - } - f, err := makeWin32File(fd) - if err != nil { - syscall.Close(fd) - return nil, err - } - f.socket = true - return f, nil -} - -// ListenHvsock listens for connections on the specified hvsock address. -func ListenHvsock(addr *HvsockAddr) (_ *HvsockListener, err error) { - l := &HvsockListener{addr: *addr} - sock, err := newHVSocket() - if err != nil { - return nil, l.opErr("listen", err) - } - sa := addr.raw() - err = socket.Bind(windows.Handle(sock.handle), &sa) - if err != nil { - return nil, l.opErr("listen", os.NewSyscallError("socket", err)) - } - err = syscall.Listen(sock.handle, 16) - if err != nil { - return nil, l.opErr("listen", os.NewSyscallError("listen", err)) - } - return &HvsockListener{sock: sock, addr: *addr}, nil -} - -func (l *HvsockListener) opErr(op string, err error) error { - return &net.OpError{Op: op, Net: "hvsock", Addr: &l.addr, Err: err} -} - -// Addr returns the listener's network address. -func (l *HvsockListener) Addr() net.Addr { - return &l.addr -} - -// Accept waits for the next connection and returns it. -func (l *HvsockListener) Accept() (_ net.Conn, err error) { - sock, err := newHVSocket() - if err != nil { - return nil, l.opErr("accept", err) - } - defer func() { - if sock != nil { - sock.Close() - } - }() - c, err := l.sock.prepareIO() - if err != nil { - return nil, l.opErr("accept", err) - } - defer l.sock.wg.Done() - - // AcceptEx, per documentation, requires an extra 16 bytes per address. - // - // https://docs.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptex - const addrlen = uint32(16 + unsafe.Sizeof(rawHvsockAddr{})) - var addrbuf [addrlen * 2]byte - - var bytes uint32 - err = syscall.AcceptEx(l.sock.handle, sock.handle, &addrbuf[0], 0 /* rxdatalen */, addrlen, addrlen, &bytes, &c.o) - if _, err = l.sock.asyncIO(c, nil, bytes, err); err != nil { - return nil, l.opErr("accept", os.NewSyscallError("acceptex", err)) - } - - conn := &HvsockConn{ - sock: sock, - } - // The local address returned in the AcceptEx buffer is the same as the Listener socket's - // address. However, the service GUID reported by GetSockName is different from the Listeners - // socket, and is sometimes the same as the local address of the socket that dialed the - // address, with the service GUID.Data1 incremented, but othertimes is different. - // todo: does the local address matter? is the listener's address or the actual address appropriate? - conn.local.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[0]))) - conn.remote.fromRaw((*rawHvsockAddr)(unsafe.Pointer(&addrbuf[addrlen]))) - - // initialize the accepted socket and update its properties with those of the listening socket - if err = windows.Setsockopt(windows.Handle(sock.handle), - windows.SOL_SOCKET, windows.SO_UPDATE_ACCEPT_CONTEXT, - (*byte)(unsafe.Pointer(&l.sock.handle)), int32(unsafe.Sizeof(l.sock.handle))); err != nil { - return nil, conn.opErr("accept", os.NewSyscallError("setsockopt", err)) - } - - sock = nil - return conn, nil -} - -// Close closes the listener, causing any pending Accept calls to fail. -func (l *HvsockListener) Close() error { - return l.sock.Close() -} - -// HvsockDialer configures and dials a Hyper-V Socket (ie, [HvsockConn]). -type HvsockDialer struct { - // Deadline is the time the Dial operation must connect before erroring. - Deadline time.Time - - // Retries is the number of additional connects to try if the connection times out, is refused, - // or the host is unreachable - Retries uint - - // RetryWait is the time to wait after a connection error to retry - RetryWait time.Duration - - rt *time.Timer // redial wait timer -} - -// Dial the Hyper-V socket at addr. -// -// See [HvsockDialer.Dial] for more information. -func Dial(ctx context.Context, addr *HvsockAddr) (conn *HvsockConn, err error) { - return (&HvsockDialer{}).Dial(ctx, addr) -} - -// Dial attempts to connect to the Hyper-V socket at addr, and returns a connection if successful. -// Will attempt (HvsockDialer).Retries if dialing fails, waiting (HvsockDialer).RetryWait between -// retries. -// -// Dialing can be cancelled either by providing (HvsockDialer).Deadline, or cancelling ctx. -func (d *HvsockDialer) Dial(ctx context.Context, addr *HvsockAddr) (conn *HvsockConn, err error) { - op := "dial" - // create the conn early to use opErr() - conn = &HvsockConn{ - remote: *addr, - } - - if !d.Deadline.IsZero() { - var cancel context.CancelFunc - ctx, cancel = context.WithDeadline(ctx, d.Deadline) - defer cancel() - } - - // preemptive timeout/cancellation check - if err = ctx.Err(); err != nil { - return nil, conn.opErr(op, err) - } - - sock, err := newHVSocket() - if err != nil { - return nil, conn.opErr(op, err) - } - defer func() { - if sock != nil { - sock.Close() - } - }() - - sa := addr.raw() - err = socket.Bind(windows.Handle(sock.handle), &sa) - if err != nil { - return nil, conn.opErr(op, os.NewSyscallError("bind", err)) - } - - c, err := sock.prepareIO() - if err != nil { - return nil, conn.opErr(op, err) - } - defer sock.wg.Done() - var bytes uint32 - for i := uint(0); i <= d.Retries; i++ { - err = socket.ConnectEx( - windows.Handle(sock.handle), - &sa, - nil, // sendBuf - 0, // sendDataLen - &bytes, - (*windows.Overlapped)(unsafe.Pointer(&c.o))) - _, err = sock.asyncIO(c, nil, bytes, err) - if i < d.Retries && canRedial(err) { - if err = d.redialWait(ctx); err == nil { - continue - } - } - break - } - if err != nil { - return nil, conn.opErr(op, os.NewSyscallError("connectex", err)) - } - - // update the connection properties, so shutdown can be used - if err = windows.Setsockopt( - windows.Handle(sock.handle), - windows.SOL_SOCKET, - windows.SO_UPDATE_CONNECT_CONTEXT, - nil, // optvalue - 0, // optlen - ); err != nil { - return nil, conn.opErr(op, os.NewSyscallError("setsockopt", err)) - } - - // get the local name - var sal rawHvsockAddr - err = socket.GetSockName(windows.Handle(sock.handle), &sal) - if err != nil { - return nil, conn.opErr(op, os.NewSyscallError("getsockname", err)) - } - conn.local.fromRaw(&sal) - - // one last check for timeout, since asyncIO doesn't check the context - if err = ctx.Err(); err != nil { - return nil, conn.opErr(op, err) - } - - conn.sock = sock - sock = nil - - return conn, nil -} - -// redialWait waits before attempting to redial, resetting the timer as appropriate. -func (d *HvsockDialer) redialWait(ctx context.Context) (err error) { - if d.RetryWait == 0 { - return nil - } - - if d.rt == nil { - d.rt = time.NewTimer(d.RetryWait) - } else { - // should already be stopped and drained - d.rt.Reset(d.RetryWait) - } - - select { - case <-ctx.Done(): - case <-d.rt.C: - return nil - } - - // stop and drain the timer - if !d.rt.Stop() { - <-d.rt.C - } - return ctx.Err() -} - -// assumes error is a plain, unwrapped syscall.Errno provided by direct syscall. -func canRedial(err error) bool { - //nolint:errorlint // guaranteed to be an Errno - switch err { - case windows.WSAECONNREFUSED, windows.WSAENETUNREACH, windows.WSAETIMEDOUT, - windows.ERROR_CONNECTION_REFUSED, windows.ERROR_CONNECTION_UNAVAIL: - return true - default: - return false - } -} - -func (conn *HvsockConn) opErr(op string, err error) error { - // translate from "file closed" to "socket closed" - if errors.Is(err, ErrFileClosed) { - err = socket.ErrSocketClosed - } - return &net.OpError{Op: op, Net: "hvsock", Source: &conn.local, Addr: &conn.remote, Err: err} -} - -func (conn *HvsockConn) Read(b []byte) (int, error) { - c, err := conn.sock.prepareIO() - if err != nil { - return 0, conn.opErr("read", err) - } - defer conn.sock.wg.Done() - buf := syscall.WSABuf{Buf: &b[0], Len: uint32(len(b))} - var flags, bytes uint32 - err = syscall.WSARecv(conn.sock.handle, &buf, 1, &bytes, &flags, &c.o, nil) - n, err := conn.sock.asyncIO(c, &conn.sock.readDeadline, bytes, err) - if err != nil { - var eno windows.Errno - if errors.As(err, &eno) { - err = os.NewSyscallError("wsarecv", eno) - } - return 0, conn.opErr("read", err) - } else if n == 0 { - err = io.EOF - } - return n, err -} - -func (conn *HvsockConn) Write(b []byte) (int, error) { - t := 0 - for len(b) != 0 { - n, err := conn.write(b) - if err != nil { - return t + n, err - } - t += n - b = b[n:] - } - return t, nil -} - -func (conn *HvsockConn) write(b []byte) (int, error) { - c, err := conn.sock.prepareIO() - if err != nil { - return 0, conn.opErr("write", err) - } - defer conn.sock.wg.Done() - buf := syscall.WSABuf{Buf: &b[0], Len: uint32(len(b))} - var bytes uint32 - err = syscall.WSASend(conn.sock.handle, &buf, 1, &bytes, 0, &c.o, nil) - n, err := conn.sock.asyncIO(c, &conn.sock.writeDeadline, bytes, err) - if err != nil { - var eno windows.Errno - if errors.As(err, &eno) { - err = os.NewSyscallError("wsasend", eno) - } - return 0, conn.opErr("write", err) - } - return n, err -} - -// Close closes the socket connection, failing any pending read or write calls. -func (conn *HvsockConn) Close() error { - return conn.sock.Close() -} - -func (conn *HvsockConn) IsClosed() bool { - return conn.sock.IsClosed() -} - -// shutdown disables sending or receiving on a socket. -func (conn *HvsockConn) shutdown(how int) error { - if conn.IsClosed() { - return socket.ErrSocketClosed - } - - err := syscall.Shutdown(conn.sock.handle, how) - if err != nil { - // If the connection was closed, shutdowns fail with "not connected" - if errors.Is(err, windows.WSAENOTCONN) || - errors.Is(err, windows.WSAESHUTDOWN) { - err = socket.ErrSocketClosed - } - return os.NewSyscallError("shutdown", err) - } - return nil -} - -// CloseRead shuts down the read end of the socket, preventing future read operations. -func (conn *HvsockConn) CloseRead() error { - err := conn.shutdown(syscall.SHUT_RD) - if err != nil { - return conn.opErr("closeread", err) - } - return nil -} - -// CloseWrite shuts down the write end of the socket, preventing future write operations and -// notifying the other endpoint that no more data will be written. -func (conn *HvsockConn) CloseWrite() error { - err := conn.shutdown(syscall.SHUT_WR) - if err != nil { - return conn.opErr("closewrite", err) - } - return nil -} - -// LocalAddr returns the local address of the connection. -func (conn *HvsockConn) LocalAddr() net.Addr { - return &conn.local -} - -// RemoteAddr returns the remote address of the connection. -func (conn *HvsockConn) RemoteAddr() net.Addr { - return &conn.remote -} - -// SetDeadline implements the net.Conn SetDeadline method. -func (conn *HvsockConn) SetDeadline(t time.Time) error { - // todo: implement `SetDeadline` for `win32File` - if err := conn.SetReadDeadline(t); err != nil { - return fmt.Errorf("set read deadline: %w", err) - } - if err := conn.SetWriteDeadline(t); err != nil { - return fmt.Errorf("set write deadline: %w", err) - } - return nil -} - -// SetReadDeadline implements the net.Conn SetReadDeadline method. -func (conn *HvsockConn) SetReadDeadline(t time.Time) error { - return conn.sock.SetReadDeadline(t) -} - -// SetWriteDeadline implements the net.Conn SetWriteDeadline method. -func (conn *HvsockConn) SetWriteDeadline(t time.Time) error { - return conn.sock.SetWriteDeadline(t) -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go deleted file mode 100644 index 1f65388178..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/doc.go +++ /dev/null @@ -1,2 +0,0 @@ -// This package contains Win32 filesystem functionality. -package fs diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go deleted file mode 100644 index 509b3ec641..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/fs.go +++ /dev/null @@ -1,202 +0,0 @@ -//go:build windows - -package fs - -import ( - "golang.org/x/sys/windows" - - "github.com/Microsoft/go-winio/internal/stringbuffer" -) - -//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go fs.go - -// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew -//sys CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) [failretval==windows.InvalidHandle] = CreateFileW - -const NullHandle windows.Handle = 0 - -// AccessMask defines standard, specific, and generic rights. -// -// Bitmask: -// 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 -// 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -// +---------------+---------------+-------------------------------+ -// |G|G|G|G|Resvd|A| StandardRights| SpecificRights | -// |R|W|E|A| |S| | | -// +-+-------------+---------------+-------------------------------+ -// -// GR Generic Read -// GW Generic Write -// GE Generic Exectue -// GA Generic All -// Resvd Reserved -// AS Access Security System -// -// https://learn.microsoft.com/en-us/windows/win32/secauthz/access-mask -// -// https://learn.microsoft.com/en-us/windows/win32/secauthz/generic-access-rights -// -// https://learn.microsoft.com/en-us/windows/win32/fileio/file-access-rights-constants -type AccessMask = windows.ACCESS_MASK - -//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -const ( - // Not actually any. - // - // For CreateFile: "query certain metadata such as file, directory, or device attributes without accessing that file or device" - // https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew#parameters - FILE_ANY_ACCESS AccessMask = 0 - - // Specific Object Access - // from ntioapi.h - - FILE_READ_DATA AccessMask = (0x0001) // file & pipe - FILE_LIST_DIRECTORY AccessMask = (0x0001) // directory - - FILE_WRITE_DATA AccessMask = (0x0002) // file & pipe - FILE_ADD_FILE AccessMask = (0x0002) // directory - - FILE_APPEND_DATA AccessMask = (0x0004) // file - FILE_ADD_SUBDIRECTORY AccessMask = (0x0004) // directory - FILE_CREATE_PIPE_INSTANCE AccessMask = (0x0004) // named pipe - - FILE_READ_EA AccessMask = (0x0008) // file & directory - FILE_READ_PROPERTIES AccessMask = FILE_READ_EA - - FILE_WRITE_EA AccessMask = (0x0010) // file & directory - FILE_WRITE_PROPERTIES AccessMask = FILE_WRITE_EA - - FILE_EXECUTE AccessMask = (0x0020) // file - FILE_TRAVERSE AccessMask = (0x0020) // directory - - FILE_DELETE_CHILD AccessMask = (0x0040) // directory - - FILE_READ_ATTRIBUTES AccessMask = (0x0080) // all - - FILE_WRITE_ATTRIBUTES AccessMask = (0x0100) // all - - FILE_ALL_ACCESS AccessMask = (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF) - FILE_GENERIC_READ AccessMask = (STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE) - FILE_GENERIC_WRITE AccessMask = (STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE) - FILE_GENERIC_EXECUTE AccessMask = (STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE) - - SPECIFIC_RIGHTS_ALL AccessMask = 0x0000FFFF - - // Standard Access - // from ntseapi.h - - DELETE AccessMask = 0x0001_0000 - READ_CONTROL AccessMask = 0x0002_0000 - WRITE_DAC AccessMask = 0x0004_0000 - WRITE_OWNER AccessMask = 0x0008_0000 - SYNCHRONIZE AccessMask = 0x0010_0000 - - STANDARD_RIGHTS_REQUIRED AccessMask = 0x000F_0000 - - STANDARD_RIGHTS_READ AccessMask = READ_CONTROL - STANDARD_RIGHTS_WRITE AccessMask = READ_CONTROL - STANDARD_RIGHTS_EXECUTE AccessMask = READ_CONTROL - - STANDARD_RIGHTS_ALL AccessMask = 0x001F_0000 -) - -type FileShareMode uint32 - -//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -const ( - FILE_SHARE_NONE FileShareMode = 0x00 - FILE_SHARE_READ FileShareMode = 0x01 - FILE_SHARE_WRITE FileShareMode = 0x02 - FILE_SHARE_DELETE FileShareMode = 0x04 - FILE_SHARE_VALID_FLAGS FileShareMode = 0x07 -) - -type FileCreationDisposition uint32 - -//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -const ( - // from winbase.h - - CREATE_NEW FileCreationDisposition = 0x01 - CREATE_ALWAYS FileCreationDisposition = 0x02 - OPEN_EXISTING FileCreationDisposition = 0x03 - OPEN_ALWAYS FileCreationDisposition = 0x04 - TRUNCATE_EXISTING FileCreationDisposition = 0x05 -) - -// CreateFile and co. take flags or attributes together as one parameter. -// Define alias until we can use generics to allow both - -// https://learn.microsoft.com/en-us/windows/win32/fileio/file-attribute-constants -type FileFlagOrAttribute uint32 - -//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -const ( // from winnt.h - FILE_FLAG_WRITE_THROUGH FileFlagOrAttribute = 0x8000_0000 - FILE_FLAG_OVERLAPPED FileFlagOrAttribute = 0x4000_0000 - FILE_FLAG_NO_BUFFERING FileFlagOrAttribute = 0x2000_0000 - FILE_FLAG_RANDOM_ACCESS FileFlagOrAttribute = 0x1000_0000 - FILE_FLAG_SEQUENTIAL_SCAN FileFlagOrAttribute = 0x0800_0000 - FILE_FLAG_DELETE_ON_CLOSE FileFlagOrAttribute = 0x0400_0000 - FILE_FLAG_BACKUP_SEMANTICS FileFlagOrAttribute = 0x0200_0000 - FILE_FLAG_POSIX_SEMANTICS FileFlagOrAttribute = 0x0100_0000 - FILE_FLAG_OPEN_REPARSE_POINT FileFlagOrAttribute = 0x0020_0000 - FILE_FLAG_OPEN_NO_RECALL FileFlagOrAttribute = 0x0010_0000 - FILE_FLAG_FIRST_PIPE_INSTANCE FileFlagOrAttribute = 0x0008_0000 -) - -type FileSQSFlag = FileFlagOrAttribute - -//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -const ( // from winbase.h - SECURITY_ANONYMOUS FileSQSFlag = FileSQSFlag(SecurityAnonymous << 16) - SECURITY_IDENTIFICATION FileSQSFlag = FileSQSFlag(SecurityIdentification << 16) - SECURITY_IMPERSONATION FileSQSFlag = FileSQSFlag(SecurityImpersonation << 16) - SECURITY_DELEGATION FileSQSFlag = FileSQSFlag(SecurityDelegation << 16) - - SECURITY_SQOS_PRESENT FileSQSFlag = 0x00100000 - SECURITY_VALID_SQOS_FLAGS FileSQSFlag = 0x001F0000 -) - -// GetFinalPathNameByHandle flags -// -// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew#parameters -type GetFinalPathFlag uint32 - -//nolint:revive // SNAKE_CASE is not idiomatic in Go, but aligned with Win32 API. -const ( - GetFinalPathDefaultFlag GetFinalPathFlag = 0x0 - - FILE_NAME_NORMALIZED GetFinalPathFlag = 0x0 - FILE_NAME_OPENED GetFinalPathFlag = 0x8 - - VOLUME_NAME_DOS GetFinalPathFlag = 0x0 - VOLUME_NAME_GUID GetFinalPathFlag = 0x1 - VOLUME_NAME_NT GetFinalPathFlag = 0x2 - VOLUME_NAME_NONE GetFinalPathFlag = 0x4 -) - -// getFinalPathNameByHandle facilitates calling the Windows API GetFinalPathNameByHandle -// with the given handle and flags. It transparently takes care of creating a buffer of the -// correct size for the call. -// -// https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfinalpathnamebyhandlew -func GetFinalPathNameByHandle(h windows.Handle, flags GetFinalPathFlag) (string, error) { - b := stringbuffer.NewWString() - //TODO: can loop infinitely if Win32 keeps returning the same (or a larger) n? - for { - n, err := windows.GetFinalPathNameByHandle(h, b.Pointer(), b.Cap(), uint32(flags)) - if err != nil { - return "", err - } - // If the buffer wasn't large enough, n will be the total size needed (including null terminator). - // Resize and try again. - if n > b.Cap() { - b.ResizeTo(n) - continue - } - // If the buffer is large enough, n will be the size not including the null terminator. - // Convert to a Go string and return. - return b.String(), nil - } -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go deleted file mode 100644 index 81760ac67e..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/security.go +++ /dev/null @@ -1,12 +0,0 @@ -package fs - -// https://learn.microsoft.com/en-us/windows/win32/api/winnt/ne-winnt-security_impersonation_level -type SecurityImpersonationLevel int32 // C default enums underlying type is `int`, which is Go `int32` - -// Impersonation levels -const ( - SecurityAnonymous SecurityImpersonationLevel = 0 - SecurityIdentification SecurityImpersonationLevel = 1 - SecurityImpersonation SecurityImpersonationLevel = 2 - SecurityDelegation SecurityImpersonationLevel = 3 -) diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go deleted file mode 100644 index e2f7bb24e5..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/fs/zsyscall_windows.go +++ /dev/null @@ -1,64 +0,0 @@ -//go:build windows - -// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - -package fs - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - - procCreateFileW = modkernel32.NewProc("CreateFileW") -) - -func CreateFile(name string, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(name) - if err != nil { - return - } - return _CreateFile(_p0, access, mode, sa, createmode, attrs, templatefile) -} - -func _CreateFile(name *uint16, access AccessMask, mode FileShareMode, sa *syscall.SecurityAttributes, createmode FileCreationDisposition, attrs FileFlagOrAttribute, templatefile windows.Handle) (handle windows.Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateFileW.Addr(), 7, uintptr(unsafe.Pointer(name)), uintptr(access), uintptr(mode), uintptr(unsafe.Pointer(sa)), uintptr(createmode), uintptr(attrs), uintptr(templatefile), 0, 0) - handle = windows.Handle(r0) - if handle == windows.InvalidHandle { - err = errnoErr(e1) - } - return -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go deleted file mode 100644 index 7e82f9afa9..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/rawaddr.go +++ /dev/null @@ -1,20 +0,0 @@ -package socket - -import ( - "unsafe" -) - -// RawSockaddr allows structs to be used with [Bind] and [ConnectEx]. The -// struct must meet the Win32 sockaddr requirements specified here: -// https://docs.microsoft.com/en-us/windows/win32/winsock/sockaddr-2 -// -// Specifically, the struct size must be least larger than an int16 (unsigned short) -// for the address family. -type RawSockaddr interface { - // Sockaddr returns a pointer to the RawSockaddr and its struct size, allowing - // for the RawSockaddr's data to be overwritten by syscalls (if necessary). - // - // It is the callers responsibility to validate that the values are valid; invalid - // pointers or size can cause a panic. - Sockaddr() (unsafe.Pointer, int32, error) -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go deleted file mode 100644 index aeb7b7250f..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/socket.go +++ /dev/null @@ -1,179 +0,0 @@ -//go:build windows - -package socket - -import ( - "errors" - "fmt" - "net" - "sync" - "syscall" - "unsafe" - - "github.com/Microsoft/go-winio/pkg/guid" - "golang.org/x/sys/windows" -) - -//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go socket.go - -//sys getsockname(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) [failretval==socketError] = ws2_32.getsockname -//sys getpeername(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) [failretval==socketError] = ws2_32.getpeername -//sys bind(s windows.Handle, name unsafe.Pointer, namelen int32) (err error) [failretval==socketError] = ws2_32.bind - -const socketError = uintptr(^uint32(0)) - -var ( - // todo(helsaawy): create custom error types to store the desired vs actual size and addr family? - - ErrBufferSize = errors.New("buffer size") - ErrAddrFamily = errors.New("address family") - ErrInvalidPointer = errors.New("invalid pointer") - ErrSocketClosed = fmt.Errorf("socket closed: %w", net.ErrClosed) -) - -// todo(helsaawy): replace these with generics, ie: GetSockName[S RawSockaddr](s windows.Handle) (S, error) - -// GetSockName writes the local address of socket s to the [RawSockaddr] rsa. -// If rsa is not large enough, the [windows.WSAEFAULT] is returned. -func GetSockName(s windows.Handle, rsa RawSockaddr) error { - ptr, l, err := rsa.Sockaddr() - if err != nil { - return fmt.Errorf("could not retrieve socket pointer and size: %w", err) - } - - // although getsockname returns WSAEFAULT if the buffer is too small, it does not set - // &l to the correct size, so--apart from doubling the buffer repeatedly--there is no remedy - return getsockname(s, ptr, &l) -} - -// GetPeerName returns the remote address the socket is connected to. -// -// See [GetSockName] for more information. -func GetPeerName(s windows.Handle, rsa RawSockaddr) error { - ptr, l, err := rsa.Sockaddr() - if err != nil { - return fmt.Errorf("could not retrieve socket pointer and size: %w", err) - } - - return getpeername(s, ptr, &l) -} - -func Bind(s windows.Handle, rsa RawSockaddr) (err error) { - ptr, l, err := rsa.Sockaddr() - if err != nil { - return fmt.Errorf("could not retrieve socket pointer and size: %w", err) - } - - return bind(s, ptr, l) -} - -// "golang.org/x/sys/windows".ConnectEx and .Bind only accept internal implementations of the -// their sockaddr interface, so they cannot be used with HvsockAddr -// Replicate functionality here from -// https://cs.opensource.google/go/x/sys/+/master:windows/syscall_windows.go - -// The function pointers to `AcceptEx`, `ConnectEx` and `GetAcceptExSockaddrs` must be loaded at -// runtime via a WSAIoctl call: -// https://docs.microsoft.com/en-us/windows/win32/api/Mswsock/nc-mswsock-lpfn_connectex#remarks - -type runtimeFunc struct { - id guid.GUID - once sync.Once - addr uintptr - err error -} - -func (f *runtimeFunc) Load() error { - f.once.Do(func() { - var s windows.Handle - s, f.err = windows.Socket(windows.AF_INET, windows.SOCK_STREAM, windows.IPPROTO_TCP) - if f.err != nil { - return - } - defer windows.CloseHandle(s) //nolint:errcheck - - var n uint32 - f.err = windows.WSAIoctl(s, - windows.SIO_GET_EXTENSION_FUNCTION_POINTER, - (*byte)(unsafe.Pointer(&f.id)), - uint32(unsafe.Sizeof(f.id)), - (*byte)(unsafe.Pointer(&f.addr)), - uint32(unsafe.Sizeof(f.addr)), - &n, - nil, // overlapped - 0, // completionRoutine - ) - }) - return f.err -} - -var ( - // todo: add `AcceptEx` and `GetAcceptExSockaddrs` - WSAID_CONNECTEX = guid.GUID{ //revive:disable-line:var-naming ALL_CAPS - Data1: 0x25a207b9, - Data2: 0xddf3, - Data3: 0x4660, - Data4: [8]byte{0x8e, 0xe9, 0x76, 0xe5, 0x8c, 0x74, 0x06, 0x3e}, - } - - connectExFunc = runtimeFunc{id: WSAID_CONNECTEX} -) - -func ConnectEx( - fd windows.Handle, - rsa RawSockaddr, - sendBuf *byte, - sendDataLen uint32, - bytesSent *uint32, - overlapped *windows.Overlapped, -) error { - if err := connectExFunc.Load(); err != nil { - return fmt.Errorf("failed to load ConnectEx function pointer: %w", err) - } - ptr, n, err := rsa.Sockaddr() - if err != nil { - return err - } - return connectEx(fd, ptr, n, sendBuf, sendDataLen, bytesSent, overlapped) -} - -// BOOL LpfnConnectex( -// [in] SOCKET s, -// [in] const sockaddr *name, -// [in] int namelen, -// [in, optional] PVOID lpSendBuffer, -// [in] DWORD dwSendDataLength, -// [out] LPDWORD lpdwBytesSent, -// [in] LPOVERLAPPED lpOverlapped -// ) - -func connectEx( - s windows.Handle, - name unsafe.Pointer, - namelen int32, - sendBuf *byte, - sendDataLen uint32, - bytesSent *uint32, - overlapped *windows.Overlapped, -) (err error) { - // todo: after upgrading to 1.18, switch from syscall.Syscall9 to syscall.SyscallN - r1, _, e1 := syscall.Syscall9(connectExFunc.addr, - 7, - uintptr(s), - uintptr(name), - uintptr(namelen), - uintptr(unsafe.Pointer(sendBuf)), - uintptr(sendDataLen), - uintptr(unsafe.Pointer(bytesSent)), - uintptr(unsafe.Pointer(overlapped)), - 0, - 0) - if r1 == 0 { - if e1 != 0 { - err = error(e1) - } else { - err = syscall.EINVAL - } - } - return err -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go deleted file mode 100644 index 6d2e1a9e44..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/socket/zsyscall_windows.go +++ /dev/null @@ -1,72 +0,0 @@ -//go:build windows - -// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - -package socket - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modws2_32 = windows.NewLazySystemDLL("ws2_32.dll") - - procbind = modws2_32.NewProc("bind") - procgetpeername = modws2_32.NewProc("getpeername") - procgetsockname = modws2_32.NewProc("getsockname") -) - -func bind(s windows.Handle, name unsafe.Pointer, namelen int32) (err error) { - r1, _, e1 := syscall.Syscall(procbind.Addr(), 3, uintptr(s), uintptr(name), uintptr(namelen)) - if r1 == socketError { - err = errnoErr(e1) - } - return -} - -func getpeername(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetpeername.Addr(), 3, uintptr(s), uintptr(name), uintptr(unsafe.Pointer(namelen))) - if r1 == socketError { - err = errnoErr(e1) - } - return -} - -func getsockname(s windows.Handle, name unsafe.Pointer, namelen *int32) (err error) { - r1, _, e1 := syscall.Syscall(procgetsockname.Addr(), 3, uintptr(s), uintptr(name), uintptr(unsafe.Pointer(namelen))) - if r1 == socketError { - err = errnoErr(e1) - } - return -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go deleted file mode 100644 index 7ad5057024..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/internal/stringbuffer/wstring.go +++ /dev/null @@ -1,132 +0,0 @@ -package stringbuffer - -import ( - "sync" - "unicode/utf16" -) - -// TODO: worth exporting and using in mkwinsyscall? - -// Uint16BufferSize is the buffer size in the pool, chosen somewhat arbitrarily to accommodate -// large path strings: -// MAX_PATH (260) + size of volume GUID prefix (49) + null terminator = 310. -const MinWStringCap = 310 - -// use *[]uint16 since []uint16 creates an extra allocation where the slice header -// is copied to heap and then referenced via pointer in the interface header that sync.Pool -// stores. -var pathPool = sync.Pool{ // if go1.18+ adds Pool[T], use that to store []uint16 directly - New: func() interface{} { - b := make([]uint16, MinWStringCap) - return &b - }, -} - -func newBuffer() []uint16 { return *(pathPool.Get().(*[]uint16)) } - -// freeBuffer copies the slice header data, and puts a pointer to that in the pool. -// This avoids taking a pointer to the slice header in WString, which can be set to nil. -func freeBuffer(b []uint16) { pathPool.Put(&b) } - -// WString is a wide string buffer ([]uint16) meant for storing UTF-16 encoded strings -// for interacting with Win32 APIs. -// Sizes are specified as uint32 and not int. -// -// It is not thread safe. -type WString struct { - // type-def allows casting to []uint16 directly, use struct to prevent that and allow adding fields in the future. - - // raw buffer - b []uint16 -} - -// NewWString returns a [WString] allocated from a shared pool with an -// initial capacity of at least [MinWStringCap]. -// Since the buffer may have been previously used, its contents are not guaranteed to be empty. -// -// The buffer should be freed via [WString.Free] -func NewWString() *WString { - return &WString{ - b: newBuffer(), - } -} - -func (b *WString) Free() { - if b.empty() { - return - } - freeBuffer(b.b) - b.b = nil -} - -// ResizeTo grows the buffer to at least c and returns the new capacity, freeing the -// previous buffer back into pool. -func (b *WString) ResizeTo(c uint32) uint32 { - // allready sufficient (or n is 0) - if c <= b.Cap() { - return b.Cap() - } - - if c <= MinWStringCap { - c = MinWStringCap - } - // allocate at-least double buffer size, as is done in [bytes.Buffer] and other places - if c <= 2*b.Cap() { - c = 2 * b.Cap() - } - - b2 := make([]uint16, c) - if !b.empty() { - copy(b2, b.b) - freeBuffer(b.b) - } - b.b = b2 - return c -} - -// Buffer returns the underlying []uint16 buffer. -func (b *WString) Buffer() []uint16 { - if b.empty() { - return nil - } - return b.b -} - -// Pointer returns a pointer to the first uint16 in the buffer. -// If the [WString.Free] has already been called, the pointer will be nil. -func (b *WString) Pointer() *uint16 { - if b.empty() { - return nil - } - return &b.b[0] -} - -// String returns the returns the UTF-8 encoding of the UTF-16 string in the buffer. -// -// It assumes that the data is null-terminated. -func (b *WString) String() string { - // Using [windows.UTF16ToString] would require importing "golang.org/x/sys/windows" - // and would make this code Windows-only, which makes no sense. - // So copy UTF16ToString code into here. - // If other windows-specific code is added, switch to [windows.UTF16ToString] - - s := b.b - for i, v := range s { - if v == 0 { - s = s[:i] - break - } - } - return string(utf16.Decode(s)) -} - -// Cap returns the underlying buffer capacity. -func (b *WString) Cap() uint32 { - if b.empty() { - return 0 - } - return b.cap() -} - -func (b *WString) cap() uint32 { return uint32(cap(b.b)) } -func (b *WString) empty() bool { return b == nil || b.cap() == 0 } diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go deleted file mode 100644 index 25cc811031..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/pipe.go +++ /dev/null @@ -1,525 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "context" - "errors" - "fmt" - "io" - "net" - "os" - "runtime" - "syscall" - "time" - "unsafe" - - "golang.org/x/sys/windows" - - "github.com/Microsoft/go-winio/internal/fs" -) - -//sys connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) = ConnectNamedPipe -//sys createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) [failretval==syscall.InvalidHandle] = CreateNamedPipeW -//sys getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) = GetNamedPipeInfo -//sys getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) = GetNamedPipeHandleStateW -//sys localAlloc(uFlags uint32, length uint32) (ptr uintptr) = LocalAlloc -//sys ntCreateNamedPipeFile(pipe *syscall.Handle, access uint32, oa *objectAttributes, iosb *ioStatusBlock, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntStatus) = ntdll.NtCreateNamedPipeFile -//sys rtlNtStatusToDosError(status ntStatus) (winerr error) = ntdll.RtlNtStatusToDosErrorNoTeb -//sys rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntStatus) = ntdll.RtlDosPathNameToNtPathName_U -//sys rtlDefaultNpAcl(dacl *uintptr) (status ntStatus) = ntdll.RtlDefaultNpAcl - -type ioStatusBlock struct { - Status, Information uintptr -} - -type objectAttributes struct { - Length uintptr - RootDirectory uintptr - ObjectName *unicodeString - Attributes uintptr - SecurityDescriptor *securityDescriptor - SecurityQoS uintptr -} - -type unicodeString struct { - Length uint16 - MaximumLength uint16 - Buffer uintptr -} - -type securityDescriptor struct { - Revision byte - Sbz1 byte - Control uint16 - Owner uintptr - Group uintptr - Sacl uintptr //revive:disable-line:var-naming SACL, not Sacl - Dacl uintptr //revive:disable-line:var-naming DACL, not Dacl -} - -type ntStatus int32 - -func (status ntStatus) Err() error { - if status >= 0 { - return nil - } - return rtlNtStatusToDosError(status) -} - -var ( - // ErrPipeListenerClosed is returned for pipe operations on listeners that have been closed. - ErrPipeListenerClosed = net.ErrClosed - - errPipeWriteClosed = errors.New("pipe has been closed for write") -) - -type win32Pipe struct { - *win32File - path string -} - -type win32MessageBytePipe struct { - win32Pipe - writeClosed bool - readEOF bool -} - -type pipeAddress string - -func (f *win32Pipe) LocalAddr() net.Addr { - return pipeAddress(f.path) -} - -func (f *win32Pipe) RemoteAddr() net.Addr { - return pipeAddress(f.path) -} - -func (f *win32Pipe) SetDeadline(t time.Time) error { - if err := f.SetReadDeadline(t); err != nil { - return err - } - return f.SetWriteDeadline(t) -} - -// CloseWrite closes the write side of a message pipe in byte mode. -func (f *win32MessageBytePipe) CloseWrite() error { - if f.writeClosed { - return errPipeWriteClosed - } - err := f.win32File.Flush() - if err != nil { - return err - } - _, err = f.win32File.Write(nil) - if err != nil { - return err - } - f.writeClosed = true - return nil -} - -// Write writes bytes to a message pipe in byte mode. Zero-byte writes are ignored, since -// they are used to implement CloseWrite(). -func (f *win32MessageBytePipe) Write(b []byte) (int, error) { - if f.writeClosed { - return 0, errPipeWriteClosed - } - if len(b) == 0 { - return 0, nil - } - return f.win32File.Write(b) -} - -// Read reads bytes from a message pipe in byte mode. A read of a zero-byte message on a message -// mode pipe will return io.EOF, as will all subsequent reads. -func (f *win32MessageBytePipe) Read(b []byte) (int, error) { - if f.readEOF { - return 0, io.EOF - } - n, err := f.win32File.Read(b) - if err == io.EOF { //nolint:errorlint - // If this was the result of a zero-byte read, then - // it is possible that the read was due to a zero-size - // message. Since we are simulating CloseWrite with a - // zero-byte message, ensure that all future Read() calls - // also return EOF. - f.readEOF = true - } else if err == syscall.ERROR_MORE_DATA { //nolint:errorlint // err is Errno - // ERROR_MORE_DATA indicates that the pipe's read mode is message mode - // and the message still has more bytes. Treat this as a success, since - // this package presents all named pipes as byte streams. - err = nil - } - return n, err -} - -func (pipeAddress) Network() string { - return "pipe" -} - -func (s pipeAddress) String() string { - return string(s) -} - -// tryDialPipe attempts to dial the pipe at `path` until `ctx` cancellation or timeout. -func tryDialPipe(ctx context.Context, path *string, access fs.AccessMask) (syscall.Handle, error) { - for { - select { - case <-ctx.Done(): - return syscall.Handle(0), ctx.Err() - default: - wh, err := fs.CreateFile(*path, - access, - 0, // mode - nil, // security attributes - fs.OPEN_EXISTING, - fs.FILE_FLAG_OVERLAPPED|fs.SECURITY_SQOS_PRESENT|fs.SECURITY_ANONYMOUS, - 0, // template file handle - ) - h := syscall.Handle(wh) - if err == nil { - return h, nil - } - if err != windows.ERROR_PIPE_BUSY { //nolint:errorlint // err is Errno - return h, &os.PathError{Err: err, Op: "open", Path: *path} - } - // Wait 10 msec and try again. This is a rather simplistic - // view, as we always try each 10 milliseconds. - time.Sleep(10 * time.Millisecond) - } - } -} - -// DialPipe connects to a named pipe by path, timing out if the connection -// takes longer than the specified duration. If timeout is nil, then we use -// a default timeout of 2 seconds. (We do not use WaitNamedPipe.) -func DialPipe(path string, timeout *time.Duration) (net.Conn, error) { - var absTimeout time.Time - if timeout != nil { - absTimeout = time.Now().Add(*timeout) - } else { - absTimeout = time.Now().Add(2 * time.Second) - } - ctx, cancel := context.WithDeadline(context.Background(), absTimeout) - defer cancel() - conn, err := DialPipeContext(ctx, path) - if errors.Is(err, context.DeadlineExceeded) { - return nil, ErrTimeout - } - return conn, err -} - -// DialPipeContext attempts to connect to a named pipe by `path` until `ctx` -// cancellation or timeout. -func DialPipeContext(ctx context.Context, path string) (net.Conn, error) { - return DialPipeAccess(ctx, path, syscall.GENERIC_READ|syscall.GENERIC_WRITE) -} - -// DialPipeAccess attempts to connect to a named pipe by `path` with `access` until `ctx` -// cancellation or timeout. -func DialPipeAccess(ctx context.Context, path string, access uint32) (net.Conn, error) { - var err error - var h syscall.Handle - h, err = tryDialPipe(ctx, &path, fs.AccessMask(access)) - if err != nil { - return nil, err - } - - var flags uint32 - err = getNamedPipeInfo(h, &flags, nil, nil, nil) - if err != nil { - return nil, err - } - - f, err := makeWin32File(h) - if err != nil { - syscall.Close(h) - return nil, err - } - - // If the pipe is in message mode, return a message byte pipe, which - // supports CloseWrite(). - if flags&windows.PIPE_TYPE_MESSAGE != 0 { - return &win32MessageBytePipe{ - win32Pipe: win32Pipe{win32File: f, path: path}, - }, nil - } - return &win32Pipe{win32File: f, path: path}, nil -} - -type acceptResponse struct { - f *win32File - err error -} - -type win32PipeListener struct { - firstHandle syscall.Handle - path string - config PipeConfig - acceptCh chan (chan acceptResponse) - closeCh chan int - doneCh chan int -} - -func makeServerPipeHandle(path string, sd []byte, c *PipeConfig, first bool) (syscall.Handle, error) { - path16, err := syscall.UTF16FromString(path) - if err != nil { - return 0, &os.PathError{Op: "open", Path: path, Err: err} - } - - var oa objectAttributes - oa.Length = unsafe.Sizeof(oa) - - var ntPath unicodeString - if err := rtlDosPathNameToNtPathName(&path16[0], - &ntPath, - 0, - 0, - ).Err(); err != nil { - return 0, &os.PathError{Op: "open", Path: path, Err: err} - } - defer localFree(ntPath.Buffer) - oa.ObjectName = &ntPath - oa.Attributes = windows.OBJ_CASE_INSENSITIVE - - // The security descriptor is only needed for the first pipe. - if first { - if sd != nil { - l := uint32(len(sd)) - sdb := localAlloc(0, l) - defer localFree(sdb) - copy((*[0xffff]byte)(unsafe.Pointer(sdb))[:], sd) - oa.SecurityDescriptor = (*securityDescriptor)(unsafe.Pointer(sdb)) - } else { - // Construct the default named pipe security descriptor. - var dacl uintptr - if err := rtlDefaultNpAcl(&dacl).Err(); err != nil { - return 0, fmt.Errorf("getting default named pipe ACL: %w", err) - } - defer localFree(dacl) - - sdb := &securityDescriptor{ - Revision: 1, - Control: windows.SE_DACL_PRESENT, - Dacl: dacl, - } - oa.SecurityDescriptor = sdb - } - } - - typ := uint32(windows.FILE_PIPE_REJECT_REMOTE_CLIENTS) - if c.MessageMode { - typ |= windows.FILE_PIPE_MESSAGE_TYPE - } - - disposition := uint32(windows.FILE_OPEN) - access := uint32(syscall.GENERIC_READ | syscall.GENERIC_WRITE | syscall.SYNCHRONIZE) - if first { - disposition = windows.FILE_CREATE - // By not asking for read or write access, the named pipe file system - // will put this pipe into an initially disconnected state, blocking - // client connections until the next call with first == false. - access = syscall.SYNCHRONIZE - } - - timeout := int64(-50 * 10000) // 50ms - - var ( - h syscall.Handle - iosb ioStatusBlock - ) - err = ntCreateNamedPipeFile(&h, - access, - &oa, - &iosb, - syscall.FILE_SHARE_READ|syscall.FILE_SHARE_WRITE, - disposition, - 0, - typ, - 0, - 0, - 0xffffffff, - uint32(c.InputBufferSize), - uint32(c.OutputBufferSize), - &timeout).Err() - if err != nil { - return 0, &os.PathError{Op: "open", Path: path, Err: err} - } - - runtime.KeepAlive(ntPath) - return h, nil -} - -func (l *win32PipeListener) makeServerPipe() (*win32File, error) { - h, err := makeServerPipeHandle(l.path, nil, &l.config, false) - if err != nil { - return nil, err - } - f, err := makeWin32File(h) - if err != nil { - syscall.Close(h) - return nil, err - } - return f, nil -} - -func (l *win32PipeListener) makeConnectedServerPipe() (*win32File, error) { - p, err := l.makeServerPipe() - if err != nil { - return nil, err - } - - // Wait for the client to connect. - ch := make(chan error) - go func(p *win32File) { - ch <- connectPipe(p) - }(p) - - select { - case err = <-ch: - if err != nil { - p.Close() - p = nil - } - case <-l.closeCh: - // Abort the connect request by closing the handle. - p.Close() - p = nil - err = <-ch - if err == nil || err == ErrFileClosed { //nolint:errorlint // err is Errno - err = ErrPipeListenerClosed - } - } - return p, err -} - -func (l *win32PipeListener) listenerRoutine() { - closed := false - for !closed { - select { - case <-l.closeCh: - closed = true - case responseCh := <-l.acceptCh: - var ( - p *win32File - err error - ) - for { - p, err = l.makeConnectedServerPipe() - // If the connection was immediately closed by the client, try - // again. - if err != windows.ERROR_NO_DATA { //nolint:errorlint // err is Errno - break - } - } - responseCh <- acceptResponse{p, err} - closed = err == ErrPipeListenerClosed //nolint:errorlint // err is Errno - } - } - syscall.Close(l.firstHandle) - l.firstHandle = 0 - // Notify Close() and Accept() callers that the handle has been closed. - close(l.doneCh) -} - -// PipeConfig contain configuration for the pipe listener. -type PipeConfig struct { - // SecurityDescriptor contains a Windows security descriptor in SDDL format. - SecurityDescriptor string - - // MessageMode determines whether the pipe is in byte or message mode. In either - // case the pipe is read in byte mode by default. The only practical difference in - // this implementation is that CloseWrite() is only supported for message mode pipes; - // CloseWrite() is implemented as a zero-byte write, but zero-byte writes are only - // transferred to the reader (and returned as io.EOF in this implementation) - // when the pipe is in message mode. - MessageMode bool - - // InputBufferSize specifies the size of the input buffer, in bytes. - InputBufferSize int32 - - // OutputBufferSize specifies the size of the output buffer, in bytes. - OutputBufferSize int32 -} - -// ListenPipe creates a listener on a Windows named pipe path, e.g. \\.\pipe\mypipe. -// The pipe must not already exist. -func ListenPipe(path string, c *PipeConfig) (net.Listener, error) { - var ( - sd []byte - err error - ) - if c == nil { - c = &PipeConfig{} - } - if c.SecurityDescriptor != "" { - sd, err = SddlToSecurityDescriptor(c.SecurityDescriptor) - if err != nil { - return nil, err - } - } - h, err := makeServerPipeHandle(path, sd, c, true) - if err != nil { - return nil, err - } - l := &win32PipeListener{ - firstHandle: h, - path: path, - config: *c, - acceptCh: make(chan (chan acceptResponse)), - closeCh: make(chan int), - doneCh: make(chan int), - } - go l.listenerRoutine() - return l, nil -} - -func connectPipe(p *win32File) error { - c, err := p.prepareIO() - if err != nil { - return err - } - defer p.wg.Done() - - err = connectNamedPipe(p.handle, &c.o) - _, err = p.asyncIO(c, nil, 0, err) - if err != nil && err != windows.ERROR_PIPE_CONNECTED { //nolint:errorlint // err is Errno - return err - } - return nil -} - -func (l *win32PipeListener) Accept() (net.Conn, error) { - ch := make(chan acceptResponse) - select { - case l.acceptCh <- ch: - response := <-ch - err := response.err - if err != nil { - return nil, err - } - if l.config.MessageMode { - return &win32MessageBytePipe{ - win32Pipe: win32Pipe{win32File: response.f, path: l.path}, - }, nil - } - return &win32Pipe{win32File: response.f, path: l.path}, nil - case <-l.doneCh: - return nil, ErrPipeListenerClosed - } -} - -func (l *win32PipeListener) Close() error { - select { - case l.closeCh <- 1: - <-l.doneCh - case <-l.doneCh: - } - return nil -} - -func (l *win32PipeListener) Addr() net.Addr { - return pipeAddress(l.path) -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go deleted file mode 100644 index 48ce4e9243..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid.go +++ /dev/null @@ -1,232 +0,0 @@ -// Package guid provides a GUID type. The backing structure for a GUID is -// identical to that used by the golang.org/x/sys/windows GUID type. -// There are two main binary encodings used for a GUID, the big-endian encoding, -// and the Windows (mixed-endian) encoding. See here for details: -// https://en.wikipedia.org/wiki/Universally_unique_identifier#Encoding -package guid - -import ( - "crypto/rand" - "crypto/sha1" //nolint:gosec // not used for secure application - "encoding" - "encoding/binary" - "fmt" - "strconv" -) - -//go:generate go run golang.org/x/tools/cmd/stringer -type=Variant -trimprefix=Variant -linecomment - -// Variant specifies which GUID variant (or "type") of the GUID. It determines -// how the entirety of the rest of the GUID is interpreted. -type Variant uint8 - -// The variants specified by RFC 4122 section 4.1.1. -const ( - // VariantUnknown specifies a GUID variant which does not conform to one of - // the variant encodings specified in RFC 4122. - VariantUnknown Variant = iota - VariantNCS - VariantRFC4122 // RFC 4122 - VariantMicrosoft - VariantFuture -) - -// Version specifies how the bits in the GUID were generated. For instance, a -// version 4 GUID is randomly generated, and a version 5 is generated from the -// hash of an input string. -type Version uint8 - -func (v Version) String() string { - return strconv.FormatUint(uint64(v), 10) -} - -var _ = (encoding.TextMarshaler)(GUID{}) -var _ = (encoding.TextUnmarshaler)(&GUID{}) - -// NewV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122. -func NewV4() (GUID, error) { - var b [16]byte - if _, err := rand.Read(b[:]); err != nil { - return GUID{}, err - } - - g := FromArray(b) - g.setVersion(4) // Version 4 means randomly generated. - g.setVariant(VariantRFC4122) - - return g, nil -} - -// NewV5 returns a new version 5 (generated from a string via SHA-1 hashing) -// GUID, as defined by RFC 4122. The RFC is unclear on the encoding of the name, -// and the sample code treats it as a series of bytes, so we do the same here. -// -// Some implementations, such as those found on Windows, treat the name as a -// big-endian UTF16 stream of bytes. If that is desired, the string can be -// encoded as such before being passed to this function. -func NewV5(namespace GUID, name []byte) (GUID, error) { - b := sha1.New() //nolint:gosec // not used for secure application - namespaceBytes := namespace.ToArray() - b.Write(namespaceBytes[:]) - b.Write(name) - - a := [16]byte{} - copy(a[:], b.Sum(nil)) - - g := FromArray(a) - g.setVersion(5) // Version 5 means generated from a string. - g.setVariant(VariantRFC4122) - - return g, nil -} - -func fromArray(b [16]byte, order binary.ByteOrder) GUID { - var g GUID - g.Data1 = order.Uint32(b[0:4]) - g.Data2 = order.Uint16(b[4:6]) - g.Data3 = order.Uint16(b[6:8]) - copy(g.Data4[:], b[8:16]) - return g -} - -func (g GUID) toArray(order binary.ByteOrder) [16]byte { - b := [16]byte{} - order.PutUint32(b[0:4], g.Data1) - order.PutUint16(b[4:6], g.Data2) - order.PutUint16(b[6:8], g.Data3) - copy(b[8:16], g.Data4[:]) - return b -} - -// FromArray constructs a GUID from a big-endian encoding array of 16 bytes. -func FromArray(b [16]byte) GUID { - return fromArray(b, binary.BigEndian) -} - -// ToArray returns an array of 16 bytes representing the GUID in big-endian -// encoding. -func (g GUID) ToArray() [16]byte { - return g.toArray(binary.BigEndian) -} - -// FromWindowsArray constructs a GUID from a Windows encoding array of bytes. -func FromWindowsArray(b [16]byte) GUID { - return fromArray(b, binary.LittleEndian) -} - -// ToWindowsArray returns an array of 16 bytes representing the GUID in Windows -// encoding. -func (g GUID) ToWindowsArray() [16]byte { - return g.toArray(binary.LittleEndian) -} - -func (g GUID) String() string { - return fmt.Sprintf( - "%08x-%04x-%04x-%04x-%012x", - g.Data1, - g.Data2, - g.Data3, - g.Data4[:2], - g.Data4[2:]) -} - -// FromString parses a string containing a GUID and returns the GUID. The only -// format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` -// format. -func FromString(s string) (GUID, error) { - if len(s) != 36 { - return GUID{}, fmt.Errorf("invalid GUID %q", s) - } - if s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-' { - return GUID{}, fmt.Errorf("invalid GUID %q", s) - } - - var g GUID - - data1, err := strconv.ParseUint(s[0:8], 16, 32) - if err != nil { - return GUID{}, fmt.Errorf("invalid GUID %q", s) - } - g.Data1 = uint32(data1) - - data2, err := strconv.ParseUint(s[9:13], 16, 16) - if err != nil { - return GUID{}, fmt.Errorf("invalid GUID %q", s) - } - g.Data2 = uint16(data2) - - data3, err := strconv.ParseUint(s[14:18], 16, 16) - if err != nil { - return GUID{}, fmt.Errorf("invalid GUID %q", s) - } - g.Data3 = uint16(data3) - - for i, x := range []int{19, 21, 24, 26, 28, 30, 32, 34} { - v, err := strconv.ParseUint(s[x:x+2], 16, 8) - if err != nil { - return GUID{}, fmt.Errorf("invalid GUID %q", s) - } - g.Data4[i] = uint8(v) - } - - return g, nil -} - -func (g *GUID) setVariant(v Variant) { - d := g.Data4[0] - switch v { - case VariantNCS: - d = (d & 0x7f) - case VariantRFC4122: - d = (d & 0x3f) | 0x80 - case VariantMicrosoft: - d = (d & 0x1f) | 0xc0 - case VariantFuture: - d = (d & 0x0f) | 0xe0 - case VariantUnknown: - fallthrough - default: - panic(fmt.Sprintf("invalid variant: %d", v)) - } - g.Data4[0] = d -} - -// Variant returns the GUID variant, as defined in RFC 4122. -func (g GUID) Variant() Variant { - b := g.Data4[0] - if b&0x80 == 0 { - return VariantNCS - } else if b&0xc0 == 0x80 { - return VariantRFC4122 - } else if b&0xe0 == 0xc0 { - return VariantMicrosoft - } else if b&0xe0 == 0xe0 { - return VariantFuture - } - return VariantUnknown -} - -func (g *GUID) setVersion(v Version) { - g.Data3 = (g.Data3 & 0x0fff) | (uint16(v) << 12) -} - -// Version returns the GUID version, as defined in RFC 4122. -func (g GUID) Version() Version { - return Version((g.Data3 & 0xF000) >> 12) -} - -// MarshalText returns the textual representation of the GUID. -func (g GUID) MarshalText() ([]byte, error) { - return []byte(g.String()), nil -} - -// UnmarshalText takes the textual representation of a GUID, and unmarhals it -// into this GUID. -func (g *GUID) UnmarshalText(text []byte) error { - g2, err := FromString(string(text)) - if err != nil { - return err - } - *g = g2 - return nil -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go deleted file mode 100644 index 805bd35484..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_nonwindows.go +++ /dev/null @@ -1,16 +0,0 @@ -//go:build !windows -// +build !windows - -package guid - -// GUID represents a GUID/UUID. It has the same structure as -// golang.org/x/sys/windows.GUID so that it can be used with functions expecting -// that type. It is defined as its own type as that is only available to builds -// targeted at `windows`. The representation matches that used by native Windows -// code. -type GUID struct { - Data1 uint32 - Data2 uint16 - Data3 uint16 - Data4 [8]byte -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go deleted file mode 100644 index 27e45ee5cc..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/guid_windows.go +++ /dev/null @@ -1,13 +0,0 @@ -//go:build windows -// +build windows - -package guid - -import "golang.org/x/sys/windows" - -// GUID represents a GUID/UUID. It has the same structure as -// golang.org/x/sys/windows.GUID so that it can be used with functions expecting -// that type. It is defined as its own type so that stringification and -// marshaling can be supported. The representation matches that used by native -// Windows code. -type GUID windows.GUID diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go deleted file mode 100644 index 4076d3132f..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/pkg/guid/variant_string.go +++ /dev/null @@ -1,27 +0,0 @@ -// Code generated by "stringer -type=Variant -trimprefix=Variant -linecomment"; DO NOT EDIT. - -package guid - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[VariantUnknown-0] - _ = x[VariantNCS-1] - _ = x[VariantRFC4122-2] - _ = x[VariantMicrosoft-3] - _ = x[VariantFuture-4] -} - -const _Variant_name = "UnknownNCSRFC 4122MicrosoftFuture" - -var _Variant_index = [...]uint8{0, 7, 10, 18, 27, 33} - -func (i Variant) String() string { - if i >= Variant(len(_Variant_index)-1) { - return "Variant(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _Variant_name[_Variant_index[i]:_Variant_index[i+1]] -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go deleted file mode 100644 index 0ff9dac906..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/privilege.go +++ /dev/null @@ -1,197 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "bytes" - "encoding/binary" - "fmt" - "runtime" - "sync" - "syscall" - "unicode/utf16" - - "golang.org/x/sys/windows" -) - -//sys adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) [true] = advapi32.AdjustTokenPrivileges -//sys impersonateSelf(level uint32) (err error) = advapi32.ImpersonateSelf -//sys revertToSelf() (err error) = advapi32.RevertToSelf -//sys openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) = advapi32.OpenThreadToken -//sys getCurrentThread() (h syscall.Handle) = GetCurrentThread -//sys lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) = advapi32.LookupPrivilegeValueW -//sys lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) = advapi32.LookupPrivilegeNameW -//sys lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) = advapi32.LookupPrivilegeDisplayNameW - -const ( - //revive:disable-next-line:var-naming ALL_CAPS - SE_PRIVILEGE_ENABLED = windows.SE_PRIVILEGE_ENABLED - - //revive:disable-next-line:var-naming ALL_CAPS - ERROR_NOT_ALL_ASSIGNED syscall.Errno = windows.ERROR_NOT_ALL_ASSIGNED - - SeBackupPrivilege = "SeBackupPrivilege" - SeRestorePrivilege = "SeRestorePrivilege" - SeSecurityPrivilege = "SeSecurityPrivilege" -) - -var ( - privNames = make(map[string]uint64) - privNameMutex sync.Mutex -) - -// PrivilegeError represents an error enabling privileges. -type PrivilegeError struct { - privileges []uint64 -} - -func (e *PrivilegeError) Error() string { - s := "Could not enable privilege " - if len(e.privileges) > 1 { - s = "Could not enable privileges " - } - for i, p := range e.privileges { - if i != 0 { - s += ", " - } - s += `"` - s += getPrivilegeName(p) - s += `"` - } - return s -} - -// RunWithPrivilege enables a single privilege for a function call. -func RunWithPrivilege(name string, fn func() error) error { - return RunWithPrivileges([]string{name}, fn) -} - -// RunWithPrivileges enables privileges for a function call. -func RunWithPrivileges(names []string, fn func() error) error { - privileges, err := mapPrivileges(names) - if err != nil { - return err - } - runtime.LockOSThread() - defer runtime.UnlockOSThread() - token, err := newThreadToken() - if err != nil { - return err - } - defer releaseThreadToken(token) - err = adjustPrivileges(token, privileges, SE_PRIVILEGE_ENABLED) - if err != nil { - return err - } - return fn() -} - -func mapPrivileges(names []string) ([]uint64, error) { - privileges := make([]uint64, 0, len(names)) - privNameMutex.Lock() - defer privNameMutex.Unlock() - for _, name := range names { - p, ok := privNames[name] - if !ok { - err := lookupPrivilegeValue("", name, &p) - if err != nil { - return nil, err - } - privNames[name] = p - } - privileges = append(privileges, p) - } - return privileges, nil -} - -// EnableProcessPrivileges enables privileges globally for the process. -func EnableProcessPrivileges(names []string) error { - return enableDisableProcessPrivilege(names, SE_PRIVILEGE_ENABLED) -} - -// DisableProcessPrivileges disables privileges globally for the process. -func DisableProcessPrivileges(names []string) error { - return enableDisableProcessPrivilege(names, 0) -} - -func enableDisableProcessPrivilege(names []string, action uint32) error { - privileges, err := mapPrivileges(names) - if err != nil { - return err - } - - p := windows.CurrentProcess() - var token windows.Token - err = windows.OpenProcessToken(p, windows.TOKEN_ADJUST_PRIVILEGES|windows.TOKEN_QUERY, &token) - if err != nil { - return err - } - - defer token.Close() - return adjustPrivileges(token, privileges, action) -} - -func adjustPrivileges(token windows.Token, privileges []uint64, action uint32) error { - var b bytes.Buffer - _ = binary.Write(&b, binary.LittleEndian, uint32(len(privileges))) - for _, p := range privileges { - _ = binary.Write(&b, binary.LittleEndian, p) - _ = binary.Write(&b, binary.LittleEndian, action) - } - prevState := make([]byte, b.Len()) - reqSize := uint32(0) - success, err := adjustTokenPrivileges(token, false, &b.Bytes()[0], uint32(len(prevState)), &prevState[0], &reqSize) - if !success { - return err - } - if err == ERROR_NOT_ALL_ASSIGNED { //nolint:errorlint // err is Errno - return &PrivilegeError{privileges} - } - return nil -} - -func getPrivilegeName(luid uint64) string { - var nameBuffer [256]uint16 - bufSize := uint32(len(nameBuffer)) - err := lookupPrivilegeName("", &luid, &nameBuffer[0], &bufSize) - if err != nil { - return fmt.Sprintf("", luid) - } - - var displayNameBuffer [256]uint16 - displayBufSize := uint32(len(displayNameBuffer)) - var langID uint32 - err = lookupPrivilegeDisplayName("", &nameBuffer[0], &displayNameBuffer[0], &displayBufSize, &langID) - if err != nil { - return fmt.Sprintf("", string(utf16.Decode(nameBuffer[:bufSize]))) - } - - return string(utf16.Decode(displayNameBuffer[:displayBufSize])) -} - -func newThreadToken() (windows.Token, error) { - err := impersonateSelf(windows.SecurityImpersonation) - if err != nil { - return 0, err - } - - var token windows.Token - err = openThreadToken(getCurrentThread(), syscall.TOKEN_ADJUST_PRIVILEGES|syscall.TOKEN_QUERY, false, &token) - if err != nil { - rerr := revertToSelf() - if rerr != nil { - panic(rerr) - } - return 0, err - } - return token, nil -} - -func releaseThreadToken(h windows.Token) { - err := revertToSelf() - if err != nil { - panic(err) - } - h.Close() -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go deleted file mode 100644 index 67d1a104a6..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/reparse.go +++ /dev/null @@ -1,131 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "bytes" - "encoding/binary" - "fmt" - "strings" - "unicode/utf16" - "unsafe" -) - -const ( - reparseTagMountPoint = 0xA0000003 - reparseTagSymlink = 0xA000000C -) - -type reparseDataBuffer struct { - ReparseTag uint32 - ReparseDataLength uint16 - Reserved uint16 - SubstituteNameOffset uint16 - SubstituteNameLength uint16 - PrintNameOffset uint16 - PrintNameLength uint16 -} - -// ReparsePoint describes a Win32 symlink or mount point. -type ReparsePoint struct { - Target string - IsMountPoint bool -} - -// UnsupportedReparsePointError is returned when trying to decode a non-symlink or -// mount point reparse point. -type UnsupportedReparsePointError struct { - Tag uint32 -} - -func (e *UnsupportedReparsePointError) Error() string { - return fmt.Sprintf("unsupported reparse point %x", e.Tag) -} - -// DecodeReparsePoint decodes a Win32 REPARSE_DATA_BUFFER structure containing either a symlink -// or a mount point. -func DecodeReparsePoint(b []byte) (*ReparsePoint, error) { - tag := binary.LittleEndian.Uint32(b[0:4]) - return DecodeReparsePointData(tag, b[8:]) -} - -func DecodeReparsePointData(tag uint32, b []byte) (*ReparsePoint, error) { - isMountPoint := false - switch tag { - case reparseTagMountPoint: - isMountPoint = true - case reparseTagSymlink: - default: - return nil, &UnsupportedReparsePointError{tag} - } - nameOffset := 8 + binary.LittleEndian.Uint16(b[4:6]) - if !isMountPoint { - nameOffset += 4 - } - nameLength := binary.LittleEndian.Uint16(b[6:8]) - name := make([]uint16, nameLength/2) - err := binary.Read(bytes.NewReader(b[nameOffset:nameOffset+nameLength]), binary.LittleEndian, &name) - if err != nil { - return nil, err - } - return &ReparsePoint{string(utf16.Decode(name)), isMountPoint}, nil -} - -func isDriveLetter(c byte) bool { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') -} - -// EncodeReparsePoint encodes a Win32 REPARSE_DATA_BUFFER structure describing a symlink or -// mount point. -func EncodeReparsePoint(rp *ReparsePoint) []byte { - // Generate an NT path and determine if this is a relative path. - var ntTarget string - relative := false - if strings.HasPrefix(rp.Target, `\\?\`) { - ntTarget = `\??\` + rp.Target[4:] - } else if strings.HasPrefix(rp.Target, `\\`) { - ntTarget = `\??\UNC\` + rp.Target[2:] - } else if len(rp.Target) >= 2 && isDriveLetter(rp.Target[0]) && rp.Target[1] == ':' { - ntTarget = `\??\` + rp.Target - } else { - ntTarget = rp.Target - relative = true - } - - // The paths must be NUL-terminated even though they are counted strings. - target16 := utf16.Encode([]rune(rp.Target + "\x00")) - ntTarget16 := utf16.Encode([]rune(ntTarget + "\x00")) - - size := int(unsafe.Sizeof(reparseDataBuffer{})) - 8 - size += len(ntTarget16)*2 + len(target16)*2 - - tag := uint32(reparseTagMountPoint) - if !rp.IsMountPoint { - tag = reparseTagSymlink - size += 4 // Add room for symlink flags - } - - data := reparseDataBuffer{ - ReparseTag: tag, - ReparseDataLength: uint16(size), - SubstituteNameOffset: 0, - SubstituteNameLength: uint16((len(ntTarget16) - 1) * 2), - PrintNameOffset: uint16(len(ntTarget16) * 2), - PrintNameLength: uint16((len(target16) - 1) * 2), - } - - var b bytes.Buffer - _ = binary.Write(&b, binary.LittleEndian, &data) - if !rp.IsMountPoint { - flags := uint32(0) - if relative { - flags |= 1 - } - _ = binary.Write(&b, binary.LittleEndian, flags) - } - - _ = binary.Write(&b, binary.LittleEndian, ntTarget16) - _ = binary.Write(&b, binary.LittleEndian, target16) - return b.Bytes() -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go deleted file mode 100644 index 5550ef6b61..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/sd.go +++ /dev/null @@ -1,144 +0,0 @@ -//go:build windows -// +build windows - -package winio - -import ( - "errors" - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -//sys lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountNameW -//sys lookupAccountSid(systemName *uint16, sid *byte, name *uint16, nameSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) = advapi32.LookupAccountSidW -//sys convertSidToStringSid(sid *byte, str **uint16) (err error) = advapi32.ConvertSidToStringSidW -//sys convertStringSidToSid(str *uint16, sid **byte) (err error) = advapi32.ConvertStringSidToSidW -//sys convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, size *uint32) (err error) = advapi32.ConvertStringSecurityDescriptorToSecurityDescriptorW -//sys convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) = advapi32.ConvertSecurityDescriptorToStringSecurityDescriptorW -//sys localFree(mem uintptr) = LocalFree -//sys getSecurityDescriptorLength(sd uintptr) (len uint32) = advapi32.GetSecurityDescriptorLength - -type AccountLookupError struct { - Name string - Err error -} - -func (e *AccountLookupError) Error() string { - if e.Name == "" { - return "lookup account: empty account name specified" - } - var s string - switch { - case errors.Is(e.Err, windows.ERROR_INVALID_SID): - s = "the security ID structure is invalid" - case errors.Is(e.Err, windows.ERROR_NONE_MAPPED): - s = "not found" - default: - s = e.Err.Error() - } - return "lookup account " + e.Name + ": " + s -} - -func (e *AccountLookupError) Unwrap() error { return e.Err } - -type SddlConversionError struct { - Sddl string - Err error -} - -func (e *SddlConversionError) Error() string { - return "convert " + e.Sddl + ": " + e.Err.Error() -} - -func (e *SddlConversionError) Unwrap() error { return e.Err } - -// LookupSidByName looks up the SID of an account by name -// -//revive:disable-next-line:var-naming SID, not Sid -func LookupSidByName(name string) (sid string, err error) { - if name == "" { - return "", &AccountLookupError{name, windows.ERROR_NONE_MAPPED} - } - - var sidSize, sidNameUse, refDomainSize uint32 - err = lookupAccountName(nil, name, nil, &sidSize, nil, &refDomainSize, &sidNameUse) - if err != nil && err != syscall.ERROR_INSUFFICIENT_BUFFER { //nolint:errorlint // err is Errno - return "", &AccountLookupError{name, err} - } - sidBuffer := make([]byte, sidSize) - refDomainBuffer := make([]uint16, refDomainSize) - err = lookupAccountName(nil, name, &sidBuffer[0], &sidSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse) - if err != nil { - return "", &AccountLookupError{name, err} - } - var strBuffer *uint16 - err = convertSidToStringSid(&sidBuffer[0], &strBuffer) - if err != nil { - return "", &AccountLookupError{name, err} - } - sid = syscall.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(strBuffer))[:]) - localFree(uintptr(unsafe.Pointer(strBuffer))) - return sid, nil -} - -// LookupNameBySid looks up the name of an account by SID -// -//revive:disable-next-line:var-naming SID, not Sid -func LookupNameBySid(sid string) (name string, err error) { - if sid == "" { - return "", &AccountLookupError{sid, windows.ERROR_NONE_MAPPED} - } - - sidBuffer, err := windows.UTF16PtrFromString(sid) - if err != nil { - return "", &AccountLookupError{sid, err} - } - - var sidPtr *byte - if err = convertStringSidToSid(sidBuffer, &sidPtr); err != nil { - return "", &AccountLookupError{sid, err} - } - defer localFree(uintptr(unsafe.Pointer(sidPtr))) - - var nameSize, refDomainSize, sidNameUse uint32 - err = lookupAccountSid(nil, sidPtr, nil, &nameSize, nil, &refDomainSize, &sidNameUse) - if err != nil && err != windows.ERROR_INSUFFICIENT_BUFFER { //nolint:errorlint // err is Errno - return "", &AccountLookupError{sid, err} - } - - nameBuffer := make([]uint16, nameSize) - refDomainBuffer := make([]uint16, refDomainSize) - err = lookupAccountSid(nil, sidPtr, &nameBuffer[0], &nameSize, &refDomainBuffer[0], &refDomainSize, &sidNameUse) - if err != nil { - return "", &AccountLookupError{sid, err} - } - - name = windows.UTF16ToString(nameBuffer) - return name, nil -} - -func SddlToSecurityDescriptor(sddl string) ([]byte, error) { - var sdBuffer uintptr - err := convertStringSecurityDescriptorToSecurityDescriptor(sddl, 1, &sdBuffer, nil) - if err != nil { - return nil, &SddlConversionError{sddl, err} - } - defer localFree(sdBuffer) - sd := make([]byte, getSecurityDescriptorLength(sdBuffer)) - copy(sd, (*[0xffff]byte)(unsafe.Pointer(sdBuffer))[:len(sd)]) - return sd, nil -} - -func SecurityDescriptorToSddl(sd []byte) (string, error) { - var sddl *uint16 - // The returned string length seems to include an arbitrary number of terminating NULs. - // Don't use it. - err := convertSecurityDescriptorToStringSecurityDescriptor(&sd[0], 1, 0xff, &sddl, nil) - if err != nil { - return "", err - } - defer localFree(uintptr(unsafe.Pointer(sddl))) - return syscall.UTF16ToString((*[0xffff]uint16)(unsafe.Pointer(sddl))[:]), nil -} diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go deleted file mode 100644 index a6ca111b39..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/syscall.go +++ /dev/null @@ -1,5 +0,0 @@ -//go:build windows - -package winio - -//go:generate go run github.com/Microsoft/go-winio/tools/mkwinsyscall -output zsyscall_windows.go ./*.go diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go deleted file mode 100644 index 2aa045843e..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/tools.go +++ /dev/null @@ -1,5 +0,0 @@ -//go:build tools - -package winio - -import _ "golang.org/x/tools/cmd/stringer" diff --git a/ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go b/ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go deleted file mode 100644 index 469b16f639..0000000000 --- a/ecs-agent/vendor/github.com/Microsoft/go-winio/zsyscall_windows.go +++ /dev/null @@ -1,419 +0,0 @@ -//go:build windows - -// Code generated by 'go generate' using "github.com/Microsoft/go-winio/tools/mkwinsyscall"; DO NOT EDIT. - -package winio - -import ( - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -var _ unsafe.Pointer - -// Do the interface allocations only once for common -// Errno values. -const ( - errnoERROR_IO_PENDING = 997 -) - -var ( - errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING) - errERROR_EINVAL error = syscall.EINVAL -) - -// errnoErr returns common boxed Errno values, to prevent -// allocations at runtime. -func errnoErr(e syscall.Errno) error { - switch e { - case 0: - return errERROR_EINVAL - case errnoERROR_IO_PENDING: - return errERROR_IO_PENDING - } - // TODO: add more here, after collecting data on the common - // error values see on Windows. (perhaps when running - // all.bat?) - return e -} - -var ( - modadvapi32 = windows.NewLazySystemDLL("advapi32.dll") - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - modntdll = windows.NewLazySystemDLL("ntdll.dll") - modws2_32 = windows.NewLazySystemDLL("ws2_32.dll") - - procAdjustTokenPrivileges = modadvapi32.NewProc("AdjustTokenPrivileges") - procConvertSecurityDescriptorToStringSecurityDescriptorW = modadvapi32.NewProc("ConvertSecurityDescriptorToStringSecurityDescriptorW") - procConvertSidToStringSidW = modadvapi32.NewProc("ConvertSidToStringSidW") - procConvertStringSecurityDescriptorToSecurityDescriptorW = modadvapi32.NewProc("ConvertStringSecurityDescriptorToSecurityDescriptorW") - procConvertStringSidToSidW = modadvapi32.NewProc("ConvertStringSidToSidW") - procGetSecurityDescriptorLength = modadvapi32.NewProc("GetSecurityDescriptorLength") - procImpersonateSelf = modadvapi32.NewProc("ImpersonateSelf") - procLookupAccountNameW = modadvapi32.NewProc("LookupAccountNameW") - procLookupAccountSidW = modadvapi32.NewProc("LookupAccountSidW") - procLookupPrivilegeDisplayNameW = modadvapi32.NewProc("LookupPrivilegeDisplayNameW") - procLookupPrivilegeNameW = modadvapi32.NewProc("LookupPrivilegeNameW") - procLookupPrivilegeValueW = modadvapi32.NewProc("LookupPrivilegeValueW") - procOpenThreadToken = modadvapi32.NewProc("OpenThreadToken") - procRevertToSelf = modadvapi32.NewProc("RevertToSelf") - procBackupRead = modkernel32.NewProc("BackupRead") - procBackupWrite = modkernel32.NewProc("BackupWrite") - procCancelIoEx = modkernel32.NewProc("CancelIoEx") - procConnectNamedPipe = modkernel32.NewProc("ConnectNamedPipe") - procCreateIoCompletionPort = modkernel32.NewProc("CreateIoCompletionPort") - procCreateNamedPipeW = modkernel32.NewProc("CreateNamedPipeW") - procGetCurrentThread = modkernel32.NewProc("GetCurrentThread") - procGetNamedPipeHandleStateW = modkernel32.NewProc("GetNamedPipeHandleStateW") - procGetNamedPipeInfo = modkernel32.NewProc("GetNamedPipeInfo") - procGetQueuedCompletionStatus = modkernel32.NewProc("GetQueuedCompletionStatus") - procLocalAlloc = modkernel32.NewProc("LocalAlloc") - procLocalFree = modkernel32.NewProc("LocalFree") - procSetFileCompletionNotificationModes = modkernel32.NewProc("SetFileCompletionNotificationModes") - procNtCreateNamedPipeFile = modntdll.NewProc("NtCreateNamedPipeFile") - procRtlDefaultNpAcl = modntdll.NewProc("RtlDefaultNpAcl") - procRtlDosPathNameToNtPathName_U = modntdll.NewProc("RtlDosPathNameToNtPathName_U") - procRtlNtStatusToDosErrorNoTeb = modntdll.NewProc("RtlNtStatusToDosErrorNoTeb") - procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") -) - -func adjustTokenPrivileges(token windows.Token, releaseAll bool, input *byte, outputSize uint32, output *byte, requiredSize *uint32) (success bool, err error) { - var _p0 uint32 - if releaseAll { - _p0 = 1 - } - r0, _, e1 := syscall.Syscall6(procAdjustTokenPrivileges.Addr(), 6, uintptr(token), uintptr(_p0), uintptr(unsafe.Pointer(input)), uintptr(outputSize), uintptr(unsafe.Pointer(output)), uintptr(unsafe.Pointer(requiredSize))) - success = r0 != 0 - if true { - err = errnoErr(e1) - } - return -} - -func convertSecurityDescriptorToStringSecurityDescriptor(sd *byte, revision uint32, secInfo uint32, sddl **uint16, sddlSize *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertSecurityDescriptorToStringSecurityDescriptorW.Addr(), 5, uintptr(unsafe.Pointer(sd)), uintptr(revision), uintptr(secInfo), uintptr(unsafe.Pointer(sddl)), uintptr(unsafe.Pointer(sddlSize)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertSidToStringSid(sid *byte, str **uint16) (err error) { - r1, _, e1 := syscall.Syscall(procConvertSidToStringSidW.Addr(), 2, uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(str)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertStringSecurityDescriptorToSecurityDescriptor(str string, revision uint32, sd *uintptr, size *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(str) - if err != nil { - return - } - return _convertStringSecurityDescriptorToSecurityDescriptor(_p0, revision, sd, size) -} - -func _convertStringSecurityDescriptorToSecurityDescriptor(str *uint16, revision uint32, sd *uintptr, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procConvertStringSecurityDescriptorToSecurityDescriptorW.Addr(), 4, uintptr(unsafe.Pointer(str)), uintptr(revision), uintptr(unsafe.Pointer(sd)), uintptr(unsafe.Pointer(size)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func convertStringSidToSid(str *uint16, sid **byte) (err error) { - r1, _, e1 := syscall.Syscall(procConvertStringSidToSidW.Addr(), 2, uintptr(unsafe.Pointer(str)), uintptr(unsafe.Pointer(sid)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getSecurityDescriptorLength(sd uintptr) (len uint32) { - r0, _, _ := syscall.Syscall(procGetSecurityDescriptorLength.Addr(), 1, uintptr(sd), 0, 0) - len = uint32(r0) - return -} - -func impersonateSelf(level uint32) (err error) { - r1, _, e1 := syscall.Syscall(procImpersonateSelf.Addr(), 1, uintptr(level), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func lookupAccountName(systemName *uint16, accountName string, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(accountName) - if err != nil { - return - } - return _lookupAccountName(systemName, _p0, sid, sidSize, refDomain, refDomainSize, sidNameUse) -} - -func _lookupAccountName(systemName *uint16, accountName *uint16, sid *byte, sidSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountNameW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(accountName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(sidSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func lookupAccountSid(systemName *uint16, sid *byte, name *uint16, nameSize *uint32, refDomain *uint16, refDomainSize *uint32, sidNameUse *uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procLookupAccountSidW.Addr(), 7, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(sid)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(nameSize)), uintptr(unsafe.Pointer(refDomain)), uintptr(unsafe.Pointer(refDomainSize)), uintptr(unsafe.Pointer(sidNameUse)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func lookupPrivilegeDisplayName(systemName string, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(systemName) - if err != nil { - return - } - return _lookupPrivilegeDisplayName(_p0, name, buffer, size, languageId) -} - -func _lookupPrivilegeDisplayName(systemName *uint16, name *uint16, buffer *uint16, size *uint32, languageId *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procLookupPrivilegeDisplayNameW.Addr(), 5, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), uintptr(unsafe.Pointer(languageId)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func lookupPrivilegeName(systemName string, luid *uint64, buffer *uint16, size *uint32) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(systemName) - if err != nil { - return - } - return _lookupPrivilegeName(_p0, luid, buffer, size) -} - -func _lookupPrivilegeName(systemName *uint16, luid *uint64, buffer *uint16, size *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procLookupPrivilegeNameW.Addr(), 4, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(luid)), uintptr(unsafe.Pointer(buffer)), uintptr(unsafe.Pointer(size)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func lookupPrivilegeValue(systemName string, name string, luid *uint64) (err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(systemName) - if err != nil { - return - } - var _p1 *uint16 - _p1, err = syscall.UTF16PtrFromString(name) - if err != nil { - return - } - return _lookupPrivilegeValue(_p0, _p1, luid) -} - -func _lookupPrivilegeValue(systemName *uint16, name *uint16, luid *uint64) (err error) { - r1, _, e1 := syscall.Syscall(procLookupPrivilegeValueW.Addr(), 3, uintptr(unsafe.Pointer(systemName)), uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(luid))) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func openThreadToken(thread syscall.Handle, accessMask uint32, openAsSelf bool, token *windows.Token) (err error) { - var _p0 uint32 - if openAsSelf { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procOpenThreadToken.Addr(), 4, uintptr(thread), uintptr(accessMask), uintptr(_p0), uintptr(unsafe.Pointer(token)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func revertToSelf() (err error) { - r1, _, e1 := syscall.Syscall(procRevertToSelf.Addr(), 0, 0, 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func backupRead(h syscall.Handle, b []byte, bytesRead *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 uint32 - if abort { - _p1 = 1 - } - var _p2 uint32 - if processSecurity { - _p2 = 1 - } - r1, _, e1 := syscall.Syscall9(procBackupRead.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesRead)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func backupWrite(h syscall.Handle, b []byte, bytesWritten *uint32, abort bool, processSecurity bool, context *uintptr) (err error) { - var _p0 *byte - if len(b) > 0 { - _p0 = &b[0] - } - var _p1 uint32 - if abort { - _p1 = 1 - } - var _p2 uint32 - if processSecurity { - _p2 = 1 - } - r1, _, e1 := syscall.Syscall9(procBackupWrite.Addr(), 7, uintptr(h), uintptr(unsafe.Pointer(_p0)), uintptr(len(b)), uintptr(unsafe.Pointer(bytesWritten)), uintptr(_p1), uintptr(_p2), uintptr(unsafe.Pointer(context)), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func cancelIoEx(file syscall.Handle, o *syscall.Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procCancelIoEx.Addr(), 2, uintptr(file), uintptr(unsafe.Pointer(o)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func connectNamedPipe(pipe syscall.Handle, o *syscall.Overlapped) (err error) { - r1, _, e1 := syscall.Syscall(procConnectNamedPipe.Addr(), 2, uintptr(pipe), uintptr(unsafe.Pointer(o)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func createIoCompletionPort(file syscall.Handle, port syscall.Handle, key uintptr, threadCount uint32) (newport syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall6(procCreateIoCompletionPort.Addr(), 4, uintptr(file), uintptr(port), uintptr(key), uintptr(threadCount), 0, 0) - newport = syscall.Handle(r0) - if newport == 0 { - err = errnoErr(e1) - } - return -} - -func createNamedPipe(name string, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { - var _p0 *uint16 - _p0, err = syscall.UTF16PtrFromString(name) - if err != nil { - return - } - return _createNamedPipe(_p0, flags, pipeMode, maxInstances, outSize, inSize, defaultTimeout, sa) -} - -func _createNamedPipe(name *uint16, flags uint32, pipeMode uint32, maxInstances uint32, outSize uint32, inSize uint32, defaultTimeout uint32, sa *syscall.SecurityAttributes) (handle syscall.Handle, err error) { - r0, _, e1 := syscall.Syscall9(procCreateNamedPipeW.Addr(), 8, uintptr(unsafe.Pointer(name)), uintptr(flags), uintptr(pipeMode), uintptr(maxInstances), uintptr(outSize), uintptr(inSize), uintptr(defaultTimeout), uintptr(unsafe.Pointer(sa)), 0) - handle = syscall.Handle(r0) - if handle == syscall.InvalidHandle { - err = errnoErr(e1) - } - return -} - -func getCurrentThread() (h syscall.Handle) { - r0, _, _ := syscall.Syscall(procGetCurrentThread.Addr(), 0, 0, 0, 0) - h = syscall.Handle(r0) - return -} - -func getNamedPipeHandleState(pipe syscall.Handle, state *uint32, curInstances *uint32, maxCollectionCount *uint32, collectDataTimeout *uint32, userName *uint16, maxUserNameSize uint32) (err error) { - r1, _, e1 := syscall.Syscall9(procGetNamedPipeHandleStateW.Addr(), 7, uintptr(pipe), uintptr(unsafe.Pointer(state)), uintptr(unsafe.Pointer(curInstances)), uintptr(unsafe.Pointer(maxCollectionCount)), uintptr(unsafe.Pointer(collectDataTimeout)), uintptr(unsafe.Pointer(userName)), uintptr(maxUserNameSize), 0, 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getNamedPipeInfo(pipe syscall.Handle, flags *uint32, outSize *uint32, inSize *uint32, maxInstances *uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetNamedPipeInfo.Addr(), 5, uintptr(pipe), uintptr(unsafe.Pointer(flags)), uintptr(unsafe.Pointer(outSize)), uintptr(unsafe.Pointer(inSize)), uintptr(unsafe.Pointer(maxInstances)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func getQueuedCompletionStatus(port syscall.Handle, bytes *uint32, key *uintptr, o **ioOperation, timeout uint32) (err error) { - r1, _, e1 := syscall.Syscall6(procGetQueuedCompletionStatus.Addr(), 5, uintptr(port), uintptr(unsafe.Pointer(bytes)), uintptr(unsafe.Pointer(key)), uintptr(unsafe.Pointer(o)), uintptr(timeout), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func localAlloc(uFlags uint32, length uint32) (ptr uintptr) { - r0, _, _ := syscall.Syscall(procLocalAlloc.Addr(), 2, uintptr(uFlags), uintptr(length), 0) - ptr = uintptr(r0) - return -} - -func localFree(mem uintptr) { - syscall.Syscall(procLocalFree.Addr(), 1, uintptr(mem), 0, 0) - return -} - -func setFileCompletionNotificationModes(h syscall.Handle, flags uint8) (err error) { - r1, _, e1 := syscall.Syscall(procSetFileCompletionNotificationModes.Addr(), 2, uintptr(h), uintptr(flags), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} - -func ntCreateNamedPipeFile(pipe *syscall.Handle, access uint32, oa *objectAttributes, iosb *ioStatusBlock, share uint32, disposition uint32, options uint32, typ uint32, readMode uint32, completionMode uint32, maxInstances uint32, inboundQuota uint32, outputQuota uint32, timeout *int64) (status ntStatus) { - r0, _, _ := syscall.Syscall15(procNtCreateNamedPipeFile.Addr(), 14, uintptr(unsafe.Pointer(pipe)), uintptr(access), uintptr(unsafe.Pointer(oa)), uintptr(unsafe.Pointer(iosb)), uintptr(share), uintptr(disposition), uintptr(options), uintptr(typ), uintptr(readMode), uintptr(completionMode), uintptr(maxInstances), uintptr(inboundQuota), uintptr(outputQuota), uintptr(unsafe.Pointer(timeout)), 0) - status = ntStatus(r0) - return -} - -func rtlDefaultNpAcl(dacl *uintptr) (status ntStatus) { - r0, _, _ := syscall.Syscall(procRtlDefaultNpAcl.Addr(), 1, uintptr(unsafe.Pointer(dacl)), 0, 0) - status = ntStatus(r0) - return -} - -func rtlDosPathNameToNtPathName(name *uint16, ntName *unicodeString, filePart uintptr, reserved uintptr) (status ntStatus) { - r0, _, _ := syscall.Syscall6(procRtlDosPathNameToNtPathName_U.Addr(), 4, uintptr(unsafe.Pointer(name)), uintptr(unsafe.Pointer(ntName)), uintptr(filePart), uintptr(reserved), 0, 0) - status = ntStatus(r0) - return -} - -func rtlNtStatusToDosError(status ntStatus) (winerr error) { - r0, _, _ := syscall.Syscall(procRtlNtStatusToDosErrorNoTeb.Addr(), 1, uintptr(status), 0, 0) - if r0 != 0 { - winerr = syscall.Errno(r0) - } - return -} - -func wsaGetOverlappedResult(h syscall.Handle, o *syscall.Overlapped, bytes *uint32, wait bool, flags *uint32) (err error) { - var _p0 uint32 - if wait { - _p0 = 1 - } - r1, _, e1 := syscall.Syscall6(procWSAGetOverlappedResult.Addr(), 5, uintptr(h), uintptr(unsafe.Pointer(o)), uintptr(unsafe.Pointer(bytes)), uintptr(_p0), uintptr(unsafe.Pointer(flags)), 0) - if r1 == 0 { - err = errnoErr(e1) - } - return -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE deleted file mode 100644 index 8f71f43fee..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md deleted file mode 100644 index 147ae4ba9b..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Client go module - -This separate go module is intended to be imported by clients that want to use the CSI-proxy. - -It should strive to keep as few dependencies as possible, to make it easy to import in other repositories. diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go deleted file mode 100644 index 70bb981e9b..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.pb.go +++ /dev/null @@ -1,1476 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.12.4 -// source: github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto - -package v1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type ListDiskLocationsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ListDiskLocationsRequest) Reset() { - *x = ListDiskLocationsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDiskLocationsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDiskLocationsRequest) ProtoMessage() {} - -func (x *ListDiskLocationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDiskLocationsRequest.ProtoReflect.Descriptor instead. -func (*ListDiskLocationsRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{0} -} - -type DiskLocation struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Adapter string `protobuf:"bytes,1,opt,name=Adapter,proto3" json:"Adapter,omitempty"` - Bus string `protobuf:"bytes,2,opt,name=Bus,proto3" json:"Bus,omitempty"` - Target string `protobuf:"bytes,3,opt,name=Target,proto3" json:"Target,omitempty"` - LUNID string `protobuf:"bytes,4,opt,name=LUNID,proto3" json:"LUNID,omitempty"` -} - -func (x *DiskLocation) Reset() { - *x = DiskLocation{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiskLocation) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiskLocation) ProtoMessage() {} - -func (x *DiskLocation) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DiskLocation.ProtoReflect.Descriptor instead. -func (*DiskLocation) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{1} -} - -func (x *DiskLocation) GetAdapter() string { - if x != nil { - return x.Adapter - } - return "" -} - -func (x *DiskLocation) GetBus() string { - if x != nil { - return x.Bus - } - return "" -} - -func (x *DiskLocation) GetTarget() string { - if x != nil { - return x.Target - } - return "" -} - -func (x *DiskLocation) GetLUNID() string { - if x != nil { - return x.LUNID - } - return "" -} - -type ListDiskLocationsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Map of disk number and associated with each disk device. - DiskLocations map[uint32]*DiskLocation `protobuf:"bytes,1,rep,name=disk_locations,json=diskLocations,proto3" json:"disk_locations,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *ListDiskLocationsResponse) Reset() { - *x = ListDiskLocationsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDiskLocationsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDiskLocationsResponse) ProtoMessage() {} - -func (x *ListDiskLocationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDiskLocationsResponse.ProtoReflect.Descriptor instead. -func (*ListDiskLocationsResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{2} -} - -func (x *ListDiskLocationsResponse) GetDiskLocations() map[uint32]*DiskLocation { - if x != nil { - return x.DiskLocations - } - return nil -} - -type PartitionDiskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Disk device number of the disk to partition. - DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` -} - -func (x *PartitionDiskRequest) Reset() { - *x = PartitionDiskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PartitionDiskRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PartitionDiskRequest) ProtoMessage() {} - -func (x *PartitionDiskRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PartitionDiskRequest.ProtoReflect.Descriptor instead. -func (*PartitionDiskRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{3} -} - -func (x *PartitionDiskRequest) GetDiskNumber() uint32 { - if x != nil { - return x.DiskNumber - } - return 0 -} - -type PartitionDiskResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *PartitionDiskResponse) Reset() { - *x = PartitionDiskResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PartitionDiskResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PartitionDiskResponse) ProtoMessage() {} - -func (x *PartitionDiskResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PartitionDiskResponse.ProtoReflect.Descriptor instead. -func (*PartitionDiskResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{4} -} - -type RescanRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RescanRequest) Reset() { - *x = RescanRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RescanRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RescanRequest) ProtoMessage() {} - -func (x *RescanRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RescanRequest.ProtoReflect.Descriptor instead. -func (*RescanRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{5} -} - -type RescanResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RescanResponse) Reset() { - *x = RescanResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RescanResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RescanResponse) ProtoMessage() {} - -func (x *RescanResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RescanResponse.ProtoReflect.Descriptor instead. -func (*RescanResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{6} -} - -type ListDiskIDsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ListDiskIDsRequest) Reset() { - *x = ListDiskIDsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDiskIDsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDiskIDsRequest) ProtoMessage() {} - -func (x *ListDiskIDsRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDiskIDsRequest.ProtoReflect.Descriptor instead. -func (*ListDiskIDsRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{7} -} - -type DiskIDs struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The disk page83 id. - Page83 string `protobuf:"bytes,1,opt,name=page83,proto3" json:"page83,omitempty"` - // The disk serial number. - SerialNumber string `protobuf:"bytes,2,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"` -} - -func (x *DiskIDs) Reset() { - *x = DiskIDs{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *DiskIDs) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*DiskIDs) ProtoMessage() {} - -func (x *DiskIDs) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use DiskIDs.ProtoReflect.Descriptor instead. -func (*DiskIDs) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{8} -} - -func (x *DiskIDs) GetPage83() string { - if x != nil { - return x.Page83 - } - return "" -} - -func (x *DiskIDs) GetSerialNumber() string { - if x != nil { - return x.SerialNumber - } - return "" -} - -type ListDiskIDsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Map of disk numbers and disk identifiers associated with each disk device. - DiskIDs map[uint32]*DiskIDs `protobuf:"bytes,1,rep,name=diskIDs,proto3" json:"diskIDs,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // the case is intentional for protoc to generate the field as DiskIDs -} - -func (x *ListDiskIDsResponse) Reset() { - *x = ListDiskIDsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListDiskIDsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListDiskIDsResponse) ProtoMessage() {} - -func (x *ListDiskIDsResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListDiskIDsResponse.ProtoReflect.Descriptor instead. -func (*ListDiskIDsResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{9} -} - -func (x *ListDiskIDsResponse) GetDiskIDs() map[uint32]*DiskIDs { - if x != nil { - return x.DiskIDs - } - return nil -} - -type GetDiskStatsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Disk device number of the disk to get the stats from. - DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` -} - -func (x *GetDiskStatsRequest) Reset() { - *x = GetDiskStatsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDiskStatsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDiskStatsRequest) ProtoMessage() {} - -func (x *GetDiskStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDiskStatsRequest.ProtoReflect.Descriptor instead. -func (*GetDiskStatsRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{10} -} - -func (x *GetDiskStatsRequest) GetDiskNumber() uint32 { - if x != nil { - return x.DiskNumber - } - return 0 -} - -type GetDiskStatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Total size of the volume. - TotalBytes int64 `protobuf:"varint,1,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` -} - -func (x *GetDiskStatsResponse) Reset() { - *x = GetDiskStatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDiskStatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDiskStatsResponse) ProtoMessage() {} - -func (x *GetDiskStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDiskStatsResponse.ProtoReflect.Descriptor instead. -func (*GetDiskStatsResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{11} -} - -func (x *GetDiskStatsResponse) GetTotalBytes() int64 { - if x != nil { - return x.TotalBytes - } - return 0 -} - -type SetDiskStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Disk device number of the disk. - DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` - // Online state to set for the disk. true for online, false for offline. - IsOnline bool `protobuf:"varint,2,opt,name=is_online,json=isOnline,proto3" json:"is_online,omitempty"` -} - -func (x *SetDiskStateRequest) Reset() { - *x = SetDiskStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetDiskStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetDiskStateRequest) ProtoMessage() {} - -func (x *SetDiskStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetDiskStateRequest.ProtoReflect.Descriptor instead. -func (*SetDiskStateRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{12} -} - -func (x *SetDiskStateRequest) GetDiskNumber() uint32 { - if x != nil { - return x.DiskNumber - } - return 0 -} - -func (x *SetDiskStateRequest) GetIsOnline() bool { - if x != nil { - return x.IsOnline - } - return false -} - -type SetDiskStateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SetDiskStateResponse) Reset() { - *x = SetDiskStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetDiskStateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetDiskStateResponse) ProtoMessage() {} - -func (x *SetDiskStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetDiskStateResponse.ProtoReflect.Descriptor instead. -func (*SetDiskStateResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{13} -} - -type GetDiskStateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Disk device number of the disk. - DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` -} - -func (x *GetDiskStateRequest) Reset() { - *x = GetDiskStateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDiskStateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDiskStateRequest) ProtoMessage() {} - -func (x *GetDiskStateRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDiskStateRequest.ProtoReflect.Descriptor instead. -func (*GetDiskStateRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{14} -} - -func (x *GetDiskStateRequest) GetDiskNumber() uint32 { - if x != nil { - return x.DiskNumber - } - return 0 -} - -type GetDiskStateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Online state of the disk. true for online, false for offline. - IsOnline bool `protobuf:"varint,1,opt,name=is_online,json=isOnline,proto3" json:"is_online,omitempty"` -} - -func (x *GetDiskStateResponse) Reset() { - *x = GetDiskStateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDiskStateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDiskStateResponse) ProtoMessage() {} - -func (x *GetDiskStateResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDiskStateResponse.ProtoReflect.Descriptor instead. -func (*GetDiskStateResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP(), []int{15} -} - -func (x *GetDiskStateResponse) GetIsOnline() bool { - if x != nil { - return x.IsOnline - } - return false -} - -var File_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto protoreflect.FileDescriptor - -var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc = []byte{ - 0x0a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x64, 0x69, 0x73, 0x6b, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x1a, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, - 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x68, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x61, 0x70, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x42, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x42, 0x75, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x4c, 0x55, 0x4e, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4c, 0x55, 0x4e, 0x49, 0x44, 0x22, 0xc8, 0x01, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x0e, 0x64, 0x69, - 0x73, 0x6b, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x1a, 0x52, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x26, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x14, 0x50, 0x61, 0x72, 0x74, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x17, 0x0a, 0x15, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x65, 0x73, - 0x63, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, - 0x73, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x0a, 0x12, - 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x46, 0x0a, 0x07, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x70, 0x61, 0x67, 0x65, 0x38, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x67, 0x65, 0x38, 0x33, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x65, - 0x72, 0x69, 0x61, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x9e, 0x01, 0x0a, 0x13, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, - 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x69, 0x73, - 0x6b, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x64, 0x69, 0x73, 0x6b, 0x49, - 0x44, 0x73, 0x1a, 0x47, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x21, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x36, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x22, 0x37, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x53, 0x0a, 0x13, - 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, - 0x65, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0x33, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x73, 0x5f, - 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, - 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x32, 0xe6, 0x03, 0x0a, 0x04, 0x44, 0x69, 0x73, 0x6b, 0x12, - 0x52, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, - 0x73, 0x6b, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x44, 0x69, 0x73, 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x06, 0x52, - 0x65, 0x73, 0x63, 0x61, 0x6e, 0x12, 0x11, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x63, 0x61, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x73, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x40, - 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x12, 0x16, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, - 0x69, 0x73, 0x6b, 0x49, 0x44, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x69, - 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0x38, 0x5a, 0x36, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, - 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, - 0x2d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x64, 0x69, 0x73, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} - -var ( - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescOnce sync.Once - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData = file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc -) - -func file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescGZIP() []byte { - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescOnce.Do(func() { - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData) - }) - return file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDescData -} - -var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 18) -var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_goTypes = []interface{}{ - (*ListDiskLocationsRequest)(nil), // 0: v1.ListDiskLocationsRequest - (*DiskLocation)(nil), // 1: v1.DiskLocation - (*ListDiskLocationsResponse)(nil), // 2: v1.ListDiskLocationsResponse - (*PartitionDiskRequest)(nil), // 3: v1.PartitionDiskRequest - (*PartitionDiskResponse)(nil), // 4: v1.PartitionDiskResponse - (*RescanRequest)(nil), // 5: v1.RescanRequest - (*RescanResponse)(nil), // 6: v1.RescanResponse - (*ListDiskIDsRequest)(nil), // 7: v1.ListDiskIDsRequest - (*DiskIDs)(nil), // 8: v1.DiskIDs - (*ListDiskIDsResponse)(nil), // 9: v1.ListDiskIDsResponse - (*GetDiskStatsRequest)(nil), // 10: v1.GetDiskStatsRequest - (*GetDiskStatsResponse)(nil), // 11: v1.GetDiskStatsResponse - (*SetDiskStateRequest)(nil), // 12: v1.SetDiskStateRequest - (*SetDiskStateResponse)(nil), // 13: v1.SetDiskStateResponse - (*GetDiskStateRequest)(nil), // 14: v1.GetDiskStateRequest - (*GetDiskStateResponse)(nil), // 15: v1.GetDiskStateResponse - nil, // 16: v1.ListDiskLocationsResponse.DiskLocationsEntry - nil, // 17: v1.ListDiskIDsResponse.DiskIDsEntry -} -var file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_depIdxs = []int32{ - 16, // 0: v1.ListDiskLocationsResponse.disk_locations:type_name -> v1.ListDiskLocationsResponse.DiskLocationsEntry - 17, // 1: v1.ListDiskIDsResponse.diskIDs:type_name -> v1.ListDiskIDsResponse.DiskIDsEntry - 1, // 2: v1.ListDiskLocationsResponse.DiskLocationsEntry.value:type_name -> v1.DiskLocation - 8, // 3: v1.ListDiskIDsResponse.DiskIDsEntry.value:type_name -> v1.DiskIDs - 0, // 4: v1.Disk.ListDiskLocations:input_type -> v1.ListDiskLocationsRequest - 3, // 5: v1.Disk.PartitionDisk:input_type -> v1.PartitionDiskRequest - 5, // 6: v1.Disk.Rescan:input_type -> v1.RescanRequest - 7, // 7: v1.Disk.ListDiskIDs:input_type -> v1.ListDiskIDsRequest - 10, // 8: v1.Disk.GetDiskStats:input_type -> v1.GetDiskStatsRequest - 12, // 9: v1.Disk.SetDiskState:input_type -> v1.SetDiskStateRequest - 14, // 10: v1.Disk.GetDiskState:input_type -> v1.GetDiskStateRequest - 2, // 11: v1.Disk.ListDiskLocations:output_type -> v1.ListDiskLocationsResponse - 4, // 12: v1.Disk.PartitionDisk:output_type -> v1.PartitionDiskResponse - 6, // 13: v1.Disk.Rescan:output_type -> v1.RescanResponse - 9, // 14: v1.Disk.ListDiskIDs:output_type -> v1.ListDiskIDsResponse - 11, // 15: v1.Disk.GetDiskStats:output_type -> v1.GetDiskStatsResponse - 13, // 16: v1.Disk.SetDiskState:output_type -> v1.SetDiskStateResponse - 15, // 17: v1.Disk.GetDiskState:output_type -> v1.GetDiskStateResponse - 11, // [11:18] is the sub-list for method output_type - 4, // [4:11] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name -} - -func init() { file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_init() } -func file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_init() { - if File_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListDiskLocationsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskLocation); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListDiskLocationsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PartitionDiskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PartitionDiskResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RescanRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RescanResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListDiskIDsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiskIDs); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListDiskIDsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDiskStatsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDiskStatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDiskStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDiskStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDiskStateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDiskStateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc, - NumEnums: 0, - NumMessages: 18, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_goTypes, - DependencyIndexes: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_depIdxs, - MessageInfos: file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_msgTypes, - }.Build() - File_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto = out.File - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_rawDesc = nil - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_goTypes = nil - file_github_com_kubernetes_csi_csi_proxy_client_api_disk_v1_api_proto_depIdxs = nil -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// DiskClient is the client API for Disk service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type DiskClient interface { - // ListDiskLocations returns locations of all - // disk devices enumerated by the host. - ListDiskLocations(ctx context.Context, in *ListDiskLocationsRequest, opts ...grpc.CallOption) (*ListDiskLocationsResponse, error) - // PartitionDisk initializes and partitions a disk device with the GPT partition style - // (if the disk has not been partitioned already) and returns the resulting volume device ID. - PartitionDisk(ctx context.Context, in *PartitionDiskRequest, opts ...grpc.CallOption) (*PartitionDiskResponse, error) - // Rescan refreshes the host's storage cache. - Rescan(ctx context.Context, in *RescanRequest, opts ...grpc.CallOption) (*RescanResponse, error) - // ListDiskIDs returns a map of DiskID objects where the key is the disk number. - ListDiskIDs(ctx context.Context, in *ListDiskIDsRequest, opts ...grpc.CallOption) (*ListDiskIDsResponse, error) - // GetDiskStats returns the stats of a disk (currently it returns the disk size). - GetDiskStats(ctx context.Context, in *GetDiskStatsRequest, opts ...grpc.CallOption) (*GetDiskStatsResponse, error) - // SetDiskState sets the offline/online state of a disk. - SetDiskState(ctx context.Context, in *SetDiskStateRequest, opts ...grpc.CallOption) (*SetDiskStateResponse, error) - // GetDiskState gets the offline/online state of a disk. - GetDiskState(ctx context.Context, in *GetDiskStateRequest, opts ...grpc.CallOption) (*GetDiskStateResponse, error) -} - -type diskClient struct { - cc grpc.ClientConnInterface -} - -func NewDiskClient(cc grpc.ClientConnInterface) DiskClient { - return &diskClient{cc} -} - -func (c *diskClient) ListDiskLocations(ctx context.Context, in *ListDiskLocationsRequest, opts ...grpc.CallOption) (*ListDiskLocationsResponse, error) { - out := new(ListDiskLocationsResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/ListDiskLocations", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *diskClient) PartitionDisk(ctx context.Context, in *PartitionDiskRequest, opts ...grpc.CallOption) (*PartitionDiskResponse, error) { - out := new(PartitionDiskResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/PartitionDisk", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *diskClient) Rescan(ctx context.Context, in *RescanRequest, opts ...grpc.CallOption) (*RescanResponse, error) { - out := new(RescanResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/Rescan", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *diskClient) ListDiskIDs(ctx context.Context, in *ListDiskIDsRequest, opts ...grpc.CallOption) (*ListDiskIDsResponse, error) { - out := new(ListDiskIDsResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/ListDiskIDs", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *diskClient) GetDiskStats(ctx context.Context, in *GetDiskStatsRequest, opts ...grpc.CallOption) (*GetDiskStatsResponse, error) { - out := new(GetDiskStatsResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/GetDiskStats", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *diskClient) SetDiskState(ctx context.Context, in *SetDiskStateRequest, opts ...grpc.CallOption) (*SetDiskStateResponse, error) { - out := new(SetDiskStateResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/SetDiskState", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *diskClient) GetDiskState(ctx context.Context, in *GetDiskStateRequest, opts ...grpc.CallOption) (*GetDiskStateResponse, error) { - out := new(GetDiskStateResponse) - err := c.cc.Invoke(ctx, "/v1.Disk/GetDiskState", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// DiskServer is the server API for Disk service. -type DiskServer interface { - // ListDiskLocations returns locations of all - // disk devices enumerated by the host. - ListDiskLocations(context.Context, *ListDiskLocationsRequest) (*ListDiskLocationsResponse, error) - // PartitionDisk initializes and partitions a disk device with the GPT partition style - // (if the disk has not been partitioned already) and returns the resulting volume device ID. - PartitionDisk(context.Context, *PartitionDiskRequest) (*PartitionDiskResponse, error) - // Rescan refreshes the host's storage cache. - Rescan(context.Context, *RescanRequest) (*RescanResponse, error) - // ListDiskIDs returns a map of DiskID objects where the key is the disk number. - ListDiskIDs(context.Context, *ListDiskIDsRequest) (*ListDiskIDsResponse, error) - // GetDiskStats returns the stats of a disk (currently it returns the disk size). - GetDiskStats(context.Context, *GetDiskStatsRequest) (*GetDiskStatsResponse, error) - // SetDiskState sets the offline/online state of a disk. - SetDiskState(context.Context, *SetDiskStateRequest) (*SetDiskStateResponse, error) - // GetDiskState gets the offline/online state of a disk. - GetDiskState(context.Context, *GetDiskStateRequest) (*GetDiskStateResponse, error) -} - -// UnimplementedDiskServer can be embedded to have forward compatible implementations. -type UnimplementedDiskServer struct { -} - -func (*UnimplementedDiskServer) ListDiskLocations(context.Context, *ListDiskLocationsRequest) (*ListDiskLocationsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDiskLocations not implemented") -} -func (*UnimplementedDiskServer) PartitionDisk(context.Context, *PartitionDiskRequest) (*PartitionDiskResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PartitionDisk not implemented") -} -func (*UnimplementedDiskServer) Rescan(context.Context, *RescanRequest) (*RescanResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Rescan not implemented") -} -func (*UnimplementedDiskServer) ListDiskIDs(context.Context, *ListDiskIDsRequest) (*ListDiskIDsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListDiskIDs not implemented") -} -func (*UnimplementedDiskServer) GetDiskStats(context.Context, *GetDiskStatsRequest) (*GetDiskStatsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDiskStats not implemented") -} -func (*UnimplementedDiskServer) SetDiskState(context.Context, *SetDiskStateRequest) (*SetDiskStateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetDiskState not implemented") -} -func (*UnimplementedDiskServer) GetDiskState(context.Context, *GetDiskStateRequest) (*GetDiskStateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDiskState not implemented") -} - -func RegisterDiskServer(s *grpc.Server, srv DiskServer) { - s.RegisterService(&_Disk_serviceDesc, srv) -} - -func _Disk_ListDiskLocations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListDiskLocationsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).ListDiskLocations(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/ListDiskLocations", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).ListDiskLocations(ctx, req.(*ListDiskLocationsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Disk_PartitionDisk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PartitionDiskRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).PartitionDisk(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/PartitionDisk", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).PartitionDisk(ctx, req.(*PartitionDiskRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Disk_Rescan_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RescanRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).Rescan(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/Rescan", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).Rescan(ctx, req.(*RescanRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Disk_ListDiskIDs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListDiskIDsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).ListDiskIDs(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/ListDiskIDs", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).ListDiskIDs(ctx, req.(*ListDiskIDsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Disk_GetDiskStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetDiskStatsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).GetDiskStats(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/GetDiskStats", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).GetDiskStats(ctx, req.(*GetDiskStatsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Disk_SetDiskState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetDiskStateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).SetDiskState(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/SetDiskState", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).SetDiskState(ctx, req.(*SetDiskStateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Disk_GetDiskState_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetDiskStateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(DiskServer).GetDiskState(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Disk/GetDiskState", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(DiskServer).GetDiskState(ctx, req.(*GetDiskStateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Disk_serviceDesc = grpc.ServiceDesc{ - ServiceName: "v1.Disk", - HandlerType: (*DiskServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListDiskLocations", - Handler: _Disk_ListDiskLocations_Handler, - }, - { - MethodName: "PartitionDisk", - Handler: _Disk_PartitionDisk_Handler, - }, - { - MethodName: "Rescan", - Handler: _Disk_Rescan_Handler, - }, - { - MethodName: "ListDiskIDs", - Handler: _Disk_ListDiskIDs_Handler, - }, - { - MethodName: "GetDiskStats", - Handler: _Disk_GetDiskStats_Handler, - }, - { - MethodName: "SetDiskState", - Handler: _Disk_SetDiskState_Handler, - }, - { - MethodName: "GetDiskState", - Handler: _Disk_GetDiskState_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto", -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto deleted file mode 100644 index f73f412d6e..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/disk/v1/api.proto +++ /dev/null @@ -1,111 +0,0 @@ -syntax = "proto3"; - -package v1; - -option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1"; - -service Disk { - // ListDiskLocations returns locations of all - // disk devices enumerated by the host. - rpc ListDiskLocations(ListDiskLocationsRequest) returns (ListDiskLocationsResponse) {} - - // PartitionDisk initializes and partitions a disk device with the GPT partition style - // (if the disk has not been partitioned already) and returns the resulting volume device ID. - rpc PartitionDisk(PartitionDiskRequest) returns (PartitionDiskResponse) {} - - // Rescan refreshes the host's storage cache. - rpc Rescan(RescanRequest) returns (RescanResponse) {} - - // ListDiskIDs returns a map of DiskID objects where the key is the disk number. - rpc ListDiskIDs(ListDiskIDsRequest) returns (ListDiskIDsResponse) {} - - // GetDiskStats returns the stats of a disk (currently it returns the disk size). - rpc GetDiskStats(GetDiskStatsRequest) returns (GetDiskStatsResponse) {} - - // SetDiskState sets the offline/online state of a disk. - rpc SetDiskState(SetDiskStateRequest) returns (SetDiskStateResponse) {} - - // GetDiskState gets the offline/online state of a disk. - rpc GetDiskState(GetDiskStateRequest) returns (GetDiskStateResponse) {} -} - -message ListDiskLocationsRequest { - // Intentionally empty. -} - -message DiskLocation { - string Adapter = 1; - string Bus = 2; - string Target = 3; - string LUNID = 4; -} - -message ListDiskLocationsResponse { - // Map of disk number and associated with each disk device. - map disk_locations = 1; -} - -message PartitionDiskRequest { - // Disk device number of the disk to partition. - uint32 disk_number = 1; -} - -message PartitionDiskResponse { - // Intentionally empty. -} - -message RescanRequest { - // Intentionally empty. -} - -message RescanResponse { - // Intentionally empty. -} - -message ListDiskIDsRequest { - // Intentionally empty. -} - -message DiskIDs { - // The disk page83 id. - string page83 = 1; - // The disk serial number. - string serial_number = 2; -} - -message ListDiskIDsResponse { - // Map of disk numbers and disk identifiers associated with each disk device. - map diskIDs = 1; // the case is intentional for protoc to generate the field as DiskIDs -} - -message GetDiskStatsRequest { - // Disk device number of the disk to get the stats from. - uint32 disk_number = 1; -} - -message GetDiskStatsResponse { - // Total size of the volume. - int64 total_bytes = 1; -} - -message SetDiskStateRequest { - // Disk device number of the disk. - uint32 disk_number = 1; - - // Online state to set for the disk. true for online, false for offline. - bool is_online = 2; -} - -message SetDiskStateResponse { - // Intentionally empty. -} - -message GetDiskStateRequest { - // Disk device number of the disk. - uint32 disk_number = 1; -} - -message GetDiskStateResponse { - // Online state of the disk. true for online, false for offline. - bool is_online = 1; -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go deleted file mode 100644 index 8bf9cd6548..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.pb.go +++ /dev/null @@ -1,1041 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.12.4 -// source: github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto - -package v1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type PathExistsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The path whose existence we want to check in the host's filesystem - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` -} - -func (x *PathExistsRequest) Reset() { - *x = PathExistsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PathExistsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PathExistsRequest) ProtoMessage() {} - -func (x *PathExistsRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PathExistsRequest.ProtoReflect.Descriptor instead. -func (*PathExistsRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{0} -} - -func (x *PathExistsRequest) GetPath() string { - if x != nil { - return x.Path - } - return "" -} - -type PathExistsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Indicates whether the path in PathExistsRequest exists in the host's filesystem - Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"` -} - -func (x *PathExistsResponse) Reset() { - *x = PathExistsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *PathExistsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*PathExistsResponse) ProtoMessage() {} - -func (x *PathExistsResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use PathExistsResponse.ProtoReflect.Descriptor instead. -func (*PathExistsResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{1} -} - -func (x *PathExistsResponse) GetExists() bool { - if x != nil { - return x.Exists - } - return false -} - -type MkdirRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The path to create in the host's filesystem. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // Non-existent parent directories in the path will be automatically created. - // Directories will be created with Read and Write privileges of the Windows - // User account under which csi-proxy is started (typically LocalSystem). - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // Depending on the context parameter of this function, the path prefix needs - // to match the paths specified either as kubelet-csi-plugins-path - // or as kubelet-pod-path parameters of csi-proxy. - // The path parameter cannot already exist in the host's filesystem. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // Maximum path length will be capped to 260 characters. - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` -} - -func (x *MkdirRequest) Reset() { - *x = MkdirRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MkdirRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MkdirRequest) ProtoMessage() {} - -func (x *MkdirRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MkdirRequest.ProtoReflect.Descriptor instead. -func (*MkdirRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{2} -} - -func (x *MkdirRequest) GetPath() string { - if x != nil { - return x.Path - } - return "" -} - -type MkdirResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *MkdirResponse) Reset() { - *x = MkdirResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MkdirResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MkdirResponse) ProtoMessage() {} - -func (x *MkdirResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MkdirResponse.ProtoReflect.Descriptor instead. -func (*MkdirResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{3} -} - -type RmdirRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The path to remove in the host's filesystem. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // Depending on the context parameter of this function, the path prefix needs - // to match the paths specified either as kubelet-csi-plugins-path - // or as kubelet-pod-path parameters of csi-proxy. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // Path cannot be a file of type symlink. - // Maximum path length will be capped to 260 characters. - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` - // Force remove all contents under path (if any). - Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` -} - -func (x *RmdirRequest) Reset() { - *x = RmdirRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RmdirRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RmdirRequest) ProtoMessage() {} - -func (x *RmdirRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RmdirRequest.ProtoReflect.Descriptor instead. -func (*RmdirRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{4} -} - -func (x *RmdirRequest) GetPath() string { - if x != nil { - return x.Path - } - return "" -} - -func (x *RmdirRequest) GetForce() bool { - if x != nil { - return x.Force - } - return false -} - -type RmdirResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *RmdirResponse) Reset() { - *x = RmdirResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *RmdirResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*RmdirResponse) ProtoMessage() {} - -func (x *RmdirResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use RmdirResponse.ProtoReflect.Descriptor instead. -func (*RmdirResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{5} -} - -type CreateSymlinkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The path of the existing directory to be linked. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // The path prefix needs needs to match the paths specified as - // kubelet-csi-plugins-path parameter of csi-proxy. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // source_path cannot already exist in the host filesystem. - // Maximum path length will be capped to 260 characters. - SourcePath string `protobuf:"bytes,1,opt,name=source_path,json=sourcePath,proto3" json:"source_path,omitempty"` - // Target path is the location of the new directory entry to be created in the host's filesystem. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // The path prefix needs to match the paths specified as - // kubelet-pod-path parameter of csi-proxy. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // target_path needs to exist as a directory in the host that is empty. - // target_path cannot be a symbolic link. - // Maximum path length will be capped to 260 characters. - TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` -} - -func (x *CreateSymlinkRequest) Reset() { - *x = CreateSymlinkRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateSymlinkRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateSymlinkRequest) ProtoMessage() {} - -func (x *CreateSymlinkRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateSymlinkRequest.ProtoReflect.Descriptor instead. -func (*CreateSymlinkRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{6} -} - -func (x *CreateSymlinkRequest) GetSourcePath() string { - if x != nil { - return x.SourcePath - } - return "" -} - -func (x *CreateSymlinkRequest) GetTargetPath() string { - if x != nil { - return x.TargetPath - } - return "" -} - -type CreateSymlinkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *CreateSymlinkResponse) Reset() { - *x = CreateSymlinkResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CreateSymlinkResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CreateSymlinkResponse) ProtoMessage() {} - -func (x *CreateSymlinkResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CreateSymlinkResponse.ProtoReflect.Descriptor instead. -func (*CreateSymlinkResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{7} -} - -type IsSymlinkRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The path whose existence as a symlink we want to check in the host's filesystem. - Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` -} - -func (x *IsSymlinkRequest) Reset() { - *x = IsSymlinkRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsSymlinkRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsSymlinkRequest) ProtoMessage() {} - -func (x *IsSymlinkRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IsSymlinkRequest.ProtoReflect.Descriptor instead. -func (*IsSymlinkRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{8} -} - -func (x *IsSymlinkRequest) GetPath() string { - if x != nil { - return x.Path - } - return "" -} - -type IsSymlinkResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Indicates whether the path in IsSymlinkRequest is a symlink. - IsSymlink bool `protobuf:"varint,1,opt,name=is_symlink,json=isSymlink,proto3" json:"is_symlink,omitempty"` -} - -func (x *IsSymlinkResponse) Reset() { - *x = IsSymlinkResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsSymlinkResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsSymlinkResponse) ProtoMessage() {} - -func (x *IsSymlinkResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IsSymlinkResponse.ProtoReflect.Descriptor instead. -func (*IsSymlinkResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP(), []int{9} -} - -func (x *IsSymlinkResponse) GetIsSymlink() bool { - if x != nil { - return x.IsSymlink - } - return false -} - -var File_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto protoreflect.FileDescriptor - -var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc = []byte{ - 0x0a, 0x46, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x27, 0x0a, 0x11, - 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x2c, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, - 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, - 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, - 0x73, 0x74, 0x73, 0x22, 0x22, 0x0a, 0x0c, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x0f, 0x0a, 0x0d, 0x4d, 0x6b, 0x64, 0x69, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x0a, 0x0c, 0x52, 0x6d, 0x64, 0x69, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x52, 0x6d, 0x64, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, - 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x17, 0x0a, - 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x10, 0x49, 0x73, 0x53, 0x79, 0x6d, 0x6c, - 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x32, - 0x0a, 0x11, 0x49, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x73, 0x79, 0x6d, 0x6c, 0x69, 0x6e, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, - 0x6e, 0x6b, 0x32, 0xaf, 0x02, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x12, 0x3d, 0x0a, 0x0a, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x12, - 0x15, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x68, - 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x2e, 0x0a, 0x05, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x6b, 0x64, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x2e, 0x0a, 0x05, 0x52, 0x6d, 0x64, 0x69, 0x72, 0x12, 0x10, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x6d, 0x64, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x11, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x6d, 0x64, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x46, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, - 0x6b, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, - 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3a, 0x0a, 0x09, 0x49, 0x73, 0x53, 0x79, - 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x12, 0x14, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x53, 0x79, 0x6d, - 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x73, 0x53, 0x79, 0x6d, 0x6c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x42, 0x3e, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, - 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescOnce sync.Once - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData = file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc -) - -func file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescGZIP() []byte { - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescOnce.Do(func() { - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData) - }) - return file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDescData -} - -var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_goTypes = []interface{}{ - (*PathExistsRequest)(nil), // 0: v1.PathExistsRequest - (*PathExistsResponse)(nil), // 1: v1.PathExistsResponse - (*MkdirRequest)(nil), // 2: v1.MkdirRequest - (*MkdirResponse)(nil), // 3: v1.MkdirResponse - (*RmdirRequest)(nil), // 4: v1.RmdirRequest - (*RmdirResponse)(nil), // 5: v1.RmdirResponse - (*CreateSymlinkRequest)(nil), // 6: v1.CreateSymlinkRequest - (*CreateSymlinkResponse)(nil), // 7: v1.CreateSymlinkResponse - (*IsSymlinkRequest)(nil), // 8: v1.IsSymlinkRequest - (*IsSymlinkResponse)(nil), // 9: v1.IsSymlinkResponse -} -var file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_depIdxs = []int32{ - 0, // 0: v1.Filesystem.PathExists:input_type -> v1.PathExistsRequest - 2, // 1: v1.Filesystem.Mkdir:input_type -> v1.MkdirRequest - 4, // 2: v1.Filesystem.Rmdir:input_type -> v1.RmdirRequest - 6, // 3: v1.Filesystem.CreateSymlink:input_type -> v1.CreateSymlinkRequest - 8, // 4: v1.Filesystem.IsSymlink:input_type -> v1.IsSymlinkRequest - 1, // 5: v1.Filesystem.PathExists:output_type -> v1.PathExistsResponse - 3, // 6: v1.Filesystem.Mkdir:output_type -> v1.MkdirResponse - 5, // 7: v1.Filesystem.Rmdir:output_type -> v1.RmdirResponse - 7, // 8: v1.Filesystem.CreateSymlink:output_type -> v1.CreateSymlinkResponse - 9, // 9: v1.Filesystem.IsSymlink:output_type -> v1.IsSymlinkResponse - 5, // [5:10] is the sub-list for method output_type - 0, // [0:5] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_init() } -func file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_init() { - if File_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PathExistsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PathExistsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MkdirRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MkdirResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RmdirRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RmdirResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSymlinkRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSymlinkResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsSymlinkRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsSymlinkResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc, - NumEnums: 0, - NumMessages: 10, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_goTypes, - DependencyIndexes: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_depIdxs, - MessageInfos: file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_msgTypes, - }.Build() - File_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto = out.File - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_rawDesc = nil - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_goTypes = nil - file_github_com_kubernetes_csi_csi_proxy_client_api_filesystem_v1_api_proto_depIdxs = nil -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// FilesystemClient is the client API for Filesystem service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type FilesystemClient interface { - // PathExists checks if the requested path exists in the host filesystem. - PathExists(ctx context.Context, in *PathExistsRequest, opts ...grpc.CallOption) (*PathExistsResponse, error) - // Mkdir creates a directory at the requested path in the host filesystem. - Mkdir(ctx context.Context, in *MkdirRequest, opts ...grpc.CallOption) (*MkdirResponse, error) - // Rmdir removes the directory at the requested path in the host filesystem. - // This may be used for unlinking a symlink created through CreateSymlink. - Rmdir(ctx context.Context, in *RmdirRequest, opts ...grpc.CallOption) (*RmdirResponse, error) - // CreateSymlink creates a symbolic link called target_path that points to source_path - // in the host filesystem (target_path is the name of the symbolic link created, - // source_path is the existing path). - CreateSymlink(ctx context.Context, in *CreateSymlinkRequest, opts ...grpc.CallOption) (*CreateSymlinkResponse, error) - // IsSymlink checks if a given path is a symlink. - IsSymlink(ctx context.Context, in *IsSymlinkRequest, opts ...grpc.CallOption) (*IsSymlinkResponse, error) -} - -type filesystemClient struct { - cc grpc.ClientConnInterface -} - -func NewFilesystemClient(cc grpc.ClientConnInterface) FilesystemClient { - return &filesystemClient{cc} -} - -func (c *filesystemClient) PathExists(ctx context.Context, in *PathExistsRequest, opts ...grpc.CallOption) (*PathExistsResponse, error) { - out := new(PathExistsResponse) - err := c.cc.Invoke(ctx, "/v1.Filesystem/PathExists", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *filesystemClient) Mkdir(ctx context.Context, in *MkdirRequest, opts ...grpc.CallOption) (*MkdirResponse, error) { - out := new(MkdirResponse) - err := c.cc.Invoke(ctx, "/v1.Filesystem/Mkdir", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *filesystemClient) Rmdir(ctx context.Context, in *RmdirRequest, opts ...grpc.CallOption) (*RmdirResponse, error) { - out := new(RmdirResponse) - err := c.cc.Invoke(ctx, "/v1.Filesystem/Rmdir", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *filesystemClient) CreateSymlink(ctx context.Context, in *CreateSymlinkRequest, opts ...grpc.CallOption) (*CreateSymlinkResponse, error) { - out := new(CreateSymlinkResponse) - err := c.cc.Invoke(ctx, "/v1.Filesystem/CreateSymlink", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *filesystemClient) IsSymlink(ctx context.Context, in *IsSymlinkRequest, opts ...grpc.CallOption) (*IsSymlinkResponse, error) { - out := new(IsSymlinkResponse) - err := c.cc.Invoke(ctx, "/v1.Filesystem/IsSymlink", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// FilesystemServer is the server API for Filesystem service. -type FilesystemServer interface { - // PathExists checks if the requested path exists in the host filesystem. - PathExists(context.Context, *PathExistsRequest) (*PathExistsResponse, error) - // Mkdir creates a directory at the requested path in the host filesystem. - Mkdir(context.Context, *MkdirRequest) (*MkdirResponse, error) - // Rmdir removes the directory at the requested path in the host filesystem. - // This may be used for unlinking a symlink created through CreateSymlink. - Rmdir(context.Context, *RmdirRequest) (*RmdirResponse, error) - // CreateSymlink creates a symbolic link called target_path that points to source_path - // in the host filesystem (target_path is the name of the symbolic link created, - // source_path is the existing path). - CreateSymlink(context.Context, *CreateSymlinkRequest) (*CreateSymlinkResponse, error) - // IsSymlink checks if a given path is a symlink. - IsSymlink(context.Context, *IsSymlinkRequest) (*IsSymlinkResponse, error) -} - -// UnimplementedFilesystemServer can be embedded to have forward compatible implementations. -type UnimplementedFilesystemServer struct { -} - -func (*UnimplementedFilesystemServer) PathExists(context.Context, *PathExistsRequest) (*PathExistsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PathExists not implemented") -} -func (*UnimplementedFilesystemServer) Mkdir(context.Context, *MkdirRequest) (*MkdirResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Mkdir not implemented") -} -func (*UnimplementedFilesystemServer) Rmdir(context.Context, *RmdirRequest) (*RmdirResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Rmdir not implemented") -} -func (*UnimplementedFilesystemServer) CreateSymlink(context.Context, *CreateSymlinkRequest) (*CreateSymlinkResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method CreateSymlink not implemented") -} -func (*UnimplementedFilesystemServer) IsSymlink(context.Context, *IsSymlinkRequest) (*IsSymlinkResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method IsSymlink not implemented") -} - -func RegisterFilesystemServer(s *grpc.Server, srv FilesystemServer) { - s.RegisterService(&_Filesystem_serviceDesc, srv) -} - -func _Filesystem_PathExists_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PathExistsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FilesystemServer).PathExists(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Filesystem/PathExists", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FilesystemServer).PathExists(ctx, req.(*PathExistsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Filesystem_Mkdir_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MkdirRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FilesystemServer).Mkdir(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Filesystem/Mkdir", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FilesystemServer).Mkdir(ctx, req.(*MkdirRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Filesystem_Rmdir_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RmdirRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FilesystemServer).Rmdir(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Filesystem/Rmdir", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FilesystemServer).Rmdir(ctx, req.(*RmdirRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Filesystem_CreateSymlink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateSymlinkRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FilesystemServer).CreateSymlink(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Filesystem/CreateSymlink", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FilesystemServer).CreateSymlink(ctx, req.(*CreateSymlinkRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Filesystem_IsSymlink_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(IsSymlinkRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FilesystemServer).IsSymlink(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Filesystem/IsSymlink", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FilesystemServer).IsSymlink(ctx, req.(*IsSymlinkRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Filesystem_serviceDesc = grpc.ServiceDesc{ - ServiceName: "v1.Filesystem", - HandlerType: (*FilesystemServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "PathExists", - Handler: _Filesystem_PathExists_Handler, - }, - { - MethodName: "Mkdir", - Handler: _Filesystem_Mkdir_Handler, - }, - { - MethodName: "Rmdir", - Handler: _Filesystem_Rmdir_Handler, - }, - { - MethodName: "CreateSymlink", - Handler: _Filesystem_CreateSymlink_Handler, - }, - { - MethodName: "IsSymlink", - Handler: _Filesystem_IsSymlink_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto", -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto deleted file mode 100644 index 151a1ffd41..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1/api.proto +++ /dev/null @@ -1,136 +0,0 @@ -syntax = "proto3"; - -package v1; - -option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1"; - -service Filesystem { - // PathExists checks if the requested path exists in the host filesystem. - rpc PathExists(PathExistsRequest) returns (PathExistsResponse) {} - - // Mkdir creates a directory at the requested path in the host filesystem. - rpc Mkdir(MkdirRequest) returns (MkdirResponse) {} - - // Rmdir removes the directory at the requested path in the host filesystem. - // This may be used for unlinking a symlink created through CreateSymlink. - rpc Rmdir(RmdirRequest) returns (RmdirResponse) {} - - // CreateSymlink creates a symbolic link called target_path that points to source_path - // in the host filesystem (target_path is the name of the symbolic link created, - // source_path is the existing path). - rpc CreateSymlink(CreateSymlinkRequest) returns (CreateSymlinkResponse) {} - - // IsSymlink checks if a given path is a symlink. - rpc IsSymlink(IsSymlinkRequest) returns (IsSymlinkResponse) {} -} - -message PathExistsRequest { - // The path whose existence we want to check in the host's filesystem - string path = 1; -} - -message PathExistsResponse { - // Indicates whether the path in PathExistsRequest exists in the host's filesystem - bool exists = 1; -} - -message MkdirRequest { - // The path to create in the host's filesystem. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // Non-existent parent directories in the path will be automatically created. - // Directories will be created with Read and Write privileges of the Windows - // User account under which csi-proxy is started (typically LocalSystem). - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // Depending on the context parameter of this function, the path prefix needs - // to match the paths specified either as kubelet-csi-plugins-path - // or as kubelet-pod-path parameters of csi-proxy. - // The path parameter cannot already exist in the host's filesystem. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // Maximum path length will be capped to 260 characters. - string path = 1; -} - -message MkdirResponse { - // Intentionally empty. -} - -message RmdirRequest { - // The path to remove in the host's filesystem. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // Depending on the context parameter of this function, the path prefix needs - // to match the paths specified either as kubelet-csi-plugins-path - // or as kubelet-pod-path parameters of csi-proxy. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // Path cannot be a file of type symlink. - // Maximum path length will be capped to 260 characters. - string path = 1; - - // Force remove all contents under path (if any). - bool force = 2; -} - -message RmdirResponse { - // Intentionally empty. -} - -message CreateSymlinkRequest { - // The path of the existing directory to be linked. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // The path prefix needs needs to match the paths specified as - // kubelet-csi-plugins-path parameter of csi-proxy. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // source_path cannot already exist in the host filesystem. - // Maximum path length will be capped to 260 characters. - string source_path = 1; - - // Target path is the location of the new directory entry to be created in the host's filesystem. - // All special characters allowed by Windows in path names will be allowed - // except for restrictions noted below. For details, please check: - // https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file - // - // Restrictions: - // Only absolute path (indicated by a drive letter prefix: e.g. "C:\") is accepted. - // The path prefix needs to match the paths specified as - // kubelet-pod-path parameter of csi-proxy. - // UNC paths of the form "\\server\share\path\file" are not allowed. - // All directory separators need to be backslash character: "\". - // Characters: .. / : | ? * in the path are not allowed. - // target_path needs to exist as a directory in the host that is empty. - // target_path cannot be a symbolic link. - // Maximum path length will be capped to 260 characters. - string target_path = 2; -} - -message CreateSymlinkResponse { - // Intentionally empty. -} - -message IsSymlinkRequest { - // The path whose existence as a symlink we want to check in the host's filesystem. - string path = 1; -} - -message IsSymlinkResponse { - // Indicates whether the path in IsSymlinkRequest is a symlink. - bool is_symlink = 1; -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go deleted file mode 100644 index 2a7a9be184..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.pb.go +++ /dev/null @@ -1,1876 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.12.4 -// source: github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto - -package v1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type ListVolumesOnDiskRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Disk device number of the disk to query for volumes. - DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` - // The partition number (optional), by default it uses the first partition of the disk. - PartitionNumber uint32 `protobuf:"varint,2,opt,name=partition_number,json=partitionNumber,proto3" json:"partition_number,omitempty"` -} - -func (x *ListVolumesOnDiskRequest) Reset() { - *x = ListVolumesOnDiskRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListVolumesOnDiskRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListVolumesOnDiskRequest) ProtoMessage() {} - -func (x *ListVolumesOnDiskRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListVolumesOnDiskRequest.ProtoReflect.Descriptor instead. -func (*ListVolumesOnDiskRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{0} -} - -func (x *ListVolumesOnDiskRequest) GetDiskNumber() uint32 { - if x != nil { - return x.DiskNumber - } - return 0 -} - -func (x *ListVolumesOnDiskRequest) GetPartitionNumber() uint32 { - if x != nil { - return x.PartitionNumber - } - return 0 -} - -type ListVolumesOnDiskResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device IDs of volumes on the specified disk. - VolumeIds []string `protobuf:"bytes,1,rep,name=volume_ids,json=volumeIds,proto3" json:"volume_ids,omitempty"` -} - -func (x *ListVolumesOnDiskResponse) Reset() { - *x = ListVolumesOnDiskResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListVolumesOnDiskResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListVolumesOnDiskResponse) ProtoMessage() {} - -func (x *ListVolumesOnDiskResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ListVolumesOnDiskResponse.ProtoReflect.Descriptor instead. -func (*ListVolumesOnDiskResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{1} -} - -func (x *ListVolumesOnDiskResponse) GetVolumeIds() []string { - if x != nil { - return x.VolumeIds - } - return nil -} - -type MountVolumeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to mount. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` - // Path in the host's file system where the volume needs to be mounted. - TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` -} - -func (x *MountVolumeRequest) Reset() { - *x = MountVolumeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MountVolumeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MountVolumeRequest) ProtoMessage() {} - -func (x *MountVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MountVolumeRequest.ProtoReflect.Descriptor instead. -func (*MountVolumeRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{2} -} - -func (x *MountVolumeRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -func (x *MountVolumeRequest) GetTargetPath() string { - if x != nil { - return x.TargetPath - } - return "" -} - -type MountVolumeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *MountVolumeResponse) Reset() { - *x = MountVolumeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MountVolumeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MountVolumeResponse) ProtoMessage() {} - -func (x *MountVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MountVolumeResponse.ProtoReflect.Descriptor instead. -func (*MountVolumeResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{3} -} - -type UnmountVolumeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to dismount. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` - // Path where the volume has been mounted. - TargetPath string `protobuf:"bytes,2,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` -} - -func (x *UnmountVolumeRequest) Reset() { - *x = UnmountVolumeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UnmountVolumeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UnmountVolumeRequest) ProtoMessage() {} - -func (x *UnmountVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UnmountVolumeRequest.ProtoReflect.Descriptor instead. -func (*UnmountVolumeRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{4} -} - -func (x *UnmountVolumeRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -func (x *UnmountVolumeRequest) GetTargetPath() string { - if x != nil { - return x.TargetPath - } - return "" -} - -type UnmountVolumeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *UnmountVolumeResponse) Reset() { - *x = UnmountVolumeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UnmountVolumeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UnmountVolumeResponse) ProtoMessage() {} - -func (x *UnmountVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UnmountVolumeResponse.ProtoReflect.Descriptor instead. -func (*UnmountVolumeResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{5} -} - -type IsVolumeFormattedRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to check. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` -} - -func (x *IsVolumeFormattedRequest) Reset() { - *x = IsVolumeFormattedRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsVolumeFormattedRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsVolumeFormattedRequest) ProtoMessage() {} - -func (x *IsVolumeFormattedRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IsVolumeFormattedRequest.ProtoReflect.Descriptor instead. -func (*IsVolumeFormattedRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{6} -} - -func (x *IsVolumeFormattedRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -type IsVolumeFormattedResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Is the volume formatted with NTFS. - Formatted bool `protobuf:"varint,1,opt,name=formatted,proto3" json:"formatted,omitempty"` -} - -func (x *IsVolumeFormattedResponse) Reset() { - *x = IsVolumeFormattedResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *IsVolumeFormattedResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*IsVolumeFormattedResponse) ProtoMessage() {} - -func (x *IsVolumeFormattedResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use IsVolumeFormattedResponse.ProtoReflect.Descriptor instead. -func (*IsVolumeFormattedResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{7} -} - -func (x *IsVolumeFormattedResponse) GetFormatted() bool { - if x != nil { - return x.Formatted - } - return false -} - -type FormatVolumeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to format. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` -} - -func (x *FormatVolumeRequest) Reset() { - *x = FormatVolumeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FormatVolumeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FormatVolumeRequest) ProtoMessage() {} - -func (x *FormatVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FormatVolumeRequest.ProtoReflect.Descriptor instead. -func (*FormatVolumeRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{8} -} - -func (x *FormatVolumeRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -type FormatVolumeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *FormatVolumeResponse) Reset() { - *x = FormatVolumeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *FormatVolumeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*FormatVolumeResponse) ProtoMessage() {} - -func (x *FormatVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use FormatVolumeResponse.ProtoReflect.Descriptor instead. -func (*FormatVolumeResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{9} -} - -type ResizeVolumeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to resize. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` - // New size in bytes of the volume. - SizeBytes int64 `protobuf:"varint,2,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` -} - -func (x *ResizeVolumeRequest) Reset() { - *x = ResizeVolumeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResizeVolumeRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResizeVolumeRequest) ProtoMessage() {} - -func (x *ResizeVolumeRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResizeVolumeRequest.ProtoReflect.Descriptor instead. -func (*ResizeVolumeRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{10} -} - -func (x *ResizeVolumeRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -func (x *ResizeVolumeRequest) GetSizeBytes() int64 { - if x != nil { - return x.SizeBytes - } - return 0 -} - -type ResizeVolumeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *ResizeVolumeResponse) Reset() { - *x = ResizeVolumeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ResizeVolumeResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ResizeVolumeResponse) ProtoMessage() {} - -func (x *ResizeVolumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ResizeVolumeResponse.ProtoReflect.Descriptor instead. -func (*ResizeVolumeResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{11} -} - -type GetVolumeStatsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device Id of the volume to get the stats for. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` -} - -func (x *GetVolumeStatsRequest) Reset() { - *x = GetVolumeStatsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetVolumeStatsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetVolumeStatsRequest) ProtoMessage() {} - -func (x *GetVolumeStatsRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetVolumeStatsRequest.ProtoReflect.Descriptor instead. -func (*GetVolumeStatsRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{12} -} - -func (x *GetVolumeStatsRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -type GetVolumeStatsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Total bytes - TotalBytes int64 `protobuf:"varint,1,opt,name=total_bytes,json=totalBytes,proto3" json:"total_bytes,omitempty"` - // Used bytes - UsedBytes int64 `protobuf:"varint,2,opt,name=used_bytes,json=usedBytes,proto3" json:"used_bytes,omitempty"` -} - -func (x *GetVolumeStatsResponse) Reset() { - *x = GetVolumeStatsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetVolumeStatsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetVolumeStatsResponse) ProtoMessage() {} - -func (x *GetVolumeStatsResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetVolumeStatsResponse.ProtoReflect.Descriptor instead. -func (*GetVolumeStatsResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{13} -} - -func (x *GetVolumeStatsResponse) GetTotalBytes() int64 { - if x != nil { - return x.TotalBytes - } - return 0 -} - -func (x *GetVolumeStatsResponse) GetUsedBytes() int64 { - if x != nil { - return x.UsedBytes - } - return 0 -} - -type GetDiskNumberFromVolumeIDRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to get the disk number for. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` -} - -func (x *GetDiskNumberFromVolumeIDRequest) Reset() { - *x = GetDiskNumberFromVolumeIDRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDiskNumberFromVolumeIDRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDiskNumberFromVolumeIDRequest) ProtoMessage() {} - -func (x *GetDiskNumberFromVolumeIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDiskNumberFromVolumeIDRequest.ProtoReflect.Descriptor instead. -func (*GetDiskNumberFromVolumeIDRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{14} -} - -func (x *GetDiskNumberFromVolumeIDRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -type GetDiskNumberFromVolumeIDResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Corresponding disk number. - DiskNumber uint32 `protobuf:"varint,1,opt,name=disk_number,json=diskNumber,proto3" json:"disk_number,omitempty"` -} - -func (x *GetDiskNumberFromVolumeIDResponse) Reset() { - *x = GetDiskNumberFromVolumeIDResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDiskNumberFromVolumeIDResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDiskNumberFromVolumeIDResponse) ProtoMessage() {} - -func (x *GetDiskNumberFromVolumeIDResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDiskNumberFromVolumeIDResponse.ProtoReflect.Descriptor instead. -func (*GetDiskNumberFromVolumeIDResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{15} -} - -func (x *GetDiskNumberFromVolumeIDResponse) GetDiskNumber() uint32 { - if x != nil { - return x.DiskNumber - } - return 0 -} - -type GetVolumeIDFromTargetPathRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The target path. - TargetPath string `protobuf:"bytes,1,opt,name=target_path,json=targetPath,proto3" json:"target_path,omitempty"` -} - -func (x *GetVolumeIDFromTargetPathRequest) Reset() { - *x = GetVolumeIDFromTargetPathRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetVolumeIDFromTargetPathRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetVolumeIDFromTargetPathRequest) ProtoMessage() {} - -func (x *GetVolumeIDFromTargetPathRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetVolumeIDFromTargetPathRequest.ProtoReflect.Descriptor instead. -func (*GetVolumeIDFromTargetPathRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{16} -} - -func (x *GetVolumeIDFromTargetPathRequest) GetTargetPath() string { - if x != nil { - return x.TargetPath - } - return "" -} - -type GetVolumeIDFromTargetPathResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // The volume device ID. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` -} - -func (x *GetVolumeIDFromTargetPathResponse) Reset() { - *x = GetVolumeIDFromTargetPathResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetVolumeIDFromTargetPathResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetVolumeIDFromTargetPathResponse) ProtoMessage() {} - -func (x *GetVolumeIDFromTargetPathResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetVolumeIDFromTargetPathResponse.ProtoReflect.Descriptor instead. -func (*GetVolumeIDFromTargetPathResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{17} -} - -func (x *GetVolumeIDFromTargetPathResponse) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -type WriteVolumeCacheRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Volume device ID of the volume to flush the cache. - VolumeId string `protobuf:"bytes,1,opt,name=volume_id,json=volumeId,proto3" json:"volume_id,omitempty"` -} - -func (x *WriteVolumeCacheRequest) Reset() { - *x = WriteVolumeCacheRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WriteVolumeCacheRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WriteVolumeCacheRequest) ProtoMessage() {} - -func (x *WriteVolumeCacheRequest) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WriteVolumeCacheRequest.ProtoReflect.Descriptor instead. -func (*WriteVolumeCacheRequest) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{18} -} - -func (x *WriteVolumeCacheRequest) GetVolumeId() string { - if x != nil { - return x.VolumeId - } - return "" -} - -type WriteVolumeCacheResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *WriteVolumeCacheResponse) Reset() { - *x = WriteVolumeCacheResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WriteVolumeCacheResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WriteVolumeCacheResponse) ProtoMessage() {} - -func (x *WriteVolumeCacheResponse) ProtoReflect() protoreflect.Message { - mi := &file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WriteVolumeCacheResponse.ProtoReflect.Descriptor instead. -func (*WriteVolumeCacheResponse) Descriptor() ([]byte, []int) { - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP(), []int{19} -} - -var File_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto protoreflect.FileDescriptor - -var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc = []byte{ - 0x0a, 0x42, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x70, 0x69, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x76, 0x31, 0x22, 0x66, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x22, 0x3a, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4f, - 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x73, 0x22, 0x52, 0x0a, 0x12, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, - 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x14, 0x55, 0x6e, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x17, 0x0a, - 0x15, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x0a, 0x18, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, - 0x39, 0x0a, 0x19, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x22, 0x32, 0x0a, 0x13, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x16, - 0x0a, 0x14, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x13, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, - 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, - 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x73, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, 0x73, - 0x69, 0x7a, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x34, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x58, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x22, 0x3f, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x49, 0x64, 0x22, 0x44, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x6b, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x69, - 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x43, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x22, 0x40, 0x0a, - 0x21, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, 0x72, 0x6f, 0x6d, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, - 0x36, 0x0a, 0x17, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x76, 0x6f, - 0x6c, 0x75, 0x6d, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x76, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x57, 0x72, 0x69, 0x74, 0x65, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x06, 0x0a, 0x06, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x52, - 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x73, 0x4f, 0x6e, 0x44, - 0x69, 0x73, 0x6b, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x73, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x73, 0x4f, 0x6e, 0x44, 0x69, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x40, 0x0a, 0x0b, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, - 0x65, 0x12, 0x16, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x11, - 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, - 0x64, 0x12, 0x1c, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x43, 0x0a, 0x0c, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x12, 0x17, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x7a, - 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x7a, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x19, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, - 0x49, 0x44, 0x12, 0x24, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, - 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6d, 0x56, - 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, - 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, - 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x61, 0x74, 0x68, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x6f, 0x6c, - 0x75, 0x6d, 0x65, 0x49, 0x44, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, - 0x61, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, - 0x10, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, - 0x65, 0x12, 0x1b, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, - 0x6d, 0x65, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, - 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x56, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, - 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6b, 0x75, 0x62, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x2d, 0x63, 0x73, 0x69, 0x2f, 0x63, 0x73, 0x69, 0x2d, - 0x70, 0x72, 0x6f, 0x78, 0x79, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x6f, 0x6c, 0x75, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescOnce sync.Once - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData = file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc -) - -func file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescGZIP() []byte { - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescOnce.Do(func() { - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData) - }) - return file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDescData -} - -var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 20) -var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_goTypes = []interface{}{ - (*ListVolumesOnDiskRequest)(nil), // 0: v1.ListVolumesOnDiskRequest - (*ListVolumesOnDiskResponse)(nil), // 1: v1.ListVolumesOnDiskResponse - (*MountVolumeRequest)(nil), // 2: v1.MountVolumeRequest - (*MountVolumeResponse)(nil), // 3: v1.MountVolumeResponse - (*UnmountVolumeRequest)(nil), // 4: v1.UnmountVolumeRequest - (*UnmountVolumeResponse)(nil), // 5: v1.UnmountVolumeResponse - (*IsVolumeFormattedRequest)(nil), // 6: v1.IsVolumeFormattedRequest - (*IsVolumeFormattedResponse)(nil), // 7: v1.IsVolumeFormattedResponse - (*FormatVolumeRequest)(nil), // 8: v1.FormatVolumeRequest - (*FormatVolumeResponse)(nil), // 9: v1.FormatVolumeResponse - (*ResizeVolumeRequest)(nil), // 10: v1.ResizeVolumeRequest - (*ResizeVolumeResponse)(nil), // 11: v1.ResizeVolumeResponse - (*GetVolumeStatsRequest)(nil), // 12: v1.GetVolumeStatsRequest - (*GetVolumeStatsResponse)(nil), // 13: v1.GetVolumeStatsResponse - (*GetDiskNumberFromVolumeIDRequest)(nil), // 14: v1.GetDiskNumberFromVolumeIDRequest - (*GetDiskNumberFromVolumeIDResponse)(nil), // 15: v1.GetDiskNumberFromVolumeIDResponse - (*GetVolumeIDFromTargetPathRequest)(nil), // 16: v1.GetVolumeIDFromTargetPathRequest - (*GetVolumeIDFromTargetPathResponse)(nil), // 17: v1.GetVolumeIDFromTargetPathResponse - (*WriteVolumeCacheRequest)(nil), // 18: v1.WriteVolumeCacheRequest - (*WriteVolumeCacheResponse)(nil), // 19: v1.WriteVolumeCacheResponse -} -var file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_depIdxs = []int32{ - 0, // 0: v1.Volume.ListVolumesOnDisk:input_type -> v1.ListVolumesOnDiskRequest - 2, // 1: v1.Volume.MountVolume:input_type -> v1.MountVolumeRequest - 4, // 2: v1.Volume.UnmountVolume:input_type -> v1.UnmountVolumeRequest - 6, // 3: v1.Volume.IsVolumeFormatted:input_type -> v1.IsVolumeFormattedRequest - 8, // 4: v1.Volume.FormatVolume:input_type -> v1.FormatVolumeRequest - 10, // 5: v1.Volume.ResizeVolume:input_type -> v1.ResizeVolumeRequest - 12, // 6: v1.Volume.GetVolumeStats:input_type -> v1.GetVolumeStatsRequest - 14, // 7: v1.Volume.GetDiskNumberFromVolumeID:input_type -> v1.GetDiskNumberFromVolumeIDRequest - 16, // 8: v1.Volume.GetVolumeIDFromTargetPath:input_type -> v1.GetVolumeIDFromTargetPathRequest - 18, // 9: v1.Volume.WriteVolumeCache:input_type -> v1.WriteVolumeCacheRequest - 1, // 10: v1.Volume.ListVolumesOnDisk:output_type -> v1.ListVolumesOnDiskResponse - 3, // 11: v1.Volume.MountVolume:output_type -> v1.MountVolumeResponse - 5, // 12: v1.Volume.UnmountVolume:output_type -> v1.UnmountVolumeResponse - 7, // 13: v1.Volume.IsVolumeFormatted:output_type -> v1.IsVolumeFormattedResponse - 9, // 14: v1.Volume.FormatVolume:output_type -> v1.FormatVolumeResponse - 11, // 15: v1.Volume.ResizeVolume:output_type -> v1.ResizeVolumeResponse - 13, // 16: v1.Volume.GetVolumeStats:output_type -> v1.GetVolumeStatsResponse - 15, // 17: v1.Volume.GetDiskNumberFromVolumeID:output_type -> v1.GetDiskNumberFromVolumeIDResponse - 17, // 18: v1.Volume.GetVolumeIDFromTargetPath:output_type -> v1.GetVolumeIDFromTargetPathResponse - 19, // 19: v1.Volume.WriteVolumeCache:output_type -> v1.WriteVolumeCacheResponse - 10, // [10:20] is the sub-list for method output_type - 0, // [0:10] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_init() } -func file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_init() { - if File_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListVolumesOnDiskRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListVolumesOnDiskResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MountVolumeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MountVolumeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnmountVolumeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnmountVolumeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsVolumeFormattedRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsVolumeFormattedResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FormatVolumeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FormatVolumeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResizeVolumeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResizeVolumeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVolumeStatsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVolumeStatsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDiskNumberFromVolumeIDRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDiskNumberFromVolumeIDResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVolumeIDFromTargetPathRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVolumeIDFromTargetPathResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WriteVolumeCacheRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WriteVolumeCacheResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc, - NumEnums: 0, - NumMessages: 20, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_goTypes, - DependencyIndexes: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_depIdxs, - MessageInfos: file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_msgTypes, - }.Build() - File_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto = out.File - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_rawDesc = nil - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_goTypes = nil - file_github_com_kubernetes_csi_csi_proxy_client_api_volume_v1_api_proto_depIdxs = nil -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConnInterface - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion6 - -// VolumeClient is the client API for Volume service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type VolumeClient interface { - // ListVolumesOnDisk returns the volume IDs (in \\.\Volume{GUID} format) for all volumes from a - // given disk number and partition number (optional) - ListVolumesOnDisk(ctx context.Context, in *ListVolumesOnDiskRequest, opts ...grpc.CallOption) (*ListVolumesOnDiskResponse, error) - // MountVolume mounts the volume at the requested global staging path. - MountVolume(ctx context.Context, in *MountVolumeRequest, opts ...grpc.CallOption) (*MountVolumeResponse, error) - // UnmountVolume flushes data cache to disk and removes the global staging path. - UnmountVolume(ctx context.Context, in *UnmountVolumeRequest, opts ...grpc.CallOption) (*UnmountVolumeResponse, error) - // IsVolumeFormatted checks if a volume is formatted. - IsVolumeFormatted(ctx context.Context, in *IsVolumeFormattedRequest, opts ...grpc.CallOption) (*IsVolumeFormattedResponse, error) - // FormatVolume formats a volume with NTFS. - FormatVolume(ctx context.Context, in *FormatVolumeRequest, opts ...grpc.CallOption) (*FormatVolumeResponse, error) - // ResizeVolume performs resizing of the partition and file system for a block based volume. - ResizeVolume(ctx context.Context, in *ResizeVolumeRequest, opts ...grpc.CallOption) (*ResizeVolumeResponse, error) - // GetVolumeStats gathers total bytes and used bytes for a volume. - GetVolumeStats(ctx context.Context, in *GetVolumeStatsRequest, opts ...grpc.CallOption) (*GetVolumeStatsResponse, error) - // GetDiskNumberFromVolumeID gets the disk number of the disk where the volume is located. - GetDiskNumberFromVolumeID(ctx context.Context, in *GetDiskNumberFromVolumeIDRequest, opts ...grpc.CallOption) (*GetDiskNumberFromVolumeIDResponse, error) - // GetVolumeIDFromTargetPath gets the volume id for a given target path. - GetVolumeIDFromTargetPath(ctx context.Context, in *GetVolumeIDFromTargetPathRequest, opts ...grpc.CallOption) (*GetVolumeIDFromTargetPathResponse, error) - // WriteVolumeCache write volume cache to disk. - WriteVolumeCache(ctx context.Context, in *WriteVolumeCacheRequest, opts ...grpc.CallOption) (*WriteVolumeCacheResponse, error) -} - -type volumeClient struct { - cc grpc.ClientConnInterface -} - -func NewVolumeClient(cc grpc.ClientConnInterface) VolumeClient { - return &volumeClient{cc} -} - -func (c *volumeClient) ListVolumesOnDisk(ctx context.Context, in *ListVolumesOnDiskRequest, opts ...grpc.CallOption) (*ListVolumesOnDiskResponse, error) { - out := new(ListVolumesOnDiskResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/ListVolumesOnDisk", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) MountVolume(ctx context.Context, in *MountVolumeRequest, opts ...grpc.CallOption) (*MountVolumeResponse, error) { - out := new(MountVolumeResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/MountVolume", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) UnmountVolume(ctx context.Context, in *UnmountVolumeRequest, opts ...grpc.CallOption) (*UnmountVolumeResponse, error) { - out := new(UnmountVolumeResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/UnmountVolume", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) IsVolumeFormatted(ctx context.Context, in *IsVolumeFormattedRequest, opts ...grpc.CallOption) (*IsVolumeFormattedResponse, error) { - out := new(IsVolumeFormattedResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/IsVolumeFormatted", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) FormatVolume(ctx context.Context, in *FormatVolumeRequest, opts ...grpc.CallOption) (*FormatVolumeResponse, error) { - out := new(FormatVolumeResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/FormatVolume", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) ResizeVolume(ctx context.Context, in *ResizeVolumeRequest, opts ...grpc.CallOption) (*ResizeVolumeResponse, error) { - out := new(ResizeVolumeResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/ResizeVolume", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) GetVolumeStats(ctx context.Context, in *GetVolumeStatsRequest, opts ...grpc.CallOption) (*GetVolumeStatsResponse, error) { - out := new(GetVolumeStatsResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/GetVolumeStats", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) GetDiskNumberFromVolumeID(ctx context.Context, in *GetDiskNumberFromVolumeIDRequest, opts ...grpc.CallOption) (*GetDiskNumberFromVolumeIDResponse, error) { - out := new(GetDiskNumberFromVolumeIDResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/GetDiskNumberFromVolumeID", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) GetVolumeIDFromTargetPath(ctx context.Context, in *GetVolumeIDFromTargetPathRequest, opts ...grpc.CallOption) (*GetVolumeIDFromTargetPathResponse, error) { - out := new(GetVolumeIDFromTargetPathResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/GetVolumeIDFromTargetPath", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *volumeClient) WriteVolumeCache(ctx context.Context, in *WriteVolumeCacheRequest, opts ...grpc.CallOption) (*WriteVolumeCacheResponse, error) { - out := new(WriteVolumeCacheResponse) - err := c.cc.Invoke(ctx, "/v1.Volume/WriteVolumeCache", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// VolumeServer is the server API for Volume service. -type VolumeServer interface { - // ListVolumesOnDisk returns the volume IDs (in \\.\Volume{GUID} format) for all volumes from a - // given disk number and partition number (optional) - ListVolumesOnDisk(context.Context, *ListVolumesOnDiskRequest) (*ListVolumesOnDiskResponse, error) - // MountVolume mounts the volume at the requested global staging path. - MountVolume(context.Context, *MountVolumeRequest) (*MountVolumeResponse, error) - // UnmountVolume flushes data cache to disk and removes the global staging path. - UnmountVolume(context.Context, *UnmountVolumeRequest) (*UnmountVolumeResponse, error) - // IsVolumeFormatted checks if a volume is formatted. - IsVolumeFormatted(context.Context, *IsVolumeFormattedRequest) (*IsVolumeFormattedResponse, error) - // FormatVolume formats a volume with NTFS. - FormatVolume(context.Context, *FormatVolumeRequest) (*FormatVolumeResponse, error) - // ResizeVolume performs resizing of the partition and file system for a block based volume. - ResizeVolume(context.Context, *ResizeVolumeRequest) (*ResizeVolumeResponse, error) - // GetVolumeStats gathers total bytes and used bytes for a volume. - GetVolumeStats(context.Context, *GetVolumeStatsRequest) (*GetVolumeStatsResponse, error) - // GetDiskNumberFromVolumeID gets the disk number of the disk where the volume is located. - GetDiskNumberFromVolumeID(context.Context, *GetDiskNumberFromVolumeIDRequest) (*GetDiskNumberFromVolumeIDResponse, error) - // GetVolumeIDFromTargetPath gets the volume id for a given target path. - GetVolumeIDFromTargetPath(context.Context, *GetVolumeIDFromTargetPathRequest) (*GetVolumeIDFromTargetPathResponse, error) - // WriteVolumeCache write volume cache to disk. - WriteVolumeCache(context.Context, *WriteVolumeCacheRequest) (*WriteVolumeCacheResponse, error) -} - -// UnimplementedVolumeServer can be embedded to have forward compatible implementations. -type UnimplementedVolumeServer struct { -} - -func (*UnimplementedVolumeServer) ListVolumesOnDisk(context.Context, *ListVolumesOnDiskRequest) (*ListVolumesOnDiskResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListVolumesOnDisk not implemented") -} -func (*UnimplementedVolumeServer) MountVolume(context.Context, *MountVolumeRequest) (*MountVolumeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method MountVolume not implemented") -} -func (*UnimplementedVolumeServer) UnmountVolume(context.Context, *UnmountVolumeRequest) (*UnmountVolumeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UnmountVolume not implemented") -} -func (*UnimplementedVolumeServer) IsVolumeFormatted(context.Context, *IsVolumeFormattedRequest) (*IsVolumeFormattedResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method IsVolumeFormatted not implemented") -} -func (*UnimplementedVolumeServer) FormatVolume(context.Context, *FormatVolumeRequest) (*FormatVolumeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method FormatVolume not implemented") -} -func (*UnimplementedVolumeServer) ResizeVolume(context.Context, *ResizeVolumeRequest) (*ResizeVolumeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ResizeVolume not implemented") -} -func (*UnimplementedVolumeServer) GetVolumeStats(context.Context, *GetVolumeStatsRequest) (*GetVolumeStatsResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetVolumeStats not implemented") -} -func (*UnimplementedVolumeServer) GetDiskNumberFromVolumeID(context.Context, *GetDiskNumberFromVolumeIDRequest) (*GetDiskNumberFromVolumeIDResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDiskNumberFromVolumeID not implemented") -} -func (*UnimplementedVolumeServer) GetVolumeIDFromTargetPath(context.Context, *GetVolumeIDFromTargetPathRequest) (*GetVolumeIDFromTargetPathResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetVolumeIDFromTargetPath not implemented") -} -func (*UnimplementedVolumeServer) WriteVolumeCache(context.Context, *WriteVolumeCacheRequest) (*WriteVolumeCacheResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method WriteVolumeCache not implemented") -} - -func RegisterVolumeServer(s *grpc.Server, srv VolumeServer) { - s.RegisterService(&_Volume_serviceDesc, srv) -} - -func _Volume_ListVolumesOnDisk_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListVolumesOnDiskRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).ListVolumesOnDisk(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/ListVolumesOnDisk", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).ListVolumesOnDisk(ctx, req.(*ListVolumesOnDiskRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_MountVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MountVolumeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).MountVolume(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/MountVolume", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).MountVolume(ctx, req.(*MountVolumeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_UnmountVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UnmountVolumeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).UnmountVolume(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/UnmountVolume", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).UnmountVolume(ctx, req.(*UnmountVolumeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_IsVolumeFormatted_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(IsVolumeFormattedRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).IsVolumeFormatted(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/IsVolumeFormatted", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).IsVolumeFormatted(ctx, req.(*IsVolumeFormattedRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_FormatVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FormatVolumeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).FormatVolume(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/FormatVolume", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).FormatVolume(ctx, req.(*FormatVolumeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_ResizeVolume_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ResizeVolumeRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).ResizeVolume(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/ResizeVolume", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).ResizeVolume(ctx, req.(*ResizeVolumeRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_GetVolumeStats_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetVolumeStatsRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).GetVolumeStats(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/GetVolumeStats", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).GetVolumeStats(ctx, req.(*GetVolumeStatsRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_GetDiskNumberFromVolumeID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetDiskNumberFromVolumeIDRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).GetDiskNumberFromVolumeID(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/GetDiskNumberFromVolumeID", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).GetDiskNumberFromVolumeID(ctx, req.(*GetDiskNumberFromVolumeIDRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_GetVolumeIDFromTargetPath_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetVolumeIDFromTargetPathRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).GetVolumeIDFromTargetPath(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/GetVolumeIDFromTargetPath", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).GetVolumeIDFromTargetPath(ctx, req.(*GetVolumeIDFromTargetPathRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Volume_WriteVolumeCache_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(WriteVolumeCacheRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(VolumeServer).WriteVolumeCache(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/v1.Volume/WriteVolumeCache", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(VolumeServer).WriteVolumeCache(ctx, req.(*WriteVolumeCacheRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _Volume_serviceDesc = grpc.ServiceDesc{ - ServiceName: "v1.Volume", - HandlerType: (*VolumeServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListVolumesOnDisk", - Handler: _Volume_ListVolumesOnDisk_Handler, - }, - { - MethodName: "MountVolume", - Handler: _Volume_MountVolume_Handler, - }, - { - MethodName: "UnmountVolume", - Handler: _Volume_UnmountVolume_Handler, - }, - { - MethodName: "IsVolumeFormatted", - Handler: _Volume_IsVolumeFormatted_Handler, - }, - { - MethodName: "FormatVolume", - Handler: _Volume_FormatVolume_Handler, - }, - { - MethodName: "ResizeVolume", - Handler: _Volume_ResizeVolume_Handler, - }, - { - MethodName: "GetVolumeStats", - Handler: _Volume_GetVolumeStats_Handler, - }, - { - MethodName: "GetDiskNumberFromVolumeID", - Handler: _Volume_GetDiskNumberFromVolumeID_Handler, - }, - { - MethodName: "GetVolumeIDFromTargetPath", - Handler: _Volume_GetVolumeIDFromTargetPath_Handler, - }, - { - MethodName: "WriteVolumeCache", - Handler: _Volume_WriteVolumeCache_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto", -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto deleted file mode 100644 index a065381041..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/api/volume/v1/api.proto +++ /dev/null @@ -1,143 +0,0 @@ -syntax = "proto3"; - -package v1; - -option go_package = "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1"; - -service Volume { - // ListVolumesOnDisk returns the volume IDs (in \\.\Volume{GUID} format) for all volumes from a - // given disk number and partition number (optional) - rpc ListVolumesOnDisk(ListVolumesOnDiskRequest) returns (ListVolumesOnDiskResponse) {} - - // MountVolume mounts the volume at the requested global staging path. - rpc MountVolume(MountVolumeRequest) returns (MountVolumeResponse) {} - - // UnmountVolume flushes data cache to disk and removes the global staging path. - rpc UnmountVolume(UnmountVolumeRequest) returns (UnmountVolumeResponse) {} - - // IsVolumeFormatted checks if a volume is formatted. - rpc IsVolumeFormatted(IsVolumeFormattedRequest) returns (IsVolumeFormattedResponse) {} - - // FormatVolume formats a volume with NTFS. - rpc FormatVolume(FormatVolumeRequest) returns (FormatVolumeResponse) {} - - // ResizeVolume performs resizing of the partition and file system for a block based volume. - rpc ResizeVolume(ResizeVolumeRequest) returns (ResizeVolumeResponse) {} - - // GetVolumeStats gathers total bytes and used bytes for a volume. - rpc GetVolumeStats(GetVolumeStatsRequest) returns (GetVolumeStatsResponse) {} - - // GetDiskNumberFromVolumeID gets the disk number of the disk where the volume is located. - rpc GetDiskNumberFromVolumeID(GetDiskNumberFromVolumeIDRequest) returns (GetDiskNumberFromVolumeIDResponse ) {} - - // GetVolumeIDFromTargetPath gets the volume id for a given target path. - rpc GetVolumeIDFromTargetPath(GetVolumeIDFromTargetPathRequest) returns (GetVolumeIDFromTargetPathResponse) {} - - // WriteVolumeCache write volume cache to disk. - rpc WriteVolumeCache(WriteVolumeCacheRequest) returns (WriteVolumeCacheResponse) {} -} - -message ListVolumesOnDiskRequest { - // Disk device number of the disk to query for volumes. - uint32 disk_number = 1; - // The partition number (optional), by default it uses the first partition of the disk. - uint32 partition_number = 2; -} - -message ListVolumesOnDiskResponse { - // Volume device IDs of volumes on the specified disk. - repeated string volume_ids = 1; -} - -message MountVolumeRequest { - // Volume device ID of the volume to mount. - string volume_id = 1; - // Path in the host's file system where the volume needs to be mounted. - string target_path = 2; -} - -message MountVolumeResponse { - // Intentionally empty. -} - -message UnmountVolumeRequest { - // Volume device ID of the volume to dismount. - string volume_id = 1; - // Path where the volume has been mounted. - string target_path = 2; -} - -message UnmountVolumeResponse { - // Intentionally empty. -} - -message IsVolumeFormattedRequest { - // Volume device ID of the volume to check. - string volume_id = 1; -} - -message IsVolumeFormattedResponse { - // Is the volume formatted with NTFS. - bool formatted = 1; -} - -message FormatVolumeRequest { - // Volume device ID of the volume to format. - string volume_id = 1; -} - -message FormatVolumeResponse { - // Intentionally empty. -} - -message ResizeVolumeRequest { - // Volume device ID of the volume to resize. - string volume_id = 1; - // New size in bytes of the volume. - int64 size_bytes = 2; -} - -message ResizeVolumeResponse { - // Intentionally empty. -} - -message GetVolumeStatsRequest{ - // Volume device Id of the volume to get the stats for. - string volume_id = 1; -} - -message GetVolumeStatsResponse{ - // Total bytes - int64 total_bytes = 1; - // Used bytes - int64 used_bytes = 2; -} - -message GetDiskNumberFromVolumeIDRequest { - // Volume device ID of the volume to get the disk number for. - string volume_id = 1; -} - -message GetDiskNumberFromVolumeIDResponse { - // Corresponding disk number. - uint32 disk_number = 1; -} - -message GetVolumeIDFromTargetPathRequest { - // The target path. - string target_path = 1; -} - -message GetVolumeIDFromTargetPathResponse { - // The volume device ID. - string volume_id = 1; -} - -message WriteVolumeCacheRequest { - // Volume device ID of the volume to flush the cache. - string volume_id = 1; -} - -message WriteVolumeCacheResponse { - // Intentionally empty. -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go deleted file mode 100644 index e4f0cd0426..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/apiversion/version.go +++ /dev/null @@ -1,143 +0,0 @@ -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -package apiversion - -import ( - "fmt" - "regexp" - "strconv" - - "github.com/pkg/errors" -) - -// API version names follow k8s style version names: -// valid API version names examples: "v1", "v1alpha2", "v2beta3", etc... -var nameRegex = regexp.MustCompile("^v([1-9][0-9]*)(?:(alpha|beta)([1-9][0-9]*))?$") - -type qualifier uint - -const ( - alpha qualifier = iota - beta - stable -) - -type Version struct { - // major version number, eg 1 for "v1", 2 for "v2beta3" - major uint - - // qualifier is "alpha" or "beta" - qualifier qualifier - - // the qualifier's version, eg 2 for "v1alpha2" or 3 for "v2beta3" - qualifierVersion uint - - rawName string -} - -// NewVersion builds a Version from a version string, eg "v1alpha2" -func NewVersion(name string) (version Version, err error) { - matches := nameRegex.FindStringSubmatch(name) - if len(matches) < 2 || matches[1] == "" { - err = fmt.Errorf("invalid version name: %q", name) - return - } - - major, err := toUint(matches[1], name) - if err != nil { - return - } - - qualifier := stable - var qualifierVersion uint - if len(matches) >= 4 && matches[2] != "" { - switch matches[2] { - case "alpha": - qualifier = alpha - case "beta": - qualifier = beta - } - - qualifierVersion, err = toUint(matches[3], name) - if err != nil { - return - } - } - - version.major = major - version.qualifier = qualifier - version.qualifierVersion = qualifierVersion - version.rawName = name - - return -} - -// NewVersionOrPanic is the same as NewVersion, but panics if -// passed an invalid version name. -func NewVersionOrPanic(name string) Version { - version, err := NewVersion(name) - if err != nil { - panic(err) - } - return version -} - -// IsValidVersion returns true iff the input is a valid version name. -func IsValidVersion(name string) bool { - return nameRegex.MatchString(name) -} - -func toUint(s, name string) (uint, error) { - i, err := strconv.ParseUint(s, 10, 0) - if err != nil { - return 0, errors.Wrapf(err, "unable to convert %q from version name %q to int", s, name) - } - return uint(i), nil -} - -type Comparison int - -const ( - Lesser Comparison = -1 - Equal Comparison = 0 - Greater Comparison = 1 -) - -// Compare return Lesser if v < other (ie other is more recent), Equal if v == other, -// and Greater if v > other (ie v is more recent) -func (v Version) Compare(other Version) Comparison { - if cmp := compareUints(v.major, other.major); cmp != Equal { - return cmp - } - if cmp := compareUints(uint(v.qualifier), uint(other.qualifier)); cmp != Equal { - return cmp - } - return compareUints(v.qualifierVersion, other.qualifierVersion) -} - -func compareUints(a, b uint) Comparison { - if a < b { - return Lesser - } - if a > b { - return Greater - } - return Equal -} - -func (v Version) String() string { - return v.rawName -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go deleted file mode 100644 index 9c932a77f1..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1/client_generated.go +++ /dev/null @@ -1,94 +0,0 @@ -// Code generated by csi-proxy-api-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "net" - - "github.com/Microsoft/go-winio" - "github.com/kubernetes-csi/csi-proxy/client" - "github.com/kubernetes-csi/csi-proxy/client/api/disk/v1" - "github.com/kubernetes-csi/csi-proxy/client/apiversion" - "google.golang.org/grpc" -) - -// GroupName is the group name of this API. -const GroupName = "disk" - -// Version is the api version. -var Version = apiversion.NewVersionOrPanic("v1") - -type Client struct { - client v1.DiskClient - connection *grpc.ClientConn -} - -// NewClient returns a client to make calls to the disk API group version v1. -// It's the caller's responsibility to Close the client when done. -func NewClient() (*Client, error) { - pipePath := client.PipePath(GroupName, Version) - return NewClientWithPipePath(pipePath) -} - -// NewClientWithPipePath returns a client to make calls to the named pipe located at "pipePath". -// It's the caller's responsibility to Close the client when done. -func NewClientWithPipePath(pipePath string) (*Client, error) { - - // verify that the pipe exists - _, err := winio.DialPipe(pipePath, nil) - if err != nil { - return nil, err - } - - connection, err := grpc.Dial(pipePath, - grpc.WithContextDialer(func(context context.Context, s string) (net.Conn, error) { - return winio.DialPipeContext(context, s) - }), - grpc.WithInsecure()) - if err != nil { - return nil, err - } - - client := v1.NewDiskClient(connection) - return &Client{ - client: client, - connection: connection, - }, nil -} - -// Close closes the client. It must be called before the client gets GC-ed. -func (w *Client) Close() error { - return w.connection.Close() -} - -// ensures we implement all the required methods -var _ v1.DiskClient = &Client{} - -func (w *Client) GetDiskState(context context.Context, request *v1.GetDiskStateRequest, opts ...grpc.CallOption) (*v1.GetDiskStateResponse, error) { - return w.client.GetDiskState(context, request, opts...) -} - -func (w *Client) GetDiskStats(context context.Context, request *v1.GetDiskStatsRequest, opts ...grpc.CallOption) (*v1.GetDiskStatsResponse, error) { - return w.client.GetDiskStats(context, request, opts...) -} - -func (w *Client) ListDiskIDs(context context.Context, request *v1.ListDiskIDsRequest, opts ...grpc.CallOption) (*v1.ListDiskIDsResponse, error) { - return w.client.ListDiskIDs(context, request, opts...) -} - -func (w *Client) ListDiskLocations(context context.Context, request *v1.ListDiskLocationsRequest, opts ...grpc.CallOption) (*v1.ListDiskLocationsResponse, error) { - return w.client.ListDiskLocations(context, request, opts...) -} - -func (w *Client) PartitionDisk(context context.Context, request *v1.PartitionDiskRequest, opts ...grpc.CallOption) (*v1.PartitionDiskResponse, error) { - return w.client.PartitionDisk(context, request, opts...) -} - -func (w *Client) Rescan(context context.Context, request *v1.RescanRequest, opts ...grpc.CallOption) (*v1.RescanResponse, error) { - return w.client.Rescan(context, request, opts...) -} - -func (w *Client) SetDiskState(context context.Context, request *v1.SetDiskStateRequest, opts ...grpc.CallOption) (*v1.SetDiskStateResponse, error) { - return w.client.SetDiskState(context, request, opts...) -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go deleted file mode 100644 index cf136c9d71..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1/client_generated.go +++ /dev/null @@ -1,86 +0,0 @@ -// Code generated by csi-proxy-api-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "net" - - "github.com/Microsoft/go-winio" - "github.com/kubernetes-csi/csi-proxy/client" - "github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1" - "github.com/kubernetes-csi/csi-proxy/client/apiversion" - "google.golang.org/grpc" -) - -// GroupName is the group name of this API. -const GroupName = "filesystem" - -// Version is the api version. -var Version = apiversion.NewVersionOrPanic("v1") - -type Client struct { - client v1.FilesystemClient - connection *grpc.ClientConn -} - -// NewClient returns a client to make calls to the filesystem API group version v1. -// It's the caller's responsibility to Close the client when done. -func NewClient() (*Client, error) { - pipePath := client.PipePath(GroupName, Version) - return NewClientWithPipePath(pipePath) -} - -// NewClientWithPipePath returns a client to make calls to the named pipe located at "pipePath". -// It's the caller's responsibility to Close the client when done. -func NewClientWithPipePath(pipePath string) (*Client, error) { - - // verify that the pipe exists - _, err := winio.DialPipe(pipePath, nil) - if err != nil { - return nil, err - } - - connection, err := grpc.Dial(pipePath, - grpc.WithContextDialer(func(context context.Context, s string) (net.Conn, error) { - return winio.DialPipeContext(context, s) - }), - grpc.WithInsecure()) - if err != nil { - return nil, err - } - - client := v1.NewFilesystemClient(connection) - return &Client{ - client: client, - connection: connection, - }, nil -} - -// Close closes the client. It must be called before the client gets GC-ed. -func (w *Client) Close() error { - return w.connection.Close() -} - -// ensures we implement all the required methods -var _ v1.FilesystemClient = &Client{} - -func (w *Client) CreateSymlink(context context.Context, request *v1.CreateSymlinkRequest, opts ...grpc.CallOption) (*v1.CreateSymlinkResponse, error) { - return w.client.CreateSymlink(context, request, opts...) -} - -func (w *Client) IsSymlink(context context.Context, request *v1.IsSymlinkRequest, opts ...grpc.CallOption) (*v1.IsSymlinkResponse, error) { - return w.client.IsSymlink(context, request, opts...) -} - -func (w *Client) Mkdir(context context.Context, request *v1.MkdirRequest, opts ...grpc.CallOption) (*v1.MkdirResponse, error) { - return w.client.Mkdir(context, request, opts...) -} - -func (w *Client) PathExists(context context.Context, request *v1.PathExistsRequest, opts ...grpc.CallOption) (*v1.PathExistsResponse, error) { - return w.client.PathExists(context, request, opts...) -} - -func (w *Client) Rmdir(context context.Context, request *v1.RmdirRequest, opts ...grpc.CallOption) (*v1.RmdirResponse, error) { - return w.client.Rmdir(context, request, opts...) -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go deleted file mode 100644 index 8c9a3cd773..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1/client_generated.go +++ /dev/null @@ -1,106 +0,0 @@ -// Code generated by csi-proxy-api-gen. DO NOT EDIT. - -package v1 - -import ( - "context" - "net" - - "github.com/Microsoft/go-winio" - "github.com/kubernetes-csi/csi-proxy/client" - "github.com/kubernetes-csi/csi-proxy/client/api/volume/v1" - "github.com/kubernetes-csi/csi-proxy/client/apiversion" - "google.golang.org/grpc" -) - -// GroupName is the group name of this API. -const GroupName = "volume" - -// Version is the api version. -var Version = apiversion.NewVersionOrPanic("v1") - -type Client struct { - client v1.VolumeClient - connection *grpc.ClientConn -} - -// NewClient returns a client to make calls to the volume API group version v1. -// It's the caller's responsibility to Close the client when done. -func NewClient() (*Client, error) { - pipePath := client.PipePath(GroupName, Version) - return NewClientWithPipePath(pipePath) -} - -// NewClientWithPipePath returns a client to make calls to the named pipe located at "pipePath". -// It's the caller's responsibility to Close the client when done. -func NewClientWithPipePath(pipePath string) (*Client, error) { - - // verify that the pipe exists - _, err := winio.DialPipe(pipePath, nil) - if err != nil { - return nil, err - } - - connection, err := grpc.Dial(pipePath, - grpc.WithContextDialer(func(context context.Context, s string) (net.Conn, error) { - return winio.DialPipeContext(context, s) - }), - grpc.WithInsecure()) - if err != nil { - return nil, err - } - - client := v1.NewVolumeClient(connection) - return &Client{ - client: client, - connection: connection, - }, nil -} - -// Close closes the client. It must be called before the client gets GC-ed. -func (w *Client) Close() error { - return w.connection.Close() -} - -// ensures we implement all the required methods -var _ v1.VolumeClient = &Client{} - -func (w *Client) FormatVolume(context context.Context, request *v1.FormatVolumeRequest, opts ...grpc.CallOption) (*v1.FormatVolumeResponse, error) { - return w.client.FormatVolume(context, request, opts...) -} - -func (w *Client) GetDiskNumberFromVolumeID(context context.Context, request *v1.GetDiskNumberFromVolumeIDRequest, opts ...grpc.CallOption) (*v1.GetDiskNumberFromVolumeIDResponse, error) { - return w.client.GetDiskNumberFromVolumeID(context, request, opts...) -} - -func (w *Client) GetVolumeIDFromTargetPath(context context.Context, request *v1.GetVolumeIDFromTargetPathRequest, opts ...grpc.CallOption) (*v1.GetVolumeIDFromTargetPathResponse, error) { - return w.client.GetVolumeIDFromTargetPath(context, request, opts...) -} - -func (w *Client) GetVolumeStats(context context.Context, request *v1.GetVolumeStatsRequest, opts ...grpc.CallOption) (*v1.GetVolumeStatsResponse, error) { - return w.client.GetVolumeStats(context, request, opts...) -} - -func (w *Client) IsVolumeFormatted(context context.Context, request *v1.IsVolumeFormattedRequest, opts ...grpc.CallOption) (*v1.IsVolumeFormattedResponse, error) { - return w.client.IsVolumeFormatted(context, request, opts...) -} - -func (w *Client) ListVolumesOnDisk(context context.Context, request *v1.ListVolumesOnDiskRequest, opts ...grpc.CallOption) (*v1.ListVolumesOnDiskResponse, error) { - return w.client.ListVolumesOnDisk(context, request, opts...) -} - -func (w *Client) MountVolume(context context.Context, request *v1.MountVolumeRequest, opts ...grpc.CallOption) (*v1.MountVolumeResponse, error) { - return w.client.MountVolume(context, request, opts...) -} - -func (w *Client) ResizeVolume(context context.Context, request *v1.ResizeVolumeRequest, opts ...grpc.CallOption) (*v1.ResizeVolumeResponse, error) { - return w.client.ResizeVolume(context, request, opts...) -} - -func (w *Client) UnmountVolume(context context.Context, request *v1.UnmountVolumeRequest, opts ...grpc.CallOption) (*v1.UnmountVolumeResponse, error) { - return w.client.UnmountVolume(context, request, opts...) -} - -func (w *Client) WriteVolumeCache(context context.Context, request *v1.WriteVolumeCacheRequest, opts ...grpc.CallOption) (*v1.WriteVolumeCacheResponse, error) { - return w.client.WriteVolumeCache(context, request, opts...) -} diff --git a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go b/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go deleted file mode 100644 index 5b4afc2819..0000000000 --- a/ecs-agent/vendor/github.com/kubernetes-csi/csi-proxy/client/utils.go +++ /dev/null @@ -1,35 +0,0 @@ -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package client - -import ( - "github.com/kubernetes-csi/csi-proxy/client/apiversion" -) - -const ( - // pipePrefix is the prefix for Windows named pipes' names - pipePrefix = `\\.\\pipe\\` - - // CsiProxyNamedPipePrefix is the prefix for the named pipes the proxy creates. - // The suffix will be the API group and version, - // e.g. "\\.\\pipe\\csi-proxy-iscsi-v1", "\\.\\pipe\\csi-proxy-filesystem-v2alpha1", etc. - csiProxyNamedPipePrefix = "csi-proxy-" -) - -func PipePath(apiGroupName string, apiVersion apiversion.Version) string { - return pipePrefix + csiProxyNamedPipePrefix + apiGroupName + "-" + apiVersion.String() -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE b/ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE deleted file mode 100644 index d645695673..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go deleted file mode 100644 index b80e05efd0..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/doc.go +++ /dev/null @@ -1,44 +0,0 @@ -// Package mountinfo provides a set of functions to retrieve information about OS mounts. -// -// Currently it supports Linux. For historical reasons, there is also some support for FreeBSD and OpenBSD, -// and a shallow implementation for Windows, but in general this is Linux-only package, so -// the rest of the document only applies to Linux, unless explicitly specified otherwise. -// -// In Linux, information about mounts seen by the current process is available from -// /proc/self/mountinfo. Note that due to mount namespaces, different processes can -// see different mounts. A per-process mountinfo table is available from /proc//mountinfo, -// where is a numerical process identifier. -// -// In general, /proc is not a very efficient interface, and mountinfo is not an exception. -// For example, there is no way to get information about a specific mount point (i.e. it -// is all-or-nothing). This package tries to hide the /proc ineffectiveness by using -// parse filters while reading mountinfo. A filter can skip some entries, or stop -// processing the rest of the file once the needed information is found. -// -// For mountinfo filters that accept path as an argument, the path must be absolute, -// having all symlinks resolved, and being cleaned (i.e. no extra slashes or dots). -// One way to achieve all of the above is to employ filepath.Abs followed by -// filepath.EvalSymlinks (the latter calls filepath.Clean on the result so -// there is no need to explicitly call filepath.Clean). -// -// NOTE that in many cases there is no need to consult mountinfo at all. Here are some -// of the cases where mountinfo should not be parsed: -// -// 1. Before performing a mount. Usually, this is not needed, but if required (say to -// prevent over-mounts), to check whether a directory is mounted, call os.Lstat -// on it and its parent directory, and compare their st.Sys().(*syscall.Stat_t).Dev -// fields -- if they differ, then the directory is the mount point. NOTE this does -// not work for bind mounts. Optionally, the filesystem type can also be checked -// by calling unix.Statfs and checking the Type field (i.e. filesystem type). -// -// 2. After performing a mount. If there is no error returned, the mount succeeded; -// checking the mount table for a new mount is redundant and expensive. -// -// 3. Before performing an unmount. It is more efficient to do an unmount and ignore -// a specific error (EINVAL) which tells the directory is not mounted. -// -// 4. After performing an unmount. If there is no error returned, the unmount succeeded. -// -// 5. To find the mount point root of a specific directory. You can perform os.Stat() -// on the directory and traverse up until the Dev field of a parent directory differs. -package mountinfo diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go deleted file mode 100644 index e78e726196..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_linux.go +++ /dev/null @@ -1,101 +0,0 @@ -package mountinfo - -import ( - "os" - "path/filepath" - - "golang.org/x/sys/unix" -) - -// MountedFast is a method of detecting a mount point without reading -// mountinfo from procfs. A caller can only trust the result if no error -// and sure == true are returned. Otherwise, other methods (e.g. parsing -// /proc/mounts) have to be used. If unsure, use Mounted instead (which -// uses MountedFast, but falls back to parsing mountinfo if needed). -// -// If a non-existent path is specified, an appropriate error is returned. -// In case the caller is not interested in this particular error, it should -// be handled separately using e.g. errors.Is(err, fs.ErrNotExist). -// -// This function is only available on Linux. When available (since kernel -// v5.6), openat2(2) syscall is used to reliably detect all mounts. Otherwise, -// the implementation falls back to using stat(2), which can reliably detect -// normal (but not bind) mounts. -func MountedFast(path string) (mounted, sure bool, err error) { - // Root is always mounted. - if path == string(os.PathSeparator) { - return true, true, nil - } - - path, err = normalizePath(path) - if err != nil { - return false, false, err - } - mounted, sure, err = mountedFast(path) - return -} - -// mountedByOpenat2 is a method of detecting a mount that works for all kinds -// of mounts (incl. bind mounts), but requires a recent (v5.6+) linux kernel. -func mountedByOpenat2(path string) (bool, error) { - dir, last := filepath.Split(path) - - dirfd, err := unix.Openat2(unix.AT_FDCWD, dir, &unix.OpenHow{ - Flags: unix.O_PATH | unix.O_CLOEXEC, - }) - if err != nil { - return false, &os.PathError{Op: "openat2", Path: dir, Err: err} - } - fd, err := unix.Openat2(dirfd, last, &unix.OpenHow{ - Flags: unix.O_PATH | unix.O_CLOEXEC | unix.O_NOFOLLOW, - Resolve: unix.RESOLVE_NO_XDEV, - }) - _ = unix.Close(dirfd) - switch err { //nolint:errorlint // unix errors are bare - case nil: // definitely not a mount - _ = unix.Close(fd) - return false, nil - case unix.EXDEV: // definitely a mount - return true, nil - } - // not sure - return false, &os.PathError{Op: "openat2", Path: path, Err: err} -} - -// mountedFast is similar to MountedFast, except it expects a normalized path. -func mountedFast(path string) (mounted, sure bool, err error) { - // Root is always mounted. - if path == string(os.PathSeparator) { - return true, true, nil - } - - // Try a fast path, using openat2() with RESOLVE_NO_XDEV. - mounted, err = mountedByOpenat2(path) - if err == nil { - return mounted, true, nil - } - - // Another fast path: compare st.st_dev fields. - mounted, err = mountedByStat(path) - // This does not work for bind mounts, so false negative - // is possible, therefore only trust if return is true. - if mounted && err == nil { - return true, true, nil - } - - return -} - -func mounted(path string) (bool, error) { - path, err := normalizePath(path) - if err != nil { - return false, err - } - mounted, sure, err := mountedFast(path) - if sure && err == nil { - return mounted, nil - } - - // Fallback to parsing mountinfo. - return mountedByMountinfo(path) -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go deleted file mode 100644 index c7b7678f9a..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mounted_unix.go +++ /dev/null @@ -1,53 +0,0 @@ -//go:build linux || freebsd || openbsd || darwin -// +build linux freebsd openbsd darwin - -package mountinfo - -import ( - "os" - "path/filepath" - - "golang.org/x/sys/unix" -) - -func mountedByStat(path string) (bool, error) { - var st unix.Stat_t - - if err := unix.Lstat(path, &st); err != nil { - return false, &os.PathError{Op: "stat", Path: path, Err: err} - } - dev := st.Dev - parent := filepath.Dir(path) - if err := unix.Lstat(parent, &st); err != nil { - return false, &os.PathError{Op: "stat", Path: parent, Err: err} - } - if dev != st.Dev { - // Device differs from that of parent, - // so definitely a mount point. - return true, nil - } - // NB: this does not detect bind mounts on Linux. - return false, nil -} - -func normalizePath(path string) (realPath string, err error) { - if realPath, err = filepath.Abs(path); err != nil { - return "", err - } - if realPath, err = filepath.EvalSymlinks(realPath); err != nil { - return "", err - } - if _, err := os.Stat(realPath); err != nil { - return "", err - } - return realPath, nil -} - -func mountedByMountinfo(path string) (bool, error) { - entries, err := GetMounts(SingleEntryFilter(path)) - if err != nil { - return false, err - } - - return len(entries) > 0, nil -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go deleted file mode 100644 index 574aeb8767..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo.go +++ /dev/null @@ -1,67 +0,0 @@ -package mountinfo - -import ( - "os" -) - -// GetMounts retrieves a list of mounts for the current running process, -// with an optional filter applied (use nil for no filter). -func GetMounts(f FilterFunc) ([]*Info, error) { - return parseMountTable(f) -} - -// Mounted determines if a specified path is a mount point. In case of any -// error, false (and an error) is returned. -// -// If a non-existent path is specified, an appropriate error is returned. -// In case the caller is not interested in this particular error, it should -// be handled separately using e.g. errors.Is(err, fs.ErrNotExist). -func Mounted(path string) (bool, error) { - // root is always mounted - if path == string(os.PathSeparator) { - return true, nil - } - return mounted(path) -} - -// Info reveals information about a particular mounted filesystem. This -// struct is populated from the content in the /proc//mountinfo file. -type Info struct { - // ID is a unique identifier of the mount (may be reused after umount). - ID int - - // Parent is the ID of the parent mount (or of self for the root - // of this mount namespace's mount tree). - Parent int - - // Major and Minor are the major and the minor components of the Dev - // field of unix.Stat_t structure returned by unix.*Stat calls for - // files on this filesystem. - Major, Minor int - - // Root is the pathname of the directory in the filesystem which forms - // the root of this mount. - Root string - - // Mountpoint is the pathname of the mount point relative to the - // process's root directory. - Mountpoint string - - // Options is a comma-separated list of mount options. - Options string - - // Optional are zero or more fields of the form "tag[:value]", - // separated by a space. Currently, the possible optional fields are - // "shared", "master", "propagate_from", and "unbindable". For more - // information, see mount_namespaces(7) Linux man page. - Optional string - - // FSType is the filesystem type in the form "type[.subtype]". - FSType string - - // Source is filesystem-specific information, or "none". - Source string - - // VFSOptions is a comma-separated list of superblock options. - VFSOptions string -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go deleted file mode 100644 index 8420f58c7a..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_bsd.go +++ /dev/null @@ -1,56 +0,0 @@ -//go:build freebsd || openbsd || darwin -// +build freebsd openbsd darwin - -package mountinfo - -import "golang.org/x/sys/unix" - -// parseMountTable returns information about mounted filesystems -func parseMountTable(filter FilterFunc) ([]*Info, error) { - count, err := unix.Getfsstat(nil, unix.MNT_WAIT) - if err != nil { - return nil, err - } - - entries := make([]unix.Statfs_t, count) - _, err = unix.Getfsstat(entries, unix.MNT_WAIT) - if err != nil { - return nil, err - } - - var out []*Info - for _, entry := range entries { - var skip, stop bool - mountinfo := getMountinfo(&entry) - - if filter != nil { - // filter out entries we're not interested in - skip, stop = filter(mountinfo) - if skip { - continue - } - } - - out = append(out, mountinfo) - if stop { - break - } - } - return out, nil -} - -func mounted(path string) (bool, error) { - path, err := normalizePath(path) - if err != nil { - return false, err - } - // Fast path: compare st.st_dev fields. - // This should always work for FreeBSD and OpenBSD. - mounted, err := mountedByStat(path) - if err == nil { - return mounted, nil - } - - // Fallback to parsing mountinfo - return mountedByMountinfo(path) -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go deleted file mode 100644 index 16079c3c54..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_filters.go +++ /dev/null @@ -1,63 +0,0 @@ -package mountinfo - -import "strings" - -// FilterFunc is a type defining a callback function for GetMount(), -// used to filter out mountinfo entries we're not interested in, -// and/or stop further processing if we found what we wanted. -// -// It takes a pointer to the Info struct (fully populated with all available -// fields on the GOOS platform), and returns two booleans: -// -// skip: true if the entry should be skipped; -// -// stop: true if parsing should be stopped after the entry. -type FilterFunc func(*Info) (skip, stop bool) - -// PrefixFilter discards all entries whose mount points do not start with, or -// are equal to the path specified in prefix. The prefix path must be absolute, -// have all symlinks resolved, and cleaned (i.e. no extra slashes or dots). -// -// PrefixFilter treats prefix as a path, not a partial prefix, which means that -// given "/foo", "/foo/bar" and "/foobar" entries, PrefixFilter("/foo") returns -// "/foo" and "/foo/bar", and discards "/foobar". -func PrefixFilter(prefix string) FilterFunc { - return func(m *Info) (bool, bool) { - skip := !strings.HasPrefix(m.Mountpoint+"/", prefix+"/") - return skip, false - } -} - -// SingleEntryFilter looks for a specific entry. -func SingleEntryFilter(mp string) FilterFunc { - return func(m *Info) (bool, bool) { - if m.Mountpoint == mp { - return false, true // don't skip, stop now - } - return true, false // skip, keep going - } -} - -// ParentsFilter returns all entries whose mount points -// can be parents of a path specified, discarding others. -// -// For example, given /var/lib/docker/something, entries -// like /var/lib/docker, /var and / are returned. -func ParentsFilter(path string) FilterFunc { - return func(m *Info) (bool, bool) { - skip := !strings.HasPrefix(path, m.Mountpoint) - return skip, false - } -} - -// FSTypeFilter returns all entries that match provided fstype(s). -func FSTypeFilter(fstype ...string) FilterFunc { - return func(m *Info) (bool, bool) { - for _, t := range fstype { - if m.FSType == t { - return false, false // don't skip, keep going - } - } - return true, false // skip, keep going - } -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go deleted file mode 100644 index ecaaa7a9c1..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_freebsdlike.go +++ /dev/null @@ -1,14 +0,0 @@ -//go:build freebsd || darwin -// +build freebsd darwin - -package mountinfo - -import "golang.org/x/sys/unix" - -func getMountinfo(entry *unix.Statfs_t) *Info { - return &Info{ - Mountpoint: unix.ByteSliceToString(entry.Mntonname[:]), - FSType: unix.ByteSliceToString(entry.Fstypename[:]), - Source: unix.ByteSliceToString(entry.Mntfromname[:]), - } -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go deleted file mode 100644 index 59332b07bf..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_linux.go +++ /dev/null @@ -1,214 +0,0 @@ -package mountinfo - -import ( - "bufio" - "fmt" - "io" - "os" - "strconv" - "strings" -) - -// GetMountsFromReader retrieves a list of mounts from the -// reader provided, with an optional filter applied (use nil -// for no filter). This can be useful in tests or benchmarks -// that provide fake mountinfo data, or when a source other -// than /proc/self/mountinfo needs to be read from. -// -// This function is Linux-specific. -func GetMountsFromReader(r io.Reader, filter FilterFunc) ([]*Info, error) { - s := bufio.NewScanner(r) - out := []*Info{} - for s.Scan() { - var err error - - /* - See http://man7.org/linux/man-pages/man5/proc.5.html - - 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue - (1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11) - - (1) mount ID: unique identifier of the mount (may be reused after umount) - (2) parent ID: ID of parent (or of self for the top of the mount tree) - (3) major:minor: value of st_dev for files on filesystem - (4) root: root of the mount within the filesystem - (5) mount point: mount point relative to the process's root - (6) mount options: per mount options - (7) optional fields: zero or more fields of the form "tag[:value]" - (8) separator: marks the end of the optional fields - (9) filesystem type: name of filesystem of the form "type[.subtype]" - (10) mount source: filesystem specific information or "none" - (11) super options: per super block options - - In other words, we have: - * 6 mandatory fields (1)..(6) - * 0 or more optional fields (7) - * a separator field (8) - * 3 mandatory fields (9)..(11) - */ - - text := s.Text() - fields := strings.Split(text, " ") - numFields := len(fields) - if numFields < 10 { - // should be at least 10 fields - return nil, fmt.Errorf("parsing '%s' failed: not enough fields (%d)", text, numFields) - } - - // separator field - sepIdx := numFields - 4 - // In Linux <= 3.9 mounting a cifs with spaces in a share - // name (like "//srv/My Docs") _may_ end up having a space - // in the last field of mountinfo (like "unc=//serv/My Docs"). - // Since kernel 3.10-rc1, cifs option "unc=" is ignored, - // so spaces should not appear. - // - // Check for a separator, and work around the spaces bug - for fields[sepIdx] != "-" { - sepIdx-- - if sepIdx == 5 { - return nil, fmt.Errorf("parsing '%s' failed: missing - separator", text) - } - } - - p := &Info{} - - p.Mountpoint, err = unescape(fields[4]) - if err != nil { - return nil, fmt.Errorf("parsing '%s' failed: mount point: %w", fields[4], err) - } - p.FSType, err = unescape(fields[sepIdx+1]) - if err != nil { - return nil, fmt.Errorf("parsing '%s' failed: fstype: %w", fields[sepIdx+1], err) - } - p.Source, err = unescape(fields[sepIdx+2]) - if err != nil { - return nil, fmt.Errorf("parsing '%s' failed: source: %w", fields[sepIdx+2], err) - } - p.VFSOptions = fields[sepIdx+3] - - // ignore any numbers parsing errors, as there should not be any - p.ID, _ = strconv.Atoi(fields[0]) - p.Parent, _ = strconv.Atoi(fields[1]) - mm := strings.SplitN(fields[2], ":", 3) - if len(mm) != 2 { - return nil, fmt.Errorf("parsing '%s' failed: unexpected major:minor pair %s", text, mm) - } - p.Major, _ = strconv.Atoi(mm[0]) - p.Minor, _ = strconv.Atoi(mm[1]) - - p.Root, err = unescape(fields[3]) - if err != nil { - return nil, fmt.Errorf("parsing '%s' failed: root: %w", fields[3], err) - } - - p.Options = fields[5] - - // zero or more optional fields - p.Optional = strings.Join(fields[6:sepIdx], " ") - - // Run the filter after parsing all fields. - var skip, stop bool - if filter != nil { - skip, stop = filter(p) - if skip { - continue - } - } - - out = append(out, p) - if stop { - break - } - } - if err := s.Err(); err != nil { - return nil, err - } - return out, nil -} - -func parseMountTable(filter FilterFunc) ([]*Info, error) { - f, err := os.Open("/proc/self/mountinfo") - if err != nil { - return nil, err - } - defer f.Close() - - return GetMountsFromReader(f, filter) -} - -// PidMountInfo retrieves the list of mounts from a given process' mount -// namespace. Unless there is a need to get mounts from a mount namespace -// different from that of a calling process, use GetMounts. -// -// This function is Linux-specific. -// -// Deprecated: this will be removed before v1; use GetMountsFromReader with -// opened /proc//mountinfo as an argument instead. -func PidMountInfo(pid int) ([]*Info, error) { - f, err := os.Open(fmt.Sprintf("/proc/%d/mountinfo", pid)) - if err != nil { - return nil, err - } - defer f.Close() - - return GetMountsFromReader(f, nil) -} - -// A few specific characters in mountinfo path entries (root and mountpoint) -// are escaped using a backslash followed by a character's ascii code in octal. -// -// space -- as \040 -// tab (aka \t) -- as \011 -// newline (aka \n) -- as \012 -// backslash (aka \\) -- as \134 -// -// This function converts path from mountinfo back, i.e. it unescapes the above sequences. -func unescape(path string) (string, error) { - // try to avoid copying - if strings.IndexByte(path, '\\') == -1 { - return path, nil - } - - // The following code is UTF-8 transparent as it only looks for some - // specific characters (backslash and 0..7) with values < utf8.RuneSelf, - // and everything else is passed through as is. - buf := make([]byte, len(path)) - bufLen := 0 - for i := 0; i < len(path); i++ { - if path[i] != '\\' { - buf[bufLen] = path[i] - bufLen++ - continue - } - s := path[i:] - if len(s) < 4 { - // too short - return "", fmt.Errorf("bad escape sequence %q: too short", s) - } - c := s[1] - switch c { - case '0', '1', '2', '3', '4', '5', '6', '7': - v := c - '0' - for j := 2; j < 4; j++ { // one digit already; two more - if s[j] < '0' || s[j] > '7' { - return "", fmt.Errorf("bad escape sequence %q: not a digit", s[:3]) - } - x := s[j] - '0' - v = (v << 3) | x - } - if v > 255 { - return "", fmt.Errorf("bad escape sequence %q: out of range" + s[:3]) - } - buf[bufLen] = v - bufLen++ - i += 3 - continue - default: - return "", fmt.Errorf("bad escape sequence %q: not a digit" + s[:3]) - - } - } - - return string(buf[:bufLen]), nil -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go deleted file mode 100644 index f682c2d3b5..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_openbsd.go +++ /dev/null @@ -1,11 +0,0 @@ -package mountinfo - -import "golang.org/x/sys/unix" - -func getMountinfo(entry *unix.Statfs_t) *Info { - return &Info{ - Mountpoint: unix.ByteSliceToString(entry.F_mntonname[:]), - FSType: unix.ByteSliceToString(entry.F_fstypename[:]), - Source: unix.ByteSliceToString(entry.F_mntfromname[:]), - } -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go deleted file mode 100644 index c2e64bc81c..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_unsupported.go +++ /dev/null @@ -1,19 +0,0 @@ -//go:build !windows && !linux && !freebsd && !openbsd && !darwin -// +build !windows,!linux,!freebsd,!openbsd,!darwin - -package mountinfo - -import ( - "fmt" - "runtime" -) - -var errNotImplemented = fmt.Errorf("not implemented on %s/%s", runtime.GOOS, runtime.GOARCH) - -func parseMountTable(_ FilterFunc) ([]*Info, error) { - return nil, errNotImplemented -} - -func mounted(path string) (bool, error) { - return false, errNotImplemented -} diff --git a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go b/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go deleted file mode 100644 index 13fad165e5..0000000000 --- a/ecs-agent/vendor/github.com/moby/sys/mountinfo/mountinfo_windows.go +++ /dev/null @@ -1,10 +0,0 @@ -package mountinfo - -func parseMountTable(_ FilterFunc) ([]*Info, error) { - // Do NOT return an error! - return nil, nil -} - -func mounted(_ string) (bool, error) { - return false, nil -} diff --git a/ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go b/ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go deleted file mode 100644 index 998d1a51bf..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/cmd/stringer/stringer.go +++ /dev/null @@ -1,657 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Stringer is a tool to automate the creation of methods that satisfy the fmt.Stringer -// interface. Given the name of a (signed or unsigned) integer type T that has constants -// defined, stringer will create a new self-contained Go source file implementing -// -// func (t T) String() string -// -// The file is created in the same package and directory as the package that defines T. -// It has helpful defaults designed for use with go generate. -// -// Stringer works best with constants that are consecutive values such as created using iota, -// but creates good code regardless. In the future it might also provide custom support for -// constant sets that are bit patterns. -// -// For example, given this snippet, -// -// package painkiller -// -// type Pill int -// -// const ( -// Placebo Pill = iota -// Aspirin -// Ibuprofen -// Paracetamol -// Acetaminophen = Paracetamol -// ) -// -// running this command -// -// stringer -type=Pill -// -// in the same directory will create the file pill_string.go, in package painkiller, -// containing a definition of -// -// func (Pill) String() string -// -// That method will translate the value of a Pill constant to the string representation -// of the respective constant name, so that the call fmt.Print(painkiller.Aspirin) will -// print the string "Aspirin". -// -// Typically this process would be run using go generate, like this: -// -// //go:generate stringer -type=Pill -// -// If multiple constants have the same value, the lexically first matching name will -// be used (in the example, Acetaminophen will print as "Paracetamol"). -// -// With no arguments, it processes the package in the current directory. -// Otherwise, the arguments must name a single directory holding a Go package -// or a set of Go source files that represent a single Go package. -// -// The -type flag accepts a comma-separated list of types so a single run can -// generate methods for multiple types. The default output file is t_string.go, -// where t is the lower-cased name of the first type listed. It can be overridden -// with the -output flag. -// -// The -linecomment flag tells stringer to generate the text of any line comment, trimmed -// of leading spaces, instead of the constant name. For instance, if the constants above had a -// Pill prefix, one could write -// -// PillAspirin // Aspirin -// -// to suppress it in the output. -package main // import "golang.org/x/tools/cmd/stringer" - -import ( - "bytes" - "flag" - "fmt" - "go/ast" - "go/constant" - "go/format" - "go/token" - "go/types" - "log" - "os" - "path/filepath" - "sort" - "strings" - - "golang.org/x/tools/go/packages" -) - -var ( - typeNames = flag.String("type", "", "comma-separated list of type names; must be set") - output = flag.String("output", "", "output file name; default srcdir/_string.go") - trimprefix = flag.String("trimprefix", "", "trim the `prefix` from the generated constant names") - linecomment = flag.Bool("linecomment", false, "use line comment text as printed text when present") - buildTags = flag.String("tags", "", "comma-separated list of build tags to apply") -) - -// Usage is a replacement usage function for the flags package. -func Usage() { - fmt.Fprintf(os.Stderr, "Usage of stringer:\n") - fmt.Fprintf(os.Stderr, "\tstringer [flags] -type T [directory]\n") - fmt.Fprintf(os.Stderr, "\tstringer [flags] -type T files... # Must be a single package\n") - fmt.Fprintf(os.Stderr, "For more information, see:\n") - fmt.Fprintf(os.Stderr, "\thttps://pkg.go.dev/golang.org/x/tools/cmd/stringer\n") - fmt.Fprintf(os.Stderr, "Flags:\n") - flag.PrintDefaults() -} - -func main() { - log.SetFlags(0) - log.SetPrefix("stringer: ") - flag.Usage = Usage - flag.Parse() - if len(*typeNames) == 0 { - flag.Usage() - os.Exit(2) - } - types := strings.Split(*typeNames, ",") - var tags []string - if len(*buildTags) > 0 { - tags = strings.Split(*buildTags, ",") - } - - // We accept either one directory or a list of files. Which do we have? - args := flag.Args() - if len(args) == 0 { - // Default: process whole package in current directory. - args = []string{"."} - } - - // Parse the package once. - var dir string - g := Generator{ - trimPrefix: *trimprefix, - lineComment: *linecomment, - } - // TODO(suzmue): accept other patterns for packages (directories, list of files, import paths, etc). - if len(args) == 1 && isDirectory(args[0]) { - dir = args[0] - } else { - if len(tags) != 0 { - log.Fatal("-tags option applies only to directories, not when files are specified") - } - dir = filepath.Dir(args[0]) - } - - g.parsePackage(args, tags) - - // Print the header and package clause. - g.Printf("// Code generated by \"stringer %s\"; DO NOT EDIT.\n", strings.Join(os.Args[1:], " ")) - g.Printf("\n") - g.Printf("package %s", g.pkg.name) - g.Printf("\n") - g.Printf("import \"strconv\"\n") // Used by all methods. - - // Run generate for each type. - for _, typeName := range types { - g.generate(typeName) - } - - // Format the output. - src := g.format() - - // Write to file. - outputName := *output - if outputName == "" { - baseName := fmt.Sprintf("%s_string.go", types[0]) - outputName = filepath.Join(dir, strings.ToLower(baseName)) - } - err := os.WriteFile(outputName, src, 0644) - if err != nil { - log.Fatalf("writing output: %s", err) - } -} - -// isDirectory reports whether the named file is a directory. -func isDirectory(name string) bool { - info, err := os.Stat(name) - if err != nil { - log.Fatal(err) - } - return info.IsDir() -} - -// Generator holds the state of the analysis. Primarily used to buffer -// the output for format.Source. -type Generator struct { - buf bytes.Buffer // Accumulated output. - pkg *Package // Package we are scanning. - - trimPrefix string - lineComment bool -} - -func (g *Generator) Printf(format string, args ...interface{}) { - fmt.Fprintf(&g.buf, format, args...) -} - -// File holds a single parsed file and associated data. -type File struct { - pkg *Package // Package to which this file belongs. - file *ast.File // Parsed AST. - // These fields are reset for each type being generated. - typeName string // Name of the constant type. - values []Value // Accumulator for constant values of that type. - - trimPrefix string - lineComment bool -} - -type Package struct { - name string - defs map[*ast.Ident]types.Object - files []*File -} - -// parsePackage analyzes the single package constructed from the patterns and tags. -// parsePackage exits if there is an error. -func (g *Generator) parsePackage(patterns []string, tags []string) { - cfg := &packages.Config{ - Mode: packages.NeedName | packages.NeedTypes | packages.NeedTypesInfo | packages.NeedSyntax, - // TODO: Need to think about constants in test files. Maybe write type_string_test.go - // in a separate pass? For later. - Tests: false, - BuildFlags: []string{fmt.Sprintf("-tags=%s", strings.Join(tags, " "))}, - } - pkgs, err := packages.Load(cfg, patterns...) - if err != nil { - log.Fatal(err) - } - if len(pkgs) != 1 { - log.Fatalf("error: %d packages found", len(pkgs)) - } - g.addPackage(pkgs[0]) -} - -// addPackage adds a type checked Package and its syntax files to the generator. -func (g *Generator) addPackage(pkg *packages.Package) { - g.pkg = &Package{ - name: pkg.Name, - defs: pkg.TypesInfo.Defs, - files: make([]*File, len(pkg.Syntax)), - } - - for i, file := range pkg.Syntax { - g.pkg.files[i] = &File{ - file: file, - pkg: g.pkg, - trimPrefix: g.trimPrefix, - lineComment: g.lineComment, - } - } -} - -// generate produces the String method for the named type. -func (g *Generator) generate(typeName string) { - values := make([]Value, 0, 100) - for _, file := range g.pkg.files { - // Set the state for this run of the walker. - file.typeName = typeName - file.values = nil - if file.file != nil { - ast.Inspect(file.file, file.genDecl) - values = append(values, file.values...) - } - } - - if len(values) == 0 { - log.Fatalf("no values defined for type %s", typeName) - } - // Generate code that will fail if the constants change value. - g.Printf("func _() {\n") - g.Printf("\t// An \"invalid array index\" compiler error signifies that the constant values have changed.\n") - g.Printf("\t// Re-run the stringer command to generate them again.\n") - g.Printf("\tvar x [1]struct{}\n") - for _, v := range values { - g.Printf("\t_ = x[%s - %s]\n", v.originalName, v.str) - } - g.Printf("}\n") - runs := splitIntoRuns(values) - // The decision of which pattern to use depends on the number of - // runs in the numbers. If there's only one, it's easy. For more than - // one, there's a tradeoff between complexity and size of the data - // and code vs. the simplicity of a map. A map takes more space, - // but so does the code. The decision here (crossover at 10) is - // arbitrary, but considers that for large numbers of runs the cost - // of the linear scan in the switch might become important, and - // rather than use yet another algorithm such as binary search, - // we punt and use a map. In any case, the likelihood of a map - // being necessary for any realistic example other than bitmasks - // is very low. And bitmasks probably deserve their own analysis, - // to be done some other day. - switch { - case len(runs) == 1: - g.buildOneRun(runs, typeName) - case len(runs) <= 10: - g.buildMultipleRuns(runs, typeName) - default: - g.buildMap(runs, typeName) - } -} - -// splitIntoRuns breaks the values into runs of contiguous sequences. -// For example, given 1,2,3,5,6,7 it returns {1,2,3},{5,6,7}. -// The input slice is known to be non-empty. -func splitIntoRuns(values []Value) [][]Value { - // We use stable sort so the lexically first name is chosen for equal elements. - sort.Stable(byValue(values)) - // Remove duplicates. Stable sort has put the one we want to print first, - // so use that one. The String method won't care about which named constant - // was the argument, so the first name for the given value is the only one to keep. - // We need to do this because identical values would cause the switch or map - // to fail to compile. - j := 1 - for i := 1; i < len(values); i++ { - if values[i].value != values[i-1].value { - values[j] = values[i] - j++ - } - } - values = values[:j] - runs := make([][]Value, 0, 10) - for len(values) > 0 { - // One contiguous sequence per outer loop. - i := 1 - for i < len(values) && values[i].value == values[i-1].value+1 { - i++ - } - runs = append(runs, values[:i]) - values = values[i:] - } - return runs -} - -// format returns the gofmt-ed contents of the Generator's buffer. -func (g *Generator) format() []byte { - src, err := format.Source(g.buf.Bytes()) - if err != nil { - // Should never happen, but can arise when developing this code. - // The user can compile the output to see the error. - log.Printf("warning: internal error: invalid Go generated: %s", err) - log.Printf("warning: compile the package to analyze the error") - return g.buf.Bytes() - } - return src -} - -// Value represents a declared constant. -type Value struct { - originalName string // The name of the constant. - name string // The name with trimmed prefix. - // The value is stored as a bit pattern alone. The boolean tells us - // whether to interpret it as an int64 or a uint64; the only place - // this matters is when sorting. - // Much of the time the str field is all we need; it is printed - // by Value.String. - value uint64 // Will be converted to int64 when needed. - signed bool // Whether the constant is a signed type. - str string // The string representation given by the "go/constant" package. -} - -func (v *Value) String() string { - return v.str -} - -// byValue lets us sort the constants into increasing order. -// We take care in the Less method to sort in signed or unsigned order, -// as appropriate. -type byValue []Value - -func (b byValue) Len() int { return len(b) } -func (b byValue) Swap(i, j int) { b[i], b[j] = b[j], b[i] } -func (b byValue) Less(i, j int) bool { - if b[i].signed { - return int64(b[i].value) < int64(b[j].value) - } - return b[i].value < b[j].value -} - -// genDecl processes one declaration clause. -func (f *File) genDecl(node ast.Node) bool { - decl, ok := node.(*ast.GenDecl) - if !ok || decl.Tok != token.CONST { - // We only care about const declarations. - return true - } - // The name of the type of the constants we are declaring. - // Can change if this is a multi-element declaration. - typ := "" - // Loop over the elements of the declaration. Each element is a ValueSpec: - // a list of names possibly followed by a type, possibly followed by values. - // If the type and value are both missing, we carry down the type (and value, - // but the "go/types" package takes care of that). - for _, spec := range decl.Specs { - vspec := spec.(*ast.ValueSpec) // Guaranteed to succeed as this is CONST. - if vspec.Type == nil && len(vspec.Values) > 0 { - // "X = 1". With no type but a value. If the constant is untyped, - // skip this vspec and reset the remembered type. - typ = "" - - // If this is a simple type conversion, remember the type. - // We don't mind if this is actually a call; a qualified call won't - // be matched (that will be SelectorExpr, not Ident), and only unusual - // situations will result in a function call that appears to be - // a type conversion. - ce, ok := vspec.Values[0].(*ast.CallExpr) - if !ok { - continue - } - id, ok := ce.Fun.(*ast.Ident) - if !ok { - continue - } - typ = id.Name - } - if vspec.Type != nil { - // "X T". We have a type. Remember it. - ident, ok := vspec.Type.(*ast.Ident) - if !ok { - continue - } - typ = ident.Name - } - if typ != f.typeName { - // This is not the type we're looking for. - continue - } - // We now have a list of names (from one line of source code) all being - // declared with the desired type. - // Grab their names and actual values and store them in f.values. - for _, name := range vspec.Names { - if name.Name == "_" { - continue - } - // This dance lets the type checker find the values for us. It's a - // bit tricky: look up the object declared by the name, find its - // types.Const, and extract its value. - obj, ok := f.pkg.defs[name] - if !ok { - log.Fatalf("no value for constant %s", name) - } - info := obj.Type().Underlying().(*types.Basic).Info() - if info&types.IsInteger == 0 { - log.Fatalf("can't handle non-integer constant type %s", typ) - } - value := obj.(*types.Const).Val() // Guaranteed to succeed as this is CONST. - if value.Kind() != constant.Int { - log.Fatalf("can't happen: constant is not an integer %s", name) - } - i64, isInt := constant.Int64Val(value) - u64, isUint := constant.Uint64Val(value) - if !isInt && !isUint { - log.Fatalf("internal error: value of %s is not an integer: %s", name, value.String()) - } - if !isInt { - u64 = uint64(i64) - } - v := Value{ - originalName: name.Name, - value: u64, - signed: info&types.IsUnsigned == 0, - str: value.String(), - } - if c := vspec.Comment; f.lineComment && c != nil && len(c.List) == 1 { - v.name = strings.TrimSpace(c.Text()) - } else { - v.name = strings.TrimPrefix(v.originalName, f.trimPrefix) - } - f.values = append(f.values, v) - } - } - return false -} - -// Helpers - -// usize returns the number of bits of the smallest unsigned integer -// type that will hold n. Used to create the smallest possible slice of -// integers to use as indexes into the concatenated strings. -func usize(n int) int { - switch { - case n < 1<<8: - return 8 - case n < 1<<16: - return 16 - default: - // 2^32 is enough constants for anyone. - return 32 - } -} - -// declareIndexAndNameVars declares the index slices and concatenated names -// strings representing the runs of values. -func (g *Generator) declareIndexAndNameVars(runs [][]Value, typeName string) { - var indexes, names []string - for i, run := range runs { - index, name := g.createIndexAndNameDecl(run, typeName, fmt.Sprintf("_%d", i)) - if len(run) != 1 { - indexes = append(indexes, index) - } - names = append(names, name) - } - g.Printf("const (\n") - for _, name := range names { - g.Printf("\t%s\n", name) - } - g.Printf(")\n\n") - - if len(indexes) > 0 { - g.Printf("var (") - for _, index := range indexes { - g.Printf("\t%s\n", index) - } - g.Printf(")\n\n") - } -} - -// declareIndexAndNameVar is the single-run version of declareIndexAndNameVars -func (g *Generator) declareIndexAndNameVar(run []Value, typeName string) { - index, name := g.createIndexAndNameDecl(run, typeName, "") - g.Printf("const %s\n", name) - g.Printf("var %s\n", index) -} - -// createIndexAndNameDecl returns the pair of declarations for the run. The caller will add "const" and "var". -func (g *Generator) createIndexAndNameDecl(run []Value, typeName string, suffix string) (string, string) { - b := new(bytes.Buffer) - indexes := make([]int, len(run)) - for i := range run { - b.WriteString(run[i].name) - indexes[i] = b.Len() - } - nameConst := fmt.Sprintf("_%s_name%s = %q", typeName, suffix, b.String()) - nameLen := b.Len() - b.Reset() - fmt.Fprintf(b, "_%s_index%s = [...]uint%d{0, ", typeName, suffix, usize(nameLen)) - for i, v := range indexes { - if i > 0 { - fmt.Fprintf(b, ", ") - } - fmt.Fprintf(b, "%d", v) - } - fmt.Fprintf(b, "}") - return b.String(), nameConst -} - -// declareNameVars declares the concatenated names string representing all the values in the runs. -func (g *Generator) declareNameVars(runs [][]Value, typeName string, suffix string) { - g.Printf("const _%s_name%s = \"", typeName, suffix) - for _, run := range runs { - for i := range run { - g.Printf("%s", run[i].name) - } - } - g.Printf("\"\n") -} - -// buildOneRun generates the variables and String method for a single run of contiguous values. -func (g *Generator) buildOneRun(runs [][]Value, typeName string) { - values := runs[0] - g.Printf("\n") - g.declareIndexAndNameVar(values, typeName) - // The generated code is simple enough to write as a Printf format. - lessThanZero := "" - if values[0].signed { - lessThanZero = "i < 0 || " - } - if values[0].value == 0 { // Signed or unsigned, 0 is still 0. - g.Printf(stringOneRun, typeName, usize(len(values)), lessThanZero) - } else { - g.Printf(stringOneRunWithOffset, typeName, values[0].String(), usize(len(values)), lessThanZero) - } -} - -// Arguments to format are: -// -// [1]: type name -// [2]: size of index element (8 for uint8 etc.) -// [3]: less than zero check (for signed types) -const stringOneRun = `func (i %[1]s) String() string { - if %[3]si >= %[1]s(len(_%[1]s_index)-1) { - return "%[1]s(" + strconv.FormatInt(int64(i), 10) + ")" - } - return _%[1]s_name[_%[1]s_index[i]:_%[1]s_index[i+1]] -} -` - -// Arguments to format are: -// [1]: type name -// [2]: lowest defined value for type, as a string -// [3]: size of index element (8 for uint8 etc.) -// [4]: less than zero check (for signed types) -/* - */ -const stringOneRunWithOffset = `func (i %[1]s) String() string { - i -= %[2]s - if %[4]si >= %[1]s(len(_%[1]s_index)-1) { - return "%[1]s(" + strconv.FormatInt(int64(i + %[2]s), 10) + ")" - } - return _%[1]s_name[_%[1]s_index[i] : _%[1]s_index[i+1]] -} -` - -// buildMultipleRuns generates the variables and String method for multiple runs of contiguous values. -// For this pattern, a single Printf format won't do. -func (g *Generator) buildMultipleRuns(runs [][]Value, typeName string) { - g.Printf("\n") - g.declareIndexAndNameVars(runs, typeName) - g.Printf("func (i %s) String() string {\n", typeName) - g.Printf("\tswitch {\n") - for i, values := range runs { - if len(values) == 1 { - g.Printf("\tcase i == %s:\n", &values[0]) - g.Printf("\t\treturn _%s_name_%d\n", typeName, i) - continue - } - if values[0].value == 0 && !values[0].signed { - // For an unsigned lower bound of 0, "0 <= i" would be redundant. - g.Printf("\tcase i <= %s:\n", &values[len(values)-1]) - } else { - g.Printf("\tcase %s <= i && i <= %s:\n", &values[0], &values[len(values)-1]) - } - if values[0].value != 0 { - g.Printf("\t\ti -= %s\n", &values[0]) - } - g.Printf("\t\treturn _%s_name_%d[_%s_index_%d[i]:_%s_index_%d[i+1]]\n", - typeName, i, typeName, i, typeName, i) - } - g.Printf("\tdefault:\n") - g.Printf("\t\treturn \"%s(\" + strconv.FormatInt(int64(i), 10) + \")\"\n", typeName) - g.Printf("\t}\n") - g.Printf("}\n") -} - -// buildMap handles the case where the space is so sparse a map is a reasonable fallback. -// It's a rare situation but has simple code. -func (g *Generator) buildMap(runs [][]Value, typeName string) { - g.Printf("\n") - g.declareNameVars(runs, typeName, "") - g.Printf("\nvar _%s_map = map[%s]string{\n", typeName, typeName) - n := 0 - for _, values := range runs { - for _, value := range values { - g.Printf("\t%s: _%s_name[%d:%d],\n", &value, typeName, n, n+len(value.name)) - n += len(value.name) - } - } - g.Printf("}\n\n") - g.Printf(stringMap, typeName) -} - -// Argument to format is the type name. -const stringMap = `func (i %[1]s) String() string { - if str, ok := _%[1]s_map[i]; ok { - return str - } - return "%[1]s(" + strconv.FormatInt(int64(i), 10) + ")" -} -` diff --git a/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go deleted file mode 100644 index 165ede0f8f..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package gcexportdata provides functions for locating, reading, and -// writing export data files containing type information produced by the -// gc compiler. This package supports go1.7 export data format and all -// later versions. -// -// Although it might seem convenient for this package to live alongside -// go/types in the standard library, this would cause version skew -// problems for developer tools that use it, since they must be able to -// consume the outputs of the gc compiler both before and after a Go -// update such as from Go 1.7 to Go 1.8. Because this package lives in -// golang.org/x/tools, sites can update their version of this repo some -// time before the Go 1.8 release and rebuild and redeploy their -// developer tools, which will then be able to consume both Go 1.7 and -// Go 1.8 export data files, so they will work before and after the -// Go update. (See discussion at https://golang.org/issue/15651.) -package gcexportdata // import "golang.org/x/tools/go/gcexportdata" - -import ( - "bufio" - "bytes" - "encoding/json" - "fmt" - "go/token" - "go/types" - "io" - "os/exec" - - "golang.org/x/tools/internal/gcimporter" -) - -// Find returns the name of an object (.o) or archive (.a) file -// containing type information for the specified import path, -// using the go command. -// If no file was found, an empty filename is returned. -// -// A relative srcDir is interpreted relative to the current working directory. -// -// Find also returns the package's resolved (canonical) import path, -// reflecting the effects of srcDir and vendoring on importPath. -// -// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, -// which is more efficient. -func Find(importPath, srcDir string) (filename, path string) { - cmd := exec.Command("go", "list", "-json", "-export", "--", importPath) - cmd.Dir = srcDir - out, err := cmd.CombinedOutput() - if err != nil { - return "", "" - } - var data struct { - ImportPath string - Export string - } - json.Unmarshal(out, &data) - return data.Export, data.ImportPath -} - -// NewReader returns a reader for the export data section of an object -// (.o) or archive (.a) file read from r. The new reader may provide -// additional trailing data beyond the end of the export data. -func NewReader(r io.Reader) (io.Reader, error) { - buf := bufio.NewReader(r) - _, size, err := gcimporter.FindExportData(buf) - if err != nil { - return nil, err - } - - if size >= 0 { - // We were given an archive and found the __.PKGDEF in it. - // This tells us the size of the export data, and we don't - // need to return the entire file. - return &io.LimitedReader{ - R: buf, - N: size, - }, nil - } else { - // We were given an object file. As such, we don't know how large - // the export data is and must return the entire file. - return buf, nil - } -} - -// readAll works the same way as io.ReadAll, but avoids allocations and copies -// by preallocating a byte slice of the necessary size if the size is known up -// front. This is always possible when the input is an archive. In that case, -// NewReader will return the known size using an io.LimitedReader. -func readAll(r io.Reader) ([]byte, error) { - if lr, ok := r.(*io.LimitedReader); ok { - data := make([]byte, lr.N) - _, err := io.ReadFull(lr, data) - return data, err - } - return io.ReadAll(r) -} - -// Read reads export data from in, decodes it, and returns type -// information for the package. -// -// The package path (effectively its linker symbol prefix) is -// specified by path, since unlike the package name, this information -// may not be recorded in the export data. -// -// File position information is added to fset. -// -// Read may inspect and add to the imports map to ensure that references -// within the export data to other packages are consistent. The caller -// must ensure that imports[path] does not exist, or exists but is -// incomplete (see types.Package.Complete), and Read inserts the -// resulting package into this map entry. -// -// On return, the state of the reader is undefined. -func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, path string) (*types.Package, error) { - data, err := readAll(in) - if err != nil { - return nil, fmt.Errorf("reading export data for %q: %v", path, err) - } - - if bytes.HasPrefix(data, []byte("!")) { - return nil, fmt.Errorf("can't read export data for %q directly from an archive file (call gcexportdata.NewReader first to extract export data)", path) - } - - // The indexed export format starts with an 'i'; the older - // binary export format starts with a 'c', 'd', or 'v' - // (from "version"). Select appropriate importer. - if len(data) > 0 { - switch data[0] { - case 'i': - _, pkg, err := gcimporter.IImportData(fset, imports, data[1:], path) - return pkg, err - - case 'v', 'c', 'd': - _, pkg, err := gcimporter.BImportData(fset, imports, data, path) - return pkg, err - - case 'u': - _, pkg, err := gcimporter.UImportData(fset, imports, data[1:], path) - return pkg, err - - default: - l := len(data) - if l > 10 { - l = 10 - } - return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), path) - } - } - return nil, fmt.Errorf("empty export data for %s", path) -} - -// Write writes encoded type information for the specified package to out. -// The FileSet provides file position information for named objects. -func Write(out io.Writer, fset *token.FileSet, pkg *types.Package) error { - if _, err := io.WriteString(out, "i"); err != nil { - return err - } - return gcimporter.IExportData(out, fset, pkg) -} - -// ReadBundle reads an export bundle from in, decodes it, and returns type -// information for the packages. -// File position information is added to fset. -// -// ReadBundle may inspect and add to the imports map to ensure that references -// within the export bundle to other packages are consistent. -// -// On return, the state of the reader is undefined. -// -// Experimental: This API is experimental and may change in the future. -func ReadBundle(in io.Reader, fset *token.FileSet, imports map[string]*types.Package) ([]*types.Package, error) { - data, err := readAll(in) - if err != nil { - return nil, fmt.Errorf("reading export bundle: %v", err) - } - return gcimporter.IImportBundle(fset, imports, data) -} - -// WriteBundle writes encoded type information for the specified packages to out. -// The FileSet provides file position information for named objects. -// -// Experimental: This API is experimental and may change in the future. -func WriteBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { - return gcimporter.IExportBundle(out, fset, pkgs) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go deleted file mode 100644 index 37a7247e26..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go +++ /dev/null @@ -1,75 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package gcexportdata - -import ( - "fmt" - "go/token" - "go/types" - "os" -) - -// NewImporter returns a new instance of the types.Importer interface -// that reads type information from export data files written by gc. -// The Importer also satisfies types.ImporterFrom. -// -// Export data files are located using "go build" workspace conventions -// and the build.Default context. -// -// Use this importer instead of go/importer.For("gc", ...) to avoid the -// version-skew problems described in the documentation of this package, -// or to control the FileSet or access the imports map populated during -// package loading. -// -// Deprecated: Use the higher-level API in golang.org/x/tools/go/packages, -// which is more efficient. -func NewImporter(fset *token.FileSet, imports map[string]*types.Package) types.ImporterFrom { - return importer{fset, imports} -} - -type importer struct { - fset *token.FileSet - imports map[string]*types.Package -} - -func (imp importer) Import(importPath string) (*types.Package, error) { - return imp.ImportFrom(importPath, "", 0) -} - -func (imp importer) ImportFrom(importPath, srcDir string, mode types.ImportMode) (_ *types.Package, err error) { - filename, path := Find(importPath, srcDir) - if filename == "" { - if importPath == "unsafe" { - // Even for unsafe, call Find first in case - // the package was vendored. - return types.Unsafe, nil - } - return nil, fmt.Errorf("can't find import: %s", importPath) - } - - if pkg, ok := imp.imports[path]; ok && pkg.Complete() { - return pkg, nil // cache hit - } - - // open file - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer func() { - f.Close() - if err != nil { - // add file name to error - err = fmt.Errorf("reading export data: %s: %v", filename, err) - } - }() - - r, err := NewReader(f) - if err != nil { - return nil, err - } - - return Read(r, imp.fset, imp.imports, path) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go b/ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go deleted file mode 100644 index 18a002f82a..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/internal/packagesdriver/sizes.go +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package packagesdriver fetches type sizes for go/packages and go/analysis. -package packagesdriver - -import ( - "context" - "fmt" - "go/types" - "strings" - - "golang.org/x/tools/internal/gocommand" -) - -var debug = false - -func GetSizesGolist(ctx context.Context, inv gocommand.Invocation, gocmdRunner *gocommand.Runner) (types.Sizes, error) { - inv.Verb = "list" - inv.Args = []string{"-f", "{{context.GOARCH}} {{context.Compiler}}", "--", "unsafe"} - stdout, stderr, friendlyErr, rawErr := gocmdRunner.RunRaw(ctx, inv) - var goarch, compiler string - if rawErr != nil { - if rawErrMsg := rawErr.Error(); strings.Contains(rawErrMsg, "cannot find main module") || strings.Contains(rawErrMsg, "go.mod file not found") { - // User's running outside of a module. All bets are off. Get GOARCH and guess compiler is gc. - // TODO(matloob): Is this a problem in practice? - inv.Verb = "env" - inv.Args = []string{"GOARCH"} - envout, enverr := gocmdRunner.Run(ctx, inv) - if enverr != nil { - return nil, enverr - } - goarch = strings.TrimSpace(envout.String()) - compiler = "gc" - } else { - return nil, friendlyErr - } - } else { - fields := strings.Fields(stdout.String()) - if len(fields) < 2 { - return nil, fmt.Errorf("could not parse GOARCH and Go compiler in format \" \":\nstdout: <<%s>>\nstderr: <<%s>>", - stdout.String(), stderr.String()) - } - goarch = fields[0] - compiler = fields[1] - } - return types.SizesFor(compiler, goarch), nil -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go deleted file mode 100644 index da4ab89fe6..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/doc.go +++ /dev/null @@ -1,220 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/* -Package packages loads Go packages for inspection and analysis. - -The Load function takes as input a list of patterns and return a list of Package -structs describing individual packages matched by those patterns. -The LoadMode controls the amount of detail in the loaded packages. - -Load passes most patterns directly to the underlying build tool, -but all patterns with the prefix "query=", where query is a -non-empty string of letters from [a-z], are reserved and may be -interpreted as query operators. - -Two query operators are currently supported: "file" and "pattern". - -The query "file=path/to/file.go" matches the package or packages enclosing -the Go source file path/to/file.go. For example "file=~/go/src/fmt/print.go" -might return the packages "fmt" and "fmt [fmt.test]". - -The query "pattern=string" causes "string" to be passed directly to -the underlying build tool. In most cases this is unnecessary, -but an application can use Load("pattern=" + x) as an escaping mechanism -to ensure that x is not interpreted as a query operator if it contains '='. - -All other query operators are reserved for future use and currently -cause Load to report an error. - -The Package struct provides basic information about the package, including - - - ID, a unique identifier for the package in the returned set; - - GoFiles, the names of the package's Go source files; - - Imports, a map from source import strings to the Packages they name; - - Types, the type information for the package's exported symbols; - - Syntax, the parsed syntax trees for the package's source code; and - - TypeInfo, the result of a complete type-check of the package syntax trees. - -(See the documentation for type Package for the complete list of fields -and more detailed descriptions.) - -For example, - - Load(nil, "bytes", "unicode...") - -returns four Package structs describing the standard library packages -bytes, unicode, unicode/utf16, and unicode/utf8. Note that one pattern -can match multiple packages and that a package might be matched by -multiple patterns: in general it is not possible to determine which -packages correspond to which patterns. - -Note that the list returned by Load contains only the packages matched -by the patterns. Their dependencies can be found by walking the import -graph using the Imports fields. - -The Load function can be configured by passing a pointer to a Config as -the first argument. A nil Config is equivalent to the zero Config, which -causes Load to run in LoadFiles mode, collecting minimal information. -See the documentation for type Config for details. - -As noted earlier, the Config.Mode controls the amount of detail -reported about the loaded packages. See the documentation for type LoadMode -for details. - -Most tools should pass their command-line arguments (after any flags) -uninterpreted to the loader, so that the loader can interpret them -according to the conventions of the underlying build system. -See the Example function for typical usage. -*/ -package packages // import "golang.org/x/tools/go/packages" - -/* - -Motivation and design considerations - -The new package's design solves problems addressed by two existing -packages: go/build, which locates and describes packages, and -golang.org/x/tools/go/loader, which loads, parses and type-checks them. -The go/build.Package structure encodes too much of the 'go build' way -of organizing projects, leaving us in need of a data type that describes a -package of Go source code independent of the underlying build system. -We wanted something that works equally well with go build and vgo, and -also other build systems such as Bazel and Blaze, making it possible to -construct analysis tools that work in all these environments. -Tools such as errcheck and staticcheck were essentially unavailable to -the Go community at Google, and some of Google's internal tools for Go -are unavailable externally. -This new package provides a uniform way to obtain package metadata by -querying each of these build systems, optionally supporting their -preferred command-line notations for packages, so that tools integrate -neatly with users' build environments. The Metadata query function -executes an external query tool appropriate to the current workspace. - -Loading packages always returns the complete import graph "all the way down", -even if all you want is information about a single package, because the query -mechanisms of all the build systems we currently support ({go,vgo} list, and -blaze/bazel aspect-based query) cannot provide detailed information -about one package without visiting all its dependencies too, so there is -no additional asymptotic cost to providing transitive information. -(This property might not be true of a hypothetical 5th build system.) - -In calls to TypeCheck, all initial packages, and any package that -transitively depends on one of them, must be loaded from source. -Consider A->B->C->D->E: if A,C are initial, A,B,C must be loaded from -source; D may be loaded from export data, and E may not be loaded at all -(though it's possible that D's export data mentions it, so a -types.Package may be created for it and exposed.) - -The old loader had a feature to suppress type-checking of function -bodies on a per-package basis, primarily intended to reduce the work of -obtaining type information for imported packages. Now that imports are -satisfied by export data, the optimization no longer seems necessary. - -Despite some early attempts, the old loader did not exploit export data, -instead always using the equivalent of WholeProgram mode. This was due -to the complexity of mixing source and export data packages (now -resolved by the upward traversal mentioned above), and because export data -files were nearly always missing or stale. Now that 'go build' supports -caching, all the underlying build systems can guarantee to produce -export data in a reasonable (amortized) time. - -Test "main" packages synthesized by the build system are now reported as -first-class packages, avoiding the need for clients (such as go/ssa) to -reinvent this generation logic. - -One way in which go/packages is simpler than the old loader is in its -treatment of in-package tests. In-package tests are packages that -consist of all the files of the library under test, plus the test files. -The old loader constructed in-package tests by a two-phase process of -mutation called "augmentation": first it would construct and type check -all the ordinary library packages and type-check the packages that -depend on them; then it would add more (test) files to the package and -type-check again. This two-phase approach had four major problems: -1) in processing the tests, the loader modified the library package, - leaving no way for a client application to see both the test - package and the library package; one would mutate into the other. -2) because test files can declare additional methods on types defined in - the library portion of the package, the dispatch of method calls in - the library portion was affected by the presence of the test files. - This should have been a clue that the packages were logically - different. -3) this model of "augmentation" assumed at most one in-package test - per library package, which is true of projects using 'go build', - but not other build systems. -4) because of the two-phase nature of test processing, all packages that - import the library package had to be processed before augmentation, - forcing a "one-shot" API and preventing the client from calling Load - in several times in sequence as is now possible in WholeProgram mode. - (TypeCheck mode has a similar one-shot restriction for a different reason.) - -Early drafts of this package supported "multi-shot" operation. -Although it allowed clients to make a sequence of calls (or concurrent -calls) to Load, building up the graph of Packages incrementally, -it was of marginal value: it complicated the API -(since it allowed some options to vary across calls but not others), -it complicated the implementation, -it cannot be made to work in Types mode, as explained above, -and it was less efficient than making one combined call (when this is possible). -Among the clients we have inspected, none made multiple calls to load -but could not be easily and satisfactorily modified to make only a single call. -However, applications changes may be required. -For example, the ssadump command loads the user-specified packages -and in addition the runtime package. It is tempting to simply append -"runtime" to the user-provided list, but that does not work if the user -specified an ad-hoc package such as [a.go b.go]. -Instead, ssadump no longer requests the runtime package, -but seeks it among the dependencies of the user-specified packages, -and emits an error if it is not found. - -Overlays: The Overlay field in the Config allows providing alternate contents -for Go source files, by providing a mapping from file path to contents. -go/packages will pull in new imports added in overlay files when go/packages -is run in LoadImports mode or greater. -Overlay support for the go list driver isn't complete yet: if the file doesn't -exist on disk, it will only be recognized in an overlay if it is a non-test file -and the package would be reported even without the overlay. - -Questions & Tasks - -- Add GOARCH/GOOS? - They are not portable concepts, but could be made portable. - Our goal has been to allow users to express themselves using the conventions - of the underlying build system: if the build system honors GOARCH - during a build and during a metadata query, then so should - applications built atop that query mechanism. - Conversely, if the target architecture of the build is determined by - command-line flags, the application can pass the relevant - flags through to the build system using a command such as: - myapp -query_flag="--cpu=amd64" -query_flag="--os=darwin" - However, this approach is low-level, unwieldy, and non-portable. - GOOS and GOARCH seem important enough to warrant a dedicated option. - -- How should we handle partial failures such as a mixture of good and - malformed patterns, existing and non-existent packages, successful and - failed builds, import failures, import cycles, and so on, in a call to - Load? - -- Support bazel, blaze, and go1.10 list, not just go1.11 list. - -- Handle (and test) various partial success cases, e.g. - a mixture of good packages and: - invalid patterns - nonexistent packages - empty packages - packages with malformed package or import declarations - unreadable files - import cycles - other parse errors - type errors - Make sure we record errors at the correct place in the graph. - -- Missing packages among initial arguments are not reported. - Return bogus packages for them, like golist does. - -- "undeclared name" errors (for example) are reported out of source file - order. I suspect this is due to the breadth-first resolution now used - by go/types. Is that a bug? Discuss with gri. - -*/ diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/external.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/external.go deleted file mode 100644 index 7242a0a7d2..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/external.go +++ /dev/null @@ -1,101 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file enables an external tool to intercept package requests. -// If the tool is present then its results are used in preference to -// the go list command. - -package packages - -import ( - "bytes" - "encoding/json" - "fmt" - exec "golang.org/x/sys/execabs" - "os" - "strings" -) - -// The Driver Protocol -// -// The driver, given the inputs to a call to Load, returns metadata about the packages specified. -// This allows for different build systems to support go/packages by telling go/packages how the -// packages' source is organized. -// The driver is a binary, either specified by the GOPACKAGESDRIVER environment variable or in -// the path as gopackagesdriver. It's given the inputs to load in its argv. See the package -// documentation in doc.go for the full description of the patterns that need to be supported. -// A driver receives as a JSON-serialized driverRequest struct in standard input and will -// produce a JSON-serialized driverResponse (see definition in packages.go) in its standard output. - -// driverRequest is used to provide the portion of Load's Config that is needed by a driver. -type driverRequest struct { - Mode LoadMode `json:"mode"` - // Env specifies the environment the underlying build system should be run in. - Env []string `json:"env"` - // BuildFlags are flags that should be passed to the underlying build system. - BuildFlags []string `json:"build_flags"` - // Tests specifies whether the patterns should also return test packages. - Tests bool `json:"tests"` - // Overlay maps file paths (relative to the driver's working directory) to the byte contents - // of overlay files. - Overlay map[string][]byte `json:"overlay"` -} - -// findExternalDriver returns the file path of a tool that supplies -// the build system package structure, or "" if not found." -// If GOPACKAGESDRIVER is set in the environment findExternalTool returns its -// value, otherwise it searches for a binary named gopackagesdriver on the PATH. -func findExternalDriver(cfg *Config) driver { - const toolPrefix = "GOPACKAGESDRIVER=" - tool := "" - for _, env := range cfg.Env { - if val := strings.TrimPrefix(env, toolPrefix); val != env { - tool = val - } - } - if tool != "" && tool == "off" { - return nil - } - if tool == "" { - var err error - tool, err = exec.LookPath("gopackagesdriver") - if err != nil { - return nil - } - } - return func(cfg *Config, words ...string) (*driverResponse, error) { - req, err := json.Marshal(driverRequest{ - Mode: cfg.Mode, - Env: cfg.Env, - BuildFlags: cfg.BuildFlags, - Tests: cfg.Tests, - Overlay: cfg.Overlay, - }) - if err != nil { - return nil, fmt.Errorf("failed to encode message to driver tool: %v", err) - } - - buf := new(bytes.Buffer) - stderr := new(bytes.Buffer) - cmd := exec.CommandContext(cfg.Context, tool, words...) - cmd.Dir = cfg.Dir - cmd.Env = cfg.Env - cmd.Stdin = bytes.NewReader(req) - cmd.Stdout = buf - cmd.Stderr = stderr - - if err := cmd.Run(); err != nil { - return nil, fmt.Errorf("%v: %v: %s", tool, err, cmd.Stderr) - } - if len(stderr.Bytes()) != 0 && os.Getenv("GOPACKAGESPRINTDRIVERERRORS") != "" { - fmt.Fprintf(os.Stderr, "%s stderr: <<%s>>\n", cmdDebugStr(cmd), stderr) - } - - var response driverResponse - if err := json.Unmarshal(buf.Bytes(), &response); err != nil { - return nil, err - } - return &response, nil - } -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go deleted file mode 100644 index 6bb7168d2e..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/golist.go +++ /dev/null @@ -1,1173 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "bytes" - "context" - "encoding/json" - "fmt" - "go/types" - "io/ioutil" - "log" - "os" - "path" - "path/filepath" - "reflect" - "sort" - "strconv" - "strings" - "sync" - "unicode" - - exec "golang.org/x/sys/execabs" - "golang.org/x/tools/go/internal/packagesdriver" - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/packagesinternal" -) - -// debug controls verbose logging. -var debug, _ = strconv.ParseBool(os.Getenv("GOPACKAGESDEBUG")) - -// A goTooOldError reports that the go command -// found by exec.LookPath is too old to use the new go list behavior. -type goTooOldError struct { - error -} - -// responseDeduper wraps a driverResponse, deduplicating its contents. -type responseDeduper struct { - seenRoots map[string]bool - seenPackages map[string]*Package - dr *driverResponse -} - -func newDeduper() *responseDeduper { - return &responseDeduper{ - dr: &driverResponse{}, - seenRoots: map[string]bool{}, - seenPackages: map[string]*Package{}, - } -} - -// addAll fills in r with a driverResponse. -func (r *responseDeduper) addAll(dr *driverResponse) { - for _, pkg := range dr.Packages { - r.addPackage(pkg) - } - for _, root := range dr.Roots { - r.addRoot(root) - } - r.dr.GoVersion = dr.GoVersion -} - -func (r *responseDeduper) addPackage(p *Package) { - if r.seenPackages[p.ID] != nil { - return - } - r.seenPackages[p.ID] = p - r.dr.Packages = append(r.dr.Packages, p) -} - -func (r *responseDeduper) addRoot(id string) { - if r.seenRoots[id] { - return - } - r.seenRoots[id] = true - r.dr.Roots = append(r.dr.Roots, id) -} - -type golistState struct { - cfg *Config - ctx context.Context - - envOnce sync.Once - goEnvError error - goEnv map[string]string - - rootsOnce sync.Once - rootDirsError error - rootDirs map[string]string - - goVersionOnce sync.Once - goVersionError error - goVersion int // The X in Go 1.X. - - // vendorDirs caches the (non)existence of vendor directories. - vendorDirs map[string]bool -} - -// getEnv returns Go environment variables. Only specific variables are -// populated -- computing all of them is slow. -func (state *golistState) getEnv() (map[string]string, error) { - state.envOnce.Do(func() { - var b *bytes.Buffer - b, state.goEnvError = state.invokeGo("env", "-json", "GOMOD", "GOPATH") - if state.goEnvError != nil { - return - } - - state.goEnv = make(map[string]string) - decoder := json.NewDecoder(b) - if state.goEnvError = decoder.Decode(&state.goEnv); state.goEnvError != nil { - return - } - }) - return state.goEnv, state.goEnvError -} - -// mustGetEnv is a convenience function that can be used if getEnv has already succeeded. -func (state *golistState) mustGetEnv() map[string]string { - env, err := state.getEnv() - if err != nil { - panic(fmt.Sprintf("mustGetEnv: %v", err)) - } - return env -} - -// goListDriver uses the go list command to interpret the patterns and produce -// the build system package structure. -// See driver for more details. -func goListDriver(cfg *Config, patterns ...string) (*driverResponse, error) { - // Make sure that any asynchronous go commands are killed when we return. - parentCtx := cfg.Context - if parentCtx == nil { - parentCtx = context.Background() - } - ctx, cancel := context.WithCancel(parentCtx) - defer cancel() - - response := newDeduper() - - state := &golistState{ - cfg: cfg, - ctx: ctx, - vendorDirs: map[string]bool{}, - } - - // Fill in response.Sizes asynchronously if necessary. - var sizeserr error - var sizeswg sync.WaitGroup - if cfg.Mode&NeedTypesSizes != 0 || cfg.Mode&NeedTypes != 0 { - sizeswg.Add(1) - go func() { - var sizes types.Sizes - sizes, sizeserr = packagesdriver.GetSizesGolist(ctx, state.cfgInvocation(), cfg.gocmdRunner) - // types.SizesFor always returns nil or a *types.StdSizes. - response.dr.Sizes, _ = sizes.(*types.StdSizes) - sizeswg.Done() - }() - } - - // Determine files requested in contains patterns - var containFiles []string - restPatterns := make([]string, 0, len(patterns)) - // Extract file= and other [querytype]= patterns. Report an error if querytype - // doesn't exist. -extractQueries: - for _, pattern := range patterns { - eqidx := strings.Index(pattern, "=") - if eqidx < 0 { - restPatterns = append(restPatterns, pattern) - } else { - query, value := pattern[:eqidx], pattern[eqidx+len("="):] - switch query { - case "file": - containFiles = append(containFiles, value) - case "pattern": - restPatterns = append(restPatterns, value) - case "": // not a reserved query - restPatterns = append(restPatterns, pattern) - default: - for _, rune := range query { - if rune < 'a' || rune > 'z' { // not a reserved query - restPatterns = append(restPatterns, pattern) - continue extractQueries - } - } - // Reject all other patterns containing "=" - return nil, fmt.Errorf("invalid query type %q in query pattern %q", query, pattern) - } - } - } - - // See if we have any patterns to pass through to go list. Zero initial - // patterns also requires a go list call, since it's the equivalent of - // ".". - if len(restPatterns) > 0 || len(patterns) == 0 { - dr, err := state.createDriverResponse(restPatterns...) - if err != nil { - return nil, err - } - response.addAll(dr) - } - - if len(containFiles) != 0 { - if err := state.runContainsQueries(response, containFiles); err != nil { - return nil, err - } - } - - // Only use go/packages' overlay processing if we're using a Go version - // below 1.16. Otherwise, go list handles it. - if goVersion, err := state.getGoVersion(); err == nil && goVersion < 16 { - modifiedPkgs, needPkgs, err := state.processGolistOverlay(response) - if err != nil { - return nil, err - } - - var containsCandidates []string - if len(containFiles) > 0 { - containsCandidates = append(containsCandidates, modifiedPkgs...) - containsCandidates = append(containsCandidates, needPkgs...) - } - if err := state.addNeededOverlayPackages(response, needPkgs); err != nil { - return nil, err - } - // Check candidate packages for containFiles. - if len(containFiles) > 0 { - for _, id := range containsCandidates { - pkg, ok := response.seenPackages[id] - if !ok { - response.addPackage(&Package{ - ID: id, - Errors: []Error{{ - Kind: ListError, - Msg: fmt.Sprintf("package %s expected but not seen", id), - }}, - }) - continue - } - for _, f := range containFiles { - for _, g := range pkg.GoFiles { - if sameFile(f, g) { - response.addRoot(id) - } - } - } - } - } - // Add root for any package that matches a pattern. This applies only to - // packages that are modified by overlays, since they are not added as - // roots automatically. - for _, pattern := range restPatterns { - match := matchPattern(pattern) - for _, pkgID := range modifiedPkgs { - pkg, ok := response.seenPackages[pkgID] - if !ok { - continue - } - if match(pkg.PkgPath) { - response.addRoot(pkg.ID) - } - } - } - } - - sizeswg.Wait() - if sizeserr != nil { - return nil, sizeserr - } - return response.dr, nil -} - -func (state *golistState) addNeededOverlayPackages(response *responseDeduper, pkgs []string) error { - if len(pkgs) == 0 { - return nil - } - dr, err := state.createDriverResponse(pkgs...) - if err != nil { - return err - } - for _, pkg := range dr.Packages { - response.addPackage(pkg) - } - _, needPkgs, err := state.processGolistOverlay(response) - if err != nil { - return err - } - return state.addNeededOverlayPackages(response, needPkgs) -} - -func (state *golistState) runContainsQueries(response *responseDeduper, queries []string) error { - for _, query := range queries { - // TODO(matloob): Do only one query per directory. - fdir := filepath.Dir(query) - // Pass absolute path of directory to go list so that it knows to treat it as a directory, - // not a package path. - pattern, err := filepath.Abs(fdir) - if err != nil { - return fmt.Errorf("could not determine absolute path of file= query path %q: %v", query, err) - } - dirResponse, err := state.createDriverResponse(pattern) - - // If there was an error loading the package, or no packages are returned, - // or the package is returned with errors, try to load the file as an - // ad-hoc package. - // Usually the error will appear in a returned package, but may not if we're - // in module mode and the ad-hoc is located outside a module. - if err != nil || len(dirResponse.Packages) == 0 || len(dirResponse.Packages) == 1 && len(dirResponse.Packages[0].GoFiles) == 0 && - len(dirResponse.Packages[0].Errors) == 1 { - var queryErr error - if dirResponse, queryErr = state.adhocPackage(pattern, query); queryErr != nil { - return err // return the original error - } - } - isRoot := make(map[string]bool, len(dirResponse.Roots)) - for _, root := range dirResponse.Roots { - isRoot[root] = true - } - for _, pkg := range dirResponse.Packages { - // Add any new packages to the main set - // We don't bother to filter packages that will be dropped by the changes of roots, - // that will happen anyway during graph construction outside this function. - // Over-reporting packages is not a problem. - response.addPackage(pkg) - // if the package was not a root one, it cannot have the file - if !isRoot[pkg.ID] { - continue - } - for _, pkgFile := range pkg.GoFiles { - if filepath.Base(query) == filepath.Base(pkgFile) { - response.addRoot(pkg.ID) - break - } - } - } - } - return nil -} - -// adhocPackage attempts to load or construct an ad-hoc package for a given -// query, if the original call to the driver produced inadequate results. -func (state *golistState) adhocPackage(pattern, query string) (*driverResponse, error) { - response, err := state.createDriverResponse(query) - if err != nil { - return nil, err - } - // If we get nothing back from `go list`, - // try to make this file into its own ad-hoc package. - // TODO(rstambler): Should this check against the original response? - if len(response.Packages) == 0 { - response.Packages = append(response.Packages, &Package{ - ID: "command-line-arguments", - PkgPath: query, - GoFiles: []string{query}, - CompiledGoFiles: []string{query}, - Imports: make(map[string]*Package), - }) - response.Roots = append(response.Roots, "command-line-arguments") - } - // Handle special cases. - if len(response.Packages) == 1 { - // golang/go#33482: If this is a file= query for ad-hoc packages where - // the file only exists on an overlay, and exists outside of a module, - // add the file to the package and remove the errors. - if response.Packages[0].ID == "command-line-arguments" || - filepath.ToSlash(response.Packages[0].PkgPath) == filepath.ToSlash(query) { - if len(response.Packages[0].GoFiles) == 0 { - filename := filepath.Join(pattern, filepath.Base(query)) // avoid recomputing abspath - // TODO(matloob): check if the file is outside of a root dir? - for path := range state.cfg.Overlay { - if path == filename { - response.Packages[0].Errors = nil - response.Packages[0].GoFiles = []string{path} - response.Packages[0].CompiledGoFiles = []string{path} - } - } - } - } - } - return response, nil -} - -// Fields must match go list; -// see $GOROOT/src/cmd/go/internal/load/pkg.go. -type jsonPackage struct { - ImportPath string - Dir string - Name string - Export string - GoFiles []string - CompiledGoFiles []string - IgnoredGoFiles []string - IgnoredOtherFiles []string - EmbedPatterns []string - EmbedFiles []string - CFiles []string - CgoFiles []string - CXXFiles []string - MFiles []string - HFiles []string - FFiles []string - SFiles []string - SwigFiles []string - SwigCXXFiles []string - SysoFiles []string - Imports []string - ImportMap map[string]string - Deps []string - Module *Module - TestGoFiles []string - TestImports []string - XTestGoFiles []string - XTestImports []string - ForTest string // q in a "p [q.test]" package, else "" - DepOnly bool - - Error *packagesinternal.PackageError - DepsErrors []*packagesinternal.PackageError -} - -type jsonPackageError struct { - ImportStack []string - Pos string - Err string -} - -func otherFiles(p *jsonPackage) [][]string { - return [][]string{p.CFiles, p.CXXFiles, p.MFiles, p.HFiles, p.FFiles, p.SFiles, p.SwigFiles, p.SwigCXXFiles, p.SysoFiles} -} - -// createDriverResponse uses the "go list" command to expand the pattern -// words and return a response for the specified packages. -func (state *golistState) createDriverResponse(words ...string) (*driverResponse, error) { - // go list uses the following identifiers in ImportPath and Imports: - // - // "p" -- importable package or main (command) - // "q.test" -- q's test executable - // "p [q.test]" -- variant of p as built for q's test executable - // "q_test [q.test]" -- q's external test package - // - // The packages p that are built differently for a test q.test - // are q itself, plus any helpers used by the external test q_test, - // typically including "testing" and all its dependencies. - - // Run "go list" for complete - // information on the specified packages. - goVersion, err := state.getGoVersion() - if err != nil { - return nil, err - } - buf, err := state.invokeGo("list", golistargs(state.cfg, words, goVersion)...) - if err != nil { - return nil, err - } - - seen := make(map[string]*jsonPackage) - pkgs := make(map[string]*Package) - additionalErrors := make(map[string][]Error) - // Decode the JSON and convert it to Package form. - response := &driverResponse{ - GoVersion: goVersion, - } - for dec := json.NewDecoder(buf); dec.More(); { - p := new(jsonPackage) - if err := dec.Decode(p); err != nil { - return nil, fmt.Errorf("JSON decoding failed: %v", err) - } - - if p.ImportPath == "" { - // The documentation for go list says that “[e]rroneous packages will have - // a non-empty ImportPath”. If for some reason it comes back empty, we - // prefer to error out rather than silently discarding data or handing - // back a package without any way to refer to it. - if p.Error != nil { - return nil, Error{ - Pos: p.Error.Pos, - Msg: p.Error.Err, - } - } - return nil, fmt.Errorf("package missing import path: %+v", p) - } - - // Work around https://golang.org/issue/33157: - // go list -e, when given an absolute path, will find the package contained at - // that directory. But when no package exists there, it will return a fake package - // with an error and the ImportPath set to the absolute path provided to go list. - // Try to convert that absolute path to what its package path would be if it's - // contained in a known module or GOPATH entry. This will allow the package to be - // properly "reclaimed" when overlays are processed. - if filepath.IsAbs(p.ImportPath) && p.Error != nil { - pkgPath, ok, err := state.getPkgPath(p.ImportPath) - if err != nil { - return nil, err - } - if ok { - p.ImportPath = pkgPath - } - } - - if old, found := seen[p.ImportPath]; found { - // If one version of the package has an error, and the other doesn't, assume - // that this is a case where go list is reporting a fake dependency variant - // of the imported package: When a package tries to invalidly import another - // package, go list emits a variant of the imported package (with the same - // import path, but with an error on it, and the package will have a - // DepError set on it). An example of when this can happen is for imports of - // main packages: main packages can not be imported, but they may be - // separately matched and listed by another pattern. - // See golang.org/issue/36188 for more details. - - // The plan is that eventually, hopefully in Go 1.15, the error will be - // reported on the importing package rather than the duplicate "fake" - // version of the imported package. Once all supported versions of Go - // have the new behavior this logic can be deleted. - // TODO(matloob): delete the workaround logic once all supported versions of - // Go return the errors on the proper package. - - // There should be exactly one version of a package that doesn't have an - // error. - if old.Error == nil && p.Error == nil { - if !reflect.DeepEqual(p, old) { - return nil, fmt.Errorf("internal error: go list gives conflicting information for package %v", p.ImportPath) - } - continue - } - - // Determine if this package's error needs to be bubbled up. - // This is a hack, and we expect for go list to eventually set the error - // on the package. - if old.Error != nil { - var errkind string - if strings.Contains(old.Error.Err, "not an importable package") { - errkind = "not an importable package" - } else if strings.Contains(old.Error.Err, "use of internal package") && strings.Contains(old.Error.Err, "not allowed") { - errkind = "use of internal package not allowed" - } - if errkind != "" { - if len(old.Error.ImportStack) < 1 { - return nil, fmt.Errorf(`internal error: go list gave a %q error with empty import stack`, errkind) - } - importingPkg := old.Error.ImportStack[len(old.Error.ImportStack)-1] - if importingPkg == old.ImportPath { - // Using an older version of Go which put this package itself on top of import - // stack, instead of the importer. Look for importer in second from top - // position. - if len(old.Error.ImportStack) < 2 { - return nil, fmt.Errorf(`internal error: go list gave a %q error with an import stack without importing package`, errkind) - } - importingPkg = old.Error.ImportStack[len(old.Error.ImportStack)-2] - } - additionalErrors[importingPkg] = append(additionalErrors[importingPkg], Error{ - Pos: old.Error.Pos, - Msg: old.Error.Err, - Kind: ListError, - }) - } - } - - // Make sure that if there's a version of the package without an error, - // that's the one reported to the user. - if old.Error == nil { - continue - } - - // This package will replace the old one at the end of the loop. - } - seen[p.ImportPath] = p - - pkg := &Package{ - Name: p.Name, - ID: p.ImportPath, - GoFiles: absJoin(p.Dir, p.GoFiles, p.CgoFiles), - CompiledGoFiles: absJoin(p.Dir, p.CompiledGoFiles), - OtherFiles: absJoin(p.Dir, otherFiles(p)...), - EmbedFiles: absJoin(p.Dir, p.EmbedFiles), - EmbedPatterns: absJoin(p.Dir, p.EmbedPatterns), - IgnoredFiles: absJoin(p.Dir, p.IgnoredGoFiles, p.IgnoredOtherFiles), - forTest: p.ForTest, - depsErrors: p.DepsErrors, - Module: p.Module, - } - - if (state.cfg.Mode&typecheckCgo) != 0 && len(p.CgoFiles) != 0 { - if len(p.CompiledGoFiles) > len(p.GoFiles) { - // We need the cgo definitions, which are in the first - // CompiledGoFile after the non-cgo ones. This is a hack but there - // isn't currently a better way to find it. We also need the pure - // Go files and unprocessed cgo files, all of which are already - // in pkg.GoFiles. - cgoTypes := p.CompiledGoFiles[len(p.GoFiles)] - pkg.CompiledGoFiles = append([]string{cgoTypes}, pkg.GoFiles...) - } else { - // golang/go#38990: go list silently fails to do cgo processing - pkg.CompiledGoFiles = nil - pkg.Errors = append(pkg.Errors, Error{ - Msg: "go list failed to return CompiledGoFiles. This may indicate failure to perform cgo processing; try building at the command line. See https://golang.org/issue/38990.", - Kind: ListError, - }) - } - } - - // Work around https://golang.org/issue/28749: - // cmd/go puts assembly, C, and C++ files in CompiledGoFiles. - // Remove files from CompiledGoFiles that are non-go files - // (or are not files that look like they are from the cache). - if len(pkg.CompiledGoFiles) > 0 { - out := pkg.CompiledGoFiles[:0] - for _, f := range pkg.CompiledGoFiles { - if ext := filepath.Ext(f); ext != ".go" && ext != "" { // ext == "" means the file is from the cache, so probably cgo-processed file - continue - } - out = append(out, f) - } - pkg.CompiledGoFiles = out - } - - // Extract the PkgPath from the package's ID. - if i := strings.IndexByte(pkg.ID, ' '); i >= 0 { - pkg.PkgPath = pkg.ID[:i] - } else { - pkg.PkgPath = pkg.ID - } - - if pkg.PkgPath == "unsafe" { - pkg.GoFiles = nil // ignore fake unsafe.go file - } - - // Assume go list emits only absolute paths for Dir. - if p.Dir != "" && !filepath.IsAbs(p.Dir) { - log.Fatalf("internal error: go list returned non-absolute Package.Dir: %s", p.Dir) - } - - if p.Export != "" && !filepath.IsAbs(p.Export) { - pkg.ExportFile = filepath.Join(p.Dir, p.Export) - } else { - pkg.ExportFile = p.Export - } - - // imports - // - // Imports contains the IDs of all imported packages. - // ImportsMap records (path, ID) only where they differ. - ids := make(map[string]bool) - for _, id := range p.Imports { - ids[id] = true - } - pkg.Imports = make(map[string]*Package) - for path, id := range p.ImportMap { - pkg.Imports[path] = &Package{ID: id} // non-identity import - delete(ids, id) - } - for id := range ids { - if id == "C" { - continue - } - - pkg.Imports[id] = &Package{ID: id} // identity import - } - if !p.DepOnly { - response.Roots = append(response.Roots, pkg.ID) - } - - // Work around for pre-go.1.11 versions of go list. - // TODO(matloob): they should be handled by the fallback. - // Can we delete this? - if len(pkg.CompiledGoFiles) == 0 { - pkg.CompiledGoFiles = pkg.GoFiles - } - - // Temporary work-around for golang/go#39986. Parse filenames out of - // error messages. This happens if there are unrecoverable syntax - // errors in the source, so we can't match on a specific error message. - if err := p.Error; err != nil && state.shouldAddFilenameFromError(p) { - addFilenameFromPos := func(pos string) bool { - split := strings.Split(pos, ":") - if len(split) < 1 { - return false - } - filename := strings.TrimSpace(split[0]) - if filename == "" { - return false - } - if !filepath.IsAbs(filename) { - filename = filepath.Join(state.cfg.Dir, filename) - } - info, _ := os.Stat(filename) - if info == nil { - return false - } - pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, filename) - pkg.GoFiles = append(pkg.GoFiles, filename) - return true - } - found := addFilenameFromPos(err.Pos) - // In some cases, go list only reports the error position in the - // error text, not the error position. One such case is when the - // file's package name is a keyword (see golang.org/issue/39763). - if !found { - addFilenameFromPos(err.Err) - } - } - - if p.Error != nil { - msg := strings.TrimSpace(p.Error.Err) // Trim to work around golang.org/issue/32363. - // Address golang.org/issue/35964 by appending import stack to error message. - if msg == "import cycle not allowed" && len(p.Error.ImportStack) != 0 { - msg += fmt.Sprintf(": import stack: %v", p.Error.ImportStack) - } - pkg.Errors = append(pkg.Errors, Error{ - Pos: p.Error.Pos, - Msg: msg, - Kind: ListError, - }) - } - - pkgs[pkg.ID] = pkg - } - - for id, errs := range additionalErrors { - if p, ok := pkgs[id]; ok { - p.Errors = append(p.Errors, errs...) - } - } - for _, pkg := range pkgs { - response.Packages = append(response.Packages, pkg) - } - sort.Slice(response.Packages, func(i, j int) bool { return response.Packages[i].ID < response.Packages[j].ID }) - - return response, nil -} - -func (state *golistState) shouldAddFilenameFromError(p *jsonPackage) bool { - if len(p.GoFiles) > 0 || len(p.CompiledGoFiles) > 0 { - return false - } - - goV, err := state.getGoVersion() - if err != nil { - return false - } - - // On Go 1.14 and earlier, only add filenames from errors if the import stack is empty. - // The import stack behaves differently for these versions than newer Go versions. - if goV < 15 { - return len(p.Error.ImportStack) == 0 - } - - // On Go 1.15 and later, only parse filenames out of error if there's no import stack, - // or the current package is at the top of the import stack. This is not guaranteed - // to work perfectly, but should avoid some cases where files in errors don't belong to this - // package. - return len(p.Error.ImportStack) == 0 || p.Error.ImportStack[len(p.Error.ImportStack)-1] == p.ImportPath -} - -// getGoVersion returns the effective minor version of the go command. -func (state *golistState) getGoVersion() (int, error) { - state.goVersionOnce.Do(func() { - state.goVersion, state.goVersionError = gocommand.GoVersion(state.ctx, state.cfgInvocation(), state.cfg.gocmdRunner) - }) - return state.goVersion, state.goVersionError -} - -// getPkgPath finds the package path of a directory if it's relative to a root -// directory. -func (state *golistState) getPkgPath(dir string) (string, bool, error) { - absDir, err := filepath.Abs(dir) - if err != nil { - return "", false, err - } - roots, err := state.determineRootDirs() - if err != nil { - return "", false, err - } - - for rdir, rpath := range roots { - // Make sure that the directory is in the module, - // to avoid creating a path relative to another module. - if !strings.HasPrefix(absDir, rdir) { - continue - } - // TODO(matloob): This doesn't properly handle symlinks. - r, err := filepath.Rel(rdir, dir) - if err != nil { - continue - } - if rpath != "" { - // We choose only one root even though the directory even it can belong in multiple modules - // or GOPATH entries. This is okay because we only need to work with absolute dirs when a - // file is missing from disk, for instance when gopls calls go/packages in an overlay. - // Once the file is saved, gopls, or the next invocation of the tool will get the correct - // result straight from golist. - // TODO(matloob): Implement module tiebreaking? - return path.Join(rpath, filepath.ToSlash(r)), true, nil - } - return filepath.ToSlash(r), true, nil - } - return "", false, nil -} - -// absJoin absolutizes and flattens the lists of files. -func absJoin(dir string, fileses ...[]string) (res []string) { - for _, files := range fileses { - for _, file := range files { - if !filepath.IsAbs(file) { - file = filepath.Join(dir, file) - } - res = append(res, file) - } - } - return res -} - -func jsonFlag(cfg *Config, goVersion int) string { - if goVersion < 19 { - return "-json" - } - var fields []string - added := make(map[string]bool) - addFields := func(fs ...string) { - for _, f := range fs { - if !added[f] { - added[f] = true - fields = append(fields, f) - } - } - } - addFields("Name", "ImportPath", "Error") // These fields are always needed - if cfg.Mode&NeedFiles != 0 || cfg.Mode&NeedTypes != 0 { - addFields("Dir", "GoFiles", "IgnoredGoFiles", "IgnoredOtherFiles", "CFiles", - "CgoFiles", "CXXFiles", "MFiles", "HFiles", "FFiles", "SFiles", - "SwigFiles", "SwigCXXFiles", "SysoFiles") - if cfg.Tests { - addFields("TestGoFiles", "XTestGoFiles") - } - } - if cfg.Mode&NeedTypes != 0 { - // CompiledGoFiles seems to be required for the test case TestCgoNoSyntax, - // even when -compiled isn't passed in. - // TODO(#52435): Should we make the test ask for -compiled, or automatically - // request CompiledGoFiles in certain circumstances? - addFields("Dir", "CompiledGoFiles") - } - if cfg.Mode&NeedCompiledGoFiles != 0 { - addFields("Dir", "CompiledGoFiles", "Export") - } - if cfg.Mode&NeedImports != 0 { - // When imports are requested, DepOnly is used to distinguish between packages - // explicitly requested and transitive imports of those packages. - addFields("DepOnly", "Imports", "ImportMap") - if cfg.Tests { - addFields("TestImports", "XTestImports") - } - } - if cfg.Mode&NeedDeps != 0 { - addFields("DepOnly") - } - if usesExportData(cfg) { - // Request Dir in the unlikely case Export is not absolute. - addFields("Dir", "Export") - } - if cfg.Mode&needInternalForTest != 0 { - addFields("ForTest") - } - if cfg.Mode&needInternalDepsErrors != 0 { - addFields("DepsErrors") - } - if cfg.Mode&NeedModule != 0 { - addFields("Module") - } - if cfg.Mode&NeedEmbedFiles != 0 { - addFields("EmbedFiles") - } - if cfg.Mode&NeedEmbedPatterns != 0 { - addFields("EmbedPatterns") - } - return "-json=" + strings.Join(fields, ",") -} - -func golistargs(cfg *Config, words []string, goVersion int) []string { - const findFlags = NeedImports | NeedTypes | NeedSyntax | NeedTypesInfo - fullargs := []string{ - "-e", jsonFlag(cfg, goVersion), - fmt.Sprintf("-compiled=%t", cfg.Mode&(NeedCompiledGoFiles|NeedSyntax|NeedTypes|NeedTypesInfo|NeedTypesSizes) != 0), - fmt.Sprintf("-test=%t", cfg.Tests), - fmt.Sprintf("-export=%t", usesExportData(cfg)), - fmt.Sprintf("-deps=%t", cfg.Mode&NeedImports != 0), - // go list doesn't let you pass -test and -find together, - // probably because you'd just get the TestMain. - fmt.Sprintf("-find=%t", !cfg.Tests && cfg.Mode&findFlags == 0 && !usesExportData(cfg)), - } - fullargs = append(fullargs, cfg.BuildFlags...) - fullargs = append(fullargs, "--") - fullargs = append(fullargs, words...) - return fullargs -} - -// cfgInvocation returns an Invocation that reflects cfg's settings. -func (state *golistState) cfgInvocation() gocommand.Invocation { - cfg := state.cfg - return gocommand.Invocation{ - BuildFlags: cfg.BuildFlags, - ModFile: cfg.modFile, - ModFlag: cfg.modFlag, - CleanEnv: cfg.Env != nil, - Env: cfg.Env, - Logf: cfg.Logf, - WorkingDir: cfg.Dir, - } -} - -// invokeGo returns the stdout of a go command invocation. -func (state *golistState) invokeGo(verb string, args ...string) (*bytes.Buffer, error) { - cfg := state.cfg - - inv := state.cfgInvocation() - - // For Go versions 1.16 and above, `go list` accepts overlays directly via - // the -overlay flag. Set it, if it's available. - // - // The check for "list" is not necessarily required, but we should avoid - // getting the go version if possible. - if verb == "list" { - goVersion, err := state.getGoVersion() - if err != nil { - return nil, err - } - if goVersion >= 16 { - filename, cleanup, err := state.writeOverlays() - if err != nil { - return nil, err - } - defer cleanup() - inv.Overlay = filename - } - } - inv.Verb = verb - inv.Args = args - gocmdRunner := cfg.gocmdRunner - if gocmdRunner == nil { - gocmdRunner = &gocommand.Runner{} - } - stdout, stderr, friendlyErr, err := gocmdRunner.RunRaw(cfg.Context, inv) - if err != nil { - // Check for 'go' executable not being found. - if ee, ok := err.(*exec.Error); ok && ee.Err == exec.ErrNotFound { - return nil, fmt.Errorf("'go list' driver requires 'go', but %s", exec.ErrNotFound) - } - - exitErr, ok := err.(*exec.ExitError) - if !ok { - // Catastrophic error: - // - context cancellation - return nil, fmt.Errorf("couldn't run 'go': %w", err) - } - - // Old go version? - if strings.Contains(stderr.String(), "flag provided but not defined") { - return nil, goTooOldError{fmt.Errorf("unsupported version of go: %s: %s", exitErr, stderr)} - } - - // Related to #24854 - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "unexpected directory layout") { - return nil, friendlyErr - } - - // Is there an error running the C compiler in cgo? This will be reported in the "Error" field - // and should be suppressed by go list -e. - // - // This condition is not perfect yet because the error message can include other error messages than runtime/cgo. - isPkgPathRune := func(r rune) bool { - // From https://golang.org/ref/spec#Import_declarations: - // Implementation restriction: A compiler may restrict ImportPaths to non-empty strings - // using only characters belonging to Unicode's L, M, N, P, and S general categories - // (the Graphic characters without spaces) and may also exclude the - // characters !"#$%&'()*,:;<=>?[\]^`{|} and the Unicode replacement character U+FFFD. - return unicode.IsOneOf([]*unicode.RangeTable{unicode.L, unicode.M, unicode.N, unicode.P, unicode.S}, r) && - !strings.ContainsRune("!\"#$%&'()*,:;<=>?[\\]^`{|}\uFFFD", r) - } - // golang/go#36770: Handle case where cmd/go prints module download messages before the error. - msg := stderr.String() - for strings.HasPrefix(msg, "go: downloading") { - msg = msg[strings.IndexRune(msg, '\n')+1:] - } - if len(stderr.String()) > 0 && strings.HasPrefix(stderr.String(), "# ") { - msg := msg[len("# "):] - if strings.HasPrefix(strings.TrimLeftFunc(msg, isPkgPathRune), "\n") { - return stdout, nil - } - // Treat pkg-config errors as a special case (golang.org/issue/36770). - if strings.HasPrefix(msg, "pkg-config") { - return stdout, nil - } - } - - // This error only appears in stderr. See golang.org/cl/166398 for a fix in go list to show - // the error in the Err section of stdout in case -e option is provided. - // This fix is provided for backwards compatibility. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must be .go files") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Similar to the previous error, but currently lacks a fix in Go. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "named files must all be in one directory") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Backwards compatibility for Go 1.11 because 1.12 and 1.13 put the directory in the ImportPath. - // If the package doesn't exist, put the absolute path of the directory into the error message, - // as Go 1.13 list does. - const noSuchDirectory = "no such directory" - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), noSuchDirectory) { - errstr := stderr.String() - abspath := strings.TrimSpace(errstr[strings.Index(errstr, noSuchDirectory)+len(noSuchDirectory):]) - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - abspath, strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for #29280: go list -e has incorrect behavior when an ad-hoc package doesn't exist. - // Note that the error message we look for in this case is different that the one looked for above. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no such file or directory") { - output := fmt.Sprintf(`{"ImportPath": "command-line-arguments","Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for #34273. go list -e with GO111MODULE=on has incorrect behavior when listing a - // directory outside any module. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside available modules") { - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - // TODO(matloob): command-line-arguments isn't correct here. - "command-line-arguments", strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Another variation of the previous error - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "outside module root") { - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - // TODO(matloob): command-line-arguments isn't correct here. - "command-line-arguments", strings.Trim(stderr.String(), "\n")) - return bytes.NewBufferString(output), nil - } - - // Workaround for an instance of golang.org/issue/26755: go list -e will return a non-zero exit - // status if there's a dependency on a package that doesn't exist. But it should return - // a zero exit status and set an error on that package. - if len(stderr.String()) > 0 && strings.Contains(stderr.String(), "no Go files in") { - // Don't clobber stdout if `go list` actually returned something. - if len(stdout.String()) > 0 { - return stdout, nil - } - // try to extract package name from string - stderrStr := stderr.String() - var importPath string - colon := strings.Index(stderrStr, ":") - if colon > 0 && strings.HasPrefix(stderrStr, "go build ") { - importPath = stderrStr[len("go build "):colon] - } - output := fmt.Sprintf(`{"ImportPath": %q,"Incomplete": true,"Error": {"Pos": "","Err": %q}}`, - importPath, strings.Trim(stderrStr, "\n")) - return bytes.NewBufferString(output), nil - } - - // Export mode entails a build. - // If that build fails, errors appear on stderr - // (despite the -e flag) and the Export field is blank. - // Do not fail in that case. - // The same is true if an ad-hoc package given to go list doesn't exist. - // TODO(matloob): Remove these once we can depend on go list to exit with a zero status with -e even when - // packages don't exist or a build fails. - if !usesExportData(cfg) && !containsGoFile(args) { - return nil, friendlyErr - } - } - return stdout, nil -} - -// OverlayJSON is the format overlay files are expected to be in. -// The Replace map maps from overlaid paths to replacement paths: -// the Go command will forward all reads trying to open -// each overlaid path to its replacement path, or consider the overlaid -// path not to exist if the replacement path is empty. -// -// From golang/go#39958. -type OverlayJSON struct { - Replace map[string]string `json:"replace,omitempty"` -} - -// writeOverlays writes out files for go list's -overlay flag, as described -// above. -func (state *golistState) writeOverlays() (filename string, cleanup func(), err error) { - // Do nothing if there are no overlays in the config. - if len(state.cfg.Overlay) == 0 { - return "", func() {}, nil - } - dir, err := ioutil.TempDir("", "gopackages-*") - if err != nil { - return "", nil, err - } - // The caller must clean up this directory, unless this function returns an - // error. - cleanup = func() { - os.RemoveAll(dir) - } - defer func() { - if err != nil { - cleanup() - } - }() - overlays := map[string]string{} - for k, v := range state.cfg.Overlay { - // Create a unique filename for the overlaid files, to avoid - // creating nested directories. - noSeparator := strings.Join(strings.Split(filepath.ToSlash(k), "/"), "") - f, err := ioutil.TempFile(dir, fmt.Sprintf("*-%s", noSeparator)) - if err != nil { - return "", func() {}, err - } - if _, err := f.Write(v); err != nil { - return "", func() {}, err - } - if err := f.Close(); err != nil { - return "", func() {}, err - } - overlays[k] = f.Name() - } - b, err := json.Marshal(OverlayJSON{Replace: overlays}) - if err != nil { - return "", func() {}, err - } - // Write out the overlay file that contains the filepath mappings. - filename = filepath.Join(dir, "overlay.json") - if err := ioutil.WriteFile(filename, b, 0665); err != nil { - return "", func() {}, err - } - return filename, cleanup, nil -} - -func containsGoFile(s []string) bool { - for _, f := range s { - if strings.HasSuffix(f, ".go") { - return true - } - } - return false -} - -func cmdDebugStr(cmd *exec.Cmd) string { - env := make(map[string]string) - for _, kv := range cmd.Env { - split := strings.SplitN(kv, "=", 2) - k, v := split[0], split[1] - env[k] = v - } - - var args []string - for _, arg := range cmd.Args { - quoted := strconv.Quote(arg) - if quoted[1:len(quoted)-1] != arg || strings.Contains(arg, " ") { - args = append(args, quoted) - } else { - args = append(args, arg) - } - } - return fmt.Sprintf("GOROOT=%v GOPATH=%v GO111MODULE=%v GOPROXY=%v PWD=%v %v", env["GOROOT"], env["GOPATH"], env["GO111MODULE"], env["GOPROXY"], env["PWD"], strings.Join(args, " ")) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go deleted file mode 100644 index 9576b472f9..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go +++ /dev/null @@ -1,575 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "encoding/json" - "fmt" - "go/parser" - "go/token" - "os" - "path/filepath" - "regexp" - "sort" - "strconv" - "strings" - - "golang.org/x/tools/internal/gocommand" -) - -// processGolistOverlay provides rudimentary support for adding -// files that don't exist on disk to an overlay. The results can be -// sometimes incorrect. -// TODO(matloob): Handle unsupported cases, including the following: -// - determining the correct package to add given a new import path -func (state *golistState) processGolistOverlay(response *responseDeduper) (modifiedPkgs, needPkgs []string, err error) { - havePkgs := make(map[string]string) // importPath -> non-test package ID - needPkgsSet := make(map[string]bool) - modifiedPkgsSet := make(map[string]bool) - - pkgOfDir := make(map[string][]*Package) - for _, pkg := range response.dr.Packages { - // This is an approximation of import path to id. This can be - // wrong for tests, vendored packages, and a number of other cases. - havePkgs[pkg.PkgPath] = pkg.ID - dir, err := commonDir(pkg.GoFiles) - if err != nil { - return nil, nil, err - } - if dir != "" { - pkgOfDir[dir] = append(pkgOfDir[dir], pkg) - } - } - - // If no new imports are added, it is safe to avoid loading any needPkgs. - // Otherwise, it's hard to tell which package is actually being loaded - // (due to vendoring) and whether any modified package will show up - // in the transitive set of dependencies (because new imports are added, - // potentially modifying the transitive set of dependencies). - var overlayAddsImports bool - - // If both a package and its test package are created by the overlay, we - // need the real package first. Process all non-test files before test - // files, and make the whole process deterministic while we're at it. - var overlayFiles []string - for opath := range state.cfg.Overlay { - overlayFiles = append(overlayFiles, opath) - } - sort.Slice(overlayFiles, func(i, j int) bool { - iTest := strings.HasSuffix(overlayFiles[i], "_test.go") - jTest := strings.HasSuffix(overlayFiles[j], "_test.go") - if iTest != jTest { - return !iTest // non-tests are before tests. - } - return overlayFiles[i] < overlayFiles[j] - }) - for _, opath := range overlayFiles { - contents := state.cfg.Overlay[opath] - base := filepath.Base(opath) - dir := filepath.Dir(opath) - var pkg *Package // if opath belongs to both a package and its test variant, this will be the test variant - var testVariantOf *Package // if opath is a test file, this is the package it is testing - var fileExists bool - isTestFile := strings.HasSuffix(opath, "_test.go") - pkgName, ok := extractPackageName(opath, contents) - if !ok { - // Don't bother adding a file that doesn't even have a parsable package statement - // to the overlay. - continue - } - // If all the overlay files belong to a different package, change the - // package name to that package. - maybeFixPackageName(pkgName, isTestFile, pkgOfDir[dir]) - nextPackage: - for _, p := range response.dr.Packages { - if pkgName != p.Name && p.ID != "command-line-arguments" { - continue - } - for _, f := range p.GoFiles { - if !sameFile(filepath.Dir(f), dir) { - continue - } - // Make sure to capture information on the package's test variant, if needed. - if isTestFile && !hasTestFiles(p) { - // TODO(matloob): Are there packages other than the 'production' variant - // of a package that this can match? This shouldn't match the test main package - // because the file is generated in another directory. - testVariantOf = p - continue nextPackage - } else if !isTestFile && hasTestFiles(p) { - // We're examining a test variant, but the overlaid file is - // a non-test file. Because the overlay implementation - // (currently) only adds a file to one package, skip this - // package, so that we can add the file to the production - // variant of the package. (https://golang.org/issue/36857 - // tracks handling overlays on both the production and test - // variant of a package). - continue nextPackage - } - if pkg != nil && p != pkg && pkg.PkgPath == p.PkgPath { - // We have already seen the production version of the - // for which p is a test variant. - if hasTestFiles(p) { - testVariantOf = pkg - } - } - pkg = p - if filepath.Base(f) == base { - fileExists = true - } - } - } - // The overlay could have included an entirely new package or an - // ad-hoc package. An ad-hoc package is one that we have manually - // constructed from inadequate `go list` results for a file= query. - // It will have the ID command-line-arguments. - if pkg == nil || pkg.ID == "command-line-arguments" { - // Try to find the module or gopath dir the file is contained in. - // Then for modules, add the module opath to the beginning. - pkgPath, ok, err := state.getPkgPath(dir) - if err != nil { - return nil, nil, err - } - if !ok { - break - } - var forTest string // only set for x tests - isXTest := strings.HasSuffix(pkgName, "_test") - if isXTest { - forTest = pkgPath - pkgPath += "_test" - } - id := pkgPath - if isTestFile { - if isXTest { - id = fmt.Sprintf("%s [%s.test]", pkgPath, forTest) - } else { - id = fmt.Sprintf("%s [%s.test]", pkgPath, pkgPath) - } - } - if pkg != nil { - // TODO(rstambler): We should change the package's path and ID - // here. The only issue is that this messes with the roots. - } else { - // Try to reclaim a package with the same ID, if it exists in the response. - for _, p := range response.dr.Packages { - if reclaimPackage(p, id, opath, contents) { - pkg = p - break - } - } - // Otherwise, create a new package. - if pkg == nil { - pkg = &Package{ - PkgPath: pkgPath, - ID: id, - Name: pkgName, - Imports: make(map[string]*Package), - } - response.addPackage(pkg) - havePkgs[pkg.PkgPath] = id - // Add the production package's sources for a test variant. - if isTestFile && !isXTest && testVariantOf != nil { - pkg.GoFiles = append(pkg.GoFiles, testVariantOf.GoFiles...) - pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, testVariantOf.CompiledGoFiles...) - // Add the package under test and its imports to the test variant. - pkg.forTest = testVariantOf.PkgPath - for k, v := range testVariantOf.Imports { - pkg.Imports[k] = &Package{ID: v.ID} - } - } - if isXTest { - pkg.forTest = forTest - } - } - } - } - if !fileExists { - pkg.GoFiles = append(pkg.GoFiles, opath) - // TODO(matloob): Adding the file to CompiledGoFiles can exhibit the wrong behavior - // if the file will be ignored due to its build tags. - pkg.CompiledGoFiles = append(pkg.CompiledGoFiles, opath) - modifiedPkgsSet[pkg.ID] = true - } - imports, err := extractImports(opath, contents) - if err != nil { - // Let the parser or type checker report errors later. - continue - } - for _, imp := range imports { - // TODO(rstambler): If the package is an x test and the import has - // a test variant, make sure to replace it. - if _, found := pkg.Imports[imp]; found { - continue - } - overlayAddsImports = true - id, ok := havePkgs[imp] - if !ok { - var err error - id, err = state.resolveImport(dir, imp) - if err != nil { - return nil, nil, err - } - } - pkg.Imports[imp] = &Package{ID: id} - // Add dependencies to the non-test variant version of this package as well. - if testVariantOf != nil { - testVariantOf.Imports[imp] = &Package{ID: id} - } - } - } - - // toPkgPath guesses the package path given the id. - toPkgPath := func(sourceDir, id string) (string, error) { - if i := strings.IndexByte(id, ' '); i >= 0 { - return state.resolveImport(sourceDir, id[:i]) - } - return state.resolveImport(sourceDir, id) - } - - // Now that new packages have been created, do another pass to determine - // the new set of missing packages. - for _, pkg := range response.dr.Packages { - for _, imp := range pkg.Imports { - if len(pkg.GoFiles) == 0 { - return nil, nil, fmt.Errorf("cannot resolve imports for package %q with no Go files", pkg.PkgPath) - } - pkgPath, err := toPkgPath(filepath.Dir(pkg.GoFiles[0]), imp.ID) - if err != nil { - return nil, nil, err - } - if _, ok := havePkgs[pkgPath]; !ok { - needPkgsSet[pkgPath] = true - } - } - } - - if overlayAddsImports { - needPkgs = make([]string, 0, len(needPkgsSet)) - for pkg := range needPkgsSet { - needPkgs = append(needPkgs, pkg) - } - } - modifiedPkgs = make([]string, 0, len(modifiedPkgsSet)) - for pkg := range modifiedPkgsSet { - modifiedPkgs = append(modifiedPkgs, pkg) - } - return modifiedPkgs, needPkgs, err -} - -// resolveImport finds the ID of a package given its import path. -// In particular, it will find the right vendored copy when in GOPATH mode. -func (state *golistState) resolveImport(sourceDir, importPath string) (string, error) { - env, err := state.getEnv() - if err != nil { - return "", err - } - if env["GOMOD"] != "" { - return importPath, nil - } - - searchDir := sourceDir - for { - vendorDir := filepath.Join(searchDir, "vendor") - exists, ok := state.vendorDirs[vendorDir] - if !ok { - info, err := os.Stat(vendorDir) - exists = err == nil && info.IsDir() - state.vendorDirs[vendorDir] = exists - } - - if exists { - vendoredPath := filepath.Join(vendorDir, importPath) - if info, err := os.Stat(vendoredPath); err == nil && info.IsDir() { - // We should probably check for .go files here, but shame on anyone who fools us. - path, ok, err := state.getPkgPath(vendoredPath) - if err != nil { - return "", err - } - if ok { - return path, nil - } - } - } - - // We know we've hit the top of the filesystem when we Dir / and get /, - // or C:\ and get C:\, etc. - next := filepath.Dir(searchDir) - if next == searchDir { - break - } - searchDir = next - } - return importPath, nil -} - -func hasTestFiles(p *Package) bool { - for _, f := range p.GoFiles { - if strings.HasSuffix(f, "_test.go") { - return true - } - } - return false -} - -// determineRootDirs returns a mapping from absolute directories that could -// contain code to their corresponding import path prefixes. -func (state *golistState) determineRootDirs() (map[string]string, error) { - env, err := state.getEnv() - if err != nil { - return nil, err - } - if env["GOMOD"] != "" { - state.rootsOnce.Do(func() { - state.rootDirs, state.rootDirsError = state.determineRootDirsModules() - }) - } else { - state.rootsOnce.Do(func() { - state.rootDirs, state.rootDirsError = state.determineRootDirsGOPATH() - }) - } - return state.rootDirs, state.rootDirsError -} - -func (state *golistState) determineRootDirsModules() (map[string]string, error) { - // List all of the modules--the first will be the directory for the main - // module. Any replaced modules will also need to be treated as roots. - // Editing files in the module cache isn't a great idea, so we don't - // plan to ever support that. - out, err := state.invokeGo("list", "-m", "-json", "all") - if err != nil { - // 'go list all' will fail if we're outside of a module and - // GO111MODULE=on. Try falling back without 'all'. - var innerErr error - out, innerErr = state.invokeGo("list", "-m", "-json") - if innerErr != nil { - return nil, err - } - } - roots := map[string]string{} - modules := map[string]string{} - var i int - for dec := json.NewDecoder(out); dec.More(); { - mod := new(gocommand.ModuleJSON) - if err := dec.Decode(mod); err != nil { - return nil, err - } - if mod.Dir != "" && mod.Path != "" { - // This is a valid module; add it to the map. - absDir, err := filepath.Abs(mod.Dir) - if err != nil { - return nil, err - } - modules[absDir] = mod.Path - // The first result is the main module. - if i == 0 || mod.Replace != nil && mod.Replace.Path != "" { - roots[absDir] = mod.Path - } - } - i++ - } - return roots, nil -} - -func (state *golistState) determineRootDirsGOPATH() (map[string]string, error) { - m := map[string]string{} - for _, dir := range filepath.SplitList(state.mustGetEnv()["GOPATH"]) { - absDir, err := filepath.Abs(dir) - if err != nil { - return nil, err - } - m[filepath.Join(absDir, "src")] = "" - } - return m, nil -} - -func extractImports(filename string, contents []byte) ([]string, error) { - f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.ImportsOnly) // TODO(matloob): reuse fileset? - if err != nil { - return nil, err - } - var res []string - for _, imp := range f.Imports { - quotedPath := imp.Path.Value - path, err := strconv.Unquote(quotedPath) - if err != nil { - return nil, err - } - res = append(res, path) - } - return res, nil -} - -// reclaimPackage attempts to reuse a package that failed to load in an overlay. -// -// If the package has errors and has no Name, GoFiles, or Imports, -// then it's possible that it doesn't yet exist on disk. -func reclaimPackage(pkg *Package, id string, filename string, contents []byte) bool { - // TODO(rstambler): Check the message of the actual error? - // It differs between $GOPATH and module mode. - if pkg.ID != id { - return false - } - if len(pkg.Errors) != 1 { - return false - } - if pkg.Name != "" || pkg.ExportFile != "" { - return false - } - if len(pkg.GoFiles) > 0 || len(pkg.CompiledGoFiles) > 0 || len(pkg.OtherFiles) > 0 { - return false - } - if len(pkg.Imports) > 0 { - return false - } - pkgName, ok := extractPackageName(filename, contents) - if !ok { - return false - } - pkg.Name = pkgName - pkg.Errors = nil - return true -} - -func extractPackageName(filename string, contents []byte) (string, bool) { - // TODO(rstambler): Check the message of the actual error? - // It differs between $GOPATH and module mode. - f, err := parser.ParseFile(token.NewFileSet(), filename, contents, parser.PackageClauseOnly) // TODO(matloob): reuse fileset? - if err != nil { - return "", false - } - return f.Name.Name, true -} - -// commonDir returns the directory that all files are in, "" if files is empty, -// or an error if they aren't in the same directory. -func commonDir(files []string) (string, error) { - seen := make(map[string]bool) - for _, f := range files { - seen[filepath.Dir(f)] = true - } - if len(seen) > 1 { - return "", fmt.Errorf("files (%v) are in more than one directory: %v", files, seen) - } - for k := range seen { - // seen has only one element; return it. - return k, nil - } - return "", nil // no files -} - -// It is possible that the files in the disk directory dir have a different package -// name from newName, which is deduced from the overlays. If they all have a different -// package name, and they all have the same package name, then that name becomes -// the package name. -// It returns true if it changes the package name, false otherwise. -func maybeFixPackageName(newName string, isTestFile bool, pkgsOfDir []*Package) { - names := make(map[string]int) - for _, p := range pkgsOfDir { - names[p.Name]++ - } - if len(names) != 1 { - // some files are in different packages - return - } - var oldName string - for k := range names { - oldName = k - } - if newName == oldName { - return - } - // We might have a case where all of the package names in the directory are - // the same, but the overlay file is for an x test, which belongs to its - // own package. If the x test does not yet exist on disk, we may not yet - // have its package name on disk, but we should not rename the packages. - // - // We use a heuristic to determine if this file belongs to an x test: - // The test file should have a package name whose package name has a _test - // suffix or looks like "newName_test". - maybeXTest := strings.HasPrefix(oldName+"_test", newName) || strings.HasSuffix(newName, "_test") - if isTestFile && maybeXTest { - return - } - for _, p := range pkgsOfDir { - p.Name = newName - } -} - -// This function is copy-pasted from -// https://github.com/golang/go/blob/9706f510a5e2754595d716bd64be8375997311fb/src/cmd/go/internal/search/search.go#L360. -// It should be deleted when we remove support for overlays from go/packages. -// -// NOTE: This does not handle any ./... or ./ style queries, as this function -// doesn't know the working directory. -// -// matchPattern(pattern)(name) reports whether -// name matches pattern. Pattern is a limited glob -// pattern in which '...' means 'any string' and there -// is no other special syntax. -// Unfortunately, there are two special cases. Quoting "go help packages": -// -// First, /... at the end of the pattern can match an empty string, -// so that net/... matches both net and packages in its subdirectories, like net/http. -// Second, any slash-separated pattern element containing a wildcard never -// participates in a match of the "vendor" element in the path of a vendored -// package, so that ./... does not match packages in subdirectories of -// ./vendor or ./mycode/vendor, but ./vendor/... and ./mycode/vendor/... do. -// Note, however, that a directory named vendor that itself contains code -// is not a vendored package: cmd/vendor would be a command named vendor, -// and the pattern cmd/... matches it. -func matchPattern(pattern string) func(name string) bool { - // Convert pattern to regular expression. - // The strategy for the trailing /... is to nest it in an explicit ? expression. - // The strategy for the vendor exclusion is to change the unmatchable - // vendor strings to a disallowed code point (vendorChar) and to use - // "(anything but that codepoint)*" as the implementation of the ... wildcard. - // This is a bit complicated but the obvious alternative, - // namely a hand-written search like in most shell glob matchers, - // is too easy to make accidentally exponential. - // Using package regexp guarantees linear-time matching. - - const vendorChar = "\x00" - - if strings.Contains(pattern, vendorChar) { - return func(name string) bool { return false } - } - - re := regexp.QuoteMeta(pattern) - re = replaceVendor(re, vendorChar) - switch { - case strings.HasSuffix(re, `/`+vendorChar+`/\.\.\.`): - re = strings.TrimSuffix(re, `/`+vendorChar+`/\.\.\.`) + `(/vendor|/` + vendorChar + `/\.\.\.)` - case re == vendorChar+`/\.\.\.`: - re = `(/vendor|/` + vendorChar + `/\.\.\.)` - case strings.HasSuffix(re, `/\.\.\.`): - re = strings.TrimSuffix(re, `/\.\.\.`) + `(/\.\.\.)?` - } - re = strings.ReplaceAll(re, `\.\.\.`, `[^`+vendorChar+`]*`) - - reg := regexp.MustCompile(`^` + re + `$`) - - return func(name string) bool { - if strings.Contains(name, vendorChar) { - return false - } - return reg.MatchString(replaceVendor(name, vendorChar)) - } -} - -// replaceVendor returns the result of replacing -// non-trailing vendor path elements in x with repl. -func replaceVendor(x, repl string) string { - if !strings.Contains(x, "vendor") { - return x - } - elem := strings.Split(x, "/") - for i := 0; i < len(elem)-1; i++ { - if elem[i] == "vendor" { - elem[i] = repl - } - } - return strings.Join(elem, "/") -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go deleted file mode 100644 index 5c080d21b5..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "fmt" - "strings" -) - -var allModes = []LoadMode{ - NeedName, - NeedFiles, - NeedCompiledGoFiles, - NeedImports, - NeedDeps, - NeedExportFile, - NeedTypes, - NeedSyntax, - NeedTypesInfo, - NeedTypesSizes, -} - -var modeStrings = []string{ - "NeedName", - "NeedFiles", - "NeedCompiledGoFiles", - "NeedImports", - "NeedDeps", - "NeedExportFile", - "NeedTypes", - "NeedSyntax", - "NeedTypesInfo", - "NeedTypesSizes", -} - -func (mod LoadMode) String() string { - m := mod - if m == 0 { - return "LoadMode(0)" - } - var out []string - for i, x := range allModes { - if x > m { - break - } - if (m & x) != 0 { - out = append(out, modeStrings[i]) - m = m ^ x - } - } - if m != 0 { - out = append(out, "Unknown") - } - return fmt.Sprintf("LoadMode(%s)", strings.Join(out, "|")) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go deleted file mode 100644 index 0f1505b808..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/packages.go +++ /dev/null @@ -1,1326 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -// See doc.go for package documentation and implementation notes. - -import ( - "context" - "encoding/json" - "fmt" - "go/ast" - "go/parser" - "go/scanner" - "go/token" - "go/types" - "io" - "io/ioutil" - "log" - "os" - "path/filepath" - "runtime" - "strings" - "sync" - "time" - - "golang.org/x/tools/go/gcexportdata" - "golang.org/x/tools/internal/gocommand" - "golang.org/x/tools/internal/packagesinternal" - "golang.org/x/tools/internal/typeparams" - "golang.org/x/tools/internal/typesinternal" -) - -// A LoadMode controls the amount of detail to return when loading. -// The bits below can be combined to specify which fields should be -// filled in the result packages. -// The zero value is a special case, equivalent to combining -// the NeedName, NeedFiles, and NeedCompiledGoFiles bits. -// ID and Errors (if present) will always be filled. -// Load may return more information than requested. -type LoadMode int - -const ( - // NeedName adds Name and PkgPath. - NeedName LoadMode = 1 << iota - - // NeedFiles adds GoFiles and OtherFiles. - NeedFiles - - // NeedCompiledGoFiles adds CompiledGoFiles. - NeedCompiledGoFiles - - // NeedImports adds Imports. If NeedDeps is not set, the Imports field will contain - // "placeholder" Packages with only the ID set. - NeedImports - - // NeedDeps adds the fields requested by the LoadMode in the packages in Imports. - NeedDeps - - // NeedExportFile adds ExportFile. - NeedExportFile - - // NeedTypes adds Types, Fset, and IllTyped. - NeedTypes - - // NeedSyntax adds Syntax. - NeedSyntax - - // NeedTypesInfo adds TypesInfo. - NeedTypesInfo - - // NeedTypesSizes adds TypesSizes. - NeedTypesSizes - - // needInternalDepsErrors adds the internal deps errors field for use by gopls. - needInternalDepsErrors - - // needInternalForTest adds the internal forTest field. - // Tests must also be set on the context for this field to be populated. - needInternalForTest - - // typecheckCgo enables full support for type checking cgo. Requires Go 1.15+. - // Modifies CompiledGoFiles and Types, and has no effect on its own. - typecheckCgo - - // NeedModule adds Module. - NeedModule - - // NeedEmbedFiles adds EmbedFiles. - NeedEmbedFiles - - // NeedEmbedPatterns adds EmbedPatterns. - NeedEmbedPatterns -) - -const ( - // Deprecated: LoadFiles exists for historical compatibility - // and should not be used. Please directly specify the needed fields using the Need values. - LoadFiles = NeedName | NeedFiles | NeedCompiledGoFiles - - // Deprecated: LoadImports exists for historical compatibility - // and should not be used. Please directly specify the needed fields using the Need values. - LoadImports = LoadFiles | NeedImports - - // Deprecated: LoadTypes exists for historical compatibility - // and should not be used. Please directly specify the needed fields using the Need values. - LoadTypes = LoadImports | NeedTypes | NeedTypesSizes - - // Deprecated: LoadSyntax exists for historical compatibility - // and should not be used. Please directly specify the needed fields using the Need values. - LoadSyntax = LoadTypes | NeedSyntax | NeedTypesInfo - - // Deprecated: LoadAllSyntax exists for historical compatibility - // and should not be used. Please directly specify the needed fields using the Need values. - LoadAllSyntax = LoadSyntax | NeedDeps - - // Deprecated: NeedExportsFile is a historical misspelling of NeedExportFile. - NeedExportsFile = NeedExportFile -) - -// A Config specifies details about how packages should be loaded. -// The zero value is a valid configuration. -// Calls to Load do not modify this struct. -type Config struct { - // Mode controls the level of information returned for each package. - Mode LoadMode - - // Context specifies the context for the load operation. - // If the context is cancelled, the loader may stop early - // and return an ErrCancelled error. - // If Context is nil, the load cannot be cancelled. - Context context.Context - - // Logf is the logger for the config. - // If the user provides a logger, debug logging is enabled. - // If the GOPACKAGESDEBUG environment variable is set to true, - // but the logger is nil, default to log.Printf. - Logf func(format string, args ...interface{}) - - // Dir is the directory in which to run the build system's query tool - // that provides information about the packages. - // If Dir is empty, the tool is run in the current directory. - Dir string - - // Env is the environment to use when invoking the build system's query tool. - // If Env is nil, the current environment is used. - // As in os/exec's Cmd, only the last value in the slice for - // each environment key is used. To specify the setting of only - // a few variables, append to the current environment, as in: - // - // opt.Env = append(os.Environ(), "GOOS=plan9", "GOARCH=386") - // - Env []string - - // gocmdRunner guards go command calls from concurrency errors. - gocmdRunner *gocommand.Runner - - // BuildFlags is a list of command-line flags to be passed through to - // the build system's query tool. - BuildFlags []string - - // modFile will be used for -modfile in go command invocations. - modFile string - - // modFlag will be used for -modfile in go command invocations. - modFlag string - - // Fset provides source position information for syntax trees and types. - // If Fset is nil, Load will use a new fileset, but preserve Fset's value. - Fset *token.FileSet - - // ParseFile is called to read and parse each file - // when preparing a package's type-checked syntax tree. - // It must be safe to call ParseFile simultaneously from multiple goroutines. - // If ParseFile is nil, the loader will uses parser.ParseFile. - // - // ParseFile should parse the source from src and use filename only for - // recording position information. - // - // An application may supply a custom implementation of ParseFile - // to change the effective file contents or the behavior of the parser, - // or to modify the syntax tree. For example, selectively eliminating - // unwanted function bodies can significantly accelerate type checking. - ParseFile func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) - - // If Tests is set, the loader includes not just the packages - // matching a particular pattern but also any related test packages, - // including test-only variants of the package and the test executable. - // - // For example, when using the go command, loading "fmt" with Tests=true - // returns four packages, with IDs "fmt" (the standard package), - // "fmt [fmt.test]" (the package as compiled for the test), - // "fmt_test" (the test functions from source files in package fmt_test), - // and "fmt.test" (the test binary). - // - // In build systems with explicit names for tests, - // setting Tests may have no effect. - Tests bool - - // Overlay provides a mapping of absolute file paths to file contents. - // If the file with the given path already exists, the parser will use the - // alternative file contents provided by the map. - // - // Overlays provide incomplete support for when a given file doesn't - // already exist on disk. See the package doc above for more details. - Overlay map[string][]byte -} - -// driver is the type for functions that query the build system for the -// packages named by the patterns. -type driver func(cfg *Config, patterns ...string) (*driverResponse, error) - -// driverResponse contains the results for a driver query. -type driverResponse struct { - // NotHandled is returned if the request can't be handled by the current - // driver. If an external driver returns a response with NotHandled, the - // rest of the driverResponse is ignored, and go/packages will fallback - // to the next driver. If go/packages is extended in the future to support - // lists of multiple drivers, go/packages will fall back to the next driver. - NotHandled bool - - // Sizes, if not nil, is the types.Sizes to use when type checking. - Sizes *types.StdSizes - - // Roots is the set of package IDs that make up the root packages. - // We have to encode this separately because when we encode a single package - // we cannot know if it is one of the roots as that requires knowledge of the - // graph it is part of. - Roots []string `json:",omitempty"` - - // Packages is the full set of packages in the graph. - // The packages are not connected into a graph. - // The Imports if populated will be stubs that only have their ID set. - // Imports will be connected and then type and syntax information added in a - // later pass (see refine). - Packages []*Package - - // GoVersion is the minor version number used by the driver - // (e.g. the go command on the PATH) when selecting .go files. - // Zero means unknown. - GoVersion int -} - -// Load loads and returns the Go packages named by the given patterns. -// -// Config specifies loading options; -// nil behaves the same as an empty Config. -// -// Load returns an error if any of the patterns was invalid -// as defined by the underlying build system. -// It may return an empty list of packages without an error, -// for instance for an empty expansion of a valid wildcard. -// Errors associated with a particular package are recorded in the -// corresponding Package's Errors list, and do not cause Load to -// return an error. Clients may need to handle such errors before -// proceeding with further analysis. The PrintErrors function is -// provided for convenient display of all errors. -func Load(cfg *Config, patterns ...string) ([]*Package, error) { - l := newLoader(cfg) - response, err := defaultDriver(&l.Config, patterns...) - if err != nil { - return nil, err - } - l.sizes = response.Sizes - return l.refine(response) -} - -// defaultDriver is a driver that implements go/packages' fallback behavior. -// It will try to request to an external driver, if one exists. If there's -// no external driver, or the driver returns a response with NotHandled set, -// defaultDriver will fall back to the go list driver. -func defaultDriver(cfg *Config, patterns ...string) (*driverResponse, error) { - driver := findExternalDriver(cfg) - if driver == nil { - driver = goListDriver - } - response, err := driver(cfg, patterns...) - if err != nil { - return response, err - } else if response.NotHandled { - return goListDriver(cfg, patterns...) - } - return response, nil -} - -// A Package describes a loaded Go package. -type Package struct { - // ID is a unique identifier for a package, - // in a syntax provided by the underlying build system. - // - // Because the syntax varies based on the build system, - // clients should treat IDs as opaque and not attempt to - // interpret them. - ID string - - // Name is the package name as it appears in the package source code. - Name string - - // PkgPath is the package path as used by the go/types package. - PkgPath string - - // Errors contains any errors encountered querying the metadata - // of the package, or while parsing or type-checking its files. - Errors []Error - - // TypeErrors contains the subset of errors produced during type checking. - TypeErrors []types.Error - - // GoFiles lists the absolute file paths of the package's Go source files. - GoFiles []string - - // CompiledGoFiles lists the absolute file paths of the package's source - // files that are suitable for type checking. - // This may differ from GoFiles if files are processed before compilation. - CompiledGoFiles []string - - // OtherFiles lists the absolute file paths of the package's non-Go source files, - // including assembly, C, C++, Fortran, Objective-C, SWIG, and so on. - OtherFiles []string - - // EmbedFiles lists the absolute file paths of the package's files - // embedded with go:embed. - EmbedFiles []string - - // EmbedPatterns lists the absolute file patterns of the package's - // files embedded with go:embed. - EmbedPatterns []string - - // IgnoredFiles lists source files that are not part of the package - // using the current build configuration but that might be part of - // the package using other build configurations. - IgnoredFiles []string - - // ExportFile is the absolute path to a file containing type - // information for the package as provided by the build system. - ExportFile string - - // Imports maps import paths appearing in the package's Go source files - // to corresponding loaded Packages. - Imports map[string]*Package - - // Types provides type information for the package. - // The NeedTypes LoadMode bit sets this field for packages matching the - // patterns; type information for dependencies may be missing or incomplete, - // unless NeedDeps and NeedImports are also set. - Types *types.Package - - // Fset provides position information for Types, TypesInfo, and Syntax. - // It is set only when Types is set. - Fset *token.FileSet - - // IllTyped indicates whether the package or any dependency contains errors. - // It is set only when Types is set. - IllTyped bool - - // Syntax is the package's syntax trees, for the files listed in CompiledGoFiles. - // - // The NeedSyntax LoadMode bit populates this field for packages matching the patterns. - // If NeedDeps and NeedImports are also set, this field will also be populated - // for dependencies. - // - // Syntax is kept in the same order as CompiledGoFiles, with the caveat that nils are - // removed. If parsing returned nil, Syntax may be shorter than CompiledGoFiles. - Syntax []*ast.File - - // TypesInfo provides type information about the package's syntax trees. - // It is set only when Syntax is set. - TypesInfo *types.Info - - // TypesSizes provides the effective size function for types in TypesInfo. - TypesSizes types.Sizes - - // forTest is the package under test, if any. - forTest string - - // depsErrors is the DepsErrors field from the go list response, if any. - depsErrors []*packagesinternal.PackageError - - // module is the module information for the package if it exists. - Module *Module -} - -// Module provides module information for a package. -type Module struct { - Path string // module path - Version string // module version - Replace *Module // replaced by this module - Time *time.Time // time version was created - Main bool // is this the main module? - Indirect bool // is this module only an indirect dependency of main module? - Dir string // directory holding files for this module, if any - GoMod string // path to go.mod file used when loading this module, if any - GoVersion string // go version used in module - Error *ModuleError // error loading module -} - -// ModuleError holds errors loading a module. -type ModuleError struct { - Err string // the error itself -} - -func init() { - packagesinternal.GetForTest = func(p interface{}) string { - return p.(*Package).forTest - } - packagesinternal.GetDepsErrors = func(p interface{}) []*packagesinternal.PackageError { - return p.(*Package).depsErrors - } - packagesinternal.GetGoCmdRunner = func(config interface{}) *gocommand.Runner { - return config.(*Config).gocmdRunner - } - packagesinternal.SetGoCmdRunner = func(config interface{}, runner *gocommand.Runner) { - config.(*Config).gocmdRunner = runner - } - packagesinternal.SetModFile = func(config interface{}, value string) { - config.(*Config).modFile = value - } - packagesinternal.SetModFlag = func(config interface{}, value string) { - config.(*Config).modFlag = value - } - packagesinternal.TypecheckCgo = int(typecheckCgo) - packagesinternal.DepsErrors = int(needInternalDepsErrors) - packagesinternal.ForTest = int(needInternalForTest) -} - -// An Error describes a problem with a package's metadata, syntax, or types. -type Error struct { - Pos string // "file:line:col" or "file:line" or "" or "-" - Msg string - Kind ErrorKind -} - -// ErrorKind describes the source of the error, allowing the user to -// differentiate between errors generated by the driver, the parser, or the -// type-checker. -type ErrorKind int - -const ( - UnknownError ErrorKind = iota - ListError - ParseError - TypeError -) - -func (err Error) Error() string { - pos := err.Pos - if pos == "" { - pos = "-" // like token.Position{}.String() - } - return pos + ": " + err.Msg -} - -// flatPackage is the JSON form of Package -// It drops all the type and syntax fields, and transforms the Imports -// -// TODO(adonovan): identify this struct with Package, effectively -// publishing the JSON protocol. -type flatPackage struct { - ID string - Name string `json:",omitempty"` - PkgPath string `json:",omitempty"` - Errors []Error `json:",omitempty"` - GoFiles []string `json:",omitempty"` - CompiledGoFiles []string `json:",omitempty"` - OtherFiles []string `json:",omitempty"` - EmbedFiles []string `json:",omitempty"` - EmbedPatterns []string `json:",omitempty"` - IgnoredFiles []string `json:",omitempty"` - ExportFile string `json:",omitempty"` - Imports map[string]string `json:",omitempty"` -} - -// MarshalJSON returns the Package in its JSON form. -// For the most part, the structure fields are written out unmodified, and -// the type and syntax fields are skipped. -// The imports are written out as just a map of path to package id. -// The errors are written using a custom type that tries to preserve the -// structure of error types we know about. -// -// This method exists to enable support for additional build systems. It is -// not intended for use by clients of the API and we may change the format. -func (p *Package) MarshalJSON() ([]byte, error) { - flat := &flatPackage{ - ID: p.ID, - Name: p.Name, - PkgPath: p.PkgPath, - Errors: p.Errors, - GoFiles: p.GoFiles, - CompiledGoFiles: p.CompiledGoFiles, - OtherFiles: p.OtherFiles, - EmbedFiles: p.EmbedFiles, - EmbedPatterns: p.EmbedPatterns, - IgnoredFiles: p.IgnoredFiles, - ExportFile: p.ExportFile, - } - if len(p.Imports) > 0 { - flat.Imports = make(map[string]string, len(p.Imports)) - for path, ipkg := range p.Imports { - flat.Imports[path] = ipkg.ID - } - } - return json.Marshal(flat) -} - -// UnmarshalJSON reads in a Package from its JSON format. -// See MarshalJSON for details about the format accepted. -func (p *Package) UnmarshalJSON(b []byte) error { - flat := &flatPackage{} - if err := json.Unmarshal(b, &flat); err != nil { - return err - } - *p = Package{ - ID: flat.ID, - Name: flat.Name, - PkgPath: flat.PkgPath, - Errors: flat.Errors, - GoFiles: flat.GoFiles, - CompiledGoFiles: flat.CompiledGoFiles, - OtherFiles: flat.OtherFiles, - EmbedFiles: flat.EmbedFiles, - EmbedPatterns: flat.EmbedPatterns, - ExportFile: flat.ExportFile, - } - if len(flat.Imports) > 0 { - p.Imports = make(map[string]*Package, len(flat.Imports)) - for path, id := range flat.Imports { - p.Imports[path] = &Package{ID: id} - } - } - return nil -} - -func (p *Package) String() string { return p.ID } - -// loaderPackage augments Package with state used during the loading phase -type loaderPackage struct { - *Package - importErrors map[string]error // maps each bad import to its error - loadOnce sync.Once - color uint8 // for cycle detection - needsrc bool // load from source (Mode >= LoadTypes) - needtypes bool // type information is either requested or depended on - initial bool // package was matched by a pattern - goVersion int // minor version number of go command on PATH -} - -// loader holds the working state of a single call to load. -type loader struct { - pkgs map[string]*loaderPackage - Config - sizes types.Sizes - parseCache map[string]*parseValue - parseCacheMu sync.Mutex - exportMu sync.Mutex // enforces mutual exclusion of exportdata operations - - // Config.Mode contains the implied mode (see impliedLoadMode). - // Implied mode contains all the fields we need the data for. - // In requestedMode there are the actually requested fields. - // We'll zero them out before returning packages to the user. - // This makes it easier for us to get the conditions where - // we need certain modes right. - requestedMode LoadMode -} - -type parseValue struct { - f *ast.File - err error - ready chan struct{} -} - -func newLoader(cfg *Config) *loader { - ld := &loader{ - parseCache: map[string]*parseValue{}, - } - if cfg != nil { - ld.Config = *cfg - // If the user has provided a logger, use it. - ld.Config.Logf = cfg.Logf - } - if ld.Config.Logf == nil { - // If the GOPACKAGESDEBUG environment variable is set to true, - // but the user has not provided a logger, default to log.Printf. - if debug { - ld.Config.Logf = log.Printf - } else { - ld.Config.Logf = func(format string, args ...interface{}) {} - } - } - if ld.Config.Mode == 0 { - ld.Config.Mode = NeedName | NeedFiles | NeedCompiledGoFiles // Preserve zero behavior of Mode for backwards compatibility. - } - if ld.Config.Env == nil { - ld.Config.Env = os.Environ() - } - if ld.Config.gocmdRunner == nil { - ld.Config.gocmdRunner = &gocommand.Runner{} - } - if ld.Context == nil { - ld.Context = context.Background() - } - if ld.Dir == "" { - if dir, err := os.Getwd(); err == nil { - ld.Dir = dir - } - } - - // Save the actually requested fields. We'll zero them out before returning packages to the user. - ld.requestedMode = ld.Mode - ld.Mode = impliedLoadMode(ld.Mode) - - if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 { - if ld.Fset == nil { - ld.Fset = token.NewFileSet() - } - - // ParseFile is required even in LoadTypes mode - // because we load source if export data is missing. - if ld.ParseFile == nil { - ld.ParseFile = func(fset *token.FileSet, filename string, src []byte) (*ast.File, error) { - const mode = parser.AllErrors | parser.ParseComments - return parser.ParseFile(fset, filename, src, mode) - } - } - } - - return ld -} - -// refine connects the supplied packages into a graph and then adds type and -// and syntax information as requested by the LoadMode. -func (ld *loader) refine(response *driverResponse) ([]*Package, error) { - roots := response.Roots - rootMap := make(map[string]int, len(roots)) - for i, root := range roots { - rootMap[root] = i - } - ld.pkgs = make(map[string]*loaderPackage) - // first pass, fixup and build the map and roots - var initial = make([]*loaderPackage, len(roots)) - for _, pkg := range response.Packages { - rootIndex := -1 - if i, found := rootMap[pkg.ID]; found { - rootIndex = i - } - - // Overlays can invalidate export data. - // TODO(matloob): make this check fine-grained based on dependencies on overlaid files - exportDataInvalid := len(ld.Overlay) > 0 || pkg.ExportFile == "" && pkg.PkgPath != "unsafe" - // This package needs type information if the caller requested types and the package is - // either a root, or it's a non-root and the user requested dependencies ... - needtypes := (ld.Mode&NeedTypes|NeedTypesInfo != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) - // This package needs source if the call requested source (or types info, which implies source) - // and the package is either a root, or itas a non- root and the user requested dependencies... - needsrc := ((ld.Mode&(NeedSyntax|NeedTypesInfo) != 0 && (rootIndex >= 0 || ld.Mode&NeedDeps != 0)) || - // ... or if we need types and the exportData is invalid. We fall back to (incompletely) - // typechecking packages from source if they fail to compile. - (ld.Mode&(NeedTypes|NeedTypesInfo) != 0 && exportDataInvalid)) && pkg.PkgPath != "unsafe" - lpkg := &loaderPackage{ - Package: pkg, - needtypes: needtypes, - needsrc: needsrc, - goVersion: response.GoVersion, - } - ld.pkgs[lpkg.ID] = lpkg - if rootIndex >= 0 { - initial[rootIndex] = lpkg - lpkg.initial = true - } - } - for i, root := range roots { - if initial[i] == nil { - return nil, fmt.Errorf("root package %v is missing", root) - } - } - - // Materialize the import graph. - - const ( - white = 0 // new - grey = 1 // in progress - black = 2 // complete - ) - - // visit traverses the import graph, depth-first, - // and materializes the graph as Packages.Imports. - // - // Valid imports are saved in the Packages.Import map. - // Invalid imports (cycles and missing nodes) are saved in the importErrors map. - // Thus, even in the presence of both kinds of errors, the Import graph remains a DAG. - // - // visit returns whether the package needs src or has a transitive - // dependency on a package that does. These are the only packages - // for which we load source code. - var stack []*loaderPackage - var visit func(lpkg *loaderPackage) bool - var srcPkgs []*loaderPackage - visit = func(lpkg *loaderPackage) bool { - switch lpkg.color { - case black: - return lpkg.needsrc - case grey: - panic("internal error: grey node") - } - lpkg.color = grey - stack = append(stack, lpkg) // push - stubs := lpkg.Imports // the structure form has only stubs with the ID in the Imports - // If NeedImports isn't set, the imports fields will all be zeroed out. - if ld.Mode&NeedImports != 0 { - lpkg.Imports = make(map[string]*Package, len(stubs)) - for importPath, ipkg := range stubs { - var importErr error - imp := ld.pkgs[ipkg.ID] - if imp == nil { - // (includes package "C" when DisableCgo) - importErr = fmt.Errorf("missing package: %q", ipkg.ID) - } else if imp.color == grey { - importErr = fmt.Errorf("import cycle: %s", stack) - } - if importErr != nil { - if lpkg.importErrors == nil { - lpkg.importErrors = make(map[string]error) - } - lpkg.importErrors[importPath] = importErr - continue - } - - if visit(imp) { - lpkg.needsrc = true - } - lpkg.Imports[importPath] = imp.Package - } - } - if lpkg.needsrc { - srcPkgs = append(srcPkgs, lpkg) - } - if ld.Mode&NeedTypesSizes != 0 { - lpkg.TypesSizes = ld.sizes - } - stack = stack[:len(stack)-1] // pop - lpkg.color = black - - return lpkg.needsrc - } - - if ld.Mode&NeedImports == 0 { - // We do this to drop the stub import packages that we are not even going to try to resolve. - for _, lpkg := range initial { - lpkg.Imports = nil - } - } else { - // For each initial package, create its import DAG. - for _, lpkg := range initial { - visit(lpkg) - } - } - if ld.Mode&NeedImports != 0 && ld.Mode&NeedTypes != 0 { - for _, lpkg := range srcPkgs { - // Complete type information is required for the - // immediate dependencies of each source package. - for _, ipkg := range lpkg.Imports { - imp := ld.pkgs[ipkg.ID] - imp.needtypes = true - } - } - } - // Load type data and syntax if needed, starting at - // the initial packages (roots of the import DAG). - if ld.Mode&NeedTypes != 0 || ld.Mode&NeedSyntax != 0 { - var wg sync.WaitGroup - for _, lpkg := range initial { - wg.Add(1) - go func(lpkg *loaderPackage) { - ld.loadRecursive(lpkg) - wg.Done() - }(lpkg) - } - wg.Wait() - } - - result := make([]*Package, len(initial)) - for i, lpkg := range initial { - result[i] = lpkg.Package - } - for i := range ld.pkgs { - // Clear all unrequested fields, - // to catch programs that use more than they request. - if ld.requestedMode&NeedName == 0 { - ld.pkgs[i].Name = "" - ld.pkgs[i].PkgPath = "" - } - if ld.requestedMode&NeedFiles == 0 { - ld.pkgs[i].GoFiles = nil - ld.pkgs[i].OtherFiles = nil - ld.pkgs[i].IgnoredFiles = nil - } - if ld.requestedMode&NeedEmbedFiles == 0 { - ld.pkgs[i].EmbedFiles = nil - } - if ld.requestedMode&NeedEmbedPatterns == 0 { - ld.pkgs[i].EmbedPatterns = nil - } - if ld.requestedMode&NeedCompiledGoFiles == 0 { - ld.pkgs[i].CompiledGoFiles = nil - } - if ld.requestedMode&NeedImports == 0 { - ld.pkgs[i].Imports = nil - } - if ld.requestedMode&NeedExportFile == 0 { - ld.pkgs[i].ExportFile = "" - } - if ld.requestedMode&NeedTypes == 0 { - ld.pkgs[i].Types = nil - ld.pkgs[i].Fset = nil - ld.pkgs[i].IllTyped = false - } - if ld.requestedMode&NeedSyntax == 0 { - ld.pkgs[i].Syntax = nil - } - if ld.requestedMode&NeedTypesInfo == 0 { - ld.pkgs[i].TypesInfo = nil - } - if ld.requestedMode&NeedTypesSizes == 0 { - ld.pkgs[i].TypesSizes = nil - } - if ld.requestedMode&NeedModule == 0 { - ld.pkgs[i].Module = nil - } - } - - return result, nil -} - -// loadRecursive loads the specified package and its dependencies, -// recursively, in parallel, in topological order. -// It is atomic and idempotent. -// Precondition: ld.Mode&NeedTypes. -func (ld *loader) loadRecursive(lpkg *loaderPackage) { - lpkg.loadOnce.Do(func() { - // Load the direct dependencies, in parallel. - var wg sync.WaitGroup - for _, ipkg := range lpkg.Imports { - imp := ld.pkgs[ipkg.ID] - wg.Add(1) - go func(imp *loaderPackage) { - ld.loadRecursive(imp) - wg.Done() - }(imp) - } - wg.Wait() - ld.loadPackage(lpkg) - }) -} - -// loadPackage loads the specified package. -// It must be called only once per Package, -// after immediate dependencies are loaded. -// Precondition: ld.Mode & NeedTypes. -func (ld *loader) loadPackage(lpkg *loaderPackage) { - if lpkg.PkgPath == "unsafe" { - // Fill in the blanks to avoid surprises. - lpkg.Types = types.Unsafe - lpkg.Fset = ld.Fset - lpkg.Syntax = []*ast.File{} - lpkg.TypesInfo = new(types.Info) - lpkg.TypesSizes = ld.sizes - return - } - - // Call NewPackage directly with explicit name. - // This avoids skew between golist and go/types when the files' - // package declarations are inconsistent. - lpkg.Types = types.NewPackage(lpkg.PkgPath, lpkg.Name) - lpkg.Fset = ld.Fset - - // Subtle: we populate all Types fields with an empty Package - // before loading export data so that export data processing - // never has to create a types.Package for an indirect dependency, - // which would then require that such created packages be explicitly - // inserted back into the Import graph as a final step after export data loading. - // (Hence this return is after the Types assignment.) - // The Diamond test exercises this case. - if !lpkg.needtypes && !lpkg.needsrc { - return - } - if !lpkg.needsrc { - if err := ld.loadFromExportData(lpkg); err != nil { - lpkg.Errors = append(lpkg.Errors, Error{ - Pos: "-", - Msg: err.Error(), - Kind: UnknownError, // e.g. can't find/open/parse export data - }) - } - return // not a source package, don't get syntax trees - } - - appendError := func(err error) { - // Convert various error types into the one true Error. - var errs []Error - switch err := err.(type) { - case Error: - // from driver - errs = append(errs, err) - - case *os.PathError: - // from parser - errs = append(errs, Error{ - Pos: err.Path + ":1", - Msg: err.Err.Error(), - Kind: ParseError, - }) - - case scanner.ErrorList: - // from parser - for _, err := range err { - errs = append(errs, Error{ - Pos: err.Pos.String(), - Msg: err.Msg, - Kind: ParseError, - }) - } - - case types.Error: - // from type checker - lpkg.TypeErrors = append(lpkg.TypeErrors, err) - errs = append(errs, Error{ - Pos: err.Fset.Position(err.Pos).String(), - Msg: err.Msg, - Kind: TypeError, - }) - - default: - // unexpected impoverished error from parser? - errs = append(errs, Error{ - Pos: "-", - Msg: err.Error(), - Kind: UnknownError, - }) - - // If you see this error message, please file a bug. - log.Printf("internal error: error %q (%T) without position", err, err) - } - - lpkg.Errors = append(lpkg.Errors, errs...) - } - - // If the go command on the PATH is newer than the runtime, - // then the go/{scanner,ast,parser,types} packages from the - // standard library may be unable to process the files - // selected by go list. - // - // There is currently no way to downgrade the effective - // version of the go command (see issue 52078), so we proceed - // with the newer go command but, in case of parse or type - // errors, we emit an additional diagnostic. - // - // See: - // - golang.org/issue/52078 (flag to set release tags) - // - golang.org/issue/50825 (gopls legacy version support) - // - golang.org/issue/55883 (go/packages confusing error) - // - // Should we assert a hard minimum of (currently) go1.16 here? - var runtimeVersion int - if _, err := fmt.Sscanf(runtime.Version(), "go1.%d", &runtimeVersion); err == nil && runtimeVersion < lpkg.goVersion { - defer func() { - if len(lpkg.Errors) > 0 { - appendError(Error{ - Pos: "-", - Msg: fmt.Sprintf("This application uses version go1.%d of the source-processing packages but runs version go1.%d of 'go list'. It may fail to process source files that rely on newer language features. If so, rebuild the application using a newer version of Go.", runtimeVersion, lpkg.goVersion), - Kind: UnknownError, - }) - } - }() - } - - if ld.Config.Mode&NeedTypes != 0 && len(lpkg.CompiledGoFiles) == 0 && lpkg.ExportFile != "" { - // The config requested loading sources and types, but sources are missing. - // Add an error to the package and fall back to loading from export data. - appendError(Error{"-", fmt.Sprintf("sources missing for package %s", lpkg.ID), ParseError}) - _ = ld.loadFromExportData(lpkg) // ignore any secondary errors - - return // can't get syntax trees for this package - } - - files, errs := ld.parseFiles(lpkg.CompiledGoFiles) - for _, err := range errs { - appendError(err) - } - - lpkg.Syntax = files - if ld.Config.Mode&NeedTypes == 0 { - return - } - - lpkg.TypesInfo = &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - } - typeparams.InitInstanceInfo(lpkg.TypesInfo) - lpkg.TypesSizes = ld.sizes - - importer := importerFunc(func(path string) (*types.Package, error) { - if path == "unsafe" { - return types.Unsafe, nil - } - - // The imports map is keyed by import path. - ipkg := lpkg.Imports[path] - if ipkg == nil { - if err := lpkg.importErrors[path]; err != nil { - return nil, err - } - // There was skew between the metadata and the - // import declarations, likely due to an edit - // race, or because the ParseFile feature was - // used to supply alternative file contents. - return nil, fmt.Errorf("no metadata for %s", path) - } - - if ipkg.Types != nil && ipkg.Types.Complete() { - return ipkg.Types, nil - } - log.Fatalf("internal error: package %q without types was imported from %q", path, lpkg) - panic("unreachable") - }) - - // type-check - tc := &types.Config{ - Importer: importer, - - // Type-check bodies of functions only in initial packages. - // Example: for import graph A->B->C and initial packages {A,C}, - // we can ignore function bodies in B. - IgnoreFuncBodies: ld.Mode&NeedDeps == 0 && !lpkg.initial, - - Error: appendError, - Sizes: ld.sizes, - } - if (ld.Mode & typecheckCgo) != 0 { - if !typesinternal.SetUsesCgo(tc) { - appendError(Error{ - Msg: "typecheckCgo requires Go 1.15+", - Kind: ListError, - }) - return - } - } - types.NewChecker(tc, ld.Fset, lpkg.Types, lpkg.TypesInfo).Files(lpkg.Syntax) - - lpkg.importErrors = nil // no longer needed - - // If !Cgo, the type-checker uses FakeImportC mode, so - // it doesn't invoke the importer for import "C", - // nor report an error for the import, - // or for any undefined C.f reference. - // We must detect this explicitly and correctly - // mark the package as IllTyped (by reporting an error). - // TODO(adonovan): if these errors are annoying, - // we could just set IllTyped quietly. - if tc.FakeImportC { - outer: - for _, f := range lpkg.Syntax { - for _, imp := range f.Imports { - if imp.Path.Value == `"C"` { - err := types.Error{Fset: ld.Fset, Pos: imp.Pos(), Msg: `import "C" ignored`} - appendError(err) - break outer - } - } - } - } - - // Record accumulated errors. - illTyped := len(lpkg.Errors) > 0 - if !illTyped { - for _, imp := range lpkg.Imports { - if imp.IllTyped { - illTyped = true - break - } - } - } - lpkg.IllTyped = illTyped -} - -// An importFunc is an implementation of the single-method -// types.Importer interface based on a function value. -type importerFunc func(path string) (*types.Package, error) - -func (f importerFunc) Import(path string) (*types.Package, error) { return f(path) } - -// We use a counting semaphore to limit -// the number of parallel I/O calls per process. -var ioLimit = make(chan bool, 20) - -func (ld *loader) parseFile(filename string) (*ast.File, error) { - ld.parseCacheMu.Lock() - v, ok := ld.parseCache[filename] - if ok { - // cache hit - ld.parseCacheMu.Unlock() - <-v.ready - } else { - // cache miss - v = &parseValue{ready: make(chan struct{})} - ld.parseCache[filename] = v - ld.parseCacheMu.Unlock() - - var src []byte - for f, contents := range ld.Config.Overlay { - if sameFile(f, filename) { - src = contents - } - } - var err error - if src == nil { - ioLimit <- true // wait - src, err = ioutil.ReadFile(filename) - <-ioLimit // signal - } - if err != nil { - v.err = err - } else { - v.f, v.err = ld.ParseFile(ld.Fset, filename, src) - } - - close(v.ready) - } - return v.f, v.err -} - -// parseFiles reads and parses the Go source files and returns the ASTs -// of the ones that could be at least partially parsed, along with a -// list of I/O and parse errors encountered. -// -// Because files are scanned in parallel, the token.Pos -// positions of the resulting ast.Files are not ordered. -func (ld *loader) parseFiles(filenames []string) ([]*ast.File, []error) { - var wg sync.WaitGroup - n := len(filenames) - parsed := make([]*ast.File, n) - errors := make([]error, n) - for i, file := range filenames { - if ld.Config.Context.Err() != nil { - parsed[i] = nil - errors[i] = ld.Config.Context.Err() - continue - } - wg.Add(1) - go func(i int, filename string) { - parsed[i], errors[i] = ld.parseFile(filename) - wg.Done() - }(i, file) - } - wg.Wait() - - // Eliminate nils, preserving order. - var o int - for _, f := range parsed { - if f != nil { - parsed[o] = f - o++ - } - } - parsed = parsed[:o] - - o = 0 - for _, err := range errors { - if err != nil { - errors[o] = err - o++ - } - } - errors = errors[:o] - - return parsed, errors -} - -// sameFile returns true if x and y have the same basename and denote -// the same file. -func sameFile(x, y string) bool { - if x == y { - // It could be the case that y doesn't exist. - // For instance, it may be an overlay file that - // hasn't been written to disk. To handle that case - // let x == y through. (We added the exact absolute path - // string to the CompiledGoFiles list, so the unwritten - // overlay case implies x==y.) - return true - } - if strings.EqualFold(filepath.Base(x), filepath.Base(y)) { // (optimisation) - if xi, err := os.Stat(x); err == nil { - if yi, err := os.Stat(y); err == nil { - return os.SameFile(xi, yi) - } - } - } - return false -} - -// loadFromExportData ensures that type information is present for the specified -// package, loading it from an export data file on the first request. -// On success it sets lpkg.Types to a new Package. -func (ld *loader) loadFromExportData(lpkg *loaderPackage) error { - if lpkg.PkgPath == "" { - log.Fatalf("internal error: Package %s has no PkgPath", lpkg) - } - - // Because gcexportdata.Read has the potential to create or - // modify the types.Package for each node in the transitive - // closure of dependencies of lpkg, all exportdata operations - // must be sequential. (Finer-grained locking would require - // changes to the gcexportdata API.) - // - // The exportMu lock guards the lpkg.Types field and the - // types.Package it points to, for each loaderPackage in the graph. - // - // Not all accesses to Package.Pkg need to be protected by exportMu: - // graph ordering ensures that direct dependencies of source - // packages are fully loaded before the importer reads their Pkg field. - ld.exportMu.Lock() - defer ld.exportMu.Unlock() - - if tpkg := lpkg.Types; tpkg != nil && tpkg.Complete() { - return nil // cache hit - } - - lpkg.IllTyped = true // fail safe - - if lpkg.ExportFile == "" { - // Errors while building export data will have been printed to stderr. - return fmt.Errorf("no export data file") - } - f, err := os.Open(lpkg.ExportFile) - if err != nil { - return err - } - defer f.Close() - - // Read gc export data. - // - // We don't currently support gccgo export data because all - // underlying workspaces use the gc toolchain. (Even build - // systems that support gccgo don't use it for workspace - // queries.) - r, err := gcexportdata.NewReader(f) - if err != nil { - return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) - } - - // Build the view. - // - // The gcexportdata machinery has no concept of package ID. - // It identifies packages by their PkgPath, which although not - // globally unique is unique within the scope of one invocation - // of the linker, type-checker, or gcexportdata. - // - // So, we must build a PkgPath-keyed view of the global - // (conceptually ID-keyed) cache of packages and pass it to - // gcexportdata. The view must contain every existing - // package that might possibly be mentioned by the - // current package---its transitive closure. - // - // In loadPackage, we unconditionally create a types.Package for - // each dependency so that export data loading does not - // create new ones. - // - // TODO(adonovan): it would be simpler and more efficient - // if the export data machinery invoked a callback to - // get-or-create a package instead of a map. - // - view := make(map[string]*types.Package) // view seen by gcexportdata - seen := make(map[*loaderPackage]bool) // all visited packages - var visit func(pkgs map[string]*Package) - visit = func(pkgs map[string]*Package) { - for _, p := range pkgs { - lpkg := ld.pkgs[p.ID] - if !seen[lpkg] { - seen[lpkg] = true - view[lpkg.PkgPath] = lpkg.Types - visit(lpkg.Imports) - } - } - } - visit(lpkg.Imports) - - viewLen := len(view) + 1 // adding the self package - // Parse the export data. - // (May modify incomplete packages in view but not create new ones.) - tpkg, err := gcexportdata.Read(r, ld.Fset, view, lpkg.PkgPath) - if err != nil { - return fmt.Errorf("reading %s: %v", lpkg.ExportFile, err) - } - if _, ok := view["go.shape"]; ok { - // Account for the pseudopackage "go.shape" that gets - // created by generic code. - viewLen++ - } - if viewLen != len(view) { - log.Panicf("golang.org/x/tools/go/packages: unexpected new packages during load of %s", lpkg.PkgPath) - } - - lpkg.Types = tpkg - lpkg.IllTyped = false - return nil -} - -// impliedLoadMode returns loadMode with its dependencies. -func impliedLoadMode(loadMode LoadMode) LoadMode { - if loadMode&(NeedDeps|NeedTypes|NeedTypesInfo) != 0 { - // All these things require knowing the import graph. - loadMode |= NeedImports - } - - return loadMode -} - -func usesExportData(cfg *Config) bool { - return cfg.Mode&NeedExportFile != 0 || cfg.Mode&NeedTypes != 0 && cfg.Mode&NeedDeps == 0 -} - -var _ interface{} = io.Discard // assert build toolchain is go1.16 or later diff --git a/ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go b/ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go deleted file mode 100644 index a1dcc40b72..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/go/packages/visit.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package packages - -import ( - "fmt" - "os" - "sort" -) - -// Visit visits all the packages in the import graph whose roots are -// pkgs, calling the optional pre function the first time each package -// is encountered (preorder), and the optional post function after a -// package's dependencies have been visited (postorder). -// The boolean result of pre(pkg) determines whether -// the imports of package pkg are visited. -func Visit(pkgs []*Package, pre func(*Package) bool, post func(*Package)) { - seen := make(map[*Package]bool) - var visit func(*Package) - visit = func(pkg *Package) { - if !seen[pkg] { - seen[pkg] = true - - if pre == nil || pre(pkg) { - paths := make([]string, 0, len(pkg.Imports)) - for path := range pkg.Imports { - paths = append(paths, path) - } - sort.Strings(paths) // Imports is a map, this makes visit stable - for _, path := range paths { - visit(pkg.Imports[path]) - } - } - - if post != nil { - post(pkg) - } - } - } - for _, pkg := range pkgs { - visit(pkg) - } -} - -// PrintErrors prints to os.Stderr the accumulated errors of all -// packages in the import graph rooted at pkgs, dependencies first. -// PrintErrors returns the number of errors printed. -func PrintErrors(pkgs []*Package) int { - var n int - Visit(pkgs, nil, func(pkg *Package) { - for _, err := range pkg.Errors { - fmt.Fprintln(os.Stderr, err) - n++ - } - }) - return n -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go deleted file mode 100644 index 30582ed6d3..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bexport.go +++ /dev/null @@ -1,852 +0,0 @@ -// Copyright 2016 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Binary package export. -// This file was derived from $GOROOT/src/cmd/compile/internal/gc/bexport.go; -// see that file for specification of the format. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "math" - "math/big" - "sort" - "strings" -) - -// If debugFormat is set, each integer and string value is preceded by a marker -// and position information in the encoding. This mechanism permits an importer -// to recognize immediately when it is out of sync. The importer recognizes this -// mode automatically (i.e., it can import export data produced with debugging -// support even if debugFormat is not set at the time of import). This mode will -// lead to massively larger export data (by a factor of 2 to 3) and should only -// be enabled during development and debugging. -// -// NOTE: This flag is the first flag to enable if importing dies because of -// (suspected) format errors, and whenever a change is made to the format. -const debugFormat = false // default: false - -// Current export format version. Increase with each format change. -// -// Note: The latest binary (non-indexed) export format is at version 6. -// This exporter is still at level 4, but it doesn't matter since -// the binary importer can handle older versions just fine. -// -// 6: package height (CL 105038) -- NOT IMPLEMENTED HERE -// 5: improved position encoding efficiency (issue 20080, CL 41619) -- NOT IMPLEMENTED HERE -// 4: type name objects support type aliases, uses aliasTag -// 3: Go1.8 encoding (same as version 2, aliasTag defined but never used) -// 2: removed unused bool in ODCL export (compiler only) -// 1: header format change (more regular), export package for _ struct fields -// 0: Go1.7 encoding -const exportVersion = 4 - -// trackAllTypes enables cycle tracking for all types, not just named -// types. The existing compiler invariants assume that unnamed types -// that are not completely set up are not used, or else there are spurious -// errors. -// If disabled, only named types are tracked, possibly leading to slightly -// less efficient encoding in rare cases. It also prevents the export of -// some corner-case type declarations (but those are not handled correctly -// with with the textual export format either). -// TODO(gri) enable and remove once issues caused by it are fixed -const trackAllTypes = false - -type exporter struct { - fset *token.FileSet - out bytes.Buffer - - // object -> index maps, indexed in order of serialization - strIndex map[string]int - pkgIndex map[*types.Package]int - typIndex map[types.Type]int - - // position encoding - posInfoFormat bool - prevFile string - prevLine int - - // debugging support - written int // bytes written - indent int // for trace -} - -// internalError represents an error generated inside this package. -type internalError string - -func (e internalError) Error() string { return "gcimporter: " + string(e) } - -func internalErrorf(format string, args ...interface{}) error { - return internalError(fmt.Sprintf(format, args...)) -} - -// BExportData returns binary export data for pkg. -// If no file set is provided, position info will be missing. -func BExportData(fset *token.FileSet, pkg *types.Package) (b []byte, err error) { - if !debug { - defer func() { - if e := recover(); e != nil { - if ierr, ok := e.(internalError); ok { - err = ierr - return - } - // Not an internal error; panic again. - panic(e) - } - }() - } - - p := exporter{ - fset: fset, - strIndex: map[string]int{"": 0}, // empty string is mapped to 0 - pkgIndex: make(map[*types.Package]int), - typIndex: make(map[types.Type]int), - posInfoFormat: true, // TODO(gri) might become a flag, eventually - } - - // write version info - // The version string must start with "version %d" where %d is the version - // number. Additional debugging information may follow after a blank; that - // text is ignored by the importer. - p.rawStringln(fmt.Sprintf("version %d", exportVersion)) - var debug string - if debugFormat { - debug = "debug" - } - p.rawStringln(debug) // cannot use p.bool since it's affected by debugFormat; also want to see this clearly - p.bool(trackAllTypes) - p.bool(p.posInfoFormat) - - // --- generic export data --- - - // populate type map with predeclared "known" types - for index, typ := range predeclared() { - p.typIndex[typ] = index - } - if len(p.typIndex) != len(predeclared()) { - return nil, internalError("duplicate entries in type map?") - } - - // write package data - p.pkg(pkg, true) - if trace { - p.tracef("\n") - } - - // write objects - objcount := 0 - scope := pkg.Scope() - for _, name := range scope.Names() { - if !token.IsExported(name) { - continue - } - if trace { - p.tracef("\n") - } - p.obj(scope.Lookup(name)) - objcount++ - } - - // indicate end of list - if trace { - p.tracef("\n") - } - p.tag(endTag) - - // for self-verification only (redundant) - p.int(objcount) - - if trace { - p.tracef("\n") - } - - // --- end of export data --- - - return p.out.Bytes(), nil -} - -func (p *exporter) pkg(pkg *types.Package, emptypath bool) { - if pkg == nil { - panic(internalError("unexpected nil pkg")) - } - - // if we saw the package before, write its index (>= 0) - if i, ok := p.pkgIndex[pkg]; ok { - p.index('P', i) - return - } - - // otherwise, remember the package, write the package tag (< 0) and package data - if trace { - p.tracef("P%d = { ", len(p.pkgIndex)) - defer p.tracef("} ") - } - p.pkgIndex[pkg] = len(p.pkgIndex) - - p.tag(packageTag) - p.string(pkg.Name()) - if emptypath { - p.string("") - } else { - p.string(pkg.Path()) - } -} - -func (p *exporter) obj(obj types.Object) { - switch obj := obj.(type) { - case *types.Const: - p.tag(constTag) - p.pos(obj) - p.qualifiedName(obj) - p.typ(obj.Type()) - p.value(obj.Val()) - - case *types.TypeName: - if obj.IsAlias() { - p.tag(aliasTag) - p.pos(obj) - p.qualifiedName(obj) - } else { - p.tag(typeTag) - } - p.typ(obj.Type()) - - case *types.Var: - p.tag(varTag) - p.pos(obj) - p.qualifiedName(obj) - p.typ(obj.Type()) - - case *types.Func: - p.tag(funcTag) - p.pos(obj) - p.qualifiedName(obj) - sig := obj.Type().(*types.Signature) - p.paramList(sig.Params(), sig.Variadic()) - p.paramList(sig.Results(), false) - - default: - panic(internalErrorf("unexpected object %v (%T)", obj, obj)) - } -} - -func (p *exporter) pos(obj types.Object) { - if !p.posInfoFormat { - return - } - - file, line := p.fileLine(obj) - if file == p.prevFile { - // common case: write line delta - // delta == 0 means different file or no line change - delta := line - p.prevLine - p.int(delta) - if delta == 0 { - p.int(-1) // -1 means no file change - } - } else { - // different file - p.int(0) - // Encode filename as length of common prefix with previous - // filename, followed by (possibly empty) suffix. Filenames - // frequently share path prefixes, so this can save a lot - // of space and make export data size less dependent on file - // path length. The suffix is unlikely to be empty because - // file names tend to end in ".go". - n := commonPrefixLen(p.prevFile, file) - p.int(n) // n >= 0 - p.string(file[n:]) // write suffix only - p.prevFile = file - p.int(line) - } - p.prevLine = line -} - -func (p *exporter) fileLine(obj types.Object) (file string, line int) { - if p.fset != nil { - pos := p.fset.Position(obj.Pos()) - file = pos.Filename - line = pos.Line - } - return -} - -func commonPrefixLen(a, b string) int { - if len(a) > len(b) { - a, b = b, a - } - // len(a) <= len(b) - i := 0 - for i < len(a) && a[i] == b[i] { - i++ - } - return i -} - -func (p *exporter) qualifiedName(obj types.Object) { - p.string(obj.Name()) - p.pkg(obj.Pkg(), false) -} - -func (p *exporter) typ(t types.Type) { - if t == nil { - panic(internalError("nil type")) - } - - // Possible optimization: Anonymous pointer types *T where - // T is a named type are common. We could canonicalize all - // such types *T to a single type PT = *T. This would lead - // to at most one *T entry in typIndex, and all future *T's - // would be encoded as the respective index directly. Would - // save 1 byte (pointerTag) per *T and reduce the typIndex - // size (at the cost of a canonicalization map). We can do - // this later, without encoding format change. - - // if we saw the type before, write its index (>= 0) - if i, ok := p.typIndex[t]; ok { - p.index('T', i) - return - } - - // otherwise, remember the type, write the type tag (< 0) and type data - if trackAllTypes { - if trace { - p.tracef("T%d = {>\n", len(p.typIndex)) - defer p.tracef("<\n} ") - } - p.typIndex[t] = len(p.typIndex) - } - - switch t := t.(type) { - case *types.Named: - if !trackAllTypes { - // if we don't track all types, track named types now - p.typIndex[t] = len(p.typIndex) - } - - p.tag(namedTag) - p.pos(t.Obj()) - p.qualifiedName(t.Obj()) - p.typ(t.Underlying()) - if !types.IsInterface(t) { - p.assocMethods(t) - } - - case *types.Array: - p.tag(arrayTag) - p.int64(t.Len()) - p.typ(t.Elem()) - - case *types.Slice: - p.tag(sliceTag) - p.typ(t.Elem()) - - case *dddSlice: - p.tag(dddTag) - p.typ(t.elem) - - case *types.Struct: - p.tag(structTag) - p.fieldList(t) - - case *types.Pointer: - p.tag(pointerTag) - p.typ(t.Elem()) - - case *types.Signature: - p.tag(signatureTag) - p.paramList(t.Params(), t.Variadic()) - p.paramList(t.Results(), false) - - case *types.Interface: - p.tag(interfaceTag) - p.iface(t) - - case *types.Map: - p.tag(mapTag) - p.typ(t.Key()) - p.typ(t.Elem()) - - case *types.Chan: - p.tag(chanTag) - p.int(int(3 - t.Dir())) // hack - p.typ(t.Elem()) - - default: - panic(internalErrorf("unexpected type %T: %s", t, t)) - } -} - -func (p *exporter) assocMethods(named *types.Named) { - // Sort methods (for determinism). - var methods []*types.Func - for i := 0; i < named.NumMethods(); i++ { - methods = append(methods, named.Method(i)) - } - sort.Sort(methodsByName(methods)) - - p.int(len(methods)) - - if trace && methods != nil { - p.tracef("associated methods {>\n") - } - - for i, m := range methods { - if trace && i > 0 { - p.tracef("\n") - } - - p.pos(m) - name := m.Name() - p.string(name) - if !exported(name) { - p.pkg(m.Pkg(), false) - } - - sig := m.Type().(*types.Signature) - p.paramList(types.NewTuple(sig.Recv()), false) - p.paramList(sig.Params(), sig.Variadic()) - p.paramList(sig.Results(), false) - p.int(0) // dummy value for go:nointerface pragma - ignored by importer - } - - if trace && methods != nil { - p.tracef("<\n} ") - } -} - -type methodsByName []*types.Func - -func (x methodsByName) Len() int { return len(x) } -func (x methodsByName) Swap(i, j int) { x[i], x[j] = x[j], x[i] } -func (x methodsByName) Less(i, j int) bool { return x[i].Name() < x[j].Name() } - -func (p *exporter) fieldList(t *types.Struct) { - if trace && t.NumFields() > 0 { - p.tracef("fields {>\n") - defer p.tracef("<\n} ") - } - - p.int(t.NumFields()) - for i := 0; i < t.NumFields(); i++ { - if trace && i > 0 { - p.tracef("\n") - } - p.field(t.Field(i)) - p.string(t.Tag(i)) - } -} - -func (p *exporter) field(f *types.Var) { - if !f.IsField() { - panic(internalError("field expected")) - } - - p.pos(f) - p.fieldName(f) - p.typ(f.Type()) -} - -func (p *exporter) iface(t *types.Interface) { - // TODO(gri): enable importer to load embedded interfaces, - // then emit Embeddeds and ExplicitMethods separately here. - p.int(0) - - n := t.NumMethods() - if trace && n > 0 { - p.tracef("methods {>\n") - defer p.tracef("<\n} ") - } - p.int(n) - for i := 0; i < n; i++ { - if trace && i > 0 { - p.tracef("\n") - } - p.method(t.Method(i)) - } -} - -func (p *exporter) method(m *types.Func) { - sig := m.Type().(*types.Signature) - if sig.Recv() == nil { - panic(internalError("method expected")) - } - - p.pos(m) - p.string(m.Name()) - if m.Name() != "_" && !token.IsExported(m.Name()) { - p.pkg(m.Pkg(), false) - } - - // interface method; no need to encode receiver. - p.paramList(sig.Params(), sig.Variadic()) - p.paramList(sig.Results(), false) -} - -func (p *exporter) fieldName(f *types.Var) { - name := f.Name() - - if f.Anonymous() { - // anonymous field - we distinguish between 3 cases: - // 1) field name matches base type name and is exported - // 2) field name matches base type name and is not exported - // 3) field name doesn't match base type name (alias name) - bname := basetypeName(f.Type()) - if name == bname { - if token.IsExported(name) { - name = "" // 1) we don't need to know the field name or package - } else { - name = "?" // 2) use unexported name "?" to force package export - } - } else { - // 3) indicate alias and export name as is - // (this requires an extra "@" but this is a rare case) - p.string("@") - } - } - - p.string(name) - if name != "" && !token.IsExported(name) { - p.pkg(f.Pkg(), false) - } -} - -func basetypeName(typ types.Type) string { - switch typ := deref(typ).(type) { - case *types.Basic: - return typ.Name() - case *types.Named: - return typ.Obj().Name() - default: - return "" // unnamed type - } -} - -func (p *exporter) paramList(params *types.Tuple, variadic bool) { - // use negative length to indicate unnamed parameters - // (look at the first parameter only since either all - // names are present or all are absent) - n := params.Len() - if n > 0 && params.At(0).Name() == "" { - n = -n - } - p.int(n) - for i := 0; i < params.Len(); i++ { - q := params.At(i) - t := q.Type() - if variadic && i == params.Len()-1 { - t = &dddSlice{t.(*types.Slice).Elem()} - } - p.typ(t) - if n > 0 { - name := q.Name() - p.string(name) - if name != "_" { - p.pkg(q.Pkg(), false) - } - } - p.string("") // no compiler-specific info - } -} - -func (p *exporter) value(x constant.Value) { - if trace { - p.tracef("= ") - } - - switch x.Kind() { - case constant.Bool: - tag := falseTag - if constant.BoolVal(x) { - tag = trueTag - } - p.tag(tag) - - case constant.Int: - if v, exact := constant.Int64Val(x); exact { - // common case: x fits into an int64 - use compact encoding - p.tag(int64Tag) - p.int64(v) - return - } - // uncommon case: large x - use float encoding - // (powers of 2 will be encoded efficiently with exponent) - p.tag(floatTag) - p.float(constant.ToFloat(x)) - - case constant.Float: - p.tag(floatTag) - p.float(x) - - case constant.Complex: - p.tag(complexTag) - p.float(constant.Real(x)) - p.float(constant.Imag(x)) - - case constant.String: - p.tag(stringTag) - p.string(constant.StringVal(x)) - - case constant.Unknown: - // package contains type errors - p.tag(unknownTag) - - default: - panic(internalErrorf("unexpected value %v (%T)", x, x)) - } -} - -func (p *exporter) float(x constant.Value) { - if x.Kind() != constant.Float { - panic(internalErrorf("unexpected constant %v, want float", x)) - } - // extract sign (there is no -0) - sign := constant.Sign(x) - if sign == 0 { - // x == 0 - p.int(0) - return - } - // x != 0 - - var f big.Float - if v, exact := constant.Float64Val(x); exact { - // float64 - f.SetFloat64(v) - } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { - // TODO(gri): add big.Rat accessor to constant.Value. - r := valueToRat(num) - f.SetRat(r.Quo(r, valueToRat(denom))) - } else { - // Value too large to represent as a fraction => inaccessible. - // TODO(gri): add big.Float accessor to constant.Value. - f.SetFloat64(math.MaxFloat64) // FIXME - } - - // extract exponent such that 0.5 <= m < 1.0 - var m big.Float - exp := f.MantExp(&m) - - // extract mantissa as *big.Int - // - set exponent large enough so mant satisfies mant.IsInt() - // - get *big.Int from mant - m.SetMantExp(&m, int(m.MinPrec())) - mant, acc := m.Int(nil) - if acc != big.Exact { - panic(internalError("internal error")) - } - - p.int(sign) - p.int(exp) - p.string(string(mant.Bytes())) -} - -func valueToRat(x constant.Value) *big.Rat { - // Convert little-endian to big-endian. - // I can't believe this is necessary. - bytes := constant.Bytes(x) - for i := 0; i < len(bytes)/2; i++ { - bytes[i], bytes[len(bytes)-1-i] = bytes[len(bytes)-1-i], bytes[i] - } - return new(big.Rat).SetInt(new(big.Int).SetBytes(bytes)) -} - -func (p *exporter) bool(b bool) bool { - if trace { - p.tracef("[") - defer p.tracef("= %v] ", b) - } - - x := 0 - if b { - x = 1 - } - p.int(x) - return b -} - -// ---------------------------------------------------------------------------- -// Low-level encoders - -func (p *exporter) index(marker byte, index int) { - if index < 0 { - panic(internalError("invalid index < 0")) - } - if debugFormat { - p.marker('t') - } - if trace { - p.tracef("%c%d ", marker, index) - } - p.rawInt64(int64(index)) -} - -func (p *exporter) tag(tag int) { - if tag >= 0 { - panic(internalError("invalid tag >= 0")) - } - if debugFormat { - p.marker('t') - } - if trace { - p.tracef("%s ", tagString[-tag]) - } - p.rawInt64(int64(tag)) -} - -func (p *exporter) int(x int) { - p.int64(int64(x)) -} - -func (p *exporter) int64(x int64) { - if debugFormat { - p.marker('i') - } - if trace { - p.tracef("%d ", x) - } - p.rawInt64(x) -} - -func (p *exporter) string(s string) { - if debugFormat { - p.marker('s') - } - if trace { - p.tracef("%q ", s) - } - // if we saw the string before, write its index (>= 0) - // (the empty string is mapped to 0) - if i, ok := p.strIndex[s]; ok { - p.rawInt64(int64(i)) - return - } - // otherwise, remember string and write its negative length and bytes - p.strIndex[s] = len(p.strIndex) - p.rawInt64(-int64(len(s))) - for i := 0; i < len(s); i++ { - p.rawByte(s[i]) - } -} - -// marker emits a marker byte and position information which makes -// it easy for a reader to detect if it is "out of sync". Used for -// debugFormat format only. -func (p *exporter) marker(m byte) { - p.rawByte(m) - // Enable this for help tracking down the location - // of an incorrect marker when running in debugFormat. - if false && trace { - p.tracef("#%d ", p.written) - } - p.rawInt64(int64(p.written)) -} - -// rawInt64 should only be used by low-level encoders. -func (p *exporter) rawInt64(x int64) { - var tmp [binary.MaxVarintLen64]byte - n := binary.PutVarint(tmp[:], x) - for i := 0; i < n; i++ { - p.rawByte(tmp[i]) - } -} - -// rawStringln should only be used to emit the initial version string. -func (p *exporter) rawStringln(s string) { - for i := 0; i < len(s); i++ { - p.rawByte(s[i]) - } - p.rawByte('\n') -} - -// rawByte is the bottleneck interface to write to p.out. -// rawByte escapes b as follows (any encoding does that -// hides '$'): -// -// '$' => '|' 'S' -// '|' => '|' '|' -// -// Necessary so other tools can find the end of the -// export data by searching for "$$". -// rawByte should only be used by low-level encoders. -func (p *exporter) rawByte(b byte) { - switch b { - case '$': - // write '$' as '|' 'S' - b = 'S' - fallthrough - case '|': - // write '|' as '|' '|' - p.out.WriteByte('|') - p.written++ - } - p.out.WriteByte(b) - p.written++ -} - -// tracef is like fmt.Printf but it rewrites the format string -// to take care of indentation. -func (p *exporter) tracef(format string, args ...interface{}) { - if strings.ContainsAny(format, "<>\n") { - var buf bytes.Buffer - for i := 0; i < len(format); i++ { - // no need to deal with runes - ch := format[i] - switch ch { - case '>': - p.indent++ - continue - case '<': - p.indent-- - continue - } - buf.WriteByte(ch) - if ch == '\n' { - for j := p.indent; j > 0; j-- { - buf.WriteString(". ") - } - } - } - format = buf.String() - } - fmt.Printf(format, args...) -} - -// Debugging support. -// (tagString is only used when tracing is enabled) -var tagString = [...]string{ - // Packages - -packageTag: "package", - - // Types - -namedTag: "named type", - -arrayTag: "array", - -sliceTag: "slice", - -dddTag: "ddd", - -structTag: "struct", - -pointerTag: "pointer", - -signatureTag: "signature", - -interfaceTag: "interface", - -mapTag: "map", - -chanTag: "chan", - - // Values - -falseTag: "false", - -trueTag: "true", - -int64Tag: "int64", - -floatTag: "float", - -fractionTag: "fraction", - -complexTag: "complex", - -stringTag: "string", - -unknownTag: "unknown", - - // Type aliases - -aliasTag: "alias", -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go deleted file mode 100644 index b85de01470..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go +++ /dev/null @@ -1,1053 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file is a copy of $GOROOT/src/go/internal/gcimporter/bimport.go. - -package gcimporter - -import ( - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "sort" - "strconv" - "strings" - "sync" - "unicode" - "unicode/utf8" -) - -type importer struct { - imports map[string]*types.Package - data []byte - importpath string - buf []byte // for reading strings - version int // export format version - - // object lists - strList []string // in order of appearance - pathList []string // in order of appearance - pkgList []*types.Package // in order of appearance - typList []types.Type // in order of appearance - interfaceList []*types.Interface // for delayed completion only - trackAllTypes bool - - // position encoding - posInfoFormat bool - prevFile string - prevLine int - fake fakeFileSet - - // debugging support - debugFormat bool - read int // bytes read -} - -// BImportData imports a package from the serialized package data -// and returns the number of bytes consumed and a reference to the package. -// If the export data version is not recognized or the format is otherwise -// compromised, an error is returned. -func BImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - // catch panics and return them as errors - const currentVersion = 6 - version := -1 // unknown version - defer func() { - if e := recover(); e != nil { - // Return a (possibly nil or incomplete) package unchanged (see #16088). - if version > currentVersion { - err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) - } else { - err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) - } - } - }() - - p := importer{ - imports: imports, - data: data, - importpath: path, - version: version, - strList: []string{""}, // empty string is mapped to 0 - pathList: []string{""}, // empty string is mapped to 0 - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - } - defer p.fake.setLines() // set lines for files in fset - - // read version info - var versionstr string - if b := p.rawByte(); b == 'c' || b == 'd' { - // Go1.7 encoding; first byte encodes low-level - // encoding format (compact vs debug). - // For backward-compatibility only (avoid problems with - // old installed packages). Newly compiled packages use - // the extensible format string. - // TODO(gri) Remove this support eventually; after Go1.8. - if b == 'd' { - p.debugFormat = true - } - p.trackAllTypes = p.rawByte() == 'a' - p.posInfoFormat = p.int() != 0 - versionstr = p.string() - if versionstr == "v1" { - version = 0 - } - } else { - // Go1.8 extensible encoding - // read version string and extract version number (ignore anything after the version number) - versionstr = p.rawStringln(b) - if s := strings.SplitN(versionstr, " ", 3); len(s) >= 2 && s[0] == "version" { - if v, err := strconv.Atoi(s[1]); err == nil && v > 0 { - version = v - } - } - } - p.version = version - - // read version specific flags - extend as necessary - switch p.version { - // case currentVersion: - // ... - // fallthrough - case currentVersion, 5, 4, 3, 2, 1: - p.debugFormat = p.rawStringln(p.rawByte()) == "debug" - p.trackAllTypes = p.int() != 0 - p.posInfoFormat = p.int() != 0 - case 0: - // Go1.7 encoding format - nothing to do here - default: - errorf("unknown bexport format version %d (%q)", p.version, versionstr) - } - - // --- generic export data --- - - // populate typList with predeclared "known" types - p.typList = append(p.typList, predeclared()...) - - // read package data - pkg = p.pkg() - - // read objects of phase 1 only (see cmd/compile/internal/gc/bexport.go) - objcount := 0 - for { - tag := p.tagOrIndex() - if tag == endTag { - break - } - p.obj(tag) - objcount++ - } - - // self-verification - if count := p.int(); count != objcount { - errorf("got %d objects; want %d", objcount, count) - } - - // ignore compiler-specific import data - - // complete interfaces - // TODO(gri) re-investigate if we still need to do this in a delayed fashion - for _, typ := range p.interfaceList { - typ.Complete() - } - - // record all referenced packages as imports - list := append(([]*types.Package)(nil), p.pkgList[1:]...) - sort.Sort(byPath(list)) - pkg.SetImports(list) - - // package was imported completely and without errors - pkg.MarkComplete() - - return p.read, pkg, nil -} - -func errorf(format string, args ...interface{}) { - panic(fmt.Sprintf(format, args...)) -} - -func (p *importer) pkg() *types.Package { - // if the package was seen before, i is its index (>= 0) - i := p.tagOrIndex() - if i >= 0 { - return p.pkgList[i] - } - - // otherwise, i is the package tag (< 0) - if i != packageTag { - errorf("unexpected package tag %d version %d", i, p.version) - } - - // read package data - name := p.string() - var path string - if p.version >= 5 { - path = p.path() - } else { - path = p.string() - } - if p.version >= 6 { - p.int() // package height; unused by go/types - } - - // we should never see an empty package name - if name == "" { - errorf("empty package name in import") - } - - // an empty path denotes the package we are currently importing; - // it must be the first package we see - if (path == "") != (len(p.pkgList) == 0) { - errorf("package path %q for pkg index %d", path, len(p.pkgList)) - } - - // if the package was imported before, use that one; otherwise create a new one - if path == "" { - path = p.importpath - } - pkg := p.imports[path] - if pkg == nil { - pkg = types.NewPackage(path, name) - p.imports[path] = pkg - } else if pkg.Name() != name { - errorf("conflicting names %s and %s for package %q", pkg.Name(), name, path) - } - p.pkgList = append(p.pkgList, pkg) - - return pkg -} - -// objTag returns the tag value for each object kind. -func objTag(obj types.Object) int { - switch obj.(type) { - case *types.Const: - return constTag - case *types.TypeName: - return typeTag - case *types.Var: - return varTag - case *types.Func: - return funcTag - default: - errorf("unexpected object: %v (%T)", obj, obj) // panics - panic("unreachable") - } -} - -func sameObj(a, b types.Object) bool { - // Because unnamed types are not canonicalized, we cannot simply compare types for - // (pointer) identity. - // Ideally we'd check equality of constant values as well, but this is good enough. - return objTag(a) == objTag(b) && types.Identical(a.Type(), b.Type()) -} - -func (p *importer) declare(obj types.Object) { - pkg := obj.Pkg() - if alt := pkg.Scope().Insert(obj); alt != nil { - // This can only trigger if we import a (non-type) object a second time. - // Excluding type aliases, this cannot happen because 1) we only import a package - // once; and b) we ignore compiler-specific export data which may contain - // functions whose inlined function bodies refer to other functions that - // were already imported. - // However, type aliases require reexporting the original type, so we need - // to allow it (see also the comment in cmd/compile/internal/gc/bimport.go, - // method importer.obj, switch case importing functions). - // TODO(gri) review/update this comment once the gc compiler handles type aliases. - if !sameObj(obj, alt) { - errorf("inconsistent import:\n\t%v\npreviously imported as:\n\t%v\n", obj, alt) - } - } -} - -func (p *importer) obj(tag int) { - switch tag { - case constTag: - pos := p.pos() - pkg, name := p.qualifiedName() - typ := p.typ(nil, nil) - val := p.value() - p.declare(types.NewConst(pos, pkg, name, typ, val)) - - case aliasTag: - // TODO(gri) verify type alias hookup is correct - pos := p.pos() - pkg, name := p.qualifiedName() - typ := p.typ(nil, nil) - p.declare(types.NewTypeName(pos, pkg, name, typ)) - - case typeTag: - p.typ(nil, nil) - - case varTag: - pos := p.pos() - pkg, name := p.qualifiedName() - typ := p.typ(nil, nil) - p.declare(types.NewVar(pos, pkg, name, typ)) - - case funcTag: - pos := p.pos() - pkg, name := p.qualifiedName() - params, isddd := p.paramList() - result, _ := p.paramList() - sig := types.NewSignature(nil, params, result, isddd) - p.declare(types.NewFunc(pos, pkg, name, sig)) - - default: - errorf("unexpected object tag %d", tag) - } -} - -const deltaNewFile = -64 // see cmd/compile/internal/gc/bexport.go - -func (p *importer) pos() token.Pos { - if !p.posInfoFormat { - return token.NoPos - } - - file := p.prevFile - line := p.prevLine - delta := p.int() - line += delta - if p.version >= 5 { - if delta == deltaNewFile { - if n := p.int(); n >= 0 { - // file changed - file = p.path() - line = n - } - } - } else { - if delta == 0 { - if n := p.int(); n >= 0 { - // file changed - file = p.prevFile[:n] + p.string() - line = p.int() - } - } - } - p.prevFile = file - p.prevLine = line - - return p.fake.pos(file, line, 0) -} - -// Synthesize a token.Pos -type fakeFileSet struct { - fset *token.FileSet - files map[string]*fileInfo -} - -type fileInfo struct { - file *token.File - lastline int -} - -const maxlines = 64 * 1024 - -func (s *fakeFileSet) pos(file string, line, column int) token.Pos { - // TODO(mdempsky): Make use of column. - - // Since we don't know the set of needed file positions, we reserve maxlines - // positions per file. We delay calling token.File.SetLines until all - // positions have been calculated (by way of fakeFileSet.setLines), so that - // we can avoid setting unnecessary lines. See also golang/go#46586. - f := s.files[file] - if f == nil { - f = &fileInfo{file: s.fset.AddFile(file, -1, maxlines)} - s.files[file] = f - } - if line > maxlines { - line = 1 - } - if line > f.lastline { - f.lastline = line - } - - // Return a fake position assuming that f.file consists only of newlines. - return token.Pos(f.file.Base() + line - 1) -} - -func (s *fakeFileSet) setLines() { - fakeLinesOnce.Do(func() { - fakeLines = make([]int, maxlines) - for i := range fakeLines { - fakeLines[i] = i - } - }) - for _, f := range s.files { - f.file.SetLines(fakeLines[:f.lastline]) - } -} - -var ( - fakeLines []int - fakeLinesOnce sync.Once -) - -func (p *importer) qualifiedName() (pkg *types.Package, name string) { - name = p.string() - pkg = p.pkg() - return -} - -func (p *importer) record(t types.Type) { - p.typList = append(p.typList, t) -} - -// A dddSlice is a types.Type representing ...T parameters. -// It only appears for parameter types and does not escape -// the importer. -type dddSlice struct { - elem types.Type -} - -func (t *dddSlice) Underlying() types.Type { return t } -func (t *dddSlice) String() string { return "..." + t.elem.String() } - -// parent is the package which declared the type; parent == nil means -// the package currently imported. The parent package is needed for -// exported struct fields and interface methods which don't contain -// explicit package information in the export data. -// -// A non-nil tname is used as the "owner" of the result type; i.e., -// the result type is the underlying type of tname. tname is used -// to give interface methods a named receiver type where possible. -func (p *importer) typ(parent *types.Package, tname *types.Named) types.Type { - // if the type was seen before, i is its index (>= 0) - i := p.tagOrIndex() - if i >= 0 { - return p.typList[i] - } - - // otherwise, i is the type tag (< 0) - switch i { - case namedTag: - // read type object - pos := p.pos() - parent, name := p.qualifiedName() - scope := parent.Scope() - obj := scope.Lookup(name) - - // if the object doesn't exist yet, create and insert it - if obj == nil { - obj = types.NewTypeName(pos, parent, name, nil) - scope.Insert(obj) - } - - if _, ok := obj.(*types.TypeName); !ok { - errorf("pkg = %s, name = %s => %s", parent, name, obj) - } - - // associate new named type with obj if it doesn't exist yet - t0 := types.NewNamed(obj.(*types.TypeName), nil, nil) - - // but record the existing type, if any - tname := obj.Type().(*types.Named) // tname is either t0 or the existing type - p.record(tname) - - // read underlying type - t0.SetUnderlying(p.typ(parent, t0)) - - // interfaces don't have associated methods - if types.IsInterface(t0) { - return tname - } - - // read associated methods - for i := p.int(); i > 0; i-- { - // TODO(gri) replace this with something closer to fieldName - pos := p.pos() - name := p.string() - if !exported(name) { - p.pkg() - } - - recv, _ := p.paramList() // TODO(gri) do we need a full param list for the receiver? - params, isddd := p.paramList() - result, _ := p.paramList() - p.int() // go:nointerface pragma - discarded - - sig := types.NewSignature(recv.At(0), params, result, isddd) - t0.AddMethod(types.NewFunc(pos, parent, name, sig)) - } - - return tname - - case arrayTag: - t := new(types.Array) - if p.trackAllTypes { - p.record(t) - } - - n := p.int64() - *t = *types.NewArray(p.typ(parent, nil), n) - return t - - case sliceTag: - t := new(types.Slice) - if p.trackAllTypes { - p.record(t) - } - - *t = *types.NewSlice(p.typ(parent, nil)) - return t - - case dddTag: - t := new(dddSlice) - if p.trackAllTypes { - p.record(t) - } - - t.elem = p.typ(parent, nil) - return t - - case structTag: - t := new(types.Struct) - if p.trackAllTypes { - p.record(t) - } - - *t = *types.NewStruct(p.fieldList(parent)) - return t - - case pointerTag: - t := new(types.Pointer) - if p.trackAllTypes { - p.record(t) - } - - *t = *types.NewPointer(p.typ(parent, nil)) - return t - - case signatureTag: - t := new(types.Signature) - if p.trackAllTypes { - p.record(t) - } - - params, isddd := p.paramList() - result, _ := p.paramList() - *t = *types.NewSignature(nil, params, result, isddd) - return t - - case interfaceTag: - // Create a dummy entry in the type list. This is safe because we - // cannot expect the interface type to appear in a cycle, as any - // such cycle must contain a named type which would have been - // first defined earlier. - // TODO(gri) Is this still true now that we have type aliases? - // See issue #23225. - n := len(p.typList) - if p.trackAllTypes { - p.record(nil) - } - - var embeddeds []types.Type - for n := p.int(); n > 0; n-- { - p.pos() - embeddeds = append(embeddeds, p.typ(parent, nil)) - } - - t := newInterface(p.methodList(parent, tname), embeddeds) - p.interfaceList = append(p.interfaceList, t) - if p.trackAllTypes { - p.typList[n] = t - } - return t - - case mapTag: - t := new(types.Map) - if p.trackAllTypes { - p.record(t) - } - - key := p.typ(parent, nil) - val := p.typ(parent, nil) - *t = *types.NewMap(key, val) - return t - - case chanTag: - t := new(types.Chan) - if p.trackAllTypes { - p.record(t) - } - - dir := chanDir(p.int()) - val := p.typ(parent, nil) - *t = *types.NewChan(dir, val) - return t - - default: - errorf("unexpected type tag %d", i) // panics - panic("unreachable") - } -} - -func chanDir(d int) types.ChanDir { - // tag values must match the constants in cmd/compile/internal/gc/go.go - switch d { - case 1 /* Crecv */ : - return types.RecvOnly - case 2 /* Csend */ : - return types.SendOnly - case 3 /* Cboth */ : - return types.SendRecv - default: - errorf("unexpected channel dir %d", d) - return 0 - } -} - -func (p *importer) fieldList(parent *types.Package) (fields []*types.Var, tags []string) { - if n := p.int(); n > 0 { - fields = make([]*types.Var, n) - tags = make([]string, n) - for i := range fields { - fields[i], tags[i] = p.field(parent) - } - } - return -} - -func (p *importer) field(parent *types.Package) (*types.Var, string) { - pos := p.pos() - pkg, name, alias := p.fieldName(parent) - typ := p.typ(parent, nil) - tag := p.string() - - anonymous := false - if name == "" { - // anonymous field - typ must be T or *T and T must be a type name - switch typ := deref(typ).(type) { - case *types.Basic: // basic types are named types - pkg = nil // // objects defined in Universe scope have no package - name = typ.Name() - case *types.Named: - name = typ.Obj().Name() - default: - errorf("named base type expected") - } - anonymous = true - } else if alias { - // anonymous field: we have an explicit name because it's an alias - anonymous = true - } - - return types.NewField(pos, pkg, name, typ, anonymous), tag -} - -func (p *importer) methodList(parent *types.Package, baseType *types.Named) (methods []*types.Func) { - if n := p.int(); n > 0 { - methods = make([]*types.Func, n) - for i := range methods { - methods[i] = p.method(parent, baseType) - } - } - return -} - -func (p *importer) method(parent *types.Package, baseType *types.Named) *types.Func { - pos := p.pos() - pkg, name, _ := p.fieldName(parent) - // If we don't have a baseType, use a nil receiver. - // A receiver using the actual interface type (which - // we don't know yet) will be filled in when we call - // types.Interface.Complete. - var recv *types.Var - if baseType != nil { - recv = types.NewVar(token.NoPos, parent, "", baseType) - } - params, isddd := p.paramList() - result, _ := p.paramList() - sig := types.NewSignature(recv, params, result, isddd) - return types.NewFunc(pos, pkg, name, sig) -} - -func (p *importer) fieldName(parent *types.Package) (pkg *types.Package, name string, alias bool) { - name = p.string() - pkg = parent - if pkg == nil { - // use the imported package instead - pkg = p.pkgList[0] - } - if p.version == 0 && name == "_" { - // version 0 didn't export a package for _ fields - return - } - switch name { - case "": - // 1) field name matches base type name and is exported: nothing to do - case "?": - // 2) field name matches base type name and is not exported: need package - name = "" - pkg = p.pkg() - case "@": - // 3) field name doesn't match type name (alias) - name = p.string() - alias = true - fallthrough - default: - if !exported(name) { - pkg = p.pkg() - } - } - return -} - -func (p *importer) paramList() (*types.Tuple, bool) { - n := p.int() - if n == 0 { - return nil, false - } - // negative length indicates unnamed parameters - named := true - if n < 0 { - n = -n - named = false - } - // n > 0 - params := make([]*types.Var, n) - isddd := false - for i := range params { - params[i], isddd = p.param(named) - } - return types.NewTuple(params...), isddd -} - -func (p *importer) param(named bool) (*types.Var, bool) { - t := p.typ(nil, nil) - td, isddd := t.(*dddSlice) - if isddd { - t = types.NewSlice(td.elem) - } - - var pkg *types.Package - var name string - if named { - name = p.string() - if name == "" { - errorf("expected named parameter") - } - if name != "_" { - pkg = p.pkg() - } - if i := strings.Index(name, "·"); i > 0 { - name = name[:i] // cut off gc-specific parameter numbering - } - } - - // read and discard compiler-specific info - p.string() - - return types.NewVar(token.NoPos, pkg, name, t), isddd -} - -func exported(name string) bool { - ch, _ := utf8.DecodeRuneInString(name) - return unicode.IsUpper(ch) -} - -func (p *importer) value() constant.Value { - switch tag := p.tagOrIndex(); tag { - case falseTag: - return constant.MakeBool(false) - case trueTag: - return constant.MakeBool(true) - case int64Tag: - return constant.MakeInt64(p.int64()) - case floatTag: - return p.float() - case complexTag: - re := p.float() - im := p.float() - return constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) - case stringTag: - return constant.MakeString(p.string()) - case unknownTag: - return constant.MakeUnknown() - default: - errorf("unexpected value tag %d", tag) // panics - panic("unreachable") - } -} - -func (p *importer) float() constant.Value { - sign := p.int() - if sign == 0 { - return constant.MakeInt64(0) - } - - exp := p.int() - mant := []byte(p.string()) // big endian - - // remove leading 0's if any - for len(mant) > 0 && mant[0] == 0 { - mant = mant[1:] - } - - // convert to little endian - // TODO(gri) go/constant should have a more direct conversion function - // (e.g., once it supports a big.Float based implementation) - for i, j := 0, len(mant)-1; i < j; i, j = i+1, j-1 { - mant[i], mant[j] = mant[j], mant[i] - } - - // adjust exponent (constant.MakeFromBytes creates an integer value, - // but mant represents the mantissa bits such that 0.5 <= mant < 1.0) - exp -= len(mant) << 3 - if len(mant) > 0 { - for msd := mant[len(mant)-1]; msd&0x80 == 0; msd <<= 1 { - exp++ - } - } - - x := constant.MakeFromBytes(mant) - switch { - case exp < 0: - d := constant.Shift(constant.MakeInt64(1), token.SHL, uint(-exp)) - x = constant.BinaryOp(x, token.QUO, d) - case exp > 0: - x = constant.Shift(x, token.SHL, uint(exp)) - } - - if sign < 0 { - x = constant.UnaryOp(token.SUB, x, 0) - } - return x -} - -// ---------------------------------------------------------------------------- -// Low-level decoders - -func (p *importer) tagOrIndex() int { - if p.debugFormat { - p.marker('t') - } - - return int(p.rawInt64()) -} - -func (p *importer) int() int { - x := p.int64() - if int64(int(x)) != x { - errorf("exported integer too large") - } - return int(x) -} - -func (p *importer) int64() int64 { - if p.debugFormat { - p.marker('i') - } - - return p.rawInt64() -} - -func (p *importer) path() string { - if p.debugFormat { - p.marker('p') - } - // if the path was seen before, i is its index (>= 0) - // (the empty string is at index 0) - i := p.rawInt64() - if i >= 0 { - return p.pathList[i] - } - // otherwise, i is the negative path length (< 0) - a := make([]string, -i) - for n := range a { - a[n] = p.string() - } - s := strings.Join(a, "/") - p.pathList = append(p.pathList, s) - return s -} - -func (p *importer) string() string { - if p.debugFormat { - p.marker('s') - } - // if the string was seen before, i is its index (>= 0) - // (the empty string is at index 0) - i := p.rawInt64() - if i >= 0 { - return p.strList[i] - } - // otherwise, i is the negative string length (< 0) - if n := int(-i); n <= cap(p.buf) { - p.buf = p.buf[:n] - } else { - p.buf = make([]byte, n) - } - for i := range p.buf { - p.buf[i] = p.rawByte() - } - s := string(p.buf) - p.strList = append(p.strList, s) - return s -} - -func (p *importer) marker(want byte) { - if got := p.rawByte(); got != want { - errorf("incorrect marker: got %c; want %c (pos = %d)", got, want, p.read) - } - - pos := p.read - if n := int(p.rawInt64()); n != pos { - errorf("incorrect position: got %d; want %d", n, pos) - } -} - -// rawInt64 should only be used by low-level decoders. -func (p *importer) rawInt64() int64 { - i, err := binary.ReadVarint(p) - if err != nil { - errorf("read error: %v", err) - } - return i -} - -// rawStringln should only be used to read the initial version string. -func (p *importer) rawStringln(b byte) string { - p.buf = p.buf[:0] - for b != '\n' { - p.buf = append(p.buf, b) - b = p.rawByte() - } - return string(p.buf) -} - -// needed for binary.ReadVarint in rawInt64 -func (p *importer) ReadByte() (byte, error) { - return p.rawByte(), nil -} - -// byte is the bottleneck interface for reading p.data. -// It unescapes '|' 'S' to '$' and '|' '|' to '|'. -// rawByte should only be used by low-level decoders. -func (p *importer) rawByte() byte { - b := p.data[0] - r := 1 - if b == '|' { - b = p.data[1] - r = 2 - switch b { - case 'S': - b = '$' - case '|': - // nothing to do - default: - errorf("unexpected escape sequence in export data") - } - } - p.data = p.data[r:] - p.read += r - return b - -} - -// ---------------------------------------------------------------------------- -// Export format - -// Tags. Must be < 0. -const ( - // Objects - packageTag = -(iota + 1) - constTag - typeTag - varTag - funcTag - endTag - - // Types - namedTag - arrayTag - sliceTag - dddTag - structTag - pointerTag - signatureTag - interfaceTag - mapTag - chanTag - - // Values - falseTag - trueTag - int64Tag - floatTag - fractionTag // not used by gc - complexTag - stringTag - nilTag // only used by gc (appears in exported inlined function bodies) - unknownTag // not used by gc (only appears in packages with errors) - - // Type aliases - aliasTag -) - -var predeclOnce sync.Once -var predecl []types.Type // initialized lazily - -func predeclared() []types.Type { - predeclOnce.Do(func() { - // initialize lazily to be sure that all - // elements have been initialized before - predecl = []types.Type{ // basic types - types.Typ[types.Bool], - types.Typ[types.Int], - types.Typ[types.Int8], - types.Typ[types.Int16], - types.Typ[types.Int32], - types.Typ[types.Int64], - types.Typ[types.Uint], - types.Typ[types.Uint8], - types.Typ[types.Uint16], - types.Typ[types.Uint32], - types.Typ[types.Uint64], - types.Typ[types.Uintptr], - types.Typ[types.Float32], - types.Typ[types.Float64], - types.Typ[types.Complex64], - types.Typ[types.Complex128], - types.Typ[types.String], - - // basic type aliases - types.Universe.Lookup("byte").Type(), - types.Universe.Lookup("rune").Type(), - - // error - types.Universe.Lookup("error").Type(), - - // untyped types - types.Typ[types.UntypedBool], - types.Typ[types.UntypedInt], - types.Typ[types.UntypedRune], - types.Typ[types.UntypedFloat], - types.Typ[types.UntypedComplex], - types.Typ[types.UntypedString], - types.Typ[types.UntypedNil], - - // package unsafe - types.Typ[types.UnsafePointer], - - // invalid type - types.Typ[types.Invalid], // only appears in packages with errors - - // used internally by gc; never used by this package or in .a files - anyType{}, - } - predecl = append(predecl, additionalPredeclared()...) - }) - return predecl -} - -type anyType struct{} - -func (t anyType) Underlying() types.Type { return t } -func (t anyType) String() string { return "any" } diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go deleted file mode 100644 index f6437feb1c..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file is a copy of $GOROOT/src/go/internal/gcimporter/exportdata.go. - -// This file implements FindExportData. - -package gcimporter - -import ( - "bufio" - "fmt" - "io" - "strconv" - "strings" -) - -func readGopackHeader(r *bufio.Reader) (name string, size int64, err error) { - // See $GOROOT/include/ar.h. - hdr := make([]byte, 16+12+6+6+8+10+2) - _, err = io.ReadFull(r, hdr) - if err != nil { - return - } - // leave for debugging - if false { - fmt.Printf("header: %s", hdr) - } - s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10])) - length, err := strconv.Atoi(s) - size = int64(length) - if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' { - err = fmt.Errorf("invalid archive header") - return - } - name = strings.TrimSpace(string(hdr[:16])) - return -} - -// FindExportData positions the reader r at the beginning of the -// export data section of an underlying GC-created object/archive -// file by reading from it. The reader must be positioned at the -// start of the file before calling this function. The hdr result -// is the string before the export data, either "$$" or "$$B". -// The size result is the length of the export data in bytes, or -1 if not known. -func FindExportData(r *bufio.Reader) (hdr string, size int64, err error) { - // Read first line to make sure this is an object file. - line, err := r.ReadSlice('\n') - if err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - - if string(line) == "!\n" { - // Archive file. Scan to __.PKGDEF. - var name string - if name, size, err = readGopackHeader(r); err != nil { - return - } - - // First entry should be __.PKGDEF. - if name != "__.PKGDEF" { - err = fmt.Errorf("go archive is missing __.PKGDEF") - return - } - - // Read first line of __.PKGDEF data, so that line - // is once again the first line of the input. - if line, err = r.ReadSlice('\n'); err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - size -= int64(len(line)) - } - - // Now at __.PKGDEF in archive or still at beginning of file. - // Either way, line should begin with "go object ". - if !strings.HasPrefix(string(line), "go object ") { - err = fmt.Errorf("not a Go object file") - return - } - - // Skip over object header to export data. - // Begins after first line starting with $$. - for line[0] != '$' { - if line, err = r.ReadSlice('\n'); err != nil { - err = fmt.Errorf("can't find export data (%v)", err) - return - } - size -= int64(len(line)) - } - hdr = string(line) - if size < 0 { - size = -1 - } - - return -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go deleted file mode 100644 index 0372fb3a64..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go +++ /dev/null @@ -1,265 +0,0 @@ -// Copyright 2011 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// This file is a reduced copy of $GOROOT/src/go/internal/gcimporter/gcimporter.go. - -// Package gcimporter provides various functions for reading -// gc-generated object files that can be used to implement the -// Importer interface defined by the Go 1.5 standard library package. -package gcimporter // import "golang.org/x/tools/internal/gcimporter" - -import ( - "bufio" - "bytes" - "fmt" - "go/build" - "go/token" - "go/types" - "io" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "strings" - "sync" -) - -const ( - // Enable debug during development: it adds some additional checks, and - // prevents errors from being recovered. - debug = false - - // If trace is set, debugging output is printed to std out. - trace = false -) - -var exportMap sync.Map // package dir → func() (string, bool) - -// lookupGorootExport returns the location of the export data -// (normally found in the build cache, but located in GOROOT/pkg -// in prior Go releases) for the package located in pkgDir. -// -// (We use the package's directory instead of its import path -// mainly to simplify handling of the packages in src/vendor -// and cmd/vendor.) -func lookupGorootExport(pkgDir string) (string, bool) { - f, ok := exportMap.Load(pkgDir) - if !ok { - var ( - listOnce sync.Once - exportPath string - ) - f, _ = exportMap.LoadOrStore(pkgDir, func() (string, bool) { - listOnce.Do(func() { - cmd := exec.Command("go", "list", "-export", "-f", "{{.Export}}", pkgDir) - cmd.Dir = build.Default.GOROOT - var output []byte - output, err := cmd.Output() - if err != nil { - return - } - - exports := strings.Split(string(bytes.TrimSpace(output)), "\n") - if len(exports) != 1 { - return - } - - exportPath = exports[0] - }) - - return exportPath, exportPath != "" - }) - } - - return f.(func() (string, bool))() -} - -var pkgExts = [...]string{".a", ".o"} - -// FindPkg returns the filename and unique package id for an import -// path based on package information provided by build.Import (using -// the build.Default build.Context). A relative srcDir is interpreted -// relative to the current working directory. -// If no file was found, an empty filename is returned. -func FindPkg(path, srcDir string) (filename, id string) { - if path == "" { - return - } - - var noext string - switch { - default: - // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x" - // Don't require the source files to be present. - if abs, err := filepath.Abs(srcDir); err == nil { // see issue 14282 - srcDir = abs - } - bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary) - if bp.PkgObj == "" { - var ok bool - if bp.Goroot && bp.Dir != "" { - filename, ok = lookupGorootExport(bp.Dir) - } - if !ok { - id = path // make sure we have an id to print in error message - return - } - } else { - noext = strings.TrimSuffix(bp.PkgObj, ".a") - id = bp.ImportPath - } - - case build.IsLocalImport(path): - // "./x" -> "/this/directory/x.ext", "/this/directory/x" - noext = filepath.Join(srcDir, path) - id = noext - - case filepath.IsAbs(path): - // for completeness only - go/build.Import - // does not support absolute imports - // "/x" -> "/x.ext", "/x" - noext = path - id = path - } - - if false { // for debugging - if path != id { - fmt.Printf("%s -> %s\n", path, id) - } - } - - if filename != "" { - if f, err := os.Stat(filename); err == nil && !f.IsDir() { - return - } - } - - // try extensions - for _, ext := range pkgExts { - filename = noext + ext - if f, err := os.Stat(filename); err == nil && !f.IsDir() { - return - } - } - - filename = "" // not found - return -} - -// Import imports a gc-generated package given its import path and srcDir, adds -// the corresponding package object to the packages map, and returns the object. -// The packages map must contain all packages already imported. -func Import(packages map[string]*types.Package, path, srcDir string, lookup func(path string) (io.ReadCloser, error)) (pkg *types.Package, err error) { - var rc io.ReadCloser - var filename, id string - if lookup != nil { - // With custom lookup specified, assume that caller has - // converted path to a canonical import path for use in the map. - if path == "unsafe" { - return types.Unsafe, nil - } - id = path - - // No need to re-import if the package was imported completely before. - if pkg = packages[id]; pkg != nil && pkg.Complete() { - return - } - f, err := lookup(path) - if err != nil { - return nil, err - } - rc = f - } else { - filename, id = FindPkg(path, srcDir) - if filename == "" { - if path == "unsafe" { - return types.Unsafe, nil - } - return nil, fmt.Errorf("can't find import: %q", id) - } - - // no need to re-import if the package was imported completely before - if pkg = packages[id]; pkg != nil && pkg.Complete() { - return - } - - // open file - f, err := os.Open(filename) - if err != nil { - return nil, err - } - defer func() { - if err != nil { - // add file name to error - err = fmt.Errorf("%s: %v", filename, err) - } - }() - rc = f - } - defer rc.Close() - - var hdr string - var size int64 - buf := bufio.NewReader(rc) - if hdr, size, err = FindExportData(buf); err != nil { - return - } - - switch hdr { - case "$$B\n": - var data []byte - data, err = ioutil.ReadAll(buf) - if err != nil { - break - } - - // TODO(gri): allow clients of go/importer to provide a FileSet. - // Or, define a new standard go/types/gcexportdata package. - fset := token.NewFileSet() - - // The indexed export format starts with an 'i'; the older - // binary export format starts with a 'c', 'd', or 'v' - // (from "version"). Select appropriate importer. - if len(data) > 0 { - switch data[0] { - case 'i': - _, pkg, err := IImportData(fset, packages, data[1:], id) - return pkg, err - - case 'v', 'c', 'd': - _, pkg, err := BImportData(fset, packages, data, id) - return pkg, err - - case 'u': - _, pkg, err := UImportData(fset, packages, data[1:size], id) - return pkg, err - - default: - l := len(data) - if l > 10 { - l = 10 - } - return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), id) - } - } - - default: - err = fmt.Errorf("unknown export data header: %q", hdr) - } - - return -} - -func deref(typ types.Type) types.Type { - if p, _ := typ.(*types.Pointer); p != nil { - return p.Elem() - } - return typ -} - -type byPath []*types.Package - -func (a byPath) Len() int { return len(a) } -func (a byPath) Swap(i, j int) { a[i], a[j] = a[j], a[i] } -func (a byPath) Less(i, j int) bool { return a[i].Path() < a[j].Path() } diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go deleted file mode 100644 index ba53cdcdd1..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ /dev/null @@ -1,1180 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Indexed binary package export. -// This file was derived from $GOROOT/src/cmd/compile/internal/gc/iexport.go; -// see that file for specification of the format. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "io" - "math/big" - "reflect" - "sort" - "strconv" - "strings" - - "golang.org/x/tools/internal/tokeninternal" - "golang.org/x/tools/internal/typeparams" -) - -// IExportShallow encodes "shallow" export data for the specified package. -// -// No promises are made about the encoding other than that it can be -// decoded by the same version of IIExportShallow. If you plan to save -// export data in the file system, be sure to include a cryptographic -// digest of the executable in the key to avoid version skew. -func IExportShallow(fset *token.FileSet, pkg *types.Package) ([]byte, error) { - // In principle this operation can only fail if out.Write fails, - // but that's impossible for bytes.Buffer---and as a matter of - // fact iexportCommon doesn't even check for I/O errors. - // TODO(adonovan): handle I/O errors properly. - // TODO(adonovan): use byte slices throughout, avoiding copying. - const bundle, shallow = false, true - var out bytes.Buffer - err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) - return out.Bytes(), err -} - -// IImportShallow decodes "shallow" types.Package data encoded by IExportShallow -// in the same executable. This function cannot import data from -// cmd/compile or gcexportdata.Write. -func IImportShallow(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string, insert InsertType) (*types.Package, error) { - const bundle = false - pkgs, err := iimportCommon(fset, imports, data, bundle, path, insert) - if err != nil { - return nil, err - } - return pkgs[0], nil -} - -// InsertType is the type of a function that creates a types.TypeName -// object for a named type and inserts it into the scope of the -// specified Package. -type InsertType = func(pkg *types.Package, name string) - -// Current bundled export format version. Increase with each format change. -// 0: initial implementation -const bundleVersion = 0 - -// IExportData writes indexed export data for pkg to out. -// -// If no file set is provided, position info will be missing. -// The package path of the top-level package will not be recorded, -// so that calls to IImportData can override with a provided package path. -func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { - const bundle, shallow = false, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) -} - -// IExportBundle writes an indexed export bundle for pkgs to out. -func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { - const bundle, shallow = true, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs) -} - -func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package) (err error) { - if !debug { - defer func() { - if e := recover(); e != nil { - if ierr, ok := e.(internalError); ok { - err = ierr - return - } - // Not an internal error; panic again. - panic(e) - } - }() - } - - p := iexporter{ - fset: fset, - version: version, - shallow: shallow, - allPkgs: map[*types.Package]bool{}, - stringIndex: map[string]uint64{}, - declIndex: map[types.Object]uint64{}, - tparamNames: map[types.Object]string{}, - typIndex: map[types.Type]uint64{}, - } - if !bundle { - p.localpkg = pkgs[0] - } - - for i, pt := range predeclared() { - p.typIndex[pt] = uint64(i) - } - if len(p.typIndex) > predeclReserved { - panic(internalErrorf("too many predeclared types: %d > %d", len(p.typIndex), predeclReserved)) - } - - // Initialize work queue with exported declarations. - for _, pkg := range pkgs { - scope := pkg.Scope() - for _, name := range scope.Names() { - if token.IsExported(name) { - p.pushDecl(scope.Lookup(name)) - } - } - - if bundle { - // Ensure pkg and its imports are included in the index. - p.allPkgs[pkg] = true - for _, imp := range pkg.Imports() { - p.allPkgs[imp] = true - } - } - } - - // Loop until no more work. - for !p.declTodo.empty() { - p.doDecl(p.declTodo.popHead()) - } - - // Produce index of offset of each file record in files. - var files intWriter - var fileOffset []uint64 // fileOffset[i] is offset in files of file encoded as i - if p.shallow { - fileOffset = make([]uint64, len(p.fileInfos)) - for i, info := range p.fileInfos { - fileOffset[i] = uint64(files.Len()) - p.encodeFile(&files, info.file, info.needed) - } - } - - // Append indices to data0 section. - dataLen := uint64(p.data0.Len()) - w := p.newWriter() - w.writeIndex(p.declIndex) - - if bundle { - w.uint64(uint64(len(pkgs))) - for _, pkg := range pkgs { - w.pkg(pkg) - imps := pkg.Imports() - w.uint64(uint64(len(imps))) - for _, imp := range imps { - w.pkg(imp) - } - } - } - w.flush() - - // Assemble header. - var hdr intWriter - if bundle { - hdr.uint64(bundleVersion) - } - hdr.uint64(uint64(p.version)) - hdr.uint64(uint64(p.strings.Len())) - if p.shallow { - hdr.uint64(uint64(files.Len())) - hdr.uint64(uint64(len(fileOffset))) - for _, offset := range fileOffset { - hdr.uint64(offset) - } - } - hdr.uint64(dataLen) - - // Flush output. - io.Copy(out, &hdr) - io.Copy(out, &p.strings) - if p.shallow { - io.Copy(out, &files) - } - io.Copy(out, &p.data0) - - return nil -} - -// encodeFile writes to w a representation of the file sufficient to -// faithfully restore position information about all needed offsets. -// Mutates the needed array. -func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) { - _ = needed[0] // precondition: needed is non-empty - - w.uint64(p.stringOff(file.Name())) - - size := uint64(file.Size()) - w.uint64(size) - - // Sort the set of needed offsets. Duplicates are harmless. - sort.Slice(needed, func(i, j int) bool { return needed[i] < needed[j] }) - - lines := tokeninternal.GetLines(file) // byte offset of each line start - w.uint64(uint64(len(lines))) - - // Rather than record the entire array of line start offsets, - // we save only a sparse list of (index, offset) pairs for - // the start of each line that contains a needed position. - var sparse [][2]int // (index, offset) pairs -outer: - for i, lineStart := range lines { - lineEnd := size - if i < len(lines)-1 { - lineEnd = uint64(lines[i+1]) - } - // Does this line contains a needed offset? - if needed[0] < lineEnd { - sparse = append(sparse, [2]int{i, lineStart}) - for needed[0] < lineEnd { - needed = needed[1:] - if len(needed) == 0 { - break outer - } - } - } - } - - // Delta-encode the columns. - w.uint64(uint64(len(sparse))) - var prev [2]int - for _, pair := range sparse { - w.uint64(uint64(pair[0] - prev[0])) - w.uint64(uint64(pair[1] - prev[1])) - prev = pair - } -} - -// writeIndex writes out an object index. mainIndex indicates whether -// we're writing out the main index, which is also read by -// non-compiler tools and includes a complete package description -// (i.e., name and height). -func (w *exportWriter) writeIndex(index map[types.Object]uint64) { - type pkgObj struct { - obj types.Object - name string // qualified name; differs from obj.Name for type params - } - // Build a map from packages to objects from that package. - pkgObjs := map[*types.Package][]pkgObj{} - - // For the main index, make sure to include every package that - // we reference, even if we're not exporting (or reexporting) - // any symbols from it. - if w.p.localpkg != nil { - pkgObjs[w.p.localpkg] = nil - } - for pkg := range w.p.allPkgs { - pkgObjs[pkg] = nil - } - - for obj := range index { - name := w.p.exportName(obj) - pkgObjs[obj.Pkg()] = append(pkgObjs[obj.Pkg()], pkgObj{obj, name}) - } - - var pkgs []*types.Package - for pkg, objs := range pkgObjs { - pkgs = append(pkgs, pkg) - - sort.Slice(objs, func(i, j int) bool { - return objs[i].name < objs[j].name - }) - } - - sort.Slice(pkgs, func(i, j int) bool { - return w.exportPath(pkgs[i]) < w.exportPath(pkgs[j]) - }) - - w.uint64(uint64(len(pkgs))) - for _, pkg := range pkgs { - w.string(w.exportPath(pkg)) - w.string(pkg.Name()) - w.uint64(uint64(0)) // package height is not needed for go/types - - objs := pkgObjs[pkg] - w.uint64(uint64(len(objs))) - for _, obj := range objs { - w.string(obj.name) - w.uint64(index[obj.obj]) - } - } -} - -// exportName returns the 'exported' name of an object. It differs from -// obj.Name() only for type parameters (see tparamExportName for details). -func (p *iexporter) exportName(obj types.Object) (res string) { - if name := p.tparamNames[obj]; name != "" { - return name - } - return obj.Name() -} - -type iexporter struct { - fset *token.FileSet - out *bytes.Buffer - version int - - shallow bool // don't put types from other packages in the index - localpkg *types.Package // (nil in bundle mode) - - // allPkgs tracks all packages that have been referenced by - // the export data, so we can ensure to include them in the - // main index. - allPkgs map[*types.Package]bool - - declTodo objQueue - - strings intWriter - stringIndex map[string]uint64 - - // In shallow mode, object positions are encoded as (file, offset). - // Each file is recorded as a line-number table. - // Only the lines of needed positions are saved faithfully. - fileInfo map[*token.File]uint64 // value is index in fileInfos - fileInfos []*filePositions - - data0 intWriter - declIndex map[types.Object]uint64 - tparamNames map[types.Object]string // typeparam->exported name - typIndex map[types.Type]uint64 - - indent int // for tracing support -} - -type filePositions struct { - file *token.File - needed []uint64 // unordered list of needed file offsets -} - -func (p *iexporter) trace(format string, args ...interface{}) { - if !trace { - // Call sites should also be guarded, but having this check here allows - // easily enabling/disabling debug trace statements. - return - } - fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) -} - -// stringOff returns the offset of s within the string section. -// If not already present, it's added to the end. -func (p *iexporter) stringOff(s string) uint64 { - off, ok := p.stringIndex[s] - if !ok { - off = uint64(p.strings.Len()) - p.stringIndex[s] = off - - p.strings.uint64(uint64(len(s))) - p.strings.WriteString(s) - } - return off -} - -// fileIndexAndOffset returns the index of the token.File and the byte offset of pos within it. -func (p *iexporter) fileIndexAndOffset(file *token.File, pos token.Pos) (uint64, uint64) { - index, ok := p.fileInfo[file] - if !ok { - index = uint64(len(p.fileInfo)) - p.fileInfos = append(p.fileInfos, &filePositions{file: file}) - if p.fileInfo == nil { - p.fileInfo = make(map[*token.File]uint64) - } - p.fileInfo[file] = index - } - // Record each needed offset. - info := p.fileInfos[index] - offset := uint64(file.Offset(pos)) - info.needed = append(info.needed, offset) - - return index, offset -} - -// pushDecl adds n to the declaration work queue, if not already present. -func (p *iexporter) pushDecl(obj types.Object) { - // Package unsafe is known to the compiler and predeclared. - // Caller should not ask us to do export it. - if obj.Pkg() == types.Unsafe { - panic("cannot export package unsafe") - } - - // Shallow export data: don't index decls from other packages. - if p.shallow && obj.Pkg() != p.localpkg { - return - } - - if _, ok := p.declIndex[obj]; ok { - return - } - - p.declIndex[obj] = ^uint64(0) // mark obj present in work queue - p.declTodo.pushTail(obj) -} - -// exportWriter handles writing out individual data section chunks. -type exportWriter struct { - p *iexporter - - data intWriter - currPkg *types.Package - prevFile string - prevLine int64 - prevColumn int64 -} - -func (w *exportWriter) exportPath(pkg *types.Package) string { - if pkg == w.p.localpkg { - return "" - } - return pkg.Path() -} - -func (p *iexporter) doDecl(obj types.Object) { - if trace { - p.trace("exporting decl %v (%T)", obj, obj) - p.indent++ - defer func() { - p.indent-- - p.trace("=> %s", obj) - }() - } - w := p.newWriter() - w.setPkg(obj.Pkg(), false) - - switch obj := obj.(type) { - case *types.Var: - w.tag('V') - w.pos(obj.Pos()) - w.typ(obj.Type(), obj.Pkg()) - - case *types.Func: - sig, _ := obj.Type().(*types.Signature) - if sig.Recv() != nil { - // We shouldn't see methods in the package scope, - // but the type checker may repair "func () F() {}" - // to "func (Invalid) F()" and then treat it like "func F()", - // so allow that. See golang/go#57729. - if sig.Recv().Type() != types.Typ[types.Invalid] { - panic(internalErrorf("unexpected method: %v", sig)) - } - } - - // Function. - if typeparams.ForSignature(sig).Len() == 0 { - w.tag('F') - } else { - w.tag('G') - } - w.pos(obj.Pos()) - // The tparam list of the function type is the declaration of the type - // params. So, write out the type params right now. Then those type params - // will be referenced via their type offset (via typOff) in all other - // places in the signature and function where they are used. - // - // While importing the type parameters, tparamList computes and records - // their export name, so that it can be later used when writing the index. - if tparams := typeparams.ForSignature(sig); tparams.Len() > 0 { - w.tparamList(obj.Name(), tparams, obj.Pkg()) - } - w.signature(sig) - - case *types.Const: - w.tag('C') - w.pos(obj.Pos()) - w.value(obj.Type(), obj.Val()) - - case *types.TypeName: - t := obj.Type() - - if tparam, ok := t.(*typeparams.TypeParam); ok { - w.tag('P') - w.pos(obj.Pos()) - constraint := tparam.Constraint() - if p.version >= iexportVersionGo1_18 { - implicit := false - if iface, _ := constraint.(*types.Interface); iface != nil { - implicit = typeparams.IsImplicit(iface) - } - w.bool(implicit) - } - w.typ(constraint, obj.Pkg()) - break - } - - if obj.IsAlias() { - w.tag('A') - w.pos(obj.Pos()) - w.typ(t, obj.Pkg()) - break - } - - // Defined type. - named, ok := t.(*types.Named) - if !ok { - panic(internalErrorf("%s is not a defined type", t)) - } - - if typeparams.ForNamed(named).Len() == 0 { - w.tag('T') - } else { - w.tag('U') - } - w.pos(obj.Pos()) - - if typeparams.ForNamed(named).Len() > 0 { - // While importing the type parameters, tparamList computes and records - // their export name, so that it can be later used when writing the index. - w.tparamList(obj.Name(), typeparams.ForNamed(named), obj.Pkg()) - } - - underlying := obj.Type().Underlying() - w.typ(underlying, obj.Pkg()) - - if types.IsInterface(t) { - break - } - - n := named.NumMethods() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - m := named.Method(i) - w.pos(m.Pos()) - w.string(m.Name()) - sig, _ := m.Type().(*types.Signature) - - // Receiver type parameters are type arguments of the receiver type, so - // their name must be qualified before exporting recv. - if rparams := typeparams.RecvTypeParams(sig); rparams.Len() > 0 { - prefix := obj.Name() + "." + m.Name() - for i := 0; i < rparams.Len(); i++ { - rparam := rparams.At(i) - name := tparamExportName(prefix, rparam) - w.p.tparamNames[rparam.Obj()] = name - } - } - w.param(sig.Recv()) - w.signature(sig) - } - - default: - panic(internalErrorf("unexpected object: %v", obj)) - } - - p.declIndex[obj] = w.flush() -} - -func (w *exportWriter) tag(tag byte) { - w.data.WriteByte(tag) -} - -func (w *exportWriter) pos(pos token.Pos) { - if w.p.shallow { - w.posV2(pos) - } else if w.p.version >= iexportVersionPosCol { - w.posV1(pos) - } else { - w.posV0(pos) - } -} - -// posV2 encoding (used only in shallow mode) records positions as -// (file, offset), where file is the index in the token.File table -// (which records the file name and newline offsets) and offset is a -// byte offset. It effectively ignores //line directives. -func (w *exportWriter) posV2(pos token.Pos) { - if pos == token.NoPos { - w.uint64(0) - return - } - file := w.p.fset.File(pos) // fset must be non-nil - index, offset := w.p.fileIndexAndOffset(file, pos) - w.uint64(1 + index) - w.uint64(offset) -} - -func (w *exportWriter) posV1(pos token.Pos) { - if w.p.fset == nil { - w.int64(0) - return - } - - p := w.p.fset.Position(pos) - file := p.Filename - line := int64(p.Line) - column := int64(p.Column) - - deltaColumn := (column - w.prevColumn) << 1 - deltaLine := (line - w.prevLine) << 1 - - if file != w.prevFile { - deltaLine |= 1 - } - if deltaLine != 0 { - deltaColumn |= 1 - } - - w.int64(deltaColumn) - if deltaColumn&1 != 0 { - w.int64(deltaLine) - if deltaLine&1 != 0 { - w.string(file) - } - } - - w.prevFile = file - w.prevLine = line - w.prevColumn = column -} - -func (w *exportWriter) posV0(pos token.Pos) { - if w.p.fset == nil { - w.int64(0) - return - } - - p := w.p.fset.Position(pos) - file := p.Filename - line := int64(p.Line) - - // When file is the same as the last position (common case), - // we can save a few bytes by delta encoding just the line - // number. - // - // Note: Because data objects may be read out of order (or not - // at all), we can only apply delta encoding within a single - // object. This is handled implicitly by tracking prevFile and - // prevLine as fields of exportWriter. - - if file == w.prevFile { - delta := line - w.prevLine - w.int64(delta) - if delta == deltaNewFile { - w.int64(-1) - } - } else { - w.int64(deltaNewFile) - w.int64(line) // line >= 0 - w.string(file) - w.prevFile = file - } - w.prevLine = line -} - -func (w *exportWriter) pkg(pkg *types.Package) { - // Ensure any referenced packages are declared in the main index. - w.p.allPkgs[pkg] = true - - w.string(w.exportPath(pkg)) -} - -func (w *exportWriter) qualifiedType(obj *types.TypeName) { - name := w.p.exportName(obj) - - // Ensure any referenced declarations are written out too. - w.p.pushDecl(obj) - w.string(name) - w.pkg(obj.Pkg()) -} - -func (w *exportWriter) typ(t types.Type, pkg *types.Package) { - w.data.uint64(w.p.typOff(t, pkg)) -} - -func (p *iexporter) newWriter() *exportWriter { - return &exportWriter{p: p} -} - -func (w *exportWriter) flush() uint64 { - off := uint64(w.p.data0.Len()) - io.Copy(&w.p.data0, &w.data) - return off -} - -func (p *iexporter) typOff(t types.Type, pkg *types.Package) uint64 { - off, ok := p.typIndex[t] - if !ok { - w := p.newWriter() - w.doTyp(t, pkg) - off = predeclReserved + w.flush() - p.typIndex[t] = off - } - return off -} - -func (w *exportWriter) startType(k itag) { - w.data.uint64(uint64(k)) -} - -func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { - if trace { - w.p.trace("exporting type %s (%T)", t, t) - w.p.indent++ - defer func() { - w.p.indent-- - w.p.trace("=> %s", t) - }() - } - switch t := t.(type) { - case *types.Named: - if targs := typeparams.NamedTypeArgs(t); targs.Len() > 0 { - w.startType(instanceType) - // TODO(rfindley): investigate if this position is correct, and if it - // matters. - w.pos(t.Obj().Pos()) - w.typeList(targs, pkg) - w.typ(typeparams.NamedTypeOrigin(t), pkg) - return - } - w.startType(definedType) - w.qualifiedType(t.Obj()) - - case *typeparams.TypeParam: - w.startType(typeParamType) - w.qualifiedType(t.Obj()) - - case *types.Pointer: - w.startType(pointerType) - w.typ(t.Elem(), pkg) - - case *types.Slice: - w.startType(sliceType) - w.typ(t.Elem(), pkg) - - case *types.Array: - w.startType(arrayType) - w.uint64(uint64(t.Len())) - w.typ(t.Elem(), pkg) - - case *types.Chan: - w.startType(chanType) - // 1 RecvOnly; 2 SendOnly; 3 SendRecv - var dir uint64 - switch t.Dir() { - case types.RecvOnly: - dir = 1 - case types.SendOnly: - dir = 2 - case types.SendRecv: - dir = 3 - } - w.uint64(dir) - w.typ(t.Elem(), pkg) - - case *types.Map: - w.startType(mapType) - w.typ(t.Key(), pkg) - w.typ(t.Elem(), pkg) - - case *types.Signature: - w.startType(signatureType) - w.setPkg(pkg, true) - w.signature(t) - - case *types.Struct: - w.startType(structType) - n := t.NumFields() - if n > 0 { - w.setPkg(t.Field(0).Pkg(), true) // qualifying package for field objects - } else { - w.setPkg(pkg, true) - } - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - f := t.Field(i) - w.pos(f.Pos()) - w.string(f.Name()) // unexported fields implicitly qualified by prior setPkg - w.typ(f.Type(), pkg) - w.bool(f.Anonymous()) - w.string(t.Tag(i)) // note (or tag) - } - - case *types.Interface: - w.startType(interfaceType) - w.setPkg(pkg, true) - - n := t.NumEmbeddeds() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - ft := t.EmbeddedType(i) - tPkg := pkg - if named, _ := ft.(*types.Named); named != nil { - w.pos(named.Obj().Pos()) - } else { - w.pos(token.NoPos) - } - w.typ(ft, tPkg) - } - - n = t.NumExplicitMethods() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - m := t.ExplicitMethod(i) - w.pos(m.Pos()) - w.string(m.Name()) - sig, _ := m.Type().(*types.Signature) - w.signature(sig) - } - - case *typeparams.Union: - w.startType(unionType) - nt := t.Len() - w.uint64(uint64(nt)) - for i := 0; i < nt; i++ { - term := t.Term(i) - w.bool(term.Tilde()) - w.typ(term.Type(), pkg) - } - - default: - panic(internalErrorf("unexpected type: %v, %v", t, reflect.TypeOf(t))) - } -} - -func (w *exportWriter) setPkg(pkg *types.Package, write bool) { - if write { - w.pkg(pkg) - } - - w.currPkg = pkg -} - -func (w *exportWriter) signature(sig *types.Signature) { - w.paramList(sig.Params()) - w.paramList(sig.Results()) - if sig.Params().Len() > 0 { - w.bool(sig.Variadic()) - } -} - -func (w *exportWriter) typeList(ts *typeparams.TypeList, pkg *types.Package) { - w.uint64(uint64(ts.Len())) - for i := 0; i < ts.Len(); i++ { - w.typ(ts.At(i), pkg) - } -} - -func (w *exportWriter) tparamList(prefix string, list *typeparams.TypeParamList, pkg *types.Package) { - ll := uint64(list.Len()) - w.uint64(ll) - for i := 0; i < list.Len(); i++ { - tparam := list.At(i) - // Set the type parameter exportName before exporting its type. - exportName := tparamExportName(prefix, tparam) - w.p.tparamNames[tparam.Obj()] = exportName - w.typ(list.At(i), pkg) - } -} - -const blankMarker = "$" - -// tparamExportName returns the 'exported' name of a type parameter, which -// differs from its actual object name: it is prefixed with a qualifier, and -// blank type parameter names are disambiguated by their index in the type -// parameter list. -func tparamExportName(prefix string, tparam *typeparams.TypeParam) string { - assert(prefix != "") - name := tparam.Obj().Name() - if name == "_" { - name = blankMarker + strconv.Itoa(tparam.Index()) - } - return prefix + "." + name -} - -// tparamName returns the real name of a type parameter, after stripping its -// qualifying prefix and reverting blank-name encoding. See tparamExportName -// for details. -func tparamName(exportName string) string { - // Remove the "path" from the type param name that makes it unique. - ix := strings.LastIndex(exportName, ".") - if ix < 0 { - errorf("malformed type parameter export name %s: missing prefix", exportName) - } - name := exportName[ix+1:] - if strings.HasPrefix(name, blankMarker) { - return "_" - } - return name -} - -func (w *exportWriter) paramList(tup *types.Tuple) { - n := tup.Len() - w.uint64(uint64(n)) - for i := 0; i < n; i++ { - w.param(tup.At(i)) - } -} - -func (w *exportWriter) param(obj types.Object) { - w.pos(obj.Pos()) - w.localIdent(obj) - w.typ(obj.Type(), obj.Pkg()) -} - -func (w *exportWriter) value(typ types.Type, v constant.Value) { - w.typ(typ, nil) - if w.p.version >= iexportVersionGo1_18 { - w.int64(int64(v.Kind())) - } - - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - w.bool(constant.BoolVal(v)) - case types.IsInteger: - var i big.Int - if i64, exact := constant.Int64Val(v); exact { - i.SetInt64(i64) - } else if ui64, exact := constant.Uint64Val(v); exact { - i.SetUint64(ui64) - } else { - i.SetString(v.ExactString(), 10) - } - w.mpint(&i, typ) - case types.IsFloat: - f := constantToFloat(v) - w.mpfloat(f, typ) - case types.IsComplex: - w.mpfloat(constantToFloat(constant.Real(v)), typ) - w.mpfloat(constantToFloat(constant.Imag(v)), typ) - case types.IsString: - w.string(constant.StringVal(v)) - default: - if b.Kind() == types.Invalid { - // package contains type errors - break - } - panic(internalErrorf("unexpected type %v (%v)", typ, typ.Underlying())) - } -} - -// constantToFloat converts a constant.Value with kind constant.Float to a -// big.Float. -func constantToFloat(x constant.Value) *big.Float { - x = constant.ToFloat(x) - // Use the same floating-point precision (512) as cmd/compile - // (see Mpprec in cmd/compile/internal/gc/mpfloat.go). - const mpprec = 512 - var f big.Float - f.SetPrec(mpprec) - if v, exact := constant.Float64Val(x); exact { - // float64 - f.SetFloat64(v) - } else if num, denom := constant.Num(x), constant.Denom(x); num.Kind() == constant.Int { - // TODO(gri): add big.Rat accessor to constant.Value. - n := valueToRat(num) - d := valueToRat(denom) - f.SetRat(n.Quo(n, d)) - } else { - // Value too large to represent as a fraction => inaccessible. - // TODO(gri): add big.Float accessor to constant.Value. - _, ok := f.SetString(x.ExactString()) - assert(ok) - } - return &f -} - -// mpint exports a multi-precision integer. -// -// For unsigned types, small values are written out as a single -// byte. Larger values are written out as a length-prefixed big-endian -// byte string, where the length prefix is encoded as its complement. -// For example, bytes 0, 1, and 2 directly represent the integer -// values 0, 1, and 2; while bytes 255, 254, and 253 indicate a 1-, -// 2-, and 3-byte big-endian string follow. -// -// Encoding for signed types use the same general approach as for -// unsigned types, except small values use zig-zag encoding and the -// bottom bit of length prefix byte for large values is reserved as a -// sign bit. -// -// The exact boundary between small and large encodings varies -// according to the maximum number of bytes needed to encode a value -// of type typ. As a special case, 8-bit types are always encoded as a -// single byte. -// -// TODO(mdempsky): Is this level of complexity really worthwhile? -func (w *exportWriter) mpint(x *big.Int, typ types.Type) { - basic, ok := typ.Underlying().(*types.Basic) - if !ok { - panic(internalErrorf("unexpected type %v (%T)", typ.Underlying(), typ.Underlying())) - } - - signed, maxBytes := intSize(basic) - - negative := x.Sign() < 0 - if !signed && negative { - panic(internalErrorf("negative unsigned integer; type %v, value %v", typ, x)) - } - - b := x.Bytes() - if len(b) > 0 && b[0] == 0 { - panic(internalErrorf("leading zeros")) - } - if uint(len(b)) > maxBytes { - panic(internalErrorf("bad mpint length: %d > %d (type %v, value %v)", len(b), maxBytes, typ, x)) - } - - maxSmall := 256 - maxBytes - if signed { - maxSmall = 256 - 2*maxBytes - } - if maxBytes == 1 { - maxSmall = 256 - } - - // Check if x can use small value encoding. - if len(b) <= 1 { - var ux uint - if len(b) == 1 { - ux = uint(b[0]) - } - if signed { - ux <<= 1 - if negative { - ux-- - } - } - if ux < maxSmall { - w.data.WriteByte(byte(ux)) - return - } - } - - n := 256 - uint(len(b)) - if signed { - n = 256 - 2*uint(len(b)) - if negative { - n |= 1 - } - } - if n < maxSmall || n >= 256 { - panic(internalErrorf("encoding mistake: %d, %v, %v => %d", len(b), signed, negative, n)) - } - - w.data.WriteByte(byte(n)) - w.data.Write(b) -} - -// mpfloat exports a multi-precision floating point number. -// -// The number's value is decomposed into mantissa × 2**exponent, where -// mantissa is an integer. The value is written out as mantissa (as a -// multi-precision integer) and then the exponent, except exponent is -// omitted if mantissa is zero. -func (w *exportWriter) mpfloat(f *big.Float, typ types.Type) { - if f.IsInf() { - panic("infinite constant") - } - - // Break into f = mant × 2**exp, with 0.5 <= mant < 1. - var mant big.Float - exp := int64(f.MantExp(&mant)) - - // Scale so that mant is an integer. - prec := mant.MinPrec() - mant.SetMantExp(&mant, int(prec)) - exp -= int64(prec) - - manti, acc := mant.Int(nil) - if acc != big.Exact { - panic(internalErrorf("mantissa scaling failed for %f (%s)", f, acc)) - } - w.mpint(manti, typ) - if manti.Sign() != 0 { - w.int64(exp) - } -} - -func (w *exportWriter) bool(b bool) bool { - var x uint64 - if b { - x = 1 - } - w.uint64(x) - return b -} - -func (w *exportWriter) int64(x int64) { w.data.int64(x) } -func (w *exportWriter) uint64(x uint64) { w.data.uint64(x) } -func (w *exportWriter) string(s string) { w.uint64(w.p.stringOff(s)) } - -func (w *exportWriter) localIdent(obj types.Object) { - // Anonymous parameters. - if obj == nil { - w.string("") - return - } - - name := obj.Name() - if name == "_" { - w.string("_") - return - } - - w.string(name) -} - -type intWriter struct { - bytes.Buffer -} - -func (w *intWriter) int64(x int64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutVarint(buf[:], x) - w.Write(buf[:n]) -} - -func (w *intWriter) uint64(x uint64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - w.Write(buf[:n]) -} - -func assert(cond bool) { - if !cond { - panic("internal error: assertion failed") - } -} - -// The below is copied from go/src/cmd/compile/internal/gc/syntax.go. - -// objQueue is a FIFO queue of types.Object. The zero value of objQueue is -// a ready-to-use empty queue. -type objQueue struct { - ring []types.Object - head, tail int -} - -// empty returns true if q contains no Nodes. -func (q *objQueue) empty() bool { - return q.head == q.tail -} - -// pushTail appends n to the tail of the queue. -func (q *objQueue) pushTail(obj types.Object) { - if len(q.ring) == 0 { - q.ring = make([]types.Object, 16) - } else if q.head+len(q.ring) == q.tail { - // Grow the ring. - nring := make([]types.Object, len(q.ring)*2) - // Copy the old elements. - part := q.ring[q.head%len(q.ring):] - if q.tail-q.head <= len(part) { - part = part[:q.tail-q.head] - copy(nring, part) - } else { - pos := copy(nring, part) - copy(nring[pos:], q.ring[:q.tail%len(q.ring)]) - } - q.ring, q.head, q.tail = nring, 0, q.tail-q.head - } - - q.ring[q.tail%len(q.ring)] = obj - q.tail++ -} - -// popHead pops a node from the head of the queue. It panics if q is empty. -func (q *objQueue) popHead() types.Object { - if q.empty() { - panic("dequeue empty") - } - obj := q.ring[q.head%len(q.ring)] - q.head++ - return obj -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go deleted file mode 100644 index 448f903e86..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ /dev/null @@ -1,976 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Indexed package import. -// See cmd/compile/internal/gc/iexport.go for the export data format. - -// This file is a copy of $GOROOT/src/go/internal/gcimporter/iimport.go. - -package gcimporter - -import ( - "bytes" - "encoding/binary" - "fmt" - "go/constant" - "go/token" - "go/types" - "io" - "math/big" - "sort" - "strings" - - "golang.org/x/tools/internal/typeparams" -) - -type intReader struct { - *bytes.Reader - path string -} - -func (r *intReader) int64() int64 { - i, err := binary.ReadVarint(r.Reader) - if err != nil { - errorf("import %q: read varint error: %v", r.path, err) - } - return i -} - -func (r *intReader) uint64() uint64 { - i, err := binary.ReadUvarint(r.Reader) - if err != nil { - errorf("import %q: read varint error: %v", r.path, err) - } - return i -} - -// Keep this in sync with constants in iexport.go. -const ( - iexportVersionGo1_11 = 0 - iexportVersionPosCol = 1 - iexportVersionGo1_18 = 2 - iexportVersionGenerics = 2 - - iexportVersionCurrent = 2 -) - -type ident struct { - pkg *types.Package - name string -} - -const predeclReserved = 32 - -type itag uint64 - -const ( - // Types - definedType itag = iota - pointerType - sliceType - arrayType - chanType - mapType - signatureType - structType - interfaceType - typeParamType - instanceType - unionType -) - -// IImportData imports a package from the serialized package data -// and returns 0 and a reference to the package. -// If the export data version is not recognized or the format is otherwise -// compromised, an error is returned. -func IImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (int, *types.Package, error) { - pkgs, err := iimportCommon(fset, imports, data, false, path, nil) - if err != nil { - return 0, nil, err - } - return 0, pkgs[0], nil -} - -// IImportBundle imports a set of packages from the serialized package bundle. -func IImportBundle(fset *token.FileSet, imports map[string]*types.Package, data []byte) ([]*types.Package, error) { - return iimportCommon(fset, imports, data, true, "", nil) -} - -func iimportCommon(fset *token.FileSet, imports map[string]*types.Package, data []byte, bundle bool, path string, insert InsertType) (pkgs []*types.Package, err error) { - const currentVersion = iexportVersionCurrent - version := int64(-1) - if !debug { - defer func() { - if e := recover(); e != nil { - if bundle { - err = fmt.Errorf("%v", e) - } else if version > currentVersion { - err = fmt.Errorf("cannot import %q (%v), export data is newer version - update tool", path, e) - } else { - err = fmt.Errorf("cannot import %q (%v), possibly version skew - reinstall package", path, e) - } - } - }() - } - - r := &intReader{bytes.NewReader(data), path} - - if bundle { - bundleVersion := r.uint64() - switch bundleVersion { - case bundleVersion: - default: - errorf("unknown bundle format version %d", bundleVersion) - } - } - - version = int64(r.uint64()) - switch version { - case iexportVersionGo1_18, iexportVersionPosCol, iexportVersionGo1_11: - default: - if version > iexportVersionGo1_18 { - errorf("unstable iexport format version %d, just rebuild compiler and std library", version) - } else { - errorf("unknown iexport format version %d", version) - } - } - - sLen := int64(r.uint64()) - var fLen int64 - var fileOffset []uint64 - if insert != nil { - // Shallow mode uses a different position encoding. - fLen = int64(r.uint64()) - fileOffset = make([]uint64, r.uint64()) - for i := range fileOffset { - fileOffset[i] = r.uint64() - } - } - dLen := int64(r.uint64()) - - whence, _ := r.Seek(0, io.SeekCurrent) - stringData := data[whence : whence+sLen] - fileData := data[whence+sLen : whence+sLen+fLen] - declData := data[whence+sLen+fLen : whence+sLen+fLen+dLen] - r.Seek(sLen+fLen+dLen, io.SeekCurrent) - - p := iimporter{ - version: int(version), - ipath: path, - insert: insert, - - stringData: stringData, - stringCache: make(map[uint64]string), - fileOffset: fileOffset, - fileData: fileData, - fileCache: make([]*token.File, len(fileOffset)), - pkgCache: make(map[uint64]*types.Package), - - declData: declData, - pkgIndex: make(map[*types.Package]map[string]uint64), - typCache: make(map[uint64]types.Type), - // Separate map for typeparams, keyed by their package and unique - // name. - tparamIndex: make(map[ident]types.Type), - - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - } - defer p.fake.setLines() // set lines for files in fset - - for i, pt := range predeclared() { - p.typCache[uint64(i)] = pt - } - - pkgList := make([]*types.Package, r.uint64()) - for i := range pkgList { - pkgPathOff := r.uint64() - pkgPath := p.stringAt(pkgPathOff) - pkgName := p.stringAt(r.uint64()) - _ = r.uint64() // package height; unused by go/types - - if pkgPath == "" { - pkgPath = path - } - pkg := imports[pkgPath] - if pkg == nil { - pkg = types.NewPackage(pkgPath, pkgName) - imports[pkgPath] = pkg - } else if pkg.Name() != pkgName { - errorf("conflicting names %s and %s for package %q", pkg.Name(), pkgName, path) - } - if i == 0 && !bundle { - p.localpkg = pkg - } - - p.pkgCache[pkgPathOff] = pkg - - // Read index for package. - nameIndex := make(map[string]uint64) - nSyms := r.uint64() - // In shallow mode we don't expect an index for other packages. - assert(nSyms == 0 || p.localpkg == pkg || p.insert == nil) - for ; nSyms > 0; nSyms-- { - name := p.stringAt(r.uint64()) - nameIndex[name] = r.uint64() - } - - p.pkgIndex[pkg] = nameIndex - pkgList[i] = pkg - } - - if bundle { - pkgs = make([]*types.Package, r.uint64()) - for i := range pkgs { - pkg := p.pkgAt(r.uint64()) - imps := make([]*types.Package, r.uint64()) - for j := range imps { - imps[j] = p.pkgAt(r.uint64()) - } - pkg.SetImports(imps) - pkgs[i] = pkg - } - } else { - if len(pkgList) == 0 { - errorf("no packages found for %s", path) - panic("unreachable") - } - pkgs = pkgList[:1] - - // record all referenced packages as imports - list := append(([]*types.Package)(nil), pkgList[1:]...) - sort.Sort(byPath(list)) - pkgs[0].SetImports(list) - } - - for _, pkg := range pkgs { - if pkg.Complete() { - continue - } - - names := make([]string, 0, len(p.pkgIndex[pkg])) - for name := range p.pkgIndex[pkg] { - names = append(names, name) - } - sort.Strings(names) - for _, name := range names { - p.doDecl(pkg, name) - } - - // package was imported completely and without errors - pkg.MarkComplete() - } - - // SetConstraint can't be called if the constraint type is not yet complete. - // When type params are created in the 'P' case of (*importReader).obj(), - // the associated constraint type may not be complete due to recursion. - // Therefore, we defer calling SetConstraint there, and call it here instead - // after all types are complete. - for _, d := range p.later { - typeparams.SetTypeParamConstraint(d.t, d.constraint) - } - - for _, typ := range p.interfaceList { - typ.Complete() - } - - return pkgs, nil -} - -type setConstraintArgs struct { - t *typeparams.TypeParam - constraint types.Type -} - -type iimporter struct { - version int - ipath string - - localpkg *types.Package - insert func(pkg *types.Package, name string) // "shallow" mode only - - stringData []byte - stringCache map[uint64]string - fileOffset []uint64 // fileOffset[i] is offset in fileData for info about file encoded as i - fileData []byte - fileCache []*token.File // memoized decoding of file encoded as i - pkgCache map[uint64]*types.Package - - declData []byte - pkgIndex map[*types.Package]map[string]uint64 - typCache map[uint64]types.Type - tparamIndex map[ident]types.Type - - fake fakeFileSet - interfaceList []*types.Interface - - // Arguments for calls to SetConstraint that are deferred due to recursive types - later []setConstraintArgs - - indent int // for tracing support -} - -func (p *iimporter) trace(format string, args ...interface{}) { - if !trace { - // Call sites should also be guarded, but having this check here allows - // easily enabling/disabling debug trace statements. - return - } - fmt.Printf(strings.Repeat("..", p.indent)+format+"\n", args...) -} - -func (p *iimporter) doDecl(pkg *types.Package, name string) { - if debug { - p.trace("import decl %s", name) - p.indent++ - defer func() { - p.indent-- - p.trace("=> %s", name) - }() - } - // See if we've already imported this declaration. - if obj := pkg.Scope().Lookup(name); obj != nil { - return - } - - off, ok := p.pkgIndex[pkg][name] - if !ok { - // In "shallow" mode, call back to the application to - // find the object and insert it into the package scope. - if p.insert != nil { - assert(pkg != p.localpkg) - p.insert(pkg, name) // "can't fail" - return - } - errorf("%v.%v not in index", pkg, name) - } - - r := &importReader{p: p, currPkg: pkg} - r.declReader.Reset(p.declData[off:]) - - r.obj(name) -} - -func (p *iimporter) stringAt(off uint64) string { - if s, ok := p.stringCache[off]; ok { - return s - } - - slen, n := binary.Uvarint(p.stringData[off:]) - if n <= 0 { - errorf("varint failed") - } - spos := off + uint64(n) - s := string(p.stringData[spos : spos+slen]) - p.stringCache[off] = s - return s -} - -func (p *iimporter) fileAt(index uint64) *token.File { - file := p.fileCache[index] - if file == nil { - off := p.fileOffset[index] - file = p.decodeFile(intReader{bytes.NewReader(p.fileData[off:]), p.ipath}) - p.fileCache[index] = file - } - return file -} - -func (p *iimporter) decodeFile(rd intReader) *token.File { - filename := p.stringAt(rd.uint64()) - size := int(rd.uint64()) - file := p.fake.fset.AddFile(filename, -1, size) - - // SetLines requires a nondecreasing sequence. - // Because it is common for clients to derive the interval - // [start, start+len(name)] from a start position, and we - // want to ensure that the end offset is on the same line, - // we fill in the gaps of the sparse encoding with values - // that strictly increase by the largest possible amount. - // This allows us to avoid having to record the actual end - // offset of each needed line. - - lines := make([]int, int(rd.uint64())) - var index, offset int - for i, n := 0, int(rd.uint64()); i < n; i++ { - index += int(rd.uint64()) - offset += int(rd.uint64()) - lines[index] = offset - - // Ensure monotonicity between points. - for j := index - 1; j > 0 && lines[j] == 0; j-- { - lines[j] = lines[j+1] - 1 - } - } - - // Ensure monotonicity after last point. - for j := len(lines) - 1; j > 0 && lines[j] == 0; j-- { - size-- - lines[j] = size - } - - if !file.SetLines(lines) { - errorf("SetLines failed: %d", lines) // can't happen - } - return file -} - -func (p *iimporter) pkgAt(off uint64) *types.Package { - if pkg, ok := p.pkgCache[off]; ok { - return pkg - } - path := p.stringAt(off) - errorf("missing package %q in %q", path, p.ipath) - return nil -} - -func (p *iimporter) typAt(off uint64, base *types.Named) types.Type { - if t, ok := p.typCache[off]; ok && canReuse(base, t) { - return t - } - - if off < predeclReserved { - errorf("predeclared type missing from cache: %v", off) - } - - r := &importReader{p: p} - r.declReader.Reset(p.declData[off-predeclReserved:]) - t := r.doType(base) - - if canReuse(base, t) { - p.typCache[off] = t - } - return t -} - -// canReuse reports whether the type rhs on the RHS of the declaration for def -// may be re-used. -// -// Specifically, if def is non-nil and rhs is an interface type with methods, it -// may not be re-used because we have a convention of setting the receiver type -// for interface methods to def. -func canReuse(def *types.Named, rhs types.Type) bool { - if def == nil { - return true - } - iface, _ := rhs.(*types.Interface) - if iface == nil { - return true - } - // Don't use iface.Empty() here as iface may not be complete. - return iface.NumEmbeddeds() == 0 && iface.NumExplicitMethods() == 0 -} - -type importReader struct { - p *iimporter - declReader bytes.Reader - currPkg *types.Package - prevFile string - prevLine int64 - prevColumn int64 -} - -func (r *importReader) obj(name string) { - tag := r.byte() - pos := r.pos() - - switch tag { - case 'A': - typ := r.typ() - - r.declare(types.NewTypeName(pos, r.currPkg, name, typ)) - - case 'C': - typ, val := r.value() - - r.declare(types.NewConst(pos, r.currPkg, name, typ, val)) - - case 'F', 'G': - var tparams []*typeparams.TypeParam - if tag == 'G' { - tparams = r.tparamList() - } - sig := r.signature(nil, nil, tparams) - r.declare(types.NewFunc(pos, r.currPkg, name, sig)) - - case 'T', 'U': - // Types can be recursive. We need to setup a stub - // declaration before recursing. - obj := types.NewTypeName(pos, r.currPkg, name, nil) - named := types.NewNamed(obj, nil, nil) - // Declare obj before calling r.tparamList, so the new type name is recognized - // if used in the constraint of one of its own typeparams (see #48280). - r.declare(obj) - if tag == 'U' { - tparams := r.tparamList() - typeparams.SetForNamed(named, tparams) - } - - underlying := r.p.typAt(r.uint64(), named).Underlying() - named.SetUnderlying(underlying) - - if !isInterface(underlying) { - for n := r.uint64(); n > 0; n-- { - mpos := r.pos() - mname := r.ident() - recv := r.param() - - // If the receiver has any targs, set those as the - // rparams of the method (since those are the - // typeparams being used in the method sig/body). - base := baseType(recv.Type()) - assert(base != nil) - targs := typeparams.NamedTypeArgs(base) - var rparams []*typeparams.TypeParam - if targs.Len() > 0 { - rparams = make([]*typeparams.TypeParam, targs.Len()) - for i := range rparams { - rparams[i] = targs.At(i).(*typeparams.TypeParam) - } - } - msig := r.signature(recv, rparams, nil) - - named.AddMethod(types.NewFunc(mpos, r.currPkg, mname, msig)) - } - } - - case 'P': - // We need to "declare" a typeparam in order to have a name that - // can be referenced recursively (if needed) in the type param's - // bound. - if r.p.version < iexportVersionGenerics { - errorf("unexpected type param type") - } - name0 := tparamName(name) - tn := types.NewTypeName(pos, r.currPkg, name0, nil) - t := typeparams.NewTypeParam(tn, nil) - - // To handle recursive references to the typeparam within its - // bound, save the partial type in tparamIndex before reading the bounds. - id := ident{r.currPkg, name} - r.p.tparamIndex[id] = t - var implicit bool - if r.p.version >= iexportVersionGo1_18 { - implicit = r.bool() - } - constraint := r.typ() - if implicit { - iface, _ := constraint.(*types.Interface) - if iface == nil { - errorf("non-interface constraint marked implicit") - } - typeparams.MarkImplicit(iface) - } - // The constraint type may not be complete, if we - // are in the middle of a type recursion involving type - // constraints. So, we defer SetConstraint until we have - // completely set up all types in ImportData. - r.p.later = append(r.p.later, setConstraintArgs{t: t, constraint: constraint}) - - case 'V': - typ := r.typ() - - r.declare(types.NewVar(pos, r.currPkg, name, typ)) - - default: - errorf("unexpected tag: %v", tag) - } -} - -func (r *importReader) declare(obj types.Object) { - obj.Pkg().Scope().Insert(obj) -} - -func (r *importReader) value() (typ types.Type, val constant.Value) { - typ = r.typ() - if r.p.version >= iexportVersionGo1_18 { - // TODO: add support for using the kind. - _ = constant.Kind(r.int64()) - } - - switch b := typ.Underlying().(*types.Basic); b.Info() & types.IsConstType { - case types.IsBoolean: - val = constant.MakeBool(r.bool()) - - case types.IsString: - val = constant.MakeString(r.string()) - - case types.IsInteger: - var x big.Int - r.mpint(&x, b) - val = constant.Make(&x) - - case types.IsFloat: - val = r.mpfloat(b) - - case types.IsComplex: - re := r.mpfloat(b) - im := r.mpfloat(b) - val = constant.BinaryOp(re, token.ADD, constant.MakeImag(im)) - - default: - if b.Kind() == types.Invalid { - val = constant.MakeUnknown() - return - } - errorf("unexpected type %v", typ) // panics - panic("unreachable") - } - - return -} - -func intSize(b *types.Basic) (signed bool, maxBytes uint) { - if (b.Info() & types.IsUntyped) != 0 { - return true, 64 - } - - switch b.Kind() { - case types.Float32, types.Complex64: - return true, 3 - case types.Float64, types.Complex128: - return true, 7 - } - - signed = (b.Info() & types.IsUnsigned) == 0 - switch b.Kind() { - case types.Int8, types.Uint8: - maxBytes = 1 - case types.Int16, types.Uint16: - maxBytes = 2 - case types.Int32, types.Uint32: - maxBytes = 4 - default: - maxBytes = 8 - } - - return -} - -func (r *importReader) mpint(x *big.Int, typ *types.Basic) { - signed, maxBytes := intSize(typ) - - maxSmall := 256 - maxBytes - if signed { - maxSmall = 256 - 2*maxBytes - } - if maxBytes == 1 { - maxSmall = 256 - } - - n, _ := r.declReader.ReadByte() - if uint(n) < maxSmall { - v := int64(n) - if signed { - v >>= 1 - if n&1 != 0 { - v = ^v - } - } - x.SetInt64(v) - return - } - - v := -n - if signed { - v = -(n &^ 1) >> 1 - } - if v < 1 || uint(v) > maxBytes { - errorf("weird decoding: %v, %v => %v", n, signed, v) - } - b := make([]byte, v) - io.ReadFull(&r.declReader, b) - x.SetBytes(b) - if signed && n&1 != 0 { - x.Neg(x) - } -} - -func (r *importReader) mpfloat(typ *types.Basic) constant.Value { - var mant big.Int - r.mpint(&mant, typ) - var f big.Float - f.SetInt(&mant) - if f.Sign() != 0 { - f.SetMantExp(&f, int(r.int64())) - } - return constant.Make(&f) -} - -func (r *importReader) ident() string { - return r.string() -} - -func (r *importReader) qualifiedIdent() (*types.Package, string) { - name := r.string() - pkg := r.pkg() - return pkg, name -} - -func (r *importReader) pos() token.Pos { - if r.p.insert != nil { // shallow mode - return r.posv2() - } - if r.p.version >= iexportVersionPosCol { - r.posv1() - } else { - r.posv0() - } - - if r.prevFile == "" && r.prevLine == 0 && r.prevColumn == 0 { - return token.NoPos - } - return r.p.fake.pos(r.prevFile, int(r.prevLine), int(r.prevColumn)) -} - -func (r *importReader) posv0() { - delta := r.int64() - if delta != deltaNewFile { - r.prevLine += delta - } else if l := r.int64(); l == -1 { - r.prevLine += deltaNewFile - } else { - r.prevFile = r.string() - r.prevLine = l - } -} - -func (r *importReader) posv1() { - delta := r.int64() - r.prevColumn += delta >> 1 - if delta&1 != 0 { - delta = r.int64() - r.prevLine += delta >> 1 - if delta&1 != 0 { - r.prevFile = r.string() - } - } -} - -func (r *importReader) posv2() token.Pos { - file := r.uint64() - if file == 0 { - return token.NoPos - } - tf := r.p.fileAt(file - 1) - return tf.Pos(int(r.uint64())) -} - -func (r *importReader) typ() types.Type { - return r.p.typAt(r.uint64(), nil) -} - -func isInterface(t types.Type) bool { - _, ok := t.(*types.Interface) - return ok -} - -func (r *importReader) pkg() *types.Package { return r.p.pkgAt(r.uint64()) } -func (r *importReader) string() string { return r.p.stringAt(r.uint64()) } - -func (r *importReader) doType(base *types.Named) (res types.Type) { - k := r.kind() - if debug { - r.p.trace("importing type %d (base: %s)", k, base) - r.p.indent++ - defer func() { - r.p.indent-- - r.p.trace("=> %s", res) - }() - } - switch k { - default: - errorf("unexpected kind tag in %q: %v", r.p.ipath, k) - return nil - - case definedType: - pkg, name := r.qualifiedIdent() - r.p.doDecl(pkg, name) - return pkg.Scope().Lookup(name).(*types.TypeName).Type() - case pointerType: - return types.NewPointer(r.typ()) - case sliceType: - return types.NewSlice(r.typ()) - case arrayType: - n := r.uint64() - return types.NewArray(r.typ(), int64(n)) - case chanType: - dir := chanDir(int(r.uint64())) - return types.NewChan(dir, r.typ()) - case mapType: - return types.NewMap(r.typ(), r.typ()) - case signatureType: - r.currPkg = r.pkg() - return r.signature(nil, nil, nil) - - case structType: - r.currPkg = r.pkg() - - fields := make([]*types.Var, r.uint64()) - tags := make([]string, len(fields)) - for i := range fields { - fpos := r.pos() - fname := r.ident() - ftyp := r.typ() - emb := r.bool() - tag := r.string() - - fields[i] = types.NewField(fpos, r.currPkg, fname, ftyp, emb) - tags[i] = tag - } - return types.NewStruct(fields, tags) - - case interfaceType: - r.currPkg = r.pkg() - - embeddeds := make([]types.Type, r.uint64()) - for i := range embeddeds { - _ = r.pos() - embeddeds[i] = r.typ() - } - - methods := make([]*types.Func, r.uint64()) - for i := range methods { - mpos := r.pos() - mname := r.ident() - - // TODO(mdempsky): Matches bimport.go, but I - // don't agree with this. - var recv *types.Var - if base != nil { - recv = types.NewVar(token.NoPos, r.currPkg, "", base) - } - - msig := r.signature(recv, nil, nil) - methods[i] = types.NewFunc(mpos, r.currPkg, mname, msig) - } - - typ := newInterface(methods, embeddeds) - r.p.interfaceList = append(r.p.interfaceList, typ) - return typ - - case typeParamType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected type param type") - } - pkg, name := r.qualifiedIdent() - id := ident{pkg, name} - if t, ok := r.p.tparamIndex[id]; ok { - // We're already in the process of importing this typeparam. - return t - } - // Otherwise, import the definition of the typeparam now. - r.p.doDecl(pkg, name) - return r.p.tparamIndex[id] - - case instanceType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected instantiation type") - } - // pos does not matter for instances: they are positioned on the original - // type. - _ = r.pos() - len := r.uint64() - targs := make([]types.Type, len) - for i := range targs { - targs[i] = r.typ() - } - baseType := r.typ() - // The imported instantiated type doesn't include any methods, so - // we must always use the methods of the base (orig) type. - // TODO provide a non-nil *Environment - t, _ := typeparams.Instantiate(nil, baseType, targs, false) - return t - - case unionType: - if r.p.version < iexportVersionGenerics { - errorf("unexpected instantiation type") - } - terms := make([]*typeparams.Term, r.uint64()) - for i := range terms { - terms[i] = typeparams.NewTerm(r.bool(), r.typ()) - } - return typeparams.NewUnion(terms) - } -} - -func (r *importReader) kind() itag { - return itag(r.uint64()) -} - -func (r *importReader) signature(recv *types.Var, rparams []*typeparams.TypeParam, tparams []*typeparams.TypeParam) *types.Signature { - params := r.paramList() - results := r.paramList() - variadic := params.Len() > 0 && r.bool() - return typeparams.NewSignatureType(recv, rparams, tparams, params, results, variadic) -} - -func (r *importReader) tparamList() []*typeparams.TypeParam { - n := r.uint64() - if n == 0 { - return nil - } - xs := make([]*typeparams.TypeParam, n) - for i := range xs { - // Note: the standard library importer is tolerant of nil types here, - // though would panic in SetTypeParams. - xs[i] = r.typ().(*typeparams.TypeParam) - } - return xs -} - -func (r *importReader) paramList() *types.Tuple { - xs := make([]*types.Var, r.uint64()) - for i := range xs { - xs[i] = r.param() - } - return types.NewTuple(xs...) -} - -func (r *importReader) param() *types.Var { - pos := r.pos() - name := r.ident() - typ := r.typ() - return types.NewParam(pos, r.currPkg, name, typ) -} - -func (r *importReader) bool() bool { - return r.uint64() != 0 -} - -func (r *importReader) int64() int64 { - n, err := binary.ReadVarint(&r.declReader) - if err != nil { - errorf("readVarint: %v", err) - } - return n -} - -func (r *importReader) uint64() uint64 { - n, err := binary.ReadUvarint(&r.declReader) - if err != nil { - errorf("readUvarint: %v", err) - } - return n -} - -func (r *importReader) byte() byte { - x, err := r.declReader.ReadByte() - if err != nil { - errorf("declReader.ReadByte: %v", err) - } - return x -} - -func baseType(typ types.Type) *types.Named { - // pointer receivers are never types.Named types - if p, _ := typ.(*types.Pointer); p != nil { - typ = p.Elem() - } - // receiver base types are always (possibly generic) types.Named types - n, _ := typ.(*types.Named) - return n -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go deleted file mode 100644 index 8b163e3d05..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface10.go +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.11 -// +build !go1.11 - -package gcimporter - -import "go/types" - -func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface { - named := make([]*types.Named, len(embeddeds)) - for i, e := range embeddeds { - var ok bool - named[i], ok = e.(*types.Named) - if !ok { - panic("embedding of non-defined interfaces in interfaces is not supported before Go 1.11") - } - } - return types.NewInterface(methods, named) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go deleted file mode 100644 index 49984f40fd..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/newInterface11.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.11 -// +build go1.11 - -package gcimporter - -import "go/types" - -func newInterface(methods []*types.Func, embeddeds []types.Type) *types.Interface { - return types.NewInterfaceType(methods, embeddeds) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go deleted file mode 100644 index d892273efb..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go117.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.18 -// +build !go1.18 - -package gcimporter - -import "go/types" - -const iexportVersion = iexportVersionGo1_11 - -func additionalPredeclared() []types.Type { - return nil -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go deleted file mode 100644 index edbe6ea704..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/support_go118.go +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.18 -// +build go1.18 - -package gcimporter - -import "go/types" - -const iexportVersion = iexportVersionGenerics - -// additionalPredeclared returns additional predeclared types in go.1.18. -func additionalPredeclared() []types.Type { - return []types.Type{ - // comparable - types.Universe.Lookup("comparable").Type(), - - // any - types.Universe.Lookup("any").Type(), - } -} - -// See cmd/compile/internal/types.SplitVargenSuffix. -func splitVargenSuffix(name string) (base, suffix string) { - i := len(name) - for i > 0 && name[i-1] >= '0' && name[i-1] <= '9' { - i-- - } - const dot = "·" - if i >= len(dot) && name[i-len(dot):i] == dot { - i -= len(dot) - return name[:i], name[i:] - } - return name, "" -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go deleted file mode 100644 index 286bf44548..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_no.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !(go1.18 && goexperiment.unified) -// +build !go1.18 !goexperiment.unified - -package gcimporter - -const unifiedIR = false diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go deleted file mode 100644 index b5d69ffbe6..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/unified_yes.go +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.18 && goexperiment.unified -// +build go1.18,goexperiment.unified - -package gcimporter - -const unifiedIR = true diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go deleted file mode 100644 index 8eb20729c2..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_no.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.18 -// +build !go1.18 - -package gcimporter - -import ( - "fmt" - "go/token" - "go/types" -) - -func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - err = fmt.Errorf("go/tools compiled with a Go version earlier than 1.18 cannot read unified IR export data") - return -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go b/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go deleted file mode 100644 index b285a11ce2..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go +++ /dev/null @@ -1,738 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Derived from go/internal/gcimporter/ureader.go - -//go:build go1.18 -// +build go1.18 - -package gcimporter - -import ( - "go/token" - "go/types" - "strings" - - "golang.org/x/tools/internal/pkgbits" -) - -// A pkgReader holds the shared state for reading a unified IR package -// description. -type pkgReader struct { - pkgbits.PkgDecoder - - fake fakeFileSet - - ctxt *types.Context - imports map[string]*types.Package // previously imported packages, indexed by path - - // lazily initialized arrays corresponding to the unified IR - // PosBase, Pkg, and Type sections, respectively. - posBases []string // position bases (i.e., file names) - pkgs []*types.Package - typs []types.Type - - // laterFns holds functions that need to be invoked at the end of - // import reading. - laterFns []func() - // laterFors is used in case of 'type A B' to ensure that B is processed before A. - laterFors map[types.Type]int - - // ifaces holds a list of constructed Interfaces, which need to have - // Complete called after importing is done. - ifaces []*types.Interface -} - -// later adds a function to be invoked at the end of import reading. -func (pr *pkgReader) later(fn func()) { - pr.laterFns = append(pr.laterFns, fn) -} - -// See cmd/compile/internal/noder.derivedInfo. -type derivedInfo struct { - idx pkgbits.Index - needed bool -} - -// See cmd/compile/internal/noder.typeInfo. -type typeInfo struct { - idx pkgbits.Index - derived bool -} - -func UImportData(fset *token.FileSet, imports map[string]*types.Package, data []byte, path string) (_ int, pkg *types.Package, err error) { - s := string(data) - s = s[:strings.LastIndex(s, "\n$$\n")] - input := pkgbits.NewPkgDecoder(path, s) - pkg = readUnifiedPackage(fset, nil, imports, input) - return -} - -// laterFor adds a function to be invoked at the end of import reading, and records the type that function is finishing. -func (pr *pkgReader) laterFor(t types.Type, fn func()) { - if pr.laterFors == nil { - pr.laterFors = make(map[types.Type]int) - } - pr.laterFors[t] = len(pr.laterFns) - pr.laterFns = append(pr.laterFns, fn) -} - -// readUnifiedPackage reads a package description from the given -// unified IR export data decoder. -func readUnifiedPackage(fset *token.FileSet, ctxt *types.Context, imports map[string]*types.Package, input pkgbits.PkgDecoder) *types.Package { - pr := pkgReader{ - PkgDecoder: input, - - fake: fakeFileSet{ - fset: fset, - files: make(map[string]*fileInfo), - }, - - ctxt: ctxt, - imports: imports, - - posBases: make([]string, input.NumElems(pkgbits.RelocPosBase)), - pkgs: make([]*types.Package, input.NumElems(pkgbits.RelocPkg)), - typs: make([]types.Type, input.NumElems(pkgbits.RelocType)), - } - defer pr.fake.setLines() - - r := pr.newReader(pkgbits.RelocMeta, pkgbits.PublicRootIdx, pkgbits.SyncPublic) - pkg := r.pkg() - r.Bool() // has init - - for i, n := 0, r.Len(); i < n; i++ { - // As if r.obj(), but avoiding the Scope.Lookup call, - // to avoid eager loading of imports. - r.Sync(pkgbits.SyncObject) - assert(!r.Bool()) - r.p.objIdx(r.Reloc(pkgbits.RelocObj)) - assert(r.Len() == 0) - } - - r.Sync(pkgbits.SyncEOF) - - for _, fn := range pr.laterFns { - fn() - } - - for _, iface := range pr.ifaces { - iface.Complete() - } - - pkg.MarkComplete() - return pkg -} - -// A reader holds the state for reading a single unified IR element -// within a package. -type reader struct { - pkgbits.Decoder - - p *pkgReader - - dict *readerDict -} - -// A readerDict holds the state for type parameters that parameterize -// the current unified IR element. -type readerDict struct { - // bounds is a slice of typeInfos corresponding to the underlying - // bounds of the element's type parameters. - bounds []typeInfo - - // tparams is a slice of the constructed TypeParams for the element. - tparams []*types.TypeParam - - // devived is a slice of types derived from tparams, which may be - // instantiated while reading the current element. - derived []derivedInfo - derivedTypes []types.Type // lazily instantiated from derived -} - -func (pr *pkgReader) newReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { - return &reader{ - Decoder: pr.NewDecoder(k, idx, marker), - p: pr, - } -} - -func (pr *pkgReader) tempReader(k pkgbits.RelocKind, idx pkgbits.Index, marker pkgbits.SyncMarker) *reader { - return &reader{ - Decoder: pr.TempDecoder(k, idx, marker), - p: pr, - } -} - -func (pr *pkgReader) retireReader(r *reader) { - pr.RetireDecoder(&r.Decoder) -} - -// @@@ Positions - -func (r *reader) pos() token.Pos { - r.Sync(pkgbits.SyncPos) - if !r.Bool() { - return token.NoPos - } - - // TODO(mdempsky): Delta encoding. - posBase := r.posBase() - line := r.Uint() - col := r.Uint() - return r.p.fake.pos(posBase, int(line), int(col)) -} - -func (r *reader) posBase() string { - return r.p.posBaseIdx(r.Reloc(pkgbits.RelocPosBase)) -} - -func (pr *pkgReader) posBaseIdx(idx pkgbits.Index) string { - if b := pr.posBases[idx]; b != "" { - return b - } - - var filename string - { - r := pr.tempReader(pkgbits.RelocPosBase, idx, pkgbits.SyncPosBase) - - // Within types2, position bases have a lot more details (e.g., - // keeping track of where //line directives appeared exactly). - // - // For go/types, we just track the file name. - - filename = r.String() - - if r.Bool() { // file base - // Was: "b = token.NewTrimmedFileBase(filename, true)" - } else { // line base - pos := r.pos() - line := r.Uint() - col := r.Uint() - - // Was: "b = token.NewLineBase(pos, filename, true, line, col)" - _, _, _ = pos, line, col - } - pr.retireReader(r) - } - b := filename - pr.posBases[idx] = b - return b -} - -// @@@ Packages - -func (r *reader) pkg() *types.Package { - r.Sync(pkgbits.SyncPkg) - return r.p.pkgIdx(r.Reloc(pkgbits.RelocPkg)) -} - -func (pr *pkgReader) pkgIdx(idx pkgbits.Index) *types.Package { - // TODO(mdempsky): Consider using some non-nil pointer to indicate - // the universe scope, so we don't need to keep re-reading it. - if pkg := pr.pkgs[idx]; pkg != nil { - return pkg - } - - pkg := pr.newReader(pkgbits.RelocPkg, idx, pkgbits.SyncPkgDef).doPkg() - pr.pkgs[idx] = pkg - return pkg -} - -func (r *reader) doPkg() *types.Package { - path := r.String() - switch path { - case "": - path = r.p.PkgPath() - case "builtin": - return nil // universe - case "unsafe": - return types.Unsafe - } - - if pkg := r.p.imports[path]; pkg != nil { - return pkg - } - - name := r.String() - - pkg := types.NewPackage(path, name) - r.p.imports[path] = pkg - - imports := make([]*types.Package, r.Len()) - for i := range imports { - imports[i] = r.pkg() - } - pkg.SetImports(flattenImports(imports)) - - return pkg -} - -// flattenImports returns the transitive closure of all imported -// packages rooted from pkgs. -func flattenImports(pkgs []*types.Package) []*types.Package { - var res []*types.Package - seen := make(map[*types.Package]struct{}) - for _, pkg := range pkgs { - if _, ok := seen[pkg]; ok { - continue - } - seen[pkg] = struct{}{} - res = append(res, pkg) - - // pkg.Imports() is already flattened. - for _, pkg := range pkg.Imports() { - if _, ok := seen[pkg]; ok { - continue - } - seen[pkg] = struct{}{} - res = append(res, pkg) - } - } - return res -} - -// @@@ Types - -func (r *reader) typ() types.Type { - return r.p.typIdx(r.typInfo(), r.dict) -} - -func (r *reader) typInfo() typeInfo { - r.Sync(pkgbits.SyncType) - if r.Bool() { - return typeInfo{idx: pkgbits.Index(r.Len()), derived: true} - } - return typeInfo{idx: r.Reloc(pkgbits.RelocType), derived: false} -} - -func (pr *pkgReader) typIdx(info typeInfo, dict *readerDict) types.Type { - idx := info.idx - var where *types.Type - if info.derived { - where = &dict.derivedTypes[idx] - idx = dict.derived[idx].idx - } else { - where = &pr.typs[idx] - } - - if typ := *where; typ != nil { - return typ - } - - var typ types.Type - { - r := pr.tempReader(pkgbits.RelocType, idx, pkgbits.SyncTypeIdx) - r.dict = dict - - typ = r.doTyp() - assert(typ != nil) - pr.retireReader(r) - } - // See comment in pkgReader.typIdx explaining how this happens. - if prev := *where; prev != nil { - return prev - } - - *where = typ - return typ -} - -func (r *reader) doTyp() (res types.Type) { - switch tag := pkgbits.CodeType(r.Code(pkgbits.SyncType)); tag { - default: - errorf("unhandled type tag: %v", tag) - panic("unreachable") - - case pkgbits.TypeBasic: - return types.Typ[r.Len()] - - case pkgbits.TypeNamed: - obj, targs := r.obj() - name := obj.(*types.TypeName) - if len(targs) != 0 { - t, _ := types.Instantiate(r.p.ctxt, name.Type(), targs, false) - return t - } - return name.Type() - - case pkgbits.TypeTypeParam: - return r.dict.tparams[r.Len()] - - case pkgbits.TypeArray: - len := int64(r.Uint64()) - return types.NewArray(r.typ(), len) - case pkgbits.TypeChan: - dir := types.ChanDir(r.Len()) - return types.NewChan(dir, r.typ()) - case pkgbits.TypeMap: - return types.NewMap(r.typ(), r.typ()) - case pkgbits.TypePointer: - return types.NewPointer(r.typ()) - case pkgbits.TypeSignature: - return r.signature(nil, nil, nil) - case pkgbits.TypeSlice: - return types.NewSlice(r.typ()) - case pkgbits.TypeStruct: - return r.structType() - case pkgbits.TypeInterface: - return r.interfaceType() - case pkgbits.TypeUnion: - return r.unionType() - } -} - -func (r *reader) structType() *types.Struct { - fields := make([]*types.Var, r.Len()) - var tags []string - for i := range fields { - pos := r.pos() - pkg, name := r.selector() - ftyp := r.typ() - tag := r.String() - embedded := r.Bool() - - fields[i] = types.NewField(pos, pkg, name, ftyp, embedded) - if tag != "" { - for len(tags) < i { - tags = append(tags, "") - } - tags = append(tags, tag) - } - } - return types.NewStruct(fields, tags) -} - -func (r *reader) unionType() *types.Union { - terms := make([]*types.Term, r.Len()) - for i := range terms { - terms[i] = types.NewTerm(r.Bool(), r.typ()) - } - return types.NewUnion(terms) -} - -func (r *reader) interfaceType() *types.Interface { - methods := make([]*types.Func, r.Len()) - embeddeds := make([]types.Type, r.Len()) - implicit := len(methods) == 0 && len(embeddeds) == 1 && r.Bool() - - for i := range methods { - pos := r.pos() - pkg, name := r.selector() - mtyp := r.signature(nil, nil, nil) - methods[i] = types.NewFunc(pos, pkg, name, mtyp) - } - - for i := range embeddeds { - embeddeds[i] = r.typ() - } - - iface := types.NewInterfaceType(methods, embeddeds) - if implicit { - iface.MarkImplicit() - } - - // We need to call iface.Complete(), but if there are any embedded - // defined types, then we may not have set their underlying - // interface type yet. So we need to defer calling Complete until - // after we've called SetUnderlying everywhere. - // - // TODO(mdempsky): After CL 424876 lands, it should be safe to call - // iface.Complete() immediately. - r.p.ifaces = append(r.p.ifaces, iface) - - return iface -} - -func (r *reader) signature(recv *types.Var, rtparams, tparams []*types.TypeParam) *types.Signature { - r.Sync(pkgbits.SyncSignature) - - params := r.params() - results := r.params() - variadic := r.Bool() - - return types.NewSignatureType(recv, rtparams, tparams, params, results, variadic) -} - -func (r *reader) params() *types.Tuple { - r.Sync(pkgbits.SyncParams) - - params := make([]*types.Var, r.Len()) - for i := range params { - params[i] = r.param() - } - - return types.NewTuple(params...) -} - -func (r *reader) param() *types.Var { - r.Sync(pkgbits.SyncParam) - - pos := r.pos() - pkg, name := r.localIdent() - typ := r.typ() - - return types.NewParam(pos, pkg, name, typ) -} - -// @@@ Objects - -func (r *reader) obj() (types.Object, []types.Type) { - r.Sync(pkgbits.SyncObject) - - assert(!r.Bool()) - - pkg, name := r.p.objIdx(r.Reloc(pkgbits.RelocObj)) - obj := pkgScope(pkg).Lookup(name) - - targs := make([]types.Type, r.Len()) - for i := range targs { - targs[i] = r.typ() - } - - return obj, targs -} - -func (pr *pkgReader) objIdx(idx pkgbits.Index) (*types.Package, string) { - - var objPkg *types.Package - var objName string - var tag pkgbits.CodeObj - { - rname := pr.tempReader(pkgbits.RelocName, idx, pkgbits.SyncObject1) - - objPkg, objName = rname.qualifiedIdent() - assert(objName != "") - - tag = pkgbits.CodeObj(rname.Code(pkgbits.SyncCodeObj)) - pr.retireReader(rname) - } - - if tag == pkgbits.ObjStub { - assert(objPkg == nil || objPkg == types.Unsafe) - return objPkg, objName - } - - // Ignore local types promoted to global scope (#55110). - if _, suffix := splitVargenSuffix(objName); suffix != "" { - return objPkg, objName - } - - if objPkg.Scope().Lookup(objName) == nil { - dict := pr.objDictIdx(idx) - - r := pr.newReader(pkgbits.RelocObj, idx, pkgbits.SyncObject1) - r.dict = dict - - declare := func(obj types.Object) { - objPkg.Scope().Insert(obj) - } - - switch tag { - default: - panic("weird") - - case pkgbits.ObjAlias: - pos := r.pos() - typ := r.typ() - declare(types.NewTypeName(pos, objPkg, objName, typ)) - - case pkgbits.ObjConst: - pos := r.pos() - typ := r.typ() - val := r.Value() - declare(types.NewConst(pos, objPkg, objName, typ, val)) - - case pkgbits.ObjFunc: - pos := r.pos() - tparams := r.typeParamNames() - sig := r.signature(nil, nil, tparams) - declare(types.NewFunc(pos, objPkg, objName, sig)) - - case pkgbits.ObjType: - pos := r.pos() - - obj := types.NewTypeName(pos, objPkg, objName, nil) - named := types.NewNamed(obj, nil, nil) - declare(obj) - - named.SetTypeParams(r.typeParamNames()) - - setUnderlying := func(underlying types.Type) { - // If the underlying type is an interface, we need to - // duplicate its methods so we can replace the receiver - // parameter's type (#49906). - if iface, ok := underlying.(*types.Interface); ok && iface.NumExplicitMethods() != 0 { - methods := make([]*types.Func, iface.NumExplicitMethods()) - for i := range methods { - fn := iface.ExplicitMethod(i) - sig := fn.Type().(*types.Signature) - - recv := types.NewVar(fn.Pos(), fn.Pkg(), "", named) - methods[i] = types.NewFunc(fn.Pos(), fn.Pkg(), fn.Name(), types.NewSignature(recv, sig.Params(), sig.Results(), sig.Variadic())) - } - - embeds := make([]types.Type, iface.NumEmbeddeds()) - for i := range embeds { - embeds[i] = iface.EmbeddedType(i) - } - - newIface := types.NewInterfaceType(methods, embeds) - r.p.ifaces = append(r.p.ifaces, newIface) - underlying = newIface - } - - named.SetUnderlying(underlying) - } - - // Since go.dev/cl/455279, we can assume rhs.Underlying() will - // always be non-nil. However, to temporarily support users of - // older snapshot releases, we continue to fallback to the old - // behavior for now. - // - // TODO(mdempsky): Remove fallback code and simplify after - // allowing time for snapshot users to upgrade. - rhs := r.typ() - if underlying := rhs.Underlying(); underlying != nil { - setUnderlying(underlying) - } else { - pk := r.p - pk.laterFor(named, func() { - // First be sure that the rhs is initialized, if it needs to be initialized. - delete(pk.laterFors, named) // prevent cycles - if i, ok := pk.laterFors[rhs]; ok { - f := pk.laterFns[i] - pk.laterFns[i] = func() {} // function is running now, so replace it with a no-op - f() // initialize RHS - } - setUnderlying(rhs.Underlying()) - }) - } - - for i, n := 0, r.Len(); i < n; i++ { - named.AddMethod(r.method()) - } - - case pkgbits.ObjVar: - pos := r.pos() - typ := r.typ() - declare(types.NewVar(pos, objPkg, objName, typ)) - } - } - - return objPkg, objName -} - -func (pr *pkgReader) objDictIdx(idx pkgbits.Index) *readerDict { - - var dict readerDict - - { - r := pr.tempReader(pkgbits.RelocObjDict, idx, pkgbits.SyncObject1) - if implicits := r.Len(); implicits != 0 { - errorf("unexpected object with %v implicit type parameter(s)", implicits) - } - - dict.bounds = make([]typeInfo, r.Len()) - for i := range dict.bounds { - dict.bounds[i] = r.typInfo() - } - - dict.derived = make([]derivedInfo, r.Len()) - dict.derivedTypes = make([]types.Type, len(dict.derived)) - for i := range dict.derived { - dict.derived[i] = derivedInfo{r.Reloc(pkgbits.RelocType), r.Bool()} - } - - pr.retireReader(r) - } - // function references follow, but reader doesn't need those - - return &dict -} - -func (r *reader) typeParamNames() []*types.TypeParam { - r.Sync(pkgbits.SyncTypeParamNames) - - // Note: This code assumes it only processes objects without - // implement type parameters. This is currently fine, because - // reader is only used to read in exported declarations, which are - // always package scoped. - - if len(r.dict.bounds) == 0 { - return nil - } - - // Careful: Type parameter lists may have cycles. To allow for this, - // we construct the type parameter list in two passes: first we - // create all the TypeNames and TypeParams, then we construct and - // set the bound type. - - r.dict.tparams = make([]*types.TypeParam, len(r.dict.bounds)) - for i := range r.dict.bounds { - pos := r.pos() - pkg, name := r.localIdent() - - tname := types.NewTypeName(pos, pkg, name, nil) - r.dict.tparams[i] = types.NewTypeParam(tname, nil) - } - - typs := make([]types.Type, len(r.dict.bounds)) - for i, bound := range r.dict.bounds { - typs[i] = r.p.typIdx(bound, r.dict) - } - - // TODO(mdempsky): This is subtle, elaborate further. - // - // We have to save tparams outside of the closure, because - // typeParamNames() can be called multiple times with the same - // dictionary instance. - // - // Also, this needs to happen later to make sure SetUnderlying has - // been called. - // - // TODO(mdempsky): Is it safe to have a single "later" slice or do - // we need to have multiple passes? See comments on CL 386002 and - // go.dev/issue/52104. - tparams := r.dict.tparams - r.p.later(func() { - for i, typ := range typs { - tparams[i].SetConstraint(typ) - } - }) - - return r.dict.tparams -} - -func (r *reader) method() *types.Func { - r.Sync(pkgbits.SyncMethod) - pos := r.pos() - pkg, name := r.selector() - - rparams := r.typeParamNames() - sig := r.signature(r.param(), rparams, nil) - - _ = r.pos() // TODO(mdempsky): Remove; this is a hacker for linker.go. - return types.NewFunc(pos, pkg, name, sig) -} - -func (r *reader) qualifiedIdent() (*types.Package, string) { return r.ident(pkgbits.SyncSym) } -func (r *reader) localIdent() (*types.Package, string) { return r.ident(pkgbits.SyncLocalIdent) } -func (r *reader) selector() (*types.Package, string) { return r.ident(pkgbits.SyncSelector) } - -func (r *reader) ident(marker pkgbits.SyncMarker) (*types.Package, string) { - r.Sync(marker) - return r.pkg(), r.String() -} - -// pkgScope returns pkg.Scope(). -// If pkg is nil, it returns types.Universe instead. -// -// TODO(mdempsky): Remove after x/tools can depend on Go 1.19. -func pkgScope(pkg *types.Package) *types.Scope { - if pkg != nil { - return pkg.Scope() - } - return types.Universe -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go deleted file mode 100644 index d9950b1f0b..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package packagesinternal exposes internal-only fields from go/packages. -package packagesinternal - -import ( - "golang.org/x/tools/internal/gocommand" -) - -var GetForTest = func(p interface{}) string { return "" } -var GetDepsErrors = func(p interface{}) []*PackageError { return nil } - -type PackageError struct { - ImportStack []string // shortest path from package named on command line to this one - Pos string // position of error (if present, file:line:col) - Err string // the error itself -} - -var GetGoCmdRunner = func(config interface{}) *gocommand.Runner { return nil } - -var SetGoCmdRunner = func(config interface{}, runner *gocommand.Runner) {} - -var TypecheckCgo int -var DepsErrors int // must be set as a LoadMode to call GetDepsErrors -var ForTest int // must be set as a LoadMode to call GetForTest - -var SetModFlag = func(config interface{}, value string) {} -var SetModFile = func(config interface{}, value string) {} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go deleted file mode 100644 index f0cabde96e..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -// A Code is an enum value that can be encoded into bitstreams. -// -// Code types are preferable for enum types, because they allow -// Decoder to detect desyncs. -type Code interface { - // Marker returns the SyncMarker for the Code's dynamic type. - Marker() SyncMarker - - // Value returns the Code's ordinal value. - Value() int -} - -// A CodeVal distinguishes among go/constant.Value encodings. -type CodeVal int - -func (c CodeVal) Marker() SyncMarker { return SyncVal } -func (c CodeVal) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - ValBool CodeVal = iota - ValString - ValInt64 - ValBigInt - ValBigRat - ValBigFloat -) - -// A CodeType distinguishes among go/types.Type encodings. -type CodeType int - -func (c CodeType) Marker() SyncMarker { return SyncType } -func (c CodeType) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - TypeBasic CodeType = iota - TypeNamed - TypePointer - TypeSlice - TypeArray - TypeChan - TypeMap - TypeSignature - TypeStruct - TypeInterface - TypeUnion - TypeTypeParam -) - -// A CodeObj distinguishes among go/types.Object encodings. -type CodeObj int - -func (c CodeObj) Marker() SyncMarker { return SyncCodeObj } -func (c CodeObj) Value() int { return int(c) } - -// Note: These values are public and cannot be changed without -// updating the go/types importers. - -const ( - ObjAlias CodeObj = iota - ObjConst - ObjType - ObjFunc - ObjVar - ObjStub -) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go deleted file mode 100644 index b92e8e6eb3..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +++ /dev/null @@ -1,517 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import ( - "encoding/binary" - "errors" - "fmt" - "go/constant" - "go/token" - "io" - "math/big" - "os" - "runtime" - "strings" -) - -// A PkgDecoder provides methods for decoding a package's Unified IR -// export data. -type PkgDecoder struct { - // version is the file format version. - version uint32 - - // sync indicates whether the file uses sync markers. - sync bool - - // pkgPath is the package path for the package to be decoded. - // - // TODO(mdempsky): Remove; unneeded since CL 391014. - pkgPath string - - // elemData is the full data payload of the encoded package. - // Elements are densely and contiguously packed together. - // - // The last 8 bytes of elemData are the package fingerprint. - elemData string - - // elemEnds stores the byte-offset end positions of element - // bitstreams within elemData. - // - // For example, element I's bitstream data starts at elemEnds[I-1] - // (or 0, if I==0) and ends at elemEnds[I]. - // - // Note: elemEnds is indexed by absolute indices, not - // section-relative indices. - elemEnds []uint32 - - // elemEndsEnds stores the index-offset end positions of relocation - // sections within elemEnds. - // - // For example, section K's end positions start at elemEndsEnds[K-1] - // (or 0, if K==0) and end at elemEndsEnds[K]. - elemEndsEnds [numRelocs]uint32 - - scratchRelocEnt []RelocEnt -} - -// PkgPath returns the package path for the package -// -// TODO(mdempsky): Remove; unneeded since CL 391014. -func (pr *PkgDecoder) PkgPath() string { return pr.pkgPath } - -// SyncMarkers reports whether pr uses sync markers. -func (pr *PkgDecoder) SyncMarkers() bool { return pr.sync } - -// NewPkgDecoder returns a PkgDecoder initialized to read the Unified -// IR export data from input. pkgPath is the package path for the -// compilation unit that produced the export data. -// -// TODO(mdempsky): Remove pkgPath parameter; unneeded since CL 391014. -func NewPkgDecoder(pkgPath, input string) PkgDecoder { - pr := PkgDecoder{ - pkgPath: pkgPath, - } - - // TODO(mdempsky): Implement direct indexing of input string to - // avoid copying the position information. - - r := strings.NewReader(input) - - assert(binary.Read(r, binary.LittleEndian, &pr.version) == nil) - - switch pr.version { - default: - panic(fmt.Errorf("unsupported version: %v", pr.version)) - case 0: - // no flags - case 1: - var flags uint32 - assert(binary.Read(r, binary.LittleEndian, &flags) == nil) - pr.sync = flags&flagSyncMarkers != 0 - } - - assert(binary.Read(r, binary.LittleEndian, pr.elemEndsEnds[:]) == nil) - - pr.elemEnds = make([]uint32, pr.elemEndsEnds[len(pr.elemEndsEnds)-1]) - assert(binary.Read(r, binary.LittleEndian, pr.elemEnds[:]) == nil) - - pos, err := r.Seek(0, io.SeekCurrent) - assert(err == nil) - - pr.elemData = input[pos:] - assert(len(pr.elemData)-8 == int(pr.elemEnds[len(pr.elemEnds)-1])) - - return pr -} - -// NumElems returns the number of elements in section k. -func (pr *PkgDecoder) NumElems(k RelocKind) int { - count := int(pr.elemEndsEnds[k]) - if k > 0 { - count -= int(pr.elemEndsEnds[k-1]) - } - return count -} - -// TotalElems returns the total number of elements across all sections. -func (pr *PkgDecoder) TotalElems() int { - return len(pr.elemEnds) -} - -// Fingerprint returns the package fingerprint. -func (pr *PkgDecoder) Fingerprint() [8]byte { - var fp [8]byte - copy(fp[:], pr.elemData[len(pr.elemData)-8:]) - return fp -} - -// AbsIdx returns the absolute index for the given (section, index) -// pair. -func (pr *PkgDecoder) AbsIdx(k RelocKind, idx Index) int { - absIdx := int(idx) - if k > 0 { - absIdx += int(pr.elemEndsEnds[k-1]) - } - if absIdx >= int(pr.elemEndsEnds[k]) { - errorf("%v:%v is out of bounds; %v", k, idx, pr.elemEndsEnds) - } - return absIdx -} - -// DataIdx returns the raw element bitstream for the given (section, -// index) pair. -func (pr *PkgDecoder) DataIdx(k RelocKind, idx Index) string { - absIdx := pr.AbsIdx(k, idx) - - var start uint32 - if absIdx > 0 { - start = pr.elemEnds[absIdx-1] - } - end := pr.elemEnds[absIdx] - - return pr.elemData[start:end] -} - -// StringIdx returns the string value for the given string index. -func (pr *PkgDecoder) StringIdx(idx Index) string { - return pr.DataIdx(RelocString, idx) -} - -// NewDecoder returns a Decoder for the given (section, index) pair, -// and decodes the given SyncMarker from the element bitstream. -func (pr *PkgDecoder) NewDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { - r := pr.NewDecoderRaw(k, idx) - r.Sync(marker) - return r -} - -// TempDecoder returns a Decoder for the given (section, index) pair, -// and decodes the given SyncMarker from the element bitstream. -// If possible the Decoder should be RetireDecoder'd when it is no longer -// needed, this will avoid heap allocations. -func (pr *PkgDecoder) TempDecoder(k RelocKind, idx Index, marker SyncMarker) Decoder { - r := pr.TempDecoderRaw(k, idx) - r.Sync(marker) - return r -} - -func (pr *PkgDecoder) RetireDecoder(d *Decoder) { - pr.scratchRelocEnt = d.Relocs - d.Relocs = nil -} - -// NewDecoderRaw returns a Decoder for the given (section, index) pair. -// -// Most callers should use NewDecoder instead. -func (pr *PkgDecoder) NewDecoderRaw(k RelocKind, idx Index) Decoder { - r := Decoder{ - common: pr, - k: k, - Idx: idx, - } - - // TODO(mdempsky) r.data.Reset(...) after #44505 is resolved. - r.Data = *strings.NewReader(pr.DataIdx(k, idx)) - - r.Sync(SyncRelocs) - r.Relocs = make([]RelocEnt, r.Len()) - for i := range r.Relocs { - r.Sync(SyncReloc) - r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} - } - - return r -} - -func (pr *PkgDecoder) TempDecoderRaw(k RelocKind, idx Index) Decoder { - r := Decoder{ - common: pr, - k: k, - Idx: idx, - } - - r.Data.Reset(pr.DataIdx(k, idx)) - r.Sync(SyncRelocs) - l := r.Len() - if cap(pr.scratchRelocEnt) >= l { - r.Relocs = pr.scratchRelocEnt[:l] - pr.scratchRelocEnt = nil - } else { - r.Relocs = make([]RelocEnt, l) - } - for i := range r.Relocs { - r.Sync(SyncReloc) - r.Relocs[i] = RelocEnt{RelocKind(r.Len()), Index(r.Len())} - } - - return r -} - -// A Decoder provides methods for decoding an individual element's -// bitstream data. -type Decoder struct { - common *PkgDecoder - - Relocs []RelocEnt - Data strings.Reader - - k RelocKind - Idx Index -} - -func (r *Decoder) checkErr(err error) { - if err != nil { - errorf("unexpected decoding error: %w", err) - } -} - -func (r *Decoder) rawUvarint() uint64 { - x, err := readUvarint(&r.Data) - r.checkErr(err) - return x -} - -// readUvarint is a type-specialized copy of encoding/binary.ReadUvarint. -// This avoids the interface conversion and thus has better escape properties, -// which flows up the stack. -func readUvarint(r *strings.Reader) (uint64, error) { - var x uint64 - var s uint - for i := 0; i < binary.MaxVarintLen64; i++ { - b, err := r.ReadByte() - if err != nil { - if i > 0 && err == io.EOF { - err = io.ErrUnexpectedEOF - } - return x, err - } - if b < 0x80 { - if i == binary.MaxVarintLen64-1 && b > 1 { - return x, overflow - } - return x | uint64(b)<> 1) - if ux&1 != 0 { - x = ^x - } - return x -} - -func (r *Decoder) rawReloc(k RelocKind, idx int) Index { - e := r.Relocs[idx] - assert(e.Kind == k) - return e.Idx -} - -// Sync decodes a sync marker from the element bitstream and asserts -// that it matches the expected marker. -// -// If r.common.sync is false, then Sync is a no-op. -func (r *Decoder) Sync(mWant SyncMarker) { - if !r.common.sync { - return - } - - pos, _ := r.Data.Seek(0, io.SeekCurrent) - mHave := SyncMarker(r.rawUvarint()) - writerPCs := make([]int, r.rawUvarint()) - for i := range writerPCs { - writerPCs[i] = int(r.rawUvarint()) - } - - if mHave == mWant { - return - } - - // There's some tension here between printing: - // - // (1) full file paths that tools can recognize (e.g., so emacs - // hyperlinks the "file:line" text for easy navigation), or - // - // (2) short file paths that are easier for humans to read (e.g., by - // omitting redundant or irrelevant details, so it's easier to - // focus on the useful bits that remain). - // - // The current formatting favors the former, as it seems more - // helpful in practice. But perhaps the formatting could be improved - // to better address both concerns. For example, use relative file - // paths if they would be shorter, or rewrite file paths to contain - // "$GOROOT" (like objabi.AbsFile does) if tools can be taught how - // to reliably expand that again. - - fmt.Printf("export data desync: package %q, section %v, index %v, offset %v\n", r.common.pkgPath, r.k, r.Idx, pos) - - fmt.Printf("\nfound %v, written at:\n", mHave) - if len(writerPCs) == 0 { - fmt.Printf("\t[stack trace unavailable; recompile package %q with -d=syncframes]\n", r.common.pkgPath) - } - for _, pc := range writerPCs { - fmt.Printf("\t%s\n", r.common.StringIdx(r.rawReloc(RelocString, pc))) - } - - fmt.Printf("\nexpected %v, reading at:\n", mWant) - var readerPCs [32]uintptr // TODO(mdempsky): Dynamically size? - n := runtime.Callers(2, readerPCs[:]) - for _, pc := range fmtFrames(readerPCs[:n]...) { - fmt.Printf("\t%s\n", pc) - } - - // We already printed a stack trace for the reader, so now we can - // simply exit. Printing a second one with panic or base.Fatalf - // would just be noise. - os.Exit(1) -} - -// Bool decodes and returns a bool value from the element bitstream. -func (r *Decoder) Bool() bool { - r.Sync(SyncBool) - x, err := r.Data.ReadByte() - r.checkErr(err) - assert(x < 2) - return x != 0 -} - -// Int64 decodes and returns an int64 value from the element bitstream. -func (r *Decoder) Int64() int64 { - r.Sync(SyncInt64) - return r.rawVarint() -} - -// Uint64 decodes and returns a uint64 value from the element bitstream. -func (r *Decoder) Uint64() uint64 { - r.Sync(SyncUint64) - return r.rawUvarint() -} - -// Len decodes and returns a non-negative int value from the element bitstream. -func (r *Decoder) Len() int { x := r.Uint64(); v := int(x); assert(uint64(v) == x); return v } - -// Int decodes and returns an int value from the element bitstream. -func (r *Decoder) Int() int { x := r.Int64(); v := int(x); assert(int64(v) == x); return v } - -// Uint decodes and returns a uint value from the element bitstream. -func (r *Decoder) Uint() uint { x := r.Uint64(); v := uint(x); assert(uint64(v) == x); return v } - -// Code decodes a Code value from the element bitstream and returns -// its ordinal value. It's the caller's responsibility to convert the -// result to an appropriate Code type. -// -// TODO(mdempsky): Ideally this method would have signature "Code[T -// Code] T" instead, but we don't allow generic methods and the -// compiler can't depend on generics yet anyway. -func (r *Decoder) Code(mark SyncMarker) int { - r.Sync(mark) - return r.Len() -} - -// Reloc decodes a relocation of expected section k from the element -// bitstream and returns an index to the referenced element. -func (r *Decoder) Reloc(k RelocKind) Index { - r.Sync(SyncUseReloc) - return r.rawReloc(k, r.Len()) -} - -// String decodes and returns a string value from the element -// bitstream. -func (r *Decoder) String() string { - r.Sync(SyncString) - return r.common.StringIdx(r.Reloc(RelocString)) -} - -// Strings decodes and returns a variable-length slice of strings from -// the element bitstream. -func (r *Decoder) Strings() []string { - res := make([]string, r.Len()) - for i := range res { - res[i] = r.String() - } - return res -} - -// Value decodes and returns a constant.Value from the element -// bitstream. -func (r *Decoder) Value() constant.Value { - r.Sync(SyncValue) - isComplex := r.Bool() - val := r.scalar() - if isComplex { - val = constant.BinaryOp(val, token.ADD, constant.MakeImag(r.scalar())) - } - return val -} - -func (r *Decoder) scalar() constant.Value { - switch tag := CodeVal(r.Code(SyncVal)); tag { - default: - panic(fmt.Errorf("unexpected scalar tag: %v", tag)) - - case ValBool: - return constant.MakeBool(r.Bool()) - case ValString: - return constant.MakeString(r.String()) - case ValInt64: - return constant.MakeInt64(r.Int64()) - case ValBigInt: - return constant.Make(r.bigInt()) - case ValBigRat: - num := r.bigInt() - denom := r.bigInt() - return constant.Make(new(big.Rat).SetFrac(num, denom)) - case ValBigFloat: - return constant.Make(r.bigFloat()) - } -} - -func (r *Decoder) bigInt() *big.Int { - v := new(big.Int).SetBytes([]byte(r.String())) - if r.Bool() { - v.Neg(v) - } - return v -} - -func (r *Decoder) bigFloat() *big.Float { - v := new(big.Float).SetPrec(512) - assert(v.UnmarshalText([]byte(r.String())) == nil) - return v -} - -// @@@ Helpers - -// TODO(mdempsky): These should probably be removed. I think they're a -// smell that the export data format is not yet quite right. - -// PeekPkgPath returns the package path for the specified package -// index. -func (pr *PkgDecoder) PeekPkgPath(idx Index) string { - var path string - { - r := pr.TempDecoder(RelocPkg, idx, SyncPkgDef) - path = r.String() - pr.RetireDecoder(&r) - } - if path == "" { - path = pr.pkgPath - } - return path -} - -// PeekObj returns the package path, object name, and CodeObj for the -// specified object index. -func (pr *PkgDecoder) PeekObj(idx Index) (string, string, CodeObj) { - var ridx Index - var name string - var rcode int - { - r := pr.TempDecoder(RelocName, idx, SyncObject1) - r.Sync(SyncSym) - r.Sync(SyncPkg) - ridx = r.Reloc(RelocPkg) - name = r.String() - rcode = r.Code(SyncCodeObj) - pr.RetireDecoder(&r) - } - - path := pr.PeekPkgPath(ridx) - assert(name != "") - - tag := CodeObj(rcode) - - return path, name, tag -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go deleted file mode 100644 index c8a2796b5e..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package pkgbits implements low-level coding abstractions for -// Unified IR's export data format. -// -// At a low-level, a package is a collection of bitstream elements. -// Each element has a "kind" and a dense, non-negative index. -// Elements can be randomly accessed given their kind and index. -// -// Individual elements are sequences of variable-length values (e.g., -// integers, booleans, strings, go/constant values, cross-references -// to other elements). Package pkgbits provides APIs for encoding and -// decoding these low-level values, but the details of mapping -// higher-level Go constructs into elements is left to higher-level -// abstractions. -// -// Elements may cross-reference each other with "relocations." For -// example, an element representing a pointer type has a relocation -// referring to the element type. -// -// Go constructs may be composed as a constellation of multiple -// elements. For example, a declared function may have one element to -// describe the object (e.g., its name, type, position), and a -// separate element to describe its function body. This allows readers -// some flexibility in efficiently seeking or re-reading data (e.g., -// inlining requires re-reading the function body for each inlined -// call, without needing to re-read the object-level details). -// -// This is a copy of internal/pkgbits in the Go implementation. -package pkgbits diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go deleted file mode 100644 index 6482617a4f..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go +++ /dev/null @@ -1,383 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import ( - "bytes" - "crypto/md5" - "encoding/binary" - "go/constant" - "io" - "math/big" - "runtime" -) - -// currentVersion is the current version number. -// -// - v0: initial prototype -// -// - v1: adds the flags uint32 word -const currentVersion uint32 = 1 - -// A PkgEncoder provides methods for encoding a package's Unified IR -// export data. -type PkgEncoder struct { - // elems holds the bitstream for previously encoded elements. - elems [numRelocs][]string - - // stringsIdx maps previously encoded strings to their index within - // the RelocString section, to allow deduplication. That is, - // elems[RelocString][stringsIdx[s]] == s (if present). - stringsIdx map[string]Index - - // syncFrames is the number of frames to write at each sync - // marker. A negative value means sync markers are omitted. - syncFrames int -} - -// SyncMarkers reports whether pw uses sync markers. -func (pw *PkgEncoder) SyncMarkers() bool { return pw.syncFrames >= 0 } - -// NewPkgEncoder returns an initialized PkgEncoder. -// -// syncFrames is the number of caller frames that should be serialized -// at Sync points. Serializing additional frames results in larger -// export data files, but can help diagnosing desync errors in -// higher-level Unified IR reader/writer code. If syncFrames is -// negative, then sync markers are omitted entirely. -func NewPkgEncoder(syncFrames int) PkgEncoder { - return PkgEncoder{ - stringsIdx: make(map[string]Index), - syncFrames: syncFrames, - } -} - -// DumpTo writes the package's encoded data to out0 and returns the -// package fingerprint. -func (pw *PkgEncoder) DumpTo(out0 io.Writer) (fingerprint [8]byte) { - h := md5.New() - out := io.MultiWriter(out0, h) - - writeUint32 := func(x uint32) { - assert(binary.Write(out, binary.LittleEndian, x) == nil) - } - - writeUint32(currentVersion) - - var flags uint32 - if pw.SyncMarkers() { - flags |= flagSyncMarkers - } - writeUint32(flags) - - // Write elemEndsEnds. - var sum uint32 - for _, elems := range &pw.elems { - sum += uint32(len(elems)) - writeUint32(sum) - } - - // Write elemEnds. - sum = 0 - for _, elems := range &pw.elems { - for _, elem := range elems { - sum += uint32(len(elem)) - writeUint32(sum) - } - } - - // Write elemData. - for _, elems := range &pw.elems { - for _, elem := range elems { - _, err := io.WriteString(out, elem) - assert(err == nil) - } - } - - // Write fingerprint. - copy(fingerprint[:], h.Sum(nil)) - _, err := out0.Write(fingerprint[:]) - assert(err == nil) - - return -} - -// StringIdx adds a string value to the strings section, if not -// already present, and returns its index. -func (pw *PkgEncoder) StringIdx(s string) Index { - if idx, ok := pw.stringsIdx[s]; ok { - assert(pw.elems[RelocString][idx] == s) - return idx - } - - idx := Index(len(pw.elems[RelocString])) - pw.elems[RelocString] = append(pw.elems[RelocString], s) - pw.stringsIdx[s] = idx - return idx -} - -// NewEncoder returns an Encoder for a new element within the given -// section, and encodes the given SyncMarker as the start of the -// element bitstream. -func (pw *PkgEncoder) NewEncoder(k RelocKind, marker SyncMarker) Encoder { - e := pw.NewEncoderRaw(k) - e.Sync(marker) - return e -} - -// NewEncoderRaw returns an Encoder for a new element within the given -// section. -// -// Most callers should use NewEncoder instead. -func (pw *PkgEncoder) NewEncoderRaw(k RelocKind) Encoder { - idx := Index(len(pw.elems[k])) - pw.elems[k] = append(pw.elems[k], "") // placeholder - - return Encoder{ - p: pw, - k: k, - Idx: idx, - } -} - -// An Encoder provides methods for encoding an individual element's -// bitstream data. -type Encoder struct { - p *PkgEncoder - - Relocs []RelocEnt - RelocMap map[RelocEnt]uint32 - Data bytes.Buffer // accumulated element bitstream data - - encodingRelocHeader bool - - k RelocKind - Idx Index // index within relocation section -} - -// Flush finalizes the element's bitstream and returns its Index. -func (w *Encoder) Flush() Index { - var sb bytes.Buffer // TODO(mdempsky): strings.Builder after #44505 is resolved - - // Backup the data so we write the relocations at the front. - var tmp bytes.Buffer - io.Copy(&tmp, &w.Data) - - // TODO(mdempsky): Consider writing these out separately so they're - // easier to strip, along with function bodies, so that we can prune - // down to just the data that's relevant to go/types. - if w.encodingRelocHeader { - panic("encodingRelocHeader already true; recursive flush?") - } - w.encodingRelocHeader = true - w.Sync(SyncRelocs) - w.Len(len(w.Relocs)) - for _, rEnt := range w.Relocs { - w.Sync(SyncReloc) - w.Len(int(rEnt.Kind)) - w.Len(int(rEnt.Idx)) - } - - io.Copy(&sb, &w.Data) - io.Copy(&sb, &tmp) - w.p.elems[w.k][w.Idx] = sb.String() - - return w.Idx -} - -func (w *Encoder) checkErr(err error) { - if err != nil { - errorf("unexpected encoding error: %v", err) - } -} - -func (w *Encoder) rawUvarint(x uint64) { - var buf [binary.MaxVarintLen64]byte - n := binary.PutUvarint(buf[:], x) - _, err := w.Data.Write(buf[:n]) - w.checkErr(err) -} - -func (w *Encoder) rawVarint(x int64) { - // Zig-zag encode. - ux := uint64(x) << 1 - if x < 0 { - ux = ^ux - } - - w.rawUvarint(ux) -} - -func (w *Encoder) rawReloc(r RelocKind, idx Index) int { - e := RelocEnt{r, idx} - if w.RelocMap != nil { - if i, ok := w.RelocMap[e]; ok { - return int(i) - } - } else { - w.RelocMap = make(map[RelocEnt]uint32) - } - - i := len(w.Relocs) - w.RelocMap[e] = uint32(i) - w.Relocs = append(w.Relocs, e) - return i -} - -func (w *Encoder) Sync(m SyncMarker) { - if !w.p.SyncMarkers() { - return - } - - // Writing out stack frame string references requires working - // relocations, but writing out the relocations themselves involves - // sync markers. To prevent infinite recursion, we simply trim the - // stack frame for sync markers within the relocation header. - var frames []string - if !w.encodingRelocHeader && w.p.syncFrames > 0 { - pcs := make([]uintptr, w.p.syncFrames) - n := runtime.Callers(2, pcs) - frames = fmtFrames(pcs[:n]...) - } - - // TODO(mdempsky): Save space by writing out stack frames as a - // linked list so we can share common stack frames. - w.rawUvarint(uint64(m)) - w.rawUvarint(uint64(len(frames))) - for _, frame := range frames { - w.rawUvarint(uint64(w.rawReloc(RelocString, w.p.StringIdx(frame)))) - } -} - -// Bool encodes and writes a bool value into the element bitstream, -// and then returns the bool value. -// -// For simple, 2-alternative encodings, the idiomatic way to call Bool -// is something like: -// -// if w.Bool(x != 0) { -// // alternative #1 -// } else { -// // alternative #2 -// } -// -// For multi-alternative encodings, use Code instead. -func (w *Encoder) Bool(b bool) bool { - w.Sync(SyncBool) - var x byte - if b { - x = 1 - } - err := w.Data.WriteByte(x) - w.checkErr(err) - return b -} - -// Int64 encodes and writes an int64 value into the element bitstream. -func (w *Encoder) Int64(x int64) { - w.Sync(SyncInt64) - w.rawVarint(x) -} - -// Uint64 encodes and writes a uint64 value into the element bitstream. -func (w *Encoder) Uint64(x uint64) { - w.Sync(SyncUint64) - w.rawUvarint(x) -} - -// Len encodes and writes a non-negative int value into the element bitstream. -func (w *Encoder) Len(x int) { assert(x >= 0); w.Uint64(uint64(x)) } - -// Int encodes and writes an int value into the element bitstream. -func (w *Encoder) Int(x int) { w.Int64(int64(x)) } - -// Uint encodes and writes a uint value into the element bitstream. -func (w *Encoder) Uint(x uint) { w.Uint64(uint64(x)) } - -// Reloc encodes and writes a relocation for the given (section, -// index) pair into the element bitstream. -// -// Note: Only the index is formally written into the element -// bitstream, so bitstream decoders must know from context which -// section an encoded relocation refers to. -func (w *Encoder) Reloc(r RelocKind, idx Index) { - w.Sync(SyncUseReloc) - w.Len(w.rawReloc(r, idx)) -} - -// Code encodes and writes a Code value into the element bitstream. -func (w *Encoder) Code(c Code) { - w.Sync(c.Marker()) - w.Len(c.Value()) -} - -// String encodes and writes a string value into the element -// bitstream. -// -// Internally, strings are deduplicated by adding them to the strings -// section (if not already present), and then writing a relocation -// into the element bitstream. -func (w *Encoder) String(s string) { - w.Sync(SyncString) - w.Reloc(RelocString, w.p.StringIdx(s)) -} - -// Strings encodes and writes a variable-length slice of strings into -// the element bitstream. -func (w *Encoder) Strings(ss []string) { - w.Len(len(ss)) - for _, s := range ss { - w.String(s) - } -} - -// Value encodes and writes a constant.Value into the element -// bitstream. -func (w *Encoder) Value(val constant.Value) { - w.Sync(SyncValue) - if w.Bool(val.Kind() == constant.Complex) { - w.scalar(constant.Real(val)) - w.scalar(constant.Imag(val)) - } else { - w.scalar(val) - } -} - -func (w *Encoder) scalar(val constant.Value) { - switch v := constant.Val(val).(type) { - default: - errorf("unhandled %v (%v)", val, val.Kind()) - case bool: - w.Code(ValBool) - w.Bool(v) - case string: - w.Code(ValString) - w.String(v) - case int64: - w.Code(ValInt64) - w.Int64(v) - case *big.Int: - w.Code(ValBigInt) - w.bigInt(v) - case *big.Rat: - w.Code(ValBigRat) - w.bigInt(v.Num()) - w.bigInt(v.Denom()) - case *big.Float: - w.Code(ValBigFloat) - w.bigFloat(v) - } -} - -func (w *Encoder) bigInt(v *big.Int) { - b := v.Bytes() - w.String(string(b)) // TODO: More efficient encoding. - w.Bool(v.Sign() < 0) -} - -func (w *Encoder) bigFloat(v *big.Float) { - b := v.Append(nil, 'p', -1) - w.String(string(b)) // TODO: More efficient encoding. -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go deleted file mode 100644 index 654222745f..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -const ( - flagSyncMarkers = 1 << iota // file format contains sync markers -) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go deleted file mode 100644 index 5294f6a63e..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go1.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.7 -// +build !go1.7 - -// TODO(mdempsky): Remove after #44505 is resolved - -package pkgbits - -import "runtime" - -func walkFrames(pcs []uintptr, visit frameVisitor) { - for _, pc := range pcs { - fn := runtime.FuncForPC(pc) - file, line := fn.FileLine(pc) - - visit(file, line, fn.Name(), pc-fn.Entry()) - } -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go deleted file mode 100644 index 2324ae7adf..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/frames_go17.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.7 -// +build go1.7 - -package pkgbits - -import "runtime" - -// walkFrames calls visit for each call frame represented by pcs. -// -// pcs should be a slice of PCs, as returned by runtime.Callers. -func walkFrames(pcs []uintptr, visit frameVisitor) { - if len(pcs) == 0 { - return - } - - frames := runtime.CallersFrames(pcs) - for { - frame, more := frames.Next() - visit(frame.File, frame.Line, frame.Function, frame.PC-frame.Entry) - if !more { - return - } - } -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go deleted file mode 100644 index fcdfb97ca9..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go +++ /dev/null @@ -1,42 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -// A RelocKind indicates a particular section within a unified IR export. -type RelocKind int32 - -// An Index represents a bitstream element index within a particular -// section. -type Index int32 - -// A relocEnt (relocation entry) is an entry in an element's local -// reference table. -// -// TODO(mdempsky): Rename this too. -type RelocEnt struct { - Kind RelocKind - Idx Index -} - -// Reserved indices within the meta relocation section. -const ( - PublicRootIdx Index = 0 - PrivateRootIdx Index = 1 -) - -const ( - RelocString RelocKind = iota - RelocMeta - RelocPosBase - RelocPkg - RelocName - RelocType - RelocObj - RelocObjExt - RelocObjDict - RelocBody - - numRelocs = iota -) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go deleted file mode 100644 index ad26d3b28c..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/support.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import "fmt" - -func assert(b bool) { - if !b { - panic("assertion failed") - } -} - -func errorf(format string, args ...interface{}) { - panic(fmt.Errorf(format, args...)) -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go deleted file mode 100644 index 5bd51ef717..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go +++ /dev/null @@ -1,113 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package pkgbits - -import ( - "fmt" - "strings" -) - -// fmtFrames formats a backtrace for reporting reader/writer desyncs. -func fmtFrames(pcs ...uintptr) []string { - res := make([]string, 0, len(pcs)) - walkFrames(pcs, func(file string, line int, name string, offset uintptr) { - // Trim package from function name. It's just redundant noise. - name = strings.TrimPrefix(name, "cmd/compile/internal/noder.") - - res = append(res, fmt.Sprintf("%s:%v: %s +0x%v", file, line, name, offset)) - }) - return res -} - -type frameVisitor func(file string, line int, name string, offset uintptr) - -// SyncMarker is an enum type that represents markers that may be -// written to export data to ensure the reader and writer stay -// synchronized. -type SyncMarker int - -//go:generate stringer -type=SyncMarker -trimprefix=Sync - -const ( - _ SyncMarker = iota - - // Public markers (known to go/types importers). - - // Low-level coding markers. - SyncEOF - SyncBool - SyncInt64 - SyncUint64 - SyncString - SyncValue - SyncVal - SyncRelocs - SyncReloc - SyncUseReloc - - // Higher-level object and type markers. - SyncPublic - SyncPos - SyncPosBase - SyncObject - SyncObject1 - SyncPkg - SyncPkgDef - SyncMethod - SyncType - SyncTypeIdx - SyncTypeParamNames - SyncSignature - SyncParams - SyncParam - SyncCodeObj - SyncSym - SyncLocalIdent - SyncSelector - - // Private markers (only known to cmd/compile). - SyncPrivate - - SyncFuncExt - SyncVarExt - SyncTypeExt - SyncPragma - - SyncExprList - SyncExprs - SyncExpr - SyncExprType - SyncAssign - SyncOp - SyncFuncLit - SyncCompLit - - SyncDecl - SyncFuncBody - SyncOpenScope - SyncCloseScope - SyncCloseAnotherScope - SyncDeclNames - SyncDeclName - - SyncStmts - SyncBlockStmt - SyncIfStmt - SyncForStmt - SyncSwitchStmt - SyncRangeStmt - SyncCaseClause - SyncCommClause - SyncSelectStmt - SyncDecls - SyncLabeledStmt - SyncUseObjLocal - SyncAddLocal - SyncLinkname - SyncStmt1 - SyncStmtsEnd - SyncLabel - SyncOptLabel -) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go b/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go deleted file mode 100644 index 4a5b0ca5f2..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go +++ /dev/null @@ -1,89 +0,0 @@ -// Code generated by "stringer -type=SyncMarker -trimprefix=Sync"; DO NOT EDIT. - -package pkgbits - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[SyncEOF-1] - _ = x[SyncBool-2] - _ = x[SyncInt64-3] - _ = x[SyncUint64-4] - _ = x[SyncString-5] - _ = x[SyncValue-6] - _ = x[SyncVal-7] - _ = x[SyncRelocs-8] - _ = x[SyncReloc-9] - _ = x[SyncUseReloc-10] - _ = x[SyncPublic-11] - _ = x[SyncPos-12] - _ = x[SyncPosBase-13] - _ = x[SyncObject-14] - _ = x[SyncObject1-15] - _ = x[SyncPkg-16] - _ = x[SyncPkgDef-17] - _ = x[SyncMethod-18] - _ = x[SyncType-19] - _ = x[SyncTypeIdx-20] - _ = x[SyncTypeParamNames-21] - _ = x[SyncSignature-22] - _ = x[SyncParams-23] - _ = x[SyncParam-24] - _ = x[SyncCodeObj-25] - _ = x[SyncSym-26] - _ = x[SyncLocalIdent-27] - _ = x[SyncSelector-28] - _ = x[SyncPrivate-29] - _ = x[SyncFuncExt-30] - _ = x[SyncVarExt-31] - _ = x[SyncTypeExt-32] - _ = x[SyncPragma-33] - _ = x[SyncExprList-34] - _ = x[SyncExprs-35] - _ = x[SyncExpr-36] - _ = x[SyncExprType-37] - _ = x[SyncAssign-38] - _ = x[SyncOp-39] - _ = x[SyncFuncLit-40] - _ = x[SyncCompLit-41] - _ = x[SyncDecl-42] - _ = x[SyncFuncBody-43] - _ = x[SyncOpenScope-44] - _ = x[SyncCloseScope-45] - _ = x[SyncCloseAnotherScope-46] - _ = x[SyncDeclNames-47] - _ = x[SyncDeclName-48] - _ = x[SyncStmts-49] - _ = x[SyncBlockStmt-50] - _ = x[SyncIfStmt-51] - _ = x[SyncForStmt-52] - _ = x[SyncSwitchStmt-53] - _ = x[SyncRangeStmt-54] - _ = x[SyncCaseClause-55] - _ = x[SyncCommClause-56] - _ = x[SyncSelectStmt-57] - _ = x[SyncDecls-58] - _ = x[SyncLabeledStmt-59] - _ = x[SyncUseObjLocal-60] - _ = x[SyncAddLocal-61] - _ = x[SyncLinkname-62] - _ = x[SyncStmt1-63] - _ = x[SyncStmtsEnd-64] - _ = x[SyncLabel-65] - _ = x[SyncOptLabel-66] -} - -const _SyncMarker_name = "EOFBoolInt64Uint64StringValueValRelocsRelocUseRelocPublicPosPosBaseObjectObject1PkgPkgDefMethodTypeTypeIdxTypeParamNamesSignatureParamsParamCodeObjSymLocalIdentSelectorPrivateFuncExtVarExtTypeExtPragmaExprListExprsExprExprTypeAssignOpFuncLitCompLitDeclFuncBodyOpenScopeCloseScopeCloseAnotherScopeDeclNamesDeclNameStmtsBlockStmtIfStmtForStmtSwitchStmtRangeStmtCaseClauseCommClauseSelectStmtDeclsLabeledStmtUseObjLocalAddLocalLinknameStmt1StmtsEndLabelOptLabel" - -var _SyncMarker_index = [...]uint16{0, 3, 7, 12, 18, 24, 29, 32, 38, 43, 51, 57, 60, 67, 73, 80, 83, 89, 95, 99, 106, 120, 129, 135, 140, 147, 150, 160, 168, 175, 182, 188, 195, 201, 209, 214, 218, 226, 232, 234, 241, 248, 252, 260, 269, 279, 296, 305, 313, 318, 327, 333, 340, 350, 359, 369, 379, 389, 394, 405, 416, 424, 432, 437, 445, 450, 458} - -func (i SyncMarker) String() string { - i -= 1 - if i < 0 || i >= SyncMarker(len(_SyncMarker_index)-1) { - return "SyncMarker(" + strconv.FormatInt(int64(i+1), 10) + ")" - } - return _SyncMarker_name[_SyncMarker_index[i]:_SyncMarker_index[i+1]] -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go b/ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go deleted file mode 100644 index a3fb2d4f29..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/tokeninternal/tokeninternal.go +++ /dev/null @@ -1,59 +0,0 @@ -// Copyright 2023 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// package tokeninternal provides access to some internal features of the token -// package. -package tokeninternal - -import ( - "go/token" - "sync" - "unsafe" -) - -// GetLines returns the table of line-start offsets from a token.File. -func GetLines(file *token.File) []int { - // token.File has a Lines method on Go 1.21 and later. - if file, ok := (interface{})(file).(interface{ Lines() []int }); ok { - return file.Lines() - } - - // This declaration must match that of token.File. - // This creates a risk of dependency skew. - // For now we check that the size of the two - // declarations is the same, on the (fragile) assumption - // that future changes would add fields. - type tokenFile119 struct { - _ string - _ int - _ int - mu sync.Mutex // we're not complete monsters - lines []int - _ []struct{} - } - type tokenFile118 struct { - _ *token.FileSet // deleted in go1.19 - tokenFile119 - } - - type uP = unsafe.Pointer - switch unsafe.Sizeof(*file) { - case unsafe.Sizeof(tokenFile118{}): - var ptr *tokenFile118 - *(*uP)(uP(&ptr)) = uP(file) - ptr.mu.Lock() - defer ptr.mu.Unlock() - return ptr.lines - - case unsafe.Sizeof(tokenFile119{}): - var ptr *tokenFile119 - *(*uP)(uP(&ptr)) = uP(file) - ptr.mu.Lock() - defer ptr.mu.Unlock() - return ptr.lines - - default: - panic("unexpected token.File size") - } -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go deleted file mode 100644 index 07484073a5..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go +++ /dev/null @@ -1,1560 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typesinternal - -//go:generate stringer -type=ErrorCode - -type ErrorCode int - -// This file defines the error codes that can be produced during type-checking. -// Collectively, these codes provide an identifier that may be used to -// implement special handling for certain types of errors. -// -// Error codes should be fine-grained enough that the exact nature of the error -// can be easily determined, but coarse enough that they are not an -// implementation detail of the type checking algorithm. As a rule-of-thumb, -// errors should be considered equivalent if there is a theoretical refactoring -// of the type checker in which they are emitted in exactly one place. For -// example, the type checker emits different error messages for "too many -// arguments" and "too few arguments", but one can imagine an alternative type -// checker where this check instead just emits a single "wrong number of -// arguments", so these errors should have the same code. -// -// Error code names should be as brief as possible while retaining accuracy and -// distinctiveness. In most cases names should start with an adjective -// describing the nature of the error (e.g. "invalid", "unused", "misplaced"), -// and end with a noun identifying the relevant language object. For example, -// "DuplicateDecl" or "InvalidSliceExpr". For brevity, naming follows the -// convention that "bad" implies a problem with syntax, and "invalid" implies a -// problem with types. - -const ( - // InvalidSyntaxTree occurs if an invalid syntax tree is provided - // to the type checker. It should never happen. - InvalidSyntaxTree ErrorCode = -1 -) - -const ( - _ ErrorCode = iota - - // Test is reserved for errors that only apply while in self-test mode. - Test - - /* package names */ - - // BlankPkgName occurs when a package name is the blank identifier "_". - // - // Per the spec: - // "The PackageName must not be the blank identifier." - BlankPkgName - - // MismatchedPkgName occurs when a file's package name doesn't match the - // package name already established by other files. - MismatchedPkgName - - // InvalidPkgUse occurs when a package identifier is used outside of a - // selector expression. - // - // Example: - // import "fmt" - // - // var _ = fmt - InvalidPkgUse - - /* imports */ - - // BadImportPath occurs when an import path is not valid. - BadImportPath - - // BrokenImport occurs when importing a package fails. - // - // Example: - // import "amissingpackage" - BrokenImport - - // ImportCRenamed occurs when the special import "C" is renamed. "C" is a - // pseudo-package, and must not be renamed. - // - // Example: - // import _ "C" - ImportCRenamed - - // UnusedImport occurs when an import is unused. - // - // Example: - // import "fmt" - // - // func main() {} - UnusedImport - - /* initialization */ - - // InvalidInitCycle occurs when an invalid cycle is detected within the - // initialization graph. - // - // Example: - // var x int = f() - // - // func f() int { return x } - InvalidInitCycle - - /* decls */ - - // DuplicateDecl occurs when an identifier is declared multiple times. - // - // Example: - // var x = 1 - // var x = 2 - DuplicateDecl - - // InvalidDeclCycle occurs when a declaration cycle is not valid. - // - // Example: - // import "unsafe" - // - // type T struct { - // a [n]int - // } - // - // var n = unsafe.Sizeof(T{}) - InvalidDeclCycle - - // InvalidTypeCycle occurs when a cycle in type definitions results in a - // type that is not well-defined. - // - // Example: - // import "unsafe" - // - // type T [unsafe.Sizeof(T{})]int - InvalidTypeCycle - - /* decls > const */ - - // InvalidConstInit occurs when a const declaration has a non-constant - // initializer. - // - // Example: - // var x int - // const _ = x - InvalidConstInit - - // InvalidConstVal occurs when a const value cannot be converted to its - // target type. - // - // TODO(findleyr): this error code and example are not very clear. Consider - // removing it. - // - // Example: - // const _ = 1 << "hello" - InvalidConstVal - - // InvalidConstType occurs when the underlying type in a const declaration - // is not a valid constant type. - // - // Example: - // const c *int = 4 - InvalidConstType - - /* decls > var (+ other variable assignment codes) */ - - // UntypedNilUse occurs when the predeclared (untyped) value nil is used to - // initialize a variable declared without an explicit type. - // - // Example: - // var x = nil - UntypedNilUse - - // WrongAssignCount occurs when the number of values on the right-hand side - // of an assignment or or initialization expression does not match the number - // of variables on the left-hand side. - // - // Example: - // var x = 1, 2 - WrongAssignCount - - // UnassignableOperand occurs when the left-hand side of an assignment is - // not assignable. - // - // Example: - // func f() { - // const c = 1 - // c = 2 - // } - UnassignableOperand - - // NoNewVar occurs when a short variable declaration (':=') does not declare - // new variables. - // - // Example: - // func f() { - // x := 1 - // x := 2 - // } - NoNewVar - - // MultiValAssignOp occurs when an assignment operation (+=, *=, etc) does - // not have single-valued left-hand or right-hand side. - // - // Per the spec: - // "In assignment operations, both the left- and right-hand expression lists - // must contain exactly one single-valued expression" - // - // Example: - // func f() int { - // x, y := 1, 2 - // x, y += 1 - // return x + y - // } - MultiValAssignOp - - // InvalidIfaceAssign occurs when a value of type T is used as an - // interface, but T does not implement a method of the expected interface. - // - // Example: - // type I interface { - // f() - // } - // - // type T int - // - // var x I = T(1) - InvalidIfaceAssign - - // InvalidChanAssign occurs when a chan assignment is invalid. - // - // Per the spec, a value x is assignable to a channel type T if: - // "x is a bidirectional channel value, T is a channel type, x's type V and - // T have identical element types, and at least one of V or T is not a - // defined type." - // - // Example: - // type T1 chan int - // type T2 chan int - // - // var x T1 - // // Invalid assignment because both types are named - // var _ T2 = x - InvalidChanAssign - - // IncompatibleAssign occurs when the type of the right-hand side expression - // in an assignment cannot be assigned to the type of the variable being - // assigned. - // - // Example: - // var x []int - // var _ int = x - IncompatibleAssign - - // UnaddressableFieldAssign occurs when trying to assign to a struct field - // in a map value. - // - // Example: - // func f() { - // m := make(map[string]struct{i int}) - // m["foo"].i = 42 - // } - UnaddressableFieldAssign - - /* decls > type (+ other type expression codes) */ - - // NotAType occurs when the identifier used as the underlying type in a type - // declaration or the right-hand side of a type alias does not denote a type. - // - // Example: - // var S = 2 - // - // type T S - NotAType - - // InvalidArrayLen occurs when an array length is not a constant value. - // - // Example: - // var n = 3 - // var _ = [n]int{} - InvalidArrayLen - - // BlankIfaceMethod occurs when a method name is '_'. - // - // Per the spec: - // "The name of each explicitly specified method must be unique and not - // blank." - // - // Example: - // type T interface { - // _(int) - // } - BlankIfaceMethod - - // IncomparableMapKey occurs when a map key type does not support the == and - // != operators. - // - // Per the spec: - // "The comparison operators == and != must be fully defined for operands of - // the key type; thus the key type must not be a function, map, or slice." - // - // Example: - // var x map[T]int - // - // type T []int - IncomparableMapKey - - // InvalidIfaceEmbed occurs when a non-interface type is embedded in an - // interface. - // - // Example: - // type T struct {} - // - // func (T) m() - // - // type I interface { - // T - // } - InvalidIfaceEmbed - - // InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, - // and T itself is itself a pointer, an unsafe.Pointer, or an interface. - // - // Per the spec: - // "An embedded field must be specified as a type name T or as a pointer to - // a non-interface type name *T, and T itself may not be a pointer type." - // - // Example: - // type T *int - // - // type S struct { - // *T - // } - InvalidPtrEmbed - - /* decls > func and method */ - - // BadRecv occurs when a method declaration does not have exactly one - // receiver parameter. - // - // Example: - // func () _() {} - BadRecv - - // InvalidRecv occurs when a receiver type expression is not of the form T - // or *T, or T is a pointer type. - // - // Example: - // type T struct {} - // - // func (**T) m() {} - InvalidRecv - - // DuplicateFieldAndMethod occurs when an identifier appears as both a field - // and method name. - // - // Example: - // type T struct { - // m int - // } - // - // func (T) m() {} - DuplicateFieldAndMethod - - // DuplicateMethod occurs when two methods on the same receiver type have - // the same name. - // - // Example: - // type T struct {} - // func (T) m() {} - // func (T) m(i int) int { return i } - DuplicateMethod - - /* decls > special */ - - // InvalidBlank occurs when a blank identifier is used as a value or type. - // - // Per the spec: - // "The blank identifier may appear as an operand only on the left-hand side - // of an assignment." - // - // Example: - // var x = _ - InvalidBlank - - // InvalidIota occurs when the predeclared identifier iota is used outside - // of a constant declaration. - // - // Example: - // var x = iota - InvalidIota - - // MissingInitBody occurs when an init function is missing its body. - // - // Example: - // func init() - MissingInitBody - - // InvalidInitSig occurs when an init function declares parameters or - // results. - // - // Example: - // func init() int { return 1 } - InvalidInitSig - - // InvalidInitDecl occurs when init is declared as anything other than a - // function. - // - // Example: - // var init = 1 - InvalidInitDecl - - // InvalidMainDecl occurs when main is declared as anything other than a - // function, in a main package. - InvalidMainDecl - - /* exprs */ - - // TooManyValues occurs when a function returns too many values for the - // expression context in which it is used. - // - // Example: - // func ReturnTwo() (int, int) { - // return 1, 2 - // } - // - // var x = ReturnTwo() - TooManyValues - - // NotAnExpr occurs when a type expression is used where a value expression - // is expected. - // - // Example: - // type T struct {} - // - // func f() { - // T - // } - NotAnExpr - - /* exprs > const */ - - // TruncatedFloat occurs when a float constant is truncated to an integer - // value. - // - // Example: - // var _ int = 98.6 - TruncatedFloat - - // NumericOverflow occurs when a numeric constant overflows its target type. - // - // Example: - // var x int8 = 1000 - NumericOverflow - - /* exprs > operation */ - - // UndefinedOp occurs when an operator is not defined for the type(s) used - // in an operation. - // - // Example: - // var c = "a" - "b" - UndefinedOp - - // MismatchedTypes occurs when operand types are incompatible in a binary - // operation. - // - // Example: - // var a = "hello" - // var b = 1 - // var c = a - b - MismatchedTypes - - // DivByZero occurs when a division operation is provable at compile - // time to be a division by zero. - // - // Example: - // const divisor = 0 - // var x int = 1/divisor - DivByZero - - // NonNumericIncDec occurs when an increment or decrement operator is - // applied to a non-numeric value. - // - // Example: - // func f() { - // var c = "c" - // c++ - // } - NonNumericIncDec - - /* exprs > ptr */ - - // UnaddressableOperand occurs when the & operator is applied to an - // unaddressable expression. - // - // Example: - // var x = &1 - UnaddressableOperand - - // InvalidIndirection occurs when a non-pointer value is indirected via the - // '*' operator. - // - // Example: - // var x int - // var y = *x - InvalidIndirection - - /* exprs > [] */ - - // NonIndexableOperand occurs when an index operation is applied to a value - // that cannot be indexed. - // - // Example: - // var x = 1 - // var y = x[1] - NonIndexableOperand - - // InvalidIndex occurs when an index argument is not of integer type, - // negative, or out-of-bounds. - // - // Example: - // var s = [...]int{1,2,3} - // var x = s[5] - // - // Example: - // var s = []int{1,2,3} - // var _ = s[-1] - // - // Example: - // var s = []int{1,2,3} - // var i string - // var _ = s[i] - InvalidIndex - - // SwappedSliceIndices occurs when constant indices in a slice expression - // are decreasing in value. - // - // Example: - // var _ = []int{1,2,3}[2:1] - SwappedSliceIndices - - /* operators > slice */ - - // NonSliceableOperand occurs when a slice operation is applied to a value - // whose type is not sliceable, or is unaddressable. - // - // Example: - // var x = [...]int{1, 2, 3}[:1] - // - // Example: - // var x = 1 - // var y = 1[:1] - NonSliceableOperand - - // InvalidSliceExpr occurs when a three-index slice expression (a[x:y:z]) is - // applied to a string. - // - // Example: - // var s = "hello" - // var x = s[1:2:3] - InvalidSliceExpr - - /* exprs > shift */ - - // InvalidShiftCount occurs when the right-hand side of a shift operation is - // either non-integer, negative, or too large. - // - // Example: - // var ( - // x string - // y int = 1 << x - // ) - InvalidShiftCount - - // InvalidShiftOperand occurs when the shifted operand is not an integer. - // - // Example: - // var s = "hello" - // var x = s << 2 - InvalidShiftOperand - - /* exprs > chan */ - - // InvalidReceive occurs when there is a channel receive from a value that - // is either not a channel, or is a send-only channel. - // - // Example: - // func f() { - // var x = 1 - // <-x - // } - InvalidReceive - - // InvalidSend occurs when there is a channel send to a value that is not a - // channel, or is a receive-only channel. - // - // Example: - // func f() { - // var x = 1 - // x <- "hello!" - // } - InvalidSend - - /* exprs > literal */ - - // DuplicateLitKey occurs when an index is duplicated in a slice, array, or - // map literal. - // - // Example: - // var _ = []int{0:1, 0:2} - // - // Example: - // var _ = map[string]int{"a": 1, "a": 2} - DuplicateLitKey - - // MissingLitKey occurs when a map literal is missing a key expression. - // - // Example: - // var _ = map[string]int{1} - MissingLitKey - - // InvalidLitIndex occurs when the key in a key-value element of a slice or - // array literal is not an integer constant. - // - // Example: - // var i = 0 - // var x = []string{i: "world"} - InvalidLitIndex - - // OversizeArrayLit occurs when an array literal exceeds its length. - // - // Example: - // var _ = [2]int{1,2,3} - OversizeArrayLit - - // MixedStructLit occurs when a struct literal contains a mix of positional - // and named elements. - // - // Example: - // var _ = struct{i, j int}{i: 1, 2} - MixedStructLit - - // InvalidStructLit occurs when a positional struct literal has an incorrect - // number of values. - // - // Example: - // var _ = struct{i, j int}{1,2,3} - InvalidStructLit - - // MissingLitField occurs when a struct literal refers to a field that does - // not exist on the struct type. - // - // Example: - // var _ = struct{i int}{j: 2} - MissingLitField - - // DuplicateLitField occurs when a struct literal contains duplicated - // fields. - // - // Example: - // var _ = struct{i int}{i: 1, i: 2} - DuplicateLitField - - // UnexportedLitField occurs when a positional struct literal implicitly - // assigns an unexported field of an imported type. - UnexportedLitField - - // InvalidLitField occurs when a field name is not a valid identifier. - // - // Example: - // var _ = struct{i int}{1: 1} - InvalidLitField - - // UntypedLit occurs when a composite literal omits a required type - // identifier. - // - // Example: - // type outer struct{ - // inner struct { i int } - // } - // - // var _ = outer{inner: {1}} - UntypedLit - - // InvalidLit occurs when a composite literal expression does not match its - // type. - // - // Example: - // type P *struct{ - // x int - // } - // var _ = P {} - InvalidLit - - /* exprs > selector */ - - // AmbiguousSelector occurs when a selector is ambiguous. - // - // Example: - // type E1 struct { i int } - // type E2 struct { i int } - // type T struct { E1; E2 } - // - // var x T - // var _ = x.i - AmbiguousSelector - - // UndeclaredImportedName occurs when a package-qualified identifier is - // undeclared by the imported package. - // - // Example: - // import "go/types" - // - // var _ = types.NotAnActualIdentifier - UndeclaredImportedName - - // UnexportedName occurs when a selector refers to an unexported identifier - // of an imported package. - // - // Example: - // import "reflect" - // - // type _ reflect.flag - UnexportedName - - // UndeclaredName occurs when an identifier is not declared in the current - // scope. - // - // Example: - // var x T - UndeclaredName - - // MissingFieldOrMethod occurs when a selector references a field or method - // that does not exist. - // - // Example: - // type T struct {} - // - // var x = T{}.f - MissingFieldOrMethod - - /* exprs > ... */ - - // BadDotDotDotSyntax occurs when a "..." occurs in a context where it is - // not valid. - // - // Example: - // var _ = map[int][...]int{0: {}} - BadDotDotDotSyntax - - // NonVariadicDotDotDot occurs when a "..." is used on the final argument to - // a non-variadic function. - // - // Example: - // func printArgs(s []string) { - // for _, a := range s { - // println(a) - // } - // } - // - // func f() { - // s := []string{"a", "b", "c"} - // printArgs(s...) - // } - NonVariadicDotDotDot - - // MisplacedDotDotDot occurs when a "..." is used somewhere other than the - // final argument to a function call. - // - // Example: - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func f() { - // a := []int{1,2,3} - // printArgs(0, a...) - // } - MisplacedDotDotDot - - // InvalidDotDotDotOperand occurs when a "..." operator is applied to a - // single-valued operand. - // - // Example: - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func f() { - // a := 1 - // printArgs(a...) - // } - // - // Example: - // func args() (int, int) { - // return 1, 2 - // } - // - // func printArgs(args ...int) { - // for _, a := range args { - // println(a) - // } - // } - // - // func g() { - // printArgs(args()...) - // } - InvalidDotDotDotOperand - - // InvalidDotDotDot occurs when a "..." is used in a non-variadic built-in - // function. - // - // Example: - // var s = []int{1, 2, 3} - // var l = len(s...) - InvalidDotDotDot - - /* exprs > built-in */ - - // UncalledBuiltin occurs when a built-in function is used as a - // function-valued expression, instead of being called. - // - // Per the spec: - // "The built-in functions do not have standard Go types, so they can only - // appear in call expressions; they cannot be used as function values." - // - // Example: - // var _ = copy - UncalledBuiltin - - // InvalidAppend occurs when append is called with a first argument that is - // not a slice. - // - // Example: - // var _ = append(1, 2) - InvalidAppend - - // InvalidCap occurs when an argument to the cap built-in function is not of - // supported type. - // - // See https://golang.org/ref/spec#Lengthand_capacity for information on - // which underlying types are supported as arguments to cap and len. - // - // Example: - // var s = 2 - // var x = cap(s) - InvalidCap - - // InvalidClose occurs when close(...) is called with an argument that is - // not of channel type, or that is a receive-only channel. - // - // Example: - // func f() { - // var x int - // close(x) - // } - InvalidClose - - // InvalidCopy occurs when the arguments are not of slice type or do not - // have compatible type. - // - // See https://golang.org/ref/spec#Appendingand_copying_slices for more - // information on the type requirements for the copy built-in. - // - // Example: - // func f() { - // var x []int - // y := []int64{1,2,3} - // copy(x, y) - // } - InvalidCopy - - // InvalidComplex occurs when the complex built-in function is called with - // arguments with incompatible types. - // - // Example: - // var _ = complex(float32(1), float64(2)) - InvalidComplex - - // InvalidDelete occurs when the delete built-in function is called with a - // first argument that is not a map. - // - // Example: - // func f() { - // m := "hello" - // delete(m, "e") - // } - InvalidDelete - - // InvalidImag occurs when the imag built-in function is called with an - // argument that does not have complex type. - // - // Example: - // var _ = imag(int(1)) - InvalidImag - - // InvalidLen occurs when an argument to the len built-in function is not of - // supported type. - // - // See https://golang.org/ref/spec#Lengthand_capacity for information on - // which underlying types are supported as arguments to cap and len. - // - // Example: - // var s = 2 - // var x = len(s) - InvalidLen - - // SwappedMakeArgs occurs when make is called with three arguments, and its - // length argument is larger than its capacity argument. - // - // Example: - // var x = make([]int, 3, 2) - SwappedMakeArgs - - // InvalidMake occurs when make is called with an unsupported type argument. - // - // See https://golang.org/ref/spec#Makingslices_maps_and_channels for - // information on the types that may be created using make. - // - // Example: - // var x = make(int) - InvalidMake - - // InvalidReal occurs when the real built-in function is called with an - // argument that does not have complex type. - // - // Example: - // var _ = real(int(1)) - InvalidReal - - /* exprs > assertion */ - - // InvalidAssert occurs when a type assertion is applied to a - // value that is not of interface type. - // - // Example: - // var x = 1 - // var _ = x.(float64) - InvalidAssert - - // ImpossibleAssert occurs for a type assertion x.(T) when the value x of - // interface cannot have dynamic type T, due to a missing or mismatching - // method on T. - // - // Example: - // type T int - // - // func (t *T) m() int { return int(*t) } - // - // type I interface { m() int } - // - // var x I - // var _ = x.(T) - ImpossibleAssert - - /* exprs > conversion */ - - // InvalidConversion occurs when the argument type cannot be converted to the - // target. - // - // See https://golang.org/ref/spec#Conversions for the rules of - // convertibility. - // - // Example: - // var x float64 - // var _ = string(x) - InvalidConversion - - // InvalidUntypedConversion occurs when an there is no valid implicit - // conversion from an untyped value satisfying the type constraints of the - // context in which it is used. - // - // Example: - // var _ = 1 + "" - InvalidUntypedConversion - - /* offsetof */ - - // BadOffsetofSyntax occurs when unsafe.Offsetof is called with an argument - // that is not a selector expression. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Offsetof(x) - BadOffsetofSyntax - - // InvalidOffsetof occurs when unsafe.Offsetof is called with a method - // selector, rather than a field selector, or when the field is embedded via - // a pointer. - // - // Per the spec: - // - // "If f is an embedded field, it must be reachable without pointer - // indirections through fields of the struct. " - // - // Example: - // import "unsafe" - // - // type T struct { f int } - // type S struct { *T } - // var s S - // var _ = unsafe.Offsetof(s.f) - // - // Example: - // import "unsafe" - // - // type S struct{} - // - // func (S) m() {} - // - // var s S - // var _ = unsafe.Offsetof(s.m) - InvalidOffsetof - - /* control flow > scope */ - - // UnusedExpr occurs when a side-effect free expression is used as a - // statement. Such a statement has no effect. - // - // Example: - // func f(i int) { - // i*i - // } - UnusedExpr - - // UnusedVar occurs when a variable is declared but unused. - // - // Example: - // func f() { - // x := 1 - // } - UnusedVar - - // MissingReturn occurs when a function with results is missing a return - // statement. - // - // Example: - // func f() int {} - MissingReturn - - // WrongResultCount occurs when a return statement returns an incorrect - // number of values. - // - // Example: - // func ReturnOne() int { - // return 1, 2 - // } - WrongResultCount - - // OutOfScopeResult occurs when the name of a value implicitly returned by - // an empty return statement is shadowed in a nested scope. - // - // Example: - // func factor(n int) (i int) { - // for i := 2; i < n; i++ { - // if n%i == 0 { - // return - // } - // } - // return 0 - // } - OutOfScopeResult - - /* control flow > if */ - - // InvalidCond occurs when an if condition is not a boolean expression. - // - // Example: - // func checkReturn(i int) { - // if i { - // panic("non-zero return") - // } - // } - InvalidCond - - /* control flow > for */ - - // InvalidPostDecl occurs when there is a declaration in a for-loop post - // statement. - // - // Example: - // func f() { - // for i := 0; i < 10; j := 0 {} - // } - InvalidPostDecl - - // InvalidChanRange occurs when a send-only channel used in a range - // expression. - // - // Example: - // func sum(c chan<- int) { - // s := 0 - // for i := range c { - // s += i - // } - // } - InvalidChanRange - - // InvalidIterVar occurs when two iteration variables are used while ranging - // over a channel. - // - // Example: - // func f(c chan int) { - // for k, v := range c { - // println(k, v) - // } - // } - InvalidIterVar - - // InvalidRangeExpr occurs when the type of a range expression is not array, - // slice, string, map, or channel. - // - // Example: - // func f(i int) { - // for j := range i { - // println(j) - // } - // } - InvalidRangeExpr - - /* control flow > switch */ - - // MisplacedBreak occurs when a break statement is not within a for, switch, - // or select statement of the innermost function definition. - // - // Example: - // func f() { - // break - // } - MisplacedBreak - - // MisplacedContinue occurs when a continue statement is not within a for - // loop of the innermost function definition. - // - // Example: - // func sumeven(n int) int { - // proceed := func() { - // continue - // } - // sum := 0 - // for i := 1; i <= n; i++ { - // if i % 2 != 0 { - // proceed() - // } - // sum += i - // } - // return sum - // } - MisplacedContinue - - // MisplacedFallthrough occurs when a fallthrough statement is not within an - // expression switch. - // - // Example: - // func typename(i interface{}) string { - // switch i.(type) { - // case int64: - // fallthrough - // case int: - // return "int" - // } - // return "unsupported" - // } - MisplacedFallthrough - - // DuplicateCase occurs when a type or expression switch has duplicate - // cases. - // - // Example: - // func printInt(i int) { - // switch i { - // case 1: - // println("one") - // case 1: - // println("One") - // } - // } - DuplicateCase - - // DuplicateDefault occurs when a type or expression switch has multiple - // default clauses. - // - // Example: - // func printInt(i int) { - // switch i { - // case 1: - // println("one") - // default: - // println("One") - // default: - // println("1") - // } - // } - DuplicateDefault - - // BadTypeKeyword occurs when a .(type) expression is used anywhere other - // than a type switch. - // - // Example: - // type I interface { - // m() - // } - // var t I - // var _ = t.(type) - BadTypeKeyword - - // InvalidTypeSwitch occurs when .(type) is used on an expression that is - // not of interface type. - // - // Example: - // func f(i int) { - // switch x := i.(type) {} - // } - InvalidTypeSwitch - - // InvalidExprSwitch occurs when a switch expression is not comparable. - // - // Example: - // func _() { - // var a struct{ _ func() } - // switch a /* ERROR cannot switch on a */ { - // } - // } - InvalidExprSwitch - - /* control flow > select */ - - // InvalidSelectCase occurs when a select case is not a channel send or - // receive. - // - // Example: - // func checkChan(c <-chan int) bool { - // select { - // case c: - // return true - // default: - // return false - // } - // } - InvalidSelectCase - - /* control flow > labels and jumps */ - - // UndeclaredLabel occurs when an undeclared label is jumped to. - // - // Example: - // func f() { - // goto L - // } - UndeclaredLabel - - // DuplicateLabel occurs when a label is declared more than once. - // - // Example: - // func f() int { - // L: - // L: - // return 1 - // } - DuplicateLabel - - // MisplacedLabel occurs when a break or continue label is not on a for, - // switch, or select statement. - // - // Example: - // func f() { - // L: - // a := []int{1,2,3} - // for _, e := range a { - // if e > 10 { - // break L - // } - // println(a) - // } - // } - MisplacedLabel - - // UnusedLabel occurs when a label is declared but not used. - // - // Example: - // func f() { - // L: - // } - UnusedLabel - - // JumpOverDecl occurs when a label jumps over a variable declaration. - // - // Example: - // func f() int { - // goto L - // x := 2 - // L: - // x++ - // return x - // } - JumpOverDecl - - // JumpIntoBlock occurs when a forward jump goes to a label inside a nested - // block. - // - // Example: - // func f(x int) { - // goto L - // if x > 0 { - // L: - // print("inside block") - // } - // } - JumpIntoBlock - - /* control flow > calls */ - - // InvalidMethodExpr occurs when a pointer method is called but the argument - // is not addressable. - // - // Example: - // type T struct {} - // - // func (*T) m() int { return 1 } - // - // var _ = T.m(T{}) - InvalidMethodExpr - - // WrongArgCount occurs when too few or too many arguments are passed by a - // function call. - // - // Example: - // func f(i int) {} - // var x = f() - WrongArgCount - - // InvalidCall occurs when an expression is called that is not of function - // type. - // - // Example: - // var x = "x" - // var y = x() - InvalidCall - - /* control flow > suspended */ - - // UnusedResults occurs when a restricted expression-only built-in function - // is suspended via go or defer. Such a suspension discards the results of - // these side-effect free built-in functions, and therefore is ineffectual. - // - // Example: - // func f(a []int) int { - // defer len(a) - // return i - // } - UnusedResults - - // InvalidDefer occurs when a deferred expression is not a function call, - // for example if the expression is a type conversion. - // - // Example: - // func f(i int) int { - // defer int32(i) - // return i - // } - InvalidDefer - - // InvalidGo occurs when a go expression is not a function call, for example - // if the expression is a type conversion. - // - // Example: - // func f(i int) int { - // go int32(i) - // return i - // } - InvalidGo - - // All codes below were added in Go 1.17. - - /* decl */ - - // BadDecl occurs when a declaration has invalid syntax. - BadDecl - - // RepeatedDecl occurs when an identifier occurs more than once on the left - // hand side of a short variable declaration. - // - // Example: - // func _() { - // x, y, y := 1, 2, 3 - // } - RepeatedDecl - - /* unsafe */ - - // InvalidUnsafeAdd occurs when unsafe.Add is called with a - // length argument that is not of integer type. - // - // Example: - // import "unsafe" - // - // var p unsafe.Pointer - // var _ = unsafe.Add(p, float64(1)) - InvalidUnsafeAdd - - // InvalidUnsafeSlice occurs when unsafe.Slice is called with a - // pointer argument that is not of pointer type or a length argument - // that is not of integer type, negative, or out of bounds. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(x, 1) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, float64(1)) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, -1) - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.Slice(&x, uint64(1) << 63) - InvalidUnsafeSlice - - // All codes below were added in Go 1.18. - - /* features */ - - // UnsupportedFeature occurs when a language feature is used that is not - // supported at this Go version. - UnsupportedFeature - - /* type params */ - - // NotAGenericType occurs when a non-generic type is used where a generic - // type is expected: in type or function instantiation. - // - // Example: - // type T int - // - // var _ T[int] - NotAGenericType - - // WrongTypeArgCount occurs when a type or function is instantiated with an - // incorrent number of type arguments, including when a generic type or - // function is used without instantiation. - // - // Errors inolving failed type inference are assigned other error codes. - // - // Example: - // type T[p any] int - // - // var _ T[int, string] - // - // Example: - // func f[T any]() {} - // - // var x = f - WrongTypeArgCount - - // CannotInferTypeArgs occurs when type or function type argument inference - // fails to infer all type arguments. - // - // Example: - // func f[T any]() {} - // - // func _() { - // f() - // } - // - // Example: - // type N[P, Q any] struct{} - // - // var _ N[int] - CannotInferTypeArgs - - // InvalidTypeArg occurs when a type argument does not satisfy its - // corresponding type parameter constraints. - // - // Example: - // type T[P ~int] struct{} - // - // var _ T[string] - InvalidTypeArg // arguments? InferenceFailed - - // InvalidInstanceCycle occurs when an invalid cycle is detected - // within the instantiation graph. - // - // Example: - // func f[T any]() { f[*T]() } - InvalidInstanceCycle - - // InvalidUnion occurs when an embedded union or approximation element is - // not valid. - // - // Example: - // type _ interface { - // ~int | interface{ m() } - // } - InvalidUnion - - // MisplacedConstraintIface occurs when a constraint-type interface is used - // outside of constraint position. - // - // Example: - // type I interface { ~int } - // - // var _ I - MisplacedConstraintIface - - // InvalidMethodTypeParams occurs when methods have type parameters. - // - // It cannot be encountered with an AST parsed using go/parser. - InvalidMethodTypeParams - - // MisplacedTypeParam occurs when a type parameter is used in a place where - // it is not permitted. - // - // Example: - // type T[P any] P - // - // Example: - // type T[P any] struct{ *P } - MisplacedTypeParam - - // InvalidUnsafeSliceData occurs when unsafe.SliceData is called with - // an argument that is not of slice type. It also occurs if it is used - // in a package compiled for a language version before go1.20. - // - // Example: - // import "unsafe" - // - // var x int - // var _ = unsafe.SliceData(x) - InvalidUnsafeSliceData - - // InvalidUnsafeString occurs when unsafe.String is called with - // a length argument that is not of integer type, negative, or - // out of bounds. It also occurs if it is used in a package - // compiled for a language version before go1.20. - // - // Example: - // import "unsafe" - // - // var b [10]byte - // var _ = unsafe.String(&b[0], -1) - InvalidUnsafeString - - // InvalidUnsafeStringData occurs if it is used in a package - // compiled for a language version before go1.20. - _ // not used anymore - -) diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go deleted file mode 100644 index 15ecf7c5de..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go +++ /dev/null @@ -1,179 +0,0 @@ -// Code generated by "stringer -type=ErrorCode"; DO NOT EDIT. - -package typesinternal - -import "strconv" - -func _() { - // An "invalid array index" compiler error signifies that the constant values have changed. - // Re-run the stringer command to generate them again. - var x [1]struct{} - _ = x[InvalidSyntaxTree - -1] - _ = x[Test-1] - _ = x[BlankPkgName-2] - _ = x[MismatchedPkgName-3] - _ = x[InvalidPkgUse-4] - _ = x[BadImportPath-5] - _ = x[BrokenImport-6] - _ = x[ImportCRenamed-7] - _ = x[UnusedImport-8] - _ = x[InvalidInitCycle-9] - _ = x[DuplicateDecl-10] - _ = x[InvalidDeclCycle-11] - _ = x[InvalidTypeCycle-12] - _ = x[InvalidConstInit-13] - _ = x[InvalidConstVal-14] - _ = x[InvalidConstType-15] - _ = x[UntypedNilUse-16] - _ = x[WrongAssignCount-17] - _ = x[UnassignableOperand-18] - _ = x[NoNewVar-19] - _ = x[MultiValAssignOp-20] - _ = x[InvalidIfaceAssign-21] - _ = x[InvalidChanAssign-22] - _ = x[IncompatibleAssign-23] - _ = x[UnaddressableFieldAssign-24] - _ = x[NotAType-25] - _ = x[InvalidArrayLen-26] - _ = x[BlankIfaceMethod-27] - _ = x[IncomparableMapKey-28] - _ = x[InvalidIfaceEmbed-29] - _ = x[InvalidPtrEmbed-30] - _ = x[BadRecv-31] - _ = x[InvalidRecv-32] - _ = x[DuplicateFieldAndMethod-33] - _ = x[DuplicateMethod-34] - _ = x[InvalidBlank-35] - _ = x[InvalidIota-36] - _ = x[MissingInitBody-37] - _ = x[InvalidInitSig-38] - _ = x[InvalidInitDecl-39] - _ = x[InvalidMainDecl-40] - _ = x[TooManyValues-41] - _ = x[NotAnExpr-42] - _ = x[TruncatedFloat-43] - _ = x[NumericOverflow-44] - _ = x[UndefinedOp-45] - _ = x[MismatchedTypes-46] - _ = x[DivByZero-47] - _ = x[NonNumericIncDec-48] - _ = x[UnaddressableOperand-49] - _ = x[InvalidIndirection-50] - _ = x[NonIndexableOperand-51] - _ = x[InvalidIndex-52] - _ = x[SwappedSliceIndices-53] - _ = x[NonSliceableOperand-54] - _ = x[InvalidSliceExpr-55] - _ = x[InvalidShiftCount-56] - _ = x[InvalidShiftOperand-57] - _ = x[InvalidReceive-58] - _ = x[InvalidSend-59] - _ = x[DuplicateLitKey-60] - _ = x[MissingLitKey-61] - _ = x[InvalidLitIndex-62] - _ = x[OversizeArrayLit-63] - _ = x[MixedStructLit-64] - _ = x[InvalidStructLit-65] - _ = x[MissingLitField-66] - _ = x[DuplicateLitField-67] - _ = x[UnexportedLitField-68] - _ = x[InvalidLitField-69] - _ = x[UntypedLit-70] - _ = x[InvalidLit-71] - _ = x[AmbiguousSelector-72] - _ = x[UndeclaredImportedName-73] - _ = x[UnexportedName-74] - _ = x[UndeclaredName-75] - _ = x[MissingFieldOrMethod-76] - _ = x[BadDotDotDotSyntax-77] - _ = x[NonVariadicDotDotDot-78] - _ = x[MisplacedDotDotDot-79] - _ = x[InvalidDotDotDotOperand-80] - _ = x[InvalidDotDotDot-81] - _ = x[UncalledBuiltin-82] - _ = x[InvalidAppend-83] - _ = x[InvalidCap-84] - _ = x[InvalidClose-85] - _ = x[InvalidCopy-86] - _ = x[InvalidComplex-87] - _ = x[InvalidDelete-88] - _ = x[InvalidImag-89] - _ = x[InvalidLen-90] - _ = x[SwappedMakeArgs-91] - _ = x[InvalidMake-92] - _ = x[InvalidReal-93] - _ = x[InvalidAssert-94] - _ = x[ImpossibleAssert-95] - _ = x[InvalidConversion-96] - _ = x[InvalidUntypedConversion-97] - _ = x[BadOffsetofSyntax-98] - _ = x[InvalidOffsetof-99] - _ = x[UnusedExpr-100] - _ = x[UnusedVar-101] - _ = x[MissingReturn-102] - _ = x[WrongResultCount-103] - _ = x[OutOfScopeResult-104] - _ = x[InvalidCond-105] - _ = x[InvalidPostDecl-106] - _ = x[InvalidChanRange-107] - _ = x[InvalidIterVar-108] - _ = x[InvalidRangeExpr-109] - _ = x[MisplacedBreak-110] - _ = x[MisplacedContinue-111] - _ = x[MisplacedFallthrough-112] - _ = x[DuplicateCase-113] - _ = x[DuplicateDefault-114] - _ = x[BadTypeKeyword-115] - _ = x[InvalidTypeSwitch-116] - _ = x[InvalidExprSwitch-117] - _ = x[InvalidSelectCase-118] - _ = x[UndeclaredLabel-119] - _ = x[DuplicateLabel-120] - _ = x[MisplacedLabel-121] - _ = x[UnusedLabel-122] - _ = x[JumpOverDecl-123] - _ = x[JumpIntoBlock-124] - _ = x[InvalidMethodExpr-125] - _ = x[WrongArgCount-126] - _ = x[InvalidCall-127] - _ = x[UnusedResults-128] - _ = x[InvalidDefer-129] - _ = x[InvalidGo-130] - _ = x[BadDecl-131] - _ = x[RepeatedDecl-132] - _ = x[InvalidUnsafeAdd-133] - _ = x[InvalidUnsafeSlice-134] - _ = x[UnsupportedFeature-135] - _ = x[NotAGenericType-136] - _ = x[WrongTypeArgCount-137] - _ = x[CannotInferTypeArgs-138] - _ = x[InvalidTypeArg-139] - _ = x[InvalidInstanceCycle-140] - _ = x[InvalidUnion-141] - _ = x[MisplacedConstraintIface-142] - _ = x[InvalidMethodTypeParams-143] - _ = x[MisplacedTypeParam-144] - _ = x[InvalidUnsafeSliceData-145] - _ = x[InvalidUnsafeString-146] -} - -const ( - _ErrorCode_name_0 = "InvalidSyntaxTree" - _ErrorCode_name_1 = "TestBlankPkgNameMismatchedPkgNameInvalidPkgUseBadImportPathBrokenImportImportCRenamedUnusedImportInvalidInitCycleDuplicateDeclInvalidDeclCycleInvalidTypeCycleInvalidConstInitInvalidConstValInvalidConstTypeUntypedNilUseWrongAssignCountUnassignableOperandNoNewVarMultiValAssignOpInvalidIfaceAssignInvalidChanAssignIncompatibleAssignUnaddressableFieldAssignNotATypeInvalidArrayLenBlankIfaceMethodIncomparableMapKeyInvalidIfaceEmbedInvalidPtrEmbedBadRecvInvalidRecvDuplicateFieldAndMethodDuplicateMethodInvalidBlankInvalidIotaMissingInitBodyInvalidInitSigInvalidInitDeclInvalidMainDeclTooManyValuesNotAnExprTruncatedFloatNumericOverflowUndefinedOpMismatchedTypesDivByZeroNonNumericIncDecUnaddressableOperandInvalidIndirectionNonIndexableOperandInvalidIndexSwappedSliceIndicesNonSliceableOperandInvalidSliceExprInvalidShiftCountInvalidShiftOperandInvalidReceiveInvalidSendDuplicateLitKeyMissingLitKeyInvalidLitIndexOversizeArrayLitMixedStructLitInvalidStructLitMissingLitFieldDuplicateLitFieldUnexportedLitFieldInvalidLitFieldUntypedLitInvalidLitAmbiguousSelectorUndeclaredImportedNameUnexportedNameUndeclaredNameMissingFieldOrMethodBadDotDotDotSyntaxNonVariadicDotDotDotMisplacedDotDotDotInvalidDotDotDotOperandInvalidDotDotDotUncalledBuiltinInvalidAppendInvalidCapInvalidCloseInvalidCopyInvalidComplexInvalidDeleteInvalidImagInvalidLenSwappedMakeArgsInvalidMakeInvalidRealInvalidAssertImpossibleAssertInvalidConversionInvalidUntypedConversionBadOffsetofSyntaxInvalidOffsetofUnusedExprUnusedVarMissingReturnWrongResultCountOutOfScopeResultInvalidCondInvalidPostDeclInvalidChanRangeInvalidIterVarInvalidRangeExprMisplacedBreakMisplacedContinueMisplacedFallthroughDuplicateCaseDuplicateDefaultBadTypeKeywordInvalidTypeSwitchInvalidExprSwitchInvalidSelectCaseUndeclaredLabelDuplicateLabelMisplacedLabelUnusedLabelJumpOverDeclJumpIntoBlockInvalidMethodExprWrongArgCountInvalidCallUnusedResultsInvalidDeferInvalidGoBadDeclRepeatedDeclInvalidUnsafeAddInvalidUnsafeSliceUnsupportedFeatureNotAGenericTypeWrongTypeArgCountCannotInferTypeArgsInvalidTypeArgInvalidInstanceCycleInvalidUnionMisplacedConstraintIfaceInvalidMethodTypeParamsMisplacedTypeParamInvalidUnsafeSliceDataInvalidUnsafeString" -) - -var ( - _ErrorCode_index_1 = [...]uint16{0, 4, 16, 33, 46, 59, 71, 85, 97, 113, 126, 142, 158, 174, 189, 205, 218, 234, 253, 261, 277, 295, 312, 330, 354, 362, 377, 393, 411, 428, 443, 450, 461, 484, 499, 511, 522, 537, 551, 566, 581, 594, 603, 617, 632, 643, 658, 667, 683, 703, 721, 740, 752, 771, 790, 806, 823, 842, 856, 867, 882, 895, 910, 926, 940, 956, 971, 988, 1006, 1021, 1031, 1041, 1058, 1080, 1094, 1108, 1128, 1146, 1166, 1184, 1207, 1223, 1238, 1251, 1261, 1273, 1284, 1298, 1311, 1322, 1332, 1347, 1358, 1369, 1382, 1398, 1415, 1439, 1456, 1471, 1481, 1490, 1503, 1519, 1535, 1546, 1561, 1577, 1591, 1607, 1621, 1638, 1658, 1671, 1687, 1701, 1718, 1735, 1752, 1767, 1781, 1795, 1806, 1818, 1831, 1848, 1861, 1872, 1885, 1897, 1906, 1913, 1925, 1941, 1959, 1977, 1992, 2009, 2028, 2042, 2062, 2074, 2098, 2121, 2139, 2161, 2180} -) - -func (i ErrorCode) String() string { - switch { - case i == -1: - return _ErrorCode_name_0 - case 1 <= i && i <= 146: - i -= 1 - return _ErrorCode_name_1[_ErrorCode_index_1[i]:_ErrorCode_index_1[i+1]] - default: - return "ErrorCode(" + strconv.FormatInt(int64(i), 10) + ")" - } -} diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go deleted file mode 100644 index ce7d4351b2..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types.go +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2020 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typesinternal provides access to internal go/types APIs that are not -// yet exported. -package typesinternal - -import ( - "go/token" - "go/types" - "reflect" - "unsafe" -) - -func SetUsesCgo(conf *types.Config) bool { - v := reflect.ValueOf(conf).Elem() - - f := v.FieldByName("go115UsesCgo") - if !f.IsValid() { - f = v.FieldByName("UsesCgo") - if !f.IsValid() { - return false - } - } - - addr := unsafe.Pointer(f.UnsafeAddr()) - *(*bool)(addr) = true - - return true -} - -// ReadGo116ErrorData extracts additional information from types.Error values -// generated by Go version 1.16 and later: the error code, start position, and -// end position. If all positions are valid, start <= err.Pos <= end. -// -// If the data could not be read, the final result parameter will be false. -func ReadGo116ErrorData(err types.Error) (code ErrorCode, start, end token.Pos, ok bool) { - var data [3]int - // By coincidence all of these fields are ints, which simplifies things. - v := reflect.ValueOf(err) - for i, name := range []string{"go116code", "go116start", "go116end"} { - f := v.FieldByName(name) - if !f.IsValid() { - return 0, 0, 0, false - } - data[i] = int(f.Int()) - } - return ErrorCode(data[0]), token.Pos(data[1]), token.Pos(data[2]), true -} - -var SetGoVersion = func(conf *types.Config, version string) bool { return false } diff --git a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go b/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go deleted file mode 100644 index a42b072a67..0000000000 --- a/ecs-agent/vendor/golang.org/x/tools/internal/typesinternal/types_118.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.18 -// +build go1.18 - -package typesinternal - -import ( - "go/types" -) - -func init() { - SetGoVersion = func(conf *types.Config, version string) bool { - conf.GoVersion = version - return true - } -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/LICENSE b/ecs-agent/vendor/k8s.io/mount-utils/LICENSE deleted file mode 100644 index 8dada3edaf..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright {yyyy} {name of copyright owner} - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/ecs-agent/vendor/k8s.io/mount-utils/OWNERS b/ecs-agent/vendor/k8s.io/mount-utils/OWNERS deleted file mode 100644 index 64fb63c1e4..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/OWNERS +++ /dev/null @@ -1,15 +0,0 @@ -# See the OWNERS docs at https://go.k8s.io/owners - -reviewers: - - jingxu97 - - saad-ali - - jsafrane - - msau42 - - andyzhangx - - gnufied -approvers: - - jingxu97 - - saad-ali - - jsafrane -labels: - - sig/storage diff --git a/ecs-agent/vendor/k8s.io/mount-utils/README.md b/ecs-agent/vendor/k8s.io/mount-utils/README.md deleted file mode 100644 index ee7c8e89af..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/README.md +++ /dev/null @@ -1,31 +0,0 @@ -## Purpose - -This repository defines an interface to mounting filesystems to be consumed by -various Kubernetes and out-of-tree CSI components. - -Consumers of this repository can make use of functions like 'Mount' to mount -source to target as fstype with given options, 'Unmount' to unmount a target. -Other useful functions include 'List' all mounted file systems and find all -mount references to a path using 'GetMountRefs' - -## Community, discussion, contribution, and support - -Learn how to engage with the Kubernetes community on the [community -page](http://kubernetes.io/community/). - -You can reach the maintainers of this repository at: - -- Slack: #sig-storage (on https://kubernetes.slack.com -- get an - invite at slack.kubernetes.io) -- Mailing List: - https://groups.google.com/forum/#!forum/kubernetes-sig-storage - -### Code of Conduct - -Participation in the Kubernetes community is governed by the [Kubernetes -Code of Conduct](code-of-conduct.md). - -### Contibution Guidelines - -See [CONTRIBUTING.md](CONTRIBUTING.md) for more information. - diff --git a/ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS b/ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS deleted file mode 100644 index 14fe23e186..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/SECURITY_CONTACTS +++ /dev/null @@ -1,18 +0,0 @@ -# Defined below are the security contacts for this repo. -# -# They are the contact point for the Product Security Committee to reach out -# to for triaging and handling of incoming issues. -# -# The below names agree to abide by the -# [Embargo Policy](https://git.k8s.io/security/private-distributors-list.md#embargo-policy) -# and will be removed and replaced if they violate that agreement. -# -# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE -# INSTRUCTIONS AT https://kubernetes.io/security/ - -saad-ali -cjcullen -joelsmith -liggitt -philips -tallclair diff --git a/ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md b/ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md deleted file mode 100644 index 0d15c00cf3..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/code-of-conduct.md +++ /dev/null @@ -1,3 +0,0 @@ -# Kubernetes Community Code of Conduct - -Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md) diff --git a/ecs-agent/vendor/k8s.io/mount-utils/doc.go b/ecs-agent/vendor/k8s.io/mount-utils/doc.go deleted file mode 100644 index b7cac03a52..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package mount defines an interface to mounting filesystems. -package mount // import "k8s.io/mount-utils" diff --git a/ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go b/ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go deleted file mode 100644 index 5a57015988..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/fake_mounter.go +++ /dev/null @@ -1,242 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "os" - "path/filepath" - "sync" - - "k8s.io/klog/v2" -) - -// FakeMounter implements mount.Interface for tests. -type FakeMounter struct { - MountPoints []MountPoint - log []FakeAction - // Error to return for a path when calling IsLikelyNotMountPoint - MountCheckErrors map[string]error - // Some tests run things in parallel, make sure the mounter does not produce - // any golang's DATA RACE warnings. - mutex sync.Mutex - UnmountFunc UnmountFunc - skipMountPointCheck bool -} - -// UnmountFunc is a function callback to be executed during the Unmount() call. -type UnmountFunc func(path string) error - -var _ Interface = &FakeMounter{} - -const ( - // FakeActionMount is the string for specifying mount as FakeAction.Action - FakeActionMount = "mount" - // FakeActionUnmount is the string for specifying unmount as FakeAction.Action - FakeActionUnmount = "unmount" -) - -// FakeAction objects are logged every time a fake mount or unmount is called. -type FakeAction struct { - Action string // "mount" or "unmount" - Target string // applies to both mount and unmount actions - Source string // applies only to "mount" actions - FSType string // applies only to "mount" actions -} - -// NewFakeMounter returns a FakeMounter struct that implements Interface and is -// suitable for testing purposes. -func NewFakeMounter(mps []MountPoint) *FakeMounter { - return &FakeMounter{ - MountPoints: mps, - } -} - -func (f *FakeMounter) WithSkipMountPointCheck() *FakeMounter { - f.skipMountPointCheck = true - return f -} - -// ResetLog clears all the log entries in FakeMounter -func (f *FakeMounter) ResetLog() { - f.mutex.Lock() - defer f.mutex.Unlock() - - f.log = []FakeAction{} -} - -// GetLog returns the slice of FakeActions taken by the mounter -func (f *FakeMounter) GetLog() []FakeAction { - f.mutex.Lock() - defer f.mutex.Unlock() - - return f.log -} - -// Mount records the mount event and updates the in-memory mount points for FakeMounter -func (f *FakeMounter) Mount(source string, target string, fstype string, options []string) error { - return f.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) -} - -// Mount records the mount event and updates the in-memory mount points for FakeMounter -// sensitiveOptions to be passed in a separate parameter from the normal -// mount options and ensures the sensitiveOptions are never logged. This -// method should be used by callers that pass sensitive material (like -// passwords) as mount options. -func (f *FakeMounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - f.mutex.Lock() - defer f.mutex.Unlock() - - opts := []string{} - - for _, option := range options { - // find 'bind' option - if option == "bind" { - // This is a bind-mount. In order to mimic linux behaviour, we must - // use the original device of the bind-mount as the real source. - // E.g. when mounted /dev/sda like this: - // $ mount /dev/sda /mnt/test - // $ mount -o bind /mnt/test /mnt/bound - // then /proc/mount contains: - // /dev/sda /mnt/test - // /dev/sda /mnt/bound - // (and not /mnt/test /mnt/bound) - // I.e. we must use /dev/sda as source instead of /mnt/test in the - // bind mount. - for _, mnt := range f.MountPoints { - if source == mnt.Path { - source = mnt.Device - break - } - } - } - // reuse MountPoint.Opts field to mark mount as readonly - opts = append(opts, option) - } - - // If target is a symlink, get its absolute path - absTarget, err := filepath.EvalSymlinks(target) - if err != nil { - absTarget = target - } - f.MountPoints = append(f.MountPoints, MountPoint{Device: source, Path: absTarget, Type: fstype, Opts: append(opts, sensitiveOptions...)}) - klog.V(5).Infof("Fake mounter: mounted %s to %s", source, absTarget) - f.log = append(f.log, FakeAction{Action: FakeActionMount, Target: absTarget, Source: source, FSType: fstype}) - return nil -} - -func (f *FakeMounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return f.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) -} - -func (f *FakeMounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { - return f.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) -} - -// Unmount records the unmount event and updates the in-memory mount points for FakeMounter -func (f *FakeMounter) Unmount(target string) error { - f.mutex.Lock() - defer f.mutex.Unlock() - - // If target is a symlink, get its absolute path - absTarget, err := filepath.EvalSymlinks(target) - if err != nil { - absTarget = target - } - - newMountpoints := []MountPoint{} - for _, mp := range f.MountPoints { - if mp.Path == absTarget { - if f.UnmountFunc != nil { - err := f.UnmountFunc(absTarget) - if err != nil { - return err - } - } - klog.V(5).Infof("Fake mounter: unmounted %s from %s", mp.Device, absTarget) - // Don't copy it to newMountpoints - continue - } - newMountpoints = append(newMountpoints, MountPoint{Device: mp.Device, Path: mp.Path, Type: mp.Type}) - } - f.MountPoints = newMountpoints - f.log = append(f.log, FakeAction{Action: FakeActionUnmount, Target: absTarget}) - delete(f.MountCheckErrors, target) - return nil -} - -// List returns all the in-memory mountpoints for FakeMounter -func (f *FakeMounter) List() ([]MountPoint, error) { - f.mutex.Lock() - defer f.mutex.Unlock() - - return f.MountPoints, nil -} - -// IsLikelyNotMountPoint determines whether a path is a mountpoint by checking -// if the absolute path to file is in the in-memory mountpoints -func (f *FakeMounter) IsLikelyNotMountPoint(file string) (bool, error) { - f.mutex.Lock() - defer f.mutex.Unlock() - - err := f.MountCheckErrors[file] - if err != nil { - return false, err - } - - _, err = os.Stat(file) - if err != nil { - return true, err - } - - // If file is a symlink, get its absolute path - absFile, err := filepath.EvalSymlinks(file) - if err != nil { - absFile = file - } - - for _, mp := range f.MountPoints { - if mp.Path == absFile { - klog.V(5).Infof("isLikelyNotMountPoint for %s: mounted %s, false", file, mp.Path) - return false, nil - } - } - klog.V(5).Infof("isLikelyNotMountPoint for %s: true", file) - return true, nil -} - -func (f *FakeMounter) canSafelySkipMountPointCheck() bool { - return f.skipMountPointCheck -} - -func (f *FakeMounter) IsMountPoint(file string) (bool, error) { - notMnt, err := f.IsLikelyNotMountPoint(file) - if err != nil { - return false, err - } - return !notMnt, nil -} - -// GetMountRefs finds all mount references to the path, returns a -// list of paths. -func (f *FakeMounter) GetMountRefs(pathname string) ([]string, error) { - realpath, err := filepath.EvalSymlinks(pathname) - if err != nil { - // Ignore error in FakeMounter, because we actually didn't create files. - realpath = pathname - } - return getMountRefsByDev(f, realpath) -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount.go b/ecs-agent/vendor/k8s.io/mount-utils/mount.go deleted file mode 100644 index c42836f06c..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount.go +++ /dev/null @@ -1,362 +0,0 @@ -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// TODO(thockin): This whole pkg is pretty linux-centric. As soon as we have -// an alternate platform, we will need to abstract further. - -package mount - -import ( - "fmt" - "path/filepath" - "strings" - "time" - - utilexec "k8s.io/utils/exec" -) - -const ( - // Default mount command if mounter path is not specified. - defaultMountCommand = "mount" - // Log message where sensitive mount options were removed - sensitiveOptionsRemoved = "" -) - -// Interface defines the set of methods to allow for mount operations on a system. -type Interface interface { - // Mount mounts source to target as fstype with given options. - // options MUST not contain sensitive material (like passwords). - Mount(source string, target string, fstype string, options []string) error - // MountSensitive is the same as Mount() but this method allows - // sensitiveOptions to be passed in a separate parameter from the normal - // mount options and ensures the sensitiveOptions are never logged. This - // method should be used by callers that pass sensitive material (like - // passwords) as mount options. - MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error - // MountSensitiveWithoutSystemd is the same as MountSensitive() but this method disable using systemd mount. - MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error - // MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd() with additional mount flags - MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error - // Unmount unmounts given target. - Unmount(target string) error - // List returns a list of all mounted filesystems. This can be large. - // On some platforms, reading mounts directly from the OS is not guaranteed - // consistent (i.e. it could change between chunked reads). This is guaranteed - // to be consistent. - List() ([]MountPoint, error) - // IsLikelyNotMountPoint uses heuristics to determine if a directory - // is not a mountpoint. - // It should return ErrNotExist when the directory does not exist. - // IsLikelyNotMountPoint does NOT properly detect all mountpoint types - // most notably linux bind mounts and symbolic link. For callers that do not - // care about such situations, this is a faster alternative to calling List() - // and scanning that output. - IsLikelyNotMountPoint(file string) (bool, error) - // canSafelySkipMountPointCheck indicates whether this mounter returns errors on - // operations for targets that are not mount points. If this returns true, no such - // errors will be returned. - canSafelySkipMountPointCheck() bool - // IsMountPoint determines if a directory is a mountpoint. - // It should return ErrNotExist when the directory does not exist. - // IsMountPoint is more expensive than IsLikelyNotMountPoint. - // IsMountPoint detects bind mounts in linux. - // IsMountPoint may enumerate all the mountpoints using List() and - // the list of mountpoints may be large, then it uses - // isMountPointMatch to evaluate whether the directory is a mountpoint. - IsMountPoint(file string) (bool, error) - // GetMountRefs finds all mount references to pathname, returning a slice of - // paths. Pathname can be a mountpoint path or a normal directory - // (for bind mount). On Linux, pathname is excluded from the slice. - // For example, if /dev/sdc was mounted at /path/a and /path/b, - // GetMountRefs("/path/a") would return ["/path/b"] - // GetMountRefs("/path/b") would return ["/path/a"] - // On Windows there is no way to query all mount points; as long as pathname is - // a valid mount, it will be returned. - GetMountRefs(pathname string) ([]string, error) -} - -// Compile-time check to ensure all Mounter implementations satisfy -// the mount interface. -var _ Interface = &Mounter{} - -type MounterForceUnmounter interface { - Interface - // UnmountWithForce unmounts given target but will retry unmounting with force option - // after given timeout. - UnmountWithForce(target string, umountTimeout time.Duration) error -} - -// MountPoint represents a single line in /proc/mounts or /etc/fstab. -type MountPoint struct { // nolint: golint - Device string - Path string - Type string - Opts []string // Opts may contain sensitive mount options (like passwords) and MUST be treated as such (e.g. not logged). - Freq int - Pass int -} - -type MountErrorType string // nolint: golint - -const ( - FilesystemMismatch MountErrorType = "FilesystemMismatch" - HasFilesystemErrors MountErrorType = "HasFilesystemErrors" - UnformattedReadOnly MountErrorType = "UnformattedReadOnly" - FormatFailed MountErrorType = "FormatFailed" - GetDiskFormatFailed MountErrorType = "GetDiskFormatFailed" - UnknownMountError MountErrorType = "UnknownMountError" -) - -type MountError struct { // nolint: golint - Type MountErrorType - Message string -} - -func (mountError MountError) String() string { - return mountError.Message -} - -func (mountError MountError) Error() string { - return mountError.Message -} - -func NewMountError(mountErrorValue MountErrorType, format string, args ...interface{}) error { - mountError := MountError{ - Type: mountErrorValue, - Message: fmt.Sprintf(format, args...), - } - return mountError -} - -// SafeFormatAndMount probes a device to see if it is formatted. -// Namely it checks to see if a file system is present. If so it -// mounts it otherwise the device is formatted first then mounted. -type SafeFormatAndMount struct { - Interface - Exec utilexec.Interface -} - -// FormatAndMount formats the given disk, if needed, and mounts it. -// That is if the disk is not formatted and it is not being mounted as -// read-only it will format it first then mount it. Otherwise, if the -// disk is already formatted or it is being mounted as read-only, it -// will be mounted without formatting. -// options MUST not contain sensitive material (like passwords). -func (mounter *SafeFormatAndMount) FormatAndMount(source string, target string, fstype string, options []string) error { - return mounter.FormatAndMountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) -} - -// FormatAndMountSensitive is the same as FormatAndMount but this method allows -// sensitiveOptions to be passed in a separate parameter from the normal mount -// options and ensures the sensitiveOptions are never logged. This method should -// be used by callers that pass sensitive material (like passwords) as mount -// options. -func (mounter *SafeFormatAndMount) FormatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return mounter.formatAndMountSensitive(source, target, fstype, options, sensitiveOptions) -} - -// getMountRefsByDev finds all references to the device provided -// by mountPath; returns a list of paths. -// Note that mountPath should be path after the evaluation of any symblolic links. -func getMountRefsByDev(mounter Interface, mountPath string) ([]string, error) { - mps, err := mounter.List() - if err != nil { - return nil, err - } - - // Finding the device mounted to mountPath. - diskDev := "" - for i := range mps { - if mountPath == mps[i].Path { - diskDev = mps[i].Device - break - } - } - - // Find all references to the device. - var refs []string - for i := range mps { - if mps[i].Device == diskDev || mps[i].Device == mountPath { - if mps[i].Path != mountPath { - refs = append(refs, mps[i].Path) - } - } - } - return refs, nil -} - -// IsNotMountPoint determines if a directory is a mountpoint. -// It should return ErrNotExist when the directory does not exist. -// IsNotMountPoint is more expensive than IsLikelyNotMountPoint -// and depends on IsMountPoint. -// -// If an error occurs, it returns true (assuming it is not a mountpoint) -// when ErrNotExist is returned for callers similar to IsLikelyNotMountPoint. -// -// Deprecated: This function is kept to keep changes backward compatible with -// previous library version. Callers should prefer mounter.IsMountPoint. -func IsNotMountPoint(mounter Interface, file string) (bool, error) { - isMnt, err := mounter.IsMountPoint(file) - if err != nil { - return true, err - } - return !isMnt, nil -} - -// GetDeviceNameFromMount given a mnt point, find the device from /proc/mounts -// returns the device name, reference count, and error code. -func GetDeviceNameFromMount(mounter Interface, mountPath string) (string, int, error) { - mps, err := mounter.List() - if err != nil { - return "", 0, err - } - - // Find the device name. - // FIXME if multiple devices mounted on the same mount path, only the first one is returned. - device := "" - // If mountPath is symlink, need get its target path. - slTarget, err := filepath.EvalSymlinks(mountPath) - if err != nil { - slTarget = mountPath - } - for i := range mps { - if mps[i].Path == slTarget { - device = mps[i].Device - break - } - } - - // Find all references to the device. - refCount := 0 - for i := range mps { - if mps[i].Device == device { - refCount++ - } - } - return device, refCount, nil -} - -// MakeBindOpts detects whether a bind mount is being requested and makes the remount options to -// use in case of bind mount, due to the fact that bind mount doesn't respect mount options. -// The list equals: -// -// options - 'bind' + 'remount' (no duplicate) -func MakeBindOpts(options []string) (bool, []string, []string) { - bind, bindOpts, bindRemountOpts, _ := MakeBindOptsSensitive(options, nil /* sensitiveOptions */) - return bind, bindOpts, bindRemountOpts -} - -// MakeBindOptsSensitive is the same as MakeBindOpts but this method allows -// sensitiveOptions to be passed in a separate parameter from the normal mount -// options and ensures the sensitiveOptions are never logged. This method should -// be used by callers that pass sensitive material (like passwords) as mount -// options. -func MakeBindOptsSensitive(options []string, sensitiveOptions []string) (bool, []string, []string, []string) { - // Because we have an FD opened on the subpath bind mount, the "bind" option - // needs to be included, otherwise the mount target will error as busy if you - // remount as readonly. - // - // As a consequence, all read only bind mounts will no longer change the underlying - // volume mount to be read only. - bindRemountOpts := []string{"bind", "remount"} - bindRemountSensitiveOpts := []string{} - bind := false - bindOpts := []string{"bind"} - - // _netdev is a userspace mount option and does not automatically get added when - // bind mount is created and hence we must carry it over. - if checkForNetDev(options, sensitiveOptions) { - bindOpts = append(bindOpts, "_netdev") - } - - for _, option := range options { - switch option { - case "bind": - bind = true - case "remount": - default: - bindRemountOpts = append(bindRemountOpts, option) - } - } - - for _, sensitiveOption := range sensitiveOptions { - switch sensitiveOption { - case "bind": - bind = true - case "remount": - default: - bindRemountSensitiveOpts = append(bindRemountSensitiveOpts, sensitiveOption) - } - } - - return bind, bindOpts, bindRemountOpts, bindRemountSensitiveOpts -} - -func checkForNetDev(options []string, sensitiveOptions []string) bool { - for _, option := range options { - if option == "_netdev" { - return true - } - } - for _, sensitiveOption := range sensitiveOptions { - if sensitiveOption == "_netdev" { - return true - } - } - return false -} - -// PathWithinBase checks if give path is within given base directory. -func PathWithinBase(fullPath, basePath string) bool { - rel, err := filepath.Rel(basePath, fullPath) - if err != nil { - return false - } - if StartsWithBackstep(rel) { - // Needed to escape the base path. - return false - } - return true -} - -// StartsWithBackstep checks if the given path starts with a backstep segment. -func StartsWithBackstep(rel string) bool { - // normalize to / and check for ../ - return rel == ".." || strings.HasPrefix(filepath.ToSlash(rel), "../") -} - -// sanitizedOptionsForLogging will return a comma separated string containing -// options and sensitiveOptions. Each entry in sensitiveOptions will be -// replaced with the string sensitiveOptionsRemoved -// e.g. o1,o2,, -func sanitizedOptionsForLogging(options []string, sensitiveOptions []string) string { - separator := "" - if len(options) > 0 && len(sensitiveOptions) > 0 { - separator = "," - } - - sensitiveOptionsStart := "" - sensitiveOptionsEnd := "" - if len(sensitiveOptions) > 0 { - sensitiveOptionsStart = strings.Repeat(sensitiveOptionsRemoved+",", len(sensitiveOptions)-1) - sensitiveOptionsEnd = sensitiveOptionsRemoved - } - - return strings.Join(options, ",") + - separator + - sensitiveOptionsStart + - sensitiveOptionsEnd -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go deleted file mode 100644 index dc4131d78e..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_common.go +++ /dev/null @@ -1,157 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "fmt" - "os" - "time" - - "k8s.io/klog/v2" -) - -// CleanupMountPoint unmounts the given path and deletes the remaining directory -// if successful. If extensiveMountPointCheck is true IsNotMountPoint will be -// called instead of IsLikelyNotMountPoint. IsNotMountPoint is more expensive -// but properly handles bind mounts within the same fs. -func CleanupMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool) error { - pathExists, pathErr := PathExists(mountPath) - if !pathExists && pathErr == nil { - klog.Warningf("Warning: mount cleanup skipped because path does not exist: %v", mountPath) - return nil - } - corruptedMnt := IsCorruptedMnt(pathErr) - if pathErr != nil && !corruptedMnt { - return fmt.Errorf("Error checking path: %v", pathErr) - } - return doCleanupMountPoint(mountPath, mounter, extensiveMountPointCheck, corruptedMnt) -} - -func CleanupMountWithForce(mountPath string, mounter MounterForceUnmounter, extensiveMountPointCheck bool, umountTimeout time.Duration) error { - pathExists, pathErr := PathExists(mountPath) - if !pathExists && pathErr == nil { - klog.Warningf("Warning: mount cleanup skipped because path does not exist: %v", mountPath) - return nil - } - corruptedMnt := IsCorruptedMnt(pathErr) - if pathErr != nil && !corruptedMnt { - return fmt.Errorf("Error checking path: %v", pathErr) - } - - if corruptedMnt || mounter.canSafelySkipMountPointCheck() { - klog.V(4).Infof("unmounting %q (corruptedMount: %t, mounterCanSkipMountPointChecks: %t)", - mountPath, corruptedMnt, mounter.canSafelySkipMountPointCheck()) - if err := mounter.UnmountWithForce(mountPath, umountTimeout); err != nil { - return err - } - return removePath(mountPath) - } - - notMnt, err := removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) - // if mountPath is not a mount point, it's just been removed or there was an error - if err != nil || notMnt { - return err - } - - klog.V(4).Infof("%q is a mountpoint, unmounting", mountPath) - if err := mounter.UnmountWithForce(mountPath, umountTimeout); err != nil { - return err - } - - notMnt, err = removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) - // if mountPath is not a mount point, it's either just been removed or there was an error - if notMnt { - return err - } - // mountPath is still a mount point - return fmt.Errorf("failed to cleanup mount point %v", mountPath) -} - -// doCleanupMountPoint unmounts the given path and -// deletes the remaining directory if successful. -// if extensiveMountPointCheck is true -// IsNotMountPoint will be called instead of IsLikelyNotMountPoint. -// IsNotMountPoint is more expensive but properly handles bind mounts within the same fs. -// if corruptedMnt is true, it means that the mountPath is a corrupted mountpoint, and the mount point check -// will be skipped. The mount point check will also be skipped if the mounter supports it. -func doCleanupMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool, corruptedMnt bool) error { - if corruptedMnt || mounter.canSafelySkipMountPointCheck() { - klog.V(4).Infof("unmounting %q (corruptedMount: %t, mounterCanSkipMountPointChecks: %t)", - mountPath, corruptedMnt, mounter.canSafelySkipMountPointCheck()) - if err := mounter.Unmount(mountPath); err != nil { - return err - } - return removePath(mountPath) - } - - notMnt, err := removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) - // if mountPath is not a mount point, it's just been removed or there was an error - if err != nil || notMnt { - return err - } - - klog.V(4).Infof("%q is a mountpoint, unmounting", mountPath) - if err := mounter.Unmount(mountPath); err != nil { - return err - } - - notMnt, err = removePathIfNotMountPoint(mountPath, mounter, extensiveMountPointCheck) - // if mountPath is not a mount point, it's either just been removed or there was an error - if notMnt { - return err - } - // mountPath is still a mount point - return fmt.Errorf("failed to cleanup mount point %v", mountPath) -} - -// removePathIfNotMountPoint verifies if given mountPath is a mount point if not it attempts -// to remove the directory. Returns true and nil if directory was not a mount point and removed. -func removePathIfNotMountPoint(mountPath string, mounter Interface, extensiveMountPointCheck bool) (bool, error) { - var notMnt bool - var err error - - if extensiveMountPointCheck { - notMnt, err = IsNotMountPoint(mounter, mountPath) - } else { - notMnt, err = mounter.IsLikelyNotMountPoint(mountPath) - } - - if err != nil { - if os.IsNotExist(err) { - klog.V(4).Infof("%q does not exist", mountPath) - return true, nil - } - return notMnt, err - } - - if notMnt { - klog.Warningf("Warning: %q is not a mountpoint, deleting", mountPath) - return notMnt, os.Remove(mountPath) - } - return notMnt, nil -} - -// removePath attempts to remove the directory. Returns nil if the directory was removed or does not exist. -func removePath(mountPath string) error { - klog.V(4).Infof("Warning: deleting path %q", mountPath) - err := os.Remove(mountPath) - if os.IsNotExist(err) { - klog.V(4).Infof("%q does not exist", mountPath) - return nil - } - return err -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go deleted file mode 100644 index cb8732fce7..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_unix.go +++ /dev/null @@ -1,201 +0,0 @@ -//go:build !windows -// +build !windows - -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "errors" - "fmt" - "io/fs" - "os" - "strconv" - "strings" - "syscall" - - "k8s.io/klog/v2" - utilio "k8s.io/utils/io" -) - -const ( - // At least number of fields per line in /proc//mountinfo. - expectedAtLeastNumFieldsPerMountInfo = 10 - // How many times to retry for a consistent read of /proc/mounts. - maxListTries = 10 -) - -// IsCorruptedMnt return true if err is about corrupted mount point -func IsCorruptedMnt(err error) bool { - if err == nil { - return false - } - var underlyingError error - switch pe := err.(type) { - case nil: - return false - case *os.PathError: - underlyingError = pe.Err - case *os.LinkError: - underlyingError = pe.Err - case *os.SyscallError: - underlyingError = pe.Err - case syscall.Errno: - underlyingError = err - } - - return underlyingError == syscall.ENOTCONN || underlyingError == syscall.ESTALE || underlyingError == syscall.EIO || underlyingError == syscall.EACCES || underlyingError == syscall.EHOSTDOWN -} - -// MountInfo represents a single line in /proc//mountinfo. -type MountInfo struct { // nolint: golint - // Unique ID for the mount (maybe reused after umount). - ID int - // The ID of the parent mount (or of self for the root of this mount namespace's mount tree). - ParentID int - // Major indicates one half of the device ID which identifies the device class - // (parsed from `st_dev` for files on this filesystem). - Major int - // Minor indicates one half of the device ID which identifies a specific - // instance of device (parsed from `st_dev` for files on this filesystem). - Minor int - // The pathname of the directory in the filesystem which forms the root of this mount. - Root string - // Mount source, filesystem-specific information. e.g. device, tmpfs name. - Source string - // Mount point, the pathname of the mount point. - MountPoint string - // Optional fieds, zero or more fields of the form "tag[:value]". - OptionalFields []string - // The filesystem type in the form "type[.subtype]". - FsType string - // Per-mount options. - MountOptions []string - // Per-superblock options. - SuperOptions []string -} - -// ParseMountInfo parses /proc/xxx/mountinfo. -func ParseMountInfo(filename string) ([]MountInfo, error) { - content, err := utilio.ConsistentRead(filename, maxListTries) - if err != nil { - return []MountInfo{}, err - } - contentStr := string(content) - infos := []MountInfo{} - - for _, line := range strings.Split(contentStr, "\n") { - if line == "" { - // the last split() item is empty string following the last \n - continue - } - // See `man proc` for authoritative description of format of the file. - fields := strings.Fields(line) - if len(fields) < expectedAtLeastNumFieldsPerMountInfo { - return nil, fmt.Errorf("wrong number of fields in (expected at least %d, got %d): %s", expectedAtLeastNumFieldsPerMountInfo, len(fields), line) - } - id, err := strconv.Atoi(fields[0]) - if err != nil { - return nil, err - } - parentID, err := strconv.Atoi(fields[1]) - if err != nil { - return nil, err - } - mm := strings.Split(fields[2], ":") - if len(mm) != 2 { - return nil, fmt.Errorf("parsing '%s' failed: unexpected minor:major pair %s", line, mm) - } - major, err := strconv.Atoi(mm[0]) - if err != nil { - return nil, fmt.Errorf("parsing '%s' failed: unable to parse major device id, err:%v", mm[0], err) - } - minor, err := strconv.Atoi(mm[1]) - if err != nil { - return nil, fmt.Errorf("parsing '%s' failed: unable to parse minor device id, err:%v", mm[1], err) - } - - info := MountInfo{ - ID: id, - ParentID: parentID, - Major: major, - Minor: minor, - Root: fields[3], - MountPoint: fields[4], - MountOptions: splitMountOptions(fields[5]), - } - // All fields until "-" are "optional fields". - i := 6 - for ; i < len(fields) && fields[i] != "-"; i++ { - info.OptionalFields = append(info.OptionalFields, fields[i]) - } - // Parse the rest 3 fields. - i++ - if len(fields)-i < 3 { - return nil, fmt.Errorf("expect 3 fields in %s, got %d", line, len(fields)-i) - } - info.FsType = fields[i] - info.Source = fields[i+1] - info.SuperOptions = splitMountOptions(fields[i+2]) - infos = append(infos, info) - } - return infos, nil -} - -// splitMountOptions parses comma-separated list of mount options into an array. -// It respects double quotes - commas in them are not considered as the option separator. -func splitMountOptions(s string) []string { - inQuotes := false - list := strings.FieldsFunc(s, func(r rune) bool { - if r == '"' { - inQuotes = !inQuotes - } - // Report a new field only when outside of double quotes. - return r == ',' && !inQuotes - }) - return list -} - -// isMountPointMatch returns true if the path in mp is the same as dir. -// Handles case where mountpoint dir has been renamed due to stale NFS mount. -func isMountPointMatch(mp MountPoint, dir string) bool { - deletedDir := fmt.Sprintf("%s\\040(deleted)", dir) - return ((mp.Path == dir) || (mp.Path == deletedDir)) -} - -// PathExists returns true if the specified path exists. -// TODO: clean this up to use pkg/util/file/FileExists -func PathExists(path string) (bool, error) { - _, err := os.Stat(path) - if err == nil { - return true, nil - } else if errors.Is(err, fs.ErrNotExist) { - err = syscall.Access(path, syscall.F_OK) - if err == nil { - // The access syscall says the file exists, the stat syscall says it - // doesn't. This was observed on CIFS when the path was removed at - // the server somehow. POSIX calls this a stale file handle, let's fake - // that error and treat the path as existing but corrupted. - klog.Warningf("Potential stale file handle detected: %s", path) - return true, syscall.ESTALE - } - return false, nil - } else if IsCorruptedMnt(err) { - return true, err - } - return false, err -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go deleted file mode 100644 index 995fd5a0cd..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount_helper_windows.go +++ /dev/null @@ -1,111 +0,0 @@ -//go:build windows -// +build windows - -/* -Copyright 2019 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "fmt" - "os" - "strconv" - "strings" - "syscall" - - "k8s.io/klog/v2" -) - -// following failure codes are from https://docs.microsoft.com/en-us/windows/desktop/debug/system-error-codes--1300-1699- -// ERROR_BAD_NETPATH = 53 -// ERROR_NETWORK_BUSY = 54 -// ERROR_UNEXP_NET_ERR = 59 -// ERROR_NETNAME_DELETED = 64 -// ERROR_NETWORK_ACCESS_DENIED = 65 -// ERROR_BAD_DEV_TYPE = 66 -// ERROR_BAD_NET_NAME = 67 -// ERROR_SESSION_CREDENTIAL_CONFLICT = 1219 -// ERROR_LOGON_FAILURE = 1326 -// WSAEHOSTDOWN = 10064 -var errorNoList = [...]int{53, 54, 59, 64, 65, 66, 67, 1219, 1326, 10064} - -// IsCorruptedMnt return true if err is about corrupted mount point -func IsCorruptedMnt(err error) bool { - if err == nil { - return false - } - - var underlyingError error - switch pe := err.(type) { - case nil: - return false - case *os.PathError: - underlyingError = pe.Err - case *os.LinkError: - underlyingError = pe.Err - case *os.SyscallError: - underlyingError = pe.Err - } - - if ee, ok := underlyingError.(syscall.Errno); ok { - for _, errno := range errorNoList { - if int(ee) == errno { - klog.Warningf("IsCorruptedMnt failed with error: %v, error code: %v", err, errno) - return true - } - } - } - - return false -} - -// NormalizeWindowsPath makes sure the given path is a valid path on Windows -// systems by making sure all instances of `/` are replaced with `\\`, and the -// path beings with `c:` -func NormalizeWindowsPath(path string) string { - normalizedPath := strings.Replace(path, "/", "\\", -1) - if strings.HasPrefix(normalizedPath, "\\") { - normalizedPath = "c:" + normalizedPath - } - return normalizedPath -} - -// ValidateDiskNumber : disk number should be a number in [0, 99] -func ValidateDiskNumber(disk string) error { - if _, err := strconv.Atoi(disk); err != nil { - return fmt.Errorf("wrong disk number format: %q, err: %v", disk, err) - } - return nil -} - -// isMountPointMatch determines if the mountpoint matches the dir -func isMountPointMatch(mp MountPoint, dir string) bool { - return mp.Path == dir -} - -// PathExists returns true if the specified path exists. -// TODO: clean this up to use pkg/util/file/FileExists -func PathExists(path string) (bool, error) { - _, err := os.Stat(path) - if err == nil { - return true, nil - } else if os.IsNotExist(err) { - return false, nil - } else if IsCorruptedMnt(err) { - return true, err - } - return false, err -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go deleted file mode 100644 index 86323b7123..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount_linux.go +++ /dev/null @@ -1,802 +0,0 @@ -//go:build linux -// +build linux - -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "context" - "errors" - "fmt" - "github.com/moby/sys/mountinfo" - "io/fs" - "io/ioutil" - "os" - "os/exec" - "path/filepath" - "strconv" - "strings" - "syscall" - "time" - - "k8s.io/klog/v2" - utilexec "k8s.io/utils/exec" - utilio "k8s.io/utils/io" -) - -const ( - // Number of fields per line in /proc/mounts as per the fstab man page. - expectedNumFieldsPerLine = 6 - // Location of the mount file to use - procMountsPath = "/proc/mounts" - // Location of the mountinfo file - procMountInfoPath = "/proc/self/mountinfo" - // 'fsck' found errors and corrected them - fsckErrorsCorrected = 1 - // 'fsck' found errors but exited without correcting them - fsckErrorsUncorrected = 4 - // Error thrown by exec cmd.Run() when process spawned by cmd.Start() completes before cmd.Wait() is called (see - k/k issue #103753) - errNoChildProcesses = "wait: no child processes" - // Error returned by some `umount` implementations when the specified path is not a mount point - errNotMounted = "not mounted" -) - -// Mounter provides the default implementation of mount.Interface -// for the linux platform. This implementation assumes that the -// kubelet is running in the host's root mount namespace. -type Mounter struct { - mounterPath string - withSystemd *bool - trySystemd bool - withSafeNotMountedBehavior bool -} - -var _ MounterForceUnmounter = &Mounter{} - -// New returns a mount.Interface for the current system. -// It provides options to override the default mounter behavior. -// mounterPath allows using an alternative to `/bin/mount` for mounting. -func New(mounterPath string) Interface { - return &Mounter{ - mounterPath: mounterPath, - trySystemd: true, - withSafeNotMountedBehavior: detectSafeNotMountedBehavior(), - } -} - -// NewWithoutSystemd returns a Linux specific mount.Interface for the current -// system. It provides options to override the default mounter behavior. -// mounterPath allows using an alternative to `/bin/mount` for mounting. Any -// detection for systemd functionality is disabled with this Mounter. -func NewWithoutSystemd(mounterPath string) Interface { - return &Mounter{ - mounterPath: mounterPath, - trySystemd: false, - withSafeNotMountedBehavior: detectSafeNotMountedBehavior(), - } -} - -// hasSystemd validates that the withSystemd bool is set, if it is not, -// detectSystemd will be called once for this Mounter instance. -func (mounter *Mounter) hasSystemd() bool { - if !mounter.trySystemd { - mounter.withSystemd = &mounter.trySystemd - } - - if mounter.withSystemd == nil { - withSystemd := detectSystemd() - mounter.withSystemd = &withSystemd - } - - return *mounter.withSystemd -} - -// Mount mounts source to target as fstype with given options. 'source' and 'fstype' must -// be an empty string in case it's not required, e.g. for remount, or for auto filesystem -// type, where kernel handles fstype for you. The mount 'options' is a list of options, -// currently come from mount(8), e.g. "ro", "remount", "bind", etc. If no more option is -// required, call Mount with an empty string list or nil. -func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { - return mounter.MountSensitive(source, target, fstype, options, nil) -} - -// MountSensitive is the same as Mount() but this method allows -// sensitiveOptions to be passed in a separate parameter from the normal -// mount options and ensures the sensitiveOptions are never logged. This -// method should be used by callers that pass sensitive material (like -// passwords) as mount options. -func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - // Path to mounter binary if containerized mounter is needed. Otherwise, it is set to empty. - // All Linux distros are expected to be shipped with a mount utility that a support bind mounts. - mounterPath := "" - bind, bindOpts, bindRemountOpts, bindRemountOptsSensitive := MakeBindOptsSensitive(options, sensitiveOptions) - if bind { - err := mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindOpts, bindRemountOptsSensitive, nil /* mountFlags */, mounter.trySystemd) - if err != nil { - return err - } - return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts, bindRemountOptsSensitive, nil /* mountFlags */, mounter.trySystemd) - } - // The list of filesystems that require containerized mounter on GCI image cluster - fsTypesNeedMounter := map[string]struct{}{ - "nfs": {}, - "glusterfs": {}, - "ceph": {}, - "cifs": {}, - } - if _, ok := fsTypesNeedMounter[fstype]; ok { - mounterPath = mounter.mounterPath - } - return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions, nil /* mountFlags */, mounter.trySystemd) -} - -// MountSensitiveWithoutSystemd is the same as MountSensitive() but disable using systemd mount. -func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return mounter.MountSensitiveWithoutSystemdWithMountFlags(source, target, fstype, options, sensitiveOptions, nil /* mountFlags */) -} - -// MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd with additional mount flags. -func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { - mounterPath := "" - bind, bindOpts, bindRemountOpts, bindRemountOptsSensitive := MakeBindOptsSensitive(options, sensitiveOptions) - if bind { - err := mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindOpts, bindRemountOptsSensitive, mountFlags, false) - if err != nil { - return err - } - return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, bindRemountOpts, bindRemountOptsSensitive, mountFlags, false) - } - // The list of filesystems that require containerized mounter on GCI image cluster - fsTypesNeedMounter := map[string]struct{}{ - "nfs": {}, - "glusterfs": {}, - "ceph": {}, - "cifs": {}, - } - if _, ok := fsTypesNeedMounter[fstype]; ok { - mounterPath = mounter.mounterPath - } - return mounter.doMount(mounterPath, defaultMountCommand, source, target, fstype, options, sensitiveOptions, mountFlags, false) -} - -// doMount runs the mount command. mounterPath is the path to mounter binary if containerized mounter is used. -// sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material) -// systemdMountRequired is an extension of option to decide whether uses systemd mount. -func (mounter *Mounter) doMount(mounterPath string, mountCmd string, source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string, systemdMountRequired bool) error { - mountArgs, mountArgsLogStr := MakeMountArgsSensitiveWithMountFlags(source, target, fstype, options, sensitiveOptions, mountFlags) - if len(mounterPath) > 0 { - mountArgs = append([]string{mountCmd}, mountArgs...) - mountArgsLogStr = mountCmd + " " + mountArgsLogStr - mountCmd = mounterPath - } - - if systemdMountRequired && mounter.hasSystemd() { - // Try to run mount via systemd-run --scope. This will escape the - // service where kubelet runs and any fuse daemons will be started in a - // specific scope. kubelet service than can be restarted without killing - // these fuse daemons. - // - // Complete command line (when mounterPath is not used): - // systemd-run --description=... --scope -- mount -t - // - // Expected flow: - // * systemd-run creates a transient scope (=~ cgroup) and executes its - // argument (/bin/mount) there. - // * mount does its job, forks a fuse daemon if necessary and finishes. - // (systemd-run --scope finishes at this point, returning mount's exit - // code and stdout/stderr - thats one of --scope benefits). - // * systemd keeps the fuse daemon running in the scope (i.e. in its own - // cgroup) until the fuse daemon dies (another --scope benefit). - // Kubelet service can be restarted and the fuse daemon survives. - // * When the fuse daemon dies (e.g. during unmount) systemd removes the - // scope automatically. - // - // systemd-mount is not used because it's too new for older distros - // (CentOS 7, Debian Jessie). - mountCmd, mountArgs, mountArgsLogStr = AddSystemdScopeSensitive("systemd-run", target, mountCmd, mountArgs, mountArgsLogStr) - // } else { - // No systemd-run on the host (or we failed to check it), assume kubelet - // does not run as a systemd service. - // No code here, mountCmd and mountArgs are already populated. - } - - // Logging with sensitive mount options removed. - klog.V(4).Infof("Mounting cmd (%s) with arguments (%s)", mountCmd, mountArgsLogStr) - command := exec.Command(mountCmd, mountArgs...) - output, err := command.CombinedOutput() - if err != nil { - if err.Error() == errNoChildProcesses { - if command.ProcessState.Success() { - // We don't consider errNoChildProcesses an error if the process itself succeeded (see - k/k issue #103753). - return nil - } - // Rewrite err with the actual exit error of the process. - err = &exec.ExitError{ProcessState: command.ProcessState} - } - klog.Errorf("Mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s\n", err, mountCmd, mountArgsLogStr, string(output)) - return fmt.Errorf("mount failed: %v\nMounting command: %s\nMounting arguments: %s\nOutput: %s", - err, mountCmd, mountArgsLogStr, string(output)) - } - return err -} - -// detectSystemd returns true if OS runs with systemd as init. When not sure -// (permission errors, ...), it returns false. -// There may be different ways how to detect systemd, this one makes sure that -// systemd-runs (needed by Mount()) works. -func detectSystemd() bool { - if _, err := exec.LookPath("systemd-run"); err != nil { - klog.V(2).Infof("Detected OS without systemd") - return false - } - // Try to run systemd-run --scope /bin/true, that should be enough - // to make sure that systemd is really running and not just installed, - // which happens when running in a container with a systemd-based image - // but with different pid 1. - cmd := exec.Command("systemd-run", "--description=Kubernetes systemd probe", "--scope", "true") - output, err := cmd.CombinedOutput() - if err != nil { - klog.V(2).Infof("Cannot run systemd-run, assuming non-systemd OS") - klog.V(4).Infof("systemd-run output: %s, failed with: %v", string(output), err) - return false - } - klog.V(2).Infof("Detected OS with systemd") - return true -} - -// detectSafeNotMountedBehavior returns true if the umount implementation replies "not mounted" -// when the specified path is not mounted. When not sure (permission errors, ...), it returns false. -// When possible, we will trust umount's message and avoid doing our own mount point checks. -// More info: https://github.com/util-linux/util-linux/blob/v2.2/mount/umount.c#L179 -func detectSafeNotMountedBehavior() bool { - return detectSafeNotMountedBehaviorWithExec(utilexec.New()) -} - -// detectSafeNotMountedBehaviorWithExec is for testing with FakeExec. -func detectSafeNotMountedBehaviorWithExec(exec utilexec.Interface) bool { - // create a temp dir and try to umount it - path, err := ioutil.TempDir("", "kubelet-detect-safe-umount") - if err != nil { - klog.V(4).Infof("Cannot create temp dir to detect safe 'not mounted' behavior: %v", err) - return false - } - defer os.RemoveAll(path) - cmd := exec.Command("umount", path) - output, err := cmd.CombinedOutput() - if err != nil { - if strings.Contains(string(output), errNotMounted) { - klog.V(4).Infof("Detected umount with safe 'not mounted' behavior") - return true - } - klog.V(4).Infof("'umount %s' failed with: %v, output: %s", path, err, string(output)) - } - klog.V(4).Infof("Detected umount with unsafe 'not mounted' behavior") - return false -} - -// MakeMountArgs makes the arguments to the mount(8) command. -// options MUST not contain sensitive material (like passwords). -func MakeMountArgs(source, target, fstype string, options []string) (mountArgs []string) { - mountArgs, _ = MakeMountArgsSensitive(source, target, fstype, options, nil /* sensitiveOptions */) - return mountArgs -} - -// MakeMountArgsSensitive makes the arguments to the mount(8) command. -// sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material) -func MakeMountArgsSensitive(source, target, fstype string, options []string, sensitiveOptions []string) (mountArgs []string, mountArgsLogStr string) { - return MakeMountArgsSensitiveWithMountFlags(source, target, fstype, options, sensitiveOptions, nil /* mountFlags */) -} - -// MakeMountArgsSensitiveWithMountFlags makes the arguments to the mount(8) command. -// sensitiveOptions is an extension of options except they will not be logged (because they may contain sensitive material) -// mountFlags are additional mount flags that are not related with the fstype -// and mount options -func MakeMountArgsSensitiveWithMountFlags(source, target, fstype string, options []string, sensitiveOptions []string, mountFlags []string) (mountArgs []string, mountArgsLogStr string) { - // Build mount command as follows: - // mount [$mountFlags] [-t $fstype] [-o $options] [$source] $target - mountArgs = []string{} - mountArgsLogStr = "" - - mountArgs = append(mountArgs, mountFlags...) - mountArgsLogStr += strings.Join(mountFlags, " ") - - if len(fstype) > 0 { - mountArgs = append(mountArgs, "-t", fstype) - mountArgsLogStr += strings.Join(mountArgs, " ") - } - if len(options) > 0 || len(sensitiveOptions) > 0 { - combinedOptions := []string{} - combinedOptions = append(combinedOptions, options...) - combinedOptions = append(combinedOptions, sensitiveOptions...) - mountArgs = append(mountArgs, "-o", strings.Join(combinedOptions, ",")) - // exclude sensitiveOptions from log string - mountArgsLogStr += " -o " + sanitizedOptionsForLogging(options, sensitiveOptions) - } - if len(source) > 0 { - mountArgs = append(mountArgs, source) - mountArgsLogStr += " " + source - } - mountArgs = append(mountArgs, target) - mountArgsLogStr += " " + target - - return mountArgs, mountArgsLogStr -} - -// AddSystemdScope adds "system-run --scope" to given command line -// If args contains sensitive material, use AddSystemdScopeSensitive to construct -// a safe to log string. -func AddSystemdScope(systemdRunPath, mountName, command string, args []string) (string, []string) { - descriptionArg := fmt.Sprintf("--description=Kubernetes transient mount for %s", mountName) - systemdRunArgs := []string{descriptionArg, "--scope", "--", command} - return systemdRunPath, append(systemdRunArgs, args...) -} - -// AddSystemdScopeSensitive adds "system-run --scope" to given command line -// It also accepts takes a sanitized string containing mount arguments, mountArgsLogStr, -// and returns the string appended to the systemd command for logging. -func AddSystemdScopeSensitive(systemdRunPath, mountName, command string, args []string, mountArgsLogStr string) (string, []string, string) { - descriptionArg := fmt.Sprintf("--description=Kubernetes transient mount for %s", mountName) - systemdRunArgs := []string{descriptionArg, "--scope", "--", command} - return systemdRunPath, append(systemdRunArgs, args...), strings.Join(systemdRunArgs, " ") + " " + mountArgsLogStr -} - -// Unmount unmounts the target. -// If the mounter has safe "not mounted" behavior, no error will be returned when the target is not a mount point. -func (mounter *Mounter) Unmount(target string) error { - klog.V(4).Infof("Unmounting %s", target) - command := exec.Command("umount", target) - output, err := command.CombinedOutput() - if err != nil { - if err.Error() == errNoChildProcesses { - if command.ProcessState.Success() { - // We don't consider errNoChildProcesses an error if the process itself succeeded (see - k/k issue #103753). - return nil - } - // Rewrite err with the actual exit error of the process. - err = &exec.ExitError{ProcessState: command.ProcessState} - } - if mounter.withSafeNotMountedBehavior && strings.Contains(string(output), errNotMounted) { - klog.V(4).Infof("ignoring 'not mounted' error for %s", target) - return nil - } - return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", err, target, string(output)) - } - return nil -} - -// UnmountWithForce unmounts given target but will retry unmounting with force option -// after given timeout. -func (mounter *Mounter) UnmountWithForce(target string, umountTimeout time.Duration) error { - err := tryUnmount(target, umountTimeout) - if err != nil { - if err == context.DeadlineExceeded { - klog.V(2).Infof("Timed out waiting for unmount of %s, trying with -f", target) - err = forceUmount(target) - } - return err - } - return nil -} - -// List returns a list of all mounted filesystems. -func (*Mounter) List() ([]MountPoint, error) { - return ListProcMounts(procMountsPath) -} - -// IsLikelyNotMountPoint determines if a directory is not a mountpoint. -// It is fast but not necessarily ALWAYS correct. If the path is in fact -// a bind mount from one part of a mount to another it will not be detected. -// It also can not distinguish between mountpoints and symbolic links. -// mkdir /tmp/a /tmp/b; mount --bind /tmp/a /tmp/b; IsLikelyNotMountPoint("/tmp/b") -// will return true. When in fact /tmp/b is a mount point. If this situation -// is of interest to you, don't use this function... -func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { - stat, err := os.Stat(file) - if err != nil { - return true, err - } - rootStat, err := os.Stat(filepath.Dir(strings.TrimSuffix(file, "/"))) - if err != nil { - return true, err - } - // If the directory has a different device as parent, then it is a mountpoint. - if stat.Sys().(*syscall.Stat_t).Dev != rootStat.Sys().(*syscall.Stat_t).Dev { - return false, nil - } - - return true, nil -} - -// canSafelySkipMountPointCheck relies on the detected behavior of umount when given a target that is not a mount point. -func (mounter *Mounter) canSafelySkipMountPointCheck() bool { - return mounter.withSafeNotMountedBehavior -} - -// GetMountRefs finds all mount references to pathname, returns a -// list of paths. Path could be a mountpoint or a normal -// directory (for bind mount). -func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { - pathExists, pathErr := PathExists(pathname) - if !pathExists { - return []string{}, nil - } else if IsCorruptedMnt(pathErr) { - klog.Warningf("GetMountRefs found corrupted mount at %s, treating as unmounted path", pathname) - return []string{}, nil - } else if pathErr != nil { - return nil, fmt.Errorf("error checking path %s: %v", pathname, pathErr) - } - realpath, err := filepath.EvalSymlinks(pathname) - if err != nil { - return nil, err - } - return SearchMountPoints(realpath, procMountInfoPath) -} - -// checkAndRepairFileSystem checks and repairs filesystems using command fsck. -func (mounter *SafeFormatAndMount) checkAndRepairFilesystem(source string) error { - klog.V(4).Infof("Checking for issues with fsck on disk: %s", source) - args := []string{"-a", source} - out, err := mounter.Exec.Command("fsck", args...).CombinedOutput() - if err != nil { - ee, isExitError := err.(utilexec.ExitError) - switch { - case err == utilexec.ErrExecutableNotFound: - klog.Warningf("'fsck' not found on system; continuing mount without running 'fsck'.") - case isExitError && ee.ExitStatus() == fsckErrorsCorrected: - klog.Infof("Device %s has errors which were corrected by fsck.", source) - case isExitError && ee.ExitStatus() == fsckErrorsUncorrected: - return NewMountError(HasFilesystemErrors, "'fsck' found errors on device %s but could not correct them: %s", source, string(out)) - case isExitError && ee.ExitStatus() > fsckErrorsUncorrected: - klog.Infof("`fsck` error %s", string(out)) - } - } - return nil -} - -// formatAndMount uses unix utils to format and mount the given disk -func (mounter *SafeFormatAndMount) formatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - readOnly := false - for _, option := range options { - if option == "ro" { - readOnly = true - break - } - } - if !readOnly { - // Check sensitiveOptions for ro - for _, option := range sensitiveOptions { - if option == "ro" { - readOnly = true - break - } - } - } - - options = append(options, "defaults") - mountErrorValue := UnknownMountError - - // Check if the disk is already formatted - existingFormat, err := mounter.GetDiskFormat(source) - if err != nil { - return NewMountError(GetDiskFormatFailed, "failed to get disk format of disk %s: %v", source, err) - } - - // Use 'ext4' as the default - if len(fstype) == 0 { - fstype = "ext4" - } - - if existingFormat == "" { - // Do not attempt to format the disk if mounting as readonly, return an error to reflect this. - if readOnly { - return NewMountError(UnformattedReadOnly, "cannot mount unformatted disk %s as we are manipulating it in read-only mode", source) - } - - // Disk is unformatted so format it. - args := []string{source} - if fstype == "ext4" || fstype == "ext3" { - args = []string{ - "-F", // Force flag - "-m0", // Zero blocks reserved for super-user - source, - } - } else if fstype == "xfs" { - args = []string{ - "-f", // force flag - source, - } - } - - klog.Infof("Disk %q appears to be unformatted, attempting to format as type: %q with options: %v", source, fstype, args) - output, err := mounter.Exec.Command("mkfs."+fstype, args...).CombinedOutput() - if err != nil { - // Do not log sensitiveOptions only options - sensitiveOptionsLog := sanitizedOptionsForLogging(options, sensitiveOptions) - detailedErr := fmt.Sprintf("format of disk %q failed: type:(%q) target:(%q) options:(%q) errcode:(%v) output:(%v) ", source, fstype, target, sensitiveOptionsLog, err, string(output)) - klog.Error(detailedErr) - return NewMountError(FormatFailed, detailedErr) - } - - klog.Infof("Disk successfully formatted (mkfs): %s - %s %s", fstype, source, target) - } else { - if fstype != existingFormat { - // Verify that the disk is formatted with filesystem type we are expecting - mountErrorValue = FilesystemMismatch - klog.Warningf("Configured to mount disk %s as %s but current format is %s, things might break", source, existingFormat, fstype) - } - - if !readOnly { - // Run check tools on the disk to fix repairable issues, only do this for formatted volumes requested as rw. - err := mounter.checkAndRepairFilesystem(source) - if err != nil { - return err - } - } - } - - // Mount the disk - klog.V(4).Infof("Attempting to mount disk %s in %s format at %s", source, fstype, target) - if err := mounter.MountSensitive(source, target, fstype, options, sensitiveOptions); err != nil { - return NewMountError(mountErrorValue, err.Error()) - } - - return nil -} - -func getDiskFormat(exec utilexec.Interface, disk string) (string, error) { - args := []string{"-p", "-s", "TYPE", "-s", "PTTYPE", "-o", "export", disk} - klog.V(4).Infof("Attempting to determine if disk %q is formatted using blkid with args: (%v)", disk, args) - dataOut, err := exec.Command("blkid", args...).CombinedOutput() - output := string(dataOut) - klog.V(4).Infof("Output: %q", output) - - if err != nil { - if exit, ok := err.(utilexec.ExitError); ok { - if exit.ExitStatus() == 2 { - // Disk device is unformatted. - // For `blkid`, if the specified token (TYPE/PTTYPE, etc) was - // not found, or no (specified) devices could be identified, an - // exit code of 2 is returned. - return "", nil - } - } - klog.Errorf("Could not determine if disk %q is formatted (%v)", disk, err) - return "", err - } - - var fstype, pttype string - - lines := strings.Split(output, "\n") - for _, l := range lines { - if len(l) <= 0 { - // Ignore empty line. - continue - } - cs := strings.Split(l, "=") - if len(cs) != 2 { - return "", fmt.Errorf("blkid returns invalid output: %s", output) - } - // TYPE is filesystem type, and PTTYPE is partition table type, according - // to https://www.kernel.org/pub/linux/utils/util-linux/v2.21/libblkid-docs/. - if cs[0] == "TYPE" { - fstype = cs[1] - } else if cs[0] == "PTTYPE" { - pttype = cs[1] - } - } - - if len(pttype) > 0 { - klog.V(4).Infof("Disk %s detected partition table type: %s", disk, pttype) - // Returns a special non-empty string as filesystem type, then kubelet - // will not format it. - return "unknown data, probably partitions", nil - } - - return fstype, nil -} - -// GetDiskFormat uses 'blkid' to see if the given disk is unformatted -func (mounter *SafeFormatAndMount) GetDiskFormat(disk string) (string, error) { - return getDiskFormat(mounter.Exec, disk) -} - -// ListProcMounts is shared with NsEnterMounter -func ListProcMounts(mountFilePath string) ([]MountPoint, error) { - content, err := utilio.ConsistentRead(mountFilePath, maxListTries) - if err != nil { - return nil, err - } - return parseProcMounts(content) -} - -func parseProcMounts(content []byte) ([]MountPoint, error) { - out := []MountPoint{} - lines := strings.Split(string(content), "\n") - for _, line := range lines { - if line == "" { - // the last split() item is empty string following the last \n - continue - } - fields := strings.Fields(line) - if len(fields) != expectedNumFieldsPerLine { - // Do not log line in case it contains sensitive Mount options - return nil, fmt.Errorf("wrong number of fields (expected %d, got %d)", expectedNumFieldsPerLine, len(fields)) - } - - mp := MountPoint{ - Device: fields[0], - Path: fields[1], - Type: fields[2], - Opts: strings.Split(fields[3], ","), - } - - freq, err := strconv.Atoi(fields[4]) - if err != nil { - return nil, err - } - mp.Freq = freq - - pass, err := strconv.Atoi(fields[5]) - if err != nil { - return nil, err - } - mp.Pass = pass - - out = append(out, mp) - } - return out, nil -} - -// SearchMountPoints finds all mount references to the source, returns a list of -// mountpoints. -// The source can be a mount point or a normal directory (bind mount). We -// didn't support device because there is no use case by now. -// Some filesystems may share a source name, e.g. tmpfs. And for bind mounting, -// it's possible to mount a non-root path of a filesystem, so we need to use -// root path and major:minor to represent mount source uniquely. -// This implementation is shared between Linux and NsEnterMounter -func SearchMountPoints(hostSource, mountInfoPath string) ([]string, error) { - mis, err := ParseMountInfo(mountInfoPath) - if err != nil { - return nil, err - } - - mountID := 0 - rootPath := "" - major := -1 - minor := -1 - - // Finding the underlying root path and major:minor if possible. - // We need search in backward order because it's possible for later mounts - // to overlap earlier mounts. - for i := len(mis) - 1; i >= 0; i-- { - if hostSource == mis[i].MountPoint || PathWithinBase(hostSource, mis[i].MountPoint) { - // If it's a mount point or path under a mount point. - mountID = mis[i].ID - rootPath = filepath.Join(mis[i].Root, strings.TrimPrefix(hostSource, mis[i].MountPoint)) - major = mis[i].Major - minor = mis[i].Minor - break - } - } - - if rootPath == "" || major == -1 || minor == -1 { - return nil, fmt.Errorf("failed to get root path and major:minor for %s", hostSource) - } - - var refs []string - for i := range mis { - if mis[i].ID == mountID { - // Ignore mount entry for mount source itself. - continue - } - if mis[i].Root == rootPath && mis[i].Major == major && mis[i].Minor == minor { - refs = append(refs, mis[i].MountPoint) - } - } - - return refs, nil -} - -// IsMountPoint determines if a file is a mountpoint. -// It first detects bind & any other mountpoints using -// MountedFast function. If the MountedFast function returns -// sure as true and err as nil, then a mountpoint is detected -// successfully. When an error is returned by MountedFast, the -// following is true: -// 1. All errors are returned with IsMountPoint as false -// except os.IsPermission. -// 2. When os.IsPermission is returned by MountedFast, List() -// is called to confirm if the given file is a mountpoint are not. -// -// os.ErrNotExist should always be returned if a file does not exist -// as callers have in past relied on this error and not fallback. -// -// When MountedFast returns sure as false and err as nil (eg: in -// case of bindmounts on kernel version 5.10- ); mounter.List() -// endpoint is called to enumerate all the mountpoints and check if -// it is mountpoint match or not. -func (mounter *Mounter) IsMountPoint(file string) (bool, error) { - isMnt, sure, isMntErr := mountinfo.MountedFast(file) - if sure && isMntErr == nil { - return isMnt, nil - } - if isMntErr != nil { - if errors.Is(isMntErr, fs.ErrNotExist) { - return false, fs.ErrNotExist - } - // We were not allowed to do the simple stat() check, e.g. on NFS with - // root_squash. Fall back to /proc/mounts check below when - // fs.ErrPermission is returned. - if !errors.Is(isMntErr, fs.ErrPermission) { - return false, isMntErr - } - } - // Resolve any symlinks in file, kernel would do the same and use the resolved path in /proc/mounts. - resolvedFile, err := filepath.EvalSymlinks(file) - if err != nil { - if errors.Is(isMntErr, fs.ErrNotExist) { - return false, fs.ErrNotExist - } - return false, err - } - - // check all mountpoints since MountedFast is not sure. - // is not reliable for some mountpoint types. - mountPoints, mountPointsErr := mounter.List() - if mountPointsErr != nil { - return false, mountPointsErr - } - for _, mp := range mountPoints { - if isMountPointMatch(mp, resolvedFile) { - return true, nil - } - } - return false, nil -} - -// tryUnmount calls plain "umount" and waits for unmountTimeout for it to finish. -func tryUnmount(path string, unmountTimeout time.Duration) error { - klog.V(4).Infof("Unmounting %s", path) - ctx, cancel := context.WithTimeout(context.Background(), unmountTimeout) - defer cancel() - - cmd := exec.CommandContext(ctx, "umount", path) - out, cmderr := cmd.CombinedOutput() - - // CombinedOutput() does not return DeadlineExceeded, make sure it's - // propagated on timeout. - if ctx.Err() != nil { - return ctx.Err() - } - - if cmderr != nil { - return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", cmderr, path, string(out)) - } - return nil -} - -func forceUmount(path string) error { - cmd := exec.Command("umount", "-f", path) - out, cmderr := cmd.CombinedOutput() - - if cmderr != nil { - return fmt.Errorf("unmount failed: %v\nUnmounting arguments: %s\nOutput: %s", cmderr, path, string(out)) - } - return nil -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go deleted file mode 100644 index 026505282c..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount_unsupported.go +++ /dev/null @@ -1,105 +0,0 @@ -//go:build !linux && !windows -// +build !linux,!windows - -/* -Copyright 2014 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "errors" -) - -// Mounter implements mount.Interface for unsupported platforms -type Mounter struct { - mounterPath string -} - -var errUnsupported = errors.New("util/mount on this platform is not supported") - -// New returns a mount.Interface for the current system. -// It provides options to override the default mounter behavior. -// mounterPath allows using an alternative to `/bin/mount` for mounting. -func New(mounterPath string) Interface { - return &Mounter{ - mounterPath: mounterPath, - } -} - -// Mount always returns an error on unsupported platforms -func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { - return errUnsupported -} - -// MountSensitive always returns an error on unsupported platforms -func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return errUnsupported -} - -// MountSensitiveWithoutSystemd always returns an error on unsupported platforms -func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return errUnsupported -} - -// MountSensitiveWithoutSystemdWithMountFlags always returns an error on unsupported platforms -func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { - return errUnsupported -} - -// Unmount always returns an error on unsupported platforms -func (mounter *Mounter) Unmount(target string) error { - return errUnsupported -} - -// List always returns an error on unsupported platforms -func (mounter *Mounter) List() ([]MountPoint, error) { - return []MountPoint{}, errUnsupported -} - -// IsLikelyNotMountPoint always returns an error on unsupported platforms -func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { - return true, errUnsupported -} - -// canSafelySkipMountPointCheck always returns false on unsupported platforms -func (mounter *Mounter) canSafelySkipMountPointCheck() bool { - return false -} - -// IsMountPoint determines if a directory is a mountpoint. -// It always returns an error on unsupported platforms. -func (mounter *Mounter) IsMountPoint(file string) (bool, error) { - return false, errUnsupported -} - -// GetMountRefs always returns an error on unsupported platforms -func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { - return nil, errUnsupported -} - -func (mounter *SafeFormatAndMount) formatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return mounter.Interface.Mount(source, target, fstype, options) -} - -func (mounter *SafeFormatAndMount) diskLooksUnformatted(disk string) (bool, error) { - return true, errUnsupported -} - -// IsMountPoint determines if a directory is a mountpoint. -// It always returns an error on unsupported platforms. -func (mounter *SafeFormatAndMount) IsMountPoint(file string) (bool, error) { - return false, errUnsupported -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go b/ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go deleted file mode 100644 index 3800f75d4a..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/mount_windows.go +++ /dev/null @@ -1,351 +0,0 @@ -//go:build windows -// +build windows - -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "fmt" - "os" - "os/exec" - "path/filepath" - "strings" - - "k8s.io/klog/v2" - "k8s.io/utils/keymutex" -) - -const ( - accessDenied string = "access is denied" -) - -// Mounter provides the default implementation of mount.Interface -// for the windows platform. This implementation assumes that the -// kubelet is running in the host's root mount namespace. -type Mounter struct { - mounterPath string -} - -// New returns a mount.Interface for the current system. -// It provides options to override the default mounter behavior. -// mounterPath allows using an alternative to `/bin/mount` for mounting. -func New(mounterPath string) Interface { - return &Mounter{ - mounterPath: mounterPath, - } -} - -// acquire lock for smb mount -var getSMBMountMutex = keymutex.NewHashed(0) - -// Mount : mounts source to target with given options. -// currently only supports cifs(smb), bind mount(for disk) -func (mounter *Mounter) Mount(source string, target string, fstype string, options []string) error { - return mounter.MountSensitive(source, target, fstype, options, nil /* sensitiveOptions */) -} - -// MountSensitiveWithoutSystemd is the same as MountSensitive() but disable using ssytemd mount. -// Windows not supported systemd mount, this function degrades to MountSensitive(). -func (mounter *Mounter) MountSensitiveWithoutSystemd(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - return mounter.MountSensitive(source, target, fstype, options, sensitiveOptions /* sensitiveOptions */) -} - -// MountSensitiveWithoutSystemdWithMountFlags is the same as MountSensitiveWithoutSystemd with additional mount flags -// Windows not supported systemd mount, this function degrades to MountSensitive(). -func (mounter *Mounter) MountSensitiveWithoutSystemdWithMountFlags(source string, target string, fstype string, options []string, sensitiveOptions []string, mountFlags []string) error { - return mounter.MountSensitive(source, target, fstype, options, sensitiveOptions /* sensitiveOptions */) -} - -// MountSensitive is the same as Mount() but this method allows -// sensitiveOptions to be passed in a separate parameter from the normal -// mount options and ensures the sensitiveOptions are never logged. This -// method should be used by callers that pass sensitive material (like -// passwords) as mount options. -func (mounter *Mounter) MountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - target = NormalizeWindowsPath(target) - sanitizedOptionsForLogging := sanitizedOptionsForLogging(options, sensitiveOptions) - - if source == "tmpfs" { - klog.V(3).Infof("mounting source (%q), target (%q), with options (%q)", source, target, sanitizedOptionsForLogging) - return os.MkdirAll(target, 0755) - } - - parentDir := filepath.Dir(target) - if err := os.MkdirAll(parentDir, 0755); err != nil { - return err - } - - klog.V(4).Infof("mount options(%q) source:%q, target:%q, fstype:%q, begin to mount", - sanitizedOptionsForLogging, source, target, fstype) - bindSource := source - - if bind, _, _, _ := MakeBindOptsSensitive(options, sensitiveOptions); bind { - bindSource = NormalizeWindowsPath(source) - } else { - allOptions := []string{} - allOptions = append(allOptions, options...) - allOptions = append(allOptions, sensitiveOptions...) - if len(allOptions) < 2 { - return fmt.Errorf("mount options(%q) should have at least 2 options, current number:%d, source:%q, target:%q", - sanitizedOptionsForLogging, len(allOptions), source, target) - } - - // currently only cifs mount is supported - if strings.ToLower(fstype) != "cifs" { - return fmt.Errorf("only cifs mount is supported now, fstype: %q, mounting source (%q), target (%q), with options (%q)", fstype, source, target, sanitizedOptionsForLogging) - } - - // lock smb mount for the same source - getSMBMountMutex.LockKey(source) - defer getSMBMountMutex.UnlockKey(source) - - username := allOptions[0] - password := allOptions[1] - if output, err := newSMBMapping(username, password, source); err != nil { - klog.Warningf("SMB Mapping(%s) returned with error(%v), output(%s)", source, err, string(output)) - if isSMBMappingExist(source) { - valid, err := isValidPath(source) - if !valid { - if err == nil || isAccessDeniedError(err) { - klog.V(2).Infof("SMB Mapping(%s) already exists while it's not valid, return error: %v, now begin to remove and remount", source, err) - if output, err = removeSMBMapping(source); err != nil { - return fmt.Errorf("Remove-SmbGlobalMapping failed: %v, output: %q", err, output) - } - if output, err := newSMBMapping(username, password, source); err != nil { - return fmt.Errorf("New-SmbGlobalMapping(%s) failed: %v, output: %q", source, err, output) - } - } - } else { - klog.V(2).Infof("SMB Mapping(%s) already exists and is still valid, skip error(%v)", source, err) - } - } else { - return fmt.Errorf("New-SmbGlobalMapping(%s) failed: %v, output: %q", source, err, output) - } - } - } - - // There is an issue in golang where EvalSymlinks fails on Windows when passed a - // UNC share root path without a trailing backslash. - // Ex: \\SERVER\share will fail to resolve but \\SERVER\share\ will resolve - // containerD on Windows calls EvalSymlinks so we'll add the backslash when making the symlink if it is missing. - // https://github.com/golang/go/pull/42096 fixes this issue in golang but a fix will not be available until - // golang v1.16 - mklinkSource := bindSource - if !strings.HasSuffix(mklinkSource, "\\") { - mklinkSource = mklinkSource + "\\" - } - - output, err := exec.Command("cmd", "/c", "mklink", "/D", target, mklinkSource).CombinedOutput() - if err != nil { - klog.Errorf("mklink failed: %v, source(%q) target(%q) output: %q", err, mklinkSource, target, string(output)) - return err - } - klog.V(2).Infof("mklink source(%q) on target(%q) successfully, output: %q", mklinkSource, target, string(output)) - - return nil -} - -// do the SMB mount with username, password, remotepath -// return (output, error) -func newSMBMapping(username, password, remotepath string) (string, error) { - if username == "" || password == "" || remotepath == "" { - return "", fmt.Errorf("invalid parameter(username: %s, password: %s, remoteapth: %s)", username, sensitiveOptionsRemoved, remotepath) - } - - // use PowerShell Environment Variables to store user input string to prevent command line injection - // https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_environment_variables?view=powershell-5.1 - cmdLine := `$PWord = ConvertTo-SecureString -String $Env:smbpassword -AsPlainText -Force` + - `;$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Env:smbuser, $PWord` + - `;New-SmbGlobalMapping -RemotePath $Env:smbremotepath -Credential $Credential -RequirePrivacy $true` - cmd := exec.Command("powershell", "/c", cmdLine) - cmd.Env = append(os.Environ(), - fmt.Sprintf("smbuser=%s", username), - fmt.Sprintf("smbpassword=%s", password), - fmt.Sprintf("smbremotepath=%s", remotepath)) - - output, err := cmd.CombinedOutput() - return string(output), err -} - -// check whether remotepath is already mounted -func isSMBMappingExist(remotepath string) bool { - cmd := exec.Command("powershell", "/c", `Get-SmbGlobalMapping -RemotePath $Env:smbremotepath`) - cmd.Env = append(os.Environ(), fmt.Sprintf("smbremotepath=%s", remotepath)) - _, err := cmd.CombinedOutput() - return err == nil -} - -// check whether remotepath is valid -// return (true, nil) if remotepath is valid -func isValidPath(remotepath string) (bool, error) { - cmd := exec.Command("powershell", "/c", `Test-Path $Env:remoteapth`) - cmd.Env = append(os.Environ(), fmt.Sprintf("remoteapth=%s", remotepath)) - output, err := cmd.CombinedOutput() - if err != nil { - return false, fmt.Errorf("returned output: %s, error: %v", string(output), err) - } - - return strings.HasPrefix(strings.ToLower(string(output)), "true"), nil -} - -func isAccessDeniedError(err error) bool { - return err != nil && strings.Contains(strings.ToLower(err.Error()), accessDenied) -} - -// remove SMB mapping -func removeSMBMapping(remotepath string) (string, error) { - cmd := exec.Command("powershell", "/c", `Remove-SmbGlobalMapping -RemotePath $Env:smbremotepath -Force`) - cmd.Env = append(os.Environ(), fmt.Sprintf("smbremotepath=%s", remotepath)) - output, err := cmd.CombinedOutput() - return string(output), err -} - -// Unmount unmounts the target. -func (mounter *Mounter) Unmount(target string) error { - klog.V(4).Infof("Unmount target (%q)", target) - target = NormalizeWindowsPath(target) - if output, err := exec.Command("cmd", "/c", "rmdir", target).CombinedOutput(); err != nil { - klog.Errorf("rmdir failed: %v, output: %q", err, string(output)) - return err - } - return nil -} - -// List returns a list of all mounted filesystems. todo -func (mounter *Mounter) List() ([]MountPoint, error) { - return []MountPoint{}, nil -} - -// IsLikelyNotMountPoint determines if a directory is not a mountpoint. -func (mounter *Mounter) IsLikelyNotMountPoint(file string) (bool, error) { - stat, err := os.Lstat(file) - if err != nil { - return true, err - } - - if stat.Mode()&os.ModeSymlink != 0 { - return false, err - } - return true, nil -} - -// canSafelySkipMountPointCheck always returns false on Windows -func (mounter *Mounter) canSafelySkipMountPointCheck() bool { - return false -} - -// IsMountPoint: determines if a directory is a mountpoint. -func (mounter *Mounter) IsMountPoint(file string) (bool, error) { - isNotMnt, err := mounter.IsLikelyNotMountPoint(file) - if err != nil { - return false, err - } - return !isNotMnt, nil -} - -// GetMountRefs : empty implementation here since there is no place to query all mount points on Windows -func (mounter *Mounter) GetMountRefs(pathname string) ([]string, error) { - windowsPath := NormalizeWindowsPath(pathname) - pathExists, pathErr := PathExists(windowsPath) - if !pathExists { - return []string{}, nil - } else if IsCorruptedMnt(pathErr) { - klog.Warningf("GetMountRefs found corrupted mount at %s, treating as unmounted path", windowsPath) - return []string{}, nil - } else if pathErr != nil { - return nil, fmt.Errorf("error checking path %s: %v", windowsPath, pathErr) - } - return []string{pathname}, nil -} - -func (mounter *SafeFormatAndMount) formatAndMountSensitive(source string, target string, fstype string, options []string, sensitiveOptions []string) error { - // Try to mount the disk - klog.V(4).Infof("Attempting to formatAndMount disk: %s %s %s", fstype, source, target) - - if err := ValidateDiskNumber(source); err != nil { - klog.Errorf("diskMount: formatAndMount failed, err: %v", err) - return err - } - - if len(fstype) == 0 { - // Use 'NTFS' as the default - fstype = "NTFS" - } - - // format disk if it is unformatted(raw) - cmd := fmt.Sprintf("Get-Disk -Number %s | Where partitionstyle -eq 'raw' | Initialize-Disk -PartitionStyle GPT -PassThru"+ - " | New-Partition -UseMaximumSize | Format-Volume -FileSystem %s -Confirm:$false", source, fstype) - if output, err := mounter.Exec.Command("powershell", "/c", cmd).CombinedOutput(); err != nil { - return fmt.Errorf("diskMount: format disk failed, error: %v, output: %q", err, string(output)) - } - klog.V(4).Infof("diskMount: Disk successfully formatted, disk: %q, fstype: %q", source, fstype) - - volumeIds, err := listVolumesOnDisk(source) - if err != nil { - return err - } - driverPath := volumeIds[0] - target = NormalizeWindowsPath(target) - output, err := mounter.Exec.Command("cmd", "/c", "mklink", "/D", target, driverPath).CombinedOutput() - if err != nil { - klog.Errorf("mklink(%s, %s) failed: %v, output: %q", target, driverPath, err, string(output)) - return err - } - klog.V(2).Infof("formatAndMount disk(%s) fstype(%s) on(%s) with output(%s) successfully", driverPath, fstype, target, string(output)) - return nil -} - -// ListVolumesOnDisk - returns back list of volumes(volumeIDs) in the disk (requested in diskID). -func listVolumesOnDisk(diskID string) (volumeIDs []string, err error) { - cmd := fmt.Sprintf("(Get-Disk -DeviceId %s | Get-Partition | Get-Volume).UniqueId", diskID) - output, err := exec.Command("powershell", "/c", cmd).CombinedOutput() - klog.V(4).Infof("listVolumesOnDisk id from %s: %s", diskID, string(output)) - if err != nil { - return []string{}, fmt.Errorf("error list volumes on disk. cmd: %s, output: %s, error: %v", cmd, string(output), err) - } - - volumeIds := strings.Split(strings.TrimSpace(string(output)), "\r\n") - return volumeIds, nil -} - -// getAllParentLinks walks all symbolic links and return all the parent targets recursively -func getAllParentLinks(path string) ([]string, error) { - const maxIter = 255 - links := []string{} - for { - links = append(links, path) - if len(links) > maxIter { - return links, fmt.Errorf("unexpected length of parent links: %v", links) - } - - fi, err := os.Lstat(path) - if err != nil { - return links, fmt.Errorf("Lstat: %v", err) - } - if fi.Mode()&os.ModeSymlink == 0 { - break - } - - path, err = os.Readlink(path) - if err != nil { - return links, fmt.Errorf("Readlink error: %v", err) - } - } - - return links, nil -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go b/ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go deleted file mode 100644 index 929d061e52..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/resizefs_linux.go +++ /dev/null @@ -1,266 +0,0 @@ -//go:build linux -// +build linux - -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "fmt" - "strconv" - "strings" - - "k8s.io/klog/v2" - utilexec "k8s.io/utils/exec" -) - -// ResizeFs Provides support for resizing file systems -type ResizeFs struct { - exec utilexec.Interface -} - -// NewResizeFs returns new instance of resizer -func NewResizeFs(exec utilexec.Interface) *ResizeFs { - return &ResizeFs{exec: exec} -} - -// Resize perform resize of file system -func (resizefs *ResizeFs) Resize(devicePath string, deviceMountPath string) (bool, error) { - format, err := getDiskFormat(resizefs.exec, devicePath) - - if err != nil { - formatErr := fmt.Errorf("ResizeFS.Resize - error checking format for device %s: %v", devicePath, err) - return false, formatErr - } - - // If disk has no format, there is no need to resize the disk because mkfs.* - // by default will use whole disk anyways. - if format == "" { - return false, nil - } - - klog.V(3).Infof("ResizeFS.Resize - Expanding mounted volume %s", devicePath) - switch format { - case "ext3", "ext4": - return resizefs.extResize(devicePath) - case "xfs": - return resizefs.xfsResize(deviceMountPath) - case "btrfs": - return resizefs.btrfsResize(deviceMountPath) - } - return false, fmt.Errorf("ResizeFS.Resize - resize of format %s is not supported for device %s mounted at %s", format, devicePath, deviceMountPath) -} - -func (resizefs *ResizeFs) extResize(devicePath string) (bool, error) { - output, err := resizefs.exec.Command("resize2fs", devicePath).CombinedOutput() - if err == nil { - klog.V(2).Infof("Device %s resized successfully", devicePath) - return true, nil - } - - resizeError := fmt.Errorf("resize of device %s failed: %v. resize2fs output: %s", devicePath, err, string(output)) - return false, resizeError - -} - -func (resizefs *ResizeFs) xfsResize(deviceMountPath string) (bool, error) { - args := []string{"-d", deviceMountPath} - output, err := resizefs.exec.Command("xfs_growfs", args...).CombinedOutput() - - if err == nil { - klog.V(2).Infof("Device %s resized successfully", deviceMountPath) - return true, nil - } - - resizeError := fmt.Errorf("resize of device %s failed: %v. xfs_growfs output: %s", deviceMountPath, err, string(output)) - return false, resizeError -} - -func (resizefs *ResizeFs) btrfsResize(deviceMountPath string) (bool, error) { - args := []string{"filesystem", "resize", "max", deviceMountPath} - output, err := resizefs.exec.Command("btrfs", args...).CombinedOutput() - - if err == nil { - klog.V(2).Infof("Device %s resized successfully", deviceMountPath) - return true, nil - } - - resizeError := fmt.Errorf("resize of device %s failed: %v. btrfs output: %s", deviceMountPath, err, string(output)) - return false, resizeError -} - -func (resizefs *ResizeFs) NeedResize(devicePath string, deviceMountPath string) (bool, error) { - deviceSize, err := resizefs.getDeviceSize(devicePath) - if err != nil { - return false, err - } - var fsSize, blockSize uint64 - format, err := getDiskFormat(resizefs.exec, devicePath) - if err != nil { - formatErr := fmt.Errorf("ResizeFS.Resize - error checking format for device %s: %v", devicePath, err) - return false, formatErr - } - - // If disk has no format, there is no need to resize the disk because mkfs.* - // by default will use whole disk anyways. - if format == "" { - return false, nil - } - - klog.V(3).Infof("ResizeFs.needResize - checking mounted volume %s", devicePath) - switch format { - case "ext3", "ext4": - blockSize, fsSize, err = resizefs.getExtSize(devicePath) - klog.V(5).Infof("Ext size: filesystem size=%d, block size=%d", fsSize, blockSize) - case "xfs": - blockSize, fsSize, err = resizefs.getXFSSize(deviceMountPath) - klog.V(5).Infof("Xfs size: filesystem size=%d, block size=%d, err=%v", fsSize, blockSize, err) - case "btrfs": - blockSize, fsSize, err = resizefs.getBtrfsSize(devicePath) - klog.V(5).Infof("Btrfs size: filesystem size=%d, block size=%d, err=%v", fsSize, blockSize, err) - default: - klog.Errorf("Not able to parse given filesystem info. fsType: %s, will not resize", format) - return false, fmt.Errorf("Could not parse fs info on given filesystem format: %s. Supported fs types are: xfs, ext3, ext4", format) - } - if err != nil { - return false, err - } - // Tolerate one block difference, just in case of rounding errors somewhere. - klog.V(5).Infof("Volume %s: device size=%d, filesystem size=%d, block size=%d", devicePath, deviceSize, fsSize, blockSize) - if deviceSize <= fsSize+blockSize { - return false, nil - } - return true, nil -} -func (resizefs *ResizeFs) getDeviceSize(devicePath string) (uint64, error) { - output, err := resizefs.exec.Command("blockdev", "--getsize64", devicePath).CombinedOutput() - outStr := strings.TrimSpace(string(output)) - if err != nil { - return 0, fmt.Errorf("failed to read size of device %s: %s: %s", devicePath, err, outStr) - } - size, err := strconv.ParseUint(outStr, 10, 64) - if err != nil { - return 0, fmt.Errorf("failed to parse size of device %s %s: %s", devicePath, outStr, err) - } - return size, nil -} - -func (resizefs *ResizeFs) getExtSize(devicePath string) (uint64, uint64, error) { - output, err := resizefs.exec.Command("dumpe2fs", "-h", devicePath).CombinedOutput() - if err != nil { - return 0, 0, fmt.Errorf("failed to read size of filesystem on %s: %s: %s", devicePath, err, string(output)) - } - - blockSize, blockCount, _ := resizefs.parseFsInfoOutput(string(output), ":", "block size", "block count") - - if blockSize == 0 { - return 0, 0, fmt.Errorf("could not find block size of device %s", devicePath) - } - if blockCount == 0 { - return 0, 0, fmt.Errorf("could not find block count of device %s", devicePath) - } - return blockSize, blockSize * blockCount, nil -} - -func (resizefs *ResizeFs) getXFSSize(devicePath string) (uint64, uint64, error) { - output, err := resizefs.exec.Command("xfs_io", "-c", "statfs", devicePath).CombinedOutput() - if err != nil { - return 0, 0, fmt.Errorf("failed to read size of filesystem on %s: %s: %s", devicePath, err, string(output)) - } - - blockSize, blockCount, _ := resizefs.parseFsInfoOutput(string(output), "=", "geom.bsize", "geom.datablocks") - - if blockSize == 0 { - return 0, 0, fmt.Errorf("could not find block size of device %s", devicePath) - } - if blockCount == 0 { - return 0, 0, fmt.Errorf("could not find block count of device %s", devicePath) - } - return blockSize, blockSize * blockCount, nil -} - -func (resizefs *ResizeFs) getBtrfsSize(devicePath string) (uint64, uint64, error) { - output, err := resizefs.exec.Command("btrfs", "inspect-internal", "dump-super", "-f", devicePath).CombinedOutput() - if err != nil { - return 0, 0, fmt.Errorf("failed to read size of filesystem on %s: %s: %s", devicePath, err, string(output)) - } - - blockSize, totalBytes, _ := resizefs.parseBtrfsInfoOutput(string(output), "sectorsize", "total_bytes") - - if blockSize == 0 { - return 0, 0, fmt.Errorf("could not find block size of device %s", devicePath) - } - if totalBytes == 0 { - return 0, 0, fmt.Errorf("could not find total size of device %s", devicePath) - } - return blockSize, totalBytes, nil -} - -func (resizefs *ResizeFs) parseBtrfsInfoOutput(cmdOutput string, blockSizeKey string, totalBytesKey string) (uint64, uint64, error) { - lines := strings.Split(cmdOutput, "\n") - var blockSize, blockCount uint64 - var err error - - for _, line := range lines { - tokens := strings.Fields(line) - if len(tokens) != 2 { - continue - } - key, value := strings.ToLower(strings.TrimSpace(tokens[0])), strings.ToLower(strings.TrimSpace(tokens[1])) - - if key == blockSizeKey { - blockSize, err = strconv.ParseUint(value, 10, 64) - if err != nil { - return 0, 0, fmt.Errorf("failed to parse block size %s: %s", value, err) - } - } - if key == totalBytesKey { - blockCount, err = strconv.ParseUint(value, 10, 64) - if err != nil { - return 0, 0, fmt.Errorf("failed to parse total size %s: %s", value, err) - } - } - } - return blockSize, blockCount, err -} - -func (resizefs *ResizeFs) parseFsInfoOutput(cmdOutput string, spliter string, blockSizeKey string, blockCountKey string) (uint64, uint64, error) { - lines := strings.Split(cmdOutput, "\n") - var blockSize, blockCount uint64 - var err error - - for _, line := range lines { - tokens := strings.Split(line, spliter) - if len(tokens) != 2 { - continue - } - key, value := strings.ToLower(strings.TrimSpace(tokens[0])), strings.ToLower(strings.TrimSpace(tokens[1])) - if key == blockSizeKey { - blockSize, err = strconv.ParseUint(value, 10, 64) - if err != nil { - return 0, 0, fmt.Errorf("failed to parse block size %s: %s", value, err) - } - } - if key == blockCountKey { - blockCount, err = strconv.ParseUint(value, 10, 64) - if err != nil { - return 0, 0, fmt.Errorf("failed to parse block count %s: %s", value, err) - } - } - } - return blockSize, blockCount, err -} diff --git a/ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go b/ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go deleted file mode 100644 index 88b8b2410b..0000000000 --- a/ecs-agent/vendor/k8s.io/mount-utils/resizefs_unsupported.go +++ /dev/null @@ -1,46 +0,0 @@ -//go:build !linux -// +build !linux - -/* -Copyright 2021 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package mount - -import ( - "fmt" - - utilexec "k8s.io/utils/exec" -) - -// ResizeFs Provides support for resizing file systems -type ResizeFs struct { - exec utilexec.Interface -} - -// NewResizeFs returns new instance of resizer -func NewResizeFs(exec utilexec.Interface) *ResizeFs { - return &ResizeFs{exec: exec} -} - -// Resize perform resize of file system -func (resizefs *ResizeFs) Resize(devicePath string, deviceMountPath string) (bool, error) { - return false, fmt.Errorf("Resize is not supported for this build") -} - -// NeedResize check whether mounted volume needs resize -func (resizefs *ResizeFs) NeedResize(devicePath string, deviceMountPath string) (bool, error) { - return false, fmt.Errorf("NeedResize is not supported for this build") -} diff --git a/ecs-agent/vendor/k8s.io/utils/LICENSE b/ecs-agent/vendor/k8s.io/utils/LICENSE deleted file mode 100644 index d645695673..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/ecs-agent/vendor/k8s.io/utils/exec/README.md b/ecs-agent/vendor/k8s.io/utils/exec/README.md deleted file mode 100644 index 7944e8dd3b..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/exec/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Exec - -This package provides an interface for `os/exec`. It makes it easier to mock -and replace in tests, especially with the [FakeExec](testing/fake_exec.go) -struct. diff --git a/ecs-agent/vendor/k8s.io/utils/exec/doc.go b/ecs-agent/vendor/k8s.io/utils/exec/doc.go deleted file mode 100644 index cbb44bdb5d..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/exec/doc.go +++ /dev/null @@ -1,18 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -// Package exec provides an injectable interface and implementations for running commands. -package exec // import "k8s.io/utils/exec" diff --git a/ecs-agent/vendor/k8s.io/utils/exec/exec.go b/ecs-agent/vendor/k8s.io/utils/exec/exec.go deleted file mode 100644 index d9c91e3ca3..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/exec/exec.go +++ /dev/null @@ -1,256 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package exec - -import ( - "context" - "io" - "io/fs" - osexec "os/exec" - "syscall" - "time" -) - -// ErrExecutableNotFound is returned if the executable is not found. -var ErrExecutableNotFound = osexec.ErrNotFound - -// Interface is an interface that presents a subset of the os/exec API. Use this -// when you want to inject fakeable/mockable exec behavior. -type Interface interface { - // Command returns a Cmd instance which can be used to run a single command. - // This follows the pattern of package os/exec. - Command(cmd string, args ...string) Cmd - - // CommandContext returns a Cmd instance which can be used to run a single command. - // - // The provided context is used to kill the process if the context becomes done - // before the command completes on its own. For example, a timeout can be set in - // the context. - CommandContext(ctx context.Context, cmd string, args ...string) Cmd - - // LookPath wraps os/exec.LookPath - LookPath(file string) (string, error) -} - -// Cmd is an interface that presents an API that is very similar to Cmd from os/exec. -// As more functionality is needed, this can grow. Since Cmd is a struct, we will have -// to replace fields with get/set method pairs. -type Cmd interface { - // Run runs the command to the completion. - Run() error - // CombinedOutput runs the command and returns its combined standard output - // and standard error. This follows the pattern of package os/exec. - CombinedOutput() ([]byte, error) - // Output runs the command and returns standard output, but not standard err - Output() ([]byte, error) - SetDir(dir string) - SetStdin(in io.Reader) - SetStdout(out io.Writer) - SetStderr(out io.Writer) - SetEnv(env []string) - - // StdoutPipe and StderrPipe for getting the process' Stdout and Stderr as - // Readers - StdoutPipe() (io.ReadCloser, error) - StderrPipe() (io.ReadCloser, error) - - // Start and Wait are for running a process non-blocking - Start() error - Wait() error - - // Stops the command by sending SIGTERM. It is not guaranteed the - // process will stop before this function returns. If the process is not - // responding, an internal timer function will send a SIGKILL to force - // terminate after 10 seconds. - Stop() -} - -// ExitError is an interface that presents an API similar to os.ProcessState, which is -// what ExitError from os/exec is. This is designed to make testing a bit easier and -// probably loses some of the cross-platform properties of the underlying library. -type ExitError interface { - String() string - Error() string - Exited() bool - ExitStatus() int -} - -// Implements Interface in terms of really exec()ing. -type executor struct{} - -// New returns a new Interface which will os/exec to run commands. -func New() Interface { - return &executor{} -} - -// Command is part of the Interface interface. -func (executor *executor) Command(cmd string, args ...string) Cmd { - return (*cmdWrapper)(maskErrDotCmd(osexec.Command(cmd, args...))) -} - -// CommandContext is part of the Interface interface. -func (executor *executor) CommandContext(ctx context.Context, cmd string, args ...string) Cmd { - return (*cmdWrapper)(maskErrDotCmd(osexec.CommandContext(ctx, cmd, args...))) -} - -// LookPath is part of the Interface interface -func (executor *executor) LookPath(file string) (string, error) { - path, err := osexec.LookPath(file) - return path, handleError(maskErrDot(err)) -} - -// Wraps exec.Cmd so we can capture errors. -type cmdWrapper osexec.Cmd - -var _ Cmd = &cmdWrapper{} - -func (cmd *cmdWrapper) SetDir(dir string) { - cmd.Dir = dir -} - -func (cmd *cmdWrapper) SetStdin(in io.Reader) { - cmd.Stdin = in -} - -func (cmd *cmdWrapper) SetStdout(out io.Writer) { - cmd.Stdout = out -} - -func (cmd *cmdWrapper) SetStderr(out io.Writer) { - cmd.Stderr = out -} - -func (cmd *cmdWrapper) SetEnv(env []string) { - cmd.Env = env -} - -func (cmd *cmdWrapper) StdoutPipe() (io.ReadCloser, error) { - r, err := (*osexec.Cmd)(cmd).StdoutPipe() - return r, handleError(err) -} - -func (cmd *cmdWrapper) StderrPipe() (io.ReadCloser, error) { - r, err := (*osexec.Cmd)(cmd).StderrPipe() - return r, handleError(err) -} - -func (cmd *cmdWrapper) Start() error { - err := (*osexec.Cmd)(cmd).Start() - return handleError(err) -} - -func (cmd *cmdWrapper) Wait() error { - err := (*osexec.Cmd)(cmd).Wait() - return handleError(err) -} - -// Run is part of the Cmd interface. -func (cmd *cmdWrapper) Run() error { - err := (*osexec.Cmd)(cmd).Run() - return handleError(err) -} - -// CombinedOutput is part of the Cmd interface. -func (cmd *cmdWrapper) CombinedOutput() ([]byte, error) { - out, err := (*osexec.Cmd)(cmd).CombinedOutput() - return out, handleError(err) -} - -func (cmd *cmdWrapper) Output() ([]byte, error) { - out, err := (*osexec.Cmd)(cmd).Output() - return out, handleError(err) -} - -// Stop is part of the Cmd interface. -func (cmd *cmdWrapper) Stop() { - c := (*osexec.Cmd)(cmd) - - if c.Process == nil { - return - } - - c.Process.Signal(syscall.SIGTERM) - - time.AfterFunc(10*time.Second, func() { - if !c.ProcessState.Exited() { - c.Process.Signal(syscall.SIGKILL) - } - }) -} - -func handleError(err error) error { - if err == nil { - return nil - } - - switch e := err.(type) { - case *osexec.ExitError: - return &ExitErrorWrapper{e} - case *fs.PathError: - return ErrExecutableNotFound - case *osexec.Error: - if e.Err == osexec.ErrNotFound { - return ErrExecutableNotFound - } - } - - return err -} - -// ExitErrorWrapper is an implementation of ExitError in terms of os/exec ExitError. -// Note: standard exec.ExitError is type *os.ProcessState, which already implements Exited(). -type ExitErrorWrapper struct { - *osexec.ExitError -} - -var _ ExitError = &ExitErrorWrapper{} - -// ExitStatus is part of the ExitError interface. -func (eew ExitErrorWrapper) ExitStatus() int { - ws, ok := eew.Sys().(syscall.WaitStatus) - if !ok { - panic("can't call ExitStatus() on a non-WaitStatus exitErrorWrapper") - } - return ws.ExitStatus() -} - -// CodeExitError is an implementation of ExitError consisting of an error object -// and an exit code (the upper bits of os.exec.ExitStatus). -type CodeExitError struct { - Err error - Code int -} - -var _ ExitError = CodeExitError{} - -func (e CodeExitError) Error() string { - return e.Err.Error() -} - -func (e CodeExitError) String() string { - return e.Err.Error() -} - -// Exited is to check if the process has finished -func (e CodeExitError) Exited() bool { - return true -} - -// ExitStatus is for checking the error code -func (e CodeExitError) ExitStatus() int { - return e.Code -} diff --git a/ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go b/ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go deleted file mode 100644 index acf45f1cd5..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/exec/fixup_go118.go +++ /dev/null @@ -1,32 +0,0 @@ -//go:build !go1.19 -// +build !go1.19 - -/* -Copyright 2022 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package exec - -import ( - osexec "os/exec" -) - -func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd { - return cmd -} - -func maskErrDot(err error) error { - return err -} diff --git a/ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go b/ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go deleted file mode 100644 index 55874c9297..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/exec/fixup_go119.go +++ /dev/null @@ -1,40 +0,0 @@ -//go:build go1.19 -// +build go1.19 - -/* -Copyright 2022 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package exec - -import ( - "errors" - osexec "os/exec" -) - -// maskErrDotCmd reverts the behavior of osexec.Cmd to what it was before go1.19 -// specifically set the Err field to nil (LookPath returns a new error when the file -// is resolved to the current directory. -func maskErrDotCmd(cmd *osexec.Cmd) *osexec.Cmd { - cmd.Err = maskErrDot(cmd.Err) - return cmd -} - -func maskErrDot(err error) error { - if err != nil && errors.Is(err, osexec.ErrDot) { - return nil - } - return err -} diff --git a/ecs-agent/vendor/k8s.io/utils/io/README.md b/ecs-agent/vendor/k8s.io/utils/io/README.md deleted file mode 100644 index aa4cc41044..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/io/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# IO - -This package provides interfaces for working with file IO. Currently it -provides functionality for consistently reading a file. diff --git a/ecs-agent/vendor/k8s.io/utils/io/read.go b/ecs-agent/vendor/k8s.io/utils/io/read.go deleted file mode 100644 index f0af3c8ec8..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/io/read.go +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright 2017 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package io - -import ( - "bytes" - "errors" - "fmt" - "io" - "io/ioutil" -) - -// ErrLimitReached means that the read limit is reached. -var ErrLimitReached = errors.New("the read limit is reached") - -// ConsistentRead repeatedly reads a file until it gets the same content twice. -// This is useful when reading files in /proc that are larger than page size -// and kernel may modify them between individual read() syscalls. -// It returns InconsistentReadError when it cannot get a consistent read in -// given nr. of attempts. Caller should retry, kernel is probably under heavy -// mount/unmount load. -func ConsistentRead(filename string, attempts int) ([]byte, error) { - return consistentReadSync(filename, attempts, nil) -} - -// consistentReadSync is the main functionality of ConsistentRead but -// introduces a sync callback that can be used by the tests to mutate the file -// from which the test data is being read -func consistentReadSync(filename string, attempts int, sync func(int)) ([]byte, error) { - oldContent, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - for i := 0; i < attempts; i++ { - if sync != nil { - sync(i) - } - newContent, err := ioutil.ReadFile(filename) - if err != nil { - return nil, err - } - if bytes.Compare(oldContent, newContent) == 0 { - return newContent, nil - } - // Files are different, continue reading - oldContent = newContent - } - return nil, InconsistentReadError{filename, attempts} -} - -// InconsistentReadError is returned from ConsistentRead when it cannot get -// a consistent read in given nr. of attempts. Caller should retry, kernel is -// probably under heavy mount/unmount load. -type InconsistentReadError struct { - filename string - attempts int -} - -func (i InconsistentReadError) Error() string { - return fmt.Sprintf("could not get consistent content of %s after %d attempts", i.filename, i.attempts) -} - -var _ error = InconsistentReadError{} - -func IsInconsistentReadError(err error) bool { - if _, ok := err.(InconsistentReadError); ok { - return true - } - return false -} - -// ReadAtMost reads up to `limit` bytes from `r`, and reports an error -// when `limit` bytes are read. -func ReadAtMost(r io.Reader, limit int64) ([]byte, error) { - limitedReader := &io.LimitedReader{R: r, N: limit} - data, err := ioutil.ReadAll(limitedReader) - if err != nil { - return data, err - } - if limitedReader.N <= 0 { - return data, ErrLimitReached - } - return data, nil -} diff --git a/ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go b/ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go deleted file mode 100644 index 4ddb00867f..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/keymutex/hashed.go +++ /dev/null @@ -1,58 +0,0 @@ -/* -Copyright 2018 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package keymutex - -import ( - "hash/fnv" - "runtime" - "sync" -) - -// NewHashed returns a new instance of KeyMutex which hashes arbitrary keys to -// a fixed set of locks. `n` specifies number of locks, if n <= 0, we use -// number of cpus. -// Note that because it uses fixed set of locks, different keys may share same -// lock, so it's possible to wait on same lock. -func NewHashed(n int) KeyMutex { - if n <= 0 { - n = runtime.NumCPU() - } - return &hashedKeyMutex{ - mutexes: make([]sync.Mutex, n), - } -} - -type hashedKeyMutex struct { - mutexes []sync.Mutex -} - -// Acquires a lock associated with the specified ID. -func (km *hashedKeyMutex) LockKey(id string) { - km.mutexes[km.hash(id)%uint32(len(km.mutexes))].Lock() -} - -// Releases the lock associated with the specified ID. -func (km *hashedKeyMutex) UnlockKey(id string) error { - km.mutexes[km.hash(id)%uint32(len(km.mutexes))].Unlock() - return nil -} - -func (km *hashedKeyMutex) hash(id string) uint32 { - h := fnv.New32a() - h.Write([]byte(id)) - return h.Sum32() -} diff --git a/ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go b/ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go deleted file mode 100644 index 89dc022397..0000000000 --- a/ecs-agent/vendor/k8s.io/utils/keymutex/keymutex.go +++ /dev/null @@ -1,27 +0,0 @@ -/* -Copyright 2015 The Kubernetes Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ - -package keymutex - -// KeyMutex is a thread-safe interface for acquiring locks on arbitrary strings. -type KeyMutex interface { - // Acquires a lock associated with the specified ID, creates the lock if one doesn't already exist. - LockKey(id string) - - // Releases the lock associated with the specified ID. - // Returns an error if the specified ID doesn't exist. - UnlockKey(id string) error -} diff --git a/ecs-agent/vendor/modules.txt b/ecs-agent/vendor/modules.txt index aa799b0241..27162526b5 100644 --- a/ecs-agent/vendor/modules.txt +++ b/ecs-agent/vendor/modules.txt @@ -1,10 +1,3 @@ -# github.com/Microsoft/go-winio v0.6.1 -## explicit; go 1.17 -github.com/Microsoft/go-winio -github.com/Microsoft/go-winio/internal/fs -github.com/Microsoft/go-winio/internal/socket -github.com/Microsoft/go-winio/internal/stringbuffer -github.com/Microsoft/go-winio/pkg/guid # github.com/aws/aws-sdk-go v1.36.0 ## explicit; go 1.11 github.com/aws/aws-sdk-go/aws @@ -97,22 +90,9 @@ github.com/gorilla/websocket # github.com/jmespath/go-jmespath v0.4.0 ## explicit; go 1.14 github.com/jmespath/go-jmespath -# github.com/kubernetes-csi/csi-proxy/client v1.1.2 -## explicit; go 1.16 -github.com/kubernetes-csi/csi-proxy/client -github.com/kubernetes-csi/csi-proxy/client/api/disk/v1 -github.com/kubernetes-csi/csi-proxy/client/api/filesystem/v1 -github.com/kubernetes-csi/csi-proxy/client/api/volume/v1 -github.com/kubernetes-csi/csi-proxy/client/apiversion -github.com/kubernetes-csi/csi-proxy/client/groups/disk/v1 -github.com/kubernetes-csi/csi-proxy/client/groups/filesystem/v1 -github.com/kubernetes-csi/csi-proxy/client/groups/volume/v1 # github.com/matttproud/golang_protobuf_extensions v1.0.4 ## explicit; go 1.9 github.com/matttproud/golang_protobuf_extensions/pbutil -# github.com/moby/sys/mountinfo v0.6.2 -## explicit; go 1.16 -github.com/moby/sys/mountinfo # github.com/patrickmn/go-cache v2.1.0+incompatible ## explicit github.com/patrickmn/go-cache @@ -171,26 +151,17 @@ golang.org/x/text/unicode/norm golang.org/x/time/rate # golang.org/x/tools v0.6.0 ## explicit; go 1.18 -golang.org/x/tools/cmd/stringer golang.org/x/tools/go/ast/astutil -golang.org/x/tools/go/gcexportdata -golang.org/x/tools/go/internal/packagesdriver -golang.org/x/tools/go/packages golang.org/x/tools/imports golang.org/x/tools/internal/event golang.org/x/tools/internal/event/core golang.org/x/tools/internal/event/keys golang.org/x/tools/internal/event/label golang.org/x/tools/internal/fastwalk -golang.org/x/tools/internal/gcimporter golang.org/x/tools/internal/gocommand golang.org/x/tools/internal/gopathwalk golang.org/x/tools/internal/imports -golang.org/x/tools/internal/packagesinternal -golang.org/x/tools/internal/pkgbits -golang.org/x/tools/internal/tokeninternal golang.org/x/tools/internal/typeparams -golang.org/x/tools/internal/typesinternal # google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 ## explicit; go 1.19 google.golang.org/genproto/googleapis/rpc/status @@ -296,11 +267,3 @@ k8s.io/klog/v2/internal/clock k8s.io/klog/v2/internal/dbg k8s.io/klog/v2/internal/serialize k8s.io/klog/v2/internal/severity -# k8s.io/mount-utils v0.26.0-alpha.0 -## explicit; go 1.19 -k8s.io/mount-utils -# k8s.io/utils v0.0.0-20230505201702-9f6742963106 -## explicit; go 1.18 -k8s.io/utils/exec -k8s.io/utils/io -k8s.io/utils/keymutex From 3ea83ca11840fc7127a7c4c162c944c0cd9a3bd0 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Wed, 28 Jun 2023 22:15:01 +0000 Subject: [PATCH 4/7] Update go.mod for both agent and ecs-agent --- agent/go.mod | 8 +- agent/go.sum | 17 +- .../golang/protobuf/jsonpb/decode.go | 8 +- agent/vendor/golang.org/x/time/AUTHORS | 3 - agent/vendor/golang.org/x/time/CONTRIBUTORS | 3 - agent/vendor/golang.org/x/time/rate/rate.go | 160 +- .../golang.org/x/time/rate/sometimes.go | 67 + agent/vendor/modules.txt | 8 +- ecs-agent/go.mod | 4 +- ecs-agent/go.sum | 8 +- .../vendor/github.com/docker/go-units/size.go | 70 +- .../protobuf/encoding/protojson/doc.go | 2 +- .../encoding/protojson/well_known_types.go | 12 +- .../protobuf/encoding/protowire/wire.go | 8 +- .../protobuf/internal/encoding/json/decode.go | 2 +- .../protobuf/internal/encoding/text/decode.go | 5 +- .../internal/encoding/text/decode_number.go | 43 +- .../protobuf/internal/genid/descriptor_gen.go | 90 +- .../protobuf/internal/impl/convert.go | 1 + .../protobuf/internal/strs/strings_unsafe.go | 2 +- .../protobuf/internal/version/version.go | 4 +- .../google.golang.org/protobuf/proto/doc.go | 9 +- .../google.golang.org/protobuf/proto/equal.go | 172 +- .../reflect/protoreflect/source_gen.go | 14 - .../protobuf/reflect/protoreflect/value.go | 2 +- .../reflect/protoreflect/value_equal.go | 168 -- .../reflect/protoreflect/value_union.go | 4 +- .../reflect/protoregistry/registry.go | 2 +- .../types/descriptorpb/descriptor.pb.go | 1547 ++++++----------- .../protobuf/types/known/anypb/any.pb.go | 135 +- .../types/known/durationpb/duration.pb.go | 63 +- .../types/known/timestamppb/timestamp.pb.go | 61 +- .../types/known/wrapperspb/wrappers.pb.go | 2 +- ecs-agent/vendor/modules.txt | 4 +- 34 files changed, 1125 insertions(+), 1583 deletions(-) delete mode 100644 agent/vendor/golang.org/x/time/AUTHORS delete mode 100644 agent/vendor/golang.org/x/time/CONTRIBUTORS create mode 100644 agent/vendor/golang.org/x/time/rate/sometimes.go delete mode 100644 ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go diff --git a/agent/go.mod b/agent/go.mod index 57ac4c8690..436da2c966 100644 --- a/agent/go.mod +++ b/agent/go.mod @@ -47,7 +47,7 @@ require ( github.com/docker/distribution v2.8.2+incompatible // indirect github.com/godbus/dbus/v5 v5.0.6 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.2 // indirect + github.com/golang/protobuf v1.5.3 // indirect github.com/google/uuid v1.3.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect @@ -65,10 +65,10 @@ require ( github.com/prometheus/procfs v0.6.0 // indirect github.com/sirupsen/logrus v1.8.1 // indirect github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae // indirect - golang.org/x/mod v0.8.0 // indirect + golang.org/x/mod v0.10.0 // indirect golang.org/x/net v0.8.0 // indirect - golang.org/x/text v0.8.0 // indirect - golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e // indirect + golang.org/x/text v0.9.0 // indirect + golang.org/x/time v0.3.0 // indirect google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/agent/go.sum b/agent/go.sum index 8000946512..69c5c018eb 100644 --- a/agent/go.sum +++ b/agent/go.sum @@ -111,7 +111,7 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -143,8 +143,9 @@ github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QD github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -337,8 +338,8 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= -golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk= +golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -411,11 +412,11 @@ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= -golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.9.0 h1:2sjJmO8cDvYveuX97RDLsxlyUxLl+GHoLxBiRdHllBE= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= -golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/agent/vendor/github.com/golang/protobuf/jsonpb/decode.go b/agent/vendor/github.com/golang/protobuf/jsonpb/decode.go index 60e82caa9a..6c16c255ff 100644 --- a/agent/vendor/github.com/golang/protobuf/jsonpb/decode.go +++ b/agent/vendor/github.com/golang/protobuf/jsonpb/decode.go @@ -386,8 +386,14 @@ func (u *Unmarshaler) unmarshalMessage(m protoreflect.Message, in []byte) error } func isSingularWellKnownValue(fd protoreflect.FieldDescriptor) bool { + if fd.Cardinality() == protoreflect.Repeated { + return false + } if md := fd.Message(); md != nil { - return md.FullName() == "google.protobuf.Value" && fd.Cardinality() != protoreflect.Repeated + return md.FullName() == "google.protobuf.Value" + } + if ed := fd.Enum(); ed != nil { + return ed.FullName() == "google.protobuf.NullValue" } return false } diff --git a/agent/vendor/golang.org/x/time/AUTHORS b/agent/vendor/golang.org/x/time/AUTHORS deleted file mode 100644 index 15167cd746..0000000000 --- a/agent/vendor/golang.org/x/time/AUTHORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code refers to The Go Authors for copyright purposes. -# The master list of authors is in the main Go distribution, -# visible at http://tip.golang.org/AUTHORS. diff --git a/agent/vendor/golang.org/x/time/CONTRIBUTORS b/agent/vendor/golang.org/x/time/CONTRIBUTORS deleted file mode 100644 index 1c4577e968..0000000000 --- a/agent/vendor/golang.org/x/time/CONTRIBUTORS +++ /dev/null @@ -1,3 +0,0 @@ -# This source code was written by the Go contributors. -# The master list of contributors is in the main Go distribution, -# visible at http://tip.golang.org/CONTRIBUTORS. diff --git a/agent/vendor/golang.org/x/time/rate/rate.go b/agent/vendor/golang.org/x/time/rate/rate.go index a98fe77827..f0e0cf3cb1 100644 --- a/agent/vendor/golang.org/x/time/rate/rate.go +++ b/agent/vendor/golang.org/x/time/rate/rate.go @@ -80,6 +80,19 @@ func (lim *Limiter) Burst() int { return lim.burst } +// TokensAt returns the number of tokens available at time t. +func (lim *Limiter) TokensAt(t time.Time) float64 { + lim.mu.Lock() + _, tokens := lim.advance(t) // does not mutate lim + lim.mu.Unlock() + return tokens +} + +// Tokens returns the number of tokens available now. +func (lim *Limiter) Tokens() float64 { + return lim.TokensAt(time.Now()) +} + // NewLimiter returns a new Limiter that allows events up to rate r and permits // bursts of at most b tokens. func NewLimiter(r Limit, b int) *Limiter { @@ -89,16 +102,16 @@ func NewLimiter(r Limit, b int) *Limiter { } } -// Allow is shorthand for AllowN(time.Now(), 1). +// Allow reports whether an event may happen now. func (lim *Limiter) Allow() bool { return lim.AllowN(time.Now(), 1) } -// AllowN reports whether n events may happen at time now. +// AllowN reports whether n events may happen at time t. // Use this method if you intend to drop / skip events that exceed the rate limit. // Otherwise use Reserve or Wait. -func (lim *Limiter) AllowN(now time.Time, n int) bool { - return lim.reserveN(now, n, 0).ok +func (lim *Limiter) AllowN(t time.Time, n int) bool { + return lim.reserveN(t, n, 0).ok } // A Reservation holds information about events that are permitted by a Limiter to happen after a delay. @@ -125,17 +138,17 @@ func (r *Reservation) Delay() time.Duration { } // InfDuration is the duration returned by Delay when a Reservation is not OK. -const InfDuration = time.Duration(1<<63 - 1) +const InfDuration = time.Duration(math.MaxInt64) // DelayFrom returns the duration for which the reservation holder must wait // before taking the reserved action. Zero duration means act immediately. // InfDuration means the limiter cannot grant the tokens requested in this // Reservation within the maximum wait time. -func (r *Reservation) DelayFrom(now time.Time) time.Duration { +func (r *Reservation) DelayFrom(t time.Time) time.Duration { if !r.ok { return InfDuration } - delay := r.timeToAct.Sub(now) + delay := r.timeToAct.Sub(t) if delay < 0 { return 0 } @@ -145,13 +158,12 @@ func (r *Reservation) DelayFrom(now time.Time) time.Duration { // Cancel is shorthand for CancelAt(time.Now()). func (r *Reservation) Cancel() { r.CancelAt(time.Now()) - return } // CancelAt indicates that the reservation holder will not perform the reserved action // and reverses the effects of this Reservation on the rate limit as much as possible, // considering that other reservations may have already been made. -func (r *Reservation) CancelAt(now time.Time) { +func (r *Reservation) CancelAt(t time.Time) { if !r.ok { return } @@ -159,7 +171,7 @@ func (r *Reservation) CancelAt(now time.Time) { r.lim.mu.Lock() defer r.lim.mu.Unlock() - if r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(now) { + if r.lim.limit == Inf || r.tokens == 0 || r.timeToAct.Before(t) { return } @@ -171,23 +183,21 @@ func (r *Reservation) CancelAt(now time.Time) { return } // advance time to now - now, _, tokens := r.lim.advance(now) + t, tokens := r.lim.advance(t) // calculate new number of tokens tokens += restoreTokens if burst := float64(r.lim.burst); tokens > burst { tokens = burst } // update state - r.lim.last = now + r.lim.last = t r.lim.tokens = tokens if r.timeToAct == r.lim.lastEvent { prevEvent := r.timeToAct.Add(r.limit.durationFromTokens(float64(-r.tokens))) - if !prevEvent.Before(now) { + if !prevEvent.Before(t) { r.lim.lastEvent = prevEvent } } - - return } // Reserve is shorthand for ReserveN(time.Now(), 1). @@ -199,18 +209,20 @@ func (lim *Limiter) Reserve() *Reservation { // The Limiter takes this Reservation into account when allowing future events. // The returned Reservation’s OK() method returns false if n exceeds the Limiter's burst size. // Usage example: -// r := lim.ReserveN(time.Now(), 1) -// if !r.OK() { -// // Not allowed to act! Did you remember to set lim.burst to be > 0 ? -// return -// } -// time.Sleep(r.Delay()) -// Act() +// +// r := lim.ReserveN(time.Now(), 1) +// if !r.OK() { +// // Not allowed to act! Did you remember to set lim.burst to be > 0 ? +// return +// } +// time.Sleep(r.Delay()) +// Act() +// // Use this method if you wish to wait and slow down in accordance with the rate limit without dropping events. // If you need to respect a deadline or cancel the delay, use Wait instead. // To drop or skip events exceeding rate limit, use Allow instead. -func (lim *Limiter) ReserveN(now time.Time, n int) *Reservation { - r := lim.reserveN(now, n, InfDuration) +func (lim *Limiter) ReserveN(t time.Time, n int) *Reservation { + r := lim.reserveN(t, n, InfDuration) return &r } @@ -224,6 +236,18 @@ func (lim *Limiter) Wait(ctx context.Context) (err error) { // canceled, or the expected wait time exceeds the Context's Deadline. // The burst limit is ignored if the rate limit is Inf. func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) { + // The test code calls lim.wait with a fake timer generator. + // This is the real timer generator. + newTimer := func(d time.Duration) (<-chan time.Time, func() bool, func()) { + timer := time.NewTimer(d) + return timer.C, timer.Stop, func() {} + } + + return lim.wait(ctx, n, time.Now(), newTimer) +} + +// wait is the internal implementation of WaitN. +func (lim *Limiter) wait(ctx context.Context, n int, t time.Time, newTimer func(d time.Duration) (<-chan time.Time, func() bool, func())) error { lim.mu.Lock() burst := lim.burst limit := lim.limit @@ -239,25 +263,25 @@ func (lim *Limiter) WaitN(ctx context.Context, n int) (err error) { default: } // Determine wait limit - now := time.Now() waitLimit := InfDuration if deadline, ok := ctx.Deadline(); ok { - waitLimit = deadline.Sub(now) + waitLimit = deadline.Sub(t) } // Reserve - r := lim.reserveN(now, n, waitLimit) + r := lim.reserveN(t, n, waitLimit) if !r.ok { return fmt.Errorf("rate: Wait(n=%d) would exceed context deadline", n) } // Wait if necessary - delay := r.DelayFrom(now) + delay := r.DelayFrom(t) if delay == 0 { return nil } - t := time.NewTimer(delay) - defer t.Stop() + ch, stop, advance := newTimer(delay) + defer stop() + advance() // only has an effect when testing select { - case <-t.C: + case <-ch: // We can proceed. return nil case <-ctx.Done(): @@ -276,13 +300,13 @@ func (lim *Limiter) SetLimit(newLimit Limit) { // SetLimitAt sets a new Limit for the limiter. The new Limit, and Burst, may be violated // or underutilized by those which reserved (using Reserve or Wait) but did not yet act // before SetLimitAt was called. -func (lim *Limiter) SetLimitAt(now time.Time, newLimit Limit) { +func (lim *Limiter) SetLimitAt(t time.Time, newLimit Limit) { lim.mu.Lock() defer lim.mu.Unlock() - now, _, tokens := lim.advance(now) + t, tokens := lim.advance(t) - lim.last = now + lim.last = t lim.tokens = tokens lim.limit = newLimit } @@ -293,13 +317,13 @@ func (lim *Limiter) SetBurst(newBurst int) { } // SetBurstAt sets a new burst size for the limiter. -func (lim *Limiter) SetBurstAt(now time.Time, newBurst int) { +func (lim *Limiter) SetBurstAt(t time.Time, newBurst int) { lim.mu.Lock() defer lim.mu.Unlock() - now, _, tokens := lim.advance(now) + t, tokens := lim.advance(t) - lim.last = now + lim.last = t lim.tokens = tokens lim.burst = newBurst } @@ -307,20 +331,32 @@ func (lim *Limiter) SetBurstAt(now time.Time, newBurst int) { // reserveN is a helper method for AllowN, ReserveN, and WaitN. // maxFutureReserve specifies the maximum reservation wait duration allowed. // reserveN returns Reservation, not *Reservation, to avoid allocation in AllowN and WaitN. -func (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duration) Reservation { +func (lim *Limiter) reserveN(t time.Time, n int, maxFutureReserve time.Duration) Reservation { lim.mu.Lock() + defer lim.mu.Unlock() if lim.limit == Inf { - lim.mu.Unlock() return Reservation{ ok: true, lim: lim, tokens: n, - timeToAct: now, + timeToAct: t, + } + } else if lim.limit == 0 { + var ok bool + if lim.burst >= n { + ok = true + lim.burst -= n + } + return Reservation{ + ok: ok, + lim: lim, + tokens: lim.burst, + timeToAct: t, } } - now, last, tokens := lim.advance(now) + t, tokens := lim.advance(t) // Calculate the remaining number of tokens resulting from the request. tokens -= float64(n) @@ -342,61 +378,51 @@ func (lim *Limiter) reserveN(now time.Time, n int, maxFutureReserve time.Duratio } if ok { r.tokens = n - r.timeToAct = now.Add(waitDuration) - } + r.timeToAct = t.Add(waitDuration) - // Update state - if ok { - lim.last = now + // Update state + lim.last = t lim.tokens = tokens lim.lastEvent = r.timeToAct - } else { - lim.last = last } - lim.mu.Unlock() return r } // advance calculates and returns an updated state for lim resulting from the passage of time. // lim is not changed. // advance requires that lim.mu is held. -func (lim *Limiter) advance(now time.Time) (newNow time.Time, newLast time.Time, newTokens float64) { +func (lim *Limiter) advance(t time.Time) (newT time.Time, newTokens float64) { last := lim.last - if now.Before(last) { - last = now - } - - // Avoid making delta overflow below when last is very old. - maxElapsed := lim.limit.durationFromTokens(float64(lim.burst) - lim.tokens) - elapsed := now.Sub(last) - if elapsed > maxElapsed { - elapsed = maxElapsed + if t.Before(last) { + last = t } // Calculate the new number of tokens, due to time that passed. + elapsed := t.Sub(last) delta := lim.limit.tokensFromDuration(elapsed) tokens := lim.tokens + delta if burst := float64(lim.burst); tokens > burst { tokens = burst } - - return now, last, tokens + return t, tokens } // durationFromTokens is a unit conversion function from the number of tokens to the duration // of time it takes to accumulate them at a rate of limit tokens per second. func (limit Limit) durationFromTokens(tokens float64) time.Duration { + if limit <= 0 { + return InfDuration + } seconds := tokens / float64(limit) - return time.Nanosecond * time.Duration(1e9*seconds) + return time.Duration(float64(time.Second) * seconds) } // tokensFromDuration is a unit conversion function from a time duration to the number of tokens // which could be accumulated during that duration at a rate of limit tokens per second. func (limit Limit) tokensFromDuration(d time.Duration) float64 { - // Split the integer and fractional parts ourself to minimize rounding errors. - // See golang.org/issues/34861. - sec := float64(d/time.Second) * float64(limit) - nsec := float64(d%time.Second) * float64(limit) - return sec + nsec/1e9 + if limit <= 0 { + return 0 + } + return d.Seconds() * float64(limit) } diff --git a/agent/vendor/golang.org/x/time/rate/sometimes.go b/agent/vendor/golang.org/x/time/rate/sometimes.go new file mode 100644 index 0000000000..6ba99ddb67 --- /dev/null +++ b/agent/vendor/golang.org/x/time/rate/sometimes.go @@ -0,0 +1,67 @@ +// Copyright 2022 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package rate + +import ( + "sync" + "time" +) + +// Sometimes will perform an action occasionally. The First, Every, and +// Interval fields govern the behavior of Do, which performs the action. +// A zero Sometimes value will perform an action exactly once. +// +// # Example: logging with rate limiting +// +// var sometimes = rate.Sometimes{First: 3, Interval: 10*time.Second} +// func Spammy() { +// sometimes.Do(func() { log.Info("here I am!") }) +// } +type Sometimes struct { + First int // if non-zero, the first N calls to Do will run f. + Every int // if non-zero, every Nth call to Do will run f. + Interval time.Duration // if non-zero and Interval has elapsed since f's last run, Do will run f. + + mu sync.Mutex + count int // number of Do calls + last time.Time // last time f was run +} + +// Do runs the function f as allowed by First, Every, and Interval. +// +// The model is a union (not intersection) of filters. The first call to Do +// always runs f. Subsequent calls to Do run f if allowed by First or Every or +// Interval. +// +// A non-zero First:N causes the first N Do(f) calls to run f. +// +// A non-zero Every:M causes every Mth Do(f) call, starting with the first, to +// run f. +// +// A non-zero Interval causes Do(f) to run f if Interval has elapsed since +// Do last ran f. +// +// Specifying multiple filters produces the union of these execution streams. +// For example, specifying both First:N and Every:M causes the first N Do(f) +// calls and every Mth Do(f) call, starting with the first, to run f. See +// Examples for more. +// +// If Do is called multiple times simultaneously, the calls will block and run +// serially. Therefore, Do is intended for lightweight operations. +// +// Because a call to Do may block until f returns, if f causes Do to be called, +// it will deadlock. +func (s *Sometimes) Do(f func()) { + s.mu.Lock() + defer s.mu.Unlock() + if s.count == 0 || + (s.First > 0 && s.count < s.First) || + (s.Every > 0 && s.count%s.Every == 0) || + (s.Interval > 0 && time.Since(s.last) >= s.Interval) { + f() + s.last = time.Now() + } + s.count++ +} diff --git a/agent/vendor/modules.txt b/agent/vendor/modules.txt index 5a1941b795..da4a8af1c3 100644 --- a/agent/vendor/modules.txt +++ b/agent/vendor/modules.txt @@ -225,7 +225,7 @@ github.com/gogo/protobuf/protoc-gen-gogo/descriptor ## explicit; go 1.11 github.com/golang/mock/gomock github.com/golang/mock/mockgen/model -# github.com/golang/protobuf v1.5.2 +# github.com/golang/protobuf v1.5.3 ## explicit; go 1.9 github.com/golang/protobuf/jsonpb github.com/golang/protobuf/proto @@ -325,7 +325,7 @@ github.com/vishvananda/netns # go.etcd.io/bbolt v1.3.5 ## explicit; go 1.12 go.etcd.io/bbolt -# golang.org/x/mod v0.8.0 +# golang.org/x/mod v0.10.0 ## explicit; go 1.17 golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module @@ -351,13 +351,13 @@ golang.org/x/sys/windows golang.org/x/sys/windows/registry golang.org/x/sys/windows/svc golang.org/x/sys/windows/svc/eventlog -# golang.org/x/text v0.8.0 +# golang.org/x/text v0.9.0 ## explicit; go 1.17 golang.org/x/text/secure/bidirule golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm -# golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e +# golang.org/x/time v0.3.0 ## explicit golang.org/x/time/rate # golang.org/x/tools v0.6.0 diff --git a/ecs-agent/go.mod b/ecs-agent/go.mod index 2bfaf08719..a57ee03191 100644 --- a/ecs-agent/go.mod +++ b/ecs-agent/go.mod @@ -27,7 +27,7 @@ require ( require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/docker/go-connections v0.4.0 // indirect - github.com/docker/go-units v0.5.0 // indirect + github.com/docker/go-units v0.4.0 // indirect github.com/go-logr/logr v1.2.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.3 // indirect @@ -41,7 +41,7 @@ require ( golang.org/x/text v0.9.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/genproto v0.0.0-20221118155620-16455021b5e6 // indirect - google.golang.org/protobuf v1.30.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/ecs-agent/go.sum b/ecs-agent/go.sum index 98c1792f88..81dd8fab3a 100644 --- a/ecs-agent/go.sum +++ b/ecs-agent/go.sum @@ -23,8 +23,8 @@ github.com/docker/docker v20.10.24+incompatible h1:Ugvxm7a8+Gz6vqQYQQ2W7GYq5EUPa github.com/docker/docker v20.10.24+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= -github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= @@ -202,8 +202,8 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/ecs-agent/vendor/github.com/docker/go-units/size.go b/ecs-agent/vendor/github.com/docker/go-units/size.go index c245a89513..85f6ab0715 100644 --- a/ecs-agent/vendor/github.com/docker/go-units/size.go +++ b/ecs-agent/vendor/github.com/docker/go-units/size.go @@ -2,6 +2,7 @@ package units import ( "fmt" + "regexp" "strconv" "strings" ) @@ -25,17 +26,16 @@ const ( PiB = 1024 * TiB ) -type unitMap map[byte]int64 +type unitMap map[string]int64 var ( - decimalMap = unitMap{'k': KB, 'm': MB, 'g': GB, 't': TB, 'p': PB} - binaryMap = unitMap{'k': KiB, 'm': MiB, 'g': GiB, 't': TiB, 'p': PiB} + decimalMap = unitMap{"k": KB, "m": MB, "g": GB, "t": TB, "p": PB} + binaryMap = unitMap{"k": KiB, "m": MiB, "g": GiB, "t": TiB, "p": PiB} + sizeRegex = regexp.MustCompile(`^(\d+(\.\d+)*) ?([kKmMgGtTpP])?[iI]?[bB]?$`) ) -var ( - decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} - binaryAbbrs = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} -) +var decimapAbbrs = []string{"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"} +var binaryAbbrs = []string{"B", "KiB", "MiB", "GiB", "TiB", "PiB", "EiB", "ZiB", "YiB"} func getSizeAndUnit(size float64, base float64, _map []string) (float64, string) { i := 0 @@ -89,66 +89,20 @@ func RAMInBytes(size string) (int64, error) { // Parses the human-readable size string into the amount it represents. func parseSize(sizeStr string, uMap unitMap) (int64, error) { - // TODO: rewrite to use strings.Cut if there's a space - // once Go < 1.18 is deprecated. - sep := strings.LastIndexAny(sizeStr, "01234567890. ") - if sep == -1 { - // There should be at least a digit. + matches := sizeRegex.FindStringSubmatch(sizeStr) + if len(matches) != 4 { return -1, fmt.Errorf("invalid size: '%s'", sizeStr) } - var num, sfx string - if sizeStr[sep] != ' ' { - num = sizeStr[:sep+1] - sfx = sizeStr[sep+1:] - } else { - // Omit the space separator. - num = sizeStr[:sep] - sfx = sizeStr[sep+1:] - } - size, err := strconv.ParseFloat(num, 64) + size, err := strconv.ParseFloat(matches[1], 64) if err != nil { return -1, err } - // Backward compatibility: reject negative sizes. - if size < 0 { - return -1, fmt.Errorf("invalid size: '%s'", sizeStr) - } - - if len(sfx) == 0 { - return int64(size), nil - } - // Process the suffix. - - if len(sfx) > 3 { // Too long. - goto badSuffix - } - sfx = strings.ToLower(sfx) - // Trivial case: b suffix. - if sfx[0] == 'b' { - if len(sfx) > 1 { // no extra characters allowed after b. - goto badSuffix - } - return int64(size), nil - } - // A suffix from the map. - if mul, ok := uMap[sfx[0]]; ok { + unitPrefix := strings.ToLower(matches[3]) + if mul, ok := uMap[unitPrefix]; ok { size *= float64(mul) - } else { - goto badSuffix - } - - // The suffix may have extra "b" or "ib" (e.g. KiB or MB). - switch { - case len(sfx) == 2 && sfx[1] != 'b': - goto badSuffix - case len(sfx) == 3 && sfx[1:] != "ib": - goto badSuffix } return int64(size), nil - -badSuffix: - return -1, fmt.Errorf("invalid suffix: '%s'", sfx) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go index 21d5d2cb18..00ea2fecfb 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/doc.go @@ -4,7 +4,7 @@ // Package protojson marshals and unmarshals protocol buffer messages as JSON // format. It follows the guide at -// https://protobuf.dev/programming-guides/proto3#json. +// https://developers.google.com/protocol-buffers/docs/proto3#json. // // This package produces a different output than the standard "encoding/json" // package, which does not operate correctly on protocol buffer messages. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go index 6c37d41744..c85f846948 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go @@ -814,22 +814,16 @@ func (d decoder) unmarshalTimestamp(m protoreflect.Message) error { return d.unexpectedTokenError(tok) } - s := tok.ParsedString() - t, err := time.Parse(time.RFC3339Nano, s) + t, err := time.Parse(time.RFC3339Nano, tok.ParsedString()) if err != nil { return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) } - // Validate seconds. + // Validate seconds. No need to validate nanos because time.Parse would have + // covered that already. secs := t.Unix() if secs < minTimestampSeconds || secs > maxTimestampSeconds { return d.newError(tok.Pos(), "%v value out of range: %v", genid.Timestamp_message_fullname, tok.RawString()) } - // Validate subseconds. - i := strings.LastIndexByte(s, '.') // start of subsecond field - j := strings.LastIndexAny(s, "Z-+") // start of timezone field - if i >= 0 && j >= i && j-i > len(".999999999") { - return d.newError(tok.Pos(), "invalid %v value %v", genid.Timestamp_message_fullname, tok.RawString()) - } fds := m.Descriptor().Fields() fdSeconds := fds.ByNumber(genid.Timestamp_Seconds_field_number) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go index f4b4686cf9..ce57f57ebd 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/encoding/protowire/wire.go @@ -3,7 +3,7 @@ // license that can be found in the LICENSE file. // Package protowire parses and formats the raw wire encoding. -// See https://protobuf.dev/programming-guides/encoding. +// See https://developers.google.com/protocol-buffers/docs/encoding. // // For marshaling and unmarshaling entire protobuf messages, // use the "google.golang.org/protobuf/proto" package instead. @@ -29,8 +29,12 @@ const ( ) // IsValid reports whether the field number is semantically valid. +// +// Note that while numbers within the reserved range are semantically invalid, +// they are syntactically valid in the wire format. +// Implementations may treat records with reserved field numbers as unknown. func (n Number) IsValid() bool { - return MinValidNumber <= n && n <= MaxValidNumber + return MinValidNumber <= n && n < FirstReservedNumber || LastReservedNumber < n && n <= MaxValidNumber } // Type represents the wire type. diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go index d043a6ebe0..b13fd29e81 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/json/decode.go @@ -294,7 +294,7 @@ func (d *Decoder) isValueNext() bool { } // consumeToken constructs a Token for given Kind with raw value derived from -// current d.in and given size, and consumes the given size-length of it. +// current d.in and given size, and consumes the given size-lenght of it. func (d *Decoder) consumeToken(kind Kind, size int) Token { tok := Token{ kind: kind, diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go index 87853e786d..427c62d037 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode.go @@ -412,13 +412,12 @@ func (d *Decoder) parseFieldName() (tok Token, err error) { // Field number. Identify if input is a valid number that is not negative // and is decimal integer within 32-bit range. if num := parseNumber(d.in); num.size > 0 { - str := num.string(d.in) if !num.neg && num.kind == numDec { - if _, err := strconv.ParseInt(str, 10, 32); err == nil { + if _, err := strconv.ParseInt(string(d.in[:num.size]), 10, 32); err == nil { return d.consumeToken(Name, num.size, uint8(FieldNumber)), nil } } - return Token{}, d.newSyntaxError("invalid field number: %s", str) + return Token{}, d.newSyntaxError("invalid field number: %s", d.in[:num.size]) } return Token{}, d.newSyntaxError("invalid field name: %s", errId(d.in)) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go index 45c81f0298..81a5d8c861 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/encoding/text/decode_number.go @@ -15,12 +15,17 @@ func (d *Decoder) parseNumberValue() (Token, bool) { if num.neg { numAttrs |= isNegative } + strSize := num.size + last := num.size - 1 + if num.kind == numFloat && (d.in[last] == 'f' || d.in[last] == 'F') { + strSize = last + } tok := Token{ kind: Scalar, attrs: numberValue, pos: len(d.orig) - len(d.in), raw: d.in[:num.size], - str: num.string(d.in), + str: string(d.in[:strSize]), numAttrs: numAttrs, } d.consume(num.size) @@ -41,27 +46,6 @@ type number struct { kind uint8 neg bool size int - // if neg, this is the length of whitespace and comments between - // the minus sign and the rest fo the number literal - sep int -} - -func (num number) string(data []byte) string { - strSize := num.size - last := num.size - 1 - if num.kind == numFloat && (data[last] == 'f' || data[last] == 'F') { - strSize = last - } - if num.neg && num.sep > 0 { - // strip whitespace/comments between negative sign and the rest - strLen := strSize - num.sep - str := make([]byte, strLen) - str[0] = data[0] - copy(str[1:], data[num.sep+1:strSize]) - return string(str) - } - return string(data[:strSize]) - } // parseNumber constructs a number object from given input. It allows for the @@ -83,22 +67,19 @@ func parseNumber(input []byte) number { } // Optional - - var sep int if s[0] == '-' { neg = true s = s[1:] size++ - // Consume any whitespace or comments between the - // negative sign and the rest of the number - lenBefore := len(s) - s = consume(s, 0) - sep = lenBefore - len(s) - size += sep if len(s) == 0 { return number{} } } + // C++ allows for whitespace and comments in between the negative sign and + // the rest of the number. This logic currently does not but is consistent + // with v1. + switch { case s[0] == '0': if len(s) > 1 { @@ -135,7 +116,7 @@ func parseNumber(input []byte) number { if len(s) > 0 && !isDelim(s[0]) { return number{} } - return number{kind: kind, neg: neg, size: size, sep: sep} + return number{kind: kind, neg: neg, size: size} } } s = s[1:] @@ -207,5 +188,5 @@ func parseNumber(input []byte) number { return number{} } - return number{kind: kind, neg: neg, size: size, sep: sep} + return number{kind: kind, neg: neg, size: size} } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go index 5c0e8f73f4..e3cdf1c205 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go @@ -50,7 +50,6 @@ const ( FileDescriptorProto_Options_field_name protoreflect.Name = "options" FileDescriptorProto_SourceCodeInfo_field_name protoreflect.Name = "source_code_info" FileDescriptorProto_Syntax_field_name protoreflect.Name = "syntax" - FileDescriptorProto_Edition_field_name protoreflect.Name = "edition" FileDescriptorProto_Name_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.name" FileDescriptorProto_Package_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.package" @@ -64,7 +63,6 @@ const ( FileDescriptorProto_Options_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.options" FileDescriptorProto_SourceCodeInfo_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.source_code_info" FileDescriptorProto_Syntax_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.syntax" - FileDescriptorProto_Edition_field_fullname protoreflect.FullName = "google.protobuf.FileDescriptorProto.edition" ) // Field numbers for google.protobuf.FileDescriptorProto. @@ -81,7 +79,6 @@ const ( FileDescriptorProto_Options_field_number protoreflect.FieldNumber = 8 FileDescriptorProto_SourceCodeInfo_field_number protoreflect.FieldNumber = 9 FileDescriptorProto_Syntax_field_number protoreflect.FieldNumber = 12 - FileDescriptorProto_Edition_field_number protoreflect.FieldNumber = 13 ) // Names for google.protobuf.DescriptorProto. @@ -497,29 +494,26 @@ const ( // Field names for google.protobuf.MessageOptions. const ( - MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" - MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" - MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" - MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" - MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + MessageOptions_MessageSetWireFormat_field_name protoreflect.Name = "message_set_wire_format" + MessageOptions_NoStandardDescriptorAccessor_field_name protoreflect.Name = "no_standard_descriptor_accessor" + MessageOptions_Deprecated_field_name protoreflect.Name = "deprecated" + MessageOptions_MapEntry_field_name protoreflect.Name = "map_entry" + MessageOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" - MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" - MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" - MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated_legacy_json_field_conflicts" - MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" + MessageOptions_MessageSetWireFormat_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.message_set_wire_format" + MessageOptions_NoStandardDescriptorAccessor_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.no_standard_descriptor_accessor" + MessageOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.deprecated" + MessageOptions_MapEntry_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.map_entry" + MessageOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.MessageOptions.uninterpreted_option" ) // Field numbers for google.protobuf.MessageOptions. const ( - MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 - MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 - MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 - MessageOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 11 - MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 + MessageOptions_MessageSetWireFormat_field_number protoreflect.FieldNumber = 1 + MessageOptions_NoStandardDescriptorAccessor_field_number protoreflect.FieldNumber = 2 + MessageOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + MessageOptions_MapEntry_field_number protoreflect.FieldNumber = 7 + MessageOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.FieldOptions. @@ -534,24 +528,16 @@ const ( FieldOptions_Packed_field_name protoreflect.Name = "packed" FieldOptions_Jstype_field_name protoreflect.Name = "jstype" FieldOptions_Lazy_field_name protoreflect.Name = "lazy" - FieldOptions_UnverifiedLazy_field_name protoreflect.Name = "unverified_lazy" FieldOptions_Deprecated_field_name protoreflect.Name = "deprecated" FieldOptions_Weak_field_name protoreflect.Name = "weak" - FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" - FieldOptions_Retention_field_name protoreflect.Name = "retention" - FieldOptions_Target_field_name protoreflect.Name = "target" FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" FieldOptions_Packed_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.packed" FieldOptions_Jstype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.jstype" FieldOptions_Lazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.lazy" - FieldOptions_UnverifiedLazy_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.unverified_lazy" FieldOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.deprecated" FieldOptions_Weak_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.weak" - FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" - FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" - FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" ) @@ -561,12 +547,8 @@ const ( FieldOptions_Packed_field_number protoreflect.FieldNumber = 2 FieldOptions_Jstype_field_number protoreflect.FieldNumber = 6 FieldOptions_Lazy_field_number protoreflect.FieldNumber = 5 - FieldOptions_UnverifiedLazy_field_number protoreflect.FieldNumber = 15 FieldOptions_Deprecated_field_number protoreflect.FieldNumber = 3 FieldOptions_Weak_field_number protoreflect.FieldNumber = 10 - FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 - FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 - FieldOptions_Target_field_number protoreflect.FieldNumber = 18 FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) @@ -582,18 +564,6 @@ const ( FieldOptions_JSType_enum_name = "JSType" ) -// Full and short names for google.protobuf.FieldOptions.OptionRetention. -const ( - FieldOptions_OptionRetention_enum_fullname = "google.protobuf.FieldOptions.OptionRetention" - FieldOptions_OptionRetention_enum_name = "OptionRetention" -) - -// Full and short names for google.protobuf.FieldOptions.OptionTargetType. -const ( - FieldOptions_OptionTargetType_enum_fullname = "google.protobuf.FieldOptions.OptionTargetType" - FieldOptions_OptionTargetType_enum_name = "OptionTargetType" -) - // Names for google.protobuf.OneofOptions. const ( OneofOptions_message_name protoreflect.Name = "OneofOptions" @@ -620,23 +590,20 @@ const ( // Field names for google.protobuf.EnumOptions. const ( - EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" - EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_name protoreflect.Name = "deprecated_legacy_json_field_conflicts" - EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + EnumOptions_AllowAlias_field_name protoreflect.Name = "allow_alias" + EnumOptions_Deprecated_field_name protoreflect.Name = "deprecated" + EnumOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" - EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" - EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated_legacy_json_field_conflicts" - EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" + EnumOptions_AllowAlias_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.allow_alias" + EnumOptions_Deprecated_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.deprecated" + EnumOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.EnumOptions.uninterpreted_option" ) // Field numbers for google.protobuf.EnumOptions. const ( - EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 - EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 - EnumOptions_DeprecatedLegacyJsonFieldConflicts_field_number protoreflect.FieldNumber = 6 - EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 + EnumOptions_AllowAlias_field_number protoreflect.FieldNumber = 2 + EnumOptions_Deprecated_field_number protoreflect.FieldNumber = 3 + EnumOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) // Names for google.protobuf.EnumValueOptions. @@ -846,13 +813,11 @@ const ( GeneratedCodeInfo_Annotation_SourceFile_field_name protoreflect.Name = "source_file" GeneratedCodeInfo_Annotation_Begin_field_name protoreflect.Name = "begin" GeneratedCodeInfo_Annotation_End_field_name protoreflect.Name = "end" - GeneratedCodeInfo_Annotation_Semantic_field_name protoreflect.Name = "semantic" GeneratedCodeInfo_Annotation_Path_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.path" GeneratedCodeInfo_Annotation_SourceFile_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.source_file" GeneratedCodeInfo_Annotation_Begin_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.begin" GeneratedCodeInfo_Annotation_End_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.end" - GeneratedCodeInfo_Annotation_Semantic_field_fullname protoreflect.FullName = "google.protobuf.GeneratedCodeInfo.Annotation.semantic" ) // Field numbers for google.protobuf.GeneratedCodeInfo.Annotation. @@ -861,11 +826,4 @@ const ( GeneratedCodeInfo_Annotation_SourceFile_field_number protoreflect.FieldNumber = 2 GeneratedCodeInfo_Annotation_Begin_field_number protoreflect.FieldNumber = 3 GeneratedCodeInfo_Annotation_End_field_number protoreflect.FieldNumber = 4 - GeneratedCodeInfo_Annotation_Semantic_field_number protoreflect.FieldNumber = 5 -) - -// Full and short names for google.protobuf.GeneratedCodeInfo.Annotation.Semantic. -const ( - GeneratedCodeInfo_Annotation_Semantic_enum_fullname = "google.protobuf.GeneratedCodeInfo.Annotation.Semantic" - GeneratedCodeInfo_Annotation_Semantic_enum_name = "Semantic" ) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go index 185ef2efa5..11a6128ba5 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/impl/convert.go @@ -59,6 +59,7 @@ func NewConverter(t reflect.Type, fd protoreflect.FieldDescriptor) Converter { default: return newSingularConverter(t, fd) } + panic(fmt.Sprintf("invalid Go type %v for field %v", t, fd.FullName())) } var ( diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go index 61a84d3418..fea589c457 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe.go @@ -87,7 +87,7 @@ func (sb *Builder) grow(n int) { // Unlike strings.Builder, we do not need to copy over the contents // of the old buffer since our builder provides no API for // retrieving previously created strings. - sb.buf = make([]byte, 0, 2*(cap(sb.buf)+n)) + sb.buf = make([]byte, 2*(cap(sb.buf)+n)) } func (sb *Builder) last(n int) string { diff --git a/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go b/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go index f7014cd51c..b480c5010f 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/internal/version/version.go @@ -51,8 +51,8 @@ import ( // 10. Send out the CL for review and submit it. const ( Major = 1 - Minor = 30 - Patch = 0 + Minor = 28 + Patch = 1 PreRelease = "" ) diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go index ec71e717fe..08d2a46f53 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/doc.go @@ -5,13 +5,16 @@ // Package proto provides functions operating on protocol buffer messages. // // For documentation on protocol buffers in general, see: -// https://protobuf.dev. +// +// https://developers.google.com/protocol-buffers // // For a tutorial on using protocol buffers with Go, see: -// https://protobuf.dev/getting-started/gotutorial. +// +// https://developers.google.com/protocol-buffers/docs/gotutorial // // For a guide to generated Go protocol buffer code, see: -// https://protobuf.dev/reference/go/go-generated. +// +// https://developers.google.com/protocol-buffers/docs/reference/go-generated // // # Binary serialization // diff --git a/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go b/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go index 1a0be1b03c..67948dd1df 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/proto/equal.go @@ -5,39 +5,30 @@ package proto import ( + "bytes" + "math" "reflect" + "google.golang.org/protobuf/encoding/protowire" "google.golang.org/protobuf/reflect/protoreflect" ) -// Equal reports whether two messages are equal, -// by recursively comparing the fields of the message. +// Equal reports whether two messages are equal. +// If two messages marshal to the same bytes under deterministic serialization, +// then Equal is guaranteed to report true. // -// - Bytes fields are equal if they contain identical bytes. -// Empty bytes (regardless of nil-ness) are considered equal. +// Two messages are equal if they belong to the same message descriptor, +// have the same set of populated known and extension field values, +// and the same set of unknown fields values. If either of the top-level +// messages are invalid, then Equal reports true only if both are invalid. // -// - Floating-point fields are equal if they contain the same value. -// Unlike the == operator, a NaN is equal to another NaN. -// -// - Other scalar fields are equal if they contain the same value. -// -// - Message fields are equal if they have -// the same set of populated known and extension field values, and -// the same set of unknown fields values. -// -// - Lists are equal if they are the same length and -// each corresponding element is equal. -// -// - Maps are equal if they have the same set of keys and -// the corresponding value for each key is equal. -// -// An invalid message is not equal to a valid message. -// An invalid message is only equal to another invalid message of the -// same type. An invalid message often corresponds to a nil pointer -// of the concrete message type. For example, (*pb.M)(nil) is not equal -// to &pb.M{}. -// If two valid messages marshal to the same bytes under deterministic -// serialization, then Equal is guaranteed to report true. +// Scalar values are compared with the equivalent of the == operator in Go, +// except bytes values which are compared using bytes.Equal and +// floating point values which specially treat NaNs as equal. +// Message values are compared by recursively calling Equal. +// Lists are equal if each element value is also equal. +// Maps are equal if they have the same set of keys, where the pair of values +// for each key is also equal. func Equal(x, y Message) bool { if x == nil || y == nil { return x == nil && y == nil @@ -51,7 +42,130 @@ func Equal(x, y Message) bool { if mx.IsValid() != my.IsValid() { return false } - vx := protoreflect.ValueOfMessage(mx) - vy := protoreflect.ValueOfMessage(my) - return vx.Equal(vy) + return equalMessage(mx, my) +} + +// equalMessage compares two messages. +func equalMessage(mx, my protoreflect.Message) bool { + if mx.Descriptor() != my.Descriptor() { + return false + } + + nx := 0 + equal := true + mx.Range(func(fd protoreflect.FieldDescriptor, vx protoreflect.Value) bool { + nx++ + vy := my.Get(fd) + equal = my.Has(fd) && equalField(fd, vx, vy) + return equal + }) + if !equal { + return false + } + ny := 0 + my.Range(func(fd protoreflect.FieldDescriptor, vx protoreflect.Value) bool { + ny++ + return true + }) + if nx != ny { + return false + } + + return equalUnknown(mx.GetUnknown(), my.GetUnknown()) +} + +// equalField compares two fields. +func equalField(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool { + switch { + case fd.IsList(): + return equalList(fd, x.List(), y.List()) + case fd.IsMap(): + return equalMap(fd, x.Map(), y.Map()) + default: + return equalValue(fd, x, y) + } +} + +// equalMap compares two maps. +func equalMap(fd protoreflect.FieldDescriptor, x, y protoreflect.Map) bool { + if x.Len() != y.Len() { + return false + } + equal := true + x.Range(func(k protoreflect.MapKey, vx protoreflect.Value) bool { + vy := y.Get(k) + equal = y.Has(k) && equalValue(fd.MapValue(), vx, vy) + return equal + }) + return equal +} + +// equalList compares two lists. +func equalList(fd protoreflect.FieldDescriptor, x, y protoreflect.List) bool { + if x.Len() != y.Len() { + return false + } + for i := x.Len() - 1; i >= 0; i-- { + if !equalValue(fd, x.Get(i), y.Get(i)) { + return false + } + } + return true +} + +// equalValue compares two singular values. +func equalValue(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool { + switch fd.Kind() { + case protoreflect.BoolKind: + return x.Bool() == y.Bool() + case protoreflect.EnumKind: + return x.Enum() == y.Enum() + case protoreflect.Int32Kind, protoreflect.Sint32Kind, + protoreflect.Int64Kind, protoreflect.Sint64Kind, + protoreflect.Sfixed32Kind, protoreflect.Sfixed64Kind: + return x.Int() == y.Int() + case protoreflect.Uint32Kind, protoreflect.Uint64Kind, + protoreflect.Fixed32Kind, protoreflect.Fixed64Kind: + return x.Uint() == y.Uint() + case protoreflect.FloatKind, protoreflect.DoubleKind: + fx := x.Float() + fy := y.Float() + if math.IsNaN(fx) || math.IsNaN(fy) { + return math.IsNaN(fx) && math.IsNaN(fy) + } + return fx == fy + case protoreflect.StringKind: + return x.String() == y.String() + case protoreflect.BytesKind: + return bytes.Equal(x.Bytes(), y.Bytes()) + case protoreflect.MessageKind, protoreflect.GroupKind: + return equalMessage(x.Message(), y.Message()) + default: + return x.Interface() == y.Interface() + } +} + +// equalUnknown compares unknown fields by direct comparison on the raw bytes +// of each individual field number. +func equalUnknown(x, y protoreflect.RawFields) bool { + if len(x) != len(y) { + return false + } + if bytes.Equal([]byte(x), []byte(y)) { + return true + } + + mx := make(map[protoreflect.FieldNumber]protoreflect.RawFields) + my := make(map[protoreflect.FieldNumber]protoreflect.RawFields) + for len(x) > 0 { + fnum, _, n := protowire.ConsumeField(x) + mx[fnum] = append(mx[fnum], x[:n]...) + x = x[n:] + } + for len(y) > 0 { + fnum, _, n := protowire.ConsumeField(y) + my[fnum] = append(my[fnum], y[:n]...) + y = y[n:] + } + return reflect.DeepEqual(mx, my) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go index 54ce326df9..b03c1223c4 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go @@ -35,8 +35,6 @@ func (p *SourcePath) appendFileDescriptorProto(b []byte) []byte { b = p.appendSingularField(b, "source_code_info", (*SourcePath).appendSourceCodeInfo) case 12: b = p.appendSingularField(b, "syntax", nil) - case 13: - b = p.appendSingularField(b, "edition", nil) } return b } @@ -238,8 +236,6 @@ func (p *SourcePath) appendMessageOptions(b []byte) []byte { b = p.appendSingularField(b, "deprecated", nil) case 7: b = p.appendSingularField(b, "map_entry", nil) - case 11: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } @@ -283,8 +279,6 @@ func (p *SourcePath) appendEnumOptions(b []byte) []byte { b = p.appendSingularField(b, "allow_alias", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) - case 6: - b = p.appendSingularField(b, "deprecated_legacy_json_field_conflicts", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } @@ -351,18 +345,10 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { b = p.appendSingularField(b, "jstype", nil) case 5: b = p.appendSingularField(b, "lazy", nil) - case 15: - b = p.appendSingularField(b, "unverified_lazy", nil) case 3: b = p.appendSingularField(b, "deprecated", nil) case 10: b = p.appendSingularField(b, "weak", nil) - case 16: - b = p.appendSingularField(b, "debug_redact", nil) - case 17: - b = p.appendSingularField(b, "retention", nil) - case 18: - b = p.appendSingularField(b, "target", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go index 37601b7819..f319810778 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value.go @@ -148,7 +148,7 @@ type Message interface { // be preserved in marshaling or other operations. IsValid() bool - // ProtoMethods returns optional fast-path implementations of various operations. + // ProtoMethods returns optional fast-path implementions of various operations. // This method may return nil. // // The returned methods type is identical to diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go deleted file mode 100644 index 591652541f..0000000000 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_equal.go +++ /dev/null @@ -1,168 +0,0 @@ -// Copyright 2022 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package protoreflect - -import ( - "bytes" - "fmt" - "math" - "reflect" - - "google.golang.org/protobuf/encoding/protowire" -) - -// Equal reports whether v1 and v2 are recursively equal. -// -// - Values of different types are always unequal. -// -// - Bytes values are equal if they contain identical bytes. -// Empty bytes (regardless of nil-ness) are considered equal. -// -// - Floating point values are equal if they contain the same value. -// Unlike the == operator, a NaN is equal to another NaN. -// -// - Enums are equal if they contain the same number. -// Since Value does not contain an enum descriptor, -// enum values do not consider the type of the enum. -// -// - Other scalar values are equal if they contain the same value. -// -// - Message values are equal if they belong to the same message descriptor, -// have the same set of populated known and extension field values, -// and the same set of unknown fields values. -// -// - Lists are equal if they are the same length and -// each corresponding element is equal. -// -// - Maps are equal if they have the same set of keys and -// the corresponding value for each key is equal. -func (v1 Value) Equal(v2 Value) bool { - return equalValue(v1, v2) -} - -func equalValue(x, y Value) bool { - eqType := x.typ == y.typ - switch x.typ { - case nilType: - return eqType - case boolType: - return eqType && x.Bool() == y.Bool() - case int32Type, int64Type: - return eqType && x.Int() == y.Int() - case uint32Type, uint64Type: - return eqType && x.Uint() == y.Uint() - case float32Type, float64Type: - return eqType && equalFloat(x.Float(), y.Float()) - case stringType: - return eqType && x.String() == y.String() - case bytesType: - return eqType && bytes.Equal(x.Bytes(), y.Bytes()) - case enumType: - return eqType && x.Enum() == y.Enum() - default: - switch x := x.Interface().(type) { - case Message: - y, ok := y.Interface().(Message) - return ok && equalMessage(x, y) - case List: - y, ok := y.Interface().(List) - return ok && equalList(x, y) - case Map: - y, ok := y.Interface().(Map) - return ok && equalMap(x, y) - default: - panic(fmt.Sprintf("unknown type: %T", x)) - } - } -} - -// equalFloat compares two floats, where NaNs are treated as equal. -func equalFloat(x, y float64) bool { - if math.IsNaN(x) || math.IsNaN(y) { - return math.IsNaN(x) && math.IsNaN(y) - } - return x == y -} - -// equalMessage compares two messages. -func equalMessage(mx, my Message) bool { - if mx.Descriptor() != my.Descriptor() { - return false - } - - nx := 0 - equal := true - mx.Range(func(fd FieldDescriptor, vx Value) bool { - nx++ - vy := my.Get(fd) - equal = my.Has(fd) && equalValue(vx, vy) - return equal - }) - if !equal { - return false - } - ny := 0 - my.Range(func(fd FieldDescriptor, vx Value) bool { - ny++ - return true - }) - if nx != ny { - return false - } - - return equalUnknown(mx.GetUnknown(), my.GetUnknown()) -} - -// equalList compares two lists. -func equalList(x, y List) bool { - if x.Len() != y.Len() { - return false - } - for i := x.Len() - 1; i >= 0; i-- { - if !equalValue(x.Get(i), y.Get(i)) { - return false - } - } - return true -} - -// equalMap compares two maps. -func equalMap(x, y Map) bool { - if x.Len() != y.Len() { - return false - } - equal := true - x.Range(func(k MapKey, vx Value) bool { - vy := y.Get(k) - equal = y.Has(k) && equalValue(vx, vy) - return equal - }) - return equal -} - -// equalUnknown compares unknown fields by direct comparison on the raw bytes -// of each individual field number. -func equalUnknown(x, y RawFields) bool { - if len(x) != len(y) { - return false - } - if bytes.Equal([]byte(x), []byte(y)) { - return true - } - - mx := make(map[FieldNumber]RawFields) - my := make(map[FieldNumber]RawFields) - for len(x) > 0 { - fnum, _, n := protowire.ConsumeField(x) - mx[fnum] = append(mx[fnum], x[:n]...) - x = x[n:] - } - for len(y) > 0 { - fnum, _, n := protowire.ConsumeField(y) - my[fnum] = append(my[fnum], y[:n]...) - y = y[n:] - } - return reflect.DeepEqual(mx, my) -} diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go index 08e5ef73fc..ca8e28c5bc 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoreflect/value_union.go @@ -54,11 +54,11 @@ import ( // // Append a 0 to a "repeated int32" field. // // Since the Value returned by Mutable is guaranteed to alias // // the source message, modifying the Value modifies the message. -// message.Mutable(fieldDesc).List().Append(protoreflect.ValueOfInt32(0)) +// message.Mutable(fieldDesc).(List).Append(protoreflect.ValueOfInt32(0)) // // // Assign [0] to a "repeated int32" field by creating a new Value, // // modifying it, and assigning it. -// list := message.NewField(fieldDesc).List() +// list := message.NewField(fieldDesc).(List) // list.Append(protoreflect.ValueOfInt32(0)) // message.Set(fieldDesc, list) // // ERROR: Since it is not defined whether Set aliases the source, diff --git a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go index aeb5597744..58352a6978 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/reflect/protoregistry/registry.go @@ -46,7 +46,7 @@ var conflictPolicy = "panic" // "panic" | "warn" | "ignore" // It is a variable so that the behavior is easily overridden in another file. var ignoreConflict = func(d protoreflect.Descriptor, err error) bool { const env = "GOLANG_PROTOBUF_REGISTRATION_CONFLICT" - const faq = "https://protobuf.dev/reference/go/faq#namespace-conflict" + const faq = "https://developers.google.com/protocol-buffers/docs/reference/go/faq#namespace-conflict" policy := conflictPolicy if v := os.Getenv(env); v != "" { policy = v diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go index dac5671db0..abe4ab5115 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/descriptorpb/descriptor.pb.go @@ -406,152 +406,6 @@ func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 1} } -// If set to RETENTION_SOURCE, the option will be omitted from the binary. -// Note: as of January 2023, support for this is in progress and does not yet -// have an effect (b/264593489). -type FieldOptions_OptionRetention int32 - -const ( - FieldOptions_RETENTION_UNKNOWN FieldOptions_OptionRetention = 0 - FieldOptions_RETENTION_RUNTIME FieldOptions_OptionRetention = 1 - FieldOptions_RETENTION_SOURCE FieldOptions_OptionRetention = 2 -) - -// Enum value maps for FieldOptions_OptionRetention. -var ( - FieldOptions_OptionRetention_name = map[int32]string{ - 0: "RETENTION_UNKNOWN", - 1: "RETENTION_RUNTIME", - 2: "RETENTION_SOURCE", - } - FieldOptions_OptionRetention_value = map[string]int32{ - "RETENTION_UNKNOWN": 0, - "RETENTION_RUNTIME": 1, - "RETENTION_SOURCE": 2, - } -) - -func (x FieldOptions_OptionRetention) Enum() *FieldOptions_OptionRetention { - p := new(FieldOptions_OptionRetention) - *p = x - return p -} - -func (x FieldOptions_OptionRetention) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (FieldOptions_OptionRetention) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() -} - -func (FieldOptions_OptionRetention) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[5] -} - -func (x FieldOptions_OptionRetention) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *FieldOptions_OptionRetention) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = FieldOptions_OptionRetention(num) - return nil -} - -// Deprecated: Use FieldOptions_OptionRetention.Descriptor instead. -func (FieldOptions_OptionRetention) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 2} -} - -// This indicates the types of entities that the field may apply to when used -// as an option. If it is unset, then the field may be freely used as an -// option on any kind of entity. Note: as of January 2023, support for this is -// in progress and does not yet have an effect (b/264593489). -type FieldOptions_OptionTargetType int32 - -const ( - FieldOptions_TARGET_TYPE_UNKNOWN FieldOptions_OptionTargetType = 0 - FieldOptions_TARGET_TYPE_FILE FieldOptions_OptionTargetType = 1 - FieldOptions_TARGET_TYPE_EXTENSION_RANGE FieldOptions_OptionTargetType = 2 - FieldOptions_TARGET_TYPE_MESSAGE FieldOptions_OptionTargetType = 3 - FieldOptions_TARGET_TYPE_FIELD FieldOptions_OptionTargetType = 4 - FieldOptions_TARGET_TYPE_ONEOF FieldOptions_OptionTargetType = 5 - FieldOptions_TARGET_TYPE_ENUM FieldOptions_OptionTargetType = 6 - FieldOptions_TARGET_TYPE_ENUM_ENTRY FieldOptions_OptionTargetType = 7 - FieldOptions_TARGET_TYPE_SERVICE FieldOptions_OptionTargetType = 8 - FieldOptions_TARGET_TYPE_METHOD FieldOptions_OptionTargetType = 9 -) - -// Enum value maps for FieldOptions_OptionTargetType. -var ( - FieldOptions_OptionTargetType_name = map[int32]string{ - 0: "TARGET_TYPE_UNKNOWN", - 1: "TARGET_TYPE_FILE", - 2: "TARGET_TYPE_EXTENSION_RANGE", - 3: "TARGET_TYPE_MESSAGE", - 4: "TARGET_TYPE_FIELD", - 5: "TARGET_TYPE_ONEOF", - 6: "TARGET_TYPE_ENUM", - 7: "TARGET_TYPE_ENUM_ENTRY", - 8: "TARGET_TYPE_SERVICE", - 9: "TARGET_TYPE_METHOD", - } - FieldOptions_OptionTargetType_value = map[string]int32{ - "TARGET_TYPE_UNKNOWN": 0, - "TARGET_TYPE_FILE": 1, - "TARGET_TYPE_EXTENSION_RANGE": 2, - "TARGET_TYPE_MESSAGE": 3, - "TARGET_TYPE_FIELD": 4, - "TARGET_TYPE_ONEOF": 5, - "TARGET_TYPE_ENUM": 6, - "TARGET_TYPE_ENUM_ENTRY": 7, - "TARGET_TYPE_SERVICE": 8, - "TARGET_TYPE_METHOD": 9, - } -) - -func (x FieldOptions_OptionTargetType) Enum() *FieldOptions_OptionTargetType { - p := new(FieldOptions_OptionTargetType) - *p = x - return p -} - -func (x FieldOptions_OptionTargetType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (FieldOptions_OptionTargetType) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[6].Descriptor() -} - -func (FieldOptions_OptionTargetType) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[6] -} - -func (x FieldOptions_OptionTargetType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *FieldOptions_OptionTargetType) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = FieldOptions_OptionTargetType(num) - return nil -} - -// Deprecated: Use FieldOptions_OptionTargetType.Descriptor instead. -func (FieldOptions_OptionTargetType) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{12, 3} -} - // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, // or neither? HTTP based RPC implementation may choose GET verb for safe // methods, and PUT verb for idempotent methods instead of the default POST. @@ -588,11 +442,11 @@ func (x MethodOptions_IdempotencyLevel) String() string { } func (MethodOptions_IdempotencyLevel) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[7].Descriptor() + return file_google_protobuf_descriptor_proto_enumTypes[5].Descriptor() } func (MethodOptions_IdempotencyLevel) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[7] + return &file_google_protobuf_descriptor_proto_enumTypes[5] } func (x MethodOptions_IdempotencyLevel) Number() protoreflect.EnumNumber { @@ -614,70 +468,6 @@ func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{17, 0} } -// Represents the identified object's effect on the element in the original -// .proto file. -type GeneratedCodeInfo_Annotation_Semantic int32 - -const ( - // There is no effect or the effect is indescribable. - GeneratedCodeInfo_Annotation_NONE GeneratedCodeInfo_Annotation_Semantic = 0 - // The element is set or otherwise mutated. - GeneratedCodeInfo_Annotation_SET GeneratedCodeInfo_Annotation_Semantic = 1 - // An alias to the element is returned. - GeneratedCodeInfo_Annotation_ALIAS GeneratedCodeInfo_Annotation_Semantic = 2 -) - -// Enum value maps for GeneratedCodeInfo_Annotation_Semantic. -var ( - GeneratedCodeInfo_Annotation_Semantic_name = map[int32]string{ - 0: "NONE", - 1: "SET", - 2: "ALIAS", - } - GeneratedCodeInfo_Annotation_Semantic_value = map[string]int32{ - "NONE": 0, - "SET": 1, - "ALIAS": 2, - } -) - -func (x GeneratedCodeInfo_Annotation_Semantic) Enum() *GeneratedCodeInfo_Annotation_Semantic { - p := new(GeneratedCodeInfo_Annotation_Semantic) - *p = x - return p -} - -func (x GeneratedCodeInfo_Annotation_Semantic) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (GeneratedCodeInfo_Annotation_Semantic) Descriptor() protoreflect.EnumDescriptor { - return file_google_protobuf_descriptor_proto_enumTypes[8].Descriptor() -} - -func (GeneratedCodeInfo_Annotation_Semantic) Type() protoreflect.EnumType { - return &file_google_protobuf_descriptor_proto_enumTypes[8] -} - -func (x GeneratedCodeInfo_Annotation_Semantic) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Do not use. -func (x *GeneratedCodeInfo_Annotation_Semantic) UnmarshalJSON(b []byte) error { - num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b) - if err != nil { - return err - } - *x = GeneratedCodeInfo_Annotation_Semantic(num) - return nil -} - -// Deprecated: Use GeneratedCodeInfo_Annotation_Semantic.Descriptor instead. -func (GeneratedCodeInfo_Annotation_Semantic) EnumDescriptor() ([]byte, []int) { - return file_google_protobuf_descriptor_proto_rawDescGZIP(), []int{20, 0, 0} -} - // The protocol compiler can output a FileDescriptorSet containing the .proto // files it parses. type FileDescriptorSet struct { @@ -754,12 +544,8 @@ type FileDescriptorProto struct { // development tools. SourceCodeInfo *SourceCodeInfo `protobuf:"bytes,9,opt,name=source_code_info,json=sourceCodeInfo" json:"source_code_info,omitempty"` // The syntax of the proto file. - // The supported values are "proto2", "proto3", and "editions". - // - // If `edition` is present, this value must be "editions". + // The supported values are "proto2" and "proto3". Syntax *string `protobuf:"bytes,12,opt,name=syntax" json:"syntax,omitempty"` - // The edition of the proto file, which is an opaque string. - Edition *string `protobuf:"bytes,13,opt,name=edition" json:"edition,omitempty"` } func (x *FileDescriptorProto) Reset() { @@ -878,13 +664,6 @@ func (x *FileDescriptorProto) GetSyntax() string { return "" } -func (x *FileDescriptorProto) GetEdition() string { - if x != nil && x.Edition != nil { - return *x.Edition - } - return "" -} - // Describes a message type. type DescriptorProto struct { state protoimpl.MessageState @@ -1081,6 +860,7 @@ type FieldDescriptorProto struct { // For booleans, "true" or "false". // For strings, contains the default text contents (not escaped in any way). // For bytes, contains the C escaped value. All bytes >= 128 are escaped. + // TODO(kenton): Base-64 encode? DefaultValue *string `protobuf:"bytes,7,opt,name=default_value,json=defaultValue" json:"default_value,omitempty"` // If set, gives the index of a oneof in the containing type's oneof_decl // list. This field is a member of that oneof. @@ -1602,22 +1382,22 @@ type FileOptions struct { // inappropriate because proto packages do not normally start with backwards // domain names. JavaPackage *string `protobuf:"bytes,1,opt,name=java_package,json=javaPackage" json:"java_package,omitempty"` - // Controls the name of the wrapper Java class generated for the .proto file. - // That class will always contain the .proto file's getDescriptor() method as - // well as any top-level extensions defined in the .proto file. - // If java_multiple_files is disabled, then all the other classes from the - // .proto file will be nested inside the single wrapper outer class. + // If set, all the classes from the .proto file are wrapped in a single + // outer class with the given name. This applies to both Proto1 + // (equivalent to the old "--one_java_file" option) and Proto2 (where + // a .proto always translates to a single class, but you may want to + // explicitly choose the class name). JavaOuterClassname *string `protobuf:"bytes,8,opt,name=java_outer_classname,json=javaOuterClassname" json:"java_outer_classname,omitempty"` - // If enabled, then the Java code generator will generate a separate .java + // If set true, then the Java code generator will generate a separate .java // file for each top-level message, enum, and service defined in the .proto - // file. Thus, these types will *not* be nested inside the wrapper class - // named by java_outer_classname. However, the wrapper class will still be + // file. Thus, these types will *not* be nested inside the outer class + // named by java_outer_classname. However, the outer class will still be // generated to contain the file's getDescriptor() method as well as any // top-level extensions defined in the file. JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` // This option does nothing. // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. + // Deprecated: Do not use. JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` // If set true, then the Java2 code generator will generate code that // throws an exception whenever an attempt is made to assign a non-UTF-8 @@ -1751,7 +1531,7 @@ func (x *FileOptions) GetJavaMultipleFiles() bool { return Default_FileOptions_JavaMultipleFiles } -// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. +// Deprecated: Do not use. func (x *FileOptions) GetJavaGenerateEqualsAndHash() bool { if x != nil && x.JavaGenerateEqualsAndHash != nil { return *x.JavaGenerateEqualsAndHash @@ -1890,12 +1670,10 @@ type MessageOptions struct { // efficient, has fewer features, and is more complicated. // // The message must be defined exactly as follows: - // - // message Foo { - // option message_set_wire_format = true; - // extensions 4 to max; - // } - // + // message Foo { + // option message_set_wire_format = true; + // extensions 4 to max; + // } // Note that the message cannot have any defined fields; MessageSets only // have extensions. // @@ -1914,44 +1692,28 @@ type MessageOptions struct { // for the message, or it will be completely ignored; in the very least, // this is a formalization for deprecating messages. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // NOTE: Do not set the option in .proto files. Always use the maps syntax - // instead. The option should only be implicitly set by the proto compiler - // parser. - // // Whether the message is an automatically generated map entry type for the // maps field. // // For maps fields: - // - // map map_field = 1; - // + // map map_field = 1; // The parsed descriptor looks like: - // - // message MapFieldEntry { - // option map_entry = true; - // optional KeyType key = 1; - // optional ValueType value = 2; - // } - // repeated MapFieldEntry map_field = 1; + // message MapFieldEntry { + // option map_entry = true; + // optional KeyType key = 1; + // optional ValueType value = 2; + // } + // repeated MapFieldEntry map_field = 1; // // Implementations may choose not to generate the map_entry=true message, but // use a native map in the target language to hold the keys and values. // The reflection APIs in such implementations still need to work as // if the field is a repeated message field. - MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. - // - // This should only be used as a temporary measure against broken builds due - // to the change in behavior for JSON field name conflicts. // - // TODO(b/261750190) This is legacy behavior we plan to remove once downstream - // teams have had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,11,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` + // NOTE: Do not set the option in .proto files. Always use the maps syntax + // instead. The option should only be implicitly set by the proto compiler + // parser. + MapEntry *bool `protobuf:"varint,7,opt,name=map_entry,json=mapEntry" json:"map_entry,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } @@ -2023,14 +1785,6 @@ func (x *MessageOptions) GetMapEntry() bool { return false } -// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -func (x *MessageOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { - return *x.DeprecatedLegacyJsonFieldConflicts - } - return false -} - func (x *MessageOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption @@ -2084,6 +1838,7 @@ type FieldOptions struct { // call from multiple threads concurrently, while non-const methods continue // to require exclusive access. // + // // Note that implementations may choose not to check required fields within // a lazy sub-message. That is, calling IsInitialized() on the outer message // may return true even if the inner message has missing required fields. @@ -2094,14 +1849,7 @@ type FieldOptions struct { // implementation must either *always* check its required fields, or *never* // check its required fields, regardless of whether or not the message has // been parsed. - // - // As of May 2022, lazy verifies the contents of the byte stream during - // parsing. An invalid byte stream will cause the overall parsing to fail. Lazy *bool `protobuf:"varint,5,opt,name=lazy,def=0" json:"lazy,omitempty"` - // unverified_lazy does no correctness checks on the byte stream. This should - // only be used where lazy with verification is prohibitive for performance - // reasons. - UnverifiedLazy *bool `protobuf:"varint,15,opt,name=unverified_lazy,json=unverifiedLazy,def=0" json:"unverified_lazy,omitempty"` // Is this field deprecated? // Depending on the target platform, this can emit Deprecated annotations // for accessors, or it will be completely ignored; in the very least, this @@ -2109,24 +1857,17 @@ type FieldOptions struct { Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` // For Google-internal migration only. Do not use. Weak *bool `protobuf:"varint,10,opt,name=weak,def=0" json:"weak,omitempty"` - // Indicate that the field value should not be printed out when using debug - // formats, e.g. when the field contains sensitive credentials. - DebugRedact *bool `protobuf:"varint,16,opt,name=debug_redact,json=debugRedact,def=0" json:"debug_redact,omitempty"` - Retention *FieldOptions_OptionRetention `protobuf:"varint,17,opt,name=retention,enum=google.protobuf.FieldOptions_OptionRetention" json:"retention,omitempty"` - Target *FieldOptions_OptionTargetType `protobuf:"varint,18,opt,name=target,enum=google.protobuf.FieldOptions_OptionTargetType" json:"target,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } // Default values for FieldOptions fields. const ( - Default_FieldOptions_Ctype = FieldOptions_STRING - Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL - Default_FieldOptions_Lazy = bool(false) - Default_FieldOptions_UnverifiedLazy = bool(false) - Default_FieldOptions_Deprecated = bool(false) - Default_FieldOptions_Weak = bool(false) - Default_FieldOptions_DebugRedact = bool(false) + Default_FieldOptions_Ctype = FieldOptions_STRING + Default_FieldOptions_Jstype = FieldOptions_JS_NORMAL + Default_FieldOptions_Lazy = bool(false) + Default_FieldOptions_Deprecated = bool(false) + Default_FieldOptions_Weak = bool(false) ) func (x *FieldOptions) Reset() { @@ -2189,13 +1930,6 @@ func (x *FieldOptions) GetLazy() bool { return Default_FieldOptions_Lazy } -func (x *FieldOptions) GetUnverifiedLazy() bool { - if x != nil && x.UnverifiedLazy != nil { - return *x.UnverifiedLazy - } - return Default_FieldOptions_UnverifiedLazy -} - func (x *FieldOptions) GetDeprecated() bool { if x != nil && x.Deprecated != nil { return *x.Deprecated @@ -2210,27 +1944,6 @@ func (x *FieldOptions) GetWeak() bool { return Default_FieldOptions_Weak } -func (x *FieldOptions) GetDebugRedact() bool { - if x != nil && x.DebugRedact != nil { - return *x.DebugRedact - } - return Default_FieldOptions_DebugRedact -} - -func (x *FieldOptions) GetRetention() FieldOptions_OptionRetention { - if x != nil && x.Retention != nil { - return *x.Retention - } - return FieldOptions_RETENTION_UNKNOWN -} - -func (x *FieldOptions) GetTarget() FieldOptions_OptionTargetType { - if x != nil && x.Target != nil { - return *x.Target - } - return FieldOptions_TARGET_TYPE_UNKNOWN -} - func (x *FieldOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption @@ -2301,15 +2014,6 @@ type EnumOptions struct { // for the enum, or it will be completely ignored; in the very least, this // is a formalization for deprecating enums. Deprecated *bool `protobuf:"varint,3,opt,name=deprecated,def=0" json:"deprecated,omitempty"` - // Enable the legacy handling of JSON field name conflicts. This lowercases - // and strips underscored from the fields before comparison in proto3 only. - // The new behavior takes `json_name` into account and applies to proto2 as - // well. - // TODO(b/261750190) Remove this legacy behavior once downstream teams have - // had time to migrate. - // - // Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. - DeprecatedLegacyJsonFieldConflicts *bool `protobuf:"varint,6,opt,name=deprecated_legacy_json_field_conflicts,json=deprecatedLegacyJsonFieldConflicts" json:"deprecated_legacy_json_field_conflicts,omitempty"` // The parser stores options it doesn't recognize here. See above. UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` } @@ -2365,14 +2069,6 @@ func (x *EnumOptions) GetDeprecated() bool { return Default_EnumOptions_Deprecated } -// Deprecated: Marked as deprecated in google/protobuf/descriptor.proto. -func (x *EnumOptions) GetDeprecatedLegacyJsonFieldConflicts() bool { - if x != nil && x.DeprecatedLegacyJsonFieldConflicts != nil { - return *x.DeprecatedLegacyJsonFieldConflicts - } - return false -} - func (x *EnumOptions) GetUninterpretedOption() []*UninterpretedOption { if x != nil { return x.UninterpretedOption @@ -2703,48 +2399,43 @@ type SourceCodeInfo struct { // tools. // // For example, say we have a file like: - // - // message Foo { - // optional string foo = 1; - // } - // + // message Foo { + // optional string foo = 1; + // } // Let's look at just the field definition: - // - // optional string foo = 1; - // ^ ^^ ^^ ^ ^^^ - // a bc de f ghi - // + // optional string foo = 1; + // ^ ^^ ^^ ^ ^^^ + // a bc de f ghi // We have the following locations: - // - // span path represents - // [a,i) [ 4, 0, 2, 0 ] The whole field definition. - // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). - // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). - // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). - // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). + // span path represents + // [a,i) [ 4, 0, 2, 0 ] The whole field definition. + // [a,b) [ 4, 0, 2, 0, 4 ] The label (optional). + // [c,d) [ 4, 0, 2, 0, 5 ] The type (string). + // [e,f) [ 4, 0, 2, 0, 1 ] The name (foo). + // [g,h) [ 4, 0, 2, 0, 3 ] The number (1). // // Notes: - // - A location may refer to a repeated field itself (i.e. not to any - // particular index within it). This is used whenever a set of elements are - // logically enclosed in a single code segment. For example, an entire - // extend block (possibly containing multiple extension definitions) will - // have an outer location whose path refers to the "extensions" repeated - // field without an index. - // - Multiple locations may have the same path. This happens when a single - // logical declaration is spread out across multiple places. The most - // obvious example is the "extend" block again -- there may be multiple - // extend blocks in the same scope, each of which will have the same path. - // - A location's span is not always a subset of its parent's span. For - // example, the "extendee" of an extension declaration appears at the - // beginning of the "extend" block and is shared by all extensions within - // the block. - // - Just because a location's span is a subset of some other location's span - // does not mean that it is a descendant. For example, a "group" defines - // both a type and a field in a single declaration. Thus, the locations - // corresponding to the type and field and their components will overlap. - // - Code which tries to interpret locations should probably be designed to - // ignore those that it doesn't understand, as more types of locations could - // be recorded in the future. + // - A location may refer to a repeated field itself (i.e. not to any + // particular index within it). This is used whenever a set of elements are + // logically enclosed in a single code segment. For example, an entire + // extend block (possibly containing multiple extension definitions) will + // have an outer location whose path refers to the "extensions" repeated + // field without an index. + // - Multiple locations may have the same path. This happens when a single + // logical declaration is spread out across multiple places. The most + // obvious example is the "extend" block again -- there may be multiple + // extend blocks in the same scope, each of which will have the same path. + // - A location's span is not always a subset of its parent's span. For + // example, the "extendee" of an extension declaration appears at the + // beginning of the "extend" block and is shared by all extensions within + // the block. + // - Just because a location's span is a subset of some other location's span + // does not mean that it is a descendant. For example, a "group" defines + // both a type and a field in a single declaration. Thus, the locations + // corresponding to the type and field and their components will overlap. + // - Code which tries to interpret locations should probably be designed to + // ignore those that it doesn't understand, as more types of locations could + // be recorded in the future. Location []*SourceCodeInfo_Location `protobuf:"bytes,1,rep,name=location" json:"location,omitempty"` } @@ -3024,8 +2715,8 @@ func (x *EnumDescriptorProto_EnumReservedRange) GetEnd() int32 { // The name of the uninterpreted option. Each string represents a segment in // a dot-separated name. is_extension is true iff a segment represents an // extension (denoted with parentheses in options specs in .proto files). -// E.g.,{ ["foo", false], ["bar.baz", true], ["moo", false] } represents -// "foo.(bar.baz).moo". +// E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents +// "foo.(bar.baz).qux". type UninterpretedOption_NamePart struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3090,34 +2781,23 @@ type SourceCodeInfo_Location struct { // location. // // Each element is a field number or an index. They form a path from - // the root FileDescriptorProto to the place where the definition occurs. - // For example, this path: - // - // [ 4, 3, 2, 7, 1 ] - // + // the root FileDescriptorProto to the place where the definition. For + // example, this path: + // [ 4, 3, 2, 7, 1 ] // refers to: - // - // file.message_type(3) // 4, 3 - // .field(7) // 2, 7 - // .name() // 1 - // + // file.message_type(3) // 4, 3 + // .field(7) // 2, 7 + // .name() // 1 // This is because FileDescriptorProto.message_type has field number 4: - // - // repeated DescriptorProto message_type = 4; - // + // repeated DescriptorProto message_type = 4; // and DescriptorProto.field has field number 2: - // - // repeated FieldDescriptorProto field = 2; - // + // repeated FieldDescriptorProto field = 2; // and FieldDescriptorProto.name has field number 1: - // - // optional string name = 1; + // optional string name = 1; // // Thus, the above path gives the location of a field name. If we removed // the last element: - // - // [ 4, 3, 2, 7 ] - // + // [ 4, 3, 2, 7 ] // this path refers to the whole field declaration (from the beginning // of the label to the terminating semicolon). Path []int32 `protobuf:"varint,1,rep,packed,name=path" json:"path,omitempty"` @@ -3146,34 +2826,34 @@ type SourceCodeInfo_Location struct { // // Examples: // - // optional int32 foo = 1; // Comment attached to foo. - // // Comment attached to bar. - // optional int32 bar = 2; + // optional int32 foo = 1; // Comment attached to foo. + // // Comment attached to bar. + // optional int32 bar = 2; // - // optional string baz = 3; - // // Comment attached to baz. - // // Another line attached to baz. + // optional string baz = 3; + // // Comment attached to baz. + // // Another line attached to baz. // - // // Comment attached to moo. - // // - // // Another line attached to moo. - // optional double moo = 4; + // // Comment attached to qux. + // // + // // Another line attached to qux. + // optional double qux = 4; // - // // Detached comment for corge. This is not leading or trailing comments - // // to moo or corge because there are blank lines separating it from - // // both. + // // Detached comment for corge. This is not leading or trailing comments + // // to qux or corge because there are blank lines separating it from + // // both. // - // // Detached comment for corge paragraph 2. + // // Detached comment for corge paragraph 2. // - // optional string corge = 5; - // /* Block comment attached - // * to corge. Leading asterisks - // * will be removed. */ - // /* Block comment attached to - // * grault. */ - // optional int32 grault = 6; + // optional string corge = 5; + // /* Block comment attached + // * to corge. Leading asterisks + // * will be removed. */ + // /* Block comment attached to + // * grault. */ + // optional int32 grault = 6; // - // // ignored detached comments. + // // ignored detached comments. LeadingComments *string `protobuf:"bytes,3,opt,name=leading_comments,json=leadingComments" json:"leading_comments,omitempty"` TrailingComments *string `protobuf:"bytes,4,opt,name=trailing_comments,json=trailingComments" json:"trailing_comments,omitempty"` LeadingDetachedComments []string `protobuf:"bytes,6,rep,name=leading_detached_comments,json=leadingDetachedComments" json:"leading_detached_comments,omitempty"` @@ -3260,10 +2940,9 @@ type GeneratedCodeInfo_Annotation struct { // that relates to the identified object. Begin *int32 `protobuf:"varint,3,opt,name=begin" json:"begin,omitempty"` // Identifies the ending offset in bytes in the generated code that - // relates to the identified object. The end offset should be one past + // relates to the identified offset. The end offset should be one past // the last relevant byte (so the length of the text = end - begin). - End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` - Semantic *GeneratedCodeInfo_Annotation_Semantic `protobuf:"varint,5,opt,name=semantic,enum=google.protobuf.GeneratedCodeInfo_Annotation_Semantic" json:"semantic,omitempty"` + End *int32 `protobuf:"varint,4,opt,name=end" json:"end,omitempty"` } func (x *GeneratedCodeInfo_Annotation) Reset() { @@ -3326,13 +3005,6 @@ func (x *GeneratedCodeInfo_Annotation) GetEnd() int32 { return 0 } -func (x *GeneratedCodeInfo_Annotation) GetSemantic() GeneratedCodeInfo_Annotation_Semantic { - if x != nil && x.Semantic != nil { - return *x.Semantic - } - return GeneratedCodeInfo_Annotation_NONE -} - var File_google_protobuf_descriptor_proto protoreflect.FileDescriptor var file_google_protobuf_descriptor_proto_rawDesc = []byte{ @@ -3344,7 +3016,7 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x04, 0x66, 0x69, - 0x6c, 0x65, 0x22, 0xfe, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x6c, 0x65, 0x22, 0xe4, 0x04, 0x0a, 0x13, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -3382,391 +3054,330 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, - 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, - 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, - 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, - 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, - 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, - 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, - 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, - 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, - 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, - 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, - 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, - 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, - 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, - 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, - 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, - 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, - 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, - 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, - 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, - 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, - 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, - 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, - 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, - 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, - 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, - 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, - 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, - 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, - 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, - 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, - 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, + 0x09, 0x52, 0x06, 0x73, 0x79, 0x6e, 0x74, 0x61, 0x78, 0x22, 0xb9, 0x06, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, - 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, - 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, - 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, - 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, - 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, - 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, - 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, - 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, - 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, - 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, - 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, - 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, + 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x43, + 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x41, 0x0a, 0x0b, 0x6e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x0a, 0x6e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x65, 0x6e, 0x75, 0x6d, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, + 0x08, 0x65, 0x6e, 0x75, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, + 0x6e, 0x67, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x64, 0x65, 0x63, + 0x6c, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, 0x09, + 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x44, 0x65, 0x63, 0x6c, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x55, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0d, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x1a, 0x7a, 0x0a, 0x0e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x37, 0x0a, 0x0d, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0x7c, 0x0a, 0x15, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, + 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, + 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, + 0x80, 0x80, 0x02, 0x22, 0xc1, 0x06, 0x0a, 0x14, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x41, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x74, + 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x6e, 0x65, + 0x6f, 0x66, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x73, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, + 0x73, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x04, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x55, 0x42, 0x4c, + 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x41, + 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, 0x36, + 0x34, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, + 0x36, 0x34, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x54, + 0x33, 0x32, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, + 0x45, 0x44, 0x36, 0x34, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, + 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x08, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x10, 0x0a, 0x12, 0x10, 0x0a, 0x0c, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x0d, 0x12, 0x0d, 0x0a, 0x09, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x0e, 0x12, 0x11, 0x0a, 0x0d, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x33, 0x32, 0x10, 0x0f, 0x12, 0x11, 0x0a, + 0x0d, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x46, 0x49, 0x58, 0x45, 0x44, 0x36, 0x34, 0x10, 0x10, + 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, + 0x11, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x49, 0x4e, 0x54, 0x36, 0x34, + 0x10, 0x12, 0x22, 0x43, 0x0a, 0x05, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x0e, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x01, 0x12, + 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x49, 0x52, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x52, 0x45, 0x50, + 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x03, 0x22, 0x63, 0x0a, 0x14, 0x4f, 0x6e, 0x65, 0x6f, 0x66, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xe3, 0x02, 0x0a, + 0x13, 0x45, 0x6e, 0x75, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x36, 0x0a, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x72, 0x61, + 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0x3b, 0x0a, 0x11, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, + 0x6e, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x18, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa7, 0x01, 0x0a, 0x16, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x52, + 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x89, 0x02, 0x0a, 0x15, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x10, 0x63, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x30, 0x0a, 0x10, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0f, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x22, 0x91, + 0x09, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, + 0x0a, 0x0c, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x61, 0x76, 0x61, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, + 0x65, 0x12, 0x30, 0x0a, 0x14, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x6a, 0x61, 0x76, 0x61, 0x4f, 0x75, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x6d, 0x75, 0x6c, 0x74, + 0x69, 0x70, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x6a, 0x61, 0x76, 0x61, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x70, 0x6c, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x1d, 0x6a, 0x61, + 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x61, + 0x6c, 0x73, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x19, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x45, 0x71, 0x75, 0x61, 0x6c, 0x73, 0x41, 0x6e, 0x64, 0x48, 0x61, 0x73, 0x68, + 0x12, 0x3a, 0x0a, 0x16, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x75, 0x74, 0x66, 0x38, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x08, + 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x74, 0x66, 0x38, 0x12, 0x53, 0x0a, 0x0c, + 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x3a, 0x05, 0x53, + 0x50, 0x45, 0x45, 0x44, 0x52, 0x0b, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x46, 0x6f, + 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, + 0x12, 0x35, 0x0a, 0x13, 0x63, 0x63, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, + 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, + 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, + 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x11, - 0x63, 0x63, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x73, 0x12, 0x39, 0x0a, 0x15, 0x6a, 0x61, 0x76, 0x61, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, - 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x13, 0x6a, 0x61, 0x76, 0x61, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x13, - 0x70, 0x79, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, - 0x52, 0x11, 0x70, 0x79, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x14, 0x70, 0x68, 0x70, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x69, 0x63, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, - 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, - 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, - 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, - 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, - 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, - 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, - 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, - 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, - 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, - 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, - 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, - 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x12, + 0x70, 0x68, 0x70, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, + 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x10, 0x63, 0x63, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x18, 0x1f, 0x20, + 0x01, 0x28, 0x08, 0x3a, 0x04, 0x74, 0x72, 0x75, 0x65, 0x52, 0x0e, 0x63, 0x63, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x62, 0x6a, + 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x62, 0x6a, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x63, 0x73, 0x68, 0x61, 0x72, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x77, 0x69, 0x66, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x77, 0x69, 0x66, 0x74, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x68, 0x70, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, + 0x68, 0x70, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x23, 0x0a, + 0x0d, 0x70, 0x68, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x29, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x68, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x70, 0x68, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x2c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x70, 0x68, 0x70, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x62, 0x79, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x72, 0x75, 0x62, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x12, 0x58, 0x0a, 0x14, 0x75, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, + 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, + 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, + 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, + 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, + 0x10, 0x27, 0x22, 0xd1, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, + 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, - 0x09, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, - 0x44, 0x45, 0x5f, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x49, 0x54, - 0x45, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x03, 0x2a, 0x09, 0x08, 0xe8, 0x07, - 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x26, 0x10, 0x27, 0x22, 0xbb, 0x03, 0x0a, - 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x3c, 0x0a, 0x17, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x77, - 0x69, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x53, 0x65, 0x74, 0x57, 0x69, 0x72, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x4c, 0x0a, - 0x1f, 0x6e, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x5f, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x1c, 0x6e, - 0x6f, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0a, 0x64, - 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, - 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, - 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x65, - 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x4c, - 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x43, 0x6f, - 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, - 0x10, 0x05, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x4a, 0x04, - 0x08, 0x08, 0x10, 0x09, 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xb7, 0x08, 0x0a, 0x0c, 0x46, - 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, - 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, + 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x08, 0x10, 0x09, + 0x4a, 0x04, 0x08, 0x09, 0x10, 0x0a, 0x22, 0xe2, 0x03, 0x0a, 0x0c, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, - 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x19, 0x0a, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x2e, 0x0a, 0x0f, 0x75, 0x6e, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x7a, 0x79, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0e, 0x75, 0x6e, 0x76, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x19, 0x0a, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, - 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x28, 0x0a, 0x0c, - 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x72, 0x65, 0x64, 0x61, 0x63, 0x74, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x52, 0x65, 0x64, 0x61, 0x63, 0x74, 0x12, 0x4b, 0x0a, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, - 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x58, 0x0a, 0x14, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x06, 0x53, 0x54, 0x52, + 0x49, 0x4e, 0x47, 0x52, 0x05, 0x63, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, + 0x63, 0x6b, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x64, 0x12, 0x47, 0x0a, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, + 0x4d, 0x41, 0x4c, 0x52, 0x06, 0x6a, 0x73, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x04, 0x6c, + 0x61, 0x7a, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x52, 0x04, 0x6c, 0x61, 0x7a, 0x79, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, + 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x19, 0x0a, + 0x04, 0x77, 0x65, 0x61, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x52, 0x04, 0x77, 0x65, 0x61, 0x6b, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x53, + 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, 0x52, 0x44, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x49, 0x45, 0x43, + 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, + 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x4a, + 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, + 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, + 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2f, 0x0a, 0x05, 0x43, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, - 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x4f, - 0x52, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x50, - 0x49, 0x45, 0x43, 0x45, 0x10, 0x02, 0x22, 0x35, 0x0a, 0x06, 0x4a, 0x53, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0x00, 0x12, - 0x0d, 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x4a, 0x53, 0x5f, 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x02, 0x22, 0x55, 0x0a, - 0x0f, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x54, 0x45, 0x4e, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4e, 0x54, 0x49, 0x4d, 0x45, 0x10, 0x01, 0x12, 0x14, - 0x0a, 0x10, 0x52, 0x45, 0x54, 0x45, 0x4e, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x10, 0x02, 0x22, 0x8c, 0x02, 0x0a, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, - 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, - 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x4e, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, - 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x46, 0x49, 0x45, 0x4c, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x45, 0x4f, 0x46, 0x10, 0x05, - 0x12, 0x14, 0x0a, 0x10, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x55, 0x4d, 0x5f, 0x45, 0x4e, 0x54, 0x52, 0x59, - 0x10, 0x07, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, 0x54, - 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, - 0x44, 0x10, 0x09, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, - 0x08, 0x04, 0x10, 0x05, 0x22, 0x73, 0x0a, 0x0c, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, - 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, - 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, - 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x98, 0x02, 0x0a, 0x0b, 0x45, 0x6e, - 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, - 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x12, 0x56, 0x0a, 0x26, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x22, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x4a, 0x73, 0x6f, 0x6e, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, - 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, - 0x08, 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, - 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, - 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, - 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, + 0x22, 0xc0, 0x01, 0x0a, 0x0b, 0x45, 0x6e, 0x75, 0x6d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x41, 0x6c, 0x69, 0x61, + 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, + 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, + 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x4a, 0x04, 0x08, + 0x05, 0x10, 0x06, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, - 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, + 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, @@ -3774,95 +3385,97 @@ var file_google_protobuf_descriptor_proto_rawDesc = []byte{ 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, - 0x80, 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, - 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, - 0x11, 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, - 0x65, 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, - 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, - 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, - 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x12, 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, - 0x64, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, - 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, - 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, - 0x0a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, - 0x44, 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, - 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, - 0x07, 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, + 0x80, 0x80, 0x80, 0x02, 0x22, 0x9c, 0x01, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, + 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, + 0x73, 0x65, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x58, + 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, - 0x12, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, - 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, - 0x50, 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, - 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, - 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, - 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, - 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, - 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd0, - 0x02, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0xeb, 0x01, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, - 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x65, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, - 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, - 0x65, 0x6e, 0x64, 0x12, 0x52, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x61, 0x6e, 0x74, 0x69, 0x63, 0x22, 0x28, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x61, 0x6e, - 0x74, 0x69, 0x63, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, - 0x03, 0x53, 0x45, 0x54, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x41, 0x4c, 0x49, 0x41, 0x53, 0x10, - 0x02, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, + 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2a, 0x09, 0x08, 0xe8, 0x07, 0x10, 0x80, 0x80, + 0x80, 0x80, 0x02, 0x22, 0xe0, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x21, 0x20, 0x01, 0x28, 0x08, 0x3a, 0x05, 0x66, 0x61, 0x6c, 0x73, 0x65, + 0x52, 0x0a, 0x64, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x11, + 0x69, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, + 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x52, 0x10, 0x69, + 0x64, 0x65, 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x58, 0x0a, 0x14, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, + 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xe7, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x75, 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, + 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x10, 0x49, 0x64, 0x65, + 0x6d, 0x70, 0x6f, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x17, 0x0a, + 0x13, 0x49, 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x43, 0x59, 0x5f, 0x55, 0x4e, 0x4b, + 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x4f, 0x5f, 0x53, 0x49, 0x44, + 0x45, 0x5f, 0x45, 0x46, 0x46, 0x45, 0x43, 0x54, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x49, + 0x44, 0x45, 0x4d, 0x50, 0x4f, 0x54, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x2a, 0x09, 0x08, 0xe8, 0x07, + 0x10, 0x80, 0x80, 0x80, 0x80, 0x02, 0x22, 0x9a, 0x03, 0x0a, 0x13, 0x55, 0x6e, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x41, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x6e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x72, 0x65, 0x74, 0x65, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x4e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x76, 0x65, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6e, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, + 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, + 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x27, + 0x0a, 0x0f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x4a, 0x0a, 0x08, 0x4e, 0x61, 0x6d, 0x65, 0x50, + 0x61, 0x72, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x02, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x61, 0x72, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x02, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xce, 0x01, 0x0a, + 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x16, 0x0a, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, 0x05, 0x42, + 0x02, 0x10, 0x01, 0x52, 0x04, 0x73, 0x70, 0x61, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6c, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x3a, 0x0a, 0x19, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x65, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xd1, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x6d, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x16, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x42, 0x02, + 0x10, 0x01, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x65, 0x67, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x62, 0x65, 0x67, 0x69, 0x6e, 0x12, + 0x10, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x6e, + 0x64, 0x42, 0x7e, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x42, 0x10, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x48, 0x01, 0x5a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, @@ -3885,7 +3498,7 @@ func file_google_protobuf_descriptor_proto_rawDescGZIP() []byte { return file_google_protobuf_descriptor_proto_rawDescData } -var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 9) +var file_google_protobuf_descriptor_proto_enumTypes = make([]protoimpl.EnumInfo, 6) var file_google_protobuf_descriptor_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ (FieldDescriptorProto_Type)(0), // 0: google.protobuf.FieldDescriptorProto.Type @@ -3893,90 +3506,84 @@ var file_google_protobuf_descriptor_proto_goTypes = []interface{}{ (FileOptions_OptimizeMode)(0), // 2: google.protobuf.FileOptions.OptimizeMode (FieldOptions_CType)(0), // 3: google.protobuf.FieldOptions.CType (FieldOptions_JSType)(0), // 4: google.protobuf.FieldOptions.JSType - (FieldOptions_OptionRetention)(0), // 5: google.protobuf.FieldOptions.OptionRetention - (FieldOptions_OptionTargetType)(0), // 6: google.protobuf.FieldOptions.OptionTargetType - (MethodOptions_IdempotencyLevel)(0), // 7: google.protobuf.MethodOptions.IdempotencyLevel - (GeneratedCodeInfo_Annotation_Semantic)(0), // 8: google.protobuf.GeneratedCodeInfo.Annotation.Semantic - (*FileDescriptorSet)(nil), // 9: google.protobuf.FileDescriptorSet - (*FileDescriptorProto)(nil), // 10: google.protobuf.FileDescriptorProto - (*DescriptorProto)(nil), // 11: google.protobuf.DescriptorProto - (*ExtensionRangeOptions)(nil), // 12: google.protobuf.ExtensionRangeOptions - (*FieldDescriptorProto)(nil), // 13: google.protobuf.FieldDescriptorProto - (*OneofDescriptorProto)(nil), // 14: google.protobuf.OneofDescriptorProto - (*EnumDescriptorProto)(nil), // 15: google.protobuf.EnumDescriptorProto - (*EnumValueDescriptorProto)(nil), // 16: google.protobuf.EnumValueDescriptorProto - (*ServiceDescriptorProto)(nil), // 17: google.protobuf.ServiceDescriptorProto - (*MethodDescriptorProto)(nil), // 18: google.protobuf.MethodDescriptorProto - (*FileOptions)(nil), // 19: google.protobuf.FileOptions - (*MessageOptions)(nil), // 20: google.protobuf.MessageOptions - (*FieldOptions)(nil), // 21: google.protobuf.FieldOptions - (*OneofOptions)(nil), // 22: google.protobuf.OneofOptions - (*EnumOptions)(nil), // 23: google.protobuf.EnumOptions - (*EnumValueOptions)(nil), // 24: google.protobuf.EnumValueOptions - (*ServiceOptions)(nil), // 25: google.protobuf.ServiceOptions - (*MethodOptions)(nil), // 26: google.protobuf.MethodOptions - (*UninterpretedOption)(nil), // 27: google.protobuf.UninterpretedOption - (*SourceCodeInfo)(nil), // 28: google.protobuf.SourceCodeInfo - (*GeneratedCodeInfo)(nil), // 29: google.protobuf.GeneratedCodeInfo - (*DescriptorProto_ExtensionRange)(nil), // 30: google.protobuf.DescriptorProto.ExtensionRange - (*DescriptorProto_ReservedRange)(nil), // 31: google.protobuf.DescriptorProto.ReservedRange - (*EnumDescriptorProto_EnumReservedRange)(nil), // 32: google.protobuf.EnumDescriptorProto.EnumReservedRange - (*UninterpretedOption_NamePart)(nil), // 33: google.protobuf.UninterpretedOption.NamePart - (*SourceCodeInfo_Location)(nil), // 34: google.protobuf.SourceCodeInfo.Location - (*GeneratedCodeInfo_Annotation)(nil), // 35: google.protobuf.GeneratedCodeInfo.Annotation + (MethodOptions_IdempotencyLevel)(0), // 5: google.protobuf.MethodOptions.IdempotencyLevel + (*FileDescriptorSet)(nil), // 6: google.protobuf.FileDescriptorSet + (*FileDescriptorProto)(nil), // 7: google.protobuf.FileDescriptorProto + (*DescriptorProto)(nil), // 8: google.protobuf.DescriptorProto + (*ExtensionRangeOptions)(nil), // 9: google.protobuf.ExtensionRangeOptions + (*FieldDescriptorProto)(nil), // 10: google.protobuf.FieldDescriptorProto + (*OneofDescriptorProto)(nil), // 11: google.protobuf.OneofDescriptorProto + (*EnumDescriptorProto)(nil), // 12: google.protobuf.EnumDescriptorProto + (*EnumValueDescriptorProto)(nil), // 13: google.protobuf.EnumValueDescriptorProto + (*ServiceDescriptorProto)(nil), // 14: google.protobuf.ServiceDescriptorProto + (*MethodDescriptorProto)(nil), // 15: google.protobuf.MethodDescriptorProto + (*FileOptions)(nil), // 16: google.protobuf.FileOptions + (*MessageOptions)(nil), // 17: google.protobuf.MessageOptions + (*FieldOptions)(nil), // 18: google.protobuf.FieldOptions + (*OneofOptions)(nil), // 19: google.protobuf.OneofOptions + (*EnumOptions)(nil), // 20: google.protobuf.EnumOptions + (*EnumValueOptions)(nil), // 21: google.protobuf.EnumValueOptions + (*ServiceOptions)(nil), // 22: google.protobuf.ServiceOptions + (*MethodOptions)(nil), // 23: google.protobuf.MethodOptions + (*UninterpretedOption)(nil), // 24: google.protobuf.UninterpretedOption + (*SourceCodeInfo)(nil), // 25: google.protobuf.SourceCodeInfo + (*GeneratedCodeInfo)(nil), // 26: google.protobuf.GeneratedCodeInfo + (*DescriptorProto_ExtensionRange)(nil), // 27: google.protobuf.DescriptorProto.ExtensionRange + (*DescriptorProto_ReservedRange)(nil), // 28: google.protobuf.DescriptorProto.ReservedRange + (*EnumDescriptorProto_EnumReservedRange)(nil), // 29: google.protobuf.EnumDescriptorProto.EnumReservedRange + (*UninterpretedOption_NamePart)(nil), // 30: google.protobuf.UninterpretedOption.NamePart + (*SourceCodeInfo_Location)(nil), // 31: google.protobuf.SourceCodeInfo.Location + (*GeneratedCodeInfo_Annotation)(nil), // 32: google.protobuf.GeneratedCodeInfo.Annotation } var file_google_protobuf_descriptor_proto_depIdxs = []int32{ - 10, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto - 11, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto - 15, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto - 17, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto - 13, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto - 19, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions - 28, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo - 13, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto - 13, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto - 11, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto - 15, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto - 30, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange - 14, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto - 20, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions - 31, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange - 27, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 7, // 0: google.protobuf.FileDescriptorSet.file:type_name -> google.protobuf.FileDescriptorProto + 8, // 1: google.protobuf.FileDescriptorProto.message_type:type_name -> google.protobuf.DescriptorProto + 12, // 2: google.protobuf.FileDescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto + 14, // 3: google.protobuf.FileDescriptorProto.service:type_name -> google.protobuf.ServiceDescriptorProto + 10, // 4: google.protobuf.FileDescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto + 16, // 5: google.protobuf.FileDescriptorProto.options:type_name -> google.protobuf.FileOptions + 25, // 6: google.protobuf.FileDescriptorProto.source_code_info:type_name -> google.protobuf.SourceCodeInfo + 10, // 7: google.protobuf.DescriptorProto.field:type_name -> google.protobuf.FieldDescriptorProto + 10, // 8: google.protobuf.DescriptorProto.extension:type_name -> google.protobuf.FieldDescriptorProto + 8, // 9: google.protobuf.DescriptorProto.nested_type:type_name -> google.protobuf.DescriptorProto + 12, // 10: google.protobuf.DescriptorProto.enum_type:type_name -> google.protobuf.EnumDescriptorProto + 27, // 11: google.protobuf.DescriptorProto.extension_range:type_name -> google.protobuf.DescriptorProto.ExtensionRange + 11, // 12: google.protobuf.DescriptorProto.oneof_decl:type_name -> google.protobuf.OneofDescriptorProto + 17, // 13: google.protobuf.DescriptorProto.options:type_name -> google.protobuf.MessageOptions + 28, // 14: google.protobuf.DescriptorProto.reserved_range:type_name -> google.protobuf.DescriptorProto.ReservedRange + 24, // 15: google.protobuf.ExtensionRangeOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 1, // 16: google.protobuf.FieldDescriptorProto.label:type_name -> google.protobuf.FieldDescriptorProto.Label 0, // 17: google.protobuf.FieldDescriptorProto.type:type_name -> google.protobuf.FieldDescriptorProto.Type - 21, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions - 22, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions - 16, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto - 23, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions - 32, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange - 24, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions - 18, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto - 25, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions - 26, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions + 18, // 18: google.protobuf.FieldDescriptorProto.options:type_name -> google.protobuf.FieldOptions + 19, // 19: google.protobuf.OneofDescriptorProto.options:type_name -> google.protobuf.OneofOptions + 13, // 20: google.protobuf.EnumDescriptorProto.value:type_name -> google.protobuf.EnumValueDescriptorProto + 20, // 21: google.protobuf.EnumDescriptorProto.options:type_name -> google.protobuf.EnumOptions + 29, // 22: google.protobuf.EnumDescriptorProto.reserved_range:type_name -> google.protobuf.EnumDescriptorProto.EnumReservedRange + 21, // 23: google.protobuf.EnumValueDescriptorProto.options:type_name -> google.protobuf.EnumValueOptions + 15, // 24: google.protobuf.ServiceDescriptorProto.method:type_name -> google.protobuf.MethodDescriptorProto + 22, // 25: google.protobuf.ServiceDescriptorProto.options:type_name -> google.protobuf.ServiceOptions + 23, // 26: google.protobuf.MethodDescriptorProto.options:type_name -> google.protobuf.MethodOptions 2, // 27: google.protobuf.FileOptions.optimize_for:type_name -> google.protobuf.FileOptions.OptimizeMode - 27, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 27, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 24, // 28: google.protobuf.FileOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 24, // 29: google.protobuf.MessageOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption 3, // 30: google.protobuf.FieldOptions.ctype:type_name -> google.protobuf.FieldOptions.CType 4, // 31: google.protobuf.FieldOptions.jstype:type_name -> google.protobuf.FieldOptions.JSType - 5, // 32: google.protobuf.FieldOptions.retention:type_name -> google.protobuf.FieldOptions.OptionRetention - 6, // 33: google.protobuf.FieldOptions.target:type_name -> google.protobuf.FieldOptions.OptionTargetType - 27, // 34: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 27, // 35: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 27, // 36: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 27, // 37: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 27, // 38: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 7, // 39: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel - 27, // 40: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption - 33, // 41: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart - 34, // 42: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location - 35, // 43: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation - 12, // 44: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions - 8, // 45: google.protobuf.GeneratedCodeInfo.Annotation.semantic:type_name -> google.protobuf.GeneratedCodeInfo.Annotation.Semantic - 46, // [46:46] is the sub-list for method output_type - 46, // [46:46] is the sub-list for method input_type - 46, // [46:46] is the sub-list for extension type_name - 46, // [46:46] is the sub-list for extension extendee - 0, // [0:46] is the sub-list for field type_name + 24, // 32: google.protobuf.FieldOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 24, // 33: google.protobuf.OneofOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 24, // 34: google.protobuf.EnumOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 24, // 35: google.protobuf.EnumValueOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 24, // 36: google.protobuf.ServiceOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 5, // 37: google.protobuf.MethodOptions.idempotency_level:type_name -> google.protobuf.MethodOptions.IdempotencyLevel + 24, // 38: google.protobuf.MethodOptions.uninterpreted_option:type_name -> google.protobuf.UninterpretedOption + 30, // 39: google.protobuf.UninterpretedOption.name:type_name -> google.protobuf.UninterpretedOption.NamePart + 31, // 40: google.protobuf.SourceCodeInfo.location:type_name -> google.protobuf.SourceCodeInfo.Location + 32, // 41: google.protobuf.GeneratedCodeInfo.annotation:type_name -> google.protobuf.GeneratedCodeInfo.Annotation + 9, // 42: google.protobuf.DescriptorProto.ExtensionRange.options:type_name -> google.protobuf.ExtensionRangeOptions + 43, // [43:43] is the sub-list for method output_type + 43, // [43:43] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name } func init() { file_google_protobuf_descriptor_proto_init() } @@ -4333,7 +3940,7 @@ func file_google_protobuf_descriptor_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_protobuf_descriptor_proto_rawDesc, - NumEnums: 9, + NumEnums: 6, NumMessages: 27, NumExtensions: 0, NumServices: 0, diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go index a6c7a33f33..8c10797b90 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/anypb/any.pb.go @@ -37,7 +37,8 @@ // It is functionally a tuple of the full name of the remote message type and // the serialized bytes of the remote message value. // -// # Constructing an Any +// +// Constructing an Any // // An Any message containing another message value is constructed using New: // @@ -47,7 +48,8 @@ // } // ... // make use of any // -// # Unmarshaling an Any +// +// Unmarshaling an Any // // With a populated Any message, the underlying message can be serialized into // a remote concrete message value in a few ways. @@ -93,7 +95,8 @@ // listed in the case clauses are linked into the Go binary and therefore also // registered in the global registry. // -// # Type checking an Any +// +// Type checking an Any // // In order to type check whether an Any message represents some other message, // then use the MessageIs method: @@ -112,6 +115,7 @@ // } // ... // make use of m // } +// package anypb import ( @@ -132,49 +136,45 @@ import ( // // Example 1: Pack and unpack a message in C++. // -// Foo foo = ...; -// Any any; -// any.PackFrom(foo); -// ... -// if (any.UnpackTo(&foo)) { -// ... -// } +// Foo foo = ...; +// Any any; +// any.PackFrom(foo); +// ... +// if (any.UnpackTo(&foo)) { +// ... +// } // // Example 2: Pack and unpack a message in Java. // -// Foo foo = ...; -// Any any = Any.pack(foo); -// ... -// if (any.is(Foo.class)) { -// foo = any.unpack(Foo.class); -// } -// // or ... -// if (any.isSameTypeAs(Foo.getDefaultInstance())) { -// foo = any.unpack(Foo.getDefaultInstance()); -// } -// -// Example 3: Pack and unpack a message in Python. -// -// foo = Foo(...) -// any = Any() -// any.Pack(foo) -// ... -// if any.Is(Foo.DESCRIPTOR): -// any.Unpack(foo) -// ... -// -// Example 4: Pack and unpack a message in Go -// -// foo := &pb.Foo{...} -// any, err := anypb.New(foo) -// if err != nil { -// ... -// } -// ... -// foo := &pb.Foo{} -// if err := any.UnmarshalTo(foo); err != nil { -// ... -// } +// Foo foo = ...; +// Any any = Any.pack(foo); +// ... +// if (any.is(Foo.class)) { +// foo = any.unpack(Foo.class); +// } +// +// Example 3: Pack and unpack a message in Python. +// +// foo = Foo(...) +// any = Any() +// any.Pack(foo) +// ... +// if any.Is(Foo.DESCRIPTOR): +// any.Unpack(foo) +// ... +// +// Example 4: Pack and unpack a message in Go +// +// foo := &pb.Foo{...} +// any, err := anypb.New(foo) +// if err != nil { +// ... +// } +// ... +// foo := &pb.Foo{} +// if err := any.UnmarshalTo(foo); err != nil { +// ... +// } // // The pack methods provided by protobuf library will by default use // 'type.googleapis.com/full.type.name' as the type URL and the unpack @@ -182,33 +182,35 @@ import ( // in the type URL, for example "foo.bar.com/x/y.z" will yield type // name "y.z". // -// # JSON // +// JSON +// ==== // The JSON representation of an `Any` value uses the regular // representation of the deserialized, embedded message, with an // additional field `@type` which contains the type URL. Example: // -// package google.profile; -// message Person { -// string first_name = 1; -// string last_name = 2; -// } +// package google.profile; +// message Person { +// string first_name = 1; +// string last_name = 2; +// } // -// { -// "@type": "type.googleapis.com/google.profile.Person", -// "firstName": , -// "lastName": -// } +// { +// "@type": "type.googleapis.com/google.profile.Person", +// "firstName": , +// "lastName": +// } // // If the embedded message type is well-known and has a custom JSON // representation, that representation will be embedded adding a field // `value` which holds the custom JSON in addition to the `@type` // field. Example (for message [google.protobuf.Duration][]): // -// { -// "@type": "type.googleapis.com/google.protobuf.Duration", -// "value": "1.212s" -// } +// { +// "@type": "type.googleapis.com/google.protobuf.Duration", +// "value": "1.212s" +// } +// type Any struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -226,14 +228,14 @@ type Any struct { // scheme `http`, `https`, or no scheme, one can optionally set up a type // server that maps type URLs to message definitions as follows: // - // - If no scheme is provided, `https` is assumed. - // - An HTTP GET on the URL must yield a [google.protobuf.Type][] - // value in binary format, or produce an error. - // - Applications are allowed to cache lookup results based on the - // URL, or have them precompiled into a binary to avoid any - // lookup. Therefore, binary compatibility needs to be preserved - // on changes to types. (Use versioned type names to manage - // breaking changes.) + // * If no scheme is provided, `https` is assumed. + // * An HTTP GET on the URL must yield a [google.protobuf.Type][] + // value in binary format, or produce an error. + // * Applications are allowed to cache lookup results based on the + // URL, or have them precompiled into a binary to avoid any + // lookup. Therefore, binary compatibility needs to be preserved + // on changes to types. (Use versioned type names to manage + // breaking changes.) // // Note: this functionality is not currently available in the official // protobuf release, and it is not used for type URLs beginning with @@ -241,6 +243,7 @@ type Any struct { // // Schemes other than `http`, `https` (or the empty scheme) might be // used with implementation specific semantics. + // TypeUrl string `protobuf:"bytes,1,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"` // Must be a valid serialized protocol buffer of the above specified type. Value []byte `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go index df709a8dd4..a583ca2f6c 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/durationpb/duration.pb.go @@ -35,7 +35,8 @@ // // The Duration message represents a signed span of time. // -// # Conversion to a Go Duration +// +// Conversion to a Go Duration // // The AsDuration method can be used to convert a Duration message to a // standard Go time.Duration value: @@ -64,13 +65,15 @@ // the resulting value to the closest representable value (e.g., math.MaxInt64 // for positive overflow and math.MinInt64 for negative overflow). // -// # Conversion from a Go Duration +// +// Conversion from a Go Duration // // The durationpb.New function can be used to construct a Duration message // from a standard Go time.Duration value: // // dur := durationpb.New(d) // ... // make use of d as a *durationpb.Duration +// package durationpb import ( @@ -93,43 +96,43 @@ import ( // // Example 1: Compute Duration from two Timestamps in pseudo code. // -// Timestamp start = ...; -// Timestamp end = ...; -// Duration duration = ...; +// Timestamp start = ...; +// Timestamp end = ...; +// Duration duration = ...; // -// duration.seconds = end.seconds - start.seconds; -// duration.nanos = end.nanos - start.nanos; +// duration.seconds = end.seconds - start.seconds; +// duration.nanos = end.nanos - start.nanos; // -// if (duration.seconds < 0 && duration.nanos > 0) { -// duration.seconds += 1; -// duration.nanos -= 1000000000; -// } else if (duration.seconds > 0 && duration.nanos < 0) { -// duration.seconds -= 1; -// duration.nanos += 1000000000; -// } +// if (duration.seconds < 0 && duration.nanos > 0) { +// duration.seconds += 1; +// duration.nanos -= 1000000000; +// } else if (duration.seconds > 0 && duration.nanos < 0) { +// duration.seconds -= 1; +// duration.nanos += 1000000000; +// } // // Example 2: Compute Timestamp from Timestamp + Duration in pseudo code. // -// Timestamp start = ...; -// Duration duration = ...; -// Timestamp end = ...; +// Timestamp start = ...; +// Duration duration = ...; +// Timestamp end = ...; // -// end.seconds = start.seconds + duration.seconds; -// end.nanos = start.nanos + duration.nanos; +// end.seconds = start.seconds + duration.seconds; +// end.nanos = start.nanos + duration.nanos; // -// if (end.nanos < 0) { -// end.seconds -= 1; -// end.nanos += 1000000000; -// } else if (end.nanos >= 1000000000) { -// end.seconds += 1; -// end.nanos -= 1000000000; -// } +// if (end.nanos < 0) { +// end.seconds -= 1; +// end.nanos += 1000000000; +// } else if (end.nanos >= 1000000000) { +// end.seconds += 1; +// end.nanos -= 1000000000; +// } // // Example 3: Compute Duration from datetime.timedelta in Python. // -// td = datetime.timedelta(days=3, minutes=10) -// duration = Duration() -// duration.FromTimedelta(td) +// td = datetime.timedelta(days=3, minutes=10) +// duration = Duration() +// duration.FromTimedelta(td) // // # JSON Mapping // @@ -140,6 +143,8 @@ import ( // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should // be expressed in JSON format as "3.000000001s", and 3 seconds and 1 // microsecond should be expressed in JSON format as "3.000001s". +// +// type Duration struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go index 61f69fc11b..c9ae92132a 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/timestamppb/timestamp.pb.go @@ -36,7 +36,8 @@ // The Timestamp message represents a timestamp, // an instant in time since the Unix epoch (January 1st, 1970). // -// # Conversion to a Go Time +// +// Conversion to a Go Time // // The AsTime method can be used to convert a Timestamp message to a // standard Go time.Time value in UTC: @@ -58,7 +59,8 @@ // ... // handle error // } // -// # Conversion from a Go Time +// +// Conversion from a Go Time // // The timestamppb.New function can be used to construct a Timestamp message // from a standard Go time.Time value: @@ -70,6 +72,7 @@ // // ts := timestamppb.Now() // ... // make use of ts as a *timestamppb.Timestamp +// package timestamppb import ( @@ -98,50 +101,52 @@ import ( // // Example 1: Compute Timestamp from POSIX `time()`. // -// Timestamp timestamp; -// timestamp.set_seconds(time(NULL)); -// timestamp.set_nanos(0); +// Timestamp timestamp; +// timestamp.set_seconds(time(NULL)); +// timestamp.set_nanos(0); // // Example 2: Compute Timestamp from POSIX `gettimeofday()`. // -// struct timeval tv; -// gettimeofday(&tv, NULL); +// struct timeval tv; +// gettimeofday(&tv, NULL); // -// Timestamp timestamp; -// timestamp.set_seconds(tv.tv_sec); -// timestamp.set_nanos(tv.tv_usec * 1000); +// Timestamp timestamp; +// timestamp.set_seconds(tv.tv_sec); +// timestamp.set_nanos(tv.tv_usec * 1000); // // Example 3: Compute Timestamp from Win32 `GetSystemTimeAsFileTime()`. // -// FILETIME ft; -// GetSystemTimeAsFileTime(&ft); -// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; +// FILETIME ft; +// GetSystemTimeAsFileTime(&ft); +// UINT64 ticks = (((UINT64)ft.dwHighDateTime) << 32) | ft.dwLowDateTime; // -// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z -// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. -// Timestamp timestamp; -// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); -// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); +// // A Windows tick is 100 nanoseconds. Windows epoch 1601-01-01T00:00:00Z +// // is 11644473600 seconds before Unix epoch 1970-01-01T00:00:00Z. +// Timestamp timestamp; +// timestamp.set_seconds((INT64) ((ticks / 10000000) - 11644473600LL)); +// timestamp.set_nanos((INT32) ((ticks % 10000000) * 100)); // // Example 4: Compute Timestamp from Java `System.currentTimeMillis()`. // -// long millis = System.currentTimeMillis(); +// long millis = System.currentTimeMillis(); +// +// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) +// .setNanos((int) ((millis % 1000) * 1000000)).build(); // -// Timestamp timestamp = Timestamp.newBuilder().setSeconds(millis / 1000) -// .setNanos((int) ((millis % 1000) * 1000000)).build(); // // Example 5: Compute Timestamp from Java `Instant.now()`. // -// Instant now = Instant.now(); +// Instant now = Instant.now(); +// +// Timestamp timestamp = +// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) +// .setNanos(now.getNano()).build(); // -// Timestamp timestamp = -// Timestamp.newBuilder().setSeconds(now.getEpochSecond()) -// .setNanos(now.getNano()).build(); // // Example 6: Compute Timestamp from current time in Python. // -// timestamp = Timestamp() -// timestamp.GetCurrentTime() +// timestamp = Timestamp() +// timestamp.GetCurrentTime() // // # JSON Mapping // @@ -169,6 +174,8 @@ import ( // the Joda Time's [`ISODateTimeFormat.dateTime()`]( // http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D // ) to obtain a formatter capable of generating timestamps in this format. +// +// type Timestamp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go b/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go index 762a87130f..895a8049e2 100644 --- a/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go +++ b/ecs-agent/vendor/google.golang.org/protobuf/types/known/wrapperspb/wrappers.pb.go @@ -27,7 +27,7 @@ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// + // Wrappers for primitive (non-message) types. These types are useful // for embedding primitives in the `google.protobuf.Any` type and for places // where we need to distinguish between the absence of a primitive diff --git a/ecs-agent/vendor/modules.txt b/ecs-agent/vendor/modules.txt index 27162526b5..c5cab79c15 100644 --- a/ecs-agent/vendor/modules.txt +++ b/ecs-agent/vendor/modules.txt @@ -53,7 +53,7 @@ github.com/docker/docker/api/types/strslice # github.com/docker/go-connections v0.4.0 ## explicit github.com/docker/go-connections/nat -# github.com/docker/go-units v0.5.0 +# github.com/docker/go-units v0.4.0 ## explicit github.com/docker/go-units # github.com/go-logr/logr v1.2.4 @@ -215,7 +215,7 @@ google.golang.org/grpc/serviceconfig google.golang.org/grpc/stats google.golang.org/grpc/status google.golang.org/grpc/tap -# google.golang.org/protobuf v1.30.0 +# google.golang.org/protobuf v1.28.1 ## explicit; go 1.11 google.golang.org/protobuf/encoding/protojson google.golang.org/protobuf/encoding/prototext From cdd900dfbefaaa2e54d63a47fddb5322f1d4961c Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Thu, 29 Jun 2023 03:41:26 +0000 Subject: [PATCH 5/7] Add more unit tests and comments --- ecs-agent/daemonimages/csidriver/Makefile | 6 +- .../daemonimages/csidriver/driver/driver.go | 4 + .../daemonimages/csidriver/driver/mount.go | 4 +- .../daemonimages/csidriver/driver/node.go | 4 +- ecs-agent/daemonimages/csidriver/options.go | 10 ++- .../daemonimages/csidriver/options_test.go | 2 +- .../daemonimages/csidriver/util/fs/fs.go | 38 +++++---- .../csidriver/util/fs/fs_windows.go | 29 +++++-- .../daemonimages/csidriver/util/utils_test.go | 82 +++++++++++++++++++ 9 files changed, 145 insertions(+), 34 deletions(-) create mode 100644 ecs-agent/daemonimages/csidriver/util/utils_test.go diff --git a/ecs-agent/daemonimages/csidriver/Makefile b/ecs-agent/daemonimages/csidriver/Makefile index 169cc79e87..1ef3ae2ba9 100644 --- a/ecs-agent/daemonimages/csidriver/Makefile +++ b/ecs-agent/daemonimages/csidriver/Makefile @@ -3,15 +3,11 @@ GO111MODULE=on GOPATH=$(shell go env GOPATH) BUILD_DATE=$(shell date -u -Iseconds) -SOURCEDIR=./ -CSI_DRIVER_SOURCES=$(shell find $(SOURCEDIR) -name '*.go') - OS?=linux ARCH?=amd64 -# Build binary for linux only .PHONY: bin/csi-driver -bin/csi-driver: $(CSI_DRIVER_SOURCES) +bin/csi-driver: CGO_ENABLED=0 GOOS=$(OS) GOARCH=$(ARCH) go build -ldflags "\ -X \"github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/version.version=$(CSI_DRIVER_VERSION)\" \ -X \"github.com/aws/amazon-ecs-agent/ecs-agent/daemon_images/csi-driver/version.buildDate=$(BUILD_DATE)\"" \ diff --git a/ecs-agent/daemonimages/csidriver/driver/driver.go b/ecs-agent/daemonimages/csidriver/driver/driver.go index b83f69e508..46b4a0cba8 100644 --- a/ecs-agent/daemonimages/csidriver/driver/driver.go +++ b/ecs-agent/daemonimages/csidriver/driver/driver.go @@ -25,6 +25,8 @@ import ( "github.com/aws/amazon-ecs-agent/ecs-agent/daemonimages/csidriver/version" ) +// Driver encapsulates the GRPC server and the node service which implements all necessary interfaces, such as +// the EBS volume stats interface. type Driver struct { nodeService @@ -32,10 +34,12 @@ type Driver struct { options *DriverOptions } +// DriverOptions supports to custom the endpoint of the GRPC server. type DriverOptions struct { endpoint string } +// NewDriver creates a new driver. func NewDriver(options ...func(*DriverOptions)) (*Driver, error) { driverInfo := version.GetVersionInfo() klog.InfoS("Driver Information", diff --git a/ecs-agent/daemonimages/csidriver/driver/mount.go b/ecs-agent/daemonimages/csidriver/driver/mount.go index b8cbe114e7..6ee70f81d5 100644 --- a/ecs-agent/daemonimages/csidriver/driver/mount.go +++ b/ecs-agent/daemonimages/csidriver/driver/mount.go @@ -13,19 +13,21 @@ package driver -// Mounter is the interface implemented by NodeMounter. type Mounter interface { PathExists(path string) (bool, error) } // NodeMounter implements Mounter. type NodeMounter struct { + // TODO } func (nm NodeMounter) PathExists(path string) (bool, error) { + // TODO return false, nil } func newNodeMounter() (Mounter, error) { + // TODO return NodeMounter{}, nil } diff --git a/ecs-agent/daemonimages/csidriver/driver/node.go b/ecs-agent/daemonimages/csidriver/driver/node.go index 4a285b1614..9d05b335c5 100644 --- a/ecs-agent/daemonimages/csidriver/driver/node.go +++ b/ecs-agent/daemonimages/csidriver/driver/node.go @@ -17,9 +17,11 @@ import ( "github.com/container-storage-interface/spec/lib/go/csi" ) -// nodeService represents the node service of CSI driver +// nodeService represents the node service of CSI driver. type nodeService struct { mounter Mounter + // UnimplementedNodeServer implements all interfaces with empty implementation. As one mini version of csi driver, + // we only need to override the necessary interfaces. csi.UnimplementedNodeServer } diff --git a/ecs-agent/daemonimages/csidriver/options.go b/ecs-agent/daemonimages/csidriver/options.go index 93eda43aaf..31bfad2b62 100644 --- a/ecs-agent/daemonimages/csidriver/options.go +++ b/ecs-agent/daemonimages/csidriver/options.go @@ -19,7 +19,7 @@ import ( "os" ) -const EmptyCSIEndpoint = "" +const emptyCSIEndpoint = "" type ServerOptions struct { // Endpoint is the endpoint that the driver server should listen on. @@ -28,14 +28,18 @@ type ServerOptions struct { func GetServerOptions(fs *flag.FlagSet) (*ServerOptions, error) { serverOptions := &ServerOptions{} - fs.StringVar(&serverOptions.Endpoint, "endpoint", EmptyCSIEndpoint, "Endpoint for the CSI driver server") + fs.StringVar(&serverOptions.Endpoint, "endpoint", emptyCSIEndpoint, "Endpoint for the CSI driver server") args := os.Args[1:] if err := fs.Parse(args); err != nil { return nil, err } - if serverOptions.Endpoint == EmptyCSIEndpoint { + if len(args) == 0 { + return nil, errors.New("no argument is provided") + } + + if serverOptions.Endpoint == emptyCSIEndpoint { return nil, errors.New("no endpoint is provided") } diff --git a/ecs-agent/daemonimages/csidriver/options_test.go b/ecs-agent/daemonimages/csidriver/options_test.go index a415285e9a..3b8ce0e48d 100644 --- a/ecs-agent/daemonimages/csidriver/options_test.go +++ b/ecs-agent/daemonimages/csidriver/options_test.go @@ -55,7 +55,7 @@ func TestGetServerOptions(t *testing.T) { name: "No argument is given", testFunc: func(t *testing.T) { _, err := testFunc(t, nil) - assert.NotNil(t, err) + assert.EqualError(t, err, "no argument is provided") }, }, } diff --git a/ecs-agent/daemonimages/csidriver/util/fs/fs.go b/ecs-agent/daemonimages/csidriver/util/fs/fs.go index bcb5bf39dc..09173d7fe6 100644 --- a/ecs-agent/daemonimages/csidriver/util/fs/fs.go +++ b/ecs-agent/daemonimages/csidriver/util/fs/fs.go @@ -27,25 +27,33 @@ type UsageInfo struct { // Info linux returns (available bytes, byte capacity, byte usage, total inodes, inodes free, inode usage, error) // for the filesystem that path resides upon. -func Info(path string) (int64, int64, int64, int64, int64, int64, error) { +func Info(path string) ( + available int64, capacity int64, used int64, + totalInodes int64, freeInodes int64, usedInodes int64, + err error, +) { statfs := &unix.Statfs_t{} - err := unix.Statfs(path, statfs) + err = unix.Statfs(path, statfs) if err != nil { - return 0, 0, 0, 0, 0, 0, err + available = 0 + capacity = 0 + used = 0 + + totalInodes = 0 + freeInodes = 0 + usedInodes = 0 + return } // Available is blocks available * fragment size - available := int64(statfs.Bavail) * int64(statfs.Bsize) - + available = int64(statfs.Bavail) * int64(statfs.Bsize) // Capacity is total block count * fragment size - capacity := int64(statfs.Blocks) * int64(statfs.Bsize) - - // Usage is block being used * fragment size (aka block size). - usage := (int64(statfs.Blocks) - int64(statfs.Bfree)) * int64(statfs.Bsize) - - inodes := int64(statfs.Files) - inodesFree := int64(statfs.Ffree) - inodesUsed := inodes - inodesFree - - return available, capacity, usage, inodes, inodesFree, inodesUsed, nil + capacity = int64(statfs.Blocks) * int64(statfs.Bsize) + // Used is block being used * fragment size (aka block size). + used = (int64(statfs.Blocks) - int64(statfs.Bfree)) * int64(statfs.Bsize) + + totalInodes = int64(statfs.Files) + freeInodes = int64(statfs.Ffree) + usedInodes = totalInodes - freeInodes + return } diff --git a/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go b/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go index 1748a92514..70c58b67e0 100644 --- a/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go +++ b/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go @@ -36,10 +36,11 @@ type UsageInfo struct { // Info returns (available bytes, byte capacity, byte usage, total inodes, inodes free, inode usage, error) // for the filesystem that path resides upon. -func Info(path string) (int64, int64, int64, int64, int64, int64, error) { - var freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes int64 - var err error - +func Info(path string) ( + available int64, capacity int64, used int64, + totalInodes int64, freeInodes int64, usedInodes int64, + err error) { + var totalNumberOfFreeBytes int64 // The equivalent linux call supports calls against files but the syscall for windows // fails for files with error code: The directory name is invalid. (#99173) // https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499- @@ -49,15 +50,27 @@ func Info(path string) (int64, int64, int64, int64, int64, int64, error) { procGetDiskFreeSpaceEx.Addr(), 4, uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), - uintptr(unsafe.Pointer(&freeBytesAvailable)), - uintptr(unsafe.Pointer(&totalNumberOfBytes)), + uintptr(unsafe.Pointer(&available)), + uintptr(unsafe.Pointer(&capacity)), uintptr(unsafe.Pointer(&totalNumberOfFreeBytes)), 0, 0, ) if ret == 0 { - return 0, 0, 0, 0, 0, 0, err + available = 0 + capacity = 0 + used = 0 + + totalInodes = 0 + freeInodes = 0 + usedInodes = 0 + + return } - return freeBytesAvailable, totalNumberOfBytes, totalNumberOfBytes - freeBytesAvailable, 0, 0, 0, nil + used = capacity - available + totalInodes = 0 + freeInodes = 0 + usedInodes = 0 + return } diff --git a/ecs-agent/daemonimages/csidriver/util/utils_test.go b/ecs-agent/daemonimages/csidriver/util/utils_test.go new file mode 100644 index 0000000000..c0e502306d --- /dev/null +++ b/ecs-agent/daemonimages/csidriver/util/utils_test.go @@ -0,0 +1,82 @@ +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package util + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestParseEndpoint(t *testing.T) { + testCases := []struct { + name string + endpoint string + expScheme string + expAddr string + expErr error + }{ + { + name: "valid unix endpoint 1", + endpoint: "unix:///csi/csi.sock", + expScheme: "unix", + expAddr: "/csi/csi.sock", + }, + { + name: "valid unix endpoint 2", + endpoint: "unix://csi/csi.sock", + expScheme: "unix", + expAddr: "/csi/csi.sock", + }, + { + name: "valid unix endpoint 3", + endpoint: "unix:/csi/csi.sock", + expScheme: "unix", + expAddr: "/csi/csi.sock", + }, + { + name: "valid tcp endpoint", + endpoint: "tcp:///127.0.0.1/", + expScheme: "tcp", + expAddr: "/127.0.0.1", + }, + { + name: "valid tcp endpoint", + endpoint: "tcp:///127.0.0.1", + expScheme: "tcp", + expAddr: "/127.0.0.1", + }, + { + name: "invalid endpoint", + endpoint: "http://127.0.0.1", + expErr: fmt.Errorf("unsupported protocol: http"), + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + scheme, addr, err := ParseEndpoint(tc.endpoint) + + if tc.expErr != nil { + assert.EqualError(t, err, tc.expErr.Error()) + } else { + assert.Nil(t, err) + assert.Equal(t, scheme, tc.expScheme, "scheme mismatches") + assert.Equal(t, addr, tc.expAddr, "address mismatches") + } + }) + } + +} From a6239f89699069d704287152393fde43a46263e5 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Thu, 29 Jun 2023 17:14:05 +0000 Subject: [PATCH 6/7] Remove windows related functions --- .../daemonimages/csidriver/driver/mount.go | 2 + .../csidriver/util/fs/fs_unsupported.go | 4 +- .../csidriver/util/fs/fs_windows.go | 76 ------------------- 3 files changed, 4 insertions(+), 78 deletions(-) delete mode 100644 ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go diff --git a/ecs-agent/daemonimages/csidriver/driver/mount.go b/ecs-agent/daemonimages/csidriver/driver/mount.go index 6ee70f81d5..3a78d0592a 100644 --- a/ecs-agent/daemonimages/csidriver/driver/mount.go +++ b/ecs-agent/daemonimages/csidriver/driver/mount.go @@ -13,6 +13,8 @@ package driver +// Mounter defines an interface for many volume related options. As of now, only +// 'PathExists' is added to determine if a file path exists on the node. type Mounter interface { PathExists(path string) (bool, error) } diff --git a/ecs-agent/daemonimages/csidriver/util/fs/fs_unsupported.go b/ecs-agent/daemonimages/csidriver/util/fs/fs_unsupported.go index bf9d877842..962b09e546 100644 --- a/ecs-agent/daemonimages/csidriver/util/fs/fs_unsupported.go +++ b/ecs-agent/daemonimages/csidriver/util/fs/fs_unsupported.go @@ -1,5 +1,5 @@ -//go:build !linux && !darwin && !windows -// +build !linux,!darwin,!windows +//go:build !linux && !darwin +// +build !linux,!darwin // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // diff --git a/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go b/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go deleted file mode 100644 index 70c58b67e0..0000000000 --- a/ecs-agent/daemonimages/csidriver/util/fs/fs_windows.go +++ /dev/null @@ -1,76 +0,0 @@ -//go:build windows -// +build windows - -// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file is distributed -// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either -// express or implied. See the License for the specific language governing -// permissions and limitations under the License. - -package fs - -import ( - "path/filepath" - "syscall" - "unsafe" - - "golang.org/x/sys/windows" -) - -var ( - modkernel32 = windows.NewLazySystemDLL("kernel32.dll") - procGetDiskFreeSpaceEx = modkernel32.NewProc("GetDiskFreeSpaceExW") -) - -type UsageInfo struct { - Bytes int64 - Inodes int64 -} - -// Info returns (available bytes, byte capacity, byte usage, total inodes, inodes free, inode usage, error) -// for the filesystem that path resides upon. -func Info(path string) ( - available int64, capacity int64, used int64, - totalInodes int64, freeInodes int64, usedInodes int64, - err error) { - var totalNumberOfFreeBytes int64 - // The equivalent linux call supports calls against files but the syscall for windows - // fails for files with error code: The directory name is invalid. (#99173) - // https://docs.microsoft.com/en-us/windows/win32/debug/system-error-codes--0-499- - // By always ensuring the directory path we meet all uses cases of this function - path = filepath.Dir(path) - ret, _, err := syscall.Syscall6( - procGetDiskFreeSpaceEx.Addr(), - 4, - uintptr(unsafe.Pointer(syscall.StringToUTF16Ptr(path))), - uintptr(unsafe.Pointer(&available)), - uintptr(unsafe.Pointer(&capacity)), - uintptr(unsafe.Pointer(&totalNumberOfFreeBytes)), - 0, - 0, - ) - if ret == 0 { - available = 0 - capacity = 0 - used = 0 - - totalInodes = 0 - freeInodes = 0 - usedInodes = 0 - - return - } - - used = capacity - available - totalInodes = 0 - freeInodes = 0 - usedInodes = 0 - return -} From 013cc4fb2eb77efed2db30e7efdcb525ef0ed649 Mon Sep 17 00:00:00 2001 From: Xing Zheng Date: Thu, 29 Jun 2023 19:03:35 +0000 Subject: [PATCH 7/7] Add unit test tags --- .../{utils_test.go => utils_linux_test.go} | 3 + .../csidriver/util/utils_windows_test.go | 61 +++++++++++++++++++ 2 files changed, 64 insertions(+) rename ecs-agent/daemonimages/csidriver/util/{utils_test.go => utils_linux_test.go} (97%) create mode 100644 ecs-agent/daemonimages/csidriver/util/utils_windows_test.go diff --git a/ecs-agent/daemonimages/csidriver/util/utils_test.go b/ecs-agent/daemonimages/csidriver/util/utils_linux_test.go similarity index 97% rename from ecs-agent/daemonimages/csidriver/util/utils_test.go rename to ecs-agent/daemonimages/csidriver/util/utils_linux_test.go index c0e502306d..e884570250 100644 --- a/ecs-agent/daemonimages/csidriver/util/utils_test.go +++ b/ecs-agent/daemonimages/csidriver/util/utils_linux_test.go @@ -1,3 +1,6 @@ +//go:build linux && unit +// +build linux,unit + // Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"). You may diff --git a/ecs-agent/daemonimages/csidriver/util/utils_windows_test.go b/ecs-agent/daemonimages/csidriver/util/utils_windows_test.go new file mode 100644 index 0000000000..5389beb2b7 --- /dev/null +++ b/ecs-agent/daemonimages/csidriver/util/utils_windows_test.go @@ -0,0 +1,61 @@ +//go:build windows && unit +// +build windows,unit + +// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"). You may +// not use this file except in compliance with the License. A copy of the +// License is located at +// +// http://aws.amazon.com/apache2.0/ +// +// or in the "license" file accompanying this file. This file is distributed +// on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either +// express or implied. See the License for the specific language governing +// permissions and limitations under the License. + +package util + +import ( + "fmt" + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestParseEndpoint(t *testing.T) { + testCases := []struct { + name string + endpoint string + expScheme string + expAddr string + expErr error + }{ + { + name: "valid unix endpoint 1", + endpoint: "unix:/csi/csi.sock", + expScheme: "unix", + expAddr: `\csi\csi.sock`, + }, + { + name: "invalid endpoint", + endpoint: "http://127.0.0.1", + expErr: fmt.Errorf("unsupported protocol: http"), + }, + } + + for _, tc := range testCases { + t.Run(tc.name, func(t *testing.T) { + scheme, addr, err := ParseEndpoint(tc.endpoint) + + if tc.expErr != nil { + assert.EqualError(t, err, tc.expErr.Error()) + } else { + assert.Nil(t, err) + assert.Equal(t, scheme, tc.expScheme, "scheme mismatches") + assert.Equal(t, addr, tc.expAddr, "address mismatches") + } + }) + } + +}

      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�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�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